diff --git a/frontend-dist/Inter-Black.woff.a3efb88f6f.efe3f25b.woff b/frontend-dist/Inter-Black.woff.a3efb88f6f.efe3f25b.woff new file mode 100644 index 0000000000..8fd1bd5311 Binary files /dev/null and b/frontend-dist/Inter-Black.woff.a3efb88f6f.efe3f25b.woff differ diff --git a/frontend-dist/Inter-Black.woff2.a3efb88f6f.1f333c9f.woff2 b/frontend-dist/Inter-Black.woff2.a3efb88f6f.1f333c9f.woff2 new file mode 100644 index 0000000000..c354e63907 Binary files /dev/null and b/frontend-dist/Inter-Black.woff2.a3efb88f6f.1f333c9f.woff2 differ diff --git a/frontend-dist/Inter-BlackItalic.woff.a3efb88f6f.f6e2e726.woff b/frontend-dist/Inter-BlackItalic.woff.a3efb88f6f.f6e2e726.woff new file mode 100644 index 0000000000..be6a45bcf1 Binary files /dev/null and b/frontend-dist/Inter-BlackItalic.woff.a3efb88f6f.f6e2e726.woff differ diff --git a/frontend-dist/Inter-BlackItalic.woff2.a3efb88f6f.89710fff.woff2 b/frontend-dist/Inter-BlackItalic.woff2.a3efb88f6f.89710fff.woff2 new file mode 100644 index 0000000000..8b2efe9526 Binary files /dev/null and b/frontend-dist/Inter-BlackItalic.woff2.a3efb88f6f.89710fff.woff2 differ diff --git a/frontend-dist/Inter-Bold.woff.a3efb88f6f.d92ed350.woff b/frontend-dist/Inter-Bold.woff.a3efb88f6f.d92ed350.woff new file mode 100644 index 0000000000..b5221b0e8a Binary files /dev/null and b/frontend-dist/Inter-Bold.woff.a3efb88f6f.d92ed350.woff differ diff --git a/frontend-dist/Inter-Bold.woff2.a3efb88f6f.e8bd971d.woff2 b/frontend-dist/Inter-Bold.woff2.a3efb88f6f.e8bd971d.woff2 new file mode 100644 index 0000000000..619c3a7410 Binary files /dev/null and b/frontend-dist/Inter-Bold.woff2.a3efb88f6f.e8bd971d.woff2 differ diff --git a/frontend-dist/Inter-BoldItalic.woff.a3efb88f6f.39f68e5f.woff b/frontend-dist/Inter-BoldItalic.woff.a3efb88f6f.39f68e5f.woff new file mode 100644 index 0000000000..da912559ef Binary files /dev/null and b/frontend-dist/Inter-BoldItalic.woff.a3efb88f6f.39f68e5f.woff differ diff --git a/frontend-dist/Inter-BoldItalic.woff2.a3efb88f6f.cd6e580e.woff2 b/frontend-dist/Inter-BoldItalic.woff2.a3efb88f6f.cd6e580e.woff2 new file mode 100644 index 0000000000..4022cc8d9a Binary files /dev/null and b/frontend-dist/Inter-BoldItalic.woff2.a3efb88f6f.cd6e580e.woff2 differ diff --git a/frontend-dist/Inter-ExtraBold.woff.a3efb88f6f.cd51bf91.woff b/frontend-dist/Inter-ExtraBold.woff.a3efb88f6f.cd51bf91.woff new file mode 100644 index 0000000000..7221d72ef0 Binary files /dev/null and b/frontend-dist/Inter-ExtraBold.woff.a3efb88f6f.cd51bf91.woff differ diff --git a/frontend-dist/Inter-ExtraBold.woff2.a3efb88f6f.ffc04ff0.woff2 b/frontend-dist/Inter-ExtraBold.woff2.a3efb88f6f.ffc04ff0.woff2 new file mode 100644 index 0000000000..d3d23b43e5 Binary files /dev/null and b/frontend-dist/Inter-ExtraBold.woff2.a3efb88f6f.ffc04ff0.woff2 differ diff --git a/frontend-dist/Inter-ExtraBoldItalic.woff.a3efb88f6f.122106d3.woff b/frontend-dist/Inter-ExtraBoldItalic.woff.a3efb88f6f.122106d3.woff new file mode 100644 index 0000000000..8520a31855 Binary files /dev/null and b/frontend-dist/Inter-ExtraBoldItalic.woff.a3efb88f6f.122106d3.woff differ diff --git a/frontend-dist/Inter-ExtraBoldItalic.woff2.a3efb88f6f.de4f3979.woff2 b/frontend-dist/Inter-ExtraBoldItalic.woff2.a3efb88f6f.de4f3979.woff2 new file mode 100644 index 0000000000..863748b2e3 Binary files /dev/null and b/frontend-dist/Inter-ExtraBoldItalic.woff2.a3efb88f6f.de4f3979.woff2 differ diff --git a/frontend-dist/Inter-ExtraLight.woff.a3efb88f6f.018d6d24.woff b/frontend-dist/Inter-ExtraLight.woff.a3efb88f6f.018d6d24.woff new file mode 100644 index 0000000000..5590441093 Binary files /dev/null and b/frontend-dist/Inter-ExtraLight.woff.a3efb88f6f.018d6d24.woff differ diff --git a/frontend-dist/Inter-ExtraLight.woff2.a3efb88f6f.735b820a.woff2 b/frontend-dist/Inter-ExtraLight.woff2.a3efb88f6f.735b820a.woff2 new file mode 100644 index 0000000000..7cb6e49fb6 Binary files /dev/null and b/frontend-dist/Inter-ExtraLight.woff2.a3efb88f6f.735b820a.woff2 differ diff --git a/frontend-dist/Inter-ExtraLightItalic.woff.a3efb88f6f.c051c5b4.woff b/frontend-dist/Inter-ExtraLightItalic.woff.a3efb88f6f.c051c5b4.woff new file mode 100644 index 0000000000..0a9f00de8e Binary files /dev/null and b/frontend-dist/Inter-ExtraLightItalic.woff.a3efb88f6f.c051c5b4.woff differ diff --git a/frontend-dist/Inter-ExtraLightItalic.woff2.a3efb88f6f.75944d4e.woff2 b/frontend-dist/Inter-ExtraLightItalic.woff2.a3efb88f6f.75944d4e.woff2 new file mode 100644 index 0000000000..e636442002 Binary files /dev/null and b/frontend-dist/Inter-ExtraLightItalic.woff2.a3efb88f6f.75944d4e.woff2 differ diff --git a/frontend-dist/Inter-Italic.woff.a3efb88f6f.d9effa31.woff b/frontend-dist/Inter-Italic.woff.a3efb88f6f.d9effa31.woff new file mode 100644 index 0000000000..f2c424804c Binary files /dev/null and b/frontend-dist/Inter-Italic.woff.a3efb88f6f.d9effa31.woff differ diff --git a/frontend-dist/Inter-Italic.woff2.a3efb88f6f.85eee0c1.woff2 b/frontend-dist/Inter-Italic.woff2.a3efb88f6f.85eee0c1.woff2 new file mode 100644 index 0000000000..b749909b0a Binary files /dev/null and b/frontend-dist/Inter-Italic.woff2.a3efb88f6f.85eee0c1.woff2 differ diff --git a/frontend-dist/Inter-Light.woff.a3efb88f6f.0cf765a1.woff b/frontend-dist/Inter-Light.woff.a3efb88f6f.0cf765a1.woff new file mode 100644 index 0000000000..15672799ed Binary files /dev/null and b/frontend-dist/Inter-Light.woff.a3efb88f6f.0cf765a1.woff differ diff --git a/frontend-dist/Inter-Light.woff2.a3efb88f6f.f86a8a97.woff2 b/frontend-dist/Inter-Light.woff2.a3efb88f6f.f86a8a97.woff2 new file mode 100644 index 0000000000..ac2e1275ef Binary files /dev/null and b/frontend-dist/Inter-Light.woff2.a3efb88f6f.f86a8a97.woff2 differ diff --git a/frontend-dist/Inter-LightItalic.woff.a3efb88f6f.6c91af65.woff b/frontend-dist/Inter-LightItalic.woff.a3efb88f6f.6c91af65.woff new file mode 100644 index 0000000000..ebbb05b38e Binary files /dev/null and b/frontend-dist/Inter-LightItalic.woff.a3efb88f6f.6c91af65.woff differ diff --git a/frontend-dist/Inter-LightItalic.woff2.a3efb88f6f.cb22faff.woff2 b/frontend-dist/Inter-LightItalic.woff2.a3efb88f6f.cb22faff.woff2 new file mode 100644 index 0000000000..d51474ca18 Binary files /dev/null and b/frontend-dist/Inter-LightItalic.woff2.a3efb88f6f.cb22faff.woff2 differ diff --git a/frontend-dist/Inter-Medium.woff.a3efb88f6f.cb391d89.woff b/frontend-dist/Inter-Medium.woff.a3efb88f6f.cb391d89.woff new file mode 100644 index 0000000000..dac813a74e Binary files /dev/null and b/frontend-dist/Inter-Medium.woff.a3efb88f6f.cb391d89.woff differ diff --git a/frontend-dist/Inter-Medium.woff2.a3efb88f6f.4f0ea984.woff2 b/frontend-dist/Inter-Medium.woff2.a3efb88f6f.4f0ea984.woff2 new file mode 100644 index 0000000000..ab9850258e Binary files /dev/null and b/frontend-dist/Inter-Medium.woff2.a3efb88f6f.4f0ea984.woff2 differ diff --git a/frontend-dist/Inter-MediumItalic.woff.a3efb88f6f.1f636c25.woff b/frontend-dist/Inter-MediumItalic.woff.a3efb88f6f.1f636c25.woff new file mode 100644 index 0000000000..ae6e45fe3b Binary files /dev/null and b/frontend-dist/Inter-MediumItalic.woff.a3efb88f6f.1f636c25.woff differ diff --git a/frontend-dist/Inter-MediumItalic.woff2.a3efb88f6f.2b734b7a.woff2 b/frontend-dist/Inter-MediumItalic.woff2.a3efb88f6f.2b734b7a.woff2 new file mode 100644 index 0000000000..ceb866e424 Binary files /dev/null and b/frontend-dist/Inter-MediumItalic.woff2.a3efb88f6f.2b734b7a.woff2 differ diff --git a/frontend-dist/Inter-Regular.woff.a3efb88f6f.d9325c13.woff b/frontend-dist/Inter-Regular.woff.a3efb88f6f.d9325c13.woff new file mode 100644 index 0000000000..e3200e0b97 Binary files /dev/null and b/frontend-dist/Inter-Regular.woff.a3efb88f6f.d9325c13.woff differ diff --git a/frontend-dist/Inter-Regular.woff2.a3efb88f6f.c52a047f.woff2 b/frontend-dist/Inter-Regular.woff2.a3efb88f6f.c52a047f.woff2 new file mode 100644 index 0000000000..28ae0b6abb Binary files /dev/null and b/frontend-dist/Inter-Regular.woff2.a3efb88f6f.c52a047f.woff2 differ diff --git a/frontend-dist/Inter-SemiBold.woff.a3efb88f6f.c6670c13.woff b/frontend-dist/Inter-SemiBold.woff.a3efb88f6f.c6670c13.woff new file mode 100644 index 0000000000..295fbdfa95 Binary files /dev/null and b/frontend-dist/Inter-SemiBold.woff.a3efb88f6f.c6670c13.woff differ diff --git a/frontend-dist/Inter-SemiBold.woff2.a3efb88f6f.08366574.woff2 b/frontend-dist/Inter-SemiBold.woff2.a3efb88f6f.08366574.woff2 new file mode 100644 index 0000000000..41ebbbb022 Binary files /dev/null and b/frontend-dist/Inter-SemiBold.woff2.a3efb88f6f.08366574.woff2 differ diff --git a/frontend-dist/Inter-SemiBoldItalic.woff.a3efb88f6f.13394743.woff b/frontend-dist/Inter-SemiBoldItalic.woff.a3efb88f6f.13394743.woff new file mode 100644 index 0000000000..34d759f726 Binary files /dev/null and b/frontend-dist/Inter-SemiBoldItalic.woff.a3efb88f6f.13394743.woff differ diff --git a/frontend-dist/Inter-SemiBoldItalic.woff2.a3efb88f6f.5c7db07d.woff2 b/frontend-dist/Inter-SemiBoldItalic.woff2.a3efb88f6f.5c7db07d.woff2 new file mode 100644 index 0000000000..4dd025adf2 Binary files /dev/null and b/frontend-dist/Inter-SemiBoldItalic.woff2.a3efb88f6f.5c7db07d.woff2 differ diff --git a/frontend-dist/Inter-Thin.woff.a3efb88f6f.832f7e9d.woff b/frontend-dist/Inter-Thin.woff.a3efb88f6f.832f7e9d.woff new file mode 100644 index 0000000000..07ea92efba Binary files /dev/null and b/frontend-dist/Inter-Thin.woff.a3efb88f6f.832f7e9d.woff differ diff --git a/frontend-dist/Inter-Thin.woff2.a3efb88f6f.099a7dc1.woff2 b/frontend-dist/Inter-Thin.woff2.a3efb88f6f.099a7dc1.woff2 new file mode 100644 index 0000000000..72707dcd31 Binary files /dev/null and b/frontend-dist/Inter-Thin.woff2.a3efb88f6f.099a7dc1.woff2 differ diff --git a/frontend-dist/Inter-ThinItalic.woff.a3efb88f6f.9a9e646f.woff b/frontend-dist/Inter-ThinItalic.woff.a3efb88f6f.9a9e646f.woff new file mode 100644 index 0000000000..d35d6173ce Binary files /dev/null and b/frontend-dist/Inter-ThinItalic.woff.a3efb88f6f.9a9e646f.woff differ diff --git a/frontend-dist/Inter-ThinItalic.woff2.a3efb88f6f.f5b32cfe.woff2 b/frontend-dist/Inter-ThinItalic.woff2.a3efb88f6f.f5b32cfe.woff2 new file mode 100644 index 0000000000..884fe458c0 Binary files /dev/null and b/frontend-dist/Inter-ThinItalic.woff2.a3efb88f6f.f5b32cfe.woff2 differ diff --git a/frontend-dist/Inter-italic.var.woff2.a3efb88f6f.e62a3bb2.woff2 b/frontend-dist/Inter-italic.var.woff2.a3efb88f6f.e62a3bb2.woff2 new file mode 100644 index 0000000000..b1d4bdc363 Binary files /dev/null and b/frontend-dist/Inter-italic.var.woff2.a3efb88f6f.e62a3bb2.woff2 differ diff --git a/frontend-dist/Inter-roman.var.woff2.a3efb88f6f.8120837c.woff2 b/frontend-dist/Inter-roman.var.woff2.a3efb88f6f.8120837c.woff2 new file mode 100644 index 0000000000..f56c09796f Binary files /dev/null and b/frontend-dist/Inter-roman.var.woff2.a3efb88f6f.8120837c.woff2 differ diff --git a/frontend-dist/Inter.var.woff2.a3efb88f6f.ca82f9aa.woff2 b/frontend-dist/Inter.var.woff2.a3efb88f6f.ca82f9aa.woff2 new file mode 100644 index 0000000000..0c41431927 Binary files /dev/null and b/frontend-dist/Inter.var.woff2.a3efb88f6f.ca82f9aa.woff2 differ diff --git a/frontend-dist/JuliaMono-Bold.24b57d33.woff2 b/frontend-dist/JuliaMono-Bold.24b57d33.woff2 new file mode 100644 index 0000000000..212ccec354 Binary files /dev/null and b/frontend-dist/JuliaMono-Bold.24b57d33.woff2 differ diff --git a/frontend-dist/JuliaMono-BoldLatin.7ec5c608.woff2 b/frontend-dist/JuliaMono-BoldLatin.7ec5c608.woff2 new file mode 100644 index 0000000000..1f8dde89e5 Binary files /dev/null and b/frontend-dist/JuliaMono-BoldLatin.7ec5c608.woff2 differ diff --git a/frontend-dist/JuliaMono-Regular.e0106c6f.woff2 b/frontend-dist/JuliaMono-Regular.e0106c6f.woff2 new file mode 100644 index 0000000000..c2db127372 Binary files /dev/null and b/frontend-dist/JuliaMono-Regular.e0106c6f.woff2 differ diff --git a/frontend-dist/JuliaMono-RegularItalic.3159f647.woff2 b/frontend-dist/JuliaMono-RegularItalic.3159f647.woff2 new file mode 100644 index 0000000000..987502fedb Binary files /dev/null and b/frontend-dist/JuliaMono-RegularItalic.3159f647.woff2 differ diff --git a/frontend-dist/JuliaMono-RegularLatin.26c56b70.woff2 b/frontend-dist/JuliaMono-RegularLatin.26c56b70.woff2 new file mode 100644 index 0000000000..f159a92853 Binary files /dev/null and b/frontend-dist/JuliaMono-RegularLatin.26c56b70.woff2 differ diff --git a/frontend-dist/Vollkorn-Black.0ebdfbf5.woff2 b/frontend-dist/Vollkorn-Black.0ebdfbf5.woff2 new file mode 100644 index 0000000000..b51a37a406 Binary files /dev/null and b/frontend-dist/Vollkorn-Black.0ebdfbf5.woff2 differ diff --git a/frontend-dist/Vollkorn-BlackItalic.4095acfe.woff2 b/frontend-dist/Vollkorn-BlackItalic.4095acfe.woff2 new file mode 100644 index 0000000000..bb2e060ce4 Binary files /dev/null and b/frontend-dist/Vollkorn-BlackItalic.4095acfe.woff2 differ diff --git a/frontend-dist/Vollkorn-Bold.6e1feb70.woff2 b/frontend-dist/Vollkorn-Bold.6e1feb70.woff2 new file mode 100644 index 0000000000..cfb12e1520 Binary files /dev/null and b/frontend-dist/Vollkorn-Bold.6e1feb70.woff2 differ diff --git a/frontend-dist/Vollkorn-BoldItalic.a48ab300.woff2 b/frontend-dist/Vollkorn-BoldItalic.a48ab300.woff2 new file mode 100644 index 0000000000..23d7a6c844 Binary files /dev/null and b/frontend-dist/Vollkorn-BoldItalic.a48ab300.woff2 differ diff --git a/frontend-dist/Vollkorn-SemiBold.8072eb6c.woff2 b/frontend-dist/Vollkorn-SemiBold.8072eb6c.woff2 new file mode 100644 index 0000000000..78b781055b Binary files /dev/null and b/frontend-dist/Vollkorn-SemiBold.8072eb6c.woff2 differ diff --git a/frontend-dist/Vollkorn-SemiBoldItalic.5c3cd265.woff2 b/frontend-dist/Vollkorn-SemiBoldItalic.5c3cd265.woff2 new file mode 100644 index 0000000000..2162ab8ef4 Binary files /dev/null and b/frontend-dist/Vollkorn-SemiBoldItalic.5c3cd265.woff2 differ diff --git a/frontend-dist/add-outline.e3c93c35.svg b/frontend-dist/add-outline.e3c93c35.svg new file mode 100644 index 0000000000..7c7fb14877 --- /dev/null +++ b/frontend-dist/add-outline.e3c93c35.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend-dist/alegreya-sans-all-400-italic.f87bfe89.woff b/frontend-dist/alegreya-sans-all-400-italic.f87bfe89.woff new file mode 100644 index 0000000000..75ef6a5671 Binary files /dev/null and b/frontend-dist/alegreya-sans-all-400-italic.f87bfe89.woff differ diff --git a/frontend-dist/alegreya-sans-all-400-normal.a91dc265.woff b/frontend-dist/alegreya-sans-all-400-normal.a91dc265.woff new file mode 100644 index 0000000000..0658fd17cc Binary files /dev/null and b/frontend-dist/alegreya-sans-all-400-normal.a91dc265.woff differ diff --git a/frontend-dist/alegreya-sans-all-500-italic.8917c3da.woff b/frontend-dist/alegreya-sans-all-500-italic.8917c3da.woff new file mode 100644 index 0000000000..02b7436cd3 Binary files /dev/null and b/frontend-dist/alegreya-sans-all-500-italic.8917c3da.woff differ diff --git a/frontend-dist/alegreya-sans-all-500-normal.5db27a5b.woff b/frontend-dist/alegreya-sans-all-500-normal.5db27a5b.woff new file mode 100644 index 0000000000..4a6b7ff755 Binary files /dev/null and b/frontend-dist/alegreya-sans-all-500-normal.5db27a5b.woff differ diff --git a/frontend-dist/alegreya-sans-all-700-italic.a6d70e05.woff b/frontend-dist/alegreya-sans-all-700-italic.a6d70e05.woff new file mode 100644 index 0000000000..5118953a73 Binary files /dev/null and b/frontend-dist/alegreya-sans-all-700-italic.a6d70e05.woff differ diff --git a/frontend-dist/alegreya-sans-all-700-normal.29d7dfa9.woff b/frontend-dist/alegreya-sans-all-700-normal.29d7dfa9.woff new file mode 100644 index 0000000000..b8c1d8a284 Binary files /dev/null and b/frontend-dist/alegreya-sans-all-700-normal.29d7dfa9.woff differ diff --git a/frontend-dist/alegreya-sans-cyrillic-400-italic.8c81649c.woff2 b/frontend-dist/alegreya-sans-cyrillic-400-italic.8c81649c.woff2 new file mode 100644 index 0000000000..3ebce2cffa Binary files /dev/null and b/frontend-dist/alegreya-sans-cyrillic-400-italic.8c81649c.woff2 differ diff --git a/frontend-dist/alegreya-sans-cyrillic-400-normal.ab3d1dcc.woff2 b/frontend-dist/alegreya-sans-cyrillic-400-normal.ab3d1dcc.woff2 new file mode 100644 index 0000000000..3434d6ed9e Binary files /dev/null and b/frontend-dist/alegreya-sans-cyrillic-400-normal.ab3d1dcc.woff2 differ diff --git a/frontend-dist/alegreya-sans-cyrillic-500-italic.a40f95be.woff2 b/frontend-dist/alegreya-sans-cyrillic-500-italic.a40f95be.woff2 new file mode 100644 index 0000000000..7338c02062 Binary files /dev/null and b/frontend-dist/alegreya-sans-cyrillic-500-italic.a40f95be.woff2 differ diff --git a/frontend-dist/alegreya-sans-cyrillic-500-normal.8a029e9d.woff2 b/frontend-dist/alegreya-sans-cyrillic-500-normal.8a029e9d.woff2 new file mode 100644 index 0000000000..c3c821ba91 Binary files /dev/null and b/frontend-dist/alegreya-sans-cyrillic-500-normal.8a029e9d.woff2 differ diff --git a/frontend-dist/alegreya-sans-cyrillic-700-italic.c4ef17a2.woff2 b/frontend-dist/alegreya-sans-cyrillic-700-italic.c4ef17a2.woff2 new file mode 100644 index 0000000000..ad187b0b86 Binary files /dev/null and b/frontend-dist/alegreya-sans-cyrillic-700-italic.c4ef17a2.woff2 differ diff --git a/frontend-dist/alegreya-sans-cyrillic-700-normal.5a5aa5e3.woff2 b/frontend-dist/alegreya-sans-cyrillic-700-normal.5a5aa5e3.woff2 new file mode 100644 index 0000000000..dafc6f88c2 Binary files /dev/null and b/frontend-dist/alegreya-sans-cyrillic-700-normal.5a5aa5e3.woff2 differ diff --git a/frontend-dist/alegreya-sans-cyrillic-ext-400-italic.7c2a4a40.woff2 b/frontend-dist/alegreya-sans-cyrillic-ext-400-italic.7c2a4a40.woff2 new file mode 100644 index 0000000000..4ead31cd71 Binary files /dev/null and b/frontend-dist/alegreya-sans-cyrillic-ext-400-italic.7c2a4a40.woff2 differ diff --git a/frontend-dist/alegreya-sans-cyrillic-ext-400-normal.5f5cc2ef.woff2 b/frontend-dist/alegreya-sans-cyrillic-ext-400-normal.5f5cc2ef.woff2 new file mode 100644 index 0000000000..f81ae10995 Binary files /dev/null and b/frontend-dist/alegreya-sans-cyrillic-ext-400-normal.5f5cc2ef.woff2 differ diff --git a/frontend-dist/alegreya-sans-cyrillic-ext-500-italic.78248b65.woff2 b/frontend-dist/alegreya-sans-cyrillic-ext-500-italic.78248b65.woff2 new file mode 100644 index 0000000000..387eb05d64 Binary files /dev/null and b/frontend-dist/alegreya-sans-cyrillic-ext-500-italic.78248b65.woff2 differ diff --git a/frontend-dist/alegreya-sans-cyrillic-ext-500-normal.0e6ee102.woff2 b/frontend-dist/alegreya-sans-cyrillic-ext-500-normal.0e6ee102.woff2 new file mode 100644 index 0000000000..5f05b9e7d0 Binary files /dev/null and b/frontend-dist/alegreya-sans-cyrillic-ext-500-normal.0e6ee102.woff2 differ diff --git a/frontend-dist/alegreya-sans-cyrillic-ext-700-italic.69b0617e.woff2 b/frontend-dist/alegreya-sans-cyrillic-ext-700-italic.69b0617e.woff2 new file mode 100644 index 0000000000..ae9dc86ec0 Binary files /dev/null and b/frontend-dist/alegreya-sans-cyrillic-ext-700-italic.69b0617e.woff2 differ diff --git a/frontend-dist/alegreya-sans-cyrillic-ext-700-normal.2e02b08f.woff2 b/frontend-dist/alegreya-sans-cyrillic-ext-700-normal.2e02b08f.woff2 new file mode 100644 index 0000000000..43b5ba1286 Binary files /dev/null and b/frontend-dist/alegreya-sans-cyrillic-ext-700-normal.2e02b08f.woff2 differ diff --git a/frontend-dist/alegreya-sans-greek-400-italic.1b909c63.woff2 b/frontend-dist/alegreya-sans-greek-400-italic.1b909c63.woff2 new file mode 100644 index 0000000000..c1cebd7a3f Binary files /dev/null and b/frontend-dist/alegreya-sans-greek-400-italic.1b909c63.woff2 differ diff --git a/frontend-dist/alegreya-sans-greek-400-normal.4e5a8597.woff2 b/frontend-dist/alegreya-sans-greek-400-normal.4e5a8597.woff2 new file mode 100644 index 0000000000..19ba95016c Binary files /dev/null and b/frontend-dist/alegreya-sans-greek-400-normal.4e5a8597.woff2 differ diff --git a/frontend-dist/alegreya-sans-greek-500-italic.19d09eea.woff2 b/frontend-dist/alegreya-sans-greek-500-italic.19d09eea.woff2 new file mode 100644 index 0000000000..5b9906e9c0 Binary files /dev/null and b/frontend-dist/alegreya-sans-greek-500-italic.19d09eea.woff2 differ diff --git a/frontend-dist/alegreya-sans-greek-500-normal.54a6041f.woff2 b/frontend-dist/alegreya-sans-greek-500-normal.54a6041f.woff2 new file mode 100644 index 0000000000..5cb0e6b5a0 Binary files /dev/null and b/frontend-dist/alegreya-sans-greek-500-normal.54a6041f.woff2 differ diff --git a/frontend-dist/alegreya-sans-greek-700-italic.5aef27cf.woff2 b/frontend-dist/alegreya-sans-greek-700-italic.5aef27cf.woff2 new file mode 100644 index 0000000000..2a17d2edfa Binary files /dev/null and b/frontend-dist/alegreya-sans-greek-700-italic.5aef27cf.woff2 differ diff --git a/frontend-dist/alegreya-sans-greek-700-normal.452fc62e.woff2 b/frontend-dist/alegreya-sans-greek-700-normal.452fc62e.woff2 new file mode 100644 index 0000000000..7415e7b66d Binary files /dev/null and b/frontend-dist/alegreya-sans-greek-700-normal.452fc62e.woff2 differ diff --git a/frontend-dist/alegreya-sans-greek-ext-400-italic.550f5118.woff2 b/frontend-dist/alegreya-sans-greek-ext-400-italic.550f5118.woff2 new file mode 100644 index 0000000000..4ddc332622 Binary files /dev/null and b/frontend-dist/alegreya-sans-greek-ext-400-italic.550f5118.woff2 differ diff --git a/frontend-dist/alegreya-sans-greek-ext-400-normal.b82a0aea.woff2 b/frontend-dist/alegreya-sans-greek-ext-400-normal.b82a0aea.woff2 new file mode 100644 index 0000000000..f85a41731d Binary files /dev/null and b/frontend-dist/alegreya-sans-greek-ext-400-normal.b82a0aea.woff2 differ diff --git a/frontend-dist/alegreya-sans-greek-ext-500-italic.8b2e952b.woff2 b/frontend-dist/alegreya-sans-greek-ext-500-italic.8b2e952b.woff2 new file mode 100644 index 0000000000..77cf5e4551 Binary files /dev/null and b/frontend-dist/alegreya-sans-greek-ext-500-italic.8b2e952b.woff2 differ diff --git a/frontend-dist/alegreya-sans-greek-ext-500-normal.00f2c6f3.woff2 b/frontend-dist/alegreya-sans-greek-ext-500-normal.00f2c6f3.woff2 new file mode 100644 index 0000000000..a6681017e2 Binary files /dev/null and b/frontend-dist/alegreya-sans-greek-ext-500-normal.00f2c6f3.woff2 differ diff --git a/frontend-dist/alegreya-sans-greek-ext-700-italic.a1ccc0c2.woff2 b/frontend-dist/alegreya-sans-greek-ext-700-italic.a1ccc0c2.woff2 new file mode 100644 index 0000000000..ad23a55e70 Binary files /dev/null and b/frontend-dist/alegreya-sans-greek-ext-700-italic.a1ccc0c2.woff2 differ diff --git a/frontend-dist/alegreya-sans-greek-ext-700-normal.ca9ee8e1.woff2 b/frontend-dist/alegreya-sans-greek-ext-700-normal.ca9ee8e1.woff2 new file mode 100644 index 0000000000..49c5654293 Binary files /dev/null and b/frontend-dist/alegreya-sans-greek-ext-700-normal.ca9ee8e1.woff2 differ diff --git a/frontend-dist/alegreya-sans-latin-400-italic.ec56f658.woff2 b/frontend-dist/alegreya-sans-latin-400-italic.ec56f658.woff2 new file mode 100644 index 0000000000..df999c7eb2 Binary files /dev/null and b/frontend-dist/alegreya-sans-latin-400-italic.ec56f658.woff2 differ diff --git a/frontend-dist/alegreya-sans-latin-400-normal.62b57001.woff2 b/frontend-dist/alegreya-sans-latin-400-normal.62b57001.woff2 new file mode 100644 index 0000000000..5d98f5cde9 Binary files /dev/null and b/frontend-dist/alegreya-sans-latin-400-normal.62b57001.woff2 differ diff --git a/frontend-dist/alegreya-sans-latin-500-italic.6d8350bf.woff2 b/frontend-dist/alegreya-sans-latin-500-italic.6d8350bf.woff2 new file mode 100644 index 0000000000..7cd291700f Binary files /dev/null and b/frontend-dist/alegreya-sans-latin-500-italic.6d8350bf.woff2 differ diff --git a/frontend-dist/alegreya-sans-latin-500-normal.4428c984.woff2 b/frontend-dist/alegreya-sans-latin-500-normal.4428c984.woff2 new file mode 100644 index 0000000000..cf40f1fce9 Binary files /dev/null and b/frontend-dist/alegreya-sans-latin-500-normal.4428c984.woff2 differ diff --git a/frontend-dist/alegreya-sans-latin-700-italic.abc64c8a.woff2 b/frontend-dist/alegreya-sans-latin-700-italic.abc64c8a.woff2 new file mode 100644 index 0000000000..befb4809c6 Binary files /dev/null and b/frontend-dist/alegreya-sans-latin-700-italic.abc64c8a.woff2 differ diff --git a/frontend-dist/alegreya-sans-latin-700-normal.96e2fcc9.woff2 b/frontend-dist/alegreya-sans-latin-700-normal.96e2fcc9.woff2 new file mode 100644 index 0000000000..de0826d1b8 Binary files /dev/null and b/frontend-dist/alegreya-sans-latin-700-normal.96e2fcc9.woff2 differ diff --git a/frontend-dist/alegreya-sans-latin-ext-400-italic.b9ce632b.woff2 b/frontend-dist/alegreya-sans-latin-ext-400-italic.b9ce632b.woff2 new file mode 100644 index 0000000000..c15ce0ec2c Binary files /dev/null and b/frontend-dist/alegreya-sans-latin-ext-400-italic.b9ce632b.woff2 differ diff --git a/frontend-dist/alegreya-sans-latin-ext-400-normal.1c1602b0.woff2 b/frontend-dist/alegreya-sans-latin-ext-400-normal.1c1602b0.woff2 new file mode 100644 index 0000000000..cc81c0133c Binary files /dev/null and b/frontend-dist/alegreya-sans-latin-ext-400-normal.1c1602b0.woff2 differ diff --git a/frontend-dist/alegreya-sans-latin-ext-500-italic.d15c8f11.woff2 b/frontend-dist/alegreya-sans-latin-ext-500-italic.d15c8f11.woff2 new file mode 100644 index 0000000000..c707422915 Binary files /dev/null and b/frontend-dist/alegreya-sans-latin-ext-500-italic.d15c8f11.woff2 differ diff --git a/frontend-dist/alegreya-sans-latin-ext-500-normal.637067c1.woff2 b/frontend-dist/alegreya-sans-latin-ext-500-normal.637067c1.woff2 new file mode 100644 index 0000000000..6b61635fa8 Binary files /dev/null and b/frontend-dist/alegreya-sans-latin-ext-500-normal.637067c1.woff2 differ diff --git a/frontend-dist/alegreya-sans-latin-ext-700-italic.733aea09.woff2 b/frontend-dist/alegreya-sans-latin-ext-700-italic.733aea09.woff2 new file mode 100644 index 0000000000..631822edac Binary files /dev/null and b/frontend-dist/alegreya-sans-latin-ext-700-italic.733aea09.woff2 differ diff --git a/frontend-dist/alegreya-sans-latin-ext-700-normal.b5306f41.woff2 b/frontend-dist/alegreya-sans-latin-ext-700-normal.b5306f41.woff2 new file mode 100644 index 0000000000..1896761236 Binary files /dev/null and b/frontend-dist/alegreya-sans-latin-ext-700-normal.b5306f41.woff2 differ diff --git a/frontend-dist/alegreya-sans-vietnamese-400-italic.d08e8dff.woff2 b/frontend-dist/alegreya-sans-vietnamese-400-italic.d08e8dff.woff2 new file mode 100644 index 0000000000..5552c00e3d Binary files /dev/null and b/frontend-dist/alegreya-sans-vietnamese-400-italic.d08e8dff.woff2 differ diff --git a/frontend-dist/alegreya-sans-vietnamese-400-normal.bdc8a622.woff2 b/frontend-dist/alegreya-sans-vietnamese-400-normal.bdc8a622.woff2 new file mode 100644 index 0000000000..3ec2c8eb20 Binary files /dev/null and b/frontend-dist/alegreya-sans-vietnamese-400-normal.bdc8a622.woff2 differ diff --git a/frontend-dist/alegreya-sans-vietnamese-500-italic.3ff20df8.woff2 b/frontend-dist/alegreya-sans-vietnamese-500-italic.3ff20df8.woff2 new file mode 100644 index 0000000000..528c2f36f7 Binary files /dev/null and b/frontend-dist/alegreya-sans-vietnamese-500-italic.3ff20df8.woff2 differ diff --git a/frontend-dist/alegreya-sans-vietnamese-500-normal.97e250df.woff2 b/frontend-dist/alegreya-sans-vietnamese-500-normal.97e250df.woff2 new file mode 100644 index 0000000000..7f1f015cb3 Binary files /dev/null and b/frontend-dist/alegreya-sans-vietnamese-500-normal.97e250df.woff2 differ diff --git a/frontend-dist/alegreya-sans-vietnamese-700-italic.7de0cccc.woff2 b/frontend-dist/alegreya-sans-vietnamese-700-italic.7de0cccc.woff2 new file mode 100644 index 0000000000..8bdb25ba3c Binary files /dev/null and b/frontend-dist/alegreya-sans-vietnamese-700-italic.7de0cccc.woff2 differ diff --git a/frontend-dist/alegreya-sans-vietnamese-700-normal.59390763.woff2 b/frontend-dist/alegreya-sans-vietnamese-700-normal.59390763.woff2 new file mode 100644 index 0000000000..bc5e38d57d Binary files /dev/null and b/frontend-dist/alegreya-sans-vietnamese-700-normal.59390763.woff2 differ diff --git a/frontend-dist/arrow-back-outline.9ae1bed8.svg b/frontend-dist/arrow-back-outline.9ae1bed8.svg new file mode 100644 index 0000000000..8fc34ff6ec --- /dev/null +++ b/frontend-dist/arrow-back-outline.9ae1bed8.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend-dist/arrow-forward-outline.f5f68f5c.svg b/frontend-dist/arrow-forward-outline.f5f68f5c.svg new file mode 100644 index 0000000000..32a9f4f309 --- /dev/null +++ b/frontend-dist/arrow-forward-outline.f5f68f5c.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend-dist/arrow-redo-circle-outline.dfa899f4.svg b/frontend-dist/arrow-redo-circle-outline.dfa899f4.svg new file mode 100644 index 0000000000..d0d9e1124d --- /dev/null +++ b/frontend-dist/arrow-redo-circle-outline.dfa899f4.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend-dist/arrow-undo-outline.d8c99108.svg b/frontend-dist/arrow-undo-outline.d8c99108.svg new file mode 100644 index 0000000000..a5d529e729 --- /dev/null +++ b/frontend-dist/arrow-undo-outline.d8c99108.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend-dist/arrow-up-circle-outline.3f146ffe.svg b/frontend-dist/arrow-up-circle-outline.3f146ffe.svg new file mode 100644 index 0000000000..ba46f260f7 --- /dev/null +++ b/frontend-dist/arrow-up-circle-outline.3f146ffe.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend-dist/ban-outline.c97da9b4.svg b/frontend-dist/ban-outline.c97da9b4.svg new file mode 100644 index 0000000000..c52ff62277 --- /dev/null +++ b/frontend-dist/ban-outline.c97da9b4.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend-dist/caret-down-outline.4253a2fe.svg b/frontend-dist/caret-down-outline.4253a2fe.svg new file mode 100644 index 0000000000..c4c15b4722 --- /dev/null +++ b/frontend-dist/caret-down-outline.4253a2fe.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend-dist/caret-forward-circle-outline.d0bf2b34.svg b/frontend-dist/caret-forward-circle-outline.d0bf2b34.svg new file mode 100644 index 0000000000..093c8e4ca2 --- /dev/null +++ b/frontend-dist/caret-forward-circle-outline.d0bf2b34.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend-dist/caret-forward-outline.348a84b6.svg b/frontend-dist/caret-forward-outline.348a84b6.svg new file mode 100644 index 0000000000..888285c953 --- /dev/null +++ b/frontend-dist/caret-forward-outline.348a84b6.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend-dist/chatbox-ellipses-outline.4334a3a4.svg b/frontend-dist/chatbox-ellipses-outline.4334a3a4.svg new file mode 100644 index 0000000000..4e04a58545 --- /dev/null +++ b/frontend-dist/chatbox-ellipses-outline.4334a3a4.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend-dist/checkmark-outline.4fb8c646.svg b/frontend-dist/checkmark-outline.4fb8c646.svg new file mode 100644 index 0000000000..f62dcf9212 --- /dev/null +++ b/frontend-dist/checkmark-outline.4fb8c646.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend-dist/chevron-down-outline.1efaf1cc.svg b/frontend-dist/chevron-down-outline.1efaf1cc.svg new file mode 100644 index 0000000000..e7a50cd112 --- /dev/null +++ b/frontend-dist/chevron-down-outline.1efaf1cc.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend-dist/chevron-forward-circle-outline.babf2a99.svg b/frontend-dist/chevron-forward-circle-outline.babf2a99.svg new file mode 100644 index 0000000000..9e63a3c049 --- /dev/null +++ b/frontend-dist/chevron-forward-circle-outline.babf2a99.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend-dist/close-circle-outline.4baeedb9.svg b/frontend-dist/close-circle-outline.4baeedb9.svg new file mode 100644 index 0000000000..588e2d4c82 --- /dev/null +++ b/frontend-dist/close-circle-outline.4baeedb9.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend-dist/close-circle.d0f6eac6.svg b/frontend-dist/close-circle.d0f6eac6.svg new file mode 100644 index 0000000000..cce96081a3 --- /dev/null +++ b/frontend-dist/close-circle.d0f6eac6.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend-dist/close-outline.9c22a232.svg b/frontend-dist/close-outline.9c22a232.svg new file mode 100644 index 0000000000..17d07818e6 --- /dev/null +++ b/frontend-dist/close-outline.9c22a232.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend-dist/cloud-download-outline.8c1ff9bb.svg b/frontend-dist/cloud-download-outline.8c1ff9bb.svg new file mode 100644 index 0000000000..939a8c238e --- /dev/null +++ b/frontend-dist/cloud-download-outline.8c1ff9bb.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend-dist/cloud-offline-outline.ac2eade9.svg b/frontend-dist/cloud-offline-outline.ac2eade9.svg new file mode 100644 index 0000000000..426ff3b0d9 --- /dev/null +++ b/frontend-dist/cloud-offline-outline.ac2eade9.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend-dist/copy-outline.0f561529.svg b/frontend-dist/copy-outline.0f561529.svg new file mode 100644 index 0000000000..01e29db632 --- /dev/null +++ b/frontend-dist/copy-outline.0f561529.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend-dist/document-lock-outline.69d176a4.svg b/frontend-dist/document-lock-outline.69d176a4.svg new file mode 100644 index 0000000000..b602b075c3 --- /dev/null +++ b/frontend-dist/document-lock-outline.69d176a4.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend-dist/document-text-outline.8d1e2333.svg b/frontend-dist/document-text-outline.8d1e2333.svg new file mode 100644 index 0000000000..dacd264f49 --- /dev/null +++ b/frontend-dist/document-text-outline.8d1e2333.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend-dist/download-outline.523a74d8.svg b/frontend-dist/download-outline.523a74d8.svg new file mode 100644 index 0000000000..8f0e680543 --- /dev/null +++ b/frontend-dist/download-outline.523a74d8.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend-dist/easel-outline.9b064e1f.svg b/frontend-dist/easel-outline.9b064e1f.svg new file mode 100644 index 0000000000..cb8186f590 --- /dev/null +++ b/frontend-dist/easel-outline.9b064e1f.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend-dist/editor.0c13a924.js b/frontend-dist/editor.0c13a924.js new file mode 100644 index 0000000000..1f406683b1 --- /dev/null +++ b/frontend-dist/editor.0c13a924.js @@ -0,0 +1,41 @@ +function e(e,t,i,r){Object.defineProperty(e,t,{get:i,set:r,enumerable:!0,configurable:!0})}var t="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},i={},r={},n=t.parcelRequire94c2;null==n&&((n=function(e){if(e in i)return i[e].exports;if(e in r){var t=r[e];delete r[e];var n={id:e,exports:{}};return i[e]=n,t.call(n.exports,n,n.exports),n.exports}var o=new Error("Cannot find module '"+e+"'");throw o.code="MODULE_NOT_FOUND",o}).register=function(e,t){r[e]=t},t.parcelRequire94c2=n),n.register("cNaMA",(function(t,i){e(t.exports,"html",(()=>o)),e(t.exports,"render",(()=>n("3vOYv").render)),e(t.exports,"Component",(()=>n("3vOYv").Component)),e(t.exports,"useEffect",(()=>n("exxBE").useEffect)),e(t.exports,"useLayoutEffect",(()=>n("exxBE").useLayoutEffect)),e(t.exports,"useState",(()=>n("exxBE").useState)),e(t.exports,"useRef",(()=>n("exxBE").useRef)),e(t.exports,"useMemo",(()=>n("exxBE").useMemo)),e(t.exports,"useCallback",(()=>n("exxBE").useCallback)),e(t.exports,"useErrorBoundary",(()=>n("exxBE").useErrorBoundary)),e(t.exports,"createContext",(()=>n("3vOYv").createContext)),e(t.exports,"createRef",(()=>n("3vOYv").createRef)),e(t.exports,"useContext",(()=>n("exxBE").useContext)),e(t.exports,"h",(()=>n("3vOYv").h)),e(t.exports,"cloneElement",(()=>n("3vOYv").cloneElement)),e(t.exports,"hydrate",(()=>n("3vOYv").hydrate)),n("648C5");var r=n("3vOYv");n("g47wy");n("exxBE");n("4KWiy");const o=n("lNRSt").default.bind(r.h)})),n.register("648C5",(function(t,i){e(t.exports,"h",(()=>n("3vOYv").h)),e(t.exports,"render",(()=>n("3vOYv").render)),e(t.exports,"Component",(()=>n("3vOYv").Component)),e(t.exports,"createContext",(()=>n("3vOYv").createContext)),e(t.exports,"createRef",(()=>n("3vOYv").createRef)),e(t.exports,"cloneElement",(()=>n("3vOYv").cloneElement)),e(t.exports,"hydrate",(()=>n("3vOYv").hydrate)),n("3vOYv")})),n.register("3vOYv",(function(t,i){e(t.exports,"options",(()=>n)),e(t.exports,"createRef",(()=>m)),e(t.exports,"Component",(()=>b)),e(t.exports,"render",(()=>C)),e(t.exports,"hydrate",(()=>U)),e(t.exports,"cloneElement",(()=>N)),e(t.exports,"createContext",(()=>j)),e(t.exports,"h",(()=>Q));var r,n,o,s,O,a,l,h,c={},u=[],f=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i;function d(e,t){for(var i in t)e[i]=t[i];return e}function p(e){var t=e.parentNode;t&&t.removeChild(e)}function Q(e,t,i){var n,o,s,O={};for(s in t)"key"==s?n=t[s]:"ref"==s?o=t[s]:O[s]=t[s];if(arguments.length>2&&(O.children=arguments.length>3?r.call(arguments,2):i),"function"==typeof e&&null!=e.defaultProps)for(s in e.defaultProps)void 0===O[s]&&(O[s]=e.defaultProps[s]);return g(e,O,n,o,null)}function g(e,t,i,r,s){var O={type:e,props:t,key:i,ref:r,__k:null,__:null,__b:0,__e:null,__d:void 0,__c:null,__h:null,constructor:void 0,__v:s??++o};return null==s&&null!=n.vnode&&n.vnode(O),O}function m(){return{current:null}}function $(e){return e.children}function b(e,t){this.props=e,this.context=t}function X(e,t){if(null==t)return e.__?X(e.__,e.__.__k.indexOf(e)+1):null;for(var i;tt&&s.sort(l));v.__r=0}function P(e,t,i,r,n,o,s,O,a,l){var h,f,d,p,Q,m,b,S=r&&r.__k||u,y=S.length;for(i.__k=[],h=0;h0?g(p.type,p.props,p.key,p.ref?p.ref:null,p.__v):p)){if(p.__=i,p.__b=i.__b+1,null===(d=S[h])||d&&p.key==d.key&&p.type===d.type)S[h]=void 0;else for(f=0;f=0;t--)if((i=e.__k[t])&&(r=T(i)))return r;return null}function k(e,t,i){"-"===t[0]?e.setProperty(t,i??""):e[t]=null==i?"":"number"!=typeof i||f.test(t)?i:i+"px"}function Y(e,t,i,r,n){var o;e:if("style"===t)if("string"==typeof i)e.style.cssText=i;else{if("string"==typeof r&&(e.style.cssText=r=""),r)for(t in r)i&&t in i||k(e.style,t,"");if(i)for(t in i)r&&i[t]===r[t]||k(e.style,t,i[t])}else if("o"===t[0]&&"n"===t[1])o=t!==(t=t.replace(/Capture$/,"")),t=t.toLowerCase()in e?t.toLowerCase().slice(2):t.slice(2),e.l||(e.l={}),e.l[t+o]=i,i?r||e.addEventListener(t,o?_:R,o):e.removeEventListener(t,o?_:R,o);else if("dangerouslySetInnerHTML"!==t){if(n)t=t.replace(/xlink(H|:h)/,"h").replace(/sName$/,"s");else if("width"!==t&&"height"!==t&&"href"!==t&&"list"!==t&&"form"!==t&&"tabIndex"!==t&&"download"!==t&&t in e)try{e[t]=i??"";break e}catch{}"function"==typeof i||(null==i||!1===i&&"-"!==t[4]?e.removeAttribute(t):e.setAttribute(t,i))}}function R(e){return this.l[e.type+!1](n.event?n.event(e):e)}function _(e){return this.l[e.type+!0](n.event?n.event(e):e)}function V(e,t,i,o,s,O,a,l,h){var u,f,Q,g,m,S,y,v,x,w,T,k,R,_,V,Z=t.type;if(void 0!==t.constructor)return null;null!=i.__h&&(h=i.__h,l=t.__e=i.__e,t.__h=null,O=[l]),(u=n.__b)&&u(t);try{e:if("function"==typeof Z){if(v=t.props,x=(u=Z.contextType)&&o[u.__c],w=u?x?x.props.value:u.__:o,i.__c?y=(f=t.__c=i.__c).__=f.__E:("prototype"in Z&&Z.prototype.render?t.__c=f=new Z(v,w):(t.__c=f=new b(v,w),f.constructor=Z,f.render=W),x&&x.sub(f),f.props=v,f.state||(f.state={}),f.context=w,f.__n=o,Q=f.__d=!0,f.__h=[],f._sb=[]),null==f.__s&&(f.__s=f.state),null!=Z.getDerivedStateFromProps&&(f.__s==f.state&&(f.__s=d({},f.__s)),d(f.__s,Z.getDerivedStateFromProps(v,f.__s))),g=f.props,m=f.state,f.__v=t,Q)null==Z.getDerivedStateFromProps&&null!=f.componentWillMount&&f.componentWillMount(),null!=f.componentDidMount&&f.__h.push(f.componentDidMount);else{if(null==Z.getDerivedStateFromProps&&v!==g&&null!=f.componentWillReceiveProps&&f.componentWillReceiveProps(v,w),!f.__e&&null!=f.shouldComponentUpdate&&!1===f.shouldComponentUpdate(v,f.__s,w)||t.__v===i.__v){for(t.__v!==i.__v&&(f.props=v,f.state=f.__s,f.__d=!1),f.__e=!1,t.__e=i.__e,t.__k=i.__k,t.__k.forEach((function(e){e&&(e.__=t)})),T=0;T2&&(O.children=arguments.length>3?r.call(arguments,2):i),g(e.type,O,n||e.key,o||e.ref,null)}function j(e,t){var i={__c:t="__cC"+h++,__:e,Consumer:function(e,t){return e.children(t)},Provider:function(e){var i,r;return this.getChildContext||(i=[],(r={})[t]=this,this.getChildContext=function(){return r},this.shouldComponentUpdate=function(e){this.props.value!==e.value&&i.some((function(e){e.__e=!0,y(e)}))},this.sub=function(e){i.push(e);var t=e.componentWillUnmount;e.componentWillUnmount=function(){i.splice(i.indexOf(e),1),t&&t.call(e)}}),e.children}};return i.Provider.__=i.Consumer.contextType=i}r=u.slice,n={__e:function(e,t,i,r){for(var n,o,s;t=t.__;)if((n=t.__c)&&!n.__)try{if((o=n.constructor)&&null!=o.getDerivedStateFromError&&(n.setState(o.getDerivedStateFromError(e)),s=n.__d),null!=n.componentDidCatch&&(n.componentDidCatch(e,r||{}),s=n.__d),s)return n.__E=n}catch(t){e=t}throw e}},o=0,b.prototype.setState=function(e,t){var i;i=null!=this.__s&&this.__s!==this.state?this.__s:this.__s=d({},this.state),"function"==typeof e&&(e=e(d({},i),this.props)),e&&d(i,e),null!=e&&this.__v&&(t&&this._sb.push(t),y(this))},b.prototype.forceUpdate=function(e){this.__v&&(this.__e=!0,e&&this.__h.push(e),y(this))},b.prototype.render=$,s=[],a="function"==typeof Promise?Promise.prototype.then.bind(Promise.resolve()):setTimeout,l=function(e,t){return e.__v.__b-t.__v.__b},v.__r=0,h=0})),n.register("g47wy",(function(t,i){e(t.exports,"useEffect",(()=>n("exxBE").useEffect)),e(t.exports,"useLayoutEffect",(()=>n("exxBE").useLayoutEffect)),e(t.exports,"useState",(()=>n("exxBE").useState)),e(t.exports,"useRef",(()=>n("exxBE").useRef)),e(t.exports,"useMemo",(()=>n("exxBE").useMemo)),e(t.exports,"useCallback",(()=>n("exxBE").useCallback)),e(t.exports,"useErrorBoundary",(()=>n("exxBE").useErrorBoundary)),e(t.exports,"useContext",(()=>n("exxBE").useContext)),n("3vOYv"),n("exxBE")})),n.register("exxBE",(function(t,i){e(t.exports,"useState",(()=>m)),e(t.exports,"useEffect",(()=>$)),e(t.exports,"useLayoutEffect",(()=>b)),e(t.exports,"useRef",(()=>X)),e(t.exports,"useMemo",(()=>S)),e(t.exports,"useCallback",(()=>y)),e(t.exports,"useContext",(()=>v)),e(t.exports,"useErrorBoundary",(()=>P));var r,o,s,O,a=n("3vOYv"),l=0,h=[],c=[],u=a.options.__b,f=a.options.__r,d=a.options.diffed,p=a.options.__c,Q=a.options.unmount;function g(e,t){a.options.__h&&a.options.__h(o,e,l||t),l=0;var i=o.__H||(o.__H={__:[],__h:[]});return e>=i.__.length&&i.__.push({__V:c}),i.__[e]}function m(e){return l=1,function(e,t,i){var n=g(r++,2);if(n.t=e,!n.__c&&(n.__=[i?i(t):_(void 0,t),function(e){var t=n.__N?n.__N[0]:n.__[0],i=n.t(t,e);t!==i&&(n.__N=[i,n.__[1]],n.__c.setState({}))}],n.__c=o,!o.u)){var s=function(e,t,i){if(!n.__c.__H)return!0;var r=n.__c.__H.__.filter((function(e){return e.__c}));if(r.every((function(e){return!e.__N})))return!O||O.call(this,e,t,i);var o=!1;return r.forEach((function(e){if(e.__N){var t=e.__[0];e.__=e.__N,e.__N=void 0,t!==e.__[0]&&(o=!0)}})),!(!o&&n.__c.props===e)&&(!O||O.call(this,e,t,i))};o.u=!0;var O=o.shouldComponentUpdate,a=o.componentWillUpdate;o.componentWillUpdate=function(e,t,i){if(this.__e){var r=O;O=void 0,s(e,t,i),O=r}a&&a.call(this,e,t,i)},o.shouldComponentUpdate=s}return n.__N||n.__}(_,e)}function $(e,t){var i=g(r++,3);!a.options.__s&&R(i.__H,t)&&(i.__=e,i.i=t,o.__H.__h.push(i))}function b(e,t){var i=g(r++,4);!a.options.__s&&R(i.__H,t)&&(i.__=e,i.i=t,o.__h.push(i))}function X(e){return l=5,S((function(){return{current:e}}),[])}function S(e,t){var i=g(r++,7);return R(i.__H,t)?(i.__V=e(),i.i=t,i.__h=e,i.__V):i.__}function y(e,t){return l=8,S((function(){return e}),t)}function v(e){var t=o.context[e.__c],i=g(r++,9);return i.c=e,t?(null==i.__&&(i.__=!0,t.sub(o)),t.props.value):e.__}function P(e){var t=g(r++,10),i=m();return t.__=e,o.componentDidCatch||(o.componentDidCatch=function(e,r){t.__&&t.__(e,r),i[1](e)}),[i[0],function(){i[1](void 0)}]}function x(){for(var e;e=h.shift();)if(e.__P&&e.__H)try{e.__H.__h.forEach(k),e.__H.__h.forEach(Y),e.__H.__h=[]}catch(t){e.__H.__h=[],a.options.__e(t,e.__v)}}a.options.__b=function(e){o=null,u&&u(e)},a.options.__r=function(e){f&&f(e),r=0;var t=(o=e.__c).__H;t&&(s===o?(t.__h=[],o.__h=[],t.__.forEach((function(e){e.__N&&(e.__=e.__N),e.__V=c,e.__N=e.i=void 0}))):(t.__h.forEach(k),t.__h.forEach(Y),t.__h=[])),s=o},a.options.diffed=function(e){d&&d(e);var t=e.__c;t&&t.__H&&(t.__H.__h.length&&(1!==h.push(t)&&O===a.options.requestAnimationFrame||((O=a.options.requestAnimationFrame)||T)(x)),t.__H.__.forEach((function(e){e.i&&(e.__H=e.i),e.__V!==c&&(e.__=e.__V),e.i=void 0,e.__V=c}))),s=o=null},a.options.__c=function(e,t){t.some((function(e){try{e.__h.forEach(k),e.__h=e.__h.filter((function(e){return!e.__||Y(e)}))}catch(i){t.some((function(e){e.__h&&(e.__h=[])})),t=[],a.options.__e(i,e.__v)}})),p&&p(e,t)},a.options.unmount=function(e){Q&&Q(e);var t,i=e.__c;i&&i.__H&&(i.__H.__.forEach((function(e){try{k(e)}catch(e){t=e}})),i.__H=void 0,t&&a.options.__e(t,i.__v))};var w="function"==typeof requestAnimationFrame;function T(e){var t,i=function(){clearTimeout(r),w&&cancelAnimationFrame(t),setTimeout(e)},r=setTimeout(i,100);w&&(t=requestAnimationFrame(i))}function k(e){var t=o,i=e.__c;"function"==typeof i&&(e.__c=void 0,i()),o=t}function Y(e){var t=o;e.__c=e.__(),o=t}function R(e,t){return!e||e.length!==t.length||t.some((function(t,i){return t!==e[i]}))}function _(e,t){return"function"==typeof t?t(e):t}})),n.register("4KWiy",(function(t,i){var r;r=t.exports,Object.defineProperty(r,"__esModule",{value:!0,configurable:!0}),e(t.exports,"default",(()=>n("lNRSt").default));n("lNRSt"),n("lNRSt")})),n.register("lNRSt",(function(t,i){e(t.exports,"default",(()=>o));var r=function(e,t,i,n){var o;t[0]=0;for(var s=1;s=5&&((n||!e&&5===r)&&(s.push(r,0,n,i),r=6),e&&(s.push(r,e,0,i),r=6)),n=""},a=0;a"===t?(r=1,n=""):n=t+n[0]:o?t===o?o="":n+=t:'"'===t||"'"===t?o=t:">"===t?(O(),r=1):r&&("="===t?(r=5,i=n,n=""):"/"===t&&(r<5||">"===e[a][l+1])?(O(),3===r&&(s=s[0]),r=s,(s=s[0]).push(2,0,r),r=0):" "===t||"\t"===t||"\n"===t||"\r"===t?(O(),r=2):n+=t),3===r&&"!--"===n&&(r=4,s=s[0])}return O(),s}(e)),t),arguments,[])).length>1?t:t[0]}})),n.register("eS9BV",(function(e,t){try{null==window.process&&(window.process={}),null==window.process.env&&(window.process.env={}),window.process.env.NODE_ENV="production"}catch(e){console.warn("Couldn't set window.process.env, this might break some things")}})),n.register("9Ta4i",(function(t,i){e(t.exports,"default",(()=>r));var r=window._})),n.register("4zMEb",(function(t,i){e(t.exports,"timeout_promise",(()=>O)),e(t.exports,"ws_address_from_base",(()=>f)),e(t.exports,"create_pluto_connection",(()=>p));var r=n("fUfdR"),o=n("k9crH");n("iYcLY");var s=n("41Mhf");const O=(e,t)=>Promise.race([e,new Promise(((e,i)=>{setTimeout((()=>{i(new Error("Promise timed out."))}),t)}))]),a=()=>crypto.getRandomValues(new Uint32Array(1))[0].toString(36),l=e=>e.readyState==WebSocket.OPEN||e.readyState==WebSocket.CONNECTING,h=e=>{e.onopen=()=>{h(e)},e.onmessage=e.onclose=e.onerror=null;try{e.close(1e3,"byebye")}catch(e){}},c=(e,{on_message:t,on_socket_close:i},r=30)=>new Promise(((n,s)=>{const O=new WebSocket(e);let a=!1;const c=setTimeout((()=>{console.warn("Creating websocket timed out",(new Date).toLocaleTimeString()),h(O),s("Socket timeout")}),1e3*r),u=e=>{const t=o.pack(e);O.send(t)};let f=Promise.resolve();O.onmessage=e=>{f=f.then((async()=>{try{const i=await e.data.arrayBuffer(),r=o.unpack(new Uint8Array(i));try{t(r)}catch(t){console.error("Failed to process message from websocket",t,{message:r}),alert(`Something went wrong! You might need to refresh the page.\n\nPlease open an issue on https://github.com/fonsp/Pluto.jl with this info:\n\nFailed to process update\n${t.message}\n\n${JSON.stringify(e)}`)}}catch(t){console.error("Failed to unpack message from websocket",t,{event:e}),alert(`Something went wrong! You might need to refresh the page.\n\nPlease open an issue on https://github.com/fonsp/Pluto.jl with this info:\n\nFailed to unpack message\n${t}\n\n${JSON.stringify(e)}`)}}))},O.onerror=async e=>{console.error(`Socket did an oopsie - ${e.type}`,(new Date).toLocaleTimeString(),"was open:",a,e),await(e=>new Promise((t=>{l(e)?t(!0):setTimeout((()=>{t(l(e))}),1e3)})))(O)?(console.log("The socket somehow recovered from an error?! Onbegrijpelijk"),console.log(O),console.log(O.readyState)):a?(i(),h(O)):s(e)},O.onclose=async e=>{console.error(`Socket did an oopsie - ${e.type}`,(new Date).toLocaleTimeString(),"was open:",a,e),a?(i(),h(O)):s(e)},O.onopen=()=>{console.log("Socket opened",(new Date).toLocaleTimeString()),clearInterval(c),a=!0,n({socket:O,send:u})},console.log("Waiting for socket to open...",(new Date).toLocaleTimeString())}));const u=e=>{let t=null,i=[],r=null;return async(n,o,s,O)=>{if("update_notebook"===n){if(null!=r&&r!=s.notebook_id)throw new Error("Switched notebook inbetween same-tick updates??? WHAT?!?!");return i=[...i,...o.updates],r=s.notebook_id,null==t&&(t=new Promise((e=>setTimeout(e,0))).then((async()=>{let o=i;return t=null,i=[],r=null,await e(n,{updates:o},s,O)}))),await t}return await e(n,o,s,O)}},f=e=>{const t=new URL("./",e);t.protocol=t.protocol.replace("http","ws");return s.with_query_params(t,{secret:new URL(e).searchParams.get("secret")})},d=()=>f(window.location.href),p=async({on_unrequested_update:e,on_reconnect:t,on_connection_status:i,connect_metadata:n={},ws_address:o=d()})=>{let s=null;const O={send:null,session_options:null,version_info:{julia:"unknown",pluto:"unknown",dismiss_update_notification:!1},notebook_exists:!0,kill:null},l=a(),h=new Map,f=async(t,i={},r={},n=!0)=>{if(null==s)throw new Error("No connection established yet");const o=a(),O={type:t,client_id:l,request_id:o,body:i,...r};let c=(()=>{let e=()=>{},t=()=>{};return{current:new Promise(((i,r)=>{e=i,t=r})),resolve:e,reject:t}})();return h.set(o,(t=>{c.resolve(t),!1===n&&e(t,!0)})),s.send(O),await c.current};O.send=u(f);const p=async()=>{(async()=>{try{const e=new URL(window.location.href),t=await fetch("possible_binder_token_please");if(!t.ok)return;const i=await t.text();""!==i&&e.searchParams.get("token")!==i&&(e.searchParams.set("token",i),history.replaceState({},"",e.toString()))}catch(e){console.warn("Error while setting binder url:",e)}})();try{s=await c(String(o),{on_message:t=>{const i=t.initiator_id==l,r=t.request_id;if(i&&r){const e=h.get(r);if(e)return e(t),void h.delete(r)}e(t,i)},on_socket_close:async()=>{i(!1,!1),console.log("Starting new websocket",(new Date).toLocaleTimeString()),await r.Promises.delay(500),await p(),console.log("Starting state sync",(new Date).toLocaleTimeString());const e=t();console.log(`State sync ${e?"":"not "}successful`,(new Date).toLocaleTimeString()),i(e,!1),e||alert("Connection out of sync 😥\n\nRefresh the page to continue")}}),console.log("Hello?");const a=await f("connect",{},n);if(console.log("Hello!"),O.kill=()=>{s&&s.socket.close()},O.session_options=a.message.options,O.version_info=a.message.version_info,O.notebook_exists=a.message.notebook_exists,console.log("Client object: ",O),null!=n.notebook_id&&!a.message.notebook_exists)return i(!1,!0),{};i(!0,!1);const u=()=>{f("ping",{},{}).then((()=>{setTimeout(u,28e3)})).catch((()=>{}))};return u(),a.message}catch(e){return console.error("connect() failed",e),await r.Promises.delay(5e3),await p()}};return await p(),O}})),n.register("fUfdR",(function(t,i){e(t.exports,"default",(()=>n)),e(t.exports,"observablehq_for_cells",(()=>o)),e(t.exports,"Promises",(()=>s));let r=()=>{let e=new window.observablehq.Library;return{DOM:e.DOM,Files:e.Files,Generators:e.Generators,Promises:e.Promises,now:e.now,svg:e.svg(),html:e.html(),require:e.require()}};const n=r(),o=r();n.DOM,n.Files,n.Generators;let s=n.Promises;n.now,n.svg,n.html,n.require})),n.register("k9crH",(function(t,i){e(t.exports,"pack",(()=>O)),e(t.exports,"unpack",(()=>a));var r=n("e52WV");const o=r.default.createCodec(),s=e=>new Uint8Array(e.buffer,e.byteOffset,e.byteLength);o.addExtPacker(17,Int8Array,s),o.addExtPacker(18,Uint8Array,s),o.addExtPacker(19,Int16Array,s),o.addExtPacker(20,Uint16Array,s),o.addExtPacker(21,Int32Array,s),o.addExtPacker(22,Uint32Array,s),o.addExtPacker(23,Float32Array,s),o.addExtPacker(24,Float64Array,s),o.addExtPacker(18,Uint8ClampedArray,s),o.addExtPacker(18,ArrayBuffer,(e=>new Uint8Array(e))),o.addExtPacker(18,DataView,s),o.addExtPacker(13,Date,(e=>new BigInt64Array([BigInt(+e)]))),o.addExtUnpacker(13,(e=>{if("getBigInt64"in DataView.prototype){let t=new DataView(e.buffer,e.byteOffset,e.byteLength).getBigInt64(0,!0);if(t>Number.MAX_SAFE_INTEGER)throw new Error("Can't read too big number as date (how far in the future is this?!)");return new Date(Number(t))}return new Date(NaN)})),o.addExtUnpacker(17,(e=>new Int8Array(e.buffer))),o.addExtUnpacker(18,(e=>new Uint8Array(e.buffer))),o.addExtUnpacker(19,(e=>new Int16Array(e.buffer))),o.addExtUnpacker(20,(e=>new Uint16Array(e.buffer))),o.addExtUnpacker(21,(e=>new Int32Array(e.buffer))),o.addExtUnpacker(22,(e=>new Uint32Array(e.buffer))),o.addExtUnpacker(23,(e=>new Float32Array(e.buffer))),o.addExtUnpacker(24,(e=>new Float64Array(e.buffer)));const O=e=>r.default.encode(e,{codec:o}),a=e=>r.default.decode(e,{codec:o})})),n.register("e52WV",(function(t,i){e(t.exports,"default",(()=>r));var r=n("8RXlh").default})),n.register("8RXlh",(function(i,r){e(i.exports,"default",(()=>o));const n=function e(t,i,r){function n(s,O){if(!i[s]){if(!t[s]){var a=void 0;if(!O&&a)return a(s,!0);if(o)return o(s,!0);var l=new Error("Cannot find module '"+s+"'");throw l.code="MODULE_NOT_FOUND",l}var h=i[s]={exports:{}};t[s][0].call(h.exports,(function(e){var i=t[s][1][e];return n(i||e)}),h,h.exports,e,t,i,r)}return i[s].exports}for(var o=void 0,s=0;s>>6,i[r++]=128|63&o):o<55296||o>57343?(i[r++]=224|o>>>12,i[r++]=128|o>>>6&63,i[r++]=128|63&o):(o=65536+(o-55296<<10|e.charCodeAt(s++)-56320),i[r++]=240|o>>>18,i[r++]=128|o>>>12&63,i[r++]=128|o>>>6&63,i[r++]=128|63&o);return r-t}function n(e,t,i){var r=this,n=0|t;i||(i=r.length);for(var o="",s=0;n=65536?(s-=65536,o+=String.fromCharCode(55296+(s>>>10),56320+(1023&s))):o+=String.fromCharCode(s));return o}function o(e,t,i,r){var n;i||(i=0),r||0===r||(r=this.length),t||(t=0);var o=r-i;if(e===this&&i=0;n--)e[n+t]=this[n+i];else for(n=0;nthis.buffer.length)throw new Error(Q);return this.offset=i,t}return{bufferish:f,write:e,fetch:a,flush:t,push:h,pull:c,read:l,reserve:i,offset:0}}function s(){function e(){var e=this.start;if(e1?this.bufferish.concat(e):e[0];return e.length=0,t}function r(e){var t=0|e;if(this.buffer){var i=this.buffer.length,r=0|this.offset,n=r+t;if(nthis.minBufferSize)this.flush(),this.push(e);else{var i=this.reserve(t);f.prototype.copy.call(e,this.buffer,i)}}return{bufferish:f,write:O,fetch:e,flush:t,push:h,pull:i,read:l,reserve:r,send:n,maxBufferSize:p,minBufferSize:d,offset:0,start:0}}function O(){throw new Error("method not implemented: write()")}function a(){throw new Error("method not implemented: fetch()")}function l(){return this.buffers&&this.buffers.length?(this.flush(),this.pull()):this.fetch()}function h(e){(this.buffers||(this.buffers=[])).push(e)}function c(){return(this.buffers||(this.buffers=[])).shift()}function u(e){function t(t){for(var i in e)t[i]=e[i];return t}return t}i.FlexDecoder=r,i.FlexEncoder=n;var f=e("./bufferish"),d=2048,p=65536,Q="BUFFER_SHORTAGE";r.mixin=u(o()),r.mixin(r.prototype),n.mixin=u(s()),n.mixin(n.prototype)},{"./bufferish":8}],22:[function(e,t,i){function r(e){function t(e){var t=l(e),r=i[t];if(!r)throw new Error("Invalid type: "+(t?"0x"+t.toString(16):t));return r(e)}var i=h.getReadToken(e);return t}function n(){var e=this.options;return this.decode=r(e),e&&e.preset&&a.setExtUnpackers(this),this}function o(e,t){(this.extUnpackers||(this.extUnpackers=[]))[e]=c.filter(t)}function s(e){function t(t){return new O(t,e)}return(this.extUnpackers||(this.extUnpackers=[]))[e]||t}var O=e("./ext-buffer").ExtBuffer,a=e("./ext-unpacker"),l=e("./read-format").readUint8,h=e("./read-token"),c=e("./codec-base");c.install({addExtUnpacker:o,getExtUnpacker:s,init:n}),i.preset=n.call(c.preset)},{"./codec-base":9,"./ext-buffer":17,"./ext-unpacker":19,"./read-format":23,"./read-token":24}],23:[function(e,t,i){function r(e){var t=T.hasArrayBuffer&&e&&e.binarraybuffer,i=e&&e.int64;return{map:Y&&e&&e.usemap?o:n,array:s,str:O,bin:t?l:a,ext:h,uint8:c,uint16:f,uint32:p,uint64:g(8,i?b:m),int8:u,int16:d,int32:Q,int64:g(8,i?X:$),float32:g(4,S),float64:g(8,y)}}function n(e,t){var i,r={},n=new Array(t),o=new Array(t),s=e.codec.decode;for(i=0;i>>8,n[r]=i}}function l(e){return function(t,i){var r=t.reserve(5),n=t.buffer;n[r++]=e,n[r++]=i>>>24,n[r++]=i>>>16,n[r++]=i>>>8,n[r]=i}}function h(e,t,i,r){return function(n,o){var s=n.reserve(t+1);n.buffer[s++]=e,i.call(n.buffer,o,s,r)}}function c(e,t){new g(this,t,e)}function u(e,t){new m(this,t,e)}function f(e,t){p.write(this,e,t,!1,23,4)}function d(e,t){p.write(this,e,t,!1,52,8)}var p=e("ieee754"),Q=e("int64-buffer"),g=Q.Uint64BE,m=Q.Int64BE,$=e("./write-uint8").uint8,b=e("./bufferish"),X=b.global,S=b.hasBuffer&&"TYPED_ARRAY_SUPPORT"in X&&!X.TYPED_ARRAY_SUPPORT,y=b.hasBuffer&&X.prototype||{};i.getWriteToken=r},{"./bufferish":8,"./write-uint8":28,ieee754:32,"int64-buffer":33}],27:[function(e,t,i){function r(e){function t(e,t){k[t?195:194](e,t)}function i(e,t){var i=0|t;return t!==i?void k[203](e,t):void k[-32<=i&&i<=127?255&i:0<=i?i<=255?204:i<=65535?205:206:-128<=i?208:-32768<=i?209:210](e,i)}function r(e,t){k[207](e,t.toArray())}function o(e,t){k[211](e,t.toArray())}function Q(e){return e<32?1:e<=255?2:e<=65535?3:5}function g(e){return e<32?1:e<=65535?3:5}function m(e){function t(t,i){var r=i.length,n=5+3*r;t.offset=t.reserve(n);var o=t.buffer,s=e(r),O=t.offset+s;r=l.write.call(o,i,O);var a=e(r);if(s!==a){var h=O+a-s,c=O+r;l.copy.call(o,o,h,O,c)}k[1===a?160+r:a<=3?215+a:219](t,r),t.offset+=r}return t}function $(e,t){if(null===t)return X(e,t);if(_(t))return V(e,t);if(n(t))return S(e,t);if(s.isUint64BE(t))return r(e,t);if(O.isInt64BE(t))return o(e,t);var i=e.codec.getExtPacker(t);return i&&(t=i(t)),t instanceof u?P(e,t):void Z(e,t)}function b(e,t){return _(t)?T(e,t):void $(e,t)}function X(e,t){k[192](e,t)}function S(e,t){var i=t.length;k[i<16?144+i:i<=65535?220:221](e,i);for(var r=e.codec.encode,n=0;n=n())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+n().toString(16)+" bytes");return 0|e}function Q(e){return+e!=e&&(e=0),s.alloc(+e)}function g(e,t){if(s.isBuffer(e))return e.length;if("undefined"!=typeof ArrayBuffer&&"function"==typeof ArrayBuffer.isView&&(ArrayBuffer.isView(e)||e instanceof ArrayBuffer))return e.byteLength;"string"!=typeof e&&(e=""+e);var i=e.length;if(0===i)return 0;for(var r=!1;;)switch(t){case"ascii":case"latin1":case"binary":return i;case"utf8":case"utf-8":case void 0:return D(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*i;case"hex":return i>>>1;case"base64":return I(e).length;default:if(r)return D(e).length;t=(""+t).toLowerCase(),r=!0}}function m(e,t,i){var r=!1;if((void 0===t||t<0)&&(t=0),t>this.length)return"";if((void 0===i||i>this.length)&&(i=this.length),i<=0)return"";if((i>>>=0)<=(t>>>=0))return"";for(e||(e="utf8");;)switch(e){case"hex":return V(this,t,i);case"utf8":case"utf-8":return k(this,t,i);case"ascii":return R(this,t,i);case"latin1":case"binary":return _(this,t,i);case"base64":return T(this,t,i);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return Z(this,t,i);default:if(r)throw new TypeError("Unknown encoding: "+e);e=(e+"").toLowerCase(),r=!0}}function $(e,t,i){var r=e[t];e[t]=e[i],e[i]=r}function b(e,t,i,r,n){if(0===e.length)return-1;if("string"==typeof i?(r=i,i=0):i>2147483647?i=2147483647:i<-2147483648&&(i=-2147483648),i=+i,isNaN(i)&&(i=n?0:e.length-1),i<0&&(i=e.length+i),i>=e.length){if(n)return-1;i=e.length-1}else if(i<0){if(!n)return-1;i=0}if("string"==typeof t&&(t=s.from(t,r)),s.isBuffer(t))return 0===t.length?-1:X(e,t,i,r,n);if("number"==typeof t)return t&=255,s.TYPED_ARRAY_SUPPORT&&"function"==typeof Uint8Array.prototype.indexOf?n?Uint8Array.prototype.indexOf.call(e,t,i):Uint8Array.prototype.lastIndexOf.call(e,t,i):X(e,[t],i,r,n);throw new TypeError("val must be string, number or Buffer")}function X(e,t,i,r,n){function o(e,t){return 1===O?e[t]:e.readUInt16BE(t*O)}var s,O=1,a=e.length,l=t.length;if(void 0!==r&&("ucs2"===(r=String(r).toLowerCase())||"ucs-2"===r||"utf16le"===r||"utf-16le"===r)){if(e.length<2||t.length<2)return-1;O=2,a/=2,l/=2,i/=2}if(n){var h=-1;for(s=i;sa&&(i=a-l),s=i;s>=0;s--){for(var c=!0,u=0;un&&(r=n):r=n;var o=t.length;if(o%2!=0)throw new TypeError("Invalid hex string");r>o/2&&(r=o/2);for(var s=0;s239?4:l>223?3:l>191?2:1;if(n+c<=i)switch(c){case 1:l<128&&(h=l);break;case 2:128==(192&(o=e[n+1]))&&(a=(31&l)<<6|63&o)>127&&(h=a);break;case 3:o=e[n+1],s=e[n+2],128==(192&o)&&128==(192&s)&&(a=(15&l)<<12|(63&o)<<6|63&s)>2047&&(a<55296||a>57343)&&(h=a);break;case 4:o=e[n+1],s=e[n+2],O=e[n+3],128==(192&o)&&128==(192&s)&&128==(192&O)&&(a=(15&l)<<18|(63&o)<<12|(63&s)<<6|63&O)>65535&&a<1114112&&(h=a)}null===h?(h=65533,c=1):h>65535&&(h-=65536,r.push(h>>>10&1023|55296),h=56320|1023&h),r.push(h),n+=c}return Y(r)}function Y(e){var t=e.length;if(t<=ee)return String.fromCharCode.apply(String,e);for(var i="",r=0;rr)&&(i=r);for(var n="",o=t;oi)throw new RangeError("Trying to access beyond buffer length")}function A(e,t,i,r,n,o){if(!s.isBuffer(e))throw new TypeError('"buffer" argument must be a Buffer instance');if(t>n||te.length)throw new RangeError("Index out of range")}function W(e,t,i,r){t<0&&(t=65535+t+1);for(var n=0,o=Math.min(e.length-i,2);n>>8*(r?n:1-n)}function C(e,t,i,r){t<0&&(t=4294967295+t+1);for(var n=0,o=Math.min(e.length-i,4);n>>8*(r?n:3-n)&255}function U(e,t,i,r,n,o){if(i+r>e.length)throw new RangeError("Index out of range");if(i<0)throw new RangeError("Index out of range")}function N(e,t,i,r,n){return n||U(e,t,i,4,34028234663852886e22,-34028234663852886e22),H.write(e,t,i,r,23,4),i+4}function j(e,t,i,r,n){return n||U(e,t,i,8,17976931348623157e292,-17976931348623157e292),H.write(e,t,i,r,52,8),i+8}function E(e){if((e=z(e).replace(te,"")).length<2)return"";for(;e.length%4!=0;)e+="=";return e}function z(e){return e.trim?e.trim():e.replace(/^\s+|\s+$/g,"")}function G(e){return e<16?"0"+e.toString(16):e.toString(16)}function D(e,t){t=t||1/0;for(var i,r=e.length,n=null,o=[],s=0;s55295&&i<57344){if(!n){if(i>56319){(t-=3)>-1&&o.push(239,191,189);continue}if(s+1===r){(t-=3)>-1&&o.push(239,191,189);continue}n=i;continue}if(i<56320){(t-=3)>-1&&o.push(239,191,189),n=i;continue}i=65536+(n-55296<<10|i-56320)}else n&&(t-=3)>-1&&o.push(239,191,189);if(n=null,i<128){if((t-=1)<0)break;o.push(i)}else if(i<2048){if((t-=2)<0)break;o.push(i>>6|192,63&i|128)}else if(i<65536){if((t-=3)<0)break;o.push(i>>12|224,i>>6&63|128,63&i|128)}else{if(!(i<1114112))throw new Error("Invalid code point");if((t-=4)<0)break;o.push(i>>18|240,i>>12&63|128,i>>6&63|128,63&i|128)}}return o}function M(e){for(var t=[],i=0;i>8,n=i%256,o.push(n),o.push(r);return o}function I(e){return F.toByteArray(E(e))}function L(e,t,i,r){for(var n=0;n=t.length||n>=e.length);++n)t[n+i]=e[n];return n}function K(e){return e!=e}var F=e("base64-js"),H=e("ieee754"),J=e("isarray");r.Buffer=s,r.SlowBuffer=Q,r.INSPECT_MAX_BYTES=50,s.TYPED_ARRAY_SUPPORT=void 0!==t.TYPED_ARRAY_SUPPORT?t.TYPED_ARRAY_SUPPORT:i(),r.kMaxLength=n(),s.poolSize=8192,s._augment=function(e){return e.__proto__=s.prototype,e},s.from=function(e,t,i){return O(null,e,t,i)},s.TYPED_ARRAY_SUPPORT&&(s.prototype.__proto__=Uint8Array.prototype,s.__proto__=Uint8Array,"undefined"!=typeof Symbol&&Symbol.species&&s[Symbol.species]===s&&Object.defineProperty(s,Symbol.species,{value:null,configurable:!0})),s.alloc=function(e,t,i){return l(null,e,t,i)},s.allocUnsafe=function(e){return h(null,e)},s.allocUnsafeSlow=function(e){return h(null,e)},s.isBuffer=function(e){return!(null==e||!e._isBuffer)},s.compare=function(e,t){if(!s.isBuffer(e)||!s.isBuffer(t))throw new TypeError("Arguments must be Buffers");if(e===t)return 0;for(var i=e.length,r=t.length,n=0,o=Math.min(i,r);n0&&(e=this.toString("hex",0,t).match(/.{2}/g).join(" "),this.length>t&&(e+=" ... ")),""},s.prototype.compare=function(e,t,i,r,n){if(!s.isBuffer(e))throw new TypeError("Argument must be a Buffer");if(void 0===t&&(t=0),void 0===i&&(i=e?e.length:0),void 0===r&&(r=0),void 0===n&&(n=this.length),t<0||i>e.length||r<0||n>this.length)throw new RangeError("out of range index");if(r>=n&&t>=i)return 0;if(r>=n)return-1;if(t>=i)return 1;if(this===e)return 0;for(var o=(n>>>=0)-(r>>>=0),O=(i>>>=0)-(t>>>=0),a=Math.min(o,O),l=this.slice(r,n),h=e.slice(t,i),c=0;cn)&&(i=n),e.length>0&&(i<0||t<0)||t>this.length)throw new RangeError("Attempt to write outside buffer bounds");r||(r="utf8");for(var o=!1;;)switch(r){case"hex":return S(this,e,t,i);case"utf8":case"utf-8":return y(this,e,t,i);case"ascii":return v(this,e,t,i);case"latin1":case"binary":return P(this,e,t,i);case"base64":return x(this,e,t,i);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return w(this,e,t,i);default:if(o)throw new TypeError("Unknown encoding: "+r);r=(""+r).toLowerCase(),o=!0}},s.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};var ee=4096;s.prototype.slice=function(e,t){var i,r=this.length;if((e=~~e)<0?(e+=r)<0&&(e=0):e>r&&(e=r),(t=void 0===t?r:~~t)<0?(t+=r)<0&&(t=0):t>r&&(t=r),t0&&(n*=256);)r+=this[e+--t]*n;return r},s.prototype.readUInt8=function(e,t){return t||q(e,1,this.length),this[e]},s.prototype.readUInt16LE=function(e,t){return t||q(e,2,this.length),this[e]|this[e+1]<<8},s.prototype.readUInt16BE=function(e,t){return t||q(e,2,this.length),this[e]<<8|this[e+1]},s.prototype.readUInt32LE=function(e,t){return t||q(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+16777216*this[e+3]},s.prototype.readUInt32BE=function(e,t){return t||q(e,4,this.length),16777216*this[e]+(this[e+1]<<16|this[e+2]<<8|this[e+3])},s.prototype.readIntLE=function(e,t,i){e|=0,t|=0,i||q(e,t,this.length);for(var r=this[e],n=1,o=0;++o=(n*=128)&&(r-=Math.pow(2,8*t)),r},s.prototype.readIntBE=function(e,t,i){e|=0,t|=0,i||q(e,t,this.length);for(var r=t,n=1,o=this[e+--r];r>0&&(n*=256);)o+=this[e+--r]*n;return o>=(n*=128)&&(o-=Math.pow(2,8*t)),o},s.prototype.readInt8=function(e,t){return t||q(e,1,this.length),128&this[e]?-1*(255-this[e]+1):this[e]},s.prototype.readInt16LE=function(e,t){t||q(e,2,this.length);var i=this[e]|this[e+1]<<8;return 32768&i?4294901760|i:i},s.prototype.readInt16BE=function(e,t){t||q(e,2,this.length);var i=this[e+1]|this[e]<<8;return 32768&i?4294901760|i:i},s.prototype.readInt32LE=function(e,t){return t||q(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24},s.prototype.readInt32BE=function(e,t){return t||q(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]},s.prototype.readFloatLE=function(e,t){return t||q(e,4,this.length),H.read(this,e,!0,23,4)},s.prototype.readFloatBE=function(e,t){return t||q(e,4,this.length),H.read(this,e,!1,23,4)},s.prototype.readDoubleLE=function(e,t){return t||q(e,8,this.length),H.read(this,e,!0,52,8)},s.prototype.readDoubleBE=function(e,t){return t||q(e,8,this.length),H.read(this,e,!1,52,8)},s.prototype.writeUIntLE=function(e,t,i,r){e=+e,t|=0,i|=0,r||A(this,e,t,i,Math.pow(2,8*i)-1,0);var n=1,o=0;for(this[t]=255&e;++o=0&&(o*=256);)this[t+n]=e/o&255;return t+i},s.prototype.writeUInt8=function(e,t,i){return e=+e,t|=0,i||A(this,e,t,1,255,0),s.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),this[t]=255&e,t+1},s.prototype.writeUInt16LE=function(e,t,i){return e=+e,t|=0,i||A(this,e,t,2,65535,0),s.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):W(this,e,t,!0),t+2},s.prototype.writeUInt16BE=function(e,t,i){return e=+e,t|=0,i||A(this,e,t,2,65535,0),s.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):W(this,e,t,!1),t+2},s.prototype.writeUInt32LE=function(e,t,i){return e=+e,t|=0,i||A(this,e,t,4,4294967295,0),s.TYPED_ARRAY_SUPPORT?(this[t+3]=e>>>24,this[t+2]=e>>>16,this[t+1]=e>>>8,this[t]=255&e):C(this,e,t,!0),t+4},s.prototype.writeUInt32BE=function(e,t,i){return e=+e,t|=0,i||A(this,e,t,4,4294967295,0),s.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):C(this,e,t,!1),t+4},s.prototype.writeIntLE=function(e,t,i,r){if(e=+e,t|=0,!r){var n=Math.pow(2,8*i-1);A(this,e,t,i,n-1,-n)}var o=0,s=1,O=0;for(this[t]=255&e;++o>0)-O&255;return t+i},s.prototype.writeIntBE=function(e,t,i,r){if(e=+e,t|=0,!r){var n=Math.pow(2,8*i-1);A(this,e,t,i,n-1,-n)}var o=i-1,s=1,O=0;for(this[t+o]=255&e;--o>=0&&(s*=256);)e<0&&0===O&&0!==this[t+o+1]&&(O=1),this[t+o]=(e/s>>0)-O&255;return t+i},s.prototype.writeInt8=function(e,t,i){return e=+e,t|=0,i||A(this,e,t,1,127,-128),s.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),e<0&&(e=255+e+1),this[t]=255&e,t+1},s.prototype.writeInt16LE=function(e,t,i){return e=+e,t|=0,i||A(this,e,t,2,32767,-32768),s.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):W(this,e,t,!0),t+2},s.prototype.writeInt16BE=function(e,t,i){return e=+e,t|=0,i||A(this,e,t,2,32767,-32768),s.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):W(this,e,t,!1),t+2},s.prototype.writeInt32LE=function(e,t,i){return e=+e,t|=0,i||A(this,e,t,4,2147483647,-2147483648),s.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8,this[t+2]=e>>>16,this[t+3]=e>>>24):C(this,e,t,!0),t+4},s.prototype.writeInt32BE=function(e,t,i){return e=+e,t|=0,i||A(this,e,t,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),s.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):C(this,e,t,!1),t+4},s.prototype.writeFloatLE=function(e,t,i){return N(this,e,t,!0,i)},s.prototype.writeFloatBE=function(e,t,i){return N(this,e,t,!1,i)},s.prototype.writeDoubleLE=function(e,t,i){return j(this,e,t,!0,i)},s.prototype.writeDoubleBE=function(e,t,i){return j(this,e,t,!1,i)},s.prototype.copy=function(e,t,i,r){if(i||(i=0),r||0===r||(r=this.length),t>=e.length&&(t=e.length),t||(t=0),r>0&&r=this.length)throw new RangeError("sourceStart out of bounds");if(r<0)throw new RangeError("sourceEnd out of bounds");r>this.length&&(r=this.length),e.length-t=0;--n)e[n+t]=this[n+i];else if(o<1e3||!s.TYPED_ARRAY_SUPPORT)for(n=0;n>>=0,i=void 0===i?this.length:i>>>0,e||(e=0),"number"==typeof e)for(o=t;o0)throw new Error("Invalid string. Length must be a multiple of 4");return"="===e[t-2]?2:"="===e[t-1]?1:0}function n(e){return 3*e.length/4-r(e)}function o(e){var t,i,n,o,s,O,a=e.length;s=r(e),O=new c(3*a/4-s),n=s>0?a-4:a;var l=0;for(t=0,i=0;t>16&255,O[l++]=o>>8&255,O[l++]=255&o;return 2===s?(o=h[e.charCodeAt(t)]<<2|h[e.charCodeAt(t+1)]>>4,O[l++]=255&o):1===s&&(o=h[e.charCodeAt(t)]<<10|h[e.charCodeAt(t+1)]<<4|h[e.charCodeAt(t+2)]>>2,O[l++]=o>>8&255,O[l++]=255&o),O}function s(e){return l[e>>18&63]+l[e>>12&63]+l[e>>6&63]+l[63&e]}function O(e,t,i){for(var r,n=[],o=t;oh?h:a+s));return 1===r?(t=e[i-1],n+=l[t>>2],n+=l[t<<4&63],n+="=="):2===r&&(t=(e[i-2]<<8)+e[i-1],n+=l[t>>10],n+=l[t>>4&63],n+=l[t<<2&63],n+="="),o.push(n),o.join("")}i.byteLength=n,i.toByteArray=o,i.fromByteArray=a;for(var l=[],h=[],c="undefined"!=typeof Uint8Array?Uint8Array:Array,u="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",f=0,d=u.length;f>1,h=-7,c=i?n-1:0,u=i?-1:1,f=e[t+c];for(c+=u,o=f&(1<<-h)-1,f>>=-h,h+=O;h>0;o=256*o+e[t+c],c+=u,h-=8);for(s=o&(1<<-h)-1,o>>=-h,h+=r;h>0;s=256*s+e[t+c],c+=u,h-=8);if(0===o)o=1-l;else{if(o===a)return s?NaN:1/0*(f?-1:1);s+=Math.pow(2,r),o-=l}return(f?-1:1)*s*Math.pow(2,o-r)},i.write=function(e,t,i,r,n,o){var s,O,a,l=8*o-n-1,h=(1<>1,u=23===n?Math.pow(2,-24)-Math.pow(2,-77):0,f=r?0:o-1,d=r?1:-1,p=t<0||0===t&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(O=isNaN(t)?1:0,s=h):(s=Math.floor(Math.log(t)/Math.LN2),t*(a=Math.pow(2,-s))<1&&(s--,a*=2),(t+=s+c>=1?u/a:u*Math.pow(2,1-c))*a>=2&&(s++,a/=2),s+c>=h?(O=0,s=h):s+c>=1?(O=(t*a-1)*Math.pow(2,n),s+=c):(O=t*Math.pow(2,c-1)*Math.pow(2,n),s=0));n>=8;e[i+f]=255&O,f+=d,O/=256,n-=8);for(s=s<0;e[i+f]=255&s,f+=d,s/=256,l-=8);e[i+f-d]|=128*p}},{}],33:[function(e,t,i){(function(e){!function(t){function i(e,i,f){function b(e,t,i,r){return this instanceof b?v(this,e,t,i,r):new b(e,t,i,r)}function y(e){return!(!e||!e[N])}function v(e,t,i,r,n){g&&m&&(t instanceof m&&(t=new g(t)),r instanceof m&&(r=new g(r))),t||i||r||d?(s(t,i)||(n=i,r=t,i=0,t=new(d||Array)(8)),e.buffer=t,e.offset=i|=0,p!==typeof r&&("string"==typeof r?P(t,i,r,n||10):s(r,n)?O(t,i,r,n):"number"==typeof n?(T(t,i+Y,r),T(t,i+R,n)):r>0?A(t,i,r):r<0?W(t,i,r):O(t,i,$,0))):e.buffer=a($,0)}function P(e,t,i,r){var n=0,o=i.length,s=0,O=0;"-"===i[0]&&n++;for(var a=n;n=0))break;O=O*r+l,s=s*r+Math.floor(O/X),O%=X}a&&(s=~s,O?O=X-O:s++),T(e,t+Y,s),T(e,t+R,O)}function x(){var e=this.buffer,t=this.offset,i=k(e,t+Y),r=k(e,t+R);return f||(i|=0),i?i*X+r:r}function w(e){var t=this.buffer,i=this.offset,r=k(t,i+Y),n=k(t,i+R),o="",s=!f&&2147483648&r;for(s&&(r=~r,n=X-n),e=e||10;;){var O=r%e*X+n;if(r=Math.floor(r/e),n=Math.floor(O/e),o=(O%e).toString(e)+o,!r&&!n)break}return s&&(o="-"+o),o}function T(e,t,i){e[t+q]=255&i,i>>=8,e[t+Z]=255&i,i>>=8,e[t+V]=255&i,i>>=8,e[t+_]=255&i}function k(e,t){return e[t+_]*S+(e[t+V]<<16)+(e[t+Z]<<8)+e[t+q]}var Y=i?0:4,R=i?4:0,_=i?0:3,V=i?1:2,Z=i?2:1,q=i?3:0,A=i?l:c,W=i?h:u,C=b.prototype,U="is"+e,N="_"+U;return C.buffer=void 0,C.offset=0,C[N]=!0,C.toNumber=x,C.toString=w,C.toJSON=x,C.toArray=r,Q&&(C.toBuffer=n),g&&(C.toArrayBuffer=o),b[U]=y,t[e]=b,b}function r(e){var t=this.buffer,i=this.offset;return d=null,!1!==e&&0===i&&8===t.length&&b(t)?t:a(t,i)}function n(t){var i=this.buffer,r=this.offset;if(d=Q,!1!==t&&0===r&&8===i.length&&e.isBuffer(i))return i;var n=new Q(8);return O(n,0,i,r),n}function o(e){var t=this.buffer,i=this.offset,r=t.buffer;if(d=g,!1!==e&&0===i&&r instanceof m&&8===r.byteLength)return r;var n=new g(8);return O(n,0,t,i),n.buffer}function s(e,t){var i=e&&e.length;return t|=0,i&&t+8<=i&&"string"!=typeof e[t]}function O(e,t,i,r){t|=0,r|=0;for(var n=0;n<8;n++)e[t++]=255&i[r++]}function a(e,t){return Array.prototype.slice.call(e,t,t+8)}function l(e,t,i){for(var r=t+8;r>t;)e[--r]=255&i,i/=256}function h(e,t,i){var r=t+8;for(i++;r>t;)e[--r]=255&-i^255,i/=256}function c(e,t,i){for(var r=t+8;t{e.onload=()=>{t(e.result)},e.onerror=t=>{e.abort(),i(t)}}));return e.readAsText(this),t}),null==Blob.prototype.arrayBuffer&&(Blob.prototype.arrayBuffer=function(){return new Response(this).arrayBuffer()}),i.polyfill()})),n.register("dLFsX",(function(t,i){e(t.exports,"polyfill",(()=>n("bL2Te").polyfill)),n("bL2Te")})),n.register("bL2Te",(function(t,i){e(t.exports,"polyfill",(()=>G));var r=e=>void 0===e||"auto"===e||"instant"===e||"smooth"===e;function n(e,t){this.scrollLeft=e,this.scrollTop=t}var o=(e,t,i="cannot convert to dictionary.")=>`Failed to execute '${e}' on '${t}': ${i}`,s=(e,t,i)=>o(e,t,`The provided value '${i}' is not a valid enum value of type ScrollBehavior.`),O=(e,t,i)=>{var r;let n=`__SEAMLESS.BACKUP$${t}`;return!e[n]&&e[t]&&!(null!==(r=e[t])&&void 0!==r&&r.__isPolyfill)&&(e[n]=e[t]),e[n]||i},a=e=>{let t=typeof e;return null!==e&&("object"===t||"function"===t)},l=()=>"scrollBehavior"in window.document.documentElement.style,h=e=>{Object.defineProperty(e,"__isPolyfill",{value:!0})},c=(e,t)=>{h(t),[HTMLElement.prototype,SVGElement.prototype,Element.prototype].forEach((i=>{O(i,e),i[e]=t}))},u=e=>e.ownerDocument.scrollingElement||e.ownerDocument.documentElement,f=e=>.5*(1-Math.cos(Math.PI*e));function d(){var e;let t;return t=null!==(e=window.performance)&&void 0!==e&&e.now?()=>window.performance.now():()=>window.Date.now(),d=t,t()}var p=e=>{let t=(d()-e.timeStamp)/(e.duration||500);if(t>1)return e.method(e.targetX,e.targetY),void e.callback();let i=(e.timingFunc||f)(t),r=e.startX+(e.targetX-e.startX)*i,n=e.startY+(e.targetY-e.startY)*i;e.method(r,n),e.rafId=window.requestAnimationFrame((()=>{p(e)}))},Q=e=>isFinite(e)?Number(e):0,g=e=>(t,i,l)=>{let[h,c]=(e=>e.window===e)(t)?[u(t.document.documentElement),"Window"]:[t,"Element"],f=i??{};if(!a(f))throw new TypeError(o(e,c));if(!r(f.behavior))throw new TypeError(s(e,c,f.behavior));"scrollBy"===e&&(f.left=Q(f.left)+h.scrollLeft,f.top=Q(f.top)+h.scrollTop),((e,t,i)=>{var r,o;if(!(e=>{var t;return null!==(t=e.isConnected)&&void 0!==t?t:!(e.ownerDocument&&1&e.ownerDocument.compareDocumentPosition(e))})(e))return;let s=e.scrollLeft,a=e.scrollTop,l=Q(null!==(r=t.left)&&void 0!==r?r:s),h=Q(null!==(o=t.top)&&void 0!==o?o:a);if(l===s&&h===a)return;let c=O(HTMLElement.prototype,"scroll",n),u=O(Object.getPrototypeOf(e),"scroll",c).bind(e);if("smooth"!==t.behavior)return void u(l,h);let f=()=>{window.removeEventListener("wheel",m),window.removeEventListener("touchmove",m)},g=Object.assign(Object.assign({},i),{timeStamp:d(),startX:s,startY:a,targetX:l,targetY:h,rafId:0,method:u,callback:f}),m=()=>{window.cancelAnimationFrame(g.rafId),f()};window.addEventListener("wheel",m,{passive:!0,once:!0}),window.addEventListener("touchmove",m,{passive:!0,once:!0}),p(g)})(h,f,l)},m=g("scroll"),$=g("scrollTo"),b=g("scrollBy"),X=m,S=(e,t)=>i=>{if(l())return;let r={scroll:m,scrollTo:$,scrollBy:b}[e];t(e,(function(){let e=arguments;if(1===arguments.length)return void r(this,e[0],i);let t=e[0],n=e[1];r(this,{left:t,top:n})}))},y=S("scroll",c),v=S("scrollTo",c),P=S("scrollBy",c),x=(e,t)=>{h(t),O(window,e),window[e]=t},w=S("scroll",x),T=S("scrollTo",x),k=S("scrollBy",x),Y=e=>{switch(e){case"horizontal-tb":case"lr":case"lr-tb":case"rl":case"rl-tb":return 0;case"vertical-rl":case"tb":case"tb-rl":return 1;case"vertical-lr":case"tb-lr":return 2;case"sideways-rl":return 3;case"sideways-lr":return 4}return 0},R=(e,t,i,r)=>{let n=0;switch(t||(n^=2),e){case 0:n=n>>1|(1&n)<<1,[i,r]=[r,i];break;case 1:case 3:n^=1;break;case 4:n^=2}return[n,i,r]},_=e=>1==(1&R(Y(e.writingMode),"rtl"!==e.direction,void 0,void 0)[0]),V=(e,t,i,r,n,o,s)=>0!==e?e:ni||n>t&&o=i&&s>=r?2:o>i&&sr?3:null,Z=e=>"visible"!==e&&"clip"!==e,q=(e,t)=>(e.clientHeight{let t=e.parentNode,i=e.parentElement;if(null===i&&null!==t){if(11===t.nodeType)return t.host;if(9===t.nodeType)return(e=>{var t;try{return(null===(t=e.ownerDocument.defaultView)||void 0===t?void 0:t.frameElement)||null}catch{return null}})(e)}return i},W=(e,t,i)=>ei?i:e,C=(e,t,i)=>{switch(e){case 1:return(t+i)/2;case 3:return i;case 2:case 0:return t}},U=(e,t)=>{var i,r,n;let o=null===(i=e.ownerDocument.defaultView)||void 0===i?void 0:i.visualViewport,[s,O,a,l]=e===u(e)?[0,0,null!==(r=null==o?void 0:o.width)&&void 0!==r?r:e.clientWidth,null!==(n=null==o?void 0:o.height)&&void 0!==n?n:e.clientHeight]:[t.left,t.top,e.clientWidth,e.clientHeight],h=s+e.clientLeft,c=O+e.clientTop;return[c,h+a,c+l,h]},N=(e,t)=>{let i=[],r=e.ownerDocument,n=r.defaultView;if(!n)return i;let o=window.getComputedStyle(e),s="rtl"!==o.direction,O=Y(o.writingMode||o.getPropertyValue("-webkit-writing-mode")||o.getPropertyValue("-ms-writing-mode")),[a,l]=((e,t,i)=>{let[r,n,o]=R(t,i,e.block||"start",e.inline||"nearest");return[n,o].map(((e,t)=>{switch(e){case"center":return 1;case"nearest":return 0;default:return"start"===e==!(r>>t&1)?2:3}}))})(t,O,s),[h,c,u,f]=((e,t,i)=>{let{top:r,right:n,bottom:o,left:s}=t,O=(e=>["scroll-margin","scroll-snap-margin"].filter((t=>t in e.documentElement.style))[0])(e.ownerDocument);if(!O)return[r,n,o,s];let a=e=>{let t=i.getPropertyValue(`${O}-${e}`);return parseInt(t,10)||0};return[r-a("top"),n+a("right"),o+a("bottom"),s-a("left")]})(e,e.getBoundingClientRect(),o);for(let o=A(e);null!==o;o=A(o)){if(r!==o.ownerDocument){if(r=o.ownerDocument,n=r.defaultView,!n)break;let{left:e,top:t}=o.getBoundingClientRect();h+=t,c+=e,u+=t,f+=e}let e=n.getComputedStyle(o);if("fixed"===e.position)break;if(!q(o,e))continue;let s=o.getBoundingClientRect(),[O,d,p,Q]=U(o,s),g=V(a,Q,d,o.clientWidth,f,c,c-f),m=V(l,O,p,o.clientHeight,h,u,u-h),$=null===g?0:C(g,f,c)-C(g,Q,d),b=null===m?0:C(m,h,u)-C(m,O,p),X=_(e)?W($,-o.scrollWidth+o.clientWidth-o.scrollLeft,-o.scrollLeft):W($,-o.scrollLeft,o.scrollWidth-o.clientWidth-o.scrollLeft),S=W(b,-o.scrollTop,o.scrollHeight-o.clientHeight-o.scrollTop);i.push([o,{left:o.scrollLeft+X,top:o.scrollTop+S,behavior:t.behavior}]),h=Math.max(h-S,O),c=Math.min(c-X,d),u=Math.min(u-S,p),f=Math.max(f-X,Q)}return i},j=(e,t,i)=>{let n=t||{};if(!r(n.behavior))throw new TypeError(s("scrollIntoView","Element",n.behavior));N(e,n).forEach((([e,t])=>{X(e,t,i)}))};function E(e){j(this,{block:e??1?"start":"end",inline:"nearest"})}var z=e=>{if(l())return;let t=O(window.HTMLElement.prototype,"scrollIntoView",E);c("scrollIntoView",(function(){let i=arguments,r=i[0];1===i.length&&a(r)?j(this,r,e):t.apply(this,i)}))},G=e=>{l()||(y(e),v(e),P(e),z(e),w(e),T(e),k(e))}})),n.register("41Mhf",(function(t,i){e(t.exports,"with_query_params",(()=>r));const r=(e,t)=>{const i="http://delete-me.com/",r=new URL(e,i);return Object.entries(t).forEach((([e,t])=>{null!=t&&r.searchParams.append(e,t)})),r.toString().replace(i,"")};console.assert("https://example.com/?a=b+c"===r("https://example.com/",{a:"b c"})),console.assert("https://example.com/?a=b+c"===r(new URL("https://example.com/"),{a:"b c"})),console.assert("https://example.com/?a=b+c&xx=123"===r(new URL("https://example.com/"),{a:"b c",asdf:null,xx:"123"})),console.assert("index.html?a=b+c"===r("index.html",{a:"b c"})),console.assert("index.html?x=123&a=b+c"===r("index.html?x=123",{a:"b c"})),console.assert("index.html?x=123&a=b+c#asdf"===r("index.html?x=123#asdf",{a:"b c"}))})),n.register("fnbc9",(function(e,t){})),n.register("2ZZ1r",(function(t,i){e(t.exports,"FilePicker",(()=>m)),n("cNaMA");var r=n("exxBE"),o=n("cNaMA"),s=n("2P6PH");n("kjWx8"),n("hiQgq");var O=n("jpyyv"),a=n("1xJnC"),l=n("aTIpG");let{autocompletion:h,completionKeymap:c}=O.autocomplete,u=c.find((e=>"Ctrl-Space"===e.key)),f=c.find((e=>"Enter"===e.key)),d=c.find((e=>"Escape"===e.key));const p=e=>{if(null==e)throw new Error("Unexpected null value");return e},Q=(e,t,i=!0)=>{let r=e.hasFocus;e.dispatch({changes:{from:0,to:e.state.doc.length,insert:t},selection:O.EditorSelection.cursor(t.length),scrollIntoView:i}),r||e.contentDOM.blur()},g=!!window.plutoDesktop;g&&console.log("Running in Desktop Environment! Found following properties/methods:",window.plutoDesktop);const m=({value:e,suggest_new_file:t,button_label:i,placeholder:n,on_submit:s,on_desktop_submit:m,client:b})=>{const[X,S]=r.useState(!0),[y,v]=r.useState(""),P=r.useRef(""),x=r.useRef(null),w=r.useRef(null),T=()=>{const e=w.current;null!=e&&(null!=t&&0===e.state.doc.length&&(Q(e,t.base,!1),Y()),window.dispatchEvent(new CustomEvent("collapse_cell_selection",{})))};const k=()=>{const e=w.current;if(null!=e){if(!g){if(e.state.doc.toString()===P.current)return T(),!0}return(async e=>{await e()})((async()=>{try{g&&m?await m((await a.guess_notebook_location(y)).path_or_url):await s(e.state.doc.toString()),e.dom.blur()}catch(t){Q(e,P.current,!0),e.dom.blur()}})),!0}},Y=()=>{const e=w.current;if(null==e)return;let t=e.state.selection.main;return t.from===t.to&&e.state.doc.length===t.to?p(u).run(e):void 0};return r.useLayoutEffect((()=>{const i=window.matchMedia("(prefers-color-scheme: dark)").matches,r=()=>(k(),!0);w.current=new O.EditorView({state:O.EditorState.create({doc:"",extensions:[O.drawSelection(),O.EditorView.domEventHandlers({focus:(e,i)=>(setTimeout((()=>{t?T():0===i.state.doc.length&&Y()}),0),!0),blur:(e,t)=>{setTimeout((()=>{t.hasFocus||Q(t,P.current,!0)}),200)}}),O.EditorView.updateListener.of((e=>{e.docChanged&&S(0===e.state.doc.length)})),O.EditorView.theme({"&":{fontSize:"inherit"},".cm-scroller":{fontFamily:"inherit",overflowY:"hidden",overflowX:"auto"}},{dark:i}),O.history(),h({activateOnTyping:!0,override:[$({suggest_new_file:t,client:b})],defaultKeymap:!1,maxRenderedOptions:512,optionClass:e=>e.type??""}),O.EditorView.updateListener.of((e=>{e.transactions.forEach((t=>{null!=t.annotation(O.autocomplete.pickedCompletion)&&(e.view.dispatch({effects:O.EditorView.scrollIntoView(e.state.doc.length),selection:O.EditorSelection.cursor(e.state.doc.length)}),Y())}))})),O.keymap.of([{key:"Enter",run:e=>p(f).run(e)},{key:"Enter",run:r},{key:"Ctrl-Enter",mac:"Cmd-Enter",run:r},{key:"Ctrl-Shift-Enter",mac:"Cmd-Shift-Enter",run:r},{key:"Escape",run:t=>(p(d).run(t),t.dispatch({changes:{from:0,to:t.state.doc.length,insert:P.current},selection:O.EditorSelection.cursor(e.length),effects:O.EditorView.scrollIntoView(P.current.length)}),document.activeElement.blur(),!0),preventDefault:!0},{key:"Tab",run:e=>p(f).run(e)?(Y(),!0):Y()}]),O.keymap.of(c),O.placeholder(n),l.tab_help_plugin]})});const o=w.current;g||x.current.insertBefore(o.dom,x.current.firstElementChild)}),[]),r.useLayoutEffect((()=>{if(P.current!=e){if(null==w.current)return;Q(w.current,e,!0),P.current=e}})),g?o.html`
+ {v(e.target.value)}} + /> +
+ +
+
`:o.html` + + + + `},$=({client:e,suggest_new_file:t})=>i=>{i.state.selection.main.to;const r=i.state.doc.toString();return e.send("completepath",{query:r}).then((e=>{const i=r.split("/").pop().split("\\").pop(),n=e.message.results,o=s.utf8index_to_ut16index(r,e.message.start),O=s.utf8index_to_ut16index(r,e.message.stop);if(n.length>=1&&n[0]==i)return null;let a=n.map((e=>{let t=e.endsWith("/")||e.endsWith("\\");return{label:e,type:t?"dir":"file",boost:t?1:0}}));if(null!=t)for(let e=3;e>=0;e--){const t=".jl".substring(0,e);if(i.endsWith(t)){let t=i+".jl".substring(e);if(".jl"==t&&(t="notebook.jl"),3==e)return null;n.includes(t)||a.push({label:t+" (new)",apply:t,type:"file new",boost:-99});break}}return{options:a,from:o,to:O}}))}})),n.register("2P6PH",(function(t,i){e(t.exports,"utf8index_to_ut16index",(()=>o)),e(t.exports,"slice_utf8",(()=>s));const r=new TextEncoder,n=new TextDecoder,o=(e,t)=>n.decode(r.encode(e).slice(0,t)).length,s=(e,t,i)=>{const o=r.encode(e);return n.decode(o.slice(t,i))};console.assert("e é hannes ❤ is a dog"===((e,t,i,o)=>{const s=r.encode(e),O=r.encode(o),a=new Uint8Array(s.length+O.length-(i-t));return a.set(s.slice(0,t),0),a.set(O,t),a.set(s.slice(i),t+O.length),n.decode(a)})("e é 🐶 is a dog",5,9,"hannes ❤")),console.assert("🐶"===s("e é 🐶 is a dog",5,9))})),n.register("kjWx8",(function(t,i){e(t.exports,"is_mac_keyboard",(()=>r)),e(t.exports,"control_name",(()=>n)),e(t.exports,"ctrl_or_cmd_name",(()=>o)),e(t.exports,"alt_or_options_name",(()=>s)),e(t.exports,"and",(()=>O)),e(t.exports,"has_ctrl_or_cmd_pressed",(()=>a)),e(t.exports,"in_textarea_or_input",(()=>l));let r=/Mac/.test(navigator.platform),n=r?"⌃":"Ctrl",o=r?"⌘":"Ctrl",s=r?"⌥":"Alt",O=r?" ":"+",a=e=>e.ctrlKey||r&&e.metaKey,l=()=>{var e,t,i;const r=null!=(null===(e=document.activeElement)||void 0===e?void 0:e.closest("footer")),n=null!=(null===(t=document.activeElement)||void 0===t?void 0:t.closest("header")),o=null!=(null===(i=document.activeElement)||void 0===i?void 0:i.closest(".cm-editor")),{tagName:s}=document.activeElement??{};return"INPUT"===s||"TEXTAREA"===s||r||n||o}})),n.register("hiQgq",(function(t,i){e(t.exports,"setDiagnostics",(()=>n("jpyyv").setDiagnostics)),e(t.exports,"EditorState",(()=>n("jpyyv").EditorState)),e(t.exports,"EditorSelection",(()=>n("jpyyv").EditorSelection)),e(t.exports,"Compartment",(()=>n("jpyyv").Compartment)),e(t.exports,"EditorView",(()=>n("jpyyv").EditorView)),e(t.exports,"placeholder",(()=>n("jpyyv").placeholder)),e(t.exports,"julia_andrey",(()=>n("jpyyv").julia_andrey)),e(t.exports,"keymap",(()=>n("jpyyv").keymap)),e(t.exports,"history",(()=>n("jpyyv").history)),e(t.exports,"historyKeymap",(()=>n("jpyyv").historyKeymap)),e(t.exports,"defaultKeymap",(()=>n("jpyyv").defaultKeymap)),e(t.exports,"indentMore",(()=>n("jpyyv").indentMore)),e(t.exports,"indentLess",(()=>n("jpyyv").indentLess)),e(t.exports,"moveLineUp",(()=>n("jpyyv").moveLineUp)),e(t.exports,"moveLineDown",(()=>n("jpyyv").moveLineDown)),e(t.exports,"tags",(()=>n("jpyyv").tags)),e(t.exports,"HighlightStyle",(()=>n("jpyyv").HighlightStyle)),e(t.exports,"lineNumbers",(()=>n("jpyyv").lineNumbers)),e(t.exports,"highlightSpecialChars",(()=>n("jpyyv").highlightSpecialChars)),e(t.exports,"drawSelection",(()=>n("jpyyv").drawSelection)),e(t.exports,"indentOnInput",(()=>n("jpyyv").indentOnInput)),e(t.exports,"defaultHighlightStyle",(()=>n("jpyyv").defaultHighlightStyle)),e(t.exports,"closeBrackets",(()=>n("jpyyv").closeBrackets)),e(t.exports,"rectangularSelection",(()=>n("jpyyv").rectangularSelection)),e(t.exports,"highlightSelectionMatches",(()=>n("jpyyv").highlightSelectionMatches)),e(t.exports,"closeBracketsKeymap",(()=>n("jpyyv").closeBracketsKeymap)),e(t.exports,"foldKeymap",(()=>n("jpyyv").foldKeymap)),e(t.exports,"syntaxTree",(()=>n("jpyyv").syntaxTree)),e(t.exports,"Decoration",(()=>n("jpyyv").Decoration)),e(t.exports,"ViewPlugin",(()=>n("jpyyv").ViewPlugin)),e(t.exports,"WidgetType",(()=>n("jpyyv").WidgetType)),e(t.exports,"Facet",(()=>n("jpyyv").Facet)),e(t.exports,"StateField",(()=>n("jpyyv").StateField)),e(t.exports,"StateEffect",(()=>n("jpyyv").StateEffect)),e(t.exports,"indentUnit",(()=>n("jpyyv").indentUnit)),e(t.exports,"combineConfig",(()=>n("jpyyv").combineConfig)),e(t.exports,"autocomplete",(()=>n("jpyyv").autocomplete)),e(t.exports,"html",(()=>n("jpyyv").html)),e(t.exports,"htmlLanguage",(()=>n("jpyyv").htmlLanguage)),e(t.exports,"javascriptLanguage",(()=>n("jpyyv").javascriptLanguage)),e(t.exports,"markdown",(()=>n("jpyyv").markdown)),e(t.exports,"markdownLanguage",(()=>n("jpyyv").markdownLanguage)),e(t.exports,"parseCode",(()=>n("jpyyv").parseCode)),e(t.exports,"parseMixed",(()=>n("jpyyv").parseMixed)),e(t.exports,"PostgreSQL",(()=>n("jpyyv").PostgreSQL)),e(t.exports,"pythonLanguage",(()=>n("jpyyv").pythonLanguage)),e(t.exports,"sql",(()=>n("jpyyv").sql)),e(t.exports,"syntaxHighlighting",(()=>n("jpyyv").syntaxHighlighting)),e(t.exports,"javascript",(()=>n("jpyyv").javascript)),e(t.exports,"python",(()=>n("jpyyv").python)),e(t.exports,"Text",(()=>n("jpyyv").Text)),e(t.exports,"cssLanguage",(()=>n("jpyyv").cssLanguage)),e(t.exports,"selectNextOccurrence",(()=>n("jpyyv").selectNextOccurrence));n("jpyyv")})),n.register("jpyyv",(function(t,i){e(t.exports,"Text",(()=>o)),e(t.exports,"EditorSelection",(()=>W)),e(t.exports,"Facet",(()=>N)),e(t.exports,"StateField",(()=>B)),e(t.exports,"Compartment",(()=>te)),e(t.exports,"StateEffect",(()=>Qe)),e(t.exports,"EditorState",(()=>Te)),e(t.exports,"combineConfig",(()=>ke)),e(t.exports,"parseMixed",(()=>wt)),e(t.exports,"WidgetType",(()=>Rn)),e(t.exports,"Decoration",(()=>Vn)),e(t.exports,"ViewPlugin",(()=>ro)),e(t.exports,"EditorView",(()=>dO)),e(t.exports,"keymap",(()=>SO)),e(t.exports,"drawSelection",(()=>qO)),e(t.exports,"highlightSpecialChars",(()=>LO)),e(t.exports,"placeholder",(()=>ea)),e(t.exports,"rectangularSelection",(()=>na)),e(t.exports,"lineNumbers",(()=>za)),e(t.exports,"tags",(()=>Ql)),e(t.exports,"syntaxTree",(()=>vl)),e(t.exports,"indentUnit",(()=>Wl)),e(t.exports,"indentOnInput",(()=>Fl)),e(t.exports,"foldKeymap",(()=>uh)),e(t.exports,"HighlightStyle",(()=>bh)),e(t.exports,"syntaxHighlighting",(()=>vh)),e(t.exports,"defaultHighlightStyle",(()=>xh)),e(t.exports,"closeBrackets",(()=>nu)),e(t.exports,"closeBracketsKeymap",(()=>cu)),e(t.exports,"autocomplete",(()=>yu)),e(t.exports,"julia_andrey",(()=>Ru)),e(t.exports,"history",(()=>zu)),e(t.exports,"historyKeymap",(()=>sf)),e(t.exports,"moveLineUp",(()=>Kf)),e(t.exports,"moveLineDown",(()=>Ff)),e(t.exports,"indentMore",(()=>rd)),e(t.exports,"indentLess",(()=>nd)),e(t.exports,"defaultKeymap",(()=>Od)),e(t.exports,"highlightSelectionMatches",(()=>yd)),e(t.exports,"selectNextOccurrence",(()=>kd)),e(t.exports,"parseCode",(()=>$Q)),e(t.exports,"cssLanguage",(()=>Wg)),e(t.exports,"javascriptLanguage",(()=>om)),e(t.exports,"javascript",(()=>fm)),e(t.exports,"htmlLanguage",(()=>Nm)),e(t.exports,"html",(()=>jm)),e(t.exports,"markdownLanguage",(()=>Hm)),e(t.exports,"markdown",(()=>O$)),e(t.exports,"sql",(()=>D$)),e(t.exports,"PostgreSQL",(()=>B$)),e(t.exports,"pythonLanguage",(()=>Xb)),e(t.exports,"python",(()=>Sb)),e(t.exports,"setDiagnostics",(()=>Rb));var r=n("fnbc9");class o{lineAt(e){if(e<0||e>this.length)throw new RangeError(`Invalid position ${e} in document of length ${this.length}`);return this.lineInner(e,!1,1,0)}line(e){if(e<1||e>this.lines)throw new RangeError(`Invalid line number ${e} in ${this.lines}-line document`);return this.lineInner(e,!0,1,0)}replace(e,t,i){let r=[];return this.decompose(0,e,r,2),i.length&&i.decompose(0,i.length,r,3),this.decompose(t,this.length,r,1),O.from(r,this.length-(t-e)+i.length)}append(e){return this.replace(this.length,this.length,e)}slice(e,t=this.length){let i=[];return this.decompose(e,t,i,0),O.from(i,t-e)}eq(e){if(e==this)return!0;if(e.length!=this.length||e.lines!=this.lines)return!1;let t=this.scanIdentical(e,1),i=this.length-this.scanIdentical(e,-1),r=new h(this),n=new h(e);for(let e=t,o=t;;){if(r.next(e),n.next(e),e=0,r.lineBreak!=n.lineBreak||r.done!=n.done||r.value!=n.value)return!1;if(o+=r.value.length,r.done||o>=i)return!0}}iter(e=1){return new h(this,e)}iterRange(e,t=this.length){return new c(this,e,t)}iterLines(e,t){let i;if(null==e)i=this.iter();else{null==t&&(t=this.lines+1);let r=this.line(e).from;i=this.iterRange(r,Math.max(r,t==this.lines+1?this.length:t<=1?0:this.line(t-1).to))}return new u(i)}toString(){return this.sliceString(0)}toJSON(){let e=[];return this.flatten(e),e}constructor(){}static of(e){if(0==e.length)throw new RangeError("A document must have at least one line");return 1!=e.length||e[0]?e.length<=32?new s(e):O.from(s.split(e,[])):o.empty}}class s extends o{constructor(e,t=function(e){let t=-1;for(let i of e)t+=i.length+1;return t}(e)){super(),this.text=e,this.length=t}get lines(){return this.text.length}get children(){return null}lineInner(e,t,i,r){for(let n=0;;n++){let o=this.text[n],s=r+o.length;if((t?i:s)>=e)return new f(r,s,i,o);r=s+1,i++}}decompose(e,t,i,r){let n=e<=0&&t>=this.length?this:new s(l(this.text,e,t),Math.min(t,this.length)-Math.max(0,e));if(1&r){let e=i.pop(),t=a(n.text,e.text.slice(),0,n.length);if(t.length<=32)i.push(new s(t,e.length+n.length));else{let e=t.length>>1;i.push(new s(t.slice(0,e)),new s(t.slice(e)))}}else i.push(n)}replace(e,t,i){if(!(i instanceof s))return super.replace(e,t,i);let r=a(this.text,a(i.text,l(this.text,0,e)),t),n=this.length+i.length-(t-e);return r.length<=32?new s(r,n):O.from(s.split(r,[]),n)}sliceString(e,t=this.length,i="\n"){let r="";for(let n=0,o=0;n<=t&&oe&&o&&(r+=i),en&&(r+=s.slice(Math.max(0,e-n),t-n)),n=O+1}return r}flatten(e){for(let t of this.text)e.push(t)}scanIdentical(){return 0}static split(e,t){let i=[],r=-1;for(let n of e)i.push(n),r+=n.length+1,32==i.length&&(t.push(new s(i,r)),i=[],r=-1);return r>-1&&t.push(new s(i,r)),t}}class O extends o{constructor(e,t){super(),this.children=e,this.length=t,this.lines=0;for(let t of e)this.lines+=t.lines}lineInner(e,t,i,r){for(let n=0;;n++){let o=this.children[n],s=r+o.length,O=i+o.lines-1;if((t?O:s)>=e)return o.lineInner(e,t,i,r);r=s+1,i=O+1}}decompose(e,t,i,r){for(let n=0,o=0;o<=t&&n=o){let n=r&((o<=e?1:0)|(O>=t?2:0));o>=e&&O<=t&&!n?i.push(s):s.decompose(e-o,t-o,i,n)}o=O+1}}replace(e,t,i){if(i.lines=n&&t<=s){let a=o.replace(e-n,t-n,i),l=this.lines-o.lines+a.lines;if(a.lines>4&&a.lines>l>>6){let n=this.children.slice();return n[r]=a,new O(n,this.length-(t-e)+i.length)}return super.replace(n,s,a)}n=s+1}return super.replace(e,t,i)}sliceString(e,t=this.length,i="\n"){let r="";for(let n=0,o=0;ne&&n&&(r+=i),eo&&(r+=s.sliceString(e-o,t-o,i)),o=O+1}return r}flatten(e){for(let t of this.children)t.flatten(e)}scanIdentical(e,t){if(!(e instanceof O))return 0;let i=0,[r,n,o,s]=t>0?[0,0,this.children.length,e.children.length]:[this.children.length-1,e.children.length-1,-1,-1];for(;;r+=t,n+=t){if(r==o||n==s)return i;let O=this.children[r],a=e.children[n];if(O!=a)return i+O.scanIdentical(a,t);i+=O.length+1}}static from(e,t=e.reduce(((e,t)=>e+t.length+1),-1)){let i=0;for(let t of e)i+=t.lines;if(i<32){let i=[];for(let t of e)t.flatten(i);return new s(i,t)}let r=Math.max(32,i>>5),n=r<<1,o=r>>1,a=[],l=0,h=-1,c=[];function u(e){let t;if(e.lines>n&&e instanceof O)for(let t of e.children)u(t);else e.lines>o&&(l>o||!l)?(f(),a.push(e)):e instanceof s&&l&&(t=c[c.length-1])instanceof s&&e.lines+t.lines<=32?(l+=e.lines,h+=e.length+1,c[c.length-1]=new s(t.text.concat(e.text),t.length+1+e.length)):(l+e.lines>r&&f(),l+=e.lines,h+=e.length+1,c.push(e))}function f(){0!=l&&(a.push(1==c.length?c[0]:O.from(c,h)),h=-1,l=c.length=0)}for(let t of e)u(t);return f(),1==a.length?a[0]:new O(a,t)}}function a(e,t,i=0,r=1e9){for(let n=0,o=0,s=!0;o=i&&(a>r&&(O=O.slice(0,r-n)),n0?1:(e instanceof s?e.text.length:e.children.length)<<1]}nextInner(e,t){for(this.done=this.lineBreak=!1;;){let i=this.nodes.length-1,r=this.nodes[i],n=this.offsets[i],o=n>>1,O=r instanceof s?r.text.length:r.children.length;if(o==(t>0?O:0)){if(0==i)return this.done=!0,this.value="",this;t>0&&this.offsets[i-1]++,this.nodes.pop(),this.offsets.pop()}else if((1&n)==(t>0?0:1)){if(this.offsets[i]+=t,0==e)return this.lineBreak=!0,this.value="\n",this;e--}else if(r instanceof s){let n=r.text[o+(t<0?-1:0)];if(this.offsets[i]+=t,n.length>Math.max(0,e))return this.value=0==e?n:t>0?n.slice(e):n.slice(0,n.length-e),this;e-=n.length}else{let n=r.children[o+(t<0?-1:0)];e>n.length?(e-=n.length,this.offsets[i]+=t):(t<0&&this.offsets[i]--,this.nodes.push(n),this.offsets.push(t>0?1:(n instanceof s?n.text.length:n.children.length)<<1))}}}next(e=0){return e<0&&(this.nextInner(-e,-this.dir),e=this.value.length),this.nextInner(e,this.dir)}}class c{constructor(e,t,i){this.value="",this.done=!1,this.cursor=new h(e,t>i?-1:1),this.pos=t>i?e.length:0,this.from=Math.min(t,i),this.to=Math.max(t,i)}nextInner(e,t){if(t<0?this.pos<=this.from:this.pos>=this.to)return this.value="",this.done=!0,this;e+=Math.max(0,t<0?this.pos-this.to:this.from-this.pos);let i=t<0?this.pos-this.from:this.to-this.pos;e>i&&(e=i),i-=e;let{value:r}=this.cursor.next(e);return this.pos+=(r.length+e)*t,this.value=r.length<=i?r:t<0?r.slice(r.length-i):r.slice(0,i),this.done=!this.value,this}next(e=0){return e<0?e=Math.max(e,this.from-this.pos):e>0&&(e=Math.min(e,this.to-this.pos)),this.nextInner(e,this.cursor.dir)}get lineBreak(){return this.cursor.lineBreak&&""!=this.value}}class u{constructor(e){this.inner=e,this.afterBreak=!0,this.value="",this.done=!1}next(e=0){let{done:t,lineBreak:i,value:r}=this.inner.next(e);return t?(this.done=!0,this.value=""):i?this.afterBreak?this.value="":(this.afterBreak=!0,this.next()):(this.value=r,this.afterBreak=!1),this}get lineBreak(){return!1}}"undefined"!=typeof Symbol&&(o.prototype[Symbol.iterator]=function(){return this.iter()},h.prototype[Symbol.iterator]=c.prototype[Symbol.iterator]=u.prototype[Symbol.iterator]=function(){return this});let f=class{constructor(e,t,i,r){this.from=e,this.to=t,this.number=i,this.text=r}get length(){return this.to-this.from}},d="lc,34,7n,7,7b,19,,,,2,,2,,,20,b,1c,l,g,,2t,7,2,6,2,2,,4,z,,u,r,2j,b,1m,9,9,,o,4,,9,,3,,5,17,3,3b,f,,w,1j,,,,4,8,4,,3,7,a,2,t,,1m,,,,2,4,8,,9,,a,2,q,,2,2,1l,,4,2,4,2,2,3,3,,u,2,3,,b,2,1l,,4,5,,2,4,,k,2,m,6,,,1m,,,2,,4,8,,7,3,a,2,u,,1n,,,,c,,9,,14,,3,,1l,3,5,3,,4,7,2,b,2,t,,1m,,2,,2,,3,,5,2,7,2,b,2,s,2,1l,2,,,2,4,8,,9,,a,2,t,,20,,4,,2,3,,,8,,29,,2,7,c,8,2q,,2,9,b,6,22,2,r,,,,,,1j,e,,5,,2,5,b,,10,9,,2u,4,,6,,2,2,2,p,2,4,3,g,4,d,,2,2,6,,f,,jj,3,qa,3,t,3,t,2,u,2,1s,2,,7,8,,2,b,9,,19,3,3b,2,y,,3a,3,4,2,9,,6,3,63,2,2,,1m,,,7,,,,,2,8,6,a,2,,1c,h,1r,4,1c,7,,,5,,14,9,c,2,w,4,2,2,,3,1k,,,2,3,,,3,1m,8,2,2,48,3,,d,,7,4,,6,,3,2,5i,1m,,5,ek,,5f,x,2da,3,3x,,2o,w,fe,6,2x,2,n9w,4,,a,w,2,28,2,7k,,3,,4,,p,2,5,,47,2,q,i,d,,12,8,p,b,1a,3,1c,,2,4,2,2,13,,1v,6,2,2,2,2,c,,8,,1b,,1f,,,3,2,2,5,2,,,16,2,8,,6m,,2,,4,,fn4,,kh,g,g,g,a6,2,gt,,6a,,45,5,1ae,3,,2,5,4,14,3,4,,4l,2,fx,4,ar,2,49,b,4w,,1i,f,1k,3,1d,4,2,2,1x,3,10,5,,8,1q,,c,2,1g,9,a,4,2,,2n,3,2,,,2,6,,4g,,3,8,l,2,1l,2,,,,,m,,e,7,3,5,5f,8,2,3,,,n,,29,,2,6,,,2,,,2,,2,6j,,2,4,6,2,,2,r,2,2d,8,2,,,2,2y,,,,2,6,,,2t,3,2,4,,5,77,9,,2,6t,,a,2,,,4,,40,4,2,2,4,,w,a,14,6,2,4,8,,9,6,2,3,1a,d,,2,ba,7,,6,,,2a,m,2,7,,2,,2,3e,6,3,,,2,,7,,,20,2,3,,,,9n,2,f0b,5,1n,7,t4,,1r,4,29,,f5k,2,43q,,,3,4,5,8,8,2,7,u,4,44,3,1iz,1j,4,1e,8,,e,,m,5,,f,11s,7,,h,2,7,,2,,5,79,7,c5,4,15s,7,31,7,240,5,gx7k,2o,3k,6o".split(",").map((e=>e?parseInt(e,36):1));for(let e=1;ee)return d[t-1]<=e;return!1}function Q(e){return e>=127462&&e<=127487}function g(e,t,i=!0,r=!0){return(i?m:$)(e,t,r)}function m(e,t,i){if(t==e.length)return t;t&&b(e.charCodeAt(t))&&X(e.charCodeAt(t-1))&&t--;let r=S(e,t);for(t+=v(r);t=0&&Q(S(e,r));)i++,r-=2;if(i%2==0)break;t+=2}}}return t}function $(e,t,i){for(;t>0;){let r=m(e,t-2,i);if(r=56320&&e<57344}function X(e){return e>=55296&&e<56320}function S(e,t){let i=e.charCodeAt(t);if(!X(i)||t+1==e.length)return i;let r=e.charCodeAt(t+1);return b(r)?r-56320+(i-55296<<10)+65536:i}function y(e){return e<=65535?String.fromCharCode(e):(e-=65536,String.fromCharCode(55296+(e>>10),56320+(1023&e)))}function v(e){return e<65536?1:2}const P=/\r\n?|\n/;var x,w=((x=w||(w={}))[x.Simple=0]="Simple",x[x.TrackDel=1]="TrackDel",x[x.TrackBefore=2]="TrackBefore",x[x.TrackAfter=3]="TrackAfter",x);class T{constructor(e){this.sections=e}get length(){let e=0;for(let t=0;te)return n+(e-r);n+=s}else{if(i!=w.Simple&&a>=e&&(i==w.TrackDel&&re||i==w.TrackBefore&&re))return null;if(a>e||a==e&&t<0&&!s)return e==r||t<0?n:n+O;n+=O}r=a}if(e>r)throw new RangeError(`Position ${e} is out of range for changeset of length ${r}`);return n}touchesRange(e,t=e){for(let i=0,r=0;i=0&&r<=t&&n>=e)return!(rt)||"cover";r=n}return!1}toString(){let e="";for(let t=0;t=0?":"+r:"")}return e}toJSON(){return this.sections}static fromJSON(e){if(!Array.isArray(e)||e.length%2||e.some((e=>"number"!=typeof e)))throw new RangeError("Invalid JSON representation of ChangeDesc");return new T(e)}static create(e){return new T(e)}}class k extends T{constructor(e,t){super(e),this.inserted=t}apply(e){if(this.length!=e.length)throw new RangeError("Applying change set to a document with the wrong length");return _(this,((t,i,r,n,o)=>e=e.replace(r,r+(i-t),o)),!1),e}mapDesc(e,t=!1){return V(this,e,t,!0)}invert(e){let t=this.sections.slice(),i=[];for(let r=0,n=0;r=0){t[r]=O,t[r+1]=s;let a=r>>1;for(;i.length0&&R(i,t,n.text),n.forward(e),s+=e}let a=e[o++];for(;s>1].toJSON()))}return e}static of(e,t,i){let r=[],n=[],s=0,O=null;function a(e=!1){if(!e&&!r.length)return;sO||e<0||O>t)throw new RangeError(`Invalid change range ${e} to ${O} (in doc of length ${t})`);let c=h?"string"==typeof h?o.of(h.split(i||P)):h:o.empty,u=c.length;if(e==O&&0==u)return;es&&Y(r,e-s,-1),Y(r,O-e,u),R(n,r,c),s=O}}(e),a(!O),O}static empty(e){return new k(e?[e,-1]:[],[])}static fromJSON(e){if(!Array.isArray(e))throw new RangeError("Invalid JSON representation of ChangeSet");let t=[],i=[];for(let r=0;rt&&"string"!=typeof e)))throw new RangeError("Invalid JSON representation of ChangeSet");if(1==n.length)t.push(n[0],0);else{for(;i.length=0&&i<=0&&i==e[n+1]?e[n]+=t:0==t&&0==e[n]?e[n+1]+=i:r?(e[n]+=t,e[n+1]+=i):e.push(t,i)}function R(e,t,i){if(0==i.length)return;let r=t.length-2>>1;if(r>1])),!(i||O==e.sections.length||e.sections[O+1]<0);)a=e.sections[O++],l=e.sections[O++];t(n,h,s,c,u),n=h,s=c}}}function V(e,t,i,r=!1){let n=[],o=r?[]:null,s=new q(e),O=new q(t);for(let e=-1;;)if(-1==s.ins&&-1==O.ins){let e=Math.min(s.len,O.len);Y(n,e,-1),s.forward(e),O.forward(e)}else if(O.ins>=0&&(s.ins<0||e==s.i||0==s.off&&(O.len=0&&e=0)){if(s.done&&O.done)return o?k.createSet(n,o):T.create(n);throw new Error("Mismatched change set lengths")}{let t=0,i=s.len;for(;i;)if(-1==O.ins){let e=Math.min(i,O.len);t+=e,i-=e,O.forward(e)}else{if(!(0==O.ins&&O.lent||s.ins>=0&&s.len>t)&&(e||r.length>i),o.forward2(t),s.forward(t)}}else Y(r,0,s.ins,e),n&&R(n,r,s.text),s.next()}}class q{constructor(e){this.set=e,this.i=0,this.next()}next(){let{sections:e}=this.set;this.i>1;return t>=e.length?o.empty:e[t]}textBit(e){let{inserted:t}=this.set,i=this.i-2>>1;return i>=t.length&&!e?o.empty:t[i].slice(this.off,null==e?void 0:this.off+e)}forward(e){e==this.len?this.next():(this.len-=e,this.off+=e)}forward2(e){-1==this.ins?this.forward(e):e==this.ins?this.next():(this.ins-=e,this.off+=e)}}class A{constructor(e,t,i){this.from=e,this.to=t,this.flags=i}get anchor(){return 32&this.flags?this.to:this.from}get head(){return 32&this.flags?this.from:this.to}get empty(){return this.from==this.to}get assoc(){return 8&this.flags?-1:16&this.flags?1:0}get bidiLevel(){let e=7&this.flags;return 7==e?null:e}get goalColumn(){let e=this.flags>>6;return 16777215==e?void 0:e}map(e,t=-1){let i,r;return this.empty?i=r=e.mapPos(this.from,t):(i=e.mapPos(this.from,1),r=e.mapPos(this.to,-1)),i==this.from&&r==this.to?this:new A(i,r,this.flags)}extend(e,t=e){if(e<=this.anchor&&t>=this.anchor)return W.range(e,t);let i=Math.abs(e-this.anchor)>Math.abs(t-this.anchor)?e:t;return W.range(this.anchor,i)}eq(e){return this.anchor==e.anchor&&this.head==e.head}toJSON(){return{anchor:this.anchor,head:this.head}}static fromJSON(e){if(!e||"number"!=typeof e.anchor||"number"!=typeof e.head)throw new RangeError("Invalid JSON representation for SelectionRange");return W.range(e.anchor,e.head)}static create(e,t,i){return new A(e,t,i)}}class W{constructor(e,t){this.ranges=e,this.mainIndex=t}map(e,t=-1){return e.empty?this:W.create(this.ranges.map((i=>i.map(e,t))),this.mainIndex)}eq(e){if(this.ranges.length!=e.ranges.length||this.mainIndex!=e.mainIndex)return!1;for(let t=0;te.toJSON())),main:this.mainIndex}}static fromJSON(e){if(!e||!Array.isArray(e.ranges)||"number"!=typeof e.main||e.main>=e.ranges.length)throw new RangeError("Invalid JSON representation for EditorSelection");return new W(e.ranges.map((e=>A.fromJSON(e))),e.main)}static single(e,t=e){return new W([W.range(e,t)],0)}static create(e,t=0){if(0==e.length)throw new RangeError("A selection needs at least one range");for(let i=0,r=0;re?8:0)|n)}static normalized(e,t=0){let i=e[t];e.sort(((e,t)=>e.from-t.from)),t=e.indexOf(i);for(let i=1;ir.head?W.range(s,o):W.range(o,s))}}return new W(e,t)}}function C(e,t){for(let i of e.ranges)if(i.to>t)throw new RangeError("Selection points outside of document")}let U=0;class N{constructor(e,t,i,r,n){this.combine=e,this.compareInput=t,this.compare=i,this.isStatic=r,this.id=U++,this.default=e([]),this.extensions="function"==typeof n?n(this):n}get reader(){return this}static define(e={}){return new N(e.combine||(e=>e),e.compareInput||((e,t)=>e===t),e.compare||(e.combine?(e,t)=>e===t:j),!!e.static,e.enables)}of(e){return new E([],this,0,e)}compute(e,t){if(this.isStatic)throw new Error("Can't compute a static facet");return new E(e,this,1,t)}computeN(e,t){if(this.isStatic)throw new Error("Can't compute a static facet");return new E(e,this,2,t)}from(e,t){return t||(t=e=>e),this.compute([e],(i=>t(i.field(e))))}}function j(e,t){return e==t||e.length==t.length&&e.every(((e,i)=>e===t[i]))}class E{constructor(e,t,i,r){this.dependencies=e,this.facet=t,this.type=i,this.value=r,this.id=U++}dynamicSlot(e){var t;let i=this.value,r=this.facet.compareInput,n=this.id,o=e[n]>>1,s=2==this.type,O=!1,a=!1,l=[];for(let i of this.dependencies)"doc"==i?O=!0:"selection"==i?a=!0:0==(1&(null!==(t=e[i.id])&&void 0!==t?t:1))&&l.push(e[i.id]);return{create:e=>(e.values[o]=i(e),1),update(e,t){if(O&&t.docChanged||a&&(t.docChanged||t.selection)||G(e,l)){let t=i(e);if(s?!z(t,e.values[o],r):!r(t,e.values[o]))return e.values[o]=t,1}return 0},reconfigure:(e,t)=>{let O,a=t.config.address[n];if(null!=a){let n=oe(t,a);if(this.dependencies.every((i=>i instanceof N?t.facet(i)===e.facet(i):!(i instanceof B)||t.field(i,!1)==e.field(i,!1)))||(s?z(O=i(e),n,r):r(O=i(e),n)))return e.values[o]=n,0}else O=i(e);return e.values[o]=O,1}}}}function z(e,t,i){if(e.length!=t.length)return!1;for(let r=0;re[t.id])),n=i.map((e=>e.type)),o=r.filter((e=>!(1&e))),s=e[t.id]>>1;function O(e){let i=[];for(let t=0;te===t),e);return e.provide&&(t.provides=e.provide(t)),t}create(e){let t=e.facet(M).find((e=>e.field==this));return((null==t?void 0:t.create)||this.createF)(e)}slot(e){let t=e[this.id]>>1;return{create:e=>(e.values[t]=this.create(e),1),update:(e,i)=>{let r=e.values[t],n=this.updateF(r,i);return this.compareF(r,n)?0:(e.values[t]=n,1)},reconfigure:(e,i)=>null!=i.config.address[this.id]?(e.values[t]=i.field(this),0):(e.values[t]=this.create(e),1)}}init(e){return[this,M.of({field:this,create:e})]}get extension(){return this}}const I=4,L=3,K=2,F=1;function H(e){return t=>new ee(t,e)}const J={highest:H(0),high:H(F),default:H(K),low:H(L),lowest:H(I)};class ee{constructor(e,t){this.inner=e,this.prec=t}}class te{of(e){return new ie(this,e)}reconfigure(e){return te.reconfigure.of({compartment:this,extension:e})}get(e){return e.config.compartments.get(this)}}class ie{constructor(e,t){this.compartment=e,this.inner=t}}class re{constructor(e,t,i,r,n,o){for(this.base=e,this.compartments=t,this.dynamicSlots=i,this.address=r,this.staticValues=n,this.facets=o,this.statusTemplate=[];this.statusTemplate.length>1]}static resolve(e,t,i){let r=[],n=Object.create(null),o=new Map;for(let i of function(e,t,i){let r=[[],[],[],[],[]],n=new Map;return function e(o,s){let O=n.get(o);if(null!=O){if(O<=s)return;let e=r[O].indexOf(o);e>-1&&r[O].splice(e,1),o instanceof ie&&i.delete(o.compartment)}if(n.set(o,s),Array.isArray(o))for(let t of o)e(t,s);else if(o instanceof ie){if(i.has(o.compartment))throw new RangeError("Duplicate use of compartment in extensions");let r=t.get(o.compartment)||o.inner;i.set(o.compartment,r),e(r,s)}else if(o instanceof ee)e(o.inner,o.prec);else if(o instanceof B)r[s].push(o),o.provides&&e(o.provides,s);else if(o instanceof E)r[s].push(o),o.facet.extensions&&e(o.facet.extensions,K);else{let t=o.extension;if(!t)throw new Error(`Unrecognized extension value in extension set (${o}). This sometimes happens because multiple instances of @codemirror/state are loaded, breaking instanceof checks.`);e(t,s)}}(e,K),r.reduce(((e,t)=>e.concat(t)))}(e,t,o))i instanceof B?r.push(i):(n[i.facet.id]||(n[i.facet.id]=[])).push(i);let s=Object.create(null),O=[],a=[];for(let e of r)s[e.id]=a.length<<1,a.push((t=>e.slot(t)));let l=null==i?void 0:i.config.facets;for(let e in n){let t=n[e],r=t[0].facet,o=l&&l[e]||[];if(t.every((e=>0==e.type)))if(s[r.id]=O.length<<1|1,j(o,t))O.push(i.facet(r));else{let e=r.combine(t.map((e=>e.value)));O.push(i&&r.compare(e,i.facet(r))?i.facet(r):e)}else{for(let e of t)0==e.type?(s[e.id]=O.length<<1|1,O.push(e.value)):(s[e.id]=a.length<<1,a.push((t=>e.dynamicSlot(t))));s[r.id]=a.length<<1,a.push((e=>D(e,r,t)))}}let h=a.map((e=>e(s)));return new re(e,o,h,s,O,n)}}function ne(e,t){if(1&t)return 2;let i=t>>1,r=e.status[i];if(4==r)throw new Error("Cyclic dependency between fields and/or facets");if(2&r)return r;e.status[i]=4;let n=e.computeSlot(e,e.config.dynamicSlots[i]);return e.status[i]=2|n}function oe(e,t){return 1&t?e.config.staticValues[t>>1]:e.values[t>>1]}const se=N.define(),Oe=N.define({combine:e=>e.some((e=>e)),static:!0}),ae=N.define({combine:e=>e.length?e[0]:void 0,static:!0}),le=N.define(),he=N.define(),ce=N.define(),ue=N.define({combine:e=>!!e.length&&e[0]});class fe{constructor(e,t){this.type=e,this.value=t}static define(){return new de}}class de{of(e){return new fe(this,e)}}class pe{constructor(e){this.map=e}of(e){return new Qe(this,e)}}class Qe{constructor(e,t){this.type=e,this.value=t}map(e){let t=this.type.map(this.value,e);return void 0===t?void 0:t==this.value?this:new Qe(this.type,t)}is(e){return this.type==e}static define(e={}){return new pe(e.map||(e=>e))}static mapEffects(e,t){if(!e.length)return e;let i=[];for(let r of e){let e=r.map(t);e&&i.push(e)}return i}}Qe.reconfigure=Qe.define(),Qe.appendConfig=Qe.define();class ge{constructor(e,t,i,r,n,o){this.startState=e,this.changes=t,this.selection=i,this.effects=r,this.annotations=n,this.scrollIntoView=o,this._doc=null,this._state=null,i&&C(i,t.newLength),n.some((e=>e.type==ge.time))||(this.annotations=n.concat(ge.time.of(Date.now())))}static create(e,t,i,r,n,o){return new ge(e,t,i,r,n,o)}get newDoc(){return this._doc||(this._doc=this.changes.apply(this.startState.doc))}get newSelection(){return this.selection||this.startState.selection.map(this.changes)}get state(){return this._state||this.startState.applyTransaction(this),this._state}annotation(e){for(let t of this.annotations)if(t.type==e)return t.value}get docChanged(){return!this.changes.empty}get reconfigured(){return this.startState.config!=this.state.config}isUserEvent(e){let t=this.annotation(ge.userEvent);return!(!t||!(t==e||t.length>e.length&&t.slice(0,e.length)==e&&"."==t[e.length]))}}function me(e,t){let i=[];for(let r=0,n=0;;){let o,s;if(r=e[r]))o=e[r++],s=e[r++];else{if(!(n=0;n--){let o=i[n](e);o&&Object.keys(o).length&&(r=$e(r,be(t,o,e.changes.newLength),!0))}return r==e?e:ge.create(t,e.changes,e.selection,r.effects,r.annotations,r.scrollIntoView)}(i?function(e){let t=e.startState,i=!0;for(let r of t.facet(le)){let t=r(e);if(!1===t){i=!1;break}Array.isArray(t)&&(i=!0===i?t:me(i,t))}if(!0!==i){let r,n;if(!1===i)n=e.changes.invertedDesc,r=k.empty(t.doc.length);else{let t=e.changes.filter(i);r=t.changes,n=t.filtered.mapDesc(t.changes).invertedDesc}e=ge.create(t,r,e.selection&&e.selection.map(n),Qe.mapEffects(e.effects,n),e.annotations,e.scrollIntoView)}let r=t.facet(he);for(let i=r.length-1;i>=0;i--){let n=r[i](e);e=n instanceof ge?n:Array.isArray(n)&&1==n.length&&n[0]instanceof ge?n[0]:Xe(t,ye(n),!1)}return e}(n):n)}ge.time=fe.define(),ge.userEvent=fe.define(),ge.addToHistory=fe.define(),ge.remote=fe.define();const Se=[];function ye(e){return null==e?Se:Array.isArray(e)?e:[e]}var ve=function(e){return e[e.Word=0]="Word",e[e.Space=1]="Space",e[e.Other=2]="Other",e}(ve||(ve={}));const Pe=/[\u00df\u0587\u0590-\u05f4\u0600-\u06ff\u3040-\u309f\u30a0-\u30ff\u3400-\u4db5\u4e00-\u9fcc\uac00-\ud7af]/;let xe;try{xe=new RegExp("[\\p{Alphabetic}\\p{Number}_]","u")}catch(e){}function we(e){return t=>{if(!/\S/.test(t))return ve.Space;if(function(e){if(xe)return xe.test(e);for(let t=0;t"€"&&(i.toUpperCase()!=i.toLowerCase()||Pe.test(i)))return!0}return!1}(t))return ve.Word;for(let i=0;i-1)return ve.Word;return ve.Other}}class Te{constructor(e,t,i,r,n,o){this.config=e,this.doc=t,this.selection=i,this.values=r,this.status=e.statusTemplate.slice(),this.computeSlot=n,o&&(o._state=this);for(let e=0;en.set(t,e))),i=null),n.set(t.value.compartment,t.value.extension)):t.is(Qe.reconfigure)?(i=null,r=t.value):t.is(Qe.appendConfig)&&(i=null,r=ye(r).concat(t.value));i?t=e.startState.values.slice():(i=re.resolve(r,n,this),t=new Te(i,this.doc,this.selection,i.dynamicSlots.map((()=>null)),((e,t)=>t.reconfigure(e,this)),null).values),new Te(i,e.newDoc,e.newSelection,t,((t,i)=>i.update(t,e)),e)}replaceSelection(e){return"string"==typeof e&&(e=this.toText(e)),this.changeByRange((t=>({changes:{from:t.from,to:t.to,insert:e},range:W.cursor(t.from+e.length)})))}changeByRange(e){let t=this.selection,i=e(t.ranges[0]),r=this.changes(i.changes),n=[i.range],o=ye(i.effects);for(let i=1;in.spec.fromJSON(o,e))))}return Te.create({doc:e.doc,selection:W.fromJSON(e.selection),extensions:t.extensions?r.concat([t.extensions]):r})}static create(e={}){let t=re.resolve(e.extensions||[],new Map),i=e.doc instanceof o?e.doc:o.of((e.doc||"").split(t.staticFacet(Te.lineSeparator)||P)),r=e.selection?e.selection instanceof W?e.selection:W.single(e.selection.anchor,e.selection.head):W.single(0);return C(r,i.length),t.staticFacet(Oe)||(r=r.asSingle()),new Te(t,i,r,t.dynamicSlots.map((()=>null)),((e,t)=>t.create(e)),null)}get tabSize(){return this.facet(Te.tabSize)}get lineBreak(){return this.facet(Te.lineSeparator)||"\n"}get readOnly(){return this.facet(ue)}phrase(e,...t){for(let t of this.facet(Te.phrases))if(Object.prototype.hasOwnProperty.call(t,e)){e=t[e];break}return t.length&&(e=e.replace(/\$(\$|\d*)/g,((e,i)=>{if("$"==i)return"$";let r=+(i||1);return!r||r>t.length?e:t[r-1]}))),e}languageDataAt(e,t,i=-1){let r=[];for(let n of this.facet(se))for(let o of n(this,t,i))Object.prototype.hasOwnProperty.call(o,e)&&r.push(o[e]);return r}charCategorizer(e){return we(this.languageDataAt("wordChars",e).join(""))}wordAt(e){let{text:t,from:i,length:r}=this.doc.lineAt(e),n=this.charCategorizer(e),o=e-i,s=e-i;for(;o>0;){let e=g(t,o,!1);if(n(t.slice(e,o))!=ve.Word)break;o=e}for(;se.length?e[0]:4}),Te.lineSeparator=ae,Te.readOnly=ue,Te.phrases=N.define({compare(e,t){let i=Object.keys(e),r=Object.keys(t);return i.length==r.length&&i.every((i=>e[i]==t[i]))}}),Te.languageData=se,Te.changeFilter=le,Te.transactionFilter=he,Te.transactionExtender=ce,te.reconfigure=Qe.define();class Ye{eq(e){return this==e}range(e,t=e){return Re.create(e,t,this)}}Ye.prototype.startSide=Ye.prototype.endSide=0,Ye.prototype.point=!1,Ye.prototype.mapMode=w.TrackDel;let Re=class e{constructor(e,t,i){this.from=e,this.to=t,this.value=i}static create(t,i,r){return new e(t,i,r)}};function _e(e,t){return e.from-t.from||e.value.startSide-t.value.startSide}class Ve{constructor(e,t,i,r){this.from=e,this.to=t,this.value=i,this.maxPoint=r}get length(){return this.to[this.to.length-1]}findIndex(e,t,i,r=0){let n=i?this.to:this.from;for(let o=r,s=n.length;;){if(o==s)return o;let r=o+s>>1,O=n[r]-e||(i?this.value[r].endSide:this.value[r].startSide)-t;if(r==o)return O>=0?o:s;O>=0?s=r:o=r+1}}between(e,t,i,r){for(let n=this.findIndex(t,-1e9,!0),o=this.findIndex(i,1e9,!1,n);nl||a==l&&h.startSide>0&&h.endSide<=0)continue;(l-a||h.endSide-h.startSide)<0||(o<0&&(o=a),h.point&&(s=Math.max(s,l-a)),i.push(h),r.push(a-o),n.push(l-o))}return{mapped:i.length?new Ve(r,n,i,s):null,pos:o}}}class Ze{constructor(e,t,i,r){this.chunkPos=e,this.chunk=t,this.nextLayer=i,this.maxPoint=r}static create(e,t,i,r){return new Ze(e,t,i,r)}get length(){let e=this.chunk.length-1;return e<0?0:Math.max(this.chunkEnd(e),this.nextLayer.length)}get size(){if(this.isEmpty)return 0;let e=this.nextLayer.size;for(let t of this.chunk)e+=t.value.length;return e}chunkEnd(e){return this.chunkPos[e]+this.chunk[e].length}update(e){let{add:t=[],sort:i=!1,filterFrom:r=0,filterTo:n=this.length}=e,o=e.filter;if(0==t.length&&!o)return this;if(i&&(t=t.slice().sort(_e)),this.isEmpty)return t.length?Ze.of(t):this;let s=new We(this,null,-1).goto(0),O=0,a=[],l=new qe;for(;s.value||O=0){let e=t[O++];l.addInner(e.from,e.to,e.value)||a.push(e)}else 1==s.rangeIndex&&s.chunkIndexthis.chunkEnd(s.chunkIndex)||ns.to||n=n&&e<=n+o.length&&!1===o.between(n,e-n,t-n,i))return}this.nextLayer.between(e,t,i)}}iter(e=0){return Ce.from([this]).goto(e)}get isEmpty(){return this.nextLayer==this}static iter(e,t=0){return Ce.from(e).goto(t)}static compare(e,t,i,r,n=-1){let o=e.filter((e=>e.maxPoint>0||!e.isEmpty&&e.maxPoint>=n)),s=t.filter((e=>e.maxPoint>0||!e.isEmpty&&e.maxPoint>=n)),O=Ae(o,s,i),a=new Ne(o,O,n),l=new Ne(s,O,n);i.iterGaps(((e,t,i)=>je(a,e,l,t,i,r))),i.empty&&0==i.length&&je(a,0,l,0,0,r)}static eq(e,t,i=0,r){null==r&&(r=999999999);let n=e.filter((e=>!e.isEmpty&&t.indexOf(e)<0)),o=t.filter((t=>!t.isEmpty&&e.indexOf(t)<0));if(n.length!=o.length)return!1;if(!n.length)return!0;let s=Ae(n,o),O=new Ne(n,s,0).goto(i),a=new Ne(o,s,0).goto(i);for(;;){if(O.to!=a.to||!Ee(O.active,a.active)||O.point&&(!a.point||!O.point.eq(a.point)))return!1;if(O.to>r)return!0;O.next(),a.next()}}static spans(e,t,i,r,n=-1){let o=new Ne(e,null,n).goto(t),s=t,O=o.openStart;for(;;){let e=Math.min(o.to,i);if(o.point){let i=o.activeForPoint(o.to),n=o.pointFroms&&(r.span(s,e,o.active,O),O=o.openEnd(e));if(o.to>i)return O+(o.point&&o.to>i?1:0);s=o.to,o.next()}}static of(e,t=!1){let i=new qe;for(let r of e instanceof Re?[e]:t?function(e){if(e.length>1)for(let t=e[0],i=1;i0)return e.slice().sort(_e);t=r}return e}(e):e)i.add(r.from,r.to,r.value);return i.finish()}}Ze.empty=new Ze([],[],null,-1),Ze.empty.nextLayer=Ze.empty;class qe{finishChunk(e){this.chunks.push(new Ve(this.from,this.to,this.value,this.maxPoint)),this.chunkPos.push(this.chunkStart),this.chunkStart=-1,this.setMaxPoint=Math.max(this.setMaxPoint,this.maxPoint),this.maxPoint=-1,e&&(this.from=[],this.to=[],this.value=[])}constructor(){this.chunks=[],this.chunkPos=[],this.chunkStart=-1,this.last=null,this.lastFrom=-1e9,this.lastTo=-1e9,this.from=[],this.to=[],this.value=[],this.maxPoint=-1,this.setMaxPoint=-1,this.nextLayer=null}add(e,t,i){this.addInner(e,t,i)||(this.nextLayer||(this.nextLayer=new qe)).add(e,t,i)}addInner(e,t,i){let r=e-this.lastTo||i.startSide-this.last.endSide;if(r<=0&&(e-this.lastFrom||i.startSide-this.last.startSide)<0)throw new Error("Ranges must be added sorted by `from` position and `startSide`");return!(r<0||(250==this.from.length&&this.finishChunk(!0),this.chunkStart<0&&(this.chunkStart=e),this.from.push(e-this.chunkStart),this.to.push(t-this.chunkStart),this.last=i,this.lastFrom=e,this.lastTo=t,this.value.push(i),i.point&&(this.maxPoint=Math.max(this.maxPoint,t-e)),0))}addChunk(e,t){if((e-this.lastTo||t.value[0].startSide-this.last.endSide)<0)return!1;this.from.length&&this.finishChunk(!0),this.setMaxPoint=Math.max(this.setMaxPoint,t.maxPoint),this.chunks.push(t),this.chunkPos.push(e);let i=t.value.length-1;return this.last=t.value[i],this.lastFrom=t.from[i]+e,this.lastTo=t.to[i]+e,!0}finish(){return this.finishInner(Ze.empty)}finishInner(e){if(this.from.length&&this.finishChunk(!1),0==this.chunks.length)return e;let t=Ze.create(this.chunkPos,this.chunks,this.nextLayer?this.nextLayer.finishInner(e):e,this.setMaxPoint);return this.from=null,t}}function Ae(e,t,i){let r=new Map;for(let t of e)for(let e=0;e=this.minPoint)break}}}setRangeIndex(e){if(e==this.layer.chunk[this.chunkIndex].value.length){if(this.chunkIndex++,this.skip)for(;this.chunkIndex=i&&r.push(new We(o,t,i,n));return 1==r.length?r[0]:new Ce(r)}get startSide(){return this.value?this.value.startSide:0}goto(e,t=-1e9){for(let i of this.heap)i.goto(e,t);for(let e=this.heap.length>>1;e>=0;e--)Ue(this.heap,e);return this.next(),this}forward(e,t){for(let i of this.heap)i.forward(e,t);for(let e=this.heap.length>>1;e>=0;e--)Ue(this.heap,e);(this.to-e||this.value.endSide-t)<0&&this.next()}next(){if(0==this.heap.length)this.from=this.to=1e9,this.value=null,this.rank=-1;else{let e=this.heap[0];this.from=e.from,this.to=e.to,this.value=e.value,this.rank=e.rank,e.value&&e.next(),Ue(this.heap,0)}}}function Ue(e,t){for(let i=e[t];;){let r=1+(t<<1);if(r>=e.length)break;let n=e[r];if(r+1=0&&(n=e[r+1],r++),i.compare(n)<0)break;e[r]=i,e[t]=n,t=r}}class Ne{constructor(e,t,i){this.minPoint=i,this.active=[],this.activeTo=[],this.activeRank=[],this.minActive=-1,this.point=null,this.pointFrom=0,this.pointRank=0,this.to=-1e9,this.endSide=0,this.openStart=-1,this.cursor=Ce.from(e,t,i)}goto(e,t=-1e9){return this.cursor.goto(e,t),this.active.length=this.activeTo.length=this.activeRank.length=0,this.minActive=-1,this.to=e,this.endSide=t,this.openStart=-1,this.next(),this}forward(e,t){for(;this.minActive>-1&&(this.activeTo[this.minActive]-e||this.active[this.minActive].endSide-t)<0;)this.removeActive(this.minActive);this.cursor.forward(e,t)}removeActive(e){ze(this.active,e),ze(this.activeTo,e),ze(this.activeRank,e),this.minActive=De(this.active,this.activeTo)}addActive(e){let t=0,{value:i,to:r,rank:n}=this.cursor;for(;t-1&&(this.activeTo[r]-this.cursor.from||this.active[r].endSide-this.cursor.startSide)<0){if(this.activeTo[r]>e){this.to=this.activeTo[r],this.endSide=this.active[r].endSide;break}this.removeActive(r),i&&ze(i,r)}else{if(!this.cursor.value){this.to=this.endSide=1e9;break}if(this.cursor.from>e){this.to=this.cursor.from,this.endSide=this.cursor.startSide;break}{let e=this.cursor.value;if(e.point){if(!(t&&this.cursor.to==this.to&&this.cursor.from=0&&i[t]=0&&!(this.activeRank[i]e||this.activeTo[i]==e&&this.active[i].endSide>=this.point.endSide)&&t.push(this.active[i]);return t.reverse()}openEnd(e){let t=0;for(let i=this.activeTo.length-1;i>=0&&this.activeTo[i]>e;i--)t++;return t}}function je(e,t,i,r,n,o){e.goto(t),i.goto(r);let s=r+n,O=r,a=r-t;for(;;){let t=e.to+a-i.to||e.endSide-i.endSide,r=t<0?e.to+a:i.to,n=Math.min(r,s);if(e.point||i.point?e.point&&i.point&&(e.point==i.point||e.point.eq(i.point))&&Ee(e.activeForPoint(e.to),i.activeForPoint(i.to))||o.comparePoint(O,n,e.point,i.point):n>O&&!Ee(e.active,i.active)&&o.compareRange(O,n,e.active,i.active),r>s)break;O=r,t<=0&&e.next(),t>=0&&i.next()}}function Ee(e,t){if(e.length!=t.length)return!1;for(let i=0;i=t;i--)e[i+1]=e[i];e[t]=i}function De(e,t){let i=-1,r=1e9;for(let n=0;n=t)return r;if(r==e.length)break;n+=9==e.charCodeAt(r)?i-n%i:1,r=g(e,r)}return!0===r?-1:e.length}const Ie=1024;let Le=0;class Ke{constructor(e,t){this.from=e,this.to=t}}class Fe{constructor(e={}){this.id=Le++,this.perNode=!!e.perNode,this.deserialize=e.deserialize||(()=>{throw new Error("This node type doesn't define a deserialize function")})}add(e){if(this.perNode)throw new RangeError("Can't add per-node props to node types");return"function"!=typeof e&&(e=et.match(e)),t=>{let i=e(t);return void 0===i?null:[this,i]}}}Fe.closedBy=new Fe({deserialize:e=>e.split(" ")}),Fe.openedBy=new Fe({deserialize:e=>e.split(" ")}),Fe.group=new Fe({deserialize:e=>e.split(" ")}),Fe.contextHash=new Fe({perNode:!0}),Fe.lookAhead=new Fe({perNode:!0}),Fe.mounted=new Fe({perNode:!0});class He{constructor(e,t,i){this.tree=e,this.overlay=t,this.parser=i}static get(e){return e&&e.props&&e.props[Fe.mounted.id]}}const Je=Object.create(null);class et{constructor(e,t,i,r=0){this.name=e,this.props=t,this.id=i,this.flags=r}static define(e){let t=e.props&&e.props.length?Object.create(null):Je,i=(e.top?1:0)|(e.skipped?2:0)|(e.error?4:0)|(null==e.name?8:0),r=new et(e.name||"",t,e.id,i);if(e.props)for(let i of e.props)if(Array.isArray(i)||(i=i(r)),i){if(i[0].perNode)throw new RangeError("Can't store a per-node prop on a node type");t[i[0].id]=i[1]}return r}prop(e){return this.props[e.id]}get isTop(){return(1&this.flags)>0}get isSkipped(){return(2&this.flags)>0}get isError(){return(4&this.flags)>0}get isAnonymous(){return(8&this.flags)>0}is(e){if("string"==typeof e){if(this.name==e)return!0;let t=this.prop(Fe.group);return!!t&&t.indexOf(e)>-1}return this.id==e}static match(e){let t=Object.create(null);for(let i in e)for(let r of i.split(" "))t[r]=e[i];return e=>{for(let i=e.prop(Fe.group),r=-1;r<(i?i.length:0);r++){let n=t[r<0?e.name:i[r]];if(n)return n}}}}et.none=new et("",Object.create(null),0,8);class tt{constructor(e){this.types=e;for(let t=0;t=t){let s=new ct(o.tree,o.overlay[0].from+e.from,0,null);(n||(n=[r])).push(lt(s,t,i,!1))}}return n?Qt(n):r}(this,e,t)}iterate(e){let{enter:t,leave:i,from:r=0,to:n=this.length}=e,o=e.mode||0,s=(o&nt.IncludeAnonymous)>0;for(let e=this.cursor(o|nt.IncludeAnonymous);;){let o=!1;if(e.from<=n&&e.to>=r&&(!s&&e.type.isAnonymous||!1!==t(e))){if(e.firstChild())continue;o=!0}for(;o&&i&&(s||!e.type.isAnonymous)&&i(e),!e.nextSibling();){if(!e.parent())return;o=!0}}}prop(e){return e.perNode?this.props?this.props[e.id]:void 0:this.type.prop(e)}get propValues(){let e=[];if(this.props)for(let t in this.props)e.push([+t,this.props[t]]);return e}balance(e={}){return this.children.length<=8?this:St(et.none,this.children,this.positions,0,this.children.length,0,this.length,((e,t,i)=>new ot(this.type,e,t,i,this.propValues)),e.makeTree||((e,t,i)=>new ot(et.none,e,t,i)))}static build(e){return function(e){var t;let{buffer:i,nodeSet:r,maxBufferLength:n=Ie,reused:o=[],minRepeatType:s=r.types.length}=e,O=Array.isArray(i)?new st(i,i.length):i,a=r.types,l=0,h=0;function c(e,t,i,p,Q){let{id:g,start:m,end:$,size:b}=O,X=h;for(;b<0;){if(O.next(),-1==b){let t=o[g];return i.push(t),void p.push(m-e)}if(-3==b)return void(l=g);if(-4==b)return void(h=g);throw new RangeError(`Unrecognized record size: ${b}`)}let S,y,v=a[g],P=m-e;if($-m<=n&&(y=function(e,t){let i=O.fork(),r=0,o=0,a=0,l=i.end-n,h={size:0,start:0,skip:0};e:for(let n=i.pos-e;i.pos>n;){let e=i.size;if(i.id==t&&e>=0){h.size=r,h.start=o,h.skip=a,a+=4,r+=4,i.next();continue}let O=i.pos-e;if(e<0||O=s?4:0,u=i.start;for(i.next();i.pos>O;){if(i.size<0){if(-3!=i.size)break e;c+=4}else i.id>=s&&(c+=4);i.next()}o=u,r+=e,a+=c}return(t<0||r==e)&&(h.size=r,h.start=o,h.skip=a),h.size>4?h:void 0}(O.pos-t,Q))){let t=new Uint16Array(y.size-y.skip),i=O.pos-y.size,n=t.length;for(;O.pos>i;)n=d(y.start,t,n);S=new Ot(t,$-y.start,r),P=y.start-e}else{let e=O.pos-b;O.next();let t=[],i=[],r=g>=s?g:-1,o=0,a=$;for(;O.pos>e;)r>=0&&O.id==r&&O.size>=0?(O.end<=a-n&&(u(t,i,m,o,O.end,a,r,X),o=t.length,a=O.end),O.next()):c(m,e,t,i,r);if(r>=0&&o>0&&o-1&&o>0){let e=function(e){return(t,i,r)=>{let n,o,s=0,O=t.length-1;if(O>=0&&(n=t[O])instanceof ot){if(!O&&n.type==e&&n.length==r)return n;(o=n.prop(Fe.lookAhead))&&(s=i[O]+n.length+o)}return f(e,t,i,r,s)}}(v);S=St(v,t,i,0,t.length,0,$-m,e,e)}else S=f(v,t,i,$-m,X-$)}i.push(S),p.push(P)}function u(e,t,i,n,o,s,O,a){let l=[],h=[];for(;e.length>n;)l.push(e.pop()),h.push(t.pop()+i-o);e.push(f(r.types[O],l,h,s-o,a-s)),t.push(o-i)}function f(e,t,i,r,n=0,o){if(l){let e=[Fe.contextHash,l];o=o?[e].concat(o):[e]}if(n>25){let e=[Fe.lookAhead,n];o=o?[e].concat(o):[e]}return new ot(e,t,i,r,o)}function d(e,t,i){let{id:r,start:n,end:o,size:a}=O;if(O.next(),a>=0&&r4){let r=O.pos-(a-4);for(;O.pos>r;)i=d(e,t,i)}t[--i]=s,t[--i]=o-e,t[--i]=n-e,t[--i]=r}else-3==a?l=r:-4==a&&(h=r);return i}let p=[],Q=[];for(;O.pos>0;)c(e.start||0,e.bufferStart||0,p,Q,-1);let g=null!==(t=e.length)&&void 0!==t?t:p.length?Q[0]+p[0].length:0;return new ot(a[e.topID],p.reverse(),Q.reverse(),g)}(e)}}ot.empty=new ot(et.none,[],[],0);class st{constructor(e,t){this.buffer=e,this.index=t}get id(){return this.buffer[this.index-4]}get start(){return this.buffer[this.index-3]}get end(){return this.buffer[this.index-2]}get size(){return this.buffer[this.index-1]}get pos(){return this.index}next(){this.index-=4}fork(){return new st(this.buffer,this.index)}}class Ot{constructor(e,t,i){this.buffer=e,this.length=t,this.set=i}get type(){return et.none}toString(){let e=[];for(let t=0;t0));O=o[O+3]);return s}slice(e,t,i){let r=this.buffer,n=new Uint16Array(t-e),o=0;for(let s=e,O=0;s=t&&it;case 1:return i<=t&&r>t;case 2:return r>t;case 4:return!0}}function lt(e,t,i,r){for(var n;e.from==e.to||(i<1?e.from>=t:e.from>t)||(i>-1?e.to<=t:e.to0?s.length:-1;e!=a;e+=t){let a=s[e],l=O[e]+o.from;if(at(r,i,l,l+a.length))if(a instanceof Ot){if(n&nt.ExcludeBuffers)continue;let s=a.findChild(0,a.buffer.length,t,i-l,r);if(s>-1)return new pt(new dt(o,a,e,l),null,s)}else if(n&nt.IncludeAnonymous||!a.type.isAnonymous||$t(a)){let s;if(!(n&nt.IgnoreMounts)&&(s=He.get(a))&&!s.overlay)return new ct(s.tree,l,e,o);let O=new ct(a,l,e,o);return n&nt.IncludeAnonymous||!O.type.isAnonymous?O:O.nextChild(t<0?a.children.length-1:0,t,i,r)}}if(n&nt.IncludeAnonymous||!o.type.isAnonymous)return null;if(e=o.index>=0?o.index+t:t<0?-1:o._parent._tree.children.length,o=o._parent,!o)return null}}get firstChild(){return this.nextChild(0,1,0,4)}get lastChild(){return this.nextChild(this._tree.children.length-1,-1,0,4)}childAfter(e){return this.nextChild(0,1,e,2)}childBefore(e){return this.nextChild(this._tree.children.length-1,-1,e,-2)}enter(e,t,i=0){let r;if(!(i&nt.IgnoreOverlays)&&(r=He.get(this._tree))&&r.overlay){let i=e-this.from;for(let{from:e,to:n}of r.overlay)if((t>0?e<=i:e=i:n>i))return new ct(r.tree,r.overlay[0].from+this.from,-1,this)}return this.nextChild(0,1,e,t,i)}nextSignificantParent(){let e=this;for(;e.type.isAnonymous&&e._parent;)e=e._parent;return e}get parent(){return this._parent?this._parent.nextSignificantParent():null}get nextSibling(){return this._parent&&this.index>=0?this._parent.nextChild(this.index+1,1,0,4):null}get prevSibling(){return this._parent&&this.index>=0?this._parent.nextChild(this.index-1,-1,0,4):null}get tree(){return this._tree}toTree(){return this._tree}toString(){return this._tree.toString()}}function ut(e,t,i,r){let n=e.cursor(),o=[];if(!n.firstChild())return o;if(null!=i)for(;!n.type.is(i);)if(!n.nextSibling())return o;for(;;){if(null!=r&&n.type.is(r))return o;if(n.type.is(t)&&o.push(n.node),!n.nextSibling())return null==r?o:[]}}function ft(e,t,i=t.length-1){for(let r=e.parent;i>=0;r=r.parent){if(!r)return!1;if(!r.type.isAnonymous){if(t[i]&&t[i]!=r.name)return!1;i--}}return!0}class dt{constructor(e,t,i,r){this.parent=e,this.buffer=t,this.index=i,this.start=r}}class pt extends ht{get name(){return this.type.name}get from(){return this.context.start+this.context.buffer.buffer[this.index+1]}get to(){return this.context.start+this.context.buffer.buffer[this.index+2]}constructor(e,t,i){super(),this.context=e,this._parent=t,this.index=i,this.type=e.buffer.set.types[e.buffer.buffer[i]]}child(e,t,i){let{buffer:r}=this.context,n=r.findChild(this.index+4,r.buffer[this.index+3],e,t-this.context.start,i);return n<0?null:new pt(this.context,this,n)}get firstChild(){return this.child(1,0,4)}get lastChild(){return this.child(-1,0,4)}childAfter(e){return this.child(1,e,2)}childBefore(e){return this.child(-1,e,-2)}enter(e,t,i=0){if(i&nt.ExcludeBuffers)return null;let{buffer:r}=this.context,n=r.findChild(this.index+4,r.buffer[this.index+3],t>0?1:-1,e-this.context.start,t);return n<0?null:new pt(this.context,this,n)}get parent(){return this._parent||this.context.parent.nextSignificantParent()}externalSibling(e){return this._parent?null:this.context.parent.nextChild(this.context.index+e,e,0,4)}get nextSibling(){let{buffer:e}=this.context,t=e.buffer[this.index+3];return t<(this._parent?e.buffer[this._parent.index+3]:e.buffer.length)?new pt(this.context,this._parent,t):this.externalSibling(1)}get prevSibling(){let{buffer:e}=this.context,t=this._parent?this._parent.index+4:0;return this.index==t?this.externalSibling(-1):new pt(this.context,this._parent,e.findChild(t,this.index,-1,0,4))}get tree(){return null}toTree(){let e=[],t=[],{buffer:i}=this.context,r=this.index+4,n=i.buffer[this.index+3];if(n>r){let o=i.buffer[this.index+1];e.push(i.slice(r,n,o)),t.push(0)}return new ot(this.type,e,t,this.to-this.from)}toString(){return this.context.buffer.childString(this.index)}}function Qt(e){if(!e.length)return null;if(1==e.length)return e[0];let t=0,i=e[0];for(let r=1;ri.from||n.to0){if(this.index-1)for(let r=t+e,n=e<0?-1:i._tree.children.length;r!=n;r+=e){let e=i._tree.children[r];if(this.mode&nt.IncludeAnonymous||e instanceof Ot||!e.type.isAnonymous||$t(e))return!1}return!0}move(e,t){if(t&&this.enterChild(e,0,4))return!0;for(;;){if(this.sibling(e))return!0;if(this.atLastNode(e)||!this.parent())return!1}}next(e=!0){return this.move(1,e)}prev(e=!0){return this.move(-1,e)}moveTo(e,t=0){for(;(this.from==this.to||(t<1?this.from>=e:this.from>e)||(t>-1?this.to<=e:this.to=0;){for(let o=e;o;o=o._parent)if(o.index==r){if(r==this.index)return o;t=o,i=n+1;break e}r=this.stack[--n]}for(let e=i;e=0;n--){if(n<0)return ft(this.node,e,r);let o=i[t.buffer[this.stack[n]]];if(!o.isAnonymous){if(e[r]&&e[r]!=o.name)return!1;r--}}return!0}}function $t(e){return e.children.some((e=>e instanceof Ot||!e.type.isAnonymous||$t(e)))}const bt=new WeakMap;function Xt(e,t){if(!e.isAnonymous||t instanceof Ot||t.type!=e)return 1;let i=bt.get(t);if(null==i){i=1;for(let r of t.children){if(r.type!=e||!(r instanceof ot)){i=1;break}i+=Xt(e,r)}bt.set(t,i)}return i}function St(e,t,i,r,n,o,s,O,a){let l=0;for(let i=r;i=h)break;d+=t}if(l==n+1){if(d>h){let e=i[n];t(e.children,e.positions,0,e.children.length,r[n]+O);continue}c.push(i[n])}else{let t=r[l-1]+i[l-1].length-f;c.push(St(e,i,r,n,l,f,t,null,a))}u.push(f+O-o)}}(t,i,r,n,0),(O||a)(c,u,s)}class yt{constructor(){this.map=new WeakMap}setBuffer(e,t,i){let r=this.map.get(e);r||this.map.set(e,r=new Map),r.set(t,i)}getBuffer(e,t){let i=this.map.get(e);return i&&i.get(t)}set(e,t){e instanceof pt?this.setBuffer(e.context.buffer,e.index,t):e instanceof ct&&this.map.set(e.tree,t)}get(e){return e instanceof pt?this.getBuffer(e.context.buffer,e.index):e instanceof ct?this.map.get(e.tree):void 0}cursorSet(e,t){e.buffer?this.setBuffer(e.buffer.buffer,e.index,t):this.map.set(e.tree,t)}cursorGet(e){return e.buffer?this.getBuffer(e.buffer.buffer,e.index):this.map.get(e.tree)}}class vt{constructor(e,t,i,r,n=!1,o=!1){this.from=e,this.to=t,this.tree=i,this.offset=r,this.open=(n?1:0)|(o?2:0)}get openStart(){return(1&this.open)>0}get openEnd(){return(2&this.open)>0}static addTree(e,t=[],i=!1){let r=[new vt(0,e.length,e,0,!1,i)];for(let i of t)i.to>e.length&&r.push(i);return r}static applyChanges(e,t,i=128){if(!t.length)return e;let r=[],n=1,o=e.length?e[0]:null;for(let s=0,O=0,a=0;;s++){let l=s=i)for(;o&&o.from=t.from||h<=t.to||a){let e=Math.max(t.from,O)-a,i=Math.min(t.to,h)-a;t=e>=i?null:new vt(e,i,t.tree,t.offset+a,s>0,!!l)}if(t&&r.push(t),o.to>h)break;o=nnew Ke(e.from,e.to))):[new Ke(0,0)]:[new Ke(0,e.length)],this.createParse(e,t||[],i)}parse(e,t,i){let r=this.startParse(e,t,i);for(;;){let e=r.advance();if(e)return e}}}class xt{constructor(e){this.string=e}get length(){return this.string.length}chunk(e){return this.string.slice(e)}get lineChunks(){return!1}read(e,t){return this.string.slice(e,t)}}function wt(e){return(t,i,r,n)=>new Rt(t,e,i,r,n)}class Tt{constructor(e,t,i,r,n){if(this.parser=e,this.parse=t,this.overlay=i,this.target=r,this.ranges=n,!n.length||n.some((e=>e.from>=e.to)))throw new RangeError("Invalid inner parse ranges given: "+JSON.stringify(n))}}class kt{constructor(e,t,i,r,n,o,s){this.parser=e,this.predicate=t,this.mounts=i,this.index=r,this.start=n,this.target=o,this.prev=s,this.depth=0,this.ranges=[]}}const Yt=new Fe({perNode:!0});class Rt{constructor(e,t,i,r,n){this.nest=t,this.input=i,this.fragments=r,this.ranges=n,this.inner=[],this.innerDone=0,this.baseTree=null,this.stoppedAt=null,this.baseParse=e}advance(){if(this.baseParse){let e=this.baseParse.advance();if(!e)return null;if(this.baseParse=null,this.baseTree=e,this.startInner(),null!=this.stoppedAt)for(let e of this.inner)e.parse.stopAt(this.stoppedAt)}if(this.innerDone==this.inner.length){let e=this.baseTree;return null!=this.stoppedAt&&(e=new ot(e.type,e.children,e.positions,e.length,e.propValues.concat([[Yt,this.stoppedAt]]))),e}let e=this.inner[this.innerDone],t=e.parse.advance();if(t){this.innerDone++;let i=Object.assign(Object.create(null),e.target.props);i[Fe.mounted.id]=new He(t,e.overlay,e.parser),e.target.props=i}return null}get parsedPos(){if(this.baseParse)return 0;let e=this.input.length;for(let t=this.innerDone;te.frag.from<=r.from&&e.frag.to>=r.to&&e.mount.overlay));if(e)for(let i of e.mount.overlay){let n=i.from+e.pos,o=i.to+e.pos;n>=r.from&&o<=r.to&&!t.ranges.some((e=>e.fromn))&&t.ranges.push({from:n,to:o})}}O=!1}else if(i&&(o=_t(i.ranges,r.from,r.to)))O=2!=o;else if(!r.type.isAnonymous&&r.fromnew Ke(e.from-r.from,e.to-r.from))):null,r.tree,e)),n.overlay?e.length&&(i={ranges:e,depth:0,prev:i}):O=!1}}else t&&(s=t.predicate(r))&&(!0===s&&(s=new Ke(r.from,r.to)),s.fromnew Ke(e.from-t.start,e.to-t.start))),t.target,e)),t=t.prev}i&&!--i.depth&&(i=i.prev)}}}}function _t(e,t,i){for(let r of e){if(r.from>=i)break;if(r.to>t)return r.from<=t&&r.to>=i?2:1}return 0}function Vt(e,t,i,r,n,o){if(t=t.to);r++);let s=n.children[r],O=s.buffer;n.children[r]=function e(i,r,n,a,l){let h=i;for(;O[h+2]+o<=t.from;)h=O[h+3];let c=[],u=[];Vt(s,i,h,c,u,a);let f=O[h+1],d=O[h+2],p=f+o==t.from&&d+o==t.to&&O[h]==t.type.id;return c.push(p?t.toTree():e(h+4,O[h+3],s.set.types[O[h]],f,d-f)),u.push(f-a),Vt(s,O[h+3],r,c,u,a),new ot(n,c,u,l)}(0,O.length,et.none,0,s.length);for(let r=0;r<=i;r++)e.childAfter(t.from)}class qt{constructor(e,t){this.offset=t,this.done=!1,this.cursor=e.cursor(nt.IncludeAnonymous|nt.IgnoreMounts)}moveTo(e){let{cursor:t}=this,i=e-this.offset;for(;!this.done&&t.from=e&&t.enter(i,1,nt.IgnoreOverlays|nt.ExcludeBuffers)||t.next(!1)||(this.done=!0)}hasNode(e){if(this.moveTo(e.from),!this.done&&this.cursor.from+this.offset==e.from&&this.cursor.tree)for(let t=this.cursor.tree;;){if(t==e.tree)return!0;if(!(t.children.length&&0==t.positions[0]&&t.children[0]instanceof ot))break;t=t.children[0]}return!1}}let At=class{constructor(e){var t;if(this.fragments=e,this.curTo=0,this.fragI=0,e.length){let i=this.curFrag=e[0];this.curTo=null!==(t=i.tree.prop(Yt))&&void 0!==t?t:i.to,this.inner=new qt(i.tree,-i.offset)}else this.curFrag=this.inner=null}hasNode(e){for(;this.curFrag&&e.from>=this.curTo;)this.nextFrag();return this.curFrag&&this.curFrag.from<=e.from&&this.curTo>=e.to&&this.inner.hasNode(e)}nextFrag(){var e;if(this.fragI++,this.fragI==this.fragments.length)this.curFrag=this.inner=null;else{let t=this.curFrag=this.fragments[this.fragI];this.curTo=null!==(e=t.tree.prop(Yt))&&void 0!==e?e:t.to,this.inner=new qt(t.tree,-t.offset)}}findMounts(e,t){var i;let r=[];if(this.inner){this.inner.cursor.moveTo(e,1);for(let e=this.inner.cursor.node;e;e=e.parent){let n=null===(i=e.tree)||void 0===i?void 0:i.prop(Fe.mounted);if(n&&n.parser==t)for(let t=this.fragI;t=e.to)break;i.tree==this.curFrag.tree&&r.push({frag:i,pos:e.from-i.offset,mount:n})}}}return r}};function Wt(e,t){let i=null,r=t;for(let n=1,o=0;n=O)break;e.to<=s||(i||(r=i=t.slice()),e.fromO&&i.splice(o+1,0,new Ke(O,e.to))):e.to>O?i[o--]=new Ke(O,e.to):i.splice(o--,1))}}return r}function Ct(e,t,i,r){let n=0,o=0,s=!1,O=!1,a=-1e9,l=[];for(;;){let h=n==e.length?1e9:s?e[n].to:e[n].from,c=o==t.length?1e9:O?t[o].to:t[o].from;if(s!=O){let e=Math.max(a,i),t=Math.min(h,c,r);enew Ke(e.from+r,e.to+r))),O,a);for(let t=0,r=O;;t++){let O=t==s.length,l=O?a:s[t].from;if(l>r&&i.push(new vt(r,l,n.tree,-e,o.from>=r||o.openStart,o.to<=l||o.openEnd)),O)break;r=s[t].to}}else i.push(new vt(O,a,n.tree,-e,o.from>=e||o.openStart,o.to<=s||o.openEnd))}return i}class Nt{constructor(e,t,i,r,n,o,s,O,a,l=0,h){this.p=e,this.stack=t,this.state=i,this.reducePos=r,this.pos=n,this.score=o,this.buffer=s,this.bufferBase=O,this.curContext=a,this.lookAhead=l,this.parent=h}toString(){return`[${this.stack.filter(((e,t)=>t%3==0)).concat(this.state)}]@${this.pos}${this.score?"!"+this.score:""}`}static start(e,t,i=0){let r=e.parser.context;return new Nt(e,[],t,i,i,0,[],0,r?new jt(r,r.start):null,0,null)}get context(){return this.curContext?this.curContext.context:null}pushState(e,t){this.stack.push(this.state,t,this.bufferBase+this.buffer.length),this.state=e}reduce(e){var t;let i=e>>19,r=65535&e,{parser:n}=this.p,o=n.dynamicPrecedence(r);if(o&&(this.score+=o),0==i)return this.pushState(n.getGoto(this.state,r,!0),this.reducePos),r=2e3&&!(null===(t=this.p.parser.nodeSet.types[r])||void 0===t?void 0:t.isAnonymous)&&(O==this.p.lastBigReductionStart?(this.p.bigReductionCount++,this.p.lastBigReductionSize=a):this.p.lastBigReductionSizes;)this.stack.pop();this.reduceContext(r,O)}storeNode(e,t,i,r=4,n=!1){if(0==e&&(!this.stack.length||this.stack[this.stack.length-1]0&&0==e.buffer[r-4]&&e.buffer[r-1]>-1){if(t==i)return;if(e.buffer[r-2]>=t)return void(e.buffer[r-2]=i)}}if(n&&this.pos!=i){let n=this.buffer.length;if(n>0&&0!=this.buffer[n-4])for(;n>0&&this.buffer[n-2]>i;)this.buffer[n]=this.buffer[n-4],this.buffer[n+1]=this.buffer[n-3],this.buffer[n+2]=this.buffer[n-2],this.buffer[n+3]=this.buffer[n-1],n-=4,r>4&&(r-=4);this.buffer[n]=e,this.buffer[n+1]=t,this.buffer[n+2]=i,this.buffer[n+3]=r}else this.buffer.push(e,t,i,r)}shift(e,t,i,r){if(131072&e)this.pushState(65535&e,this.pos);else if(0==(262144&e)){let n=e,{parser:o}=this.p;(r>this.pos||t<=o.maxNode)&&(this.pos=r,o.stateFlag(n,1)||(this.reducePos=r)),this.pushState(n,i),this.shiftContext(t,i),t<=o.maxNode&&this.buffer.push(t,i,r,4)}else this.pos=r,this.shiftContext(t,i),t<=this.p.parser.maxNode&&this.buffer.push(t,i,r,4)}apply(e,t,i,r){65536&e?this.reduce(e):this.shift(e,t,i,r)}useNode(e,t){let i=this.p.reused.length-1;(i<0||this.p.reused[i]!=e)&&(this.p.reused.push(e),i++);let r=this.pos;this.reducePos=this.pos=r+e.length,this.pushState(t,r),this.buffer.push(i,r,this.reducePos,-1),this.curContext&&this.updateContext(this.curContext.tracker.reuse(this.curContext.context,e,this,this.p.stream.reset(this.pos-e.length)))}split(){let e=this,t=e.buffer.length;for(;t>0&&e.buffer[t-2]>e.reducePos;)t-=4;let i=e.buffer.slice(t),r=e.bufferBase+t;for(;e&&r==e.bufferBase;)e=e.parent;return new Nt(this.p,this.stack.slice(),this.state,this.reducePos,this.pos,this.score,i,r,this.curContext,this.lookAhead,e)}recoverByDelete(e,t){let i=e<=this.p.parser.maxNode;i&&this.storeNode(e,this.pos,t,4),this.storeNode(0,this.pos,t,i?8:4),this.pos=this.reducePos=t,this.score-=190}canShift(e){for(let t=new Et(this);;){let i=this.p.parser.stateSlot(t.state,4)||this.p.parser.hasAction(t.state,e);if(0==i)return!1;if(0==(65536&i))return!0;t.reduce(i)}}recoverByInsert(e){if(this.stack.length>=300)return[];let t=this.p.parser.nextStates(this.state);if(t.length>8||this.stack.length>=120){let i=[];for(let r,n=0;n1&t&&e==r))||i.push(t[e],r)}t=i}let i=[];for(let e=0;e>19,r=65535&t,n=this.stack.length-3*i;if(n<0||e.getGoto(this.stack[n],r,!1)<0){let e=this.findForcedReduction();if(null==e)return!1;t=e}this.storeNode(0,this.pos,this.pos,4,!0),this.score-=100}return this.reducePos=this.pos,this.reduce(t),!0}findForcedReduction(){let{parser:e}=this.p,t=[],i=(r,n)=>{if(!t.includes(r))return t.push(r),e.allActions(r,(t=>{if(393216&t);else if(65536&t){let i=(t>>19)-n;if(i>1){let r=65535&t,n=this.stack.length-3*i;if(n>=0&&e.getGoto(this.stack[n],r,!1)>=0)return i<<19|65536|r}}else{let e=i(t,n+1);if(null!=e)return e}}))};return i(this.state,0)}forceAll(){for(;!this.p.parser.stateFlag(this.state,2);)if(!this.forceReduce()){this.storeNode(0,this.pos,this.pos,4,!0);break}return this}get deadEnd(){if(3!=this.stack.length)return!1;let{parser:e}=this.p;return 65535==e.data[e.stateSlot(this.state,1)]&&!e.stateSlot(this.state,4)}restart(){this.storeNode(0,this.pos,this.pos,4,!0),this.state=this.stack[0],this.stack.length=0}sameState(e){if(this.state!=e.state||this.stack.length!=e.stack.length)return!1;for(let t=0;tthis.lookAhead&&(this.emitLookAhead(),this.lookAhead=e)}close(){this.curContext&&this.curContext.tracker.strict&&this.emitContext(),this.lookAhead>0&&this.emitLookAhead()}}class jt{constructor(e,t){this.tracker=e,this.context=t,this.hash=e.strict?e.hash(t):0}}class Et{constructor(e){this.start=e,this.state=e.state,this.stack=e.stack,this.base=this.stack.length}reduce(e){let t=65535&e,i=e>>19;0==i?(this.stack==this.start.stack&&(this.stack=this.stack.slice()),this.stack.push(this.state,0,0),this.base+=3):this.base-=3*(i-1);let r=this.start.p.parser.getGoto(this.stack[this.base-3],t,!0);this.state=r}}class zt{constructor(e,t,i){this.stack=e,this.pos=t,this.index=i,this.buffer=e.buffer,0==this.index&&this.maybeNext()}static create(e,t=e.bufferBase+e.buffer.length){return new zt(e,t,t-e.bufferBase)}maybeNext(){let e=this.stack.parent;null!=e&&(this.index=this.stack.bufferBase-e.bufferBase,this.stack=e,this.buffer=e.buffer)}get id(){return this.buffer[this.index-4]}get start(){return this.buffer[this.index-3]}get end(){return this.buffer[this.index-2]}get size(){return this.buffer[this.index-1]}next(){this.index-=4,this.pos-=4,0==this.index&&this.maybeNext()}fork(){return new zt(this.stack,this.pos,this.index)}}function Gt(e,t=Uint16Array){if("string"!=typeof e)return e;let i=null;for(let r=0,n=0;r=92&&t--,t>=34&&t--;let n=t-32;if(n>=46&&(n-=46,i=!0),o+=n,i)break;o*=46}i?i[n++]=o:i=new t(o)}return i}class Dt{constructor(){this.start=-1,this.value=-1,this.end=-1,this.extended=-1,this.lookAhead=0,this.mask=0,this.context=0}}const Mt=new Dt;class Bt{constructor(e,t){this.input=e,this.ranges=t,this.chunk="",this.chunkOff=0,this.chunk2="",this.chunk2Pos=0,this.next=-1,this.token=Mt,this.rangeIndex=0,this.pos=this.chunkPos=t[0].from,this.range=t[0],this.end=t[t.length-1].to,this.readNext()}resolveOffset(e,t){let i=this.range,r=this.rangeIndex,n=this.pos+e;for(;ni.to:n>=i.to;){if(r==this.ranges.length-1)return null;let e=this.ranges[++r];n+=e.from-i.to,i=e}return n}clipPos(e){if(e>=this.range.from&&ee)return Math.max(e,t.from);return this.end}peek(e){let t,i,r=this.chunkOff+e;if(r>=0&&r=this.chunk2Pos&&tr.to&&(this.chunk2=this.chunk2.slice(0,r.to-t)),i=this.chunk2.charCodeAt(0)}}return t>=this.token.lookAhead&&(this.token.lookAhead=t+1),i}acceptToken(e,t=0){let i=t?this.resolveOffset(t,-1):this.pos;if(null==i||i=this.chunk2Pos&&this.posthis.range.to?e.slice(0,this.range.to-this.pos):e,this.chunkPos=this.pos,this.chunkOff=0}}readNext(){return this.chunkOff>=this.chunk.length&&(this.getChunk(),this.chunkOff==this.chunk.length)?this.next=-1:this.next=this.chunk.charCodeAt(this.chunkOff)}advance(e=1){for(this.chunkOff+=e;this.pos+e>=this.range.to;){if(this.rangeIndex==this.ranges.length-1)return this.setDone();e-=this.range.to-this.pos,this.range=this.ranges[++this.rangeIndex],this.pos=this.range.from}return this.pos+=e,this.pos>=this.token.lookAhead&&(this.token.lookAhead=this.pos+1),this.readNext()}setDone(){return this.pos=this.chunkPos=this.end,this.range=this.ranges[this.rangeIndex=this.ranges.length-1],this.chunk="",this.next=-1}reset(e,t){if(t?(this.token=t,t.start=e,t.lookAhead=e+1,t.value=t.extended=-1):this.token=Mt,this.pos!=e){if(this.pos=e,e==this.end)return this.setDone(),this;for(;e=this.range.to;)this.range=this.ranges[++this.rangeIndex];e>=this.chunkPos&&e=this.chunkPos&&t<=this.chunkPos+this.chunk.length)return this.chunk.slice(e-this.chunkPos,t-this.chunkPos);if(e>=this.chunk2Pos&&t<=this.chunk2Pos+this.chunk2.length)return this.chunk2.slice(e-this.chunk2Pos,t-this.chunk2Pos);if(e>=this.range.from&&t<=this.range.to)return this.input.read(e,t);let i="";for(let r of this.ranges){if(r.from>=t)break;r.to>e&&(i+=this.input.read(Math.max(r.from,e),Math.min(r.to,t)))}return i}}class It{constructor(e,t){this.data=e,this.id=t}token(e,t){let{parser:i}=t.p;Ft(this.data,e,t,this.id,i.data,i.tokenPrecTable)}}It.prototype.contextual=It.prototype.fallback=It.prototype.extend=!1;class Lt{constructor(e,t,i){this.precTable=t,this.elseToken=i,this.data="string"==typeof e?Gt(e):e}token(e,t){let i=e.pos,r=0;for(;;){let i=e.next<0,n=e.resolveOffset(1,1);if(Ft(this.data,e,t,0,this.data,this.precTable),e.token.value>-1)break;if(null==this.elseToken)return;if(i||r++,null==n)break;e.reset(n,e.token)}r&&(e.reset(i,e.token),e.acceptToken(this.elseToken,r))}}Lt.prototype.contextual=It.prototype.fallback=It.prototype.extend=!1;class Kt{constructor(e,t={}){this.token=e,this.contextual=!!t.contextual,this.fallback=!!t.fallback,this.extend=!!t.extend}}function Ft(e,t,i,r,n,o){let s=0,O=1<0){let i=e[r];if(a.allows(i)&&(-1==t.token.value||t.token.value==i||Jt(i,t.token.value,n,o))){t.acceptToken(i);break}}let r=t.next,l=0,h=e[s+2];if(!(t.next<0&&h>l&&65535==e[i+3*h-3]&&65535==e[i+3*h-3])){for(;l>1,o=i+n+(n<<1),O=e[o],a=e[o+1]||65536;if(r=a)){s=e[o+2],t.advance();continue e}l=n+1}}break}s=e[i+3*h-1]}}function Ht(e,t,i){for(let r,n=t;65535!=(r=e[n]);n++)if(r==i)return n-t;return-1}function Jt(e,t,i,r){let n=Ht(i,r,t);return n<0||Ht(i,r,e)t)&&!r.type.isError)return i<0?Math.max(0,Math.min(r.to-1,t-25)):Math.min(e.length,Math.max(r.from+1,t+25));if(i<0?r.prevSibling():r.nextSibling())break;if(!r.parent())return i<0?0:e.length}}class ri{constructor(e,t){this.stream=t,this.tokens=[],this.mainToken=null,this.actions=[],this.tokens=e.tokenizers.map((e=>new Dt))}getActions(e){let t=0,i=null,{parser:r}=e.p,{tokenizers:n}=r,o=r.stateSlot(e.state,3),s=e.curContext?e.curContext.hash:0,O=0;for(let r=0;rl.end+25&&(O=Math.max(l.lookAhead,O)),0!=l.value)){let r=t;if(l.extended>-1&&(t=this.addActions(e,l.extended,l.end,t)),t=this.addActions(e,l.value,l.end,t),!a.extend&&(i=l,t>r))break}}for(;this.actions.length>t;)this.actions.pop();return O&&e.setLookAhead(O),i||e.pos!=this.stream.end||(i=new Dt,i.value=e.p.parser.eofTerm,i.start=i.end=e.pos,t=this.addActions(e,i.value,i.end,t)),this.mainToken=i,this.actions}getMainToken(e){if(this.mainToken)return this.mainToken;let t=new Dt,{pos:i,p:r}=e;return t.start=i,t.end=Math.min(i+1,r.stream.end),t.value=i==r.stream.end?r.parser.eofTerm:0,t}updateCachedToken(e,t,i){let r=this.stream.clipPos(i.pos);if(t.token(this.stream.reset(r,e),i),e.value>-1){let{parser:t}=i.p;for(let r=0;r=0&&i.p.parser.dialect.allows(n>>1)){0==(1&n)?e.value=n>>1:e.extended=n>>1;break}}}else e.value=0,e.end=this.stream.clipPos(r+1)}putAction(e,t,i,r){for(let t=0;t4*e.bufferLength?new class{constructor(e,t){this.fragments=e,this.nodeSet=t,this.i=0,this.fragment=null,this.safeFrom=-1,this.safeTo=-1,this.trees=[],this.start=[],this.index=[],this.nextFragment()}nextFragment(){let e=this.fragment=this.i==this.fragments.length?null:this.fragments[this.i++];if(e){for(this.safeFrom=e.openStart?ii(e.tree,e.from+e.offset,1)-e.offset:e.from,this.safeTo=e.openEnd?ii(e.tree,e.to+e.offset,-1)-e.offset:e.to;this.trees.length;)this.trees.pop(),this.start.pop(),this.index.pop();this.trees.push(e.tree),this.start.push(-e.offset),this.index.push(0),this.nextStart=this.safeFrom}else this.nextStart=1e9}nodeAt(e){if(ee)return this.nextStart=o,null;if(n instanceof ot){if(o==e){if(o=Math.max(this.safeFrom,e)&&(this.trees.push(n),this.start.push(o),this.index.push(0))}else this.index[t]++,this.nextStart=o+n.length}}}(i,e.nodeSet):null}get parsedPos(){return this.minStackPos}advance(){let e,t,i=this.stacks,r=this.minStackPos,n=this.stacks=[];if(this.bigReductionCount>300&&1==i.length){let[e]=i;for(;e.forceReduce()&&e.stack.length&&e.stack[e.stack.length-2]>=this.lastBigReductionStart;);this.bigReductionCount=this.lastBigReductionSize=0}for(let o=0;or)n.push(s);else{if(this.advanceStack(s,n,i))continue;{e||(e=[],t=[]),e.push(s);let i=this.tokens.getMainToken(s);t.push(i.value,i.end)}}break}}if(!n.length){let t=e&&function(e){let t=null;for(let i of e){let e=i.p.stoppedAt;(i.pos==i.p.stream.end||null!=e&&i.pos>e)&&i.p.parser.stateFlag(i.state,2)&&(!t||t.scorethis.stoppedAt?e[0]:this.runRecovery(e,t,n);if(i)return ei&&console.log("Force-finish "+this.stackID(i)),this.stackToTree(i.forceAll())}if(this.recovering){let e=1==this.recovering?1:3*this.recovering;if(n.length>e)for(n.sort(((e,t)=>t.score-e.score));n.length>e;)n.pop();n.some((e=>e.reducePos>r))&&this.recovering--}else if(n.length>1){e:for(let e=0;e500&&r.buffer.length>500){if(!((t.score-r.score||t.buffer.length-r.buffer.length)>0)){n.splice(e--,1);continue e}n.splice(i--,1)}}}n.length>12&&n.splice(12,n.length-12)}this.minStackPos=n[0].pos;for(let e=1;e ":"";if(null!=this.stoppedAt&&r>this.stoppedAt)return e.forceReduce()?e:null;if(this.fragments){let t=e.curContext&&e.curContext.tracker.strict,i=t?e.curContext.hash:0;for(let s=this.fragments.nodeAt(r);s;){let r=this.parser.nodeSet.types[s.type.id]==s.type?n.getGoto(e.state,s.type.id):-1;if(r>-1&&s.length&&(!t||(s.prop(Fe.contextHash)||0)==i))return e.useNode(s,r),ei&&console.log(o+this.stackID(e)+` (via reuse of ${n.getName(s.type.id)})`),!0;if(!(s instanceof ot)||0==s.children.length||s.positions[0]>0)break;let O=s.children[0];if(!(O instanceof ot&&0==s.positions[0]))break;s=O}}let s=n.stateSlot(e.state,4);if(s>0)return e.reduce(s),ei&&console.log(o+this.stackID(e)+` (via always-reduce ${n.getName(65535&s)})`),!0;if(e.stack.length>=9e3)for(;e.stack.length>6e3&&e.forceReduce(););let O=this.tokens.getActions(e);for(let s=0;sr?t.push(u):i.push(u)}return!1}advanceFully(e,t){let i=e.pos;for(;;){if(!this.advanceStack(e,null,null))return!1;if(e.pos>i)return oi(e,t),!0}}runRecovery(e,t,i){let r=null,n=!1;for(let o=0;o ":"";if(s.deadEnd){if(n)continue;if(n=!0,s.restart(),ei&&console.log(l+this.stackID(s)+" (restarted)"),this.advanceFully(s,i))continue}let h=s.split(),c=l;for(let e=0;h.forceReduce()&&e<10&&(ei&&console.log(c+this.stackID(h)+" (via force-reduce)"),!this.advanceFully(h,i));e++)ei&&(c=this.stackID(h)+" -> ");for(let e of s.recoverByInsert(O))ei&&console.log(l+this.stackID(e)+" (via recover-insert)"),this.advanceFully(e,i);this.stream.end>s.pos?(a==s.pos&&(a++,O=0),s.recoverByDelete(O,a),ei&&console.log(l+this.stackID(s)+` (via recover-delete ${this.parser.getName(O)})`),oi(s,i)):(!r||r.scoree;class ai{constructor(e){this.start=e.start,this.shift=e.shift||Oi,this.reduce=e.reduce||Oi,this.reuse=e.reuse||Oi,this.hash=e.hash||(()=>0),this.strict=!1!==e.strict}}class li extends Pt{constructor(e){if(super(),this.wrappers=[],14!=e.version)throw new RangeError(`Parser version (${e.version}) doesn't match runtime version (14)`);let t=e.nodeNames.split(" ");this.minRepeatTerm=t.length;for(let i=0;ie.topRules[t][1])),r=[];for(let e=0;e=0)n(r,e,t[i++]);else{let o=t[i+-r];for(let s=-r;s>0;s--)n(t[i++],e,o);i++}}}this.nodeSet=new tt(t.map(((t,n)=>et.define({name:n>=this.minRepeatTerm?void 0:t,id:n,props:r[n],top:i.indexOf(n)>-1,error:0==n,skipped:e.skippedNodes&&e.skippedNodes.indexOf(n)>-1})))),e.propSources&&(this.nodeSet=this.nodeSet.extend(...e.propSources)),this.strict=!1,this.bufferLength=Ie;let o=Gt(e.tokenData);this.context=e.context,this.specializerSpecs=e.specialized||[],this.specialized=new Uint16Array(this.specializerSpecs.length);for(let e=0;e"number"==typeof e?new It(o,e):e)),this.topRules=e.topRules,this.dialects=e.dialects||{},this.dynamicPrecedences=e.dynamicPrecedences||null,this.tokenPrecTable=e.tokenPrec,this.termNames=e.termNames||null,this.maxNode=this.nodeSet.types.length-1,this.dialect=this.parseDialect(),this.top=this.topRules[Object.keys(this.topRules)[0]]}createParse(e,t,i){let r=new ni(this,e,t,i);for(let n of this.wrappers)r=n(r,e,t,i);return r}getGoto(e,t,i=!1){let r=this.goto;if(t>=r[0])return-1;for(let n=r[t+1];;){let t=r[n++],o=1&t,s=r[n++];if(o&&i)return s;for(let i=n+(t>>1);n0}validAction(e,t){return!!this.allActions(e,(e=>e==t||null))}allActions(e,t){let i=this.stateSlot(e,4),r=i?t(i):void 0;for(let i=this.stateSlot(e,1);null==r;i+=3){if(65535==this.data[i]){if(1!=this.data[i+1])break;i=hi(this.data,i+2)}r=t(hi(this.data,i+1))}return r}nextStates(e){let t=[];for(let i=this.stateSlot(e,1);;i+=3){if(65535==this.data[i]){if(1!=this.data[i+1])break;i=hi(this.data,i+2)}if(0==(1&this.data[i+2])){let e=this.data[i+1];t.some(((t,i)=>1&i&&t==e))||t.push(this.data[i],e)}}return t}configure(e){let t=Object.assign(Object.create(li.prototype),this);if(e.props&&(t.nodeSet=this.nodeSet.extend(...e.props)),e.top){let i=this.topRules[e.top];if(!i)throw new RangeError(`Invalid top rule name ${e.top}`);t.top=i}return e.tokenizers&&(t.tokenizers=this.tokenizers.map((t=>{let i=e.tokenizers.find((e=>e.from==t));return i?i.to:t}))),e.specializers&&(t.specializers=this.specializers.slice(),t.specializerSpecs=this.specializerSpecs.map(((i,r)=>{let n=e.specializers.find((e=>e.from==i.external));if(!n)return i;let o=Object.assign(Object.assign({},i),{external:n.to});return t.specializers[r]=ci(o),o}))),e.contextTracker&&(t.context=e.contextTracker),e.dialect&&(t.dialect=this.parseDialect(e.dialect)),null!=e.strict&&(t.strict=e.strict),e.wrap&&(t.wrappers=t.wrappers.concat(e.wrap)),null!=e.bufferLength&&(t.bufferLength=e.bufferLength),t}hasWrappers(){return this.wrappers.length>0}getName(e){return this.termNames?this.termNames[e]:String(e<=this.maxNode&&this.nodeSet.types[e].name||e)}get eofTerm(){return this.maxNode+1}get topNode(){return this.nodeSet.types[this.top[1]]}dynamicPrecedence(e){let t=this.dynamicPrecedences;return null==t?0:t[e]||0}parseDialect(e){let t=Object.keys(this.dialects),i=t.map((()=>!1));if(e)for(let r of e.split(" ")){let e=t.indexOf(r);e>=0&&(i[e]=!0)}let r=null;for(let e=0;ee.external(i,r)<<1|t}return e.get}const ui=".".codePointAt(0),fi="\\".codePointAt(0),di="`".codePointAt(0),pi="$".codePointAt(0),Qi="#".codePointAt(0),gi="=".codePointAt(0),mi="(".codePointAt(0),$i="{".codePointAt(0),bi="[".codePointAt(0),Xi=":".codePointAt(0),Si='"'.codePointAt(0),yi="'".codePointAt(0),vi="\n".codePointAt(0),Pi="A".codePointAt(0),xi="Z".codePointAt(0),wi="a".codePointAt(0),Ti="z".codePointAt(0),ki="0".codePointAt(0),Yi="9".codePointAt(0),Ri="_".codePointAt(0),_i="!".codePointAt(0),Vi=/^\p{Lu}/u,Zi=/^\p{Ll}/u,qi=/^\p{Lt}/u,Ai=/^\p{Lm}/u,Wi=/^\p{Lo}/u,Ci=/^\p{Me}/u,Ui=/^\p{Mn}/u,Ni=/^\p{Mc}/u,ji=/^\p{Nd}/u,Ei=/^\p{Nl}/u,zi=/^\p{No}/u,Gi=/^\p{Pc}/u,Di=/^\p{Sc}/u,Mi=/^\p{Sk}/u,Bi=/^\p{So}/u,Ii=/^\p{Emoji}/u,Li=new Kt(((e,t)=>{e.peek(0)===vi&&t.canShift(256)&&e.acceptToken(256,1)}));function Ki(e,t){return Vi.test(e)||Zi.test(e)||qi.test(e)||Ai.test(e)||Wi.test(e)||Ei.test(e)||Di.test(e)||Ii.test(e)||Bi.test(e)&&!(t>=8592&&t<=8703)&&65532!=t&&65533!=t&&9023!=t&&166!=t||t>=8512&&t<=10780&&(t>=8512&&t<=8516||8767==t||8894==t||8895==t||8868==t||8869==t||t>=8706&&t<=8755&&(8706==t||8709==t||8710==t||8711==t||8718==t||8719==t||8720==t||8721==t||8734==t||8735==t||t>=8747)||t>=8896&&t<=8899||t>=9720&&t<=9727||t>=9839&&(9839==t||10200==t||10201==t||t>=10176&&t<=10177||t>=10672&&t<=10676||t>=10752&&t<=10758||t>=10761&&t<=10774||10779==t||10780==t))||t>=120513&&(120513==t||120539==t||120571==t||120597==t||120629==t||120655==t||120687==t||120713==t||120745==t||120771==t)||t>=8314&&t<=8318||t>=8330&&t<=8334||t>=8736&&t<=8738||t>=10651&&t<=10671||8472==t||8494==t||t>=12443&&t<=12444||t>=120782&&t<=120801}function Fi(e,t){let i=e.peek(t);if(i>=Pi&&i<=xi||i>=wi&&i<=Ti||i==Ri)return 1;if(i<161||i>1114111)return 0;{let r=Hi(e,t);return Ki(r,i)?r.length:0}}function Hi(e,t){let i=1,r=e.peek(t),n=String.fromCodePoint(r);for(;;){let o=e.peek(t+i);if(!(55296<=r&&r<=56319&&56320<=o&&o<=57343))break;n+=String.fromCodePoint(o),r=o,i+=1}return n}const Ji=e=>new Kt(((t,i)=>{let r=!0,n=0,o=1;for(;;){let e=t.peek(n);if(-1===e)break;if(r){if(r=!1,o=Fi(t,n),0===o)break}else if(e>=Pi&&e<=xi||e>=wi&&e<=Ti||e>=ki&&e<=Yi||e==Ri||e==_i);else{if(e<161||e>1114111)break;{let i=Hi(t,n);if(o=i.length,Ki(i,e));else if(!(Ui.test(i)||Ni.test(i)||ji.test(i)||Gi.test(i)||Mi.test(i)||Ci.test(i)||zi.test(i)||e>=8242&&e<=8247||8279==e))break}}n+=o,o=1}0!==n&&t.acceptToken(e,n)})),er=Ji(1),tr=Ji(257),ir=(e,t)=>{let i=e.peek(t),r=e.peek(t+1);return i===pi&&(0!==Fi(e,t+1)||r==mi)},rr=({till:e,term:t})=>new Kt(((i,r)=>{let n=0,o=!1;for(;;){let r=i.peek(n);if(-1===r)break;if(o)o=!1;else if(r===fi)o=!0;else if(ir(i,n)||e(i,n))return void(n>0&&i.acceptToken(t,n));n+=1}})),nr=({till:e,term:t})=>new Kt(((i,r)=>{let n=0,o=!1;for(;;){let r=i.peek(n);if(-1===r)break;if(o)o=!1;else if(r===fi)o=!0;else if(e(i,n))return void(n>0&&i.acceptToken(t,n));n+=1}})),or=(e,t)=>e.peek(t)===Si&&e.peek(t+1)===Si&&e.peek(t+2)===Si,sr=(e,t)=>e.peek(t)===Si,Or=(e,t)=>e.peek(t)===di,ar=rr({term:258,till:or}),lr=rr({term:259,till:sr}),hr=rr({term:260,till:Or}),cr=nr({term:261,till:or}),ur=nr({term:262,till:sr}),fr=nr({term:263,till:Or}),dr=(e,t)=>e.peek(t)===Qi&&e.peek(t+1)===gi,pr=(e,t)=>e.peek(t)===gi&&e.peek(t+1)===Qi,Qr=new Kt(((e,t)=>{if(dr(e,0)){let t=1,i=2;for(;-1!==e.peek(i);)if(pr(e,i)){if(t-=1,0===t)return void e.acceptToken(2,i+2);i+=2}else dr(e,i)?(t+=1,i+=2):i+=1;e.acceptToken(2,i)}})),gr=(e,t)=>{let i=e.peek(t);return i>=9&&i<14||i>=32&&i<33||i>=133&&i<134||i>=160&&i<161||i>=5760&&i<5761||i>=8192&&i<8203||i>=8232&&i<8234||i>=8239&&i<8240||i>=8287&&i<8288||i>=12288&&i<12289},mr=new Kt(((e,t)=>{e.peek(0)!==mi||gr(e,-1)||!t.canShift(247)?e.peek(0)!==Xi||gr(e,-1)||!t.canShift(248)?e.peek(0)!==$i||gr(e,-1)||!t.canShift(249)?e.peek(0)!==bi||gr(e,-1)||!t.canShift(250)?e.peek(0)!==yi||gr(e,-1)||!t.canShift(251)?e.peek(0)!==Si||gr(e,-1)||!t.canShift(252)?e.peek(0)!==di||gr(e,-1)||!t.canShift(253)?e.peek(0)!==ui||gr(e,-1)||!t.canShift(254)?gr(e,-1)||gr(e,0)||-1===e.peek(0)||!t.canShift(255)||e.acceptToken(255,0):e.acceptToken(254,0):e.acceptToken(253,0):e.acceptToken(252,0):e.acceptToken(251,0):e.acceptToken(250,0):e.acceptToken(249,0):e.acceptToken(248,0):e.acceptToken(247,0)}),{extend:!0}),$r={__proto__:null,if:14,elseif:20,else:24,end:26,try:30,catch:34,finally:42,for:46,primitive:76,type:78,abstract:86,mutable:92,struct:94,module:100,baremodule:106,macro:112,in:134,isa:136,function:154,do:166,where:172,true:206,false:206,begin:266,while:324,let:330,const:338,global:346,local:350,quote:354,break:358,continue:362,return:366,using:370,import:372,as:380,export:388},br=li.deserialize({version:14,states:"%?dQ$tQNSOOOOQj'#IR'#IROOQj'#Gv'#GvO${QNSO'#IQO*cQNTO'#DpO*mQNTO'#DpO/eQNTO'#ITO0OQMyO'#InOOQk'#In'#InO0TQNTO'#InOOQk'#Dp'#DpO;VQNTO'#DpO>{QNQO'#DuOOQk'#Id'#IdO@WQNUO'#EXO@bONzO'#EiO@mONYO'#EmO@xO!!^O'#EnOATQMyO'#EpOD[QNTO'#EpODcQMyO'#EoOG|QNQO'#FjOOQk'#I^'#I^OJgQNTO'#I^O! qQNTO'#I^O!#lQNTO'#IQO!$nQNSO'#IQOOQk'#IU'#IUO!$xQNTO'#GhO!&bQNTO'#GhO!'wQNQO'#GlO!+YQMxO'#GpO!+_QNTO'#ITOOQk'#IT'#ITO!$SQNSO'#IQO!$SQNSO'#IQQOQMxOOO!+iQNQO'#CbOOQk'#Iu'#IuO!'wQNQO'#FzO!.zQNQO'#GOO!2]QNQO'#GQOOQk'#GU'#GUOOQk'#GW'#GWO!5nQNTO'#GYO!6}QNQO'#G[O!7VQNQO'#GeO!7_QNSO'#CaO!7lQNSO'#CjO!7|QNQO'#DRO!8RQNQO'#DWO!8WQNQO'#DZO!9zQNQO'#DZO!:PQNQO'#D_O!:UQNQO'#DbO!;bQNQO'#DeO!=YQNQO'#DzO!=dQNQO'#CrO!+iQNQO'#FsO!=lQNSO'#FvO!7eQNSO'#GSO!7eQNSO'#GgO!=|QNSO-E:tO!>jQNTO,5>VO!@bQNSO,5>VO!?dQNSO,5>VO!@lQNSO,5>lO!8WQNQO,59gO!AWQNUO,59jOOQh'#Cx'#CxOOQh'#Cy'#CyO!A_QMxO,59hO!AdQMxO,5:jO!AiQMyO,5:jO!AqQMxO,59kO!AvQMxO,5<]O!8WQNQO,5lO!'wQNQO'#HfO#2uQNSO,5PQNTO,5=WOOQj-E;i-E;iO#C}QNTO,58|O#HYQNRO'#F}O#HdQMxO'#F|OOQk,5VO$FXQNSO,5>VOOQj,5>V,5>VO$FyQNSO1G4WO$GaQNSO1G4WO$LrQNTO1G/RO%#|QNTO1G/UOOQk'#Ea'#EaOOQk1G0f1G0fO%$rQM}O1G/SO%$yQNQO'#DuOOQk'#Ix'#IxO%%QQNTO1G0UO!AdQMxO1G0UO%-oQNQO1G/VO%-yQNQO'#DmOOQk1G1w1G1wO%.TQNTO'#CzOOQk1G1u1G1uO%2vQNTO1G1vOOQk1G4t1G4tO#.PQNQO,59bO%7|QNQO'#IwOOQ`,5:b,5:bO%8_QNQO'#DwOOQk1G1t1G1tO%8gQNQO,5?bO%8wQMxO,5?bO%QOOQk-E;d-E;dO&#PQNTO1G2SOOQk1G2S1G2SO&$_QNSO1G2SO&)SQNTO1G2tO&+gQNTO1G2tO&-zQNTO1G2tO&.RQNTO1G2tO&0`QNTO1G2tO&0mQNTO1G2tO&2}QNTO1G2tO&3XQNTO1G2tO&5oQNTO1G2tO&5vQNTO1G2tO&7_QNRO1G2uOOQk1G2y1G2yO&9iQNTO1G2tO&9yQM|O1G2oOOQk-E;h-E;hOOQk'#Jg'#JgO&:OQNTO1G2nOOQk1G2n1G2nP]QNSO'#GvOOQk,5oQNQO,5tQNQO'#HgO&>|QNTO,5ROOQk,5>R,5>ROOQk-E;e-E;eO(+oQNQO1G2iOOQk1G2g1G2gOOQk,5>T,5>TOOQk-E;g-E;gOOQh,59O,59OOOQh-E:u-E:uOOQk7+$R7+$RO(+|QNQO7+$RO(,RQNTO,59POOQh,59R,59RO(.yQNTO'#CnOOQh,59W,59WO(4hQNSO,59WOOQh,59Z,59ZOOQh,59[,59[OOQk7+$[7+$[O(4oQNQO7+$[O(4tQNQO7+$[O(4|QNQO7+$sOOQk7+$x7+$xO%$aQM}O1G/SO(5RQNQO,5>rO(5]QMxO,5>rOOQk7+${7+${O(5hQNQO7+${OOQk7+%P7+%POOQk7+%S7+%SO(5mQM|O1G/nO(5xQNQO1G/oOOQa1G/r1G/rO$:gQNQO,5:ZO(6SQNQO1G/tO(6gQMxO1G/tOOQa1G/t1G/tO!7eQNSO7+%VO(6oQNTO'#IxOOQj1G0Z1G0ZOOQj1G0T1G0TOOQk7+%l7+%lOOQj'#EV'#EVO!7eQNSO7+%lO(O,5>OOOQj-E;b-E;bO(>{QNQO7+$dOOQk7+$d7+$dOOQk7+'e7+'eO(?QQNTO1G2PO(?_QMzO1G2POOQb,5>P,5>POOQb-E;c-E;cOOQk7+'h7+'hO(?mQNQO7+'hO(?rQNTO'#IyOOQj'#Iy'#IyO(BgQNSO'#ESO!7eQNSO,5:lOOQk<]AN>]OOQkAN>rAN>rO+6kQNTO<SOOQk,5>S,5>SO,%^QNTO,5>SOOQk-E;f-E;fOOQk1G2j1G2jO,%eQNRO1G/pOOQaAN>aAN>aO,%oQNQOAN>aO,%vQNQO<jQNRO,5QO/1^QNRO,5>QO/3[QNRO,5>QO/3uQNTO,5>QO/6SQNTO,5>QO/6gQNTO,5>QO/7{QNRO,5>QO/8iQNTO1G2SO/OQNRO1G2tO0BWQNTO1G2tO0DeQNTO1G2tO0FPQNRO1G2tO0F^QNRO1G2tO0FwQNTO1G2tO0GOQNRO1G2tO0GlQNRO1G2tO0HSQNTO1G2tO0HZQNTO1G2tO0HbQNRO1G2tO0JYQNRO1G2tO0NzQNTO1G2tO1!xQNRO1G2tO1$pQNRO1G2tO1(xQNTO1G2tO1+VQNTO1G2tO1,nQNRO1G2tO1,xQNRO1G2tO1-SQNTO1G2tO1-^QNRO1G2tO1-hQNRO1G2tO1-rQNTO1G2tO1-|QNTO1G2tO1.WQNRO1G2tO10UQNRO1G2tO14vQNTO1G2tO16tQNRO1G2tO18lQNRO1G2tO1PQNRO<TQNRO1G1dO3?lQNRO1G1dO3?sQNRO1G1dO3BeQNRO1G1dO3BuQNRO1G1dO3B|QNRO1G1dO3CTQNRO1G1dO3C[QNRO1G1dO3CcQNRO1G1dO3CjQNRO1G1dO3F[QNRO1G1dO3HSQNRO1G1dO3I}QNRO1G1dO3KrQNRO1G1dO4 tQNRO1G1dO4#`QNRO1G1dO4#mQNRO1G1dO4&nQNRO1G1dO4&uQNRO1G1dO4&|QNRO1G1dO4'TQNRO1G1dO4'[QNRO1G1dO4'cQNRO1G1dO4+nQNRO1G1dO4-lQNRO1G1dO4/dQNRO1G1dO41_QNRO1G1dO43SQNRO1G1dO47UQNRO1G1dO48mQNRO1G1dO48wQNRO1G1dO49RQNRO1G1dO49]QNRO1G1dO49gQNRO1G1dO49qQNRO1G1dO49{QNRO1G1dO4:VQNRO1G1dO4>hQNRO1G1dO4@fQNRO1G1dO4B^QNRO1G1dO4DXQNRO1G1dO4E|QNRO1G1dO4JOQNRO1G1dO4KgQNRO1G1dO4KnQNRO1G1dO4KuQNRO1G1dO4K|QNRO1G1dO4LTQNRO1G1dO4L[QNRO1G1dO4LcQNRO1G1dO4LjQNRO1G1dO4LqQNRO1G1dO5 fQNRO1G1dO5 yQNRO1G1dO5!ZQNRO1G1dO5!kQNRO1G1dO5!{QNRO1G1dO5$dQNRO1G1dO'<_QNQO,5;{O2.VQNQO,5;{O)2XQNQO,5;{O)#cQNQO,5;{O'<_QNQO7+'PO2.VQNQO7+'PO*FrQNQO7+'PO)2XQNQO7+'PO)9uQNQO7+'PO)#cQNQO7+'PO)6[QNQO7+'PO5$tQNRO1G1gO5'uQNRO1G1gO5)mQNRO1G1gO5*ZQNRO1G1gO5,xQNRO<QQNTO'#EpO5>eQNRO'#EpO5@dQNTO'#EpO5DmQMxO'#GpO5DrQMxO'#GpO5DwQMxO'#GpO5D|QMxO'#GpO!'wQNQO'#FzO!'wQNQO'#FzO!'wQNQO'#FzO!.zQNQO'#GOO!.zQNQO'#GOO!.zQNQO'#GOO5ERQNQO'#GOO5HdQNQO'#GOO5KuQNQO'#GOO5ERQNQO'#GOO5ERQNQO'#GOO5HdQNQO'#GOO5KuQNQO'#GOO!2]QNQO'#GQO!2]QNQO'#GQO!2]QNQO'#GQO6 WQNQO'#GQO6$iQNQO'#GQO6'zQNQO'#GQO6 WQNQO'#GQO6 WQNQO'#GQO6$iQNQO'#GQO6'zQNQO'#GQO!8WQNQO,59gO!8WQNQO,59gO!8WQNQO,59gO!AWQNUO,59jO6+]QMxO,5:aO6+eQNQO,5=[O!'wQNQO'#HfO6.vQNTO,5gQMxO,5:SO6?yQNRO'#IXO6@^QNRO'#EpO6@qQNRO'#EpO6CUQNRO'#EpO6EoQNRO'#EpO6HQQMxO'#F`O6HVQMxO'#F`O6H[QMxO'#F`O6HaQMxO'#F`O6+eQNQO,5=]O6+eQNQO7+(aO6HfQNRO1G2wO6HvQNRO<wQNRO<mQNRO<PO'T({O&a!sa&i!sa~O'p^O~P%$aO'_)PO~P;aO!u)RO!e!ri!f!ri!g!ri!h!ri!x!ri&`!ri&a!ri&c!ri&d!ri&e!ri&h!ri&i!ri&j!ri&v!ri&|!ri&}!ri'O!ri'P!ri'R!ri'S!ri'T!ri'Y!ri'`!ri'c!ri'd!ri'e!ri'f!ri'g!ri'h!ri'}!ri(O!ri(P!ri(Q!ri(V!rig!ri'_!riP!riV!ri_!riv!riy!ri{!ri!O!ri!P!ri!S!ri!V!ri!Y!ri!o!ri#Z!ri#[!ri#y!ri$h!ri$k!ri$o!ri$s!ri$u!ri$w!ri$y!ri${!ri$}!ri%P!ri%Q!ri%Y!ri&y!ri'U!ri'Z!ri'a!ri'p!ri'u!ri'w!ri'x!riY!ri[!ri]!ria!rie!ri(R!ri']!ri~OP)XOVuO])ZO_!QOg!ZOv!ROy)[O{!SO!O!UO!P!TO!S!VO!V!WO!Y!XO!evO!fvO!gYO!hYO!o!YO#Z)ZO#[)ZO#y)ZO$h![O$k!]O$o=OO$s=RO$u=]O$w!^O$yzO${{O$}3UO%P}O%Q}O%Y!OO&y)WO&|YO&}YO'RCnO'SVO'TCoO'U)YO'`YO'a)UO'cWO'd)TO'eYO'fYO'gYO'hYO'p^O'u_O'w`O'xaO~O'Y)eO'Z)dO~P%*ZO'O!gO'P!hO~P#.PO!enX!fnX!gnX!hnX&`nX&enX&jnX&vnX&|nX&}nX'RnX'SnX'TnX'YnX'`nX'cnX'dnX'enX'fnX'gnX'hnX'}nX(OnX(PnX(QnX(VnX'_nXgnXPnXVnX_nXvnXynX{nX!OnX!PnX!SnX!VnX!YnX!onX#ZnX#[nX#ynX$hnX$knX$onX$snX$unX$wnX$ynX${nX$}nX%PnX%QnX%YnX&ynX'UnX'ZnX'anX'pnX'unX'wnX'xnXYnX[nX]nXanXenX!xnX']nX(RnX~P$5PO&c!mO&d!lO&h(QO!e$di!f$di!g$di!h$di&`$di&a$di&e$di&i$di&j$di&v$di&|$di&}$di'O$di'P$di'R$di'S$di'T$di'Y$di'`$di'c$di'd$di'e$di'f$di'g$di'h$di'}$di(O$di(P$di(Q$di(V$dig$di'_$diP$diV$di_$div$diy$di{$di!O$di!P$di!S$di!V$di!Y$di!o$di#Z$di#[$di#y$di$h$di$k$di$o$di$s$di$u$di$w$di$y$di${$di$}$di%P$di%Q$di%Y$di&y$di'U$di'Z$di'a$di'p$di'u$di'w$di'x$diY$di[$di]$dia$die$di(R$di']$di!x$di~OV)mOg%yO&v'kX'_'kX'Z'kX~OP=|O&y%QO~O&v&za&v'ja'_&za'_'ja~P!DiO'Y)qO&v&za&v'ja'_&za'_'ja~OPCpOVuO_!QOg!ZOv!ROyhO{!SO!O!UO!P!TO!S!VO!V!WO!Y!XO!evO!fvO!gYO!hYO!o!YO#ZfO#[fO#y!_O$h![O$k!]O$owO$s=XO$u=cO$w!^O$yzO${{O$}|O%P}O%Q}O%Y!OO&y[O&|YO&}YO'O!gO'P!hO'RSO'SVO'TTO'UeO'`YO'aZO'cWO'dXO'eYO'fYO'gYO'hYO'p^O'u_O'w`O'xaO~O'_)tO~P%9YO&v)uO'_)tO~O'Y)wO&v'jX'_'jX~O&aii&cii&dii&hii&iii'Oii'Pii~O!eii!fii!gii!hii&`ii&eii&jii&vii&|ii&}ii'Rii'Sii'Tii'Yii'`ii'cii'dii'eii'fii'gii'hii'}ii(Oii(Pii(Qii(S!ii(Viigii'_iiPiiVii_iiviiyii{ii!Oii!Pii!Sii!Vii!Yii!oii#Zii#[ii#yii$hii$kii$oii$sii$uii$wii$yii${ii$}ii%Pii%Qii%Yii&yii'Uii'Zii'aii'pii'uii'wii'xiiYii[ii]iiaiieii(Rii']ii~P%=]O&v!tO'_)yO~O&v!tO'_)zO~O&y){O~O&k(zO~O!evO!fvO!g#qO!h#rO&e#vO&|*OO&}*OO'R#oO'SVO'T#xO'`#lO'cWO'dWO'e#nO'f#kO'g#qO'}#mO(O#sO(P#tO(Q#uO(V#wO~O'h#pO&`%di&j%di&v%di'Y%diY%di[%di]%dia%die%di']%di'_%di'Z%di(R%di~P%CRO&p*PO~O&o*QO~O&q*RO~O'Z*TO~P#.PO'Y*UO'Z*TO~O'Z*WO~O!g?rO!h?vO'R?jO'T@SO'`?^O'e?fO'f?YO'g?rO'h?nO'}?bO(O?zO(P@OO(QDjOg&UX'Z&UX~P#&YO'Z*YO~P#*[O&v*ZO'Z*YO~O!evO!fvO!g4qO!h4xO&e#vO'R4cO'SVO'T5_O'Y3gO'`3|O'cWO'dWO'e4[O'f3uO'g4qO'h4jO'}4TO(O5PO(P5WO(QCxO(V#wO~O&`%ii&j%ii&v%iiY%ii[%ii]%iia%iie%ii~P%GmO&|*]O&}*]O~O&a=hO&i=hO~O&a*^O&h*_O!e$WX!f$WX!g$WX!h$WX&`$WX&e$WX&f#dX&g#dX&j$WX&v$WX&|$WX&}$WX'R$WX'S$WX'T$WX'Y$WX'`$WX'c$WX'd$WX'e$WX'f$WX'g$WX'h$WX'}$WX(O$WX(P$WX(Q$WX(V$WXg$WX'_$WXP$WXV$WX_$WXv$WXy$WX{$WX!O$WX!P$WX!S$WX!V$WX!Y$WX!o$WX#Z$WX#[$WX#y$WX$h$WX$k$WX$o$WX$s$WX$u$WX$w$WX$y$WX${$WX$}$WX%P$WX%Q$WX%Y$WX&y$WX'U$WX'Z$WX'a$WX'p$WX'u$WX'w$WX'x$WXY$WX[$WX]$WXa$WXe$WX(R$WX']$WX~O!evO!fvO!g#qO!h#rO&e#vO'R#oO'SVO'T#xO'`#lO'cWO'dWO'e#nO'f#kO'g#qO'}#mO(O#sO(P#tO(Q#uO(V#wO&`&Ya&j&Ya&v&Ya&|&Ya&}&Ya'Y&YaY&Ya[&Ya]&Yaa&Yae&Ya~O'h#pO~P%NxO&|#jO&}#jO&`$pi&j$pi&v$piY$pi[$pi]$pia$pie$pi~P#FuO&`$pi&j$pi&v$piY$pi[$pi]$pia$pie$pi~O&|#jO&}#jO~P&#sO&e#vO(V#wO!e%bi!f%bi!g%bi!h%bi&`%bi&j%bi&v%bi&|%bi&}%bi'R%bi'S%bi'T%bi'Y%bi'`%bi'c%bi'd%bi'e%bi'g%bi'h%bi'}%bi(O%bi(P%bi(Q%big%bi'_%biP%biV%bi_%biv%biy%bi{%bi!O%bi!P%bi!S%bi!V%bi!Y%bi!o%bi#Z%bi#[%bi#y%bi$h%bi$k%bi$o%bi$s%bi$u%bi$w%bi$y%bi${%bi$}%bi%P%bi%Q%bi%Y%bi&y%bi'U%bi'Z%bi'a%bi'p%bi'u%bi'w%bi'x%biY%bi[%bi]%bia%bie%bi(R%bi']%bi~O'f%bi~P&$iO&e#vO'f#kO(V#wO!e%bi!f%bi!g%bi!h%bi&`%bi&j%bi&v%bi&|%bi&}%bi'R%bi'S%bi'T%bi'Y%bi'c%bi'd%bi'e%bi'g%bi'h%bi'}%bi(O%bi(P%bi(Q%biY%bi[%bi]%bia%bie%bi'_%bi']%bi'Z%bi(R%bi~O'`%bi~P&)ZO!evO!fvO!g#qO!h#rO&e#vO'R#oO'SVO'T#xO'`#lO'cWO'dWO'e#nO'f#kO'g#qO'}#mO(O#sO(P#tO(Q#uO(V#wO&`%bi&j%bi&v%bi&|%bi&}%bi'Y%biY%bi[%bi]%bia%bie%bi'_%bi']%bi'Z%bi(R%bi~O'h%bi~P&+nO'`#lO~P&)ZO&e#vO(V#wO!e%bi!f%bi!g%bi!h%bi&`%bi&j%bi&v%bi&|%bi&}%bi'R%bi'S%bi'T%bi'Y%bi'c%bi'd%bi'g%bi'h%bi'}%bi(O%bi(P%bi(Q%biY%bi[%bi]%bia%bie%bi'_%bi']%bi'Z%bi(R%bi~O'`#lO'e#nO'f#kO~P&.YO'h#pO~P&+nO&e#vO'R#oO'SVO'T#xO'`#lO'cWO'dWO'e#nO'f#kO(V#wO!e%bi!f%bi&`%bi&j%bi&v%bi&|%bi&}%bi'Y%bi'g%bi'h%bi'}%bi(O%bi(P%bi(Q%biY%bi[%bi]%bia%bie%bi'_%bi']%bi'Z%bi(R%bi~O!g#qO!h#rO~P&0tO!g%bi!h%bi~P&0tO!evO!fvO!g#qO!h#rO&e#vO'R#oO'SVO'T#xO'`#lO'cWO'dWO'e#nO'f#kO'g#qO(P#tO(V#wO&`%bi&j%bi&v%bi&|%bi&}%bi'Y%bi'h%bi'}%bi(Q%biY%bi[%bi]%bia%bie%bi'_%bi']%bi'Z%bi(R%bi~O(O#sO~P&3cO(O%bi~P&3cO!evO!fvO!g4rO!h4yO&e#vO'R4dO'SVO'T5`O'`3}O'cWO'dWO'e4]O'f3vO'g4rO'h4kO'}4UO(O5QO(P5XO(QCyO(V#wO~O(R*`O~P&5}O&e#vO'SVO'cWO'dWO(V#wO!e%bi!f%bi!g%bi!h%bi&`%bi&j%bi&v%bi&|%bi&}%bi'T%bi'Y%bi'g%bi'h%bi'}%bi(O%bi(P%bi(Q%biY%bi[%bi]%bia%bie%bi'_%bi']%bi'Z%bi(R%bi~O'R#oO'`#lO'e#nO'f#kO~P&7fO&k*aO~O!u)RO!e%[i!f%[i!g%[i!h%[i&`%[i&e%[i&j%[i&v%[i&|%[i&}%[i'R%[i'S%[i'T%[i'Y%[i'`%[i'c%[i'd%[i'e%[i'f%[i'g%[i'h%[i'}%[i(O%[i(P%[i(Q%[i(V%[ig%[i'_%[iP%[iV%[i_%[iv%[iy%[i{%[i!O%[i!P%[i!S%[i!V%[i!Y%[i!o%[i#Z%[i#[%[i#y%[i$h%[i$k%[i$o%[i$s%[i$u%[i$w%[i$y%[i${%[i$}%[i%P%[i%Q%[i%Y%[i&y%[i'U%[i'Z%[i'a%[i'p%[i'u%[i'w%[i'x%[iY%[i[%[i]%[ia%[ie%[i(R%[i']%[i~OP*cO~OP*dO'S$cO~O'Y'hO!e%Ra!f%Ra!g%Ra!h%Ra&`%Ra&e%Ra&j%Ra&v%Ra&|%Ra&}%Ra'R%Ra'S%Ra'T%Ra'`%Ra'c%Ra'd%Ra'e%Ra'f%Ra'g%Ra'h%Ra'}%Ra(O%Ra(P%Ra(Q%Ra(V%Rag%Ra'_%RaP%RaV%Ra_%Rav%Ray%Ra{%Ra!O%Ra!P%Ra!S%Ra!V%Ra!Y%Ra!o%Ra#Z%Ra#[%Ra#y%Ra$h%Ra$k%Ra$o%Ra$s%Ra$u%Ra$w%Ra$y%Ra${%Ra$}%Ra%P%Ra%Q%Ra%Y%Ra&y%Ra'U%Ra'Z%Ra'a%Ra'p%Ra'u%Ra'w%Ra'x%RaY%Ra[%Ra]%Raa%Rae%Ra(R%Ra']%Ra~O'T*gO~OP*hO~OP*iO'p^O~O'Y'lO!e%Xi!f%Xi!g%Xi!h%Xi&`%Xi&e%Xi&j%Xi&v%Xi&|%Xi&}%Xi'R%Xi'S%Xi'T%Xi'`%Xi'c%Xi'd%Xi'e%Xi'f%Xi'g%Xi'h%Xi'}%Xi(O%Xi(P%Xi(Q%Xi(V%Xig%Xi'_%XiP%XiV%Xi_%Xiv%Xiy%Xi{%Xi!O%Xi!P%Xi!S%Xi!V%Xi!Y%Xi!o%Xi#Z%Xi#[%Xi#y%Xi$h%Xi$k%Xi$o%Xi$s%Xi$u%Xi$w%Xi$y%Xi${%Xi$}%Xi%P%Xi%Q%Xi%Y%Xi&y%Xi'U%Xi'Z%Xi'a%Xi'p%Xi'u%Xi'w%Xi'x%XiY%Xi[%Xi]%Xia%Xie%Xi(R%Xi']%Xi~OY'qO['rO]*mO~OVuO_!QOg!ZOv!ROyhO{!SO!O!UO!P!TO!S!VO!V!WO!Y!XO!evO!fvO!gYO!hYO!o!YO#ZfO#[fO#y!_O$h![O$k!]O$owO$sxO$uyO$w!^O$yzO${{O$}|O%P}O%Q}O%Y!OO&jPO&vPO&y[O&|YO&}YO'RSO'SVO'TTO'UeO'`YO'aZO'cWO'dXO'eYO'fYO'gYO'hYO'p^O'u_O'w`O'xaO[&tP]&tPe&tP~OP*qO~P&HuO]&tPe&tP~P]O]*vO~O]*vOe'wO~O['vO]*vOe'wO~OyxX~P$5POy*yO~O]|X~P$5PO]*zO~O'S*{O~O&v%}O'Y*|O'_&PO~O'_%zO~O]+OO~O]+QO~O]+RO~O'S+SO~O'U+TO~O&c(^O&d(]O&h>fO&|+VO&}+VO&v'^X'_'^X~O&v+WO'_+YO~O]+_O~OP+`O'[%pO~O!evO!fvO!g#qO!h#rO&e#vO'R#oO'SVO'T#xO'`#lO'cWO'dWO'e#nO'f#kO'g#qO'h#pO'}#mO(O#sO(P#tO(Q#uO(V#wO~O&|%vO&}%vO'Y&{X&v&{X'_&{X~P' uO'Y*|O~O]+fO~O]+gO~OP%WO&y$nO~P!;lO'Y(sO&j$la&v$la~O]+lO~O&`&tqY&tq[&tq]&tqa&tqe&tq~P]O&a7|O&i7|O~O&jPO&vPO'O!gO'P!hO~PDkO!u)RO!e!rq!f!rq!g!rq!h!rq!x!rq&`!rq&a!rq&c!rq&d!rq&e!rq&h!rq&i!rq&j!rq&v!rq&|!rq&}!rq'O!rq'P!rq'R!rq'S!rq'T!rq'Y!rq'`!rq'c!rq'd!rq'e!rq'f!rq'g!rq'h!rq'}!rq(O!rq(P!rq(Q!rq(V!rqg!rq'_!rqP!rqV!rq_!rqv!rqy!rq{!rq!O!rq!P!rq!S!rq!V!rq!Y!rq!o!rq#Z!rq#[!rq#y!rq$h!rq$k!rq$o!rq$s!rq$u!rq$w!rq$y!rq${!rq$}!rq%P!rq%Q!rq%Y!rq&y!rq'U!rq'Z!rq'a!rq'p!rq'u!rq'w!rq'x!rqY!rq[!rq]!rqa!rqe!rq(R!rq']!rq~OP$PXV$PX]$PX_$PXg$PXg'bXv$PXy$PX{$PX!O$PX!P$PX!S$PX!V$PX!Y$PX!e$PX!e'bX!f$PX!f'bX!g$PX!g'bX!h$PX!h'bX!o$PX#Z$PX#[$PX#y$PX$h$PX$k$PX$o$PX$s$PX$u$PX$w$PX$y$PX${$PX$}$PX%P$PX%Q$PX%Y$PX&a'bX&c'bX&d'bX&e'bX&h'bX&i'bX&y$PX&|$PX&|'bX&}$PX&}'bX'O'bX'R$PX'R'bX'S$PX'S'bX'T$PX'T'bX'U$PX'Y'bX'Z'bX'`$PX'`'bX'a$PX'c$PX'c'bX'd$PX'd'bX'e$PX'e'bX'f$PX'f'bX'g$PX'g'bX'h$PX'h'bX'p$PX'u$PX'w$PX'x$PX'}'bX(O'bX(P'bX(Q'bX(V'bX&v'bX'_'bX~OP$PXV$PX]$PX_$PXv$PXy$PX{$PX!O$PX!P$PX!S$PX!V$PX!Y$PX!e!dX!f!dX!g!dX!h!dX!o$PX#Z$PX#[$PX#y$PX$h$PX$k$PX$o$PX$s$PX$u$PX$w$PX$y$PX${$PX$}$PX%P$PX%Q$PX%Y$PX&a!dX&c!dX&d!dX&e!dX&h!dX&i!dX&y$PX&|!dX&}!dX'O!dX'R!dX'S!dX'T!dX'U$PX'Y!dX'Z!dX'`!dX'a$PX'c!dX'd!dX'e!dX'f!dX'g!dX'h!dX'p$PX'u$PX'w$PX'x$PX'}!dX(O!dX(P!dX(Q!dX(V!dX&v!dX'_!dX~Og!dX~P'0ZOg'VX!e'VX!f'VX!g'VX!h'VX&e'VX&|'VX&}'VX'R'VX'S'VX'T'VX'Y'VX'Z'VX'`'VX'c'VX'd'VX'e'VX'f'VX'g'VX'h'VX'}'VX(O'VX(P'VX(Q'VX(V'VX&v'VX'_'VXP'VXV'VX]'VX_'VXv'VXy'VX{'VX!O'VX!P'VX!S'VX!V'VX!Y'VX!o'VX#Z'VX#['VX#y'VX$h'VX$k'VX$o'VX$s'VX$u'VX$w'VX$y'VX${'VX$}'VX%P'VX%Q'VX%Y'VX&y'VX'U'VX'a'VX'p'VX'u'VX'w'VX'x'VX(R'VX']'VX~O&a+uO&c+wO&d+tO&h+sO&i+uO'O!gO~P'4uO&v+}O'O!gO'P!hO'_,QO~P%*ZOg'qX!e'qX!f'qX!g'qX!h'qX&a'qX&c'qX&d'qX&e'qX&f#dX&g#dX&h'qX&i'qX&|'qX&}'qX'O'qX'R'qX'S'qX'T'qX'Y'qX'Z'qX'`'qX'c'qX'd'qX'e'qX'f'qX'g'qX'h'qX'}'qX(O'qX(P'qX(Q'qX(V'qX&v'qX'_'qX~O(S,TO~P'9wOP>hOVuO])ZO_!QOg!ZOv!ROy)[O{!SO!O!UO!P!TO!S!VO!V!WO!Y!XO!evO!fvO!gYO!hYO!o!YO#Z)ZO#[)ZO#y)ZO$h![O$k!]O$o=PO$s=SO$u=^O$w!^O$yzO${{O$}3VO%P}O%Q}O%Y!OO&y)WO&|YO&}YO'RCnO'SVO'TCoO'U)YO'`YO'aYO'cWO'd8SO'eYO'fYO'gYO'hYO'p^O'u_O'w`O'xaO~O'Z,UO~P'<_Og'qX!e'qX!f'qX!g'qX!h'qX&c'qX&d'qX&e'qX&h'qX&|'qX&}'qX'O'qX'R'qX'S'qX'T'qX'Y'qX'Z'qX'`'qX'c'qX'd'qX'e'qX'f'qX'g'qX'h'qX'}'qX(O'qX(P'qX(Q'qX(V'qX&v'qX'_'qXP'qXV'qX]'qX_'qXv'qXy'qX{'qX!O'qX!P'qX!S'qX!V'qX!Y'qX!o'qX#Z'qX#['qX#y'qX$h'qX$k'qX$o'qX$s'qX$u'qX$w'qX$y'qX${'qX$}'qX%P'qX%Q'qX%Y'qX&y'qX'U'qX'a'qX'p'qX'u'qX'w'qX'x'qX(R'qX']'qX~O&a,YO&i,YO~P'?zO&a,`O&c,aO&h,ZO&e!zX'Y!zX'Z!zX'}!zX(O!zX(P!zX(Q!zX(V!zX&v!zX'_!zX(R!zX']!zX~P'<_O&a,`O&c,aO&e!zX'Y!zX'Z!zX'}!zX(O!zX(P!zX(Q!zX(V!zX&v!zX'_!zX(R!zX']!zX~P'<_Og,wO!evO!fvO!g,mO!h,nO&e,rO'R,kO'SVO'T,xO'`,hO'cWO'dWO'e,jO'f,gO'g,mO'h,lO'},iO(O,oO(P,pO(Q,qO(V,sO~O&|,uO&},uO'Y,dO'Z,vO~P'FoO(S,TO~O&a,YO&i,YO~P'4uO'Z,vO~O'Y,yO'Z,vO~O'Y,dO'Z,vO~O!evO!fvO!g4qO!h4xO&e#vO'R4cO'SVO'T5_O'`3|O'cWO'dWO'e4[O'f3uO'g4qO'h4jO'}4TO(O5PO(P5WO(QCxO(V#wO~O'Y,zO'],|O~P'IYO'Y,zO'],|O~O&vji'Yji'_ji~P'IYOV)mOg%yO&v'ka'_'ka'Z'ka~OPDYOVuO_!QOg!ZOv!ROyhO{!SO!O!UO!P!TO!S!VO!V!WO!Y!XO!evO!fvO!gYO!hYO!o!YO#ZfO#[fO#y!_O$h![O$k!]O$o=QO$s=WO$u=bO$w!^O$yzO${{O$}3XO%P}O%Q}O%Y!OO&y[O&|YO&}YO'RSO'SVO'TTO'UeO'`YO'a2}O'cWO'd2yO'eYO'fYO'gYO'hYO'p^O'u_O'w`O'xaO~O'Y-POV!kag!ka&v!ka'_!ka'Z!ka~O&v&zi&v'ji'_&zi'_'ji~O&v&zi&v'ji'_&zi'_'ji~P!DiO'_-TO~P%9YO&v'ja'_'ja~P!DiO'Y-WO&v'ja'_'ja~OPCpOVuO_!QOg!ZOv!ROyhO{!SO!O!UO!P!TO!S!VO!V!WO!Y!XO!evO!fvO!gYO!hYO!o!YO#ZfO#[fO#y!_O$h![O$k!]O$owO$s=[O$u=fO$w!^O$yzO${{O$}3ZO%P}O%Q}O%Y!OO&y[O&|YO&}YO'RSO'SVO'TTO'UeO'`YO'a3OO'cWO'd2zO'eYO'fYO'gYO'hYO'p^O'u_O'w`O'xaO~O'u-[O~O'w-]O~O'x-^O~O'Y&Ta'Z&Ta~P'IYO'Z-_O~P#.PO'Z-aO~P#*[O'S-gO~O%U'kO'S'gO!e&Za!f&Za!g&Za!h&Za&`&Za&e&Za&j&Za&v&Za&|&Za&}&Za'R&Za'T&Za'Y&Za'`&Za'c&Za'd&Za'e&Za'f&Za'g&Za'h&Za'}&Za(O&Za(P&Za(Q&Za(V&Zag&Za'_&ZaP&ZaV&Za_&Zav&Zay&Za{&Za!O&Za!P&Za!S&Za!V&Za!Y&Za!o&Za#Z&Za#[&Za#y&Za$h&Za$k&Za$o&Za$s&Za$u&Za$w&Za$y&Za${&Za$}&Za%P&Za%Q&Za%Y&Za&y&Za'U&Za'Z&Za'a&Za'p&Za'u&Za'w&Za'x&ZaY&Za[&Za]&Zaa&Zae&Za(R&Za']&Za~OP-jO'S-iO'p^O~P?SO]-oO~OPXaVXaYXa[Xa]Xa_XagXavXayXa{Xa!OXa!PXa!SXa!VXa!YXa!oXa#ZXa#[Xa#yXa$hXa$kXa$oXa$sXa$uXa$wXa$yXa${Xa$}Xa%PXa%QXa%YXa&jXa&vXa&yXa&|Xa&}Xa'UXa'aXa'pXa'uXa'wXa'xXa~P#BmO(S#]OPbXVbX[bX['QX]bX]'QX_bXebXe'QXgbXvbXybX{bX!ObX!PbX!SbX!VbX!YbX!ebX!e'QX!fbX!f'QX!gbX!g'QX!hbX!h'QX!obX#ZbX#[bX#ybX$hbX$kbX$obX$sbX$ubX$wbX$ybX${bX$}bX%PbX%QbX%YbX&e'QX&jbX&j'QX&vbX&v'QX&ybX&|bX&|'QX&}bX&}'QX'RbX'R'QX'SbX'S'QX'TbX'T'QX'UbX'Y'QX'`bX'`'QX'abX'cbX'c'QX'dbX'd'QX'ebX'e'QX'fbX'f'QX'gbX'g'QX'hbX'h'QX'pbX'ubX'wbX'xbX'}'QX(O'QX(P'QX(Q'QX(V'QX~P$:}OPcO~P&HuO]-qO~O]-qOe'wO~O]-sO~O&v&za'_&za~P!DiO'Y-uO&v&za'_&za~O]-vO~O&k(zO'R>RO'T8PO~O'Y-zO'Z-yO~P%*ZO'O!gO'P!hO'RCmO'T={O'_.PO~P!:ZO&v.QO'_.PO~OP'nXV'nX]'nX_'nXg'nXv'nXy'nX{'nX!O'nX!P'nX!S'nX!V'nX!Y'nX!e'nX!f'nX!g'nX!h'nX!o'nX!u'lX!x'nX#Z'nX#['nX#y'nX$h'nX$k'nX$o'nX$s'nX$u'nX$w'nX$y'nX${'nX$}'nX%P'nX%Q'nX%Y'nX&a'lX&c'lX&d'lX&h'lX&i'lX&j'nX&v'nX&y'nX&|'nX&}'nX'O'lX'P'lX'R'nX'S'nX'T'nX'U'nX'`'nX'a'nX'c'nX'd'nX'e'nX'f'nX'g'nX'h'nX'p'nX'u'nX'w'nX'x'nX~O!evO!fvO!g4mO!h4tO&e#vO'R4_O'SVO'T5ZO'`3xO'cWO'dWO'e4WO'f3qO'g4mO'h4fO'}4PO(O4{O(P5SO(QCtO(V#wO~OPhiVhi]hi_highivhiyhi{hi!Ohi!Phi!Shi!Vhi!Yhi!ohi#Zhi#[hi#yhi$hhi$khi$ohi$shi$uhi$whi$yhi${hi$}hi%Phi%Qhi%Yhi&jhi&vhi&yhi&|hi&}hi'Uhi'Yhi'ahi'phi'uhi'whi'xhi~P(:vO].UO~O&j$mi&v$mi'Y$mi~P'IYO&}.VO&j$mi&v$mi'Y$mi~O].WO~OP'mXV'mX]'mX_'mXg'mXv'mXy'mX{'mX!O'mX!P'mX!S'mX!V'mX!Y'mX!o'mX#Z'mX#['mX#y'mX$h'mX$k'mX$o'mX$s'mX$u'mX$w'mX$y'mX${'mX$}'mX%P'mX%Q'mX%Y'mX&j'mX&v'mX&y'mX&|'mX&}'mX'U'mX'Y'mX'a'mX'p'mX'u'mX'w'mX'x'mX~P(:vO'Y.XOP!vXV!vX]!vX_!vXg!vXv!vXy!vX{!vX!O!vX!P!vX!S!vX!V!vX!Y!vX!e!vX!f!vX!g!vX!h!vX!o!vX#Z!vX#[!vX#y!vX$h!vX$k!vX$o!vX$s!vX$u!vX$w!vX$y!vX${!vX$}!vX%P!vX%Q!vX%Y!vX&j!vX&v!vX&y!vX&|!vX&}!vX'R!vX'S!vX'T!vX'U!vX'`!vX'a!vX'c!vX'd!vX'e!vX'f!vX'g!vX'h!vX'p!vX'u!vX'w!vX'x!vX~O'S.[O~O'U.]O~O&y.^O~O&a.aO&i.aO~O'[.bO~O&|.eO&}.eO&v'tX'Y'tX'_'tX~P'FoO'_.fO&v'sX'_'sX~O&v.iO'Y.gO'_.kO&v'sX'_'sX~O'O!gO'P!hO&v#YX'_#YX~P%*ZO&v+}O'_.pO~Og#ja!e#ja!f#ja!g#ja!h#ja&a#ja&c#ja&d#ja&e#ja&h#ja&i#ja&|#ja&}#ja'O#ja'R#ja'S#ja'T#ja'Y#ja'Z#ja'`#ja'c#ja'd#ja'e#ja'f#ja'g#ja'h#ja'}#ja(O#ja(P#ja(Q#ja(S#Wa(V#ja&v#ja'_#jaP#jaV#ja]#ja_#jav#jay#ja{#ja!O#ja!P#ja!S#ja!V#ja!Y#ja!o#ja#Z#ja#[#ja#y#ja$h#ja$k#ja$o#ja$s#ja$u#ja$w#ja$y#ja${#ja$}#ja%P#ja%Q#ja%Y#ja&y#ja'U#ja'a#ja'p#ja'u#ja'w#ja'x#ja(R#ja']#ja~O&v+}O'_.rO~O&v+}O'_.tO~O!evO!fvO&e,rO'SVO'cWO'dWO(V,sOP%}XV%}X]%}X_%}Xv%}Xy%}X{%}X!O%}X!P%}X!S%}X!V%}X!Y%}X!o%}X#Z%}X#[%}X#y%}X$h%}X$k%}X$o%}X$s%}X$u%}X$w%}X$y%}X${%}X$}%}X%P%}X%Q%}X%Y%}X&v%}X&y%}X&|%}X&}%}X'U%}X'a%}X'p%}X'u%}X'w%}X'x%}X~Og,wO!g9qO!h9xO'R9cO'T:_O'Y.wO'Z.yO'`8|O'e9[O'f8uO'g9qO'h9jO'}9TO(O:PO(P:WO(QC}O~P(M^OP>kOVuO])ZO_!QOg!ZOv!ROy)[O{!SO!O!UO!P!TO!S!VO!V!WO!Y!XO!evO!fvO!gYO!hYO!o!YO#Z)ZO#[)ZO#y)ZO$h![O$k!]O$o=PO$s=YO$u=dO$w!^O$yzO${{O$}3]O%P}O%Q}O%Y!OO&y)WO&|YO&}YO'RCnO'SVO'TCoO'U)YO'`YO'aYO'cWO'd8SO'eYO'fYO'gYO'hYO'p^O'u_O'w`O'xaO~O&v#tX'Z#tX~P)#cO&v.}O'Z/PO~O'S/RO~O&|/UO&}/UOP&QXV&QX]&QX_&QXg&QXv&QXy&QX{&QX!O&QX!P&QX!S&QX!V&QX!Y&QX!o&QX#Z&QX#[&QX#y&QX$h&QX$k&QX$o&QX$s&QX$u&QX$w&QX$y&QX${&QX$}&QX%P&QX%Q&QX%Y&QX&y&QX'U&QX'Z&QX'a&QX'p&QX'u&QX'w&QX'x&QX&v&QX'_&QX(R&QX']&QX~O!evO!fvO!g9qO!h9xO&e,rO'R9cO'SVO'T:_O'Y/SO'`8|O'cWO'dWO'e9[O'f8uO'g9qO'h9jO'}9TO(O:PO(P:WO(QC}O(V,sO~P)'`O!e&QX!f&QX!g&QX!h&QX&e&QX'R&QX'S&QX'T&QX'Y&QX'`&QX'c&QX'd&QX'e&QX'f&QX'g&QX'h&QX'}&QX(O&QX(P&QX(Q&QX(V&QX~P)'`O&e#{X'Y#{X'Z#{X'}#{X(O#{X(P#{X(Q#{X(V#{X&v#{X'_#{X(R#{X']#{X~P'<_O(V,sOg$Oa!e$Oa!f$Oa!g$Oa!h$Oa&e$Oa&|$Oa&}$Oa'R$Oa'S$Oa'T$Oa'Y$Oa'Z$Oa'`$Oa'c$Oa'd$Oa'e$Oa'f$Oa'g$Oa'h$Oa'}$Oa(O$Oa(P$Oa(Q$Oa&v$Oa'_$OaP$OaV$Oa]$Oa_$Oav$Oay$Oa{$Oa!O$Oa!P$Oa!S$Oa!V$Oa!Y$Oa!o$Oa#Z$Oa#[$Oa#y$Oa$h$Oa$k$Oa$o$Oa$s$Oa$u$Oa$w$Oa$y$Oa${$Oa$}$Oa%P$Oa%Q$Oa%Y$Oa&y$Oa'U$Oa'a$Oa'p$Oa'u$Oa'w$Oa'x$Oa(R$Oa']$Oa~OP>jOVuO])ZO_!QOg!ZOv!ROy)[O{!SO!O!UO!P!TO!S!VO!V!WO!Y!XO!evO!fvO!gYO!hYO!o!YO#Z)ZO#[)ZO#y)ZO$h![O$k!]O$owO$sxO$uyO$w!^O$yzO${{O$}|O%P}O%Q}O%Y!OO&y)WO&|YO&}YO'RCnO'SVO'TCoO'U)YO'`YO'a8XO'cWO'd8VO'eYO'fYO'gYO'hYO'p^O'u_O'w`O'xaO~O'Z/]O~P)2XO'Y/^O'Z/]O~OV/bOg,wO'Y'zX'Z'zX~OPDbOVuO])ZO_!QOg!ZOv!ROy)[O{!SO!O!UO!P!TO!S!VO!V!WO!Y!XO!evO!fvO!gYO!hYO!o!YO#Z)ZO#[)ZO#y)ZO$h![O$k!]O$owO$s=[O$u=fO$w!^O$yzO${{O$}3[O%P}O%Q}O%Y!OO&y)WO&|YO&}YO'RCnO'SVO'TCoO'U)YO'`YO'a8[O'cWO'd8WO'eYO'fYO'gYO'hYO'p^O'u_O'w`O'xaO~O(T/nO~OP>jOVuO])ZO_!QOg!ZOv!ROy)[O{!SO!O!UO!P!TO!S!VO!V!WO!Y!XO!evO!fvO!gYO!hYO!o!YO#Z)ZO#[)ZO#y)ZO$h![O$k!]O$owO$s=ZO$u=eO$w!^O$yzO${{O$}3ZO%P}O%Q}O%Y!OO&y)WO&|YO&}YO'RCnO'SVO'TCoO'U)YO'`YO'a8[O'cWO'd8WO'eYO'fYO'gYO'hYO'p^O'u_O'w`O'xaO~OP/qO&y/pO~O'O!gO'P!hO']/vO~P#.PO'Y/wO']/vO~O!evO!fvO!g?tO!h?xO&e#vO'R?lO'SVO'T@UO'`?`O'cWO'dWO'e?hO'f?[O'g?tO'h?pO'}?dO(O?|O(P@QO(QDlO(V#wO~OV!lag!la&v!la'_!la'Z!la~P)=xO'Y-POV!kig!ki&v!ki'_!ki'Z!ki~O&v&zq&v'jq'_&zq'_'jq~O'O!gO'P!hO~P!'wO&v'ji'_'ji~P!DiO!evO!fvO!g?uO!h?yO&e#vO'R?mO'SVO'T@VO'`?aO'cWO'dWO'e?iO'f?]O'g?uO'h?qO'}?eO(O?}O(P@RO(QDmO(V#wO~O'_/|O~P)@uO&`%ei&j%ei&v%ei'Y%ei'h%eiY%ei[%ei]%eia%eie%ei']%ei'_%ei'Z%ei(R%ei~P%CRO&`%iy&j%iy&v%iyY%iy[%iy]%iya%iye%iy~P%GmO&k(zO'R&wO'T8QO~O!evO!fvO&e#vO'SVO'cWO'dWO(V#wO&`%cy&j%cy&v%cy&|%cy&}%cy'Y%cy'h%cy'}%cyY%cy[%cy]%cya%cye%cy'_%cy']%cy'Z%cy(R%cy~O!g#qO!h#rO'R#oO'T#xO'`#lO'e#nO'f#kO'g#qO(O#sO(P#tO(Q#uO~P)DVOP'fO&i!pO'S$cO~O%U0RO'Y0PO!e(YX!f(YX!g(YX!h(YX&`(YX&e(YX&j(YX&v(YX&|(YX&}(YX'R(YX'T(YX'`(YX'c(YX'd(YX'e(YX'f(YX'g(YX'h(YX'}(YX(O(YX(P(YX(Q(YX(V(YXg(YX'_(YXP(YXV(YX_(YXv(YXy(YX{(YX!O(YX!P(YX!S(YX!V(YX!Y(YX!o(YX#Z(YX#[(YX#y(YX$h(YX$k(YX$o(YX$s(YX$u(YX$w(YX$y(YX${(YX$}(YX%P(YX%Q(YX%Y(YX&y(YX'U(YX'Z(YX'a(YX'p(YX'u(YX'w(YX'x(YXY(YX[(YX](YXa(YXe(YX(R(YX'](YX~O'S'gO~P)FuO%U0RO'S'gO~O'Y0PO!e(YX!f(YX!g(YX!h(YX&`(YX&e(YX&j(YX&v(YX&|(YX&}(YX'R(YX'S(YX'T(YX'`(YX'c(YX'd(YX'e(YX'f(YX'g(YX'h(YX'}(YX(O(YX(P(YX(Q(YX(V(YXg(YX'_(YXP(YXV(YX_(YXv(YXy(YX{(YX!O(YX!P(YX!S(YX!V(YX!Y(YX!o(YX#Z(YX#[(YX#y(YX$h(YX$k(YX$o(YX$s(YX$u(YX$w(YX$y(YX${(YX$}(YX%P(YX%Q(YX%Y(YX&y(YX'U(YX'Z(YX'a(YX'p(YX'u(YX'w(YX'x(YXY(YX[(YX](YXa(YXe(YX(R(YX'](YX~O'S(YX~P)FuO]0SO~O&v&zi'_&zi~P!DiO&|0UO&}0UO'Y0VO'Z0XO~P'FoO'Z0XO~O'Y0YO'Z0XO~O'Y0VO'Z0XO~O&c(^O&d(]O&h>fO&v!ci'_!ci~O'O!gO'P!hO'RCmO'T={O'_0ZO~P!:ZO]0]O~O]0^O~O'Y.XOP!vaV!va]!va_!vag!vav!vay!va{!va!O!va!P!va!S!va!V!va!Y!va!e!va!f!va!g!va!h!va!o!va#Z!va#[!va#y!va$h!va$k!va$o!va$s!va$u!va$w!va$y!va${!va$}!va%P!va%Q!va%Y!va&j!va&v!va&y!va&|!va&}!va'R!va'S!va'T!va'U!va'`!va'a!va'c!va'd!va'e!va'f!va'g!va'h!va'p!va'u!va'w!va'x!va~O]0bO~O&k(zO'R>QO'T8RO'p^O&a#Va&i#Va~O'Y0gO'Z0fO~P%*ZO&v+}O'O!gO'P!hO'_0kO~P%*ZO!u)ROg#Ui!e#Ui!f#Ui!g#Ui!h#Ui&a#Ui&c#Ui&d#Ui&e#Ui&h#Ui&i#Ui&|#Ui&}#Ui'O#Ui'R#Ui'S#Ui'T#Ui'Y#Ui'Z#Ui'`#Ui'c#Ui'd#Ui'e#Ui'f#Ui'g#Ui'h#Ui'}#Ui(O#Ui(P#Ui(Q#Ui(V#Ui&v#Ui'_#UiP#UiV#Ui]#Ui_#Uiv#Uiy#Ui{#Ui!O#Ui!P#Ui!S#Ui!V#Ui!Y#Ui!o#Ui#Z#Ui#[#Ui#y#Ui$h#Ui$k#Ui$o#Ui$s#Ui$u#Ui$w#Ui$y#Ui${#Ui$}#Ui%P#Ui%Q#Ui%Y#Ui&y#Ui'U#Ui'a#Ui'p#Ui'u#Ui'w#Ui'x#Ui(R#Ui']#Ui~O'O!gO'P!hO~P)9uO'O!gO'P!hO&v'sa&v'ya'_'sa'_'ya~P%*ZO'Y0sO&v'sa&v'ya'_'sa'_'ya~OPDbOVuO])ZO_!QOg!ZOv!ROy)[O{!SO!O!UO!P!TO!S!VO!V!WO!Y!XO!evO!fvO!gYO!hYO!o!YO#Z)ZO#[)ZO#y)ZO$h![O$k!]O$owO$s=XO$u=cO$w!^O$yzO${{O$}|O%P}O%Q}O%Y!OO&y)WO&|YO&}YO'O!gO'P!hO'RCnO'SVO'TCoO'U)YO'`YO'a8XO'cWO'd8VO'eYO'fYO'gYO'hYO'p^O'u_O'w`O'xaO~O'_0wO~P*/TO&v0xO'_0wO~O'Y0zO&v'sX'_'sX~Og#ji!e#ji!f#ji!g#ji!h#ji&a#ji&c#ji&d#ji&e#ji&h#ji&i#ji&|#ji&}#ji'O#ji'R#ji'S#ji'T#ji'Y#ji'Z#ji'`#ji'c#ji'd#ji'e#ji'f#ji'g#ji'h#ji'}#ji(O#ji(P#ji(Q#ji(S#Wi(V#ji&v#ji'_#jiP#jiV#ji]#ji_#jiv#jiy#ji{#ji!O#ji!P#ji!S#ji!V#ji!Y#ji!o#ji#Z#ji#[#ji#y#ji$h#ji$k#ji$o#ji$s#ji$u#ji$w#ji$y#ji${#ji$}#ji%P#ji%Q#ji%Y#ji&y#ji'U#ji'a#ji'p#ji'u#ji'w#ji'x#ji(R#ji']#ji~O&v+}O'_0|O~O&v+}O'_0}O~O!evO!fvO!g,mO!h,nO&e,rO&|1OO&}1OO'R,kO'SVO'T,xO'`,hO'cWO'dWO'e,jO'f,gO'g,mO'},iO(O,oO(P,pO(Q,qO(V,sO~O'h,lOg$Si'Y$Si'Z$Si&v$Si'_$Si~P*8[O'Z1QO~P)9uO'Y1RO'Z1QO~O'Z1TO~O!g9vO!h9}O'R9hO'T:dO'`9RO'e9aO'f8zO'g9vO'h9oO'}9YO(O:UO(P:]O(QDSOg%}X'Z%}X~P(M^O'Z1VO~P)#cO&v1WO'Z1VO~O&k1YO~O'Y/SOP#}aV#}a]#}a_#}ag#}av#}ay#}a{#}a!O#}a!P#}a!S#}a!V#}a!Y#}a!e#}a!f#}a!g#}a!h#}a!o#}a#Z#}a#[#}a#y#}a$h#}a$k#}a$o#}a$s#}a$u#}a$w#}a$y#}a${#}a$}#}a%P#}a%Q#}a%Y#}a&e#}a&y#}a&|#}a&}#}a'R#}a'S#}a'T#}a'U#}a'Z#}a'`#}a'a#}a'c#}a'd#}a'e#}a'f#}a'g#}a'h#}a'p#}a'u#}a'w#}a'x#}a'}#}a(O#}a(P#}a(Q#}a(V#}a&v#}a'_#}a(R#}a']#}a~O!u)ROg!zi!e!zi!f!zi!g!zi!h!zi&e!zi&|!zi&}!zi'R!zi'S!zi'T!zi'Y!zi'Z!zi'`!zi'c!zi'd!zi'e!zi'f!zi'g!zi'h!zi'}!zi(O!zi(P!zi(Q!zi(V!zi&v!zi'_!ziP!ziV!zi]!zi_!ziv!ziy!zi{!zi!O!zi!P!zi!S!zi!V!zi!Y!zi!o!zi#Z!zi#[!zi#y!zi$h!zi$k!zi$o!zi$s!zi$u!zi$w!zi$y!zi${!zi$}!zi%P!zi%Q!zi%Y!zi&y!zi'U!zi'a!zi'p!zi'u!zi'w!zi'x!zi(R!zi']!zi~O!evO!fvO!g9tO!h9{O&e,rO'R9fO'SVO'T:bO'`9PO'cWO'dWO'e9_O'f8xO'g9tO'h9mO'}9WO(O:SO(P:ZO(QDQO(V,sO~O&|1aO&}1aO'Y%la'Z%la~P*DkO'Z1bO~P)2XOV/bOg,wO'Y'za'Z'za~OP>iOVuO])ZO_!QOg!ZOv!ROy)[O{!SO!O!UO!P!TO!S!VO!V!WO!Y!XO!evO!fvO!gYO!hYO!o!YO#Z)ZO#[)ZO#y)ZO$h![O$k!]O$o=QO$s=VO$u=aO$w!^O$yzO${{O$}3XO%P}O%Q}O%Y!OO&y)WO&|YO&}YO'RCnO'SVO'TCoO'U)YO'`YO'a8ZO'cWO'd8UO'eYO'fYO'gYO'hYO'p^O'u_O'w`O'xaO~O&e,rO(V,sOg$Qi!e$Qi!f$Qi!g$Qi!h$Qi&|$Qi&}$Qi'R$Qi'S$Qi'T$Qi'Y$Qi'Z$Qi'`$Qi'c$Qi'd$Qi'e$Qi'g$Qi'h$Qi'}$Qi(O$Qi(P$Qi(Q$Qi&v$Qi'_$QiP$QiV$Qi]$Qi_$Qiv$Qiy$Qi{$Qi!O$Qi!P$Qi!S$Qi!V$Qi!Y$Qi!o$Qi#Z$Qi#[$Qi#y$Qi$h$Qi$k$Qi$o$Qi$s$Qi$u$Qi$w$Qi$y$Qi${$Qi$}$Qi%P$Qi%Q$Qi%Y$Qi&y$Qi'U$Qi'a$Qi'p$Qi'u$Qi'w$Qi'x$Qi(R$Qi']$Qi~O'f$Qi~P*JWO&e,rO'f,gO(V,sOg$Qi!e$Qi!f$Qi!g$Qi!h$Qi&|$Qi&}$Qi'R$Qi'S$Qi'T$Qi'Y$Qi'Z$Qi'c$Qi'd$Qi'e$Qi'g$Qi'h$Qi'}$Qi(O$Qi(P$Qi(Q$Qi&v$Qi'_$Qi~O'`$Qi~P*NfO!evO!fvO!g,mO!h,nO&e,rO'R,kO'SVO'T,xO'`,hO'cWO'dWO'e,jO'f,gO'g,mO'},iO(O,oO(P,pO(Q,qO(V,sOg$Qi&|$Qi&}$Qi'Y$Qi'Z$Qi&v$Qi'_$Qi~O'h$Qi~P+!aO'`,hO~P*NfO&e,rO(V,sOg$Qi!e$Qi!f$Qi!g$Qi!h$Qi&|$Qi&}$Qi'R$Qi'S$Qi'T$Qi'Y$Qi'Z$Qi'c$Qi'd$Qi'g$Qi'h$Qi'}$Qi(O$Qi(P$Qi(Q$Qi&v$Qi'_$Qi~O'`,hO'e,jO'f,gO~P+$cO'h,lO~P+!aO&e,rO'R,kO'SVO'T,xO'`,hO'cWO'dWO'e,jO'f,gO(V,sOg$Qi!e$Qi!f$Qi&|$Qi&}$Qi'Y$Qi'Z$Qi'g$Qi'h$Qi'}$Qi(O$Qi(P$Qi(Q$Qi&v$Qi'_$Qi~O!g,mO!h,nO~P+&eO!g$Qi!h$Qi~P+&eO!evO!fvO!g,mO!h,nO&e,rO'R,kO'SVO'T,xO'`,hO'cWO'dWO'e,jO'f,gO'g,mO(P,pO(V,sOg$Qi&|$Qi&}$Qi'Y$Qi'Z$Qi'h$Qi'}$Qi(Q$Qi&v$Qi'_$Qi~O(O,oO~P+(jO(O$Qi~P+(jO!evO!fvO!g9wO!h:OO&e,rO'R9iO'SVO'T:eO'`9SO'cWO'dWO'e9bO'f8{O'g9wO'h9pO'}9ZO(O:VO(P:^O(QDTO(V,sO~O(R1fO~P+*lO!evO!fvO!g9uO!h9|O&e,rO'R9gO'SVO'T:cO'`9QO'cWO'dWO'e9`O'f8yO'g9uO'h9nO'}9XO(O:TO(P:[O(QDRO(V,sO~O'Y$]i'Z$]i~P+,TO&v+}O'O!gO'P!hO'_1iO~P)2XO!e1kO&}(iO'{(jO~O'Y1lOV#mag#ma'Z#ma&v#ma'_#ma~O&e,rO'SVO'cWO'dWO(V,sOg$Qi!e$Qi!f$Qi!g$Qi!h$Qi&|$Qi&}$Qi'T$Qi'Y$Qi'Z$Qi'g$Qi'h$Qi'}$Qi(O$Qi(P$Qi(Q$Qi&v$Qi'_$Qi~O'R,kO'`,hO'e,jO'f,gO~P+.pO'Y%ma']%ma~P'IYO'O!gO'P!hO']1nO~P#.POP1pO'S-iO'p^O~P?SO'Y0PO!e(Ya!f(Ya!g(Ya!h(Ya&`(Ya&e(Ya&j(Ya&v(Ya&|(Ya&}(Ya'R(Ya'S(Ya'T(Ya'`(Ya'c(Ya'd(Ya'e(Ya'f(Ya'g(Ya'h(Ya'}(Ya(O(Ya(P(Ya(Q(Ya(V(Yag(Ya'_(YaP(YaV(Ya_(Yav(Yay(Ya{(Ya!O(Ya!P(Ya!S(Ya!V(Ya!Y(Ya!o(Ya#Z(Ya#[(Ya#y(Ya$h(Ya$k(Ya$o(Ya$s(Ya$u(Ya$w(Ya$y(Ya${(Ya$}(Ya%P(Ya%Q(Ya%Y(Ya&y(Ya'U(Ya'Z(Ya'a(Ya'p(Ya'u(Ya'w(Ya'x(YaY(Ya[(Ya](Yaa(Yae(Ya(R(Ya'](Ya~OP1tO'SVO'p^O~P?SO'Z1vO~P)2XO'Y1wO'Z1vO~O&j$my&v$my'Y$my~P'IYO&|1zO&}1zO'Y1xO'Z1{O~P'FoO'Z1{O~O'Y1|O'Z1{O~O'Y1xO'Z1{O~O!u)ROg#Uq!e#Uq!f#Uq!g#Uq!h#Uq&a#Uq&c#Uq&d#Uq&e#Uq&h#Uq&i#Uq&|#Uq&}#Uq'O#Uq'R#Uq'S#Uq'T#Uq'Y#Uq'Z#Uq'`#Uq'c#Uq'd#Uq'e#Uq'f#Uq'g#Uq'h#Uq'}#Uq(O#Uq(P#Uq(Q#Uq(V#Uq&v#Uq'_#UqP#UqV#Uq]#Uq_#Uqv#Uqy#Uq{#Uq!O#Uq!P#Uq!S#Uq!V#Uq!Y#Uq!o#Uq#Z#Uq#[#Uq#y#Uq$h#Uq$k#Uq$o#Uq$s#Uq$u#Uq$w#Uq$y#Uq${#Uq$}#Uq%P#Uq%Q#Uq%Y#Uq&y#Uq'U#Uq'a#Uq'p#Uq'u#Uq'w#Uq'x#Uq(R#Uq']#Uq~O'Y2OO']2QO~P+,TO'Y2OO']2QO~O&v#Xi'Y#Xi'_#Xi~P+,TO&v'si&v'yi'_'si'_'yi~O'O!gO'P!hO&v'si&v'yi'_'si'_'yi~P%*ZO!evO!fvO!gAzO!hBOO&e,rO'RArO'SVO'TB[O'`AfO'cWO'dWO'eAnO'fAbO'gAzO'hAvO'}AjO(OBSO(PBWO(QDpO(V,sO~O&|>tO&}>tO&v'tX'_'tX~P+=uO'_2TO~P*/TO'O!gO'P!hO&v'sa'_'sa~P%*ZO'Y2WO&v'sa'_'sa~O'Y%za'Z%za~P+,TO'Z2ZO~P)9uO'Z2]O~P)#cO!evO!fvO!g9qO!h9xO&e,rO'R9cO'SVO'T:_O'`8|O'cWO'dWO'e9[O'f8uO'g9qO'}9TO(O:PO(P:WO(QC}O(V,sO~OP&RaV&Ra]&Ra_&Rag&Rav&Ray&Ra{&Ra!O&Ra!P&Ra!S&Ra!V&Ra!Y&Ra!o&Ra#Z&Ra#[&Ra#y&Ra$h&Ra$k&Ra$o&Ra$s&Ra$u&Ra$w&Ra$y&Ra${&Ra$}&Ra%P&Ra%Q&Ra%Y&Ra&y&Ra&|&Ra&}&Ra'U&Ra'Y&Ra'Z&Ra'a&Ra'h&Ra'p&Ra'u&Ra'w&Ra'x&Ra&v&Ra'_&Ra(R&Ra']&Ra~P+@sO&|/UO&}/UO'Y/SOP#|iV#|i]#|i_#|ig#|iv#|iy#|i{#|i!O#|i!P#|i!S#|i!V#|i!Y#|i!o#|i#Z#|i#[#|i#y#|i$h#|i$k#|i$o#|i$s#|i$u#|i$w#|i$y#|i${#|i$}#|i%P#|i%Q#|i%Y#|i&y#|i'U#|i'Z#|i'a#|i'h#|i'p#|i'u#|i'w#|i'x#|i&v#|i'_#|i(R#|i']#|i~P+@sO&|/UO&}/UOP#|iV#|i]#|i_#|ig#|iv#|iy#|i{#|i!O#|i!P#|i!S#|i!V#|i!Y#|i!e#|i!f#|i!g#|i!h#|i!o#|i#Z#|i#[#|i#y#|i$h#|i$k#|i$o#|i$s#|i$u#|i$w#|i$y#|i${#|i$}#|i%P#|i%Q#|i%Y#|i&e#|i&y#|i'R#|i'S#|i'T#|i'U#|i'Y#|i'Z#|i'`#|i'a#|i'c#|i'd#|i'e#|i'f#|i'g#|i'h#|i'p#|i'u#|i'w#|i'x#|i'}#|i(O#|i(P#|i(Q#|i(V#|i&v#|i'_#|i(R#|i']#|i~O!evO!fvO!g9sO!h9zO&e,rO'R9eO'SVO'T:aO'`9OO'cWO'dWO'e9^O'f8wO'g9sO'h9lO'}9VO(O:RO(P:YO(QDPO(V,sO~OV#rag#ra'Y#ra'Z#ra~P+L^O'Y2aO~O'Y1lOV#mig#mi'Z#mi&v#mi'_#mi~O%U0RO!e&[a!f&[a!g&[a!h&[a&`&[a&e&[a&j&[a&v&[a&|&[a&}&[a'R&[a'T&[a'Y&[a'`&[a'c&[a'd&[a'e&[a'f&[a'g&[a'h&[a'}&[a(O&[a(P&[a(Q&[a(V&[ag&[a'_&[aP&[aV&[a_&[av&[ay&[a{&[a!O&[a!P&[a!S&[a!V&[a!Y&[a!o&[a#Z&[a#[&[a#y&[a$h&[a$k&[a$o&[a$s&[a$u&[a$w&[a$y&[a${&[a$}&[a%P&[a%Q&[a%Y&[a&y&[a'U&[a'Z&[a'a&[a'p&[a'u&[a'w&[a'x&[aY&[a[&[a]&[aa&[ae&[a(R&[a']&[a~O'S'gO~P+NiO'S&[a~P+NiO'Y!^i'Z!^i~P+,TO'Z2fO~P)2XO'Z2gO~P)2XO'Y2hO'Z2gO~O'O!gO'P!hO']2lO~P)9uO'Y2mO']2lO~O&v'sq&v'yq'_'sq'_'yq~O'O!gO'P!hO~P)2XO'O!gO'P!hO&v'si'_'si~P%*ZOg$Ti'Y$Ti'Z$Ti'h$Ti&v$Ti'_$Ti~P*8[O'Y!_i'Z!_i~P+,TO!evO!fvO&e,rO'SVO'cWO'dWO(V,sOg$Ry&|$Ry&}$Ry'Y$Ry'Z$Ry'h$Ry'}$Ry&v$Ry'_$Ry~O!g,mO!h,nO'R,kO'T,xO'`,hO'e,jO'f,gO'g,mO(O,oO(P,pO(Q,qO~P,(WO'O!gO'P!hO&v'ya'_'ya~P%*ZO'Y2qO&v'ya'_'ya~OV#nig#ni'Y#ni'Z#ni&v#ni'_#ni~P+L^O'Z2rO~P)2XO'Y#Ri'Z#Ri~P+,TO'Y&Pa']&Pa~P+,TO'O!gO'P!hO']2sO~P)9uO'O!gO'P!hO&v'yi'_'yi~P%*ZOP%aXV%aX_%aXg%aXg'bXv%aXy%aX{%aX!O%aX!P%aX!S%aX!V%aX!Y%aX!e%aX!e'bX!f%aX!f'bX!g%aX!g'bX!h%aX!h'bX!o%aX#Z%aX#[%aX#y%aX$h%aX$k%aX$o%aX$s%aX$u%aX$w%aX$y%aX${%aX$}%aX%P%aX%Q%aX%Y%aX&a'bX&c'bX&d'bX&e'bX&h'bX&i'bX&v'bX&y%aX&|%aX&|'bX&}%aX&}'bX'O'bX'P'bX'R%aX'R'bX'S%aX'S'bX'T%aX'T'bX'U%aX'Y'bX'_'bX'`%aX'`'bX'a%aX'c%aX'c'bX'd%aX'd'bX'e%aX'e'bX'f%aX'f'bX'g%aX'g'bX'h%aX'h'bX'p%aX'u%aX'w%aX'x%aX'}'bX(O'bX(P'bX(Q'bX(V'bX'Z'bX~OP'bXV'bX_'bXg'bXv'bXy'bX{'bX!O'bX!P'bX!S'bX!V'bX!Y'bX!o'bX#Z'bX#['bX#y'bX$h'bX$k'bX$o'bX$s'bX$u'bX$w'bX$y'bX${'bX$}'bX%P'bX%Q'bX%Y'bX&y'bX'U'bX'a'bX'p'bX'u'bX'w'bX'x'bX~P0TOV'bX~P,,`OP%aXV%aX_%aXg%aXv%aXy%aX{%aX!O%aX!P%aX!S%aX!V%aX!Y%aX!e%aX!e'bX!f%aX!f'bX!g%aX!g'bX!h%aX!h'bX!o%aX#Z%aX#[%aX#y%aX$h%aX$k%aX$o%aX$s%aX$u%aX$w%aX$y%aX${%aX$}%aX%P%aX%Q%aX%Y%aX&a'bX&c'bX&d'bX&e'bX&h'bX&i'bX&v'bX&y%aX&|%aX&}%aX'O'bX'P'bX'R%aX'R'bX'S%aX'S'bX'T%aX'T'bX'U%aX'_'bX'`%aX'`'bX'a%aX'c%aX'c'bX'd%aX'd'bX'e%aX'e'bX'f%aX'f'bX'g%aX'g'bX'h%aX'h'bX'p%aX'u%aX'w%aX'x%aX'}'bX(O'bX(P'bX(Q'bX(V'bX'Z'bX'Y'bX~OV'bXg'bX~P,4eO&`'bX&j'bX(R'bX']'bXY'bX['bX]'bXa'bXe'bX~P,4eOP%aX_%aXg!dXv%aXy%aX{%aX!O%aX!P%aX!S%aX!V%aX!Y%aX!e!dX!f!dX!g!dX!h!dX!o%aX#Z%aX#[%aX#y%aX$h%aX$k%aX$o%aX$s%aX$u%aX$w%aX$y%aX${%aX$}%aX%P%aX%Q%aX%Y%aX&a!dX&c!dX&d!dX&e!dX&h!dX&i!dX&v!dX&y%aX&|!dX&}!dX'O!dX'P!dX'R!dX'S!dX'T!dX'U%aX'Y!dX'_!dX'`!dX'a%aX'c!dX'd!dX'e!dX'f!dX'g!dX'h!dX'p%aX'u%aX'w%aX'x%aX'}!dX(O!dX(P!dX(Q!dX(V!dX'Z!dX~OV%aX~P,:rOV!dX~P,:rOP%aX_%aXv%aXy%aX{%aX!O%aX!P%aX!S%aX!V%aX!Y%aX!e!dX!f!dX!g!dX!h!dX!o%aX#Z%aX#[%aX#y%aX$h%aX$k%aX$o%aX$s%aX$u%aX$w%aX$y%aX${%aX$}%aX%P%aX%Q%aX%Y%aX&a!dX&c!dX&d!dX&e!dX&h!dX&i!dX&v!dX&y%aX&|%aX&}%aX'O!dX'P!dX'R!dX'S!dX'T!dX'U%aX'_!dX'`!dX'a%aX'c!dX'd!dX'e!dX'f!dX'g!dX'h!dX'p%aX'u%aX'w%aX'x%aX'}!dX(O!dX(P!dX(Q!dX(V!dX'Z!dX'Y!dX~OV!dXg!dX~P,?eO&|%aX&}%aX~P6YOP`O&e#vO'`3|O'e4[O'f3uO(V#wO!e%bi!f%bi!g%bi!h%bi&`%bi&j%bi&v%bi'T%bi'Y%bi'g%bi'h%bi'}%bi(O%bi(P%bi(Q%bi']%bi'_%bi'Z%bi(R%biY%bi[%bi]%bia%bie%bi~O'R%bi'S%bi'c%bi'd%bi~P0BhO&e#vO(V#wO!e%bi!f%bi!g%bi!h%bi'R%bi'S%bi'T%bi'c%bi'd%bi'g%bi'h%bi'}%bi(O%bi(P%bi(Q%bi(R%bi~O'`3}O'e4]O'f3vO~P0DuOg%bi&v%bi&|%bi&}%bi'Y%bi'_%bi'Z%bi~P!BTO'h4fO~P0$sOV%big%bi&v%bi&|%bi&}%bi'Y%bi'_%bi'Z%bi~P.?[OV%big%bi&v%bi'Y%bi'_%bi'Z%bi~P.AYO'h4iO~P0*oO'h4jO~P0.wO(R%bi~P&5}O&e#vO'R4^O'SVO'T5YO'`3wO'cWO'dWO'e4VO'f3pO(V#wOg%bi!e%bi!f%bi&v%bi&|%bi&}%bi'Y%bi'_%bi'g%bi'h%bi'}%bi(O%bi(P%bi(Q%bi'Z%bi~O!g4lO!h4sO~P0HiO&e#vO'R4_O'SVO'T5ZO'`3xO'cWO'dWO'e4WO'f3qO(V#wOP%biV%bi_%big%biv%biy%bi{%bi!O%bi!P%bi!S%bi!V%bi!Y%bi!e%bi!f%bi!o%bi#Z%bi#[%bi#y%bi$h%bi$k%bi$o%bi$s%bi$u%bi$w%bi$y%bi${%bi$}%bi%P%bi%Q%bi%Y%bi&v%bi&y%bi&|%bi&}%bi'U%bi'Y%bi'Z%bi'a%bi'g%bi'h%bi'p%bi'u%bi'w%bi'x%bi'}%bi(O%bi(P%bi(Q%bi&`%bi&j%bi'_%biY%bi[%bi]%bia%bie%bi(R%bi']%bi~O!g4mO!h4tO~P0JdO&e#vO'R4`O'SVO'T5[O'`3yO'cWO'dWO'e4XO'f3rO(V#wOV%big%bi!e%bi!f%bi&v%bi&|%bi&}%bi'Y%bi'_%bi'g%bi'h%bi'}%bi(O%bi(P%bi(Q%bi'Z%bi~O!g4nO!h4uO~P1 UO&e#vO'R4aO'SVO'T5]O'`3zO'cWO'dWO'e4YO'f3sO(V#wOV%big%bi!e%bi!f%bi&v%bi'Y%bi'_%bi'g%bi'h%bi'}%bi(O%bi(P%bi(Q%bi'Z%bi~O!g4oO!h4vO~P1#SO&e#vO'R4bO'SVO'T5^O'`3{O'cWO'dWO'e4ZO'f3tO(V#wOP%biV%biY%bi[%bi]%bi_%big%biv%biy%bi{%bi!O%bi!P%bi!S%bi!V%bi!Y%bi!e%bi!f%bi!o%bi#Z%bi#[%bi#y%bi$h%bi$k%bi$o%bi$s%bi$u%bi$w%bi$y%bi${%bi$}%bi%P%bi%Q%bi%Y%bi&j%bi&v%bi&y%bi&|%bi&}%bi'U%bi'a%bi'g%bi'h%bi'p%bi'u%bi'w%bi'x%bi'}%bi(O%bi(P%bi(Q%bi~O!g4pO!h4wO~P1$zO&e#vO'R4cO'SVO'T5_O'`3|O'cWO'dWO'e4[O'f3uO(V#wO!e%bi!f%bi&`%bi&j%bi&v%bi'Y%bi'g%bi'h%bi'}%bi(O%bi(P%bi(Q%bi']%bi'_%bi'Z%bi(R%biY%bi[%bi]%bia%bie%bi~O!g4qO!h4xO~P1)SO&e#vO'R4dO'SVO'T5`O'`3}O'cWO'dWO'e4]O'f3vO(V#wO!e%bi!f%bi'g%bi'h%bi'}%bi(O%bi(P%bi(Q%bi(R%bi~O!g4rO!h4yO~P1+aO!g%bi!h%bi~P0HiO!g%bi!h%bi~P0JdO!g%bi!h%bi~P1 UO!g%bi!h%bi~P1#SO!g%bi!h%bi~P1$zO!g%bi!h%bi~P1)SO!g%bi!h%bi~P1+aO!evO!fvO!g4lO!h4sO&e#vO'R4^O'SVO'T5YO'`3wO'cWO'dWO'e4VO'f3pO'g4lO(P5RO(V#wOg%bi&v%bi&|%bi&}%bi'Y%bi'_%bi'h%bi'}%bi(Q%bi'Z%bi~O(O4zO~P1.bO!evO!fvO!g4mO!h4tO&e#vO'R4_O'SVO'T5ZO'`3xO'cWO'dWO'e4WO'f3qO'g4mO(P5SO(V#wOP%biV%bi_%big%biv%biy%bi{%bi!O%bi!P%bi!S%bi!V%bi!Y%bi!o%bi#Z%bi#[%bi#y%bi$h%bi$k%bi$o%bi$s%bi$u%bi$w%bi$y%bi${%bi$}%bi%P%bi%Q%bi%Y%bi&v%bi&y%bi&|%bi&}%bi'U%bi'Y%bi'Z%bi'a%bi'h%bi'p%bi'u%bi'w%bi'x%bi'}%bi(Q%bi&`%bi&j%bi'_%biY%bi[%bi]%bia%bie%bi(R%bi']%bi~O(O4{O~P10]O!evO!fvO!g4nO!h4uO&e#vO'R4`O'SVO'T5[O'`3yO'cWO'dWO'e4XO'f3rO'g4nO(P5TO(V#wOV%big%bi&v%bi&|%bi&}%bi'Y%bi'_%bi'h%bi'}%bi(Q%bi'Z%bi~O(O4|O~P14}O!evO!fvO!g4oO!h4vO&e#vO'R4aO'SVO'T5]O'`3zO'cWO'dWO'e4YO'f3sO'g4oO(P5UO(V#wOV%big%bi&v%bi'Y%bi'_%bi'h%bi'}%bi(Q%bi'Z%bi~O(O4}O~P16{O!evO!fvO!g4pO!h4wO&e#vO'R4bO'SVO'T5^O'`3{O'cWO'dWO'e4ZO'f3tO'g4pO(P5VO(V#wOP%biV%biY%bi[%bi]%bi_%big%biv%biy%bi{%bi!O%bi!P%bi!S%bi!V%bi!Y%bi!o%bi#Z%bi#[%bi#y%bi$h%bi$k%bi$o%bi$s%bi$u%bi$w%bi$y%bi${%bi$}%bi%P%bi%Q%bi%Y%bi&j%bi&v%bi&y%bi&|%bi&}%bi'U%bi'a%bi'h%bi'p%bi'u%bi'w%bi'x%bi'}%bi(Q%bi~O(O5OO~P18sO!evO!fvO!g4qO!h4xO&e#vO'R4cO'SVO'T5_O'`3|O'cWO'dWO'e4[O'f3uO'g4qO(P5WO(V#wO&`%bi&j%bi&v%bi'Y%bi'h%bi'}%bi(Q%bi']%bi'_%bi'Z%bi(R%biY%bi[%bi]%bia%bie%bi~O(O5PO~P1<{O!evO!fvO!g4rO!h4yO&e#vO'R4dO'SVO'T5`O'`3}O'cWO'dWO'e4]O'f3vO'g4rO(P5XO(V#wO'h%bi'}%bi(Q%bi(R%bi~O(O5QO~P1?YO(O%bi~P1.bO(O%bi~P10]O(O%bi~P14}O(O%bi~P16{O(O%bi~P18sO(O%bi~P1<{O(O%bi~P1?YO&e#vO'SVO'cWO'dWO(V#wOg%bi!e%bi!f%bi!g%bi!h%bi&v%bi&|%bi&}%bi'T%bi'Y%bi'_%bi'g%bi'h%bi'}%bi(O%bi(P%bi(Q%bi'Z%bi~O'R4^O'`3wO'e4VO'f3pO~P1AtO'R4_O'`3xO'e4WO'f3qOP%biV%bi_%big%biv%biy%bi{%bi!O%bi!P%bi!S%bi!V%bi!Y%bi!o%bi#Z%bi#[%bi#y%bi$h%bi$k%bi$o%bi$s%bi$u%bi$w%bi$y%bi${%bi$}%bi%P%bi%Q%bi%Y%bi&y%bi'U%bi'a%bi'p%bi'u%bi'w%bi'x%bi~P&7fO'R4`O'`3yO'e4XO'f3rOV%bi~P1AtO'R4aO'SVO'cWO'dWO~P0`O'R4cO'SVO'cWO'dWO~P0BhO&e#vO'SVO'cWO'dWO(V#wO!e%bi!f%bi!g%bi!h%bi'T%bi'g%bi'h%bi'}%bi(O%bi(P%bi(Q%bi(R%bi~O'R4dO'`3}O'e4]O'f3vO~P1GsO&a(ZO&i(ZO~O&a7{O&i7{O~O&a7}O&i7}O~OP'bXV'bX]'bX_'bXv'bXy'bX{'bX!O'bX!P'bX!S'bX!V'bX!Y'bX!o'bX#Z'bX#['bX#y'bX$h'bX$k'bX$o'bX$s'bX$u'bX$w'bX$y'bX${'bX$}'bX%P'bX%Q'bX%Y'bX&y'bX'U'bX'a'bX'p'bX'u'bX'w'bX'x'bX(R'bX']'bX~P'*nOV'bX~P'*nOP$PXV$PX]$PX_$PXg$PXv$PXy$PX{$PX!O$PX!P$PX!S$PX!V$PX!Y$PX!e$PX!e'bX!f$PX!f'bX!g$PX!g'bX!h$PX!h'bX!o$PX#Z$PX#[$PX#y$PX$h$PX$k$PX$o$PX$s$PX$u$PX$w$PX$y$PX${$PX$}$PX%P$PX%Q$PX%Y$PX&a'bX&c'bX&d'bX&e'bX&h'bX&i'bX&y$PX&|$PX&}$PX'O'bX'R$PX'R'bX'S$PX'S'bX'T$PX'T'bX'U$PX'Y'bX'Z'bX'`$PX'`'bX'a$PX'c$PX'c'bX'd$PX'd'bX'e$PX'e'bX'f$PX'f'bX'g$PX'g'bX'h$PX'h'bX'p$PX'u$PX'w$PX'x$PX'}'bX(O'bX(P'bX(Q'bX(V'bX&v'bX'_'bX~OV'bXg'bX~P1LdO&|'bX&}'bX(R'bX']'bX~P1LdOg$PX(R!dX']!dX~P'0ZOP$PXV!dX]$PX_$PXg!dXv$PXy$PX{$PX!O$PX!P$PX!S$PX!V$PX!Y$PX!e!dX!f!dX!g!dX!h!dX!o$PX#Z$PX#[$PX#y$PX$h$PX$k$PX$o$PX$s$PX$u$PX$w$PX$y$PX${$PX$}$PX%P$PX%Q$PX%Y$PX&a!dX&c!dX&d!dX&e!dX&h!dX&i!dX&y$PX'O!dX'R!dX'S!dX'T!dX'U$PX'Y!dX'Z!dX'`!dX'a$PX'c!dX'd!dX'e!dX'f!dX'g!dX'h!dX'p$PX'u$PX'w$PX'x$PX'}!dX(O!dX(P!dX(Q!dX(V!dX&v!dX'_!dX~O&|!dX&}!dX~P2$oO&|$PX&}$PX~P2$oO!e!dX!f!dX!g!dX!h!dX&c!dX&d!dX&e!dX&h!dX'O!dX'R!dX'S!dX'T!dX'`!dX'c!dX'd!dX'e!dX'f!dX'g!dX'h!dX'}!dX(O!dX(P!dX(Q!dX(R!dX(V!dX'Y!dX'Z!dX']!dX&v!dX'_!dX~OP$PXV$PX]$PX_$PXg$PXv$PXy$PX{$PX!O$PX!P$PX!S$PX!V$PX!Y$PX!o$PX#Z$PX#[$PX#y$PX$h$PX$k$PX$o$PX$s$PX$u$PX$w$PX$y$PX${$PX$}$PX%P$PX%Q$PX%Y$PX&a!dX&i!dX&y$PX&|$PX&}$PX'U$PX'a$PX'p$PX'u$PX'w$PX'x$PX~P2)eOP>iOVuO])ZO_!QOg!ZOv!ROy)[O{!SO!O!UO!P!TO!S!VO!V!WO!Y!XO!evO!fvO!gYO!hYO!o!YO#Z)ZO#[)ZO#y)ZO$h![O$k!]O$o=QO$s=TO$u=_O$w!^O$yzO${{O$}3WO%P}O%Q}O%Y!OO&y)WO&|YO&}YO'RCnO'SVO'TCoO'U)YO'`YO'a8YO'cWO'd8TO'eYO'fYO'gYO'hYO'p^O'u_O'w`O'xaO~OVhighi&vhi'Yhi'_hi'Zhi~P.AYO&|8dO&}8dOg%ei&v%ei'Y%ei'_%ei'h%ei'Z%ei~P/6nO!evO!fvO&e#vO'SVO'cWO'dWO(V#wOP%eiV%ei_%eig%eiv%eiy%ei{%ei!O%ei!P%ei!S%ei!V%ei!Y%ei!o%ei#Z%ei#[%ei#y%ei$h%ei$k%ei$o%ei$s%ei$u%ei$w%ei$y%ei${%ei$}%ei%P%ei%Q%ei%Y%ei&v%ei&y%ei'U%ei'a%ei'h%ei'p%ei'u%ei'w%ei'x%ei&j%eiY%ei[%ei]%ei~O!g4mO!h4tO&|8eO&}8eO'R4_O'T5ZO'`3xO'e4WO'f3qO'g4mO'}4PO(O4{O(P5SO(QCtO'Y%ei'Z%ei&`%ei'_%eia%eie%ei(R%ei']%ei~P22oO&|8fO&}8fOV%eig%ei&v%ei'Y%ei'_%ei'h%ei'Z%ei~P/0PO!g4pO!h4wO&|8gO&}8gO'R4bO'T5^O'`3{O'e4ZO'f3tO'g4pO'}4SO(O5OO(P5VO(QCwO~P22oO!evO!fvO&e#vO'SVO'cWO'dWO(V#wOg%cy&v%cy&|%cy&}%cy'Y%cy'_%cy'h%cy'}%cy'Z%cy~O!g4lO!h4sO'R4^O'T5YO'`3wO'e4VO'f3pO'g4lO(O4zO(P5RO(QCsO~P29QO!g4mO!h4tO'R4_O'T5ZO'`3xO'e4WO'f3qO'g4mO(O4{O(P5SO(QCtOP%cyV%cy_%cyg%cyv%cyy%cy{%cy!O%cy!P%cy!S%cy!V%cy!Y%cy!o%cy#Z%cy#[%cy#y%cy$h%cy$k%cy$o%cy$s%cy$u%cy$w%cy$y%cy${%cy$}%cy%P%cy%Q%cy%Y%cy&y%cy'U%cy'a%cy'p%cy'u%cy'w%cy'x%cy~P)DVO!g4nO!h4uO'R4`O'T5[O'`3yO'e4XO'f3rO'g4nO(O4|O(P5TO(QCuOV%cy~P29QO!evO!fvO&e#vO'SVO'cWO'dWO(V#wOV%cyg%cy&v%cy'_%cy'h%cy'}%cy'Z%cy~O!g4oO!h4vO'R4aO'T5]O'`3zO'e4YO'f3sO'g4oO(O4}O(P5UO(QCvO'Y%cy~P2>yO!evO!fvO&e#vO'SVO'cWO'dWO(V#wOP%cyV%cy_%cyg%cyv%cyy%cy{%cy!O%cy!P%cy!S%cy!V%cy!Y%cy!o%cy#Z%cy#[%cy#y%cy$h%cy$k%cy$o%cy$s%cy$u%cy$w%cy$y%cy${%cy$}%cy%P%cy%Q%cy%Y%cy&v%cy&y%cy&|%cy&}%cy'U%cy'a%cy'h%cy'p%cy'u%cy'w%cy'x%cy'}%cy~O!g4pO!h4wO'R4bO'T5^O'`3{O'e4ZO'f3tO'g4pO(O5OO(P5VO(QCwOY%cy[%cy]%cy&j%cy~P2@qO!evO!fvO&e#vO'SVO'cWO'dWO(V#wO&v%cy'h%cy'}%cy'_%cy(R%cy~O!g4qO!h4xO'R4cO'T5_O'`3|O'e4[O'f3uO'g4qO(O5PO(P5WO(QCxO&`%cy&j%cy'Y%cy']%cy'Z%cyY%cy[%cy]%cya%cye%cy~P2DyO!evO!fvO!g4rO!h4yO&e#vO'R4dO'SVO'T5`O'`3}O'cWO'dWO'e4]O'f3vO'g4rO(O5QO(P5XO(QCyO(V#wO~O'h%cy'}%cy(R%cy~P2GWO&|<_O&}<_O'h9jOP$SiV$Si]$Si_$Sig$Siv$Siy$Si{$Si!O$Si!P$Si!S$Si!V$Si!Y$Si!o$Si#Z$Si#[$Si#y$Si$h$Si$k$Si$o$Si$s$Si$u$Si$w$Si$y$Si${$Si$}$Si%P$Si%Q$Si%Y$Si&v$Si&y$Si'U$Si'Y$Si'Z$Si'a$Si'p$Si'u$Si'w$Si'x$Si'_$Si(R$Si']$Si~P+@sO!evO!fvO!g9rO!h9yO&e,rO&|<`O&}<`O'R9dO'SVO'T:`O'`8}O'cWO'dWO'e9]O'f8vO'g9rO'}9UO(O:QO(P:XO(QDOO(V,sO~O'h9kOV$Sig$Si'Y$Si'Z$Si&v$Si'_$Si~P2KpO&|[O'`8|O'f8uOP$QiV$Qi]$Qi_$Qiv$Qiy$Qi{$Qi!O$Qi!P$Qi!S$Qi!V$Qi!Y$Qi!o$Qi#Z$Qi#[$Qi#y$Qi$h$Qi$k$Qi$o$Qi$s$Qi$u$Qi$w$Qi$y$Qi${$Qi$}$Qi%P$Qi%Q$Qi%Y$Qi&y$Qi'U$Qi'a$Qi'e$Qi'p$Qi'u$Qi'w$Qi'x$Qi(R$Qi']$Qi~P+$cO'`8}O'f8vOV$Qi'e$Qi~P+$cO'`9OO~P3$rO'`9PO~P3&jO'`9QO~P3(eO'`9RO~P3*YO'`9SO~P3.[O'`8|O'e9[O'f8uOP$QiV$Qi]$Qi_$Qiv$Qiy$Qi{$Qi!O$Qi!P$Qi!S$Qi!V$Qi!Y$Qi!o$Qi#Z$Qi#[$Qi#y$Qi$h$Qi$k$Qi$o$Qi$s$Qi$u$Qi$w$Qi$y$Qi${$Qi$}$Qi%P$Qi%Q$Qi%Y$Qi&y$Qi'U$Qi'a$Qi'p$Qi'u$Qi'w$Qi'x$Qi(R$Qi']$Qi~P+$cO'`8}O'e9]O'f8vOV$Qi~P+$cO&e,rO'`9OO'e9^O'f8wO(V,sOV$Qig$Qi!e$Qi!f$Qi!g$Qi!h$Qi'T$Qi'Y$Qi'Z$Qi'g$Qi'h$Qi'}$Qi(O$Qi(P$Qi(Q$Qi&v$Qi'_$Qi~O'R$Qi'S$Qi'c$Qi'd$Qi~P3FlO&e,rO'`9PO'e9_O'f8xO(V,sO!e$Qi!f$Qi!g$Qi!h$Qi&|$Qi&}$Qi'T$Qi'Y$Qi'Z$Qi'g$Qi'h$Qi'}$Qi(O$Qi(P$Qi(Q$Qi']$Qi&v$Qi'_$Qi~O'R$Qi'S$Qi'c$Qi'd$Qi~P3HdO&e,rO'`9QO'e9`O'f8yO(V,sO!e$Qi!f$Qi!g$Qi!h$Qi'T$Qi'Y$Qi'Z$Qi'g$Qi'h$Qi'}$Qi(O$Qi(P$Qi(Q$Qi']$Qi&v$Qi'_$Qi~O'R$Qi'S$Qi'c$Qi'd$Qi~P3J_O&e,rO'`9RO'e9aO'f8zO(V,sOP$QiV$Qi]$Qi_$Qig$Qiv$Qiy$Qi{$Qi!O$Qi!P$Qi!S$Qi!V$Qi!Y$Qi!e$Qi!f$Qi!g$Qi!h$Qi!o$Qi#Z$Qi#[$Qi#y$Qi$h$Qi$k$Qi$o$Qi$s$Qi$u$Qi$w$Qi$y$Qi${$Qi$}$Qi%P$Qi%Q$Qi%Y$Qi&v$Qi&y$Qi&|$Qi&}$Qi'T$Qi'U$Qi'Z$Qi'a$Qi'g$Qi'h$Qi'p$Qi'u$Qi'w$Qi'x$Qi'}$Qi(O$Qi(P$Qi(Q$Qi~O'R$Qi'S$Qi'c$Qi'd$Qi~P3LSO&e,rO(V,sO!e$Qi!f$Qi!g$Qi!h$Qi'R$Qi'S$Qi'T$Qi'c$Qi'd$Qi'g$Qi'h$Qi'}$Qi(O$Qi(P$Qi(Q$Qi(R$Qi~O'`9SO'e9bO'f8{O~P4!UO'h9jOP$QiV$Qi]$Qi_$Qig$Qiv$Qiy$Qi{$Qi!O$Qi!P$Qi!S$Qi!V$Qi!Y$Qi!o$Qi#Z$Qi#[$Qi#y$Qi$h$Qi$k$Qi$o$Qi$s$Qi$u$Qi$w$Qi$y$Qi${$Qi$}$Qi%P$Qi%Q$Qi%Y$Qi&v$Qi&y$Qi&|$Qi&}$Qi'U$Qi'Y$Qi'Z$Qi'a$Qi'p$Qi'u$Qi'w$Qi'x$Qi'_$Qi(R$Qi']$Qi~P+@sO'h9kO~P32tO'h9lO~P34rO'h9mO~P36jO'h9nO~P38eO'h9oO~P3:YO(R$Qi~P+*lO&e,rO'R9cO'SVO'T:_O'`8|O'cWO'dWO'e9[O'f8uO(V,sOP$QiV$Qi]$Qi_$Qig$Qiv$Qiy$Qi{$Qi!O$Qi!P$Qi!S$Qi!V$Qi!Y$Qi!e$Qi!f$Qi!o$Qi#Z$Qi#[$Qi#y$Qi$h$Qi$k$Qi$o$Qi$s$Qi$u$Qi$w$Qi$y$Qi${$Qi$}$Qi%P$Qi%Q$Qi%Y$Qi&v$Qi&y$Qi&|$Qi&}$Qi'U$Qi'Y$Qi'Z$Qi'a$Qi'g$Qi'h$Qi'p$Qi'u$Qi'w$Qi'x$Qi'}$Qi(O$Qi(P$Qi(Q$Qi'_$Qi(R$Qi']$Qi~O!g9qO!h9xO~P4'jO&e,rO'R9dO'SVO'T:`O'`8}O'cWO'dWO'e9]O'f8vO(V,sOV$Qig$Qi!e$Qi!f$Qi&|$Qi&}$Qi'Y$Qi'Z$Qi'g$Qi'h$Qi'}$Qi(O$Qi(P$Qi(Q$Qi&v$Qi'_$Qi~O!g9rO!h9yO~P4+xO&e,rO'R9eO'SVO'T:aO'`9OO'cWO'dWO'e9^O'f8wO(V,sOV$Qig$Qi!e$Qi!f$Qi'Y$Qi'Z$Qi'g$Qi'h$Qi'}$Qi(O$Qi(P$Qi(Q$Qi&v$Qi'_$Qi~O!g9sO!h9zO~P4-vO&e,rO'R9fO'SVO'T:bO'`9PO'cWO'dWO'e9_O'f8xO(V,sO!e$Qi!f$Qi&|$Qi&}$Qi'Y$Qi'Z$Qi'g$Qi'h$Qi'}$Qi(O$Qi(P$Qi(Q$Qi']$Qi&v$Qi'_$Qi~O!g9tO!h9{O~P4/nO&e,rO'R9gO'SVO'T:cO'`9QO'cWO'dWO'e9`O'f8yO(V,sO!e$Qi!f$Qi'Y$Qi'Z$Qi'g$Qi'h$Qi'}$Qi(O$Qi(P$Qi(Q$Qi']$Qi&v$Qi'_$Qi~O!g9uO!h9|O~P41iO&e,rO'R9hO'SVO'T:dO'`9RO'cWO'dWO'e9aO'f8zO(V,sOP$QiV$Qi]$Qi_$Qig$Qiv$Qiy$Qi{$Qi!O$Qi!P$Qi!S$Qi!V$Qi!Y$Qi!e$Qi!f$Qi!o$Qi#Z$Qi#[$Qi#y$Qi$h$Qi$k$Qi$o$Qi$s$Qi$u$Qi$w$Qi$y$Qi${$Qi$}$Qi%P$Qi%Q$Qi%Y$Qi&v$Qi&y$Qi&|$Qi&}$Qi'U$Qi'Z$Qi'a$Qi'g$Qi'h$Qi'p$Qi'u$Qi'w$Qi'x$Qi'}$Qi(O$Qi(P$Qi(Q$Qi~O!g9vO!h9}O~P43^O&e,rO'R9iO'SVO'T:eO'`9SO'cWO'dWO'e9bO'f8{O(V,sO!e$Qi!f$Qi'g$Qi'h$Qi'}$Qi(O$Qi(P$Qi(Q$Qi(R$Qi~O!g9wO!h:OO~P47`O!g$Qi!h$Qi~P4'jO!g$Qi!h$Qi~P4+xO!g$Qi!h$Qi~P4-vO!g$Qi!h$Qi~P4/nO!g$Qi!h$Qi~P41iO!g$Qi!h$Qi~P43^O!g$Qi!h$Qi~P47`O!evO!fvO!g9qO!h9xO&e,rO'R9cO'SVO'T:_O'`8|O'cWO'dWO'e9[O'f8uO'g9qO(P:WO(V,sOP$QiV$Qi]$Qi_$Qig$Qiv$Qiy$Qi{$Qi!O$Qi!P$Qi!S$Qi!V$Qi!Y$Qi!o$Qi#Z$Qi#[$Qi#y$Qi$h$Qi$k$Qi$o$Qi$s$Qi$u$Qi$w$Qi$y$Qi${$Qi$}$Qi%P$Qi%Q$Qi%Y$Qi&v$Qi&y$Qi&|$Qi&}$Qi'U$Qi'Y$Qi'Z$Qi'a$Qi'h$Qi'p$Qi'u$Qi'w$Qi'x$Qi'}$Qi(Q$Qi'_$Qi(R$Qi']$Qi~O(O:PO~P4:aO!evO!fvO!g9rO!h9yO&e,rO'R9dO'SVO'T:`O'`8}O'cWO'dWO'e9]O'f8vO'g9rO(P:XO(V,sOV$Qig$Qi&|$Qi&}$Qi'Y$Qi'Z$Qi'h$Qi'}$Qi(Q$Qi&v$Qi'_$Qi~O(O:QO~P4>oO!evO!fvO!g9sO!h9zO&e,rO'R9eO'SVO'T:aO'`9OO'cWO'dWO'e9^O'f8wO'g9sO(P:YO(V,sOV$Qig$Qi'Y$Qi'Z$Qi'h$Qi'}$Qi(Q$Qi&v$Qi'_$Qi~O(O:RO~P4@mO!evO!fvO!g9tO!h9{O&e,rO'R9fO'SVO'T:bO'`9PO'cWO'dWO'e9_O'f8xO'g9tO(P:ZO(V,sO&|$Qi&}$Qi'Y$Qi'Z$Qi'h$Qi'}$Qi(Q$Qi']$Qi&v$Qi'_$Qi~O(O:SO~P4BeO!evO!fvO!g9uO!h9|O&e,rO'R9gO'SVO'T:cO'`9QO'cWO'dWO'e9`O'f8yO'g9uO(P:[O(V,sO'Y$Qi'Z$Qi'h$Qi'}$Qi(Q$Qi']$Qi&v$Qi'_$Qi~O(O:TO~P4D`O!evO!fvO!g9vO!h9}O&e,rO'R9hO'SVO'T:dO'`9RO'cWO'dWO'e9aO'f8zO'g9vO(P:]O(V,sOP$QiV$Qi]$Qi_$Qig$Qiv$Qiy$Qi{$Qi!O$Qi!P$Qi!S$Qi!V$Qi!Y$Qi!o$Qi#Z$Qi#[$Qi#y$Qi$h$Qi$k$Qi$o$Qi$s$Qi$u$Qi$w$Qi$y$Qi${$Qi$}$Qi%P$Qi%Q$Qi%Y$Qi&v$Qi&y$Qi&|$Qi&}$Qi'U$Qi'Z$Qi'a$Qi'h$Qi'p$Qi'u$Qi'w$Qi'x$Qi'}$Qi(Q$Qi~O(O:UO~P4FTO!evO!fvO!g9wO!h:OO&e,rO'R9iO'SVO'T:eO'`9SO'cWO'dWO'e9bO'f8{O'g9wO(P:^O(V,sO'h$Qi'}$Qi(Q$Qi(R$Qi~O(O:VO~P4JVO(O$Qi~P4:aO(O$Qi~P4>oO(O$Qi~P4@mO(O$Qi~P4BeO(O$Qi~P4D`O(O$Qi~P4FTO(O$Qi~P4JVO'R9cO'`8|O'e9[O'f8uOP$QiV$Qi]$Qi_$Qiv$Qiy$Qi{$Qi!O$Qi!P$Qi!S$Qi!V$Qi!Y$Qi!o$Qi#Z$Qi#[$Qi#y$Qi$h$Qi$k$Qi$o$Qi$s$Qi$u$Qi$w$Qi$y$Qi${$Qi$}$Qi%P$Qi%Q$Qi%Y$Qi&y$Qi'U$Qi'a$Qi'p$Qi'u$Qi'w$Qi'x$Qi(R$Qi']$Qi~P+.pO'R9dO'`8}O'e9]O'f8vOV$Qi~P+.pO'R9eO'SVO'cWO'dWO~P3FlO'R9fO'SVO'cWO'dWO~P3HdO'R9gO'SVO'cWO'dWO~P3J_O'R9hO'SVO'cWO'dWO~P3LSO&e,rO'SVO'cWO'dWO(V,sO!e$Qi!f$Qi!g$Qi!h$Qi'T$Qi'g$Qi'h$Qi'}$Qi(O$Qi(P$Qi(Q$Qi(R$Qi~O'R9iO'`9SO'e9bO'f8{O~P5#]O&|<_O&}<_OP$TiV$Ti]$Ti_$Tig$Tiv$Tiy$Ti{$Ti!O$Ti!P$Ti!S$Ti!V$Ti!Y$Ti!o$Ti#Z$Ti#[$Ti#y$Ti$h$Ti$k$Ti$o$Ti$s$Ti$u$Ti$w$Ti$y$Ti${$Ti$}$Ti%P$Ti%Q$Ti%Y$Ti&v$Ti&y$Ti'U$Ti'Y$Ti'Z$Ti'a$Ti'h$Ti'p$Ti'u$Ti'w$Ti'x$Ti'_$Ti(R$Ti']$Ti~P+@sOV$Tig$Ti'Y$Ti'Z$Ti'h$Ti&v$Ti'_$Ti~P2KpO!evO!fvO!g9tO!h9{O&e,rO'R9fO'SVO'T:bO'`9PO'cWO'dWO'e9_O'f8xO'g9tO'}9WO(O:SO(P:ZO(QDQO(V,sO~O&|pO&}>pO'R=tO'SVO'T=zO'`=qO'cWO'dWO'e=sO'f=pO'g=vO'}=rO(O=xO(P=yO(QDiO(V#wO~O'h=uO(R%di&v%di'_%di~P61[O&a!eO&i!eO~O&a=iO&i=iO~O&a=gO&i=gO~O&|=oO&}=oO!e$pi!f$pi!g$pi!h$pi&e$pi'R$pi'S$pi'T$pi'Y$pi'`$pi'c$pi'd$pi'e$pi'f$pi'g$pi'h$pi'}$pi(O$pi(P$pi(Q$pi(V$pi(R$pi']$pi'_$pi'Z$pi~P&#sO'f=pO&v%bi&|%bi&}%bi'_%bi'`%bi'e%bi~P0DuO!evO!fvO!g=vO!h=wO&e#vO'R=tO'SVO'T=zO'`=qO'cWO'dWO'e=sO'f=pO'g=vO'}=rO(O=xO(P=yO(QDiO(V#wO&v%bi&|%bi&}%bi'_%bi(R%bi~O'h%bi~P65{O'`=qO'f=pO&v%bi&|%bi&}%bi'_%bi'e%bi~P0DuO'`=qO'e=sO'f=pO&v%bi&|%bi&}%bi'_%bi~P0DuO'h=uO~P65{O&e#vO'R=tO'SVO'T=zO'`=qO'cWO'dWO'e=sO'f=pO(V#wO!e%bi!f%bi&v%bi&|%bi&}%bi'_%bi'g%bi'h%bi'}%bi(O%bi(P%bi(Q%bi(R%bi~O!g=vO!h=wO~P68{O!g%bi!h%bi~P68{O!evO!fvO!g=vO!h=wO&e#vO'R=tO'SVO'T=zO'`=qO'cWO'dWO'e=sO'f=pO'g=vO(P=yO(V#wO&v%bi&|%bi&}%bi'_%bi'h%bi'}%bi(Q%bi(R%bi~O(O=xO~P6:zO(O%bi~P6:zO(R8hO~P&5}O(R8iO~P&5}O(R8jO~P&5}O(R8kO~P&5}O(R8lO~P&5}O(R8mO~P&5}O(R8nO~P&5}O'R=tO'`=qO'e=sO'f=pO&v%bi&|%bi&}%bi'_%bi~P1GsO'S8oO~O!evO!fvO!g=vO!h=wO&e#vO'R=tO'SVO'T=zO'`=qO'cWO'dWO'e=sO'f=pO'g=vO'}=rO(O=xO(P=yO(QDiO(V#wO~O&|=}O&}=}O'h=uO&v&{X'_&{X~P6>lO(S8qO&a'qX&f#dX&g#dX&i'qX~P'?zO(S8rOV'qX~P'9wO!e'qX!f'qX!g'qX!h'qX&a'qX&c'qX&d'qX&e'qX&f#dX&g#dX&h'qX&i'qX&|'qX&}'qX'O'qX'R'qX'S'qX'T'qX'Z'qX'`'qX'c'qX'd'qX'e'qX'f'qX'g'qX'h'qX'}'qX(O'qX(P'qX(Q'qX(V'qX&v'qX'_'qX~O(S8sO'Y'qX']'qX~P6@{OV'qXg'qX!e'qX!f'qX!g'qX!h'qX&a'qX&c'qX&d'qX&e'qX&f#dX&g#dX&h'qX&i'qX&v'qX&|'qX&}'qX'O'qX'R'qX'S'qX'T'qX'Z'qX'`'qX'c'qX'd'qX'e'qX'f'qX'g'qX'h'qX'}'qX(O'qX(P'qX(Q'qX(V'qX~O(S8tOP'qX]'qX_'qXv'qXy'qX{'qX!O'qX!P'qX!S'qX!V'qX!Y'qX!o'qX#Z'qX#['qX#y'qX$h'qX$k'qX$o'qX$s'qX$u'qX$w'qX$y'qX${'qX$}'qX%P'qX%Q'qX%Y'qX&y'qX'U'qX'a'qX'p'qX'u'qX'w'qX'x'qX~P6CcO(S8qO~O(S8rO~O(S8sO~O(S8tO~O'h%ei(R%ei&v%ei'_%ei~P61[O!g=vO!h=wO'R=tO'T=zO'`=qO'e=sO'f=pO'g=vO(O=xO(P=yO(QDiO&|%cy&}%cy~P2DyOPDbOVuO])ZO_!QOg!ZOv!ROy)[O{!SO!O!UO!P!TO!S!VO!V!WO!Y!XO!evO!fvO!gYO!hYO!o!YO#Z)ZO#[)ZO#y)ZO$h![O$k!]O$owO$s=[O$u=fO$w!^O$yzO${{O$}3ZO%P}O%Q}O%Y!OO&y)WO&|YO&}YO'RCnO'SVO'TCoO'U)YO'`YO'a8[O'cWO'd8WO'eYO'fYO'gYO'hYO'p^O'u_O'w`O'xaO~OPDaOVuO])ZO_!QOg!ZOv!ROy)[O{!SO!O!UO!P!TO!S!VO!V!WO!Y!XO!evO!fvO!gYO!hYO!o!YO#Z)ZO#[)ZO#y)ZO$h![O$k!]O$o=QO$s=WO$u=bO$w!^O$yzO${{O$}3XO%P}O%Q}O%Y!OO&y)WO&|YO&}YO'RCnO'SVO'TCoO'U)YO'`YO'a8ZO'cWO'd8UO'eYO'fYO'gYO'hYO'p^O'u_O'w`O'xaO~O(RUO!evO!fvO!g?uO!h?yO&e#vO'R?mO'SVO'T@VO'`?aO'cWO'dWO'e?iO'f?]O'g?uO'}?eO(O?}O(P@RO(QDmO(V#wO'_%bi&v%bi~O'h%bi~P7?yO'`?^O~P7/RO'`?_O~P73QO'`?`O~P74{O'`?aO~P76pO&e#vO'`?^O'e?fO'f?YO(V#wOP%biV%bi_%big%biv%biy%bi{%bi!O%bi!P%bi!S%bi!V%bi!Y%bi!e%bi!f%bi!g%bi!h%bi!o%bi#Z%bi#[%bi#y%bi$h%bi$k%bi$o%bi$s%bi$u%bi$w%bi$y%bi${%bi$}%bi%P%bi%Q%bi%Y%bi&v%bi&y%bi&|%bi&}%bi'T%bi'U%bi'Z%bi'a%bi'g%bi'h%bi'p%bi'u%bi'w%bi'x%bi'}%bi(O%bi(P%bi(Q%bi~O'R%bi'S%bi'c%bi'd%bi~P7BRO&e#vO'`?_O'e?gO'f?ZO(V#wOV%big%bi!e%bi!f%bi!g%bi!h%bi&v%bi&|%bi&}%bi'T%bi'_%bi'g%bi'h%bi'}%bi(O%bi(P%bi(Q%bi'Z%bi~O'R%bi'S%bi'c%bi'd%bi~P7FQO&e#vO'`?`O'e?hO'f?[O(V#wOV%big%bi!e%bi!f%bi!g%bi!h%bi&v%bi'T%bi'_%bi'g%bi'h%bi'}%bi(O%bi(P%bi(Q%bi'Z%bi~O'R%bi'S%bi'c%bi'd%bi~P7G{O&e#vO'`?aO'e?iO'f?]O(V#wO!e%bi!f%bi!g%bi!h%bi'T%bi'_%bi'g%bi'h%bi'}%bi(O%bi(P%bi(Q%bi&v%bi~O'R%bi'S%bi'c%bi'd%bi~P7IpO'h?nO~P78[O'h?oO~P7UO'h?qO~P7?yO&e#vO'R?jO'SVO'T@SO'`?^O'cWO'dWO'e?fO'f?YO(V#wOP%biV%bi_%big%biv%biy%bi{%bi!O%bi!P%bi!S%bi!V%bi!Y%bi!e%bi!f%bi!o%bi#Z%bi#[%bi#y%bi$h%bi$k%bi$o%bi$s%bi$u%bi$w%bi$y%bi${%bi$}%bi%P%bi%Q%bi%Y%bi&v%bi&y%bi&|%bi&}%bi'U%bi'Z%bi'a%bi'g%bi'h%bi'p%bi'u%bi'w%bi'x%bi'}%bi(O%bi(P%bi(Q%bi~O!g?rO!h?vO~P7KxO&e#vO'R?kO'SVO'T@TO'`?_O'cWO'dWO'e?gO'f?ZO(V#wOV%big%bi!e%bi!f%bi&v%bi&|%bi&}%bi'_%bi'g%bi'h%bi'}%bi(O%bi(P%bi(Q%bi'Z%bi~O!g?sO!h?wO~P8 wO&e#vO'R?lO'SVO'T@UO'`?`O'cWO'dWO'e?hO'f?[O(V#wOV%big%bi!e%bi!f%bi&v%bi'_%bi'g%bi'h%bi'}%bi(O%bi(P%bi(Q%bi'Z%bi~O!g?tO!h?xO~P8#rO&e#vO'R?mO'SVO'T@VO'`?aO'cWO'dWO'e?iO'f?]O(V#wO!e%bi!f%bi'_%bi'g%bi'h%bi'}%bi(O%bi(P%bi(Q%bi&v%bi~O!g?uO!h?yO~P8%gO!g%bi!h%bi~P7KxO!g%bi!h%bi~P8 wO!g%bi!h%bi~P8#rO!g%bi!h%bi~P8%gO!evO!fvO!g?rO!h?vO&e#vO'R?jO'SVO'T@SO'`?^O'cWO'dWO'e?fO'f?YO'g?rO(P@OO(V#wOP%biV%bi_%big%biv%biy%bi{%bi!O%bi!P%bi!S%bi!V%bi!Y%bi!o%bi#Z%bi#[%bi#y%bi$h%bi$k%bi$o%bi$s%bi$u%bi$w%bi$y%bi${%bi$}%bi%P%bi%Q%bi%Y%bi&v%bi&y%bi&|%bi&}%bi'U%bi'Z%bi'a%bi'h%bi'p%bi'u%bi'w%bi'x%bi'}%bi(Q%bi~O(O?zO~P8'{O!evO!fvO!g?sO!h?wO&e#vO'R?kO'SVO'T@TO'`?_O'cWO'dWO'e?gO'f?ZO'g?sO(P@PO(V#wOV%big%bi&v%bi&|%bi&}%bi'_%bi'h%bi'}%bi(Q%bi'Z%bi~O(O?{O~P8+zO!evO!fvO!g?tO!h?xO&e#vO'R?lO'SVO'T@UO'`?`O'cWO'dWO'e?hO'f?[O'g?tO(P@QO(V#wOV%big%bi&v%bi'_%bi'h%bi'}%bi(Q%bi'Z%bi~O(O?|O~P8-uO!evO!fvO!g?uO!h?yO&e#vO'R?mO'SVO'T@VO'`?aO'cWO'dWO'e?iO'f?]O'g?uO(P@RO(V#wO'_%bi'h%bi'}%bi(Q%bi&v%bi~O(O?}O~P8/jO(O%bi~P8'{O(O%bi~P8+zO(O%bi~P8-uO(O%bi~P8/jO'R?jO'SVO'cWO'dWO~P7BRO'R?kO'SVO'cWO'dWO~P7FQO'R?lO'SVO'cWO'dWO~P7G{O'R?mO'SVO'cWO'dWO~P7IpOPDaOVuO])ZO_!QOg!ZOv!ROy)[O{!SO!O!UO!P!TO!S!VO!V!WO!Y!XO!evO!fvO!gYO!hYO!o!YO#Z)ZO#[)ZO#y)ZO$h![O$k!]O$o=QO$s=UO$u=`O$w!^O$yzO${{O$}3WO%P}O%Q}O%Y!OO&y)WO&|YO&}YO'RCnO'SVO'TCoO'U)YO'`YO'a8YO'cWO'd8TO'eYO'fYO'gYO'hYO'p^O'u_O'w`O'xaO~OPDbOVuO])ZO_!QOg!ZOv!ROy)[O{!SO!O!UO!P!TO!S!VO!V!WO!Y!XO!evO!fvO!gYO!hYO!o!YO#Z)ZO#[)ZO#y)ZO$h![O$k!]O$owO$s=XO$u=cO$w!^O$yzO${{O$}|O%P}O%Q}O%Y!OO&y)WO&|YO&}YO'RCnO'SVO'TCoO'U)YO'`YO'a8XO'cWO'd8VO'eYO'fYO'gYO'hYO'p^O'u_O'w`O'xaO~OP%eiV%ei_%eig%eiv%eiy%ei{%ei!O%ei!P%ei!S%ei!V%ei!Y%ei!o%ei#Z%ei#[%ei#y%ei$h%ei$k%ei$o%ei$s%ei$u%ei$w%ei$y%ei${%ei$}%ei%P%ei%Q%ei%Y%ei&v%ei&y%ei'U%ei'Z%ei'a%ei'h%ei'p%ei'u%ei'w%ei'x%ei~P7)XOV%eig%ei&v%ei'_%ei'h%ei'Z%ei~P7-WO!g?rO!h?vO'R?jO'T@SO'`?^O'e?fO'f?YO'g?rO(O?zO(P@OO(QDjO'Z%cy~P2@qO!g?sO!h?wO'R?kO'T@TO'`?_O'e?gO'f?ZO'g?sO(O?{O(P@PO(QDkO&|%cy&}%cy~P2>yO!g?tO!h?xO'R?lO'T@UO'`?`O'e?hO'f?[O'g?tO(O?|O(P@QO(QDlO~P2>yO!evO!fvO!g?uO!h?yO&e#vO'R?mO'SVO'T@VO'`?aO'cWO'dWO'e?iO'f?]O'g?uO(O?}O(P@RO(QDmO(V#wO~O'_%cy'h%cy'}%cy&v%cy~P8?nO!evO!fvO!gAxO!hA|O&e,rO&|C`O&}C`O'RApO'SVO'TBYO'`AdO'cWO'dWO'eAlO'fA`O'gAxO'}AhO(OBQO(PBUO(QDnO(V,sO~O'hAtOV$Sig$Si&v$Si'_$Si'Z$Si~P8AYO&|CaO&}CaO(R$Si&v$Si'_$Si~P+=uO&e,rO'fA`O(V,sOV$Qig$Qi!e$Qi!f$Qi!g$Qi!h$Qi&v$Qi&|$Qi&}$Qi'R$Qi'S$Qi'T$Qi'_$Qi'c$Qi'd$Qi'e$Qi'g$Qi'h$Qi'}$Qi(O$Qi(P$Qi(Q$Qi'Z$Qi~O'`$Qi~P8ChO&e,rO'fAaO(V,sOV$Qig$Qi!e$Qi!f$Qi!g$Qi!h$Qi&v$Qi'R$Qi'S$Qi'T$Qi'_$Qi'c$Qi'd$Qi'e$Qi'g$Qi'h$Qi'}$Qi(O$Qi(P$Qi(Q$Qi'Z$Qi~O'`$Qi~P8EcO'fAbO&v$Qi&|$Qi&}$Qi'_$Qi'`$Qi'e$Qi~P4!UO&e,rO'fAcO(V,sO!e$Qi!f$Qi!g$Qi!h$Qi&v$Qi'R$Qi'S$Qi'T$Qi'_$Qi'c$Qi'd$Qi'e$Qi'g$Qi'h$Qi'}$Qi(O$Qi(P$Qi(Q$Qi~O'`$Qi~P8GqO!evO!fvO!gAxO!hA|O&e,rO'RApO'SVO'TBYO'`AdO'cWO'dWO'eAlO'fA`O'gAxO'}AhO(OBQO(PBUO(QDnO(V,sOV$Qig$Qi&v$Qi&|$Qi&}$Qi'_$Qi'Z$Qi~O'h$Qi~P8I]O!evO!fvO!gAyO!hA}O&e,rO'RAqO'SVO'TBZO'`AeO'cWO'dWO'eAmO'fAaO'gAyO'}AiO(OBRO(PBVO(QDoO(V,sOV$Qig$Qi&v$Qi'_$Qi'Z$Qi~O'h$Qi~P8KWO!evO!fvO!gAzO!hBOO&e,rO'RArO'SVO'TB[O'`AfO'cWO'dWO'eAnO'fAbO'gAzO'}AjO(OBSO(PBWO(QDpO(V,sO&v$Qi&|$Qi&}$Qi'_$Qi(R$Qi~O'h$Qi~P8L{O!evO!fvO!gA{O!hBPO&e,rO'RAsO'SVO'TB]O'`AgO'cWO'dWO'eAoO'fAcO'gA{O'}AkO(OBTO(PBXO(QDqO(V,sO&v$Qi'_$Qi~O'h$Qi~P8NpO'`AdO~P8ChO'`AeO~P8EcO'`AfO'fAbO&v$Qi&|$Qi&}$Qi'_$Qi'e$Qi~P4!UO'`AgO~P8GqO&e,rO'`AdO'eAlO'fA`O(V,sOV$Qig$Qi!e$Qi!f$Qi!g$Qi!h$Qi&v$Qi&|$Qi&}$Qi'T$Qi'_$Qi'g$Qi'h$Qi'}$Qi(O$Qi(P$Qi(Q$Qi'Z$Qi~O'R$Qi'S$Qi'c$Qi'd$Qi~P9#[O&e,rO'`AeO'eAmO'fAaO(V,sOV$Qig$Qi!e$Qi!f$Qi!g$Qi!h$Qi&v$Qi'T$Qi'_$Qi'g$Qi'h$Qi'}$Qi(O$Qi(P$Qi(Q$Qi'Z$Qi~O'R$Qi'S$Qi'c$Qi'd$Qi~P9%VO'`AfO'eAnO'fAbO&v$Qi&|$Qi&}$Qi'_$Qi~P4!UO&e,rO'`AgO'eAoO'fAcO(V,sO!e$Qi!f$Qi!g$Qi!h$Qi&v$Qi'T$Qi'_$Qi'g$Qi'h$Qi'}$Qi(O$Qi(P$Qi(Q$Qi~O'R$Qi'S$Qi'c$Qi'd$Qi~P9'eO'hAtO~P8I]O'hAuO~P8KWO'hAvO~P8L{O'hAwO~P8NpO&e,rO'RApO'SVO'TBYO'`AdO'cWO'dWO'eAlO'fA`O(V,sOV$Qig$Qi!e$Qi!f$Qi&v$Qi&|$Qi&}$Qi'_$Qi'g$Qi'h$Qi'}$Qi(O$Qi(P$Qi(Q$Qi'Z$Qi~O!gAxO!hA|O~P9)mO&e,rO'RAqO'SVO'TBZO'`AeO'cWO'dWO'eAmO'fAaO(V,sOV$Qig$Qi!e$Qi!f$Qi&v$Qi'_$Qi'g$Qi'h$Qi'}$Qi(O$Qi(P$Qi(Q$Qi'Z$Qi~O!gAyO!hA}O~P9+hO&e,rO'RArO'SVO'TB[O'`AfO'cWO'dWO'eAnO'fAbO(V,sO!e$Qi!f$Qi&v$Qi&|$Qi&}$Qi'_$Qi'g$Qi'h$Qi'}$Qi(O$Qi(P$Qi(Q$Qi(R$Qi~O!gAzO!hBOO~P9-]O&e,rO'RAsO'SVO'TB]O'`AgO'cWO'dWO'eAoO'fAcO(V,sO!e$Qi!f$Qi&v$Qi'_$Qi'g$Qi'h$Qi'}$Qi(O$Qi(P$Qi(Q$Qi~O!gA{O!hBPO~P9/QO!g$Qi!h$Qi~P9)mO!g$Qi!h$Qi~P9+hO!g$Qi!h$Qi~P9-]O!g$Qi!h$Qi~P9/QO!evO!fvO!gAxO!hA|O&e,rO'RApO'SVO'TBYO'`AdO'cWO'dWO'eAlO'fA`O'gAxO(PBUO(V,sOV$Qig$Qi&v$Qi&|$Qi&}$Qi'_$Qi'h$Qi'}$Qi(Q$Qi'Z$Qi~O(OBQO~P91fO!evO!fvO!gAyO!hA}O&e,rO'RAqO'SVO'TBZO'`AeO'cWO'dWO'eAmO'fAaO'gAyO(PBVO(V,sOV$Qig$Qi&v$Qi'_$Qi'h$Qi'}$Qi(Q$Qi'Z$Qi~O(OBRO~P93aO!evO!fvO!gAzO!hBOO&e,rO'RArO'SVO'TB[O'`AfO'cWO'dWO'eAnO'fAbO'gAzO(PBWO(V,sO&v$Qi&|$Qi&}$Qi'_$Qi'h$Qi'}$Qi(Q$Qi(R$Qi~O(OBSO~P95UO!evO!fvO!gA{O!hBPO&e,rO'RAsO'SVO'TB]O'`AgO'cWO'dWO'eAoO'fAcO'gA{O(PBXO(V,sO&v$Qi'_$Qi'h$Qi'}$Qi(Q$Qi~O(OBTO~P96yO(O$Qi~P91fO(O$Qi~P93aO(O$Qi~P95UO(O$Qi~P96yO'RApO'SVO'cWO'dWO~P9#[O'RAqO'SVO'cWO'dWO~P9%VO'RArO'`AfO'eAnO'fAbO&v$Qi&|$Qi&}$Qi'_$Qi~P5#]O'RAsO'SVO'cWO'dWO~P9'eOV$Tig$Ti&v$Ti'_$Ti'h$Ti'Z$Ti~P8AYO!evO!fvO!gAzO!hBOO&e,rO'RArO'SVO'TB[O'`AfO'cWO'dWO'eAnO'fAbO'gAzO(OBSO(PBWO(QDpO(V,sO~O&|CaO&}CaO'}AjO'h$Ti(R$Ti&v$Ti'_$Ti~P9;XO!gAxO!hA|O'RApO'TBYO'`AdO'eAlO'fA`O'gAxO(OBQO(PBUO(QDnO'_$Ry~P56dO!gAyO!hA}O'RAqO'TBZO'`AeO'eAmO'fAaO'gAyO(OBRO(PBVO(QDoO~P50|O&v$Ry&|$Ry&}$Ry'_$Ry'h$Ry'}$Ry(R$Ry~P9;XO!evO!fvO!gA{O!hBPO&e,rO'RAsO'SVO'TB]O'`AgO'cWO'dWO'eAoO'fAcO'gA{O(OBTO(PBXO(QDqO(V,sO~O&v$Ry'_$Ry'h$Ry'}$Ry~P9?WO&a=gO&i=gO&c!dX&d!dX&h!dX~O&a=hO&i=hO~P60iO&a=iO&i=iOg!dX&|!dX&}!dXP!dXV!dX]!dX_!dXv!dXy!dX{!dX!O!dX!P!dX!S!dX!V!dX!Y!dX!o!dX#Z!dX#[!dX#y!dX$h!dX$k!dX$o!dX$s!dX$u!dX$w!dX$y!dX${!dX$}!dX%P!dX%Q!dX%Y!dX&y!dX'U!dX'a!dX'p!dX'u!dX'w!dX'x!dX~P2)eO&a=jO&i=jOg!dX&|!dX&}!dXP!dXV!dX]!dX_!dXv!dXy!dX{!dX!O!dX!P!dX!S!dX!V!dX!Y!dX!o!dX#Z!dX#[!dX#y!dX$h!dX$k!dX$o!dX$s!dX$u!dX$w!dX$y!dX${!dX$}!dX%P!dX%Q!dX%Y!dX&y!dX'U!dX'a!dX'p!dX'u!dX'w!dX'x!dX~P2)eO(S=lO!e'QX!f'QX!g'QX!h'QX&e'QX'R'QX'S'QX'T'QX'`'QX'c'QX'd'QX'e'QX'f'QX'g'QX'h'QX'}'QX(O'QX(P'QX(Q'QX(R'QX(V'QX&v'QX&|'QX&}'QX'_'QX~P$:}O(S=lO~O(R>qO~P&5}O&vji'_ji~P)@uOV>uOg,wO&v'zX'_'zX'Z'zX~OV>uOg,wO&v'za'_'za'Z'za~O'hAwO'}AkO&v#Xi'_#Xi~P9?WO!evO!fvO&e,rO'SVO'cWO'dWO(V,sO~O!gAyO!hA}O'RAqO'TBZO'`AeO'eAmO'fAaO'gAyO'hAuO'}AiO(OBRO(PBVO(QDoOV#rag#ra&v#ra'_#ra'Z#ra~P9JRO(S?UOP'QXV'QX_'QXg'QXv'QXy'QX{'QX!O'QX!P'QX!S'QX!V'QX!Y'QX!e'QX!f'QX!g'QX!h'QX!o'QX#Z'QX#['QX#y'QX$h'QX$k'QX$o'QX$s'QX$u'QX$w'QX$y'QX${'QX$}'QX%P'QX%Q'QX%Y'QX&e'QX&v'QX&y'QX&|'QX&}'QX'R'QX'S'QX'T'QX'U'QX'Z'QX'`'QX'a'QX'c'QX'd'QX'e'QX'f'QX'g'QX'h'QX'p'QX'u'QX'w'QX'x'QX'}'QX(O'QX(P'QX(Q'QX(V'QX~P$:}O(S?VOV'QXg'QX!e'QX!f'QX!g'QX!h'QX&e'QX&v'QX'R'QX'S'QX'T'QX'_'QX'`'QX'c'QX'd'QX'e'QX'f'QX'g'QX'h'QX'}'QX(O'QX(P'QX(Q'QX(V'QX'Z'QX&|'QX&}'QX~P$:}O(S?UO~O(S?VO~O(RAYO~P&5}O(RAZO~P&5}O(RA[O~P&5}O(RA]O~P&5}O(SA^O'_'qX~P6CcO(SA_O!e'qX!f'qX!g'qX!h'qX&a'qX&c'qX&d'qX&e'qX&f#dX&g#dX&h'qX&i'qX'O'qX'R'qX'S'qX'T'qX'`'qX'c'qX'd'qX'e'qX'f'qX'g'qX'h'qX'}'qX(O'qX(P'qX(Q'qX(R'qX(V'qX&v'qX&|'qX&}'qX'_'qX~O(SA^O~O(SA_O~O(RCbO~P+*lO(RCcO~P+*lO(RCdO~P+*lO(RCeO~P+*lOy!g!h'P'g&}&|'a'c'S(Q(R&s&|~",goto:")/_([PPPPP(]4bP@g@kP@oPP(]P@uP@x@{ARP(]PA]AiI`IsKSLhMxNU!-q!5[!5m!-q!Br!CfPP# kP!CfP# n!CfPP# q!CfP# w!CfP# z!CfP# }#!Q#!Q#!Y#!]#!Q#!f#!Q#!x##OPPPP#0R#7w#8f#8j#8n!CfP#9O#9R#9U#@u#AXP#Ak#9RP#An#Aq#Fu$%c$%f$%i$*m$*m$/q$/t$p>q>t>u?O?P?Q?R?S?T?U?V?W?Y?Z?[?]?^?_?`?a?b?c?d?e?f?g?h?i?j?k?l?m?n?o?p?q?r?s?t?u?v?w?x?y?z?{?|?}@O@P@Q@R@S@T@U@VASATAUAVAWAXAYAZA[A]A^A_A`AaAbAcAdAeAfAgAhAiAjAkAlAmAnAoApAqArAsAtAuAvAwAxAyAzA{A|A}BOBPBQBRBSBTBUBVBWBXBYBZB[B]C`CaCbCcCdCeCqCsCtCuCvCwCxCyC}DODPDQDRDSDTDiDjDkDlDmDnDoDpDq9V!POR[elmnuwxy|!P!Q![!^!_!`!t#]#b#d#g#h#j#k#l#m#n#o#p#q#r#s#t#u#x#}$n$o$r$t%P%Q%S%U%[%d%k%o%p%v%{%}&k&q&y'e'n'q'r'u'v'w(W(k(n(q(v(y)R)W)Y)])^)_)m)q)u)w)|*O*U*Z*]*`*s*|+T+Z+a+q+},T,W,_,d,g,h,i,j,k,l,m,n,o,p,q,u,x,z-S-U-W-`-b-u.V.X.].^.b.e.g.i.w.}/S/U/^/b/p/w0U0V0s0x0z1O1R1W1a1c1f1j1o1w1x1z2O2S2U2W2[2^2a2h2m2q2t3P3Q3R3S3T3U3V3W3X3Y3Z3[3]3_3`3a3b3c3d3e3f3g3m3n3o3p3q3r3s3t3u3v3w3x3y3z3{3|3}4O4P4Q4R4S4T4U4V4W4X4Y4Z4[4]4^4_4`4a4b4c4d4e4f4g4h4i4j4k4l4m4n4o4p4q4r4s4t4u4v4w4x4y4z4{4|4}5O5P5Q5R5S5T5U5V5W5X5Y5Z5[5]5^5_5`8O8]8^8_8`8a8b8c8d8e8f8g8h8i8j8k8l8m8n8q8r8s8t8u8v8w8x8y8z8{8|8}9O9P9Q9R9S9T9U9V9W9X9Y9Z9[9]9^9_9`9a9b9c9d9e9f9g9h9i9j9k9l9m9n9o9p9q9r9s9t9u9v9w9x9y9z9{9|9}:O:P:Q:R:S:T:U:V:W:X:Y:Z:[:]:^:_:`:a:b:c:d:e<_<`p>q>t>u?O?P?Q?R?S?T?U?V?W?Y?Z?[?]?^?_?`?a?b?c?d?e?f?g?h?i?j?k?l?m?n?o?p?q?r?s?t?u?v?w?x?y?z?{?|?}@O@P@Q@R@S@T@U@VASATAUAVAWAXAYAZA[A]A^A_A`AaAbAcAdAeAfAgAhAiAjAkAlAmAnAoApAqArAsAtAuAvAwAxAyAzA{A|A}BOBPBQBRBSBTBUBVBWBXBYBZB[B]C`CaCbCcCdCeCqCsCtCuCvCwCxCyC}DODPDQDRDSDTDiDjDkDlDmDnDoDpDqT'o$h'pT'n$h'pQ't$hR*n'pR'{$iR*s'uQ'z$iR*x'{Q'y$iS*w'z'{R-r*xQ%S!ZQ)n%yQ+c(mR/y-P0OfOR[elmnuwxy|!P!Q!T!Y![!]!^!_!`!e!f!n!o!t!{#]#b#d#g#h#j#k#l#m#n#o#p#q#r#s#t#u#x#}$j$k$n$o$p$r$t%P%Q%S%U%[%d%k%p%v%{%}&k&q&y'e'n'q'r'u'v'w(W(Z(d(k(n(q(s(v(y)R)m)q)u)w)|*O*U*Z*]*`*s*|+Z+a+q+x,z-S-U-W-`-b-u.V.X/w1o3P3Q3R3S3T3U3V3W3X3Y3Z3[3]3_3`3a3b3c3d3e3f3g3m3n3o3p3q3r3s3t3u3v3w3x3y3z3{3|3}4O4P4Q4R4S4T4U4V4W4X4Y4Z4[4]4^4_4`4a4b4c4d4e4f4g4h4i4j4k4l4m4n4o4p4q4r4s4t4u4v4w4x4y4z4{4|4}5O5P5Q5R5S5T5U5V5W5X5Y5Z5[5]5^5_5`7{7|7}8O8d8e8f8g8h8i8j8k8l8m8np>q?O?P?Q?R?S?T?U?V?W?Y?Z?[?]?^?_?`?a?b?c?d?e?f?g?h?i?j?k?l?m?n?o?p?q?r?s?t?u?v?w?x?y?z?{?|?}@O@P@Q@R@S@T@U@VAWAXAYAZA[A]CqCsCtCuCvCwCxCyDiDjDkDlDmS%R!Z(mS&z#f,YT=|%y-Ps!y[!t$n%Q%k%{%}&y)q)u)w*|-S-U-W-up>q?O?P?Q?R?S?T?U?V?W?Y?Z?[?]?^?_?`?a?b?c?d?e?f?g?h?i?j?k?l?m?n?o?p?q?r?s?t?u?v?w?x?y?z?{?|?}@O@P@Q@R@S@T@U@VAWAXAYAZA[A]CqCsCtCuCvCwCxCyDiDjDkDlDmW$Yx=R=S=TW$^y=]=^=_[$x!X$w+V+W.Q0[S%X!](sS&z#f,YS(|%j*{+S)Z%o)W)Y)])^)_+T+},T,W,_,d,g,h,i,j,k,l,m,n,o,p,q,u,x.].^.b.e.g.i.w.}/S/U/^/b/p0U0V0s0x0z1O1R1W1a1c1f1j1w1x1z2O2S2U2W2[2^2a2h2m2q2t8]8^8_8`8a8b8c8q8r8s8t8u8v8w8x8y8z8{8|8}9O9P9Q9R9S9T9U9V9W9X9Y9Z9[9]9^9_9`9a9b9c9d9e9f9g9h9i9j9k9l9m9n9o9p9q9r9s9t9u9v9w9x9y9z9{9|9}:O:P:Q:R:S:T:U:V:W:X:Y:Z:[:]:^:_:`:a:b:c:d:e<_<`t>uASATAUAVA^A_A`AaAbAcAdAeAfAgAhAiAjAkAlAmAnAoApAqArAsAtAuAvAwAxAyAzA{A|A}BOBPBQBRBSBTBUBVBWBXBYBZB[B]C`CaCbCcCdCeC}DODPDQDRDSDTDnDoDpDqS-w+S8oQ0O-gQ0c.[U5j=U=X=YS5k=V=ZS5l=W=[U5p=`=c=dS5q=a=eT5r=b=f0PfOR[elmnuwxy|!P!Q!T!Y![!]!^!_!`!e!f!n!o!t!{#]#b#d#g#h#j#k#l#m#n#o#p#q#r#s#t#u#x#}$j$k$n$o$p$r$t%P%Q%S%U%[%d%k%p%v%{%}&k&q&y'e'n'q'r'u'v'w(W(Z(d(k(n(q(s(v(y)R)m)q)u)w)|*O*U*Z*]*`*s*|+Z+a+q+x,z-S-U-W-`-b-u.V.X/w1o3P3Q3R3S3T3U3V3W3X3Y3Z3[3]3_3`3a3b3c3d3e3f3g3m3n3o3p3q3r3s3t3u3v3w3x3y3z3{3|3}4O4P4Q4R4S4T4U4V4W4X4Y4Z4[4]4^4_4`4a4b4c4d4e4f4g4h4i4j4k4l4m4n4o4p4q4r4s4t4u4v4w4x4y4z4{4|4}5O5P5Q5R5S5T5U5V5W5X5Y5Z5[5]5^5_5`7{7|7}8O8d8e8f8g8h8i8j8k8l8m8np>q?O?P?Q?R?S?T?U?V?W?Y?Z?[?]?^?_?`?a?b?c?d?e?f?g?h?i?j?k?l?m?n?o?p?q?r?s?t?u?v?w?x?y?z?{?|?}@O@P@Q@R@S@T@U@VAWAXAYAZA[A]CqCsCtCuCvCwCxCyDiDjDkDlDmS(|%j*{Q)}&dS-w+S8oQ0O-gR0c.[0OfOR[elmnuwxy|!P!Q!T!Y![!]!^!_!`!e!f!n!o!t!{#]#b#d#g#h#j#k#l#m#n#o#p#q#r#s#t#u#x#}$j$k$n$o$p$r$t%P%Q%S%U%[%d%k%p%v%{%}&k&q&y'e'n'q'r'u'v'w(W(Z(d(k(n(q(s(v(y)R)m)q)u)w)|*O*U*Z*]*`*s*|+Z+a+q+x,z-S-U-W-`-b-u.V.X/w1o3P3Q3R3S3T3U3V3W3X3Y3Z3[3]3_3`3a3b3c3d3e3f3g3m3n3o3p3q3r3s3t3u3v3w3x3y3z3{3|3}4O4P4Q4R4S4T4U4V4W4X4Y4Z4[4]4^4_4`4a4b4c4d4e4f4g4h4i4j4k4l4m4n4o4p4q4r4s4t4u4v4w4x4y4z4{4|4}5O5P5Q5R5S5T5U5V5W5X5Y5Z5[5]5^5_5`7{7|7}8O8d8e8f8g8h8i8j8k8l8m8np>q?O?P?Q?R?S?T?U?V?W?Y?Z?[?]?^?_?`?a?b?c?d?e?f?g?h?i?j?k?l?m?n?o?p?q?r?s?t?u?v?w?x?y?z?{?|?}@O@P@Q@R@S@T@U@VAWAXAYAZA[A]CqCsCtCuCvCwCxCyDiDjDkDlDm[$x!X$w+V+W.Q0[S(|%j*{+S)Z%o)W)Y)])^)_+T+},T,W,_,d,g,h,i,j,k,l,m,n,o,p,q,u,x.].^.b.e.g.i.w.}/S/U/^/b/p0U0V0s0x0z1O1R1W1a1c1f1j1w1x1z2O2S2U2W2[2^2a2h2m2q2t8]8^8_8`8a8b8c8q8r8s8t8u8v8w8x8y8z8{8|8}9O9P9Q9R9S9T9U9V9W9X9Y9Z9[9]9^9_9`9a9b9c9d9e9f9g9h9i9j9k9l9m9n9o9p9q9r9s9t9u9v9w9x9y9z9{9|9}:O:P:Q:R:S:T:U:V:W:X:Y:Z:[:]:^:_:`:a:b:c:d:e<_<`t>uASATAUAVA^A_A`AaAbAcAdAeAfAgAhAiAjAkAlAmAnAoApAqArAsAtAuAvAwAxAyAzA{A|A}BOBPBQBRBSBTBUBVBWBXBYBZB[B]C`CaCbCcCdCeC}DODPDQDRDSDTDnDoDpDqS-w+S8oQ0O-gR0c.[Q)f%oQ+{)WQ-{+TS.l+}.^Q0h.]Q0r.gQ2R0sQ2V0zQ2o2WQ2p2aR2u2q9V]OR[elmnuwxy|!P!Q![!^!_!`!t#]#b#d#g#h#j#k#l#m#n#o#p#q#r#s#t#u#x#}$n$o$r$t%P%Q%S%U%[%d%k%o%p%v%{%}&k&q&y'e'n'q'r'u'v'w(W(k(n(q(v(y)R)W)Y)])^)_)m)q)u)w)|*O*U*Z*]*`*s*|+T+Z+a+q+},T,W,_,d,g,h,i,j,k,l,m,n,o,p,q,u,x,z-S-U-W-`-b-u.V.X.].^.b.e.g.i.w.}/S/U/^/b/p/w0U0V0s0x0z1O1R1W1a1c1f1j1o1w1x1z2O2S2U2W2[2^2a2h2m2q2t3P3Q3R3S3T3U3V3W3X3Y3Z3[3]3_3`3a3b3c3d3e3f3g3m3n3o3p3q3r3s3t3u3v3w3x3y3z3{3|3}4O4P4Q4R4S4T4U4V4W4X4Y4Z4[4]4^4_4`4a4b4c4d4e4f4g4h4i4j4k4l4m4n4o4p4q4r4s4t4u4v4w4x4y4z4{4|4}5O5P5Q5R5S5T5U5V5W5X5Y5Z5[5]5^5_5`8O8]8^8_8`8a8b8c8d8e8f8g8h8i8j8k8l8m8n8q8r8s8t8u8v8w8x8y8z8{8|8}9O9P9Q9R9S9T9U9V9W9X9Y9Z9[9]9^9_9`9a9b9c9d9e9f9g9h9i9j9k9l9m9n9o9p9q9r9s9t9u9v9w9x9y9z9{9|9}:O:P:Q:R:S:T:U:V:W:X:Y:Z:[:]:^:_:`:a:b:c:d:e<_<`p>q>t>u?O?P?Q?R?S?T?U?V?W?Y?Z?[?]?^?_?`?a?b?c?d?e?f?g?h?i?j?k?l?m?n?o?p?q?r?s?t?u?v?w?x?y?z?{?|?}@O@P@Q@R@S@T@U@VASATAUAVAWAXAYAZA[A]A^A_A`AaAbAcAdAeAfAgAhAiAjAkAlAmAnAoApAqArAsAtAuAvAwAxAyAzA{A|A}BOBPBQBRBSBTBUBVBWBXBYBZB[B]C`CaCbCcCdCeCqCsCtCuCvCwCxCyC}DODPDQDRDSDTDiDjDkDlDmDnDoDpDqR'}$jR(P$kQ$o!TR(W$pR$r!VR$t!WR$y!X]$x!X$w+V+W.Q0[R-|+T_/[,d/^0V1c1w1x2hQ%q!mQ&v#eQ'd$PQ+U(^Q+`(fR+i(rX(`$w+W.Q0[0OfOR[elmnuwxy|!P!Q!T!Y![!]!^!_!`!e!f!n!o!t!{#]#b#d#g#h#j#k#l#m#n#o#p#q#r#s#t#u#x#}$j$k$n$o$p$r$t%P%Q%S%U%[%d%k%p%v%{%}&k&q&y'e'n'q'r'u'v'w(W(Z(d(k(n(q(s(v(y)R)m)q)u)w)|*O*U*Z*]*`*s*|+Z+a+q+x,z-S-U-W-`-b-u.V.X/w1o3P3Q3R3S3T3U3V3W3X3Y3Z3[3]3_3`3a3b3c3d3e3f3g3m3n3o3p3q3r3s3t3u3v3w3x3y3z3{3|3}4O4P4Q4R4S4T4U4V4W4X4Y4Z4[4]4^4_4`4a4b4c4d4e4f4g4h4i4j4k4l4m4n4o4p4q4r4s4t4u4v4w4x4y4z4{4|4}5O5P5Q5R5S5T5U5V5W5X5Y5Z5[5]5^5_5`7{7|7}8O8d8e8f8g8h8i8j8k8l8m8np>q?O?P?Q?R?S?T?U?V?W?Y?Z?[?]?^?_?`?a?b?c?d?e?f?g?h?i?j?k?l?m?n?o?p?q?r?s?t?u?v?w?x?y?z?{?|?}@O@P@Q@R@S@T@U@VAWAXAYAZA[A]CqCsCtCuCvCwCxCyDiDjDkDlDmQ!}^[$x!X$w+V+W.Q0[+S)Z%o)W)Y)])^)_+T+},T,W,_,d,g,h,i,j,k,l,m,n,o,p,q,u,x.].^.b.e.g.i.w.}/S/U/^/b/p0U0V0s0x0z1O1R1W1a1c1f1j1w1x1z2O2S2U2W2[2^2a2h2m2q2t8]8^8_8`8a8b8c8q8r8s8t8u8v8w8x8y8z8{8|8}9O9P9Q9R9S9T9U9V9W9X9Y9Z9[9]9^9_9`9a9b9c9d9e9f9g9h9i9j9k9l9m9n9o9p9q9r9s9t9u9v9w9x9y9z9{9|9}:O:P:Q:R:S:T:U:V:W:X:Y:Z:[:]:^:_:`:a:b:c:d:e<_<`t>uASATAUAVA^A_A`AaAbAcAdAeAfAgAhAiAjAkAlAmAnAoApAqArAsAtAuAvAwAxAyAzA{A|A}BOBPBQBRBSBTBUBVBWBXBYBZB[B]C`CaCbCcCdCeC}DODPDQDRDSDTDnDoDpDqQ-m*gQ1r0PR1t0R%poORnwxy|!P!Q!^!_!`#]#d#g#h#j#k#l#m#n#o#p#q#r#s#t#x$o$r$t%P%Q%S%U%[%d%p%v&k&y'e'n'r'u'v'w(W(n(q(v(y*O*U*]*`*s+Z+a+q,z-S-`.V/w1o3T3Z3[3g3u3|4T4[4c4j4q4x5P5W5_8m=O=P=Q=R=S=T=U=V=W=X=Y=Z=[=]=^=_=`=a=b=c=d=e=f=m=o?WQ${!YS%l!j%nQ'b$OQ+Z(bQ+[(cQ-e*^![p>q?S?T?]?a?e?i?m?q?u?y?}@R@VA]CqCsCtCuCvCwCxCyDiDjDkDlDmvDZ#b&q*Z-b?P?U?Y?^?b?f?j?n?r?v?z@O@SAWAY!]D[)m?Q?R?V?Z?[?_?`?c?d?g?h?k?l?o?p?s?t?w?x?{?|@P@Q@T@UAXAZA[S!r[p>q?O?P?Q?R?S?T?U?V?W?Y?Z?[?]?^?_?`?a?b?c?d?e?f?g?h?i?j?k?l?m?n?o?p?q?r?s?t?u?v?w?x?y?z?{?|?}@O@P@Q@R@S@T@U@VAWAXAYAZA[A]CqCsCtCuCvCwCxCyDiDjDkDlDm!^gOR!P!Q!^!_!`#g$o$r$t%P%S%U%[%d'e'n'r'u'v'w(W(n(v(y*s+Z+a+qQ%O!YT%Y!](sq!kU$l$z%V%f%g%r%t'|(O5x5y5z5{5|5}Q)Q%mQ*b'cQ+r)SQ0l.`Q1`/XR1}0mR+q)RR+a(f+T)c%o)W)Y)])^)_+T+},T,W,_,d,g,h,i,j,k,l,m,n,o,p,q,u,x.].^.b.e.g.i.w.}/S/U/^/b/p0U0V0s0x0z1O1R1W1a1c1f1j1w1x1z2O2S2U2W2[2^2a2h2m2q2t8]8^8_8`8a8b8c8q8r8s8t8u8v8w8x8y8z8{8|8}9O9P9Q9R9S9T9U9V9W9X9Y9Z9[9]9^9_9`9a9b9c9d9e9f9g9h9i9j9k9l9m9n9o9p9q9r9s9t9u9v9w9x9y9z9{9|9}:O:P:Q:R:S:T:U:V:W:X:Y:Z:[:]:^:_:`:a:b:c:d:e<_<`t>uASATAUAVA^A_A`AaAbAcAdAeAfAgAhAiAjAkAlAmAnAoApAqArAsAtAuAvAwAxAyAzA{A|A}BOBPBQBRBSBTBUBVBWBXBYBZB[B]C`CaCbCcCdCeC}DODPDQDRDSDTDnDoDpDq/QlOR[elmnuwxy|!P!Q![!^!_!`!t#]#b#d#g#h#j#k#l#m#n#o#p#q#r#s#t#u#x#}$n$o$r$t%P%Q%S%U%[%d%k%p%v%{%}&k&q&y'e'n'q'r'u'v'w(W(k(n(q(v(y)R)m)q)u)w)|*O*U*Z*]*`*s*|+Z+a+q,z-S-U-W-`-b-u.V.X/w1o3P3Q3R3S3T3U3V3W3X3Y3Z3[3]3_3`3a3b3c3d3e3f3g3m3n3o3p3q3r3s3t3u3v3w3x3y3z3{3|3}4O4P4Q4R4S4T4U4V4W4X4Y4Z4[4]4^4_4`4a4b4c4d4e4f4g4h4i4j4k4l4m4n4o4p4q4r4s4t4u4v4w4x4y4z4{4|4}5O5P5Q5R5S5T5U5V5W5X5Y5Z5[5]5^5_5`8O8d8e8f8g8h8i8j8k8l8m8np>q?O?P?Q?R?S?T?U?V?W?Y?Z?[?]?^?_?`?a?b?c?d?e?f?g?h?i?j?k?l?m?n?o?p?q?r?s?t?u?v?w?x?y?z?{?|?}@O@P@Q@R@S@T@U@VAWAXAYAZA[A]CqCsCtCuCvCwCxCyDiDjDkDlDmQ$g!OQ(}%j+S)]%o)W)Y)])^)_+T+},T,W,_,d,g,h,i,j,k,l,m,n,o,p,q,u,x.].^.b.e.g.i.w.}/S/U/^/b/p0U0V0s0x0z1O1R1W1a1c1f1j1w1x1z2O2S2U2W2[2^2a2h2m2q2t8]8^8_8`8a8b8c8q8r8s8t8u8v8w8x8y8z8{8|8}9O9P9Q9R9S9T9U9V9W9X9Y9Z9[9]9^9_9`9a9b9c9d9e9f9g9h9i9j9k9l9m9n9o9p9q9r9s9t9u9v9w9x9y9z9{9|9}:O:P:Q:R:S:T:U:V:W:X:Y:Z:[:]:^:_:`:a:b:c:d:e<_<`t>uASATAUAVA^A_A`AaAbAcAdAeAfAgAhAiAjAkAlAmAnAoApAqArAsAtAuAvAwAxAyAzA{A|A}BOBPBQBRBSBTBUBVBWBXBYBZB[B]C`CaCbCcCdCeC}DODPDQDRDSDTDnDoDpDqQ*i'lQ-m*gQ0d.[Q1r0PR1t0RR#O^R!}^+T)^%o)W)Y)])^)_+T+},T,W,_,d,g,h,i,j,k,l,m,n,o,p,q,u,x.].^.b.e.g.i.w.}/S/U/^/b/p0U0V0s0x0z1O1R1W1a1c1f1j1w1x1z2O2S2U2W2[2^2a2h2m2q2t8]8^8_8`8a8b8c8q8r8s8t8u8v8w8x8y8z8{8|8}9O9P9Q9R9S9T9U9V9W9X9Y9Z9[9]9^9_9`9a9b9c9d9e9f9g9h9i9j9k9l9m9n9o9p9q9r9s9t9u9v9w9x9y9z9{9|9}:O:P:Q:R:S:T:U:V:W:X:Y:Z:[:]:^:_:`:a:b:c:d:e<_<`t>uASATAUAVA^A_A`AaAbAcAdAeAfAgAhAiAjAkAlAmAnAoApAqArAsAtAuAvAwAxAyAzA{A|A}BOBPBQBRBSBTBUBVBWBXBYBZB[B]C`CaCbCcCdCeC}DODPDQDRDSDTDnDoDpDq+T)Z%o)W)Y)])^)_+T+},T,W,_,d,g,h,i,j,k,l,m,n,o,p,q,u,x.].^.b.e.g.i.w.}/S/U/^/b/p0U0V0s0x0z1O1R1W1a1c1f1j1w1x1z2O2S2U2W2[2^2a2h2m2q2t8]8^8_8`8a8b8c8q8r8s8t8u8v8w8x8y8z8{8|8}9O9P9Q9R9S9T9U9V9W9X9Y9Z9[9]9^9_9`9a9b9c9d9e9f9g9h9i9j9k9l9m9n9o9p9q9r9s9t9u9v9w9x9y9z9{9|9}:O:P:Q:R:S:T:U:V:W:X:Y:Z:[:]:^:_:`:a:b:c:d:e<_<`t>uASATAUAVA^A_A`AaAbAcAdAeAfAgAhAiAjAkAlAmAnAoApAqArAsAtAuAvAwAxAyAzA{A|A}BOBPBQBRBSBTBUBVBWBXBYBZB[B]C`CaCbCcCdCeC}DODPDQDRDSDTDnDoDpDqR0i.]0OfOR[elmnuwxy|!P!Q!T!Y![!]!^!_!`!e!f!n!o!t!{#]#b#d#g#h#j#k#l#m#n#o#p#q#r#s#t#u#x#}$j$k$n$o$p$r$t%P%Q%S%U%[%d%k%p%v%{%}&k&q&y'e'n'q'r'u'v'w(W(Z(d(k(n(q(s(v(y)R)m)q)u)w)|*O*U*Z*]*`*s*|+Z+a+q+x,z-S-U-W-`-b-u.V.X/w1o3P3Q3R3S3T3U3V3W3X3Y3Z3[3]3_3`3a3b3c3d3e3f3g3m3n3o3p3q3r3s3t3u3v3w3x3y3z3{3|3}4O4P4Q4R4S4T4U4V4W4X4Y4Z4[4]4^4_4`4a4b4c4d4e4f4g4h4i4j4k4l4m4n4o4p4q4r4s4t4u4v4w4x4y4z4{4|4}5O5P5Q5R5S5T5U5V5W5X5Y5Z5[5]5^5_5`7{7|7}8O8d8e8f8g8h8i8j8k8l8m8np>q?O?P?Q?R?S?T?U?V?W?Y?Z?[?]?^?_?`?a?b?c?d?e?f?g?h?i?j?k?l?m?n?o?p?q?r?s?t?u?v?w?x?y?z?{?|?}@O@P@Q@R@S@T@U@VAWAXAYAZA[A]CqCsCtCuCvCwCxCyDiDjDkDlDm+T)Z%o)W)Y)])^)_+T+},T,W,_,d,g,h,i,j,k,l,m,n,o,p,q,u,x.].^.b.e.g.i.w.}/S/U/^/b/p0U0V0s0x0z1O1R1W1a1c1f1j1w1x1z2O2S2U2W2[2^2a2h2m2q2t8]8^8_8`8a8b8c8q8r8s8t8u8v8w8x8y8z8{8|8}9O9P9Q9R9S9T9U9V9W9X9Y9Z9[9]9^9_9`9a9b9c9d9e9f9g9h9i9j9k9l9m9n9o9p9q9r9s9t9u9v9w9x9y9z9{9|9}:O:P:Q:R:S:T:U:V:W:X:Y:Z:[:]:^:_:`:a:b:c:d:e<_<`t>uASATAUAVA^A_A`AaAbAcAdAeAfAgAhAiAjAkAlAmAnAoApAqArAsAtAuAvAwAxAyAzA{A|A}BOBPBQBRBSBTBUBVBWBXBYBZB[B]C`CaCbCcCdCeC}DODPDQDRDSDTDnDoDpDqT%i!f=jR+v)V!W)a%o)W)_+T+},T,g,h,i,j,k,l,m,n,o,p,x.].^.g0s0z1O1f2W2a2qS._+u.aQ/W,`z>l)Y)])^,_/S/U8]8q8u8|9T9[9c9j9q9x:P:W:_<_m/b1j8^8_8r8v8w8}9O9U9V9]9^9d9e9k9l9r9s9y9z:Q:R:X:Y:`:a<`n,d,u.b.e.w/^/p0U0V1R1a1c1w1x1z2O2S2[2h2m2t8`8a8s8x8y9P9Q9W9X9_9`9f9g9m9n9t9u9{9|:S:T:Z:[:b:co,W.}1W2^8b8t8z9R9Y9a9h9o9v9}:U:]:duASATA^A`AaAdAeAhAiAlAmApAqAtAuAxAyA|A}BQBRBUBVBYBZC`CbCc#gDd,q.i0x2U8c8{9S9Z9b9i9p9w:O:V:^:etAUAVA_AbAcAfAgAjAkAnAoArAsAvAwAzA{BOBPBSBTBWBXB[B]CaCdCeC}DODPDQDRDSDTDnDoDpDqm+z)W+}.^.g.i/p0s0x0z2S2U2W2a2qe,O)W,P,R,S.^.q.s/p0j1g]#T_`a#R#V#YR)|&_R/}-X0OfOR[elmnuwxy|!P!Q!T!Y![!]!^!_!`!e!f!n!o!t!{#]#b#d#g#h#j#k#l#m#n#o#p#q#r#s#t#u#x#}$j$k$n$o$p$r$t%P%Q%S%U%[%d%k%p%v%{%}&k&q&y'e'n'q'r'u'v'w(W(Z(d(k(n(q(s(v(y)R)m)q)u)w)|*O*U*Z*]*`*s*|+Z+a+q+x,z-S-U-W-`-b-u.V.X/w1o3P3Q3R3S3T3U3V3W3X3Y3Z3[3]3_3`3a3b3c3d3e3f3g3m3n3o3p3q3r3s3t3u3v3w3x3y3z3{3|3}4O4P4Q4R4S4T4U4V4W4X4Y4Z4[4]4^4_4`4a4b4c4d4e4f4g4h4i4j4k4l4m4n4o4p4q4r4s4t4u4v4w4x4y4z4{4|4}5O5P5Q5R5S5T5U5V5W5X5Y5Z5[5]5^5_5`7{7|7}8O8d8e8f8g8h8i8j8k8l8m8np>q?O?P?Q?R?S?T?U?V?W?Y?Z?[?]?^?_?`?a?b?c?d?e?f?g?h?i?j?k?l?m?n?o?p?q?r?s?t?u?v?w?x?y?z?{?|?}@O@P@Q@R@S@T@U@VAWAXAYAZA[A]CqCsCtCuCvCwCxCyDiDjDkDlDmS&z#f,Y+T)Z%o)W)Y)])^)_+T+},T,W,_,d,g,h,i,j,k,l,m,n,o,p,q,u,x.].^.b.e.g.i.w.}/S/U/^/b/p0U0V0s0x0z1O1R1W1a1c1f1j1w1x1z2O2S2U2W2[2^2a2h2m2q2t8]8^8_8`8a8b8c8q8r8s8t8u8v8w8x8y8z8{8|8}9O9P9Q9R9S9T9U9V9W9X9Y9Z9[9]9^9_9`9a9b9c9d9e9f9g9h9i9j9k9l9m9n9o9p9q9r9s9t9u9v9w9x9y9z9{9|9}:O:P:Q:R:S:T:U:V:W:X:Y:Z:[:]:^:_:`:a:b:c:d:e<_<`t>uASATAUAVA^A_A`AaAbAcAdAeAfAgAhAiAjAkAlAmAnAoApAqArAsAtAuAvAwAxAyAzA{A|A}BOBPBQBRBSBTBUBVBWBXBYBZB[B]C`CaCbCcCdCeC}DODPDQDRDSDTDnDoDpDq:XdOR[elmnuwxy|!P!Q!T!Y![!]!^!_!`!e!f!n!o!t!{#]#b#d#f#g#h#j#k#l#m#n#o#p#q#r#s#t#u#x#}$j$k$n$o$p$r$t%P%Q%S%U%[%d%k%o%p%v%{%}&k&q&y'e'n'q'r'u'v'w(W(Z(d(k(n(q(s(v(y)R)W)Y)])^)_)m)q)u)w)|*O*U*Z*]*`*s*|+T+Z+a+q+x+},T,W,Y,_,d,g,h,i,j,k,l,m,n,o,p,q,u,x,z-S-U-W-`-b-u.V.X.].^.b.e.g.i.w.}/S/U/^/b/p/w0U0V0s0x0z1O1R1W1a1c1f1j1o1w1x1z2O2S2U2W2[2^2a2h2m2q2t3P3Q3R3S3T3U3V3W3X3Y3Z3[3]3_3`3a3b3c3d3e3f3g3m3n3o3p3q3r3s3t3u3v3w3x3y3z3{3|3}4O4P4Q4R4S4T4U4V4W4X4Y4Z4[4]4^4_4`4a4b4c4d4e4f4g4h4i4j4k4l4m4n4o4p4q4r4s4t4u4v4w4x4y4z4{4|4}5O5P5Q5R5S5T5U5V5W5X5Y5Z5[5]5^5_5`7{7|7}8O8]8^8_8`8a8b8c8d8e8f8g8h8i8j8k8l8m8n8q8r8s8t8u8v8w8x8y8z8{8|8}9O9P9Q9R9S9T9U9V9W9X9Y9Z9[9]9^9_9`9a9b9c9d9e9f9g9h9i9j9k9l9m9n9o9p9q9r9s9t9u9v9w9x9y9z9{9|9}:O:P:Q:R:S:T:U:V:W:X:Y:Z:[:]:^:_:`:a:b:c:d:e<_<`p>q>t>u?O?P?Q?R?S?T?U?V?W?Y?Z?[?]?^?_?`?a?b?c?d?e?f?g?h?i?j?k?l?m?n?o?p?q?r?s?t?u?v?w?x?y?z?{?|?}@O@P@Q@R@S@T@U@VASATAUAVAWAXAYAZA[A]A^A_A`AaAbAcAdAeAfAgAhAiAjAkAlAmAnAoApAqArAsAtAuAvAwAxAyAzA{A|A}BOBPBQBRBSBTBUBVBWBXBYBZB[B]C`CaCbCcCdCeCqCsCtCuCvCwCxCyC}DODPDQDRDSDTDiDjDkDlDmDnDoDpDq9ebO[enuwxy!P!Q!T!Y![!]!^!_!e!f!n!o!t!{#]#b#d#f#g#h#j#k#l#m#n#o#p#q#r#s#t#u#x$j$k$n$o$p$r$t%P%Q%S%U%[%d%k%o%p%v%{%}&k&q&y'e'n'q'r'u'v'w(W(Z(d(k(n(q(s(v(y)R)W)Y)_)m)q)u)w)|*O*U*Z*]*`*s*|+T+Z+a+q+x+},T,W,Y,d,g,h,i,j,k,l,m,n,o,p,q,u,x,z-S-U-W-`-b-u.V.X.].^.b.e.g.i.w.}/S/U/^/b/p/w0U0V0s0x0z1O1R1W1a1c1f1j1o1w1x1z2O2S2U2W2[2^2a2h2m2q2t3P3Q3R3S3T3_3`3a3b3c3d3e3f3g3m3n3o3p3q3r3s3t3u3v3w3x3y3z3{3|3}4O4P4Q4R4S4T4U4V4W4X4Y4Z4[4]4^4_4`4a4b4c4d4e4f4g4h4i4j4k4l4m4n4o4p4q4r4s4t4u4v4w4x4y4z4{4|4}5O5P5Q5R5S5T5U5V5W5X5Y5Z5[5]5^5_5`7{7|7}8O8]8^8_8`8a8b8c8d8e8f8g8h8i8j8k8l8m8n8q8r8s8t8u8v8w8x8y8z8{8|8}9O9P9Q9R9S9T9U9V9W9X9Y9Z9[9]9^9_9`9a9b9c9d9e9f9g9h9i9j9k9l9m9n9o9p9q9r9s9t9u9v9w9x9y9z9{9|9}:O:P:Q:R:S:T:U:V:W:X:Y:Z:[:]:^:_:`:a:b:c:d:e<_<`p>q>t>u?O?P?Q?R?S?T?U?V?W?Y?Z?[?]?^?_?`?a?b?c?d?e?f?g?h?i?j?k?l?m?n?o?p?q?r?s?t?u?v?w?x?y?z?{?|?}@O@P@Q@R@S@T@U@VASATAUAVAWAXAYAZA[A]A^A_A`AaAbAcAdAeAfAgAhAiAjAkAlAmAnAoApAqArAsAtAuAvAwAxAyAzA{A|A}BOBPBQBRBSBTBUBVBWBXBYBZB[B]C`CaCbCcCdCeCqCsCtCuCvCwCxCyC}DODPDQDRDSDTDiDjDkDlDmDnDoDpDqR&i#^R&i#_+S)Z%o)W)Y)])^)_+T+},T,W,_,d,g,h,i,j,k,l,m,n,o,p,q,u,x.].^.b.e.g.i.w.}/S/U/^/b/p0U0V0s0x0z1O1R1W1a1c1f1j1w1x1z2O2S2U2W2[2^2a2h2m2q2t8]8^8_8`8a8b8c8q8r8s8t8u8v8w8x8y8z8{8|8}9O9P9Q9R9S9T9U9V9W9X9Y9Z9[9]9^9_9`9a9b9c9d9e9f9g9h9i9j9k9l9m9n9o9p9q9r9s9t9u9v9w9x9y9z9{9|9}:O:P:Q:R:S:T:U:V:W:X:Y:Z:[:]:^:_:`:a:b:c:d:e<_<`t>uASATAUAVA^A_A`AaAbAcAdAeAfAgAhAiAjAkAlAmAnAoApAqArAsAtAuAvAwAxAyAzA{A|A}BOBPBQBRBSBTBUBVBWBXBYBZB[B]C`CaCbCcCdCeC}DODPDQDRDSDTDnDoDpDqT/q,w1lU,f)`-x0eW/`,f/aC|DUTC|+y,VQ/r,wR2d1lR1j/qS(l%R=|R1k/qX/`,f/aC|DUQ,X)YV1U.}1W2^Q.c+wR/Y,aR0d/RT,b)])^U,^)])^,_R1^/UU,])])^,_R1_/U!W)_%o)W)_+T+},T,g,h,i,j,k,l,m,n,o,p,x.].^.g0s0z1O1f2W2a2qz8])Y)])^,_/S/U8]8q8u8|9T9[9c9j9q9x:P:W:_<_uATAaAeAiAmAqAuAyA}BRBVBZCctAU.i0x2UAUA_AbAfAjAnArAvAzBOBSBWB[CaCdmAV>tAVAcAgAkAoAsAwA{BPBTBXB]Ce^.v,T8q8r8s8tA^A__2Y1O<_<`t>uASATAUAVA^A_A`AaAbAcAdAeAfAgAhAiAjAkAlAmAnAoApAqArAsAtAuAvAwAxAyAzA{A|A}BOBPBQBRBSBTBUBVBWBXBYBZB[B]C`CaCbCcCdCeC}DODPDQDRDSDTDnDoDpDqQ&{#fR/Q,YT&z#f,Y0OfOR[elmnuwxy|!P!Q!T!Y![!]!^!_!`!e!f!n!o!t!{#]#b#d#g#h#j#k#l#m#n#o#p#q#r#s#t#u#x#}$j$k$n$o$p$r$t%P%Q%S%U%[%d%k%p%v%{%}&k&q&y'e'n'q'r'u'v'w(W(Z(d(k(n(q(s(v(y)R)m)q)u)w)|*O*U*Z*]*`*s*|+Z+a+q+x,z-S-U-W-`-b-u.V.X/w1o3P3Q3R3S3T3U3V3W3X3Y3Z3[3]3_3`3a3b3c3d3e3f3g3m3n3o3p3q3r3s3t3u3v3w3x3y3z3{3|3}4O4P4Q4R4S4T4U4V4W4X4Y4Z4[4]4^4_4`4a4b4c4d4e4f4g4h4i4j4k4l4m4n4o4p4q4r4s4t4u4v4w4x4y4z4{4|4}5O5P5Q5R5S5T5U5V5W5X5Y5Z5[5]5^5_5`7{7|7}8O8d8e8f8g8h8i8j8k8l8m8np>q?O?P?Q?R?S?T?U?V?W?Y?Z?[?]?^?_?`?a?b?c?d?e?f?g?h?i?j?k?l?m?n?o?p?q?r?s?t?u?v?w?x?y?z?{?|?}@O@P@Q@R@S@T@U@VAWAXAYAZA[A]CqCsCtCuCvCwCxCyDiDjDkDlDmT&z#f,YR)g%oQ#ceV*X&q*Z-bQ(k%RR8O=|R%U![R%]!]Q%Z!]R+j(s!QsO!P!Q!^!_$o$r$t%P%S%U%['n'r'u'v'w(W(n(v*s+Z+a+qQ!cRU#|lm#}W$Ww=O=P=Qf$Zx=R=S=T=U=V=W=X=Y=Z=[f$_y=]=^=_=`=a=b=c=d=e=fY%c!`#g%d'e(yZ'P#j3m3n3o=o!QjO!P!Q!^!_$o$r$t%P%S%U%['n'r'u'v'w(W(n(v*s+Z+a+qQ!bRU#zlm#}b$Vwxy=X=Z=[=c=e=fb$b|3U3V3W3X3Y3Z3[3]Y%b!`#g%d'e(yQ&u#dQ'Q#jQ-d*]U5d=O=R=]Y5e=P=S=Y=^=db5f=Q=T=U=V=W=_=`=a=bQ6`3mQ6a3nQ6b3oR>S=oR$f}Q$d}S'f$c-iQ*d'hT-k*g0PQ$e}R*e'hQ-l*gR1q0P/RqOR[elmnuwxy|!P!Q![!^!_!`!t#]#b#d#g#h#j#k#l#m#n#o#p#q#r#s#t#u#x#}$n$o$r$t%P%Q%S%U%[%d%k%p%v%{%}&k&q&y'e'n'q'r'u'v'w(W(k(n(q(v(y)R)m)q)u)w)|*O*U*Z*]*`*s*|+Z+a+q,z-S-U-W-`-b-u.V.X/w1o3P3Q3R3S3T3U3V3W3X3Y3Z3[3]3_3`3a3b3c3d3e3f3g3m3n3o3p3q3r3s3t3u3v3w3x3y3z3{3|3}4O4P4Q4R4S4T4U4V4W4X4Y4Z4[4]4^4_4`4a4b4c4d4e4f4g4h4i4j4k4l4m4n4o4p4q4r4s4t4u4v4w4x4y4z4{4|4}5O5P5Q5R5S5T5U5V5W5X5Y5Z5[5]5^5_5`8O8d8e8f8g8h8i8j8k8l8m8np>q?O?P?Q?R?S?T?U?V?W?Y?Z?[?]?^?_?`?a?b?c?d?e?f?g?h?i?j?k?l?m?n?o?p?q?r?s?t?u?v?w?x?y?z?{?|?}@O@P@Q@R@S@T@U@VAWAXAYAZA[A]CqCsCtCuCvCwCxCyDiDjDkDlDm/RmOR[elmnuwxy|!P!Q![!^!_!`!t#]#b#d#g#h#j#k#l#m#n#o#p#q#r#s#t#u#x#}$n$o$r$t%P%Q%S%U%[%d%k%p%v%{%}&k&q&y'e'n'q'r'u'v'w(W(k(n(q(v(y)R)m)q)u)w)|*O*U*Z*]*`*s*|+Z+a+q,z-S-U-W-`-b-u.V.X/w1o3P3Q3R3S3T3U3V3W3X3Y3Z3[3]3_3`3a3b3c3d3e3f3g3m3n3o3p3q3r3s3t3u3v3w3x3y3z3{3|3}4O4P4Q4R4S4T4U4V4W4X4Y4Z4[4]4^4_4`4a4b4c4d4e4f4g4h4i4j4k4l4m4n4o4p4q4r4s4t4u4v4w4x4y4z4{4|4}5O5P5Q5R5S5T5U5V5W5X5Y5Z5[5]5^5_5`8O8d8e8f8g8h8i8j8k8l8m8np>q?O?P?Q?R?S?T?U?V?W?Y?Z?[?]?^?_?`?a?b?c?d?e?f?g?h?i?j?k?l?m?n?o?p?q?r?s?t?u?v?w?x?y?z?{?|?}@O@P@Q@R@S@T@U@VAWAXAYAZA[A]CqCsCtCuCvCwCxCyDiDjDkDlDmR(}'`T$Qlm$dnORnwxy|!P!Q!^!_!`#]#g#h#j#k#l#m#n#o#p#q#r#s#t#x$o$r$t%P%Q%S%U%[%d&y'e'n'r'u'v'w(W(n(v(y*O*`*s+Z+a+q-S=O=P=Q=R=S=T=U=V=W=X=Y=Z=[=]=^=_=`=a=b=c=d=e=f=m=o![3P[!t$n%k%{)q)w*|-W-u3P3U3_3f3o3p3w4O4V4^4e4l4s4z5R5Y8d8hp>qCq`&f#]3_3`3a3b=l?U?Va-Z*O8d8e8f8g>pAWAX/RpOR[elmnuwxy|!P!Q![!^!_!`!t#]#b#d#g#h#j#k#l#m#n#o#p#q#r#s#t#u#x#}$n$o$r$t%P%Q%S%U%[%d%k%p%v%{%}&k&q&y'e'n'q'r'u'v'w(W(k(n(q(v(y)R)m)q)u)w)|*O*U*Z*]*`*s*|+Z+a+q,z-S-U-W-`-b-u.V.X/w1o3P3Q3R3S3T3U3V3W3X3Y3Z3[3]3_3`3a3b3c3d3e3f3g3m3n3o3p3q3r3s3t3u3v3w3x3y3z3{3|3}4O4P4Q4R4S4T4U4V4W4X4Y4Z4[4]4^4_4`4a4b4c4d4e4f4g4h4i4j4k4l4m4n4o4p4q4r4s4t4u4v4w4x4y4z4{4|4}5O5P5Q5R5S5T5U5V5W5X5Y5Z5[5]5^5_5`8O8d8e8f8g8h8i8j8k8l8m8np>q?O?P?Q?R?S?T?U?V?W?Y?Z?[?]?^?_?`?a?b?c?d?e?f?g?h?i?j?k?l?m?n?o?p?q?r?s?t?u?v?w?x?y?z?{?|?}@O@P@Q@R@S@T@U@VAWAXAYAZA[A]CqCsCtCuCvCwCxCyDiDjDkDlDm!QsO!P!Q!^!_$o$r$t%P%S%U%['n'r'u'v'w(W(n(v*s+Z+a+qQ!cRZ%c!`#g%d'e(y!QRO!P!Q!^!_$o$r$t%P%S%U%['n'r'u'v'w(W(n(v*s+Z+a+qQ!`RW#gijrsW%`#g%d'e(yW%d!a!b!c!dR(y%eQ'p$hR*l'pS,e)`)gU/_,e0W1yS0W-x-|T1y0e0iS,{)h)iR/x,{Q+X(aR.R+XQ-Q)nR/z-QQ)l%wR,})lQ%|!sU)r%|)x*}Q)x&RT*}(S(hQ!v[[&T!v&V&X(R)O=kQ&V!xQ&X!zU(R$n%Q&yQ)O%kR=kO=lQ>T=qQ>U=rQ>V=sQ>W=tQ>X=uQ>Y=vQ>Z=wQ>[=xQ>]=yQ>^CsQ>_CtQ>`CuQ>aCvQ>bCwQ>cCxQ>dCyQ>e=zU>g%})u-UQ>r>pQ>s>qQ@W?UQ@X?VQ@Y?^Q@Z?_Q@[?`Q@]?aQ@^?bQ@_?cQ@`?dQ@a?eQ@b?fQ@c?gQ@d?hQ@e?iQ@f?jQ@g?kQ@h?lQ@i?mQ@j?nQ@k?oQ@l?pQ@m?qQ@n?rQ@o?sQ@p?tQ@q?uQ@r?vQ@s?wQ@t?xQ@u?yQ@v?zQ@w?{Q@x?|Q@y?}Q@z@OQ@{@PQ@|@QQ@}@RQAO@SQAP@TQAQ@UQAR@VQB^AWQB_AXQB`AYQBaAZQBbA[QBcA]QCzDiQC{=}QD]DjQD^DkQD_DlRD`Dm/QqOR[elmnuwxy|!P!Q![!^!_!`!t#]#b#d#g#h#j#k#l#m#n#o#p#q#r#s#t#u#x#}$n$o$r$t%P%Q%S%U%[%d%k%p%v%{%}&k&q&y'e'n'q'r'u'v'w(W(k(n(q(v(y)R)m)q)u)w)|*O*U*Z*]*`*s*|+Z+a+q,z-S-U-W-`-b-u.V.X/w1o3P3Q3R3S3T3U3V3W3X3Y3Z3[3]3_3`3a3b3c3d3e3f3g3m3n3o3p3q3r3s3t3u3v3w3x3y3z3{3|3}4O4P4Q4R4S4T4U4V4W4X4Y4Z4[4]4^4_4`4a4b4c4d4e4f4g4h4i4j4k4l4m4n4o4p4q4r4s4t4u4v4w4x4y4z4{4|4}5O5P5Q5R5S5T5U5V5W5X5Y5Z5[5]5^5_5`8O8d8e8f8g8h8i8j8k8l8m8np>q?O?P?Q?R?S?T?U?V?W?Y?Z?[?]?^?_?`?a?b?c?d?e?f?g?h?i?j?k?l?m?n?o?p?q?r?s?t?u?v?w?x?y?z?{?|?}@O@P@Q@R@S@T@U@VAWAXAYAZA[A]CqCsCtCuCvCwCxCyDiDjDkDlDm+T)c%o)W)Y)])^)_+T+},T,W,_,d,g,h,i,j,k,l,m,n,o,p,q,u,x.].^.b.e.g.i.w.}/S/U/^/b/p0U0V0s0x0z1O1R1W1a1c1f1j1w1x1z2O2S2U2W2[2^2a2h2m2q2t8]8^8_8`8a8b8c8q8r8s8t8u8v8w8x8y8z8{8|8}9O9P9Q9R9S9T9U9V9W9X9Y9Z9[9]9^9_9`9a9b9c9d9e9f9g9h9i9j9k9l9m9n9o9p9q9r9s9t9u9v9w9x9y9z9{9|9}:O:P:Q:R:S:T:U:V:W:X:Y:Z:[:]:^:_:`:a:b:c:d:e<_<`t>uASATAUAVA^A_A`AaAbAcAdAeAfAgAhAiAjAkAlAmAnAoApAqArAsAtAuAvAwAxAyAzA{A|A}BOBPBQBRBSBTBUBVBWBXBYBZB[B]C`CaCbCcCdCeC}DODPDQDRDSDTDnDoDpDqZ!z[$n%Q&yp>q?O?P?Q?R?S?T?U?V?W?Y?Z?[?]?^?_?`?a?b?c?d?e?f?g?h?i?j?k?l?m?n?o?p?q?r?s?t?u?v?w?x?y?z?{?|?}@O@P@Q@R@S@T@U@VAWAXAYAZA[A]CqCsCtCuCvCwCxCyDiDjDkDlDmS$l!T$pQ$z!YS%V!](sQ%f!eS%g!f7|W%r!n!{(d+xQ%t!oQ'|$jQ(O$kQ5x=gQ5y=hQ5z=iQ5{(ZQ5|7{T5}7}=jQ)`%ob+y)W+}.^.g0s0z2W2a2qQ,V)YU,[)])^,_h,c)_8]8^8_8`8a8b8cASATAUAVQ-x+TQ.u,TW.{,W.}1W2^^/Z,d/^0V1c1w1x2hh/c,g8u8v8w8x8y8z8{A`AaAbAcQ/d,hQ/e,iQ/f,jQ/g,kQ/h,lQ/i,mQ/j,nQ/k,oQ/l,pQ/m,qQ/o,uQ/s,xQ0e.]Q0n.bQ0p.eU0u.i0x2UU1P.w1R2[Q1Z/SQ1]/UQ1e/bQ1u0UQ2X1OQ2_1aQ2`1fQ2c1jQ2i1zU2j2O2m2tQ:q8qQ:r8rQ:s8sQ:t8tQ:u8|Q:v8}Q:w9OQ:x9PQ:y9QQ:z9RQ:{9SQ:|9TQ:}9UQ;O9VQ;P9WQ;Q9XQ;R9YQ;S9ZQ;T9[Q;U9]Q;V9^Q;W9_Q;X9`Q;Y9aQ;Z9bQ;[9cQ;]9dQ;^9eQ;_9fQ;`9gQ;a9hQ;b9iQ;c9jQ;d9kQ;e9lQ;f9mQ;g9nQ;h9oQ;i9pQ;j9qQ;k9rQ;l9sQ;m9tQ;n9uQ;o9vQ;p9wQ;q9xQ;r9yQ;s9zQ;t9{Q;u9|Q;v9}Q;w:OQ;x:PQ;y:QQ;z:RQ;{:SQ;|:TQ;}:UQvC}Q>wDOQ>xDPQ>yDQQ>zDRQ>{DSQ>|DTS>}/p2SQBdA^QBeA_QBfAdQBgAeQBhAfQBiAgQBjAhQBkAiQBlAjQBmAkQBnAlQBoAmQBpAnQBqAoQBrApQBsAqQBtArQBuAsQBvAtQBwAuQBxAvQByAwQBzAxQB{AyQB|AzQB}A{QCOA|QCPA}QCQBOQCRBPQCSBQQCTBRQCUBSQCVBTQCWBUQCXBVQCYBWQCZBXQC[BYQC]BZQC^B[QC_B]QCfC`QCgCaQChCbQCiCcQCjCdQCkCeQDV>tQDW>uQDeDnQDfDoQDgDpRDhDqQ$v!XW(_$w+W.Q0[R-}+VQ(a$wV.O+W.Q0[:hYOR[^elmnuwxy|!P!Q!T!X!Y![!]!^!_!`!e!f!n!o!t!{#]#b#d#g#h#j#k#l#m#n#o#p#q#r#s#t#u#x#}$j$k$n$o$p$r$t$w%P%Q%S%U%[%d%k%o%p%v%{%}&k&q&y'e'n'q'r'u'v'w(W(Z(d(k(n(q(s(v(y)R)W)Y)])^)_)m)q)u)w)|*O*U*Z*]*`*g*s*|+T+V+W+Z+a+q+x+},T,W,_,d,g,h,i,j,k,l,m,n,o,p,q,u,x,z-S-U-W-`-b-u.Q.V.X.].^.b.e.g.i.w.}/S/U/^/b/p/w0P0R0U0V0[0s0x0z1O1R1W1a1c1f1j1o1w1x1z2O2S2U2W2[2^2a2h2m2q2t3P3Q3R3S3T3U3V3W3X3Y3Z3[3]3_3`3a3b3c3d3e3f3g3m3n3o3p3q3r3s3t3u3v3w3x3y3z3{3|3}4O4P4Q4R4S4T4U4V4W4X4Y4Z4[4]4^4_4`4a4b4c4d4e4f4g4h4i4j4k4l4m4n4o4p4q4r4s4t4u4v4w4x4y4z4{4|4}5O5P5Q5R5S5T5U5V5W5X5Y5Z5[5]5^5_5`7{7|7}8O8]8^8_8`8a8b8c8d8e8f8g8h8i8j8k8l8m8n8q8r8s8t8u8v8w8x8y8z8{8|8}9O9P9Q9R9S9T9U9V9W9X9Y9Z9[9]9^9_9`9a9b9c9d9e9f9g9h9i9j9k9l9m9n9o9p9q9r9s9t9u9v9w9x9y9z9{9|9}:O:P:Q:R:S:T:U:V:W:X:Y:Z:[:]:^:_:`:a:b:c:d:e<_<`p>q>t>u?O?P?Q?R?S?T?U?V?W?Y?Z?[?]?^?_?`?a?b?c?d?e?f?g?h?i?j?k?l?m?n?o?p?q?r?s?t?u?v?w?x?y?z?{?|?}@O@P@Q@R@S@T@U@VASATAUAVAWAXAYAZA[A]A^A_A`AaAbAcAdAeAfAgAhAiAjAkAlAmAnAoApAqArAsAtAuAvAwAxAyAzA{A|A}BOBPBQBRBSBTBUBVBWBXBYBZB[B]C`CaCbCcCdCeCqCsCtCuCvCwCxCyC}DODPDQDRDSDTDiDjDkDlDmDnDoDpDq!O#oi!a$U$a%a&e&|'O'T'W'X'Y'Z'['_(g-Y-h5a5b5c6W6^l,k)`+y-x.u/e/h/i/j/k/l/s0e2X2`l4^!q5s6P6Z6_6j7P7W7_7f7m7t:f:jr4_#a#y+b+n5t6Q6T6[6k7Q7X7`7g7n7u:g:kj4`5u6R6U6]6l7R7Y7a7h7o7v:h:lf4a5v6V6m7S7Z7b7i7p7w8p:mj4b$T%T*o6S6n7T7[7c7j7q7x:i:nv4c&t)h)j*S+h-c/t0_5w6X6Y6o7U7]7d7k7r7y:oz4d']6p7V7^7e7l7s7z:p>^>_>`>a>b>c>dCzD]D^D_D`l9c,V,[1Z1]:q:|;c;j;q;x}p9g/o0n0p1P1u2_2i2j;Q;g;n;u;|v>w>x>y>z>{>|DeDfDgDhf=t>O>U>X>Y>Z>[>]>e>g>r>sf?j&o@W@^@j@n@r@v@zAOB^B`d?k@X@_@k@o@s@w@{APB_Bab?l-O@`@l@p@t@x@|AQBbd?m-X@a@m@q@u@y@}ARBcC{dApBdBjBvBzCOCSCWC[CfChbAqBkBwB{CPCTCXC]CiDWfAr0uBeBlBxB|CQCUCYC^CgCjcAsBmByB}CRCVCZC_CkDV:hYOR[^elmnuwxy|!P!Q!T!X!Y![!]!^!_!`!e!f!n!o!t!{#]#b#d#g#h#j#k#l#m#n#o#p#q#r#s#t#u#x#}$j$k$n$o$p$r$t$w%P%Q%S%U%[%d%k%o%p%v%{%}&k&q&y'e'n'q'r'u'v'w(W(Z(d(k(n(q(s(v(y)R)W)Y)])^)_)m)q)u)w)|*O*U*Z*]*`*g*s*|+T+V+W+Z+a+q+x+},T,W,_,d,g,h,i,j,k,l,m,n,o,p,q,u,x,z-S-U-W-`-b-u.Q.V.X.].^.b.e.g.i.w.}/S/U/^/b/p/w0P0R0U0V0[0s0x0z1O1R1W1a1c1f1j1o1w1x1z2O2S2U2W2[2^2a2h2m2q2t3P3Q3R3S3T3U3V3W3X3Y3Z3[3]3_3`3a3b3c3d3e3f3g3m3n3o3p3q3r3s3t3u3v3w3x3y3z3{3|3}4O4P4Q4R4S4T4U4V4W4X4Y4Z4[4]4^4_4`4a4b4c4d4e4f4g4h4i4j4k4l4m4n4o4p4q4r4s4t4u4v4w4x4y4z4{4|4}5O5P5Q5R5S5T5U5V5W5X5Y5Z5[5]5^5_5`7{7|7}8O8]8^8_8`8a8b8c8d8e8f8g8h8i8j8k8l8m8n8q8r8s8t8u8v8w8x8y8z8{8|8}9O9P9Q9R9S9T9U9V9W9X9Y9Z9[9]9^9_9`9a9b9c9d9e9f9g9h9i9j9k9l9m9n9o9p9q9r9s9t9u9v9w9x9y9z9{9|9}:O:P:Q:R:S:T:U:V:W:X:Y:Z:[:]:^:_:`:a:b:c:d:e<_<`p>q>t>u?O?P?Q?R?S?T?U?V?W?Y?Z?[?]?^?_?`?a?b?c?d?e?f?g?h?i?j?k?l?m?n?o?p?q?r?s?t?u?v?w?x?y?z?{?|?}@O@P@Q@R@S@T@U@VASATAUAVAWAXAYAZA[A]A^A_A`AaAbAcAdAeAfAgAhAiAjAkAlAmAnAoApAqArAsAtAuAvAwAxAyAzA{A|A}BOBPBQBRBSBTBUBVBWBXBYBZB[B]C`CaCbCcCdCeCqCsCtCuCvCwCxCyC}DODPDQDRDSDTDiDjDkDlDmDnDoDpDqx#qi!a$U$a%a&e&|'O'T'W'Z'[(g-Y-h5a5b5c6W6^f,m)`+y-x.u/e/h/k/l0e2X2`f4l!q5s6P6Z6_6j7P7f7m:f:jl4m#a#y+b+n5t6Q6T6[6k7Q7g7n:g:kd4n5u6R6U6]6l7R7h7o:h:l`4o5v6V6m7S7i7p8p:md4p$T%T*o6S6n7T7j7q:i:np4q&t)h)j*S+h-c/t0_5w6X6Y6o7U7k7r:ot4r']6p7V7l7s:p>^>_>`>a>b>c>dCzD]D^D_D`f9q,V,[1Z1]:q:|;c;x}j9u/o0n0p1P1u2_2i2j;Q;g;|v>w>x>y>z>{>|DeDfDgDh`=v>O>U>X>[>]>g>r>s`?r&o@W@^@j@v@zB^B`^?s@X@_@k@w@{B_Ba[?t-O@`@l@x@|Bb^?u-X@a@m@y@}BcC{^AxBdBjBvCSCWCfCh[AyBkBwCTCXCiDW`Az0uBeBlBxCUCYCgCj]A{BmByCVCZCkDVU!x[%kt>uASATAUAVA^A_A`AaAbAcAdAeAfAgAhAiAjAkAlAmAnAoApAqArAsAtAuAvAwAxAyAzA{A|A}BOBPBQBRBSBTBUBVBWBXBYBZB[B]C`CaCbCcCdCeC}DODPDQDRDSDTDnDoDpDqQ.`+uR0m.aS,R)W.^R.n+}Q+|)WS.m+}.^^0q.g0s0z2S2W2a2qU0v.i0x2UR1h/pS#Q_#RS#U`#VT#Xa#YT,S)W/pW,t)`+y-x0eR.z,VR/X,`R-f*^g$[x=R=S=T=U=V=W=X=Y=Z=[g$`y=]=^=_=`=a=b=c=d=e=fR-n*gR'c$O",nodeNames:"⚠ Identifier BlockComment Comment SourceFile IfStatement IfClause if ElseifClause IfClause elseif ElseClause else end TryStatement try CatchClause catch CatchBinding TryElseClause FinallyClause finally ForStatement for ForBinding TupleExpression AssignmentExpression LonelyType :: <: Type InterpolationExpression FieldExpression FieldName QuoteExpression SubscriptExpression ListCompherension PrimitiveDefinition primitive type Definition Number AbstractDefinition abstract Definition StructDefinition mutable struct Definition ModuleDefinition module Definition BareModuleDefinition baremodule Definition MacroDefinition macro Definition FieldExpression SubscriptExpression AssignmentExpression AssignmentExpression ParameterizedIdentifier TypeArgumentList ParenthesizedExpression AssignmentExpression Operator in isa pipe< pipe> ArgumentList ListCompherension ForClause IfClause Parameters FunctionDefinition function Definition TypedExpression CallExpression BroadcastDot DoClause do DoClauseArguments CallExpression where TypeParameters MacroExpression MacroIdentifier MacroName Operator MacroFieldExpression FieldExpression SubscriptExpression AssignmentExpression Symbol SymbolName CallExpression BroadcastDot ArgumentList AssignmentExpression Parameters BooleanLiteral Character String $ ( ) TripleString CommandString PrefixedString Prefix FieldEpxression String TripleString CommandString ParenthesizedExpression TupleExpression ArrayExpression ArrayComprehensionExpression ForClause ForBinding AssignOperator = ∈ IfClause MatrixExpression MatrixRow GeneratorExpression TypedExpression ParameterizedIdentifier TypeArgumentList begin MacroFieldName MacroArgumentList AssignmentExpression BareTupleExpression UnaryExpression Operator BinaryExpression TernaryExpression FunctionExpression AssignmentExpression CoefficientExpression TransposeExpression Coefficient CallExpression FieldExpression ParenthesizedExpression SpreadExpression AssignmentExpression ArrayExpression ArrayComprehensionExpression MatrixExpression MatrixRow GeneratorExpression TypedExpression SubtypedExpression ParameterizedIdentifier AssignOperator WhileStatement while WhileBinding LetStatement let LetBinding VariableDeclaration ConstStatement const AssignmentExpression BareTupleExpression GlobalStatement global LocalStatement local QuoteStatement quote BreakStatement break ContinueStatement continue ReturnStatement return ImportStatement using import Import ScopedIdentifier RenamedIdentifier as SelectedImport RenamedImport ExportStatement export CompoundExpression MacroExpression MacroFieldExpression MacroFieldName MacroArgumentList UnaryExpression Operator BinaryExpression TernaryExpression FunctionExpression AssignmentExpression CoefficientExpression TransposeExpression SpreadExpression FunctionAssignmentExpression",maxTerm:333,nodeProps:[["closedBy",-2,5,8,"end else elseif",-15,11,20,22,37,42,45,49,52,55,76,82,161,164,176,195,"end",14,"end catch else finally",16,"end else finally",19,"finally end",-9,35,59,94,119,120,127,152,153,154,"]",-2,63,132,"}",-7,64,71,100,117,129,149,156,")"],["group",-35,7,10,12,13,15,17,21,23,38,39,43,46,47,50,53,56,67,68,77,83,86,133,162,165,169,173,175,177,179,181,183,185,186,190,194,"keyword",-9,28,29,66,91,106,107,108,124,125,"operator"]],skippedNodes:[0,2,3],repeatNodeCount:36,tokenData:"#%S~R.[XYHwYZHwpqHwqrJursK[stKotuLWuvL]vwLjwxLzxyNWyzN]z{L]{|Nb|}Nj}!ONo!O!P! _!P!Q!He!Q!R!Me!R![!N_![!]#!c!]!^#!s!^!_#!x!_!`##b!`!a!Js!b!c##o!}#O##t#O#P!Kc#P#Q##y#Q#R!Kh#S#T#$O#o#p#$T#p#q#$Y#q#r#$v#r#s!Lx$r$s!KR$w$x!L_%o%p!Kc&a&bL]%!]%!^!Kc%#t%#u! T%#u%#v!MP%#v%#w! T%#w%#x!MP%#x%#y! T%$O%$P! T%$P%$Q! T%$Q%$R! T%$R%$S! T%$S%$T! T%$U%$V! T%$W%$X! T%$X%$Y! T%$Y%$Z! T%$[%$]! T%$_%$`! T%$`%$a! T%$a%$b! T%$b%$c! T%$d%$e! T%$r%$s! T%$s%$t! T%$v%$w! T%$w%$x! T%$z%${! T%$|%$}! T%$}%%O! T%%P%%Q! T%%R%%S! T%%S%%T! T%%T%%U! T%%U%%V! T%%V%%W! T%%W%%X! T%%Y%%Z! T%%[%%]! T%%b%%c! T%%c%%d! T%%d%%e! T%%e%%f! T%%h%%i! T%%j%%k! T%%|%%}! T%%}%&O!MP%&O%&P! T%&P%&Q! T%&Q%&R! T%&R%&S! T%&S%&T! T%&T%&U! T%&U%&V! T%&V%&W! T%&W%&X! T%&X%&Y! T%&b%&c#${%&c%&dKV%&d%&eKV%&e%&fKV%&f%&gKV%&g%&hKV%&m%&n!L_%&n%&o!L_%&q%&r!Kc%&r%&s!Kc%&s%&t!Kc%&t%&u!KR%&u%&v!KR%&v%&w!KR%&w%&xKV%'O%'P!Kc%'P%'QKV%'Q%'RKV%'R%'S!Kc%'S%'T!L_%'T%'U!Kc%'U%'V!L_%'c%'dKV%'d%'e!L_%'f%'gKV%'g%'hKV%'i%'jKV%'j%'kKV%'l%'m!Kc%'m%'nKV%'n%'o!MU%'o%'pKV%'p%'qKV%'q%'rKV%'r%'sKV%'s%'tKV%'t%'uKV%'u%'vKV%'v%'wKV%'w%'xKV%'x%'yKV%'y%'zKV%'z%'{KV%'{%'|!L_%'|%'}KV%'}%(OKV%(O%(PKV%(P%(QKV%(Q%(RLe%(R%(SLe%(S%(TKV%(T%(UKV%(U%(VKV%(V%(WKV%(W%(XKV%(X%(YKV%(Y%(ZKV%(Z%([KV%([%(]KV%(]%(^KV%(^%(_KV%(_%(`KV%(`%(aKV%(a%(bKV%(b%(cKV%(c%(dKV%(d%(eKV%(e%(fKV%(f%(gKV%(g%(hKV%(h%(iKV%(i%(jKV%(j%(kKV%(k%(lKV%(l%(mKV%(m%(nKV%(n%(oKV%(o%(pKV%(p%(qKV%(q%(rKV%(r%(sKV%(s%(tKV%(t%(uKV%(u%(vKV%(v%(wKV%(w%(xKV%(x%(yKV%(y%(zKV%(z%({KV%({%(|KV%(|%(}KV%(}%)OKV%)O%)PKV%)P%)QKV%)Q%)RKV%)R%)SKV%)S%)TKV%)T%)UKV%)U%)VKV%)V%)WKV%)W%)XKV%)X%)YKV%)Y%)ZKV%)Z%)[KV%)]%)^!Kc%)^%)_!L_%)_%)`KV%)`%)aKV%)a%)bKV%)b%)cKV%)c%)d!Kc%)d%)e!L_%)e%)f!L_%)f%)g!L_%)g%)h!Kc%)h%)i!Kc%)i%)j!Kc%)j%)k!Kc%)k%)l!Kc%)l%)mKV%)n%)o!L_%)o%)p!L_%)p%)q!Kc%)q%)r!Kc%)r%)sKV%)s%)tKV%)y%)zKV%)|%)}KV%*O%*PKV%*Q%*RKV%*R%*SKV%*S%*TKV%*T%*UKV%*U%*VKV%*V%*WKV%*W%*XKV%*X%*YKV%*]%*^!M]%*^%*_!Kc%*_%*`!L_%*f%*g!Kc%*g%*h!Kc%*h%*i!Kc%*i%*j!Kc%*k%*l!Kc%*l%*m!Kc%*m%*n!Kc%*n%*o!Kc%*o%*pKV%*p%*q!L_%*q%*r!Kc%*r%*sKV%*s%*tKV%*t%*u!Kc%*u%*v!L_%*w%*xKV%*x%*yKV%*y%*zKV%*z%*{KV%*{%*|KV%*|%*}KV%*}%+OKV%+O%+PKV%+P%+QKV%+Q%+RKV%+R%+SKV%+S%+TKV%+T%+UKV%+U%+VKV%+V%+WKV%+W%+XKV%+X%+YKV%+Y%+ZKV%+Z%+[KV%+[%+]KV%+]%+^KV%+^%+_KV%+_%+`KV%+`%+aKV%+a%+bKV%+f%+gKV%+g%+hKV%+h%+iKV%+i%+jKV%+j%+kKV%+k%+lKV%+l%+mKV%+m%+nKV%+n%+oKV%+o%+pKV%+p%+qKV%+q%+rKV%+r%+sKV%+s%+tKV%:y%:z!Kc%F[%F]KV%Fb%FcKV%Fc%FdKV%Fk%Fl!Kc%Fl%FmKV%Fo%Fp!Kc%Fp%Fq!Kc%Fq%Fr!Kc%G[%G]!MP%G]%G^!MP%Ga%Gb! T%Gb%Gc! T%Gc%Gd! T%Ge%Gf! T%Gf%Gg! T%Gg%Gh! T%Gh%Gi! T%Gi%Gj! T%Gj%Gk! T%Gk%Gl! T%MW%MX! T%MX%MY! T%MY%MZ! T%MZ%M[! T%M[%M]! T%M]%M^! T%M^%M_! T%M_%M`! T%M`%Ma!MP%Ma%Mb!MP%Mb%Mc!MP%Mc%Md!MP%Md%Me! T%Me%Mf! T%Mf%Mg! T%Mg%Mh! T%Mh%Mi! T%Mi%Mj! T%Mj%Mk!MP%Mk%Ml!MP%Ml%Mm! T%Mm%Mn! T%Mn%Mo! T%Mo%Mp! T%Mp%Mq! T%Mu%Mv! T%Mv%Mw! T%Mw%Mx! T%Mx%My! T%Nn%No! T%No%Np! T%Np%Nq! T%Nq%Nr! T%Nr%Ns! T%Ns%Nt!MP%Nt%Nu! T%Nu%Nv! T%Nv%Nw!MP%Nw%Nx!MP%Nx%Ny! T%Ny%Nz!MP%Nz%N{! T%N{%N|!MP%N|%N}! T%N}& O! T& O& P!MP& P& Q!MP& Q& R! T& R& S! T& S& T!MP& T& U!MP& U& V! T& V& W! T& W& X!MP& X& Y!MP& Y& Z! T& Z& [! T& [& ]!MP& ]& ^!MP& ^& _! T& _& `!MP& `& a! T& a& b!MP& b& c! T& c& d! T& d& e! T& e& f! T& f& g! T& g& h! T& h& i! T& i& j! T& j& k!MP& k& l!MP& l& m! T&#V&#WKV&#W&#X!Kc&#[&#]!Kc&#^&#_!Kc&#_&#`!Kc&#`&#aKV&#a&#bKV&$R&$SKV&$T&$UKV&$U&$VKV&$V&$WKV&$f&$g! T&$h&$i!Kc&$i&$j!Kc&$l&$m!L_&$m&$n!L_&$y&$z!Kc&$z&${!L_&%a&%b!Kc&%f&%g!L_&%g&%h!L_&%h&%i!L_&%i&%j!L_&%j&%k!L_&%k&%l!L_&%l&%m!L_&%m&%n!L_&%n&%o!L_&%o&%p!L_&%p&%q!L_&%q&%r!L_&%r&%s!L_&%t&%u!Kc&%u&%v!Kc&%v&%w!Kc&%w&%x!Kc&%x&%y!Kc&%y&%z!Kc&%z&%{!Kc&%{&%|!Kc&%|&%}!Kc&%}&&O!L_&&O&&P!L_&&P&&Q!Kc&&Q&&R!Kc&&R&&S!Kc&&U&&V!Kc&&V&&W!L_&&W&&X!L_&&X&&Y!Kc&&Y&&Z!Kc&&Z&&[!L_&&`&&a!L_&&a&&b!Kc&&b&&c!L_&&c&&d!Kc&&d&&e!Kc&&e&&f!L_&&f&&g!L_&&g&&h!Kc&&h&&i!L_&&i&&j!Kc&&j&&k!L_&&k&&l!Kc&&l&&m!L_&&m&&n!L_&&n&&o!Kc&&p&&q!Kc&&q&&r!L_&&r&&s!Kc&&s&&t!L_&&t&&u!Kc&&u&&v!Kc&&v&&w!Kc&&w&&x!L_&&x&&y!L_&&y&&z!L_&&|&&}KV&&}&'OKV&'Q&'RKV&'R&'SKV&'S&'TKV&'T&'UKV&'U&'VKV&'V&'WKV&'W&'XKV&'X&'YKV&'Y&'ZKV&'Z&'[KV&'[&']Le&']&'^KV&'^&'_KV&'_&'`KV&'`&'aKV&'a&'bKV&'b&'cKV&'c&'dKV&'d&'eKV&'e&'fKV&'f&'gKV&'g&'hKV&'h&'iKV&'i&'jKV&'j&'kKV&'k&'lKV&'l&'mKV&'m&'nKV&'n&'oKV&'o&'pKV&'p&'qKV&'q&'rKV&'r&'sKV&'s&'tKV&'t&'uKV&'u&'vKV&'v&'wKV&'w&'xKV&'x&'yKV&'y&'zKV&'z&'{KV&'{&'|KV&'|&'}KV&'}&(OKV&(O&(PKV&(P&(QKV&(Q&(RKV&(R&(SKV&(S&(TKV&(T&(UKV&(U&(VKV&(V&(WKV&(W&(XKV&(X&(YKV&(Y&(ZKV&(Z&([KV&([&(]KV&(]&(^KV&(^&(_KV&(_&(`KV&(`&(aKV&(a&(bKV&(b&(cKV&(c&(dKV&(d&(eKV&(e&(fKV&(f&(gKV&(g&(hKV&(h&(iKV&(i&(jKV&(j&(kKV&(k&(lKV&(l&(mKV&(m&(nKV&(n&(oKV&(o&(pKV&(p&(qKV&(q&(rKV&(r&(sKV&(s&(tKV&(t&(uKV&(u&(vKV&(v&(wKV&(w&(xKV&(x&(yKV&(y&(zKV&(z&({KV&({&(|KV&(|&(}KV&(}&)OKV&)O&)PKV&)P&)QKV&)Q&)RKV&)R&)SKV&)S&)TKV&)T&)UKV&)U&)VKV&)V&)WKV&)W&)XKV&)X&)YKV&)Y&)ZKV&)Z&)[KV&)[&)]KV&)]&)^KV&)^&)_KV&)_&)`KV&)`&)aKV&)a&)bKV&)b&)cKV&)c&)dKV&)d&)eKV&)e&)fKV&)g&)h!Kc&*T&*UKV&*U&*VKV&*V&*WKV&*W&*XKV&+`&+a! T&+a&+b! T&+b&+c! T&+c&+d! T&+d&+e! T&+e&+f! T&+f&+g! T&+g&+h! T&+h&+i! T&+i&+j! T&+j&+k! T&+k&+l! T&+l&+m! T&+m&+n! T&+n&+o! T&+o&+p! T&+p&+q! T&+q&+r! T&+r&+s! T&+s&+t! T&+t&+u! T&+w&+x! T&+x&+y! T&+y&+z! T&+z&+{! T&+{&+|! T&+|&+}! T?MX?MY! T?MY?MZ!MP?MZ?M[! T?M[?M]!MP~H|T&s~XYI]YZI]pqI]![!]Io!a!bJZ~I`TXYI]YZI]pqI]![!]Io!a!bJZ~IrRXYI{YZI{pqI{~JQR(R~XYI{YZI{pqI{~J^RXYJgYZJgpqJg~JlR(Q~XYJgYZJgpqJg~JzP'a~!_!`J}PKSP'gP!_!`KVPK[O'gP~KaP'u~rsKd~KgPrsKj~KoO'w~~KtSR~OYKoZ;'SKo;'S;=`LQ<%lOKo~LTP;=`<%lKo~L]O'R~~LbP'e~!_!`Le~LjO&|~~LoQ'e~vwLu!_!`Le~LzO(P~RMPU(TQOwMcx#OMc#O#PMn#P;'SMc;'S;=`NQ<%lOMcPMfPwxMiPMnO#[PPMqTOwMcwxMix;'SMc;'S;=`NQ<%lOMcPNTP;=`<%lMc~N]O&y~~NbO'_~~NgP'd~!_!`Le~NoO'Y~~NtR'd~}!ON}!_!`Le!`!a! Y~! QP!`!a! T~! YO'h~~! _O(S~~! d-w'S~qrJuuvL]vwL]z{L]{|Nb}!O!G}!O!P!HY!P!Q!He!Q![!Hv!^!_!Is!_!`!Jc!`!a!Js#O#P!Kc#Q#R!Kh#p#q!Kp#r#s!Lx$r$s!KR$w$x!L_%o%p!Kc&a&bL]%!]%!^!Kc%#t%#u! T%#u%#v!MP%#v%#w! T%#w%#x!MP%#x%#y! T%$O%$P! T%$P%$Q! T%$Q%$R! T%$R%$S! T%$S%$T! T%$U%$V! T%$W%$X! T%$X%$Y! T%$Y%$Z! T%$[%$]! T%$_%$`! T%$`%$a! T%$a%$b! T%$b%$c! T%$d%$e! T%$r%$s! T%$s%$t! T%$v%$w! T%$w%$x! T%$z%${! T%$|%$}! T%$}%%O! T%%P%%Q! T%%R%%S! T%%S%%T! T%%T%%U! T%%U%%V! T%%V%%W! T%%W%%X! T%%Y%%Z! T%%[%%]! T%%b%%c! T%%c%%d! T%%d%%e! T%%e%%f! T%%h%%i! T%%j%%k! T%%|%%}! T%%}%&O!MP%&O%&P! T%&P%&Q! T%&Q%&R! T%&R%&S! T%&S%&T! T%&T%&U! T%&U%&V! T%&V%&W! T%&W%&X! T%&X%&Y! T%&b%&cKV%&c%&dKV%&d%&eKV%&e%&fKV%&f%&gKV%&g%&hKV%&m%&n!L_%&n%&o!L_%&q%&r!Kc%&r%&s!Kc%&s%&t!Kc%&t%&u!KR%&u%&v!KR%&v%&w!KR%&w%&xKV%'O%'P!Kc%'P%'QKV%'Q%'RKV%'R%'S!Kc%'S%'T!L_%'T%'U!Kc%'U%'V!L_%'c%'dKV%'d%'e!L_%'f%'gKV%'g%'hKV%'i%'jKV%'j%'kKV%'l%'m!Kc%'m%'nKV%'n%'o!MU%'o%'pKV%'p%'qKV%'q%'rKV%'r%'sKV%'s%'tKV%'t%'uKV%'u%'vKV%'v%'wKV%'w%'xKV%'x%'yKV%'y%'zKV%'z%'{KV%'{%'|!L_%'|%'}KV%'}%(OKV%(O%(PKV%(P%(QKV%(Q%(RLe%(R%(SLe%(S%(TKV%(T%(UKV%(U%(VKV%(V%(WKV%(W%(XKV%(X%(YKV%(Y%(ZKV%(Z%([KV%([%(]KV%(]%(^KV%(^%(_KV%(_%(`KV%(`%(aKV%(a%(bKV%(b%(cKV%(c%(dKV%(d%(eKV%(e%(fKV%(f%(gKV%(g%(hKV%(h%(iKV%(i%(jKV%(j%(kKV%(k%(lKV%(l%(mKV%(m%(nKV%(n%(oKV%(o%(pKV%(p%(qKV%(q%(rKV%(r%(sKV%(s%(tKV%(t%(uKV%(u%(vKV%(v%(wKV%(w%(xKV%(x%(yKV%(y%(zKV%(z%({KV%({%(|KV%(|%(}KV%(}%)OKV%)O%)PKV%)P%)QKV%)Q%)RKV%)R%)SKV%)S%)TKV%)T%)UKV%)U%)VKV%)V%)WKV%)W%)XKV%)X%)YKV%)Y%)ZKV%)Z%)[KV%)]%)^!Kc%)^%)_!L_%)_%)`KV%)`%)aKV%)a%)bKV%)b%)cKV%)c%)d!Kc%)d%)e!L_%)e%)f!L_%)f%)g!L_%)g%)h!Kc%)h%)i!Kc%)i%)j!Kc%)j%)k!Kc%)k%)l!Kc%)l%)mKV%)n%)o!L_%)o%)p!L_%)p%)q!Kc%)q%)r!Kc%)r%)sKV%)s%)tKV%)y%)zKV%)|%)}KV%*O%*PKV%*Q%*RKV%*R%*SKV%*S%*TKV%*T%*UKV%*U%*VKV%*V%*WKV%*W%*XKV%*X%*YKV%*]%*^!M]%*^%*_!Kc%*_%*`!L_%*f%*g!Kc%*g%*h!Kc%*h%*i!Kc%*i%*j!Kc%*k%*l!Kc%*l%*m!Kc%*m%*n!Kc%*n%*o!Kc%*o%*pKV%*p%*q!L_%*q%*r!Kc%*r%*sKV%*s%*tKV%*t%*u!Kc%*u%*v!L_%*w%*xKV%*x%*yKV%*y%*zKV%*z%*{KV%*{%*|KV%*|%*}KV%*}%+OKV%+O%+PKV%+P%+QKV%+Q%+RKV%+R%+SKV%+S%+TKV%+T%+UKV%+U%+VKV%+V%+WKV%+W%+XKV%+X%+YKV%+Y%+ZKV%+Z%+[KV%+[%+]KV%+]%+^KV%+^%+_KV%+_%+`KV%+`%+aKV%+a%+bKV%+f%+gKV%+g%+hKV%+h%+iKV%+i%+jKV%+j%+kKV%+k%+lKV%+l%+mKV%+m%+nKV%+n%+oKV%+o%+pKV%+p%+qKV%+q%+rKV%+r%+sKV%+s%+tKV%:y%:z!Kc%F[%F]KV%Fb%FcKV%Fc%FdKV%Fk%Fl!Kc%Fl%FmKV%Fo%Fp!Kc%Fp%Fq!Kc%Fq%Fr!Kc%G[%G]!MP%G]%G^!MP%Ga%Gb! T%Gb%Gc! T%Gc%Gd! T%Ge%Gf! T%Gf%Gg! T%Gg%Gh! T%Gh%Gi! T%Gi%Gj! T%Gj%Gk! T%Gk%Gl! T%MW%MX! T%MX%MY! T%MY%MZ! T%MZ%M[! T%M[%M]! T%M]%M^! T%M^%M_! T%M_%M`! T%M`%Ma!MP%Ma%Mb!MP%Mb%Mc!MP%Mc%Md!MP%Md%Me! T%Me%Mf! T%Mf%Mg! T%Mg%Mh! T%Mh%Mi! T%Mi%Mj! T%Mj%Mk!MP%Mk%Ml!MP%Ml%Mm! T%Mm%Mn! T%Mn%Mo! T%Mo%Mp! T%Mp%Mq! T%Mu%Mv! T%Mv%Mw! T%Mw%Mx! T%Mx%My! T%Nn%No! T%No%Np! T%Np%Nq! T%Nq%Nr! T%Nr%Ns! T%Ns%Nt!MP%Nt%Nu! T%Nu%Nv! T%Nv%Nw!MP%Nw%Nx!MP%Nx%Ny! T%Ny%Nz!MP%Nz%N{! T%N{%N|!MP%N|%N}! T%N}& O! T& O& P!MP& P& Q!MP& Q& R! T& R& S! T& S& T!MP& T& U!MP& U& V! T& V& W! T& W& X!MP& X& Y!MP& Y& Z! T& Z& [! T& [& ]!MP& ]& ^!MP& ^& _! T& _& `!MP& `& a! T& a& b!MP& b& c! T& c& d! T& d& e! T& e& f! T& f& g! T& g& h! T& h& i! T& i& j! T& j& k!MP& k& l!MP& l& m! T&#V&#WKV&#W&#X!Kc&#[&#]!Kc&#^&#_!Kc&#_&#`!Kc&#`&#aKV&#a&#bKV&$R&$SKV&$T&$UKV&$U&$VKV&$V&$WKV&$f&$g! T&$h&$i!Kc&$i&$j!Kc&$l&$m!L_&$m&$n!L_&$y&$z!Kc&$z&${!L_&%a&%b!Kc&%f&%g!L_&%g&%h!L_&%h&%i!L_&%i&%j!L_&%j&%k!L_&%k&%l!L_&%l&%m!L_&%m&%n!L_&%n&%o!L_&%o&%p!L_&%p&%q!L_&%q&%r!L_&%r&%s!L_&%t&%u!Kc&%u&%v!Kc&%v&%w!Kc&%w&%x!Kc&%x&%y!Kc&%y&%z!Kc&%z&%{!Kc&%{&%|!Kc&%|&%}!Kc&%}&&O!L_&&O&&P!L_&&P&&Q!Kc&&Q&&R!Kc&&R&&S!Kc&&U&&V!Kc&&V&&W!L_&&W&&X!L_&&X&&Y!Kc&&Y&&Z!Kc&&Z&&[!L_&&`&&a!L_&&a&&b!Kc&&b&&c!L_&&c&&d!Kc&&d&&e!Kc&&e&&f!L_&&f&&g!L_&&g&&h!Kc&&h&&i!L_&&i&&j!Kc&&j&&k!L_&&k&&l!Kc&&l&&m!L_&&m&&n!L_&&n&&o!Kc&&p&&q!Kc&&q&&r!L_&&r&&s!Kc&&s&&t!L_&&t&&u!Kc&&u&&v!Kc&&v&&w!Kc&&w&&x!L_&&x&&y!L_&&y&&z!L_&&|&&}KV&&}&'OKV&'Q&'RKV&'R&'SKV&'S&'TKV&'T&'UKV&'U&'VKV&'V&'WKV&'W&'XKV&'X&'YKV&'Y&'ZKV&'Z&'[KV&'[&']Le&']&'^KV&'^&'_KV&'_&'`KV&'`&'aKV&'a&'bKV&'b&'cKV&'c&'dKV&'d&'eKV&'e&'fKV&'f&'gKV&'g&'hKV&'h&'iKV&'i&'jKV&'j&'kKV&'k&'lKV&'l&'mKV&'m&'nKV&'n&'oKV&'o&'pKV&'p&'qKV&'q&'rKV&'r&'sKV&'s&'tKV&'t&'uKV&'u&'vKV&'v&'wKV&'w&'xKV&'x&'yKV&'y&'zKV&'z&'{KV&'{&'|KV&'|&'}KV&'}&(OKV&(O&(PKV&(P&(QKV&(Q&(RKV&(R&(SKV&(S&(TKV&(T&(UKV&(U&(VKV&(V&(WKV&(W&(XKV&(X&(YKV&(Y&(ZKV&(Z&([KV&([&(]KV&(]&(^KV&(^&(_KV&(_&(`KV&(`&(aKV&(a&(bKV&(b&(cKV&(c&(dKV&(d&(eKV&(e&(fKV&(f&(gKV&(g&(hKV&(h&(iKV&(i&(jKV&(j&(kKV&(k&(lKV&(l&(mKV&(m&(nKV&(n&(oKV&(o&(pKV&(p&(qKV&(q&(rKV&(r&(sKV&(s&(tKV&(t&(uKV&(u&(vKV&(v&(wKV&(w&(xKV&(x&(yKV&(y&(zKV&(z&({KV&({&(|KV&(|&(}KV&(}&)OKV&)O&)PKV&)P&)QKV&)Q&)RKV&)R&)SKV&)S&)TKV&)T&)UKV&)U&)VKV&)V&)WKV&)W&)XKV&)X&)YKV&)Y&)ZKV&)Z&)[KV&)[&)]KV&)]&)^KV&)^&)_KV&)_&)`KV&)`&)aKV&)a&)bKV&)b&)cKV&)c&)dKV&)d&)eKV&)e&)fKV&)g&)h!Kc&*T&*UKV&*U&*VKV&*V&*WKV&*W&*XKV&+`&+a! T&+a&+b! T&+b&+c! T&+c&+d! T&+d&+e! T&+e&+f! T&+f&+g! T&+g&+h! T&+h&+i! T&+i&+j! T&+j&+k! T&+k&+l! T&+l&+m! T&+m&+n! T&+n&+o! T&+o&+p! T&+p&+q! T&+q&+r! T&+r&+s! T&+s&+t! T&+t&+u! T&+w&+x! T&+x&+y! T&+y&+z! T&+z&+{! T&+{&+|! T&+|&+}! T?MX?MY! T?MY?MZ!MP?MZ?M[! T?M[?M]!MP~!HSQ'd~}!ON}!_!`Le~!H]P!O!P!H`~!HeO(V~~!HjQ'e~!P!Q!Hp!_!`Le~!HsP!_!`Le~!H{Sy~!Q![!Hv!g!h!IX#R#S!Hv#X#Y!IX~!I[R{|!Ie}!O!Ie!Q![!Ik~!IhP!Q![!Ik~!IpPy~!Q![!Ik~!IxS'gP![!]KV!^!_!JU!_!`KV#p#q!J^~!JZP'`~!_!`Le~!JcO!g~~!JhQ&|~!_!`J}!`!a!Jn~!JsO'}~~!JxR'gP![!]!KR!_!`KV!`!a!KW~!KWO'a~~!K]Q'`~!_!`Le!`!a!JU~!KhO'e~~!KmP'f~!_!`Le~!KuS'd~{|!LR!_!`!Ld!`!a!Lj#p#q!Lo~!LUP{|!LX~!L[P#p#q!L_~!LdO'c~~!LgP#p#qLe~!LoO!h~~!LrQ!_!`!Ld#p#q!L_~!MPO&|~'a~~!MUO'f~~!M]O'gP'c~~!MbP'c~!_!`Le~!MjVy~!O!P!NP!Q![!N_!g!h!IX!z!{!Ns#R#S!N_#X#Y!IX#l#m!Ns~!NURy~!Q![!Hv!g!h!IX#X#Y!IX~!NdTy~!O!P!NP!Q![!N_!g!h!IX#R#S!N_#X#Y!IX~!NvR!Q![# P!c!i# P#T#Z# P~# UWy~!Q![# P!c!g# P!g!h# n!h!i# P#R#S# P#T#X# P#X#Y# n#Y#Z# P~# sYy~{|!Ie}!O!Ie!Q![# P!c!g# P!g!h# n!h!i# P#R#S# P#T#X# P#X#Y# n#Y#Z# P~#!hQ'T~![!]#!n!_!`Le~#!sO'O~~#!xO&v~~#!}S'gP![!]##Z!^!_!JU!_!`KV#p#q!J^~##bO'P~'gP~##iQ&}~&|~!_!`J}!`!a!Jn~##tO'p~~##yO'U~~#$OO'Z~~#$TO'x~~#$YO'[~~#$_S'd~{|!LR!_!`!Ld!`!a!Lj#p#q#$k~#$pQ(O~!_!`!Ld#p#q!L_~#${O']~R#%SO'{Q'gP",tokenizers:[mr,Li,tr,er,Qr,ar,lr,hr,cr,ur,fr,0,1],topRules:{SourceFile:[0,4]},dynamicPrecedences:{31:2,34:2,96:10,144:5,191:1,206:5,304:1,306:1,307:10,310:1,320:1,328:1,330:10,331:10,333:1},specialized:[{term:1,get:e=>$r[e]||-1}],tokenPrec:53216}),Xr="undefined"==typeof Symbol?"__ͼ":Symbol.for("ͼ"),Sr="undefined"==typeof Symbol?"__styleSet"+Math.floor(1e8*Math.random()):Symbol("styleSet"),yr="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:{};class vr{constructor(e,t){this.rules=[];let{finish:i}=t||{};function r(e){return/^@/.test(e)?[e]:e.split(/,\s*/)}function n(e,t,o,s){let O=[],a=/^@(\w+)\b/.exec(e[0]),l=a&&"keyframes"==a[1];if(a&&null==t)return o.push(e[0]+";");for(let i in t){let s=t[i];if(/&/.test(i))n(i.split(/,\s*/).map((t=>e.map((e=>t.replace(/&/,e))))).reduce(((e,t)=>e.concat(t))),s,o);else if(s&&"object"==typeof s){if(!a)throw new RangeError("The value of a property ("+i+") should be a primitive value.");n(r(i),s,O,l)}else null!=s&&O.push(i.replace(/_.*/,"").replace(/[A-Z]/g,(e=>"-"+e.toLowerCase()))+": "+s+";")}(O.length||l)&&o.push((!i||a||s?e:e.map(i)).join(", ")+" {"+O.join(" ")+"}")}for(let t in e)n(r(t),e[t],this.rules)}getRules(){return this.rules.join("\n")}static newName(){let e=yr[Xr]||1;return yr[Xr]=e+1,"ͼ"+e.toString(36)}static mount(e,t,i){let r=e[Sr],n=i&&i.nonce;r?n&&r.setNonce(n):r=new xr(e,n),r.mount(Array.isArray(t)?t:[t])}}let Pr=new Map;class xr{constructor(e,t){let i=e.ownerDocument||e,r=i.defaultView;if(!e.head&&e.adoptedStyleSheets&&r.CSSStyleSheet){let t=Pr.get(i);if(t)return e.adoptedStyleSheets=[t.sheet,...e.adoptedStyleSheets],e[Sr]=t;this.sheet=new r.CSSStyleSheet,e.adoptedStyleSheets=[this.sheet,...e.adoptedStyleSheets],Pr.set(i,this)}else{this.styleTag=i.createElement("style"),t&&this.styleTag.setAttribute("nonce",t);let r=e.head||e;r.insertBefore(this.styleTag,r.firstChild)}this.modules=[],e[Sr]=this}mount(e){let t=this.sheet,i=0,r=0;for(let n=0;n-1&&(this.modules.splice(s,1),r--,s=-1),-1==s){if(this.modules.splice(r++,0,o),t)for(let e=0;e",191:"?",192:"~",219:"{",220:"|",221:"}",222:'"'},kr="undefined"!=typeof navigator&&/Mac/.test(navigator.platform),Yr="undefined"!=typeof navigator&&/MSIE \d|Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(navigator.userAgent),Rr=0;Rr<10;Rr++)wr[48+Rr]=wr[96+Rr]=String(Rr);for(Rr=1;Rr<=24;Rr++)wr[Rr+111]="F"+Rr;for(Rr=65;Rr<=90;Rr++)wr[Rr]=String.fromCharCode(Rr+32),Tr[Rr]=String.fromCharCode(Rr);for(var _r in wr)Tr.hasOwnProperty(_r)||(Tr[_r]=wr[_r]);function Vr(e){let t;return t=11==e.nodeType?e.getSelection?e:e.ownerDocument:e,t.getSelection()}function Zr(e,t){return!!t&&(e==t||e.contains(1!=t.nodeType?t.parentNode:t))}function qr(e,t){if(!t.anchorNode)return!1;try{return Zr(e,t.anchorNode)}catch(e){return!1}}function Ar(e){return 3==e.nodeType?Br(e,0,e.nodeValue.length).getClientRects():1==e.nodeType?e.getClientRects():[]}function Wr(e,t,i,r){return!!i&&(Ur(e,t,i,r,-1)||Ur(e,t,i,r,1))}function Cr(e){for(var t=0;;t++)if(!(e=e.previousSibling))return t}function Ur(e,t,i,r,n){for(;;){if(e==i&&t==r)return!0;if(t==(n<0?0:Nr(e))){if("DIV"==e.nodeName)return!1;let i=e.parentNode;if(!i||1!=i.nodeType)return!1;t=Cr(e)+(n<0?0:1),e=i}else{if(1!=e.nodeType)return!1;if(1==(e=e.childNodes[t+(n<0?-1:0)]).nodeType&&"false"==e.contentEditable)return!1;t=n<0?Nr(e):0}}}function Nr(e){return 3==e.nodeType?e.nodeValue.length:e.childNodes.length}function jr(e,t){let i=t?e.left:e.right;return{left:i,right:i,top:e.top,bottom:e.bottom}}function Er(e){return{left:0,right:e.innerWidth,top:0,bottom:e.innerHeight}}class zr{constructor(){this.anchorNode=null,this.anchorOffset=0,this.focusNode=null,this.focusOffset=0}eq(e){return this.anchorNode==e.anchorNode&&this.anchorOffset==e.anchorOffset&&this.focusNode==e.focusNode&&this.focusOffset==e.focusOffset}setRange(e){let{anchorNode:t,focusNode:i}=e;this.set(t,Math.min(e.anchorOffset,t?Nr(t):0),i,Math.min(e.focusOffset,i?Nr(i):0))}set(e,t,i,r){this.anchorNode=e,this.anchorOffset=t,this.focusNode=i,this.focusOffset=r}}let Gr,Dr=null;function Mr(e){if(e.setActive)return e.setActive();if(Dr)return e.focus(Dr);let t=[];for(let i=e;i&&(t.push(i,i.scrollTop,i.scrollLeft),i!=i.ownerDocument);i=i.parentNode);if(e.focus(null==Dr?{get preventScroll(){return Dr={preventScroll:!0},!0}}:void 0),!Dr){Dr=!1;for(let e=0;eMath.max(1,e.scrollHeight-e.clientHeight-4)}class Fr{constructor(e,t,i=!0){this.node=e,this.offset=t,this.precise=i}static before(e,t){return new Fr(e.parentNode,Cr(e),t)}static after(e,t){return new Fr(e.parentNode,Cr(e)+1,t)}}const Hr=[];class Jr{constructor(){this.parent=null,this.dom=null,this.flags=2}get overrideDOMText(){return null}get posAtStart(){return this.parent?this.parent.posBefore(this):0}get posAtEnd(){return this.posAtStart+this.length}posBefore(e){let t=this.posAtStart;for(let i of this.children){if(i==e)return t;t+=i.length+i.breakAfter}throw new RangeError("Invalid child in posBefore")}posAfter(e){return this.posBefore(e)+e.length}sync(e,t){if(2&this.flags){let i,r=this.dom,n=null;for(let o of this.children){if(7&o.flags){if(!o.dom&&(i=n?n.nextSibling:r.firstChild)){let e=Jr.get(i);(!e||!e.parent&&e.canReuseDOM(o))&&o.reuseDOM(i)}o.sync(e,t),o.flags&=-8}if(i=n?n.nextSibling:r.firstChild,t&&!t.written&&t.node==r&&i!=o.dom&&(t.written=!0),o.dom.parentNode==r)for(;i&&i!=o.dom;)i=en(i);else r.insertBefore(o.dom,i);n=o.dom}for(i=n?n.nextSibling:r.firstChild,i&&t&&t.node==r&&(t.written=!0);i;)i=en(i)}else if(1&this.flags)for(let i of this.children)7&i.flags&&(i.sync(e,t),i.flags&=-8)}reuseDOM(e){}localPosFromDOM(e,t){let i;if(e==this.dom)i=this.dom.childNodes[t];else{let r=0==Nr(e)?0:0==t?-1:1;for(;;){let t=e.parentNode;if(t==this.dom)break;0==r&&t.firstChild!=t.lastChild&&(r=e==t.firstChild?-1:1),e=t}i=r<0?e:e.nextSibling}if(i==this.dom.firstChild)return 0;for(;i&&!Jr.get(i);)i=i.nextSibling;if(!i)return this.length;for(let e=0,t=0;;e++){let r=this.children[e];if(r.dom==i)return t;t+=r.length+r.breakAfter}}domBoundsAround(e,t,i=0){let r=-1,n=-1,o=-1,s=-1;for(let O=0,a=i,l=i;Ot)return i.domBoundsAround(e,t,a);if(h>=e&&-1==r&&(r=O,n=a),a>t&&i.dom.parentNode==this.dom){o=O,s=l;break}l=h,a=h+i.breakAfter}return{from:n,to:s<0?i+this.length:s,startDOM:(r?this.children[r-1].dom.nextSibling:null)||this.dom.firstChild,endDOM:o=0?this.children[o].dom:null}}markDirty(e=!1){this.flags|=2,this.markParentsDirty(e)}markParentsDirty(e){for(let t=this.parent;t;t=t.parent){if(e&&(t.flags|=2),1&t.flags)return;t.flags|=1,e=!1}}setParent(e){this.parent!=e&&(this.parent=e,7&this.flags&&this.markParentsDirty(!0))}setDOM(e){this.dom!=e&&(this.dom&&(this.dom.cmView=null),this.dom=e,e.cmView=this)}get rootView(){for(let e=this;;){let t=e.parent;if(!t)return e;e=t}}replaceChildren(e,t,i=Hr){this.markDirty();for(let i=e;ithis.pos||e==this.pos&&(t>0||0==this.i||this.children[this.i-1].breakAfter))return this.off=e-this.pos,this;let i=this.children[--this.i];this.pos-=i.length+i.breakAfter}}}function rn(e,t,i,r,n,o,s,O,a){let{children:l}=e,h=l.length?l[t]:null,c=o.length?o[o.length-1]:null,u=c?c.breakAfter:s;if(!(t==r&&h&&!s&&!u&&o.length<2&&h.merge(i,n,o.length?c:null,0==i,O,a))){if(r0&&(!s&&o.length&&h.merge(i,h.length,o[0],!1,O,0)?h.breakAfter=o.shift().breakAfter:(i2);var Qn={mac:pn||/Mac/.test(on.platform),windows:/Win/.test(on.platform),linux:/Linux|X11/.test(on.platform),ie:hn,ie_version:an?sn.documentMode||6:ln?+ln[1]:On?+On[1]:0,gecko:cn,gecko_version:cn?+(/Firefox\/(\d+)/.exec(on.userAgent)||[0,0])[1]:0,chrome:!!un,chrome_version:un?+un[1]:0,ios:pn,android:/Android\b/.test(on.userAgent),webkit:fn,safari:dn,webkit_version:fn?+(/\bAppleWebKit\/(\d+)/.exec(navigator.userAgent)||[0,0])[1]:0,tabSize:null!=sn.documentElement.style.tabSize?"tab-size":"-moz-tab-size"};class gn extends Jr{constructor(e){super(),this.text=e}get length(){return this.text.length}createDOM(e){this.setDOM(e||document.createTextNode(this.text))}sync(e,t){this.dom||this.createDOM(),this.dom.nodeValue!=this.text&&(t&&t.node==this.dom&&(t.written=!0),this.dom.nodeValue=this.text)}reuseDOM(e){3==e.nodeType&&this.createDOM(e)}merge(e,t,i){return!(8&this.flags||i&&(!(i instanceof gn)||this.length-(t-e)+i.length>256||8&i.flags)||(this.text=this.text.slice(0,e)+(i?i.text:"")+this.text.slice(t),this.markDirty(),0))}split(e){let t=new gn(this.text.slice(e));return this.text=this.text.slice(0,e),this.markDirty(),t.flags|=8&this.flags,t}localPosFromDOM(e,t){return e==this.dom?t:t?this.text.length:0}domAtPos(e){return new Fr(this.dom,e)}domBoundsAround(e,t,i){return{from:i,to:i+this.length,startDOM:this.dom,endDOM:this.dom.nextSibling}}coordsAt(e,t){return function(e,t,i){let r=e.nodeValue.length;t>r&&(t=r);let n=t,o=t,s=0;0==t&&i<0||t==r&&i>=0?Qn.chrome||Qn.gecko||(t?(n--,s=1):o=0)?0:O.length-1];return Qn.safari&&!s&&0==a.width&&(a=Array.prototype.find.call(O,(e=>e.width))||a),s?jr(a,s<0):a||null}(this.dom,e,t)}}class mn extends Jr{constructor(e,t=[],i=0){super(),this.mark=e,this.children=t,this.length=i;for(let e of t)e.setParent(this)}setAttrs(e){if(Lr(e),this.mark.class&&(e.className=this.mark.class),this.mark.attrs)for(let t in this.mark.attrs)e.setAttribute(t,this.mark.attrs[t]);return e}canReuseDOM(e){return super.canReuseDOM(e)&&!(8&(this.flags|e.flags))}reuseDOM(e){e.nodeName==this.mark.tagName.toUpperCase()&&(this.setDOM(e),this.flags|=6)}sync(e,t){this.dom?4&this.flags&&this.setAttrs(this.dom):this.setDOM(this.setAttrs(document.createElement(this.mark.tagName))),super.sync(e,t)}merge(e,t,i,r,n,o){return!(i&&(!(i instanceof mn&&i.mark.eq(this.mark))||e&&n<=0||te&&t.push(i=e&&(r=n),i=s,n++}let o=this.length-e;return this.length=e,r>-1&&(this.children.length=r,this.markDirty()),new mn(this.mark,t,o)}domAtPos(e){return Xn(this,e)}coordsAt(e,t){return yn(this,e,t)}}class $n extends Jr{static create(e,t,i){return new $n(e,t,i)}constructor(e,t,i){super(),this.widget=e,this.length=t,this.side=i,this.prevWidget=null}split(e){let t=$n.create(this.widget,this.length-e,this.side);return this.length-=e,t}sync(e){this.dom&&this.widget.updateDOM(this.dom,e)||(this.dom&&this.prevWidget&&this.prevWidget.destroy(this.dom),this.prevWidget=null,this.setDOM(this.widget.toDOM(e)),this.dom.contentEditable="false")}getSide(){return this.side}merge(e,t,i,r,n,o){return!(i&&(!(i instanceof $n&&this.widget.compare(i.widget))||e>0&&n<=0||t0)?Fr.before(this.dom):Fr.after(this.dom,e==this.length)}domBoundsAround(){return null}coordsAt(e,t){let i=this.widget.coordsAt(this.dom,e,t);if(i)return i;let r=this.dom.getClientRects(),n=null;if(!r.length)return null;let o=this.side?this.side<0:e>0;for(let t=o?r.length-1:0;n=r[t],!(e>0?0==t:t==r.length-1||n.top0?Fr.before(this.dom):Fr.after(this.dom)}localPosFromDOM(){return 0}domBoundsAround(){return null}coordsAt(e){return this.dom.getBoundingClientRect()}get overrideDOMText(){return o.empty}get isHidden(){return!0}}function Xn(e,t){let i=e.dom,{children:r}=e,n=0;for(let e=0;ne&&t0;e--){let t=r[e-1];if(t.dom.parentNode==i)return t.domAtPos(t.length)}for(let e=n;e0&&t instanceof mn&&n.length&&(r=n[n.length-1])instanceof mn&&r.mark.eq(t.mark)?Sn(r,t.children[0],i-1):(n.push(t),t.setParent(e)),e.length+=t.length}function yn(e,t,i){let r=null,n=-1,o=null,s=-1;!function e(t,O){for(let a=0,l=0;a=O&&(h.children.length?e(h,O-l):(!o||o.isHidden&&i>0)&&(c>O||l==c&&h.getSide()>0)?(o=h,s=O-l):(l-1?1:0)!=n.length-(i&&n.indexOf(i)>-1?1:0))return!1;for(let o of r)if(o!=i&&(-1==n.indexOf(o)||e[o]!==t[o]))return!1;return!0}function wn(e,t,i){let r=!1;if(t)for(let n in t)i&&n in i||(r=!0,"style"==n?e.style.cssText="":e.removeAttribute(n));if(i)for(let n in i)t&&t[n]==i[n]||(r=!0,"style"==n?e.style.cssText=i[n]:e.setAttribute(n,i[n]));return r}function Tn(e){let t=Object.create(null);for(let i=0;i0&&0==this.children[i-1].length;)this.children[--i].destroy();return this.children.length=i,this.markDirty(),this.length=e,t}transferDOM(e){this.dom&&(this.markDirty(),e.setDOM(this.dom),e.prevAttrs=void 0===this.prevAttrs?this.attrs:this.prevAttrs,this.prevAttrs=void 0,this.dom=null)}setDeco(e){xn(this.attrs,e)||(this.dom&&(this.prevAttrs=this.attrs,this.markDirty()),this.attrs=e)}append(e,t){Sn(this,e,t)}addLineDeco(e){let t=e.spec.attributes,i=e.spec.class;t&&(this.attrs=vn(t,this.attrs||{})),i&&(this.attrs=vn({class:i},this.attrs||{}))}domAtPos(e){return Xn(this,e)}reuseDOM(e){"DIV"==e.nodeName&&(this.setDOM(e),this.flags|=6)}sync(e,t){var i;this.dom?4&this.flags&&(Lr(this.dom),this.dom.className="cm-line",this.prevAttrs=this.attrs?null:void 0):(this.setDOM(document.createElement("div")),this.dom.className="cm-line",this.prevAttrs=this.attrs?null:void 0),void 0!==this.prevAttrs&&(wn(this.dom,this.prevAttrs,this.attrs),this.dom.classList.add("cm-line"),this.prevAttrs=void 0),super.sync(e,t);let r=this.dom.lastChild;for(;r&&Jr.get(r)instanceof mn;)r=r.lastChild;if(!(r&&this.length&&("BR"==r.nodeName||0!=(null===(i=Jr.get(r))||void 0===i?void 0:i.isEditable)||Qn.ios&&this.children.some((e=>e instanceof gn))))){let e=document.createElement("BR");e.cmIgnore=!0,this.dom.appendChild(e)}}measureTextSize(){if(0==this.children.length||this.length>20)return null;let e,t=0;for(let i of this.children){if(!(i instanceof gn)||/[^ -~]/.test(i.text))return null;let r=Ar(i.dom);if(1!=r.length)return null;t+=r[0].width,e=r[0].height}return t?{lineHeight:this.dom.getBoundingClientRect().height,charWidth:t/this.length,textHeight:e}:null}coordsAt(e,t){let i=yn(this,e,t);if(!this.children.length&&i&&this.parent){let{heightOracle:e}=this.parent.view.viewState,t=i.bottom-i.top;if(Math.abs(t-e.lineHeight)<2&&e.textHeight=t){if(n instanceof kn)return n;if(o>t)break}r=o+n.breakAfter}return null}}class Yn extends Jr{constructor(e,t,i){super(),this.widget=e,this.length=t,this.deco=i,this.breakAfter=0,this.prevWidget=null}merge(e,t,i,r,n,o){return!(i&&(!(i instanceof Yn&&this.widget.compare(i.widget))||e>0&&n<=0||t0)}}class Rn{eq(e){return!1}updateDOM(e,t){return!1}compare(e){return this==e||this.constructor==e.constructor&&this.eq(e)}get estimatedHeight(){return-1}get lineBreaks(){return 0}ignoreEvent(e){return!0}coordsAt(e,t,i){return null}get isHidden(){return!1}destroy(e){}}var _n=function(e){return e[e.Text=0]="Text",e[e.WidgetBefore=1]="WidgetBefore",e[e.WidgetAfter=2]="WidgetAfter",e[e.WidgetRange=3]="WidgetRange",e}(_n||(_n={}));class Vn extends Ye{constructor(e,t,i,r){super(),this.startSide=e,this.endSide=t,this.widget=i,this.spec=r}get heightRelevant(){return!1}static mark(e){return new Zn(e)}static widget(e){let t=Math.max(-1e4,Math.min(1e4,e.side||0)),i=!!e.block;return t+=i&&!e.inlineOrder?t>0?3e8:-4e8:t>0?1e8:-1e8,new An(e,t,t,i,e.widget||null,!1)}static replace(e){let t,i,r=!!e.block;if(e.isBlockGap)t=-5e8,i=4e8;else{let{start:n,end:o}=Wn(e,r);t=(n?r?-3e8:-1:5e8)-1,i=1+(o?r?2e8:1:-6e8)}return new An(e,t,i,r,e.widget||null,!0)}static line(e){return new qn(e)}static set(e,t=!1){return Ze.of(e,t)}hasHeight(){return!!this.widget&&this.widget.estimatedHeight>-1}}Vn.none=Ze.empty;class Zn extends Vn{constructor(e){let{start:t,end:i}=Wn(e);super(t?-1:5e8,i?1:-6e8,null,e),this.tagName=e.tagName||"span",this.class=e.class||"",this.attrs=e.attributes||null}eq(e){var t,i;return this==e||e instanceof Zn&&this.tagName==e.tagName&&(this.class||(null===(t=this.attrs)||void 0===t?void 0:t.class))==(e.class||(null===(i=e.attrs)||void 0===i?void 0:i.class))&&xn(this.attrs,e.attrs,"class")}range(e,t=e){if(e>=t)throw new RangeError("Mark decorations may not be empty");return super.range(e,t)}}Zn.prototype.point=!1;class qn extends Vn{constructor(e){super(-2e8,-2e8,null,e)}eq(e){return e instanceof qn&&this.spec.class==e.spec.class&&xn(this.spec.attributes,e.spec.attributes)}range(e,t=e){if(t!=e)throw new RangeError("Line decoration ranges must be zero-length");return super.range(e,t)}}qn.prototype.mapMode=w.TrackBefore,qn.prototype.point=!0;class An extends Vn{constructor(e,t,i,r,n,o){super(t,i,n,e),this.block=r,this.isReplace=o,this.mapMode=r?t<=0?w.TrackBefore:w.TrackAfter:w.TrackDel}get type(){return this.startSide!=this.endSide?_n.WidgetRange:this.startSide<=0?_n.WidgetBefore:_n.WidgetAfter}get heightRelevant(){return this.block||!!this.widget&&(this.widget.estimatedHeight>=5||this.widget.lineBreaks>0)}eq(e){return e instanceof An&&function(e,t){return e==t||!!(e&&t&&e.compare(t))}(this.widget,e.widget)&&this.block==e.block&&this.startSide==e.startSide&&this.endSide==e.endSide}range(e,t=e){if(this.isReplace&&(e>t||e==t&&this.startSide>0&&this.endSide<=0))throw new RangeError("Invalid range for replacement decoration");if(!this.isReplace&&t!=e)throw new RangeError("Widget decorations can only have zero-length ranges");return super.range(e,t)}}function Wn(e,t=!1){let{inclusiveStart:i,inclusiveEnd:r}=e;return null==i&&(i=e.inclusive),null==r&&(r=e.inclusive),{start:null!=i?i:t,end:null!=r?r:t}}function Cn(e,t,i,r=0){let n=i.length-1;n>=0&&i[n]+r>=e?i[n]=Math.max(i[n],t):i.push(e,t)}An.prototype.point=!0;class Un{constructor(e,t,i,r){this.doc=e,this.pos=t,this.end=i,this.disallowBlockEffectsFor=r,this.content=[],this.curLine=null,this.breakAtStart=0,this.pendingBuffer=0,this.bufferMarks=[],this.atCursorPos=!0,this.openStart=-1,this.openEnd=-1,this.text="",this.textOff=0,this.cursor=e.iter(),this.skip=t}posCovered(){if(0==this.content.length)return!this.breakAtStart&&this.doc.lineAt(this.pos).from!=this.pos;let e=this.content[this.content.length-1];return!(e.breakAfter||e instanceof Yn&&e.deco.endSide<0)}getLine(){return this.curLine||(this.content.push(this.curLine=new kn),this.atCursorPos=!0),this.curLine}flushBuffer(e=this.bufferMarks){this.pendingBuffer&&(this.curLine.append(Nn(new bn(-1),e),e.length),this.pendingBuffer=0)}addBlockWidget(e){this.flushBuffer(),this.curLine=null,this.content.push(e)}finish(e){this.pendingBuffer&&e<=this.bufferMarks.length?this.flushBuffer():this.pendingBuffer=0,this.posCovered()||e&&this.content.length&&this.content[this.content.length-1]instanceof Yn||this.getLine()}buildText(e,t,i){for(;e>0;){if(this.textOff==this.text.length){let{value:t,lineBreak:i,done:r}=this.cursor.next(this.skip);if(this.skip=0,r)throw new Error("Ran out of text content when drawing inline views");if(i){this.posCovered()||this.getLine(),this.content.length?this.content[this.content.length-1].breakAfter=1:this.breakAtStart=1,this.flushBuffer(),this.curLine=null,this.atCursorPos=!0,e--;continue}this.text=t,this.textOff=0}let r=Math.min(this.text.length-this.textOff,e,512);this.flushBuffer(t.slice(t.length-i)),this.getLine().append(Nn(new gn(this.text.slice(this.textOff,this.textOff+r)),t),i),this.atCursorPos=!0,this.textOff+=r,e-=r,i=0}}span(e,t,i,r){this.buildText(t-e,i,r),this.pos=t,this.openStart<0&&(this.openStart=r)}point(e,t,i,r,n,o){if(this.disallowBlockEffectsFor[o]&&i instanceof An){if(i.block)throw new RangeError("Block decorations may not be specified via plugins");if(t>this.doc.lineAt(this.pos).to)throw new RangeError("Decorations that replace line breaks may not be specified via plugins")}let s=t-e;if(i instanceof An)if(i.block)i.startSide>0&&!this.posCovered()&&this.getLine(),this.addBlockWidget(new Yn(i.widget||new jn("div"),s,i));else{let o=$n.create(i.widget||new jn("span"),s,s?0:i.startSide),O=this.atCursorPos&&!o.isEditable&&n<=r.length&&(e0),a=!o.isEditable&&(er.length||i.startSide<=0),l=this.getLine();2!=this.pendingBuffer||O||o.isEditable||(this.pendingBuffer=0),this.flushBuffer(r),O&&(l.append(Nn(new bn(1),r),n),n=r.length+Math.max(0,n-r.length)),l.append(Nn(o,r),n),this.atCursorPos=a,this.pendingBuffer=a?er.length?1:2:0,this.pendingBuffer&&(this.bufferMarks=r.slice())}else this.doc.lineAt(this.pos).from==this.pos&&this.getLine().addLineDeco(i);s&&(this.textOff+s<=this.text.length?this.textOff+=s:(this.skip+=s-(this.text.length-this.textOff),this.text="",this.textOff=0),this.pos=t),this.openStart<0&&(this.openStart=n)}static build(e,t,i,r,n){let o=new Un(e,t,i,n);return o.openEnd=Ze.spans(r,t,i,o),o.openStart<0&&(o.openStart=o.openEnd),o.finish(o.openEnd),o}}function Nn(e,t){for(let i of t)e=new mn(i,[e],e.length);return e}class jn extends Rn{constructor(e){super(),this.tag=e}eq(e){return e.tag==this.tag}toDOM(){return document.createElement(this.tag)}updateDOM(e){return e.nodeName.toLowerCase()==this.tag}get isHidden(){return!0}}const En=N.define(),zn=N.define(),Gn=N.define(),Dn=N.define(),Mn=N.define(),Bn=N.define(),In=N.define(),Ln=N.define({combine:e=>e.some((e=>e))}),Kn=N.define({combine:e=>e.some((e=>e))});class Fn{constructor(e,t="nearest",i="nearest",r=5,n=5){this.range=e,this.y=t,this.x=i,this.yMargin=r,this.xMargin=n}map(e){return e.empty?this:new Fn(this.range.map(e),this.y,this.x,this.yMargin,this.xMargin)}}const Hn=Qe.define({map:(e,t)=>e.map(t)});function Jn(e,t,i){let r=e.facet(Dn);r.length?r[0](t):window.onerror?window.onerror(String(t),i,void 0,void 0,t):i?console.error(i+":",t):console.error(t)}const eo=N.define({combine:e=>!e.length||e[0]});let to=0;const io=N.define();class ro{constructor(e,t,i,r,n){this.id=e,this.create=t,this.domEventHandlers=i,this.domEventObservers=r,this.extension=n(this)}static define(e,t){const{eventHandlers:i,eventObservers:r,provide:n,decorations:o}=t||{};return new ro(to++,e,i,r,(e=>{let t=[io.of(e)];return o&&t.push(Oo.of((t=>{let i=t.plugin(e);return i?o(i):Vn.none}))),n&&t.push(n(e)),t}))}static fromClass(e,t){return ro.define((t=>new e(t)),t)}}class no{constructor(e){this.spec=e,this.mustUpdate=null,this.value=null}update(e){if(this.value){if(this.mustUpdate){let e=this.mustUpdate;if(this.mustUpdate=null,this.value.update)try{this.value.update(e)}catch(t){if(Jn(e.state,t,"CodeMirror plugin crashed"),this.value.destroy)try{this.value.destroy()}catch(e){}this.deactivate()}}}else if(this.spec)try{this.value=this.spec.create(e)}catch(t){Jn(e.state,t,"CodeMirror plugin crashed"),this.deactivate()}return this}destroy(e){var t;if(null===(t=this.value)||void 0===t?void 0:t.destroy)try{this.value.destroy()}catch(t){Jn(e.state,t,"CodeMirror plugin crashed")}}deactivate(){this.spec=this.value=null}}const oo=N.define(),so=N.define(),Oo=N.define(),ao=N.define(),lo=N.define();function ho(e,t,i){let r=e.state.facet(lo);if(!r.length)return r;let n=r.map((t=>t instanceof Function?t(e):t)),o=[];return Ze.spans(n,t,i,{point(){},span(e,t,i,r){let n=o;for(let o=i.length-1;o>=0;o--,r--){let s,O=i[o].spec.bidiIsolate;if(null!=O)if(r>0&&n.length&&(s=n[n.length-1]).to==e&&s.direction==O)s.to=t,n=s.inner;else{let i={from:e,to:t,direction:O,inner:[]};n.push(i),n=i.inner}}}}),o}const co=N.define();function uo(e){let t=0,i=0,r=0,n=0;for(let o of e.state.facet(co)){let s=o(e);s&&(null!=s.left&&(t=Math.max(t,s.left)),null!=s.right&&(i=Math.max(i,s.right)),null!=s.top&&(r=Math.max(r,s.top)),null!=s.bottom&&(n=Math.max(n,s.bottom)))}return{left:t,right:i,top:r,bottom:n}}const fo=N.define();class po{constructor(e,t,i,r){this.fromA=e,this.toA=t,this.fromB=i,this.toB=r}join(e){return new po(Math.min(this.fromA,e.fromA),Math.max(this.toA,e.toA),Math.min(this.fromB,e.fromB),Math.max(this.toB,e.toB))}addToSet(e){let t=e.length,i=this;for(;t>0;t--){let r=e[t-1];if(!(r.fromA>i.toA)){if(r.toAl)break;n+=2}if(!O)return i;new po(O.fromA,O.toA,O.fromB,O.toB).addToSet(i),o=O.toA,s=O.toB}}}class Qo{constructor(e,t,i){this.view=e,this.state=t,this.transactions=i,this.flags=0,this.startState=e.state,this.changes=k.empty(this.startState.doc.length);for(let e of i)this.changes=this.changes.compose(e.changes);let r=[];this.changes.iterChangedRanges(((e,t,i,n)=>r.push(new po(e,t,i,n)))),this.changedRanges=r}static create(e,t,i){return new Qo(e,t,i)}get viewportChanged(){return(4&this.flags)>0}get heightChanged(){return(2&this.flags)>0}get geometryChanged(){return this.docChanged||(10&this.flags)>0}get focusChanged(){return(1&this.flags)>0}get docChanged(){return!this.changes.empty}get selectionSet(){return this.transactions.some((e=>e.selection))}get empty(){return 0==this.flags&&0==this.transactions.length}}var go=function(e){return e[e.LTR=0]="LTR",e[e.RTL=1]="RTL",e}(go||(go={}));const mo=go.LTR,$o=go.RTL;function bo(e){let t=[];for(let i=0;i=t){if(s.level==i)return o;(n<0||(0!=r?r<0?s.fromt:e[n].level>s.level))&&(n=o)}}if(n<0)throw new RangeError("Index out of range");return n}}function To(e,t){if(e.length!=t.length)return!1;for(let i=0;ia&&s.push(new wo(a,d.from,u)),Ro(e,d.direction==mo!=!(u%2)?r+1:r,n,d.inner,d.from,d.to,s),a=d.to),f=d.to}else{if(f==i||(t?ko[f]!=O:ko[f]==O))break;f++}c?Yo(e,a,f,r+1,n,c,s):at;){let i=!0,h=!1;if(!l||a>o[l-1].to){let e=ko[a-1];e!=O&&(i=!1,h=16==e)}let c=i||1!=O?null:[],u=i?r:r+1,f=a;e:for(;;)if(l&&f==o[l-1].to){if(h)break e;let d=o[--l];if(!i)for(let e=d.from,i=l;;){if(e==t)break e;if(!i||o[i-1].to!=e){if(ko[e-1]==O)break e;break}e=o[--i].from}c?c.push(d):(d.to=0;e-=3)if(vo[e+1]==-i){let t=vo[e+2],i=2&t?n:4&t?1&t?o:n:0;i&&(ko[s]=ko[vo[e]]=i),O=e;break}}else{if(189==vo.length)break;vo[O++]=s,vo[O++]=t,vo[O++]=a}else if(2==(r=ko[s])||1==r){let e=r==n;a=e?0:1;for(let t=O-3;t>=0;t-=3){let i=vo[t+2];if(2&i)break;if(e)vo[t+2]|=2;else{if(4&i)break;vo[t+2]|=4}}}}}(e,n,o,r,O),function(e,t,i,r){for(let n=0,o=r;n<=i.length;n++){let s=n?i[n-1].to:e,O=na;)t==o&&(t=i[--r].from,o=r?i[r-1].to:e),ko[--t]=h;a=s}else o=s,a++}}}(n,o,r,O),Yo(e,n,o,t,i,r,s)}function _o(e){return[new wo(0,e,0)]}let Vo="";function Zo(e,t,i,r,n){var o;let s=r.head-e.from,O=-1;if(0==s){if(!n||!e.length)return null;t[0].level!=i&&(s=t[0].side(!1,i),O=0)}else if(s==e.length){if(n)return null;let e=t[t.length-1];e.level!=i&&(s=e.side(!0,i),O=t.length-1)}O<0&&(O=wo.find(t,s,null!==(o=r.bidiLevel)&&void 0!==o?o:-1,r.assoc));let a=t[O];s==a.side(n,i)&&(a=t[O+=n?1:-1],s=a.side(!n,i));let l=n==(a.dir==i),h=g(e.text,s,l);if(Vo=e.text.slice(Math.min(s,h),Math.max(s,h)),h!=a.side(n,i))return W.cursor(h+e.from,l?-1:1,a.level);let c=O==(n?t.length-1:0)?null:t[O+(n?1:-1)];return c||a.level==i?c&&c.level0&&i.length&&(i.every((({fromA:e,toA:t})=>tthis.minWidthTo))?(this.minWidthFrom=e.changes.mapPos(this.minWidthFrom,1),this.minWidthTo=e.changes.mapPos(this.minWidthTo,1)):this.minWidth=this.minWidthFrom=this.minWidthTo=0);let r=-1;this.view.inputState.composing>=0&&((null===(t=this.domChanged)||void 0===t?void 0:t.newSel)?r=this.domChanged.newSel.head:function(e,t){let i=!1;return t&&e.iterChangedRanges(((e,r)=>{et.from&&(i=!0)})),i}(e.changes,this.hasComposition)||e.selectionSet||(r=e.state.selection.main.head));let n=r>-1?function(e,t,i){let r=Wo(e,i);if(!r)return null;let{node:n,from:o,to:s}=r,O=n.nodeValue;if(/[\n\r]/.test(O))return null;if(e.state.doc.sliceString(r.from,r.to)!=O)return null;let a=t.invertedDesc,l=new po(a.mapPos(o),a.mapPos(s),o,s),h=[];for(let t=n.parentNode;;t=t.parentNode){let i=Jr.get(t);if(i instanceof mn)h.push({node:t,deco:i.mark});else{if(i instanceof kn||"DIV"==t.nodeName&&t.parentNode==e.contentDOM)return{range:l,text:n,marks:h,line:t};if(t==e.contentDOM)return null;h.push({node:t,deco:new Zn({inclusive:!0,attributes:Tn(t),tagName:t.tagName.toLowerCase()})})}}}(this.view,e.changes,r):null;if(this.domChanged=null,this.hasComposition){this.markedForComposition.clear();let{from:t,to:r}=this.hasComposition;i=new po(t,r,e.changes.mapPos(t,-1),e.changes.mapPos(r,1)).addToSet(i.slice())}this.hasComposition=n?{from:n.range.fromB,to:n.range.toB}:null,(Qn.ie||Qn.chrome)&&!n&&e&&e.state.doc.lines!=e.startState.doc.lines&&(this.forceSelection=!0);let o=function(e,t,i){let r=new class{constructor(){this.changes=[]}compareRange(e,t){Cn(e,t,this.changes)}comparePoint(e,t){Cn(e,t,this.changes)}};return Ze.compare(e,t,i,r),r.changes}(this.decorations,this.updateDeco(),e.changes);return i=po.extendWithRanges(i,o),!!(7&this.flags||0!=i.length)&&(this.updateInner(i,e.startState.doc.length,n),e.transactions.length&&(this.lastUpdate=Date.now()),!0)}updateInner(e,t,i){this.view.viewState.mustMeasureContent=!0,this.updateChildren(e,t,i);let{observer:r}=this.view;r.ignore((()=>{this.dom.style.height=this.view.viewState.contentHeight/this.view.scaleY+"px",this.dom.style.flexBasis=this.minWidth?this.minWidth+"px":"";let e=Qn.chrome||Qn.ios?{node:r.selectionRange.focusNode,written:!1}:void 0;this.sync(this.view,e),this.flags&=-8,e&&(e.written||r.selectionRange.focusNode!=e.node)&&(this.forceSelection=!0),this.dom.style.height=""})),this.markedForComposition.forEach((e=>e.flags&=-9));let n=[];if(this.view.viewport.from||this.view.viewport.to=0?r[e]:null;if(!t)break;let o,s,O,a,{fromA:l,toA:h,fromB:c,toB:u}=t;if(i&&i.range.fromBc){let e=Un.build(this.view.state.doc,c,i.range.fromB,this.decorations,this.dynamicDecorationMap),t=Un.build(this.view.state.doc,i.range.toB,u,this.decorations,this.dynamicDecorationMap);s=e.breakAtStart,O=e.openStart,a=t.openEnd;let r=this.compositionView(i);t.breakAtStart?r.breakAfter=1:t.content.length&&r.merge(r.length,r.length,t.content[0],!1,t.openStart,0)&&(r.breakAfter=t.content[0].breakAfter,t.content.shift()),e.content.length&&r.merge(0,0,e.content[e.content.length-1],!0,0,e.openEnd)&&e.content.pop(),o=e.content.concat(r).concat(t.content)}else({content:o,breakAtStart:s,openStart:O,openEnd:a}=Un.build(this.view.state.doc,c,u,this.decorations,this.dynamicDecorationMap));let{i:f,off:d}=n.findPos(h,1),{i:p,off:Q}=n.findPos(l,-1);rn(this,p,Q,f,d,o,s,O,a)}i&&this.fixCompositionDOM(i)}compositionView(e){let t=new gn(e.text.nodeValue);t.flags|=8;for(let{deco:i}of e.marks)t=new mn(i,[t],t.length);let i=new kn;return i.append(t,0),i}fixCompositionDOM(e){let t=(e,t)=>{t.flags|=8|(t.children.some((e=>7&e.flags))?1:0),this.markedForComposition.add(t);let i=Jr.get(e);i&&i!=t&&(i.dom=null),t.setDOM(e)},i=this.childPos(e.range.fromB,1),r=this.children[i.i];t(e.line,r);for(let n=e.marks.length-1;n>=-1;n--)i=r.childPos(i.off,1),r=r.children[i.i],t(n>=0?e.marks[n].node:e.text,r)}updateSelection(e=!1,t=!1){!e&&this.view.observer.selectionRange.focusNode||this.view.observer.readSelectionRange();let i=this.view.root.activeElement,r=i==this.dom,n=!r&&qr(this.dom,this.view.observer.selectionRange)&&!(i&&this.dom.contains(i));if(!(r||t||n))return;let o=this.forceSelection;this.forceSelection=!1;let s=this.view.state.selection.main,O=this.moveToLine(this.domAtPos(s.anchor)),a=s.empty?O:this.moveToLine(this.domAtPos(s.head));if(Qn.gecko&&s.empty&&!this.hasComposition&&function(e){return 1==e.node.nodeType&&e.node.firstChild&&(0==e.offset||"false"==e.node.childNodes[e.offset-1].contentEditable)&&(e.offset==e.node.childNodes.length||"false"==e.node.childNodes[e.offset].contentEditable)}(O)){let e=document.createTextNode("");this.view.observer.ignore((()=>O.node.insertBefore(e,O.node.childNodes[O.offset]||null))),O=a=new Fr(e,0),o=!0}let l=this.view.observer.selectionRange;!o&&l.focusNode&&Wr(O.node,O.offset,l.anchorNode,l.anchorOffset)&&Wr(a.node,a.offset,l.focusNode,l.focusOffset)||(this.view.observer.ignore((()=>{Qn.android&&Qn.chrome&&this.dom.contains(l.focusNode)&&function(e,t){for(let i=e;i&&i!=t;i=i.assignedSlot||i.parentNode)if(1==i.nodeType&&"false"==i.contentEditable)return!0;return!1}(l.focusNode,this.dom)&&(this.dom.blur(),this.dom.focus({preventScroll:!0}));let e=Vr(this.view.root);if(e)if(s.empty){if(Qn.gecko){let e=function(e,t){return 1!=e.nodeType?0:(t&&"false"==e.childNodes[t-1].contentEditable?1:0)|(ts.head&&([O,a]=[a,O]),t.setEnd(a.node,a.offset),t.setStart(O.node,O.offset),e.removeAllRanges(),e.addRange(t)}n&&this.view.root.activeElement==this.dom&&(this.dom.blur(),i&&i.focus())})),this.view.observer.setSelectionRange(O,a)),this.impreciseAnchor=O.precise?null:new Fr(l.anchorNode,l.anchorOffset),this.impreciseHead=a.precise?null:new Fr(l.focusNode,l.focusOffset)}enforceCursorAssoc(){if(this.hasComposition)return;let{view:e}=this,t=e.state.selection.main,i=Vr(e.root),{anchorNode:r,anchorOffset:n}=e.observer.selectionRange;if(!(i&&t.empty&&t.assoc&&i.modify))return;let o=kn.find(this,t.head);if(!o)return;let s=o.posAtStart;if(t.head==s||t.head==s+o.length)return;let O=this.coordsAt(t.head,-1),a=this.coordsAt(t.head,1);if(!O||!a||O.bottom>a.top)return;let l=this.domAtPos(t.head+t.assoc);i.collapse(l.node,l.offset),i.modify("move",t.assoc<0?"forward":"backward","lineboundary"),e.observer.readSelectionRange();let h=e.observer.selectionRange;e.docView.posFromDOM(h.anchorNode,h.anchorOffset)!=t.from&&i.collapse(r,n)}moveToLine(e){let t,i=this.dom;if(e.node!=i)return e;for(let r=e.offset;!t&&r=0;r--){let e=Jr.get(i.childNodes[r]);e instanceof kn&&(t=e.domAtPos(e.length))}return t?new Fr(t.node,t.offset,!0):e}nearest(e){for(let t=e;t;){let e=Jr.get(t);if(e&&e.rootView==this)return e;t=t.parentNode}return null}posFromDOM(e,t){let i=this.nearest(e);if(!i)throw new RangeError("Trying to find position for a DOM position outside of the document");return i.localPosFromDOM(e,t)+i.posAtStart}domAtPos(e){let{i:t,off:i}=this.childCursor().findPos(e,-1);for(;t=0;o--){let s=this.children[o],O=n-s.breakAfter,a=O-s.length;if(Oe||s.covers(1))&&(!i||s instanceof kn&&!(i instanceof kn&&t>=0))&&(i=s,r=a),n=a}return i?i.coordsAt(e-r,t):null}coordsForChar(e){let{i:t,off:i}=this.childPos(e,1),r=this.children[t];if(!(r instanceof kn))return null;for(;r.children.length;){let{i:e,off:t}=r.childPos(i,1);for(;;e++){if(e==r.children.length)return null;if((r=r.children[e]).length)break}i=t}if(!(r instanceof gn))return null;let n=g(r.text,i);if(n==i)return null;let o=Br(r.dom,i,n).getClientRects();for(let e=0;eMath.max(this.view.scrollDOM.clientWidth,this.minWidth)+1,s=-1,O=this.view.textDirection==go.LTR;for(let e=0,a=0;ar)break;if(e>=i){let i=l.dom.getBoundingClientRect();if(t.push(i.height),o){let t=l.dom.lastChild,r=t?Ar(t):[];if(r.length){let t=r[r.length-1],o=O?t.right-i.left:i.right-t.left;o>s&&(s=o,this.minWidth=n,this.minWidthFrom=e,this.minWidthTo=h)}}}e=h+l.breakAfter}return t}textDirectionAt(e){let{i:t}=this.childPos(e,1);return"rtl"==getComputedStyle(this.children[t].dom).direction?go.RTL:go.LTR}measureTextSize(){for(let e of this.children)if(e instanceof kn){let t=e.measureTextSize();if(t)return t}let e,t,i,r=document.createElement("div");return r.className="cm-line",r.style.width="99999px",r.style.position="absolute",r.textContent="abc def ghi jkl mno pqr stu",this.view.observer.ignore((()=>{this.dom.appendChild(r);let n=Ar(r.firstChild)[0];e=r.getBoundingClientRect().height,t=n?n.width/27:7,i=n?n.height:e,r.remove()})),{lineHeight:e,charWidth:t,textHeight:i}}childCursor(e=this.length){let t=this.children.length;return t&&(e-=this.children[--t].length),new tn(this.children,e,t)}computeBlockGapDeco(){let e=[],t=this.view.viewState;for(let i=0,r=0;;r++){let n=r==t.viewports.length?null:t.viewports[r],o=n?n.from-1:this.length;if(o>i){let r=(t.lineBlockAt(o).bottom-t.lineBlockAt(i).top)/this.view.scaleY;e.push(Vn.replace({widget:new Ao(r),block:!0,inclusive:!0,isBlockGap:!0}).range(i,o))}if(!n)break;i=n.to+1}return Vn.set(e)}updateDeco(){let e=this.view.state.facet(Oo).map(((e,t)=>(this.dynamicDecorationMap[t]="function"==typeof e)?e(this.view):e));for(let t=e.length;ti.anchor?-1:1);if(!r)return;!i.empty&&(t=this.coordsAt(i.anchor,i.anchor>i.head?-1:1))&&(r={left:Math.min(r.left,t.left),top:Math.min(r.top,t.top),right:Math.max(r.right,t.right),bottom:Math.max(r.bottom,t.bottom)});let n=uo(this.view),o={left:r.left-n.left,top:r.top-n.top,right:r.right+n.right,bottom:r.bottom+n.bottom};!function(e,t,i,r,n,o,s,O){let a=e.ownerDocument,l=a.defaultView||window;for(let h=e,c=!1;h&&!c;)if(1==h.nodeType){let e,u=h==a.body,f=1,d=1;if(u)e=Er(l);else{if(/^(fixed|sticky)$/.test(getComputedStyle(h).position)&&(c=!0),h.scrollHeight<=h.clientHeight&&h.scrollWidth<=h.clientWidth){h=h.assignedSlot||h.parentNode;continue}let t=h.getBoundingClientRect();f=t.width/h.offsetWidth,d=t.height/h.offsetHeight,e={left:t.left,right:t.left+h.clientWidth*f,top:t.top,bottom:t.top+h.clientHeight*d}}let p=0,Q=0;if("nearest"==n)t.top0&&t.bottom>e.bottom+Q&&(Q=t.bottom-e.bottom+Q+s)):t.bottom>e.bottom&&(Q=t.bottom-e.bottom+s,i<0&&t.top-Q0&&t.right>e.right+p&&(p=t.right-e.right+p+o)):t.right>e.right&&(p=t.right-e.right+o,i<0&&t.left0))break;i=i.childNodes[r-1],r=Nr(i)}if(i>=0)for(let r=e,n=t;;){if(3==r.nodeType)return{node:r,offset:n};if(!(1==r.nodeType&&n=0))break;r=r.childNodes[n],n=0}return null}function Uo(e,t){return t.left>e?t.left-e:Math.max(0,e-t.right)}function No(e,t){return t.top>e?t.top-e:Math.max(0,e-t.bottom)}function jo(e,t){return e.topt.top+1}function Eo(e,t){return te.bottom?{top:e.top,left:e.left,right:e.right,bottom:t}:e}function Go(e,t,i){let r,n,o,s,O,a,l,h,c=!1;for(let u=e.firstChild;u;u=u.nextSibling){let e=Ar(u);for(let f=0;fQ||s==Q&&o>p){r=u,n=d,o=p,s=Q;let O=Q?i0?f0)}0==p?i>d.bottom&&(!l||l.bottomd.top)&&(a=u,h=d):l&&jo(l,d)?l=zo(l,d.bottom):h&&jo(h,d)&&(h=Eo(h,d.top))}}if(l&&l.bottom>=i?(r=O,n=l):h&&h.top<=i&&(r=a,n=h),!r)return{node:e,offset:0};let u=Math.max(n.left,Math.min(n.right,t));return 3==r.nodeType?Do(r,u,i):c&&"false"!=r.contentEditable?Go(r,u,i):{node:e,offset:Array.prototype.indexOf.call(e.childNodes,r)+(t>=(n.left+n.right)/2?1:0)}}function Do(e,t,i){let r=e.nodeValue.length,n=-1,o=1e9,s=0;for(let O=0;Oi?l.top-i:i-l.bottom)-1;if(l.left-1<=t&&l.right+1>=t&&h=(l.left+l.right)/2,r=i;if((Qn.chrome||Qn.gecko)&&Br(e,O).getBoundingClientRect().left==l.right&&(r=!i),h<=0)return{node:e,offset:O+(r?1:0)};n=O+(r?1:0),o=h}}}return{node:e,offset:n>-1?n:s>0?e.nodeValue.length:0}}function Mo(e,t,i,r=-1){var n,o;let s,O=e.contentDOM.getBoundingClientRect(),a=O.top+e.viewState.paddingTop,{docHeight:l}=e.viewState,{x:h,y:c}=t,u=c-a;if(u<0)return 0;if(u>l)return e.state.doc.length;for(let t=e.viewState.heightOracle.textHeight/2,n=!1;s=e.elementAtHeight(u),s.type!=_n.Text;)for(;u=r>0?s.bottom+t:s.top-t,!(u>=0&&u<=l);){if(n)return i?null:0;n=!0,r=-r}c=a+u;let f=s.from;if(fe.viewport.to)return e.viewport.to==e.state.doc.length?e.state.doc.length:i?null:Bo(e,O,s,h,c);let d=e.dom.ownerDocument,p=e.root.elementFromPoint?e.root:d,Q=p.elementFromPoint(h,c);Q&&!e.contentDOM.contains(Q)&&(Q=null),Q||(h=Math.max(O.left+1,Math.min(O.right-1,h)),Q=p.elementFromPoint(h,c),Q&&!e.contentDOM.contains(Q)&&(Q=null));let g,m=-1;if(Q&&0!=(null===(n=e.docView.nearest(Q))||void 0===n?void 0:n.isEditable))if(d.caretPositionFromPoint){let e=d.caretPositionFromPoint(h,c);e&&({offsetNode:g,offset:m}=e)}else if(d.caretRangeFromPoint){let t=d.caretRangeFromPoint(h,c);t&&(({startContainer:g,startOffset:m}=t),(!e.contentDOM.contains(g)||Qn.safari&&function(e,t,i){let r;if(3!=e.nodeType||t!=(r=e.nodeValue.length))return!1;for(let t=e.nextSibling;t;t=t.nextSibling)if(1!=t.nodeType||"BR"!=t.nodeName)return!1;return Br(e,r-1,r).getBoundingClientRect().left>i}(g,m,h)||Qn.chrome&&function(e,t,i){if(0!=t)return!1;for(let t=e;;){let e=t.parentNode;if(!e||1!=e.nodeType||e.firstChild!=t)return!1;if(e.classList.contains("cm-line"))break;t=e}return i-(1==e.nodeType?e.getBoundingClientRect():Br(e,0,Math.max(e.nodeValue.length,1)).getBoundingClientRect()).left>5}(g,m,h))&&(g=void 0))}if(!g||!e.docView.dom.contains(g)){let t=kn.find(e.docView,f);if(!t)return u>s.top+s.height/2?s.to:s.from;({node:g,offset:m}=Go(t.dom,h,c))}let $=e.docView.nearest(g);if(!$)return null;if($.isWidget&&1==(null===(o=$.dom)||void 0===o?void 0:o.nodeType)){let e=$.dom.getBoundingClientRect();return t.y1.5*e.defaultLineHeight){let t=e.viewState.heightOracle.textHeight;o+=Math.floor((n-i.top-.5*(e.defaultLineHeight-t))/t)*e.viewState.heightOracle.lineLength}let s=e.state.sliceDoc(i.from,i.to);return i.from+Be(s,o,e.state.tabSize)}function Io(e,t){let i=e.lineBlockAt(t);if(Array.isArray(i.type))for(let e of i.type)if(e.to>t||e.to==t&&(e.to==i.to||e.type==_n.Text))return e;return i}function Lo(e,t,i,r){let n=e.state.doc.lineAt(t.head),o=e.bidiSpans(n),s=e.textDirectionAt(n.from);for(let O=t,a=null;;){let t=Zo(n,o,s,O,i),l=Vo;if(!t){if(n.number==(i?e.state.doc.lines:1))return O;l="\n",n=e.state.doc.line(n.number+(i?1:-1)),o=e.bidiSpans(n),t=W.cursor(i?n.from:n.to)}if(a){if(!a(l))return O}else{if(!r)return t;a=r(l)}O=t}}function Ko(e,t,i){for(;;){let r=0;for(let n of e)n.between(t-1,t+1,((e,n,o)=>{if(t>e&&tt(e))),i.from,t.head>i.from?-1:1);return r==i.from?i:W.cursor(r,rnull)),Qn.gecko&&function(e){vs.has(e)||(vs.add(e),e.addEventListener("copy",(()=>{})),e.addEventListener("cut",(()=>{})))}(e.contentDOM.ownerDocument)}handleEvent(e){(function(e,t){if(!t.bubbles)return!0;if(t.defaultPrevented)return!1;for(let i,r=t.target;r!=e.contentDOM;r=r.parentNode)if(!r||11==r.nodeType||(i=Jr.get(r))&&i.ignoreEvent(t))return!1;return!0})(this.view,e)&&!this.ignoreDuringComposition(e)&&("keydown"==e.type&&this.keydown(e)||this.runHandlers(e.type,e))}runHandlers(e,t){let i=this.handlers[e];if(i){for(let e of i.observers)e(this.view,t);for(let e of i.handlers){if(t.defaultPrevented)break;if(e(this.view,t)){t.preventDefault();break}}}}ensureHandlers(e){let t=function(e){let t=Object.create(null);function i(e){return t[e]||(t[e]={observers:[],handlers:[]})}for(let t of e){let e=t.spec;if(e&&e.domEventHandlers)for(let r in e.domEventHandlers){let n=e.domEventHandlers[r];n&&i(r).handlers.push(Jo(t.value,n))}if(e&&e.domEventObservers)for(let r in e.domEventObservers){let n=e.domEventObservers[r];n&&i(r).observers.push(Jo(t.value,n))}}for(let e in os)i(e).handlers.push(os[e]);for(let e in ss)i(e).observers.push(ss[e]);return t}(e),i=this.handlers,r=this.view.contentDOM;for(let e in t)if("scroll"!=e){let n=!t[e].handlers.length,o=i[e];o&&n!=!o.handlers.length&&(r.removeEventListener(e,this.handleEvent),o=null),o||r.addEventListener(e,this.handleEvent,{passive:n})}for(let e in i)"scroll"==e||t[e]||r.removeEventListener(e,this.handleEvent);this.handlers=t}keydown(e){if(this.lastKeyCode=e.keyCode,this.lastKeyTime=Date.now(),9==e.keyCode&&Date.now()t.keyCode==e.keyCode)))&&!e.ctrlKey||ts.indexOf(e.key)>-1&&e.ctrlKey&&!e.shiftKey)?(229!=e.keyCode&&this.view.observer.forceFlush(),!1):(this.pendingIOSKey=t||e,setTimeout((()=>this.flushIOSKey()),250),!0)}flushIOSKey(){let e=this.pendingIOSKey;return!!e&&(this.pendingIOSKey=void 0,Ir(this.view.contentDOM,e.key,e.keyCode))}ignoreDuringComposition(e){return!!/^key/.test(e.type)&&(this.composing>0||!!(Qn.safari&&!Qn.ios&&this.compositionPendingKey&&Date.now()-this.compositionEndedAt<100)&&(this.compositionPendingKey=!1,!0))}startMouseSelection(e){this.mouseSelection&&this.mouseSelection.destroy(),this.mouseSelection=e}update(e){this.mouseSelection&&this.mouseSelection.update(e),e.transactions.length&&(this.lastKeyCode=this.lastSelectionTime=0)}destroy(){this.mouseSelection&&this.mouseSelection.destroy()}}function Jo(e,t){return(i,r)=>{try{return t.call(e,r,i)}catch(e){Jn(i.state,e)}}}const es=[{key:"Backspace",keyCode:8,inputType:"deleteContentBackward"},{key:"Enter",keyCode:13,inputType:"insertParagraph"},{key:"Enter",keyCode:13,inputType:"insertLineBreak"},{key:"Delete",keyCode:46,inputType:"deleteContentForward"}],ts="dthko",is=[16,17,18,20,91,92,224,225];function rs(e){return.7*Math.max(0,e)+8}class ns{constructor(e,t,i,r){this.view=e,this.startEvent=t,this.style=i,this.mustSelect=r,this.scrollSpeed={x:0,y:0},this.scrolling=-1,this.lastEvent=t,this.scrollParent=function(e){let t=e.ownerDocument;for(let i=e.parentNode;i&&i!=t.body;)if(1==i.nodeType){if(i.scrollHeight>i.clientHeight||i.scrollWidth>i.clientWidth)return i;i=i.assignedSlot||i.parentNode}else{if(11!=i.nodeType)break;i=i.host}return null}(e.contentDOM),this.atoms=e.state.facet(ao).map((t=>t(e)));let n=e.contentDOM.ownerDocument;n.addEventListener("mousemove",this.move=this.move.bind(this)),n.addEventListener("mouseup",this.up=this.up.bind(this)),this.extend=t.shiftKey,this.multiple=e.state.facet(Te.allowMultipleSelections)&&function(e,t){let i=e.state.facet(En);return i.length?i[0](t):Qn.mac?t.metaKey:t.ctrlKey}(e,t),this.dragging=!(!function(e,t){let{main:i}=e.state.selection;if(i.empty)return!1;let r=Vr(e.root);if(!r||0==r.rangeCount)return!0;let n=r.getRangeAt(0).getClientRects();for(let e=0;e=t.clientX&&i.top<=t.clientY&&i.bottom>=t.clientY)return!0}return!1}(e,t)||1!=ms(t))&&null}start(e){!1===this.dragging&&this.select(e)}move(e){var t;if(0==e.buttons)return this.destroy();if(this.dragging||null==this.dragging&&function(e,t){return Math.max(Math.abs(e.clientX-t.clientX),Math.abs(e.clientY-t.clientY))}(this.startEvent,e)<10)return;this.select(this.lastEvent=e);let i=0,r=0,n=(null===(t=this.scrollParent)||void 0===t?void 0:t.getBoundingClientRect())||{left:0,top:0,right:this.view.win.innerWidth,bottom:this.view.win.innerHeight},o=uo(this.view);e.clientX-o.left<=n.left+6?i=-rs(n.left-e.clientX):e.clientX+o.right>=n.right-6&&(i=rs(e.clientX-n.right)),e.clientY-o.top<=n.top+6?r=-rs(n.top-e.clientY):e.clientY+o.bottom>=n.bottom-6&&(r=rs(e.clientY-n.bottom)),this.setScrollSpeed(i,r)}up(e){null==this.dragging&&this.select(this.lastEvent),this.dragging||e.preventDefault(),this.destroy()}destroy(){this.setScrollSpeed(0,0);let e=this.view.contentDOM.ownerDocument;e.removeEventListener("mousemove",this.move),e.removeEventListener("mouseup",this.up),this.view.inputState.mouseSelection=null}setScrollSpeed(e,t){this.scrollSpeed={x:e,y:t},e||t?this.scrolling<0&&(this.scrolling=setInterval((()=>this.scroll()),50)):this.scrolling>-1&&(clearInterval(this.scrolling),this.scrolling=-1)}scroll(){this.scrollParent?(this.scrollParent.scrollLeft+=this.scrollSpeed.x,this.scrollParent.scrollTop+=this.scrollSpeed.y):this.view.win.scrollBy(this.scrollSpeed.x,this.scrollSpeed.y),!1===this.dragging&&this.select(this.lastEvent)}skipAtoms(e){let t=null;for(let i=0;ithis.select(this.lastEvent)),20)}}const os=Object.create(null),ss=Object.create(null),Os=Qn.ie&&Qn.ie_version<15||Qn.ios&&Qn.webkit_version<604;function as(e,t){let i,{state:r}=e,n=1,o=r.toText(t),s=o.lines==r.selection.ranges.length;if(null!=bs&&r.selection.ranges.every((e=>e.empty))&&bs==o.toString()){let e=-1;i=r.changeByRange((i=>{let O=r.doc.lineAt(i.from);if(O.from==e)return{range:i};e=O.from;let a=r.toText((s?o.line(n++).text:t)+r.lineBreak);return{changes:{from:O.from,insert:a},range:W.cursor(i.from+a.length)}}))}else i=s?r.changeByRange((e=>{let t=o.line(n++);return{changes:{from:e.from,to:e.to,insert:t.text},range:W.cursor(e.from+t.length)}})):r.replaceSelection(o);e.dispatch(i,{userEvent:"input.paste",scrollIntoView:!0})}function ls(e,t,i,r){if(1==r)return W.cursor(t,i);if(2==r)return function(e,t,i=1){let r=e.charCategorizer(t),n=e.doc.lineAt(t),o=t-n.from;if(0==n.length)return W.cursor(t);0==o?i=1:o==n.length&&(i=-1);let s=o,O=o;i<0?s=g(n.text,o,!1):O=g(n.text,o);let a=r(n.text.slice(s,O));for(;s>0;){let e=g(n.text,s,!1);if(r(n.text.slice(e,s))!=a)break;s=e}for(;O{e.inputState.lastScrollTop=e.scrollDOM.scrollTop,e.inputState.lastScrollLeft=e.scrollDOM.scrollLeft},os.keydown=(e,t)=>(e.inputState.setSelectionOrigin("select"),27==t.keyCode&&(e.inputState.lastEscPress=Date.now()),!1),ss.touchstart=(e,t)=>{e.inputState.lastTouchTime=Date.now(),e.inputState.setSelectionOrigin("select.pointer")},ss.touchmove=e=>{e.inputState.setSelectionOrigin("select.pointer")},os.mousedown=(e,t)=>{if(e.observer.flush(),e.inputState.lastTouchTime>Date.now()-2e3)return!1;let i=null;for(let r of e.state.facet(Gn))if(i=r(e,t),i)break;if(i||0!=t.button||(i=function(e,t){let i=fs(e,t),r=ms(t),n=e.state.selection;return{update(e){e.docChanged&&(i.pos=e.changes.mapPos(i.pos),n=n.map(e.changes))},get(t,o,s){let O,a=fs(e,t),l=ls(e,a.pos,a.bias,r);if(i.pos!=a.pos&&!o){let t=ls(e,i.pos,i.bias,r),n=Math.min(t.from,l.from),o=Math.max(t.to,l.to);l=n1&&(O=function(e,t){for(let i=0;i=t)return W.create(e.ranges.slice(0,i).concat(e.ranges.slice(i+1)),e.mainIndex==i?0:e.mainIndex-(e.mainIndex>i?1:0))}return null}(n,a.pos))?O:s?n.addRange(l):W.create([l])}}}(e,t)),i){let r=!e.hasFocus;e.inputState.startMouseSelection(new ns(e,t,i,r)),r&&e.observer.ignore((()=>Mr(e.contentDOM)));let n=e.inputState.mouseSelection;if(n)return n.start(t),!1===n.dragging}return!1};let hs=(e,t)=>e>=t.top&&e<=t.bottom,cs=(e,t,i)=>hs(t,i)&&e>=i.left&&e<=i.right;function us(e,t,i,r){let n=kn.find(e.docView,t);if(!n)return 1;let o=t-n.posAtStart;if(0==o)return 1;if(o==n.length)return-1;let s=n.coordsAt(o,-1);if(s&&cs(i,r,s))return-1;let O=n.coordsAt(o,1);return O&&cs(i,r,O)?1:s&&hs(r,s)?-1:1}function fs(e,t){let i=e.posAtCoords({x:t.clientX,y:t.clientY},!1);return{pos:i,bias:us(e,i,t.clientX,t.clientY)}}const ds=Qn.ie&&Qn.ie_version<=11;let ps=null,Qs=0,gs=0;function ms(e){if(!ds)return e.detail;let t=ps,i=gs;return ps=e,gs=Date.now(),Qs=!t||i>Date.now()-400&&Math.abs(t.clientX-e.clientX)<2&&Math.abs(t.clientY-e.clientY)<2?(Qs+1)%3:1}function $s(e,t,i,r){if(!i)return;let n=e.posAtCoords({x:t.clientX,y:t.clientY},!1),{mouseSelection:o}=e.inputState,s=r&&o&&o.dragging&&function(e,t){let i=e.state.facet(zn);return i.length?i[0](t):Qn.mac?!t.altKey:!t.ctrlKey}(e,t)?{from:o.dragging.from,to:o.dragging.to}:null,O={from:n,insert:i},a=e.state.changes(s?[s,O]:O);e.focus(),e.dispatch({changes:a,selection:{anchor:a.mapPos(n,-1),head:a.mapPos(n,1)},userEvent:s?"move.drop":"input.drop"})}os.dragstart=(e,t)=>{let{selection:{main:i}}=e.state,{mouseSelection:r}=e.inputState;return r&&(r.dragging=i),t.dataTransfer&&(t.dataTransfer.setData("Text",e.state.sliceDoc(i.from,i.to)),t.dataTransfer.effectAllowed="copyMove"),!1},os.drop=(e,t)=>{if(!t.dataTransfer)return!1;if(e.state.readOnly)return!0;let i=t.dataTransfer.files;if(i&&i.length){let r=Array(i.length),n=0,o=()=>{++n==i.length&&$s(e,t,r.filter((e=>null!=e)).join(e.state.lineBreak),!1)};for(let e=0;e{/[\x00-\x08\x0e-\x1f]{2}/.test(t.result)||(r[e]=t.result),o()},t.readAsText(i[e])}return!0}{let i=t.dataTransfer.getData("Text");if(i)return $s(e,t,i,!0),!0}return!1},os.paste=(e,t)=>{if(e.state.readOnly)return!0;e.observer.flush();let i=Os?null:t.clipboardData;return i?(as(e,i.getData("text/plain")||i.getData("text/uri-text")),!0):(function(e){let t=e.dom.parentNode;if(!t)return;let i=t.appendChild(document.createElement("textarea"));i.style.cssText="position: fixed; left: -10000px; top: 10px",i.focus(),setTimeout((()=>{e.focus(),i.remove(),as(e,i.value)}),50)}(e),!1)};let bs=null;os.copy=os.cut=(e,t)=>{let{text:i,ranges:r,linewise:n}=function(e){let t=[],i=[],r=!1;for(let r of e.selection.ranges)r.empty||(t.push(e.sliceDoc(r.from,r.to)),i.push(r));if(!t.length){let n=-1;for(let{from:r}of e.selection.ranges){let o=e.doc.lineAt(r);o.number>n&&(t.push(o.text),i.push({from:o.from,to:Math.min(e.doc.length,o.to+1)})),n=o.number}r=!0}return{text:t.join(e.lineBreak),ranges:i,linewise:r}}(e.state);if(!i&&!n)return!1;bs=n?i:null,"cut"!=t.type||e.state.readOnly||e.dispatch({changes:r,scrollIntoView:!0,userEvent:"delete.cut"});let o=Os?null:t.clipboardData;return o?(o.clearData(),o.setData("text/plain",i),!0):(function(e,t){let i=e.dom.parentNode;if(!i)return;let r=i.appendChild(document.createElement("textarea"));r.style.cssText="position: fixed; left: -10000px; top: 10px",r.value=t,r.focus(),r.selectionEnd=t.length,r.selectionStart=0,setTimeout((()=>{r.remove(),e.focus()}),50)}(e,i),!1)};const Xs=fe.define();function Ss(e,t){let i=[];for(let r of e.facet(In)){let n=r(e,t);n&&i.push(n)}return i?e.update({effects:i,annotations:Xs.of(!0)}):null}function ys(e){setTimeout((()=>{let t=e.hasFocus;if(t!=e.inputState.notifiedFocused){let i=Ss(e.state,t);i?e.dispatch(i):e.update([])}}),10)}ss.focus=e=>{e.inputState.lastFocusTime=Date.now(),e.scrollDOM.scrollTop||!e.inputState.lastScrollTop&&!e.inputState.lastScrollLeft||(e.scrollDOM.scrollTop=e.inputState.lastScrollTop,e.scrollDOM.scrollLeft=e.inputState.lastScrollLeft),ys(e)},ss.blur=e=>{e.observer.clearSelectionRange(),ys(e)},ss.compositionstart=ss.compositionupdate=e=>{null==e.inputState.compositionFirstChange&&(e.inputState.compositionFirstChange=!0),e.inputState.composing<0&&(e.inputState.composing=0)},ss.compositionend=e=>{e.inputState.composing=-1,e.inputState.compositionEndedAt=Date.now(),e.inputState.compositionPendingKey=!0,e.inputState.compositionPendingChange=e.observer.pendingRecords().length>0,e.inputState.compositionFirstChange=null,Qn.chrome&&Qn.android?e.observer.flushSoon():e.inputState.compositionPendingChange?Promise.resolve().then((()=>e.observer.flush())):setTimeout((()=>{e.inputState.composing<0&&e.docView.hasComposition&&e.update([])}),50)},ss.contextmenu=e=>{e.inputState.lastContextMenu=Date.now()},os.beforeinput=(e,t)=>{var i;let r;if(Qn.chrome&&Qn.android&&(r=es.find((e=>e.inputType==t.inputType)))&&(e.observer.delayAndroidKey(r.key,r.keyCode),"Backspace"==r.key||"Delete"==r.key)){let t=(null===(i=window.visualViewport)||void 0===i?void 0:i.height)||0;setTimeout((()=>{var i;((null===(i=window.visualViewport)||void 0===i?void 0:i.height)||0)>t+10&&e.hasFocus&&(e.contentDOM.blur(),e.focus())}),100)}return!1};const vs=new Set;const Ps=["pre-wrap","normal","pre-line","break-spaces"];class xs{constructor(e){this.lineWrapping=e,this.doc=o.empty,this.heightSamples={},this.lineHeight=14,this.charWidth=7,this.textHeight=14,this.lineLength=30,this.heightChanged=!1}heightForGap(e,t){let i=this.doc.lineAt(t).number-this.doc.lineAt(e).number+1;return this.lineWrapping&&(i+=Math.max(0,Math.ceil((t-e-i*this.lineLength*.5)/this.lineLength))),this.lineHeight*i}heightForLine(e){return this.lineWrapping?(1+Math.max(0,Math.ceil((e-this.lineLength)/(this.lineLength-5))))*this.lineHeight:this.lineHeight}setDoc(e){return this.doc=e,this}mustRefreshForWrapping(e){return Ps.indexOf(e)>-1!=this.lineWrapping}mustRefreshForHeights(e){let t=!1;for(let i=0;i-1,O=Math.round(t)!=Math.round(this.lineHeight)||this.lineWrapping!=s;if(this.lineWrapping=s,this.lineHeight=t,this.charWidth=i,this.textHeight=r,this.lineLength=n,O){this.heightSamples={};for(let e=0;e0}set outdated(e){this.flags=(e?2:0)|-3&this.flags}setHeight(e,t){this.height!=t&&(Math.abs(this.height-t)>.001&&(e.heightChanged=!0),this.height=t)}replace(e,t,i){return Ys.of(i)}decomposeLeft(e,t){t.push(this)}decomposeRight(e,t){t.push(this)}applyChanges(e,t,i,r){let n=this,o=i.doc;for(let s=r.length-1;s>=0;s--){let{fromA:O,toA:a,fromB:l,toB:h}=r[s],c=n.lineAt(O,ks.ByPosNoHeight,i.setDoc(t),0,0),u=c.to>=a?c:n.lineAt(a,ks.ByPosNoHeight,i,0,0);for(h+=u.to-a,a=u.to;s>0&&c.from<=r[s-1].toA;)O=r[s-1].fromA,l=r[s-1].fromB,s--,O2*n){let n=e[t-1];n.break?e.splice(--t,1,n.left,null,n.right):e.splice(--t,1,n.left,n.right),i+=1+n.break,r-=n.size}else{if(!(n>2*r))break;{let t=e[i];t.break?e.splice(i,1,t.left,null,t.right):e.splice(i,1,t.left,t.right),i+=2+t.break,n-=t.size}}else if(r=n&&o(this.blockAt(0,i,r,n))}updateHeight(e,t=0,i=!1,r){return r&&r.from<=t&&r.more&&this.setHeight(e,r.heights[r.index++]),this.outdated=!1,this}toString(){return`block(${this.length})`}}class _s extends Rs{constructor(e,t){super(e,t,null),this.collapsed=0,this.widgetHeight=0,this.breaks=0}blockAt(e,t,i,r){return new Ts(r,this.length,i,this.height,this.breaks)}replace(e,t,i){let r=i[0];return 1==i.length&&(r instanceof _s||r instanceof Vs&&4&r.flags)&&Math.abs(this.length-r.length)<10?(r instanceof Vs?r=new _s(r.length,this.height):r.height=this.height,this.outdated||(r.outdated=!1),r):Ys.of(i)}updateHeight(e,t=0,i=!1,r){return r&&r.from<=t&&r.more?this.setHeight(e,r.heights[r.index++]):(i||this.outdated)&&this.setHeight(e,Math.max(this.widgetHeight,e.heightForLine(this.length-this.collapsed))+this.breaks*e.lineHeight),this.outdated=!1,this}toString(){return`line(${this.length}${this.collapsed?-this.collapsed:""}${this.widgetHeight?":"+this.widgetHeight:""})`}}class Vs extends Ys{constructor(e){super(e,0)}heightMetrics(e,t){let i,r=e.doc.lineAt(t).number,n=e.doc.lineAt(t+this.length).number,o=n-r+1,s=0;if(e.lineWrapping){let t=Math.min(this.height,e.lineHeight*o);i=t/o,this.length>o+1&&(s=(this.height-t)/(this.length-o-1))}else i=this.height/o;return{firstLine:r,lastLine:n,perLine:i,perChar:s}}blockAt(e,t,i,r){let{firstLine:n,lastLine:o,perLine:s,perChar:O}=this.heightMetrics(t,r);if(t.lineWrapping){let n=r+Math.round(Math.max(0,Math.min(1,(e-i)/this.height))*this.length),o=t.doc.lineAt(n),a=s+o.length*O,l=Math.max(i,e-a/2);return new Ts(o.from,o.length,l,a,0)}{let r=Math.max(0,Math.min(o-n,Math.floor((e-i)/s))),{from:O,length:a}=t.doc.line(n+r);return new Ts(O,a,i+s*r,s,0)}}lineAt(e,t,i,r,n){if(t==ks.ByHeight)return this.blockAt(e,i,r,n);if(t==ks.ByPosNoHeight){let{from:t,to:r}=i.doc.lineAt(e);return new Ts(t,r-t,0,0,0)}let{firstLine:o,perLine:s,perChar:O}=this.heightMetrics(i,n),a=i.doc.lineAt(e),l=s+a.length*O,h=a.number-o,c=r+s*h+O*(a.from-n-h);return new Ts(a.from,a.length,Math.max(r,Math.min(c,r+this.height-l)),l,0)}forEachLine(e,t,i,r,n,o){e=Math.max(e,n),t=Math.min(t,n+this.length);let{firstLine:s,perLine:O,perChar:a}=this.heightMetrics(i,n);for(let l=e,h=r;l<=t;){let t=i.doc.lineAt(l);if(l==e){let i=t.number-s;h+=O*i+a*(e-n-i)}let r=O+a*t.length;o(new Ts(t.from,t.length,h,r,0)),h+=r,l=t.to+1}}replace(e,t,i){let r=this.length-t;if(r>0){let e=i[i.length-1];e instanceof Vs?i[i.length-1]=new Vs(e.length+r):i.push(null,new Vs(r-1))}if(e>0){let t=i[0];t instanceof Vs?i[0]=new Vs(e+t.length):i.unshift(new Vs(e-1),null)}return Ys.of(i)}decomposeLeft(e,t){t.push(new Vs(e-1),null)}decomposeRight(e,t){t.push(null,new Vs(this.length-e-1))}updateHeight(e,t=0,i=!1,r){let n=t+this.length;if(r&&r.from<=t+this.length&&r.more){let i=[],o=Math.max(t,r.from),s=-1;for(r.from>t&&i.push(new Vs(r.from-t-1).updateHeight(e,t));o<=n&&r.more;){let t=e.doc.lineAt(o).length;i.length&&i.push(null);let n=r.heights[r.index++];-1==s?s=n:Math.abs(n-s)>=.001&&(s=-2);let O=new _s(t,n);O.outdated=!1,i.push(O),o+=t+1}o<=n&&i.push(null,new Vs(n-o).updateHeight(e,o));let O=Ys.of(i);return(s<0||Math.abs(O.height-this.height)>=.001||Math.abs(s-this.heightMetrics(e,t).perLine)>=.001)&&(e.heightChanged=!0),O}return(i||this.outdated)&&(this.setHeight(e,e.heightForGap(t,t+this.length)),this.outdated=!1),this}toString(){return`gap(${this.length})`}}class Zs extends Ys{constructor(e,t,i){super(e.length+t+i.length,e.height+i.height,t|(e.outdated||i.outdated?2:0)),this.left=e,this.right=i,this.size=e.size+i.size}get break(){return 1&this.flags}blockAt(e,t,i,r){let n=i+this.left.height;return es))return a;let l=t==ks.ByPosNoHeight?ks.ByPosNoHeight:ks.ByPos;return O?a.join(this.right.lineAt(s,l,i,o,s)):this.left.lineAt(s,l,i,r,n).join(a)}forEachLine(e,t,i,r,n,o){let s=r+this.left.height,O=n+this.left.length+this.break;if(this.break)e=O&&this.right.forEachLine(e,t,i,s,O,o);else{let a=this.lineAt(O,ks.ByPos,i,r,n);e=e&&a.from<=t&&o(a),t>a.to&&this.right.forEachLine(a.to+1,t,i,s,O,o)}}replace(e,t,i){let r=this.left.length+this.break;if(tthis.left.length)return this.balanced(this.left,this.right.replace(e-r,t-r,i));let n=[];e>0&&this.decomposeLeft(e,n);let o=n.length;for(let e of i)n.push(e);if(e>0&&qs(n,o-1),t=i&&t.push(null)),e>i&&this.right.decomposeLeft(e-i,t)}decomposeRight(e,t){let i=this.left.length,r=i+this.break;if(e>=r)return this.right.decomposeRight(e-r,t);e2*t.size||t.size>2*e.size?Ys.of(this.break?[e,null,t]:[e,t]):(this.left=e,this.right=t,this.height=e.height+t.height,this.outdated=e.outdated||t.outdated,this.size=e.size+t.size,this.length=e.length+this.break+t.length,this)}updateHeight(e,t=0,i=!1,r){let{left:n,right:o}=this,s=t+n.length+this.break,O=null;return r&&r.from<=t+n.length&&r.more?O=n=n.updateHeight(e,t,i,r):n.updateHeight(e,t,i),r&&r.from<=s+o.length&&r.more?O=o=o.updateHeight(e,s,i,r):o.updateHeight(e,s,i),O?this.balanced(n,o):(this.height=this.left.height+this.right.height,this.outdated=!1,this)}toString(){return this.left+(this.break?" ":"-")+this.right}}function qs(e,t){let i,r;null==e[t]&&(i=e[t-1])instanceof Vs&&(r=e[t+1])instanceof Vs&&e.splice(t-1,3,new Vs(i.length+1+r.length))}class As{constructor(e,t){this.pos=e,this.oracle=t,this.nodes=[],this.lineStart=-1,this.lineEnd=-1,this.covering=null,this.writtenTo=e}get isCovered(){return this.covering&&this.nodes[this.nodes.length-1]==this.covering}span(e,t){if(this.lineStart>-1){let e=Math.min(t,this.lineEnd),i=this.nodes[this.nodes.length-1];i instanceof _s?i.length+=e-this.pos:(e>this.pos||!this.isCovered)&&this.nodes.push(new _s(e-this.pos,-1)),this.writtenTo=e,t>e&&(this.nodes.push(null),this.writtenTo++,this.lineStart=-1)}this.pos=t}point(e,t,i){if(e=5)&&this.addLineDeco(r,n,o)}else t>e&&this.span(e,t);this.lineEnd>-1&&this.lineEnd-1)return;let{from:e,to:t}=this.oracle.doc.lineAt(this.pos);this.lineStart=e,this.lineEnd=t,this.writtenToe&&this.nodes.push(new _s(this.pos-e,-1)),this.writtenTo=this.pos}blankContent(e,t){let i=new Vs(t-e);return this.oracle.doc.lineAt(e).to==t&&(i.flags|=4),i}ensureLine(){this.enterLine();let e=this.nodes.length?this.nodes[this.nodes.length-1]:null;if(e instanceof _s)return e;let t=new _s(0,-1);return this.nodes.push(t),t}addBlock(e){this.enterLine();let t=e.deco;t&&t.startSide>0&&!this.isCovered&&this.ensureLine(),this.nodes.push(e),this.writtenTo=this.pos=this.pos+e.length,t&&t.endSide>0&&(this.covering=e)}addLineDeco(e,t,i){let r=this.ensureLine();r.length+=i,r.collapsed+=i,r.widgetHeight=Math.max(r.widgetHeight,e),r.breaks+=t,this.writtenTo=this.pos=this.pos+i}finish(e){let t=0==this.nodes.length?null:this.nodes[this.nodes.length-1];!(this.lineStart>-1)||t instanceof _s||this.isCovered?(this.writtenToi.clientHeight||i.scrollWidth>i.clientWidth)&&"visible"!=r.overflow){let r=i.getBoundingClientRect();o=Math.max(o,r.left),s=Math.min(s,r.right),O=Math.max(O,r.top),a=t==e.parentNode?r.bottom:Math.min(a,r.bottom)}t="absolute"==r.position||"fixed"==r.position?i.offsetParent:i.parentNode}else{if(11!=t.nodeType)break;t=t.host}return{left:o-i.left,right:Math.max(o,s)-i.left,top:O-(i.top+t),bottom:Math.max(O,a)-(i.top+t)}}function Us(e,t){let i=e.getBoundingClientRect();return{left:0,right:i.right-i.left,top:t,bottom:i.bottom-(i.top+t)}}class Ns{constructor(e,t,i){this.from=e,this.to=t,this.size=i}static same(e,t){if(e.length!=t.length)return!1;for(let i=0;i"function"!=typeof e&&"cm-lineWrapping"==e.class));this.heightOracle=new xs(t),this.stateDeco=e.facet(Oo).filter((e=>"function"!=typeof e)),this.heightMap=Ys.empty().applyChanges(this.stateDeco,o.empty,this.heightOracle.setDoc(e.doc),[new po(0,0,0,e.doc.length)]),this.viewport=this.getViewport(0,null),this.updateViewportLines(),this.updateForViewport(),this.lineGaps=this.ensureLineGaps([]),this.lineGapDeco=Vn.set(this.lineGaps.map((e=>e.draw(this,!1)))),this.computeVisibleRanges()}updateForViewport(){let e=[this.viewport],{main:t}=this.state.selection;for(let i=0;i<=1;i++){let r=i?t.head:t.anchor;if(!e.some((({from:e,to:t})=>r>=e&&r<=t))){let{from:t,to:i}=this.lineBlockAt(r);e.push(new zs(t,i))}}this.viewports=e.sort(((e,t)=>e.from-t.from)),this.scaler=this.heightMap.height<=7e6?Bs:new Is(this.heightOracle,this.heightMap,this.viewports)}updateViewportLines(){this.viewportLines=[],this.heightMap.forEachLine(this.viewport.from,this.viewport.to,this.heightOracle.setDoc(this.state.doc),0,0,(e=>{this.viewportLines.push(1==this.scaler.scale?e:Ls(e,this.scaler))}))}update(e,t=null){this.state=e.state;let i=this.stateDeco;this.stateDeco=this.state.facet(Oo).filter((e=>"function"!=typeof e));let r=e.changedRanges,n=po.extendWithRanges(r,function(e,t,i){let r=new Ws;return Ze.compare(e,t,i,r,0),r.changes}(i,this.stateDeco,e?e.changes:k.empty(this.state.doc.length))),o=this.heightMap.height,s=this.scrolledToBottom?null:this.scrollAnchorAt(this.scrollTop);this.heightMap=this.heightMap.applyChanges(this.stateDeco,e.startState.doc,this.heightOracle.setDoc(this.state.doc),n),this.heightMap.height!=o&&(e.flags|=2),s?(this.scrollAnchorPos=e.changes.mapPos(s.from,-1),this.scrollAnchorHeight=s.top):(this.scrollAnchorPos=-1,this.scrollAnchorHeight=this.heightMap.height);let O=n.length?this.mapViewport(this.viewport,e.changes):this.viewport;(t&&(t.range.headO.to)||!this.viewportIsAppropriate(O))&&(O=this.getViewport(0,t));let a=!e.changes.empty||2&e.flags||O.from!=this.viewport.from||O.to!=this.viewport.to;this.viewport=O,this.updateForViewport(),a&&this.updateViewportLines(),(this.lineGaps.length||this.viewport.to-this.viewport.from>4e3)&&this.updateLineGaps(this.ensureLineGaps(this.mapLineGaps(this.lineGaps,e.changes))),e.flags|=this.computeVisibleRanges(),t&&(this.scrollTarget=t),!this.mustEnforceCursorAssoc&&e.selectionSet&&e.view.lineWrapping&&e.state.selection.main.empty&&e.state.selection.main.assoc&&!e.state.facet(Kn)&&(this.mustEnforceCursorAssoc=!0)}measure(e){let t=e.contentDOM,i=window.getComputedStyle(t),r=this.heightOracle,n=i.whiteSpace;this.defaultTextDirection="rtl"==i.direction?go.RTL:go.LTR;let s=this.heightOracle.mustRefreshForWrapping(n),O=t.getBoundingClientRect(),a=s||this.mustMeasureContent||this.contentDOMHeight!=O.height;this.contentDOMHeight=O.height,this.mustMeasureContent=!1;let l=0,h=0;if(O.width&&O.height){let e=O.width/t.offsetWidth,i=O.height/t.offsetHeight;(e>.995&&e<1.005||!isFinite(e)||Math.abs(O.width-t.offsetWidth)<1)&&(e=1),(i>.995&&i<1.005||!isFinite(i)||Math.abs(O.height-t.offsetHeight)<1)&&(i=1),this.scaleX==e&&this.scaleY==i||(this.scaleX=e,this.scaleY=i,l|=8,s=a=!0)}let c=(parseInt(i.paddingTop)||0)*this.scaleY,u=(parseInt(i.paddingBottom)||0)*this.scaleY;this.paddingTop==c&&this.paddingBottom==u||(this.paddingTop=c,this.paddingBottom=u,l|=10),this.editorWidth!=e.scrollDOM.clientWidth&&(r.lineWrapping&&(a=!0),this.editorWidth=e.scrollDOM.clientWidth,l|=8);let f=e.scrollDOM.scrollTop*this.scaleY;this.scrollTop!=f&&(this.scrollAnchorHeight=-1,this.scrollTop=f),this.scrolledToBottom=Kr(e.scrollDOM);let d=(this.printing?Us:Cs)(t,this.paddingTop),p=d.top-this.pixelViewport.top,Q=d.bottom-this.pixelViewport.bottom;this.pixelViewport=d;let g=this.pixelViewport.bottom>this.pixelViewport.top&&this.pixelViewport.right>this.pixelViewport.left;if(g!=this.inView&&(this.inView=g,g&&(a=!0)),!this.inView&&!this.scrollTarget)return 0;let m=O.width;if(this.contentDOMWidth==m&&this.editorHeight==e.scrollDOM.clientHeight||(this.contentDOMWidth=O.width,this.editorHeight=e.scrollDOM.clientHeight,l|=8),a){let t=e.docView.measureVisibleLineHeights(this.viewport);if(r.mustRefreshForHeights(t)&&(s=!0),s||r.lineWrapping&&Math.abs(m-this.contentDOMWidth)>r.charWidth){let{lineHeight:i,charWidth:o,textHeight:O}=e.docView.measureTextSize();s=i>0&&r.refresh(n,i,o,O,m/o,t),s&&(e.docView.minWidth=0,l|=8)}p>0&&Q>0?h=Math.max(p,Q):p<0&&Q<0&&(h=Math.min(p,Q)),r.heightChanged=!1;for(let i of this.viewports){let n=i.from==this.viewport.from?t:e.docView.measureVisibleLineHeights(i);this.heightMap=(s?Ys.empty().applyChanges(this.stateDeco,o.empty,this.heightOracle,[new po(0,0,0,e.state.doc.length)]):this.heightMap).updateHeight(r,0,s,new ws(i.from,n))}r.heightChanged&&(l|=2)}let $=!this.viewportIsAppropriate(this.viewport,h)||this.scrollTarget&&(this.scrollTarget.range.headthis.viewport.to);return $&&(this.viewport=this.getViewport(h,this.scrollTarget)),this.updateForViewport(),(2&l||$)&&this.updateViewportLines(),(this.lineGaps.length||this.viewport.to-this.viewport.from>4e3)&&this.updateLineGaps(this.ensureLineGaps(s?[]:this.lineGaps,e)),l|=this.computeVisibleRanges(),this.mustEnforceCursorAssoc&&(this.mustEnforceCursorAssoc=!1,e.docView.enforceCursorAssoc()),l}get visibleTop(){return this.scaler.fromDOM(this.pixelViewport.top)}get visibleBottom(){return this.scaler.fromDOM(this.pixelViewport.bottom)}getViewport(e,t){let i=.5-Math.max(-.5,Math.min(.5,e/1e3/2)),r=this.heightMap,n=this.heightOracle,{visibleTop:o,visibleBottom:s}=this,O=new zs(r.lineAt(o-1e3*i,ks.ByHeight,n,0,0).from,r.lineAt(s+1e3*(1-i),ks.ByHeight,n,0,0).to);if(t){let{head:e}=t.range;if(eO.to){let i,o=Math.min(this.editorHeight,this.pixelViewport.bottom-this.pixelViewport.top),s=r.lineAt(e,ks.ByPos,n,0,0);i="center"==t.y?(s.top+s.bottom)/2-o/2:"start"==t.y||"nearest"==t.y&&e=s+Math.max(10,Math.min(i,250)))&&r>o-2e3&&n>1,o=r<<1;if(this.defaultTextDirection!=go.LTR&&!i)return[];let s=[],O=(r,o,a,l)=>{if(o-rr&&ee.from>=a.from&&e.to<=a.to&&Math.abs(e.from-r)e.fromt))));if(!u){if(oe.from<=o&&e.to>=o))){let e=t.moveToLineBoundary(W.cursor(o),!1,!0).head;e>r&&(o=e)}u=new Ns(r,o,this.gapSize(a,r,o,l))}s.push(u)};for(let e of this.viewportLines){if(e.lengthe.from&&O(e.from,n,e,t),se.draw(this,this.heightOracle.lineWrapping)))))}computeVisibleRanges(){let e=this.stateDeco;this.lineGaps.length&&(e=e.concat(this.lineGapDeco));let t=[];Ze.spans(e,this.viewport.from,this.viewport.to,{span(e,i){t.push({from:e,to:i})},point(){}},20);let i=t.length!=this.visibleRanges.length||this.visibleRanges.some(((e,i)=>e.from!=t[i].from||e.to!=t[i].to));return this.visibleRanges=t,i?4:0}lineBlockAt(e){return e>=this.viewport.from&&e<=this.viewport.to&&this.viewportLines.find((t=>t.from<=e&&t.to>=e))||Ls(this.heightMap.lineAt(e,ks.ByPos,this.heightOracle,0,0),this.scaler)}lineBlockAtHeight(e){return Ls(this.heightMap.lineAt(this.scaler.fromDOM(e),ks.ByHeight,this.heightOracle,0,0),this.scaler)}scrollAnchorAt(e){let t=this.lineBlockAtHeight(e+8);return t.from>=this.viewport.from||this.viewportLines[0].top-e>200?t:this.viewportLines[0]}elementAtHeight(e){return Ls(this.heightMap.blockAt(this.scaler.fromDOM(e),this.heightOracle,0,0),this.scaler)}get docHeight(){return this.scaler.toDOM(this.heightMap.height)}get contentHeight(){return this.docHeight+this.paddingTop+this.paddingBottom}}class zs{constructor(e,t){this.from=e,this.to=t}}function Gs(e,t,i){let r=[],n=e,o=0;return Ze.spans(i,e,t,{span(){},point(e,t){e>n&&(r.push({from:n,to:e}),o+=e-n),n=t}},20),n=1)return t[t.length-1].to;let r=Math.floor(e*i);for(let e=0;;e++){let{from:i,to:n}=t[e],o=n-i;if(r<=o)return i+r;r-=o}}function Ms(e,t){let i=0;for(let{from:r,to:n}of e.ranges){if(t<=n){i+=t-r;break}i+=n-r}return i/e.total}const Bs={toDOM:e=>e,fromDOM:e=>e,scale:1};class Is{constructor(e,t,i){let r=0,n=0,o=0;this.viewports=i.map((({from:i,to:n})=>{let o=t.lineAt(i,ks.ByPos,e,0,0).top,s=t.lineAt(n,ks.ByPos,e,0,0).bottom;return r+=s-o,{from:i,to:n,top:o,bottom:s,domTop:0,domBottom:0}})),this.scale=(7e6-r)/(t.height-r);for(let e of this.viewports)e.domTop=o+(e.top-n)*this.scale,o=e.domBottom=e.domTop+(e.bottom-e.top),n=e.bottom}toDOM(e){for(let t=0,i=0,r=0;;t++){let n=tLs(e,t))):e._content)}const Ks=N.define({combine:e=>e.join(" ")}),Fs=N.define({combine:e=>e.indexOf(!0)>-1}),Hs=vr.newName(),Js=vr.newName(),eO=vr.newName(),tO={"&light":"."+Js,"&dark":"."+eO};function iO(e,t,i){return new vr(t,{finish:t=>/&/.test(t)?t.replace(/&\w*/,(t=>{if("&"==t)return e;if(!i||!i[t])throw new RangeError(`Unsupported selector: ${t}`);return i[t]})):e+" "+t})}const rO=iO("."+Hs,{"&":{position:"relative !important",boxSizing:"border-box","&.cm-focused":{outline:"1px dotted #212121"},display:"flex !important",flexDirection:"column"},".cm-scroller":{display:"flex !important",alignItems:"flex-start !important",fontFamily:"monospace",lineHeight:1.4,height:"100%",overflowX:"auto",position:"relative",zIndex:0},".cm-content":{margin:0,flexGrow:2,flexShrink:0,display:"block",whiteSpace:"pre",wordWrap:"normal",boxSizing:"border-box",minHeight:"100%",padding:"4px 0",outline:"none","&[contenteditable=true]":{WebkitUserModify:"read-write-plaintext-only"}},".cm-lineWrapping":{whiteSpace_fallback:"pre-wrap",whiteSpace:"break-spaces",wordBreak:"break-word",overflowWrap:"anywhere",flexShrink:1},"&light .cm-content":{caretColor:"black"},"&dark .cm-content":{caretColor:"white"},".cm-line":{display:"block",padding:"0 2px 0 6px"},".cm-layer":{position:"absolute",left:0,top:0,contain:"size style","& > *":{position:"absolute"}},"&light .cm-selectionBackground":{background:"#d9d9d9"},"&dark .cm-selectionBackground":{background:"#222"},"&light.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground":{background:"#d7d4f0"},"&dark.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground":{background:"#233"},".cm-cursorLayer":{pointerEvents:"none"},"&.cm-focused > .cm-scroller > .cm-cursorLayer":{animation:"steps(1) cm-blink 1.2s infinite"},"@keyframes cm-blink":{"0%":{},"50%":{opacity:0},"100%":{}},"@keyframes cm-blink2":{"0%":{},"50%":{opacity:0},"100%":{}},".cm-cursor, .cm-dropCursor":{borderLeft:"1.2px solid black",marginLeft:"-0.6px",pointerEvents:"none"},".cm-cursor":{display:"none"},"&dark .cm-cursor":{borderLeftColor:"#444"},".cm-dropCursor":{position:"absolute"},"&.cm-focused > .cm-scroller > .cm-cursorLayer .cm-cursor":{display:"block"},"&light .cm-activeLine":{backgroundColor:"#cceeff44"},"&dark .cm-activeLine":{backgroundColor:"#99eeff33"},"&light .cm-specialChar":{color:"red"},"&dark .cm-specialChar":{color:"#f78"},".cm-gutters":{flexShrink:0,display:"flex",height:"100%",boxSizing:"border-box",insetInlineStart:0,zIndex:200},"&light .cm-gutters":{backgroundColor:"#f5f5f5",color:"#6c6c6c",borderRight:"1px solid #ddd"},"&dark .cm-gutters":{backgroundColor:"#333338",color:"#ccc"},".cm-gutter":{display:"flex !important",flexDirection:"column",flexShrink:0,boxSizing:"border-box",minHeight:"100%",overflow:"hidden"},".cm-gutterElement":{boxSizing:"border-box"},".cm-lineNumbers .cm-gutterElement":{padding:"0 3px 0 5px",minWidth:"20px",textAlign:"right",whiteSpace:"nowrap"},"&light .cm-activeLineGutter":{backgroundColor:"#e2f2ff"},"&dark .cm-activeLineGutter":{backgroundColor:"#222227"},".cm-panels":{boxSizing:"border-box",position:"sticky",left:0,right:0},"&light .cm-panels":{backgroundColor:"#f5f5f5",color:"black"},"&light .cm-panels-top":{borderBottom:"1px solid #ddd"},"&light .cm-panels-bottom":{borderTop:"1px solid #ddd"},"&dark .cm-panels":{backgroundColor:"#333338",color:"white"},".cm-tab":{display:"inline-block",overflow:"hidden",verticalAlign:"bottom"},".cm-widgetBuffer":{verticalAlign:"text-top",height:"1em",width:0,display:"inline"},".cm-placeholder":{color:"#888",display:"inline-block",verticalAlign:"top"},".cm-highlightSpace:before":{content:"attr(data-display)",position:"absolute",pointerEvents:"none",color:"#888"},".cm-highlightTab":{backgroundImage:'url(\'data:image/svg+xml,\')',backgroundSize:"auto 100%",backgroundPosition:"right 90%",backgroundRepeat:"no-repeat"},".cm-trailingSpace":{backgroundColor:"#ff332255"},".cm-button":{verticalAlign:"middle",color:"inherit",fontSize:"70%",padding:".2em 1em",borderRadius:"1px"},"&light .cm-button":{backgroundImage:"linear-gradient(#eff1f5, #d9d9df)",border:"1px solid #888","&:active":{backgroundImage:"linear-gradient(#b4b4b4, #d0d3d6)"}},"&dark .cm-button":{backgroundImage:"linear-gradient(#393939, #111)",border:"1px solid #888","&:active":{backgroundImage:"linear-gradient(#111, #333)"}},".cm-textfield":{verticalAlign:"middle",color:"inherit",fontSize:"70%",border:"1px solid silver",padding:".2em .5em"},"&light .cm-textfield":{backgroundColor:"white"},"&dark .cm-textfield":{border:"1px solid #555",backgroundColor:"inherit"}},tO);class nO{constructor(e,t){this.points=e,this.text="",this.lineSeparator=t.facet(Te.lineSeparator)}append(e){this.text+=e}lineBreak(){this.text+="￿"}readRange(e,t){if(!e)return this;let i=e.parentNode;for(let r=e;;){this.findPointBefore(i,r);let e=this.text.length;this.readNode(r);let n=r.nextSibling;if(n==t)break;let o=Jr.get(r),s=Jr.get(n);(o&&s?o.breakAfter:(o?o.breakAfter:sO(r))||sO(n)&&("BR"!=r.nodeName||r.cmIgnore)&&this.text.length>e)&&this.lineBreak(),r=n}return this.findPointBefore(i,t),this}readTextNode(e){let t=e.nodeValue;for(let i of this.points)i.node==e&&(i.pos=this.text.length+Math.min(i.offset,t.length));for(let i=0,r=this.lineSeparator?null:/\r\n?|\n/g;;){let n,o=-1,s=1;if(this.lineSeparator?(o=t.indexOf(this.lineSeparator,i),s=this.lineSeparator.length):(n=r.exec(t))&&(o=n.index,s=n[0].length),this.append(t.slice(i,o<0?t.length:o)),o<0)break;if(this.lineBreak(),s>1)for(let t of this.points)t.node==e&&t.pos>this.text.length&&(t.pos-=s-1);i=o+s}}readNode(e){if(e.cmIgnore)return;let t=Jr.get(e),i=t&&t.overrideDOMText;if(null!=i){this.findPointInside(e,i.length);for(let e=i.iter();!e.next().done;)e.lineBreak?this.lineBreak():this.append(e.value)}else 3==e.nodeType?this.readTextNode(e):"BR"==e.nodeName?e.nextSibling&&this.lineBreak():1==e.nodeType&&this.readRange(e.firstChild,null)}findPointBefore(e,t){for(let i of this.points)i.node==e&&e.childNodes[i.offset]==t&&(i.pos=this.text.length)}findPointInside(e,t){for(let i of this.points)(3==e.nodeType?i.node==e:e.contains(i.node))&&(i.pos=this.text.length+(oO(e,i.node,i.offset)?t:0))}}function oO(e,t,i){for(;;){if(!t||i-1)this.newSel=null;else if(t>-1&&(this.bounds=e.docView.domBoundsAround(t,i,0))){let t=n||o?[]:function(e){let t=[];if(e.root.activeElement!=e.contentDOM)return t;let{anchorNode:i,anchorOffset:r,focusNode:n,focusOffset:o}=e.observer.selectionRange;return i&&(t.push(new OO(i,r)),n==i&&o==r||t.push(new OO(n,o))),t}(e),i=new nO(t,e.state);i.readRange(this.bounds.startDOM,this.bounds.endDOM),this.text=i.text,this.newSel=function(e,t){if(0==e.length)return null;let i=e[0].pos,r=2==e.length?e[1].pos:i;return i>-1&&r>-1?W.single(i+t,r+t):null}(t,this.bounds.from)}else{let t=e.observer.selectionRange,i=n&&n.node==t.focusNode&&n.offset==t.focusOffset||!Zr(e.contentDOM,t.focusNode)?e.state.selection.main.head:e.docView.posFromDOM(t.focusNode,t.focusOffset),r=o&&o.node==t.anchorNode&&o.offset==t.anchorOffset||!Zr(e.contentDOM,t.anchorNode)?e.state.selection.main.anchor:e.docView.posFromDOM(t.anchorNode,t.anchorOffset);this.newSel=W.single(r,i)}}}function lO(e,t){let i,{newSel:r}=t,n=e.state.selection.main,s=e.inputState.lastKeyTime>Date.now()-100?e.inputState.lastKeyCode:-1;if(t.bounds){let{from:r,to:O}=t.bounds,a=n.from,l=null;(8===s||Qn.android&&t.text.length0&&O>0&&e.charCodeAt(s-1)==t.charCodeAt(O-1);)s--,O--;"end"==r&&(i-=s+Math.max(0,o-Math.min(s,O))-o);s=s?o-i:0,O=o+(O-s),s=o):O=O?o-i:0,s=o+(s-O),O=o);return{from:o,toA:s,toB:O}}(e.state.doc.sliceString(r,O,"￿"),t.text,a-r,l);h&&(Qn.chrome&&13==s&&h.toB==h.from+2&&"￿￿"==t.text.slice(h.from,h.toB)&&h.toB--,i={from:r+h.from,to:r+h.toA,insert:o.of(t.text.slice(h.from,h.toB).split("￿"))})}else r&&(!e.hasFocus&&e.state.facet(eo)||r.main.eq(n))&&(r=null);if(!i&&!r)return!1;if(!i&&t.typeOver&&!n.empty&&r&&r.main.empty?i={from:n.from,to:n.to,insert:e.state.doc.slice(n.from,n.to)}:i&&i.from>=n.from&&i.to<=n.to&&(i.from!=n.from||i.to!=n.to)&&n.to-n.from-(i.to-i.from)<=4?i={from:n.from,to:n.to,insert:e.state.doc.slice(n.from,i.from).append(i.insert).append(e.state.doc.slice(i.to,n.to))}:(Qn.mac||Qn.android)&&i&&i.from==i.to&&i.from==n.head-1&&/^\. ?$/.test(i.insert.toString())&&"off"==e.contentDOM.getAttribute("autocorrect")?(r&&2==i.insert.length&&(r=W.single(r.main.anchor-1,r.main.head-1)),i={from:n.from,to:n.to,insert:o.of([" "])}):Qn.chrome&&i&&i.from==i.to&&i.from==n.head&&"\n "==i.insert.toString()&&e.lineWrapping&&(r&&(r=W.single(r.main.anchor-1,r.main.head-1)),i={from:n.from,to:n.to,insert:o.of([" "])}),i){if(Qn.ios&&e.inputState.flushIOSKey())return!0;if(Qn.android&&(i.from==n.from&&i.to==n.to&&1==i.insert.length&&2==i.insert.lines&&Ir(e.contentDOM,"Enter",13)||(i.from==n.from-1&&i.to==n.to&&0==i.insert.length||8==s&&i.insert.lengthn.head)&&Ir(e.contentDOM,"Backspace",8)||i.from==n.from&&i.to==n.to+1&&0==i.insert.length&&Ir(e.contentDOM,"Delete",46)))return!0;let t,o=i.insert.toString();e.inputState.composing>=0&&e.inputState.composing++;let O=()=>t||(t=function(e,t,i){let r,n=e.state,o=n.selection.main;if(t.from>=o.from&&t.to<=o.to&&t.to-t.from>=(o.to-o.from)/3&&(!i||i.main.empty&&i.main.from==t.from+t.insert.length)&&e.inputState.composing<0){let i=o.fromt.to?n.sliceDoc(t.to,o.to):"";r=n.replaceSelection(e.state.toText(i+t.insert.sliceString(0,void 0,e.state.lineBreak)+s))}else{let s=n.changes(t),O=i&&i.main.to<=s.newLength?i.main:void 0;if(n.selection.ranges.length>1&&e.inputState.composing>=0&&t.to<=o.to&&t.to>=o.to-10){let a,l=e.state.sliceDoc(t.from,t.to),h=i&&Wo(e,i.main.head);if(h){let e=t.insert.length-(t.to-t.from);a={from:h.from,to:h.to-e}}else a=e.state.doc.lineAt(o.head);let c=o.to-t.to,u=o.to-o.from;r=n.changeByRange((i=>{if(i.from==o.from&&i.to==o.to)return{changes:s,range:O||i.map(s)};let r=i.to-c,h=r-l.length;if(i.to-i.from!=u||e.state.sliceDoc(h,r)!=l||i.to>=a.from&&i.from<=a.to)return{range:i};let f=n.changes({from:h,to:r,insert:t.insert}),d=i.to-o.to;return{changes:f,range:O?W.range(Math.max(0,O.anchor+d),Math.max(0,O.head+d)):i.map(f)}}))}else r={changes:s,selection:O&&n.selection.replaceRange(O)}}let s="input.type";return(e.composing||e.inputState.compositionPendingChange&&e.inputState.compositionEndedAt>Date.now()-50)&&(e.inputState.compositionPendingChange=!1,s+=".compose",e.inputState.compositionFirstChange&&(s+=".start",e.inputState.compositionFirstChange=!1)),n.update(r,{userEvent:s,scrollIntoView:!0})}(e,i,r));return e.state.facet(Bn).some((t=>t(e,i.from,i.to,o,O)))||e.dispatch(O()),!0}if(r&&!r.main.eq(n)){let t=!1,i="select";return e.inputState.lastSelectionTime>Date.now()-50&&("select"==e.inputState.lastSelectionOrigin&&(t=!0),i=e.inputState.lastSelectionOrigin),e.dispatch({selection:r,scrollIntoView:t,userEvent:i}),!0}return!1}const hO={childList:!0,characterData:!0,subtree:!0,attributes:!0,characterDataOldValue:!0},cO=Qn.ie&&Qn.ie_version<=11;class uO{constructor(e){this.view=e,this.active=!1,this.selectionRange=new zr,this.selectionChanged=!1,this.delayedFlush=-1,this.resizeTimeout=-1,this.queue=[],this.delayedAndroidKey=null,this.flushingAndroidKey=-1,this.lastChange=0,this.scrollTargets=[],this.intersection=null,this.resizeScroll=null,this.resizeContent=null,this.intersecting=!1,this.gapIntersection=null,this.gaps=[],this.parentCheck=-1,this.dom=e.contentDOM,this.observer=new MutationObserver((t=>{for(let e of t)this.queue.push(e);(Qn.ie&&Qn.ie_version<=11||Qn.ios&&e.composing)&&t.some((e=>"childList"==e.type&&e.removedNodes.length||"characterData"==e.type&&e.oldValue.length>e.target.nodeValue.length))?this.flushSoon():this.flush()})),cO&&(this.onCharData=e=>{this.queue.push({target:e.target,type:"characterData",oldValue:e.prevValue}),this.flushSoon()}),this.onSelectionChange=this.onSelectionChange.bind(this),this.onResize=this.onResize.bind(this),this.onPrint=this.onPrint.bind(this),this.onScroll=this.onScroll.bind(this),"function"==typeof ResizeObserver&&(this.resizeScroll=new ResizeObserver((()=>{var e;(null===(e=this.view.docView)||void 0===e?void 0:e.lastUpdate)this.view.requestMeasure())),this.resizeContent.observe(e.contentDOM)),this.addWindowListeners(this.win=e.win),this.start(),"function"==typeof IntersectionObserver&&(this.intersection=new IntersectionObserver((e=>{this.parentCheck<0&&(this.parentCheck=setTimeout(this.listenForScroll.bind(this),1e3)),e.length>0&&e[e.length-1].intersectionRatio>0!=this.intersecting&&(this.intersecting=!this.intersecting,this.intersecting!=this.view.inView&&this.onScrollChanged(document.createEvent("Event")))}),{threshold:[0,.001]}),this.intersection.observe(this.dom),this.gapIntersection=new IntersectionObserver((e=>{e.length>0&&e[e.length-1].intersectionRatio>0&&this.onScrollChanged(document.createEvent("Event"))}),{})),this.listenForScroll(),this.readSelectionRange()}onScrollChanged(e){this.view.inputState.runHandlers("scroll",e),this.intersecting&&this.view.measure()}onScroll(e){this.intersecting&&this.flush(!1),this.onScrollChanged(e)}onResize(){this.resizeTimeout<0&&(this.resizeTimeout=setTimeout((()=>{this.resizeTimeout=-1,this.view.requestMeasure()}),50))}onPrint(){this.view.viewState.printing=!0,this.view.measure(),setTimeout((()=>{this.view.viewState.printing=!1,this.view.requestMeasure()}),500)}updateGaps(e){if(this.gapIntersection&&(e.length!=this.gaps.length||this.gaps.some(((t,i)=>t!=e[i])))){this.gapIntersection.disconnect();for(let t of e)this.gapIntersection.observe(t);this.gaps=e}}onSelectionChange(e){let t=this.selectionChanged;if(!this.readSelectionRange()||this.delayedAndroidKey)return;let{view:i}=this,r=this.selectionRange;if(i.state.facet(eo)?i.root.activeElement!=this.dom:!qr(i.dom,r))return;let n=r.anchorNode&&i.docView.nearest(r.anchorNode);n&&n.ignoreEvent(e)?t||(this.selectionChanged=!1):(Qn.ie&&Qn.ie_version<=11||Qn.android&&Qn.chrome)&&!i.state.selection.main.empty&&r.focusNode&&Wr(r.focusNode,r.focusOffset,r.anchorNode,r.anchorOffset)?this.flushSoon():this.flush(!1)}readSelectionRange(){let{view:e}=this,t=Qn.safari&&11==e.root.nodeType&&function(e){let t=e.activeElement;for(;t&&t.shadowRoot;)t=t.shadowRoot.activeElement;return t}(this.dom.ownerDocument)==this.dom&&function(e){let t=null;function i(e){e.preventDefault(),e.stopImmediatePropagation(),t=e.getTargetRanges()[0]}if(e.contentDOM.addEventListener("beforeinput",i,!0),e.dom.ownerDocument.execCommand("indent"),e.contentDOM.removeEventListener("beforeinput",i,!0),!t)return null;let r=t.startContainer,n=t.startOffset,o=t.endContainer,s=t.endOffset,O=e.docView.domAtPos(e.state.selection.main.anchor);return Wr(O.node,O.offset,o,s)&&([r,n,o,s]=[o,s,r,n]),{anchorNode:r,anchorOffset:n,focusNode:o,focusOffset:s}}(this.view)||Vr(e.root);if(!t||this.selectionRange.eq(t))return!1;let i=qr(this.dom,t);return i&&!this.selectionChanged&&e.inputState.lastFocusTime>Date.now()-200&&e.inputState.lastTouchTime{let e=this.delayedAndroidKey;e&&(this.clearDelayedAndroidKey(),this.view.inputState.lastKeyCode=e.keyCode,this.view.inputState.lastKeyTime=Date.now(),!this.flush()&&e.force&&Ir(this.dom,e.key,e.keyCode))};this.flushingAndroidKey=this.view.win.requestAnimationFrame(e)}this.delayedAndroidKey&&"Enter"!=e||(this.delayedAndroidKey={key:e,keyCode:t,force:this.lastChange{this.delayedFlush=-1,this.flush()})))}forceFlush(){this.delayedFlush>=0&&(this.view.win.cancelAnimationFrame(this.delayedFlush),this.delayedFlush=-1),this.flush()}pendingRecords(){for(let e of this.observer.takeRecords())this.queue.push(e);return this.queue}processRecords(){let e=this.pendingRecords();e.length&&(this.queue=[]);let t=-1,i=-1,r=!1;for(let n of e){let e=this.readMutation(n);e&&(e.typeOver&&(r=!0),-1==t?({from:t,to:i}=e):(t=Math.min(e.from,t),i=Math.max(e.to,i)))}return{from:t,to:i,typeOver:r}}readChange(){let{from:e,to:t,typeOver:i}=this.processRecords(),r=this.selectionChanged&&qr(this.dom,this.selectionRange);if(e<0&&!r)return null;e>-1&&(this.lastChange=Date.now()),this.view.inputState.lastFocusTime=0,this.selectionChanged=!1;let n=new aO(this.view,e,t,i);return this.view.docView.domChanged={newSel:n.newSel?n.newSel.main:null},n}flush(e=!0){if(this.delayedFlush>=0||this.delayedAndroidKey)return!1;e&&this.readSelectionRange();let t=this.readChange();if(!t)return this.view.requestMeasure(),!1;let i=this.view.state,r=lO(this.view,t);return this.view.state==i&&this.view.update([]),r}readMutation(e){let t=this.view.docView.nearest(e.target);if(!t||t.ignoreMutation(e))return null;if(t.markDirty("attributes"==e.type),"attributes"==e.type&&(t.flags|=4),"childList"==e.type){let i=fO(t,e.previousSibling||e.target.previousSibling,-1),r=fO(t,e.nextSibling||e.target.nextSibling,1);return{from:i?t.posAfter(i):t.posAtStart,to:r?t.posBefore(r):t.posAtEnd,typeOver:!1}}return"characterData"==e.type?{from:t.posAtStart,to:t.posAtEnd,typeOver:e.target.nodeValue==e.oldValue}:null}setWindow(e){e!=this.win&&(this.removeWindowListeners(this.win),this.win=e,this.addWindowListeners(this.win))}addWindowListeners(e){e.addEventListener("resize",this.onResize),e.addEventListener("beforeprint",this.onPrint),e.addEventListener("scroll",this.onScroll),e.document.addEventListener("selectionchange",this.onSelectionChange)}removeWindowListeners(e){e.removeEventListener("scroll",this.onScroll),e.removeEventListener("resize",this.onResize),e.removeEventListener("beforeprint",this.onPrint),e.document.removeEventListener("selectionchange",this.onSelectionChange)}destroy(){var e,t,i,r;this.stop(),null===(e=this.intersection)||void 0===e||e.disconnect(),null===(t=this.gapIntersection)||void 0===t||t.disconnect(),null===(i=this.resizeScroll)||void 0===i||i.disconnect(),null===(r=this.resizeContent)||void 0===r||r.disconnect();for(let e of this.scrollTargets)e.removeEventListener("scroll",this.onScroll);this.removeWindowListeners(this.win),clearTimeout(this.parentCheck),clearTimeout(this.resizeTimeout),this.win.cancelAnimationFrame(this.delayedFlush),this.win.cancelAnimationFrame(this.flushingAndroidKey)}}function fO(e,t,i){for(;t;){let r=Jr.get(t);if(r&&r.parent==e)return r;let n=t.parentNode;t=n!=e.dom?n:i>0?t.nextSibling:t.previousSibling}return null}class dO{get state(){return this.viewState.state}get viewport(){return this.viewState.viewport}get visibleRanges(){return this.viewState.visibleRanges}get inView(){return this.viewState.inView}get composing(){return this.inputState.composing>0}get compositionStarted(){return this.inputState.composing>=0}get root(){return this._root}get win(){return this.dom.ownerDocument.defaultView||window}constructor(e={}){this.plugins=[],this.pluginMap=new Map,this.editorAttrs={},this.contentAttrs={},this.bidiCache=[],this.destroyed=!1,this.updateState=2,this.measureScheduled=-1,this.measureRequests=[],this.contentDOM=document.createElement("div"),this.scrollDOM=document.createElement("div"),this.scrollDOM.tabIndex=-1,this.scrollDOM.className="cm-scroller",this.scrollDOM.appendChild(this.contentDOM),this.announceDOM=document.createElement("div"),this.announceDOM.style.cssText="position: fixed; top: -10000px",this.announceDOM.setAttribute("aria-live","polite"),this.dom=document.createElement("div"),this.dom.appendChild(this.announceDOM),this.dom.appendChild(this.scrollDOM);let{dispatch:t}=e;this.dispatchTransactions=e.dispatchTransactions||t&&(e=>e.forEach((e=>t(e,this))))||(e=>this.update(e)),this.dispatch=this.dispatch.bind(this),this._root=e.root||function(e){for(;e;){if(e&&(9==e.nodeType||11==e.nodeType&&e.host))return e;e=e.assignedSlot||e.parentNode}return null}(e.parent)||document,this.viewState=new Es(e.state||Te.create(e)),this.plugins=this.state.facet(io).map((e=>new no(e)));for(let e of this.plugins)e.update(this);this.observer=new uO(this),this.inputState=new Ho(this),this.inputState.ensureHandlers(this.plugins),this.docView=new qo(this),this.mountStyles(),this.updateAttrs(),this.updateState=0,this.requestMeasure(),e.parent&&e.parent.appendChild(this.dom)}dispatch(...e){let t=1==e.length&&e[0]instanceof ge?e:1==e.length&&Array.isArray(e[0])?e[0]:[this.state.update(...e)];this.dispatchTransactions(t,this)}update(e){if(0!=this.updateState)throw new Error("Calls to EditorView.update are not allowed while an update is in progress");let t,i=!1,r=!1,n=this.state;for(let t of e){if(t.startState!=n)throw new RangeError("Trying to update state with a transaction that doesn't start from the previous state.");n=t.state}if(this.destroyed)return void(this.viewState.state=n);let o=this.hasFocus,s=0,O=null;e.some((e=>e.annotation(Xs)))?(this.inputState.notifiedFocused=o,s=1):o!=this.inputState.notifiedFocused&&(this.inputState.notifiedFocused=o,O=Ss(n,o),O||(s=1));let a=this.observer.delayedAndroidKey,l=null;if(a?(this.observer.clearDelayedAndroidKey(),l=this.observer.readChange(),(l&&!this.state.doc.eq(n.doc)||!this.state.selection.eq(n.selection))&&(l=null)):this.observer.clear(),n.facet(Te.phrases)!=this.state.facet(Te.phrases))return this.setState(n);t=Qo.create(this,n,e),t.flags|=s;let h=this.viewState.scrollTarget;try{this.updateState=2;for(let t of e){if(h&&(h=h.map(t.changes)),t.scrollIntoView){let{main:e}=t.state.selection;h=new Fn(e.empty?e:W.cursor(e.head,e.head>e.anchor?-1:1))}for(let e of t.effects)e.is(Hn)&&(h=e.value)}this.viewState.update(t,h),this.bidiCache=gO.update(this.bidiCache,t.changes),t.empty||(this.updatePlugins(t),this.inputState.update(t)),i=this.docView.update(t),this.state.facet(fo)!=this.styleModules&&this.mountStyles(),r=this.updateAttrs(),this.showAnnouncements(e),this.docView.updateSelection(i,e.some((e=>e.isUserEvent("select.pointer"))))}finally{this.updateState=0}if(t.startState.facet(Ks)!=t.state.facet(Ks)&&(this.viewState.mustMeasureContent=!0),(i||r||h||this.viewState.mustEnforceCursorAssoc||this.viewState.mustMeasureContent)&&this.requestMeasure(),!t.empty)for(let e of this.state.facet(Mn))e(t);(O||l)&&Promise.resolve().then((()=>{O&&this.state==O.startState&&this.dispatch(O),l&&!lO(this,l)&&a.force&&Ir(this.contentDOM,a.key,a.keyCode)}))}setState(e){if(0!=this.updateState)throw new Error("Calls to EditorView.setState are not allowed while an update is in progress");if(this.destroyed)return void(this.viewState.state=e);this.updateState=2;let t=this.hasFocus;try{for(let e of this.plugins)e.destroy(this);this.viewState=new Es(e),this.plugins=e.facet(io).map((e=>new no(e))),this.pluginMap.clear();for(let e of this.plugins)e.update(this);this.docView=new qo(this),this.inputState.ensureHandlers(this.plugins),this.mountStyles(),this.updateAttrs(),this.bidiCache=[]}finally{this.updateState=0}t&&this.focus(),this.requestMeasure()}updatePlugins(e){let t=e.startState.facet(io),i=e.state.facet(io);if(t!=i){let r=[];for(let n of i){let i=t.indexOf(n);if(i<0)r.push(new no(n));else{let t=this.plugins[i];t.mustUpdate=e,r.push(t)}}for(let t of this.plugins)t.mustUpdate!=e&&t.destroy(this);this.plugins=r,this.pluginMap.clear()}else for(let t of this.plugins)t.mustUpdate=e;for(let e=0;e-1&&this.win.cancelAnimationFrame(this.measureScheduled),this.observer.delayedAndroidKey)return this.measureScheduled=-1,void this.requestMeasure();this.measureScheduled=0,e&&this.observer.forceFlush();let t=null,i=this.scrollDOM,r=i.scrollTop*this.scaleY,{scrollAnchorPos:n,scrollAnchorHeight:o}=this.viewState;Math.abs(r-this.viewState.scrollTop)>1&&(o=-1),this.viewState.scrollAnchorHeight=-1;try{for(let e=0;;e++){if(o<0)if(Kr(i))n=-1,o=this.viewState.heightMap.height;else{let e=this.viewState.scrollAnchorAt(r);n=e.from,o=e.top}this.updateState=1;let s=this.viewState.measure(this);if(!s&&!this.measureRequests.length&&null==this.viewState.scrollTarget)break;if(e>5){console.warn(this.measureRequests.length?"Measure loop restarted more than 5 times":"Viewport failed to stabilize");break}let O=[];4&s||([this.measureRequests,O]=[O,this.measureRequests]);let a=O.map((e=>{try{return e.read(this)}catch(e){return Jn(this.state,e),QO}})),l=Qo.create(this,this.state,[]),h=!1;l.flags|=s,t?t.flags|=s:t=l,this.updateState=2,l.empty||(this.updatePlugins(l),this.inputState.update(l),this.updateAttrs(),h=this.docView.update(l));for(let e=0;e1||e<-1){r+=e,i.scrollTop=r/this.scaleY,o=-1;continue}}}break}}}finally{this.updateState=0,this.measureScheduled=-1}if(t&&!t.empty)for(let e of this.state.facet(Mn))e(t)}get themeClasses(){return Hs+" "+(this.state.facet(Fs)?eO:Js)+" "+this.state.facet(Ks)}updateAttrs(){let e=mO(this,oo,{class:"cm-editor"+(this.hasFocus?" cm-focused ":" ")+this.themeClasses}),t={spellcheck:"false",autocorrect:"off",autocapitalize:"off",translate:"no",contenteditable:this.state.facet(eo)?"true":"false",class:"cm-content",style:`${Qn.tabSize}: ${this.state.tabSize}`,role:"textbox","aria-multiline":"true"};this.state.readOnly&&(t["aria-readonly"]="true"),mO(this,so,t);let i=this.observer.ignore((()=>{let i=wn(this.contentDOM,this.contentAttrs,t),r=wn(this.dom,this.editorAttrs,e);return i||r}));return this.editorAttrs=e,this.contentAttrs=t,i}showAnnouncements(e){let t=!0;for(let i of e)for(let e of i.effects)e.is(dO.announce)&&(t&&(this.announceDOM.textContent=""),t=!1,this.announceDOM.appendChild(document.createElement("div")).textContent=e.value)}mountStyles(){this.styleModules=this.state.facet(fo);let e=this.state.facet(dO.cspNonce);vr.mount(this.root,this.styleModules.concat(rO).reverse(),e?{nonce:e}:void 0)}readMeasured(){if(2==this.updateState)throw new Error("Reading the editor layout isn't allowed during an update");0==this.updateState&&this.measureScheduled>-1&&this.measure(!1)}requestMeasure(e){if(this.measureScheduled<0&&(this.measureScheduled=this.win.requestAnimationFrame((()=>this.measure()))),e){if(this.measureRequests.indexOf(e)>-1)return;if(null!=e.key)for(let t=0;tt.spec==e))||null),t&&t.update(this).value}get documentTop(){return this.contentDOM.getBoundingClientRect().top+this.viewState.paddingTop}get documentPadding(){return{top:this.viewState.paddingTop,bottom:this.viewState.paddingBottom}}get scaleX(){return this.viewState.scaleX}get scaleY(){return this.viewState.scaleY}elementAtHeight(e){return this.readMeasured(),this.viewState.elementAtHeight(e)}lineBlockAtHeight(e){return this.readMeasured(),this.viewState.lineBlockAtHeight(e)}get viewportLineBlocks(){return this.viewState.viewportLines}lineBlockAt(e){return this.viewState.lineBlockAt(e)}get contentHeight(){return this.viewState.contentHeight}moveByChar(e,t,i){return Fo(this,e,Lo(this,e,t,i))}moveByGroup(e,t){return Fo(this,e,Lo(this,e,t,(t=>function(e,t,i){let r=e.state.charCategorizer(t),n=r(i);return e=>{let t=r(e);return n==ve.Space&&(n=t),n==t}}(this,e.head,t))))}moveToLineBoundary(e,t,i=!0){return function(e,t,i,r){let n=Io(e,t.head),o=r&&n.type==_n.Text&&(e.lineWrapping||n.widgetLineBreaks)?e.coordsAtPos(t.assoc<0&&t.head>n.from?t.head-1:t.head):null;if(o){let t=e.dom.getBoundingClientRect(),r=e.textDirectionAt(n.from),s=e.posAtCoords({x:i==(r==go.LTR)?t.right-1:t.left+1,y:(o.top+o.bottom)/2});if(null!=s)return W.cursor(s,i?-1:1)}return W.cursor(i?n.to:n.from,i?-1:1)}(this,e,t,i)}moveVertically(e,t,i){return Fo(this,e,function(e,t,i,r){let n=t.head,o=i?1:-1;if(n==(i?e.state.doc.length:0))return W.cursor(n,t.assoc);let s,O=t.goalColumn,a=e.contentDOM.getBoundingClientRect(),l=e.coordsAtPos(n,t.assoc||-1),h=e.documentTop;if(l)null==O&&(O=l.left-a.left),s=o<0?l.top:l.bottom;else{let t=e.viewState.lineBlockAt(n);null==O&&(O=Math.min(a.right-a.left,e.defaultCharacterWidth*(n-t.from))),s=(o<0?t.top:t.bottom)+h}let c=a.left+O,u=null!=r?r:e.viewState.heightOracle.textHeight>>1;for(let t=0;;t+=10){let i=s+(u+t)*o,r=Mo(e,{x:c,y:i},!1,o);if(ia.bottom||(o<0?rn)){let t=e.docView.coordsForChar(r),n=!t||i0)}coordsForChar(e){return this.readMeasured(),this.docView.coordsForChar(e)}get defaultCharacterWidth(){return this.viewState.heightOracle.charWidth}get defaultLineHeight(){return this.viewState.heightOracle.lineHeight}get textDirection(){return this.viewState.defaultTextDirection}textDirectionAt(e){return!this.state.facet(Ln)||ethis.viewport.to?this.textDirection:(this.readMeasured(),this.docView.textDirectionAt(e))}get lineWrapping(){return this.viewState.heightOracle.lineWrapping}bidiSpans(e){if(e.length>pO)return _o(e.length);let t,i=this.textDirectionAt(e.from);for(let r of this.bidiCache)if(r.from==e.from&&r.dir==i&&(r.fresh||To(r.isolates,t=ho(this,e.from,e.to))))return r.order;t||(t=ho(this,e.from,e.to));let r=function(e,t,i){if(!e)return[new wo(0,0,t==$o?1:0)];if(t==mo&&!i.length&&!xo.test(e))return _o(e.length);if(i.length)for(;e.length>ko.length;)ko[ko.length]=256;let r=[],n=t==mo?0:1;return Ro(e,n,n,i,0,e.length,r),r}(e.text,i,t);return this.bidiCache.push(new gO(e.from,e.to,i,t,!0,r)),r}get hasFocus(){var e;return(this.dom.ownerDocument.hasFocus()||Qn.safari&&(null===(e=this.inputState)||void 0===e?void 0:e.lastContextMenu)>Date.now()-3e4)&&this.root.activeElement==this.contentDOM}focus(){this.observer.ignore((()=>{Mr(this.contentDOM),this.docView.updateSelection()}))}setRoot(e){this._root!=e&&(this._root=e,this.observer.setWindow((9==e.nodeType?e:e.ownerDocument).defaultView||window),this.mountStyles())}destroy(){for(let e of this.plugins)e.destroy(this);this.plugins=[],this.inputState.destroy(),this.dom.remove(),this.observer.destroy(),this.measureScheduled>-1&&this.win.cancelAnimationFrame(this.measureScheduled),this.destroyed=!0}static scrollIntoView(e,t={}){return Hn.of(new Fn("number"==typeof e?W.cursor(e):e,t.y,t.x,t.yMargin,t.xMargin))}static domEventHandlers(e){return ro.define((()=>({})),{eventHandlers:e})}static domEventObservers(e){return ro.define((()=>({})),{eventObservers:e})}static theme(e,t){let i=vr.newName(),r=[Ks.of(i),fo.of(iO(`.${i}`,e))];return t&&t.dark&&r.push(Fs.of(!0)),r}static baseTheme(e){return J.lowest(fo.of(iO("."+Hs,e,tO)))}static findFromDOM(e){var t;let i=e.querySelector(".cm-content"),r=i&&Jr.get(i)||Jr.get(e);return(null===(t=null==r?void 0:r.rootView)||void 0===t?void 0:t.view)||null}}dO.styleModule=fo,dO.inputHandler=Bn,dO.focusChangeEffect=In,dO.perLineTextDirection=Ln,dO.exceptionSink=Dn,dO.updateListener=Mn,dO.editable=eo,dO.mouseSelectionStyle=Gn,dO.dragMovesSelection=zn,dO.clickAddsSelectionRange=En,dO.decorations=Oo,dO.atomicRanges=ao,dO.bidiIsolatedRanges=lo,dO.scrollMargins=co,dO.darkTheme=Fs,dO.cspNonce=N.define({combine:e=>e.length?e[0]:""}),dO.contentAttributes=so,dO.editorAttributes=oo,dO.lineWrapping=dO.contentAttributes.of({class:"cm-lineWrapping"}),dO.announce=Qe.define();const pO=4096,QO={};class gO{constructor(e,t,i,r,n,o){this.from=e,this.to=t,this.dir=i,this.isolates=r,this.fresh=n,this.order=o}static update(e,t){if(t.empty&&!e.some((e=>e.fresh)))return e;let i=[],r=e.length?e[e.length-1].dir:go.LTR;for(let n=Math.max(0,e.length-10);n=0;n--){let t=r[n],o="function"==typeof t?t(e):t;o&&vn(o,i)}return i}const $O=Qn.mac?"mac":Qn.windows?"win":Qn.linux?"linux":"key";function bO(e,t,i){return t.altKey&&(e="Alt-"+e),t.ctrlKey&&(e="Ctrl-"+e),t.metaKey&&(e="Meta-"+e),!1!==i&&t.shiftKey&&(e="Shift-"+e),e}const XO=J.default(dO.domEventHandlers({keydown:(e,t)=>xO(vO(t.state),e,t,"editor")})),SO=N.define({enables:XO}),yO=new WeakMap;function vO(e){let t=e.facet(SO),i=yO.get(t);return i||yO.set(t,i=function(e,t=$O){let i=Object.create(null),r=Object.create(null),n=(e,t)=>{let i=r[e];if(null==i)r[e]=t;else if(i!=t)throw new Error("Key binding "+e+" is used both as a regular binding and as a multi-stroke prefix")},o=(e,r,o,s,O)=>{var a,l;let h=i[e]||(i[e]=Object.create(null)),c=r.split(/ (?!$)/).map((e=>function(e,t){const i=e.split(/-(?!$)/);let r,n,o,s,O=i[i.length-1];"Space"==O&&(O=" ");for(let e=0;e{let r=PO={view:t,prefix:i,scope:e};return setTimeout((()=>{PO==r&&(PO=null)}),4e3),!0}]})}let u=c.join(" ");n(u,!1);let f=h[u]||(h[u]={preventDefault:!1,stopPropagation:!1,run:(null===(l=null===(a=h._any)||void 0===a?void 0:a.run)||void 0===l?void 0:l.slice())||[]});o&&f.run.push(o),s&&(f.preventDefault=!0),O&&(f.stopPropagation=!0)};for(let r of e){let e=r.scope?r.scope.split(" "):["editor"];if(r.any)for(let t of e){let e=i[t]||(i[t]=Object.create(null));e._any||(e._any={preventDefault:!1,stopPropagation:!1,run:[]});for(let t in e)e[t].run.push(r.any)}let n=r[t]||r.key;if(n)for(let t of e)o(t,n,r.run,r.preventDefault,r.stopPropagation),r.shift&&o(t,"Shift-"+n,r.shift,r.preventDefault,r.stopPropagation)}return i}(t.reduce(((e,t)=>e.concat(t)),[]))),i}let PO=null;function xO(e,t,i,r){let n=function(e){var t=!(kr&&e.metaKey&&e.shiftKey&&!e.ctrlKey&&!e.altKey||Yr&&e.shiftKey&&e.key&&1==e.key.length||"Unidentified"==e.key)&&e.key||(e.shiftKey?Tr:wr)[e.keyCode]||e.key||"Unidentified";return"Esc"==t&&(t="Escape"),"Del"==t&&(t="Delete"),"Left"==t&&(t="ArrowLeft"),"Up"==t&&(t="ArrowUp"),"Right"==t&&(t="ArrowRight"),"Down"==t&&(t="ArrowDown"),t}(t),o=v(S(n,0))==n.length&&" "!=n,s="",O=!1,a=!1,l=!1;PO&&PO.view==i&&PO.scope==r&&(s=PO.prefix+" ",is.indexOf(t.keyCode)<0&&(a=!0,PO=null));let h,c,u=new Set,f=e=>{if(e){for(let r of e.run)if(!u.has(r)&&(u.add(r),r(i,t)))return e.stopPropagation&&(l=!0),!0;e.preventDefault&&(e.stopPropagation&&(l=!0),a=!0)}return!1},d=e[r];return d&&(f(d[s+bO(n,t,!o)])?O=!0:o&&(t.altKey||t.metaKey||t.ctrlKey)&&!(Qn.windows&&t.ctrlKey&&t.altKey)&&(h=wr[t.keyCode])&&h!=n?(f(d[s+bO(h,t,!0)])||t.shiftKey&&(c=Tr[t.keyCode])!=n&&c!=h&&f(d[s+bO(c,t,!1)]))&&(O=!0):o&&t.shiftKey&&f(d[s+bO(n,t,!0)])&&(O=!0),!O&&f(d._any)&&(O=!0)),a&&(O=!0),O&&l&&t.stopPropagation(),O}class wO{constructor(e,t,i,r,n){this.className=e,this.left=t,this.top=i,this.width=r,this.height=n}draw(){let e=document.createElement("div");return e.className=this.className,this.adjust(e),e}update(e,t){return t.className==this.className&&(this.adjust(e),!0)}adjust(e){e.style.left=this.left+"px",e.style.top=this.top+"px",null!=this.width&&(e.style.width=this.width+"px"),e.style.height=this.height+"px"}eq(e){return this.left==e.left&&this.top==e.top&&this.width==e.width&&this.height==e.height&&this.className==e.className}static forRange(e,t,i){if(i.empty){let r=e.coordsAtPos(i.head,i.assoc||1);if(!r)return[];let n=TO(e);return[new wO(t,r.left-n.left,r.top-n.top,null,r.bottom-r.top)]}return function(e,t,i){if(i.to<=e.viewport.from||i.from>=e.viewport.to)return[];let r=Math.max(i.from,e.viewport.from),n=Math.min(i.to,e.viewport.to),o=e.textDirection==go.LTR,s=e.contentDOM,O=s.getBoundingClientRect(),a=TO(e),l=s.querySelector(".cm-line"),h=l&&window.getComputedStyle(l),c=O.left+(h?parseInt(h.paddingLeft)+Math.min(0,parseInt(h.textIndent)):0),u=O.right-(h?parseInt(h.paddingRight):0),f=Io(e,r),d=Io(e,n),p=f.type==_n.Text?f:null,Q=d.type==_n.Text?d:null;if(p&&(e.lineWrapping||f.widgetLineBreaks)&&(p=kO(e,r,p)),Q&&(e.lineWrapping||d.widgetLineBreaks)&&(Q=kO(e,n,Q)),p&&Q&&p.from==Q.from)return m($(i.from,i.to,p));{let t=p?$(i.from,null,p):b(f,!1),r=Q?$(null,i.to,Q):b(d,!0),n=[];return(p||f).to<(Q||d).from-(p&&Q?1:0)||f.widgetLineBreaks>1&&t.bottom+e.defaultLineHeight/2l&&r.from=o)break;O>n&&a(Math.max(e,n),null==t&&e<=l,Math.min(O,o),null==i&&O>=h,s.dir)}if(n=r.to+1,n>=o)break}return 0==O.length&&a(l,null==t,h,null==i,e.textDirection),{top:n,bottom:s,horizontal:O}}function b(e,t){let i=O.top+(t?e.top:e.bottom);return{top:i,bottom:i,horizontal:[]}}}(e,t,i)}}function TO(e){let t=e.scrollDOM.getBoundingClientRect();return{left:(e.textDirection==go.LTR?t.left:t.right-e.scrollDOM.clientWidth*e.scaleX)-e.scrollDOM.scrollLeft*e.scaleX,top:t.top-e.scrollDOM.scrollTop*e.scaleY}}function kO(e,t,i){let r=W.cursor(t);return{from:Math.max(i.from,e.moveToLineBoundary(r,!1,!0).from),to:Math.min(i.to,e.moveToLineBoundary(r,!0,!0).from),type:_n.Text}}class YO{constructor(e,t){this.view=e,this.layer=t,this.drawn=[],this.scaleX=1,this.scaleY=1,this.measureReq={read:this.measure.bind(this),write:this.draw.bind(this)},this.dom=e.scrollDOM.appendChild(document.createElement("div")),this.dom.classList.add("cm-layer"),t.above&&this.dom.classList.add("cm-layer-above"),t.class&&this.dom.classList.add(t.class),this.scale(),this.dom.setAttribute("aria-hidden","true"),this.setOrder(e.state),e.requestMeasure(this.measureReq),t.mount&&t.mount(this.dom,e)}update(e){e.startState.facet(RO)!=e.state.facet(RO)&&this.setOrder(e.state),(this.layer.update(e,this.dom)||e.geometryChanged)&&(this.scale(),e.view.requestMeasure(this.measureReq))}setOrder(e){let t=0,i=e.facet(RO);for(;t!function(e,t){return e.constructor==t.constructor&&e.eq(t)}(e,this.drawn[t])))){let t=this.dom.firstChild,i=0;for(let r of e)r.update&&t&&r.constructor&&this.drawn[i].constructor&&r.update(t,this.drawn[i])?(t=t.nextSibling,i++):this.dom.insertBefore(r.draw(),t);for(;t;){let e=t.nextSibling;t.remove(),t=e}this.drawn=e}}destroy(){this.layer.destroy&&this.layer.destroy(this.dom,this.view),this.dom.remove()}}const RO=N.define();function _O(e){return[ro.define((t=>new YO(t,e))),RO.of(e)]}const VO=!Qn.ios,ZO=N.define({combine:e=>ke(e,{cursorBlinkRate:1200,drawRangeCursor:!0},{cursorBlinkRate:(e,t)=>Math.min(e,t),drawRangeCursor:(e,t)=>e||t})});function qO(e={}){return[ZO.of(e),WO,UO,jO,Kn.of(!0)]}function AO(e){return e.startState.facet(ZO)!=e.state.facet(ZO)}const WO=_O({above:!0,markers(e){let{state:t}=e,i=t.facet(ZO),r=[];for(let n of t.selection.ranges){let o=n==t.selection.main;if(n.empty?!o||VO:i.drawRangeCursor){let t=o?"cm-cursor cm-cursor-primary":"cm-cursor cm-cursor-secondary",i=n.empty?n:W.cursor(n.head,n.head>n.anchor?-1:1);for(let n of wO.forRange(e,t,i))r.push(n)}}return r},update(e,t){e.transactions.some((e=>e.selection))&&(t.style.animationName="cm-blink"==t.style.animationName?"cm-blink2":"cm-blink");let i=AO(e);return i&&CO(e.state,t),e.docChanged||e.selectionSet||i},mount(e,t){CO(t.state,e)},class:"cm-cursorLayer"});function CO(e,t){t.style.animationDuration=e.facet(ZO).cursorBlinkRate+"ms"}const UO=_O({above:!1,markers:e=>e.state.selection.ranges.map((t=>t.empty?[]:wO.forRange(e,"cm-selectionBackground",t))).reduce(((e,t)=>e.concat(t))),update:(e,t)=>e.docChanged||e.selectionSet||e.viewportChanged||AO(e),class:"cm-selectionLayer"}),NO={".cm-line":{"& ::selection":{backgroundColor:"transparent !important"},"&::selection":{backgroundColor:"transparent !important"}}};VO&&(NO[".cm-line"].caretColor="transparent !important");const jO=J.highest(dO.theme(NO));function EO(e,t,i,r,n){t.lastIndex=0;for(let o,s=e.iterRange(i,r),O=i;!s.next().done;O+=s.value.length)if(!s.lineBreak)for(;o=t.exec(s.value);)n(O+o.index,o)}class zO{constructor(e){const{regexp:t,decoration:i,decorate:r,boundary:n,maxLength:o=1e3}=e;if(!t.global)throw new RangeError("The regular expression given to MatchDecorator should have its 'g' flag set");if(this.regexp=t,r)this.addMatch=(e,t,i,n)=>r(n,i,i+e[0].length,e,t);else if("function"==typeof i)this.addMatch=(e,t,r,n)=>{let o=i(e,t,r);o&&n(r,r+e[0].length,o)};else{if(!i)throw new RangeError("Either 'decorate' or 'decoration' should be provided to MatchDecorator");this.addMatch=(e,t,r,n)=>n(r,r+e[0].length,i)}this.boundary=n,this.maxLength=o}createDeco(e){let t=new qe,i=t.add.bind(t);for(let{from:t,to:r}of function(e,t){let i=e.visibleRanges;if(1==i.length&&i[0].from==e.viewport.from&&i[0].to==e.viewport.to)return i;let r=[];for(let{from:n,to:o}of i)n=Math.max(e.state.doc.lineAt(n).from,n-t),o=Math.min(e.state.doc.lineAt(o).to,o+t),r.length&&r[r.length-1].to>=n?r[r.length-1].to=o:r.push({from:n,to:o});return r}(e,this.maxLength))EO(e.state.doc,this.regexp,t,r,((t,r)=>this.addMatch(r,e,t,i)));return t.finish()}updateDeco(e,t){let i=1e9,r=-1;return e.docChanged&&e.changes.iterChanges(((t,n,o,s)=>{s>e.view.viewport.from&&o1e3?this.createDeco(e.view):r>-1?this.updateRange(e.view,t.map(e.changes),i,r):t}updateRange(e,t,i,r){for(let n of e.visibleRanges){let o=Math.max(n.from,i),s=Math.min(n.to,r);if(s>o){let i=e.state.doc.lineAt(o),r=i.toi.from;o--)if(this.boundary.test(i.text[o-1-i.from])){O=o;break}for(;sh.push(i.range(e,t));if(i==r)for(this.regexp.lastIndex=O-i.from;(l=this.regexp.exec(i.text))&&l.indexthis.addMatch(i,e,t,c)));t=t.update({filterFrom:O,filterTo:a,filter:(e,t)=>ea,add:h})}}return t}}const GO=null!=/x/.unicode?"gu":"g",DO=new RegExp("[\0-\b\n--Ÿ­؜​‎‏\u2028\u2029‭‮⁦⁧⁩\ufeff-]",GO),MO={0:"null",7:"bell",8:"backspace",10:"newline",11:"vertical tab",13:"carriage return",27:"escape",8203:"zero width space",8204:"zero width non-joiner",8205:"zero width joiner",8206:"left-to-right mark",8207:"right-to-left mark",8232:"line separator",8237:"left-to-right override",8238:"right-to-left override",8294:"left-to-right isolate",8295:"right-to-left isolate",8297:"pop directional isolate",8233:"paragraph separator",65279:"zero width no-break space",65532:"object replacement"};let BO=null;const IO=N.define({combine(e){let t=ke(e,{render:null,specialChars:DO,addSpecialChars:null});return(t.replaceTabs=!function(){var e;if(null==BO&&"undefined"!=typeof document&&document.body){let t=document.body.style;BO=null!=(null!==(e=t.tabSize)&&void 0!==e?e:t.MozTabSize)}return BO||!1}())&&(t.specialChars=new RegExp("\t|"+t.specialChars.source,GO)),t.addSpecialChars&&(t.specialChars=new RegExp(t.specialChars.source+"|"+t.addSpecialChars.source,GO)),t}});function LO(e={}){return[IO.of(e),KO||(KO=ro.fromClass(class{constructor(e){this.view=e,this.decorations=Vn.none,this.decorationCache=Object.create(null),this.decorator=this.makeDecorator(e.state.facet(IO)),this.decorations=this.decorator.createDeco(e)}makeDecorator(e){return new zO({regexp:e.specialChars,decoration:(t,i,r)=>{let{doc:n}=i.state,o=S(t[0],0);if(9==o){let e=n.lineAt(r),t=i.state.tabSize,o=Me(e.text,t,r-e.from);return Vn.replace({widget:new HO((t-o%t)*this.view.defaultCharacterWidth/this.view.scaleX)})}return this.decorationCache[o]||(this.decorationCache[o]=Vn.replace({widget:new FO(e,o)}))},boundary:e.replaceTabs?void 0:/[^]/})}update(e){let t=e.state.facet(IO);e.startState.facet(IO)!=t?(this.decorator=this.makeDecorator(t),this.decorations=this.decorator.createDeco(e.view)):this.decorations=this.decorator.updateDeco(e,this.decorations)}},{decorations:e=>e.decorations}))]}let KO=null;class FO extends Rn{constructor(e,t){super(),this.options=e,this.code=t}eq(e){return e.code==this.code}toDOM(e){let t=function(e){return e>=32?"•":10==e?"␤":String.fromCharCode(9216+e)}(this.code),i=e.state.phrase("Control character")+" "+(MO[this.code]||"0x"+this.code.toString(16)),r=this.options.render&&this.options.render(this.code,i,t);if(r)return r;let n=document.createElement("span");return n.textContent=t,n.title=i,n.setAttribute("aria-label",i),n.className="cm-specialChar",n}ignoreEvent(){return!1}}class HO extends Rn{constructor(e){super(),this.width=e}eq(e){return e.width==this.width}toDOM(){let e=document.createElement("span");return e.textContent="\t",e.className="cm-tab",e.style.width=this.width+"px",e}ignoreEvent(){return!1}}class JO extends Rn{constructor(e){super(),this.content=e}toDOM(){let e=document.createElement("span");return e.className="cm-placeholder",e.style.pointerEvents="none",e.appendChild("string"==typeof this.content?document.createTextNode(this.content):this.content),"string"==typeof this.content?e.setAttribute("aria-label","placeholder "+this.content):e.setAttribute("aria-hidden","true"),e}coordsAt(e){let t=e.firstChild?Ar(e.firstChild):[];if(!t.length)return null;let i=window.getComputedStyle(e.parentNode),r=jr(t[0],"rtl"!=i.direction),n=parseInt(i.lineHeight);return r.bottom-r.top>1.5*n?{left:r.left,right:r.right,top:r.top,bottom:r.top+n}:r}ignoreEvent(){return!1}}function ea(e){return ro.fromClass(class{constructor(t){this.view=t,this.placeholder=e?Vn.set([Vn.widget({widget:new JO(e),side:1}).range(0)]):Vn.none}get decorations(){return this.view.state.doc.length?Vn.none:this.placeholder}},{decorations:e=>e.decorations})}const ta=2e3;function ia(e,t){let i=e.posAtCoords({x:t.clientX,y:t.clientY},!1),r=e.state.doc.lineAt(i),n=i-r.from,o=n>ta?-1:n==r.length?function(e,t){let i=e.coordsAtPos(e.viewport.from);return i?Math.round(Math.abs((i.left-t)/e.defaultCharacterWidth)):-1}(e,t.clientX):Me(r.text,e.state.tabSize,i-r.from);return{line:r.number,col:o,off:n}}function ra(e,t){let i=ia(e,t),r=e.state.selection;return i?{update(e){if(e.docChanged){let t=e.changes.mapPos(e.startState.doc.line(i.line).from),n=e.state.doc.lineAt(t);i={line:n.number,col:i.col,off:Math.min(i.off,n.length)},r=r.map(e.changes)}},get(t,n,o){let s=ia(e,t);if(!s)return r;let O=function(e,t,i){let r=Math.min(t.line,i.line),n=Math.max(t.line,i.line),o=[];if(t.off>ta||i.off>ta||t.col<0||i.col<0){let s=Math.min(t.off,i.off),O=Math.max(t.off,i.off);for(let t=r;t<=n;t++){let i=e.doc.line(t);i.length<=O&&o.push(W.range(i.from+s,i.to+O))}}else{let s=Math.min(t.col,i.col),O=Math.max(t.col,i.col);for(let t=r;t<=n;t++){let i=e.doc.line(t),r=Be(i.text,s,e.tabSize,!0);if(r<0)o.push(W.cursor(i.to));else{let t=Be(i.text,O,e.tabSize);o.push(W.range(i.from+r,i.from+t))}}}return o}(e.state,i,s);return O.length?o?W.create(O.concat(r.ranges)):W.create(O):r}}:null}function na(e){let t=(null==e?void 0:e.eventFilter)||(e=>e.altKey&&0==e.button);return dO.mouseSelectionStyle.of(((e,i)=>t(i)?ra(e,i):null))}const oa="-10000px";class sa{constructor(e,t,i){this.facet=t,this.createTooltipView=i,this.input=e.state.facet(t),this.tooltips=this.input.filter((e=>e)),this.tooltipViews=this.tooltips.map(i)}update(e,t){var i;let r=e.state.facet(this.facet),n=r.filter((e=>e));if(r===this.input){for(let t of this.tooltipViews)t.update&&t.update(e);return!1}let o=[],s=t?[]:null;for(let i=0;it[i]=e)),t.length=s.length),this.input=r,this.tooltips=n,this.tooltipViews=o,!0}}function Oa(e){let{win:t}=e;return{top:0,left:0,bottom:t.innerHeight,right:t.innerWidth}}const aa=N.define({combine:e=>{var t,i,r;return{position:Qn.ios?"absolute":(null===(t=e.find((e=>e.position)))||void 0===t?void 0:t.position)||"fixed",parent:(null===(i=e.find((e=>e.parent)))||void 0===i?void 0:i.parent)||null,tooltipSpace:(null===(r=e.find((e=>e.tooltipSpace)))||void 0===r?void 0:r.tooltipSpace)||Oa}}}),la=new WeakMap,ha=ro.fromClass(class{constructor(e){this.view=e,this.above=[],this.inView=!0,this.madeAbsolute=!1,this.lastTransaction=0,this.measureTimeout=-1;let t=e.state.facet(aa);this.position=t.position,this.parent=t.parent,this.classes=e.themeClasses,this.createContainer(),this.measureReq={read:this.readMeasure.bind(this),write:this.writeMeasure.bind(this),key:this},this.manager=new sa(e,fa,(e=>this.createTooltip(e))),this.intersectionObserver="function"==typeof IntersectionObserver?new IntersectionObserver((e=>{Date.now()>this.lastTransaction-50&&e.length>0&&e[e.length-1].intersectionRatio<1&&this.measureSoon()}),{threshold:[1]}):null,this.observeIntersection(),e.win.addEventListener("resize",this.measureSoon=this.measureSoon.bind(this)),this.maybeMeasure()}createContainer(){this.parent?(this.container=document.createElement("div"),this.container.style.position="relative",this.container.className=this.view.themeClasses,this.parent.appendChild(this.container)):this.container=this.view.dom}observeIntersection(){if(this.intersectionObserver){this.intersectionObserver.disconnect();for(let e of this.manager.tooltipViews)this.intersectionObserver.observe(e.dom)}}measureSoon(){this.measureTimeout<0&&(this.measureTimeout=setTimeout((()=>{this.measureTimeout=-1,this.maybeMeasure()}),50))}update(e){e.transactions.length&&(this.lastTransaction=Date.now());let t=this.manager.update(e,this.above);t&&this.observeIntersection();let i=t||e.geometryChanged,r=e.state.facet(aa);if(r.position!=this.position&&!this.madeAbsolute){this.position=r.position;for(let e of this.manager.tooltipViews)e.dom.style.position=this.position;i=!0}if(r.parent!=this.parent){this.parent&&this.container.remove(),this.parent=r.parent,this.createContainer();for(let e of this.manager.tooltipViews)this.container.appendChild(e.dom);i=!0}else this.parent&&this.view.themeClasses!=this.classes&&(this.classes=this.container.className=this.view.themeClasses);i&&this.maybeMeasure()}createTooltip(e){let t=e.create(this.view);if(t.dom.classList.add("cm-tooltip"),e.arrow&&!t.dom.querySelector(".cm-tooltip > .cm-tooltip-arrow")){let e=document.createElement("div");e.className="cm-tooltip-arrow",t.dom.appendChild(e)}return t.dom.style.position=this.position,t.dom.style.top=oa,this.container.appendChild(t.dom),t.mount&&t.mount(this.view),t}destroy(){var e,t;this.view.win.removeEventListener("resize",this.measureSoon);for(let t of this.manager.tooltipViews)t.dom.remove(),null===(e=t.destroy)||void 0===e||e.call(t);this.parent&&this.container.remove(),null===(t=this.intersectionObserver)||void 0===t||t.disconnect(),clearTimeout(this.measureTimeout)}readMeasure(){let e=this.view.dom.getBoundingClientRect(),t=1,i=1,r=!1;if("fixed"==this.position&&this.manager.tooltipViews.length){let{offsetParent:e}=this.manager.tooltipViews[0].dom;r=!(!e||e==this.container.ownerDocument.body)}if(r||"absolute"==this.position)if(this.parent){let e=this.parent.getBoundingClientRect();e.width&&e.height&&(t=e.width/this.parent.offsetWidth,i=e.height/this.parent.offsetHeight)}else({scaleX:t,scaleY:i}=this.view.viewState);return{editor:e,parent:this.parent?this.container.getBoundingClientRect():e,pos:this.manager.tooltips.map(((e,t)=>{let i=this.manager.tooltipViews[t];return i.getCoords?i.getCoords(e.pos):this.view.coordsAtPos(e.pos)})),size:this.manager.tooltipViews.map((({dom:e})=>e.getBoundingClientRect())),space:this.view.state.facet(aa).tooltipSpace(this.view),scaleX:t,scaleY:i,makeAbsolute:r}}writeMeasure(e){var t;if(e.makeAbsolute){this.madeAbsolute=!0,this.position="absolute";for(let e of this.manager.tooltipViews)e.dom.style.position="absolute"}let{editor:i,space:r,scaleX:n,scaleY:o}=e,s=[];for(let O=0;O=Math.min(i.bottom,r.bottom)||c.rightMath.min(i.right,r.right)+.1){h.style.top=oa;continue}let f=a.arrow?l.dom.querySelector(".cm-tooltip-arrow"):null,d=f?7:0,p=u.right-u.left,Q=null!==(t=la.get(l))&&void 0!==t?t:u.bottom-u.top,g=l.offset||ua,m=this.view.textDirection==go.LTR,$=u.width>r.right-r.left?m?r.left:r.right-u.width:m?Math.min(c.left-(f?14:0)+g.x,r.right-p):Math.max(r.left,c.left-p+(f?14:0)-g.x),b=this.above[O];!a.strictSide&&(b?c.top-(u.bottom-u.top)-g.yr.bottom)&&b==r.bottom-c.bottom>c.top-r.top&&(b=this.above[O]=!b);let X=(b?c.top-r.top:r.bottom-c.bottom)-d;if(X$&&e.topS&&(S=b?e.top-Q-2-d:e.bottom+d+2);if("absolute"==this.position?(h.style.top=(S-e.parent.top)/o+"px",h.style.left=($-e.parent.left)/n+"px"):(h.style.top=S/o+"px",h.style.left=$/n+"px"),f){let e=c.left+(m?g.x:-g.x)-($+14-7);f.style.left=e/n+"px"}!0!==l.overlap&&s.push({left:$,top:S,right:y,bottom:S+Q}),h.classList.toggle("cm-tooltip-above",b),h.classList.toggle("cm-tooltip-below",!b),l.positioned&&l.positioned(e.space)}}maybeMeasure(){if(this.manager.tooltips.length&&(this.view.inView&&this.view.requestMeasure(this.measureReq),this.inView!=this.view.inView&&(this.inView=this.view.inView,!this.inView)))for(let e of this.manager.tooltipViews)e.dom.style.top=oa}},{eventObservers:{scroll(){this.maybeMeasure()}}}),ca=dO.baseTheme({".cm-tooltip":{zIndex:100,boxSizing:"border-box"},"&light .cm-tooltip":{border:"1px solid #bbb",backgroundColor:"#f5f5f5"},"&light .cm-tooltip-section:not(:first-child)":{borderTop:"1px solid #bbb"},"&dark .cm-tooltip":{backgroundColor:"#333338",color:"white"},".cm-tooltip-arrow":{height:"7px",width:"14px",position:"absolute",zIndex:-1,overflow:"hidden","&:before, &:after":{content:"''",position:"absolute",width:0,height:0,borderLeft:"7px solid transparent",borderRight:"7px solid transparent"},".cm-tooltip-above &":{bottom:"-7px","&:before":{borderTop:"7px solid #bbb"},"&:after":{borderTop:"7px solid #f5f5f5",bottom:"1px"}},".cm-tooltip-below &":{top:"-7px","&:before":{borderBottom:"7px solid #bbb"},"&:after":{borderBottom:"7px solid #f5f5f5",top:"1px"}}},"&dark .cm-tooltip .cm-tooltip-arrow":{"&:before":{borderTopColor:"#333338",borderBottomColor:"#333338"},"&:after":{borderTopColor:"transparent",borderBottomColor:"transparent"}}}),ua={x:0,y:0},fa=N.define({enables:[ha,ca]}),da=N.define();class pa{static create(e){return new pa(e)}constructor(e){this.view=e,this.mounted=!1,this.dom=document.createElement("div"),this.dom.classList.add("cm-tooltip-hover"),this.manager=new sa(e,da,(e=>this.createHostedView(e)))}createHostedView(e){let t=e.create(this.view);return t.dom.classList.add("cm-tooltip-section"),this.dom.appendChild(t.dom),this.mounted&&t.mount&&t.mount(this.view),t}mount(e){for(let t of this.manager.tooltipViews)t.mount&&t.mount(e);this.mounted=!0}positioned(e){for(let t of this.manager.tooltipViews)t.positioned&&t.positioned(e)}update(e){this.manager.update(e)}destroy(){var e;for(let t of this.manager.tooltipViews)null===(e=t.destroy)||void 0===e||e.call(t)}}const Qa=fa.compute([da],(e=>{let t=e.facet(da).filter((e=>e));return 0===t.length?null:{pos:Math.min(...t.map((e=>e.pos))),end:Math.max(...t.filter((e=>null!=e.end)).map((e=>e.end))),create:pa.create,above:t[0].above,arrow:t.some((e=>e.arrow))}}));class ga{constructor(e,t,i,r,n){this.view=e,this.source=t,this.field=i,this.setHover=r,this.hoverTime=n,this.hoverTimeout=-1,this.restartTimeout=-1,this.pending=null,this.lastMove={x:0,y:0,target:e.dom,time:0},this.checkHover=this.checkHover.bind(this),e.dom.addEventListener("mouseleave",this.mouseleave=this.mouseleave.bind(this)),e.dom.addEventListener("mousemove",this.mousemove=this.mousemove.bind(this))}update(){this.pending&&(this.pending=null,clearTimeout(this.restartTimeout),this.restartTimeout=setTimeout((()=>this.startHover()),20))}get active(){return this.view.state.field(this.field)}checkHover(){if(this.hoverTimeout=-1,this.active)return;let e=Date.now()-this.lastMove.time;ei.bottom||t.xi.right+e.defaultCharacterWidth)return;let o=e.bidiSpans(e.state.doc.lineAt(r)).find((e=>e.from<=r&&e.to>=r)),s=o&&o.dir==go.RTL?-1:1;n=t.x{this.pending==t&&(this.pending=null,i&&e.dispatch({effects:this.setHover.of(i)}))}),(t=>Jn(e.state,t,"hover tooltip")))}else o&&e.dispatch({effects:this.setHover.of(o)})}mousemove(e){var t;this.lastMove={x:e.clientX,y:e.clientY,target:e.target,time:Date.now()},this.hoverTimeout<0&&(this.hoverTimeout=setTimeout(this.checkHover,this.hoverTime));let i=this.active;if(i&&!ma(this.lastMove.target)||this.pending){let{pos:r}=i||this.pending,n=null!==(t=null==i?void 0:i.end)&&void 0!==t?t:r;(r==n?this.view.posAtCoords(this.lastMove)==r:function(e,t,i,r,n,o){let s=e.scrollDOM.getBoundingClientRect(),O=e.documentTop+e.documentPadding.top+e.contentHeight;if(s.left>r||s.rightn||Math.min(s.bottom,O)=t&&a<=i}(this.view,r,n,e.clientX,e.clientY))||(this.view.dispatch({effects:this.setHover.of(null)}),this.pending=null)}}mouseleave(e){clearTimeout(this.hoverTimeout),this.hoverTimeout=-1,this.active&&!ma(e.relatedTarget)&&this.view.dispatch({effects:this.setHover.of(null)})}destroy(){clearTimeout(this.hoverTimeout),this.view.dom.removeEventListener("mouseleave",this.mouseleave),this.view.dom.removeEventListener("mousemove",this.mousemove)}}function ma(e){for(let t=e;t;t=t.parentNode)if(1==t.nodeType&&t.classList.contains("cm-tooltip"))return!0;return!1}function $a(e,t){let i=e.plugin(ha);if(!i)return null;let r=i.manager.tooltips.indexOf(t);return r<0?null:i.manager.tooltipViews[r]}const ba=Qe.define(),Xa=N.define({combine(e){let t,i;for(let r of e)t=t||r.topContainer,i=i||r.bottomContainer;return{topContainer:t,bottomContainer:i}}});function Sa(e,t){let i=e.plugin(ya),r=i?i.specs.indexOf(t):-1;return r>-1?i.panels[r]:null}const ya=ro.fromClass(class{constructor(e){this.input=e.state.facet(xa),this.specs=this.input.filter((e=>e)),this.panels=this.specs.map((t=>t(e)));let t=e.state.facet(Xa);this.top=new va(e,!0,t.topContainer),this.bottom=new va(e,!1,t.bottomContainer),this.top.sync(this.panels.filter((e=>e.top))),this.bottom.sync(this.panels.filter((e=>!e.top)));for(let e of this.panels)e.dom.classList.add("cm-panel"),e.mount&&e.mount()}update(e){let t=e.state.facet(Xa);this.top.container!=t.topContainer&&(this.top.sync([]),this.top=new va(e.view,!0,t.topContainer)),this.bottom.container!=t.bottomContainer&&(this.bottom.sync([]),this.bottom=new va(e.view,!1,t.bottomContainer)),this.top.syncClasses(),this.bottom.syncClasses();let i=e.state.facet(xa);if(i!=this.input){let t=i.filter((e=>e)),r=[],n=[],o=[],s=[];for(let i of t){let t,O=this.specs.indexOf(i);O<0?(t=i(e.view),s.push(t)):(t=this.panels[O],t.update&&t.update(e)),r.push(t),(t.top?n:o).push(t)}this.specs=t,this.panels=r,this.top.sync(n),this.bottom.sync(o);for(let e of s)e.dom.classList.add("cm-panel"),e.mount&&e.mount()}else for(let t of this.panels)t.update&&t.update(e)}destroy(){this.top.sync([]),this.bottom.sync([])}},{provide:e=>dO.scrollMargins.of((t=>{let i=t.plugin(e);return i&&{top:i.top.scrollMargin(),bottom:i.bottom.scrollMargin()}}))});class va{constructor(e,t,i){this.view=e,this.top=t,this.container=i,this.dom=void 0,this.classes="",this.panels=[],this.syncClasses()}sync(e){for(let t of this.panels)t.destroy&&e.indexOf(t)<0&&t.destroy();this.panels=e,this.syncDOM()}syncDOM(){if(0==this.panels.length)return void(this.dom&&(this.dom.remove(),this.dom=void 0));if(!this.dom){this.dom=document.createElement("div"),this.dom.className=this.top?"cm-panels cm-panels-top":"cm-panels cm-panels-bottom",this.dom.style[this.top?"top":"bottom"]="0";let e=this.container||this.view.dom;e.insertBefore(this.dom,this.top?e.firstChild:null)}let e=this.dom.firstChild;for(let t of this.panels)if(t.dom.parentNode==this.dom){for(;e!=t.dom;)e=Pa(e);e=e.nextSibling}else this.dom.insertBefore(t.dom,e);for(;e;)e=Pa(e)}scrollMargin(){return!this.dom||this.container?0:Math.max(0,this.top?this.dom.getBoundingClientRect().bottom-Math.max(0,this.view.scrollDOM.getBoundingClientRect().top):Math.min(innerHeight,this.view.scrollDOM.getBoundingClientRect().bottom)-this.dom.getBoundingClientRect().top)}syncClasses(){if(this.container&&this.classes!=this.view.themeClasses){for(let e of this.classes.split(" "))e&&this.container.classList.remove(e);for(let e of(this.classes=this.view.themeClasses).split(" "))e&&this.container.classList.add(e)}}}function Pa(e){let t=e.nextSibling;return e.remove(),t}const xa=N.define({enables:ya});class wa extends Ye{compare(e){return this==e||this.constructor==e.constructor&&this.eq(e)}eq(e){return!1}destroy(e){}}wa.prototype.elementClass="",wa.prototype.toDOM=void 0,wa.prototype.mapMode=w.TrackBefore,wa.prototype.startSide=wa.prototype.endSide=-1,wa.prototype.point=!0;const Ta=N.define(),ka=N.define();const Ya=N.define({combine:e=>e.some((e=>e))});function Ra(e){let t=[_a];return e&&!1===e.fixed&&t.push(Ya.of(!0)),t}const _a=ro.fromClass(class{constructor(e){this.view=e,this.prevViewport=e.viewport,this.dom=document.createElement("div"),this.dom.className="cm-gutters",this.dom.setAttribute("aria-hidden","true"),this.dom.style.minHeight=this.view.contentHeight/this.view.scaleY+"px",this.gutters=e.state.facet(ka).map((t=>new Aa(e,t)));for(let e of this.gutters)this.dom.appendChild(e.dom);this.fixed=!e.state.facet(Ya),this.fixed&&(this.dom.style.position="sticky"),this.syncGutters(!1),e.scrollDOM.insertBefore(this.dom,e.contentDOM)}update(e){if(this.updateGutters(e)){let t=this.prevViewport,i=e.view.viewport,r=Math.min(t.to,i.to)-Math.max(t.from,i.from);this.syncGutters(r<.8*(i.to-i.from))}e.geometryChanged&&(this.dom.style.minHeight=this.view.contentHeight+"px"),this.view.state.facet(Ya)!=!this.fixed&&(this.fixed=!this.fixed,this.dom.style.position=this.fixed?"sticky":""),this.prevViewport=e.view.viewport}syncGutters(e){let t=this.dom.nextSibling;e&&this.dom.remove();let i=Ze.iter(this.view.state.facet(Ta),this.view.viewport.from),r=[],n=this.gutters.map((e=>new qa(e,this.view.viewport,-this.view.documentPadding.top)));for(let e of this.view.viewportLineBlocks)if(r.length&&(r=[]),Array.isArray(e.type)){let t=!0;for(let o of e.type)if(o.type==_n.Text&&t){Za(i,r,o.from);for(let e of n)e.line(this.view,o,r);t=!1}else if(o.widget)for(let e of n)e.widget(this.view,o)}else if(e.type==_n.Text){Za(i,r,e.from);for(let t of n)t.line(this.view,e,r)}else if(e.widget)for(let t of n)t.widget(this.view,e);for(let e of n)e.finish();e&&this.view.scrollDOM.insertBefore(this.dom,t)}updateGutters(e){let t=e.startState.facet(ka),i=e.state.facet(ka),r=e.docChanged||e.heightChanged||e.viewportChanged||!Ze.eq(e.startState.facet(Ta),e.state.facet(Ta),e.view.viewport.from,e.view.viewport.to);if(t==i)for(let t of this.gutters)t.update(e)&&(r=!0);else{r=!0;let n=[];for(let r of i){let i=t.indexOf(r);i<0?n.push(new Aa(this.view,r)):(this.gutters[i].update(e),n.push(this.gutters[i]))}for(let e of this.gutters)e.dom.remove(),n.indexOf(e)<0&&e.destroy();for(let e of n)this.dom.appendChild(e.dom);this.gutters=n}return r}destroy(){for(let e of this.gutters)e.destroy();this.dom.remove()}},{provide:e=>dO.scrollMargins.of((t=>{let i=t.plugin(e);return i&&0!=i.gutters.length&&i.fixed?t.textDirection==go.LTR?{left:i.dom.offsetWidth*t.scaleX}:{right:i.dom.offsetWidth*t.scaleX}:null}))});function Va(e){return Array.isArray(e)?e:[e]}function Za(e,t,i){for(;e.value&&e.from<=i;)e.from==i&&t.push(e.value),e.next()}class qa{constructor(e,t,i){this.gutter=e,this.height=i,this.i=0,this.cursor=Ze.iter(e.markers,t.from)}addElement(e,t,i){let{gutter:r}=this,n=(t.top-this.height)/e.scaleY,o=t.height/e.scaleY;if(this.i==r.elements.length){let t=new Wa(e,o,n,i);r.elements.push(t),r.dom.appendChild(t.dom)}else r.elements[this.i].update(e,o,n,i);this.height=t.bottom,this.i++}line(e,t,i){let r=[];Za(this.cursor,r,t.from),i.length&&(r=r.concat(i));let n=this.gutter.config.lineMarker(e,t,r);n&&r.unshift(n);let o=this.gutter;(0!=r.length||o.config.renderEmptyElements)&&this.addElement(e,t,r)}widget(e,t){let i=this.gutter.config.widgetMarker(e,t.widget,t);i&&this.addElement(e,t,[i])}finish(){let e=this.gutter;for(;e.elements.length>this.i;){let t=e.elements.pop();e.dom.removeChild(t.dom),t.destroy()}}}class Aa{constructor(e,t){this.view=e,this.config=t,this.elements=[],this.spacer=null,this.dom=document.createElement("div"),this.dom.className="cm-gutter"+(this.config.class?" "+this.config.class:"");for(let i in t.domEventHandlers)this.dom.addEventListener(i,(r=>{let n,o=r.target;if(o!=this.dom&&this.dom.contains(o)){for(;o.parentNode!=this.dom;)o=o.parentNode;let e=o.getBoundingClientRect();n=(e.top+e.bottom)/2}else n=r.clientY;let s=e.lineBlockAtHeight(n-e.documentTop);t.domEventHandlers[i](e,s,r)&&r.preventDefault()}));this.markers=Va(t.markers(e)),t.initialSpacer&&(this.spacer=new Wa(e,0,0,[t.initialSpacer(e)]),this.dom.appendChild(this.spacer.dom),this.spacer.dom.style.cssText+="visibility: hidden; pointer-events: none")}update(e){let t=this.markers;if(this.markers=Va(this.config.markers(e.view)),this.spacer&&this.config.updateSpacer){let t=this.config.updateSpacer(this.spacer.markers[0],e);t!=this.spacer.markers[0]&&this.spacer.update(e.view,0,0,[t])}let i=e.view.viewport;return!Ze.eq(this.markers,t,i.from,i.to)||!!this.config.lineMarkerChange&&this.config.lineMarkerChange(e)}destroy(){for(let e of this.elements)e.destroy()}}class Wa{constructor(e,t,i,r){this.height=-1,this.above=0,this.markers=[],this.dom=document.createElement("div"),this.dom.className="cm-gutterElement",this.update(e,t,i,r)}update(e,t,i,r){this.height!=t&&(this.height=t,this.dom.style.height=t+"px"),this.above!=i&&(this.dom.style.marginTop=(this.above=i)?i+"px":""),function(e,t){if(e.length!=t.length)return!1;for(let i=0;ike(e,{formatNumber:String,domEventHandlers:{}},{domEventHandlers(e,t){let i=Object.assign({},e);for(let e in t){let r=i[e],n=t[e];i[e]=r?(e,t,i)=>r(e,t,i)||n(e,t,i):n}return i}})});class Na extends wa{constructor(e){super(),this.number=e}eq(e){return this.number==e.number}toDOM(){return document.createTextNode(this.number)}}function ja(e,t){return e.state.facet(Ua).formatNumber(t,e.state)}const Ea=ka.compute([Ua],(e=>({class:"cm-lineNumbers",renderEmptyElements:!1,markers:e=>e.state.facet(Ca),lineMarker:(e,t,i)=>i.some((e=>e.toDOM))?null:new Na(ja(e,e.state.doc.lineAt(t.from).number)),widgetMarker:()=>null,lineMarkerChange:e=>e.startState.facet(Ua)!=e.state.facet(Ua),initialSpacer:e=>new Na(ja(e,Ga(e.state.doc.lines))),updateSpacer(e,t){let i=ja(t.view,Ga(t.view.state.doc.lines));return i==e.number?e:new Na(i)},domEventHandlers:e.facet(Ua).domEventHandlers})));function za(e={}){return[Ua.of(e),Ra(),Ea]}function Ga(e){let t=9;for(;tt.modified.indexOf(e)>-1?t:Ia.get(t.base||t,t.modified.concat(e).sort(((e,t)=>e.id-t.id)))}}let Ba=0;class Ia{constructor(){this.instances=[],this.id=Ba++}static get(e,t){if(!t.length)return e;let i=t[0].instances.find((i=>i.base==e&&function(e,t){return e.length==t.length&&e.every(((e,i)=>e==t[i]))}(t,i.modified)));if(i)return i;let r=[],n=new Ma(r,e,t);for(let e of t)e.instances.push(n);let o=function(e){let t=[[]];for(let i=0;it.length-e.length))}(t);for(let t of e.set)if(!t.modified.length)for(let e of o)r.push(Ia.get(t,e));return n}}function La(e){let t=Object.create(null);for(let i in e){let r=e[i];Array.isArray(r)||(r=[r]);for(let e of i.split(" "))if(e){let i=[],n=2,o=e;for(let t=0;;){if("..."==o&&t>0&&t+3==e.length){n=1;break}let r=/^"(?:[^"\\]|\\.)*?"|[^\/!]+/.exec(o);if(!r)throw new RangeError("Invalid path: "+e);if(i.push("*"==r[0]?"":'"'==r[0][0]?JSON.parse(r[0]):r[0]),t+=r[0].length,t==e.length)break;let s=e[t++];if(t==e.length&&"!"==s){n=0;break}if("/"!=s)throw new RangeError("Invalid path: "+e);o=e.slice(t)}let s=i.length-1,O=i[s];if(!O)throw new RangeError("Invalid path: "+e);let a=new Fa(r,n,s>0?i.slice(0,s):null);t[O]=a.sort(t[O])}}return Ka.add(t)}const Ka=new Fe;class Fa{constructor(e,t,i,r){this.tags=e,this.mode=t,this.context=i,this.next=r}get opaque(){return 0==this.mode}get inherit(){return 1==this.mode}sort(e){return!e||e.depth{let t=n;for(let r of e)for(let e of r.set){let r=i[e.id];if(r){t=t?t+" "+r:r;break}}return t},scope:r}}function Ja(e,t,i,r=0,n=e.length){let o=new el(r,Array.isArray(t)?t:[t],i);o.highlightRange(e.cursor(),r,n,"",o.highlighters),o.flush(n)}Fa.empty=new Fa([],2,null);class el{constructor(e,t,i){this.at=e,this.highlighters=t,this.span=i,this.class=""}startSpan(e,t){t!=this.class&&(this.flush(e),e>this.at&&(this.at=e),this.class=t)}flush(e){e>this.at&&this.class&&this.span(this.at,e,this.class)}highlightRange(e,t,i,r,n){let{type:o,from:s,to:O}=e;if(s>=i||O<=t)return;o.isTop&&(n=this.highlighters.filter((e=>!e.scope||e.scope(o))));let a=r,l=function(e){let t=e.type.prop(Ka);for(;t&&t.context&&!e.matchContext(t.context);)t=t.next;return t||null}(e)||Fa.empty,h=function(e,t){let i=null;for(let r of e){let e=r.style(t);e&&(i=i?i+" "+e:e)}return i}(n,l.tags);if(h&&(a&&(a+=" "),a+=h,1==l.mode&&(r+=(r?" ":"")+h)),this.startSpan(Math.max(t,s),a),l.opaque)return;let c=e.tree&&e.tree.prop(Fe.mounted);if(c&&c.overlay){let o=e.node.enter(c.overlay[0].from+s,1),l=this.highlighters.filter((e=>!e.scope||e.scope(c.tree.type))),h=e.firstChild();for(let u=0,f=s;;u++){let d=u=p)&&e.nextSibling()););if(!d||p>i)break;f=d.to+s,f>t&&(this.highlightRange(o.cursor(),Math.max(t,d.from+s),Math.min(i,f),"",l),this.startSpan(Math.min(i,f),a))}h&&e.parent()}else if(e.firstChild()){c&&(r="");do{if(!(e.to<=t)){if(e.from>=i)break;this.highlightRange(e,t,i,r,n),this.startSpan(Math.min(i,e.to),a)}}while(e.nextSibling());e.parent()}}}const tl=Ma.define,il=tl(),rl=tl(),nl=tl(rl),ol=tl(rl),sl=tl(),Ol=tl(sl),al=tl(sl),ll=tl(),hl=tl(ll),cl=tl(),ul=tl(),fl=tl(),dl=tl(fl),pl=tl(),Ql={comment:il,lineComment:tl(il),blockComment:tl(il),docComment:tl(il),name:rl,variableName:tl(rl),typeName:nl,tagName:tl(nl),propertyName:ol,attributeName:tl(ol),className:tl(rl),labelName:tl(rl),namespace:tl(rl),macroName:tl(rl),literal:sl,string:Ol,docString:tl(Ol),character:tl(Ol),attributeValue:tl(Ol),number:al,integer:tl(al),float:tl(al),bool:tl(sl),regexp:tl(sl),escape:tl(sl),color:tl(sl),url:tl(sl),keyword:cl,self:tl(cl),null:tl(cl),atom:tl(cl),unit:tl(cl),modifier:tl(cl),operatorKeyword:tl(cl),controlKeyword:tl(cl),definitionKeyword:tl(cl),moduleKeyword:tl(cl),operator:ul,derefOperator:tl(ul),arithmeticOperator:tl(ul),logicOperator:tl(ul),bitwiseOperator:tl(ul),compareOperator:tl(ul),updateOperator:tl(ul),definitionOperator:tl(ul),typeOperator:tl(ul),controlOperator:tl(ul),punctuation:fl,separator:tl(fl),bracket:dl,angleBracket:tl(dl),squareBracket:tl(dl),paren:tl(dl),brace:tl(dl),content:ll,heading:hl,heading1:tl(hl),heading2:tl(hl),heading3:tl(hl),heading4:tl(hl),heading5:tl(hl),heading6:tl(hl),contentSeparator:tl(ll),list:tl(ll),quote:tl(ll),emphasis:tl(ll),strong:tl(ll),link:tl(ll),monospace:tl(ll),strikethrough:tl(ll),inserted:tl(),deleted:tl(),changed:tl(),invalid:tl(),meta:pl,documentMeta:tl(pl),annotation:tl(pl),processingInstruction:tl(pl),definition:Ma.defineModifier(),constant:Ma.defineModifier(),function:Ma.defineModifier(),standard:Ma.defineModifier(),local:Ma.defineModifier(),special:Ma.defineModifier()};var gl;Ha([{tag:Ql.link,class:"tok-link"},{tag:Ql.heading,class:"tok-heading"},{tag:Ql.emphasis,class:"tok-emphasis"},{tag:Ql.strong,class:"tok-strong"},{tag:Ql.keyword,class:"tok-keyword"},{tag:Ql.atom,class:"tok-atom"},{tag:Ql.bool,class:"tok-bool"},{tag:Ql.url,class:"tok-url"},{tag:Ql.labelName,class:"tok-labelName"},{tag:Ql.inserted,class:"tok-inserted"},{tag:Ql.deleted,class:"tok-deleted"},{tag:Ql.literal,class:"tok-literal"},{tag:Ql.string,class:"tok-string"},{tag:Ql.number,class:"tok-number"},{tag:[Ql.regexp,Ql.escape,Ql.special(Ql.string)],class:"tok-string2"},{tag:Ql.variableName,class:"tok-variableName"},{tag:Ql.local(Ql.variableName),class:"tok-variableName tok-local"},{tag:Ql.definition(Ql.variableName),class:"tok-variableName tok-definition"},{tag:Ql.special(Ql.variableName),class:"tok-variableName2"},{tag:Ql.definition(Ql.propertyName),class:"tok-propertyName tok-definition"},{tag:Ql.typeName,class:"tok-typeName"},{tag:Ql.namespace,class:"tok-namespace"},{tag:Ql.className,class:"tok-className"},{tag:Ql.macroName,class:"tok-macroName"},{tag:Ql.propertyName,class:"tok-propertyName"},{tag:Ql.operator,class:"tok-operator"},{tag:Ql.comment,class:"tok-comment"},{tag:Ql.meta,class:"tok-meta"},{tag:Ql.invalid,class:"tok-invalid"},{tag:Ql.punctuation,class:"tok-punctuation"}]);const ml=new Fe;function $l(e){return N.define({combine:e?t=>t.concat(e):void 0})}const bl=new Fe;class Xl{constructor(e,t,i=[],r=""){this.data=e,this.name=r,Te.prototype.hasOwnProperty("tree")||Object.defineProperty(Te.prototype,"tree",{get(){return vl(this)}}),this.parser=t,this.extension=[Vl.of(this),Te.languageData.of(((e,t,i)=>{let r=Sl(e,t,i),n=r.type.prop(ml);if(!n)return[];let o=e.facet(n),s=r.type.prop(bl);if(s){let n=r.resolve(t-r.from,i);for(let t of s)if(t.test(n,e)){let i=e.facet(t.facet);return"replace"==t.type?i:i.concat(o)}}return o}))].concat(i)}isActiveAt(e,t,i=-1){return Sl(e,t,i).type.prop(ml)==this.data}findRegions(e){let t=e.facet(Vl);if((null==t?void 0:t.data)==this.data)return[{from:0,to:e.doc.length}];if(!t||!t.allowsNesting)return[];let i=[],r=(e,t)=>{if(e.prop(ml)==this.data)return void i.push({from:t,to:t+e.length});let n=e.prop(Fe.mounted);if(n){if(n.tree.prop(ml)==this.data){if(n.overlay)for(let e of n.overlay)i.push({from:e.from+t,to:e.to+t});else i.push({from:t,to:t+e.length});return}if(n.overlay){let e=i.length;if(r(n.tree,n.overlay[0].from+t),i.length>e)return}}for(let i=0;ie.isTop?t:void 0))]}),e.name)}configure(e,t){return new yl(this.data,this.parser.configure(e),t||this.name)}get allowsNesting(){return this.parser.hasWrappers()}}function vl(e){let t=e.field(Xl.state,!1);return t?t.tree:ot.empty}class Pl{constructor(e){this.doc=e,this.cursorPos=0,this.string="",this.cursor=e.iter()}get length(){return this.doc.length}syncTo(e){return this.string=this.cursor.next(e-this.cursorPos).value,this.cursorPos=e+this.string.length,this.cursorPos-this.string.length}chunk(e){return this.syncTo(e),this.string}get lineChunks(){return!0}read(e,t){let i=this.cursorPos-this.string.length;return e=this.cursorPos?this.doc.sliceString(e,t):this.string.slice(e-i,t-i)}}let xl=null;class wl{constructor(e,t,i=[],r,n,o,s,O){this.parser=e,this.state=t,this.fragments=i,this.tree=r,this.treeLen=n,this.viewport=o,this.skipped=s,this.scheduleOn=O,this.parse=null,this.tempSkipped=[]}static create(e,t,i){return new wl(e,t,[],ot.empty,0,i,[],null)}startParse(){return this.parser.startParse(new Pl(this.state.doc),this.fragments)}work(e,t){return null!=t&&t>=this.state.doc.length&&(t=void 0),this.tree!=ot.empty&&this.isDone(null!=t?t:this.state.doc.length)?(this.takeTree(),!0):this.withContext((()=>{var i;if("number"==typeof e){let t=Date.now()+e;e=()=>Date.now()>t}for(this.parse||(this.parse=this.startParse()),null!=t&&(null==this.parse.stoppedAt||this.parse.stoppedAt>t)&&t=this.treeLen&&((null==this.parse.stoppedAt||this.parse.stoppedAt>e)&&this.parse.stopAt(e),this.withContext((()=>{for(;!(t=this.parse.advance()););})),this.treeLen=e,this.tree=t,this.fragments=this.withoutTempSkipped(vt.addTree(this.tree,this.fragments,!0)),this.parse=null)}withContext(e){let t=xl;xl=this;try{return e()}finally{xl=t}}withoutTempSkipped(e){for(let t;t=this.tempSkipped.pop();)e=Tl(e,t.from,t.to);return e}changes(e,t){let{fragments:i,tree:r,treeLen:n,viewport:o,skipped:s}=this;if(this.takeTree(),!e.empty){let t=[];if(e.iterChangedRanges(((e,i,r,n)=>t.push({fromA:e,toA:i,fromB:r,toB:n}))),i=vt.applyChanges(i,t),r=ot.empty,n=0,o={from:e.mapPos(o.from,-1),to:e.mapPos(o.to,1)},this.skipped.length){s=[];for(let t of this.skipped){let i=e.mapPos(t.from,1),r=e.mapPos(t.to,-1);ie.from&&(this.fragments=Tl(this.fragments,i,r),this.skipped.splice(t--,1))}return!(this.skipped.length>=t||(this.reset(),0))}reset(){this.parse&&(this.takeTree(),this.parse=null)}skipUntilInView(e,t){this.skipped.push({from:e,to:t})}static getSkippingParser(e){return new class extends Pt{createParse(t,i,r){let n=r[0].from,o=r[r.length-1].to;return{parsedPos:n,advance(){let t=xl;if(t){for(let e of r)t.tempSkipped.push(e);e&&(t.scheduleOn=t.scheduleOn?Promise.all([t.scheduleOn,e]):e)}return this.parsedPos=o,new ot(et.none,[],[],o-n)},stoppedAt:null,stopAt(){}}}}}isDone(e){e=Math.min(e,this.state.doc.length);let t=this.fragments;return this.treeLen>=e&&t.length&&0==t[0].from&&t[0].to>=e}static get(){return xl}}function Tl(e,t,i){return vt.applyChanges(e,[{fromA:t,toA:i,fromB:t,toB:i}])}class kl{constructor(e){this.context=e,this.tree=e.tree}apply(e){if(!e.docChanged&&this.tree==this.context.tree)return this;let t=this.context.changes(e.changes,e.state),i=this.context.treeLen==e.startState.doc.length?void 0:Math.max(e.changes.mapPos(this.context.treeLen),t.viewport.to);return t.work(20,i)||t.takeTree(),new kl(t)}static init(e){let t=Math.min(3e3,e.doc.length),i=wl.create(e.facet(Vl).parser,e,{from:0,to:t});return i.work(20,t)||i.takeTree(),new kl(i)}}Xl.state=B.define({create:kl.init,update(e,t){for(let e of t.effects)if(e.is(Xl.setState))return e.value;return t.startState.facet(Vl)!=t.state.facet(Vl)?kl.init(t.state):e.apply(t)}});let Yl=e=>{let t=setTimeout((()=>e()),500);return()=>clearTimeout(t)};"undefined"!=typeof requestIdleCallback&&(Yl=e=>{let t=-1,i=setTimeout((()=>{t=requestIdleCallback(e,{timeout:400})}),100);return()=>t<0?clearTimeout(i):cancelIdleCallback(t)});const Rl="undefined"!=typeof navigator&&(null===(gl=navigator.scheduling)||void 0===gl?void 0:gl.isInputPending)?()=>navigator.scheduling.isInputPending():null,_l=ro.fromClass(class{constructor(e){this.view=e,this.working=null,this.workScheduled=0,this.chunkEnd=-1,this.chunkBudget=-1,this.work=this.work.bind(this),this.scheduleWork()}update(e){let t=this.view.state.field(Xl.state).context;(t.updateViewport(e.view.viewport)||this.view.viewport.to>t.treeLen)&&this.scheduleWork(),(e.docChanged||e.selectionSet)&&(this.view.hasFocus&&(this.chunkBudget+=50),this.scheduleWork()),this.checkAsyncSchedule(t)}scheduleWork(){if(this.working)return;let{state:e}=this.view,t=e.field(Xl.state);t.tree==t.context.tree&&t.context.isDone(e.doc.length)||(this.working=Yl(this.work))}work(e){this.working=null;let t=Date.now();if(this.chunkEndr+1e3,O=n.context.work((()=>Rl&&Rl()||Date.now()>o),r+(s?0:1e5));this.chunkBudget-=Date.now()-t,(O||this.chunkBudget<=0)&&(n.context.takeTree(),this.view.dispatch({effects:Xl.setState.of(new kl(n.context))})),this.chunkBudget>0&&(!O||s)&&this.scheduleWork(),this.checkAsyncSchedule(n.context)}checkAsyncSchedule(e){e.scheduleOn&&(this.workScheduled++,e.scheduleOn.then((()=>this.scheduleWork())).catch((e=>Jn(this.view.state,e))).then((()=>this.workScheduled--)),e.scheduleOn=null)}destroy(){this.working&&this.working()}isWorking(){return!!(this.working||this.workScheduled>0)}},{eventHandlers:{focus(){this.scheduleWork()}}}),Vl=N.define({combine:e=>e.length?e[0]:null,enables:e=>[Xl.state,_l,dO.contentAttributes.compute([e],(t=>{let i=t.facet(e);return i&&i.name?{"data-language":i.name}:{}}))]});class Zl{constructor(e,t=[]){this.language=e,this.support=t,this.extension=[e,t]}}class ql{constructor(e,t,i,r,n,o){this.name=e,this.alias=t,this.extensions=i,this.filename=r,this.loadFunc=n,this.support=o,this.loading=null}load(){return this.loading||(this.loading=this.loadFunc().then((e=>this.support=e),(e=>{throw this.loading=null,e})))}static of(e){let{load:t,support:i}=e;if(!t){if(!i)throw new RangeError("Must pass either 'load' or 'support' to LanguageDescription.of");t=()=>Promise.resolve(i)}return new ql(e.name,(e.alias||[]).concat(e.name).map((e=>e.toLowerCase())),e.extensions||[],e.filename,t,i)}static matchFilename(e,t){for(let i of e)if(i.filename&&i.filename.test(t))return i;let i=/\.([^.]+)$/.exec(t);if(i)for(let t of e)if(t.extensions.indexOf(i[1])>-1)return t;return null}static matchLanguageName(e,t,i=!0){t=t.toLowerCase();for(let i of e)if(i.alias.some((e=>e==t)))return i;if(i)for(let i of e)for(let e of i.alias){let r=t.indexOf(e);if(r>-1&&(e.length>2||!/\w/.test(t[r-1])&&!/\w/.test(t[r+e.length])))return i}return null}}const Al=N.define(),Wl=N.define({combine:e=>{if(!e.length)return" ";let t=e[0];if(!t||/\S/.test(t)||Array.from(t).some((e=>e!=t[0])))throw new Error("Invalid indent unit: "+JSON.stringify(e[0]));return t}});function Cl(e){let t=e.facet(Wl);return 9==t.charCodeAt(0)?e.tabSize*t.length:t.length}function Ul(e,t){let i="",r=e.tabSize,n=e.facet(Wl)[0];if("\t"==n){for(;t>=r;)i+="\t",t-=r;n=" "}for(let e=0;e=t?function(e,t,i){let r=t.resolveStack(i),n=r.node.enterUnfinishedNodesBefore(i);if(n!=r.node){let e=[];for(let t=n;t!=r.node;t=t.parent)e.push(t);for(let t=e.length-1;t>=0;t--)r={node:e[t],next:r}}return zl(r,e,i)}(e,i,t):null}class jl{constructor(e,t={}){this.state=e,this.options=t,this.unit=Cl(e)}lineAt(e,t=1){let i=this.state.doc.lineAt(e),{simulateBreak:r,simulateDoubleBreak:n}=this.options;return null!=r&&r>=i.from&&r<=i.to?n&&r==e?{text:"",from:e}:(t<0?r-1&&(n+=o-this.countColumn(i,i.search(/\S|$/))),n}countColumn(e,t=e.length){return Me(e,this.state.tabSize,t)}lineIndent(e,t=1){let{text:i,from:r}=this.lineAt(e,t),n=this.options.overrideIndentation;if(n){let e=n(r);if(e>-1)return e}return this.countColumn(i,i.search(/\S|$/))}get simulatedBreak(){return this.options.simulateBreak||null}}const El=new Fe;function zl(e,t,i){for(let r=e;r;r=r.next){let e=Gl(r.node);if(e)return e(Ml.create(t,i,r))}return 0}function Gl(e){let t=e.type.prop(El);if(t)return t;let i,r=e.firstChild;if(r&&(i=r.type.prop(Fe.closedBy))){let t=e.lastChild,r=t&&i.indexOf(t.name)>-1;return e=>Ll(e,!0,1,void 0,r&&!function(e){return e.pos==e.options.simulateBreak&&e.options.simulateDoubleBreak}(e)?t.from:void 0)}return null==e.parent?Dl:null}function Dl(){return 0}class Ml extends jl{constructor(e,t,i){super(e.state,e.options),this.base=e,this.pos=t,this.context=i}get node(){return this.context.node}static create(e,t,i){return new Ml(e,t,i)}get textAfter(){return this.textAfterPos(this.pos)}get baseIndent(){return this.baseIndentFor(this.node)}baseIndentFor(e){let t=this.state.doc.lineAt(e.from);for(;;){let i=e.resolve(t.from);for(;i.parent&&i.parent.from==i.from;)i=i.parent;if(Bl(i,e))break;t=this.state.doc.lineAt(i.from)}return this.lineIndent(t.from)}continue(){return zl(this.context.next,this.base,this.pos)}}function Bl(e,t){for(let i=t;i;i=i.parent)if(e==i)return!0;return!1}function Il({closing:e,align:t=!0,units:i=1}){return r=>Ll(r,t,i,e)}function Ll(e,t,i,r,n){let o=e.textAfter,s=o.match(/^\s*/)[0].length,O=r&&o.slice(s,s+r.length)==r||n==e.pos+s,a=t?function(e){let t=e.node,i=t.childAfter(t.from),r=t.lastChild;if(!i)return null;let n=e.options.simulateBreak,o=e.state.doc.lineAt(i.from),s=null==n||n<=o.from?o.to:Math.min(o.to,n);for(let e=i.to;;){let n=t.childAfter(e);if(!n||n==r)return null;if(!n.type.isSkipped)return n.from{let r=e&&e.test(i.textAfter);return i.baseIndent+(r?0:t*i.unit)}}function Fl(){return Te.transactionFilter.of((e=>{if(!e.docChanged||!e.isUserEvent("input.type")&&!e.isUserEvent("input.complete"))return e;let t=e.startState.languageDataAt("indentOnInput",e.startState.selection.main.head);if(!t.length)return e;let i=e.newDoc,{head:r}=e.newSelection.main,n=i.lineAt(r);if(r>n.from+200)return e;let o=i.sliceString(n.from,r);if(!t.some((e=>e.test(o))))return e;let{state:s}=e,O=-1,a=[];for(let{head:e}of s.selection.ranges){let t=s.doc.lineAt(e);if(t.from==O)continue;O=t.from;let i=Nl(s,t.from);if(null==i)continue;let r=/^\s*/.exec(t.text)[0],n=Ul(s,i);r!=n&&a.push({from:t.from,to:t.from+r.length,insert:n})}return a.length?[e,{changes:a,sequential:!0}]:e}))}const Hl=N.define(),Jl=new Fe;function eh(e){let t=e.firstChild,i=e.lastChild;return t&&t.toi)continue;if(n&&s.from=t&&r.to>i&&(n=r)}}return n}(e,t,i)}function rh(e,t){let i=t.mapPos(e.from,1),r=t.mapPos(e.to,-1);return i>=r?void 0:{from:i,to:r}}const nh=Qe.define({map:rh}),oh=Qe.define({map:rh});function sh(e){let t=[];for(let{head:i}of e.state.selection.ranges)t.some((e=>e.from<=i&&e.to>=i))||t.push(e.lineBlockAt(i));return t}const Oh=B.define({create:()=>Vn.none,update(e,t){e=e.map(t.changes);for(let i of t.effects)if(i.is(nh)&&!lh(e,i.value.from,i.value.to)){let{preparePlaceholder:r}=t.state.facet(dh),n=r?Vn.replace({widget:new mh(r(t.state,i.value))}):gh;e=e.update({add:[n.range(i.value.from,i.value.to)]})}else i.is(oh)&&(e=e.update({filter:(e,t)=>i.value.from!=e||i.value.to!=t,filterFrom:i.value.from,filterTo:i.value.to}));if(t.selection){let i=!1,{head:r}=t.selection.main;e.between(r,r,((e,t)=>{er&&(i=!0)})),i&&(e=e.update({filterFrom:r,filterTo:r,filter:(e,t)=>t<=r||e>=r}))}return e},provide:e=>dO.decorations.from(e),toJSON(e,t){let i=[];return e.between(0,t.doc.length,((e,t)=>{i.push(e,t)})),i},fromJSON(e){if(!Array.isArray(e)||e.length%2)throw new RangeError("Invalid JSON for fold state");let t=[];for(let i=0;i{(!n||n.from>e)&&(n={from:e,to:t})})),n}function lh(e,t,i){let r=!1;return e.between(t,t,((e,n)=>{e==t&&n==i&&(r=!0)})),r}function hh(e,t){return e.field(Oh,!1)?t:t.concat(Qe.appendConfig.of(ph()))}function ch(e,t,i=!0){let r=e.state.doc.lineAt(t.from).number,n=e.state.doc.lineAt(t.to).number;return dO.announce.of(`${e.state.phrase(i?"Folded lines":"Unfolded lines")} ${r} ${e.state.phrase("to")} ${n}.`)}const uh=[{key:"Ctrl-Shift-[",mac:"Cmd-Alt-[",run:e=>{for(let t of sh(e)){let i=ih(e.state,t.from,t.to);if(i)return e.dispatch({effects:hh(e.state,[nh.of(i),ch(e,i)])}),!0}return!1}},{key:"Ctrl-Shift-]",mac:"Cmd-Alt-]",run:e=>{if(!e.state.field(Oh,!1))return!1;let t=[];for(let i of sh(e)){let r=ah(e.state,i.from,i.to);r&&t.push(oh.of(r),ch(e,r,!1))}return t.length&&e.dispatch({effects:t}),t.length>0}},{key:"Ctrl-Alt-[",run:e=>{let{state:t}=e,i=[];for(let r=0;r{let t=e.state.field(Oh,!1);if(!t||!t.size)return!1;let i=[];return t.between(0,e.state.doc.length,((e,t)=>{i.push(oh.of({from:e,to:t}))})),e.dispatch({effects:i}),!0}}],fh={placeholderDOM:null,preparePlaceholder:null,placeholderText:"…"},dh=N.define({combine:e=>ke(e,fh)});function ph(e){let t=[Oh,$h];return e&&t.push(dh.of(e)),t}function Qh(e,t){let{state:i}=e,r=i.facet(dh),n=t=>{let i=e.lineBlockAt(e.posAtDOM(t.target)),r=ah(e.state,i.from,i.to);r&&e.dispatch({effects:oh.of(r)}),t.preventDefault()};if(r.placeholderDOM)return r.placeholderDOM(e,n,t);let o=document.createElement("span");return o.textContent=r.placeholderText,o.setAttribute("aria-label",i.phrase("folded code")),o.title=i.phrase("unfold"),o.className="cm-foldPlaceholder",o.onclick=n,o}const gh=Vn.replace({widget:new class extends Rn{toDOM(e){return Qh(e,null)}}});class mh extends Rn{constructor(e){super(),this.value=e}eq(e){return this.value==e.value}toDOM(e){return Qh(e,this.value)}}const $h=dO.baseTheme({".cm-foldPlaceholder":{backgroundColor:"#eee",border:"1px solid #ddd",color:"#888",borderRadius:".2em",margin:"0 1px",padding:"0 1px",cursor:"pointer"},".cm-foldGutter span":{padding:"0 1px",cursor:"pointer"}});class bh{constructor(e,t){let i;function r(e){let t=vr.newName();return(i||(i=Object.create(null)))["."+t]=e,t}this.specs=e;const n="string"==typeof t.all?t.all:t.all?r(t.all):void 0,o=t.scope;this.scope=o instanceof Xl?e=>e.prop(ml)==o.data:o?e=>e==o:void 0,this.style=Ha(e.map((e=>({tag:e.tag,class:e.class||r(Object.assign({},e,{tag:null}))}))),{all:n}).style,this.module=i?new vr(i):null,this.themeType=t.themeType}static define(e,t){return new bh(e,t||{})}}const Xh=N.define(),Sh=N.define({combine:e=>e.length?[e[0]]:null});function yh(e){let t=e.facet(Xh);return t.length?t:e.facet(Sh)}function vh(e,t){let i,r=[Ph];return e instanceof bh&&(e.module&&r.push(dO.styleModule.of(e.module)),i=e.themeType),(null==t?void 0:t.fallback)?r.push(Sh.of(e)):i?r.push(Xh.computeN([dO.darkTheme],(t=>t.facet(dO.darkTheme)==("dark"==i)?[e]:[]))):r.push(Xh.of(e)),r}const Ph=J.high(ro.fromClass(class{constructor(e){this.markCache=Object.create(null),this.tree=vl(e.state),this.decorations=this.buildDeco(e,yh(e.state))}update(e){let t=vl(e.state),i=yh(e.state),r=i!=yh(e.startState);t.length{i.add(e,t,this.markCache[r]||(this.markCache[r]=Vn.mark({class:r})))}),r,n);return i.finish()}},{decorations:e=>e.decorations})),xh=bh.define([{tag:Ql.meta,color:"#404740"},{tag:Ql.link,textDecoration:"underline"},{tag:Ql.heading,textDecoration:"underline",fontWeight:"bold"},{tag:Ql.emphasis,fontStyle:"italic"},{tag:Ql.strong,fontWeight:"bold"},{tag:Ql.strikethrough,textDecoration:"line-through"},{tag:Ql.keyword,color:"#708"},{tag:[Ql.atom,Ql.bool,Ql.url,Ql.contentSeparator,Ql.labelName],color:"#219"},{tag:[Ql.literal,Ql.inserted],color:"#164"},{tag:[Ql.string,Ql.deleted],color:"#a11"},{tag:[Ql.regexp,Ql.escape,Ql.special(Ql.string)],color:"#e40"},{tag:Ql.definition(Ql.variableName),color:"#00f"},{tag:Ql.local(Ql.variableName),color:"#30a"},{tag:[Ql.typeName,Ql.namespace],color:"#085"},{tag:Ql.className,color:"#167"},{tag:[Ql.special(Ql.variableName),Ql.macroName],color:"#256"},{tag:Ql.definition(Ql.propertyName),color:"#00c"},{tag:Ql.comment,color:"#940"},{tag:Ql.invalid,color:"#f00"}]),wh=(dO.baseTheme({"&.cm-focused .cm-matchingBracket":{backgroundColor:"#328c8252"},"&.cm-focused .cm-nonmatchingBracket":{backgroundColor:"#bb555544"}}),"()[]{}"),Th=N.define({combine:e=>ke(e,{afterCursor:!0,brackets:wh,maxScanDistance:1e4,renderMatch:Rh})}),kh=Vn.mark({class:"cm-matchingBracket"}),Yh=Vn.mark({class:"cm-nonmatchingBracket"});function Rh(e){let t=[],i=e.matched?kh:Yh;return t.push(i.range(e.start.from,e.start.to)),e.end&&t.push(i.range(e.end.from,e.end.to)),t}B.define({create:()=>Vn.none,update(e,t){if(!t.docChanged&&!t.selection)return e;let i=[],r=t.state.facet(Th);for(let e of t.state.selection.ranges){if(!e.empty)continue;let n=qh(t.state,e.head,-1,r)||e.head>0&&qh(t.state,e.head-1,1,r)||r.afterCursor&&(qh(t.state,e.head,1,r)||e.headdO.decorations.from(e)});const _h=new Fe;function Vh(e,t,i){let r=e.prop(t<0?Fe.openedBy:Fe.closedBy);if(r)return r;if(1==e.name.length){let r=i.indexOf(e.name);if(r>-1&&r%2==(t<0?1:0))return[i[r+t]]}return null}function Zh(e){let t=e.type.prop(_h);return t?t(e.node):e}function qh(e,t,i,r={}){let n=r.maxScanDistance||1e4,o=r.brackets||wh,s=vl(e),O=s.resolveInner(t,i);for(let r=O;r;r=r.parent){let n=Vh(r.type,i,o);if(n&&r.from0?t>=s.from&&ts.from&&t<=s.to))return Ah(e,t,i,r,s,n,o)}}return function(e,t,i,r,n,o,s){let O=i<0?e.sliceDoc(t-1,t):e.sliceDoc(t,t+1),a=s.indexOf(O);if(a<0||a%2==0!=i>0)return null;let l={from:i<0?t-1:t,to:i>0?t+1:t},h=e.doc.iterRange(t,i>0?e.doc.length:0),c=0;for(let e=0;!h.next().done&&e<=o;){let o=h.value;i<0&&(e+=o.length);let O=t+e*i;for(let e=i>0?0:o.length-1,t=i>0?o.length:-1;e!=t;e+=i){let t=s.indexOf(o[e]);if(!(t<0||r.resolveInner(O+e,1).type!=n))if(t%2==0==i>0)c++;else{if(1==c)return{start:l,end:{from:O+e,to:O+e+1},matched:t>>1==a>>1};c--}}i>0&&(e+=o.length)}return h.done?{start:l,matched:!1}:null}(e,t,i,s,O.type,n,o)}function Ah(e,t,i,r,n,o,s){let O=r.parent,a={from:n.from,to:n.to},l=0,h=null==O?void 0:O.cursor();if(h&&(i<0?h.childBefore(r.from):h.childAfter(r.to)))do{if(i<0?h.to<=r.from:h.from>=r.to){if(0==l&&o.indexOf(h.type.name)>-1&&h.from-1||(Uh.push(e),console.warn(t))}function Eh(e,t){let i=null;for(let r of t.split(".")){let t=e[r]||Ql[r];t?"function"==typeof t?i?i=t(i):jh(r,`Modifier ${r} used at start of tag`):i?jh(r,`Tag ${r} used as modifier`):i=t:jh(r,`Unknown highlighting tag ${r}`)}if(!i)return 0;let r=t.replace(/ /g,"_"),n=et.define({id:Ch.length,name:r,props:[La({[r]:i})]});return Ch.push(n),n.id}class zh{constructor(e,t,i){this.state=e,this.pos=t,this.explicit=i,this.abortListeners=[]}tokenBefore(e){let t=vl(this.state).resolveInner(this.pos,-1);for(;t&&e.indexOf(t.name)<0;)t=t.parent;return t?{from:t.from,to:this.pos,text:this.state.sliceDoc(t.from,this.pos),type:t.type}:null}matchBefore(e){let t=this.state.doc.lineAt(this.pos),i=Math.max(t.from,this.pos-250),r=t.text.slice(i-t.from,this.pos-t.from),n=r.search(Lh(e,!1));return n<0?null:{from:i+n,to:this.pos,text:r.slice(n)}}get aborted(){return null==this.abortListeners}addEventListener(e,t){"abort"==e&&this.abortListeners&&this.abortListeners.push(t)}}function Gh(e){let t=Object.keys(e).join(""),i=/\w/.test(t);return i&&(t=t.replace(/\w/g,"")),`[${i?"\\w":""}${t.replace(/[^\w\s]/g,"\\$&")}]`}function Dh(e){let t=e.map((e=>"string"==typeof e?{label:e}:e)),[i,r]=t.every((e=>/^\w+$/.test(e.label)))?[/\w*$/,/\w+$/]:function(e){let t=Object.create(null),i=Object.create(null);for(let{label:r}of e){t[r[0]]=!0;for(let e=1;e{let n=e.matchBefore(r);return n||e.explicit?{from:n?n.from:e.pos,options:t,validFor:i}:null}}function Mh(e,t){return i=>{for(let t=vl(i.state).resolveInner(i.pos,-1);t;t=t.parent){if(e.indexOf(t.name)>-1)return null;if(t.type.isTop)break}return t(i)}}class Bh{constructor(e,t,i,r){this.completion=e,this.source=t,this.match=i,this.score=r}}function Ih(e){return e.selection.main.from}function Lh(e,t){var i;let{source:r}=e,n=t&&"^"!=r[0],o="$"!=r[r.length-1];return n||o?new RegExp(`${n?"^":""}(?:${r})${o?"$":""}`,null!==(i=e.flags)&&void 0!==i?i:e.ignoreCase?"i":""):e}const Kh=fe.define();function Fh(e,t,i,r){let{main:n}=e.selection,o=i-n.from,s=r-n.from;return Object.assign(Object.assign({},e.changeByRange((O=>O!=n&&i!=r&&e.sliceDoc(O.from+o,O.from+s)!=e.sliceDoc(i,r)?{range:O}:{changes:{from:O.from+o,to:r==n.from?O.to:O.from+s,insert:t},range:W.cursor(O.from+o+t.length)}))),{scrollIntoView:!0,userEvent:"input.complete"})}const Hh=new WeakMap;function Jh(e){if(!Array.isArray(e))return e;let t=Hh.get(e);return t||Hh.set(e,t=Dh(e)),t}const ec=Qe.define(),tc=Qe.define();class ic{constructor(e){this.pattern=e,this.chars=[],this.folded=[],this.any=[],this.precise=[],this.byWord=[],this.score=0,this.matched=[];for(let t=0;t=48&&a<=57||a>=97&&a<=122?2:a>=65&&a<=90?1:0:(m=y(a))!=m.toLowerCase()?1:m!=m.toUpperCase()?2:0;(!r||1==$&&p||0==g&&0!=$)&&(t[h]==a||i[h]==a&&(c=!0)?o[h++]=r:o.length&&(Q=!1)),g=$,r+=v(a)}return h==O&&0==o[0]&&Q?this.result((c?-200:0)-100,o,e):u==O&&0==f?this.ret(-200-e.length+(d==e.length?0:-100),[0,d]):s>-1?this.ret(-700-e.length,[s,s+this.pattern.length]):u==O?this.ret(-900-e.length,[f,d]):h==O?this.result((c?-200:0)-100-700+(Q?0:-1100),o,e):2!=t.length&&this.result((r[0]?-700:0)-200-1100,r,e)}result(e,t,i){let r=[],n=0;for(let e of t){let t=e+(this.astral?v(S(i,e)):1);n&&r[n-1]==e?r[n-1]=t:(r[n++]=e,r[n++]=t)}return this.ret(e-i.length,r)}}const rc=N.define({combine:e=>ke(e,{activateOnTyping:!0,selectOnOpen:!0,override:null,closeOnBlur:!0,maxRenderedOptions:100,defaultKeymap:!0,tooltipClass:()=>"",optionClass:()=>"",aboveCursor:!1,icons:!0,addToOptions:[],positionInfo:oc,compareCompletions:(e,t)=>e.label.localeCompare(t.label),interactionDelay:75,updateSyncTime:100},{defaultKeymap:(e,t)=>e&&t,closeOnBlur:(e,t)=>e&&t,icons:(e,t)=>e&&t,tooltipClass:(e,t)=>i=>nc(e(i),t(i)),optionClass:(e,t)=>i=>nc(e(i),t(i)),addToOptions:(e,t)=>e.concat(t)})});function nc(e,t){return e?t?e+" "+t:e:t}function oc(e,t,i,r,n,o){let s,O,a=e.textDirection==go.RTL,l=a,h=!1,c="top",u=t.left-n.left,f=n.right-t.right,d=r.right-r.left,p=r.bottom-r.top;if(l&&u=p||e>t.top?s=i.bottom-t.top:(c="bottom",s=t.bottom-i.top)}return{style:`${c}: ${s/((t.bottom-t.top)/o.offsetHeight)}px; max-width: ${O/((t.right-t.left)/o.offsetWidth)}px`,class:"cm-completionInfo-"+(h?a?"left-narrow":"right-narrow":l?"left":"right")}}function sc(e,t,i){if(e<=i)return{from:0,to:e};if(t<0&&(t=0),t<=e>>1){let e=Math.floor(t/i);return{from:e*i,to:(e+1)*i}}let r=Math.floor((e-t)/i);return{from:e-(r+1)*i,to:e-r*i}}class Oc{constructor(e,t,i){this.view=e,this.stateField=t,this.applyCompletion=i,this.info=null,this.infoDestroy=null,this.placeInfoReq={read:()=>this.measureInfo(),write:e=>this.placeInfo(e),key:this},this.space=null,this.currentClass="";let r=e.state.field(t),{options:n,selected:o}=r.open,s=e.state.facet(rc);this.optionContent=function(e){let t=e.addToOptions.slice();return e.icons&&t.push({render(e){let t=document.createElement("div");return t.classList.add("cm-completionIcon"),e.type&&t.classList.add(...e.type.split(/\s+/g).map((e=>"cm-completionIcon-"+e))),t.setAttribute("aria-hidden","true"),t},position:20}),t.push({render(e,t,i){let r=document.createElement("span");r.className="cm-completionLabel";let n=e.displayLabel||e.label,o=0;for(let e=0;eo&&r.appendChild(document.createTextNode(n.slice(o,t)));let O=r.appendChild(document.createElement("span"));O.appendChild(document.createTextNode(n.slice(t,s))),O.className="cm-completionMatchedText",o=s}return oe.position-t.position)).map((e=>e.render))}(s),this.optionClass=s.optionClass,this.tooltipClass=s.tooltipClass,this.range=sc(n.length,o,s.maxRenderedOptions),this.dom=document.createElement("div"),this.dom.className="cm-tooltip-autocomplete",this.updateTooltipClass(e.state),this.dom.addEventListener("mousedown",(i=>{let{options:r}=e.state.field(t).open;for(let t,n=i.target;n&&n!=this.dom;n=n.parentNode)if("LI"==n.nodeName&&(t=/-(\d+)$/.exec(n.id))&&+t[1]{let i=e.state.field(this.stateField,!1);i&&i.tooltip&&e.state.facet(rc).closeOnBlur&&t.relatedTarget!=e.contentDOM&&e.dispatch({effects:tc.of(null)})})),this.showOptions(n,r.id)}mount(){this.updateSel()}showOptions(e,t){this.list&&this.list.remove(),this.list=this.dom.appendChild(this.createListBox(e,t,this.range)),this.list.addEventListener("scroll",(()=>{this.info&&this.view.requestMeasure(this.placeInfoReq)}))}update(e){var t;let i=e.state.field(this.stateField),r=e.startState.field(this.stateField);if(this.updateTooltipClass(e.state),i!=r){let{options:n,selected:o,disabled:s}=i.open;r.open&&r.open.options==n||(this.range=sc(n.length,o,e.state.facet(rc).maxRenderedOptions),this.showOptions(n,i.id)),this.updateSel(),s!=(null===(t=r.open)||void 0===t?void 0:t.disabled)&&this.dom.classList.toggle("cm-tooltip-autocomplete-disabled",!!s)}}updateTooltipClass(e){let t=this.tooltipClass(e);if(t!=this.currentClass){for(let e of this.currentClass.split(" "))e&&this.dom.classList.remove(e);for(let e of t.split(" "))e&&this.dom.classList.add(e);this.currentClass=t}}positioned(e){this.space=e,this.info&&this.view.requestMeasure(this.placeInfoReq)}updateSel(){let e=this.view.state.field(this.stateField),t=e.open;if((t.selected>-1&&t.selected=this.range.to)&&(this.range=sc(t.options.length,t.selected,this.view.state.facet(rc).maxRenderedOptions),this.showOptions(t.options,e.id)),this.updateSelectedOption(t.selected)){this.destroyInfo();let{completion:i}=t.options[t.selected],{info:r}=i;if(!r)return;let n="string"==typeof r?document.createTextNode(r):r(i);if(!n)return;"then"in n?n.then((t=>{t&&this.view.state.field(this.stateField,!1)==e&&this.addInfoPane(t,i)})).catch((e=>Jn(this.view.state,e,"completion info"))):this.addInfoPane(n,i)}}addInfoPane(e,t){this.destroyInfo();let i=this.info=document.createElement("div");if(i.className="cm-tooltip cm-completionInfo",null!=e.nodeType)i.appendChild(e),this.infoDestroy=null;else{let{dom:t,destroy:r}=e;i.appendChild(t),this.infoDestroy=r||null}this.dom.appendChild(i),this.view.requestMeasure(this.placeInfoReq)}updateSelectedOption(e){let t=null;for(let i=this.list.firstChild,r=this.range.from;i;i=i.nextSibling,r++)"LI"==i.nodeName&&i.id?r==e?i.hasAttribute("aria-selected")||(i.setAttribute("aria-selected","true"),t=i):i.hasAttribute("aria-selected")&&i.removeAttribute("aria-selected"):r--;return t&&function(e,t){let i=e.getBoundingClientRect(),r=t.getBoundingClientRect(),n=i.height/e.offsetHeight;r.topi.bottom&&(e.scrollTop+=(r.bottom-i.bottom)/n)}(this.list,t),t}measureInfo(){let e=this.dom.querySelector("[aria-selected]");if(!e||!this.info)return null;let t=this.dom.getBoundingClientRect(),i=this.info.getBoundingClientRect(),r=e.getBoundingClientRect(),n=this.space;if(!n){let e=this.dom.ownerDocument.defaultView||window;n={left:0,top:0,right:e.innerWidth,bottom:e.innerHeight}}return r.top>Math.min(n.bottom,t.bottom)-10||r.bottomi.from||0==i.from)&&(n=e,"string"!=typeof a&&a.header?r.appendChild(a.header(a)):r.appendChild(document.createElement("completion-section")).textContent=e)}const l=r.appendChild(document.createElement("li"));l.id=t+"-"+o,l.setAttribute("role","option");let h=this.optionClass(s);h&&(l.className=h);for(let e of this.optionContent){let t=e(s,this.view.state,O);t&&l.appendChild(t)}}return i.from&&r.classList.add("cm-completionListIncompleteTop"),i.to=this.options.length?this:new lc(this.options,uc(t,e),this.tooltip,this.timestamp,e,this.disabled)}static build(e,t,i,r,n){let o=function(e,t){let i=[],r=null,n=e=>{i.push(e);let{section:t}=e.completion;if(t){r||(r=[]);let e="string"==typeof t?t:t.name;r.some((t=>t.name==e))||r.push("string"==typeof t?{name:e}:t)}};for(let r of e)if(r.hasResult()){let e=r.result.getMatch;if(!1===r.result.filter)for(let t of r.result.options)n(new Bh(t,r.source,e?e(t):[],1e9-i.length));else{let i=new ic(t.sliceDoc(r.from,r.to));for(let t of r.result.options)if(i.match(t.label)){let o=t.displayLabel?e?e(t,i.matched):[]:i.matched;n(new Bh(t,r.source,o,i.score+(t.boost||0)))}}}if(r){let e=Object.create(null),t=0,n=(e,t)=>{var i,r;return(null!==(i=e.rank)&&void 0!==i?i:1e9)-(null!==(r=t.rank)&&void 0!==r?r:1e9)||(e.namet.score-e.score||O(e.completion,t.completion)))){let t=e.completion;!s||s.label!=t.label||s.detail!=t.detail||null!=s.type&&null!=t.type&&s.type!=t.type||s.apply!=t.apply||s.boost!=t.boost?o.push(e):ac(e.completion)>ac(s)&&(o[o.length-1]=e),s=e.completion}return o}(e,t);if(!o.length)return r&&e.some((e=>1==e.state))?new lc(r.options,r.attrs,r.tooltip,r.timestamp,r.selected,!0):null;let s=t.facet(rc).selectOnOpen?0:-1;if(r&&r.selected!=s&&-1!=r.selected){let e=r.options[r.selected].completion;for(let t=0;tt.hasResult()?Math.min(e,t.from):e),1e8),create:Xc,above:n.aboveCursor},r?r.timestamp:Date.now(),s,!1)}map(e){return new lc(this.options,this.attrs,Object.assign(Object.assign({},this.tooltip),{pos:e.mapPos(this.tooltip.pos)}),this.timestamp,this.selected,this.disabled)}}class hc{constructor(e,t,i){this.active=e,this.id=t,this.open=i}static start(){return new hc(fc,"cm-ac-"+Math.floor(2e6*Math.random()).toString(36),null)}update(e){let{state:t}=e,i=t.facet(rc),r=(i.override||t.languageDataAt("autocomplete",Ih(t)).map(Jh)).map((t=>(this.active.find((e=>e.source==t))||new pc(t,this.active.some((e=>0!=e.state))?1:0)).update(e,i)));r.length==this.active.length&&r.every(((e,t)=>e==this.active[t]))&&(r=this.active);let n=this.open;n&&e.docChanged&&(n=n.map(e.changes)),e.selection||r.some((t=>t.hasResult()&&e.changes.touchesRange(t.from,t.to)))||!function(e,t){if(e==t)return!0;for(let i=0,r=0;;){for(;i1==e.state))&&(n=null),!n&&r.every((e=>1!=e.state))&&r.some((e=>e.hasResult()))&&(r=r.map((e=>e.hasResult()?new pc(e.source,0):e)));for(let t of e.effects)t.is(mc)&&(n=n&&n.setSelected(t.value,this.id));return r==this.active&&n==this.open?this:new hc(r,this.id,n)}get tooltip(){return this.open?this.open.tooltip:null}get attrs(){return this.open?this.open.attrs:cc}}const cc={"aria-autocomplete":"list"};function uc(e,t){let i={"aria-autocomplete":"list","aria-haspopup":"listbox","aria-controls":e};return t>-1&&(i["aria-activedescendant"]=e+"-"+t),i}const fc=[];function dc(e){return e.isUserEvent("input.type")?"input":e.isUserEvent("delete.backward")?"delete":null}class pc{constructor(e,t,i=-1){this.source=e,this.state=t,this.explicitPos=i}hasResult(){return!1}update(e,t){let i=dc(e),r=this;i?r=r.handleUserEvent(e,i,t):e.docChanged?r=r.handleChange(e):e.selection&&0!=r.state&&(r=new pc(r.source,0));for(let t of e.effects)if(t.is(ec))r=new pc(r.source,1,t.value?Ih(e.state):-1);else if(t.is(tc))r=new pc(r.source,0);else if(t.is(gc))for(let e of t.value)e.source==r.source&&(r=e);return r}handleUserEvent(e,t,i){return"delete"!=t&&i.activateOnTyping?new pc(this.source,1):this.map(e.changes)}handleChange(e){return e.changes.touchesRange(Ih(e.startState))?new pc(this.source,0):this.map(e.changes)}map(e){return e.empty||this.explicitPos<0?this:new pc(this.source,this.state,e.mapPos(this.explicitPos))}}class Qc extends pc{constructor(e,t,i,r,n){super(e,2,t),this.result=i,this.from=r,this.to=n}hasResult(){return!0}handleUserEvent(e,t,i){var r;let n=e.changes.mapPos(this.from),o=e.changes.mapPos(this.to,1),s=Ih(e.state);if((this.explicitPos<0?s<=n:so||"delete"==t&&Ih(e.startState)==this.from)return new pc(this.source,"input"==t&&i.activateOnTyping?1:0);let O,a=this.explicitPos<0?-1:e.changes.mapPos(this.explicitPos);return function(e,t,i,r){if(!e)return!1;let n=t.sliceDoc(i,r);return"function"==typeof e?e(n,i,r,t):Lh(e,!0).test(n)}(this.result.validFor,e.state,n,o)?new Qc(this.source,a,this.result,n,o):this.result.update&&(O=this.result.update(this.result,n,o,new zh(e.state,s,a>=0)))?new Qc(this.source,a,O,O.from,null!==(r=O.to)&&void 0!==r?r:Ih(e.state)):new pc(this.source,1,a)}handleChange(e){return e.changes.touchesRange(this.from,this.to)?new pc(this.source,0):this.map(e.changes)}map(e){return e.empty?this:new Qc(this.source,this.explicitPos<0?-1:e.mapPos(this.explicitPos),this.result,e.mapPos(this.from),e.mapPos(this.to,1))}}const gc=Qe.define({map:(e,t)=>e.map((e=>e.map(t)))}),mc=Qe.define(),$c=B.define({create:()=>hc.start(),update:(e,t)=>e.update(t),provide:e=>[fa.from(e,(e=>e.tooltip)),dO.contentAttributes.from(e,(e=>e.attrs))]});function bc(e,t){const i=t.completion.apply||t.completion.label;let r=e.state.field($c).active.find((e=>e.source==t.source));return r instanceof Qc&&("string"==typeof i?e.dispatch(Object.assign(Object.assign({},Fh(e.state,i,r.from,r.to)),{annotations:Kh.of(t.completion)})):i(e,t.completion,r.from,r.to),!0)}const Xc=function(e,t){return i=>new Oc(i,e,t)}($c,bc);function Sc(e,t="option"){return i=>{let r=i.state.field($c,!1);if(!r||!r.open||r.open.disabled||Date.now()-r.open.timestamp-1?r.open.selected+o*(e?1:-1):e?0:s-1;return O<0?O="page"==t?0:s-1:O>=s&&(O="page"==t?s-1:0),i.dispatch({effects:mc.of(O)}),!0}}const yc=e=>{let t=e.state.field($c,!1);return!(e.state.readOnly||!t||!t.open||t.open.selected<0||t.open.disabled||Date.now()-t.open.timestamp!!e.state.field($c,!1)&&(e.dispatch({effects:ec.of(!0)}),!0),Pc=e=>{let t=e.state.field($c,!1);return!(!t||!t.active.some((e=>0!=e.state))||(e.dispatch({effects:tc.of(null)}),0))};class xc{constructor(e,t){this.active=e,this.context=t,this.time=Date.now(),this.updates=[],this.done=void 0}}const wc=ro.fromClass(class{constructor(e){this.view=e,this.debounceUpdate=-1,this.running=[],this.debounceAccept=-1,this.composing=0;for(let t of e.state.field($c).active)1==t.state&&this.startQuery(t)}update(e){let t=e.state.field($c);if(!e.selectionSet&&!e.docChanged&&e.startState.field($c)==t)return;let i=e.transactions.some((e=>(e.selection||e.docChanged)&&!dc(e)));for(let t=0;t50&&Date.now()-r.time>1e3){for(let e of r.context.abortListeners)try{e()}catch(e){Jn(this.view.state,e)}r.context.abortListeners=null,this.running.splice(t--,1)}else r.updates.push(...e.transactions)}if(this.debounceUpdate>-1&&clearTimeout(this.debounceUpdate),this.debounceUpdate=t.active.some((e=>1==e.state&&!this.running.some((t=>t.active.source==e.source))))?setTimeout((()=>this.startUpdate()),50):-1,0!=this.composing)for(let t of e.transactions)"input"==dc(t)?this.composing=2:2==this.composing&&t.selection&&(this.composing=3)}startUpdate(){this.debounceUpdate=-1;let{state:e}=this.view,t=e.field($c);for(let e of t.active)1!=e.state||this.running.some((t=>t.active.source==e.source))||this.startQuery(e)}startQuery(e){let{state:t}=this.view,i=Ih(t),r=new zh(t,i,e.explicitPos==i),n=new xc(e,r);this.running.push(n),Promise.resolve(e.source(r)).then((e=>{n.context.aborted||(n.done=e||null,this.scheduleAccept())}),(e=>{this.view.dispatch({effects:tc.of(null)}),Jn(this.view.state,e)}))}scheduleAccept(){this.running.every((e=>void 0!==e.done))?this.accept():this.debounceAccept<0&&(this.debounceAccept=setTimeout((()=>this.accept()),this.view.state.facet(rc).updateSyncTime))}accept(){var e;this.debounceAccept>-1&&clearTimeout(this.debounceAccept),this.debounceAccept=-1;let t=[],i=this.view.state.facet(rc);for(let r=0;re.source==n.active.source));if(o&&1==o.state)if(null==n.done){let e=new pc(n.active.source,0);for(let t of n.updates)e=e.update(t,i);1!=e.state&&t.push(e)}else this.startQuery(o)}t.length&&this.view.dispatch({effects:gc.of(t)})}},{eventHandlers:{blur(e){let t=this.view.state.field($c,!1);if(t&&t.tooltip&&this.view.state.facet(rc).closeOnBlur){let i=t.open&&$a(this.view,t.open.tooltip);i&&i.dom.contains(e.relatedTarget)||this.view.dispatch({effects:tc.of(null)})}},compositionstart(){this.composing=1},compositionend(){3==this.composing&&setTimeout((()=>this.view.dispatch({effects:ec.of(!1)})),20),this.composing=0}}}),Tc=dO.baseTheme({".cm-tooltip.cm-tooltip-autocomplete":{"& > ul":{fontFamily:"monospace",whiteSpace:"nowrap",overflow:"hidden auto",maxWidth_fallback:"700px",maxWidth:"min(700px, 95vw)",minWidth:"250px",maxHeight:"10em",height:"100%",listStyle:"none",margin:0,padding:0,"& > li, & > completion-section":{padding:"1px 3px",lineHeight:1.2},"& > li":{overflowX:"hidden",textOverflow:"ellipsis",cursor:"pointer"},"& > completion-section":{display:"list-item",borderBottom:"1px solid silver",paddingLeft:"0.5em",opacity:.7}}},"&light .cm-tooltip-autocomplete ul li[aria-selected]":{background:"#17c",color:"white"},"&light .cm-tooltip-autocomplete-disabled ul li[aria-selected]":{background:"#777"},"&dark .cm-tooltip-autocomplete ul li[aria-selected]":{background:"#347",color:"white"},"&dark .cm-tooltip-autocomplete-disabled ul li[aria-selected]":{background:"#444"},".cm-completionListIncompleteTop:before, .cm-completionListIncompleteBottom:after":{content:'"···"',opacity:.5,display:"block",textAlign:"center"},".cm-tooltip.cm-completionInfo":{position:"absolute",padding:"3px 9px",width:"max-content",maxWidth:"400px",boxSizing:"border-box"},".cm-completionInfo.cm-completionInfo-left":{right:"100%"},".cm-completionInfo.cm-completionInfo-right":{left:"100%"},".cm-completionInfo.cm-completionInfo-left-narrow":{right:"30px"},".cm-completionInfo.cm-completionInfo-right-narrow":{left:"30px"},"&light .cm-snippetField":{backgroundColor:"#00000022"},"&dark .cm-snippetField":{backgroundColor:"#ffffff22"},".cm-snippetFieldPosition":{verticalAlign:"text-top",width:0,height:"1.15em",display:"inline-block",margin:"0 -0.7px -.7em",borderLeft:"1.4px dotted #888"},".cm-completionMatchedText":{textDecoration:"underline"},".cm-completionDetail":{marginLeft:"0.5em",fontStyle:"italic"},".cm-completionIcon":{fontSize:"90%",width:".8em",display:"inline-block",textAlign:"center",paddingRight:".6em",opacity:"0.6",boxSizing:"content-box"},".cm-completionIcon-function, .cm-completionIcon-method":{"&:after":{content:"'ƒ'"}},".cm-completionIcon-class":{"&:after":{content:"'○'"}},".cm-completionIcon-interface":{"&:after":{content:"'◌'"}},".cm-completionIcon-variable":{"&:after":{content:"'𝑥'"}},".cm-completionIcon-constant":{"&:after":{content:"'𝐶'"}},".cm-completionIcon-type":{"&:after":{content:"'𝑡'"}},".cm-completionIcon-enum":{"&:after":{content:"'∪'"}},".cm-completionIcon-property":{"&:after":{content:"'□'"}},".cm-completionIcon-keyword":{"&:after":{content:"'🔑︎'"}},".cm-completionIcon-namespace":{"&:after":{content:"'▢'"}},".cm-completionIcon-text":{"&:after":{content:"'abc'",fontSize:"50%",verticalAlign:"middle"}}});class kc{constructor(e,t,i,r){this.field=e,this.line=t,this.from=i,this.to=r}}class Yc{constructor(e,t,i){this.field=e,this.from=t,this.to=i}map(e){let t=e.mapPos(this.from,-1,w.TrackDel),i=e.mapPos(this.to,1,w.TrackDel);return null==t||null==i?null:new Yc(this.field,t,i)}}class Rc{constructor(e,t){this.lines=e,this.fieldPositions=t}instantiate(e,t){let i=[],r=[t],n=e.doc.lineAt(t),o=/^\s*/.exec(n.text)[0];for(let n of this.lines){if(i.length){let i=o,s=/^\t*/.exec(n)[0].length;for(let t=0;tnew Yc(e.field,r[e.line]+e.from,r[e.line]+e.to)));return{text:i,ranges:s}}static parse(e){let t,i=[],r=[],n=[];for(let o of e.split(/\r\n?|\n/)){for(;t=/[#$]\{(?:(\d+)(?::([^}]*))?|([^}]*))\}/.exec(o);){let e=t[1]?+t[1]:null,s=t[2]||t[3]||"",O=-1;for(let t=0;t=O&&e.field++}n.push(new kc(O,r.length,t.index,t.index+s.length)),o=o.slice(0,t.index)+s+o.slice(t.index+t[0].length)}for(let e;e=/\\([{}])/.exec(o);){o=o.slice(0,e.index)+e[1]+o.slice(e.index+e[0].length);for(let t of n)t.line==r.length&&t.from>e.index&&(t.from--,t.to--)}r.push(o)}return new Rc(r,n)}}let _c=Vn.widget({widget:new class extends Rn{toDOM(){let e=document.createElement("span");return e.className="cm-snippetFieldPosition",e}ignoreEvent(){return!1}}}),Vc=Vn.mark({class:"cm-snippetField"});class Zc{constructor(e,t){this.ranges=e,this.active=t,this.deco=Vn.set(e.map((e=>(e.from==e.to?_c:Vc).range(e.from,e.to))))}map(e){let t=[];for(let i of this.ranges){let r=i.map(e);if(!r)return null;t.push(r)}return new Zc(t,this.active)}selectionInsideField(e){return e.ranges.every((e=>this.ranges.some((t=>t.field==this.active&&t.from<=e.from&&t.to>=e.to))))}}const qc=Qe.define({map:(e,t)=>e&&e.map(t)}),Ac=Qe.define(),Wc=B.define({create:()=>null,update(e,t){for(let i of t.effects){if(i.is(qc))return i.value;if(i.is(Ac)&&e)return new Zc(e.ranges,i.value)}return e&&t.docChanged&&(e=e.map(t.changes)),e&&t.selection&&!e.selectionInsideField(t.selection)&&(e=null),e},provide:e=>dO.decorations.from(e,(e=>e?e.deco:Vn.none))});function Cc(e,t){return W.create(e.filter((e=>e.field==t)).map((e=>W.range(e.from,e.to))))}function Uc(e){let t=Rc.parse(e);return(e,i,r,n)=>{let{text:s,ranges:O}=t.instantiate(e.state,r),a={changes:{from:r,to:n,insert:o.of(s)},scrollIntoView:!0,annotations:i?Kh.of(i):void 0};if(O.length&&(a.selection=Cc(O,0)),O.length>1){let t=new Zc(O,0),i=a.effects=[qc.of(t)];void 0===e.state.field(Wc,!1)&&i.push(Qe.appendConfig.of([Wc,Mc,Ic,Tc]))}e.dispatch(e.state.update(a))}}function Nc(e){return({state:t,dispatch:i})=>{let r=t.field(Wc,!1);if(!r||e<0&&0==r.active)return!1;let n=r.active+e,o=e>0&&!r.ranges.some((t=>t.field==n+e));return i(t.update({selection:Cc(r.ranges,n),effects:qc.of(o?null:new Zc(r.ranges,n)),scrollIntoView:!0})),!0}}const jc=({state:e,dispatch:t})=>!!e.field(Wc,!1)&&(t(e.update({effects:qc.of(null)})),!0),Ec=Nc(1),zc=Nc(-1);const Gc=[{key:"Tab",run:Ec,shift:zc},{key:"Escape",run:jc}],Dc=N.define({combine:e=>e.length?e[0]:Gc}),Mc=J.highest(SO.compute([Dc],(e=>e.facet(Dc))));function Bc(e,t){return Object.assign(Object.assign({},t),{apply:Uc(e)})}const Ic=dO.domEventHandlers({mousedown(e,t){let i,r=t.state.field(Wc,!1);if(!r||null==(i=t.posAtCoords({x:e.clientX,y:e.clientY})))return!1;let n=r.ranges.find((e=>e.from<=i&&e.to>=i));return!(!n||n.field==r.active||(t.dispatch({selection:Cc(r.ranges,n.field),effects:qc.of(r.ranges.some((e=>e.field>n.field))?new Zc(r.ranges,n.field):null),scrollIntoView:!0}),0))}});function Lc(e,t){return new RegExp(t(e.source),e.unicode?"u":"")}const Kc=Object.create(null);function Fc(e){return Kc[e]||(Kc[e]=new WeakMap)}function Hc(e,t,i,r,n){for(let o=e.iterLines(),s=0;!o.next().done;){let e,{value:O}=o;for(t.lastIndex=0;e=t.exec(O);)if(!r[e[0]]&&s+e.index!=n&&(i.push({type:"text",label:e[0]}),r[e[0]]=!0,i.length>=2e3))return;s+=O.length+1}}function Jc(e,t,i,r,n){let o=e.length>=1e3,s=o&&t.get(e);if(s)return s;let O=[],a=Object.create(null);if(e.children){let o=0;for(let s of e.children){if(s.length>=1e3)for(let e of Jc(s,t,i,r-o,n-o))a[e.label]||(a[e.label]=!0,O.push(e));else Hc(s,i,O,a,n-o);o+=s.length+1}}else Hc(e,i,O,a,n);return o&&O.length<2e3&&t.set(e,O),O}const eu={brackets:["(","[","{","'",'"'],before:")]}:;>",stringPrefixes:[]},tu=Qe.define({map(e,t){let i=t.mapPos(e,-1,w.TrackAfter);return null==i?void 0:i}}),iu=new class extends Ye{};iu.startSide=1,iu.endSide=-1;const ru=B.define({create:()=>Ze.empty,update(e,t){if(t.selection){let i=t.state.doc.lineAt(t.selection.main.head).from,r=t.startState.doc.lineAt(t.startState.selection.main.head).from;i!=t.changes.mapPos(r,-1)&&(e=Ze.empty)}e=e.map(t.changes);for(let i of t.effects)i.is(tu)&&(e=e.update({add:[iu.range(i.value,i.value+1)]}));return e}});function nu(){return[lu,ru]}const ou="()[]{}<>";function su(e){for(let t=0;t{if((au?e.composing:e.compositionStarted)||e.state.readOnly)return!1;let n=e.state.selection.main;if(r.length>2||2==r.length&&1==v(S(r,0))||t!=n.from||i!=n.to)return!1;let o=uu(e.state,r);return!!o&&(e.dispatch(o),!0)})),hu=({state:e,dispatch:t})=>{if(e.readOnly)return!1;let i=Ou(e,e.selection.main.head).brackets||eu.brackets,r=null,n=e.changeByRange((t=>{if(t.empty){let r=function(e,t){let i=e.sliceString(t-2,t);return v(S(i,0))==i.length?i:i.slice(1)}(e.doc,t.head);for(let n of i)if(n==r&&du(e.doc,t.head)==su(S(n,0)))return{changes:{from:t.head-n.length,to:t.head+n.length},range:W.cursor(t.head-n.length)}}return{range:r=t}}));return r||t(e.update(n,{scrollIntoView:!0,userEvent:"delete.backward"})),!r},cu=[{key:"Backspace",run:hu}];function uu(e,t){let i=Ou(e,e.selection.main.head),r=i.brackets||eu.brackets;for(let n of r){let o=su(S(n,0));if(t==n)return o==n?gu(e,n,r.indexOf(n+n+n)>-1,i):pu(e,n,o,i.before||eu.before);if(t==o&&fu(e,e.selection.main.from))return Qu(e,n,o)}return null}function fu(e,t){let i=!1;return e.field(ru).between(0,e.doc.length,(e=>{e==t&&(i=!0)})),i}function du(e,t){let i=e.sliceString(t,t+2);return i.slice(0,v(S(i,0)))}function pu(e,t,i,r){let n=null,o=e.changeByRange((o=>{if(!o.empty)return{changes:[{insert:t,from:o.from},{insert:i,from:o.to}],effects:tu.of(o.to+t.length),range:W.range(o.anchor+t.length,o.head+t.length)};let s=du(e.doc,o.head);return!s||/\s/.test(s)||r.indexOf(s)>-1?{changes:{insert:t+i,from:o.head},effects:tu.of(o.head+t.length),range:W.cursor(o.head+t.length)}:{range:n=o}}));return n?null:e.update(o,{scrollIntoView:!0,userEvent:"input.type"})}function Qu(e,t,i){let r=null,n=e.changeByRange((t=>t.empty&&du(e.doc,t.head)==i?{changes:{from:t.head,to:t.head+i.length,insert:i},range:W.cursor(t.head+i.length)}:r={range:t}));return r?null:e.update(n,{scrollIntoView:!0,userEvent:"input.type"})}function gu(e,t,i,r){let n=r.stringPrefixes||eu.stringPrefixes,o=null,s=e.changeByRange((r=>{if(!r.empty)return{changes:[{insert:t,from:r.from},{insert:t,from:r.to}],effects:tu.of(r.to+t.length),range:W.range(r.anchor+t.length,r.head+t.length)};let s,O=r.head,a=du(e.doc,O);if(a==t){if(mu(e,O))return{changes:{insert:t+t,from:O},effects:tu.of(O+t.length),range:W.cursor(O+t.length)};if(fu(e,O)){let r=i&&e.sliceDoc(O,O+3*t.length)==t+t+t?t+t+t:t;return{changes:{from:O,to:O+r.length,insert:r},range:W.cursor(O+r.length)}}}else{if(i&&e.sliceDoc(O-2*t.length,O)==t+t&&(s=$u(e,O-2*t.length,n))>-1&&mu(e,s))return{changes:{insert:t+t+t+t,from:O},effects:tu.of(O+t.length),range:W.cursor(O+t.length)};if(e.charCategorizer(O)(a)!=ve.Word&&$u(e,O,n)>-1&&!function(e,t,i,r){let n=vl(e).resolveInner(t,-1),o=r.reduce(((e,t)=>Math.max(e,t.length)),0);for(let s=0;s<5;s++){let s=e.sliceDoc(n.from,Math.min(n.to,n.from+i.length+o)),O=s.indexOf(i);if(!O||O>-1&&r.indexOf(s.slice(0,O))>-1){let t=n.firstChild;for(;t&&t.from==n.from&&t.to-t.from>i.length+O;){if(e.sliceDoc(t.to-i.length,t.to)==i)return!1;t=t.firstChild}return!0}let a=n.to==t&&n.parent;if(!a)break;n=a}return!1}(e,O,t,n))return{changes:{insert:t+t,from:O},effects:tu.of(O+t.length),range:W.cursor(O+t.length)}}return{range:o=r}}));return o?null:e.update(s,{scrollIntoView:!0,userEvent:"input.type"})}function mu(e,t){let i=vl(e).resolveInner(t+1);return i.parent&&i.from==t}function $u(e,t,i){let r=e.charCategorizer(t);if(r(e.sliceDoc(t-1,t))!=ve.Word)return t;for(let n of i){let i=t-n.length;if(e.sliceDoc(i,t)==n&&r(e.sliceDoc(i-1,i))!=ve.Word)return i}return-1}const bu=[{key:"Ctrl-Space",run:vc},{key:"Escape",run:Pc},{key:"ArrowDown",run:Sc(!0)},{key:"ArrowUp",run:Sc(!1)},{key:"PageDown",run:Sc(!0,"page")},{key:"PageUp",run:Sc(!1,"page")},{key:"Enter",run:yc}],Xu=J.highest(SO.computeN([rc],(e=>e.facet(rc).defaultKeymap?[bu]:[])));const Su=new WeakMap;var yu=Object.freeze({__proto__:null,CompletionContext:zh,acceptCompletion:yc,autocompletion:function(e={}){return[$c,rc.of(e),wc,Xu,Tc]},clearSnippet:jc,closeBrackets:nu,closeBracketsKeymap:cu,closeCompletion:Pc,completeAnyWord:e=>{let t=e.state.languageDataAt("wordChars",e.pos).join(""),i=function(e){let t=e.replace(/[\]\-\\]/g,"\\$&");try{return new RegExp(`[\\p{Alphabetic}\\p{Number}_${t}]+`,"ug")}catch(e){return new RegExp(`[w${t}]`,"g")}}(t),r=e.matchBefore(Lc(i,(e=>e+"$")));if(!r&&!e.explicit)return null;let n=r?r.from:e.pos;return{from:n,options:Jc(e.state.doc,Fc(t),i,5e4,n),validFor:Lc(i,(e=>"^"+e))}},completeFromList:Dh,completionKeymap:bu,completionStatus:function(e){let t=e.field($c,!1);return t&&t.active.some((e=>1==e.state))?"pending":t&&t.active.some((e=>0!=e.state))?"active":null},currentCompletions:function(e){var t;let i=null===(t=e.field($c,!1))||void 0===t?void 0:t.open;if(!i||i.disabled)return[];let r=Su.get(i.options);return r||Su.set(i.options,r=i.options.map((e=>e.completion))),r},deleteBracketPair:hu,hasNextSnippetField:function(e){let t=e.field(Wc,!1);return!(!t||!t.ranges.some((e=>e.field==t.active+1)))},hasPrevSnippetField:function(e){let t=e.field(Wc,!1);return!!(t&&t.active>0)},ifIn:function(e,t){return i=>{for(let r=vl(i.state).resolveInner(i.pos,-1);r;r=r.parent){if(e.indexOf(r.name)>-1)return t(i);if(r.type.isTop)break}return null}},ifNotIn:Mh,insertBracket:uu,insertCompletionText:Fh,moveCompletionSelection:Sc,nextSnippetField:Ec,pickedCompletion:Kh,prevSnippetField:zc,selectedCompletion:function(e){var t;let i=null===(t=e.field($c,!1))||void 0===t?void 0:t.open;return i&&!i.disabled&&i.selected>=0?i.options[i.selected].completion:null},selectedCompletionIndex:function(e){var t;let i=null===(t=e.field($c,!1))||void 0===t?void 0:t.open;return i&&!i.disabled&&i.selected>=0?i.selected:null},setSelectedCompletion:function(e){return mc.of(e)},snippet:Uc,snippetCompletion:Bc,snippetKeymap:Dc,startCompletion:vc});function vu({closing:e,units:t=1}){return i=>function(e,t,i){let r=e.textAfter,n=r.match(/^\s*/)[0].length,o=!1;switch(i.length){case 1:o=r.slice(n,n+i[0].length)===i[0];break;case 2:o=r.slice(n,n+i[0].length)===i[0]||r.slice(n,n+i[1].length)===i[1];break;case 3:o=r.slice(n,n+i[0].length)===i[0]||r.slice(n,n+i[1].length)===i[1]||r.slice(n,n+i[2].length)===i[2];break;default:o=i.some((e=>r.slice(n,n+e.length)===e))}return e.baseIndent+(o?0:e.unit*t)}(i,t,e)}function Pu(e){return e.baseIndent}let xu=function(){let e={indents:{VariableDeclaration:Kl(),AssignmentExpression:Kl()},keywords:[]};for(let t of br.nodeSet.types){let i,r=t.prop(Fe.group);"keyword"===(null!=r?r[0]:null)&&e.keywords.push(t);let n=t.prop(Fe.closedBy);i=n?vu({closing:n}):Pu,e.indents[t.name]=i}return e}(),wu=La({String:Ql.string,TripleString:Ql.string,CommandString:Ql.string,StringWithoutInterpolation:Ql.string,TripleStringWithoutInterpolation:Ql.string,CommandStringWithoutInterpolation:Ql.string,"String/$ TripleString/$ CommandString/$":Ql.special(Ql.brace),"String/( TripleString/( CommandString/(":Ql.special(Ql.brace),"String/) TripleString/) CommandString/)":Ql.special(Ql.brace),Comment:Ql.lineComment,BlockComment:Ql.comment,"mutable struct StructDefinition/end":Ql.definitionKeyword,"primitive type PrimitiveDefinition/end":Ql.definitionKeyword,"const local global":Ql.definitionKeyword,"ForStatement/for ForBinding/in ForStatement/end":Ql.controlKeyword,"WhileStatement/while WhileStatement/end":Ql.controlKeyword,"IfClause/if IfClause/elseif ElseClause/else IfStatement/end":Ql.controlKeyword,"default break return":Ql.controlKeyword,"TryStatement/try CatchClause/catch TryElseClause/else FinallyClause/finally TryStatement/end":Ql.controlKeyword,"( )":Ql.paren,"[ ]":Ql.paren,"{ }":Ql.paren,[xu.keywords.map((e=>e.name)).join(" ")]:Ql.keyword,BooleanLiteral:Ql.bool,Number:Ql.number,"Coefficient/PrefixedString!":Ql.unit,"Type! TypeParameters!":Ql.typeName,"StructDefinition/Identifier StructDefinition/AssignmentExpression/Identifier StructDefinition/TypedExpression/Identifier StructDefinition/AssignmentExpression/TypedExpression/Identifier":Ql.definition(Ql.propertyName),":: <:":Ql.typeOperator,Identifier:Ql.variableName,"MacroIdentifier! MacroFieldExpression!":Ql.macroName,"MacroDefinition/Definition!":Ql.definition(Ql.macroName),"FieldName!":Ql.propertyName,FieldExpression:Ql.propertyName,"FieldExpression .":Ql.derefOperator,"Symbol!":Ql.atom}),Tu=yl.define({parser:br.configure({props:[wu,El.add(Object.assign(Object.assign({},xu.indents),{ModuleDefinition:Pu,BareModuleDefinition:Pu,VariableDeclaration:Kl(),AssignmentExpression:Kl()}))]}),languageData:{commentTokens:{line:"#"},indentOnInput:/^\s*(\]|\}|\)|end|else|elseif|catch|finally)$/,closeBrackets:{brackets:["(","[","{","'",'"',"`"]}}});const ku=Tu.data.of({autocomplete:Dh(xu.keywords.map((e=>({label:e.name,type:"keyword"}))))});let Yu={enableKeywordCompletion:!1};function Ru(e=Yu){let t=[];return(e=Object.assign(Object.assign({},Yu),e)).enableKeywordCompletion&&t.push(ku),new Zl(Tu,t)}function _u(e,t){return({state:i,dispatch:r})=>{if(i.readOnly)return!1;let n=e(t,i);return!!n&&(r(i.update(n)),!0)}}const Vu=_u((function(e,t,i=t.selection.ranges){let r=[],n=-1;for(let{from:e,to:o}of i){let i=r.length,s=1e9,O=Au(t,e).line;if(O){for(let i=e;i<=o;){let a=t.doc.lineAt(i);if(a.from>n&&(e==o||o>a.from)){n=a.from;let e=/^\s*/.exec(a.text)[0].length,t=e==a.length,i=a.text.slice(e,e+O.length)==O?e:-1;ee.comment<0&&(!e.empty||e.single)))){let e=[];for(let{line:t,token:i,indent:n,empty:o,single:s}of r)!s&&o||e.push({from:t.from+n,insert:i+" "});let i=t.changes(e);return{changes:i,selection:t.selection.map(i,1)}}if(1!=e&&r.some((e=>e.comment>=0))){let e=[];for(let{line:t,comment:i,token:n}of r)if(i>=0){let r=t.from+i,o=r+n.length;" "==t.text[o-t.from]&&o++,e.push({from:r,to:o})}return{changes:e}}return null}),0),Zu=_u(Wu,0),qu=_u(((e,t)=>Wu(e,t,function(e){let t=[];for(let i of e.selection.ranges){let r=e.doc.lineAt(i.from),n=i.to<=r.to?r:e.doc.lineAt(i.to),o=t.length-1;o>=0&&t[o].to>r.from?t[o].to=n.to:t.push({from:r.from+/^\s*/.exec(r.text)[0].length,to:n.to})}return t}(t))),0);function Au(e,t){let i=e.languageDataAt("commentTokens",t);return i.length?i[0]:{}}function Wu(e,t,i=t.selection.ranges){let r=i.map((e=>Au(t,e.from).block));if(!r.every((e=>e)))return null;let n=i.map(((e,i)=>function(e,{open:t,close:i},r,n){let o,s,O=e.sliceDoc(r-50,r),a=e.sliceDoc(n,n+50),l=/\s*$/.exec(O)[0].length,h=/^\s*/.exec(a)[0].length,c=O.length-l;if(O.slice(c-t.length,c)==t&&a.slice(h,h+i.length)==i)return{open:{pos:r-l,margin:l&&1},close:{pos:n+h,margin:h&&1}};n-r<=100?o=s=e.sliceDoc(r,n):(o=e.sliceDoc(r,r+50),s=e.sliceDoc(n-50,n));let u=/^\s*/.exec(o)[0].length,f=/\s*$/.exec(s)[0].length,d=s.length-f-i.length;return o.slice(u,u+t.length)==t&&s.slice(d,d+i.length)==i?{open:{pos:r+u+t.length,margin:/\s/.test(o.charAt(u+t.length))?1:0},close:{pos:n-f-i.length,margin:/\s/.test(s.charAt(d-1))?1:0}}:null}(t,r[i],e.from,e.to)));if(2!=e&&!n.every((e=>e)))return{changes:t.changes(i.map(((e,t)=>n[t]?[]:[{from:e.from,insert:r[t].open+" "},{from:e.to,insert:" "+r[t].close}])))};if(1!=e&&n.some((e=>e))){let e=[];for(let t,i=0;ike(e,{minDepth:100,newGroupDelay:500,joinToEvent:(e,t)=>t},{minDepth:Math.max,newGroupDelay:Math.min,joinToEvent:(e,t)=>(i,r)=>e(i,r)||t(i,r)})});const Eu=B.define({create:()=>of.empty,update(e,t){let i=t.state.facet(ju),r=t.annotation(Cu);if(r){let n=t.docChanged?W.single(function(e){let t=0;return e.iterChangedRanges(((e,i)=>t=i)),t}(t.changes)):void 0,o=Lu.fromTransaction(t,n),s=r.side,O=0==s?e.undone:e.done;return O=o?Ku(O,O.length,i.minDepth,o):Ju(O,t.startState.selection),new of(0==s?r.rest:O,0==s?O:r.rest)}let n=t.annotation(Uu);if("full"!=n&&"before"!=n||(e=e.isolate()),!1===t.annotation(ge.addToHistory))return t.changes.empty?e:e.addMapping(t.changes.desc);let o=Lu.fromTransaction(t),s=t.annotation(ge.time),O=t.annotation(ge.userEvent);return o?e=e.addChanges(o,s,O,i,t):t.selection&&(e=e.addSelection(t.startState.selection,s,O,i.newGroupDelay)),"full"!=n&&"after"!=n||(e=e.isolate()),e},toJSON:e=>({done:e.done.map((e=>e.toJSON())),undone:e.undone.map((e=>e.toJSON()))}),fromJSON:e=>new of(e.done.map(Lu.fromJSON),e.undone.map(Lu.fromJSON))});function zu(e={}){return[Eu,ju.of(e),dO.domEventHandlers({beforeinput(e,t){let i="historyUndo"==e.inputType?Du:"historyRedo"==e.inputType?Mu:null;return!!i&&(e.preventDefault(),i(t))}})]}function Gu(e,t){return function({state:i,dispatch:r}){if(!t&&i.readOnly)return!1;let n=i.field(Eu,!1);if(!n)return!1;let o=n.pop(e,i,t);return!!o&&(r(o),!0)}}const Du=Gu(0,!1),Mu=Gu(1,!1),Bu=Gu(0,!0),Iu=Gu(1,!0);class Lu{constructor(e,t,i,r,n){this.changes=e,this.effects=t,this.mapped=i,this.startSelection=r,this.selectionsAfter=n}setSelAfter(e){return new Lu(this.changes,this.effects,this.mapped,this.startSelection,e)}toJSON(){var e,t,i;return{changes:null===(e=this.changes)||void 0===e?void 0:e.toJSON(),mapped:null===(t=this.mapped)||void 0===t?void 0:t.toJSON(),startSelection:null===(i=this.startSelection)||void 0===i?void 0:i.toJSON(),selectionsAfter:this.selectionsAfter.map((e=>e.toJSON()))}}static fromJSON(e){return new Lu(e.changes&&k.fromJSON(e.changes),[],e.mapped&&T.fromJSON(e.mapped),e.startSelection&&W.fromJSON(e.startSelection),e.selectionsAfter.map(W.fromJSON))}static fromTransaction(e,t){let i=Hu;for(let t of e.startState.facet(Nu)){let r=t(e);r.length&&(i=i.concat(r))}return!i.length&&e.changes.empty?null:new Lu(e.changes.invert(e.startState.doc),i,void 0,t||e.startState.selection,Hu)}static selection(e){return new Lu(void 0,Hu,void 0,void 0,e)}}function Ku(e,t,i,r){let n=t+1>i+20?t-i-1:0,o=e.slice(n,t);return o.push(r),o}function Fu(e,t){return e.length?t.length?e.concat(t):e:t}const Hu=[];function Ju(e,t){if(e.length){let i=e[e.length-1],r=i.selectionsAfter.slice(Math.max(0,i.selectionsAfter.length-200));return r.length&&r[r.length-1].eq(t)?e:(r.push(t),Ku(e,e.length-1,1e9,i.setSelAfter(r)))}return[Lu.selection([t])]}function ef(e){let t=e[e.length-1],i=e.slice();return i[e.length-1]=t.setSelAfter(t.selectionsAfter.slice(0,t.selectionsAfter.length-1)),i}function tf(e,t){if(!e.length)return e;let i=e.length,r=Hu;for(;i;){let n=rf(e[i-1],t,r);if(n.changes&&!n.changes.empty||n.effects.length){let t=e.slice(0,i);return t[i-1]=n,t}t=n.mapped,i--,r=n.selectionsAfter}return r.length?[Lu.selection(r)]:Hu}function rf(e,t,i){let r=Fu(e.selectionsAfter.length?e.selectionsAfter.map((e=>e.map(t))):Hu,i);if(!e.changes)return Lu.selection(r);let n=e.changes.map(t),o=t.mapDesc(e.changes,!0),s=e.mapped?e.mapped.composeDesc(o):o;return new Lu(n,Qe.mapEffects(e.effects,t),s,e.startSelection.map(o),r)}const nf=/^(input\.type|delete)($|\.)/;class of{constructor(e,t,i=0,r){this.done=e,this.undone=t,this.prevTime=i,this.prevUserEvent=r}isolate(){return this.prevTime?new of(this.done,this.undone):this}addChanges(e,t,i,r,n){let o=this.done,s=o[o.length-1];return o=s&&s.changes&&!s.changes.empty&&e.changes&&(!i||nf.test(i))&&(!s.selectionsAfter.length&&t-this.prevTimei.push(e,t))),t.iterChangedRanges(((e,t,n,o)=>{for(let e=0;e=t&&n<=s&&(r=!0)}})),r}(s.changes,e.changes))||"input.type.compose"==i)?Ku(o,o.length-1,r.minDepth,new Lu(e.changes.compose(s.changes),Fu(e.effects,s.effects),s.mapped,s.startSelection,Hu)):Ku(o,o.length,r.minDepth,e),new of(o,Hu,t,i)}addSelection(e,t,i,r){let n=this.done.length?this.done[this.done.length-1].selectionsAfter:Hu;return n.length>0&&t-this.prevTimee.empty!=t.ranges[i].empty)).length}(n[n.length-1],e)?this:new of(Ju(this.done,e),this.undone,t,i)}addMapping(e){return new of(tf(this.done,e),tf(this.undone,e),this.prevTime,this.prevUserEvent)}pop(e,t,i){let r=0==e?this.done:this.undone;if(0==r.length)return null;let n=r[r.length-1];if(i&&n.selectionsAfter.length)return t.update({selection:n.selectionsAfter[n.selectionsAfter.length-1],annotations:Cu.of({side:e,rest:ef(r)}),userEvent:0==e?"select.undo":"select.redo",scrollIntoView:!0});if(n.changes){let i=1==r.length?Hu:r.slice(0,r.length-1);return n.mapped&&(i=tf(i,n.mapped)),t.update({changes:n.changes,selection:n.startSelection,effects:n.effects,annotations:Cu.of({side:e,rest:i}),filter:!1,userEvent:0==e?"undo":"redo",scrollIntoView:!0})}return null}}of.empty=new of(Hu,Hu);const sf=[{key:"Mod-z",run:Du,preventDefault:!0},{key:"Mod-y",mac:"Mod-Shift-z",run:Mu,preventDefault:!0},{linux:"Ctrl-Shift-z",run:Mu,preventDefault:!0},{key:"Mod-u",run:Bu,preventDefault:!0},{key:"Alt-u",mac:"Mod-Shift-u",run:Iu,preventDefault:!0}];function Of(e,t){return W.create(e.ranges.map(t),e.mainIndex)}function af(e,t){return e.update({selection:t,scrollIntoView:!0,userEvent:"select"})}function lf({state:e,dispatch:t},i){let r=Of(e.selection,i);return!r.eq(e.selection)&&(t(af(e,r)),!0)}function hf(e,t){return W.cursor(t?e.to:e.from)}function cf(e,t){return lf(e,(i=>i.empty?e.moveByChar(i,t):hf(i,t)))}function uf(e){return e.textDirectionAt(e.state.selection.main.head)==go.LTR}const ff=e=>cf(e,!uf(e)),df=e=>cf(e,uf(e));function pf(e,t){return lf(e,(i=>i.empty?e.moveByGroup(i,t):hf(i,t)))}function Qf(e,t,i){if(t.type.prop(i))return!0;let r=t.to-t.from;return r&&(r>2||/[^\s,.;:]/.test(e.sliceDoc(t.from,t.to)))||t.firstChild}function gf(e,t,i){let r,n,o=vl(e).resolveInner(t.head),s=i?Fe.closedBy:Fe.openedBy;for(let r=t.head;;){let t=i?o.childAfter(r):o.childBefore(r);if(!t)break;Qf(e,t,s)?o=t:r=i?t.to:t.from}return n=o.type.prop(s)&&(r=i?qh(e,o.from,1):qh(e,o.to,-1))&&r.matched?i?r.end.to:r.end.from:i?o.to:o.from,W.cursor(n,i?-1:1)}function mf(e,t){return lf(e,(i=>{if(!i.empty)return hf(i,t);let r=e.moveVertically(i,t);return r.head!=i.head?r:e.moveToLineBoundary(i,t)}))}const $f=e=>mf(e,!1),bf=e=>mf(e,!0);function Xf(e){let t,i=e.scrollDOM.clientHeighti.empty?e.moveVertically(i,t,r.height):hf(i,t)));if(o.eq(n.selection))return!1;if(r.selfScroll){let t=e.coordsAtPos(n.selection.main.head),s=e.scrollDOM.getBoundingClientRect(),O=s.top+r.marginTop,a=s.bottom-r.marginBottom;t&&t.top>O&&t.bottomSf(e,!1),vf=e=>Sf(e,!0);function Pf(e,t,i){let r=e.lineBlockAt(t.head),n=e.moveToLineBoundary(t,i);if(n.head==t.head&&n.head!=(i?r.to:r.from)&&(n=e.moveToLineBoundary(t,i,!1)),!i&&n.head==r.from&&r.length){let i=/^\s*/.exec(e.state.sliceDoc(r.from,Math.min(r.from+100,r.to)))[0].length;i&&t.head!=r.from+i&&(n=W.cursor(r.from+i))}return n}function xf(e,t){let i=Of(e.state.selection,(e=>{let i=t(e);return W.range(e.anchor,i.head,i.goalColumn,i.bidiLevel||void 0)}));return!i.eq(e.state.selection)&&(e.dispatch(af(e.state,i)),!0)}function wf(e,t){return xf(e,(i=>e.moveByChar(i,t)))}const Tf=e=>wf(e,!uf(e)),kf=e=>wf(e,uf(e));function Yf(e,t){return xf(e,(i=>e.moveByGroup(i,t)))}function Rf(e,t){return xf(e,(i=>e.moveVertically(i,t)))}const _f=e=>Rf(e,!1),Vf=e=>Rf(e,!0);function Zf(e,t){return xf(e,(i=>e.moveVertically(i,t,Xf(e).height)))}const qf=e=>Zf(e,!1),Af=e=>Zf(e,!0),Wf=({state:e,dispatch:t})=>(t(af(e,{anchor:0})),!0),Cf=({state:e,dispatch:t})=>(t(af(e,{anchor:e.doc.length})),!0),Uf=({state:e,dispatch:t})=>(t(af(e,{anchor:e.selection.main.anchor,head:0})),!0),Nf=({state:e,dispatch:t})=>(t(af(e,{anchor:e.selection.main.anchor,head:e.doc.length})),!0);function jf(e,t){if(e.state.readOnly)return!1;let i="delete.selection",{state:r}=e,n=r.changeByRange((r=>{let{from:n,to:o}=r;if(n==o){let s=t(r);sn&&(i="delete.forward",s=Ef(e,s,!0)),n=Math.min(n,s),o=Math.max(o,s)}else n=Ef(e,n,!1),o=Ef(e,o,!0);return n==o?{range:r}:{changes:{from:n,to:o},range:W.cursor(n,nt(e))))r.between(t,t,((e,r)=>{et&&(t=i?r:e)}));return t}const zf=(e,t)=>jf(e,(i=>{let r,n,o=i.from,{state:s}=e,O=s.doc.lineAt(o);if(!t&&o>O.from&&ozf(e,!1),Df=e=>zf(e,!0),Mf=(e,t)=>jf(e,(i=>{let r=i.head,{state:n}=e,o=n.doc.lineAt(r),s=n.charCategorizer(r);for(let e=null;;){if(r==(t?o.to:o.from)){r==i.head&&o.number!=(t?n.doc.lines:1)&&(r+=t?1:-1);break}let O=g(o.text,r-o.from,t)+o.from,a=o.text.slice(Math.min(r,O)-o.from,Math.max(r,O)-o.from),l=s(a);if(null!=e&&l!=e)break;" "==a&&r==i.head||(e=l),r=O}return r})),Bf=e=>Mf(e,!1);function If(e){let t=[],i=-1;for(let r of e.selection.ranges){let n=e.doc.lineAt(r.from),o=e.doc.lineAt(r.to);if(r.empty||r.to!=o.from||(o=e.doc.lineAt(r.to-1)),i>=n.number){let e=t[t.length-1];e.to=o.to,e.ranges.push(r)}else t.push({from:n.from,to:o.to,ranges:[r]});i=o.number+1}return t}function Lf(e,t,i){if(e.readOnly)return!1;let r=[],n=[];for(let t of If(e)){if(i?t.to==e.doc.length:0==t.from)continue;let o=e.doc.lineAt(i?t.to+1:t.from-1),s=o.length+1;if(i){r.push({from:t.to,to:o.to},{from:t.from,insert:o.text+e.lineBreak});for(let i of t.ranges)n.push(W.range(Math.min(e.doc.length,i.anchor+s),Math.min(e.doc.length,i.head+s)))}else{r.push({from:o.from,to:t.from},{from:t.to,insert:e.lineBreak+o.text});for(let e of t.ranges)n.push(W.range(e.anchor-s,e.head-s))}}return!!r.length&&(t(e.update({changes:r,scrollIntoView:!0,selection:W.create(n,e.selection.mainIndex),userEvent:"move.line"})),!0)}const Kf=({state:e,dispatch:t})=>Lf(e,t,!1),Ff=({state:e,dispatch:t})=>Lf(e,t,!0);function Hf(e,t,i){if(e.readOnly)return!1;let r=[];for(let t of If(e))i?r.push({from:t.from,insert:e.doc.slice(t.from,t.to)+e.lineBreak}):r.push({from:t.to,insert:e.lineBreak+e.doc.slice(t.from,t.to)});return t(e.update({changes:r,scrollIntoView:!0,userEvent:"input.copyline"})),!0}const Jf=td(!1),ed=td(!0);function td(e){return({state:t,dispatch:i})=>{if(t.readOnly)return!1;let r=t.changeByRange((i=>{let{from:r,to:n}=i,s=t.doc.lineAt(r),O=!e&&r==n&&function(e,t){if(/\(\)|\[\]|\{\}/.test(e.sliceDoc(t-1,t+1)))return{from:t,to:t};let i,r=vl(e).resolveInner(t),n=r.childBefore(t),o=r.childAfter(t);return n&&o&&n.to<=t&&o.from>=t&&(i=n.type.prop(Fe.closedBy))&&i.indexOf(o.name)>-1&&e.doc.lineAt(n.to).from==e.doc.lineAt(o.from).from&&!/\S/.test(e.sliceDoc(n.to,o.from))?{from:n.to,to:o.from}:null}(t,r);e&&(r=n=(n<=s.to?s:t.doc.lineAt(n)).to);let a=new jl(t,{simulateBreak:r,simulateDoubleBreak:!!O}),l=Nl(a,r);for(null==l&&(l=Me(/^\s*/.exec(t.doc.lineAt(r).text)[0],t.tabSize));ns.from&&r{let n=[];for(let o=r.from;o<=r.to;){let s=e.doc.lineAt(o);s.number>i&&(r.empty||r.to>s.from)&&(t(s,n,r),i=s.number),o=s.to+1}let o=e.changes(n);return{changes:n,range:W.range(o.mapPos(r.anchor,1),o.mapPos(r.head,1))}}))}const rd=({state:e,dispatch:t})=>!e.readOnly&&(t(e.update(id(e,((t,i)=>{i.push({from:t.from,insert:e.facet(Wl)})})),{userEvent:"input.indent"})),!0),nd=({state:e,dispatch:t})=>!e.readOnly&&(t(e.update(id(e,((t,i)=>{let r=/^\s*/.exec(t.text)[0];if(!r)return;let n=Me(r,e.tabSize),o=0,s=Ul(e,Math.max(0,n-Cl(e)));for(;olf(e,(t=>W.cursor(e.lineBlockAt(t.head).from,1))),shift:e=>xf(e,(t=>W.cursor(e.lineBlockAt(t.head).from)))},{key:"Ctrl-e",run:e=>lf(e,(t=>W.cursor(e.lineBlockAt(t.head).to,-1))),shift:e=>xf(e,(t=>W.cursor(e.lineBlockAt(t.head).to)))},{key:"Ctrl-d",run:Df},{key:"Ctrl-h",run:Gf},{key:"Ctrl-k",run:e=>jf(e,(t=>{let i=e.lineBlockAt(t.head).to;return t.head{if(e.readOnly)return!1;let i=e.changeByRange((e=>({changes:{from:e.from,to:e.to,insert:o.of(["",""])},range:W.cursor(e.from)})));return t(e.update(i,{scrollIntoView:!0,userEvent:"input"})),!0}},{key:"Ctrl-t",run:({state:e,dispatch:t})=>{if(e.readOnly)return!1;let i=e.changeByRange((t=>{if(!t.empty||0==t.from||t.from==e.doc.length)return{range:t};let i=t.from,r=e.doc.lineAt(i),n=i==r.from?i-1:g(r.text,i-r.from,!1)+r.from,o=i==r.to?i+1:g(r.text,i-r.from,!0)+r.from;return{changes:{from:n,to:o,insert:e.doc.slice(i,o).append(e.doc.slice(n,i))},range:W.cursor(o)}}));return!i.changes.empty&&(t(e.update(i,{scrollIntoView:!0,userEvent:"move.character"})),!0)}},{key:"Ctrl-v",run:vf}],sd=[{key:"ArrowLeft",run:ff,shift:Tf,preventDefault:!0},{key:"Mod-ArrowLeft",mac:"Alt-ArrowLeft",run:e=>pf(e,!uf(e)),shift:e=>Yf(e,!uf(e)),preventDefault:!0},{mac:"Cmd-ArrowLeft",run:e=>lf(e,(t=>Pf(e,t,!uf(e)))),shift:e=>xf(e,(t=>Pf(e,t,!uf(e)))),preventDefault:!0},{key:"ArrowRight",run:df,shift:kf,preventDefault:!0},{key:"Mod-ArrowRight",mac:"Alt-ArrowRight",run:e=>pf(e,uf(e)),shift:e=>Yf(e,uf(e)),preventDefault:!0},{mac:"Cmd-ArrowRight",run:e=>lf(e,(t=>Pf(e,t,uf(e)))),shift:e=>xf(e,(t=>Pf(e,t,uf(e)))),preventDefault:!0},{key:"ArrowUp",run:$f,shift:_f,preventDefault:!0},{mac:"Cmd-ArrowUp",run:Wf,shift:Uf},{mac:"Ctrl-ArrowUp",run:yf,shift:qf},{key:"ArrowDown",run:bf,shift:Vf,preventDefault:!0},{mac:"Cmd-ArrowDown",run:Cf,shift:Nf},{mac:"Ctrl-ArrowDown",run:vf,shift:Af},{key:"PageUp",run:yf,shift:qf},{key:"PageDown",run:vf,shift:Af},{key:"Home",run:e=>lf(e,(t=>Pf(e,t,!1))),shift:e=>xf(e,(t=>Pf(e,t,!1))),preventDefault:!0},{key:"Mod-Home",run:Wf,shift:Uf},{key:"End",run:e=>lf(e,(t=>Pf(e,t,!0))),shift:e=>xf(e,(t=>Pf(e,t,!0))),preventDefault:!0},{key:"Mod-End",run:Cf,shift:Nf},{key:"Enter",run:Jf},{key:"Mod-a",run:({state:e,dispatch:t})=>(t(e.update({selection:{anchor:0,head:e.doc.length},userEvent:"select"})),!0)},{key:"Backspace",run:Gf,shift:Gf},{key:"Delete",run:Df},{key:"Mod-Backspace",mac:"Alt-Backspace",run:Bf},{key:"Mod-Delete",mac:"Alt-Delete",run:e=>Mf(e,!0)},{mac:"Mod-Backspace",run:e=>jf(e,(t=>{let i=e.moveToLineBoundary(t,!1).head;return t.head>i?i:Math.max(0,t.head-1)}))},{mac:"Mod-Delete",run:e=>jf(e,(t=>{let i=e.moveToLineBoundary(t,!0).head;return t.head({mac:e.key,run:e.run,shift:e.shift})))),Od=[{key:"Alt-ArrowLeft",mac:"Ctrl-ArrowLeft",run:e=>lf(e,(t=>gf(e.state,t,!uf(e)))),shift:e=>xf(e,(t=>gf(e.state,t,!uf(e))))},{key:"Alt-ArrowRight",mac:"Ctrl-ArrowRight",run:e=>lf(e,(t=>gf(e.state,t,uf(e)))),shift:e=>xf(e,(t=>gf(e.state,t,uf(e))))},{key:"Alt-ArrowUp",run:Kf},{key:"Shift-Alt-ArrowUp",run:({state:e,dispatch:t})=>Hf(e,t,!1)},{key:"Alt-ArrowDown",run:Ff},{key:"Shift-Alt-ArrowDown",run:({state:e,dispatch:t})=>Hf(e,t,!0)},{key:"Escape",run:({state:e,dispatch:t})=>{let i=e.selection,r=null;return i.ranges.length>1?r=W.create([i.main]):i.main.empty||(r=W.create([W.cursor(i.main.head)])),!!r&&(t(af(e,r)),!0)}},{key:"Mod-Enter",run:ed},{key:"Alt-l",mac:"Ctrl-l",run:({state:e,dispatch:t})=>{let i=If(e).map((({from:t,to:i})=>W.range(t,Math.min(i+1,e.doc.length))));return t(e.update({selection:W.create(i),userEvent:"select"})),!0}},{key:"Mod-i",run:({state:e,dispatch:t})=>{let i=Of(e.selection,(t=>{var i;for(let r=vl(e).resolveStack(t.from,1);r;r=r.next){let{node:e}=r;if((e.from=t.to||e.to>t.to&&e.from<=t.from)&&(null===(i=e.parent)||void 0===i?void 0:i.parent))return W.range(e.to,e.from)}return t}));return t(af(e,i)),!0},preventDefault:!0},{key:"Mod-[",run:nd},{key:"Mod-]",run:rd},{key:"Mod-Alt-\\",run:({state:e,dispatch:t})=>{if(e.readOnly)return!1;let i=Object.create(null),r=new jl(e,{overrideIndentation:e=>{let t=i[e];return null==t?-1:t}}),n=id(e,((t,n,o)=>{let s=Nl(r,t.from);if(null==s)return;/\S/.test(t.text)||(s=0);let O=/^\s*/.exec(t.text)[0],a=Ul(e,s);(O!=a||o.from{if(e.state.readOnly)return!1;let{state:t}=e,i=t.changes(If(t).map((({from:e,to:i})=>(e>0?e--:ie.moveVertically(t,!0))).map(i);return e.dispatch({changes:i,selection:r,scrollIntoView:!0,userEvent:"delete.line"}),!0}},{key:"Shift-Mod-\\",run:({state:e,dispatch:t})=>function(e,t,i){let r=!1,n=Of(e.selection,(t=>{let n=qh(e,t.head,-1)||qh(e,t.head,1)||t.head>0&&qh(e,t.head-1,1)||t.head{let{state:t}=e,i=t.doc.lineAt(t.selection.main.from),r=Au(e.state,i.from);return r.line?Vu(e):!!r.block&&qu(e)}},{key:"Alt-A",run:Zu}].concat(sd);function ad(){var e=arguments[0];"string"==typeof e&&(e=document.createElement(e));var t=1,i=arguments[1];if(i&&"object"==typeof i&&null==i.nodeType&&!Array.isArray(i)){for(var r in i)if(Object.prototype.hasOwnProperty.call(i,r)){var n=i[r];"string"==typeof n?e.setAttribute(r,n):null!=n&&(e[r]=n)}t++}for(;te.normalize("NFKD"):e=>e;class cd{constructor(e,t,i=0,r=e.length,n,o){this.test=o,this.value={from:0,to:0},this.done=!1,this.matches=[],this.buffer="",this.bufferPos=0,this.iter=e.iterRange(i,r),this.bufferStart=i,this.normalize=n?e=>n(hd(e)):hd,this.query=this.normalize(t)}peek(){if(this.bufferPos==this.buffer.length){if(this.bufferStart+=this.buffer.length,this.iter.next(),this.iter.done)return-1;this.bufferPos=0,this.buffer=this.iter.value}return S(this.buffer,this.bufferPos)}next(){for(;this.matches.length;)this.matches.pop();return this.nextOverlapping()}nextOverlapping(){for(;;){let e=this.peek();if(e<0)return this.done=!0,this;let t=y(e),i=this.bufferStart+this.bufferPos;this.bufferPos+=v(e);let r=this.normalize(t);for(let e=0,n=i;;e++){let o=r.charCodeAt(e),s=this.match(o,n);if(e==r.length-1){if(s)return this.value=s,this;break}n==i&&ethis.to&&(this.curLine=this.curLine.slice(0,this.to-this.curLineStart)),this.iter.next())}nextLine(){this.curLineStart=this.curLineStart+this.curLine.length+1,this.curLineStart>this.to?this.curLine="":this.getLine(0)}next(){for(let e=this.matchPos-this.curLineStart;;){this.re.lastIndex=e;let t=this.matchPos<=this.to&&this.re.exec(this.curLine);if(t){let i=this.curLineStart+t.index,r=i+t[0].length;if(this.matchPos=md(this.text,r+(i==r?1:0)),i==this.curLineStart+this.curLine.length&&this.nextLine(),(ithis.value.to)&&(!this.test||this.test(i,r,t)))return this.value={from:i,to:r,match:t},this;e=this.matchPos-this.curLineStart}else{if(!(this.curLineStart+this.curLine.length=i||r.to<=t){let r=new Qd(t,e.sliceString(t,i));return pd.set(e,r),r}if(r.from==t&&r.to==i)return r;let{text:n,from:o}=r;return o>t&&(n=e.sliceString(t,o)+n,o=t),r.to=this.to?this.to:this.text.lineAt(e).to}next(){for(;;){let e=this.re.lastIndex=this.matchPos-this.flat.from,t=this.re.exec(this.flat.text);if(t&&!t[0]&&t.index==e&&(this.re.lastIndex=e+1,t=this.re.exec(this.flat.text)),t){let e=this.flat.from+t.index,i=e+t[0].length;if((this.flat.to>=this.to||t.index+t[0].length<=this.flat.text.length-10)&&(!this.test||this.test(e,i,t)))return this.value={from:e,to:i,match:t},this.matchPos=md(this.text,i+(e==i?1:0)),this}if(this.flat.to==this.to)return this.done=!0,this;this.flat=Qd.get(this.text,this.flat.from,this.chunkEnd(this.flat.from+2*this.flat.text.length))}}}function md(e,t){if(t>=e.length)return t;let i,r=e.lineAt(t);for(;t=56320&&i<57344;)t++;return t}function $d(e){let t=ad("input",{class:"cm-textfield",name:"line",value:String(e.state.doc.lineAt(e.state.selection.main.head).number)});function i(){let i=/^([+-])?(\d+)?(:\d+)?(%)?$/.exec(t.value);if(!i)return;let{state:r}=e,n=r.doc.lineAt(r.selection.main.head),[,o,s,O,a]=i,l=O?+O.slice(1):0,h=s?+s:n.number;if(s&&a){let e=h/100;o&&(e=e*("-"==o?-1:1)+n.number/r.doc.lines),h=Math.round(r.doc.lines*e)}else s&&o&&(h=h*("-"==o?-1:1)+n.number);let c=r.doc.line(Math.max(1,Math.min(r.doc.lines,h))),u=W.cursor(c.from+Math.max(0,Math.min(l,c.length)));e.dispatch({effects:[bd.of(!1),dO.scrollIntoView(u.from,{y:"center"})],selection:u}),e.focus()}return{dom:ad("form",{class:"cm-gotoLine",onkeydown:t=>{27==t.keyCode?(t.preventDefault(),e.dispatch({effects:bd.of(!1)}),e.focus()):13==t.keyCode&&(t.preventDefault(),i())},onsubmit:e=>{e.preventDefault(),i()}},ad("label",e.state.phrase("Go to line"),": ",t)," ",ad("button",{class:"cm-button",type:"submit"},e.state.phrase("go")))}}"undefined"!=typeof Symbol&&(dd.prototype[Symbol.iterator]=gd.prototype[Symbol.iterator]=function(){return this});const bd=Qe.define(),Xd=(B.define({create:()=>!0,update(e,t){for(let i of t.effects)i.is(bd)&&(e=i.value);return e},provide:e=>xa.from(e,(e=>e?$d:null))}),dO.baseTheme({".cm-panel.cm-gotoLine":{padding:"2px 6px 4px","& label":{fontSize:"80%"}}}),{highlightWordAroundCursor:!1,minSelectionLength:1,maxMatches:100,wholeWords:!1}),Sd=N.define({combine:e=>ke(e,Xd,{highlightWordAroundCursor:(e,t)=>e||t,minSelectionLength:Math.min,maxMatches:Math.min})});function yd(e){let t=[Td,wd];return e&&t.push(Sd.of(e)),t}const vd=Vn.mark({class:"cm-selectionMatch"}),Pd=Vn.mark({class:"cm-selectionMatch cm-selectionMatch-main"});function xd(e,t,i,r){return!(0!=i&&e(t.sliceDoc(i-1,i))==ve.Word||r!=t.doc.length&&e(t.sliceDoc(r,r+1))==ve.Word)}const wd=ro.fromClass(class{constructor(e){this.decorations=this.getDeco(e)}update(e){(e.selectionSet||e.docChanged||e.viewportChanged)&&(this.decorations=this.getDeco(e.view))}getDeco(e){let t=e.state.facet(Sd),{state:i}=e,r=i.selection;if(r.ranges.length>1)return Vn.none;let n,o=r.main,s=null;if(o.empty){if(!t.highlightWordAroundCursor)return Vn.none;let e=i.wordAt(o.head);if(!e)return Vn.none;s=i.charCategorizer(o.head),n=i.sliceDoc(e.from,e.to)}else{let e=o.to-o.from;if(e200)return Vn.none;if(t.wholeWords){if(n=i.sliceDoc(o.from,o.to),s=i.charCategorizer(o.head),!xd(s,i,o.from,o.to)||!function(e,t,i,r){return e(t.sliceDoc(i,i+1))==ve.Word&&e(t.sliceDoc(r-1,r))==ve.Word}(s,i,o.from,o.to))return Vn.none}else if(n=i.sliceDoc(o.from,o.to).trim(),!n)return Vn.none}let O=[];for(let r of e.visibleRanges){let e=new cd(i.doc,n,r.from,r.to);for(;!e.next().done;){let{from:r,to:n}=e.value;if((!s||xd(s,i,r,n))&&(o.empty&&r<=o.from&&n>=o.to?O.push(Pd.range(r,n)):(r>=o.to||n<=o.from)&&O.push(vd.range(r,n)),O.length>t.maxMatches))return Vn.none}}return Vn.set(O)}},{decorations:e=>e.decorations}),Td=dO.baseTheme({".cm-selectionMatch":{backgroundColor:"#99ff7780"},".cm-searchMatch .cm-selectionMatch":{backgroundColor:"transparent"}});const kd=({state:e,dispatch:t})=>{let{ranges:i}=e.selection;if(i.some((e=>e.from===e.to)))return(({state:e,dispatch:t})=>{let{selection:i}=e,r=W.create(i.ranges.map((t=>e.wordAt(t.head)||W.cursor(t.head))),i.mainIndex);return!r.eq(i)&&(t(e.update({selection:r})),!0)})({state:e,dispatch:t});let r=e.sliceDoc(i[0].from,i[0].to);if(e.selection.ranges.some((t=>e.sliceDoc(t.from,t.to)!=r)))return!1;let n=function(e,t){let{main:i,ranges:r}=e.selection,n=e.wordAt(i.head),o=n&&n.from==i.from&&n.to==i.to;for(let i=!1,n=new cd(e.doc,t,r[r.length-1].to);;){if(n.next(),!n.done){if(i&&r.some((e=>e.from==n.value.from)))continue;if(o){let t=e.wordAt(n.value.from);if(!t||t.from!=n.value.from||t.to!=n.value.to)continue}return n.value}if(i)return null;n=new cd(e.doc,t,0,Math.max(0,r[r.length-1].from-1)),i=!0}}(e,r);return!!n&&(t(e.update({selection:e.selection.addRange(W.range(n.from,n.to),!1),effects:dO.scrollIntoView(n.to)})),!0)},Yd=N.define({combine:e=>ke(e,{top:!1,caseSensitive:!1,literal:!1,regexp:!1,wholeWord:!1,createPanel:e=>new op(e),scrollToMatch:e=>dO.scrollIntoView(e)})});class Rd{constructor(e){this.search=e.search,this.caseSensitive=!!e.caseSensitive,this.literal=!!e.literal,this.regexp=!!e.regexp,this.replace=e.replace||"",this.valid=!!this.search&&(!this.regexp||function(e){try{return new RegExp(e,fd),!0}catch(e){return!1}}(this.search)),this.unquoted=this.unquote(this.search),this.wholeWord=!!e.wholeWord}unquote(e){return this.literal?e:e.replace(/\\([nrt\\])/g,((e,t)=>"n"==t?"\n":"r"==t?"\r":"t"==t?"\t":"\\"))}eq(e){return this.search==e.search&&this.replace==e.replace&&this.caseSensitive==e.caseSensitive&&this.regexp==e.regexp&&this.wholeWord==e.wholeWord}create(){return this.regexp?new Ud(this):new Zd(this)}getCursor(e,t=0,i){let r=e.doc?e:Te.create({doc:e});return null==i&&(i=r.doc.length),this.regexp?qd(this,r,t,i):Vd(this,r,t,i)}}class _d{constructor(e){this.spec=e}}function Vd(e,t,i,r){return new cd(t.doc,e.unquoted,i,r,e.caseSensitive?void 0:e=>e.toLowerCase(),e.wholeWord?function(e,t){return(i,r,n,o)=>((o>i||o+n.length=t)return null;r.push(i.value)}return r}highlight(e,t,i,r){let n=Vd(this.spec,e,Math.max(0,t-this.spec.unquoted.length),Math.min(i+this.spec.unquoted.length,e.doc.length));for(;!n.next().done;)r(n.value.from,n.value.to)}}function qd(e,t,i,r){return new dd(t.doc,e.search,{ignoreCase:!e.caseSensitive,test:e.wholeWord?Cd(t.charCategorizer(t.selection.main.head)):void 0},i,r)}function Ad(e,t){return e.slice(g(e,t,!1),t)}function Wd(e,t){return e.slice(t,g(e,t))}function Cd(e){return(t,i,r)=>!r[0].length||(e(Ad(r.input,r.index))!=ve.Word||e(Wd(r.input,r.index))!=ve.Word)&&(e(Wd(r.input,r.index+r[0].length))!=ve.Word||e(Ad(r.input,r.index+r[0].length))!=ve.Word)}class Ud extends _d{nextMatch(e,t,i){let r=qd(this.spec,e,i,e.doc.length).next();return r.done&&(r=qd(this.spec,e,0,t).next()),r.done?null:r.value}prevMatchInRange(e,t,i){for(let r=1;;r++){let n=Math.max(t,i-1e4*r),o=qd(this.spec,e,n,i),s=null;for(;!o.next().done;)s=o.value;if(s&&(n==t||s.from>n+10))return s;if(n==t)return null}}prevMatch(e,t,i){return this.prevMatchInRange(e,0,t)||this.prevMatchInRange(e,i,e.doc.length)}getReplacement(e){return this.spec.unquote(this.spec.replace.replace(/\$([$&\d+])/g,((t,i)=>"$"==i?"$":"&"==i?e.match[0]:"0"!=i&&+i=t)return null;r.push(i.value)}return r}highlight(e,t,i,r){let n=qd(this.spec,e,Math.max(0,t-250),Math.min(i+250,e.doc.length));for(;!n.next().done;)r(n.value.from,n.value.to)}}const Nd=Qe.define(),jd=Qe.define(),Ed=B.define({create:e=>new zd(ep(e).create(),null),update(e,t){for(let i of t.effects)i.is(Nd)?e=new zd(i.value.create(),e.panel):i.is(jd)&&(e=new zd(e.query,i.value?Jd:null));return e},provide:e=>xa.from(e,(e=>e.panel))});class zd{constructor(e,t){this.query=e,this.panel=t}}const Gd=Vn.mark({class:"cm-searchMatch"}),Dd=Vn.mark({class:"cm-searchMatch cm-searchMatch-selected"}),Md=ro.fromClass(class{constructor(e){this.view=e,this.decorations=this.highlight(e.state.field(Ed))}update(e){let t=e.state.field(Ed);(t!=e.startState.field(Ed)||e.docChanged||e.selectionSet||e.viewportChanged)&&(this.decorations=this.highlight(t))}highlight({query:e,panel:t}){if(!t||!e.spec.valid)return Vn.none;let{view:i}=this,r=new qe;for(let t=0,n=i.visibleRanges,o=n.length;tn[t+1].from-500;)O=n[++t].to;e.highlight(i.state,s,O,((e,t)=>{let n=i.state.selection.ranges.some((i=>i.from==e&&i.to==t));r.add(e,t,n?Dd:Gd)}))}return r.finish()}},{decorations:e=>e.decorations});function Bd(e){return t=>{let i=t.state.field(Ed,!1);return i&&i.query.spec.valid?e(t,i):rp(t)}}const Id=Bd(((e,{query:t})=>{let{to:i}=e.state.selection.main,r=t.nextMatch(e.state,i,i);if(!r)return!1;let n=W.single(r.from,r.to),o=e.state.facet(Yd);return e.dispatch({selection:n,effects:[ap(e,r),o.scrollToMatch(n.main,e)],userEvent:"select.search"}),ip(e),!0})),Ld=Bd(((e,{query:t})=>{let{state:i}=e,{from:r}=i.selection.main,n=t.prevMatch(i,r,r);if(!n)return!1;let o=W.single(n.from,n.to),s=e.state.facet(Yd);return e.dispatch({selection:o,effects:[ap(e,n),s.scrollToMatch(o.main,e)],userEvent:"select.search"}),ip(e),!0})),Kd=Bd(((e,{query:t})=>{let i=t.matchAll(e.state,1e3);return!(!i||!i.length||(e.dispatch({selection:W.create(i.map((e=>W.range(e.from,e.to)))),userEvent:"select.search.matches"}),0))})),Fd=Bd(((e,{query:t})=>{let{state:i}=e,{from:r,to:n}=i.selection.main;if(i.readOnly)return!1;let o=t.nextMatch(i,r,r);if(!o)return!1;let s,O,a=[],l=[];if(o.from==r&&o.to==n&&(O=i.toText(t.getReplacement(o)),a.push({from:o.from,to:o.to,insert:O}),o=t.nextMatch(i,o.from,o.to),l.push(dO.announce.of(i.phrase("replaced match on line $",i.doc.lineAt(r).number)+"."))),o){let t=0==a.length||a[0].from>=o.to?0:o.to-o.from-O.length;s=W.single(o.from-t,o.to-t),l.push(ap(e,o)),l.push(i.facet(Yd).scrollToMatch(s.main,e))}return e.dispatch({changes:a,selection:s,effects:l,userEvent:"input.replace"}),!0})),Hd=Bd(((e,{query:t})=>{if(e.state.readOnly)return!1;let i=t.matchAll(e.state,1e9).map((e=>{let{from:i,to:r}=e;return{from:i,to:r,insert:t.getReplacement(e)}}));if(!i.length)return!1;let r=e.state.phrase("replaced $ matches",i.length)+".";return e.dispatch({changes:i,effects:dO.announce.of(r),userEvent:"input.replace.all"}),!0}));function Jd(e){return e.state.facet(Yd).createPanel(e)}function ep(e,t){var i,r,n,o,s;let O=e.selection.main,a=O.empty||O.to>O.from+100?"":e.sliceDoc(O.from,O.to);if(t&&!a)return t;let l=e.facet(Yd);return new Rd({search:(null!==(i=null==t?void 0:t.literal)&&void 0!==i?i:l.literal)?a:a.replace(/\n/g,"\\n"),caseSensitive:null!==(r=null==t?void 0:t.caseSensitive)&&void 0!==r?r:l.caseSensitive,literal:null!==(n=null==t?void 0:t.literal)&&void 0!==n?n:l.literal,regexp:null!==(o=null==t?void 0:t.regexp)&&void 0!==o?o:l.regexp,wholeWord:null!==(s=null==t?void 0:t.wholeWord)&&void 0!==s?s:l.wholeWord})}function tp(e){let t=Sa(e,Jd);return t&&t.dom.querySelector("[main-field]")}function ip(e){let t=tp(e);t&&t==e.root.activeElement&&t.select()}const rp=e=>{let t=e.state.field(Ed,!1);if(t&&t.panel){let i=tp(e);if(i&&i!=e.root.activeElement){let r=ep(e.state,t.query.spec);r.valid&&e.dispatch({effects:Nd.of(r)}),i.focus(),i.select()}}else e.dispatch({effects:[jd.of(!0),t?Nd.of(ep(e.state,t.query.spec)):Qe.appendConfig.of(hp)]});return!0},np=e=>{let t=e.state.field(Ed,!1);if(!t||!t.panel)return!1;let i=Sa(e,Jd);return i&&i.dom.contains(e.root.activeElement)&&e.focus(),e.dispatch({effects:jd.of(!1)}),!0};class op{constructor(e){this.view=e;let t=this.query=e.state.field(Ed).query.spec;function i(e,t,i){return ad("button",{class:"cm-button",name:e,onclick:t,type:"button"},i)}this.commit=this.commit.bind(this),this.searchField=ad("input",{value:t.search,placeholder:sp(e,"Find"),"aria-label":sp(e,"Find"),class:"cm-textfield",name:"search",form:"","main-field":"true",onchange:this.commit,onkeyup:this.commit}),this.replaceField=ad("input",{value:t.replace,placeholder:sp(e,"Replace"),"aria-label":sp(e,"Replace"),class:"cm-textfield",name:"replace",form:"",onchange:this.commit,onkeyup:this.commit}),this.caseField=ad("input",{type:"checkbox",name:"case",form:"",checked:t.caseSensitive,onchange:this.commit}),this.reField=ad("input",{type:"checkbox",name:"re",form:"",checked:t.regexp,onchange:this.commit}),this.wordField=ad("input",{type:"checkbox",name:"word",form:"",checked:t.wholeWord,onchange:this.commit}),this.dom=ad("div",{onkeydown:e=>this.keydown(e),class:"cm-search"},[this.searchField,i("next",(()=>Id(e)),[sp(e,"next")]),i("prev",(()=>Ld(e)),[sp(e,"previous")]),i("select",(()=>Kd(e)),[sp(e,"all")]),ad("label",null,[this.caseField,sp(e,"match case")]),ad("label",null,[this.reField,sp(e,"regexp")]),ad("label",null,[this.wordField,sp(e,"by word")]),...e.state.readOnly?[]:[ad("br"),this.replaceField,i("replace",(()=>Fd(e)),[sp(e,"replace")]),i("replaceAll",(()=>Hd(e)),[sp(e,"replace all")])],ad("button",{name:"close",onclick:()=>np(e),"aria-label":sp(e,"close"),type:"button"},["×"])])}commit(){let e=new Rd({search:this.searchField.value,caseSensitive:this.caseField.checked,regexp:this.reField.checked,wholeWord:this.wordField.checked,replace:this.replaceField.value});e.eq(this.query)||(this.query=e,this.view.dispatch({effects:Nd.of(e)}))}keydown(e){!function(e,t,i){return xO(vO(e.state),t,e,i)}(this.view,e,"search-panel")?13==e.keyCode&&e.target==this.searchField?(e.preventDefault(),(e.shiftKey?Ld:Id)(this.view)):13==e.keyCode&&e.target==this.replaceField&&(e.preventDefault(),Fd(this.view)):e.preventDefault()}update(e){for(let t of e.transactions)for(let e of t.effects)e.is(Nd)&&!e.value.eq(this.query)&&this.setQuery(e.value)}setQuery(e){this.query=e,this.searchField.value=e.search,this.replaceField.value=e.replace,this.caseField.checked=e.caseSensitive,this.reField.checked=e.regexp,this.wordField.checked=e.wholeWord}mount(){this.searchField.select()}get pos(){return 80}get top(){return this.view.state.facet(Yd).top}}function sp(e,t){return e.state.phrase(t)}const Op=/[\s\.,:;?!]/;function ap(e,{from:t,to:i}){let r=e.state.doc.lineAt(t),n=e.state.doc.lineAt(i).to,o=Math.max(r.from,t-30),s=Math.min(n,i+30),O=e.state.sliceDoc(o,s);if(o!=r.from)for(let e=0;e<30;e++)if(!Op.test(O[e+1])&&Op.test(O[e])){O=O.slice(e);break}if(s!=n)for(let e=O.length-1;e>O.length-30;e--)if(!Op.test(O[e-1])&&Op.test(O[e])){O=O.slice(0,e);break}return dO.announce.of(`${e.state.phrase("current match")}. ${O} ${e.state.phrase("on line")} ${r.number}.`)}const lp=dO.baseTheme({".cm-panel.cm-search":{padding:"2px 6px 4px",position:"relative","& [name=close]":{position:"absolute",top:"0",right:"4px",backgroundColor:"inherit",border:"none",font:"inherit",padding:0,margin:0},"& input, & button, & label":{margin:".2em .6em .2em 0"},"& input[type=checkbox]":{marginRight:".2em"},"& label":{fontSize:"80%",whiteSpace:"pre"}},"&light .cm-searchMatch":{backgroundColor:"#ffff0054"},"&dark .cm-searchMatch":{backgroundColor:"#00ffff8a"},"&light .cm-searchMatch-selected":{backgroundColor:"#ff6a0054"},"&dark .cm-searchMatch-selected":{backgroundColor:"#ff00ff8a"}}),hp=[Ed,J.low(Md),lp];class cp{static create(e,t,i,r,n){return new cp(e,t,i,r+(r<<8)+e+(t<<4)|0,n,[],[])}constructor(e,t,i,r,n,o,s){this.type=e,this.value=t,this.from=i,this.hash=r,this.end=n,this.children=o,this.positions=s,this.hashProp=[[Fe.contextHash,r]]}addChild(e,t){e.prop(Fe.contextHash)!=this.hash&&(e=new ot(e.type,e.children,e.positions,e.length,this.hashProp)),this.children.push(e),this.positions.push(t)}toTree(e,t=this.end){let i=this.children.length-1;return i>=0&&(t=Math.max(t,this.positions[i]+this.children[i].length+this.from)),new ot(e.types[this.type],this.children,this.positions,t-this.from).balance({makeTree:(e,t,i)=>new ot(et.none,e,t,i,this.hashProp)})}}var up;!function(e){e[e.Document=1]="Document",e[e.CodeBlock=2]="CodeBlock",e[e.FencedCode=3]="FencedCode",e[e.Blockquote=4]="Blockquote",e[e.HorizontalRule=5]="HorizontalRule",e[e.BulletList=6]="BulletList",e[e.OrderedList=7]="OrderedList",e[e.ListItem=8]="ListItem",e[e.ATXHeading1=9]="ATXHeading1",e[e.ATXHeading2=10]="ATXHeading2",e[e.ATXHeading3=11]="ATXHeading3",e[e.ATXHeading4=12]="ATXHeading4",e[e.ATXHeading5=13]="ATXHeading5",e[e.ATXHeading6=14]="ATXHeading6",e[e.SetextHeading1=15]="SetextHeading1",e[e.SetextHeading2=16]="SetextHeading2",e[e.HTMLBlock=17]="HTMLBlock",e[e.LinkReference=18]="LinkReference",e[e.Paragraph=19]="Paragraph",e[e.CommentBlock=20]="CommentBlock",e[e.ProcessingInstructionBlock=21]="ProcessingInstructionBlock",e[e.Escape=22]="Escape",e[e.Entity=23]="Entity",e[e.HardBreak=24]="HardBreak",e[e.Emphasis=25]="Emphasis",e[e.StrongEmphasis=26]="StrongEmphasis",e[e.Link=27]="Link",e[e.Image=28]="Image",e[e.InlineCode=29]="InlineCode",e[e.HTMLTag=30]="HTMLTag",e[e.Comment=31]="Comment",e[e.ProcessingInstruction=32]="ProcessingInstruction",e[e.URL=33]="URL",e[e.HeaderMark=34]="HeaderMark",e[e.QuoteMark=35]="QuoteMark",e[e.ListMark=36]="ListMark",e[e.LinkMark=37]="LinkMark",e[e.EmphasisMark=38]="EmphasisMark",e[e.CodeMark=39]="CodeMark",e[e.CodeText=40]="CodeText",e[e.CodeInfo=41]="CodeInfo",e[e.LinkTitle=42]="LinkTitle",e[e.LinkLabel=43]="LinkLabel"}(up||(up={}));class fp{constructor(e,t){this.start=e,this.content=t,this.marks=[],this.parsers=[]}}class dp{constructor(){this.text="",this.baseIndent=0,this.basePos=0,this.depth=0,this.markers=[],this.pos=0,this.indent=0,this.next=-1}forward(){this.basePos>this.pos&&this.forwardInner()}forwardInner(){let e=this.skipSpace(this.basePos);this.indent=this.countIndent(e,this.pos,this.indent),this.pos=e,this.next=e==this.text.length?-1:this.text.charCodeAt(e)}skipSpace(e){return mp(this.text,e)}reset(e){for(this.text=e,this.baseIndent=this.basePos=this.pos=this.indent=0,this.forwardInner(),this.depth=1;this.markers.length;)this.markers.pop()}moveBase(e){this.basePos=e,this.baseIndent=this.countIndent(e,this.pos,this.indent)}moveBaseColumn(e){this.baseIndent=e,this.basePos=this.findColumn(e)}addMarker(e){this.markers.push(e)}countIndent(e,t=0,i=0){for(let r=t;r=t.stack[i.depth+1].value+i.baseIndent)return!0;if(i.indent>=i.baseIndent+4)return!1;let r=(e.type==up.OrderedList?Pp:vp)(i,t,!1);return r>0&&(e.type!=up.BulletList||Sp(i,t,!1)<0)&&i.text.charCodeAt(i.pos+r-1)==e.value}const Qp={[up.Blockquote]:(e,t,i)=>62==i.next&&(i.markers.push(Jp(up.QuoteMark,t.lineStart+i.pos,t.lineStart+i.pos+1)),i.moveBase(i.pos+(gp(i.text.charCodeAt(i.pos+1))?2:1)),e.end=t.lineStart+i.text.length,!0),[up.ListItem]:(e,t,i)=>!(i.indent-1||(i.moveBaseColumn(i.baseIndent+e.value),0)),[up.OrderedList]:pp,[up.BulletList]:pp,[up.Document]:()=>!0};function gp(e){return 32==e||9==e||10==e||13==e}function mp(e,t=0){for(;ti&&gp(e.charCodeAt(t-1));)t--;return t}function bp(e){if(96!=e.next&&126!=e.next)return-1;let t=e.pos+1;for(;t-1&&e.depth==t.stack.length||r<3?-1:1}function yp(e,t){for(let i=e.stack.length-1;i>=0;i--)if(e.stack[i].type==t)return!0;return!1}function vp(e,t,i){return 45!=e.next&&43!=e.next&&42!=e.next||e.pos!=e.text.length-1&&!gp(e.text.charCodeAt(e.pos+1))||!(!i||yp(t,up.BulletList)||e.skipSpace(e.pos+2)=48&&n<=57;){if(r++,r==e.text.length)return-1;n=e.text.charCodeAt(r)}return r==e.pos||r>e.pos+9||46!=n&&41!=n||re.pos+1||49!=e.next)?-1:r+1-e.pos}function xp(e){if(35!=e.next)return-1;let t=e.pos+1;for(;t6?-1:i}function wp(e){if(45!=e.next&&61!=e.next||e.indent>=e.baseIndent+4)return-1;let t=e.pos+1;for(;t/,Yp=/\?>/,Rp=[[/^<(?:script|pre|style)(?:\s|>|$)/i,/<\/(?:script|pre|style)>/i],[/^\s*/i.exec(r);if(o)return e.append(Jp(up.Comment,i,i+1+o[0].length));let s=/^\?[^]*?\?>/.exec(r);if(s)return e.append(Jp(up.ProcessingInstruction,i,i+1+s[0].length));let O=/^(?:![A-Z][^]*?>|!\[CDATA\[[^]*?\]\]>|\/\s*[a-zA-Z][\w-]*\s*>|\s*[a-zA-Z][\w-]*(\s+[a-zA-Z:_][\w-.:]*(?:\s*=\s*(?:[^\s"'=<>`]+|'[^']*'|"[^"]*"))?)*\s*(\/\s*)?>)/.exec(r);return O?e.append(Jp(up.HTMLTag,i,i+1+O[0].length)):-1},Emphasis(e,t,i){if(95!=t&&42!=t)return-1;let r=i+1;for(;e.char(r)==t;)r++;let n=e.slice(i-1,i),o=e.slice(r,r+1),s=oQ.test(n),O=oQ.test(o),a=/\s|^$/.test(n),l=/\s|^$/.test(o),h=!l&&(!O||a||s),c=!a&&(!s||l||O),u=h&&(42==t||!c||s),f=c&&(42==t||!h||O);return e.append(new nQ(95==t?eQ:tQ,i,r,(u?1:0)|(f?2:0)))},HardBreak(e,t,i){if(92==t&&10==e.char(i+1))return e.append(Jp(up.HardBreak,i,i+2));if(32==t){let t=i+1;for(;32==e.char(t);)t++;if(10==e.char(t)&&t>=i+2)return e.append(Jp(up.HardBreak,i,t+1))}return-1},Link:(e,t,i)=>91==t?e.append(new nQ(iQ,i,i+1,1)):-1,Image:(e,t,i)=>33==t&&91==e.char(i+1)?e.append(new nQ(rQ,i,i+2,1)):-1,LinkEnd(e,t,i){if(93!=t)return-1;for(let t=e.parts.length-1;t>=0;t--){let r=e.parts[t];if(r instanceof nQ&&(r.type==iQ||r.type==rQ)){if(!r.side||e.skipSpace(r.to)==i&&!/[(\[]/.test(e.slice(i+1,i+2)))return e.parts[t]=null,-1;let n=e.takeContent(t),o=e.parts[t]=OQ(e,n,r.type==iQ?up.Link:up.Image,r.from,i+1);if(r.type==iQ)for(let i=0;it?Jp(up.URL,t+i,n+i):n==e.length&&null}}function lQ(e,t,i){let r=e.charCodeAt(t);if(39!=r&&34!=r&&40!=r)return!1;let n=40==r?41:r;for(let r=t+1,o=!1;r=this.end?-1:this.text.charCodeAt(e-this.offset)}get end(){return this.offset+this.text.length}slice(e,t){return this.text.slice(e-this.offset,t-this.offset)}append(e){return this.parts.push(e),e.to}addDelimiter(e,t,i,r,n){return this.append(new nQ(e,t,i,(r?1:0)|(n?2:0)))}addElement(e){return this.append(e)}resolveMarkers(e){for(let t=e;t=e;s--){let e=this.parts[s];if(e instanceof nQ&&1&e.side&&e.type==i.type&&!(n&&(1&i.side||2&e.side)&&(e.to-e.from+o)%3==0&&((e.to-e.from)%3||o%3))){r=e;break}}if(!r)continue;let O=i.type.resolve,a=[],l=r.from,h=i.to;if(n){let e=Math.min(2,r.to-r.from,o);l=r.to-e,h=i.from+e,O=1==e?"Emphasis":"StrongEmphasis"}r.type.mark&&a.push(this.elt(r.type.mark,l,r.to));for(let e=s+1;e=0;t--){let i=this.parts[t];if(i instanceof nQ&&i.type==e)return t}return null}takeContent(e){let t=this.resolveMarkers(e);return this.parts.length=e,t}skipSpace(e){return mp(this.text,e-this.offset)+this.offset}elt(e,t,i,r){return"string"==typeof e?Jp(this.parser.getNodeType(e),t,i,r):new Hp(e,t)}}function uQ(e,t){if(!t.length)return e;if(!e.length)return t;let i=e.slice(),r=0;for(let e of t){for(;r(e?e-1:0))return!1;if(this.fragmentEnd<0){let e=this.fragment.to;for(;e>0&&"\n"!=this.input.read(e-1,e);)e--;this.fragmentEnd=e?e-1:0}let i=this.cursor;i||(i=this.cursor=this.fragment.tree.cursor(),i.firstChild());let r=e+this.fragment.offset;for(;i.to<=r;)if(!i.parent())return!1;for(;;){if(i.from>=r)return this.fragment.from<=t;if(!i.childAfter(r))return!1}}matches(e){let t=this.cursor.tree;return t&&t.prop(Fe.contextHash)==e}takeNodes(e){let t=this.cursor,i=this.fragment.offset,r=this.fragmentEnd-(this.fragment.openEnd?1:0),n=e.absoluteLineStart,o=n,s=e.block.children.length,O=o,a=s;for(;;){if(t.to-i>r){if(t.type.isAnonymous&&t.firstChild())continue;break}let n=pQ(t.from-i,e.ranges);if(t.to-i<=e.ranges[e.rangeI].to)e.addNode(t.tree,n);else{let i=new ot(e.parser.nodeSet.types[up.Paragraph],[],[],0,e.block.hashProp);e.reusePlaceholders.set(i,t.tree),e.addNode(i,n)}if(t.type.is("Block")&&(fQ.indexOf(t.type.id)<0?(o=t.to-i,s=e.block.children.length):(o=O,s=a,O=t.to-i,a=e.block.children.length)),!t.nextSibling())break}for(;e.block.children.length>s;)e.block.children.pop(),e.block.positions.pop();return o-n}}function pQ(e,t){let i=e;for(let r=1;rqp[e])),Object.keys(qp).map((e=>Up[e])),Object.keys(qp),Np,Qp,Object.keys(sQ).map((e=>sQ[e])),Object.keys(sQ),[]);function mQ(e,t,i){let r=[];for(let n=e.firstChild,o=t;;n=n.nextSibling){let e=n?n.from:i;if(e>o&&r.push({from:o,to:e}),!n)break;o=n.to}return r}function $Q(e){let{codeParser:t,htmlParser:i}=e,r=wt(((e,r)=>{let n=e.type.id;if(!t||n!=up.CodeBlock&&n!=up.FencedCode){if(i&&(n==up.HTMLBlock||n==up.HTMLTag))return{parser:i,overlay:mQ(e.node,e.from,e.to)}}else{let i="";if(n==up.FencedCode){let t=e.node.getChild(up.CodeInfo);t&&(i=r.read(t.from,t.to))}let o=t(i);if(o)return{parser:o,overlay:e=>e.type.id==up.CodeText}}return null}));return{wrap:r}}const bQ={resolve:"Strikethrough",mark:"StrikethroughMark"},XQ={defineNodes:[{name:"Strikethrough",style:{"Strikethrough/...":Ql.strikethrough}},{name:"StrikethroughMark",style:Ql.processingInstruction}],parseInline:[{name:"Strikethrough",parse(e,t,i){if(126!=t||126!=e.char(i+1)||126==e.char(i+2))return-1;let r=e.slice(i-1,i),n=e.slice(i+2,i+3),o=/\s|^$/.test(r),s=/\s|^$/.test(n),O=oQ.test(r),a=oQ.test(n);return e.addDelimiter(bQ,i,i+2,!s&&(!a||o||O),!o&&(!O||s||a))},after:"Emphasis"}]};function SQ(e,t,i=0,r,n=0){let o=0,s=!0,O=-1,a=-1,l=!1,h=()=>{r.push(e.elt("TableCell",n+O,n+a,e.parser.parseInline(t.slice(O,a),n+O)))};for(let c=i;c-1)&&o++,s=!1,r&&(O>-1&&h(),r.push(e.elt("TableDelimiter",c+n,c+n+1))),O=a=-1),l=!l&&92==i}return O>-1&&(o++,r&&h()),o}function yQ(e,t){for(let i=t;iyQ(t.content,0)?new PQ:null,endLeaf(e,t,i){if(i.parsers.some((e=>e instanceof PQ))||!yQ(t.text,t.basePos))return!1;let r=e.scanLine(e.absoluteLineEnd+1).text;return vQ.test(r)&&SQ(e,t.text,t.basePos)==SQ(e,r,t.basePos)},before:"SetextHeading"}]};class wQ{nextLine(){return!1}finish(e,t){return e.addLeafElement(t,e.elt("Task",t.start,t.start+t.content.length,[e.elt("TaskMarker",t.start,t.start+3),...e.parser.parseInline(t.content.slice(3),t.start+3)])),!0}}const TQ={defineNodes:[{name:"Task",block:!0,style:Ql.list},{name:"TaskMarker",style:Ql.atom}],parseBlock:[{name:"TaskList",leaf:(e,t)=>/^\[[ xX]\][ \t]/.test(t.content)&&"ListItem"==e.parentType().name?new wQ:null,after:"SetextHeading"}]},kQ=/(www\.)|(https?:\/\/)|([\w.+-]+@)|(mailto:|xmpp:)/gy,YQ=/[\w-]+(\.\w+(\.\w+)?)(\/[^\s<]*)?/gy,RQ=/[\w.+-]+@[\w-]+\.[\w.-]+/gy,_Q=/\/[a-zA-Z\d@.]+/gy;function VQ(e,t,i,r){let n=0;for(let o=t;oVQ(e,t,r,"("))r--;else{if(";"!=n||!(i=/&(?:#\d+|#x[a-f\d]+|\w+);$/.exec(e.slice(t,r))))break;r=t+i.index}}return r}(e.text,r+n[0].length):n[3]?o=ZQ(e.text,r):(o=ZQ(e.text,r+n[0].length),o>-1&&"xmpp:"==n[0]&&(_Q.lastIndex=o,n=_Q.exec(e.text),n&&(o=n.index+n[0].length))),o<0?-1:(e.addElement(e.elt("URL",i,o+e.offset)),o+e.offset)):-1}}]},AQ=[xQ,TQ,XQ,qQ];function WQ(e,t,i){return(r,n,o)=>{if(n!=e||r.char(o+1)==e)return-1;let s=[r.elt(i,o,o+1)];for(let n=o+1;n=65&&e<=90||95==e||e>=97&&e<=122||e>=161}function DQ(e){return 9==e||10==e||13==e||32==e}let MQ=null,BQ=null,IQ=0;function LQ(e,t){let i=e.pos+t;if(IQ==i&&BQ==e)return MQ;let r=e.peek(t);for(;DQ(r);)r=e.peek(++t);let n="";for(;GQ(r);)n+=String.fromCharCode(r),r=e.peek(++t);return BQ=e,IQ=i,MQ=n?n.toLowerCase():r==KQ||r==FQ?void 0:null}const KQ=63,FQ=33;function HQ(e,t){this.name=e,this.parent=t,this.hash=t?t.hash:0;for(let t=0;tJQ.indexOf(t)>-1?new HQ(LQ(r,1)||"",e):e,reduce:(e,t)=>20==t&&e?e.parent:e,reuse(e,t,i,r){let n=t.type.id;return 6==n||36==n?new HQ(LQ(r,1)||"",e):e},hash:e=>e?e.hash:0,strict:!1}),tg=new Kt(((e,t)=>{if(60!=e.next)return void(e.next<0&&t.context&&e.acceptToken(57));e.advance();let i=47==e.next;i&&e.advance();let r=LQ(e,0);if(void 0===r)return;if(!r)return e.acceptToken(i?14:6);let n=t.context?t.context.name:null;if(i){if(r==n)return e.acceptToken(11);if(n&&EQ[n])return e.acceptToken(57,-2);if(t.dialectEnabled(0))return e.acceptToken(12);for(let e=t.context;e;e=e.parent)if(e.name==r)return;e.acceptToken(13)}else{if("script"==r)return e.acceptToken(7);if("style"==r)return e.acceptToken(8);if("textarea"==r)return e.acceptToken(9);if(jQ.hasOwnProperty(r))return e.acceptToken(10);n&&zQ[n]&&zQ[n][r]?e.acceptToken(57,-1):e.acceptToken(6)}}),{contextual:!0}),ig=new Kt((e=>{for(let t=0,i=0;;i++){if(e.next<0){i&&e.acceptToken(58);break}if(45==e.next)t++;else{if(62==e.next&&t>=2){i>3&&e.acceptToken(58,-2);break}t=0}e.advance()}}));const rg=new Kt(((e,t)=>{if(47==e.next&&62==e.peek(1)){let i=t.dialectEnabled(1)||function(e){for(;e;e=e.parent)if("svg"==e.name||"math"==e.name)return!0;return!1}(t.context);e.acceptToken(i?5:4,2)}else 62==e.next&&e.acceptToken(4,1)}));function ng(e,t,i){let r=2+e.length;return new Kt((n=>{for(let o=0,s=0,O=0;;O++){if(n.next<0){O&&n.acceptToken(t);break}if(0==o&&60==n.next||1==o&&47==n.next||o>=2&&os?n.acceptToken(t,-s):n.acceptToken(i,-(s-2));break}if((10==n.next||13==n.next)&&O){n.acceptToken(t,1);break}o=s=0}else s++;n.advance()}}))}const og=ng("script",54,1),sg=ng("style",55,2),Og=ng("textarea",56,3),ag=La({"Text RawText":Ql.content,"StartTag StartCloseTag SelfClosingEndTag EndTag":Ql.angleBracket,TagName:Ql.tagName,"MismatchedCloseTag/TagName":[Ql.tagName,Ql.invalid],AttributeName:Ql.attributeName,"AttributeValue UnquotedAttributeValue":Ql.attributeValue,Is:Ql.definitionOperator,"EntityReference CharacterReference":Ql.character,Comment:Ql.blockComment,ProcessingInst:Ql.processingInstruction,DoctypeDecl:Ql.documentMeta}),lg=li.deserialize({version:14,states:",xOVO!rOOO!WQ#tO'#CqO!]Q#tO'#CzO!bQ#tO'#C}O!gQ#tO'#DQO!lQ#tO'#DSO!qOaO'#CpO!|ObO'#CpO#XOdO'#CpO$eO!rO'#CpOOO`'#Cp'#CpO$lO$fO'#DTO$tQ#tO'#DVO$yQ#tO'#DWOOO`'#Dk'#DkOOO`'#DY'#DYQVO!rOOO%OQ&rO,59]O%WQ&rO,59fO%`Q&rO,59iO%hQ&rO,59lO%sQ&rO,59nOOOa'#D^'#D^O%{OaO'#CxO&WOaO,59[OOOb'#D_'#D_O&`ObO'#C{O&kObO,59[OOOd'#D`'#D`O&sOdO'#DOO'OOdO,59[OOO`'#Da'#DaO'WO!rO,59[O'_Q#tO'#DROOO`,59[,59[OOOp'#Db'#DbO'dO$fO,59oOOO`,59o,59oO'lQ#|O,59qO'qQ#|O,59rOOO`-E7W-E7WO'vQ&rO'#CsOOQW'#DZ'#DZO(UQ&rO1G.wOOOa1G.w1G.wO(^Q&rO1G/QOOOb1G/Q1G/QO(fQ&rO1G/TOOOd1G/T1G/TO(nQ&rO1G/WOOO`1G/W1G/WOOO`1G/Y1G/YO(yQ&rO1G/YOOOa-E7[-E7[O)RQ#tO'#CyOOO`1G.v1G.vOOOb-E7]-E7]O)WQ#tO'#C|OOOd-E7^-E7^O)]Q#tO'#DPOOO`-E7_-E7_O)bQ#|O,59mOOOp-E7`-E7`OOO`1G/Z1G/ZOOO`1G/]1G/]OOO`1G/^1G/^O)gQ,UO,59_OOQW-E7X-E7XOOOa7+$c7+$cOOOb7+$l7+$lOOOd7+$o7+$oOOO`7+$r7+$rOOO`7+$t7+$tO)rQ#|O,59eO)wQ#|O,59hO)|Q#|O,59kOOO`1G/X1G/XO*RO7[O'#CvO*dOMhO'#CvOOQW1G.y1G.yOOO`1G/P1G/POOO`1G/S1G/SOOO`1G/V1G/VOOOO'#D['#D[O*uO7[O,59bOOQW,59b,59bOOOO'#D]'#D]O+WOMhO,59bOOOO-E7Y-E7YOOQW1G.|1G.|OOOO-E7Z-E7Z",stateData:"+s~O!^OS~OUSOVPOWQOXROYTO[]O][O^^O`^Oa^Ob^Oc^Ox^O{_O!dZO~OfaO~OfbO~OfcO~OfdO~OfeO~O!WfOPlP!ZlP~O!XiOQoP!ZoP~O!YlORrP!ZrP~OUSOVPOWQOXROYTOZqO[]O][O^^O`^Oa^Ob^Oc^Ox^O!dZO~O!ZrO~P#dO![sO!euO~OfvO~OfwO~OS|OhyO~OS!OOhyO~OS!QOhyO~OS!SOT!TOhyO~OS!TOhyO~O!WfOPlX!ZlX~OP!WO!Z!XO~O!XiOQoX!ZoX~OQ!ZO!Z!XO~O!YlORrX!ZrX~OR!]O!Z!XO~O!Z!XO~P#dOf!_O~O![sO!e!aO~OS!bO~OS!cO~Oi!dOSgXhgXTgX~OS!fOhyO~OS!gOhyO~OS!hOhyO~OS!iOT!jOhyO~OS!jOhyO~Of!kO~Of!lO~Of!mO~OS!nO~Ok!qO!`!oO!b!pO~OS!rO~OS!sO~OS!tO~Oa!uOb!uOc!uO!`!wO!a!uO~Oa!xOb!xOc!xO!b!wO!c!xO~Oa!uOb!uOc!uO!`!{O!a!uO~Oa!xOb!xOc!xO!b!{O!c!xO~OT~bac!dx{!d~",goto:"%p!`PPPPPPPPPPPPPPPPPPPP!a!gP!mPP!yP!|#P#S#Y#]#`#f#i#l#r#x!aP!a!aP$O$U$l$r$x%O%U%[%bPPPPPPPP%hX^OX`pXUOX`pezabcde{}!P!R!UR!q!dRhUR!XhXVOX`pRkVR!XkXWOX`pRnWR!XnXXOX`pQrXR!XpXYOX`pQ`ORx`Q{aQ}bQ!PcQ!RdQ!UeZ!e{}!P!R!UQ!v!oR!z!vQ!y!pR!|!yQgUR!VgQjVR!YjQmWR![mQpXR!^pQtZR!`tS_O`ToXp",nodeNames:"⚠ StartCloseTag StartCloseTag StartCloseTag EndTag SelfClosingEndTag StartTag StartTag StartTag StartTag StartTag StartCloseTag StartCloseTag StartCloseTag IncompleteCloseTag Document Text EntityReference CharacterReference InvalidEntity Element OpenTag TagName Attribute AttributeName Is AttributeValue UnquotedAttributeValue ScriptText CloseTag OpenTag StyleText CloseTag OpenTag TextareaText CloseTag OpenTag CloseTag SelfClosingTag Comment ProcessingInst MismatchedCloseTag CloseTag DoctypeDecl",maxTerm:67,context:eg,nodeProps:[["closedBy",-10,1,2,3,7,8,9,10,11,12,13,"EndTag",6,"EndTag SelfClosingEndTag",-4,21,30,33,36,"CloseTag"],["openedBy",4,"StartTag StartCloseTag",5,"StartTag",-4,29,32,35,37,"OpenTag"],["group",-9,14,17,18,19,20,39,40,41,42,"Entity",16,"Entity TextContent",-3,28,31,34,"TextContent Entity"]],propSources:[ag],skippedNodes:[0],repeatNodeCount:9,tokenData:"!]tw8twx7Sx!P8t!P!Q5u!Q!]8t!]!^/^!^!a7S!a#S8t#S#T;{#T#s8t#s$f5u$f;'S8t;'S;=`>V<%l?Ah8t?Ah?BY5u?BY?Mn8t?MnO5u!Z5zbkWOX5uXZ7SZ[5u[^7S^p5uqr5urs7Sst+Ptw5uwx7Sx!]5u!]!^7w!^!a7S!a#S5u#S#T7S#T;'S5u;'S;=`8n<%lO5u!R7VVOp7Sqs7St!]7S!]!^7l!^;'S7S;'S;=`7q<%lO7S!R7qOa!R!R7tP;=`<%l7S!Z8OYkWa!ROX+PZ[+P^p+Pqr+Psw+Px!^+P!a#S+P#T;'S+P;'S;=`+t<%lO+P!Z8qP;=`<%l5u!_8{ihSkWOX5uXZ7SZ[5u[^7S^p5uqr8trs7Sst/^tw8twx7Sx!P8t!P!Q5u!Q!]8t!]!^:j!^!a7S!a#S8t#S#T;{#T#s8t#s$f5u$f;'S8t;'S;=`>V<%l?Ah8t?Ah?BY5u?BY?Mn8t?MnO5u!_:sbhSkWa!ROX+PZ[+P^p+Pqr/^sw/^x!P/^!P!Q+P!Q!^/^!a#S/^#S#T0m#T#s/^#s$f+P$f;'S/^;'S;=`1e<%l?Ah/^?Ah?BY+P?BY?Mn/^?MnO+P!VP<%l?Ah;{?Ah?BY7S?BY?Mn;{?MnO7S!V=dXhSa!Rqr0msw0mx!P0m!Q!^0m!a#s0m$f;'S0m;'S;=`1_<%l?Ah0m?BY?Mn0m!V>SP;=`<%l;{!_>YP;=`<%l8t!_>dhhSkWOX@OXZAYZ[@O[^AY^p@OqrBwrsAYswBwwxAYx!PBw!P!Q@O!Q!]Bw!]!^/^!^!aAY!a#SBw#S#TE{#T#sBw#s$f@O$f;'SBw;'S;=`HS<%l?AhBw?Ah?BY@O?BY?MnBw?MnO@O!Z@TakWOX@OXZAYZ[@O[^AY^p@Oqr@OrsAYsw@OwxAYx!]@O!]!^Az!^!aAY!a#S@O#S#TAY#T;'S@O;'S;=`Bq<%lO@O!RA]UOpAYq!]AY!]!^Ao!^;'SAY;'S;=`At<%lOAY!RAtOb!R!RAwP;=`<%lAY!ZBRYkWb!ROX+PZ[+P^p+Pqr+Psw+Px!^+P!a#S+P#T;'S+P;'S;=`+t<%lO+P!ZBtP;=`<%l@O!_COhhSkWOX@OXZAYZ[@O[^AY^p@OqrBwrsAYswBwwxAYx!PBw!P!Q@O!Q!]Bw!]!^Dj!^!aAY!a#SBw#S#TE{#T#sBw#s$f@O$f;'SBw;'S;=`HS<%l?AhBw?Ah?BY@O?BY?MnBw?MnO@O!_DsbhSkWb!ROX+PZ[+P^p+Pqr/^sw/^x!P/^!P!Q+P!Q!^/^!a#S/^#S#T0m#T#s/^#s$f+P$f;'S/^;'S;=`1e<%l?Ah/^?Ah?BY+P?BY?Mn/^?MnO+P!VFQbhSOpAYqrE{rsAYswE{wxAYx!PE{!P!QAY!Q!]E{!]!^GY!^!aAY!a#sE{#s$fAY$f;'SE{;'S;=`G|<%l?AhE{?Ah?BYAY?BY?MnE{?MnOAY!VGaXhSb!Rqr0msw0mx!P0m!Q!^0m!a#s0m$f;'S0m;'S;=`1_<%l?Ah0m?BY?Mn0m!VHPP;=`<%lE{!_HVP;=`<%lBw!ZHcW!bx`P!a`Or(trs'ksv(tw!^(t!^!_)e!_;'S(t;'S;=`*P<%lO(t!aIYlhS`PkW!a`!cpOX$qXZ&XZ[$q[^&X^p$qpq&Xqr-_rs&}sv-_vw/^wx(tx}-_}!OKQ!O!P-_!P!Q$q!Q!^-_!^!_*V!_!a&X!a#S-_#S#T1k#T#s-_#s$f$q$f;'S-_;'S;=`3X<%l?Ah-_?Ah?BY$q?BY?Mn-_?MnO$q!aK_khS`PkW!a`!cpOX$qXZ&XZ[$q[^&X^p$qpq&Xqr-_rs&}sv-_vw/^wx(tx!P-_!P!Q$q!Q!^-_!^!_*V!_!`&X!`!aMS!a#S-_#S#T1k#T#s-_#s$f$q$f;'S-_;'S;=`3X<%l?Ah-_?Ah?BY$q?BY?Mn-_?MnO$q!TM_X`P!a`!cp!eQOr&Xrs&}sv&Xwx(tx!^&X!^!_*V!_;'S&X;'S;=`*y<%lO&X!aNZ!ZhSfQ`PkW!a`!cpOX$qXZ&XZ[$q[^&X^p$qpq&Xqr-_rs&}sv-_vw/^wx(tx}-_}!OMz!O!PMz!P!Q$q!Q![Mz![!]Mz!]!^-_!^!_*V!_!a&X!a!c-_!c!}Mz!}#R-_#R#SMz#S#T1k#T#oMz#o#s-_#s$f$q$f$}-_$}%OMz%O%W-_%W%oMz%o%p-_%p&aMz&a&b-_&b1pMz1p4UMz4U4dMz4d4e-_4e$ISMz$IS$I`-_$I`$IbMz$Ib$Je-_$Je$JgMz$Jg$Kh-_$Kh%#tMz%#t&/x-_&/x&EtMz&Et&FV-_&FV;'SMz;'S;:j!#|;:j;=`3X<%l?&r-_?&r?AhMz?Ah?BY$q?BY?MnMz?MnO$q!a!$PP;=`<%lMz!R!$ZY!a`!cpOq*Vqr!$yrs(Vsv*Vwx)ex!a*V!a!b!4t!b;'S*V;'S;=`*s<%lO*V!R!%Q]!a`!cpOr*Vrs(Vsv*Vwx)ex}*V}!O!%y!O!f*V!f!g!']!g#W*V#W#X!0`#X;'S*V;'S;=`*s<%lO*V!R!&QX!a`!cpOr*Vrs(Vsv*Vwx)ex}*V}!O!&m!O;'S*V;'S;=`*s<%lO*V!R!&vV!a`!cp!dPOr*Vrs(Vsv*Vwx)ex;'S*V;'S;=`*s<%lO*V!R!'dX!a`!cpOr*Vrs(Vsv*Vwx)ex!q*V!q!r!(P!r;'S*V;'S;=`*s<%lO*V!R!(WX!a`!cpOr*Vrs(Vsv*Vwx)ex!e*V!e!f!(s!f;'S*V;'S;=`*s<%lO*V!R!(zX!a`!cpOr*Vrs(Vsv*Vwx)ex!v*V!v!w!)g!w;'S*V;'S;=`*s<%lO*V!R!)nX!a`!cpOr*Vrs(Vsv*Vwx)ex!{*V!{!|!*Z!|;'S*V;'S;=`*s<%lO*V!R!*bX!a`!cpOr*Vrs(Vsv*Vwx)ex!r*V!r!s!*}!s;'S*V;'S;=`*s<%lO*V!R!+UX!a`!cpOr*Vrs(Vsv*Vwx)ex!g*V!g!h!+q!h;'S*V;'S;=`*s<%lO*V!R!+xY!a`!cpOr!+qrs!,hsv!+qvw!-Swx!.[x!`!+q!`!a!/j!a;'S!+q;'S;=`!0Y<%lO!+qq!,mV!cpOv!,hvx!-Sx!`!,h!`!a!-q!a;'S!,h;'S;=`!.U<%lO!,hP!-VTO!`!-S!`!a!-f!a;'S!-S;'S;=`!-k<%lO!-SP!-kO{PP!-nP;=`<%l!-Sq!-xS!cp{POv(Vx;'S(V;'S;=`(h<%lO(Vq!.XP;=`<%l!,ha!.aX!a`Or!.[rs!-Ssv!.[vw!-Sw!`!.[!`!a!.|!a;'S!.[;'S;=`!/d<%lO!.[a!/TT!a`{POr)esv)ew;'S)e;'S;=`)y<%lO)ea!/gP;=`<%l!.[!R!/sV!a`!cp{POr*Vrs(Vsv*Vwx)ex;'S*V;'S;=`*s<%lO*V!R!0]P;=`<%l!+q!R!0gX!a`!cpOr*Vrs(Vsv*Vwx)ex#c*V#c#d!1S#d;'S*V;'S;=`*s<%lO*V!R!1ZX!a`!cpOr*Vrs(Vsv*Vwx)ex#V*V#V#W!1v#W;'S*V;'S;=`*s<%lO*V!R!1}X!a`!cpOr*Vrs(Vsv*Vwx)ex#h*V#h#i!2j#i;'S*V;'S;=`*s<%lO*V!R!2qX!a`!cpOr*Vrs(Vsv*Vwx)ex#m*V#m#n!3^#n;'S*V;'S;=`*s<%lO*V!R!3eX!a`!cpOr*Vrs(Vsv*Vwx)ex#d*V#d#e!4Q#e;'S*V;'S;=`*s<%lO*V!R!4XX!a`!cpOr*Vrs(Vsv*Vwx)ex#X*V#X#Y!+q#Y;'S*V;'S;=`*s<%lO*V!R!4{Y!a`!cpOr!4trs!5ksv!4tvw!6Vwx!8]x!a!4t!a!b!:]!b;'S!4t;'S;=`!;r<%lO!4tq!5pV!cpOv!5kvx!6Vx!a!5k!a!b!7W!b;'S!5k;'S;=`!8V<%lO!5kP!6YTO!a!6V!a!b!6i!b;'S!6V;'S;=`!7Q<%lO!6VP!6lTO!`!6V!`!a!6{!a;'S!6V;'S;=`!7Q<%lO!6VP!7QOxPP!7TP;=`<%l!6Vq!7]V!cpOv!5kvx!6Vx!`!5k!`!a!7r!a;'S!5k;'S;=`!8V<%lO!5kq!7yS!cpxPOv(Vx;'S(V;'S;=`(h<%lO(Vq!8YP;=`<%l!5ka!8bX!a`Or!8]rs!6Vsv!8]vw!6Vw!a!8]!a!b!8}!b;'S!8];'S;=`!:V<%lO!8]a!9SX!a`Or!8]rs!6Vsv!8]vw!6Vw!`!8]!`!a!9o!a;'S!8];'S;=`!:V<%lO!8]a!9vT!a`xPOr)esv)ew;'S)e;'S;=`)y<%lO)ea!:YP;=`<%l!8]!R!:dY!a`!cpOr!4trs!5ksv!4tvw!6Vwx!8]x!`!4t!`!a!;S!a;'S!4t;'S;=`!;r<%lO!4t!R!;]V!a`!cpxPOr*Vrs(Vsv*Vwx)ex;'S*V;'S;=`*s<%lO*V!R!;uP;=`<%l!4t!V!{let O=e.type.id;if(28==O)return ug(e,t,i);if(31==O)return ug(e,t,r);if(34==O)return ug(e,t,n);if(20==O&&o.length){let i,r=e.node,n=r.firstChild,s=n&&cg(n,t);if(s)for(let e of o)if(e.tag==s&&(!e.attrs||e.attrs(i||(i=hg(r,t))))){let t=r.lastChild;return{parser:e.parser,overlay:[{from:n.to,to:37==t.type.id?t.from:r.to}]}}}if(s&&23==O){let i,r=e.node;if(i=r.firstChild){let e=s[t.read(i.from,i.to)];if(e)for(let i of e){if(i.tagName&&i.tagName!=cg(r.parent,t))continue;let e=r.lastChild;if(26==e.type.id){let t=e.from+1,r=e.lastChild,n=e.to-(r&&r.isError?0:1);if(n>t)return{parser:i.parser,overlay:[{from:t,to:n}]}}else if(27==e.type.id)return{parser:i.parser,overlay:[{from:e.from,to:e.to}]}}}}return null}))}const dg=[9,10,11,12,13,32,133,160,5760,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8232,8233,8239,8287,12288];function pg(e){return e>=65&&e<=90||e>=97&&e<=122||e>=161}function Qg(e){return e>=48&&e<=57}const gg=new Kt(((e,t)=>{for(let i=!1,r=0,n=0;;n++){let{next:o}=e;if(!(pg(o)||45==o||95==o||i&&Qg(o))){i&&e.acceptToken(40==o?97:2==r&&t.canShift(2)?2:98);break}!i&&(45!=o||n>0)&&(i=!0),r===n&&45==o&&r++,e.advance()}})),mg=new Kt((e=>{if(dg.includes(e.peek(-1))){let{next:t}=e;(pg(t)||95==t||35==t||46==t||91==t||58==t||45==t)&&e.acceptToken(96)}})),$g=new Kt((e=>{if(!dg.includes(e.peek(-1))){let{next:t}=e;if(37==t&&(e.advance(),e.acceptToken(1)),pg(t)){do{e.advance()}while(pg(e.next));e.acceptToken(1)}}})),bg=La({"AtKeyword import charset namespace keyframes media supports":Ql.definitionKeyword,"from to selector":Ql.keyword,NamespaceName:Ql.namespace,KeyframeName:Ql.labelName,KeyframeRangeName:Ql.operatorKeyword,TagName:Ql.tagName,ClassName:Ql.className,PseudoClassName:Ql.constant(Ql.className),IdName:Ql.labelName,"FeatureName PropertyName":Ql.propertyName,AttributeName:Ql.attributeName,NumberLiteral:Ql.number,KeywordQuery:Ql.keyword,UnaryQueryOp:Ql.operatorKeyword,"CallTag ValueName":Ql.atom,VariableName:Ql.variableName,Callee:Ql.operatorKeyword,Unit:Ql.unit,"UniversalSelector NestingSelector":Ql.definitionOperator,MatchOp:Ql.compareOperator,"ChildOp SiblingOp, LogicOp":Ql.logicOperator,BinOp:Ql.arithmeticOperator,Important:Ql.modifier,Comment:Ql.blockComment,ColorLiteral:Ql.color,"ParenthesizedContent StringLiteral":Ql.string,":":Ql.punctuation,"PseudoOp #":Ql.derefOperator,"; ,":Ql.separator,"( )":Ql.paren,"[ ]":Ql.squareBracket,"{ }":Ql.brace}),Xg={__proto__:null,lang:32,"nth-child":32,"nth-last-child":32,"nth-of-type":32,"nth-last-of-type":32,dir:32,"host-context":32,url:60,"url-prefix":60,domain:60,regexp:60,selector:134},Sg={__proto__:null,"@import":114,"@media":138,"@charset":142,"@namespace":146,"@keyframes":152,"@supports":164},yg={__proto__:null,not:128,only:128},vg=li.deserialize({version:14,states:"9bQYQ[OOO#_Q[OOP#fOWOOOOQP'#Cd'#CdOOQP'#Cc'#CcO#kQ[O'#CfO$_QXO'#CaO$fQ[O'#ChO$qQ[O'#DPO$vQ[O'#DTOOQP'#Ej'#EjO${QdO'#DeO%gQ[O'#DrO${QdO'#DtO%xQ[O'#DvO&TQ[O'#DyO&]Q[O'#EPO&kQ[O'#EROOQS'#Ei'#EiOOQS'#EU'#EUQYQ[OOO&rQXO'#CdO'gQWO'#DaO'lQWO'#EpO'wQ[O'#EpQOQWOOP(RO#tO'#C_POOO)C@X)C@XOOQP'#Cg'#CgOOQP,59Q,59QO#kQ[O,59QO(^Q[O'#EXO(xQWO,58{O)QQ[O,59SO$qQ[O,59kO$vQ[O,59oO(^Q[O,59sO(^Q[O,59uO(^Q[O,59vO)]Q[O'#D`OOQS,58{,58{OOQP'#Ck'#CkOOQO'#C}'#C}OOQP,59S,59SO)dQWO,59SO)iQWO,59SOOQP'#DR'#DROOQP,59k,59kOOQO'#DV'#DVO)nQ`O,59oOOQS'#Cp'#CpO${QdO'#CqO)vQvO'#CsO+TQtO,5:POOQO'#Cx'#CxO)iQWO'#CwO+iQWO'#CyOOQS'#Em'#EmOOQO'#Dh'#DhO+nQ[O'#DoO+|QWO'#EqO&]Q[O'#DmO,[QWO'#DpOOQO'#Er'#ErO({QWO,5:^O,aQpO,5:`OOQS'#Dx'#DxO,iQWO,5:bO,nQ[O,5:bOOQO'#D{'#D{O,vQWO,5:eO,{QWO,5:kO-TQWO,5:mOOQS-E8S-E8SO${QdO,59{O-]Q[O'#EZO-jQWO,5;[O-jQWO,5;[POOO'#ET'#ETP-uO#tO,58yPOOO,58y,58yOOQP1G.l1G.lO.lQXO,5:sOOQO-E8V-E8VOOQS1G.g1G.gOOQP1G.n1G.nO)dQWO1G.nO)iQWO1G.nOOQP1G/V1G/VO.yQ`O1G/ZO/dQXO1G/_O/zQXO1G/aO0bQXO1G/bO0xQWO,59zO0}Q[O'#DOO1UQdO'#CoOOQP1G/Z1G/ZO${QdO1G/ZO1]QpO,59]OOQS,59_,59_O${QdO,59aO1eQWO1G/kOOQS,59c,59cO1jQ!bO,59eO1rQWO'#DhO1}QWO,5:TO2SQWO,5:ZO&]Q[O,5:VO&]Q[O'#E[O2[QWO,5;]O2gQWO,5:XO(^Q[O,5:[OOQS1G/x1G/xOOQS1G/z1G/zOOQS1G/|1G/|O2xQWO1G/|O2}QdO'#D|OOQS1G0P1G0POOQS1G0V1G0VOOQS1G0X1G0XO3YQtO1G/gOOQO,5:u,5:uO3pQ[O,5:uOOQO-E8X-E8XO3}QWO1G0vPOOO-E8R-E8RPOOO1G.e1G.eOOQP7+$Y7+$YOOQP7+$u7+$uO${QdO7+$uOOQS1G/f1G/fO4YQXO'#EoO4aQWO,59jO4fQtO'#EVO5ZQdO'#ElO5eQWO,59ZO5jQpO7+$uOOQS1G.w1G.wOOQS1G.{1G.{OOQS7+%V7+%VO5rQWO1G/PO${QdO1G/oOOQO1G/u1G/uOOQO1G/q1G/qO5wQWO,5:vOOQO-E8Y-E8YO6VQXO1G/vOOQS7+%h7+%hO6^QYO'#CsOOQO'#EO'#EOO6iQ`O'#D}OOQO'#D}'#D}O6tQWO'#E]O6|QdO,5:hOOQS,5:h,5:hO7XQtO'#EYO${QdO'#EYO8VQdO7+%ROOQO7+%R7+%ROOQO1G0a1G0aO8jQpO<T![;'S%^;'S;=`%o<%lO%^l;TUo`Oy%^z!Q%^!Q![;g![;'S%^;'S;=`%o<%lO%^l;nYo`#b[Oy%^z!Q%^!Q![;g![!g%^!g!h<^!h#X%^#X#Y<^#Y;'S%^;'S;=`%o<%lO%^l[[o`#b[Oy%^z!O%^!O!P;g!P!Q%^!Q![>T![!g%^!g!h<^!h#X%^#X#Y<^#Y;'S%^;'S;=`%o<%lO%^n?VSp^Oy%^z;'S%^;'S;=`%o<%lO%^l?hWjWOy%^z!O%^!O!P;O!P!Q%^!Q![>T![;'S%^;'S;=`%o<%lO%^n@VU#_QOy%^z!Q%^!Q![;g![;'S%^;'S;=`%o<%lO%^~@nTjWOy%^z{@}{;'S%^;'S;=`%o<%lO%^~AUSo`#X~Oy%^z;'S%^;'S;=`%o<%lO%^lAg[#b[Oy%^z!O%^!O!P;g!P!Q%^!Q![>T![!g%^!g!h<^!h#X%^#X#Y<^#Y;'S%^;'S;=`%o<%lO%^bBbU]QOy%^z![%^![!]Bt!];'S%^;'S;=`%o<%lO%^bB{S^Qo`Oy%^z;'S%^;'S;=`%o<%lO%^nC^S!W^Oy%^z;'S%^;'S;=`%o<%lO%^dCoSzSOy%^z;'S%^;'S;=`%o<%lO%^bDQU|QOy%^z!`%^!`!aDd!a;'S%^;'S;=`%o<%lO%^bDkS|Qo`Oy%^z;'S%^;'S;=`%o<%lO%^bDzWOy%^z!c%^!c!}Ed!}#T%^#T#oEd#o;'S%^;'S;=`%o<%lO%^bEk[!YQo`Oy%^z}%^}!OEd!O!Q%^!Q![Ed![!c%^!c!}Ed!}#T%^#T#oEd#o;'S%^;'S;=`%o<%lO%^bFfSxQOy%^z;'S%^;'S;=`%o<%lO%^lFwSv[Oy%^z;'S%^;'S;=`%o<%lO%^bGWUOy%^z#b%^#b#cGj#c;'S%^;'S;=`%o<%lO%^bGoUo`Oy%^z#W%^#W#XHR#X;'S%^;'S;=`%o<%lO%^bHYS!`Qo`Oy%^z;'S%^;'S;=`%o<%lO%^bHiUOy%^z#f%^#f#gHR#g;'S%^;'S;=`%o<%lO%^fIQS!RUOy%^z;'S%^;'S;=`%o<%lO%^nIcS!Q^Oy%^z;'S%^;'S;=`%o<%lO%^fItU!PQOy%^z!_%^!_!`6y!`;'S%^;'S;=`%o<%lO%^`JZP;=`<%l$}",tokenizers:[mg,$g,gg,1,2,3,4,new Lt("m~RRYZ[z{a~~g~aO#Z~~dP!P!Qg~lO#[~~",28,102)],topRules:{StyleSheet:[0,4],Styles:[1,84]},specialized:[{term:97,get:e=>Xg[e]||-1},{term:56,get:e=>Sg[e]||-1},{term:98,get:e=>yg[e]||-1}],tokenPrec:1169});let Pg=null;function xg(){if(!Pg&&"object"==typeof document&&document.body){let{style:e}=document.body,t=[],i=new Set;for(let r in e)"cssText"!=r&&"cssFloat"!=r&&"string"==typeof e[r]&&(/[A-Z]/.test(r)&&(r=r.replace(/[A-Z]/g,(e=>"-"+e.toLowerCase()))),i.has(r)||(t.push(r),i.add(r)));Pg=t.sort().map((e=>({type:"property",label:e})))}return Pg||[]}const wg=["active","after","any-link","autofill","backdrop","before","checked","cue","default","defined","disabled","empty","enabled","file-selector-button","first","first-child","first-letter","first-line","first-of-type","focus","focus-visible","focus-within","fullscreen","has","host","host-context","hover","in-range","indeterminate","invalid","is","lang","last-child","last-of-type","left","link","marker","modal","not","nth-child","nth-last-child","nth-last-of-type","nth-of-type","only-child","only-of-type","optional","out-of-range","part","placeholder","placeholder-shown","read-only","read-write","required","right","root","scope","selection","slotted","target","target-text","valid","visited","where"].map((e=>({type:"class",label:e}))),Tg=["above","absolute","activeborder","additive","activecaption","after-white-space","ahead","alias","all","all-scroll","alphabetic","alternate","always","antialiased","appworkspace","asterisks","attr","auto","auto-flow","avoid","avoid-column","avoid-page","avoid-region","axis-pan","background","backwards","baseline","below","bidi-override","blink","block","block-axis","bold","bolder","border","border-box","both","bottom","break","break-all","break-word","bullets","button","button-bevel","buttonface","buttonhighlight","buttonshadow","buttontext","calc","capitalize","caps-lock-indicator","caption","captiontext","caret","cell","center","checkbox","circle","cjk-decimal","clear","clip","close-quote","col-resize","collapse","color","color-burn","color-dodge","column","column-reverse","compact","condensed","contain","content","contents","content-box","context-menu","continuous","copy","counter","counters","cover","crop","cross","crosshair","currentcolor","cursive","cyclic","darken","dashed","decimal","decimal-leading-zero","default","default-button","dense","destination-atop","destination-in","destination-out","destination-over","difference","disc","discard","disclosure-closed","disclosure-open","document","dot-dash","dot-dot-dash","dotted","double","down","e-resize","ease","ease-in","ease-in-out","ease-out","element","ellipse","ellipsis","embed","end","ethiopic-abegede-gez","ethiopic-halehame-aa-er","ethiopic-halehame-gez","ew-resize","exclusion","expanded","extends","extra-condensed","extra-expanded","fantasy","fast","fill","fill-box","fixed","flat","flex","flex-end","flex-start","footnotes","forwards","from","geometricPrecision","graytext","grid","groove","hand","hard-light","help","hidden","hide","higher","highlight","highlighttext","horizontal","hsl","hsla","hue","icon","ignore","inactiveborder","inactivecaption","inactivecaptiontext","infinite","infobackground","infotext","inherit","initial","inline","inline-axis","inline-block","inline-flex","inline-grid","inline-table","inset","inside","intrinsic","invert","italic","justify","keep-all","landscape","large","larger","left","level","lighter","lighten","line-through","linear","linear-gradient","lines","list-item","listbox","listitem","local","logical","loud","lower","lower-hexadecimal","lower-latin","lower-norwegian","lowercase","ltr","luminosity","manipulation","match","matrix","matrix3d","medium","menu","menutext","message-box","middle","min-intrinsic","mix","monospace","move","multiple","multiple_mask_images","multiply","n-resize","narrower","ne-resize","nesw-resize","no-close-quote","no-drop","no-open-quote","no-repeat","none","normal","not-allowed","nowrap","ns-resize","numbers","numeric","nw-resize","nwse-resize","oblique","opacity","open-quote","optimizeLegibility","optimizeSpeed","outset","outside","outside-shape","overlay","overline","padding","padding-box","painted","page","paused","perspective","pinch-zoom","plus-darker","plus-lighter","pointer","polygon","portrait","pre","pre-line","pre-wrap","preserve-3d","progress","push-button","radial-gradient","radio","read-only","read-write","read-write-plaintext-only","rectangle","region","relative","repeat","repeating-linear-gradient","repeating-radial-gradient","repeat-x","repeat-y","reset","reverse","rgb","rgba","ridge","right","rotate","rotate3d","rotateX","rotateY","rotateZ","round","row","row-resize","row-reverse","rtl","run-in","running","s-resize","sans-serif","saturation","scale","scale3d","scaleX","scaleY","scaleZ","screen","scroll","scrollbar","scroll-position","se-resize","self-start","self-end","semi-condensed","semi-expanded","separate","serif","show","single","skew","skewX","skewY","skip-white-space","slide","slider-horizontal","slider-vertical","sliderthumb-horizontal","sliderthumb-vertical","slow","small","small-caps","small-caption","smaller","soft-light","solid","source-atop","source-in","source-out","source-over","space","space-around","space-between","space-evenly","spell-out","square","start","static","status-bar","stretch","stroke","stroke-box","sub","subpixel-antialiased","svg_masks","super","sw-resize","symbolic","symbols","system-ui","table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row","table-row-group","text","text-bottom","text-top","textarea","textfield","thick","thin","threeddarkshadow","threedface","threedhighlight","threedlightshadow","threedshadow","to","top","transform","translate","translate3d","translateX","translateY","translateZ","transparent","ultra-condensed","ultra-expanded","underline","unidirectional-pan","unset","up","upper-latin","uppercase","url","var","vertical","vertical-text","view-box","visible","visibleFill","visiblePainted","visibleStroke","visual","w-resize","wait","wave","wider","window","windowframe","windowtext","words","wrap","wrap-reverse","x-large","x-small","xor","xx-large","xx-small"].map((e=>({type:"keyword",label:e}))).concat(["aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","grey","green","greenyellow","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen"].map((e=>({type:"constant",label:e})))),kg=["a","abbr","address","article","aside","b","bdi","bdo","blockquote","body","br","button","canvas","caption","cite","code","col","colgroup","dd","del","details","dfn","dialog","div","dl","dt","em","figcaption","figure","footer","form","header","hgroup","h1","h2","h3","h4","h5","h6","hr","html","i","iframe","img","input","ins","kbd","label","legend","li","main","meter","nav","ol","output","p","pre","ruby","section","select","small","source","span","strong","sub","summary","sup","table","tbody","td","template","textarea","tfoot","th","thead","tr","u","ul"].map((e=>({type:"type",label:e}))),Yg=/^(\w[\w-]*|-\w[\w-]*|)$/,Rg=/^-(-[\w-]*)?$/;const _g=new yt,Vg=["Declaration"];function Zg(e){for(let t=e;;){if(t.type.isTop)return t;if(!(t=t.parent))return e}}function qg(e,t,i){if(t.to-t.from>4096){let r=_g.get(t);if(r)return r;let n=[],o=new Set,s=t.cursor(nt.IncludeAnonymous);if(s.firstChild())do{for(let t of qg(e,s.node,i))o.has(t.label)||(o.add(t.label),n.push(t))}while(s.nextSibling());return _g.set(t,n),n}{let r=[],n=new Set;return t.cursor().iterate((t=>{var o;if(i(t)&&t.matchContext(Vg)&&":"==(null===(o=t.node.nextSibling)||void 0===o?void 0:o.name)){let i=e.sliceString(t.from,t.to);n.has(i)||(n.add(i),r.push({label:i,type:"variable"}))}})),r}}const Ag=(e=>t=>{let{state:i,pos:r}=t,n=vl(i).resolveInner(r,-1),o=n.type.isError&&n.from==n.to-1&&"-"==i.doc.sliceString(n.from,n.to);if("PropertyName"==n.name||(o||"TagName"==n.name)&&/^(Block|Styles)$/.test(n.resolve(n.to).name))return{from:n.from,options:xg(),validFor:Yg};if("ValueName"==n.name)return{from:n.from,options:Tg,validFor:Yg};if("PseudoClassName"==n.name)return{from:n.from,options:wg,validFor:Yg};if(e(n)||(t.explicit||o)&&function(e,t){var i;if(("("==e.name||e.type.isError)&&(e=e.parent||e),"ArgList"!=e.name)return!1;let r=null===(i=e.parent)||void 0===i?void 0:i.firstChild;return"Callee"==(null==r?void 0:r.name)&&"var"==t.sliceString(r.from,r.to)}(n,i.doc))return{from:e(n)||o?n.from:r,options:qg(i.doc,Zg(n),e),validFor:Rg};if("TagName"==n.name){for(let{parent:e}=n;e;e=e.parent)if("Block"==e.name)return{from:n.from,options:xg(),validFor:Yg};return{from:n.from,options:kg,validFor:Yg}}if(!t.explicit)return null;let s=n.resolve(r),O=s.childBefore(r);return O&&":"==O.name&&"PseudoClassSelector"==s.name?{from:r,options:wg,validFor:Yg}:O&&":"==O.name&&"Declaration"==s.name||"ArgList"==s.name?{from:r,options:Tg,validFor:Yg}:"Block"==s.name||"Styles"==s.name?{from:r,options:xg(),validFor:Yg}:null})((e=>"VariableName"==e.name)),Wg=yl.define({name:"css",parser:vg.configure({props:[El.add({Declaration:Kl()}),Jl.add({"Block KeyframeList":eh})]}),languageData:{commentTokens:{block:{open:"/*",close:"*/"}},indentOnInput:/^\s*\}$/,wordChars:"-"}});const Cg=[9,10,11,12,13,32,133,160,5760,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8232,8233,8239,8287,12288],Ug=new ai({start:!1,shift:(e,t)=>3==t||4==t||307==t?e:308==t,strict:!1}),Ng=new Kt(((e,t)=>{let{next:i}=e;(125==i||-1==i||t.context)&&e.acceptToken(305)}),{contextual:!0,fallback:!0}),jg=new Kt(((e,t)=>{let i,{next:r}=e;Cg.indexOf(r)>-1||(47!=r||47!=(i=e.peek(1))&&42!=i)&&(125==r||59==r||-1==r||t.context||e.acceptToken(304))}),{contextual:!0}),Eg=new Kt(((e,t)=>{let{next:i}=e;if((43==i||45==i)&&(e.advance(),i==e.next)){e.advance();let i=!t.context&&t.canShift(1);e.acceptToken(i?1:2)}}),{contextual:!0}),zg=La({"get set async static":Ql.modifier,"for while do if else switch try catch finally return throw break continue default case":Ql.controlKeyword,"in of await yield void typeof delete instanceof":Ql.operatorKeyword,"let var const using function class extends":Ql.definitionKeyword,"import export from":Ql.moduleKeyword,"with debugger as new":Ql.keyword,TemplateString:Ql.special(Ql.string),super:Ql.atom,BooleanLiteral:Ql.bool,this:Ql.self,null:Ql.null,Star:Ql.modifier,VariableName:Ql.variableName,"CallExpression/VariableName TaggedTemplateExpression/VariableName":Ql.function(Ql.variableName),VariableDefinition:Ql.definition(Ql.variableName),Label:Ql.labelName,PropertyName:Ql.propertyName,PrivatePropertyName:Ql.special(Ql.propertyName),"CallExpression/MemberExpression/PropertyName":Ql.function(Ql.propertyName),"FunctionDeclaration/VariableDefinition":Ql.function(Ql.definition(Ql.variableName)),"ClassDeclaration/VariableDefinition":Ql.definition(Ql.className),PropertyDefinition:Ql.definition(Ql.propertyName),PrivatePropertyDefinition:Ql.definition(Ql.special(Ql.propertyName)),UpdateOp:Ql.updateOperator,"LineComment Hashbang":Ql.lineComment,BlockComment:Ql.blockComment,Number:Ql.number,String:Ql.string,Escape:Ql.escape,ArithOp:Ql.arithmeticOperator,LogicOp:Ql.logicOperator,BitOp:Ql.bitwiseOperator,CompareOp:Ql.compareOperator,RegExp:Ql.regexp,Equals:Ql.definitionOperator,Arrow:Ql.function(Ql.punctuation),": Spread":Ql.punctuation,"( )":Ql.paren,"[ ]":Ql.squareBracket,"{ }":Ql.brace,"InterpolationStart InterpolationEnd":Ql.special(Ql.brace),".":Ql.derefOperator,", ;":Ql.separator,"@":Ql.meta,TypeName:Ql.typeName,TypeDefinition:Ql.definition(Ql.typeName),"type enum interface implements namespace module declare":Ql.definitionKeyword,"abstract global Privacy readonly override":Ql.modifier,"is keyof unique infer":Ql.operatorKeyword,JSXAttributeValue:Ql.attributeValue,JSXText:Ql.content,"JSXStartTag JSXStartCloseTag JSXSelfCloseEndTag JSXEndTag":Ql.angleBracket,"JSXIdentifier JSXNameSpacedName":Ql.tagName,"JSXAttribute/JSXIdentifier JSXAttribute/JSXNameSpacedName":Ql.attributeName,"JSXBuiltin/JSXIdentifier":Ql.standard(Ql.tagName)}),Gg={__proto__:null,export:16,as:21,from:29,default:32,async:37,function:38,extends:48,this:52,true:60,false:60,null:72,void:76,typeof:80,super:98,new:132,delete:148,yield:157,await:161,class:166,public:223,private:223,protected:223,readonly:225,instanceof:244,satisfies:247,in:248,const:250,import:282,keyof:337,unique:341,infer:347,is:383,abstract:403,implements:405,type:407,let:410,var:412,using:415,interface:421,enum:425,namespace:431,module:433,declare:437,global:441,for:460,of:469,while:472,with:476,do:480,if:484,else:486,switch:490,case:496,try:502,catch:506,finally:510,return:514,throw:518,break:522,continue:526,debugger:530},Dg={__proto__:null,async:119,get:121,set:123,declare:183,public:185,private:185,protected:185,static:187,abstract:189,override:191,readonly:197,accessor:199,new:387},Mg={__proto__:null,"<":139},Bg=li.deserialize({version:14,states:"$6zO%TQUOOO%[QUOOO'_QWOOP(lOSOOO*zQ(CjO'#CgO+ROpO'#ChO+aO!bO'#ChO+oO07`O'#D[O.QQUO'#DbO.bQUO'#DmO%[QUO'#DwO0fQUO'#EPOOQ(CY'#EX'#EXO1PQSO'#EUOOQO'#Ej'#EjOOQO'#Id'#IdO1XQSO'#GlO1dQSO'#EiO1iQSO'#EiO3kQ(CjO'#JeO6[Q(CjO'#JfO6xQSO'#FXO6}Q#tO'#FpOOQ(CY'#Fa'#FaO7YO&jO'#FaO7hQ,UO'#FwO9OQSO'#FvOOQ(CY'#Jf'#JfOOQ(CW'#Je'#JeO9TQSO'#GpOOQQ'#KQ'#KQO9`QSO'#IQO9eQ(C[O'#IROOQQ'#JR'#JROOQQ'#IV'#IVQ`QUOOO`QUOOO%[QUO'#DoO9mQUO'#D{O9tQUO'#D}O9ZQSO'#GlO9{Q,UO'#CmO:ZQSO'#EhO:fQSO'#EsO:kQ,UO'#F`O;YQSO'#GlOOQO'#KR'#KRO;_QSO'#KRO;mQSO'#GtO;mQSO'#GuO;mQSO'#GwO9ZQSO'#GzO]QSO'#HZO>eQSO'#HaO>eQSO'#HcO`QUO'#HeO>eQSO'#HgO>eQSO'#HjO>jQSO'#HpO>oQ(C]O'#HvO%[QUO'#HxO>zQ(C]O'#HzO?VQ(C]O'#H|O9eQ(C[O'#IOO?bQ(CjO'#CgO@dQWO'#DgQOQSOOO%[QUO'#D}O@zQSO'#EQO9{Q,UO'#EhOAVQSO'#EhOAbQ`O'#F`OOQQ'#Ce'#CeOOQ(CW'#Dl'#DlOOQ(CW'#Ji'#JiO%[QUO'#JiOOQO'#Jm'#JmOOQO'#Ia'#IaOBbQWO'#EaOOQ(CW'#E`'#E`OC^Q(C`O'#EaOChQWO'#ETOOQO'#Jl'#JlOC|QWO'#JmOEZQWO'#ETOChQWO'#EaPEhO?MpO'#C`POOO)CDp)CDpOOOO'#IW'#IWOEsOpO,59SOOQ(CY,59S,59SOOOO'#IX'#IXOFRO!bO,59SO%[QUO'#D^OOOO'#IZ'#IZOFaO07`O,59vOOQ(CY,59v,59vOFoQUO'#I[OGSQSO'#JgOIUQbO'#JgO+}QUO'#JgOI]QSO,59|OIsQSO'#EjOJQQSO'#JuOJ]QSO'#JtOJ]QSO'#JtOJeQSO,5;WOJjQSO'#JsOOQ(CY,5:X,5:XOJqQUO,5:XOLrQ(CjO,5:cOMcQSO,5:kOM|Q(C[O'#JrONTQSO'#JqO9TQSO'#JqONiQSO'#JqONqQSO,5;VONvQSO'#JqO!#OQbO'#JfOOQ(CY'#Cg'#CgO%[QUO'#EPO!#nQ`O,5:pOOQO'#Jn'#JnOOQO-ElOOQQ'#JZ'#JZOOQQ,5>m,5>mOOQQ-ExQ(CjO,5:iOOQO,5@m,5@mO!?iQ,UO,5=WO!?wQ(C[O'#J[O9OQSO'#J[O!@YQ(C[O,59XO!@eQWO,59XO!@mQ,UO,59XO9{Q,UO,59XO!@xQSO,5;TO!AQQSO'#HYO!AcQSO'#KVO%[QUO,5;xO!7cQWO,5;zO!AkQSO,5=sO!ApQSO,5=sO!AuQSO,5=sO9eQ(C[O,5=sO;mQSO,5=cOOQO'#Cs'#CsO!BTQWO,5=`O!B]Q,UO,5=aO!BhQSO,5=cO!BmQ`O,5=fO!BuQSO'#KRO>jQSO'#HPO9ZQSO'#HRO!BzQSO'#HRO9{Q,UO'#HTO!CPQSO'#HTOOQQ,5=i,5=iO!CUQSO'#HUO!C^QSO'#CmO!CcQSO,58}O!CmQSO,58}O!ErQUO,58}OOQQ,58},58}O!FSQ(C[O,58}O%[QUO,58}O!H_QUO'#H]OOQQ'#H^'#H^OOQQ'#H_'#H_O`QUO,5=uO!HuQSO,5=uO`QUO,5={O`QUO,5=}O!HzQSO,5>PO`QUO,5>RO!IPQSO,5>UO!IUQUO,5>[OOQQ,5>b,5>bO%[QUO,5>bO9eQ(C[O,5>dOOQQ,5>f,5>fO!M`QSO,5>fOOQQ,5>h,5>hO!M`QSO,5>hOOQQ,5>j,5>jO!MeQWO'#DYO%[QUO'#JiO!NSQWO'#JiO!NqQWO'#DhO# SQWO'#DhO##eQUO'#DhO##lQSO'#JhO##tQSO,5:RO##yQSO'#EnO#$XQSO'#JvO#$aQSO,5;XO#$fQWO'#DhO#$sQWO'#ESOOQ(CY,5:l,5:lO%[QUO,5:lO#$zQSO,5:lO>jQSO,5;SO!@eQWO,5;SO!@mQ,UO,5;SO9{Q,UO,5;SO#%SQSO,5@TO#%XQ!LQO,5:pOOQO-E<_-E<_O#&_Q(C`O,5:{OChQWO,5:oO#&iQWO,5:oOChQWO,5:{O!@YQ(C[O,5:oOOQ(CW'#Ed'#EdOOQO,5:{,5:{O%[QUO,5:{O#&vQ(C[O,5:{O#'RQ(C[O,5:{O!@eQWO,5:oOOQO,5;R,5;RO#'aQ(C[O,5:{POOO'#IU'#IUP#'uO?MpO,58zPOOO,58z,58zOOOO-EvO+}QUO,5>vOOQO,5>|,5>|O#(aQUO'#I[OOQO-ERQ(CjO1G0yO#?yQ(CjO1G0yO#ByQ$IUO'#CgO#DwQ$IUO1G1[O#EOQ$IUO'#JfO!,YQSO1G1bO#E`Q(CjO,5?SOOQ(CW-EeQSO1G3kO$.VQUO1G3mO$2ZQUO'#HlOOQQ1G3p1G3pO$2hQSO'#HrO>jQSO'#HtOOQQ1G3v1G3vO$2pQUO1G3vO9eQ(C[O1G3|OOQQ1G4O1G4OOOQ(CW'#GX'#GXO9eQ(C[O1G4QO9eQ(C[O1G4SO$6wQSO,5@TO!*SQUO,5;YO9TQSO,5;YO>jQSO,5:SO!*SQUO,5:SO!@eQWO,5:SO$6|Q$IUO,5:SOOQO,5;Y,5;YO$7WQWO'#I]O$7nQSO,5@SOOQ(CY1G/m1G/mO$7vQWO'#IcO$8QQSO,5@bOOQ(CW1G0s1G0sO# SQWO,5:SOOQO'#I`'#I`O$8YQWO,5:nOOQ(CY,5:n,5:nO#$}QSO1G0WOOQ(CY1G0W1G0WO%[QUO1G0WOOQ(CY1G0n1G0nO>jQSO1G0nO!@eQWO1G0nO!@mQ,UO1G0nOOQ(CW1G5o1G5oO!@YQ(C[O1G0ZOOQO1G0g1G0gO%[QUO1G0gO$8aQ(C[O1G0gO$8lQ(C[O1G0gO!@eQWO1G0ZOChQWO1G0ZO$8zQ(C[O1G0gOOQO1G0Z1G0ZO$9`Q(CjO1G0gPOOO-EvO$9|QSO1G5mO$:UQSO1G5zO$:^QbO1G5{O9TQSO,5>|O$:hQ(CjO1G5xO%[QUO1G5xO$:xQ(C[O1G5xO$;ZQSO1G5wO$;ZQSO1G5wO9TQSO1G5wO$;cQSO,5?PO9TQSO,5?POOQO,5?P,5?PO$;wQSO,5?PO$$XQSO,5?POOQO-ExQ(CjO,5WOOQQ,5>W,5>WO%[QUO'#HmO%(ZQSO'#HoOOQQ,5>^,5>^O9TQSO,5>^OOQQ,5>`,5>`OOQQ7+)b7+)bOOQQ7+)h7+)hOOQQ7+)l7+)lOOQQ7+)n7+)nO%(`QWO1G5oO%(tQ$IUO1G0tO%)OQSO1G0tOOQO1G/n1G/nO%)ZQ$IUO1G/nO>jQSO1G/nO!*SQUO'#DhOOQO,5>w,5>wOOQO-E},5>}OOQO-EjQSO7+&YO!@eQWO7+&YOOQO7+%u7+%uO$9`Q(CjO7+&ROOQO7+&R7+&RO%[QUO7+&RO%)eQ(C[O7+&RO!@YQ(C[O7+%uO!@eQWO7+%uO%)pQ(C[O7+&RO%*OQ(CjO7++dO%[QUO7++dO%*`QSO7++cO%*`QSO7++cOOQO1G4k1G4kO9TQSO1G4kO%*hQSO1G4kOOQO7+%z7+%zO#$}QSO<xOOQO-E<[-E<[O%2^QbO,5>yO%[QUO,5>yOOQO-E<]-E<]O%2hQSO1G5qOOQ(CY<XQ$IUO1G0yO%>`Q$IUO1G0yO%@WQ$IUO1G0yO%@kQ(CjO<XOOQQ,5>Z,5>ZO%NUQSO1G3xO9TQSO7+&`O!*SQUO7+&`OOQO7+%Y7+%YO%NZQ$IUO1G5{O>jQSO7+%YOOQ(CY<jQSO<jQSO7+)dO&5rQSO<{AN>{O%[QUOAN?XOOQO<SQSO7++uO%LgQSOANAyOOQQANAyANAyO!&^Q,UOANAyO&>[QSOANAyOOQQANA{ANA{O9eQ(C[OANA{O#MzQSOANA{OOQO'#HW'#HWOOQO7+*e7+*eOOQQG22uG22uOOQQANEPANEPOOQQANEQANEQOOQQANBTANBTO&>dQSOANBTOOQQ<iQSOLD,jO&>qQ$IUO7+'tO&@gQ$IUO7+'vO&B]Q,UOG26|OOQO<YOPZXYZXlZXzZX{ZX}ZX!fZX!gZX!iZX!mZX#YZX#edX#hZX#iZX#jZX#kZX#lZX#mZX#nZX#oZX#pZX#rZX#tZX#vZX#wZX#|ZX(TZX(dZX(kZX(lZX!WZX!XZX~O#zZX~P#@sOP$]OY:YOl9|Oz#yO{#zO}#{O!f:OO!g#wO!i#xO!m$]O#h9zO#i9{O#j9{O#k9{O#l9}O#m:OO#n:OO#o:XO#p:OO#r:PO#t:RO#v:TO#w:UO(TVO(d$ZO(k#|O(l#}O~O#z.iO~P#CQO#Y:ZO#|:ZO#z(YX!X(YX~P! UO_'[a!W'[a'm'[a'k'[a!h'[a!T'[ap'[a!Y'[a%b'[a!b'[a~P!7zOP#giY#gi_#gil#gi{#gi!W#gi!f#gi!g#gi!i#gi!m#gi#h#gi#i#gi#j#gi#k#gi#l#gi#m#gi#n#gi#o#gi#p#gi#r#gi#t#gi#v#gi#w#gi'm#gi(T#gi(d#gi'k#gi!T#gi!h#gip#gi!Y#gi%b#gi!b#gi~P#,gO_#{i!W#{i'm#{i'k#{i!T#{i!h#{ip#{i!Y#{i%b#{i!b#{i~P!7zO$X.nO$Z.nO~O$X.oO$Z.oO~O!b)_O#Y.pO!Y$_X$U$_X$X$_X$Z$_X$b$_X~O!V.qO~O!Y)bO$U.sO$X)aO$Z)aO$b.tO~O!W:VO!X(XX~P#CQO!X.uO~O!b)_O$b(mX~O$b.wO~Or)qO(U)rO(V.zO~O!T/OO~P!&^O!WdX!bdX!hdX!h$tX(ddX~P!/bO!h/UO~P#,gO!W/VO!b#uO(d'gO!h(qX~O!h/[O~O!V*SO'v%`O!h(qP~O#e/^O~O!T$tX!W$tX!b${X~P!/bO!W/_O!T(rX~P#,gO!b/aO~O!T/cO~Ol/gO!b#uO!i%^O(P%RO(d'gO~O'v/iO~O!b+YO~O_%gO!W/mO'm%gO~O!X/oO~P!3`O!^/pO!_/pO'w!lO(W!mO~O}/rO(W!mO~O#U/sO~O'v&QOe'aX!W'aX~O!W*lOe(Qa~Oe/xO~Oz/yO{/yO}/zOhwa(kwa(lwa!Wwa#Ywa~Oewa#zwa~P$ hOz)vO})wOh$ma(k$ma(l$ma!W$ma#Y$ma~Oe$ma#z$ma~P$!^Oz)vO})wOh$oa(k$oa(l$oa!W$oa#Y$oa~Oe$oa#z$oa~P$#PO#e/|O~Oe$}a!W$}a#Y$}a#z$}a~P!0kO!b#uO~O#e0PO~O!W*}O_(va'm(va~Oz#yO{#zO}#{O!g#wO!i#xO(TVOP!oiY!oil!oi!W!oi!f!oi!m!oi#h!oi#i!oi#j!oi#k!oi#l!oi#m!oi#n!oi#o!oi#p!oi#r!oi#t!oi#v!oi#w!oi(d!oi(k!oi(l!oi~O_!oi'm!oi'k!oi!T!oi!h!oip!oi!Y!oi%b!oi!b!oi~P$$nOh.UO!Y'VO%b.TO~Oj0ZO'v0YO~P!1]O!b+YO_(Oa!Y(Oa'm(Oa!W(Oa~O#e0aO~OYZX!WdX!XdX~O!W0bO!X(zX~O!X0dO~OY0eO~O'v+bO'xTO'{UO~O!Y%wO'v%`O^'iX!W'iX~O!W+gO^(ya~O!h0jO~P!7zOY0mO~O^0nO~O#Y0qO~Oh0tO!Y$|O~O(W(tO!X(wP~Oh0}O!Y0zO%b0|O(P%RO~OY1XO!W1VO!X(xX~O!X1YO~O^1[O_%gO'm%gO~O'v#mO'xTO'{UO~O#Y$eO#|$eOP(YXY(YXl(YXz(YX{(YX}(YX!W(YX!f(YX!i(YX!m(YX#h(YX#i(YX#j(YX#k(YX#l(YX#m(YX#n(YX#o(YX#r(YX#t(YX#v(YX#w(YX(T(YX(d(YX(k(YX(l(YX~O#p1_O&S1`O_(YX!g(YX~P$+dO#Y$eO#p1_O&S1`O~O_1bO~P%[O_1dO~O&]1gOP&ZiQ&ZiW&Zi_&Zib&Zic&Zij&Zil&Zim&Zin&Zit&Ziv&Zix&Zi}&Zi!R&Zi!S&Zi!Y&Zi!d&Zi!i&Zi!l&Zi!m&Zi!n&Zi!p&Zi!r&Zi!u&Zi!y&Zi#q&Zi$R&Zi$V&Zi%a&Zi%c&Zi%e&Zi%f&Zi%g&Zi%j&Zi%l&Zi%o&Zi%p&Zi%r&Zi&O&Zi&U&Zi&W&Zi&Y&Zi&[&Zi&_&Zi&e&Zi&k&Zi&m&Zi&o&Zi&q&Zi&s&Zi'k&Zi'v&Zi'x&Zi'{&Zi(T&Zi(c&Zi(p&Zi!X&Zi`&Zi&b&Zi~O`1mO!X1kO&b1lO~P`O!YXO!i1oO~O&i,jOP&diQ&diW&di_&dib&dic&dij&dil&dim&din&dit&div&dix&di}&di!R&di!S&di!Y&di!d&di!i&di!l&di!m&di!n&di!p&di!r&di!u&di!y&di#q&di$R&di$V&di%a&di%c&di%e&di%f&di%g&di%j&di%l&di%o&di%p&di%r&di&O&di&U&di&W&di&Y&di&[&di&_&di&e&di&k&di&m&di&o&di&q&di&s&di'k&di'v&di'x&di'{&di(T&di(c&di(p&di!X&di&]&di`&di&b&di~O!T1uO~O!W![a!X![a~P#CQOm!nO}!oO!V1{O(W!mO!W'PX!X'PX~P@OO!W,zO!X([a~O!W'VX!X'VX~P!7SO!W,}O!X(ja~O!X2SO~P'_O_%gO#Y2]O'm%gO~O_%gO!b#uO#Y2]O'm%gO~O_%gO!b#uO!m2aO#Y2]O'm%gO(d'gO~O_%gO'm%gO~P!7zO!W$aOp$la~O!T'Oi!W'Oi~P!7zO!W'{O!T(Zi~O!W(SO!T(hi~O!T(ii!W(ii~P!7zO!W(fi!h(fi_(fi'm(fi~P!7zO#Y2cO!W(fi!h(fi_(fi'm(fi~O!W(`O!h(ei~O}%aO!Y%bO!y]O#c2hO#d2gO'v%`O~O}%aO!Y%bO#d2gO'v%`O~Oh2oO!Y'VO%b2nO~Oh2oO!Y'VO%b2nO(P%RO~O#ewaPwaYwa_walwa!fwa!gwa!iwa!mwa#hwa#iwa#jwa#kwa#lwa#mwa#nwa#owa#pwa#rwa#twa#vwa#wwa'mwa(Twa(dwa!hwa!Twa'kwapwa!Ywa%bwa!bwa~P$ hO#e$maP$maY$ma_$mal$ma{$ma!f$ma!g$ma!i$ma!m$ma#h$ma#i$ma#j$ma#k$ma#l$ma#m$ma#n$ma#o$ma#p$ma#r$ma#t$ma#v$ma#w$ma'm$ma(T$ma(d$ma!h$ma!T$ma'k$map$ma!Y$ma%b$ma!b$ma~P$!^O#e$oaP$oaY$oa_$oal$oa{$oa!f$oa!g$oa!i$oa!m$oa#h$oa#i$oa#j$oa#k$oa#l$oa#m$oa#n$oa#o$oa#p$oa#r$oa#t$oa#v$oa#w$oa'm$oa(T$oa(d$oa!h$oa!T$oa'k$oap$oa!Y$oa%b$oa!b$oa~P$#PO#e$}aP$}aY$}a_$}al$}a{$}a!W$}a!f$}a!g$}a!i$}a!m$}a#h$}a#i$}a#j$}a#k$}a#l$}a#m$}a#n$}a#o$}a#p$}a#r$}a#t$}a#v$}a#w$}a'm$}a(T$}a(d$}a!h$}a!T$}a'k$}a#Y$}ap$}a!Y$}a%b$}a!b$}a~P#,gO_#]q!W#]q'm#]q'k#]q!T#]q!h#]qp#]q!Y#]q%b#]q!b#]q~P!7zOe'QX!W'QX~P!'vO!W._Oe(^a~O!V2wO!W'RX!h'RX~P%[O!W.bO!h(_a~O!W.bO!h(_a~P!7zO!T2zO~O#z!ka!X!ka~PJxO#z!ca!W!ca!X!ca~P#CQO#z!oa!X!oa~P!:eO#z!qa!X!qa~P!=OO!Y3^O$VfO$`3_O~O!X3cO~Op3dO~P#,gO_$iq!W$iq'm$iq'k$iq!T$iq!h$iqp$iq!Y$iq%b$iq!b$iq~P!7zO!T3eO~P#,gOz)vO})wO(l){Oh%Yi(k%Yi!W%Yi#Y%Yi~Oe%Yi#z%Yi~P$I|Oz)vO})wOh%[i(k%[i(l%[i!W%[i#Y%[i~Oe%[i#z%[i~P$JoO(d$ZO~P#,gO!V3hO'v%`O!W']X!h']X~O!W/VO!h(qa~O!W/VO!b#uO!h(qa~O!W/VO!b#uO(d'gO!h(qa~Oe$vi!W$vi#Y$vi#z$vi~P!0kO!V3pO'v*XO!T'_X!W'_X~P!1YO!W/_O!T(ra~O!W/_O!T(ra~P#,gO!b#uO#p3xO~Ol3{O!b#uO(d'gO~Oe(Ri!W(Ri~P!0kO#Y4OOe(Ri!W(Ri~P!0kO!h4RO~O_$jq!W$jq'm$jq'k$jq!T$jq!h$jqp$jq!Y$jq%b$jq!b$jq~P!7zO!T4VO~O!W4WO!Y(sX~P#,gO!g#wO~P4XO_$tX!Y$tX%VZX'm$tX!W$tX~P!/bO%V4YO_iXhiXziX}iX!YiX'miX(kiX(liX!WiX~O%V4YO~O%c4aO'v+bO'xTO'{UO!W'hX!X'hX~O!W0bO!X(za~OY4eO~O^4fO~O_%gO'm%gO~P#,gO!Y$|O~P#,gO!W4nO#Y4pO!X(wX~O!X4qO~Om!nO}4rO!]!xO!^!uO!_!uO!y9rO!}!pO#O!pO#P!pO#Q!pO#R!pO#U4wO#V!yO'w!lO'xTO'{UO(W!mO(c!sO~O!X4vO~P%$nOh4|O!Y0zO%b4{O~Oh4|O!Y0zO%b4{O(P%RO~O'v#mO!W'gX!X'gX~O!W1VO!X(xa~O'xTO'{UO(W5VO~O^5ZO~O#p5^O&S5_O~PMhO!h5`O~P%[O_5bO~O_5bO~P%[O`1mO!X5gO&b1lO~P`O!b5iO~O!b5kO!W(]i!X(]i!b(]i!i(]i(P(]i~O!W#bi!X#bi~P#CQO#Y5lO!W#bi!X#bi~O!W![i!X![i~P#CQO_%gO#Y5uO'm%gO~O_%gO!b#uO#Y5uO'm%gO~O!W(fq!h(fq_(fq'm(fq~P!7zO!W(`O!h(eq~O}%aO!Y%bO#d5|O'v%`O~O!Y'VO%b6PO~Oh6SO!Y'VO%b6PO~O#e%YiP%YiY%Yi_%Yil%Yi{%Yi!f%Yi!g%Yi!i%Yi!m%Yi#h%Yi#i%Yi#j%Yi#k%Yi#l%Yi#m%Yi#n%Yi#o%Yi#p%Yi#r%Yi#t%Yi#v%Yi#w%Yi'm%Yi(T%Yi(d%Yi!h%Yi!T%Yi'k%Yip%Yi!Y%Yi%b%Yi!b%Yi~P$I|O#e%[iP%[iY%[i_%[il%[i{%[i!f%[i!g%[i!i%[i!m%[i#h%[i#i%[i#j%[i#k%[i#l%[i#m%[i#n%[i#o%[i#p%[i#r%[i#t%[i#v%[i#w%[i'm%[i(T%[i(d%[i!h%[i!T%[i'k%[ip%[i!Y%[i%b%[i!b%[i~P$JoO#e$viP$viY$vi_$vil$vi{$vi!W$vi!f$vi!g$vi!i$vi!m$vi#h$vi#i$vi#j$vi#k$vi#l$vi#m$vi#n$vi#o$vi#p$vi#r$vi#t$vi#v$vi#w$vi'm$vi(T$vi(d$vi!h$vi!T$vi'k$vi#Y$vip$vi!Y$vi%b$vi!b$vi~P#,gOe'Qa!W'Qa~P!0kO!W'Ra!h'Ra~P!7zO!W.bO!h(_i~O#z#]i!W#]i!X#]i~P#CQOP$]Oz#yO{#zO}#{O!g#wO!i#xO!m$]O(TVOY#gil#gi!f#gi#i#gi#j#gi#k#gi#l#gi#m#gi#n#gi#o#gi#p#gi#r#gi#t#gi#v#gi#w#gi#z#gi(d#gi(k#gi(l#gi!W#gi!X#gi~O#h#gi~P%2}O#h9zO~P%2}OP$]Oz#yO{#zO}#{O!g#wO!i#xO!m$]O#h9zO#i9{O#j9{O#k9{O(TVOY#gi!f#gi#l#gi#m#gi#n#gi#o#gi#p#gi#r#gi#t#gi#v#gi#w#gi#z#gi(d#gi(k#gi(l#gi!W#gi!X#gi~Ol#gi~P%5YOl9|O~P%5YOP$]Ol9|Oz#yO{#zO}#{O!g#wO!i#xO!m$]O#h9zO#i9{O#j9{O#k9{O#l9}O(TVO#r#gi#t#gi#v#gi#w#gi#z#gi(d#gi(k#gi(l#gi!W#gi!X#gi~OY#gi!f#gi#m#gi#n#gi#o#gi#p#gi~P%7eOY:YO!f:OO#m:OO#n:OO#o:XO#p:OO~P%7eOP$]OY:YOl9|Oz#yO{#zO}#{O!f:OO!g#wO!i#xO!m$]O#h9zO#i9{O#j9{O#k9{O#l9}O#m:OO#n:OO#o:XO#p:OO#r:PO(TVO#t#gi#v#gi#w#gi#z#gi(d#gi(l#gi!W#gi!X#gi~O(k#gi~P%:PO(k#|O~P%:POP$]OY:YOl9|Oz#yO{#zO}#{O!f:OO!g#wO!i#xO!m$]O#h9zO#i9{O#j9{O#k9{O#l9}O#m:OO#n:OO#o:XO#p:OO#r:PO#t:RO(TVO(k#|O#v#gi#w#gi#z#gi(d#gi!W#gi!X#gi~O(l#gi~P%<[O(l#}O~P%<[OP$]OY:YOl9|Oz#yO{#zO}#{O!f:OO!g#wO!i#xO!m$]O#h9zO#i9{O#j9{O#k9{O#l9}O#m:OO#n:OO#o:XO#p:OO#r:PO#t:RO#v:TO(TVO(k#|O(l#}O~O#w#gi#z#gi(d#gi!W#gi!X#gi~P%>gO_#xy!W#xy'm#xy'k#xy!T#xy!h#xyp#xy!Y#xy%b#xy!b#xy~P!7zOh;mOz)vO})wO(k)yO(l){O~OP#giY#gil#gi{#gi!f#gi!g#gi!i#gi!m#gi#h#gi#i#gi#j#gi#k#gi#l#gi#m#gi#n#gi#o#gi#p#gi#r#gi#t#gi#v#gi#w#gi#z#gi(T#gi(d#gi!W#gi!X#gi~P%A_O!g#wOP(SXY(SXh(SXl(SXz(SX{(SX}(SX!f(SX!i(SX!m(SX#h(SX#i(SX#j(SX#k(SX#l(SX#m(SX#n(SX#o(SX#p(SX#r(SX#t(SX#v(SX#w(SX#z(SX(T(SX(d(SX(k(SX(l(SX!W(SX!X(SX~O#z#{i!W#{i!X#{i~P#CQO#z!oi!X!oi~P$$nO!X6`O~O!W'[a!X'[a~P#CQO!b#uO(d'gO!W']a!h']a~O!W/VO!h(qi~O!W/VO!b#uO!h(qi~Oe$vq!W$vq#Y$vq#z$vq~P!0kO!T'_a!W'_a~P#,gO!b6gO~O!W/_O!T(ri~P#,gO!W/_O!T(ri~O!T6kO~O!b#uO#p6pO~Ol6qO!b#uO(d'gO~O!T6sO~Oe$xq!W$xq#Y$xq#z$xq~P!0kO_$jy!W$jy'm$jy'k$jy!T$jy!h$jyp$jy!Y$jy%b$jy!b$jy~P!7zO!b5kO~O!W4WO!Y(sa~O_#]y!W#]y'm#]y'k#]y!T#]y!h#]yp#]y!Y#]y%b#]y!b#]y~P!7zOY6xO~O!W0bO!X(zi~O^7OO~O(W(tO!W'dX!X'dX~O!W4nO!X(wa~OjkO'v7VO~P.iO!X7YO~P%$nOm!nO}7ZO'xTO'{UO(W!mO(c!sO~O!Y0zO~O!Y0zO%b7]O~Oh7`O!Y0zO%b7]O~OY7eO!W'ga!X'ga~O!W1VO!X(xi~O!h7iO~O!h7jO~O!h7mO~O!h7mO~P%[O_7oO~O!b7pO~O!h7qO~O!W(ii!X(ii~P#CQO_%gO#Y7yO'm%gO~O!W(fy!h(fy_(fy'm(fy~P!7zO!W(`O!h(ey~O!Y'VO%b7|O~O#e$vqP$vqY$vq_$vql$vq{$vq!W$vq!f$vq!g$vq!i$vq!m$vq#h$vq#i$vq#j$vq#k$vq#l$vq#m$vq#n$vq#o$vq#p$vq#r$vq#t$vq#v$vq#w$vq'm$vq(T$vq(d$vq!h$vq!T$vq'k$vq#Y$vqp$vq!Y$vq%b$vq!b$vq~P#,gO#e$xqP$xqY$xq_$xql$xq{$xq!W$xq!f$xq!g$xq!i$xq!m$xq#h$xq#i$xq#j$xq#k$xq#l$xq#m$xq#n$xq#o$xq#p$xq#r$xq#t$xq#v$xq#w$xq'm$xq(T$xq(d$xq!h$xq!T$xq'k$xq#Y$xqp$xq!Y$xq%b$xq!b$xq~P#,gO!W'Ri!h'Ri~P!7zO#z#]q!W#]q!X#]q~P#CQOz/yO{/yO}/zOPwaYwahwalwa!fwa!gwa!iwa!mwa#hwa#iwa#jwa#kwa#lwa#mwa#nwa#owa#pwa#rwa#twa#vwa#wwa#zwa(Twa(dwa(kwa(lwa!Wwa!Xwa~Oz)vO})wOP$maY$mah$mal$ma{$ma!f$ma!g$ma!i$ma!m$ma#h$ma#i$ma#j$ma#k$ma#l$ma#m$ma#n$ma#o$ma#p$ma#r$ma#t$ma#v$ma#w$ma#z$ma(T$ma(d$ma(k$ma(l$ma!W$ma!X$ma~Oz)vO})wOP$oaY$oah$oal$oa{$oa!f$oa!g$oa!i$oa!m$oa#h$oa#i$oa#j$oa#k$oa#l$oa#m$oa#n$oa#o$oa#p$oa#r$oa#t$oa#v$oa#w$oa#z$oa(T$oa(d$oa(k$oa(l$oa!W$oa!X$oa~OP$}aY$}al$}a{$}a!f$}a!g$}a!i$}a!m$}a#h$}a#i$}a#j$}a#k$}a#l$}a#m$}a#n$}a#o$}a#p$}a#r$}a#t$}a#v$}a#w$}a#z$}a(T$}a(d$}a!W$}a!X$}a~P%A_O#z$iq!W$iq!X$iq~P#CQO#z$jq!W$jq!X$jq~P#CQO!X8WO~O#z8XO~P!0kO!b#uO!W']i!h']i~O!b#uO(d'gO!W']i!h']i~O!W/VO!h(qq~O!T'_i!W'_i~P#,gO!W/_O!T(rq~O!T8_O~P#,gO!T8_O~Oe(Ry!W(Ry~P!0kO!W'ba!Y'ba~P#,gO_%Uq!Y%Uq'm%Uq!W%Uq~P#,gOY8dO~O!W0bO!X(zq~O#Y8hO!W'da!X'da~O!W4nO!X(wi~P#CQOPZXYZXlZXzZX{ZX}ZX!TZX!WZX!fZX!gZX!iZX!mZX#YZX#edX#hZX#iZX#jZX#kZX#lZX#mZX#nZX#oZX#pZX#rZX#tZX#vZX#wZX#|ZX(TZX(dZX(kZX(lZX~O!b%SX#p%SX~P&2_O!Y0zO%b8lO~O'xTO'{UO(W8qO~O!W1VO!X(xq~O!h8tO~O!h8uO~O!h8vO~O!h8vO~P%[O#Y8yO!W#by!X#by~O!W#by!X#by~P#CQO!Y'VO%b9OO~O#z#xy!W#xy!X#xy~P#CQOP$viY$vil$vi{$vi!f$vi!g$vi!i$vi!m$vi#h$vi#i$vi#j$vi#k$vi#l$vi#m$vi#n$vi#o$vi#p$vi#r$vi#t$vi#v$vi#w$vi#z$vi(T$vi(d$vi!W$vi!X$vi~P%A_Oz)vO})wO(l){OP%YiY%Yih%Yil%Yi{%Yi!f%Yi!g%Yi!i%Yi!m%Yi#h%Yi#i%Yi#j%Yi#k%Yi#l%Yi#m%Yi#n%Yi#o%Yi#p%Yi#r%Yi#t%Yi#v%Yi#w%Yi#z%Yi(T%Yi(d%Yi(k%Yi!W%Yi!X%Yi~Oz)vO})wOP%[iY%[ih%[il%[i{%[i!f%[i!g%[i!i%[i!m%[i#h%[i#i%[i#j%[i#k%[i#l%[i#m%[i#n%[i#o%[i#p%[i#r%[i#t%[i#v%[i#w%[i#z%[i(T%[i(d%[i(k%[i(l%[i!W%[i!X%[i~O#z$jy!W$jy!X$jy~P#CQO#z#]y!W#]y!X#]y~P#CQO!b#uO!W']q!h']q~O!W/VO!h(qy~O!T'_q!W'_q~P#,gO!T9VO~P#,gO!W0bO!X(zy~O!W4nO!X(wq~O!Y0zO%b9^O~O!h9aO~O!Y'VO%b9fO~OP$vqY$vql$vq{$vq!f$vq!g$vq!i$vq!m$vq#h$vq#i$vq#j$vq#k$vq#l$vq#m$vq#n$vq#o$vq#p$vq#r$vq#t$vq#v$vq#w$vq#z$vq(T$vq(d$vq!W$vq!X$vq~P%A_OP$xqY$xql$xq{$xq!f$xq!g$xq!i$xq!m$xq#h$xq#i$xq#j$xq#k$xq#l$xq#m$xq#n$xq#o$xq#p$xq#r$xq#t$xq#v$xq#w$xq#z$xq(T$xq(d$xq!W$xq!X$xq~P%A_Oe%^!Z!W%^!Z#Y%^!Z#z%^!Z~P!0kO!W'dq!X'dq~P#CQO!W#b!Z!X#b!Z~P#CQO#e%^!ZP%^!ZY%^!Z_%^!Zl%^!Z{%^!Z!W%^!Z!f%^!Z!g%^!Z!i%^!Z!m%^!Z#h%^!Z#i%^!Z#j%^!Z#k%^!Z#l%^!Z#m%^!Z#n%^!Z#o%^!Z#p%^!Z#r%^!Z#t%^!Z#v%^!Z#w%^!Z'm%^!Z(T%^!Z(d%^!Z!h%^!Z!T%^!Z'k%^!Z#Y%^!Zp%^!Z!Y%^!Z%b%^!Z!b%^!Z~P#,gOP%^!ZY%^!Zl%^!Z{%^!Z!f%^!Z!g%^!Z!i%^!Z!m%^!Z#h%^!Z#i%^!Z#j%^!Z#k%^!Z#l%^!Z#m%^!Z#n%^!Z#o%^!Z#p%^!Z#r%^!Z#t%^!Z#v%^!Z#w%^!Z#z%^!Z(T%^!Z(d%^!Z!W%^!Z!X%^!Z~P%A_Op(XX~P1qO'w!lO~P!*SO!TdX!WdX#YdX~P&2_OPZXYZXlZXzZX{ZX}ZX!WZX!WdX!fZX!gZX!iZX!mZX#YZX#YdX#edX#hZX#iZX#jZX#kZX#lZX#mZX#nZX#oZX#pZX#rZX#tZX#vZX#wZX#|ZX(TZX(dZX(kZX(lZX~O!bdX!hZX!hdX(ddX~P&GuOP9qOQ9qOb;bOc!iOjkOl9qOmkOnkOtkOv9qOx9qO}WO!RkO!SkO!YXO!d9tO!iZO!l9qO!m9qO!n9qO!p9uO!r9xO!u!hO$R!kO$VfO'v)UO'xTO'{UO(TVO(c[O(p;`O~O!W:VO!X$la~Oj%SOl$tOm$sOn$sOt%TOv%UOx:]O}${O!Y$|O!d;gO!i$xO#d:cO$R%YO$n:_O$p:aO$s%ZO'v(lO'xTO'{UO(P%RO(T$uO~O#q)]O~P&LkO!XZX!XdX~P&GuO#e9yO~O!b#uO#e9yO~O#Y:ZO~O#p:OO~O#Y:eO!W(iX!X(iX~O#Y:ZO!W(gX!X(gX~O#e:fO~Oe:hO~P!0kO#e:mO~O#e:nO~O!b#uO#e:oO~O!b#uO#e:fO~O#z:pO~P#CQO#e:qO~O#e:rO~O#e:sO~O#e:tO~O#e:uO~O#e:vO~O#z:wO~P!0kO#z:xO~P!0kO$V~!g!}#O#Q#R#U#c#d#o(p$n$p$s%V%a%b%c%j%l%o%p%r%t~'qR$V(p#i!S'o'w#jm#h#klz'p(W'p'v$X$Z$X~",goto:"$'R)OPPPP)PPP)SP)eP*t.xPPPP5YPP5pP;l>sP?WP?WPPP?WP@xP?WP?WP?WP@|PPARPAlPFdPPPFhPPPPFhIiPPPIoJjPFhPLxPPPP! WFhPPPFhPFhP!#fFhP!&z!'|!(VP!(y!(}!(yPPPPP!,Y!'|PP!,v!-pP!0dFhFh!0i!3s!8Y!8Y!wP#@W#@_#@gPPPP#Du#Gl#NT#NW#NZ$ S$ V$ Y$ a$ iPP$ o$ s$!k$#j$#n$$SPP$$W$$^$$bP$$e$$i$$l$%b$%y$&b$&f$&i$&l$&r$&u$&y$&}R!{RoqOXst!Z#c%f&i&k&l&n,b,g1g1jY!uQ'V-S0z4uQ%lvQ%tyQ%{|Q&a!VS&}!e,zQ']!iS'c!r!xS*_$|*dQ+`%uQ+m%}Q,R&ZQ-Q'UQ-['^Q-d'dQ/p*fQ1U,SR:d9u%OdOPWXYZstuvw!Z!`!g!o#R#V#Y#c#n#t#x#{$O$P$Q$R$S$T$U$V$W$X$Y$a$e%f%l%y&b&e&i&k&l&n&r&z'X'i'y'{(R(Y(n(r(v)u*x*|,_,b,g-W-`-n-t.b.i/z0P0a0}1_1`1b1d1g1j1l2]2c2w4r4|5^5_5b5u7Z7`7o7yS#p]9r!r)W$[$m'O)j,s,v.q1{3^4p5l8h8y9q9t9u9x9y9z9{9|9}:O:P:Q:R:S:T:U:V:Z:d:e:f:h:o:p:u:v;cQ*o%VQ+e%wQ,T&^Q,[&fQ.X:[Q0W+WQ0[+YQ0g+fQ1^,YQ2k.UQ4`0bQ5T1VQ6R2oQ6X:]Q6z4aR8P6S&|kOPWXYZstuvw!Z!`!g!o#R#V#Y#c#n#t#x#{$O$P$Q$R$S$T$U$V$W$X$Y$[$a$e$m%f%l%y&b&e&f&i&k&l&n&r&z'O'X'i'y'{(R(Y(n(r(v)j)u*x*|+W,_,b,g,s,v-W-`-n-t.U.b.i.q/z0P0a0}1_1`1b1d1g1j1l1{2]2c2o2w3^4p4r4|5^5_5b5l5u6S7Z7`7o7y8h8y9q9t9u9x9y9z9{9|9}:O:P:Q:R:S:T:U:V:Z:d:e:f:h:o:p:u:v;ct!nQ!r!u!x!y&}'U'V'c'd'e,z-Q-S-d0z4u4w$^$si#u#w$c$d$x${%W%X%])q)w)z)|)}*U*[*j*k+V+Y+q+t.T._/P/^/_/a/|0q0t0|2n3f3p3x4O4W4Y4{6P6g6p7]7|8X8l9O9^9f:X:Y:^:_:`:a:b:c:i:j:k:l:m:n:q:r:s:t:w:x;`;h;i;l;mQ&O|Q&{!eS'R%b,}Q+e%wQ/{*sQ0g+fQ0l+lQ1],XQ1^,YQ4`0bQ4i0nQ5W1XQ5X1[Q6z4aQ6}4fQ7h5ZQ8g7OR8r7ernOXst!V!Z#c%f&`&i&k&l&n,b,g1g1jR,V&b&v^OPXYstuvwz!Z!`!g!j!o#R#c#n#t#x#{$O$P$Q$R$S$T$U$V$W$X$Y$[$a$e$m%f%l%y&b&e&f&i&k&l&n&r&z'X'i'{(R(Y(n(r(v)j)u*x*|+W,_,b,g,s,v-W-`-n-t.U.b.i.q/z0P0a0}1_1`1b1d1g1j1l1{2]2c2o2w3^4p4r4|5^5_5b5l5u6S7Z7`7o7y8h8y9q9t9u9x9y9z9{9|9}:O:P:Q:R:S:T:U:V:Z:d:e:f:h:o:p:u:v;b;c[#[WZ#V#Y'O'y!S%cm#g#h#k%^%a(S(^(_(`*z*{*},^,t-r-x-y-z-|1o2g2h5k5|Q%oxQ%syS%x|%}Q&U!TQ'Y!hQ'[!iQ(g#rS*R$x*VS+_%t%uQ+c%wQ+|&XQ,Q&ZS-Z']'^Q.W(hQ/Z*SQ0`+`Q0f+fQ0h+gQ0k+kQ1P+}S1T,R,SQ2X-[Q3g/VQ4_0bQ4c0eQ4h0mQ5S1UQ6d3hQ6y4aQ6|4eQ8c6xR9X8dv$zi#w%W%X%])z)|*U*j*k._/^/|3f4O8X;`;h;i!S%qy!i!t%s%t%u&|'[']'^'b'l*^+_+`,w-Z-[-c/h0`2Q2X2`3zQ+X%oQ+r&RQ+u&SQ,P&ZQ.V(gQ1O+|U1S,Q,R,SQ2p.WQ4}1PS5R1T1UQ7d5S#O;d#u$c$d$x${)q)w)}*[+V+Y+q+t.T/P/_/a0q0t0|2n3p3x4W4Y4{6P6g6p7]7|8l9O9^9f:^:`:b:i:k:m:q:s:w;l;mg;e:X:Y:_:a:c:j:l:n:r:t:xW%Pi%R*l;`S&R!Q&`Q&S!RQ&T!SR+p&P$_%Oi#u#w$c$d$x${%W%X%])q)w)z)|)}*U*[*j*k+V+Y+q+t.T._/P/^/_/a/|0q0t0|2n3f3p3x4O4W4Y4{6P6g6p7]7|8X8l9O9^9f:X:Y:^:_:`:a:b:c:i:j:k:l:m:n:q:r:s:t:w:x;`;h;i;l;mT)r$u)sV*p%V:[:]U'R!e%b,}S(u#y#zQ+j%zS.P(c(dQ0u+vQ4P/yR7S4n&|kOPWXYZstuvw!Z!`!g!o#R#V#Y#c#n#t#x#{$O$P$Q$R$S$T$U$V$W$X$Y$[$a$e$m%f%l%y&b&e&f&i&k&l&n&r&z'O'X'i'y'{(R(Y(n(r(v)j)u*x*|+W,_,b,g,s,v-W-`-n-t.U.b.i.q/z0P0a0}1_1`1b1d1g1j1l1{2]2c2o2w3^4p4r4|5^5_5b5l5u6S7Z7`7o7y8h8y9q9t9u9x9y9z9{9|9}:O:P:Q:R:S:T:U:V:Z:d:e:f:h:o:p:u:v;c$i$`c#X#d%j%k%m'x(O(j(q(y(z({(|(})O)P)Q)R)S)T)V)Y)^)h+T+i,x-g-l-q-s.^.d.h.j.k.l.{/}1v1y2Z2b2v2{2|2}3O3P3Q3R3S3T3U3V3W3X3[3]3b4T4]5n5t5y6V6W6]6^7U7s7w8Q8U8V8{9Z9b9s;VT#SV#T&}kOPWXYZstuvw!Z!`!g!o#R#V#Y#c#n#t#x#{$O$P$Q$R$S$T$U$V$W$X$Y$[$a$e$m%f%l%y&b&e&f&i&k&l&n&r&z'O'X'i'y'{(R(Y(n(r(v)j)u*x*|+W,_,b,g,s,v-W-`-n-t.U.b.i.q/z0P0a0}1_1`1b1d1g1j1l1{2]2c2o2w3^4p4r4|5^5_5b5l5u6S7Z7`7o7y8h8y9q9t9u9x9y9z9{9|9}:O:P:Q:R:S:T:U:V:Z:d:e:f:h:o:p:u:v;cQ'P!eR1|,zv!nQ!e!r!u!x!y&}'U'V'c'd'e,z-Q-S-d0z4u4wS*^$|*dS/h*_*fQ/q*gQ0w+xQ3z/pR3}/snqOXst!Z#c%f&i&k&l&n,b,g1g1jQ&p!^Q'm!wS(i#t9yQ+]%rQ+z&UQ+{&WQ-X'ZQ-f'fS.](n:fS0O*x:oQ0^+^Q0y+yQ1n,iQ1p,jQ1x,uQ2V-YQ2Y-^S4U0P:uQ4Z0_S4^0a:vQ5m1zQ5q2WQ5v2_Q6w4[Q7t5oQ7u5rQ7x5wR8x7q$d$_c#X#d%k%m'x(O(j(q(y(z({(|(})O)P)Q)R)S)T)V)Y)^)h+T+i,x-g-l-q-s.^.d.h.k.l.{/}1v1y2Z2b2v2{2|2}3O3P3Q3R3S3T3U3V3W3X3[3]3b4T4]5n5t5y6V6W6]6^7U7s7w8Q8U8V8{9Z9b9s;VS(f#o'`U*i$}(m3ZS+S%j.jQ2l0WQ6O2kQ8O6RR9P8P$d$^c#X#d%k%m'x(O(j(q(y(z({(|(})O)P)Q)R)S)T)V)Y)^)h+T+i,x-g-l-q-s.^.d.h.k.l.{/}1v1y2Z2b2v2{2|2}3O3P3Q3R3S3T3U3V3W3X3[3]3b4T4]5n5t5y6V6W6]6^7U7s7w8Q8U8V8{9Z9b9s;VS(e#o'`S(w#z$_S+R%j.jS.Q(d(fQ.m)XQ0T+SR2i.R&|kOPWXYZstuvw!Z!`!g!o#R#V#Y#c#n#t#x#{$O$P$Q$R$S$T$U$V$W$X$Y$[$a$e$m%f%l%y&b&e&f&i&k&l&n&r&z'O'X'i'y'{(R(Y(n(r(v)j)u*x*|+W,_,b,g,s,v-W-`-n-t.U.b.i.q/z0P0a0}1_1`1b1d1g1j1l1{2]2c2o2w3^4p4r4|5^5_5b5l5u6S7Z7`7o7y8h8y9q9t9u9x9y9z9{9|9}:O:P:Q:R:S:T:U:V:Z:d:e:f:h:o:p:u:v;cS#p]9rQ&k!XQ&l!YQ&n![Q&o!]R1f,eQ'W!hQ+U%oQ-V'YS.S(g+XQ2T-UW2m.V.W0V0XQ5p2UU5}2j2l2pS7{6O6QS8}7}8OS9d8|9PQ9l9eR9o9mU!vQ'V-ST4s0z4u!Q_OXZ`st!V!Z#c#g%^%f&`&b&i&k&l&n(`,b,g-y1g1j]!pQ!r'V-S0z4uT#p]9r%Y{OPWXYZstuvw!Z!`!g!o#R#V#Y#c#n#t#x#{$O$P$Q$R$S$T$U$V$W$X$Y$a$e%f%l%y&b&e&f&i&k&l&n&r&z'X'i'y'{(R(Y(n(r(v)u*x*|+W,_,b,g-W-`-n-t.U.b.i/z0P0a0}1_1`1b1d1g1j1l2]2c2o2w4r4|5^5_5b5u6S7Z7`7o7yS(u#y#zS.P(c(d!s:|$[$m'O)j,s,v.q1{3^4p5l8h8y9q9t9u9x9y9z9{9|9}:O:P:Q:R:S:T:U:V:Z:d:e:f:h:o:p:u:v;cY!tQ'V-S0z4uQ'b!rS'l!u!xS'n!y4wS-c'c'dQ-e'eR2`-dQ'k!tS([#f1aS-b'b'nQ/Y*RQ/f*^Q2a-eQ3l/ZS3u/g/qQ6c3gS6n3{3}Q8Z6dR8b6qQ#vbQ'j!tS(Z#f1aS(]#l*wQ*y%_Q+Z%pQ+a%vU-a'b'k'nQ-u([Q/X*RQ/e*^Q/k*aQ0]+[Q1Q,OS2^-b-eQ2f-}S3k/Y/ZS3t/f/qQ3w/jQ3y/lQ5P1RQ5x2aQ6b3gQ6f3lS6j3u3}Q6o3|Q7b5QS8Y6c6dQ8^6kQ8`6nQ8o7cQ9T8ZQ9U8_Q9W8bQ9`8pQ9h9VQ;P:zQ;[;TR;];UV!vQ'V-S%YaOPWXYZstuvw!Z!`!g!o#R#V#Y#c#n#t#x#{$O$P$Q$R$S$T$U$V$W$X$Y$a$e%f%l%y&b&e&f&i&k&l&n&r&z'X'i'y'{(R(Y(n(r(v)u*x*|+W,_,b,g-W-`-n-t.U.b.i/z0P0a0}1_1`1b1d1g1j1l2]2c2o2w4r4|5^5_5b5u6S7Z7`7o7yS#vz!j!r:y$[$m'O)j,s,v.q1{3^4p5l8h8y9q9t9u9x9y9z9{9|9}:O:P:Q:R:S:T:U:V:Z:d:e:f:h:o:p:u:v;cR;P;b%YbOPWXYZstuvw!Z!`!g!o#R#V#Y#c#n#t#x#{$O$P$Q$R$S$T$U$V$W$X$Y$a$e%f%l%y&b&e&f&i&k&l&n&r&z'X'i'y'{(R(Y(n(r(v)u*x*|+W,_,b,g-W-`-n-t.U.b.i/z0P0a0}1_1`1b1d1g1j1l2]2c2o2w4r4|5^5_5b5u6S7Z7`7o7yQ%_j!S%py!i!t%s%t%u&|'[']'^'b'l*^+_+`,w-Z-[-c/h0`2Q2X2`3zS%vz!jQ+[%qQ,O&ZW1R,P,Q,R,SU5Q1S1T1US7c5R5SQ8p7d!r:z$[$m'O)j,s,v.q1{3^4p5l8h8y9q9t9u9x9y9z9{9|9}:O:P:Q:R:S:T:U:V:Z:d:e:f:h:o:p:u:v;cQ;T;aR;U;b$|eOPXYstuvw!Z!`!g!o#R#c#n#t#x#{$O$P$Q$R$S$T$U$V$W$X$Y$a$e%f%l%y&b&e&i&k&l&n&r&z'X'i'{(R(Y(n(r(v)u*x*|+W,_,b,g-W-`-n-t.U.b.i/z0P0a0}1_1`1b1d1g1j1l2]2c2o2w4r4|5^5_5b5u6S7Z7`7o7yY#aWZ#V#Y'y!S%cm#g#h#k%^%a(S(^(_(`*z*{*},^,t-r-x-y-z-|1o2g2h5k5|Q,]&f!p:{$[$m)j,s,v.q1{3^4p5l8h8y9q9t9u9x9y9z9{9|9}:O:P:Q:R:S:T:U:V:Z:d:e:f:h:o:p:u:v;cR;O'OS'S!e%bR2O,}%OdOPWXYZstuvw!Z!`!g!o#R#V#Y#c#n#t#x#{$O$P$Q$R$S$T$U$V$W$X$Y$a$e%f%l%y&b&e&i&k&l&n&r&z'X'i'y'{(R(Y(n(r(v)u*x*|,_,b,g-W-`-n-t.b.i/z0P0a0}1_1`1b1d1g1j1l2]2c2w4r4|5^5_5b5u7Z7`7o7y!r)W$[$m'O)j,s,v.q1{3^4p5l8h8y9q9t9u9x9y9z9{9|9}:O:P:Q:R:S:T:U:V:Z:d:e:f:h:o:p:u:v;cQ,[&fQ0W+WQ2k.UQ6R2oR8P6S!f$Uc#X%j'x(O(j(q)Q)R)S)T)Y)^+i-g-l-q-s.^.d.{/}2Z2b2v3X4T4]5t5y6V7w8{9s!T:Q)V)h,x.j1v1y2{3T3U3V3W3[3b5n6W6]6^7U7s8Q8U8V9Z9b;V!b$Wc#X%j'x(O(j(q)S)T)Y)^+i-g-l-q-s.^.d.{/}2Z2b2v3X4T4]5t5y6V7w8{9s!P:S)V)h,x.j1v1y2{3V3W3[3b5n6W6]6^7U7s8Q8U8V9Z9b;V!^$[c#X%j'x(O(j(q)Y)^+i-g-l-q-s.^.d.{/}2Z2b2v3X4T4]5t5y6V7w8{9sQ3f/Tz;c)V)h,x.j1v1y2{3[3b5n6W6]6^7U7s8Q8U8V9Z9b;VQ;h;jR;i;k&|kOPWXYZstuvw!Z!`!g!o#R#V#Y#c#n#t#x#{$O$P$Q$R$S$T$U$V$W$X$Y$[$a$e$m%f%l%y&b&e&f&i&k&l&n&r&z'O'X'i'y'{(R(Y(n(r(v)j)u*x*|+W,_,b,g,s,v-W-`-n-t.U.b.i.q/z0P0a0}1_1`1b1d1g1j1l1{2]2c2o2w3^4p4r4|5^5_5b5l5u6S7Z7`7o7y8h8y9q9t9u9x9y9z9{9|9}:O:P:Q:R:S:T:U:V:Z:d:e:f:h:o:p:u:v;cS$nh$oR3_.p'TgOPWXYZhstuvw!Z!`!g!o#R#V#Y#c#n#t#x#{$O$P$Q$R$S$T$U$V$W$X$Y$[$a$e$m$o%f%l%y&b&e&f&i&k&l&n&r&z'O'X'i'y'{(R(Y(n(r(v)j)u*x*|+W,_,b,g,s,v-W-`-n-t.U.b.i.p.q/z0P0a0}1_1`1b1d1g1j1l1{2]2c2o2w3^4p4r4|5^5_5b5l5u6S7Z7`7o7y8h8y9q9t9u9x9y9z9{9|9}:O:P:Q:R:S:T:U:V:Z:d:e:f:h:o:p:u:v;cT$jf$pQ$hfS)a$k)eR)m$pT$if$pT)c$k)e'ThOPWXYZhstuvw!Z!`!g!o#R#V#Y#c#n#t#x#{$O$P$Q$R$S$T$U$V$W$X$Y$[$a$e$m$o%f%l%y&b&e&f&i&k&l&n&r&z'O'X'i'y'{(R(Y(n(r(v)j)u*x*|+W,_,b,g,s,v-W-`-n-t.U.b.i.p.q/z0P0a0}1_1`1b1d1g1j1l1{2]2c2o2w3^4p4r4|5^5_5b5l5u6S7Z7`7o7y8h8y9q9t9u9x9y9z9{9|9}:O:P:Q:R:S:T:U:V:Z:d:e:f:h:o:p:u:v;cT$nh$oQ$qhR)l$o%YjOPWXYZstuvw!Z!`!g!o#R#V#Y#c#n#t#x#{$O$P$Q$R$S$T$U$V$W$X$Y$a$e%f%l%y&b&e&f&i&k&l&n&r&z'X'i'y'{(R(Y(n(r(v)u*x*|+W,_,b,g-W-`-n-t.U.b.i/z0P0a0}1_1`1b1d1g1j1l2]2c2o2w4r4|5^5_5b5u6S7Z7`7o7y!s;a$[$m'O)j,s,v.q1{3^4p5l8h8y9q9t9u9x9y9z9{9|9}:O:P:Q:R:S:T:U:V:Z:d:e:f:h:o:p:u:v;c#clOPXZst!Z!`!o#R#c#n#{$m%f&b&e&f&i&k&l&n&r&z'X(v)j*|+W,_,b,g-W.U.q/z0}1_1`1b1d1g1j1l2o3^4r4|5^5_5b6S7Z7`7ov$}i#w%W%X%])z)|*U*j*k._/^/|3f4O8X;`;h;i#O(m#u$c$d$x${)q)w)}*[+V+Y+q+t.T/P/_/a0q0t0|2n3p3x4W4Y4{6P6g6p7]7|8l9O9^9f:^:`:b:i:k:m:q:s:w;l;mQ*t%ZQ.|)vg3Z:X:Y:_:a:c:j:l:n:r:t:xv$yi#w%W%X%])z)|*U*j*k._/^/|3f4O8X;`;h;iQ*W$zS*a$|*dQ*u%[Q/l*b#O;R#u$c$d$x${)q)w)}*[+V+Y+q+t.T/P/_/a0q0t0|2n3p3x4W4Y4{6P6g6p7]7|8l9O9^9f:^:`:b:i:k:m:q:s:w;l;mf;S:X:Y:_:a:c:j:l:n:r:t:xQ;W;dQ;X;eQ;Y;fR;Z;gv$}i#w%W%X%])z)|*U*j*k._/^/|3f4O8X;`;h;i#O(m#u$c$d$x${)q)w)}*[+V+Y+q+t.T/P/_/a0q0t0|2n3p3x4W4Y4{6P6g6p7]7|8l9O9^9f:^:`:b:i:k:m:q:s:w;l;mg3Z:X:Y:_:a:c:j:l:n:r:t:xnoOXst!Z#c%f&i&k&l&n,b,g1g1jQ*Z${Q,p&uQ,q&wR3o/_$^%Oi#u#w$c$d$x${%W%X%])q)w)z)|)}*U*[*j*k+V+Y+q+t.T._/P/^/_/a/|0q0t0|2n3f3p3x4O4W4Y4{6P6g6p7]7|8X8l9O9^9f:X:Y:^:_:`:a:b:c:i:j:k:l:m:n:q:r:s:t:w:x;`;h;i;l;mQ+s&SQ0s+uQ4l0rR7R4mT*c$|*dS*c$|*dT4t0z4uS/j*`4rT3|/r7ZQ+Z%pQ/k*aQ0]+[Q1Q,OQ5P1RQ7b5QQ8o7cR9`8pn)z$v(o*v/]/t/u2t3m4S6a6r9S;Q;^;_!Y:i(k)[*Q*Y.[.x.}/T/b0U0p0r2s3n3r4k4m6T6U6h6l6t6v8]8a9g;j;k]:j3Y6[8R9Q9R9pp)|$v(o*v/R/]/t/u2t3m4S6a6r9S;Q;^;_![:k(k)[*Q*Y.[.x.}/T/b0U0p0r2q2s3n3r4k4m6T6U6h6l6t6v8]8a9g;j;k_:l3Y6[8R8S9Q9R9prnOXst!V!Z#c%f&`&i&k&l&n,b,g1g1jQ&]!UR,_&frnOXst!V!Z#c%f&`&i&k&l&n,b,g1g1jR&]!UQ+w&TR0o+psnOXst!V!Z#c%f&`&i&k&l&n,b,g1g1jQ0{+|S4z1O1PU7[4x4y4}S8k7^7_S9[8j8mQ9i9]R9n9jQ&d!VR,W&`R5W1XS%x|%}R0h+gQ&i!WR,b&jR,h&oT1h,g1jR,l&pQ,k&pR1q,lQ'p!zR-h'pSsOtQ#cXT%is#cQ!}TR'r!}Q#QUR't#QQ)s$uR.y)sQ#TVR'v#TQ#WWU'|#W'}-oQ'}#XR-o(OQ,{'PR1},{Q.`(oR2u.`Q.c(qS2x.c2yR2y.dQ-S'VR2R-SY!rQ'V-S0z4uR'a!rS#^W%aU(T#^(U-pQ(U#_R-p(PQ-O'SR2P-Ot`OXst!V!Z#c%f&`&b&i&k&l&n,b,g1g1jS#gZ%^U#q`#g-yR-y(`Q(a#iQ-v(]W.O(a-v2d5zQ2d-wR5z2eQ)e$kR.r)eQ$ohR)k$oQ$bcU)Z$b-k:WQ-k9sR:W)hQ/W*RW3i/W3j6e8[U3j/X/Y/ZS6e3k3lR8[6f#o)x$v(k(o)[*Q*Y*q*r*v.Y.Z.[.x.}/R/S/T/]/b/t/u0U0p0r2q2r2s2t3Y3m3n3r4S4k4m6T6U6Y6Z6[6a6h6l6r6t6v8R8S8T8]8a9Q9R9S9g9p;Q;^;_;j;kQ/`*YU3q/`3s6iQ3s/bR6i3rQ*d$|R/n*dQ*m%QR/w*mQ4X0UR6u4XQ+O%dR0S+OQ4o0uS7T4o8iR8i7UQ+y&UR0x+yQ4u0zR7X4uQ1W,TS5U1W7fR7f5WQ0c+cW4b0c4d6{8eQ4d0fQ6{4cR8e6|Q+h%xR0i+hQ1j,gR5f1jYrOXst#cQ&m!ZQ+Q%fQ,a&iQ,c&kQ,d&lQ,f&nQ1e,bS1h,g1jR5e1gQ%hpQ&q!_Q&t!aQ&v!bQ&x!cQ'h!tQ+P%eQ+]%rQ+o&OQ,V&dQ,n&sW-_'b'j'k'nQ-f'fQ/m*cQ0^+^S1Z,W,ZQ1r,mQ1s,pQ1t,qQ2Y-^W2[-a-b-e-gQ4Z0_Q4g0lQ4j0pQ5O1QQ5Y1]Q5d1fU5s2Z2^2aQ5v2_Q6w4[Q7P4iQ7Q4kQ7W4tQ7a5PQ7g5XS7v5t5xQ7x5wQ8f6}Q8n7bQ8s7hQ8z7wQ9Y8gQ9_8oQ9c8{R9k9`Q%ryQ'Z!iQ'f!tU+^%s%t%uQ,u&|U-Y'[']'^S-^'b'lQ/d*^S0_+_+`Q1z,wS2W-Z-[Q2_-cQ3v/hQ4[0`Q5o2QQ5r2XQ5w2`R6m3zS$wi;`R*n%RU%Qi%R;`R/v*lQ$viS(k#u+YQ(o#wS)[$c$dQ*Q$xQ*Y${Q*q%WQ*r%XQ*v%]Q.Y:^Q.Z:`Q.[:bQ.x)qS.})w/PQ/R)zQ/S)|Q/T)}Q/]*UQ/b*[Q/t*jQ/u*kh0U+V.T0|2n4{6P7]7|8l9O9^9fQ0p+qQ0r+tQ2q:iQ2r:kQ2s:mQ2t._S3Y:X:YQ3m/^Q3n/_Q3r/aQ4S/|Q4k0qQ4m0tQ6T:qQ6U:sQ6Y:_Q6Z:aQ6[:cQ6a3fQ6h3pQ6l3xQ6r4OQ6t4WQ6v4YQ8R:nQ8S:jQ8T:lQ8]6gQ8a6pQ9Q:rQ9R:tQ9S8XQ9g:wQ9p:xQ;Q;`Q;^;hQ;_;iQ;j;lR;k;mnpOXst!Z#c%f&i&k&l&n,b,g1g1jQ!fPS#eZ#nQ&s!`U'_!o4r7ZQ'u#RQ(x#{Q)i$mS,Z&b&eQ,`&fQ,m&rQ,r&zQ-U'XQ.f(vQ.v)jQ0Q*|Q0X+WQ1c,_Q2U-WQ2l.UQ3a.qQ4Q/zQ4y0}Q5[1_Q5]1`Q5a1bQ5c1dQ5h1lQ6O2oQ6_3^Q7_4|Q7k5^Q7l5_Q7n5bQ8O6SQ8m7`R8w7o#WcOPXZst!Z!`!o#c#n#{%f&b&e&f&i&k&l&n&r&z'X(v*|+W,_,b,g-W.U/z0}1_1`1b1d1g1j1l2o4r4|5^5_5b6S7Z7`7oQ#XWQ#dYQ%juQ%kvS%mw!gS'x#V'{Q(O#YQ(j#tQ(q#xQ(y$OQ(z$PQ({$QQ(|$RQ(}$SQ)O$TQ)P$UQ)Q$VQ)R$WQ)S$XQ)T$YQ)V$[Q)Y$aQ)^$eW)h$m)j.q3^Q+T%lQ+i%yS,x'O1{Q-g'iS-l'y-nQ-q(RQ-s(YQ.^(nQ.d(rQ.h9qQ.j9tQ.k9uQ.l9xQ.{)uQ/}*xQ1v,sQ1y,vQ2Z-`Q2b-tQ2v.bQ2{9yQ2|9zQ2}9{Q3O9|Q3P9}Q3Q:OQ3R:PQ3S:QQ3T:RQ3U:SQ3V:TQ3W:UQ3X.iQ3[:ZQ3]:dQ3b:VQ4T0PQ4]0aQ5n:eQ5t2]Q5y2cQ6V2wQ6W:fQ6]:hQ6^:oQ7U4pQ7s5lQ7w5uQ8Q:pQ8U:uQ8V:vQ8{7yQ9Z8hQ9b8yQ9s#RR;V;cR#ZWR'Q!eY!tQ'V-S0z4uS&|!e,zQ'b!rS'l!u!xS'n!y4wS,w&}'US-c'c'dQ-e'eQ2Q-QR2`-dR(p#wR(s#xQ!fQT-R'V-S]!qQ!r'V-S0z4uQ#o]R'`9rT#jZ%^S#iZ%^S%dm,^U(]#g#h#kS-w(^(_Q-{(`Q0R*}Q2e-xU2f-y-z-|S5{2g2hR7z5|`#]W#V#Y%a'y(S*z-rr#fZm#g#h#k%^(^(_(`*}-x-y-z-|2g2h5|Q1a,^Q1w,tQ5j1oQ7r5kT:}'O*{T#`W%aS#_W%aS'z#V(SS(P#Y*zS,y'O*{T-m'y-rT'T!e%bQ$kfR)o$pT)d$k)eR3`.pT*T$x*VR*]${Q0V+VQ2j.TQ4x0|Q6Q2nQ7^4{Q7}6PQ8j7]Q8|7|Q9]8lQ9e9OQ9j9^R9m9fnqOXst!Z#c%f&i&k&l&n,b,g1g1jQ&c!VR,V&`tmOXst!U!V!Z#c%f&`&i&k&l&n,b,g1g1jR,^&fT%em,^R0v+vR,U&^Q%||R+n%}R+d%wT&g!W&jT&h!W&jT1i,g1j",nodeNames:"⚠ ArithOp ArithOp LineComment BlockComment Script Hashbang ExportDeclaration export Star as VariableName String Escape from ; default FunctionDeclaration async function VariableDefinition > TypeParamList TypeDefinition extends ThisType this LiteralType ArithOp Number BooleanLiteral TemplateType InterpolationEnd Interpolation InterpolationStart NullType null VoidType void TypeofType typeof MemberExpression . ?. PropertyName [ TemplateString Escape Interpolation super RegExp ] ArrayExpression Spread , } { ObjectExpression Property async get set PropertyDefinition Block : NewExpression new TypeArgList CompareOp < ) ( ArgList UnaryExpression delete LogicOp BitOp YieldExpression yield AwaitExpression await ParenthesizedExpression ClassExpression class ClassBody MethodDeclaration Decorator @ MemberExpression PrivatePropertyName CallExpression declare Privacy static abstract override PrivatePropertyDefinition PropertyDeclaration readonly accessor Optional TypeAnnotation Equals StaticBlock FunctionExpression ArrowFunction ParamList ParamList ArrayPattern ObjectPattern PatternProperty Privacy readonly Arrow MemberExpression BinaryExpression ArithOp ArithOp ArithOp ArithOp BitOp CompareOp instanceof satisfies in const CompareOp BitOp BitOp BitOp LogicOp LogicOp ConditionalExpression LogicOp LogicOp AssignmentExpression UpdateOp PostfixExpression CallExpression TaggedTemplateExpression DynamicImport import ImportMeta JSXElement JSXSelfCloseEndTag JSXStartTag JSXSelfClosingTag JSXIdentifier JSXBuiltin JSXIdentifier JSXNamespacedName JSXMemberExpression JSXSpreadAttribute JSXAttribute JSXAttributeValue JSXEscape JSXEndTag JSXOpenTag JSXFragmentTag JSXText JSXEscape JSXStartCloseTag JSXCloseTag PrefixCast ArrowFunction TypeParamList SequenceExpression KeyofType keyof UniqueType unique ImportType InferredType infer TypeName ParenthesizedType FunctionSignature ParamList NewSignature IndexedType TupleType Label ArrayType ReadonlyType ObjectType MethodType PropertyType IndexSignature PropertyDefinition CallSignature TypePredicate is NewSignature new UnionType LogicOp IntersectionType LogicOp ConditionalType ParameterizedType ClassDeclaration abstract implements type VariableDeclaration let var using TypeAliasDeclaration InterfaceDeclaration interface EnumDeclaration enum EnumBody NamespaceDeclaration namespace module AmbientDeclaration declare GlobalDeclaration global ClassDeclaration ClassBody AmbientFunctionDeclaration ExportGroup VariableName VariableName ImportDeclaration ImportGroup ForStatement for ForSpec ForInSpec ForOfSpec of WhileStatement while WithStatement with DoStatement do IfStatement if else SwitchStatement switch SwitchBody CaseLabel case DefaultLabel TryStatement try CatchClause catch FinallyClause finally ReturnStatement return ThrowStatement throw BreakStatement break ContinueStatement continue DebuggerStatement debugger LabeledStatement ExpressionStatement SingleExpression SingleClassItem",maxTerm:367,context:Ug,nodeProps:[["group",-26,7,15,17,63,200,204,208,209,211,214,217,227,229,235,237,239,241,244,250,256,258,260,262,264,266,267,"Statement",-32,11,12,26,29,30,36,46,49,50,52,57,65,73,77,79,81,82,104,105,114,115,132,135,137,138,139,140,142,143,163,164,166,"Expression",-23,25,27,31,35,37,39,167,169,171,172,174,175,176,178,179,180,182,183,184,194,196,198,199,"Type",-3,85,97,103,"ClassItem"],["openedBy",32,"InterpolationStart",51,"[",55,"{",70,"(",144,"JSXStartTag",156,"JSXStartTag JSXStartCloseTag"],["closedBy",34,"InterpolationEnd",45,"]",56,"}",71,")",145,"JSXSelfCloseEndTag JSXEndTag",161,"JSXEndTag"]],propSources:[zg],skippedNodes:[0,3,4,270],repeatNodeCount:33,tokenData:"$Fl(CSR!bOX%ZXY+gYZ-yZ[+g[]%Z]^.c^p%Zpq+gqr/mrs3cst:_tuEruvJSvwLkwx! Yxy!'iyz!(sz{!)}{|!,q|}!.O}!O!,q!O!P!/Y!P!Q!9j!Q!R#8g!R![#:v![!]#Gv!]!^#IS!^!_#J^!_!`#Nu!`!a$#a!a!b$(n!b!c$,m!c!}Er!}#O$-w#O#P$/R#P#Q$4j#Q#R$5t#R#SEr#S#T$7R#T#o$8]#o#p$s#r#s$@P#s$f%Z$f$g+g$g#BYEr#BY#BZ$AZ#BZ$ISEr$IS$I_$AZ$I_$I|Er$I|$I}$Df$I}$JO$Df$JO$JTEr$JT$JU$AZ$JU$KVEr$KV$KW$AZ$KW&FUEr&FU&FV$AZ&FV;'SEr;'S;=`I|<%l?HTEr?HT?HU$AZ?HUOEr(n%d_$e&j'yp'|!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z&j&hT$e&jO!^&c!_#o&c#p;'S&c;'S;=`&w<%lO&c&j&zP;=`<%l&c'|'U]$e&j'|!bOY&}YZ&cZw&}wx&cx!^&}!^!_'}!_#O&}#O#P&c#P#o&}#o#p'}#p;'S&};'S;=`(l<%lO&}!b(SU'|!bOY'}Zw'}x#O'}#P;'S'};'S;=`(f<%lO'}!b(iP;=`<%l'}'|(oP;=`<%l&}'[(y]$e&j'ypOY(rYZ&cZr(rrs&cs!^(r!^!_)r!_#O(r#O#P&c#P#o(r#o#p)r#p;'S(r;'S;=`*a<%lO(rp)wU'ypOY)rZr)rs#O)r#P;'S)r;'S;=`*Z<%lO)rp*^P;=`<%l)r'[*dP;=`<%l(r#S*nX'yp'|!bOY*gZr*grs'}sw*gwx)rx#O*g#P;'S*g;'S;=`+Z<%lO*g#S+^P;=`<%l*g(n+dP;=`<%l%Z(CS+rq$e&j'yp'|!b'o(;dOX%ZXY+gYZ&cZ[+g[p%Zpq+gqr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p$f%Z$f$g+g$g#BY%Z#BY#BZ+g#BZ$IS%Z$IS$I_+g$I_$JT%Z$JT$JU+g$JU$KV%Z$KV$KW+g$KW&FU%Z&FU&FV+g&FV;'S%Z;'S;=`+a<%l?HT%Z?HT?HU+g?HUO%Z(CS.ST'z#S$e&j'p(;dO!^&c!_#o&c#p;'S&c;'S;=`&w<%lO&c(CS.n_$e&j'yp'|!b'p(;dOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z%#`/x`$e&j!m$Ip'yp'|!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`0z!`#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z%#S1V`#r$Id$e&j'yp'|!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`2X!`#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z%#S2d_#r$Id$e&j'yp'|!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z$2b3l_'x$(n$e&j'|!bOY4kYZ5qZr4krs7nsw4kwx5qx!^4k!^!_8p!_#O4k#O#P5q#P#o4k#o#p8p#p;'S4k;'S;=`:X<%lO4k*r4r_$e&j'|!bOY4kYZ5qZr4krs7nsw4kwx5qx!^4k!^!_8p!_#O4k#O#P5q#P#o4k#o#p8p#p;'S4k;'S;=`:X<%lO4k)`5vX$e&jOr5qrs6cs!^5q!^!_6y!_#o5q#o#p6y#p;'S5q;'S;=`7h<%lO5q)`6jT$`#t$e&jO!^&c!_#o&c#p;'S&c;'S;=`&w<%lO&c#t6|TOr6yrs7]s;'S6y;'S;=`7b<%lO6y#t7bO$`#t#t7eP;=`<%l6y)`7kP;=`<%l5q*r7w]$`#t$e&j'|!bOY&}YZ&cZw&}wx&cx!^&}!^!_'}!_#O&}#O#P&c#P#o&}#o#p'}#p;'S&};'S;=`(l<%lO&}%W8uZ'|!bOY8pYZ6yZr8prs9hsw8pwx6yx#O8p#O#P6y#P;'S8p;'S;=`:R<%lO8p%W9oU$`#t'|!bOY'}Zw'}x#O'}#P;'S'};'S;=`(f<%lO'}%W:UP;=`<%l8p*r:[P;=`<%l4k#%|:hh$e&j'yp'|!bOY%ZYZ&cZq%Zqr`#P#o`x!^=^!^!_?q!_#O=^#O#P>`#P#o=^#o#p?q#p;'S=^;'S;=`@h<%lO=^&n>gXUS$e&jOY>`YZ&cZ!^>`!^!_?S!_#o>`#o#p?S#p;'S>`;'S;=`?k<%lO>`S?XSUSOY?SZ;'S?S;'S;=`?e<%lO?SS?hP;=`<%l?S&n?nP;=`<%l>`!f?xWUS'|!bOY?qZw?qwx?Sx#O?q#O#P?S#P;'S?q;'S;=`@b<%lO?q!f@eP;=`<%l?q(Q@kP;=`<%l=^'`@w]US$e&j'ypOY@nYZ&cZr@nrs>`s!^@n!^!_Ap!_#O@n#O#P>`#P#o@n#o#pAp#p;'S@n;'S;=`Bg<%lO@ntAwWUS'ypOYApZrAprs?Ss#OAp#O#P?S#P;'SAp;'S;=`Ba<%lOAptBdP;=`<%lAp'`BjP;=`<%l@n#WBvYUS'yp'|!bOYBmZrBmrs?qswBmwxApx#OBm#O#P?S#P;'SBm;'S;=`Cf<%lOBm#WCiP;=`<%lBm(rCoP;=`<%lQ^$e&j!SSOY!=yYZ&cZ!P!=y!P!Q!>|!Q!^!=y!^!_!@Y!_!}!=y!}#O!Bw#O#P!Dj#P#o!=y#o#p!@Y#p;'S!=y;'S;=`!E[<%lO!=y&n!?Ta$e&j!SSO!^&c!_#Z&c#Z#[!>|#[#]&c#]#^!>|#^#a&c#a#b!>|#b#g&c#g#h!>|#h#i&c#i#j!>|#j#m&c#m#n!>|#n#o&c#p;'S&c;'S;=`&w<%lO&cS!@_X!SSOY!@YZ!P!@Y!P!Q!@z!Q!}!@Y!}#O!Ac#O#P!Bb#P;'S!@Y;'S;=`!Bq<%lO!@YS!APU!SS#Z#[!@z#]#^!@z#a#b!@z#g#h!@z#i#j!@z#m#n!@zS!AfVOY!AcZ#O!Ac#O#P!A{#P#Q!@Y#Q;'S!Ac;'S;=`!B[<%lO!AcS!BOSOY!AcZ;'S!Ac;'S;=`!B[<%lO!AcS!B_P;=`<%l!AcS!BeSOY!@YZ;'S!@Y;'S;=`!Bq<%lO!@YS!BtP;=`<%l!@Y&n!B|[$e&jOY!BwYZ&cZ!^!Bw!^!_!Ac!_#O!Bw#O#P!Cr#P#Q!=y#Q#o!Bw#o#p!Ac#p;'S!Bw;'S;=`!Dd<%lO!Bw&n!CwX$e&jOY!BwYZ&cZ!^!Bw!^!_!Ac!_#o!Bw#o#p!Ac#p;'S!Bw;'S;=`!Dd<%lO!Bw&n!DgP;=`<%l!Bw&n!DoX$e&jOY!=yYZ&cZ!^!=y!^!_!@Y!_#o!=y#o#p!@Y#p;'S!=y;'S;=`!E[<%lO!=y&n!E_P;=`<%l!=y(Q!Eki$e&j'|!b!SSOY&}YZ&cZw&}wx&cx!^&}!^!_'}!_#O&}#O#P&c#P#Z&}#Z#[!Eb#[#]&}#]#^!Eb#^#a&}#a#b!Eb#b#g&}#g#h!Eb#h#i&}#i#j!Eb#j#m&}#m#n!Eb#n#o&}#o#p'}#p;'S&};'S;=`(l<%lO&}!f!GaZ'|!b!SSOY!GYZw!GYwx!@Yx!P!GY!P!Q!HS!Q!}!GY!}#O!Ic#O#P!Bb#P;'S!GY;'S;=`!JZ<%lO!GY!f!HZb'|!b!SSOY'}Zw'}x#O'}#P#Z'}#Z#[!HS#[#]'}#]#^!HS#^#a'}#a#b!HS#b#g'}#g#h!HS#h#i'}#i#j!HS#j#m'}#m#n!HS#n;'S'};'S;=`(f<%lO'}!f!IhX'|!bOY!IcZw!Icwx!Acx#O!Ic#O#P!A{#P#Q!GY#Q;'S!Ic;'S;=`!JT<%lO!Ic!f!JWP;=`<%l!Ic!f!J^P;=`<%l!GY(Q!Jh^$e&j'|!bOY!JaYZ&cZw!Jawx!Bwx!^!Ja!^!_!Ic!_#O!Ja#O#P!Cr#P#Q!Q#V#X%Z#X#Y!4|#Y#b%Z#b#c#Zd$e&j'yp'|!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!Q%Z!Q!R#?i!R!S#?i!S!^%Z!^!_*g!_#O%Z#O#P&c#P#R%Z#R#S#?i#S#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z$/l#?tf$e&j'yp'|!bm$'|OY%ZYZ&cZr%Zrs&}sw%Zwx(rx!Q%Z!Q!R#?i!R!S#?i!S!^%Z!^!_*g!_#O%Z#O#P&c#P#R%Z#R#S#?i#S#b%Z#b#c#Gg[e]||-1},{term:330,get:e=>Dg[e]||-1},{term:68,get:e=>Mg[e]||-1}],tokenPrec:12827}),Ig=[Bc("function ${name}(${params}) {\n\t${}\n}",{label:"function",detail:"definition",type:"keyword"}),Bc("for (let ${index} = 0; ${index} < ${bound}; ${index}++) {\n\t${}\n}",{label:"for",detail:"loop",type:"keyword"}),Bc("for (let ${name} of ${collection}) {\n\t${}\n}",{label:"for",detail:"of loop",type:"keyword"}),Bc("do {\n\t${}\n} while (${})",{label:"do",detail:"loop",type:"keyword"}),Bc("while (${}) {\n\t${}\n}",{label:"while",detail:"loop",type:"keyword"}),Bc("try {\n\t${}\n} catch (${error}) {\n\t${}\n}",{label:"try",detail:"/ catch block",type:"keyword"}),Bc("if (${}) {\n\t${}\n}",{label:"if",detail:"block",type:"keyword"}),Bc("if (${}) {\n\t${}\n} else {\n\t${}\n}",{label:"if",detail:"/ else block",type:"keyword"}),Bc("class ${name} {\n\tconstructor(${params}) {\n\t\t${}\n\t}\n}",{label:"class",detail:"definition",type:"keyword"}),Bc('import {${names}} from "${module}"\n${}',{label:"import",detail:"named",type:"keyword"}),Bc('import ${name} from "${module}"\n${}',{label:"import",detail:"default",type:"keyword"})],Lg=Ig.concat([Bc("interface ${name} {\n\t${}\n}",{label:"interface",detail:"definition",type:"keyword"}),Bc("type ${name} = ${type}",{label:"type",detail:"definition",type:"keyword"}),Bc("enum ${name} {\n\t${}\n}",{label:"enum",detail:"definition",type:"keyword"})]),Kg=new yt,Fg=new Set(["Script","Block","FunctionExpression","FunctionDeclaration","ArrowFunction","MethodDeclaration","ForStatement"]);function Hg(e){return(t,i)=>{let r=t.node.getChild("VariableDefinition");return r&&i(r,e),!0}}const Jg=["FunctionDeclaration"],em={FunctionDeclaration:Hg("function"),ClassDeclaration:Hg("class"),ClassExpression:()=>!0,EnumDeclaration:Hg("constant"),TypeAliasDeclaration:Hg("type"),NamespaceDeclaration:Hg("namespace"),VariableDefinition(e,t){e.matchContext(Jg)||t(e,"variable")},TypeDefinition(e,t){t(e,"type")},__proto__:null};function tm(e,t){let i=Kg.get(t);if(i)return i;let r=[],n=!0;function o(t,i){let n=e.sliceString(t.from,t.to);r.push({label:n,type:i})}return t.cursor(nt.IncludeAnonymous).iterate((t=>{if(n)n=!1;else if(t.name){let e=em[t.name];if(e&&e(t,o)||Fg.has(t.name))return!1}else if(t.to-t.from>8192){for(let i of tm(e,t.node))r.push(i);return!1}})),Kg.set(t,r),r}const im=/^[\w$\xa1-\uffff][\w$\d\xa1-\uffff]*$/,rm=["TemplateString","String","RegExp","LineComment","BlockComment","VariableDefinition","TypeDefinition","Label","PropertyDefinition","PropertyName","PrivatePropertyDefinition","PrivatePropertyName",".","?."];function nm(e){let t=vl(e.state).resolveInner(e.pos,-1);if(rm.indexOf(t.name)>-1)return null;let i="VariableName"==t.name||t.to-t.from<20&&im.test(e.state.sliceDoc(t.from,t.to));if(!i&&!e.explicit)return null;let r=[];for(let i=t;i;i=i.parent)Fg.has(i.name)&&(r=r.concat(tm(e.state.doc,i)));return{options:r,from:i?t.from:e.pos,validFor:im}}const om=yl.define({name:"javascript",parser:Bg.configure({props:[El.add({IfStatement:Kl({except:/^\s*({|else\b)/}),TryStatement:Kl({except:/^\s*({|catch\b|finally\b)/}),LabeledStatement:e=>e.baseIndent,SwitchBody:e=>{let t=e.textAfter,i=/^\s*\}/.test(t),r=/^\s*(case|default)\b/.test(t);return e.baseIndent+(i?0:r?1:2)*e.unit},Block:Il({closing:"}"}),ArrowFunction:e=>e.baseIndent+e.unit,"TemplateString BlockComment":()=>null,"Statement Property":Kl({except:/^{/}),JSXElement(e){let t=/^\s*<\//.test(e.textAfter);return e.lineIndent(e.node.from)+(t?0:e.unit)},JSXEscape(e){let t=/\s*\}/.test(e.textAfter);return e.lineIndent(e.node.from)+(t?0:e.unit)},"JSXOpenTag JSXSelfClosingTag":e=>e.column(e.node.from)+e.unit}),Jl.add({"Block ClassBody SwitchBody EnumBody ObjectExpression ArrayExpression ObjectType":eh,BlockComment:e=>({from:e.from+2,to:e.to-2})})]}),languageData:{closeBrackets:{brackets:["(","[","{","'",'"',"`"]},commentTokens:{line:"//",block:{open:"/*",close:"*/"}},indentOnInput:/^\s*(?:case |default:|\{|\}|<\/)$/,wordChars:"$"}}),sm={test:e=>/^JSX/.test(e.name),facet:$l({commentTokens:{block:{open:"{/*",close:"*/}"}}})},Om=om.configure({dialect:"ts"},"typescript"),am=om.configure({dialect:"jsx",props:[bl.add((e=>e.isTop?[sm]:void 0))]}),lm=om.configure({dialect:"jsx ts",props:[bl.add((e=>e.isTop?[sm]:void 0))]},"typescript");let hm=e=>({label:e,type:"keyword"});const cm="break case const continue default delete export extends false finally in instanceof let new return static super switch this throw true typeof var yield".split(" ").map(hm),um=cm.concat(["declare","implements","private","protected","public"].map(hm));function fm(e={}){let t=e.jsx?e.typescript?lm:am:e.typescript?Om:om,i=e.typescript?Lg.concat(um):Ig.concat(cm);return new Zl(t,[om.data.of({autocomplete:Mh(rm,Dh(i))}),om.data.of({autocomplete:nm}),e.jsx?Qm:[]])}function dm(e,t,i=e.length){for(let r=null==t?void 0:t.firstChild;r;r=r.nextSibling)if("JSXIdentifier"==r.name||"JSXBuiltin"==r.name||"JSXNamespacedName"==r.name||"JSXMemberExpression"==r.name)return e.sliceString(r.from,Math.min(r.to,i));return""}const pm="object"==typeof navigator&&/Android\b/.test(navigator.userAgent),Qm=dO.inputHandler.of(((e,t,i,r,n)=>{if((pm?e.composing:e.compositionStarted)||e.state.readOnly||t!=i||">"!=r&&"/"!=r||!om.isActiveAt(e.state,t,-1))return!1;let o=n(),{state:s}=o,O=s.changeByRange((e=>{var t;let i,{head:n}=e,o=vl(s).resolveInner(n-1,-1);if("JSXStartTag"==o.name&&(o=o.parent),s.doc.sliceString(n-1,n)!=r||"JSXAttributeValue"==o.name&&o.to>n);else{if(">"==r&&"JSXFragmentTag"==o.name)return{range:e,changes:{from:n,insert:""}};if("/"==r&&"JSXStartCloseTag"==o.name){let e=o.parent,r=e.parent;if(r&&e.from==n-2&&((i=dm(s.doc,r.firstChild,n))||"JSXFragmentTag"==(null===(t=r.firstChild)||void 0===t?void 0:t.name))){let e=`${i}>`;return{range:W.cursor(n+e.length,-1),changes:{from:n,insert:e}}}}else if(">"==r){let t=function(e){for(;;){if("JSXOpenTag"==e.name||"JSXSelfClosingTag"==e.name||"JSXFragmentTag"==e.name)return e;if("JSXEscape"==e.name||!e.parent)return null;e=e.parent}}(o);if(t&&!/^\/?>|^<\//.test(s.doc.sliceString(n,n+2))&&(i=dm(s.doc,t,n)))return{range:e,changes:{from:n,insert:``}}}}return{range:e}}));return!O.changes.empty&&(e.dispatch([o,s.update(O,{userEvent:"input.complete",scrollIntoView:!0})]),!0)})),gm=["_blank","_self","_top","_parent"],mm=["ascii","utf-8","utf-16","latin1","latin1"],$m=["get","post","put","delete"],bm=["application/x-www-form-urlencoded","multipart/form-data","text/plain"],Xm=["true","false"],Sm={},ym={a:{attrs:{href:null,ping:null,type:null,media:null,target:gm,hreflang:null}},abbr:Sm,address:Sm,area:{attrs:{alt:null,coords:null,href:null,target:null,ping:null,media:null,hreflang:null,type:null,shape:["default","rect","circle","poly"]}},article:Sm,aside:Sm,audio:{attrs:{src:null,mediagroup:null,crossorigin:["anonymous","use-credentials"],preload:["none","metadata","auto"],autoplay:["autoplay"],loop:["loop"],controls:["controls"]}},b:Sm,base:{attrs:{href:null,target:gm}},bdi:Sm,bdo:Sm,blockquote:{attrs:{cite:null}},body:Sm,br:Sm,button:{attrs:{form:null,formaction:null,name:null,value:null,autofocus:["autofocus"],disabled:["autofocus"],formenctype:bm,formmethod:$m,formnovalidate:["novalidate"],formtarget:gm,type:["submit","reset","button"]}},canvas:{attrs:{width:null,height:null}},caption:Sm,center:Sm,cite:Sm,code:Sm,col:{attrs:{span:null}},colgroup:{attrs:{span:null}},command:{attrs:{type:["command","checkbox","radio"],label:null,icon:null,radiogroup:null,command:null,title:null,disabled:["disabled"],checked:["checked"]}},data:{attrs:{value:null}},datagrid:{attrs:{disabled:["disabled"],multiple:["multiple"]}},datalist:{attrs:{data:null}},dd:Sm,del:{attrs:{cite:null,datetime:null}},details:{attrs:{open:["open"]}},dfn:Sm,div:Sm,dl:Sm,dt:Sm,em:Sm,embed:{attrs:{src:null,type:null,width:null,height:null}},eventsource:{attrs:{src:null}},fieldset:{attrs:{disabled:["disabled"],form:null,name:null}},figcaption:Sm,figure:Sm,footer:Sm,form:{attrs:{action:null,name:null,"accept-charset":mm,autocomplete:["on","off"],enctype:bm,method:$m,novalidate:["novalidate"],target:gm}},h1:Sm,h2:Sm,h3:Sm,h4:Sm,h5:Sm,h6:Sm,head:{children:["title","base","link","style","meta","script","noscript","command"]},header:Sm,hgroup:Sm,hr:Sm,html:{attrs:{manifest:null}},i:Sm,iframe:{attrs:{src:null,srcdoc:null,name:null,width:null,height:null,sandbox:["allow-top-navigation","allow-same-origin","allow-forms","allow-scripts"],seamless:["seamless"]}},img:{attrs:{alt:null,src:null,ismap:null,usemap:null,width:null,height:null,crossorigin:["anonymous","use-credentials"]}},input:{attrs:{alt:null,dirname:null,form:null,formaction:null,height:null,list:null,max:null,maxlength:null,min:null,name:null,pattern:null,placeholder:null,size:null,src:null,step:null,value:null,width:null,accept:["audio/*","video/*","image/*"],autocomplete:["on","off"],autofocus:["autofocus"],checked:["checked"],disabled:["disabled"],formenctype:bm,formmethod:$m,formnovalidate:["novalidate"],formtarget:gm,multiple:["multiple"],readonly:["readonly"],required:["required"],type:["hidden","text","search","tel","url","email","password","datetime","date","month","week","time","datetime-local","number","range","color","checkbox","radio","file","submit","image","reset","button"]}},ins:{attrs:{cite:null,datetime:null}},kbd:Sm,keygen:{attrs:{challenge:null,form:null,name:null,autofocus:["autofocus"],disabled:["disabled"],keytype:["RSA"]}},label:{attrs:{for:null,form:null}},legend:Sm,li:{attrs:{value:null}},link:{attrs:{href:null,type:null,hreflang:null,media:null,sizes:["all","16x16","16x16 32x32","16x16 32x32 64x64"]}},map:{attrs:{name:null}},mark:Sm,menu:{attrs:{label:null,type:["list","context","toolbar"]}},meta:{attrs:{content:null,charset:mm,name:["viewport","application-name","author","description","generator","keywords"],"http-equiv":["content-language","content-type","default-style","refresh"]}},meter:{attrs:{value:null,min:null,low:null,high:null,max:null,optimum:null}},nav:Sm,noscript:Sm,object:{attrs:{data:null,type:null,name:null,usemap:null,form:null,width:null,height:null,typemustmatch:["typemustmatch"]}},ol:{attrs:{reversed:["reversed"],start:null,type:["1","a","A","i","I"]},children:["li","script","template","ul","ol"]},optgroup:{attrs:{disabled:["disabled"],label:null}},option:{attrs:{disabled:["disabled"],label:null,selected:["selected"],value:null}},output:{attrs:{for:null,form:null,name:null}},p:Sm,param:{attrs:{name:null,value:null}},pre:Sm,progress:{attrs:{value:null,max:null}},q:{attrs:{cite:null}},rp:Sm,rt:Sm,ruby:Sm,samp:Sm,script:{attrs:{type:["text/javascript"],src:null,async:["async"],defer:["defer"],charset:mm}},section:Sm,select:{attrs:{form:null,name:null,size:null,autofocus:["autofocus"],disabled:["disabled"],multiple:["multiple"]}},slot:{attrs:{name:null}},small:Sm,source:{attrs:{src:null,type:null,media:null}},span:Sm,strong:Sm,style:{attrs:{type:["text/css"],media:null,scoped:null}},sub:Sm,summary:Sm,sup:Sm,table:Sm,tbody:Sm,td:{attrs:{colspan:null,rowspan:null,headers:null}},template:Sm,textarea:{attrs:{dirname:null,form:null,maxlength:null,name:null,placeholder:null,rows:null,cols:null,autofocus:["autofocus"],disabled:["disabled"],readonly:["readonly"],required:["required"],wrap:["soft","hard"]}},tfoot:Sm,th:{attrs:{colspan:null,rowspan:null,headers:null,scope:["row","col","rowgroup","colgroup"]}},thead:Sm,time:{attrs:{datetime:null}},title:Sm,tr:Sm,track:{attrs:{src:null,label:null,default:null,kind:["subtitles","captions","descriptions","chapters","metadata"],srclang:null}},ul:{children:["li","script","template","ul","ol"]},var:Sm,video:{attrs:{src:null,poster:null,width:null,height:null,crossorigin:["anonymous","use-credentials"],preload:["auto","metadata","none"],autoplay:["autoplay"],mediagroup:["movie"],muted:["muted"],controls:["controls"]}},wbr:Sm},vm={accesskey:null,class:null,contenteditable:Xm,contextmenu:null,dir:["ltr","rtl","auto"],draggable:["true","false","auto"],dropzone:["copy","move","link","string:","file:"],hidden:["hidden"],id:null,inert:["inert"],itemid:null,itemprop:null,itemref:null,itemscope:["itemscope"],itemtype:null,lang:["ar","bn","de","en-GB","en-US","es","fr","hi","id","ja","pa","pt","ru","tr","zh"],spellcheck:Xm,autocorrect:Xm,autocapitalize:Xm,style:null,tabindex:null,title:null,translate:["yes","no"],rel:["stylesheet","alternate","author","bookmark","help","license","next","nofollow","noreferrer","prefetch","prev","search","tag"],role:"alert application article banner button cell checkbox complementary contentinfo dialog document feed figure form grid gridcell heading img list listbox listitem main navigation region row rowgroup search switch tab table tabpanel textbox timer".split(" "),"aria-activedescendant":null,"aria-atomic":Xm,"aria-autocomplete":["inline","list","both","none"],"aria-busy":Xm,"aria-checked":["true","false","mixed","undefined"],"aria-controls":null,"aria-describedby":null,"aria-disabled":Xm,"aria-dropeffect":null,"aria-expanded":["true","false","undefined"],"aria-flowto":null,"aria-grabbed":["true","false","undefined"],"aria-haspopup":Xm,"aria-hidden":Xm,"aria-invalid":["true","false","grammar","spelling"],"aria-label":null,"aria-labelledby":null,"aria-level":null,"aria-live":["off","polite","assertive"],"aria-multiline":Xm,"aria-multiselectable":Xm,"aria-owns":null,"aria-posinset":null,"aria-pressed":["true","false","mixed","undefined"],"aria-readonly":Xm,"aria-relevant":null,"aria-required":Xm,"aria-selected":["true","false","undefined"],"aria-setsize":null,"aria-sort":["ascending","descending","none","other"],"aria-valuemax":null,"aria-valuemin":null,"aria-valuenow":null,"aria-valuetext":null},Pm="beforeunload copy cut dragstart dragover dragleave dragenter dragend drag paste focus blur change click load mousedown mouseenter mouseleave mouseup keydown keyup resize scroll unload".split(" ").map((e=>"on"+e));for(let e of Pm)vm[e]=null;class xm{constructor(e,t){this.tags=Object.assign(Object.assign({},ym),e),this.globalAttrs=Object.assign(Object.assign({},vm),t),this.allTags=Object.keys(this.tags),this.globalAttrNames=Object.keys(this.globalAttrs)}}function wm(e,t,i=e.length){if(!t)return"";let r=t.firstChild,n=r&&r.getChild("TagName");return n?e.sliceString(n.from,Math.min(n.to,i)):""}function Tm(e,t=!1){for(;e;e=e.parent)if("Element"==e.name){if(!t)return e;t=!1}return null}function km(e,t,i){let r=i.tags[wm(e,Tm(t))];return(null==r?void 0:r.children)||i.allTags}function Ym(e,t){let i=[];for(let r=Tm(t);r&&!r.type.isTop;r=Tm(r.parent)){let n=wm(e,r);if(n&&"CloseTag"==r.lastChild.name)break;n&&i.indexOf(n)<0&&("EndTag"==t.name||t.from>=r.firstChild.to)&&i.push(n)}return i}xm.default=new xm;const Rm=/^[:\-\.\w\u00b7-\uffff]*$/;function _m(e,t,i,r,n){let o=/\s*>/.test(e.sliceDoc(n,n+5))?"":">",s=Tm(i,!0);return{from:r,to:n,options:km(e.doc,s,t).map((e=>({label:e,type:"type"}))).concat(Ym(e.doc,i).map(((e,t)=>({label:"/"+e,apply:"/"+e+o,type:"type",boost:99-t})))),validFor:/^\/?[:\-\.\w\u00b7-\uffff]*$/}}function Vm(e,t,i,r){let n=/\s*>/.test(e.sliceDoc(r,r+5))?"":">";return{from:i,to:r,options:Ym(e.doc,t).map(((e,t)=>({label:e,apply:e+n,type:"type",boost:99-t}))),validFor:Rm}}function Zm(e,t){let{state:i,pos:r}=t,n=vl(i).resolveInner(r,-1),o=n.resolve(r);for(let e,t=r;o==n&&(e=n.childBefore(t));){let i=e.lastChild;if(!i||!i.type.isError||i.from({label:e,type:"property"}))),validFor:Rm}}(i,e,n,"AttributeName"==n.name?n.from:r,r):"Is"==n.name||"AttributeValue"==n.name||"UnquotedAttributeValue"==n.name?function(e,t,i,r,n){var o;let s,O=null===(o=i.parent)||void 0===o?void 0:o.getChild("AttributeName"),a=[];if(O){let o=e.sliceDoc(O.from,O.to),l=t.globalAttrs[o];if(!l){let r=Tm(i),n=r?t.tags[wm(e.doc,r)]:null;l=(null==n?void 0:n.attrs)&&n.attrs[o]}if(l){let t=e.sliceDoc(r,n).toLowerCase(),i='"',o='"';/^['"]/.test(t)?(s='"'==t[0]?/^[^"]*$/:/^[^']*$/,i="",o=e.sliceDoc(n,n+1)==t[0]?"":t[0],t=t.slice(1),r++):s=/^[^\s<>='"]*$/;for(let e of l)a.push({label:e,apply:i+e+o,type:"constant"})}}return{from:r,to:n,options:a,validFor:s}}(i,e,n,"Is"==n.name?r:n.from,r):!t.explicit||"Element"!=o.name&&"Text"!=o.name&&"Document"!=o.name?null:function(e,t,i,r){let n=[],o=0;for(let r of km(e.doc,i,t))n.push({label:"<"+r,type:"type"});for(let t of Ym(e.doc,i))n.push({label:"",type:"type",boost:99-o++});return{from:r,to:r,options:n,validFor:/^<\/?[:\-\.\w\u00b7-\uffff]*$/}}(i,e,n,r)}function qm(e){let{extraTags:t,extraGlobalAttributes:i}=e,r=i||t?new xm(t,i):xm.default;return e=>Zm(r,e)}const Am=om.parser.configure({top:"SingleExpression"}),Wm=[{tag:"script",attrs:e=>"text/typescript"==e.type||"ts"==e.lang,parser:Om.parser},{tag:"script",attrs:e=>"text/babel"==e.type||"text/jsx"==e.type,parser:am.parser},{tag:"script",attrs:e=>"text/typescript-jsx"==e.type,parser:lm.parser},{tag:"script",attrs:e=>"importmap"==e.type||"speculationrules"==e.type,parser:Am},{tag:"script",attrs:e=>!e.type||/^(?:text|application)\/(?:x-)?(?:java|ecma)script$|^module$|^$/i.test(e.type),parser:om.parser},{tag:"style",attrs:e=>(!e.lang||"css"==e.lang)&&(!e.type||/^(text\/)?(x-)?(stylesheet|css)$/i.test(e.type)),parser:Wg.parser}],Cm=[{name:"style",parser:Wg.parser.configure({top:"Styles"})}].concat(Pm.map((e=>({name:e,parser:om.parser})))),Um=yl.define({name:"html",parser:lg.configure({props:[El.add({Element(e){let t=/^(\s*)(<\/)?/.exec(e.textAfter);return e.node.to<=e.pos+t[0].length?e.continue():e.lineIndent(e.node.from)+(t[2]?0:e.unit)},"OpenTag CloseTag SelfClosingTag":e=>e.column(e.node.from)+e.unit,Document(e){if(e.pos+/\s*/.exec(e.textAfter)[0].lengthe.getChild("TagName")})]}),languageData:{commentTokens:{block:{open:"\x3c!--",close:"--\x3e"}},indentOnInput:/^\s*<\/\w+\W$/,wordChars:"-._"}}),Nm=Um.configure({wrap:fg(Wm,Cm)});function jm(e={}){let t,i="";!1===e.matchClosingTags&&(i="noMatch"),!0===e.selfClosingTags&&(i=(i?i+" ":"")+"selfClosing"),(e.nestedLanguages&&e.nestedLanguages.length||e.nestedAttributes&&e.nestedAttributes.length)&&(t=fg((e.nestedLanguages||[]).concat(Wm),(e.nestedAttributes||[]).concat(Cm)));let r=t?Um.configure({wrap:t,dialect:i}):i?Nm.configure({dialect:i}):Nm;return new Zl(r,[Nm.data.of({autocomplete:qm(e)}),!1!==e.autoCloseTags?zm:[],fm().support,new Zl(Wg,Wg.data.of({autocomplete:Ag})).support])}const Em=new Set("area base br col command embed frame hr img input keygen link meta param source track wbr menuitem".split(" ")),zm=dO.inputHandler.of(((e,t,i,r,n)=>{if(e.composing||e.state.readOnly||t!=i||">"!=r&&"/"!=r||!Nm.isActiveAt(e.state,t,-1))return!1;let o=n(),{state:s}=o,O=s.changeByRange((e=>{var t,i,n;let o,O=s.doc.sliceString(e.from-1,e.to)==r,{head:a}=e,l=vl(s).resolveInner(a-1,-1);if("TagName"!=l.name&&"StartTag"!=l.name||(l=l.parent),O&&">"==r&&"OpenTag"==l.name){if("CloseTag"!=(null===(i=null===(t=l.parent)||void 0===t?void 0:t.lastChild)||void 0===i?void 0:i.name)&&(o=wm(s.doc,l.parent,a))&&!Em.has(o))return{range:e,changes:{from:a,to:a+(">"===s.doc.sliceString(a,a+1)?1:0),insert:``}}}else if(O&&"/"==r&&"IncompleteCloseTag"==l.name){let e=l.parent;if(l.from==a-2&&"CloseTag"!=(null===(n=e.lastChild)||void 0===n?void 0:n.name)&&(o=wm(s.doc,e,a))&&!Em.has(o)){let e=a+(">"===s.doc.sliceString(a,a+1)?1:0),t=`${o}>`;return{range:W.cursor(a+t.length,-1),changes:{from:a,to:e,insert:t}}}}return{range:e}}));return!O.changes.empty&&(e.dispatch([o,s.update(O,{userEvent:"input.complete",scrollIntoView:!0})]),!0)})),Gm=$l({commentTokens:{block:{open:"\x3c!--",close:"--\x3e"}}}),Dm=new Fe,Mm=gQ.configure({props:[Jl.add((e=>!e.is("Block")||e.is("Document")||null!=Bm(e)?void 0:(e,t)=>({from:t.doc.lineAt(e.from).to,to:e.to}))),Dm.add(Bm),El.add({Document:()=>null}),ml.add({Document:Gm})]});function Bm(e){let t=/^(?:ATX|Setext)Heading(\d)$/.exec(e.name);return t?+t[1]:void 0}function Im(e,t){let i=e;for(;;){let e,r=i.nextSibling;if(!r||null!=(e=Bm(r.type))&&e<=t)break;i=r}return i.to}const Lm=Hl.of(((e,t,i)=>{for(let r=vl(e).resolveInner(i,-1);r&&!(r.fromi)return{from:i,to:t}}return null}));function Km(e){return new Xl(Gm,e,[Lm],"markdown")}const Fm=Km(Mm),Hm=Km(Mm.configure([AQ,UQ,CQ,NQ]));class Jm{constructor(e,t,i,r,n,o,s){this.node=e,this.from=t,this.to=i,this.spaceBefore=r,this.spaceAfter=n,this.type=o,this.item=s}blank(e,t=!0){let i=this.spaceBefore+("Blockquote"==this.node.name?">":"");if(null!=e){for(;i.length0;e--)i+=" ";return i+(t?this.spaceAfter:"")}marker(e,t){let i="OrderedList"==this.node.name?String(+t$(this.item,e)[2]+t):"";return this.spaceBefore+i+this.type+this.spaceAfter}}function e$(e,t){let i=[];for(let t=e;t&&"Document"!=t.name;t=t.parent)"ListItem"!=t.name&&"Blockquote"!=t.name&&"FencedCode"!=t.name||i.push(t);let r=[];for(let e=i.length-1;e>=0;e--){let n,o=i[e],s=t.lineAt(o.from),O=o.from-s.from;if("FencedCode"==o.name)r.push(new Jm(o,O,O,"","","",null));else if("Blockquote"==o.name&&(n=/^ *>( ?)/.exec(s.text.slice(O))))r.push(new Jm(o,O,O+n[0].length,"",n[1],">",null));else if("ListItem"==o.name&&"OrderedList"==o.parent.name&&(n=/^( *)\d+([.)])( *)/.exec(s.text.slice(O)))){let e=n[3],t=n[0].length;e.length>=4&&(e=e.slice(0,e.length-4),t-=4),r.push(new Jm(o.parent,O,O+t,n[1],e,n[2],o))}else if("ListItem"==o.name&&"BulletList"==o.parent.name&&(n=/^( *)([-+*])( {1,4}\[[ xX]\])?( +)/.exec(s.text.slice(O)))){let e=n[4],t=n[0].length;e.length>4&&(e=e.slice(0,e.length-4),t-=4);let i=n[2];n[3]&&(i+=n[3].replace(/[xX]/," ")),r.push(new Jm(o.parent,O,O+t,n[1],e,i,o))}}return r}function t$(e,t){return/^(\s*)(\d+)(?=[.)])/.exec(t.sliceString(e.from,e.from+10))}function i$(e,t,i,r=0){for(let n=-1,o=e;;){if("ListItem"==o.name){let e=t$(o,t),s=+e[2];if(n>=0){if(s!=n+1)return;i.push({from:o.from+e[1].length,to:o.from+e[0].length,insert:String(n+2+r)})}n=s}let e=o.nextSibling;if(!e)break;o=e}}function r$(e,t){let i=/^[ \t]*/.exec(e)[0].length;if(!i||"\t"!=t.facet(Wl))return e;let r="";for(let t=Me(e,4,i);t>0;)t>=4?(r+="\t",t-=4):(r+=" ",t--);return r+e.slice(i)}function n$(e){return"QuoteMark"==e.name||"ListMark"==e.name}const o$=[{key:"Enter",run:({state:e,dispatch:t})=>{let i=vl(e),{doc:r}=e,n=null,o=e.changeByRange((t=>{if(!t.empty||!Hm.isActiveAt(e,t.from))return n={range:t};let o=t.from,s=r.lineAt(o),O=e$(i.resolveInner(o,-1),r);for(;O.length&&O[O.length-1].from>o-s.from;)O.pop();if(!O.length)return n={range:t};let a=O[O.length-1];if(a.to-a.spaceAfter.length>o-s.from)return n={range:t};let l=o>=a.to-a.spaceAfter.length&&!/\S/.test(s.text.slice(a.to));if(a.item&&l){if(a.node.firstChild.to>=o||s.from>0&&!/[^\s>]/.test(r.lineAt(s.from-1).text)){let e,t=O.length>1?O[O.length-2]:null,i="";t&&t.item?(e=s.from+t.from,i=t.marker(r,1)):e=s.from+(t?t.to:0);let n=[{from:e,to:o,insert:i}];return"OrderedList"==a.node.name&&i$(a.item,r,n,-2),t&&"OrderedList"==t.node.name&&i$(t.item,r,n),{range:W.cursor(e+i.length),changes:n}}{let t="";for(let e=0,i=O.length-2;e<=i;e++)t+=O[e].blank(e\s*$/.exec(i.text);if(n&&n.index==a.from){let r=e.changes([{from:i.from+n.index,to:i.to},{from:s.from+a.from,to:s.to}]);return{range:t.map(r),changes:r}}}let h=[];"OrderedList"==a.node.name&&i$(a.item,r,h);let c=a.item&&a.item.from]*/.exec(s.text)[0].length>=a.to)for(let e=0,t=O.length-1;e<=t;e++)u+=e!=t||c?O[e].blank(es.from&&/\s/.test(s.text.charAt(f-s.from-1));)f--;return u=r$(u,e),h.push({from:f,to:o,insert:e.lineBreak+u}),{range:W.cursor(f+u.length+1),changes:h}}));return!n&&(t(e.update(o,{scrollIntoView:!0,userEvent:"input"})),!0)}},{key:"Backspace",run:({state:e,dispatch:t})=>{let i=vl(e),r=null,n=e.changeByRange((t=>{let n=t.from,{doc:o}=e;if(t.empty&&Hm.isActiveAt(e,t.from)){let t=o.lineAt(n),r=e$(function(e,t){let i,r=e.resolveInner(t,-1),n=t;for(n$(r)&&(n=r.from,r=r.parent);i=r.childBefore(n);)if(n$(i))n=i.from;else{if("OrderedList"!=i.name&&"BulletList"!=i.name)break;r=i.lastChild,n=r.to}return r}(i,n),o);if(r.length){let i=r[r.length-1],o=i.to-i.spaceAfter.length+(i.spaceAfter?1:0);if(n-t.from>o&&!/\S/.test(t.text.slice(o,n-t.from)))return{range:W.cursor(t.from+o),changes:{from:t.from+o,to:n}};if(n-t.from==o&&(!i.item||t.from<=i.item.from||!/\S/.test(t.text.slice(0,i.to)))){let r=t.from+i.from;if(i.item&&i.node.from{if(i&&e){let t=null;if(i=/\S*/.exec(i)[0],t="function"==typeof e?e(i):ql.matchLanguageName(e,i,!0),t instanceof ql)return t.support?t.support.language.parser:wl.getSkippingParser(t.load());if(t)return t.parser}return t?t.parser:null}}(t,s):void 0;O.push($Q({codeParser:l,htmlParser:s$.language.parser})),r&&a.push(J.high(SO.of(o$)));let h=Km(n.configure(O));return o&&a.push(h.data.of({autocomplete:a$})),new Zl(h,a)}function a$(e){let{state:t,pos:i}=e,r=/<[:\-\.\w\u00b7-\uffff]*$/.exec(t.sliceDoc(i-25,i));if(!r)return null;let n=vl(t).resolveInner(i,-1);for(;n&&!n.type.isTop;){if("CodeBlock"==n.name||"FencedCode"==n.name||"ProcessingInstructionBlock"==n.name||"CommentBlock"==n.name||"Link"==n.name||"Image"==n.name)return null;n=n.parent}return{from:i-r[0].length,to:i,options:h$(),validFor:/^<[:\-\.\w\u00b7-\uffff]*$/}}let l$=null;function h$(){if(l$)return l$;let e=function(e){return Zm(xm.default,e)}(new zh(Te.create({extensions:s$}),0,!0));return l$=e?e.options:[]}function c$(e){return e>=65&&e<=90||e>=97&&e<=122||e>=48&&e<=57}function u$(e){return e>=48&&e<=57||e>=97&&e<=102||e>=65&&e<=70}function f$(e,t,i){for(let r=!1;;){if(e.next<0)return;if(e.next==t&&!r)return void e.advance();r=i&&!r&&92==e.next,e.advance()}}function d$(e,t){for(;95==e.next||c$(e.next);)null!=t&&(t+=String.fromCharCode(e.next)),e.advance();return t}function p$(e,t){for(;48==e.next||49==e.next;)e.advance();t&&e.next==t&&e.advance()}function Q$(e,t){for(;;){if(46==e.next){if(t)break;t=!0}else if(e.next<48||e.next>57)break;e.advance()}if(69==e.next||101==e.next)for(e.advance(),43!=e.next&&45!=e.next||e.advance();e.next>=48&&e.next<=57;)e.advance()}function g$(e){for(;!(e.next<0||10==e.next);)e.advance()}function m$(e,t){for(let i=0;i!=&|~^/",specialVar:"?",identifierQuotes:'"',words:b$(S$,X$)};function v$(e){return new Kt((t=>{var i;let{next:r}=t;if(t.advance(),m$(r,$$)){for(;m$(t.next,$$);)t.advance();t.acceptToken(36)}else if(36==r&&36==t.next&&e.doubleDollarQuotedStrings)(function(e){for(;;){if(e.next<0||e.peek(1)<0)return;if(36==e.next&&36==e.peek(1))return void e.advance(2);e.advance()}})(t),t.acceptToken(3);else if(39==r||34==r&&e.doubleQuotedStrings)f$(t,r,e.backslashEscapes),t.acceptToken(3);else if(35==r&&e.hashComments||47==r&&47==t.next&&e.slashComments)g$(t),t.acceptToken(1);else if(45!=r||45!=t.next||e.spaceAfterDashes&&32!=t.peek(1))if(47==r&&42==t.next){t.advance();for(let e=1;;){let i=t.next;if(t.next<0)break;if(t.advance(),42==i&&47==t.next){if(e--,t.advance(),!e)break}else 47==i&&42==t.next&&(e++,t.advance())}t.acceptToken(2)}else if(101!=r&&69!=r||39!=t.next)if(110!=r&&78!=r||39!=t.next||!e.charSetCasts)if(95==r&&e.charSetCasts)for(let i=0;;i++){if(39==t.next&&i>1){t.advance(),f$(t,39,e.backslashEscapes),t.acceptToken(3);break}if(!c$(t.next))break;t.advance()}else if(e.plsqlQuotingMechanism&&(113==r||81==r)&&39==t.next&&t.peek(1)>0&&!m$(t.peek(1),$$)){let e=t.peek(1);t.advance(2),function(e,t){let i="[{<(".indexOf(String.fromCharCode(t)),r=i<0?t:"]}>)".charCodeAt(i);for(;;){if(e.next<0)return;if(e.next==r&&39==e.peek(1))return void e.advance(2);e.advance()}}(t,e),t.acceptToken(3)}else if(40==r)t.acceptToken(7);else if(41==r)t.acceptToken(8);else if(123==r)t.acceptToken(9);else if(125==r)t.acceptToken(10);else if(91==r)t.acceptToken(11);else if(93==r)t.acceptToken(12);else if(59==r)t.acceptToken(13);else if(e.unquotedBitLiterals&&48==r&&98==t.next)t.advance(),p$(t),t.acceptToken(22);else if(98!=r&&66!=r||39!=t.next&&34!=t.next){if(48==r&&(120==t.next||88==t.next)||(120==r||88==r)&&39==t.next){let e=39==t.next;for(t.advance();u$(t.next);)t.advance();e&&39==t.next&&t.advance(),t.acceptToken(4)}else if(46==r&&t.next>=48&&t.next<=57)Q$(t,!0),t.acceptToken(4);else if(46==r)t.acceptToken(14);else if(r>=48&&r<=57)Q$(t,!1),t.acceptToken(4);else if(m$(r,e.operatorChars)){for(;m$(t.next,e.operatorChars);)t.advance();t.acceptToken(15)}else if(m$(r,e.specialVar))t.next==r&&t.advance(),function(e){if(39==e.next||34==e.next||96==e.next){let t=e.next;e.advance(),f$(e,t,!1)}else d$(e)}(t),t.acceptToken(17);else if(m$(r,e.identifierQuotes))f$(t,r,!1),t.acceptToken(19);else if(58==r||44==r)t.acceptToken(16);else if(c$(r)){let n=d$(t,String.fromCharCode(r));t.acceptToken(46==t.next?18:null!==(i=e.words[n.toLowerCase()])&&void 0!==i?i:18)}}else{const i=t.next;t.advance(),e.treatBitsAsBytes?(f$(t,i,e.backslashEscapes),t.acceptToken(23)):(p$(t,i),t.acceptToken(22))}else t.advance(),f$(t,39,e.backslashEscapes),t.acceptToken(3);else t.advance(),f$(t,39,!0);else g$(t),t.acceptToken(1)}))}const P$=v$(y$),x$=li.deserialize({version:14,states:"%vQ]QQOOO#wQRO'#DSO$OQQO'#CwO%eQQO'#CxO%lQQO'#CyO%sQQO'#CzOOQQ'#DS'#DSOOQQ'#C}'#C}O'UQRO'#C{OOQQ'#Cv'#CvOOQQ'#C|'#C|Q]QQOOQOQQOOO'`QQO'#DOO(xQRO,59cO)PQQO,59cO)UQQO'#DSOOQQ,59d,59dO)cQQO,59dOOQQ,59e,59eO)jQQO,59eOOQQ,59f,59fO)qQQO,59fOOQQ-E6{-E6{OOQQ,59b,59bOOQQ-E6z-E6zOOQQ,59j,59jOOQQ-E6|-E6|O+VQRO1G.}O+^QQO,59cOOQQ1G/O1G/OOOQQ1G/P1G/POOQQ1G/Q1G/QP+kQQO'#C}O+rQQO1G.}O)PQQO,59cO,PQQO'#Cw",stateData:",[~OtOSPOSQOS~ORUOSUOTUOUUOVROXSOZTO]XO^QO_UO`UOaPObPOcPOdUOeUOfUOgUOhUO~O^]ORvXSvXTvXUvXVvXXvXZvX]vX_vX`vXavXbvXcvXdvXevXfvXgvXhvX~OsvX~P!jOa_Ob_Oc_O~ORUOSUOTUOUUOVROXSOZTO^tO_UO`UOa`Ob`Oc`OdUOeUOfUOgUOhUO~OWaO~P$ZOYcO~P$ZO[eO~P$ZORUOSUOTUOUUOVROXSOZTO^QO_UO`UOaPObPOcPOdUOeUOfUOgUOhUO~O]hOsoX~P%zOajObjOcjO~O^]ORkaSkaTkaUkaVkaXkaZka]ka_ka`kaakabkackadkaekafkagkahka~Oska~P'kO^]O~OWvXYvX[vX~P!jOWnO~P$ZOYoO~P$ZO[pO~P$ZO^]ORkiSkiTkiUkiVkiXkiZki]ki_ki`kiakibkickidkiekifkigkihki~Oski~P)xOWkaYka[ka~P'kO]hO~P$ZOWkiYki[ki~P)xOasObsOcsO~O",goto:"#hwPPPPPPPPPPPPPPPPPPPPPPPPPPx||||!Y!^!d!xPPP#[TYOZeUORSTWZbdfqT[OZQZORiZSWOZQbRQdSQfTZgWbdfqQ^PWk^lmrQl_Qm`RrseVORSTWZbdfq",nodeNames:"⚠ LineComment BlockComment String Number Bool Null ( ) { } [ ] ; . Operator Punctuation SpecialVar Identifier QuotedIdentifier Keyword Type Bits Bytes Builtin Script Statement CompositeIdentifier Parens Braces Brackets Statement",maxTerm:38,skippedNodes:[0,1,2],repeatNodeCount:3,tokenData:"RORO",tokenizers:[0,P$],topRules:{Script:[0,25]},tokenPrec:0});function w$(e){let t=e.cursor().moveTo(e.from,-1);for(;/Comment/.test(t.name);)t.moveTo(t.from,-1);return t.node}function T$(e,t){let i=e.sliceString(t.from,t.to),r=/^([`'"])(.*)\1$/.exec(i);return r?r[2]:i}function k$(e){return e&&("Identifier"==e.name||"QuotedIdentifier"==e.name)}function Y$(e,t){if("CompositeIdentifier"==t.name){let i=[];for(let r=t.firstChild;r;r=r.nextSibling)k$(r)&&i.push(T$(e,r));return i}return[T$(e,t)]}function R$(e,t){for(let i=[];;){if(!t||"."!=t.name)return i;let r=w$(t);if(!k$(r))return i;i.unshift(T$(e,r)),t=w$(r)}}function _$(e,t){let i=vl(e).resolveInner(t,-1),r=function(e,t){let i;for(let e=t;!i;e=e.parent){if(!e)return null;"Statement"==e.name&&(i=e)}let r=null;for(let t=i.firstChild,n=!1,o=null;t;t=t.nextSibling){let i="Keyword"==t.name?e.sliceString(t.from,t.to).toLowerCase():null,s=null;if(n)if("as"==i&&o&&k$(t.nextSibling))s=T$(e,t.nextSibling);else{if(i&&V$.has(i))break;o&&k$(t)&&(s=T$(e,t))}else n="from"==i;s&&(r||(r=Object.create(null)),r[s]=Y$(e,o)),o=/Identifier$/.test(t.name)?t:null}return r}(e.doc,i);return"Identifier"==i.name||"QuotedIdentifier"==i.name||"Keyword"==i.name?{from:i.from,quoted:"QuotedIdentifier"==i.name?e.doc.sliceString(i.from,i.from+1):null,parents:R$(e.doc,w$(i)),aliases:r}:"."==i.name?{from:t,quoted:null,parents:R$(e.doc,i),aliases:r}:{from:t,quoted:null,parents:[],empty:!0,aliases:r}}const V$=new Set("where group having order union intersect except all distinct limit offset fetch for".split(" "));function Z$(e,t){return e?t.map((t=>Object.assign(Object.assign({},t),{label:e+t.label+e,apply:void 0}))):t}const q$=/^\w*$/,A$=/^[`'"]?\w*[`'"]?$/;class W${constructor(){this.list=[],this.children=void 0}child(e,t){let i=this.children||(this.children=Object.create(null));return i[e]||(e&&this.list.push(C$(e,"type",t)),i[e]=new W$)}addCompletions(e){for(let t of e){let e=this.list.findIndex((e=>e.label==t.label));e>-1?this.list[e]=t:this.list.push(t)}}}function C$(e,t,i){return/[^\w\xb5-\uffff]/.test(e)?{label:e,type:t,apply:i+e+i}:{label:e,type:t}}let U$=x$.configure({props:[El.add({Statement:Kl()}),Jl.add({Statement:e=>({from:e.firstChild.to,to:e.to}),BlockComment:e=>({from:e.from+2,to:e.to-2})}),La({Keyword:Ql.keyword,Type:Ql.typeName,Builtin:Ql.standard(Ql.name),Bits:Ql.number,Bytes:Ql.string,Bool:Ql.bool,Null:Ql.null,Number:Ql.number,String:Ql.string,Identifier:Ql.name,QuotedIdentifier:Ql.special(Ql.string),SpecialVar:Ql.special(Ql.name),LineComment:Ql.lineComment,BlockComment:Ql.blockComment,Operator:Ql.operator,"Semi Punctuation":Ql.punctuation,"( )":Ql.paren,"{ }":Ql.brace,"[ ]":Ql.squareBracket})]});class N${constructor(e,t,i){this.dialect=e,this.language=t,this.spec=i}get extension(){return this.language.extension}static define(e){let t=function(e,t,i,r){let n={};for(let t in y$)n[t]=(e.hasOwnProperty(t)?e:y$)[t];return t&&(n.words=b$(t,i||"",r)),n}(e,e.keywords,e.types,e.builtin),i=yl.define({name:"sql",parser:U$.configure({tokenizers:[{from:P$,to:v$(t)}]}),languageData:{commentTokens:{line:"--",block:{open:"/*",close:"*/"}},closeBrackets:{brackets:["(","[","{","'",'"',"`"]}}});return new N$(t,i,e)}}function j$(e,t=!1){return function(e,t){return Mh(["QuotedIdentifier","SpecialVar","String","LineComment","BlockComment","."],Dh(Object.keys(e).map((i=>({label:t?i.toUpperCase():i,type:21==e[i]?"type":20==e[i]?"keyword":"variable",boost:-1})))))}(e.dialect.words,t)}function E$(e,t=!1){return e.language.data.of({autocomplete:j$(e,t)})}function z$(e){return e.schema?function(e,t,i,r,n,o){var s;let O=new W$,a=(null===(s=null==o?void 0:o.spec.identifierQuotes)||void 0===s?void 0:s[0])||'"',l=O.child(n||"",a);for(let t in e){let i=t.replace(/\\?\./g,(e=>"."==e?"\0":e)).split("\0"),r=1==i.length?l:O;for(let e of i)r=r.child(e.replace(/\\\./g,"."),a);for(let i of e[t])i&&r.list.push("string"==typeof i?C$(i,"property",a):i)}return t&&l.addCompletions(t),i&&O.addCompletions(i),O.addCompletions(l.list),r&&O.addCompletions(l.child(r,a).list),e=>{let{parents:t,from:i,quoted:n,empty:o,aliases:s}=_$(e.state,e.pos);if(o&&!e.explicit)return null;s&&1==t.length&&(t=s[t[0]]||t);let h=O;for(let e of t){for(;!h.children||!h.children[e];)if(h==O)h=l;else{if(h!=l||!r)return null;h=h.child(r,a)}h=h.child(e,a)}let c=n&&e.state.sliceDoc(e.pos,e.pos+1)==n,u=h.list;return h==O&&s&&(u=u.concat(Object.keys(s).map((e=>({label:e,type:"constant"}))))),{from:i,to:c?e.pos+1:void 0,options:Z$(n,u),validFor:n?A$:q$}}}(e.schema,e.tables,e.schemas,e.defaultTable,e.defaultSchema,e.dialect||M$):()=>null}function G$(e){return e.schema?(e.dialect||M$).language.data.of({autocomplete:z$(e)}):[]}function D$(e={}){let t=e.dialect||M$;return new Zl(t.language,[G$(e),E$(t,!!e.upperCaseKeywords)])}const M$=N$.define({}),B$=N$.define({charSetCasts:!0,doubleDollarQuotedStrings:!0,operatorChars:"+-*/<>=~!@#%^&|`?",specialVar:"",keywords:S$+"a abort abs absent access according ada admin aggregate alias also always analyse analyze array_agg array_max_cardinality asensitive assert assignment asymmetric atomic attach attribute attributes avg backward base64 begin_frame begin_partition bernoulli bit_length blocked bom c cache called cardinality catalog_name ceil ceiling chain char_length character_length character_set_catalog character_set_name character_set_schema characteristics characters checkpoint class class_origin cluster coalesce cobol collation_catalog collation_name collation_schema collect column_name columns command_function command_function_code comment comments committed concurrently condition_number configuration conflict connection_name constant constraint_catalog constraint_name constraint_schema contains content control conversion convert copy corr cost covar_pop covar_samp csv cume_dist current_catalog current_row current_schema cursor_name database datalink datatype datetime_interval_code datetime_interval_precision db debug defaults defined definer degree delimiter delimiters dense_rank depends derived detach detail dictionary disable discard dispatch dlnewcopy dlpreviouscopy dlurlcomplete dlurlcompleteonly dlurlcompletewrite dlurlpath dlurlpathonly dlurlpathwrite dlurlscheme dlurlserver dlvalue document dump dynamic_function dynamic_function_code element elsif empty enable encoding encrypted end_frame end_partition endexec enforced enum errcode error event every exclude excluding exclusive exp explain expression extension extract family file filter final first_value flag floor following force foreach fortran forward frame_row freeze fs functions fusion g generated granted greatest groups handler header hex hierarchy hint id ignore ilike immediately immutable implementation implicit import include including increment indent index indexes info inherit inherits inline insensitive instance instantiable instead integrity intersection invoker isnull k key_member key_type label lag last_value lead leakproof least length library like_regex link listen ln load location lock locked log logged lower m mapping matched materialized max max_cardinality maxvalue member merge message message_length message_octet_length message_text min minvalue mod mode more move multiset mumps name namespace nfc nfd nfkc nfkd nil normalize normalized nothing notice notify notnull nowait nth_value ntile nullable nullif nulls number occurrences_regex octet_length octets off offset oids operator options ordering others over overlay overriding owned owner p parallel parameter_mode parameter_name parameter_ordinal_position parameter_specific_catalog parameter_specific_name parameter_specific_schema parser partition pascal passing passthrough password percent percent_rank percentile_cont percentile_disc perform period permission pg_context pg_datatype_name pg_exception_context pg_exception_detail pg_exception_hint placing plans pli policy portion position position_regex power precedes preceding prepared print_strict_params procedural procedures program publication query quote raise range rank reassign recheck recovery refresh regr_avgx regr_avgy regr_count regr_intercept regr_r2 regr_slope regr_sxx regr_sxy regr_syy reindex rename repeatable replace replica requiring reset respect restart restore result_oid returned_cardinality returned_length returned_octet_length returned_sqlstate returning reverse routine_catalog routine_name routine_schema routines row_count row_number rowtype rule scale schema_name schemas scope scope_catalog scope_name scope_schema security selective self sensitive sequence sequences serializable server server_name setof share show simple skip slice snapshot source specific_name sqlcode sqlerror sqrt stable stacked standalone statement statistics stddev_pop stddev_samp stdin stdout storage strict strip structure style subclass_origin submultiset subscription substring substring_regex succeeds sum symmetric sysid system system_time t table_name tables tablesample tablespace temp template ties token top_level_count transaction_active transactions_committed transactions_rolled_back transform transforms translate translate_regex trigger_catalog trigger_name trigger_schema trim trim_array truncate trusted type types uescape unbounded uncommitted unencrypted unlink unlisten unlogged unnamed untyped upper uri use_column use_variable user_defined_type_catalog user_defined_type_code user_defined_type_name user_defined_type_schema vacuum valid validate validator value_of var_pop var_samp varbinary variable_conflict variadic verbose version versioning views volatile warning whitespace width_bucket window within wrapper xmlagg xmlattributes xmlbinary xmlcast xmlcomment xmlconcat xmldeclaration xmldocument xmlelement xmlexists xmlforest xmliterate xmlnamespaces xmlparse xmlpi xmlquery xmlroot xmlschema xmlserialize xmltable xmltext xmlvalidate yes",types:X$+"bigint int8 bigserial serial8 varbit bool box bytea cidr circle precision float8 inet int4 json jsonb line lseg macaddr macaddr8 money numeric pg_lsn point polygon float4 int2 smallserial serial2 serial serial4 text timetz timestamptz tsquery tsvector txid_snapshot uuid xml"}),I$=new Set([27,51,52,270,67,133,58,59,251,64,65,74,62,63,154,155,158,115]);function L$(e){return 10==e||13==e}const K$=new Kt(((e,t)=>{let i;if(e.next<0)e.acceptToken(206);else if(t.context.depth<0)L$(e.next)&&e.acceptToken(205,1);else if(((i=e.peek(-1))<0||L$(i))&&t.canShift(204)){let t=0;for(;32==e.next||9==e.next;)e.advance(),t++;10!=e.next&&13!=e.next&&35!=e.next||e.acceptToken(204,-t)}else L$(e.next)&&e.acceptToken(203,1)}),{contextual:!0}),F$=new Kt(((e,t)=>{let i=t.context.depth;if(i<0)return;let r=e.peek(-1);if(10==r||13==r){let t=0,r=0;for(;;){if(32==e.next)t++;else{if(9!=e.next)break;t+=8-t%8}e.advance(),r++}t!=i&&10!=e.next&&13!=e.next&&35!=e.next&&(te.depth<0&&I$.has(t)?e.parent:e,shift:(e,t,i,r)=>201==t?new H$(e,function(e){let t=0;for(let i=0;ie.hash}),eb=new Kt((e=>{for(let t=0;t<5;t++){if(e.next!="print".charCodeAt(t))return;e.advance()}if(!/\w/.test(String.fromCharCode(e.next)))for(let t=0;;t++){let i=e.peek(t);if(32!=i&&9!=i)return void(40!=i&&46!=i&&10!=i&&13!=i&&35!=i&&e.acceptToken(1))}}));function tb(e,t,i,r,n){return new Kt((o=>{let s=o.pos;for(;!(o.next<0);)if(123==o.next){if(123!=o.peek(1)){if(o.pos==s)return void o.acceptToken(r,1);break}o.advance(2)}else if(92==o.next)o.advance(),o.next>=0&&o.advance();else{if(o.next==e&&(1==t||o.peek(1)==e&&o.peek(2)==e)){if(o.pos==s)return void o.acceptToken(n,t);break}o.advance()}o.pos>s&&o.acceptToken(i)}))}const ib=tb(39,1,207,2,208),rb=tb(34,1,209,3,210),nb=tb(39,3,211,4,212),ob=tb(34,3,213,5,214),sb=La({'async "*" "**" FormatConversion FormatSpec':Ql.modifier,"for while if elif else try except finally return raise break continue with pass assert await yield match case":Ql.controlKeyword,"in not and or is del":Ql.operatorKeyword,"from def class global nonlocal lambda":Ql.definitionKeyword,import:Ql.moduleKeyword,"with as print":Ql.keyword,Boolean:Ql.bool,None:Ql.null,VariableName:Ql.variableName,"CallExpression/VariableName":Ql.function(Ql.variableName),"FunctionDefinition/VariableName":Ql.function(Ql.definition(Ql.variableName)),"ClassDefinition/VariableName":Ql.definition(Ql.className),PropertyName:Ql.propertyName,"CallExpression/MemberExpression/PropertyName":Ql.function(Ql.propertyName),Comment:Ql.lineComment,Number:Ql.number,String:Ql.string,FormatString:Ql.special(Ql.string),UpdateOp:Ql.updateOperator,"ArithOp!":Ql.arithmeticOperator,BitOp:Ql.bitwiseOperator,CompareOp:Ql.compareOperator,AssignOp:Ql.definitionOperator,Ellipsis:Ql.punctuation,At:Ql.meta,"( )":Ql.paren,"[ ]":Ql.squareBracket,"{ }":Ql.brace,".":Ql.derefOperator,", ;":Ql.separator}),Ob={__proto__:null,await:48,or:58,and:60,in:64,not:66,is:68,if:74,else:76,lambda:80,yield:98,from:100,async:106,for:108,None:168,True:170,False:170,del:184,pass:188,break:192,continue:196,return:200,raise:208,import:212,as:214,global:218,nonlocal:220,assert:224,type:229,elif:242,while:246,try:252,except:254,finally:256,with:260,def:264,class:274,match:285,case:291},ab=li.deserialize({version:14,states:"#&jO`Q#yOOP$bOSOOO%kQ&nO'#HcOOQS'#Cq'#CqOOQS'#Cr'#CrO'ZQ#xO'#CpO(|Q&nO'#HbOOQS'#Hc'#HcOOQS'#DW'#DWOOQS'#Hb'#HbO)jQ#xO'#DaO)}Q#xO'#DhO*_Q#xO'#DlOOQS'#Dw'#DwO*rO,UO'#DwO*zO7[O'#DwO+SOWO'#DxO+_O`O'#DxO+jOpO'#DxO+uO!bO'#DxO-wQ&nO'#HSOOQS'#HS'#HSO'ZQ#xO'#HRO/ZQ&nO'#HROOQS'#Ee'#EeO/rQ#xO'#EfOOQS'#HQ'#HQO/|Q#xO'#HPOOQV'#HP'#HPO0XQ#xO'#F]OOQS'#Ge'#GeO0^Q#xO'#F[OOQV'#IY'#IYOOQV'#HO'#HOOOQV'#Ft'#FtQ`Q#yOOO'ZQ#xO'#CsO0lQ#xO'#DPO0sQ#xO'#DTO1RQ#xO'#HgO1cQ&nO'#EYO'ZQ#xO'#EZOOQS'#E]'#E]OOQS'#E_'#E_OOQS'#Ea'#EaO1wQ#xO'#EcO2_Q#xO'#EgO0XQ#xO'#EiO2rQ&nO'#EiO0XQ#xO'#ElO/rQ#xO'#EoO0XQ#xO'#EqO/rQ#xO'#EwO/rQ#xO'#EzO2}Q#xO'#E|O3UQ#xO'#FRO3aQ#xO'#E}O/rQ#xO'#FRO0XQ#xO'#FTO0XQ#xO'#FYO3fQ#xO'#F_P3mO#xO'#G}POOO)CBq)CBqOOQS'#Cg'#CgOOQS'#Ch'#ChOOQS'#Ci'#CiOOQS'#Cj'#CjOOQS'#Ck'#CkOOQS'#Cl'#ClOOQS'#Cn'#CnO'ZQ#xO,59QO'ZQ#xO,59QO'ZQ#xO,59QO'ZQ#xO,59QO'ZQ#xO,59QO'ZQ#xO,59QO3xQ#xO'#DqOOQS,5:[,5:[O4]Q#xO'#HqOOQS,5:_,5:_O4jQMlO,5:_O4oQ&nO,59[O0lQ#xO,59dO0lQ#xO,59dO0lQ#xO,59dO7_Q#xO,59dO7dQ#xO,59dO7kQ#xO,59lO7rQ#xO'#HbO8xQ#xO'#HaOOQS'#Ha'#HaOOQS'#D^'#D^O9aQ#xO,59cO'ZQ#xO,59cO9oQ#xO,59cOOQS,59{,59{O9tQ#xO,5:TO'ZQ#xO,5:TOOQS,5:S,5:SO:SQ#xO,5:SO:XQ#xO,5:ZO'ZQ#xO,5:ZO'ZQ#xO,5:XOOQS,5:W,5:WO:jQ#xO,5:WO:oQ#xO,5:YOOOO'#F|'#F|O:tO,UO,5:cOOQS,5:c,5:cOOOO'#F}'#F}O:|O7[O,5:cO;UQ#xO'#DyOOOW'#GO'#GOO;fOWO,5:dOOQS,5:d,5:dO;UQ#xO'#D}OOO`'#GR'#GRO;qO`O,5:dO;UQ#xO'#EOOOOp'#GS'#GSO;|OpO,5:dO;UQ#xO'#EPOOO!b'#GT'#GTOROOQS,5>R,5>RO/rQ#xO'#EUOOQS'#EV'#EVOGZQ#xO'#GWOGkQ#xO,59OOGkQ#xO,59OO)pQ#xO,5:rOGyQ&nO'#HjOOQS,5:u,5:uOOQS,5:},5:}OH^Q#xO,5;ROHoQ#xO,5;TOOQS'#GZ'#GZOH}Q&nO,5;TOI]Q#xO,5;TOIbQ#xO'#IWOOQS,5;W,5;WOIpQ#xO'#ISOOQS,5;Z,5;ZOJRQ#xO,5;]O3aQ#xO,5;cO3aQ#xO,5;fOJZQ&nO'#IZO'ZQ#xO'#IZOJeQ#xO,5;hO2}Q#xO,5;hO/rQ#xO,5;mO0XQ#xO,5;oOJjQ#yO'#ExOKvQ#{O,5;iO! [Q#xO'#I[O3aQ#xO,5;mO! gQ#xO,5;oO! oQ#xO,5;tO! zQ&nO,5;yO'ZQ#xO,5;yPOOO,5=i,5=iP!!ROSO,5=iP!!WO#xO,5=iO!${Q&nO1G.lO!%SQ&nO1G.lO!'sQ&nO1G.lO!'}Q&nO1G.lO!*hQ&nO1G.lO!*{Q&nO1G.lO!+`Q#xO'#HpO!+nQ&nO'#HSO/rQ#xO'#HpO!+xQ#xO'#HoOOQS,5:],5:]O!,QQ#xO,5:]O!,VQ#xO'#HrO!,bQ#xO'#HrO!,uQ#xO,5>]OOQS'#Du'#DuOOQS1G/y1G/yOOQS1G/O1G/OO!-uQ&nO1G/OO!-|Q&nO1G/OO0lQ#xO1G/OO!.iQ#xO1G/WOOQS'#D]'#D]O/rQ#xO,59vOOQS1G.}1G.}O!.pQ#xO1G/gO!/QQ#xO1G/gO!/YQ#xO1G/hO'ZQ#xO'#HiO!/_Q#xO'#HiO!/dQ&nO1G.}O!/tQ#xO,59kO!0zQ#xO,5>XO!1[Q#xO,5>XO!1dQ#xO1G/oO!1iQ&nO1G/oOOQS1G/n1G/nO!1yQ#xO,5>SO!2pQ#xO,5>SO/rQ#xO1G/sO!3_Q#xO1G/uO!3dQ&nO1G/uO!3tQ&nO1G/sOOQS1G/r1G/rOOQS1G/t1G/tOOOO-E9z-E9zOOQS1G/}1G/}OOOO-E9{-E9{O!4UQ#xO'#H|O/rQ#xO'#H|O!4dQ#xO,5:eOOOW-E9|-E9|OOQS1G0O1G0OO!4oQ#xO,5:iOOO`-E:P-E:PO!4zQ#xO,5:jOOOp-E:Q-E:QO!5VQ#xO,5:kOOO!b-E:R-E:ROOQS-E:S-E:SO!5bQ!LUO1G3XO!6RQ&nO1G3XO'ZQ#xO,5oOOQS1G1c1G1cO!7RQ#xO1G1cOOQS'#DX'#DXO/rQ#xO,5>OOOQS,5>O,5>OO!7WQ#xO'#FuO!7cQ#xO,59qO!7kQ#xO1G/ZO!7uQ&nO,5>SOOQS1G3m1G3mOOQS,5:p,5:pO!8fQ#xO'#HROOQS,5UO!9gQ#xO,5>UO/rQ#xO1G0mO/rQ#xO1G0mO0XQ#xO1G0oOOQS-E:X-E:XO!9xQ#xO1G0oO!:TQ#xO1G0oO!:YQ#xO,5>rO!:hQ#xO,5>rO!:vQ#xO,5>nO!;^Q#xO,5>nO!;oQ#xO'#EsO/rQ#xO1G0wO!;zQ#xO1G0wO!uO!BzQ#xO,5>uO!CSQ&nO,5>uO/rQ#xO1G1SO!C^Q#xO1G1SO3aQ#xO1G1XO! gQ#xO1G1ZOOQV,5;d,5;dO!CcQ#zO,5;dO!ChQ#{O1G1TO!F|Q#xO'#GbO3aQ#xO1G1TO3aQ#xO1G1TO!G^Q#xO,5>vO!GkQ#xO,5>vO0XQ#xO,5>vOOQV1G1X1G1XO!GsQ#xO'#FVO!HUQMlO1G1ZO!H^Q#xO1G1ZOOQV1G1`1G1`O3aQ#xO1G1`O!HcQ#xO1G1`O!HkQ#xO'#FaOOQV1G1e1G1eO! zQ&nO1G1ePOOO1G3T1G3TP!HpOSO1G3TOOQS,5>[,5>[OOQS'#Dr'#DrO/rQ#xO,5>[O!HuQ#xO,5>ZO!IYQ#xO,5>ZOOQS1G/w1G/wO!IbQ#xO,5>^O!IrQ#xO,5>^O!IzQ#xO,5>^O!J_Q#xO,5>^O!JoQ#xO,5>^OOQS1G3w1G3wOOQS7+$j7+$jO!7kQ#xO7+$rO!LbQ#xO1G/OO!LiQ#xO1G/OOOQS1G/b1G/bOOQS,5TO'ZQ#xO,5>TOOQS7+$i7+$iO!MVQ#xO7+%RO!M_Q#xO7+%SO!MdQ#xO1G3sOOQS7+%Z7+%ZO!MtQ#xO1G3sO!M|Q#xO7+%ZOOQS,5hO##PQ#xO,5>hO##PQ#xO,5>hO##_O$ISO'#D{O##jO#tO'#H}OOOW1G0P1G0PO##oQ#xO1G0POOO`1G0T1G0TO##wQ#xO1G0TOOOp1G0U1G0UO#$PQ#xO1G0UOOO!b1G0V1G0VO#$XQ#xO1G0VO#$aQ!LUO7+(sO#%QQ&nO1G2]P#%kQ#xO'#GVOOQS,5i,5>iOOOW7+%k7+%kOOO`7+%o7+%oOOOp7+%p7+%pOOO!b7+%q7+%qO#:`Q#xO1G3XO#:yQ#xO1G3XP'ZQ#xO'#FxO/rQ#xO<qO#;mQ#xO,5>qO0XQ#xO,5>qO#pOOQS<sO#sOOQS1G0y1G0yOOQS<xO#DpQ#xO,5>xOOQS,5>x,5>xO#D{Q#xO,5>wO#E^Q#xO,5>wOOQS1G1]1G1]OOQS,5;s,5;sOOQV<XAN>XO#HmQ#xO<eAN>eO/rQ#xO1G2PO#H}Q&nO1G2PP#IXQ#xO'#FyOOQS1G2V1G2VP#IfQ#xO'#GPO#IsQ#xO7+)nO#JZQ#xO,5:hOOOO-E:O-E:OO#JfQ#xO7+(sOOQSAN?_AN?_O#KPQ#xO,5VOOQSANBaANBaOOOO7+%n7+%nOOQS7+'|7+'|O$+jQ#xO<zO$.`Q#xO,5>zO0XQ#xO,5|O$!pQ#xO,5>|OOQS1G1s1G1sO$2WQ&nO,5<_OOQU7+'S7+'SO$$mQ#xO1G/kO$!pQ#xO,5<]O$2_Q#xO,5>}O$2fQ#xO,5>}OOQS1G1v1G1vOOQS7+'V7+'VP$!pQ#xO'#GkO$2nQ#xO1G4hO$2xQ#xO1G4hO$3QQ#xO1G4hOOQS7+%V7+%VO$3`Q#xO1G1wO$3nQ&nO'#FdO$3uQ#xO,5=UOOQS,5=U,5=UO$4TQ#xO1G4iOOQS-E:h-E:hO$!pQ#xO,5=TO$4[Q#xO,5=TO$4aQ#xO7+*SOOQS-E:g-E:gO$4kQ#xO7+*SO$!pQ#xO,5<^P$!pQ#xO'#GjO$4sQ#xO1G2oO$!pQ#xO1G2oP$5RQ#xO'#GiO$5YQ#xO<fPP>i?Z?^PP'a'aPP?vPP'a'aPP'a'a'a'a'a?z@t'aP@wP@}EXHxPH|IYI^IbIf'aPPPIjIs'XP'X'XP'XP'XP'XP'XP'X'X'XP'XPP'XPP'XP'XPIyJVJ_PJfJlPJfPJfJfPPPJfPLzPMTM_MeLzPJfMnPJfPMuM{PNPNe! S! mNPNP! s!!QNPNPNPNP!!f!!l!!o!!t!!w!#R!#X!#e!#w!#}!$X!$_!${!%R!%X!%_!%i!%o!%u!%{!&R!&X!&k!&u!&{!'R!'X!'c!'i!'o!'u!'{!(V!(]!(g!(m!(v!(|!)]!)e!)o!)vPPPPPPPPPPPPPPPPP!)|!*P!*V!*`!*j!*uPPPPPPPPPPPP!/l!1Q!5T!8hPP!8p!9S!9]!:U!9{!:_!:e!:h!:k!:n!:v!;gPPPPPPPPP!;j!;yPPPP!V!>`!?[!?_]jOs#v$w*W,d(TeOTYZ[fistuwy}!O!S!U!V!W!Z!^!h!i!j!k!l!m!n!p!t!u!v!x!y#P#T#X#Y#c#g#j#m#s#v$X$Y$[$^$a$r$t$u$w%O%[%a%h%k%m%p%t%y%{&V&b&d&o&s&|'O'P'W'Z'_'b'i'l'}(O(R(T(U(Y(_(a(e(i(n(o(u(x)V)X)a)d)p)w)y)}*O*S*W*^*b*l*v*y*z*}+T+U+W+Y+]+^+a+d+h+i+l+t+v+w,O,],^,d,l,m,p,z,{,|-O-P-S-U-W-Y-[-^-_-b-y-{.S.V.Y.}/O/o/s0[0z0{0|0}1P1Q1R1S1T1V1Z}!hQ#r$P$b$q$}%r%w%}&O&t'a'x)W)c)|+R+[,[-Z0Y1O!P!iQ#r$P$b$q$}%S%r%w%}&O&t'a'x)W)c)|+R+[,[-Z0Y1O!R!jQ#r$P$b$q$}%S%T%r%w%}&O&t'a'x)W)c)|+R+[,[-Z0Y1O!T!kQ#r$P$b$q$}%S%T%U%r%w%}&O&t'a'x)W)c)|+R+[,[-Z0Y1O!V!lQ#r$P$b$q$}%S%T%U%V%r%w%}&O&t'a'x)W)c)|+R+[,[-Z0Y1O!X!mQ#r$P$b$q$}%S%T%U%V%W%r%w%}&O&t'a'x)W)c)|+R+[,[-Z0Y1O!]!mQ!s#r$P$b$q$}%S%T%U%V%W%X%r%w%}&O&t'a'x)W)c)|+R+[,[-Z0Y1O(TTOTYZ[fistuwy}!O!S!U!V!W!Z!^!h!i!j!k!l!m!n!p!t!u!v!x!y#P#T#X#Y#c#g#j#m#s#v$X$Y$[$^$a$r$t$u$w%O%[%a%h%k%m%p%t%y%{&V&b&d&o&s&|'O'P'W'Z'_'b'i'l'}(O(R(T(U(Y(_(a(e(i(n(o(u(x)V)X)a)d)p)w)y)}*O*S*W*^*b*l*v*y*z*}+T+U+W+Y+]+^+a+d+h+i+l+t+v+w,O,],^,d,l,m,p,z,{,|-O-P-S-U-W-Y-[-^-_-b-y-{.S.V.Y.}/O/o/s0[0z0{0|0}1P1Q1R1S1T1V1Z&iVOYZ[isuw}!O!S!U!V!Z!n!p!t!u!v!x!y#c#g#j#m#s#v$Y$[$^$a$u$w%[%a%h%k%m%t%y%{&V&b&o&s'O'P'W'Z'b'i'l'}(O(R(T(U(Y(a(i(o(u(x)V)X)a)p)w)y*S*W*^*b*l*v*y*z*}+T+U+W+Y+]+^+a+h+i+l+t+w,O,d,l,m,p,z,{,|-O-P-S-U-W-Y-[-^-_-b-y-{.S.V.Y.}/O/s0[0z0{0|0}1P1Q1R1S1V1Z%sXOYZ[isw}!O!S!U!V!Z!n!p#c#g#j#m#s#v$Y$[$^$a$u$w%[%a%k%m%t%y%{&V&b&o&s'O'P'W'Z'b'i'l'}(O(R(T(U(Y(a(i(o(u(x)V)X)a)p)w)y*S*W*^*b*l*v*y*z*}+T+W+Y+]+^+a+h+i+l+t+w,O,d,l,m,p,z,{,|-O-P-S-W-Y-[-^-_-b-y-{.S.V.}/O/s1Q1R1SQ$VvQ/t/SR1W1Y'zeOTYZ[fistuwy}!O!S!U!V!W!Z!^!h!i!j!k!l!m!p!t!u!v!x!y#P#T#X#Y#c#g#j#m#s#v$X$Y$[$^$a$r$t$u$w%O%[%a%h%k%m%p%t%y%{&V&b&d&o&s&|'O'P'W'Z'_'b'i'l'}(R(T(U(Y(_(a(e(i(n(o(u(x)V)X)a)d)p)w)y)}*O*S*W*^*b*l*y*z*}+T+U+W+Y+]+^+a+d+h+i+l+t+v+w,O,],^,d,l,m,p,{,|-O-P-S-U-W-Y-[-^-_-b-y-{.S.V.Y.}/O/o/s0[0z0{0|0}1P1Q1R1S1T1V1ZW#ym!P!Q$hW$Rv&q/S1YQ$j!RQ$n!TQ${![Q$|!]W%Z!n(O*v,zS&p$S$TQ'e$vQ)Y&jQ)h'QU)i'S)j)kU)l'U)m+}W)s'Y,Q-j.dQ*d'nW*e'p,s-}.lQ,P)rS,r*f*gY-d+x-e.a.b/XQ-g+zQ-t,hQ-x,kQ.j-vl.o.R.u.v.x/d/f/k0R0W0]0b0m0r0uQ/W.`Q/l.wQ/x/^Q0T/hU0h0^0k0sX0n0c0o0v0wR&o$R!_!|YZ!U!V!p%a%m%t(R(T(U(a(i)y*y*z*}+T+W+Y,{,|-O-P-S.S.V.}/O/sR%k!{Q#QYQ&W#cQ&Z#gQ&]#jQ&_#mQ&x$^Q&{$aR-`+lT/R.Y0[![!oQ!s#r$P$b$q$}%S%T%U%V%W%X%r%w%}&O&t'a'x)W)c)|+R+[,[-Z0Y1OQ&m#zQ't$|R*p'uR'}%ZQ%d!rR/v/[(SdOTYZ[fistuwy}!O!S!U!V!W!Z!^!h!i!j!k!l!m!n!p!t!u!v!x!y#P#T#X#Y#c#g#j#m#s#v$X$Y$[$^$a$r$t$u$w%O%[%a%h%k%m%p%t%y%{&V&b&d&o&s&|'O'P'W'Z'_'b'i'l'}(O(R(T(U(Y(_(a(e(i(n(o(u(x)V)X)a)d)p)w)y)}*O*S*W*^*b*l*v*y*z*}+T+U+W+Y+]+^+a+d+h+i+l+t+v+w,O,],^,d,l,m,p,z,{,|-O-P-S-U-W-Y-[-^-_-b-y-{.S.V.Y.}/O/o/s0[0z0{0|0}1P1Q1R1S1T1V1ZS#pd#q!P.s.R.u.v.w.x/^/d/f/k0R0W0]0^0b0c0k0m0o0r0s0u0v0w(SdOTYZ[fistuwy}!O!S!U!V!W!Z!^!h!i!j!k!l!m!n!p!t!u!v!x!y#P#T#X#Y#c#g#j#m#s#v$X$Y$[$^$a$r$t$u$w%O%[%a%h%k%m%p%t%y%{&V&b&d&o&s&|'O'P'W'Z'_'b'i'l'}(O(R(T(U(Y(_(a(e(i(n(o(u(x)V)X)a)d)p)w)y)}*O*S*W*^*b*l*v*y*z*}+T+U+W+Y+]+^+a+d+h+i+l+t+v+w,O,],^,d,l,m,p,z,{,|-O-P-S-U-W-Y-[-^-_-b-y-{.S.V.Y.}/O/o/s0[0z0{0|0}1P1Q1R1S1T1V1ZT#pd#qT#d`#ee(|&W&Z&]&_)O)Q)S)U-`._T+m({+nT#ha#iT#kb#lT#nc#oQ$`xQ,P)sR,q*eX$^x$_$`&zQ'[$nQ'r${Q'u$|R*V'eQ)t'YV-i,Q-j.dZlOs$w*W,dXpOs*W,dQ$x!YQ']$oQ'^$pQ'o$zQ's$|Q*T'dQ*['iQ*_'jQ*`'kQ*m'qS*o't'uQ,W)yQ,Y)zQ,Z){Q,_*RS,a*U*nQ,e*YQ,f*ZS,g*]*^Q,w*pQ-l,VQ-m,XQ-o,`S-p,b,cQ-u,iQ-w,jQ.e-nQ.g-qQ.h-sQ.i-tQ/Y.fQ/Z.jQ/p.{R0Z/qWpOs*W,dR#|oQ'q${S*U'e'rR,c*VQ,p*eR-{,qQ*n'qQ,b*UR-q,cZnOos*W,dQ'w$}R*r'xT.P,x.Qu.z.R.u.v.x/^/d/f/k0R0W0]0^0b0k0m0r0s0ut.z.R.u.v.x/^/d/f/k0R0W0]0^0b0k0m0r0s0uQ/l.wX0n0c0o0v0w!P.r.R.u.v.w.x/^/d/f/k0R0W0]0^0b0c0k0m0o0r0s0u0v0wQ/a.qR/}/bg/d.t/e/y0Q0V0e0g0i0t0x0yu.y.R.u.v.x/^/d/f/k0R0W0]0^0b0k0m0r0s0uX/_.o.y/x0hR/z/^V0j0^0k0sR/q.{QsOS$Os,dR,d*WQ&r$UR)_&rS%z#W$WS(p%z(sT(s%}&tQ%n#OQ%u#SW(b%n%u(g(kQ(g%rR(k%wQ&}$bR)e&}Q(v&OQ+_(qT+e(v+_Q(P%]R*w(PS(S%`%aY*{(S*|-Q.W/PU*|(T(U(VU-Q*}+O+PS.W-R-SR/P.XQ#_^R&R#_Q#b_R&T#bQ#e`R&X#eQ(y&US+j(y+kR+k(zQ+n({R-a+nQ#iaR&[#iQ#lbR&^#lQ#ocR&`#oQ#qdR&a#qQ#tgQ&c#rW&f#t&c)b+uQ)b&wR+u1OQ$_xS&y$_&zR&z$`Q'X$lR)q'XQ&k#yR)Z&kQ$h!QR'R$hQ+y)iS-f+y.cR.c-gQ'V$jR)n'VQ,R)tR-k,RQ#wkR&h#wQ)x']R,U)xQ'`$qS*P'`*QR*Q'aQ'h$xR*X'hQ'm$yS*c'm,nR,n*dQ,t*iR.O,tWoOs*W,dR#{oQ.Q,xR.m.Qd/e.t/y0Q0V0e0g0i0t0x0yR0P/eU/].o/x0hR/w/]Q0d0VS0p0d0qR0q0eS0_/y/zR0l0_Q/g.tR0S/gR!`PXrOs*W,dWqOs*W,dR'f$wYkOs$w*W,dR&g#v[xOs#v$w*W,dR&x$^&hQOYZ[isuw}!O!S!U!V!Z!n!p!t!u!v!x!y#c#g#j#m#s#v$Y$[$^$a$u$w%[%a%h%k%m%t%y%{&V&b&o&s'O'P'W'Z'b'i'l'}(O(R(T(U(Y(a(i(o(u(x)V)X)a)p)w)y*S*W*^*b*l*v*y*z*}+T+U+W+Y+]+^+a+h+i+l+t+w,O,d,l,m,p,z,{,|-O-P-S-U-W-Y-[-^-_-b-y-{.S.V.Y.}/O/s0[0z0{0|0}1P1Q1R1S1V1ZQ!sTQ#rfQ$PtU$by%p(eS$q!W$tQ$}!^Q%S!hQ%T!iQ%U!jQ%V!kQ%W!lQ%X!mQ%r#PQ%w#TQ%}#XQ&O#YQ&t$XQ'a$rQ'x%OQ)W&dU)c&|)d+vW)|'_*O,],^Q+R(_Q+[(nQ,[)}Q-Z+dQ0Y/oR1O1TQ#OYQ#SZQ$o!UQ$p!VQ%`!pQ(V%a^(^%m%t(a(i+T+W+Y^*x(R*z-O-P.V/O/sQ+O(TQ+P(UQ,X)yQ,}*yQ-R*}Q.T,{Q.U,|Q.X-SQ.|.SR/r.}[gOs#v$w*W,d!^!{YZ!U!V!p%a%m%t(R(T(U(a(i)y*y*z*}+T+W+Y,{,|-O-P-S.S.V.}/O/sQ#W[Q#uiS$Ww}Q$e!OW$l!S$a'b*SS$y!Z$uW%Y!n(O*v,zY&U#c#g#j#m+l`&e#s&b)V)X)a+t-b1SQ&u$YQ&v$[Q&w$^Q'{%[Q(]%kW(m%y(o+]+aQ(q%{Q(z&VQ)]&oS)`&s1QQ)f'OQ)g'PU)o'W)p,OQ)v'ZQ*]'iY*a'l*b,l,m-yQ*t'}S+Q(Y1RW+c(u+^-W-[W+g(x+i-^-_Q,T)wQ,i*^Q,v*lQ-]+hQ-c+wQ-z,pQ.]-YR.k-{hUOs#s#v$w&b&s(Y)V)X*W,d%Y!zYZ[iw}!O!S!U!V!Z!n!p#c#g#j#m$Y$[$^$a$u%[%a%k%m%t%y%{&V&o'O'P'W'Z'b'i'l'}(O(R(T(U(a(i(o(u(x)a)p)w)y*S*^*b*l*v*y*z*}+T+W+Y+]+^+a+h+i+l+t+w,O,l,m,p,z,{,|-O-P-S-W-Y-[-^-_-b-y-{.S.V.}/O/s1Q1R1SQ$QuW%e!t!x0{1VQ%f!uQ%g!vQ%i!yQ%s0zS(X%h1PQ(Z0|Q([0}Q-T+UQ.[-US/Q.Y0[R1X1ZU$Uv/S1YR)^&q[hOs#v$w*W,da!}Y#c#g#j#m$^$a+lQ#][Q$ZwR$d}Q%o#OQ%v#SQ%|#WQ'{%YQ(h%rQ(l%wQ(t%}Q(w&OQ+`(qQ,y*tQ.Z-TQ/U.[R/u/TQ$cyQ(d%pR+V(eQ/T.YR0f0[R#VZR#[[R%_!nQ%]!nV*u(O*v,z!]!qQ!s#r$P$b$q$}%S%T%U%V%W%X%r%w%}&O&t'a'x)W)c)|+R+[,[-Z0Y1OR%b!pQ&W#cQ&Z#gQ&]#jQ&_#mR-`+lQ(}&WQ)P&ZQ)R&]Q)T&_Q+p)OQ+q)QQ+r)SQ+s)UQ.^-`R/V._Q$m!SQ&{$aQ*R'bR,`*SQ#zmQ$f!PQ$i!QR'T$hQ)h'SR+|)kQ)h'SQ+{)jR+|)kR$k!RR)u'YXqOs*W,dQ$s!WR'c$tQ$z!ZR'd$uR*k'pQ*i'pV-|,s-}.lQ.{.RQ/i.uR/j.vU.t.R.u.vQ/n.xQ/y/^Q0O/dU0Q/f0R0bQ0V/kQ0e0WQ0g0]U0i0^0k0sQ0t0mQ0x0rR0y0uR/m.wR/{/^",nodeNames:"⚠ print { { { { Comment Script AssignStatement * BinaryExpression BitOp BitOp BitOp BitOp ArithOp ArithOp @ ArithOp ** UnaryExpression ArithOp BitOp AwaitExpression await ) ( ParenthesizedExpression BinaryExpression or and CompareOp in not is UnaryExpression ConditionalExpression if else LambdaExpression lambda ParamList VariableName AssignOp , : NamedExpression AssignOp YieldExpression yield from TupleExpression ComprehensionExpression async for LambdaExpression ] [ ArrayExpression ArrayComprehensionExpression } { DictionaryExpression DictionaryComprehensionExpression SetExpression SetComprehensionExpression CallExpression ArgList AssignOp MemberExpression . PropertyName Number String FormatString FormatReplacement FormatConversion FormatSpec FormatReplacement FormatReplacement FormatReplacement FormatReplacement ContinuedString Ellipsis None Boolean TypeDef AssignOp UpdateStatement UpdateOp ExpressionStatement DeleteStatement del PassStatement pass BreakStatement break ContinueStatement continue ReturnStatement return YieldStatement PrintStatement RaiseStatement raise ImportStatement import as ScopeStatement global nonlocal AssertStatement assert TypeDefinition type TypeParamList TypeParam StatementGroup ; IfStatement Body elif WhileStatement while ForStatement TryStatement try except finally WithStatement with FunctionDefinition def ParamList AssignOp TypeDef ClassDefinition class DecoratedStatement Decorator At MatchStatement match MatchBody MatchClause case CapturePattern LiteralPattern ArithOp ArithOp AsPattern OrPattern LogicOp AttributePattern SequencePattern MappingPattern StarPattern ClassPattern PatternArgList KeywordPattern KeywordPattern Guard",maxTerm:283,context:J$,nodeProps:[["group",-15,8,88,90,91,93,95,97,99,101,102,103,105,108,111,113,"Statement Statement",-22,10,20,23,27,42,51,52,58,59,62,63,64,65,66,69,72,73,74,82,83,84,85,"Expression",-10,117,119,122,124,125,129,131,136,138,141,"Statement",-9,146,147,150,151,153,154,155,156,157,"Pattern"],["openedBy",25,"(",56,"[",60,"{"],["closedBy",26,")",57,"]",61,"}"]],propSources:[sb],skippedNodes:[0,6],repeatNodeCount:38,tokenData:"%-W#sR!`OX%TXY=|Y[%T[]=|]p%Tpq=|qr@_rsDOst!+|tu%Tuv!Nnvw#!|wx#$Wxy#:Uyz#;Yz{#<^{|#>x|}#@S}!O#AW!O!P#Ci!P!Q#N_!Q!R$!y!R![$&w![!]$1e!]!^$3s!^!_$4w!_!`$7c!`!a$8m!a!b%T!b!c$;U!c!d$W!e!h$W#V#Y$Q<%lO$Xc&r!b&jS&mW%p!TOX%TXY=|Y[%T[]=|]p%Tpq=|qr%Trs&Vsw%Twx/Xx#O%T#O#P?d#P#o%T#o#p8^#p#q%T#q#r8^#r;'S%T;'S;=`=v<%lO%T#s?i[&r!bOY%TYZ=|Z]%T]^=|^#o%T#o#p8^#p#q%T#q#r8^#r;'S%T;'S;=`=P;=`<%l8^<%lO%T!q@hd&r!b&jS&mWOr%Trs&Vsw%Twx/Xx!_%T!_!`Av!`#O%T#O#P7o#P#T%T#T#UBz#U#f%T#f#gBz#g#hBz#h#o%T#o#p8^#p#q%T#q#r8^#r;'S%T;'S;=`=v<%lO%T!qBR]oR&r!b&jS&mWOr%Trs&Vsw%Twx/Xx#O%T#O#P7o#P#o%T#o#p8^#p#q%T#q#r8^#r;'S%T;'S;=`=v<%lO%T!qCV]!nR&r!b&jS&mWOr%Trs&Vsw%Twx/Xx#O%T#O#P7o#P#o%T#o#p8^#p#q%T#q#r8^#r;'S%T;'S;=`=v<%lO%T#cDXa&r!b&jS&hsOYE^YZ%TZ]E^]^%T^rE^rs!)|swE^wxGpx#OE^#O#P!!u#P#oE^#o#p!#d#p#qE^#q#r!#d#r;'SE^;'S;=`!)v<%lOE^#cEia&r!b&jS&mW&hsOYE^YZ%TZ]E^]^%T^rE^rsFnswE^wxGpx#OE^#O#P!!u#P#oE^#o#p!#d#p#qE^#q#r!#d#r;'SE^;'S;=`!)v<%lOE^#cFw]&r!b&jS&hsOr%Trs'Vsw%Twx/Xx#O%T#O#P7o#P#o%T#o#p8^#p#q%T#q#r8^#r;'S%T;'S;=`=v<%lO%T#cGya&r!b&mW&hsOYE^YZ%TZ]E^]^%T^rE^rsFnswE^wxIOx#OE^#O#P!!u#P#oE^#o#p!#d#p#qE^#q#r!#d#r;'SE^;'S;=`!)v<%lOE^#cIXa&r!b&mW&hsOYE^YZ%TZ]E^]^%T^rE^rsFnswE^wxJ^x#OE^#O#P!!u#P#oE^#o#p!#d#p#qE^#q#r!#d#r;'SE^;'S;=`!)v<%lOE^#_Jg_&r!b&mW&hsOYJ^YZ1XZ]J^]^1X^rJ^rsKfs#OJ^#O#PL`#P#oJ^#o#pL}#p#qJ^#q#rL}#r;'SJ^;'S;=`!!o<%lOJ^#_KmZ&r!b&hsOr1Xrs2ys#O1X#O#P3q#P#o1X#o#p4`#p#q1X#q#r4`#r;'S1X;'S;=`7i<%lO1X#_LeW&r!bO#oJ^#o#pL}#p#qJ^#q#rL}#r;'SJ^;'S;=`! r;=`<%lL}<%lOJ^{MUZ&mW&hsOYL}YZ4`Z]L}]^4`^rL}rsMws#OL}#O#PNc#P;'SL};'S;=`! l<%lOL}{M|V&hsOr4`rs5ds#O4`#O#P5y#P;'S4`;'S;=`6t<%lO4`{NfRO;'SL};'S;=`No;=`OL}{Nv[&mW&hsOYL}YZ4`Z]L}]^4`^rL}rsMws#OL}#O#PNc#P;'SL};'S;=`! l;=`<%lL}<%lOL}{! oP;=`<%lL}#_! y[&mW&hsOYL}YZ4`Z]L}]^4`^rL}rsMws#OL}#O#PNc#P;'SL};'S;=`! l;=`<%lJ^<%lOL}#_!!rP;=`<%lJ^#c!!zW&r!bO#oE^#o#p!#d#p#qE^#q#r!#d#r;'SE^;'S;=`!(q;=`<%l!#d<%lOE^!P!#m]&jS&mW&hsOY!#dYZ8^Z]!#d]^8^^r!#drs!$fsw!#dwx!%Yx#O!#d#O#P!'Y#P;'S!#d;'S;=`!(k<%lO!#d!P!$mX&jS&hsOr8^rs9rsw8^wx:dx#O8^#O#P;v#P;'S8^;'S;=`^s#O!=U#O#P!@j#P#o!=U#o#p!Ag#p#q!=U#q#r!Ag#r;'S!=U;'S;=`!FQ<%lO!=U#o!>e_U!T&r!bOY!=UYZ1XZ]!=U]^1X^r!=Urs!?ds#O!=U#O#P!@j#P#o!=U#o#p!Ag#p#q!=U#q#r!Ag#r;'S!=U;'S;=`!FQ<%lO!=U#o!?k_U!T&r!bOY!=UYZ1XZ]!=U]^1X^r!=Urs!3`s#O!=U#O#P!@j#P#o!=U#o#p!Ag#p#q!=U#q#r!Ag#r;'S!=U;'S;=`!FQ<%lO!=U#o!@q[U!T&r!bOY!=UYZ1XZ]!=U]^1X^#o!=U#o#p!Ag#p#q!=U#q#r!Ag#r;'S!=U;'S;=`!Ec;=`<%l4`<%lO!=U!]!AnZU!T&mWOY!AgYZ4`Z]!Ag]^4`^r!Agrs!Bas#O!Ag#O#P!DP#P;'S!Ag;'S;=`!E]<%lO!Ag!]!BfZU!TOY!AgYZ4`Z]!Ag]^4`^r!Agrs!CXs#O!Ag#O#P!DP#P;'S!Ag;'S;=`!E]<%lO!Ag!]!C^ZU!TOY!AgYZ4`Z]!Ag]^4`^r!Agrs!4Ys#O!Ag#O#P!DP#P;'S!Ag;'S;=`!E]<%lO!Ag!]!DUWU!TOY!AgYZ4`Z]!Ag]^4`^;'S!Ag;'S;=`!Dn;=`<%l4`<%lO!Ag!]!DsW&mWOr4`rs4zs#O4`#O#P5y#P;'S4`;'S;=`6t;=`<%l!Ag<%lO4`!]!E`P;=`<%l!Ag#o!EhW&mWOr4`rs4zs#O4`#O#P5y#P;'S4`;'S;=`6t;=`<%l!=U<%lO4`#o!FTP;=`<%l!=U#s!F_[U!T&r!bOY!+|YZ%TZ]!+|]^%T^#o!+|#o#p!GT#p#q!+|#q#r!GT#r;'S!+|;'S;=`!Mq;=`<%l8^<%lO!+|!a!G^]U!T&jS&mWOY!GTYZ8^Z]!GT]^8^^r!GTrs!HVsw!GTwx!JVx#O!GT#O#P!LV#P;'S!GT;'S;=`!Mk<%lO!GT!a!H^]U!T&jSOY!GTYZ8^Z]!GT]^8^^r!GTrs!IVsw!GTwx!JVx#O!GT#O#P!LV#P;'S!GT;'S;=`!Mk<%lO!GT!a!I^]U!T&jSOY!GTYZ8^Z]!GT]^8^^r!GTrs!5wsw!GTwx!JVx#O!GT#O#P!LV#P;'S!GT;'S;=`!Mk<%lO!GT!a!J^]U!T&mWOY!GTYZ8^Z]!GT]^8^^r!GTrs!HVsw!GTwx!KVx#O!GT#O#P!LV#P;'S!GT;'S;=`!Mk<%lO!GT!a!K^]U!T&mWOY!GTYZ8^Z]!GT]^8^^r!GTrs!HVsw!GTwx!Agx#O!GT#O#P!LV#P;'S!GT;'S;=`!Mk<%lO!GT!a!L[WU!TOY!GTYZ8^Z]!GT]^8^^;'S!GT;'S;=`!Lt;=`<%l8^<%lO!GT!a!L{Y&jS&mWOr8^rs9Qsw8^wx:dx#O8^#O#P;v#P;'S8^;'S;=`Q<%lO$TP;=`<%l$ei&r!b&jS&mW&g`&SsOr%Trs$@Ssw%Twx$C`x!Q%T!Q![$Q<%lO$Q<%lO$Q<%lO$Q<%lO$Q<%lO$Ob[e]||-1}],tokenPrec:7372}),lb=new yt,hb=new Set(["Script","Body","FunctionDefinition","ClassDefinition","LambdaExpression","ForStatement","MatchClause"]);function cb(e){return(t,i,r)=>{if(r)return!1;let n=t.node.getChild("VariableName");return n&&i(n,e),!0}}const ub={FunctionDefinition:cb("function"),ClassDefinition:cb("class"),ForStatement(e,t,i){if(i)for(let i=e.node.firstChild;i;i=i.nextSibling)if("VariableName"==i.name)t(i,"variable");else if("in"==i.name)break},ImportStatement(e,t){var i,r;let{node:n}=e,o="from"==(null===(i=n.firstChild)||void 0===i?void 0:i.name);for(let e=n.getChild("import");e;e=e.nextSibling)"VariableName"==e.name&&"as"!=(null===(r=e.nextSibling)||void 0===r?void 0:r.name)&&t(e,o?"variable":"namespace")},AssignStatement(e,t){for(let i=e.node.firstChild;i;i=i.nextSibling)if("VariableName"==i.name)t(i,"variable");else if(":"==i.name||"AssignOp"==i.name)break},ParamList(e,t){for(let i=null,r=e.node.firstChild;r;r=r.nextSibling)"VariableName"!=r.name||i&&/\*|AssignOp/.test(i.name)||t(r,"variable"),i=r},CapturePattern:cb("variable"),AsPattern:cb("variable"),__proto__:null};function fb(e,t){let i=lb.get(t);if(i)return i;let r=[],n=!0;function o(t,i){let n=e.sliceString(t.from,t.to);r.push({label:n,type:i})}return t.cursor(nt.IncludeAnonymous).iterate((t=>{if(t.name){let e=ub[t.name];if(e&&e(t,o,n)||!n&&hb.has(t.name))return!1;n=!1}else if(t.to-t.from>8192){for(let i of fb(e,t.node))r.push(i);return!1}})),lb.set(t,r),r}const db=/^[\w\xa1-\uffff][\w\d\xa1-\uffff]*$/,pb=["String","FormatString","Comment","PropertyName"];function Qb(e){let t=vl(e.state).resolveInner(e.pos,-1);if(pb.indexOf(t.name)>-1)return null;let i="VariableName"==t.name||t.to-t.from<20&&db.test(e.state.sliceDoc(t.from,t.to));if(!i&&!e.explicit)return null;let r=[];for(let i=t;i;i=i.parent)hb.has(i.name)&&(r=r.concat(fb(e.state.doc,i)));return{options:r,from:i?t.from:e.pos,validFor:db}}const gb=["__annotations__","__builtins__","__debug__","__doc__","__import__","__name__","__loader__","__package__","__spec__","False","None","True"].map((e=>({label:e,type:"constant"}))).concat(["ArithmeticError","AssertionError","AttributeError","BaseException","BlockingIOError","BrokenPipeError","BufferError","BytesWarning","ChildProcessError","ConnectionAbortedError","ConnectionError","ConnectionRefusedError","ConnectionResetError","DeprecationWarning","EOFError","Ellipsis","EncodingWarning","EnvironmentError","Exception","FileExistsError","FileNotFoundError","FloatingPointError","FutureWarning","GeneratorExit","IOError","ImportError","ImportWarning","IndentationError","IndexError","InterruptedError","IsADirectoryError","KeyError","KeyboardInterrupt","LookupError","MemoryError","ModuleNotFoundError","NameError","NotADirectoryError","NotImplemented","NotImplementedError","OSError","OverflowError","PendingDeprecationWarning","PermissionError","ProcessLookupError","RecursionError","ReferenceError","ResourceWarning","RuntimeError","RuntimeWarning","StopAsyncIteration","StopIteration","SyntaxError","SyntaxWarning","SystemError","SystemExit","TabError","TimeoutError","TypeError","UnboundLocalError","UnicodeDecodeError","UnicodeEncodeError","UnicodeError","UnicodeTranslateError","UnicodeWarning","UserWarning","ValueError","Warning","ZeroDivisionError"].map((e=>({label:e,type:"type"})))).concat(["bool","bytearray","bytes","classmethod","complex","float","frozenset","int","list","map","memoryview","object","range","set","staticmethod","str","super","tuple","type"].map((e=>({label:e,type:"class"})))).concat(["abs","aiter","all","anext","any","ascii","bin","breakpoint","callable","chr","compile","delattr","dict","dir","divmod","enumerate","eval","exec","exit","filter","format","getattr","globals","hasattr","hash","help","hex","id","input","isinstance","issubclass","iter","len","license","locals","max","min","next","oct","open","ord","pow","print","property","quit","repr","reversed","round","setattr","slice","sorted","sum","vars","zip"].map((e=>({label:e,type:"function"})))),mb=[Bc("def ${name}(${params}):\n\t${}",{label:"def",detail:"function",type:"keyword"}),Bc("for ${name} in ${collection}:\n\t${}",{label:"for",detail:"loop",type:"keyword"}),Bc("while ${}:\n\t${}",{label:"while",detail:"loop",type:"keyword"}),Bc("try:\n\t${}\nexcept ${error}:\n\t${}",{label:"try",detail:"/ except block",type:"keyword"}),Bc("if ${}:\n\t\n",{label:"if",detail:"block",type:"keyword"}),Bc("if ${}:\n\t${}\nelse:\n\t${}",{label:"if",detail:"/ else block",type:"keyword"}),Bc("class ${name}:\n\tdef __init__(self, ${params}):\n\t\t\t${}",{label:"class",detail:"definition",type:"keyword"}),Bc("import ${module}",{label:"import",detail:"statement",type:"keyword"}),Bc("from ${module} import ${names}",{label:"from",detail:"import",type:"keyword"})],$b=Mh(pb,Dh(gb.concat(mb)));function bb(e,t){let i=e.baseIndentFor(t),r=e.lineAt(e.pos,-1),n=r.from+r.text.length;return/^\s*($|#)/.test(r.text)&&e.node.toi?null:i+e.unit}const Xb=yl.define({name:"python",parser:ab.configure({props:[El.add({Body:e=>{var t;return null!==(t=bb(e,e.node))&&void 0!==t?t:e.continue()},IfStatement:e=>/^\s*(else:|elif )/.test(e.textAfter)?e.baseIndent:e.continue(),TryStatement:e=>/^\s*(except |finally:|else:)/.test(e.textAfter)?e.baseIndent:e.continue(),"TupleExpression ComprehensionExpression ParamList ArgList ParenthesizedExpression":Il({closing:")"}),"DictionaryExpression DictionaryComprehensionExpression SetExpression SetComprehensionExpression":Il({closing:"}"}),"ArrayExpression ArrayComprehensionExpression":Il({closing:"]"}),"String FormatString":()=>null,Script:e=>{if(e.pos+/\s*/.exec(e.textAfter)[0].length>=e.node.to){let t=null;for(let i=e.node,r=i.to;i=i.lastChild,i&&i.to==r;)"Body"==i.type.name&&(t=i);if(t){let i=bb(e,t);if(null!=i)return i}}return e.continue()}}),Jl.add({"ArrayExpression DictionaryExpression SetExpression TupleExpression":eh,Body:(e,t)=>({from:e.from+1,to:e.to-(e.to==t.doc.length?0:1)})})]}),languageData:{closeBrackets:{brackets:["(","[","{","'",'"',"'''",'"""'],stringPrefixes:["f","fr","rf","r","u","b","br","rb","F","FR","RF","R","U","B","BR","RB"]},commentTokens:{line:"#"},indentOnInput:/^\s*([\}\]\)]|else:|elif |except |finally:)$/}});function Sb(){return new Zl(Xb,[Xb.data.of({autocomplete:Qb}),Xb.data.of({autocomplete:$b})])}class yb{constructor(e,t,i,r){this.origin=e,this.changes=t,this.effects=i,this.clientID=r}}class vb{constructor(e,t){this.version=e,this.unconfirmed=t}}const Pb=N.define({combine(e){let t=ke(e,{startVersion:0,clientID:null,sharedEffects:()=>[]},{generatedID:e=>e});return null==t.clientID&&(t.clientID=e.length&&e[0].generatedID||""),t}}),xb=fe.define();B.define({create:e=>new vb(e.facet(Pb).startVersion,[]),update(e,t){let i=t.annotation(xb);if(i)return i;let{sharedEffects:r,clientID:n}=t.startState.facet(Pb),o=r(t);return o.length||!t.changes.empty?new vb(e.version,e.unconfirmed.concat(new yb(t,t.changes,o,n))):e}});class wb{constructor(e,t,i){this.from=e,this.to=t,this.diagnostic=i}}class Tb{constructor(e,t,i){this.diagnostics=e,this.panel=t,this.selected=i}static init(e,t,i){let r=e,n=i.facet(Ub).markerFilter;n&&(r=n(r));let o=Vn.set(r.map((e=>e.from==e.to||e.from==e.to-1&&i.doc.lineAt(e.from).to==e.from?Vn.widget({widget:new Eb(e),diagnostic:e}).range(e.from):Vn.mark({attributes:{class:"cm-lintRange cm-lintRange-"+e.severity+(e.markClass?" "+e.markClass:"")},diagnostic:e}).range(e.from,e.to))),!0);return new Tb(o,t,kb(o))}}function kb(e,t=null,i=0){let r=null;return e.between(i,1e9,((e,i,{spec:n})=>{if(!t||n.diagnostic==t)return r=new wb(e,i,n.diagnostic),!1})),r}function Yb(e,t){return e.field(qb,!1)?t:t.concat(Qe.appendConfig.of(Bb))}function Rb(e,t){return{effects:Yb(e,[_b.of(t)])}}const _b=Qe.define(),Vb=Qe.define(),Zb=Qe.define(),qb=B.define({create:()=>new Tb(Vn.none,null,null),update(e,t){if(t.docChanged){let i=e.diagnostics.map(t.changes),r=null;if(e.selected){let n=t.changes.mapPos(e.selected.from,1);r=kb(i,e.selected.diagnostic,n)||kb(i,null,n)}e=new Tb(i,e.panel,r)}for(let i of t.effects)i.is(_b)?e=Tb.init(i.value,e.panel,t.state):i.is(Vb)?e=new Tb(e.diagnostics,i.value?Gb.open:null,e.selected):i.is(Zb)&&(e=new Tb(e.diagnostics,e.panel,i.value));return e},provide:e=>[xa.from(e,(e=>e.panel)),dO.decorations.from(e,(e=>e.diagnostics))]}),Ab=Vn.mark({class:"cm-lintRange cm-lintRange-active"});function Wb(e,t){return ad("ul",{class:"cm-tooltip-lint"},t.map((t=>jb(e,t,!1))))}const Cb=e=>{let t=e.state.field(qb,!1);return!(!t||!t.panel||(e.dispatch({effects:Vb.of(!1)}),0))},Ub=(ro.fromClass(class{constructor(e){this.view=e,this.timeout=-1,this.set=!0;let{delay:t}=e.state.facet(Ub);this.lintTime=Date.now()+t,this.run=this.run.bind(this),this.timeout=setTimeout(this.run,t)}run(){let e=Date.now();if(ePromise.resolve(e(this.view))))).then((t=>{let i=t.reduce(((e,t)=>e.concat(t)));this.view.state.doc==e.doc&&this.view.dispatch(Rb(this.view.state,i))}),(e=>{Jn(this.view.state,e)}))}}update(e){let t=e.state.facet(Ub);(e.docChanged||t!=e.startState.facet(Ub)||t.needsRefresh&&t.needsRefresh(e))&&(this.lintTime=Date.now()+t.delay,this.set||(this.set=!0,this.timeout=setTimeout(this.run,t.delay)))}force(){this.set&&(this.lintTime=Date.now(),this.run())}destroy(){clearTimeout(this.timeout)}}),N.define({combine:e=>Object.assign({sources:e.map((e=>e.source))},ke(e.map((e=>e.config)),{delay:750,markerFilter:null,tooltipFilter:null,needsRefresh:null},{needsRefresh:(e,t)=>e?t?i=>e(i)||t(i):e:t}))}));function Nb(e){let t=[];if(e)e:for(let{name:i}of e){for(let e=0;ee.toLowerCase()==r.toLowerCase()))){t.push(r);continue e}}t.push("")}return t}function jb(e,t,i){var r;let n=i?Nb(t.actions):[];return ad("li",{class:"cm-diagnostic cm-diagnostic-"+t.severity},ad("span",{class:"cm-diagnosticText"},t.renderMessage?t.renderMessage():t.message),null===(r=t.actions)||void 0===r?void 0:r.map(((i,r)=>{let o=!1,s=r=>{if(r.preventDefault(),o)return;o=!0;let n=kb(e.state.field(qb).diagnostics,t);n&&i.apply(e,n.from,n.to)},{name:O}=i,a=n[r]?O.indexOf(n[r]):-1,l=a<0?O:[O.slice(0,a),ad("u",O.slice(a,a+1)),O.slice(a+1)];return ad("button",{type:"button",class:"cm-diagnosticAction",onclick:s,onmousedown:s,"aria-label":` Action: ${O}${a<0?"":` (access key "${n[r]})"`}.`},l)})),t.source&&ad("div",{class:"cm-diagnosticSource"},t.source))}class Eb extends Rn{constructor(e){super(),this.diagnostic=e}eq(e){return e.diagnostic==this.diagnostic}toDOM(){return ad("span",{class:"cm-lintPoint cm-lintPoint-"+this.diagnostic.severity})}}class zb{constructor(e,t){this.diagnostic=t,this.id="item_"+Math.floor(4294967295*Math.random()).toString(16),this.dom=jb(e,t,!0),this.dom.id=this.id,this.dom.setAttribute("role","option")}}class Gb{constructor(e){this.view=e,this.items=[],this.list=ad("ul",{tabIndex:0,role:"listbox","aria-label":this.view.state.phrase("Diagnostics"),onkeydown:t=>{if(27==t.keyCode)Cb(this.view),this.view.focus();else if(38==t.keyCode||33==t.keyCode)this.moveSelection((this.selectedIndex-1+this.items.length)%this.items.length);else if(40==t.keyCode||34==t.keyCode)this.moveSelection((this.selectedIndex+1)%this.items.length);else if(36==t.keyCode)this.moveSelection(0);else if(35==t.keyCode)this.moveSelection(this.items.length-1);else if(13==t.keyCode)this.view.focus();else{if(!(t.keyCode>=65&&t.keyCode<=90&&this.selectedIndex>=0))return;{let{diagnostic:i}=this.items[this.selectedIndex],r=Nb(i.actions);for(let n=0;n{for(let t=0;tCb(this.view)},"×")),this.update()}get selectedIndex(){let e=this.view.state.field(qb).selected;if(!e)return-1;for(let t=0;t{let O,a=-1;for(let e=i;ei&&(this.items.splice(i,a-i),r=!0)),t&&O.diagnostic==t.diagnostic?O.dom.hasAttribute("aria-selected")||(O.dom.setAttribute("aria-selected","true"),n=O):O.dom.hasAttribute("aria-selected")&&O.dom.removeAttribute("aria-selected"),i++}));i({sel:n.dom.getBoundingClientRect(),panel:this.list.getBoundingClientRect()}),write:({sel:e,panel:t})=>{let i=t.height/this.list.offsetHeight;e.topt.bottom&&(this.list.scrollTop+=(e.bottom-t.bottom)/i)}})):this.selectedIndex<0&&this.list.removeAttribute("aria-activedescendant"),r&&this.sync()}sync(){let e=this.list.firstChild;function t(){let t=e;e=t.nextSibling,t.remove()}for(let i of this.items)if(i.dom.parentNode==this.list){for(;e!=i.dom;)t();e=i.dom.nextSibling}else this.list.insertBefore(i.dom,e);for(;e;)t()}moveSelection(e){if(this.selectedIndex<0)return;let t=kb(this.view.state.field(qb).diagnostics,this.items[e].diagnostic);t&&this.view.dispatch({selection:{anchor:t.from,head:t.to},scrollIntoView:!0,effects:Zb.of(t)})}static open(e){return new Gb(e)}}function Db(e){return function(e,t='viewBox="0 0 40 40"'){return`url('data:image/svg+xml,${encodeURIComponent(e)}')`}(``,'width="6" height="3"')}const Mb=dO.baseTheme({".cm-diagnostic":{padding:"3px 6px 3px 8px",marginLeft:"-1px",display:"block",whiteSpace:"pre-wrap"},".cm-diagnostic-error":{borderLeft:"5px solid #d11"},".cm-diagnostic-warning":{borderLeft:"5px solid orange"},".cm-diagnostic-info":{borderLeft:"5px solid #999"},".cm-diagnostic-hint":{borderLeft:"5px solid #66d"},".cm-diagnosticAction":{font:"inherit",border:"none",padding:"2px 4px",backgroundColor:"#444",color:"white",borderRadius:"3px",marginLeft:"8px",cursor:"pointer"},".cm-diagnosticSource":{fontSize:"70%",opacity:.7},".cm-lintRange":{backgroundPosition:"left bottom",backgroundRepeat:"repeat-x",paddingBottom:"0.7px"},".cm-lintRange-error":{backgroundImage:Db("#d11")},".cm-lintRange-warning":{backgroundImage:Db("orange")},".cm-lintRange-info":{backgroundImage:Db("#999")},".cm-lintRange-hint":{backgroundImage:Db("#66d")},".cm-lintRange-active":{backgroundColor:"#ffdd9980"},".cm-tooltip-lint":{padding:0,margin:0},".cm-lintPoint":{position:"relative","&:after":{content:'""',position:"absolute",bottom:0,left:"-2px",borderLeft:"3px solid transparent",borderRight:"3px solid transparent",borderBottom:"4px solid #d11"}},".cm-lintPoint-warning":{"&:after":{borderBottomColor:"orange"}},".cm-lintPoint-info":{"&:after":{borderBottomColor:"#999"}},".cm-lintPoint-hint":{"&:after":{borderBottomColor:"#66d"}},".cm-panel.cm-panel-lint":{position:"relative","& ul":{maxHeight:"100px",overflowY:"auto","& [aria-selected]":{backgroundColor:"#ddd","& u":{textDecoration:"underline"}},"&:focus [aria-selected]":{background_fallback:"#bdf",backgroundColor:"Highlight",color_fallback:"white",color:"HighlightText"},"& u":{textDecoration:"none"},padding:0,margin:0},"& [name=close]":{position:"absolute",top:"0",right:"2px",background:"inherit",border:"none",font:"inherit",padding:0,margin:0}}}),Bb=[qb,dO.decorations.compute([qb],(e=>{let{selected:t,panel:i}=e.field(qb);return t&&i&&t.from!=t.to?Vn.set([Ab.range(t.from,t.to)]):Vn.none})),function(e,t={}){let i=Qe.define(),r=B.define({create:()=>null,update(e,r){if(e&&(t.hideOnChange&&(r.docChanged||r.selection)||t.hideOn&&t.hideOn(r,e)))return null;if(e&&r.docChanged){let t=r.changes.mapPos(e.pos,-1,w.TrackDel);if(null==t)return null;let i=Object.assign(Object.create(null),e);i.pos=t,null!=e.end&&(i.end=r.changes.mapPos(e.end)),e=i}for(let t of r.effects)t.is(i)&&(e=t.value),t.is(ba)&&(e=null);return e},provide:e=>da.from(e)});return[r,ro.define((n=>new ga(n,e,r,i,t.hoverTime||300))),Qa]}((function(e,t,i){let{diagnostics:r}=e.state.field(qb),n=[],o=2e8,s=0;r.between(t-(i<0?1:0),t+(i>0?1:0),((e,r,{spec:O})=>{t>=e&&t<=r&&(e==r||(t>e||i>0)&&(t({dom:Wb(e,n)})}:null}),{hideOn:function(e,t){let i=e.startState.doc.lineAt(t.pos);return!(!e.effects.some((e=>e.is(_b)))&&!e.changes.touchesRange(i.from,i.to))}}),Mb]})),n.register("1xJnC",(function(t,i){e(t.exports,"guess_notebook_location",(()=>n));const r=e=>e.toLowerCase().normalize("NFD").replace(/[^a-z1-9]/g,""),n=async e=>{try{const t=new URL(e);if(!["http:","https:","ftp:","ftps:"].includes(t.protocol))throw"Not a web URL";if("gist.github.com"===t.host){console.log("Gist URL detected");const e=t.pathname.substring(1).split("/")[1],i=await(await fetch(`https://api.github.com/gists/${e}`,{headers:{Accept:"application/vnd.github.v3+json"}}).then((e=>e.ok?e:Promise.reject(e)))).json();console.log(i);const n=Object.values(i.files),o=n.find((e=>r("#file-"+e.filename)===r(t.hash)));return null!=o?{type:"url",path_or_url:o.raw_url}:{type:"url",path_or_url:n[0].raw_url}}return"github.com"===t.host&&t.searchParams.set("raw","true"),{type:"url",path_or_url:t.href}}catch(t){return'"'===e[e.length-1]&&'"'===e[0]&&(e=e.slice(1,-1)),{type:"path",path_or_url:e}}}})),n.register("aTIpG",(function(t,i){e(t.exports,"LastFocusWasForcedEffect",(()=>l)),e(t.exports,"tab_help_plugin",(()=>c));var r=n("1gqBQ");n("hiQgq");var o=n("jpyyv");n("9Ta4i");var s=n("cNaMA");const O=o.StateEffect.define(),a=o.StateField.define({create:()=>!1,update(e,t){for(let e of t.effects)if(e.is(O))return e.value;return e}}),l=o.StateEffect.define(),h=o.StateField.define({create:()=>!1,update(e,t){for(let e of t.effects)if(e.is(l))return e.value;return e}}),c=o.ViewPlugin.define((e=>({setready:t=>requestIdleCallback((()=>{e.dispatch({effects:[O.of(t)]})}))})),{provide:e=>[a,h],eventObservers:{focus:function(e,t){this.setready(!0)},blur:function(e,t){this.setready(!1),requestIdleCallback((()=>{t.dispatch({effects:[l.of(!1)]})}))},click:function(e,t){this.setready(!1)},keydown:function(e,t){"Tab"==e.key?!t.state.field(a)||t.state.field(h)||t.state.readOnly||(r.open_pluto_popup({type:"info",source_element:t.dom,body:s.html`Press Esc and then Tab to continue navigation. skkrt!`}),this.setready(!1)):this.setready(!1)}}})})),n.register("1gqBQ",(function(t,i){e(t.exports,"open_pluto_popup",(()=>r));const r=e=>{window.dispatchEvent(new CustomEvent("open pluto popup",{detail:e}))}})),n.register("aN0pg",(function(t,i){e(t.exports,"cl",(()=>r));const r=e=>e?Object.entries(e).reduce(((e,[t,i])=>i?t+" "+e:e),""):null})),n.register("hrGZZ",(function(t,i){e(t.exports,"useEventListener",(()=>o)),n("cNaMA");var r=n("exxBE");const o=(e,t,i,n)=>{let o=r.useCallback(i,n);r.useEffect((()=>{if(null!=e)return e.addEventListener(t,o),()=>e.removeEventListener(t,o)}),[e,t,o])}})),n.register("h2NGW",(function(t,i){e(t.exports,"default",(()=>o)),n("cNaMA");var r=n("3vOYv");function o(e,t,i,r){function n(){const t=Reflect.construct(HTMLElement,[],n);return t._vdomComponent=e,t._root=r&&r.shadow?t.attachShadow({mode:"open"}):t,t}return n.prototype=Object.create(HTMLElement.prototype),n.prototype.constructor=n,n.prototype.connectedCallback=O,n.prototype.attributeChangedCallback=l,n.prototype.disconnectedCallback=h,i=i||e.observedAttributes||Object.keys(e.propTypes||{}),n.observedAttributes=i,i.forEach((e=>{Object.defineProperty(n.prototype,e,{get(){return this._vdom.props[e]},set(t){this._vdom?this.attributeChangedCallback(e,null,t):(this._props||(this._props={}),this._props[e]=t,this.connectedCallback());const i=typeof t;null!=t&&"string"!==i&&"boolean"!==i&&"number"!==i||this.setAttribute(e,t)}})})),customElements.define(t||e.tagName||e.displayName||e.name,n)}function s(e){this.getChildContext=()=>e.context;const{context:t,children:i,...n}=e;return r.cloneElement(i,n)}function O(){if(this.on_connect)this.on_connect();else{const e=new CustomEvent("_preact",{detail:{},bubbles:!0,cancelable:!0});this.dispatchEvent(e);const t=e.detail.context;this._vdom=r.h(s,{...this._props,context:t},u(this,this._vdomComponent)),(this.hasAttribute("hydrate")?r.hydrate:r.render)(this._vdom,this._root)}}function a(e){return e.replace(/-(\w)/g,((e,t)=>t?t.toUpperCase():""))}function l(e,t,i){if(!this._vdom)return;i=null==i?void 0:i;const n={};n[e]=i,n[a(e)]=i,this._vdom=r.cloneElement(this._vdom,n),r.render(this._vdom,this._root)}function h(){const e=setTimeout((()=>{r.render(this._vdom=null,this._root)}),500);this.on_connect=()=>clearTimeout(e)}function c(e,t){return r.h("slot",{...e,ref:e=>{e?(this.ref=e,this._listener||(this._listener=e=>{e.stopPropagation(),e.detail.context=t},e.addEventListener("_preact",this._listener))):this.ref.removeEventListener("_preact",this._listener)}})}function u(e,t){if(3===e.nodeType)return e.data;if(1!==e.nodeType)return null;let i=[],n={},o=0,s=e.attributes,O=e.childNodes;for(o=s.length;o--;)"slot"!==s[o].name&&(n[s[o].name]=s[o].value,n[a(s[o].name)]=s[o].value);for(o=O.length;o--;){const e=u(O[o],null),t=O[o].slot;t?n[t]=r.h(c,{name:t},e):i[o]=e}const l=t?r.h(c,null,i):i;return r.h(t||e.nodeName.toLowerCase(),n,l)}})),n.register("jqrYR",(function(t,i){e(t.exports,"base64_arraybuffer",(()=>o)),e(t.exports,"base64url_arraybuffer",(()=>s)),e(t.exports,"base64url_to_base64",(()=>a)),e(t.exports,"plutohash_arraybuffer",(()=>c)),e(t.exports,"debounced_promises",(()=>u)),e(t.exports,"blob_url_to_data_url",(()=>f));var r=n("is6Z7");const o=async e=>{const t=await new Promise((t=>{const i=new FileReader;i.onload=()=>t(i.result),i.readAsDataURL(new Blob([e]))}));return t.substring(t.indexOf(",")+1)},s=async e=>{let t=await o(e);return O(t)},O=e=>e.replaceAll(/[\+\/\=]/g,(e=>{const t=e.charCodeAt(0);return 43===t?"-":47===t?"_":""})),a=e=>{const t=e.replaceAll(/[-_]/g,(e=>{const t=e.charCodeAt(0);return 45===t?"+":95===t?"/":""}));return t+"=".repeat((4-t.length%4)%4)},l="AAA/AAA+ZMg=",h="AAA_AAA-ZMg";console.assert(O(l)===h),console.assert(a(h)===l),o(new Uint8Array([0,0,63,0,0,62,100,200])).then((e=>console.assert(e===l,e))),s(new Uint8Array([0,0,63,0,0,62,100,200])).then((e=>console.assert(e===h,e)));const c=async e=>{const t=r.sha256.create();t.update(e);const i=t.arrayBuffer();return await s(i)};(async e=>{const t=(new TextEncoder).encode(e);return await c(t)})("Hannes").then((e=>console.assert("OI48wVWerxEEnz5lIj6CPPRB8NOwwba-LkFYTDp4aUU"===e,e)));const u=e=>{let t=!1,i=!1;return async()=>{if(t)i=!0;else{for(t=!0,i=!0;i;)i=!1,await e();t=!1}}},f=async e=>{const t=await(await fetch(e)).blob();return await new Promise((e=>{const i=new FileReader;i.onload=()=>e(i.result),i.readAsDataURL(t)}))}})),n.register("is6Z7",(function(t,i){e(t.exports,"sha256",(()=>b)); +/** + * [js-sha256]{@link https://github.com/emn178/js-sha256} + * + * @version 0.9.0 + * @author Chen, Yi-Cyuan [emn178@gmail.com] + * @copyright Chen, Yi-Cyuan 2014-2017 + * @license MIT + * + * Edited to be a module, so we can `import { sha256 } from "https://cdn.jsdelivr.net/gh/juliapluto/js-sha256@7a98375/src/sha256.mjs"` + * + */ +var r="input is invalid type",n="object"==typeof window,o=n?window:{};o.JS_SHA256_NO_WINDOW&&(n=!1);var s=!o.JS_SHA256_NO_ARRAY_BUFFER&&"undefined"!=typeof ArrayBuffer,O="0123456789abcdef".split(""),a=[-2147483648,8388608,32768,128],l=[24,16,8,0],h=[1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298],c=["hex","array","digest","arrayBuffer"],u=[];!o.JS_SHA256_NO_NODE_JS&&Array.isArray||(Array.isArray=function(e){return"[object Array]"===Object.prototype.toString.call(e)}),!s||!o.JS_SHA256_NO_ARRAY_BUFFER_IS_VIEW&&ArrayBuffer.isView||(ArrayBuffer.isView=function(e){return"object"==typeof e&&e.buffer&&e.buffer.constructor===ArrayBuffer});var f=function(e,t){return function(i){return new g(t,!0).update(i)[e]()}},d=function(e){var t=f("hex",e);t.create=function(){return new g(e)},t.update=function(e){return t.create().update(e)};for(var i=0;i>6,a[h++]=128|63&O):O<55296||O>=57344?(a[h++]=224|O>>12,a[h++]=128|O>>6&63,a[h++]=128|63&O):(O=65536+((1023&O)<<10|1023&e.charCodeAt(++n)),a[h++]=240|O>>18,a[h++]=128|O>>12&63,a[h++]=128|O>>6&63,a[h++]=128|63&O);e=a}else{if("object"!==o)throw new Error(r);if(null===e)throw new Error(r);if(s&&e.constructor===ArrayBuffer)e=new Uint8Array(e);else if(!(Array.isArray(e)||s&&ArrayBuffer.isView(e)))throw new Error(r)}e.length>64&&(e=new g(t,!0).update(e).array());var c=[],u=[];for(n=0;n<64;++n){var f=e[n]||0;c[n]=92^f,u[n]=54^f}g.call(this,t,i),this.update(u),this.oKeyPad=c,this.inner=!0,this.sharedMemory=i}g.prototype.update=function(e){if(!this.finalized){var t,i=typeof e;if("string"!==i){if("object"!==i)throw new Error(r);if(null===e)throw new Error(r);if(s&&e.constructor===ArrayBuffer)e=new Uint8Array(e);else if(!(Array.isArray(e)||s&&ArrayBuffer.isView(e)))throw new Error(r);t=!0}for(var n,o,O=0,a=e.length,h=this.blocks;O>2]|=e[O]<>2]|=n<>2]|=(192|n>>6)<>2]|=(128|63&n)<=57344?(h[o>>2]|=(224|n>>12)<>2]|=(128|n>>6&63)<>2]|=(128|63&n)<>2]|=(240|n>>18)<>2]|=(128|n>>12&63)<>2]|=(128|n>>6&63)<>2]|=(128|63&n)<=64?(this.block=h[16],this.start=o-64,this.hash(),this.hashed=!0):this.start=o}return this.bytes>4294967295&&(this.hBytes+=this.bytes/4294967296<<0,this.bytes=this.bytes%4294967296),this}},g.prototype.finalize=function(){if(!this.finalized){this.finalized=!0;var e=this.blocks,t=this.lastByteIndex;e[16]=this.block,e[t>>2]|=a[3&t],this.block=e[16],t>=56&&(this.hashed||this.hash(),e[0]=this.block,e[16]=e[1]=e[2]=e[3]=e[4]=e[5]=e[6]=e[7]=e[8]=e[9]=e[10]=e[11]=e[12]=e[13]=e[14]=e[15]=0),e[14]=this.hBytes<<3|this.bytes>>>29,e[15]=this.bytes<<3,this.hash()}},g.prototype.hash=function(){var e,t,i,r,n,o,s,O,a,l=this.h0,c=this.h1,u=this.h2,f=this.h3,d=this.h4,p=this.h5,Q=this.h6,g=this.h7,m=this.blocks;for(e=16;e<64;++e)t=((n=m[e-15])>>>7|n<<25)^(n>>>18|n<<14)^n>>>3,i=((n=m[e-2])>>>17|n<<15)^(n>>>19|n<<13)^n>>>10,m[e]=m[e-16]+t+m[e-7]+i<<0;for(a=c&u,e=0;e<64;e+=4)this.first?(this.is224?(o=300032,g=(n=m[0]-1413257819)-150054599<<0,f=n+24177077<<0):(o=704751109,g=(n=m[0]-210244248)-1521486534<<0,f=n+143694565<<0),this.first=!1):(t=(l>>>2|l<<30)^(l>>>13|l<<19)^(l>>>22|l<<10),r=(o=l&c)^l&u^a,g=f+(n=g+(i=(d>>>6|d<<26)^(d>>>11|d<<21)^(d>>>25|d<<7))+(d&p^~d&Q)+h[e]+m[e])<<0,f=n+(t+r)<<0),t=(f>>>2|f<<30)^(f>>>13|f<<19)^(f>>>22|f<<10),r=(s=f&l)^f&c^o,Q=u+(n=Q+(i=(g>>>6|g<<26)^(g>>>11|g<<21)^(g>>>25|g<<7))+(g&d^~g&p)+h[e+1]+m[e+1])<<0,t=((u=n+(t+r)<<0)>>>2|u<<30)^(u>>>13|u<<19)^(u>>>22|u<<10),r=(O=u&f)^u&l^s,p=c+(n=p+(i=(Q>>>6|Q<<26)^(Q>>>11|Q<<21)^(Q>>>25|Q<<7))+(Q&g^~Q&d)+h[e+2]+m[e+2])<<0,t=((c=n+(t+r)<<0)>>>2|c<<30)^(c>>>13|c<<19)^(c>>>22|c<<10),r=(a=c&u)^c&f^O,d=l+(n=d+(i=(p>>>6|p<<26)^(p>>>11|p<<21)^(p>>>25|p<<7))+(p&Q^~p&g)+h[e+3]+m[e+3])<<0,l=n+(t+r)<<0;this.h0=this.h0+l<<0,this.h1=this.h1+c<<0,this.h2=this.h2+u<<0,this.h3=this.h3+f<<0,this.h4=this.h4+d<<0,this.h5=this.h5+p<<0,this.h6=this.h6+Q<<0,this.h7=this.h7+g<<0},g.prototype.hex=function(){this.finalize();var e=this.h0,t=this.h1,i=this.h2,r=this.h3,n=this.h4,o=this.h5,s=this.h6,a=this.h7,l=O[e>>28&15]+O[e>>24&15]+O[e>>20&15]+O[e>>16&15]+O[e>>12&15]+O[e>>8&15]+O[e>>4&15]+O[15&e]+O[t>>28&15]+O[t>>24&15]+O[t>>20&15]+O[t>>16&15]+O[t>>12&15]+O[t>>8&15]+O[t>>4&15]+O[15&t]+O[i>>28&15]+O[i>>24&15]+O[i>>20&15]+O[i>>16&15]+O[i>>12&15]+O[i>>8&15]+O[i>>4&15]+O[15&i]+O[r>>28&15]+O[r>>24&15]+O[r>>20&15]+O[r>>16&15]+O[r>>12&15]+O[r>>8&15]+O[r>>4&15]+O[15&r]+O[n>>28&15]+O[n>>24&15]+O[n>>20&15]+O[n>>16&15]+O[n>>12&15]+O[n>>8&15]+O[n>>4&15]+O[15&n]+O[o>>28&15]+O[o>>24&15]+O[o>>20&15]+O[o>>16&15]+O[o>>12&15]+O[o>>8&15]+O[o>>4&15]+O[15&o]+O[s>>28&15]+O[s>>24&15]+O[s>>20&15]+O[s>>16&15]+O[s>>12&15]+O[s>>8&15]+O[s>>4&15]+O[15&s];return this.is224||(l+=O[a>>28&15]+O[a>>24&15]+O[a>>20&15]+O[a>>16&15]+O[a>>12&15]+O[a>>8&15]+O[a>>4&15]+O[15&a]),l},g.prototype.toString=g.prototype.hex,g.prototype.digest=function(){this.finalize();var e=this.h0,t=this.h1,i=this.h2,r=this.h3,n=this.h4,o=this.h5,s=this.h6,O=this.h7,a=[e>>24&255,e>>16&255,e>>8&255,255&e,t>>24&255,t>>16&255,t>>8&255,255&t,i>>24&255,i>>16&255,i>>8&255,255&i,r>>24&255,r>>16&255,r>>8&255,255&r,n>>24&255,n>>16&255,n>>8&255,255&n,o>>24&255,o>>16&255,o>>8&255,255&o,s>>24&255,s>>16&255,s>>8&255,255&s];return this.is224||a.push(O>>24&255,O>>16&255,O>>8&255,255&O),a},g.prototype.array=g.prototype.digest,g.prototype.arrayBuffer=function(){this.finalize();var e=new ArrayBuffer(this.is224?28:32),t=new DataView(e);return t.setUint32(0,this.h0),t.setUint32(4,this.h1),t.setUint32(8,this.h2),t.setUint32(12,this.h3),t.setUint32(16,this.h4),t.setUint32(20,this.h5),t.setUint32(24,this.h6),this.is224||t.setUint32(28,this.h7),e},m.prototype=new g,m.prototype.finalize=function(){if(g.prototype.finalize.call(this),this.inner){this.inner=!1;var e=this.array();g.call(this,this.is224,this.sharedMemory),this.update(this.oKeyPad),this.update(e),g.prototype.finalize.call(this)}};var $=d();$.sha256=$,$.sha224=d(!0),$.sha256.hmac=Q(),$.sha224.hmac=Q(!0);const b=$;$.sha224})),n.register("1Mxs0",(function(t,i){e(t.exports,"FeaturedCard",(()=>l));var r=n("jqrYR"),o=n("41Mhf"),s=n("9Ta4i"),O=n("cNaMA");const a="data:image/svg+xml;charset=utf8,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%3E%3C/svg%3E",l=({entry:e,source_manifest:t,direct_html_links:i,disable_links:n})=>{var l,c,u,f,d,p;const Q=null===(l=e.frontmatter)||void 0===l?void 0:l.title,{source_url:g}=t??{},m=e=>null==g?s.default.isEmpty(e)?null:e:null==e?null:new URL(e,new URL(g,window.location.href)).href,$=n?"#":i?m(e.html_path):o.with_query_params("edit",{statefile:m(e.statefile_path),notebookfile:m(e.notebookfile_path),notebookfile_integrity:`sha256-${r.base64url_to_base64(e.hash)}`,disable_ui:"true",name:null==Q?null:`sample ${Q}`,pluto_server_url:".",slider_server_url:(null==g?void 0:g.includes("cdn.jsdelivr.net/gh/JuliaPluto/featured"))?null:m(null==t?void 0:t.slider_server_url)}),b=h(e.frontmatter);return O.html` + e+t.charCodeAt(0)),0)%360}deg;`}> + + ${null==(null==b?void 0:b.name)?null:O.html` +
+ + + ${b.name} + ${b.has_coauthors?O.html` and others`:null} + +
+ `} +

${(null==e||null===(f=e.frontmatter)||void 0===f?void 0:f.title)??e.id}

+

${null==e||null===(p=e.frontmatter)||void 0===p?void 0:p.description}

+
+ `;var X},h=e=>c(e.author)??c({name:e.author_name,url:e.author_url,image:e.author_image}),c=e=>{if(e instanceof Array){const t=c(e[0]);if(null==t?void 0:t.name){const i=e.length>1;return{...t,has_coauthors:i}}}else{if("string"==typeof e)return{name:e,url:null,image:null};if(e instanceof Object){let{name:t,image:i,url:r}=e;return null!=i||s.default.isEmpty(r)||(i=r+".png?size=48"),{name:t,url:r,image:i}}}return null}})),n.register("cpCG6",(function(t,i){e(t.exports,"get_environment",(()=>r));const r=async e=>{let t;if(window.pluto_injected_environment)t=window.pluto_injected_environment.environment;else{const{default:i}=await import(e.session_options.server.injected_javascript_data_url);t=i}return t}})),n.register("dYd4C",(function(t,i){e(t.exports,"ProcessStatus",(()=>r));const r={ready:"ready",starting:"starting",no_process:"no_process",waiting_to_restart:"waiting_to_restart",waiting_for_permission:"waiting_for_permission"}})); \ No newline at end of file diff --git a/frontend-dist/editor.3719a8dd.css b/frontend-dist/editor.3719a8dd.css new file mode 100644 index 0000000000..94f1cd1e56 --- /dev/null +++ b/frontend-dist/editor.3719a8dd.css @@ -0,0 +1 @@ +@font-face{font-display:swap;font-family:Roboto Mono;font-style:normal;font-weight:400;src:url(roboto-mono-cyrillic-ext-400-normal.dcb520ee.woff2) format("woff2"),url(roboto-mono-all-400-normal.364ec368.woff) format("woff");unicode-range:U+0460-052f,U+1c80-1c88,U+20b4,U+2de0-2dff,U+a640-a69f,U+fe2e-fe2f}@font-face{font-display:swap;font-family:Roboto Mono;font-style:normal;font-weight:400;src:url(roboto-mono-cyrillic-400-normal.638e826e.woff2) format("woff2"),url(roboto-mono-all-400-normal.364ec368.woff) format("woff");unicode-range:U+0400-045f,U+0490-0491,U+04b0-04b1,U+2116}@font-face{font-display:swap;font-family:Roboto Mono;font-style:normal;font-weight:400;src:url(roboto-mono-greek-400-normal.dd843e41.woff2) format("woff2"),url(roboto-mono-all-400-normal.364ec368.woff) format("woff");unicode-range:U+0370-03ff}@font-face{font-display:swap;font-family:Roboto Mono;font-style:normal;font-weight:400;src:url(roboto-mono-vietnamese-400-normal.306e7635.woff2) format("woff2"),url(roboto-mono-all-400-normal.364ec368.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01a0-01a1,U+01af-01b0,U+1ea0-1ef9,U+20ab}@font-face{font-display:swap;font-family:Roboto Mono;font-style:normal;font-weight:400;src:url(roboto-mono-latin-ext-400-normal.d9409874.woff2) format("woff2"),url(roboto-mono-all-400-normal.364ec368.woff) format("woff");unicode-range:U+0100-024f,U+0259,U+1e??,U+2020,U+20a0-20ab,U+20ad-20cf,U+2113,U+2c60-2c7f,U+a720-a7ff}@font-face{font-display:swap;font-family:Roboto Mono;font-style:normal;font-weight:400;src:url(roboto-mono-latin-400-normal.cf1eee5f.woff2) format("woff2"),url(roboto-mono-all-400-normal.364ec368.woff) format("woff");unicode-range:U+00??,U+0131,U+0152-0153,U+02bb-02bc,U+02c6,U+02da,U+02dc,U+2000-206f,U+2074,U+20ac,U+2122,U+2191,U+2193,U+2212,U+2215,U+feff,U+fffd}@font-face{font-display:swap;font-family:Roboto Mono;font-style:italic;font-weight:400;src:url(roboto-mono-cyrillic-ext-400-italic.db052448.woff2) format("woff2"),url(roboto-mono-all-400-italic.31a14f53.woff) format("woff");unicode-range:U+0460-052f,U+1c80-1c88,U+20b4,U+2de0-2dff,U+a640-a69f,U+fe2e-fe2f}@font-face{font-display:swap;font-family:Roboto Mono;font-style:italic;font-weight:400;src:url(roboto-mono-cyrillic-400-italic.e399ed93.woff2) format("woff2"),url(roboto-mono-all-400-italic.31a14f53.woff) format("woff");unicode-range:U+0400-045f,U+0490-0491,U+04b0-04b1,U+2116}@font-face{font-display:swap;font-family:Roboto Mono;font-style:italic;font-weight:400;src:url(roboto-mono-greek-400-italic.6f7e0b2f.woff2) format("woff2"),url(roboto-mono-all-400-italic.31a14f53.woff) format("woff");unicode-range:U+0370-03ff}@font-face{font-display:swap;font-family:Roboto Mono;font-style:italic;font-weight:400;src:url(roboto-mono-vietnamese-400-italic.d8e0a32a.woff2) format("woff2"),url(roboto-mono-all-400-italic.31a14f53.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01a0-01a1,U+01af-01b0,U+1ea0-1ef9,U+20ab}@font-face{font-display:swap;font-family:Roboto Mono;font-style:italic;font-weight:400;src:url(roboto-mono-latin-ext-400-italic.aaa9a959.woff2) format("woff2"),url(roboto-mono-all-400-italic.31a14f53.woff) format("woff");unicode-range:U+0100-024f,U+0259,U+1e??,U+2020,U+20a0-20ab,U+20ad-20cf,U+2113,U+2c60-2c7f,U+a720-a7ff}@font-face{font-display:swap;font-family:Roboto Mono;font-style:italic;font-weight:400;src:url(roboto-mono-latin-400-italic.ef82d48f.woff2) format("woff2"),url(roboto-mono-all-400-italic.31a14f53.woff) format("woff");unicode-range:U+00??,U+0131,U+0152-0153,U+02bb-02bc,U+02c6,U+02da,U+02dc,U+2000-206f,U+2074,U+20ac,U+2122,U+2191,U+2193,U+2212,U+2215,U+feff,U+fffd}@media (prefers-color-scheme:light){:root{--image-filters:none;--out-of-focus-opacity:0.25;--main-bg-color:#fff;--rule-color:rgba(0,0,0,0.15);--kbd-border-color:#dfdfdf;--header-bg-color:#fff;--header-border-color:rgba(0,0,0,0.1);--ui-button-color:#2a2a2b;--cursor-color:#000;--normal-cell:0,0,0;--code-differs:160,130,28;--error-color:240,168,168;--normal-cell-color:rgba(var(--normal-cell),0.1);--dark-normal-cell-color:rgba(var(--normal-cell),0.2);--selected-cell-color:rgba(40,78,189,0.4);--code-differs-cell-color:rgba(var(--code-differs),0.68);--error-cell-color:rgba(var(--error-color),0.7);--bright-error-cell-color:rgb(var(--error-color));--light-error-cell-color:rgba(var(--error-color),0.05);--export-bg-color:#3c4365;--export-color:#e4e4e4;--export-card-bg-color:hsla(0,0%,100%,0.8);--export-card-title-color:rgba(0,0,0,0.7);--export-card-text-color:rgba(0,0,0,0.5);--export-card-shadow-color:#00000029;--frontmatter-button-bg-color:#fff;--frontmatter-outline-color:#181920;--frontmatter-input-bg-color:#fbfbfb;--frontmatter-input-border-color:#d6dfe6;--pluto-schema-types-color:rgba(0,0,0,0.4);--pluto-schema-types-border-color:rgba(0,0,0,0.2);--pluto-output-color:#404040;--pluto-output-h-color:#1f1f1f;--pluto-output-bg-color:#fff;--a-underline:#00000059;--blockquote-color:#555;--blockquote-bg:#f2f2f2;--admonition-title-color:#fff;--jl-message-color:#dbe9d4;--jl-message-accent-color:#9ec889;--jl-info-color:#d6e3f4;--jl-info-accent-color:#94b6e2;--jl-warn-color:#ecead5;--jl-warn-accent-color:#cfc78a;--jl-danger-color:#f5dad7;--jl-danger-accent-color:#e29d94;--jl-debug-color:#f5dad7;--jl-debug-accent-color:#e29d94;--table-border-color:rgba(0,0,0,0.2);--table-bg-hover-color:rgba(159,158,224,0.15);--pluto-tree-color:rgb(0 0 0/38%);--disabled-cell-bg-color:hsla(0,0%,55%,0.25);--selected-cell-bg-color:rgba(40,78,189,0.24);--hover-scrollbar-color-1:rgba(0,0,0,0.15);--hover-scrollbar-color-2:rgba(0,0,0,0.05);--skip-as-script-background-color:#ccc;--depends-on-skip-as-script-background-color:#eee;--shoulder-hover-bg-color:rgba(0,0,0,0.05);--pluto-logs-bg-color:#fafafa;--pluto-logs-key-color:rgb(0 0 0/51%);--pluto-logs-progress-fill:#fff;--pluto-logs-progress-bg:#e7e7e7;--pluto-logs-progress-border:#b2bdc7;--pluto-logs-info-color:#fff;--pluto-logs-info-accent-color:inherit;--pluto-logs-warn-color:#ecead5;--pluto-logs-warn-accent-color:#665f26;--pluto-logs-danger-color:#f5dad7;--pluto-logs-danger-accent-color:#ac4234;--pluto-logs-debug-color:#ecdff7;--pluto-logs-debug-accent-color:#6432b3;--nav-h1-text-color:#000;--nav-filepicker-color:#6f6f6f;--nav-filepicker-border-color:#b2b2b2;--nav-process-status-bg-color:#fff;--nav-process-status-color:var(--pluto-output-h-color);--restart-recc-header-color:rgba(114,192,255,0.56);--restart-recc-accent-color:#72c0ff;--restart-req-header-color:rgba(170,41,32,0.56);--dead-process-header-color:rgb(230 88 46/38%);--loading-header-color:hsla(290,10%,80%,0.5);--disconnected-header-color:rgba(255,169,114,0.56);--binder-loading-header-color:hsla(51,64%,90%,0.5);--loading-grad-color-1:#f1dba9;--loading-grad-color-2:#d7d7d0;--overlay-button-bg:#fff;--overlay-button-border:#e9e7e7;--overlay-button-border-save:#f3f2f2;--input-context-menu-border-color:rgba(0,0,0,0.1);--input-context-menu-bg-color:#fff;--input-context-menu-soon-color:#55555544;--input-context-menu-hover-bg-color:rgba(0,0,0,0.1);--input-context-menu-li-color:#6b6a6a;--pkg-popup-bg:#fff;--pkg-popup-border-color:#f0e4ee;--pkg-popup-buttons-bg-color:#fff;--black:#000;--white:#fff;--pkg-terminal-bg-color:#232433;--pkg-terminal-border-color:#c3c3c3;--pluto-runarea-bg-color:hsl(0,0,97%);--pluto-runarea-span-color:#a89fa0;--dropruler-bg-color:rgba(0,0,0,0.5);--jlerror-header-color:#4f1616;--jlerror-mark-bg-color:#f3f3f3;--jlerror-a-bg-color:#f5efd9;--jlerror-a-border-left-color:#704141;--jlerror-mark-color:#000;--helpbox-bg-color:#fff;--helpbox-box-shadow-color:#00000010;--helpbox-header-bg-color:#ebebeb;--helpbox-header-tab-bg-color:#fff;--helpbox-header-color:#181920;--helpbox-search-bg-color:#fbfbfb;--helpbox-search-border-color:#d6dfe6;--helpbox-notfound-search-color:#8b8b8b;--helpbox-text-color:#000;--code-section-bg-color:#f5f5f5;--code-section-bg-color:#f3f3f3;--process-item-bg:#f2f2f2;--process-busy:#ffcd70;--process-finished:#7ab881;--process-undefined:#979797;--process-notify-bg:#f7f3e8;--footer-color:#333;--footer-bg-color:#d7dcd3;--footer-atag-color:#000;--footer-input-border-color:#818181;--footer-filepicker-button-color:#fff;--footer-filepicker-focus-color:#896c6c;--footnote-border-color:rgba(23,115,119,0.15);--undo-delete-box-shadow-color:#0083;--cm-editor-tooltip-border-color:rgba(0,0,0,0.2);--cm-editor-li-aria-selected-bg-color:#16659d;--cm-editor-li-aria-selected-color:#fff;--cm-editor-li-notexported-color:rgba(0,0,0,0.5);--code-background:#fefcf5;--cm-code-differs-gutters-color:rgba(214,172,35,0.2);--cm-line-numbers-color:#8d86875e;--cm-selection-background:rgba(117,177,255,0.48);--cm-selection-background-blurred:hsla(0,0%,73%,0.48);--cm-highlighted:#cbceb668;--cm-editor-text-color:#41323f;--cm-comment-color:#e96ba8;--cm-atom-color:#815ba4;--cm-number-color:#815ba4;--cm-property-color:#b67a48;--cm-keyword-color:#ef6155;--cm-string-color:#da5616;--cm-var-color:#5668a4;--cm-macro-color:#5c8c5f;--cm-var2-color:#37768a;--cm-builtin-color:#5e7ad3;--cm-function-color:#cc80ac;--cm-type-color:#879794;--cm-bracket-color:#41323f;--cm-tag-color:#ef6155;--cm-link-color:#815ba4;--cm-error-bg-color:#ef6155;--cm-error-color:#f7f7f7;--cm-matchingBracket-color:#000;--cm-matchingBracket-bg-color:#1b4bbb21;--cm-placeholder-text-color:rgba(0,0,0,0.2);--cm-clickable-underline:#ced2ef;--autocomplete-menu-bg-color:#fff;--index-text-color:hsl(0,0,60);--index-light-text-color:#838383;--index-clickable-text-color:hsl(0,0,30);--docs-binding-bg:#8383830a;--index-card-bg:#fff;--welcome-mywork-bg:#f9efe1;--welcome-newnotebook-bg:#f5f5f5;--welcome-recentnotebook-bg:#fff;--welcome-recentnotebook-border:#dfdfdf;--welcome-open-bg:#fbfbfb;--welcome-card-author-backdrop:#ffffffb0;--cm-html-color:#48b685;--cm-html-accent-color:#00ab85;--cm-css-color:#876800;--cm-css-accent-color:#696200;--cm-css-why-doesnt-codemirror-highlight-all-the-text-aaa:#3b3700;--cm-md-color:#005a9b;--cm-md-accent-color:#00a9d1}}@media (prefers-color-scheme:dark){:root{--image-filters:invert(1) hue-rotate(180deg) contrast(0.8);--out-of-focus-opacity:0.5;--main-bg-color:#1f1f1f;--rule-color:hsla(0,0%,100%,0.15);--kbd-border-color:#222;--header-bg-color:#2a2928;--header-border-color:transparent;--ui-button-color:#fff;--cursor-color:#fff;--normal-cell:100,100,100;--error-color:255,125,125;--normal-cell-color:rgba(var(--normal-cell),0.2);--dark-normal-cell-color:rgba(var(--normal-cell),0.4);--selected-cell-color:rgb(40 147 189/65%);--code-differs-cell-color:#9b906c;--error-cell-color:rgba(var(--error-color),0.6);--bright-error-cell-color:rgba(var(--error-color),0.9);--light-error-cell-color:rgba(var(--error-color),0);--export-bg-color:#262a36;--export-color:rgb(255 255 255/84%);--export-card-bg-color:#494949;--export-card-title-color:hsla(0,0%,100%,0.85);--export-card-text-color:rgb(255 255 255/70%);--export-card-shadow-color:#0000001c;--frontmatter-button-bg-color:#554e4e;--frontmatter-outline-color:#fff8eb;--frontmatter-input-bg-color:#2c2c2c;--frontmatter-input-border-color:#757575;--pluto-schema-types-color:hsla(0,0%,100%,0.6);--pluto-schema-types-border-color:hsla(0,0%,100%,0.2);--pluto-dim-output-color:hsl(0,0,70%);--pluto-output-color:#c4c4c4;--pluto-output-h-color:#e6e6e6;--pluto-output-bg-color:var(--main-bg-color);--a-underline:#ffffff69;--blockquote-color:inherit;--blockquote-bg:#2e2e2e;--admonition-title-color:#000;--jl-message-color:#265a20;--jl-message-accent-color:#83bf8a;--jl-info-color:#2a4973;--jl-info-accent-color:#5c8ccd;--jl-warn-color:#605a22;--jl-warn-accent-color:#ddd464;--jl-danger-color:#642f27;--jl-danger-accent-color:#ff7562;--jl-debug-color:#522e5c;--jl-debug-accent-color:#c481df;--table-border-color:hsla(0,0%,100%,0.2);--table-bg-hover-color:rgba(193,192,235,0.15);--pluto-tree-color:rgb(209 207 207/61%);--disabled-cell-bg-color:hsla(0,0%,55%,0.25);--selected-cell-bg-color:rgb(42 115 205/78%);--hover-scrollbar-color-1:rgba(0,0,0,0.15);--hover-scrollbar-color-2:rgba(0,0,0,0.05);--skip-as-script-background-color:#888;--depends-on-skip-as-script-background-color:#666;--shoulder-hover-bg-color:hsla(0,0%,100%,0.05);--pluto-logs-bg-color:#2b2b2b;--pluto-logs-key-color:hsla(0,0%,100%,0.6);--pluto-logs-progress-fill:#5f7f5b;--pluto-logs-progress-bg:#3d3d3d;--pluto-logs-progress-border:#9fb8d1;--pluto-logs-info-color:#484848;--pluto-logs-info-accent-color:inherit;--pluto-logs-warn-color:#504c26;--pluto-logs-warn-accent-color:#efe787;--pluto-logs-danger-color:#642f27;--pluto-logs-danger-accent-color:#ff9384;--pluto-logs-debug-color:#47344c;--pluto-logs-debug-accent-color:#d6abe7;--nav-h1-text-color:#fff;--nav-filepicker-color:#b6b6b6;--nav-filepicker-border-color:#c7c7c7;--nav-process-status-bg-color:#525252;--nav-process-status-color:var(--pluto-output-h-color);--restart-recc-header-color:rgb(44 106 157/56%);--restart-recc-accent-color:#2c6a9d;--restart-req-header-color:rgb(145 66 60/56%);--dead-process-header-color:rgba(250,75,21,0.473);--loading-header-color:rgba(51,51,51,0.5);--disconnected-header-color:rgba(255,169,114,0.56);--binder-loading-header-color:hsla(51,64%,90%,0.5);--loading-grad-color-1:#a9d4f1;--loading-grad-color-2:#d0d4d7;--overlay-button-bg:#2c2c2c;--overlay-button-border:#9e9e9e70;--overlay-button-border-save:#c7a74670;--overlay-button-color:#fff;--input-context-menu-border-color:hsla(0,0%,100%,0.1);--input-context-menu-bg-color:#27282f;--input-context-menu-soon-color:#b1b1b144;--input-context-menu-hover-bg-color:hsla(0,0%,100%,0.1);--input-context-menu-li-color:#c7c7c7;--pkg-popup-bg:#3d2f44;--pkg-popup-border-color:#574f56;--pkg-popup-buttons-bg-color:var(--input-context-menu-bg-color);--black:#fff;--white:#000;--pkg-terminal-bg-color:#252627;--pkg-terminal-border-color:#c3c3c388;--pluto-runarea-bg-color:#2b2b2b;--pluto-runarea-span-color:#a89fa0;--dropruler-bg-color:hsla(0,0%,100%,0.1);--jlerror-header-color:#d9baba;--jlerror-mark-bg-color:rgb(0 0 0/18%);--jlerror-a-bg-color:#523a3a;--jlerror-a-border-left-color:#704141;--jlerror-mark-color:#b1a9a9;--helpbox-bg-color:#1e221f;--helpbox-box-shadow-color:#00000017;--helpbox-header-bg-color:#2c3e36;--helpbox-header-tab-bg-color:#554e4e;--helpbox-header-color:#fff8eb;--helpbox-search-bg-color:#2c2c2c;--helpbox-search-border-color:#757575;--helpbox-notfound-search-color:#8b8b8b;--helpbox-text-color:#e6e6e6;--code-section-bg-color:#2c2c2c;--code-section-border-color:#555a64;--process-item-bg:#443d44;--process-busy:#ffcd70;--process-finished:#7ab881;--process-undefined:#979797;--process-notify-bg:#363636;--footer-color:#cacaca;--footer-bg-color:var(--header-bg-color);--footer-atag-color:#72a1df;--footer-input-border-color:#6c6c6c;--footer-filepicker-button-color:#000;--footer-filepicker-focus-color:#c1c1c1;--footnote-border-color:rgba(114,225,231,0.15);--undo-delete-box-shadow-color:hsla(240,1%,84%,0.2);--cm-editor-tooltip-border-color:rgba(0,0,0,0.2);--cm-editor-li-aria-selected-bg-color:#3271e7;--cm-editor-li-aria-selected-color:#fff;--cm-editor-li-notexported-color:hsla(0,0%,100%,0.5);--code-background:#292d38;--cm-code-differs-gutters-color:rgb(235 213 28/11%);--cm-line-numbers-color:#8d86875e;--cm-selection-background:rgba(84,139,217,0.48);--cm-selection-background-blurred:hsla(0,0%,59%,0.48);--cm-highlighted:#cbceb629;--cm-editor-text-color:#ffe9fc;--cm-comment-color:#e96ba8;--cm-atom-color:#e46b58;--cm-number-color:#a57acd;--cm-property-color:#f99b15;--cm-keyword-color:#ff7a6f;--cm-string-color:#df7e4e;--cm-var-color:#afb7d3;--cm-var2-color:#06b6ef;--cm-macro-color:#82b38b;--cm-builtin-color:#5e7ad3;--cm-function-color:#f99b15;--cm-type-color:#94894c;--cm-bracket-color:#a2a273;--cm-tag-color:#ef6155;--cm-link-color:#815ba4;--cm-error-bg-color:#ef6155;--cm-error-color:#f7f7f7;--cm-matchingBracket-color:#fff;--cm-matchingBracket-bg-color:#c58c237a;--cm-placeholder-text-color:rgb(255 255 255/20%);--cm-clickable-underline:#5d5f70;--autocomplete-menu-bg-color:var(--input-context-menu-bg-color);--index-text-color:#c7c7c7;--index-light-text-color:#c7c7c7;--index-clickable-text-color:#ebebeb;--index-card-bg:#313131;--welcome-mywork-bg:var(--header-bg-color);--welcome-newnotebook-bg:#444866;--welcome-recentnotebook-bg:#3b3b3b;--welcome-recentnotebook-border:#6e6e6e;--welcome-open-bg:#434765;--welcome-card-author-backdrop:#0000006b;--docs-binding-bg:#323431;--cm-html-color:#00ab85;--cm-html-accent-color:#00e7b4;--cm-css-color:#ebd073;--cm-css-accent-color:#fffed2;--cm-css-why-doesnt-codemirror-highlight-all-the-text-aaa:#ffffea;--cm-md-color:#a2c9d5;--cm-md-accent-color:#00a9d1}@media (prefers-contrast:more){:root{--cm-line-numbers-color:#b3b3b3}}}:root{--card-width:15rem}featured-card{--card-color:hsl(var(--card-color-hue),77%,82%);--card-border-radius:10px;--card-border-width:3px;background:var(--index-card-bg);border:var(--card-border-width) solid var(--card-color);border-radius:var(--card-border-radius);box-shadow:0 2px 6px 0 #00000014;display:block;font-family:var(--inter-ui-font-stack);hyphens:auto;margin:10px;max-width:var(--card-width);padding-bottom:.3rem;position:relative;word-break:break-word}featured-card .banner img{--zz:calc(var(--card-border-radius) - var(--card-border-width));aspect-ratio:3/2;background:var(--card-color);border-radius:var(--zz) var(--zz) 0 0;flex:1 1 200px;min-width:0;object-fit:cover;width:100%}featured-card a{text-decoration:none}featured-card a.banner{display:flex}featured-card .author{align-items:center;backdrop-filter:blur(15px);background:var(--welcome-card-author-backdrop);border-radius:117px;color:var(--index-light-text-color);display:flex;font-weight:600;gap:.4ch;margin-left:.3rem;padding:.3em .8em .3em .3em;position:absolute;right:.3em;top:.3em}featured-card .author img{--size:1.6em;background:#b6b6b6;border-radius:100%;display:inline-block;flex:0 0 auto;height:var(--size);object-fit:cover;overflow:hidden;width:var(--size)}featured-card h3 a{-webkit-line-clamp:2;background:var(--index-card-bg);border-radius:.6em;padding:.6em .6em 0}featured-card h3 a,featured-card p{-webkit-box-orient:vertical;display:inline-block;display:-webkit-inline-box;overflow:hidden}featured-card p{-webkit-line-clamp:4;color:var(--index-light-text-color);margin:.3rem .8rem}featured-card h3{margin:-1.1rem 0 0}featured-card.big{grid-column-end:span 2;grid-row-end:span 2}featured-card.big .banner img{height:16rem}featured-card.special:before{background:#fcf492;color:#833bc6;content:"New!";display:block;font-size:1.4rem;font-style:italic;font-weight:700;left:-9px;padding:2px 19px;pointer-events:none;position:absolute;text-shadow:0 0 1px #ff6767;text-transform:uppercase;transform:translateY(calc(-100% + 15px)) rotate(-5deg)} \ No newline at end of file diff --git a/frontend-dist/editor.375e8ab9.js b/frontend-dist/editor.375e8ab9.js new file mode 100644 index 0000000000..1ba1a3a34d --- /dev/null +++ b/frontend-dist/editor.375e8ab9.js @@ -0,0 +1,1228 @@ +function e(e,t,n,o){Object.defineProperty(e,t,{get:n,set:o,enumerable:!0,configurable:!0})}function t(e){Object.defineProperty(e,"__esModule",{value:!0,configurable:!0})}var n="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},o={},a={},r=n.parcelRequire94c2;null==r&&((r=function(e){if(e in o)return o[e].exports;if(e in a){var t=a[e];delete a[e];var n={id:e,exports:{}};return o[e]=n,t.call(n.exports,n,n.exports),n.exports}var r=new Error("Cannot find module '"+e+"'");throw r.code="MODULE_NOT_FOUND",r}).register=function(e,t){a[e]=t},n.parcelRequire94c2=r),r.register("ko7kR",(function(t,n){var o,a;e(t.exports,"register",(()=>o),(e=>o=e)),e(t.exports,"resolve",(()=>a),(e=>a=e));var r={};o=function(e){for(var t=Object.keys(e),n=0;n1?t-1:0),o=1;o3?t.i-4:t.i:Array.isArray(e)?1:f(e)?2:_(e)?3:0}function p(e,t){return 2===u(e)?e.has(t):Object.prototype.hasOwnProperty.call(e,t)}function m(e,t){return 2===u(e)?e.get(t):e[t]}function g(e,t,n){var o=u(e);2===o?e.set(t,n):3===o?(e.delete(t),e.add(n)):e[t]=n}function h(e,t){return e===t?0!==e||1/e==1/t:e!=e&&t!=t}function f(e){return W&&e instanceof Map}function _(e){return G&&e instanceof Set}function b(e){return e.o||e.t}function v(e){if(Array.isArray(e))return Array.prototype.slice.call(e);var t=Y(e);delete t[Q];for(var n=X(t),o=0;o1&&(e.set=e.add=e.clear=e.delete=w),Object.freeze(e),t&&d(e,(function(e,t){return y(t,!0)}),!0)),e}function w(){s(2)}function k(e){return null==e||"object"!=typeof e||Object.isFrozen(e)}function E(e){var t=J[e];return t||s(18,e),t}function $(e,t){J[e]||(J[e]=t)}function x(){return q}function S(e,t){t&&(E("Patches"),e.u=[],e.s=[],e.v=t)}function N(e){C(e),e.p.forEach(M),e.p=null}function C(e){e===q&&(q=e.l)}function A(e){return q={p:[],l:q,h:e,m:!0,_:0}}function M(e){var t=e[Q];0===t.i||1===t.i?t.j():t.g=!0}function O(e,t){t._=t.p.length;var n=t.p[0],o=void 0!==e&&e!==n;return t.h.O||E("ES5").S(t,e,o),o?(n[Q].P&&(N(t),s(4)),c(e)&&(e=T(t,e),t.l||D(t,e)),t.u&&E("Patches").M(n[Q],e,t.u,t.s)):e=T(t,n,[]),N(t),t.u&&t.v(t.u,t.s),e!==Z?e:void 0}function T(e,t,n){if(k(t))return t;var o=t[Q];if(!o)return d(t,(function(a,r){return R(e,o,t,a,r,n)}),!0),t;if(o.A!==e)return t;if(!o.P)return D(e,o.t,!0),o.t;if(!o.I){o.I=!0,o.A._--;var a=4===o.i||5===o.i?o.o=v(o.k):o.o;d(3===o.i?new Set(a):a,(function(t,r){return R(e,o,a,t,r,n)})),D(e,a,!1),n&&e.u&&E("Patches").R(o,n,e.u,e.s)}return o.o}function R(e,t,n,o,a,r){if(l(a)){var i=T(e,a,r&&t&&3!==t.i&&!p(t.D,o)?r.concat(o):void 0);if(g(n,o,i),!l(i))return;e.m=!1}if(c(a)&&!k(a)){if(!e.h.N&&e._<1)return;T(e,a),t&&t.A.l||D(e,a)}}function D(e,t,n){void 0===n&&(n=!1),e.h.N&&e.m&&y(t,n)}function L(e,t){var n=e[Q];return(n?b(n):e)[t]}function I(e,t){if(t in e)for(var n=Object.getPrototypeOf(e);n;){var o=Object.getOwnPropertyDescriptor(n,t);if(o)return o;n=Object.getPrototypeOf(n)}}function P(e){e.P||(e.P=!0,e.l&&P(e.l))}function j(e){e.o||(e.o=v(e.t))}function B(e,t,n){var o=f(t)?E("MapSet").T(t,n):_(t)?E("MapSet").F(t,n):e.O?function(e,t){var n=Array.isArray(e),o={i:n?1:0,A:t?t.A:x(),P:!1,I:!1,D:{},l:t,t:e,k:null,o:null,j:null,C:!1},a=o,r=ee;n&&(a=[o],r=te);var i=Proxy.revocable(a,r),s=i.revoke,l=i.proxy;return o.k=l,o.j=s,l}(t,n):E("ES5").J(t,n);return(n?n.A:x()).p.push(o),o}function U(e,t){switch(t){case 2:return new Map(e);case 3:return Array.from(e)}return v(e)}function F(){function e(t){if(!c(t))return t;if(Array.isArray(t))return t.map(e);if(f(t))return new Map(Array.from(t.entries()).map((function(t){return[t[0],e(t[1])]})));if(_(t))return new Set(Array.from(t).map(e));var n=Object.create(Object.getPrototypeOf(t));for(var o in t)n[o]=e(t[o]);return n}function t(t){return l(t)?e(t):t}var n="add";$("Patches",{$:function(t,o){return o.forEach((function(o){for(var a=o.path,r=o.op,i=t,l=0;l1?r-1:0),s=1;s1?n-1:0),r=1;r=0;n--){var o=t[n];if(0===o.path.length&&"replace"===o.op){e=o.value;break}}var a=E("Patches").$;return l(e)?a(e,t):this.produce(e,(function(e){return a(e,t.slice(n+1))}))},e}(),oe=new ne,ae=oe.produce,re=oe.produceWithPatches.bind(oe),ie=oe.setAutoFreeze.bind(oe),se=(oe.setUseProxies.bind(oe),oe.applyPatches.bind(oe)),le=(oe.createDraft.bind(oe),oe.finishDraft.bind(oe),ae);F(),ie(!1);var ce=r("9Ta4i"),de=r("4zMEb");de=r("4zMEb");let ue=async e=>e(),pe=null;r.register("54qll",(function(e,t){e.exports=import("./"+r("ko7kR").resolve("g8zEq")).then((()=>r("8WRsO")))})),r.register("7fNkl",(function(e,t){e.exports=Promise.all([import("./"+r("ko7kR").resolve("g8zEq")),import("./"+r("ko7kR").resolve("9IVCm"))]).then((()=>r("4rxkr")))}));const me=async()=>(null==pe&&(pe=ue((async()=>{let[{initializeApp:e},t]=await Promise.all([r("54qll"),r("7fNkl")]),{getFirestore:n,addDoc:o,doc:a,collection:i}=t,s=e({apiKey:"AIzaSyC0DqEcaM8AZ6cvApXuNcNU2RgZZOj7F68",authDomain:"localhost",projectId:"pluto-feedback"}),l=n(s),c=i(l,"feedback"),d=async e=>{let t=await o(c,e);console.debug("Firestore doc created ",t.id,t)};return console.log("🔥base loaded",{initializeApp:e,firestore_module:t,app:s,db:l,feedback_db:c,add_feedback:d}),d}))),await pe),ge=async()=>{try{const e=document.querySelector("form#feedback");if(null==e)return;e.addEventListener("submit",(t=>{const n=prompt("Would you like us to contact you?\n\nEmail: (leave blank to stay anonymous 👀)");t.preventDefault(),ue((async()=>{try{const o=String(new FormData(t.target).get("opinion"));if(o.length<4)return;let a=await me();await de.timeout_promise(a({feedback:o,timestamp:Date.now(),email:n||""}),5e3);let r="Submitted. Thank you for your feedback! 💕";console.log(r),alert(r),e.querySelector("#opinion").value=""}catch(e){let t="Whoops, failed to send feedback 😢\nWe would really like to hear from you! Please got to https://github.com/fonsp/Pluto.jl/issues to report this failure:\n\n";console.error(t),console.error(e),alert(t+e)}}))})),e.addEventListener("focusin",(()=>{me()}))}catch(e){console.error("Something went wrong loading the feedback form:",e),document.querySelector("form#feedback").style.opacity=0;for(let e of"Oh noooooooooooooooooo...")document.querySelector("form#feedback input").value+=e,await new Promise((e=>setTimeout(e,200)))}};function he(e){return e.replace(/\r\n/g,"\n").split(/# ╔═╡ \S+\n/).map((e=>e.trim())).filter((e=>""!==e))}function fe(e){const t=e.replace(/\r\n/g,"\n").split("julia> "),n=" ".repeat(prompt.length);return t.map((function(e){return(n+e).split("\n").filter((e=>e.startsWith(n))).map((e=>e.replace(n,""))).join("\n")})).map((e=>e.trim())).filter((e=>""!==e))}const _e=e=>{var t;return e.trim().startsWith("julia> ")?fe:(null===(t=e.match(/# ╔═╡ ........-....-....-....-............/g))||void 0===t?void 0:t.length)?he:null};var be=r("2ZZ1r"),ve=(i=r("cNaMA"),r("aN0pg"));let ye=(i=r("cNaMA")).createContext(),we=i.createContext(null),ke=i.createContext(null);class Ee extends Set{constructor(e){super(),this.callback=e}delete(e){let t=super.delete(e);return t&&0===this.size&&this.callback(),t}}var $e=r("kjWx8");const xe=()=>"visible"===document.visibilityState?Promise.resolve():new Promise((e=>{const t=()=>{xe().then(e),document.removeEventListener("visibilitychange",t)};document.addEventListener("visibilitychange",t)})),Se=({any_code_differs:e,last_update_time:t,last_hot_reload_time:n,connected:o})=>{let a=i.useContext(ye);const[r,s]=i.useState(""),[l,c]=i.useState(""),d=i.useRef(null),u=i.useRef(null);i.useEffect((()=>(clearTimeout(null==d?void 0:d.current),e?s("ask_to_save"):Date.now()-t<1e3?(s("saved"),d.current=setTimeout((()=>{s("")}),1e3)):s(""),()=>clearTimeout(null==d?void 0:d.current))),[e]);const[p,m]=i.useState(!1);return i.useEffect((()=>{o&&setTimeout((()=>m(!0)),1e3)}),[o]),i.useEffect((()=>{if(console.log("Hottt",n,p),p)return c("reloaded_from_file"),console.log("set state"),xe().then((()=>{u.current=setTimeout((()=>{c(""),console.log("reset state")}),8e3)})),()=>clearTimeout(null==u?void 0:u.current)}),[n]),i.html` + ${"ask_to_save"===r?i.html` +
+ +
+ `:"saved"===r||"saving"===r?i.html` +
+ Saved +
+ `:"reloaded_from_file"===l?i.html` +
+ File change detected, notebook updated +
+ `:null} +
`};i=r("cNaMA"),ce=r("9Ta4i"),i=r("cNaMA"),i=r("cNaMA");var Ne={};t(Ne),e(Ne,"default",(()=>Et));var{entries:Ce,setPrototypeOf:Ae,isFrozen:Me,getPrototypeOf:Oe,getOwnPropertyDescriptor:Te}=Object,{freeze:Re,seal:De,create:Le}=Object,{apply:Ie,construct:Pe}=typeof Reflect<"u"&&Reflect;Ie||(Ie=function(e,t,n){return e.apply(t,n)}),Re||(Re=function(e){return e}),De||(De=function(e){return e}),Pe||(Pe=function(e,t){return new e(...t)});var je,Be=Qe(Array.prototype.forEach),Ue=Qe(Array.prototype.pop),Fe=Qe(Array.prototype.push),ze=Qe(String.prototype.toLowerCase),qe=Qe(String.prototype.toString),He=Qe(String.prototype.match),We=Qe(String.prototype.replace),Ge=Qe(String.prototype.indexOf),Ke=Qe(String.prototype.trim),Ze=Qe(RegExp.prototype.test),Ve=(je=TypeError,function(){for(var e=arguments.length,t=new Array(e),n=0;n1?n-1:0),a=1;a/gm),mt=De(/\${[\w\W]*}/gm),gt=De(/^data-[\-\w.\u00B7-\uFFFF]/),ht=De(/^aria-[\-\w]+$/),ft=De(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i),_t=De(/^(?:\w+script|data):/i),bt=De(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g),vt=De(/^html$/i),yt=Object.freeze({__proto__:null,MUSTACHE_EXPR:ut,ERB_EXPR:pt,TMPLIT_EXPR:mt,DATA_ATTR:gt,ARIA_ATTR:ht,IS_ALLOWED_URI:ft,IS_SCRIPT_OR_DATA:_t,ATTR_WHITESPACE:bt,DOCTYPE_NAME:vt}),wt=()=>typeof window>"u"?null:window,kt=function(e,t){if("object"!=typeof e||"function"!=typeof e.createPolicy)return null;let n=null,o="data-tt-policy-suffix";t&&t.hasAttribute(o)&&(n=t.getAttribute(o));let a="dompurify"+(n?"#"+n:"");try{return e.createPolicy(a,{createHTML:e=>e,createScriptURL:e=>e})}catch{return console.warn("TrustedTypes policy "+a+" could not be created."),null}};var Et=function e(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:wt(),n=t=>e(t);if(n.version="3.0.3",n.removed=[],!t||!t.document||9!==t.document.nodeType)return n.isSupported=!1,n;let o=t.document,a=o.currentScript,{document:r}=t,{DocumentFragment:i,HTMLTemplateElement:s,Node:l,Element:c,NodeFilter:d,NamedNodeMap:u=t.NamedNodeMap||t.MozNamedAttrMap,HTMLFormElement:p,DOMParser:m,trustedTypes:g}=t,h=c.prototype,f=Je(h,"cloneNode"),_=Je(h,"nextSibling"),b=Je(h,"childNodes"),v=Je(h,"parentNode");if("function"==typeof s){let e=r.createElement("template");e.content&&e.content.ownerDocument&&(r=e.content.ownerDocument)}let y,w="",{implementation:k,createNodeIterator:E,createDocumentFragment:$,getElementsByTagName:x}=r,{importNode:S}=o,N={};n.isSupported="function"==typeof Ce&&"function"==typeof v&&k&&void 0!==k.createHTMLDocument;let C,A,{MUSTACHE_EXPR:M,ERB_EXPR:O,TMPLIT_EXPR:T,DATA_ATTR:R,ARIA_ATTR:D,IS_SCRIPT_OR_DATA:L,ATTR_WHITESPACE:I}=yt,{IS_ALLOWED_URI:P}=yt,j=null,B=Xe({},[...et,...tt,...nt,...at,...it]),U=null,F=Xe({},[...st,...lt,...ct,...dt]),z=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}})),q=null,H=null,W=!0,G=!0,K=!1,Z=!0,V=!1,Q=!1,X=!1,Y=!1,J=!1,ee=!1,te=!1,ne=!0,oe=!1,ae="user-content-",re=!0,ie=!1,se={},le=null,ce=Xe({},["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"]),de=null,ue=Xe({},["audio","video","img","source","image","track"]),pe=null,me=Xe({},["alt","class","for","id","label","name","pattern","placeholder","role","summary","title","value","style","xmlns"]),ge="http://www.w3.org/1998/Math/MathML",he="http://www.w3.org/2000/svg",fe="http://www.w3.org/1999/xhtml",_e=fe,be=!1,ve=null,ye=Xe({},[ge,he,fe],qe),we=["application/xhtml+xml","text/html"],ke="text/html",Ee=null,$e=r.createElement("form"),xe=function(e){return e instanceof RegExp||e instanceof Function},Se=function(e){if(!Ee||Ee!==e){if((!e||"object"!=typeof e)&&(e={}),e=Ye(e),C=C=-1===we.indexOf(e.PARSER_MEDIA_TYPE)?ke:e.PARSER_MEDIA_TYPE,A="application/xhtml+xml"===C?qe:ze,j="ALLOWED_TAGS"in e?Xe({},e.ALLOWED_TAGS,A):B,U="ALLOWED_ATTR"in e?Xe({},e.ALLOWED_ATTR,A):F,ve="ALLOWED_NAMESPACES"in e?Xe({},e.ALLOWED_NAMESPACES,qe):ye,pe="ADD_URI_SAFE_ATTR"in e?Xe(Ye(me),e.ADD_URI_SAFE_ATTR,A):me,de="ADD_DATA_URI_TAGS"in e?Xe(Ye(ue),e.ADD_DATA_URI_TAGS,A):ue,le="FORBID_CONTENTS"in e?Xe({},e.FORBID_CONTENTS,A):ce,q="FORBID_TAGS"in e?Xe({},e.FORBID_TAGS,A):{},H="FORBID_ATTR"in e?Xe({},e.FORBID_ATTR,A):{},se="USE_PROFILES"in e&&e.USE_PROFILES,W=!1!==e.ALLOW_ARIA_ATTR,G=!1!==e.ALLOW_DATA_ATTR,K=e.ALLOW_UNKNOWN_PROTOCOLS||!1,Z=!1!==e.ALLOW_SELF_CLOSE_IN_ATTR,V=e.SAFE_FOR_TEMPLATES||!1,Q=e.WHOLE_DOCUMENT||!1,J=e.RETURN_DOM||!1,ee=e.RETURN_DOM_FRAGMENT||!1,te=e.RETURN_TRUSTED_TYPE||!1,Y=e.FORCE_BODY||!1,ne=!1!==e.SANITIZE_DOM,oe=e.SANITIZE_NAMED_PROPS||!1,re=!1!==e.KEEP_CONTENT,ie=e.IN_PLACE||!1,P=e.ALLOWED_URI_REGEXP||ft,_e=e.NAMESPACE||fe,z=e.CUSTOM_ELEMENT_HANDLING||{},e.CUSTOM_ELEMENT_HANDLING&&xe(e.CUSTOM_ELEMENT_HANDLING.tagNameCheck)&&(z.tagNameCheck=e.CUSTOM_ELEMENT_HANDLING.tagNameCheck),e.CUSTOM_ELEMENT_HANDLING&&xe(e.CUSTOM_ELEMENT_HANDLING.attributeNameCheck)&&(z.attributeNameCheck=e.CUSTOM_ELEMENT_HANDLING.attributeNameCheck),e.CUSTOM_ELEMENT_HANDLING&&"boolean"==typeof e.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements&&(z.allowCustomizedBuiltInElements=e.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements),V&&(G=!1),ee&&(J=!0),se&&(j=Xe({},[...it]),U=[],!0===se.html&&(Xe(j,et),Xe(U,st)),!0===se.svg&&(Xe(j,tt),Xe(U,lt),Xe(U,dt)),!0===se.svgFilters&&(Xe(j,nt),Xe(U,lt),Xe(U,dt)),!0===se.mathMl&&(Xe(j,at),Xe(U,ct),Xe(U,dt))),e.ADD_TAGS&&(j===B&&(j=Ye(j)),Xe(j,e.ADD_TAGS,A)),e.ADD_ATTR&&(U===F&&(U=Ye(U)),Xe(U,e.ADD_ATTR,A)),e.ADD_URI_SAFE_ATTR&&Xe(pe,e.ADD_URI_SAFE_ATTR,A),e.FORBID_CONTENTS&&(le===ce&&(le=Ye(le)),Xe(le,e.FORBID_CONTENTS,A)),re&&(j["#text"]=!0),Q&&Xe(j,["html","head","body"]),j.table&&(Xe(j,["tbody"]),delete q.tbody),e.TRUSTED_TYPES_POLICY){if("function"!=typeof e.TRUSTED_TYPES_POLICY.createHTML)throw Ve('TRUSTED_TYPES_POLICY configuration option must provide a "createHTML" hook.');if("function"!=typeof e.TRUSTED_TYPES_POLICY.createScriptURL)throw Ve('TRUSTED_TYPES_POLICY configuration option must provide a "createScriptURL" hook.');y=e.TRUSTED_TYPES_POLICY,w=y.createHTML("")}else void 0===y&&(y=kt(g,a)),null!==y&&"string"==typeof w&&(w=y.createHTML(""));Re&&Re(e),Ee=e}},Ne=Xe({},["mi","mo","mn","ms","mtext"]),Ae=Xe({},["foreignobject","desc","title","annotation-xml"]),Me=Xe({},["title","style","font","a","script"]),Oe=Xe({},tt);Xe(Oe,nt),Xe(Oe,ot);let Te=Xe({},at);Xe(Te,rt);let De=function(e){let t=v(e);(!t||!t.tagName)&&(t={namespaceURI:_e,tagName:"template"});let n=ze(e.tagName),o=ze(t.tagName);return!!ve[e.namespaceURI]&&(e.namespaceURI===he?t.namespaceURI===fe?"svg"===n:t.namespaceURI===ge?"svg"===n&&("annotation-xml"===o||Ne[o]):!!Oe[n]:e.namespaceURI===ge?t.namespaceURI===fe?"math"===n:t.namespaceURI===he?"math"===n&&Ae[o]:!!Te[n]:e.namespaceURI===fe?!(t.namespaceURI===he&&!Ae[o]||t.namespaceURI===ge&&!Ne[o])&&(!Te[n]&&(Me[n]||!Oe[n])):!("application/xhtml+xml"!==C||!ve[e.namespaceURI]))},Le=function(e){Fe(n.removed,{element:e});try{e.parentNode.removeChild(e)}catch{e.remove()}},Ie=function(e,t){try{Fe(n.removed,{attribute:t.getAttributeNode(e),from:t})}catch{Fe(n.removed,{attribute:null,from:t})}if(t.removeAttribute(e),"is"===e&&!U[e])if(J||ee)try{Le(t)}catch{}else try{t.setAttribute(e,"")}catch{}},Pe=function(e){let t,n;if(Y)e=""+e;else{let t=He(e,/^[\r\n\t ]+/);n=t&&t[0]}"application/xhtml+xml"===C&&_e===fe&&(e=''+e+"");let o=y?y.createHTML(e):e;if(_e===fe)try{t=(new m).parseFromString(o,C)}catch{}if(!t||!t.documentElement){t=k.createDocument(_e,"template",null);try{t.documentElement.innerHTML=be?w:o}catch{}}let a=t.body||t.documentElement;return e&&n&&a.insertBefore(r.createTextNode(n),a.childNodes[0]||null),_e===fe?x.call(t,Q?"html":"body")[0]:Q?t.documentElement:a},je=function(e){return E.call(e.ownerDocument||e,e,d.SHOW_ELEMENT|d.SHOW_COMMENT|d.SHOW_TEXT,null,!1)},Qe=function(e){return e instanceof p&&("string"!=typeof e.nodeName||"string"!=typeof e.textContent||"function"!=typeof e.removeChild||!(e.attributes instanceof u)||"function"!=typeof e.removeAttribute||"function"!=typeof e.setAttribute||"string"!=typeof e.namespaceURI||"function"!=typeof e.insertBefore||"function"!=typeof e.hasChildNodes)},ut=function(e){return"object"==typeof l?e instanceof l:e&&"object"==typeof e&&"number"==typeof e.nodeType&&"string"==typeof e.nodeName},pt=function(e,t,o){N[e]&&Be(N[e],(e=>{e.call(n,t,o,Ee)}))},mt=function(e){let t;if(pt("beforeSanitizeElements",e,null),Qe(e))return Le(e),!0;let o=A(e.nodeName);if(pt("uponSanitizeElement",e,{tagName:o,allowedTags:j}),e.hasChildNodes()&&!ut(e.firstElementChild)&&(!ut(e.content)||!ut(e.content.firstElementChild))&&Ze(/<[/\w]/g,e.innerHTML)&&Ze(/<[/\w]/g,e.textContent))return Le(e),!0;if(!j[o]||q[o]){if(!q[o]&&ht(o)&&(z.tagNameCheck instanceof RegExp&&Ze(z.tagNameCheck,o)||z.tagNameCheck instanceof Function&&z.tagNameCheck(o)))return!1;if(re&&!le[o]){let t=v(e)||e.parentNode,n=b(e)||e.childNodes;if(n&&t){for(let o=n.length-1;o>=0;--o)t.insertBefore(f(n[o],!0),_(e))}}return Le(e),!0}return e instanceof c&&!De(e)||("noscript"===o||"noembed"===o)&&Ze(/<\/no(script|embed)/i,e.innerHTML)?(Le(e),!0):(V&&3===e.nodeType&&(t=e.textContent,t=We(t,M," "),t=We(t,O," "),t=We(t,T," "),e.textContent!==t&&(Fe(n.removed,{element:e.cloneNode()}),e.textContent=t)),pt("afterSanitizeElements",e,null),!1)},gt=function(e,t,n){if(ne&&("id"===t||"name"===t)&&(n in r||n in $e))return!1;if((!G||H[t]||!Ze(R,t))&&(!W||!Ze(D,t)))if(!U[t]||H[t]){if(!(ht(e)&&(z.tagNameCheck instanceof RegExp&&Ze(z.tagNameCheck,e)||z.tagNameCheck instanceof Function&&z.tagNameCheck(e))&&(z.attributeNameCheck instanceof RegExp&&Ze(z.attributeNameCheck,t)||z.attributeNameCheck instanceof Function&&z.attributeNameCheck(t))||"is"===t&&z.allowCustomizedBuiltInElements&&(z.tagNameCheck instanceof RegExp&&Ze(z.tagNameCheck,n)||z.tagNameCheck instanceof Function&&z.tagNameCheck(n))))return!1}else if(!pe[t]&&!Ze(P,We(n,I,""))&&("src"!==t&&"xlink:href"!==t&&"href"!==t||"script"===e||0!==Ge(n,"data:")||!de[e])&&(!K||Ze(L,We(n,I,"")))&&n)return!1;return!0},ht=function(e){return e.indexOf("-")>0},_t=function(e){let t,o,a,r;pt("beforeSanitizeAttributes",e,null);let{attributes:i}=e;if(!i)return;let s={attrName:"",attrValue:"",keepAttr:!0,allowedAttributes:U};for(r=i.length;r--;){t=i[r];let{name:l,namespaceURI:c}=t;if(o="value"===l?t.value:Ke(t.value),a=A(l),s.attrName=a,s.attrValue=o,s.keepAttr=!0,s.forceKeepAttr=void 0,pt("uponSanitizeAttribute",e,s),o=s.attrValue,s.forceKeepAttr||(Ie(l,e),!s.keepAttr))continue;if(!Z&&Ze(/\/>/i,o)){Ie(l,e);continue}V&&(o=We(o,M," "),o=We(o,O," "),o=We(o,T," "));let d=A(e.nodeName);if(gt(d,a,o)){if(oe&&("id"===a||"name"===a)&&(Ie(l,e),o=ae+o),y&&"object"==typeof g&&"function"==typeof g.getAttributeType&&!c)switch(g.getAttributeType(d,a)){case"TrustedHTML":o=y.createHTML(o);break;case"TrustedScriptURL":o=y.createScriptURL(o)}try{c?e.setAttributeNS(c,l,o):e.setAttribute(l,o),Ue(n.removed)}catch{}}}pt("afterSanitizeAttributes",e,null)},bt=function e(t){let n,o=je(t);for(pt("beforeSanitizeShadowDOM",t,null);n=o.nextNode();)pt("uponSanitizeShadowNode",n,null),!mt(n)&&(n.content instanceof i&&e(n.content),_t(n));pt("afterSanitizeShadowDOM",t,null)};return n.sanitize=function(e){let t,a,r,s,c=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(be=!e,be&&(e="\x3c!--\x3e"),"string"!=typeof e&&!ut(e)){if("function"!=typeof e.toString)throw Ve("toString is not a function");if("string"!=typeof(e=e.toString()))throw Ve("dirty is not a string, aborting")}if(!n.isSupported)return e;if(X||Se(c),n.removed=[],"string"==typeof e&&(ie=!1),ie){if(e.nodeName){let t=A(e.nodeName);if(!j[t]||q[t])throw Ve("root node is forbidden and cannot be sanitized in-place")}}else if(e instanceof l)t=Pe("\x3c!----\x3e"),a=t.ownerDocument.importNode(e,!0),1===a.nodeType&&"BODY"===a.nodeName||"HTML"===a.nodeName?t=a:t.appendChild(a);else{if(!J&&!V&&!Q&&-1===e.indexOf("<"))return y&&te?y.createHTML(e):e;if(t=Pe(e),!t)return J?null:te?w:""}t&&Y&&Le(t.firstChild);let d=je(ie?e:t);for(;r=d.nextNode();)mt(r)||(r.content instanceof i&&bt(r.content),_t(r));if(ie)return e;if(J){if(ee)for(s=$.call(t.ownerDocument);t.firstChild;)s.appendChild(t.firstChild);else s=t;return(U.shadowroot||U.shadowrootmod)&&(s=S.call(o,s,!0)),s}let u=Q?t.outerHTML:t.innerHTML;return Q&&j["!doctype"]&&t.ownerDocument&&t.ownerDocument.doctype&&t.ownerDocument.doctype.name&&Ze(vt,t.ownerDocument.doctype.name)&&(u="\n"+u),V&&(u=We(u,M," "),u=We(u,O," "),u=We(u,T," ")),y&&te?y.createHTML(u):u},n.setConfig=function(e){Se(e),X=!0},n.clearConfig=function(){Ee=null,X=!1},n.isValidAttribute=function(e,t,n){Ee||Se({});let o=A(e),a=A(t);return gt(o,a,n)},n.addHook=function(e,t){"function"==typeof t&&(N[e]=N[e]||[],Fe(N[e],t))},n.removeHook=function(e){if(N[e])return Ue(N[e])},n.removeHooks=function(e){N[e]&&(N[e]=[])},n.removeAllHooks=function(){N={}},n}(),$t=Et;ve=r("aN0pg");r("hiQgq");i=r("cNaMA"),i=r("cNaMA"),ce=r("9Ta4i");var xt=r("2P6PH"),St=r("hiQgq");St=r("hiQgq");r("9Ta4i");St=r("hiQgq"),ce=r("9Ta4i");var Nt={};t(Nt),e(Nt,"default",(()=>Ct.default));var Ct={};e(Ct,"default",(()=>Gt),(e=>Gt=e));var At,Mt,Ot=Object.create,Tt=Object.defineProperty,Rt=Object.getOwnPropertyDescriptor,Dt=Object.getOwnPropertyNames,Lt=Object.getPrototypeOf,It=Object.prototype.hasOwnProperty,Pt=(e,t,n,o)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let a of Dt(t))!It.call(e,a)&&a!==n&&Tt(e,a,{get:()=>t[a],enumerable:!(o=Rt(t,a))||o.enumerable});return e},jt=(e,t,n)=>(n=null!=e?Ot(Lt(e)):{},Pt(!t&&e&&e.__esModule?n:Tt(n,"default",{value:e,enumerable:!0}),e)),Bt=(At=(e,t)=>{var n=Symbol("baseMap"),o=class{constructor(e){this.value=e}};function a(e){if(!Array.isArray(e))throw new TypeError("The keys parameter must be an array")}function r({[n]:e},t,o){for(let n of t){if(!e.has(n)){if(!o)return;e.set(n,new WeakMap)}e=e.get(n)}return e}t.exports=class extends WeakMap{constructor(){super(),this[n]=new WeakMap;let[e]=arguments;if(null!=e){if("function"!=typeof e[Symbol.iterator])throw new TypeError(typeof e+" is not iterable (cannot read property Symbol(Symbol.iterator))");for(let[t,n]of e)this.set(t,n)}}set(e,t){return a(e),r(this,e,!0).set(o,t),this}get(e){a(e);let t=r(this,e);return t?t.get(o):void 0}has(e){a(e);let t=r(this,e);return!!t&&t.has(o)}delete(e){a(e);let t=r(this,e);return!!t&&t.delete(o)}get[Symbol.toStringTag](){return"ManyKeysWeakMap"}}},()=>(Mt||At((Mt={exports:{}}).exports,Mt),Mt.exports)),Ut={};((e,t)=>{for(var n in t)Tt(e,n,{get:t[n],enumerable:!0})})(Ut,{default:()=>Gt});var Ft=jt(Bt());((e,t,n)=>{Pt(e,t,"default"),n&&Pt(n,t,"default")})(Ut,jt(Bt()));var zt,qt,{default:Ht,...Wt}=Ft,Gt=void 0!==Ht?Ht:Wt;zt=Nt,qt=Ct,Object.keys(qt).forEach((function(e){"default"===e||"__esModule"===e||zt.hasOwnProperty(e)||Object.defineProperty(zt,e,{enumerable:!0,get:function(){return qt[e]}})}));let Kt=e=>St.julia_andrey().language.parser.parse(e).topNode.firstChild;let Zt=(e,t=(e=>e),n=new Map)=>(...o)=>{let a=t(...o),r=n.get(a);if(null!=r)return r;{let t=e(...o);if(null==t)throw new Error("Memoized function returned undefined");return n.set(a,t),t}},Vt=(e,t=((...e)=>e))=>Zt(e,t,new Ct.default),Qt=e=>Zt(e,(e=>e),new WeakMap),Xt=function*(e){if(e.firstChild())try{do{yield e}while(e.nextSibling())}finally{e.parent()}},Yt=function*(e){if(e.firstChild){let t=e.firstChild;do{yield t}while(t=t.nextSibling)}},Jt=(e,t,n,o=!1)=>{if(o){console.group("Current haystack:",e?e.node.name:null),console.groupCollapsed("Details");try{console.log("template:",t),console.log("haystack_cursor:",e?e.node.toString():null),"node"in t?(console.log("template.node:",t.node),console.log("template.node.toString():",t.node.toString())):"pattern"in t&&console.log("template.pattern:",t.pattern)}finally{console.groupEnd()}}try{if("pattern"in t){let a=t.pattern;if("function"!=typeof a)throw new Error(`Unknown pattern "${a}"`);let r={};o&&(r={...n},console.groupCollapsed(`Matching against pattern: ${t.pattern.name}()`));let i=null;try{i=a(e,n,o)}finally{o&&console.groupEnd()}if(o)if(i){if(console.log("✅ because the pattern was happy! All hail the pattern!"),!ce.default.isEqual(n,r)){let e=ce.default.omit(n,Object.keys(r));console.log(" WE EVEN GOT NEW MATCHES SAY WHAAAAAAT:",e)}}else console.log("❌ because... well, you should ask the pattern that!");return i}if(!("node"in t))throw console.log("template:",t),new Error("waaaah");{let{node:a,children:r}=t;if(o&&console.log(`Matching against node: ${t.node.name}`),!e)return"end"===a.name?(o&&console.log("✅ No node left to match, but it was the end anyway"),!0):(o&&console.log("❌ because no cursor left to match against"),!1);if(e.type.isError)return o&&console.log("✅ because ⚠"),!0;if(e.name!==a.name)return o&&console.log(`❌ because name mismatch "${e.name}" !== "${a.name}"`),!1;if(!e.firstChild()){if(0!==t.children.length){o&&console.log("Haystack node is empty, but template has children... lets see");for(let e of t.children)if(!Jt(null,e,n,o))return o&&console.log("❌ because child template wasn't okay with having no children",e),!1;return o&&console.log("✅ All template children we're fine with having no children to check on"),!0}return o&&console.log("✅ Template also has no children, yayyy"),!0}try{let a=!1;for(let t of r){if(a){if(o&&console.log("Haystack is empty, but there are more children in template... lets see"),!Jt(null,t,n,o))return o&&console.log("❌ template child did not accept null for an answer",t,e.toString()),!1;o&&console.log("👌🏽 This template child was fine with null");continue}for(;("Comment"===e.name||"BlockComment"===e.name)&&e.nextSibling(););if(!Jt(e,t,n,o))return o&&console.log("❌ because a child mismatch",t,e.toString()),!1;a=!e.nextSibling()}if(o&&!a){let n=[];do{n.push(e.node)}while(e.nextSibling());for(let t of n)e.prevSibling();console.warn("We did match all the children of the template, but there are more in the haystack... Might want to actually not match this?",n,t)}return o&&console.log("✅ because all children match"),!0}finally{e.parent()}}}finally{o&&console.groupEnd()}};class en{constructor(e,t){let n=[],o=[];n.push(e[0]);for(let[a,r]of ce.default.zip(e.slice(1),t))if(r instanceof en){n[n.length-1]+=r.template[0];for(let[e,t]of ce.default.zip(r.template.slice(1),r.substitutions))o.push(t),n.push(e);n[n.length-1]+=a}else o.push(r),n.push(a);this.template=n,this.substitutions=o}}let tn=(e,t)=>{for(let n of t)if(e.from===n.from&&e.to===n.to){n.used=!0;let t=n.generator.next({name:e.name,from:e.from,to:e.to,node:e});if(t.done)return t.value;throw new Error("Template generator not done providing ast node")}return{name:e.name,from:e.from,to:e.to,children:Array.from(Yt(e)).map((e=>tn(e,t))),node:e}},nn=function*(e){try{if(e instanceof en){let t="",n=[];for(let[o,a]of ce.default.zip(e.template,e.substitutions))if(t+=o,a){let e=nn(a),o=fn(e.next());n.push({from:t.length,to:t.length+o.length,generator:e}),t+=o}let o=yield t,a=n.map((e=>({from:e.from+o.from,to:e.to+o.from,generator:e.generator,used:!1})));false;let r=tn(o.node,a),i=a.filter((e=>!e.used)).map((e=>({text:t.slice(e.from,e.to),from:e.from,to:e.to})));if(i.length>0)throw new Error(`Some substitutions not applied, this means it couldn't be matched to a AST position: ${JSON.stringify(i)}`);return r}if("function"==typeof e)return yield*e();throw console.log("julia_code_object:",e),new Error("Unknown substition type")}finally{}},on=Vt(((e,...t)=>new en(e,t))),an=new WeakMap,rn=(e,...t)=>{let n=an.get(e);if(null!=n){let{input:e,result:t}=n;return t}{let n=new en(e,t);return an.set(e,{input:t,result:n}),n}},sn=Qt((e=>{let t=nn(e),n=fn(t.next()),o=Kt(n),a=_n(t.next({from:0,to:n.length,name:o.name,node:o}));return{template_description:a,match(e,t=!1){if("node"in a&&a.node.name!==e.name)return;if(e.type.isError)return null;"cursor"in e&&(e=e.cursor());let n={};t&&console.groupCollapsed(`Starting a match at ${e.name}`);try{return Jt(e,a,n,t)?n:null}finally{t&&console.groupEnd()}}}})),ln=Qt((e=>{let t=nn(e),n=fn(t.next());return t.return(),n})),cn=(Qt((e=>Kt(ln(e)))),Qt((e=>St.Text.of([ln(e)]))),e=>{let t={},n=Zt((n=>Qt((o=>e(n,o===t?void 0:o)))));return(e,o=t)=>n(e)(o)});function*dn(){return yield"expression",{pattern:function(e,t,n=!1){return e?!e.type.is("keyword")||(n&&console.log("❌ Keywords are not allowed!"),!1):(n&&console.log("❌ I want anything!! YOU GIVE ME NULL???"),!1)}}}const un={any:dn,many:cn(((e,t=dn)=>function*(){let n=nn(t),o=yield fn(n.next()),a=null,r=null;return o.node.firstChild&&o.node.from===o.node.firstChild.from&&o.node.to===o.node.firstChild.to?(a=o.node,r=_n(n.next({...o,node:o.node.firstChild}))):r=_n(n.next(o)),{narrowed_node:a,sub_template:r,pattern:function(t,n,o=!1){if(!t)return o&&console.log("✅ Nothing to see here... I'm fine with that - many"),!0;if(a){if(t.name!==a.name)return o&&console.log("❌ Tried to go in, but she wasn't my type - many"),t.prevSibling(),!0;t.firstChild()}try{let i=[];for(;;){if(t.type.isError)return t.prevSibling(),o&&console.log("✋ I don't do errors - many"),!0;let e={};if(!Jt(t,r,e,o)){t.prevSibling();break}if(i.push({node:t.node,match:e}),!t.nextSibling())break}return null!=e&&(n[e]=i),!0}finally{a&&t.parent()}}}})),maybe:Qt((e=>function*(){let t=yield*nn(e);return{sub_template:t,pattern:function(e,n,o=!1){if(!e)return!0;if(e.type.isError)return!0;return!1===Jt(e,t,n,o)&&e.prevSibling(),!0}}})),anything_that_fits:Qt((e=>function*(){return yield*nn(e),{pattern:function(e,t,n=!1){return!0}}})),something_with_the_same_type_as:Qt((e=>function*(){let t=nn(e),n=fn(t.next()),o=yield n;return t.return(),{pattern:function(e,t,n=!1){return null!=e&&o.name===e.name}}})),as:cn(((e,t=dn)=>function*(){let n=yield*nn(t);return{sub_template:n,pattern:function(t,o,a=!1){let r=Jt(t,n,o,a);return!0===r&&(o[e]=null==t?void 0:t.node),null!=t&&r}}})),Identifier:function*(){return yield"identifier",{pattern:function(e,t,n=!1){return null!=e&&"Identifier"===gn(e)}}},Number:function*(){return yield"69",{pattern:function(e,t,n=!1){return null!=e&&"Number"===gn(e)}}},String:function*(){return yield'"A113"',{pattern:function(e,t,n=!1){return null!=e&&("StringWithoutInterpolation"===gn(e)||"TripleStringWithoutInterpolation"===gn(e))}}}};let pn=Vt(((e,t)=>{let n=nn(e),o=fn(n.next()),a=Kt(o),r=null;if(r=t.match(a)){let{content:e}=r,t=[];for(;e.firstChild&&e.firstChild.from==e.from&&e.firstChild.to==e.to;)t.push(e.type),e=e.firstChild;if(null==e)throw console.log("match:",r),new Error("No content match?");let o=_n(n.next({name:e.name,node:e,from:a.from,to:a.to}));return{possible_parents:t,template_description:o,match(e,n=!1){if(e.type.isError)return n&&console.log(`❌ Short circuiting because haystack(${e.name}) is an error`),!1;"cursor"in e&&(e=e.cursor());let a=0;for(let o of t){if(e.type!==o)break;{let t=e.from,r=e.to;if(e.firstChild()){if(e.from!==t||e.to!==r){e.parent(),n&&console.log(`❌ Was matching possible parent (${o}), but it wasn't filling?! That's weird.... ${e.toString()}`);for(let t=0;te.firstChild&&e.firstChild.from===e.from&&e.firstChild.to===e.to?mn(e.firstChild):e,gn=e=>{let t=e.from,n=e.to;if(e.firstChild())try{if(e.from===t&&e.to===n)return gn(e)}finally{e.parent()}return e.name},hn=e=>t=>{let n=sn(e(un.as("content",t)));return pn(e(t),n)};let fn=e=>{if(e.done)throw new Error("Expected `yield`-d value, but got `return`");return e.value},_n=e=>{if(e.done)return e.value;throw new Error("Expected `yield`-d value, but got `return`")},bn=(e,t)=>{if(e===t)return e;let n=[...e.usages,...t.usages],o=new Map(e.definitions);for(let[e,n]of t.definitions)o.set(e,n);return{usages:n,definitions:o,locals:[...e.locals,...t.locals]}},vn=function*(e){for(let t of Xt(e))if("InterpolationExpression"===t.name)yield e;else if("QuoteExpression"===t.name||"QuoteStatement"===t.name)for(let e of vn(t))yield*vn(e);else yield*vn(t)},yn=e=>{let t=hn(e);return function(e,n=!1){return null==e?(e,...n)=>t(rn(e,...n)):function(o,...a){return t(rn(o,...a)).match(e,n)}}},wn=yn((e=>on`[i for i in i ${e}]`)),kn=yn((e=>on`${e} = nothing`)),En=yn((e=>on`function f(${e}) end`)),$n=yn((e=>on`f(${e})`)),xn=yn((e=>on`f(; ${e})`)),Sn=(e,t,n,o=!1)=>{let a=null;if(a=$n(e)`; ${un.many("named_args")}`){let{named_args:e=[]}=a;for(let{node:a}of e)n=Sn(a,t,n,o);return n}if(a=En(e)`${un.Identifier}`)return Ln(n,t,e);if(a=En(e)`${un.as("subject")}...`)return Nn(a.subject,t,n,null,o);if(a=En(e)`${un.as("name")} = ${un.as("value")}`){let{name:e,value:r}=a;return n=Nn(e,t,n,r.to,o),n=In(r.cursor(),t,n,o)}if((a=En(e)`${un.as("name")}::${un.as("type")}`)??(a=En(e)`${un.as("name")}:`)??(a=En(e)`::${un.as("type")}`)){let{name:e,type:r}=a;return e&&(n=Nn(e,t,n,r.to,o)),r&&(n=In(r.cursor(),t,n,o)),n}return n=Nn(e,t,n),o&&console.warn("UNKNOWN FUNCTION DEFINITION ARGUMENT:",e.toString()),n},Nn=(e,t,n,o=null,a=!1)=>{let r=null;a&&console.group("Explorering pattern:",e.toString());try{if(r=kn(e)`${un.Identifier}`)return a&&console.log("It's an identifier, adding it to the scope"),Ln(n,t,e,o);if(r=kn(e)`${un.as("object")}::${un.as("type")}`){let{object:e,type:o}=r;return n=In(o.cursor(),t,n,a),n=Ln(n,t,e)}if(r=kn(e)`${un.as("subject")}...`)return Nn(r.subject,t,n,o,a);if(r=En(e)`${un.as("name")} = ${un.as("value")}`){let{name:e,value:o}=r;return n=Nn(e,t,n,o.from,a),n=In(o.cursor(),t,n,a)}if(r=kn(e)`(; ${un.many("named_tuples")})`){let{named_tuples:e}=r;for(let r of e)n=Nn(r.node.cursor(),t,n,o,a);return n}if((r=kn(e)`${un.as("first")}, ${un.many("rest")}`)??(r=kn(e)`(${un.as("first")}, ${un.many("rest")})`)){for(let{node:e}of[{node:r.first},...r.rest??[]])n=Nn(e.cursor(),t,n,o,a);return n}if(r=An(e)`${un.as("prefix")}${un.as("string",un.String)}`){let{prefix:o,string:i}=r;if("var"===t.sliceString(o.from,o.to)){let o=t.sliceString(i.from+1,i.to-1);0!==o.length&&n.definitions.set(o,{from:e.from,to:e.to,valid_from:e.to})}else n=In("cursor"in e?e.cursor():e,t,n,a);return n}if(r=kn(e)`${un.as("object")}[${un.as("property")}]`){let{object:e,property:o}=r;return n=In(e.cursor(),t,n,a),o&&(n=In(o.cursor(),t,n,a)),n}if(r=kn(e)`${un.as("object")}.${un.as("property")}`){let{object:e,property:o}=r;return n=In(e.cursor(),t,n,a)}return a&&console.warn("UNKNOWN PATTERN:",e.toString(),t.sliceString(e.from,e.to)),n}finally{a&&console.groupEnd()}},Cn=function(e,t,n,o=!1){let a=null;if("Definition"!==e.name||!e.firstChild()){if("Identifier"===e.name)return{inner:Ln(n,t,e),outer:Ln(Tn(),t,e)};if(a=An(e)`${un.as("subject")}{ ${un.many("parameters")} }`){let{subject:e,parameters:o}=a,r=Tn();if(e){let o=Cn(e.cursor(),t,n);r=o.outer,n=o.inner}for(let{node:e}of o){let{inner:o}=Cn(e.cursor(),t,n);n=o}return{inner:n,outer:r}}if(a=An(e)`${un.as("subject")} <: ${un.maybe(un.as("type"))}`){let{subject:e,type:o}=a,r=Tn();return e&&({outer:r,inner:n}=Cn(e.cursor(),t,n)),o&&(n=In(o.cursor(),t,n)),{inner:n,outer:r}}return o&&console.warn(`Unknown thing in definition: "${t.sliceString(e.from,e.to)}", "${e.toString()}"`),{inner:n,outer:Tn()}}try{return Cn(e,t,n)}finally{e.parent()}},An=(Mn=sn,function(e,t=!1){return null==e?(e,...t)=>Mn(rn(e,...t)):function(n,...o){return Mn(rn(n,...o)).match(e,t)}});var Mn;let On=(e,t,n,o=!1)=>{let a=null,r=yn((e=>on`${e} x y z`));if(a=r(e)`${un.as("macro",rn`@${un.any}`)}`){let{macro:e}=a,o=t.sliceString(e.from,e.to);return n.usages.push({usage:e,definition:n.definitions.get(o)??null,name:o}),n}if(a=r(e)`${un.as("object")}.@${un.as("macro")}`){let{object:e}=a,o=t.sliceString(e.from,e.to);return n.usages.push({usage:e,definition:n.definitions.get(o)??null,name:o}),n}if(a=r(e)`@${un.as("object")}.${un.as("macro")}`){let{object:e}=a,o=t.sliceString(e.from,e.to);return n.usages.push({usage:e,definition:n.definitions.get(o)??null,name:o}),n}return o&&console.warn("Mwep mweeeep",e.toString()),n},Tn=()=>({usages:[],definitions:new Map,locals:[]}),Rn=e=>({usages:[],definitions:new Map(e.definitions),locals:[]}),Dn=(e,t,n)=>({usages:[...t.usages,...e.usages],definitions:t.definitions,locals:[]}),Ln=(e,t,n,o=null)=>(o=null===o?n.to:o,e.definitions.set(t.sliceString(n.from,n.to),{from:n.from,to:n.to,valid_from:o}),e),In=(e,t,n={usages:[],definitions:new Map,locals:[]},o=!1)=>{"cursor"in e&&(e=e.cursor());let a=null;if(o){console.group(`Explorer: ${e.name}`),console.groupCollapsed("Details");try{console.log(`Full tree: ${e.toString()}`),console.log("Full text:",t.sliceString(e.from,e.to)),console.log("scopestate:",n)}finally{console.groupEnd()}a=e.node}try{let a=null;if(e.type.is("keyword")||"SourceFile"===e.name||"BooleanLiteral"===e.name||"Character"===e.name||"String"===e.name||"Number"===e.name||"Comment"===e.name||"BinaryExpression"===e.name||"Operator"===e.name||"MacroArgumentList"===e.name||"ReturnStatement"===e.name||"BareTupleExpression"===e.name||"ParenthesizedExpression"===e.name||"Type"===e.name||"InterpolationExpression"===e.name||"SpreadExpression"===e.name||"CompoundExpression"===e.name||"ParameterizedIdentifier"===e.name||"TypeArgumentList"===e.name||"TernaryExpression"===e.name||"Coefficient"===e.name||"TripleString"===e.name||"RangeExpression"===e.name||"SubscriptExpression"===e.name||"UnaryExpression"===e.name||"ConstStatement"===e.name||"GlobalStatement"===e.name||"ContinueStatement"===e.name||"MatrixExpression"===e.name||"MatrixRow"===e.name||"ArrayExpression"===e.name){for(let a of Xt(e))n=In(a,t,n,o);return n}if("Identifier"===e.name||"MacroIdentifier"===e.name){let o=t.sliceString(e.from,e.to);return n.usages.push({name:o,usage:{from:e.from,to:e.to},definition:n.definitions.get(o)??null}),n}if(a=An(e)`:${un.any}`)return n;if(a=An(e)`${un.Number}`)return n;if(a=An(e)`${un.String}`)return n;if(a=An(e)`${un.as("object")}.${un.as("property")}`){let{object:e,property:r}=a;return e&&(n=In(e.cursor(),t,n,o)),n}if(a=An(e)`${un.as("assignee")} = ${un.maybe(un.as("value"))}`){let{assignee:e,value:r}=a;return r&&(n=In(r.cursor(),t,n,o)),e&&(n=Nn(e.cursor(),t,n,(null==r?void 0:r.to)??null,o)),n}if(a=An(e)` + ${un.as("macro",un.anything_that_fits(rn`@macro`))}(${un.many("args")}) ${un.maybe(rn`do ${un.maybe(un.many("do_args"))} + ${un.many("do_expressions")} + end`)}} + `){let{macro:r,args:i=[],do_args:s,do_expressions:l}=a;r&&On(r.cursor(),t,n,o);for(let{node:e}of i)if(a=$n(e)`${un.as("name")} = ${un.as("value")}`){let{name:e,value:r}=a;r&&(n=In(r.cursor(),t,n,o))}else n=In(e.cursor(),t,n,o);if(s&&l){let a=Rn(n),r=s.firstChild;if("Identifier"===r.name)a=Ln(a,t,r);else if("ArgumentList"===r.name)for(let e of Yt(r))a=Sn(e,t,a);else if("BareTupleExpression"===r.name)for(let e of Yt(r))a=Sn(e,t,a);else o&&console.warn("Unrecognized do args",r.toString());for(let{node:e}of l)a=In(e.cursor(),t,a,o);return Dn(a,n,e.to)}return n}if(a=An(e)`${un.as("macro",un.anything_that_fits(rn`@macro`))} ${un.many("args")}`){let{macro:e,args:r=[]}=a;e&&On(e.cursor(),t,n,o);for(let{node:e}of r)n=In(e.cursor(),t,n,o);return n}if((a=An(e)` + struct ${un.as("defined_as")} + ${un.many("expressions")} + end + `)??(a=An(e)` + mutable struct ${un.as("defined_as")} + ${un.many("expressions")} + end + `)){let{defined_as:r,expressions:i=[]}=a;r=mn(r);let s=Rn(n),l=Tn();r&&({inner:s,outer:l}=Cn(r.cursor(),t,s));for(let{node:n}of i)if("Identifier"===e.name);else if(a=An(n)`${un.as("subject")}::${un.as("type")}`){let{subject:e,type:n}=a;s=In(n.cursor(),t,s,o)}else if(a=An(n)`${un.as("assignee")} = ${un.as("value")}`){let{assignee:e,value:n}=a;if(a=An(e)`${un.as("subject")}::${un.as("type")}`){let{subject:e,type:n}=a;s=In(n.cursor(),t,s,o)}s=In(n.cursor(),t,s,o)}return n=Dn(s,n,e.to),n=bn(n,l)}if(a=An(e)`abstract type ${un.as("name")} end`){let{name:e}=a;if(e){let{outer:o}=Cn(e.cursor(),t,n);n=bn(n,o)}return n}if((a=An(e)`quote ${un.many("body")} end`)??(a=An(e)`:(${un.many("body")})`)){for(let a of function*(e){if("QuoteExpression"!==e.name&&"QuoteStatement"!==e.name)throw new Error("Expected QuotedExpression or QuoteStatement");yield*vn(e)}(e))n=In(a,t,n,o);return n}if(a=An(e)` + module ${un.as("name")} + ${un.many("expressions")} + end + `){let{name:e,expressions:o=[]}=a;e&&(n=Ln(n,t,e));let r=Tn();for(let{node:e}of o)r=In(e.cursor(),t,r);n=bn(n,{usages:Array.from(r.usages).filter((e=>null!=e.definition)),definitions:new Map,locals:[]});for(let{node:e}of o)n=In(e.cursor(),t,n);return n}if(a=An(e)`${un.as("prefix")}${un.as("string",un.String)}`){let{prefix:o,string:r}=a,i=t.sliceString(o.from,o.to);if("var"===i){let o=t.sliceString(r.from+1,r.to-1);return 0!==o.length&&n.usages.push({name:o,usage:{from:e.from,to:e.to},definition:n.definitions.get(o)??null}),n}{let e=`@${i}_str`;n.usages.push({name:e,usage:{from:o.from,to:o.to},definition:n.definitions.get(e)??null})}return n}if(a=An(e)`${un.Number}${un.as("unit")}`)return In(a.unit.cursor(),t,n,o);if((a=An(e)`import ${un.any}: ${un.many("specifiers")}`)??(a=An(e)`using ${un.any}: ${un.many("specifiers")}`)){let{specifiers:e=[]}=a,r=yn((e=>on`import X: ${e}`));for(let{node:i}of e)if(a=r(i)`${un.as("name")} as ${un.as("alias")}`){let{alias:e}=a;n=Ln(n,t,e)}else if(a=r(i)`${un.as("name",un.Identifier)}`){let{name:e}=a;n=Ln(n,t,e)}else(a=r(i)`@${un.any}`)?n=Ln(n,t,i):o&&console.warn("Hmmmm, I don't know what to do with this selected import specifier:",i.toString());return n}if(a=An(e)`import ${un.many("specifiers")}`){let{specifiers:e=[]}=a,r=yn((e=>on`import ${e}`));for(let{node:i}of e)if(a=r(i)`${un.any} as ${un.as("alias")}`){let{alias:e}=a;n=Ln(n,t,e)}else if(a=r(i)`${un.as("package")}.${un.as("name",un.Identifier)}`)n=Ln(n,t,a.name);else if(a=r(i)`.${un.as("scoped")}`){let e=null;for(;e=r(a.scoped)`.${un.as("scoped")}`;)a=e;n=Ln(n,t,a.scoped)}else(a=r(i)`${un.as("name",un.Identifier)}`)?n=Ln(n,t,a.name):o&&console.warn("Hmmm, I don't know what to do with this import specifier:",i);return n}if(a=An(e)`using ${un.many()}`)return n;if(a=An(e)` + for ${un.many("bindings",un.something_with_the_same_type_as(rn`x in y`))}; + ${un.many("expressions")} + end + `){let r=hn((e=>on`for ${e}; x end`)),i=e=>(...t)=>r(rn(...t)).match(e),{bindings:s,expressions:l}=a,c=Rn(n);for(let{node:e}of s){let n=null;if((n=i(e)`${un.as("name")} in ${un.as("range")}`)??(n=i(e)`${un.as("name")} ∈ ${un.as("range")}`)??(n=i(e)`${un.as("name")} = ${un.as("range")}`)){let{name:e,range:a}=n;a&&(c=In(a.cursor(),t,c,o)),e&&(c=Nn(e,t,c,(null==a?void 0:a.to)??null,o))}else o&&console.warn("Unrecognized for loop binding",e.toString())}for(let{node:e}of l)c=In(e.cursor(),t,c,o);return Dn(c,n,e.to)}if((a=An(e)` + ${un.as("callee")}(${un.many("args")}) ${un.maybe(rn`do ${un.maybe(un.many("do_args"))} + ${un.many("do_expressions")} + end`)} + `)??(a=An(e)` + ${un.as("callee")}.(${un.many("args")}) + `)){let{callee:r,args:i=[],do_args:s=[],do_expressions:l=[]}=a;n=In(r.cursor(),t,n,o);for(let{node:a}of i){let r=null;if(r=$n(a)`; ${un.many("named_args")}`){let{named_args:e=[]}=r;for(let{node:a}of e){let e=null;if(e=xn(a)`${un.as("name")} = ${un.as("value")}`){let{name:a,value:r}=e;n=In(r.cursor(),t,n,o)}else n=In(a.cursor(),t,n,o)}}else if(r=$n(a)`${un.as("name")} = ${un.as("value")}`){let{name:e,value:a}=r;a&&(n=In(a.cursor(),t,n,o))}else{if(r=$n(a)`${un.as("result")} ${un.many("clauses",un.anything_that_fits(rn`for x = y`))}`){let{result:a,clauses:i}=r,s=Rn(n);for(let{node:e}of i){let n=null;if((n=wn(e)`for ${un.as("variable")} = ${un.maybe(un.as("value"))}`)??(n=wn(e)`for ${un.as("variable")} in ${un.maybe(un.as("value"))}`)??(n=wn(e)`for ${un.as("variable")} ∈ ${un.maybe(un.as("value"))}`)??(n=wn(e)`for ${un.as("variable")}`)){let{variable:e,value:a}=n;a&&(s=In(a.cursor(),t,s,o)),e&&(s=Nn(e,t,s))}else if(n=wn(e)`if ${un.maybe(un.as("if"))}`){let{if:e}=n;e&&(s=In(e.cursor(),t,s,o))}else o&&console.log("Hmmm, can't parse for binding",e)}return s=In(a.cursor(),t,s,o),Dn(s,n,e.to)}n=In(a.cursor(),t,n,o)}}let c=Rn(n);for(let{node:e}of s)c=Sn(e,t,c);for(let{node:e}of l)c=In(e.cursor(),t,c,o);return Dn(c,n,e.to)}if(a=An(e)`(${un.many("tuple_elements")},)`){let{tuple_elements:r=[]}=a,i=yn((e=>on`(${e},)`)),s=r.map((({node:t})=>null!=i(e)`${un.Identifier} = ${un.any}`));if(s.every((e=>!0===e))||s.every((e=>!1===e)))for(let{node:a}of r){let r=null;if(r=i(e)`${un.as("name")} = ${un.as("value")}`){let{name:e,value:a}=r;a&&(n=In(a.cursor(),t,n,o))}else n=In(a.cursor(),t,n,o)}else for(let{node:a}of r){let r=null;if(r=i(e)`${un.as("name")} = ${un.as("value")}`){let{name:e,value:a}=r;a&&(n=In(a.cursor(),t,n,o)),e&&(n=Ln(n,t,e,(null==a?void 0:a.to)??null))}else n=In(a.cursor(),t,n,o)}return n}if((a=An(e)`(${un.many("args")}) -> ${un.many("body")}`)??(a=An(e)`${un.as("arg")} -> ${un.many("body")}`)??(a=An(e)`${un.as("name")}(${un.many("args")})::${un.as("return_type")} = ${un.many("body")}`)??(a=An(e)`${un.as("name")}(${un.many("args")}) = ${un.many("body")}`)??(a=An(e)`${un.as("name")}(${un.many("args")}) = ${un.many("body",un.anything_that_fits(rn`x, y`))}`)??(a=An(e)` + function ${un.as("name")}(${un.many("args")})::${un.as("return_type")} where ${un.as("type_param")} + ${un.many("body")} + end + `)??(a=An(e)` + function ${un.as("name")}(${un.many("args")}) where ${un.as("type_param")} + ${un.many("body")} + end + `)??(a=An(e)` + function ${un.as("name")}(${un.many("args")})::${un.as("return_type")} + ${un.many("body")} + end + `)??(a=An(e)` + function ${un.as("name")}(${un.many("args")}) + ${un.many("body")} + end + `)??(a=An(e)` + function ${un.as("name",un.Identifier)} end + `)??(a=An(e)`macro ${un.as("macro_name")} end`)??(a=An(e)` + macro ${un.as("macro_name")}(${un.many("args")}) + ${un.many("body")} + end + `)){let{name:r,macro_name:i,arg:s,args:l=[],return_type:c,type_param:d,body:u=[]}=a;s&&l.push({node:s}),r?n=Ln(n,t,r):i&&n.definitions.set(`@${t.sliceString(i.from,i.to)}`,{from:i.from,to:i.to,valid_from:i.to});let p=Rn(n);if(d){let e=yn((e=>on`function X() where ${e} end`)),n=yn((e=>on`function X() where {${e}} end`)),a=[{node:d}],r=e(d)`{${un.many("type_params")}}`;r&&(a=r.type_params);for(let{node:e}of a){let a=null;if(a=n(e)`${un.as("defined",un.Identifier)} <: ${un.as("parent_type")}`){let{defined:e,parent_type:n}=a;p=In(n,t,p,o),p=Ln(p,t,e)}else if(a=n(e)`${un.as("defined",un.Identifier)}`){let{defined:e}=a;p=Ln(p,t,e)}else o&&console.warn("Can't handle type param:",e)}}c&&(p=In(mn(c).cursor(),t,p,o));for(let{node:e}of l)p=Sn(e.cursor(),t,p,o);for(let{node:e}of u)p=In(e.cursor(),t,p,o);return Dn(p,n,e.to)}if(a=An(e)` + let ${un.many("assignments",rn`${un.as("assignee")} = ${un.as("value")}`)} + ${un.many("body",un.any)} + end + `){let{assignments:r=[],body:i=[]}=a,s=Rn(n);for(let{match:{assignee:e,value:a}}of r)e&&(s=Nn(e,t,s,(null==a?void 0:a.to)??null,o)),a&&(n=In(a.cursor(),t,n,o));for(let{node:e}of i)s=In(e.cursor(),t,s,o);return Dn(s,n,e.to)}if((a=An(e)`[ + ${un.as("result")} + ${un.many("clauses",un.anything_that_fits(rn`for x = y`))} + ]`)??(a=An(e)`(${un.as("result")} ${un.many("clauses",un.anything_that_fits(rn`for x = y`))})`)){let{result:r,clauses:i}=a,s=Rn(n);for(let{node:e}of i){let n=null;if((n=wn(e)`for ${un.as("variable")} = ${un.maybe(un.as("value"))}`)??(n=wn(e)`for ${un.as("variable")} in ${un.maybe(un.as("value"))}`)??(n=wn(e)`for ${un.as("variable")} ∈ ${un.maybe(un.as("value"))}`)??(n=wn(e)`for ${un.as("variable")}`)){let{variable:e,value:a}=n;a&&(s=In(a.cursor(),t,s,o)),e&&(s=Nn(e,t,s))}else if(n=wn(e)`if ${un.maybe(un.as("if"))}`){let{if:e}=n;e&&(s=In(e.cursor(),t,s,o))}else o&&console.warn("Hmmm, can't parse for binding",e)}return s=In(r.cursor(),t,s,o),Dn(s,n,e.to)}o&&(console.groupCollapsed("Cycling through all children of",e.name),console.log("text:",t.sliceString(e.from,e.to)),console.groupEnd());for(let a of Xt(e))n=In(a,t,n,o);return n}finally{o&&console.groupEnd()}},Pn=St.StateField.define({create(e){try{let t=St.syntaxTree(e).cursor();return In(t,e.doc,void 0)}catch(e){return console.error("Something went wrong while parsing variables...",e),{usages:[],definitions:new Map,locals:[]}}},update(e,t){try{if(St.syntaxTree(t.state)!=St.syntaxTree(t.startState)){let e=St.syntaxTree(t.state).cursor();return In(e,t.state.doc)}return e}catch(e){return console.error("Something went wrong while parsing variables...",e),{usages:[],definitions:new Map,locals:[]}}}}),jn=e=>"SubscriptExpression"===e.name||"FieldExpression"===e.name?(e.firstChild(),jn(e)):"Identifier"===e.name?(e.firstChild(),e.node):null,Bn=["Identifier","FieldExpression","SubscriptExpression","MacroFieldExpression","MacroIdentifier","Operator","Definition","ParameterizedIdentifier"],Un=["import","export","try","catch","finally","quote","do","struct","mutable","module","baremodule","if","let"],Fn=e=>{if(Un.includes(e.name))return!0;if(Bn.includes(e.name)){if(e.firstChild()){do{if("Number"!==e.name&&"TypeArgumentList"!==e.name&&"FieldName"!==e.name&&"MacroName"!==e.name&&"MacroFieldName"!==e.name&&!Fn(e))return!1}while(e.nextSibling());return e.parent(),!0}return!0}return!1},zn=(e,t=!1)=>{let n=e.selection.main,o=e.field(Pn);if(n.from!==n.to)return e.doc.sliceString(n.from,n.to).trim();{let a=e.doc.lineAt(n.from).text;if("?"===a[0])return a.slice(1);let r=St.syntaxTree(e).cursor();t&&console.log("Full tree:",r.toString()),r.moveTo(n.to,-1);let i=0;do{t&&console.group(`Iteration #${i}`);try{if(t&&console.log("cursor",r.toString()),i>100){console.group("Infinite loop while checking docs"),console.log("Selection:",n,e.doc.sliceString(n.from,n.to).trim()),console.log("Current node:",r.name,e.doc.sliceString(r.from,r.to).trim()),console.groupEnd();break}i+=1;let a=r.node.cursor(),s=[];for(;a.parent();)s.push(a.name);let l=r.node.parent;if(null==l)break;t&&console.log("parents:",s);let c=s.indexOf("StructDefinition");if(-1!==c)if(s.includes("AssignmentExpression")&&s.indexOf("AssignmentExpression")=r.to)return e.doc.sliceString(t.from,t.to)}}if("AbstractDefinition"===r.name)return"abstract type";if("CallExpression"===r.name)return r.firstChild(),Fn(r)?e.doc.sliceString(r.from,r.to):void 0;if(("Operator"===r.name||"⚠"===r.name||"Identifier"===r.name)&&"QuoteExpression"===l.name&&"FieldExpression"===l.parent.name)return e.sliceDoc(l.parent.from,l.parent.to);if("ParameterizedIdentifier"===r.name)return r.firstChild(),Fn(r)?e.doc.sliceString(r.from,r.to):void 0;if("Identifier"===r.name&&"Prefix"===l.name)continue;if("PrefixedString"===r.name){return r.firstChild(),`${e.doc.sliceString(r.from,r.to)}"`}if("Identifier"===r.name&&"TypedExpression"===l.name)return r.parent(),r.lastChild(),Fn(r)?e.doc.sliceString(r.from,r.to):void 0;if("TypedExpression"===r.name)return r.lastChild(),Fn(r)?e.doc.sliceString(r.from,r.to):void 0;if("SpreadExpression"===r.name)return"...";if(l.to===r.to&&Bn.includes(r.name)&&Bn.includes(l.name))continue;if("Identifier"===r.name&&"NamedField"===l.name&&l.lastChild.from!=r.from&&l.lastChild.to!=r.to)continue;if("AssignmentExpression"===r.name){let t=r.node.firstChild.to,n=r.node.lastChild.from;return e.doc.sliceString(t,n).trim()}if("ArgumentList"===r.name)continue;if("Identifier"===r.name&&"ArgumentList"===l.name&&("FunctionAssignmentExpression"===l.parent.parent.name||"FunctionDefinition"===l.parent.name))continue;if("Identifier"===r.name&&"Symbol"===l.name)continue;if("FunctionDefinition"===r.name)return r.firstChild(),r.nextSibling(),Fn(r)?e.doc.sliceString(r.from,r.to):void 0;if("FunctionAssignmentExpression"===r.name)return r.firstChild(),Fn(r)?e.doc.sliceString(r.from,r.to):void 0;if("Identifier"===r.name&&"MacroIdentifier"===l.name)continue;if("MacroExpression"===r.name)return r.firstChild(),e.doc.sliceString(r.from,r.to);if("BinaryExpression"===r.name){let t=r.node.firstChild.to,n=r.node.lastChild.from;return e.doc.sliceString(t,n).trim()}if("TernaryExpression"===r.name)return"??:";if(Bn.includes(r.name)||Un.includes(r.name)){if(!Fn(r))return void console.log("NOT DOCS SEARCHABLE");let t=jn(r.node.cursor);if(null==t)return e.doc.sliceString(r.from,r.to);let n=o.usages.find((e=>e.usage.from===t.from&&e.usage.to===t.to));if(null==(null==n?void 0:n.definition))return e.doc.sliceString(r.from,r.to)}if("FunctionDefinition"===l.name)return;if("AssignmentExpression"===l.name)return}finally{t&&console.groupEnd()}}while(r.parent())}};St=r("hiQgq"),$e=r("kjWx8"),ce=r("9Ta4i");let qn=(e,{scopestate:t,global_definitions:n})=>St.Decoration.set(Hn(t.usages.map((({definition:e,usage:t,name:o})=>null==e?n[o]?St.Decoration.mark({tagName:"a",attributes:{title:`${$e.ctrl_or_cmd_name}-Click to jump to the definition of ${o}.`,"data-pluto-variable":o,href:`#${o}`}}).range(t.from,t.to):null:St.Decoration.mark({tagName:"a",attributes:{title:`${$e.ctrl_or_cmd_name}-Click to jump to the definition of ${o}.`,"data-cell-variable":o,"data-cell-variable-from":`${e.from}`,"data-cell-variable-to":`${e.to}`,href:"#"}}).range(t.from,t.to)))),!0);const Hn=e=>e.filter((e=>null!=e)),Wn=St.Facet.define({combine:e=>e[0],compare:ce.default.isEqual}),Gn=St.ViewPlugin.fromClass(class{constructor(e){let t=e.state.facet(Wn);this.decorations=qn(e.state,{scopestate:e.state.field(Pn),global_definitions:t})}update(e){let t=e.state.facet(Wn);(e.docChanged||e.viewportChanged||t!==e.startState.facet(Wn))&&(this.decorations=qn(e.state,{scopestate:e.state.field(Pn),global_definitions:t}))}},{decorations:e=>e.decorations,eventHandlers:{click:(e,t)=>{if(e.target instanceof Element){let o=e.target.closest("[data-pluto-variable]");if(o){var n;let a=o.getAttribute("data-pluto-variable");if(null==a)return!1;if(!$e.has_ctrl_or_cmd_pressed(e)&&!t.state.readOnly)return!1;e.preventDefault();let r=`[id='${encodeURI(a)}']`;null===(n=document.querySelector(r))||void 0===n||n.scrollIntoView({behavior:"smooth",block:"center"});let i=t.state.facet(Wn);if(i[a])return window.dispatchEvent(new CustomEvent("cell_focus",{detail:{cell_id:i[a],line:0,definition_of:a}})),!0}let a=e.target.closest("[data-cell-variable]");if(a){let n=a.getAttribute("data-cell-variable"),o=Number(a.getAttribute("data-cell-variable-from")),r=Number(a.getAttribute("data-cell-variable-to"));return null!=n&&null!=o&&null!=r&&(!(!$e.has_ctrl_or_cmd_pressed(e)&&!t.state.readOnly)&&(e.preventDefault(),t.dispatch({scrollIntoView:!0,selection:{anchor:o,head:r}}),t.focus(),!0))}}}}});St=r("hiQgq");r("9Ta4i");const Kn=(St=r("hiQgq")).htmlLanguage.parser,Zn=St.markdownLanguage.parser.configure(St.parseCode({htmlParser:Kn})),Vn=St.PostgreSQL.language.parser,Qn=St.sql({dialect:St.PostgreSQL}),Xn=St.pythonLanguage.parser,Yn=["md","mermaid","cm","markdown","mdx","mdl","markdownliteral"].flatMap((e=>[e,`@${e}`])),Jn=new Set(["TripleString","String","CommandString","TripleStringWithoutInterpolation","StringWithoutInterpolation","CommandStringWithoutInterpolation"]),eo=St.parseMixed(((e,t)=>{var n,o,a;if(!Jn.has(e.type.name))return null;const r="TripleString"===e.name||"TripleStringWithoutInterpolation"===e.name?3:1,i=e.from+r,s=Math.min(e.to-r,t.length);if(i>=s)return null;const l=(null===(n=e.node)||void 0===n?void 0:n.prevSibling)||(null===(o=e.node)||void 0===o||null===(a=o.parent)||void 0===a?void 0:a.prevSibling);if(null==l||"MacroIdentifier"!==l.name&&"Prefix"!==l.name)return null;const c="MacroIdentifier"===l.name,d=t.read(l.from,l.to);let u=null;if("@htl"===d||"html"===d)u=Kn;else if(Yn.includes(d))u=Zn;else if("@javascript"===d||"@js"===d||"js"===d||"javascript"===d)u=St.javascriptLanguage.parser;else if("py"===d||"pyr"===d||"python"===d||"@python"===d)u=Xn;else{if("sql"!==d)return null;u=Vn}let p=[];if(null!=e.node.firstChild){let t=i,n=e.node.firstChild.cursor();do{t!==n.from&&p.push({from:t,to:n.from}),t=n.to}while(n.nextSibling());te.flatMap((({from:e,to:n})=>{const o=t.read(e,n),a=[];let r=e;for(let{index:t}of o.matchAll(/\\\$/g)){let n=e+t;r!==n&&a.push({from:r,to:n}),r=n+1}return r!==n&&a.push({from:r,to:n}),a})))(p,t)),[...Yn].includes(d)?{parser:u,overlay:[{from:i,to:s}]}:{parser:u,overlay:p}})),to=e=>{const t=St.julia_andrey(e);return t.language.parser=t.language.parser.configure({wrap:eo}),t};St=r("hiQgq"),St=r("hiQgq"),ce=r("9Ta4i");r("2P6PH");St=r("hiQgq"),ve=r("aN0pg"),i=r("cNaMA"),ve=r("aN0pg"),i=r("cNaMA");var no=r("fUfdR");ve=r("aN0pg");let oo=({focus_on_open:e,desired_doc_query:t,on_update_doc_query:n,notebook:o,sanitize_html:a=!0})=>{let r=i.useContext(ye),s=i.useRef(null),[l,c]=i.useState({shown_query:null,searched_query:null,body:'

Welcome to the Live docs! Keep this little window open while you work on the notebook, and you will get documentation of everything you type!

You can also type a query above.


Still stuck? Here are some tips.

',loading:!1}),d=e=>c(le((t=>e(t))));i.useEffect((()=>{l.loading||(null==t||/[^\s]/.test(t))&&l.searched_query!==t&&u(t)}),[t,l.loading,l.searched_query]),i.useLayoutEffect((()=>{e&&s.current&&(s.current.focus({preventScroll:!0}),s.current.select())}),[e,s.current]);let u=e=>{d((t=>{t.loading=!0,t.searched_query=e})),Promise.race([no.default.Promises.delay(2e3,!1),r.send("docs",{query:e.replace(/^\?/,"")},{notebook_id:o.notebook_id}).then((t=>"⌛"!==t.message.status&&("👍"===t.message.status?(d((n=>{n.shown_query=e,n.body=t.message.doc})),!0):void 0)))]).then((()=>{d((e=>{e.loading=!1}))}))},p=i.useMemo((()=>i.html`<${Os} body=${ro(l.body)} sanitize_html=${a} sanitize_html_message=${!1} />`),[l.body,a]),m=!1===l.loading&&""!==l.searched_query&&l.searched_query!==l.shown_query;return i.html` +
+ n(e.target.value)} + value=${t} + type="search" + > + +
+
null!=e&&ao(e,n)}> +

${l.shown_query}

+ ${p} +
+ `};const ao=(e,t)=>{for(let t of e.querySelectorAll("code:not([class])"))Ts(t,"julia");for(let n of e.querySelectorAll("a")){const e=n.getAttribute("href");if(null!=e&&e.startsWith("@ref")){const o=e.length>4?e.substr(5):n.textContent;n.onclick=e=>{t(o),e.preventDefault()}}}},ro=e=>e.replace(/Main\.var"workspace\#\d+"\./g,"").replace(/Main\.workspace\#\d+\./g,"").replace(/ in Main\.var"workspace\#\d+"/g,"").replace(/ in Main\.workspace\#\d+/g,"").replace(/#==#[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}\:\d+/g,"");i=r("cNaMA"),ve=r("aN0pg"),ce=r("9Ta4i"),i=r("cNaMA");r("kjWx8");var io=r("1gqBQ");const so=({runtime:e,running:t,queued:n,code_differs:o,on_run:a,on_interrupt:r,set_cell_disabled:s,depends_on_disabled_cells:l,running_disabled:c,on_jump:d})=>{const u=a,p=co(t),m=null==p?null:1e6*p,g=(i.useContext(ye),t||n?"interrupt":c?"save":l&&!o?"jump":"run"),h={on_interrupt:r,on_save:u,on_jump:d,on_run:a};return i.html` + + + ${lo(t?m??e:e)} + + `},lo=e=>{if(null==e)return"---";let t=e;const n=["n","μ","m",""];let o=0;for(;o=1e3;)o+=1,t/=1e3;return t.toFixed(e<100||t>=100?0:1)+" "+n[o]+"s"},co=e=>{const[t,n]=i.useState(0),[o,a]=i.useState(0);return i.useEffect((()=>{let t;if(e){const e=+new Date;a(e),n(e),t=setInterval((()=>n(+new Date)),50)}return()=>{t&&clearInterval(t)}}),[e]),e?t-o:void 0},uo=(e,t=5)=>{const[n,o]=i.useState(e),a=i.useMemo((()=>ce.default.debounce(o,1e3*t)),[o]);return i.useEffect((()=>(e?(o(!0),a.cancel()):a(!1),()=>{})),[e]),n};ve=r("aN0pg"),i=r("cNaMA");const po=({total:e,done:t,busy:n})=>(e=Math.max(1,e),i.html` +
=8&&e<48,big:e>=48})} + data-total=${e} + > + ${[...Array(e)].map(((e,o)=>i.html`
=t&&o
`))} +
+ `);var mo=AnsiUp=window.AnsiUp;i=r("cNaMA");const go=({value:e})=>{const t=i.useRef(null),n=i.useRef(Date.now());return i.useEffect((()=>{if(!t.current)return;t.current.style.cssText=`--animation-delay: -${(Date.now()-n.current)%1e3}ms`,t.current.innerHTML=(new mo).ansi_to_html(e).replaceAll("◐",'');const o=t.current.parentElement;o&&(o.scrollTop=1e5)}),[t.current,e]),e?i.html`
`:null};i=r("cNaMA"),ve=r("aN0pg"),io=r("1gqBQ");let ho=({status:e})=>{const t=Object.values(e.subtasks).every($o),[n,o]=i.useState(!1);i.useEffect((()=>{if(n&&t){console.log("all done");let t=null,n=setTimeout((()=>{o(!1);let n=No(e);t=new Notification("Pluto: notebook ready",{tag:"notebook ready",body:`✓ All ${n} steps completed`,lang:"en-US",dir:"ltr",icon:Mc}),t.onclick=e=>{parent.focus(),window.focus(),null==t||t.close()}}),3e3);const a=()=>{"visible"===document.visibilityState&&(null==t||t.close())};return document.addEventListener("visibilitychange",a),document.body.addEventListener("click",a),()=>{null==t||t.close(),clearTimeout(n),document.removeEventListener("visibilitychange",a),document.body.removeEventListener("click",a)}}}),[t]);const a=Bo(!t,2500)||n;return i.html` +
+ +
+ `},fo=({status:e,notebook:t,backend_launch_logs:n,my_clock_is_ahead_by:o})=>i.html` +
+ <${wo} + status_tree=${e} + path=${[]} + my_clock_is_ahead_by=${o} + nbpkg=${t.nbpkg} + backend_launch_logs=${n} + /> + <${ho} status=${e} /> +
+ `;const _o="\nworkspace\n\ncreate_process\ninit_process\n\n\npkg\n\nanalysis\nwaiting_for_others\nresolve\nremove\nadd\ninstantiate\ninstantiate1\ninstantiate2\ninstantiate3\nprecompile\n\nrun\n\n\nsaving\n\n".split("\n").map((e=>e.trim())).filter((e=>e.length>0)),bo=["saving"],vo={workspace:"Workspace setup",create_process:"Start Julia",init_process:"Initialize",pkg:"Package management",instantiate1:"instantiate",instantiate2:"instantiate",instantiate3:"instantiate",run:"Evaluating cells",evaluate:"Running code",registry_update:"Updating package registry",waiting_for_others:"Waiting for other notebooks to finish package operations",backend_launch:"Connecting to backend",backend_requesting:"Requesting a worker",backend_created:"Starting Pluto server",backend_responded:"Opening notebook file",backend_notebook_running:"Switching to live editing"},yo=e=>1e9*e,wo=({status_tree:e,path:t,my_clock_is_ahead_by:n,nbpkg:o,backend_launch_logs:a})=>{var r;if(null==e)return null;const s=t.reduce(((e,t)=>e.subtasks[t]),e);if(!s)return null;const[l,c]=i.useState(t.length<1),d=t.length>0&&xo(s),u=d&&$o(s),p=d&&!u,m=s.started_at??0,g=s.finished_at??0,h=(co(p)??0)/1e3,f=Date.now()/1e3,_=Math.max(h,f-m-("local"===s.timing?0:n));i.useEffect((()=>{if(p){let e=setTimeout((()=>{c(!0)}),Math.max(100,500-200*t.length));return()=>clearTimeout(e)}}),[p]),Mo((([e])=>{if(!e&&u){let e=setTimeout((()=>{c(!1)}),1800-200*t.length);return()=>clearTimeout(e)}}),[u]);const b=l?Object.values(s.subtasks).every((e=>ko(e.name)))&&Object.values(s.subtasks).length>0?(()=>{let e=Object.values(s.subtasks),t=e.reduce(((e,t)=>e+($o(t)?1:0)),0),n=e.reduce(((e,t)=>e+(So(t)?1:0)),0),o=e.length;return i.html`<${po} busy=${n} done=${t} total=${o} />`})():Object.entries(s.subtasks).sort(((e,t)=>Eo(e[1],t[1]))).map((([r,s])=>bo.includes(r)?null:i.html`<${wo} + key=${r} + status_tree=${e} + my_clock_is_ahead_by=${n} + path=${[...t,r]} + nbpkg=${o} + backend_launch_logs=${a} + />`)):null;let v=null;if(d){let e=Co(s),t=No(s);e>1&&(v=i.html`${" "}(${t}/${e})`)}const y=Object.values(s.subtasks).length>0;return 0===t.length?b:i.html` +
{c(!l)}} + > + + ${(e=>{const t=vo[e];return null!=t?t:ko(e)?`Step ${e}`:e})(s.name)}${v} + ${u?lo(yo(g-m)):p?lo(yo(_)):null} +
+ ${b} + ${l&&"pkg"===s.name?i.html`<${go} value=${null==o||null===(r=o.terminal_outputs)||void 0===r?void 0:r.nbpkg_sync} />`:l&&"backend_launch"===s.name?i.html`<${go} value=${a} />`:void 0} +
`},ko=e=>/^\d+$/.test(e),Eo=(e,t)=>{const n=_o.indexOf(e.name),o=_o.indexOf(t.name);if(-1===n&&-1===o)return null!=e.started_at||null!=t.started_at?(e.started_at??1/0)-(t.started_at??1/0):ko(e.name)&&ko(t.name)?parseInt(e.name)-parseInt(t.name):e.name.localeCompare(t.name);{let e=e=>-1===e?1/0:e;return e(n)-e(o)}},$o=e=>null!=e.finished_at,xo=e=>null!=e.started_at,So=e=>xo(e)&&!$o(e),No=e=>Object.values(e.subtasks).reduce(((e,t)=>e+No(t)),$o(e)?1:0),Co=e=>Object.values(e.subtasks).reduce(((e,t)=>e+Co(t)),1),Ao=(e,t,n,o={})=>({name:e,subtasks:o,timing:"local",started_at:i.useMemo((()=>t||n?Date.now()/1e3:null),[t||n]),finished_at:i.useMemo((()=>n?Date.now()/1e3:null),[n])}),Mo=(e,t)=>{const n=i.useRef(t);i.useEffect((()=>{let o=e(n.current);return n.current=t,o}),t)};i=r("cNaMA");de=r("4zMEb");var Oo=r("41Mhf");const To={wait_for_user:0,requesting:.4,created:.6,responded:.7,notebook_running:.9,ready:1},Ro=e=>e.endsWith("/")?e:e+"/",Do=e=>fetch(`https://stats.plutojl.org/count?p=/${e}&s=${screen.width},${screen.height},${devicePixelRatio}#skip_sw`,{cache:"no-cache"}).catch((()=>{})),Lo=async({setStatePromise:e,connect:t,launch_params:n})=>{try{Do("binder-start"),await e(le((e=>{e.backend_launch_phase=To.requesting,e.disable_ui=!1,e.notebook.status_tree=null})));const{binder_session_url:o,binder_session_token:a}=await((e,{on_log:t})=>new Promise(((n,o)=>{console.log("Starting binder connection to",e);try{let a=new EventSource(e);a.onerror=t=>{console.error("Binder error: Lost connection to "+e,t),a.close(),o(t)};let r=null,i="",s=e=>{console.log("Binder: ",e,` at ${(new Date).toLocaleTimeString()}`),i=`${i}${e}\n`,t(i)};a.onmessage=t=>{let i=JSON.parse(t.data);switch(i.phase&&i.phase!==r&&(r=i.phase.toLowerCase(),s(`\n\n⏱️ Binder subphase: ${r}\n`)),i.message&&s(i.message.replace("] ","]\n")),i.phase){case"failed":console.error("Binder error: Failed to build",e,i),a.close(),o(new Error(i));break;case"ready":a.close(),n({binder_session_url:Ro(i.url)+"pluto/",binder_session_token:i.token})}}}catch(e){console.error(e),o("Failed to open event source the mybinder.org. This probably means that the URL is invalid.")}})))(n.binder_url.replace("mybinder.org/v2/","mybinder.org/build/"),{on_log:t=>e(le((e=>{e.backend_launch_logs=t})))}),r=e=>Oo.with_query_params(e,{token:a});console.log("Binder URL:",r(o)),window.shutdown_binder=()=>{fetch(r(new URL("../api/shutdown",o)),{method:"POST"})},await e(le((e=>{e.backend_launch_phase=To.created,e.binder_session_url=o,e.binder_session_token=a}))),await fetch(r(o)),await e(le((e=>{e.backend_launch_phase=To.responded})));let i=async()=>{const e=r(Oo.with_query_params(new URL("notebookupload",o),{name:new URLSearchParams(window.location.search).get("name"),execution_allowed:"true"}));return console.log("downloading locally and uploading ",e,n.notebookfile),fetch(e,{method:"POST",body:await(await fetch(new Request(n.notebookfile,{integrity:n.notebookfile_integrity}))).arrayBuffer()})},s=async(e,t)=>{const n=Oo.with_query_params(new URL("open",o),{[e]:t});return console.log(`open ${e}:`,n),fetch(r(n),{method:"POST"})},l=(e,t)=>()=>s(e,t),c=n.notebookfile.startsWith("data:")?[i]:[l("path",n.notebookfile),l("url",new URL(n.notebookfile,window.location.href).href),i],d=new Response;for(let e of c)if(d=await e(),d.ok)break;if(!d.ok){let e=await d.blob();return void(window.location.href=URL.createObjectURL(e))}const u=await d.text(),p=r(Oo.with_query_params(new URL("edit",o),{id:u}));console.info("notebook_id:",u),await e(le((e=>{e.notebook.notebook_id=u,e.backend_launch_phase=To.notebook_running,e.refresh_target=p}))),console.log("Connecting WebSocket");const m=t(r(new URL("channels",de.ws_address_from_base(o))));await de.timeout_promise(m,2e4).catch((e=>{console.error("Failed to establish connection within 20 seconds. Navigating to the edit URL directly.",e),window.parent.location.href=p}))}catch(e){console.error("Failed to initialize binder!",e),alert("Something went wrong! 😮\n\nWe failed to initialize the binder connection. Please try again with a different browser, or come back later.")}};var Io=r("hrGZZ");const Po=e=>window.dispatchEvent(new CustomEvent("open_bottom_right_panel",{detail:e}));let jo=({desired_doc_query:e,on_update_doc_query:t,notebook:n,connected:o,backend_launch_phase:a,backend_launch_logs:r,sanitize_html:s=!0})=>{let l=i.useRef();const c=i.useRef(!1),[d,u]=i.useState(null),p=null==d;Io.useEventListener(window,"open_bottom_right_panel",(e=>{console.log(e.detail),c.current=!1,u(e.detail),"none"===window.getComputedStyle(l.current).display&&alert("This browser window is too small to show docs.\n\nMake the window bigger, or try zooming out.")}),[u]);const m=Uo(n,a),[g,h]=i.useMemo((()=>null==m?[0,0]:[Co(m)-1,No(m)-($o(m)?1:0)]),[m]),f=h{let t=i.useContext(ye);const[n,o]=i.useState(0);return i.useEffect((()=>{if(e){let e=async()=>{let e=()=>t.send("current_time").then((e=>e.message.time)),n=()=>Date.now()/1e3;for(let t=0;t<16;t++)await e();let a=await n(),r=await e(),i=await e(),s=(a+await n())/2-(r+i)/2;isNaN(s)||o(s)};e();let n=setInterval(e,6e4);return()=>clearInterval(n)}}),[e]),n})({connected:o});return i.html` + + `};const Bo=(e,t)=>{const[n,o]=i.useState(!1);return i.useEffect((()=>{if(e){let e=setTimeout((()=>{o(!0)}),t);return()=>clearTimeout(e)}o(!1)}),[e]),n},Uo=(e,t)=>{var n;const o=Fo(t);return null==t?e.status_tree:{name:"notebook",started_at:0,finished_at:null,subtasks:{...null===(n=e.status_tree)||void 0===n?void 0:n.subtasks,backend_launch:o}}},Fo=e=>{let t=e??-1;const n=Object.fromEntries(["requesting","created","responded","notebook_running"].map((e=>{let n=To[e],o=`backend_${e}`;return[o,Ao(o,t>=n,t>n)]})));return Ao("backend_launch",null!=e&&e>To.wait_for_user,e===To.ready,n)};let{autocompletion:zo,completionKeymap:qo,completionStatus:Ho,acceptCompletion:Wo}=St.autocomplete;const Go=(e,t)=>e.state.field(Ko).active.find((e=>e.source==t));let Ko=zo()[0];const Zo=St.StateEffect.define(),Vo=St.StateField.define({create:()=>!1,update(e,t){var n,o;for(let e of t.effects)if(e.is(Zo))return!0;return(null==(null===(n=t.startState.field(Ko,!1))||void 0===n?void 0:n.open)||null!=(null===(o=t.state.field(Ko,!1))||void 0===o?void 0:o.open))&&((null==t.startState.field(Ko,!1).open||t.startState.field(Ko,!1)===t.state.field(Ko,!1))&&e)}});const Qo=[{key:"Tab",run:e=>{if(Wo(e))return!0;if(e.state.readOnly)return!1;let t=e.state.selection.main,n=e.state.sliceDoc(t.from-1,t.from);return!!t.empty&&(!/^(\t| |\n|\=|\)|)$/.test(n)&&(e.dispatch({effects:Zo.of(10)}),St.autocomplete.startCompletion(e)))}},{key:"?",run:e=>{var t;return!!((null===(t=e.state.field(Ko,!1))||void 0===t?void 0:t.open)??!1)&&(Po("docs"),!0)}},{key:".",run:e=>(Wo(e),!1)}];let Xo=e=>St.EditorView.updateListener.of((t=>{let n=t.state.field(Ko,!1),o=null==n?void 0:n.open;if(null==o)return;let a=o.options[o.selected],r=a.completion.apply??a.completion.label;if("string"!=typeof r)return;const i=Go(t.view,a.source);if(!(null==i?void 0:i.from))return;const s=i.from,l=Math.min(i.to,t.state.doc.length);let c=t.state.update({changes:{from:s,to:l,insert:r}}),d=zn(c.state);null!=d&&e(d)}));let Yo=e=>async t=>{let n=t.state.sliceDoc(0,t.pos),o=await e({text:n});if(!o)return null;let{start:a,stop:r,results:i}=o,s=!function(e){const t=St.syntaxTree(e.state).resolve(e.pos);return null!=t&&("TripleString"===t.name||"String"===t.name)}(t);return{from:a,to:r,filter:!1,options:i.map((([e,t,n,o,a,r])=>({label:e,apply:r&&s?r:e,detail:r??void 0})))}},Jo=e=>/^[@a-zA-Z_][a-zA-Z0-9!_]*\"?$/.test(e)?null:":"===e?`:(${e})`:`:${e}`;const ea=function*(e,t,n){let o=0;for(let[a,{valid_from:r}]of e.entries())!t.has(a)&&r{const t=Yo(e),n=(e=>async t=>{let n=t.state.sliceDoc(0,t.pos),o=(e=>e.matchBefore(/\.\:[^\s"'`()\[\].]*/))(t);o&&(n=n.slice(0,o.from+1)+n.slice(o.from+2));let a=await e({text:n});if(!a)return null;let{start:r,stop:i,results:s}=a;o&&(i+=1);const l=t.state.field(Pn).definitions,c=new Set;let d="."===n.slice(0,r).slice(-1);return{from:r,to:i,options:[...s.map((([e,t,n,o,a],r)=>{let i=d?Jo(e)??e:e;return l.has(e)&&c.add(e),{label:e,apply:i,type:ve.cl({c_notexported:!n,[`c_${t}`]:null!=t,[`completion_${a}`]:null!=a,c_from_notebook:o})??void 0,boost:50-r/s.length}})),...s.filter((([e])=>d&&null!=Jo(e))).map((([e,t,n],o)=>{let a=Jo(e)??"";return{label:a,apply:a,type:(n?"":"c_notexported ")+(null==t?"":"c_"+t),boost:-99-o/s.length,is_not_exported:!n}})),...Array.from(ea(l,c,t.pos))]}})(e);return e=>{let o=(e=>e.matchBefore(/\\[^\s"'.`]*/))(e)||(e=>e.matchBefore(/~\//))(e);return null===o?n(e):t(e)}},na=async e=>{const t=await St.autocomplete.completeAnyWord(e);return null===t?null:{from:t.from,options:t.options.map((({label:e},t)=>({label:e,apply:e,type:void 0,boost:0-t})))}};let oa=({request_autocomplete:e,on_update_doc_query:t})=>{let n=null,o=null;return[Vo,zo({activateOnTyping:!1,override:[ta((async t=>{if(ce.default.isEqual(t,n)){let e=await o;if(null!=e)return e}return n=t,o=e(t),await o})),na],defaultKeymap:!1,maxRenderedOptions:512,optionClass:e=>e.type??""}),St.EditorView.updateListener.of((e=>{let t=e.state.field(Ko,!1),n=e.state.field(Vo,!1);null!=(null==t?void 0:t.open)&&n&&"active"===Ho(e.state)&&1===t.open.options.length&&((e,t)=>{let n=t.completion.apply||t.completion.label,o=Go(e,t.source);(null==o?void 0:o.from)&&("string"==typeof n?e.dispatch({changes:{from:o.from,to:o.to,insert:n},selection:{anchor:o.from+n.length},userEvent:"input.complete"}):n(e,t.completion,o.from,o.to))})(e.view,t.open.options[0])})),St.EditorView.updateListener.of((e=>{for(let n of e.transactions){var t;let o=n.annotation(St.autocomplete.pickedCompletion);o&&"string"==typeof o.apply&&o.apply.endsWith("/")&&(null===(t=o.type)||void 0===t?void 0:t.match(/(^| )completion_path( |$)/))&&St.autocomplete.startCompletion(e.view)}})),Xo(t),St.keymap.of(Qo),St.keymap.of(qo)]};ce=r("9Ta4i"),St=r("hiQgq"),io=r("1gqBQ"),ce=r("9Ta4i"),i=r("cNaMA");const aa=e=>null==e?[null]:Object.entries(e).flat(),ra=({nbpkg:e,package_name:t,available_versions:n,is_disable_pkg:o})=>{let a="error",r="error",s=i.html`error`,l=!1;const c=(null==e?void 0:e.installed_versions[t])??null,d=(null==e?void 0:e.waiting_for_permission)??!1,u=!d&&(((null==e?void 0:e.busy_packages)??[]).includes(t)||!((null==e?void 0:e.instantiated)??1));if(o){const e=t;a="disable_pkg",r=`${e} disables Pluto's built-in package manager.`,s=i.html`${e} disables Pluto's built-in package manager.`}else null!=c||ce.default.isEqual(n,["stdlib"])?null==c||"stdlib"===c?(a="installed",r=`${t} is part of Julia's pre-installed 'standard library'.`,s=i.html`${t} is part of Julia's pre-installed standard library.`):d?(a="will_be_installed",r=`${t} (v${ce.default.last(n)}) will be installed when you run this notebook.`,s=i.html`
${t} v${ce.default.last(n)}
+ will be installed when you run this notebook.`):u?(a="busy",r=`${t} (v${c}) is installing...`,s=i.html`
${t} v${c}
+ is installing...`):(a="installed",r=`${t} (v${c}) is installed in the notebook.`,s=i.html`
${t} v${c}
+ is installed in the notebook.`,m=n,l=!("stdlib"===(p=c)||!ce.default.isArray(m))&&ce.default.last(m)!==p):null!=n&&ce.default.isArray(n)&&(0===n.length?(a="not_found",r=`The package "${t}" could not be found in the registry. Did you make a typo?`,s=i.html`The package "${t}" could not be found in the registry. +
Did you make a typo?
`):(a="will_be_installed",r=`${t} (v${ce.default.last(n)}) will be installed in the notebook when you run this cell.`,s=i.html`
${t} v${ce.default.last(n)}
+ will be installed in the notebook when you run this cell.`));var p,m;return{status:a,hint:s,hint_raw:r,available_versions:n,chosen_version:c,busy:u,offer_update:l}},ia=({package_name:e,pluto_actions:t,notebook_id:n,nbpkg:o})=>{const[a,r]=i.useState(null);i.useEffect((()=>{(t.get_avaible_versions({package_name:e,notebook_id:n})??Promise.resolve([])).then((e=>{r(e)}))}),[e]);const{status:s,hint_raw:l}=ra({nbpkg:o,package_name:e,is_disable_pkg:!1,available_versions:a});return i.html` + + + + `},sa=({package_name:e})=>{const{hint_raw:t}=ra({nbpkg:null,package_name:e,is_disable_pkg:!0,available_versions:null});return i.html` + + + + `};i=r("cNaMA"),i=r("cNaMA"),St=r("hiQgq");class la extends St.WidgetType{constructor(e){super(),this.element=e}eq(e){return!1}toDOM(){let e=document.createElement("span");return i.render(this.element,e),e}updateDOM(e){return i.render(this.element,e),!0}}const ca=["Pkg.activate","Pkg.API.activate","Pkg.develop","Pkg.API.develop","Pkg.add","Pkg.API.add","quickactivate","@quickactivate"];function da(e,{pluto_actions:t,notebook_id:n,nbpkg:o}){let a=new Set,r=e.visibleRanges.flatMap((({from:r,to:s})=>{let l=function({doc:e,tree:t,from:n,to:o}){let a=0,r=[];return function({tree:e,enter:t,leave:n,from:o=0,to:a=e.length}){let r=e.cursor();for(;;){let e=!1;if(r.from<=a&&r.to>=o&&(r.type.isAnonymous||!1!==t(r))){if(r.firstChild())continue;r.type.isAnonymous||(e=!0)}for(;e&&n&&n(r),e=r.type.isAnonymous,!r.nextSibling();){if(!r.parent())return;e=!0}}}({tree:t,from:n,to:o,enter:t=>{if("QuoteExpression"!==t.name&&"QuoteStatement"!==t.name||a++,"InterpolationExpression"===t.name&&a--,0!==a)return;if("CallExpression"===t.name||"MacroExpression"===t.name){let n=t.node.firstChild,o=e.sliceString(n.from,n.to);return void(ca.includes(o)&&r.push({type:"package_disabler",name:o,from:t.to,to:t.to}))}let n=hn((e=>on`import A, ${e}`)),o=e=>{let t=null;return(t=n(rn`${un.as("package")}.${un.any}`).match(e))?o(t.package):(t=n(rn`.${un.maybe(un.any)}`).match(e))?null:(t=n(rn`${un.Identifier}`).match(e))?e:void console.warn("Unknown nested import specifier: "+e.toString())},i=null;if((i=sn(rn`import ${un.as("specifier")}: ${un.many()}`).match(t))??(i=sn(rn`import ${un.as("specifier")}, ${un.many("specifiers")}`).match(t))??(i=sn(rn`using ${un.as("specifier")}: ${un.many()}`).match(t))??(i=sn(rn`using ${un.as("specifier")}, ${un.many("specifiers")}`).match(t))){let{specifier:a,specifiers:s=[]}=i;a&&(s=[{node:a},...s]);for(let{node:t}of s){t=mn(t);let a=null;if(a=n(rn`${un.as("package")} as ${un.maybe(un.any)}`).match(t)){let t=o(a.package);t&&r.push({type:"package",name:e.sliceString(t.from,t.to),from:t.to,to:t.to})}else if(a=n(rn`${un.as("package")}.${un.any}`).match(t)){let t=o(a.package);t&&r.push({type:"package",name:e.sliceString(t.from,t.to),from:t.to,to:t.to})}else if(a=n(rn`.${un.as("scoped")}`).match(t));else if(a=n(rn`${un.as("package")}`).match(t)){let t=o(a.package);t&&r.push({type:"package",name:e.sliceString(t.from,t.to),from:t.to,to:t.to})}else console.warn("Unknown import specifier: "+t.toString())}if(i=null,i=sn(rn`using ${un.as("specifier")}, ${un.many("specifiers")}`).match(t)){let{specifier:t}=i;t&&("\n"!==e.sliceString(t.to,t.to+1)&&""!==e.sliceString(t.to,t.to+1)||r.push({type:"implicit_using",name:e.sliceString(t.from,t.to),from:t.to,to:t.to}))}return!1}if("ImportStatement"===t.name)throw new Error("What")},leave:e=>{"QuoteExpression"!==e.name&&"QuoteStatement"!==e.name||a--,"InterpolationExpression"===e.name&&a++}}),r}({doc:e.state.doc,tree:St.syntaxTree(e.state),from:r,to:s});return l.map((e=>{if("package"===e.type){let{name:r}=e;if("Base"!==r&&"Core"!==r&&!a.has(r)){return a.add(r),St.Decoration.widget({widget:new la(i.html` + <${ia} + key=${r} + package_name=${r} + pluto_actions=${t} + notebook_id=${n} + nbpkg=${o} + /> + `),side:1}).range(e.to)}}else{if("package_disabler"===e.type){return St.Decoration.widget({widget:new la(i.html` <${sa} package_name=${e.name} /> `),side:1}).range(e.to)}if("implicit_using"===e.type&&"HypertextLiteral"===e.name){return St.Decoration.widget({widget:new la(i.html` +
+ : @htl, @htl_str +
+
`),side:1}).range(e.to)}}}))})).filter((e=>null!=e));return St.Decoration.set(r,!0)}const ua=St.Facet.define({combine:e=>e[0],compare:ce.default.isEqual}),pa=({pluto_actions:e,notebook_id_ref:t})=>St.ViewPlugin.fromClass(class{update_decos(n){const o=da(n,{pluto_actions:e,notebook_id:t.current,nbpkg:n.state.facet(ua)});this.decorations=o}constructor(e){this.update_decos(e)}update(e){(e.docChanged||e.viewportChanged||e.state.facet(ua)!==e.startState.facet(ua))&&this.update_decos(e.view)}},{decorations:e=>e.decorations});ce=r("9Ta4i"),St=r("hiQgq"),i=r("cNaMA");const ma=St.StateEffect.define({}),ga=St.StateField.define({create:()=>({defaultCharacterWidth:null,measuredSpaceWidth:null,measuredTabWidth:null}),update(e,t){for(let e of t.effects)if(e.is(ma))return e.value;return e}});let ha=St.EditorView.updateListener.of((e=>{let t=e.view.defaultCharacterWidth,{defaultCharacterWidth:n,measuredSpaceWidth:o}=e.view.state.field(ga,!1);if(n!==t){let n,o;e.view.dispatch({effects:[ma.of({defaultCharacterWidth:t,measuredSpaceWidth:n,measuredTabWidth:o})]})}})),fa=St.StateField.define({create:()=>St.Decoration.none,update(e,t){let n=t.startState.field(ga,!1),o=n.measuredSpaceWidth??n.defaultCharacterWidth,{measuredSpaceWidth:a,defaultCharacterWidth:r}=t.state.field(ga,!1),s=a??r;if(null==s)return St.Decoration.none;if(!t.docChanged&&e!==St.Decoration.none&&o===s)return e;let l=[];for(let e of ce.default.range(0,t.state.doc.lines)){let n=t.state.doc.line(e+1);if(0===n.length)continue;let o=0;for(let e of n.text){if("\t"!==e)break;o++}const a=Math.min(o,12),r=4*a*s,c=St.Decoration.line({attributes:{style:`--indented: ${r}px;`,class:"awesome-wrapping-plugin-the-line"}});if(l.push(c.range(n.from,n.from)),0!==a&&l.push(St.Decoration.mark({class:"awesome-wrapping-plugin-the-tabs"}).range(n.from,n.from+a)),o>a)for(let e of ce.default.range(a,o))l.push(St.Decoration.replace({widget:new la(i.html``),block:!1}).range(n.from+e,n.from+e+1))}return St.Decoration.set(l)},provide:e=>St.EditorView.decorations.from(e)}),_a=St.Decoration.mark({class:"indentation-so-dont-break"}),ba=(St.StateField.define({create:()=>St.Decoration.none,update(e,t){let n=[];for(const e of t.newDoc)for(const t of e.matchAll(/[^ \t]+([ \t]|$)+/g))null!=t.index&&0!==t.index&&n.push(_a.range(0+t.index,0+t.index+t[0].length));return St.Decoration.set(n,!0)},provide:e=>St.EditorView.decorations.from(e)}),[ga,ha,fa]);let va=(St=r("hiQgq")).autocomplete.autocompletion()[0],ya=St.EditorView.domEventHandlers({keydown:(e,t)=>{var n;let o=t.state.selection.main;if(!o.empty)return!1;if(!e.repeat)return!1;if("Backspace"===e.key&&0===t.state.doc.length)return!0;if("Delete"===e.key&&0===t.state.doc.length)return!0;let a=(null===(n=t.state.field(va,!1))||void 0===n?void 0:n.open)??!1;return"ArrowUp"!==e.key||a?"ArrowDown"!==e.key||a?"ArrowLeft"===e.key&&e.repeat?!!t.moveByChar(o,!1).eq(o):"ArrowRight"===e.key?!!t.moveByChar(o,!0).eq(o):void 0:!!t.moveVertically(t.state.selection.main,!0).eq(o):!!t.moveVertically(t.state.selection.main,!1).eq(o)}}),wa=({focus_on_neighbor:e})=>(({focus_on_neighbor:e})=>St.keymap.of([{key:"PageUp",run:()=>(e({cell_delta:-1,line:0,character:0}),!0)},{key:"PageDown",run:()=>(e({cell_delta:1,line:0,character:0}),!0)},{key:"ArrowLeft",run:t=>{let n=t.state.selection.main;return!!n.empty&&!!t.moveByChar(n,!1).eq(n)&&(e({cell_delta:-1,line:1/0,character:1/0}),!0)}},{key:"ArrowUp",run:t=>{let n=t.state.selection.main;return!!n.empty&&!!t.moveVertically(n,!1).eq(n)&&(e({cell_delta:-1,line:1/0,character:1/0}),!0)}},{key:"ArrowRight",run:t=>{let n=t.state.selection.main;return!!n.empty&&!!t.moveByChar(n,!0).eq(n)&&(e({cell_delta:1,line:0,character:0}),!0)}},{key:"ArrowDown",run:t=>{let n=t.state.selection.main;return!!n.empty&&!!t.moveVertically(n,!0).eq(n)&&(e({cell_delta:1,line:0,character:0}),!0)}}]))({focus_on_neighbor:e});St=r("hiQgq");let ka=({pluto_actions:e,cell_id:t})=>St.EditorView.domEventHandlers({paste:(n,o)=>{if(!o.hasFocus)return console.log("CodeMirror, why are you registring this paste? You aren't focused!"),!0;n.stopPropagation();const a=n.clipboardData.getData("text/plain"),r=_e(a);return null!=r&&(0===o.state.selection.main.from&&o.state.selection.main.to===o.state.doc.length?(e.add_deserialized_cells(a,t,r),e.confirm_delete_multiple("This Should Never Be Visible",[t]),!0):(o.state.selection.main.to===o.state.doc.length||0===o.state.selection.main.from)&&(e.add_deserialized_cells(a,t,r),!0))}});St=r("hiQgq"),St=r("hiQgq"),St=r("hiQgq");function Ea(e){var t,n,o;let a=e.parent.firstChild,r=e.parent.lastChild;if(!("end"===r.name))return null;let i=null===(t=e.parent.getChild("CatchClause"))||void 0===t?void 0:t.firstChild,s=null===(n=e.parent.getChild("TryElseClause"))||void 0===n?void 0:n.firstChild,l=null===(o=e.parent.getChild("FinallyClause"))||void 0===o?void 0:o.firstChild;return[{from:a.from,to:a.to},i&&{from:i.from,to:i.to},s&&{from:s.from,to:s.to},l&&{from:l.from,to:l.to},{from:r.from,to:r.to}].filter((e=>null!=e))}const $a=(St=r("hiQgq")).EditorView.baseTheme({".cm-matchingBracket":{backgroundColor:"#328c8252"},".cm-nonmatchingBracket":{backgroundColor:"#bb555544"}}),xa=St.Facet.define({combine:e=>St.combineConfig(e,{afterCursor:!0,brackets:"()[]{}",maxScanDistance:1e4})}),Sa=St.Decoration.mark({class:"cm-matchingBracket"}),Na=(St.Decoration.mark({class:"cm-nonmatchingBracket"}),[St.StateField.define({create:()=>St.Decoration.none,update(e,t){if(!t.docChanged&&!t.selection)return e;let n=[],o=t.state.facet(xa);for(let e of t.state.selection.ranges){if(!e.empty)continue;let a=Aa(t.state,e.head,-1,o)||e.head>0&&Aa(t.state,e.head-1,1,o)||o.afterCursor&&(Aa(t.state,e.head,1,o)||e.headSt.EditorView.decorations.from(e)}),$a]);function Ca(e={}){return[xa.of(e),Na]}function Aa(e,t,n,o={}){let a=o.maxScanDistance||1e4,r=o.brackets||"()[]{}",i=St.syntaxTree(e),s=i.resolveInner(t,n),l=function(e){var t,n;if("end"===e.name&&(e="IfStatement"===e.parent.name?null===(t=e.parent)||void 0===t||null===(n=t.firstChild)||void 0===n?void 0:n.firstChild:e.parent.firstChild),null==e)return[];if("mutable"===e.name||"struct"===e.name){"struct"===e.name&&(e=e.parent.firstChild);let t=e.parent.getChild("struct"),n=e.parent.lastChild;return"end"===n.name&&t?[{from:e.from,to:t.to},{from:n.from,to:n.to}]:null}if("struct"===e.name){let t=e.parent.lastChild;return"end"===t.name?[{from:e.from,to:e.to},{from:t.from,to:t.to}]:null}if("quote"===e.name){let t=e.parent.lastChild;return"end"===t.name?[{from:e.from,to:e.to},{from:t.from,to:t.to}]:null}if("begin"===e.name){let t=e.parent.lastChild;return"end"===t.name?[{from:e.from,to:e.to},{from:t.from,to:t.to}]:null}if("do"===e.name){let t=e.parent.lastChild;return"end"===t.name?[{from:e.from,to:e.to},{from:t.from,to:t.to}]:null}if("for"===e.name){let t=e.parent.lastChild;return"end"===t.name?[{from:e.from,to:e.to},{from:t.from,to:t.to}]:null}if("let"===e.name){let t=e.parent.lastChild;return"end"===t.name?[{from:e.from,to:e.to},{from:t.from,to:t.to}]:null}if("macro"===e.name){let t=e.parent.lastChild;return"end"===t.name?[{from:e.from,to:e.to},{from:t.from,to:t.to}]:null}if("function"===e.name){let t=e.parent.lastChild;return"end"===t.name?[{from:e.from,to:e.to},{from:t.from,to:t.to}]:null}if("while"===e.name){let t=e.parent.lastChild;return"end"===t.name?[{from:e.from,to:e.to},{from:t.from,to:t.to}]:null}if("type"===e.name&&(e=e.parent.firstChild),"abstract"===e.name||"primitive"===e.name){let t=e.parent.lastChild,n="end"===t.name,o=e.parent.getChild("type");return n&&o?[{from:e.from,to:o.to},{from:t.from,to:t.to}]:null}if("if"===e.name||"else"===e.name||"elseif"===e.name){"if"===e.name&&(e=e.parent);let t=!1;"else"===e.name&&(e=e.parent,t=!0),"elseif"===e.name&&(e=e.parent.parent);let n=e.parent.firstChild,o=e.parent.lastChild;if("end"!==o.name)return null;if(t&&"try"===n.name)return Ea(e);let a=[];a.push({from:n.from,to:n.to});for(let t of e.parent.getChildren("ElseifClause")){let e=t.firstChild;a.push({from:e.from,to:e.to})}for(let t of e.parent.getChildren("ElseClause")){let e=t.firstChild;a.push({from:e.from,to:e.to})}return a.push({from:o.from,to:o.to}),a}if("try"===e.name||"catch"===e.name||"finally"===e.name||"else"===e.name)return"catch"===e.name&&(e=e.parent),"finally"===e.name&&(e=e.parent),"else"===e.name&&(e=e.parent),"end"===e.parent.lastChild.name?Ea(e):null;if("module"===e.name||"baremodule"===e.name){let t=e.parent.lastChild;return"end"===t.name?[{from:e.from,to:e.to},{from:t.from,to:t.to}]:null}return null}(s);return l||function(e,t,n,o,a,r,i){let s=n<0?e.sliceDoc(t-1,t):e.sliceDoc(t,t+1),l=i.indexOf(s);if(l<0||l%2==0!=n>0)return null;let c={from:n<0?t-1:t,to:n>0?t+1:t},d=e.doc.iterRange(t,n>0?e.doc.length:0),u=0;for(let e=0;!d.next().done&&e<=r;){let r=d.value;n<0&&(e+=r.length);let s=t+e*n;for(let e=n>0?0:r.length-1,t=n>0?r.length:-1;e!=t;e+=n){let t=i.indexOf(r[e]);if(!(t<0||o.resolve(s+e,1).type!=a))if(t%2==0==n>0)u++;else{if(1==u)return t>>1==l>>1?[c,{from:s+e,to:s+e+1}]:null;u--}}n>0&&(e+=r.length)}return d.done?[c]:null}(e,t,n,i,s.type,a,r)}ve=r("aN0pg");const Ma=(St=r("hiQgq")).Decoration.line({attributes:{class:"cm-highlighted-line"}}),Oa=St.Decoration.mark({attributes:{class:"cm-highlighted-range"}});const Ta=St.Facet.define({combine:e=>e[0],compare:(e,t)=>e===t}),Ra=St.Facet.define({combine:e=>e[0],compare:(e,t)=>e===t}),Da=()=>St.ViewPlugin.fromClass(class{updateDecos(e){this.decorations=function(e){let t=e.state.facet(Ta);if(null==t||null==t||t<0||t>e.state.doc.lines)return St.Decoration.set([]);let n=e.state.doc.line(t);return St.Decoration.set([Ma.range(n.from,n.from)])}(e)}constructor(e){this.decorations=St.Decoration.set([]),this.updateDecos(e)}update(e){(e.docChanged||e.state.facet(Ta)!==e.startState.facet(Ta))&&this.updateDecos(e.view)}},{decorations:e=>e.decorations}),La=()=>St.ViewPlugin.fromClass(class{updateDecos(e){this.decorations=function(e){let t=e.state.facet(Ra);if(null==t)return St.Decoration.set([]);let{from:n,to:o}=t;return n<0||n==o?St.Decoration.set([]):St.Decoration.set([Oa.range(n,o)])}(e)}constructor(e){this.decorations=St.Decoration.set([]),this.updateDecos(e)}update(e){(e.docChanged||e.state.facet(Ra)!==e.startState.facet(Ra))&&this.updateDecos(e.view)}},{decorations:e=>e.decorations});St=r("hiQgq");function Ia(e,t){return({state:n,dispatch:o})=>{if(n.readOnly)return!1;let a=e(t,n.selection.ranges,n);return!!a&&(o(n.update(a)),!0)}}const Pa=Ia(za,0),ja=(Ia(za,1),Ia(za,2),Ia(Fa,0)),Ba=(Ia(Fa,1),Ia(Fa,2),[{key:"Mod-/",run:e=>{let t=Ua(e.state);return t.line?Pa(e):!!t.block&&ja(e)}},{key:"Alt-A",run:ja}]);function Ua(e,t=e.selection.main.head){let n=e.languageDataAt("commentTokens",t);return n.length?n[0]:{}}function Fa(e,t,n){let o=t.map((e=>Ua(n,e.from).block));if(!o.every((e=>e)))return null;let a=t.map(((e,t)=>function(e,{open:t,close:n},o,a){let r,i,s=e.sliceDoc(o-50,o),l=e.sliceDoc(a,a+50),c=/\s*$/.exec(s)[0].length,d=/^\s*/.exec(l)[0].length,u=s.length-c;if(s.slice(u-t.length,u)==t&&l.slice(d,d+n.length)==n)return{open:{pos:o-c,margin:c&&1},close:{pos:a+d,margin:d&&1}};a-o<=100?r=i=e.sliceDoc(o,a):(r=e.sliceDoc(o,o+50),i=e.sliceDoc(a-50,a));let p=/^\s*/.exec(r)[0].length,m=/\s*$/.exec(i)[0].length,g=i.length-m-n.length;return r.slice(p,p+t.length)==t&&i.slice(g,g+n.length)==n?{open:{pos:o+p+t.length,margin:/\s/.test(r.charAt(p+t.length))?1:0},close:{pos:a-m-n.length,margin:/\s/.test(i.charAt(g-1))?1:0}}:null}(n,o[t],e.from,e.to)));if(2!=e&&!a.every((e=>e))){let e=0;return n.changeByRange((t=>{let{open:n,close:r}=o[e++];if(a[e])return{range:t};let i=n.length+1;return{changes:[{from:t.from,insert:n+" "},{from:t.to,insert:" "+r}],range:St.EditorSelection.range(t.anchor+i,t.head+i)}}))}if(1!=e&&a.some((e=>e))){let e=[];for(let t,n=0;na&&(e==r||r>s.from)){a=s.from;let e=i??Ua(n,t).line;if(!e)continue;let r=/^\s*/.exec(s.text)[0].length,c=r==s.length,d=s.text.slice(r,r+e.length)==e?r:-1;re.comment<0&&(!e.empty||e.single)))){let e=[];for(let{line:t,token:n,indent:a,empty:r,single:i}of o)!i&&r||e.push({from:t.from+a,insert:n+" "});let t=n.changes(e);return{changes:t,selection:n.selection.map(t,1)}}if(1!=e&&o.some((e=>e.comment>=0))){let e=[];for(let{line:t,comment:n,token:a}of o)if(n>=0){let o=t.from+n,r=o+a.length;" "==t.text[r-t.from]&&r++,e.push({from:o,to:r})}return{changes:e}}return null}St=r("hiQgq");let qa={key:"Mod-d",run:({state:e,dispatch:t})=>{if(e.selection.main.empty){var n,o;let a=["Identifier","FieldName"],r=St.syntaxTree(e).cursorAt(e.selection.main.from,-1),i=St.syntaxTree(e).cursorAt(e.selection.main.from,1);for(let e of a){let n=r.name===e?r:i.name===e?i:null;if(n)return t({selection:{anchor:n.from,head:n.to}}),!0}let s=e.doc.lineAt(e.selection.main.from),l=e.selection.main.from-s.from,c=s.text.slice(0,l),d=s.text.slice(l),u=(null===(n=c.match(/(\w+)$/))||void 0===n?void 0:n[0])??"",p=(null===(o=d.match(/^(\w+)/))||void 0===o?void 0:o[0])??"";t({selection:{anchor:e.selection.main.from-u.length,head:e.selection.main.from+p.length}})}else St.selectNextOccurrence({state:e,dispatch:t});return!1},shift:({state:e,dispatch:t})=>{if(1===e.selection.ranges.length)return!1;let n=e.selection.ranges.at(e.selection.mainIndex-1),o=e.selection.ranges.filter((e=>e!==n)),a=o.indexOf(e.selection.main),r=(i=o,s=e.selection.mainIndex-1,i.slice(s,s+1)[0]);var i,s;return t({selection:St.EditorSelection.create(o,a),effects:null==r?[]:St.EditorView.scrollIntoView(r.from)}),!0},preventDefault:!0};de=r("4zMEb");var Ha=r("aTIpG");Io=r("hrGZZ"),St=r("hiQgq");const Wa="true"===window.localStorage.getItem("ENABLE_CM_MIXED_PARSER"),Ga="true"===window.localStorage.getItem("ENABLE_CM_SPELLCHECK");Wa&&console.log("YOU ENABLED THE CODEMIRROR MIXED LANGUAGE PARSER\nThanks! Awesome!\nPlease let us know if you find any bugs...\nIf enough people do this, we can make it the default parser.\n"),window.PLUTO_TOGGLE_CM_MIXED_PARSER=(e=!Wa)=>{window.localStorage.setItem("ENABLE_CM_MIXED_PARSER",String(e)),window.location.reload()},window.PLUTO_TOGGLE_CM_SPELLCHECK=(e=!Ga)=>{window.localStorage.setItem("ENABLE_CM_SPELLCHECK",String(e)),window.location.reload()};const Ka=St.HighlightStyle.define([{tag:St.tags.propertyName,color:"var(--cm-property-color)"},{tag:St.tags.unit,color:"var(--cm-tag-color)"},{tag:St.tags.literal,color:"var(--cm-builtin-color)",fontWeight:700},{tag:St.tags.macroName,color:"var(--cm-macro-color)",fontWeight:700},{tag:St.tags.special(St.tags.brace),color:"var(--cm-macro-color)",fontWeight:700},{tag:St.tags.standard(St.tags.variableName),color:"var(--cm-builtin-color)",fontWeight:700},{tag:St.tags.bool,color:"var(--cm-builtin-color)",fontWeight:700},{tag:St.tags.keyword,color:"var(--cm-keyword-color)"},{tag:St.tags.comment,color:"var(--cm-comment-color)",fontStyle:"italic"},{tag:St.tags.atom,color:"var(--cm-atom-color)"},{tag:St.tags.number,color:"var(--cm-number-color)"},{tag:St.tags.keyword,color:"var(--cm-keyword-color)"},{tag:St.tags.string,color:"var(--cm-string-color)"},{tag:St.tags.variableName,color:"var(--cm-var-color)",fontWeight:700},{tag:St.tags.typeName,color:"var(--cm-type-color)",fontStyle:"italic"},{tag:St.tags.typeOperator,color:"var(--cm-type-color)",fontStyle:"italic"},{tag:St.tags.bracket,color:"var(--cm-bracket-color)"},{tag:St.tags.brace,color:"var(--cm-bracket-color)"},{tag:St.tags.tagName,color:"var(--cm-tag-color)"},{tag:St.tags.link,color:"var(--cm-link-color)"},{tag:St.tags.invalid,color:"var(--cm-error-color)",background:"var(--cm-error-bg-color)"}],{all:{color:"var(--cm-editor-text-color)"},scope:St.julia_andrey().language}),Za=St.HighlightStyle.define([{tag:St.tags.propertyName,color:"var(--cm-property-color)"},{tag:St.tags.unit,color:"var(--cm-tag-color)"},{tag:St.tags.literal,color:"var(--cm-builtin-color)",fontWeight:700},{tag:St.tags.macroName,color:"var(--cm-macro-color)",fontWeight:700},{tag:St.tags.standard(St.tags.variableName),color:"var(--cm-builtin-color)",fontWeight:700},{tag:St.tags.bool,color:"var(--cm-builtin-color)",fontWeight:700},{tag:St.tags.keyword,color:"var(--cm-keyword-color)"},{tag:St.tags.atom,color:"var(--cm-atom-color)"},{tag:St.tags.number,color:"var(--cm-number-color)"},{tag:St.tags.keyword,color:"var(--cm-keyword-color)"},{tag:St.tags.string,color:"var(--cm-string-color)"},{tag:St.tags.variableName,color:"var(--cm-var-color)",fontWeight:700},{tag:St.tags.typeName,color:"var(--cm-type-color)",fontStyle:"italic"},{tag:St.tags.typeOperator,color:"var(--cm-type-color)",fontStyle:"italic"},{tag:St.tags.bracket,color:"var(--cm-bracket-color)"},{tag:St.tags.brace,color:"var(--cm-bracket-color)"},{tag:St.tags.tagName,color:"var(--cm-tag-color)"},{tag:St.tags.link,color:"var(--cm-link-color)"},{tag:St.tags.invalid,color:"var(--cm-error-color)",background:"var(--cm-error-bg-color)"},{tag:St.tags.comment,color:"var(--cm-comment-color)",fontStyle:"italic",filter:"none"}],{scope:St.javascriptLanguage,all:{color:"var(--cm-editor-text-color)",filter:"contrast(0.5)"}}),Va=St.HighlightStyle.define([{tag:St.tags.propertyName,color:"var(--cm-property-color)"},{tag:St.tags.unit,color:"var(--cm-tag-color)"},{tag:St.tags.literal,color:"var(--cm-builtin-color)",fontWeight:700},{tag:St.tags.macroName,color:"var(--cm-macro-color)",fontWeight:700},{tag:St.tags.standard(St.tags.variableName),color:"var(--cm-builtin-color)",fontWeight:700},{tag:St.tags.bool,color:"var(--cm-builtin-color)",fontWeight:700},{tag:St.tags.keyword,color:"var(--cm-keyword-color)"},{tag:St.tags.comment,color:"var(--cm-comment-color)",fontStyle:"italic"},{tag:St.tags.atom,color:"var(--cm-atom-color)"},{tag:St.tags.number,color:"var(--cm-number-color)"},{tag:St.tags.keyword,color:"var(--cm-keyword-color)"},{tag:St.tags.string,color:"var(--cm-string-color)"},{tag:St.tags.variableName,color:"var(--cm-var-color)",fontWeight:700},{tag:St.tags.typeName,color:"var(--cm-type-color)",fontStyle:"italic"},{tag:St.tags.typeOperator,color:"var(--cm-type-color)",fontStyle:"italic"},{tag:St.tags.bracket,color:"var(--cm-bracket-color)"},{tag:St.tags.brace,color:"var(--cm-bracket-color)"},{tag:St.tags.tagName,color:"var(--cm-tag-color)"},{tag:St.tags.link,color:"var(--cm-link-color)"},{tag:St.tags.invalid,color:"var(--cm-error-color)",background:"var(--cm-error-bg-color)"}],{scope:St.pythonLanguage,all:{color:"var(--cm-editor-text-color)",filter:"contrast(0.5)"}}),Qa=St.HighlightStyle.define([{tag:St.tags.propertyName,color:"var(--cm-css-accent-color)",fontWeight:700},{tag:St.tags.variableName,color:"var(--cm-css-accent-color)",fontWeight:700},{tag:St.tags.definitionOperator,color:"var(--cm-css-color)"},{tag:St.tags.keyword,color:"var(--cm-css-color)"},{tag:St.tags.modifier,color:"var(--cm-css-accent-color)"},{tag:St.tags.punctuation,opacity:.5},{tag:St.tags.literal,color:"var(--cm-css-color)"},{tag:St.tags.tagName,color:"var(--cm-css-color)",fontWeight:700},{tag:St.tags.className,color:"var(--cm-css-why-doesnt-codemirror-highlight-all-the-text-aaa)"},{tag:St.tags.constant(St.tags.className),color:"var(--cm-css-why-doesnt-codemirror-highlight-all-the-text-aaa)"},{tag:St.tags.comment,color:"var(--cm-comment-color)",fontStyle:"italic"}],{scope:St.cssLanguage,all:{color:"var(--cm-css-color)"}}),Xa=St.HighlightStyle.define([{tag:St.tags.tagName,color:"var(--cm-html-accent-color)",fontWeight:600},{tag:St.tags.attributeName,color:"var(--cm-html-accent-color)",fontWeight:600},{tag:St.tags.attributeValue,color:"var(--cm-html-accent-color)"},{tag:St.tags.angleBracket,color:"var(--cm-html-accent-color)",fontWeight:600,opacity:.7},{tag:St.tags.content,color:"var(--cm-html-color)",fontWeight:400},{tag:St.tags.documentMeta,color:"var(--cm-html-accent-color)"},{tag:St.tags.comment,color:"var(--cm-comment-color)",fontStyle:"italic"}],{scope:St.htmlLanguage,all:{color:"var(--cm-html-color)"}}),Ya=St.HighlightStyle.define([{tag:St.tags.content,color:"var(--cm-md-color)"},{tag:St.tags.quote,color:"var(--cm-md-color)"},{tag:St.tags.link,textDecoration:"underline"},{tag:St.tags.url,color:"var(--cm-md-color)",textDecoration:"none"},{tag:St.tags.emphasis,fontStyle:"italic"},{tag:St.tags.strong,fontWeight:"bolder"},{tag:St.tags.heading,color:"var(--cm-md-color)",fontWeight:700},{tag:St.tags.comment,color:"var(--cm-comment-color)",fontStyle:"italic"},{tag:St.tags.processingInstruction,color:"var(--cm-md-accent-color) !important",opacity:"0.5"},{tag:St.tags.monospace,color:"var(--cm-md-accent-color)"}],{scope:St.markdownLanguage,all:{color:"var(--cm-md-color)"}}),Ja=e=>e.state.doc.toString(),er=(e,t)=>e.dispatch({changes:{from:0,to:e.state.doc.length,insert:t}}),tr=(e,t,n,o)=>e.dispatch({changes:{from:n,to:o,insert:t}});let nr=(e,t)=>{let n=i.useRef(new St.Compartment),o=i.useRef(n.current.of(t));return i.useLayoutEffect((()=>{var o,a;null===(o=e.current)||void 0===o||null===(a=o.dispatch)||void 0===a||a.call(o,{effects:n.current.reconfigure(t)})}),[t]),o.current},or=(e,{line:t,ch:n})=>{let o=e.line(ce.default.clamp(t+1,1,e.lines)),a=ce.default.clamp(n,0,o.length);return o.from+a};const ar=({local_code:e,remote_code:t,disable_input:n,focus_after_creation:o,cm_forced_focus:a,set_cm_forced_focus:r,show_input:s,on_submit:l,on_delete:c,on_add_after:d,on_change:u,on_update_doc_query:p,on_focus_neighbor:m,on_line_heights:g,nbpkg:h,cell_id:f,notebook_id:_,any_logs:b,show_logs:v,set_show_logs:y,set_cell_disabled:w,cm_highlighted_line:k,cm_highlighted_range:E,metadata:$,global_definition_locations:x,cm_diagnostics:S})=>{let N=i.useContext(ye);const{disabled:C,skip_as_script:A}=$;let[M,O]=i.useState(null);if(M){const e=M;throw O(null),e}const T=i.useRef(_);T.current=_;const R=i.useRef(null),D=i.useRef(null),L=i.useRef(null);let I=nr(R,ua.of(h)),P=nr(R,Wn.of(x)),j=nr(R,Ta.of(k)),B=nr(R,Ra.of(E)),U=nr(R,St.EditorState.readOnly.of(n)),F=nr(R,i.useMemo((()=>St.EditorView.updateListener.of((e=>{e.docChanged&&u(e.state.doc.toString())}))),[u]));return i.useLayoutEffect((()=>{if(null==D.current)return;const t=e=>((async e=>{await e()})((async()=>{await d();e.state.doc.toString()!==L.current&&l()})),!0);let n=St.autocomplete.completionKeymap.find((e=>"Enter"===e.key));const a=()=>{const e=R.current,t=Ja(e),n=t.trim(),o=t.length-t.trimStart().length;if(console.table({value:t,trimmed:n,offset:o}),n.startsWith('md"')&&n.endsWith('"')){let t,a;if(n.startsWith('md"""')&&n.endsWith('"""')?(t=5,a=n.length-3):(t=3,a=n.length-1),t>=a||""==n.substring(t,a).trim())er(e,"");else{for(;/\s/.test(n[t]);)++t;for(;/\s/.test(n[a-1]);)--a;tr(e,"",a+o,e.state.doc.length),tr(e,"",0,t+o)}}else{let t='md"""\n',n='\n"""',o=e.state.selection.main;e.dispatch({changes:[{from:0,to:0,insert:t},{from:e.state.doc.length,to:e.state.doc.length,insert:n}],selection:0===o.from?{anchor:o.from+t.length,head:o.to+t.length}:void 0})}return!0},i=e=>!e.state.facet(St.EditorState.readOnly)&&(0===e.state.doc.length&&(m(f,1),c(),!0)),s=e=>!e.state.facet(St.EditorState.readOnly)&&(0===e.state.doc.length&&(m(f,-1,1/0,1/0),c(),!0)),u=(e,t)=>{if(e.state.facet(St.EditorState.readOnly))return!1;const n=e.state.selection.main;return 0===n.anchor&&n.head===e.state.doc.length||1===e.state.doc.lines?(N.move_remote_cells([f],N.get_notebook().cell_order.indexOf(f)+(-1===t?-1:2)),requestIdleCallback((()=>{e.dispatch({selection:{anchor:0,head:e.state.doc.length},scrollIntoView:!0}),e.focus()})),!0):1===t?St.moveLineDown(e):St.moveLineUp(e)},h=[{key:"Shift-Enter",run:()=>(l(),!0)},{key:"Ctrl-Enter",mac:"Cmd-Enter",run:t},{key:"Ctrl-Enter",run:t},{key:"Tab",run:e=>{var t;if(e.state.readOnly)return!1;if(null==n||null===(t=n.run)||void 0===t?void 0:t.call(n,e))return!0;let o=e.state.selection.main;return o.empty?(e.dispatch({changes:{from:o.from,to:o.to,insert:"\t"},selection:St.EditorSelection.cursor(o.from+1)}),!0):St.indentMore(e)},shift:St.indentLess},{key:"Ctrl-m",mac:"Cmd-m",run:a},{key:"Ctrl-m",run:a},{key:"Ctrl-M",run:a},{key:"Delete",run:i},{key:"Ctrl-Delete",run:i},{key:"Backspace",run:s},{key:"Ctrl-Backspace",run:s},{key:"Alt-ArrowUp",run:e=>u(e,-1)},{key:"Alt-ArrowDown",run:e=>u(e,1)},qa];let _=!1;const b=St.EditorView.updateListener.of((e=>{if(e.view.hasFocus&&(e.docChanged||e.selectionSet)){let t=e.state;try{let e=zn(t,_);null!=e&&p(e)}finally{}}})),v=window.matchMedia("(prefers-color-scheme: dark)").matches,y=R.current=new St.EditorView({state:St.EditorState.create({doc:e,extensions:[St.EditorView.theme({},{dark:v}),I,j,B,P,U,Da(),La(),ya,pa({pluto_actions:N,notebook_id_ref:T}),Pn,St.syntaxHighlighting(Ka),St.syntaxHighlighting(Xa),St.syntaxHighlighting(Ya),St.syntaxHighlighting(Za),St.syntaxHighlighting(Va),St.syntaxHighlighting(Qa),St.lineNumbers(),St.highlightSpecialChars(),St.history(),St.drawSelection(),St.EditorState.allowMultipleSelections.of(!0),St.EditorView.clickAddsSelectionRange.of((e=>e.altKey&&!e.shiftKey)),St.indentOnInput(),St.EditorState.languageData.of(((e,t,n)=>[{closeBrackets:{brackets:["(","[","{"]}}])),St.closeBrackets(),St.rectangularSelection({eventFilter:e=>e.altKey&&e.shiftKey&&0==e.button}),St.highlightSelectionMatches(),Ca(),b,Ha.tab_help_plugin,St.EditorView.domEventHandlers({blur:(e,t)=>{document.activeElement===t.contentDOM||(setTimeout((()=>{t.dispatch({selection:{anchor:t.state.selection.main.head},scrollIntoView:!1}),t.contentDOM.blur()}),0),r(null))}}),ka({pluto_actions:N,cell_id:f}),St.EditorView.updateListener.of((e=>{e.docChanged&&e.state.doc.length>0&&"?"===e.state.sliceDoc(0,1)&&Po("docs")})),St.EditorState.tabSize.of(4),St.indentUnit.of("\t"),...Wa?[to(),St.markdown({defaultCodeLanguage:to()}),St.html(),St.javascript(),St.python(),Qn]:[St.julia_andrey()],Gn,oa({request_autocomplete:async({text:e})=>{let t=await de.timeout_promise(N.send("complete",{query:e},{notebook_id:T.current}),5e3).catch(console.warn);if(!t)return null;let{message:n}=t;return{start:xt.utf8index_to_ut16index(e,n.start),stop:xt.utf8index_to_ut16index(e,n.stop),results:n.results}},on_update_doc_query:p}),St.keymap.of(h),St.keymap.of(Ba),wa({focus_on_neighbor:({cell_delta:e,line:t,character:n})=>m(f,e,t,n)}),St.keymap.of([...St.closeBracketsKeymap,...St.defaultKeymap,...St.historyKeymap,...St.foldKeymap]),St.placeholder("Enter cell code..."),St.EditorView.contentAttributes.of({spellcheck:String(Ga)}),St.EditorView.lineWrapping,ba,St.EditorView.updateListener.of((e=>{e.docChanged&&e.view.dispatch(St.setDiagnostics(e.state,[]))})),F,St.EditorView.exceptionSink.of((e=>{O(e),console.error("EditorView exception!",e)}))]}),parent:D.current});y.dom.CodeMirror={getValue:()=>Ja(y),setValue:e=>er(y,e)},o&&setTimeout((()=>{let e=R.current;null!=e&&(e.dom.scrollIntoView({behavior:"smooth",block:"nearest"}),e.dispatch({selection:{anchor:e.state.doc.length,head:e.state.doc.length},effects:[Ha.LastFocusWasForcedEffect.of(!0)]}),e.focus())}));const w=D.current.querySelector("div.cm-content");if(w){const e=new ResizeObserver((()=>{const e=w.children,t=ce.default.map(e,(e=>e.offsetTop)),n=[...t.slice(1).map(((e,n)=>e-t[n])),15];g(n)}));return e.observe(w),()=>{e.unobserve(w)}}}),[]),i.useEffect((()=>{if(null==R.current)return;const e=R.current,t=S;e.dispatch(St.setDiagnostics(e.state,t))}),[S]),i.useEffect((()=>{if(null==R.current)return;const e=Ja(R.current)??"";null==L.current&&""===t&&""!==e||(L.current=t,e!==t&&er(R.current,t))}),[t]),i.useEffect((()=>{const e=R.current;if(null!=e)if(null==a)e.dispatch({selection:{anchor:e.state.selection.main.head,head:e.state.selection.main.head}});else{let n={anchor:or(e.state.doc,a[0]),head:or(e.state.doc,a[1])};if(null===(t=a[2])||void 0===t?void 0:t.definition_of){var t;let o=e.state.field(Pn),r=null==o?void 0:o.definitions.get(null===(t=a[2])||void 0===t?void 0:t.definition_of);r&&(n={anchor:r.from,head:r.to})}e.dom.scrollIntoView({behavior:"smooth",block:"nearest"}),e.focus(),e.dispatch({scrollIntoView:!0,selection:n,effects:[St.EditorView.scrollIntoView(St.EditorSelection.range(n.anchor,n.head),{yMargin:80}),Ha.LastFocusWasForcedEffect.of(!0)]})}}),[a]),i.html` + + <${rr} + on_delete=${c} + cell_id=${f} + run_cell=${l} + skip_as_script=${A} + running_disabled=${C} + any_logs=${b} + show_logs=${v} + set_show_logs=${y} + set_cell_disabled=${w} + /> + + `},rr=({on_delete:e,cell_id:t,run_cell:n,skip_as_script:o,running_disabled:a,any_logs:r,show_logs:s,set_show_logs:l,set_cell_disabled:c})=>{const d=i.useRef(null);let u=i.useContext(ye);const[p,m]=i.useState(!1),g=i.useRef(null),h=i.useRef(null),f=i.useRef(null),_=e=>{e&&(f.current=document.activeElement),m(e)};i.useLayoutEffect((()=>{var e,t;if(p)null===(t=null===(e=h.current)||void 0===e?void 0:e.querySelector("button"))||void 0===t||t.focus();else{let e=f.current;e instanceof HTMLElement&&e.focus()}}),[p]);return Io.useEventListener(window,"keydown",(e=>{"Escape"===e.key&&_(!1)})),i.html` + +
{var t,n;((null===(t=h.current)||void 0===t?void 0:t.matches(":focus-within"))||(null===(n=h.current)||void 0===n?void 0:n.contains(e.relatedTarget)))&&e.relatedTarget!==h.current||_(!1)}} + > + ${p?i.html`
    {d.current&&clearTimeout(d.current)}}> + <${ir} tag="delete" contents="Delete cell" title="Delete cell" onClick=${e} setOpen=${_} /> + + <${ir} + title=${a?"Enable and run the cell":"Disable this cell, and all cells that depend on it"} + tag=${a?"enable_cell":"disable_cell"} + contents=${a?i.html`Enable cell`:i.html`Disable cell`} + onClick=${async e=>{const t=!a;await c(t)}} + setOpen=${_} + /> + ${r?i.html`<${ir} + title=${s?"Show cell logs":"Hide cell logs"} + tag=${s?"hide_logs":"show_logs"} + contents=${s?"Hide logs":"Show logs"} + onClick=${()=>l(!s)} + setOpen=${_} + />`:null} + ${(()=>{var e;let n=u.get_notebook(),o=null==n||null===(e=n.cell_results)||void 0===e?void 0:e[t];return!!o&&!o.errored&&!o.queued&&"text/plain"===o.output.mime&&o.output.body})()?i.html`<${ir} + tag="copy_output" + contents="Copy output" + title="Copy the output of this cell to the clipboard." + onClick=${()=>{var e,n;let o=u.get_notebook(),a=(null==o||null===(e=o.cell_results)||void 0===e||null===(n=e[t])||void 0===n?void 0:n.output.body)??"";a&&navigator.clipboard.writeText(a).catch((e=>{alert("Error copying cell output")}))}} + setOpen=${_} + />`:null} + + <${ir} + title=${o?"This cell is currently stored in the notebook file as a Julia comment. Click here to disable.":"Store this code in the notebook file as a Julia comment. This way, it will not run when the notebook runs as a script outside of Pluto."} + tag=${o?"run_as_script":"skip_as_script"} + contents=${o?i.html`Enable in file`:i.html`Disable in file`} + onClick=${async e=>{const n=!o;e.preventDefault(),await u.update_notebook((e=>{e.cell_inputs[t].metadata.skip_as_script=n}))}} + setOpen=${_} + /> +
`:i.html``} +
+ `},ir=({contents:e,title:t,onClick:n,setOpen:o,tag:a})=>i.html`
  • + +
  • `,sr=e=>{const t=e.indexOf("#==#");return-1!=t?e.substring(t+4,t+4+36):null},lr=(e,t)=>window.dispatchEvent(new CustomEvent("cell_focus",{detail:{cell_id:e,line:t}})),cr=({frame:e,cell_id:t})=>{var n,o;if(pr(e))return null;const a=sr(e.file);if(null!=a){const n=i.html`{lr(a,e.line-1),t.preventDefault()}} + > + ${a==t?"This cell":"Other cell"}: line ${e.line} + `;return i.html`${n}`}return i.html`${e.file}:${e.line}`},dr=i.html``,ur=e=>"top-level scope"===e.call,pr=e=>"none"===e.file,mr=({frame:e})=>{if(ur(e))return null;const t=e.call.indexOf("(");let n=-1!=t?i.html`${e.call.substr(0,t)}${e.call.substr(t)}`:i.html`${e.call}`;return i.html`${n}${dr}`},gr=({frame:e,num_context_lines:t=2})=>{let n=i.useContext(ye),o=sr(e.file);if(o){var a,r;let s=null===(r=null===(a=n.get_notebook())||void 0===a?void 0:a.cell_inputs[o])||void 0===r?void 0:r.code;if(s){const n=s.split("\n");return i.html`{lr(o,e.line-1),t.preventDefault()}} + href=${`#${o}`} + class="frame-line-preview" + >
    +
    +${n.map(((n,o)=>e.line-1-t<=o&&o<=e.line-1+t?i.html`<${hr} code=${n} i=${o} frameLine=${o===e.line-1} />`:null))}
    +
    `}}},hr=({code:e,frameLine:t,i:n})=>{const o=i.useRef(null);return i.useLayoutEffect((()=>{o.current&&(o.current.innerText=e,Ts(o.current,"julia"))}),[o.current,e]),i.html``},fr=e=>e.flatMap(((t,n)=>n===e.length-1?[t]:n===e.length-2?[t," and "]:[t,", "])),_r=({cell_id:e,diagnostics:t})=>(i.useEffect((()=>(window.dispatchEvent(new CustomEvent("cell_diagnostics",{detail:{cell_id:e,diagnostics:t}})),()=>window.dispatchEvent(new CustomEvent("cell_diagnostics",{detail:{cell_id:e,diagnostics:[]}})))),[t]),i.html` + +

    Syntax error

    +
    +
    Syntax errors
    +
      + ${t.map((({message:t,from:n,to:o,line:a})=>i.html`
    1. window.dispatchEvent(new CustomEvent("cell_highlight_range",{detail:{cell_id:e,from:n,to:o}}))} + onmouseleave=${()=>window.dispatchEvent(new CustomEvent("cell_highlight_range",{detail:{cell_id:e,from:null,to:null}}))} + > +
      + ${t}${dr}<${cr} frame=${{file:"#==#"+e,line:a}} cell_id=${e} /> +
      +
    2. `))} +
    +
    +
    + `),br=({msg:e,stacktrace:t,cell_id:n})=>{var o;let a=i.useContext(ye);const r={pattern:/.?/,display:e=>e.split("\n").map((e=>i.html`

    ${e}

    `))},s=[{pattern:/syntax: extra token after end of expression/,display:e=>{const t=i.html`{e.preventDefault(),a.wrap_remote_cell(n,"begin")}} + >Wrap all code in a begin ... end block.`;if(e.includes("\n\nBoundaries: ")){const o=JSON.parse(e.split("\n\nBoundaries: ")[1]).map((e=>e-1)),r=i.html`

    + {e.preventDefault(),a.split_remote_cell(n,o,!0)}} + >Split this cell into ${o.length} cells, or +

    `;return i.html`

    Multiple expressions in one cell.

    +

    How would you like to fix it?

    +
      +
    • ${r}
    • +
    • ${t}
    • +
    `}return i.html`

    Multiple expressions in one cell.

    +

    ${t}

    `},show_stacktrace:()=>!1},{pattern:/LoadError: cannot assign a value to variable workspace#\d+\..+ from module workspace#\d+/,display:()=>i.html`

    Tried to reevaluate an include call, this is not supported. You might need to restart this notebook from the main menu.

    +

    + For a workaround, use the alternative version of include described here: + GH issue 115 +

    +

    In the future, include will be deprecated, and this will be the default.

    `},{pattern:/MethodError: no method matching .*\nClosest candidates are:/,display:e=>e.split("\n").map((e=>i.html`

    ${e}

    `))},{pattern:/Cyclic references among (.*)\./,display:e=>e.split("\n").map((e=>{const t=e.match(/Cyclic references among (.*)\./);if(t){let e=t[1].split(/, | and /).map((e=>i.html`${e}`));return i.html`

    Cyclic references among${" "}${fr(e)}.

    `}return i.html`

    ${e}

    `}))},{pattern:/Multiple definitions for (.*)\./,display:e=>e.split("\n").map((e=>{const t=e.match(/Multiple definitions for (.*)\./);if(t){let e=t[1].split(/, | and /).map((e=>i.html`{const o=document.querySelector(`pluto-cell:not([id='${n}']) span[id='${encodeURI(e)}']`);t.preventDefault(),null==o||o.scrollIntoView()}}>${e}`));return i.html`

    Multiple definitions for${" "}${fr(e)}.

    `}return i.html`

    ${e}

    `}))},{pattern:/^syntax: (.*)$/,display:r.display,show_stacktrace:()=>!1},{pattern:/^\s*$/,display:()=>r.display("Error")},{pattern:/^UndefVarError: (.*) not defined\.?$/,display:e=>{const t=a.get_notebook(),o=vr(t,n),r=e.match(/UndefVarError: (.*) not defined/);let s=((null==r?void 0:r[1])??"").replaceAll("`","");const l=Object.values((null==t?void 0:t.cell_dependencies)??{}).some((e=>Object.keys(e.downstream_cells_map).includes(s)));if(0===Object.keys(o).length||!l)return i.html`

    ${e}

    `;const c=Object.keys(o).map((e=>i.html`{t.preventDefault();const n=document.querySelector(`pluto-cell[id='${o[e]}']`);null==n||n.scrollIntoView()}}>${e}`));return i.html`

    Another cell defining ${fr(c)} contains errors.

    `},show_stacktrace:()=>{const e=vr(a.get_notebook(),n);return 0===Object.keys(e).length}},r],l=s.find((({pattern:t})=>t.test(e)))??r,[c,d]=i.useState(!1);i.useEffect((()=>{d(!1)}),[e,t,n]);const u=t.findIndex((e=>null!=sr(e.file))),p=!c&&-1!=u&&u!(pr(e)&&ur(e))));return i.html` +
    ${l.display(e)}
    + ${0!=t.length&&((null===(o=l.show_stacktrace)||void 0===o?void 0:o.call(l))??1)?i.html`
    +
    + Stack trace +

    Here is what happened, the most recent locations are first:

    +
    + +
      + ${m.map((e=>{const t=sr(e.file),o=null!=t,a=n===t;return i.html`
    1. +
      + <${mr} frame=${e} /> + <${cr} frame=${e} cell_id=${n} /> +
      + ${o?i.html`<${gr} frame=${e} num_context_lines=${a?1:2} />`:null} +
    2. `}))} + ${p?i.html`
    3. + {d(!0),e.preventDefault()}} + >Show more... +
    4. `:null} +
    +
    `:null} +
    `},vr=(e,t,n=[])=>{var o;let a={};if(null!=e&&(null==e||null===(r=e.cell_results)||void 0===r||null===(o=r[t])||void 0===o?void 0:o.errored)){var r;Object.keys(null===(r=e.cell_dependencies[t])||void 0===r?void 0:r.upstream_cells_map).forEach((o=>{if(!n.includes(o)){var r;n.push(o);(null===(r=e.cell_dependencies[t])||void 0===r?void 0:r.upstream_cells_map[o]).forEach((r=>{let i=vr(e,r,n)??{};a={...a,...i},0===Object.keys(i).length&&e.cell_results[r].errored&&r!==t&&(a[o]=r)}))}}))}return a};i=r("cNaMA");const yr=({mime:e,body:t,cell_id:n,persist_js_state:o,sanitize_html:a=!0})=>{switch(e){case"image/png":case"image/jpg":case"image/jpeg":case"image/gif":case"image/bmp":case"image/svg+xml":return i.html`<${ks} mime=${e} body=${t} />`;case"text/plain":return i.html`
    ${t}
    `;case"application/vnd.pluto.tree+object":return i.html`<${$r} cell_id=${n} body=${t} persist_js_state=${o} sanitize_html=${a} />`;default:return Es({mime:e,body:t,cell_id:n,persist_js_state:o,sanitize_html:a,last_run_timestamp:null})}},wr=({on_click_more:e})=>{const[t,n]=i.useState(!1);return i.html`{t||!1!==e()&&n(!0)}} + >more`},kr=({prefix:e,prefix_short:t})=>i.html`${e}${t}`,Er=({pluto_actions:e,cell_id:t,node_ref:n,objectid:o,dim:a})=>{(e??n.current.closest("pluto-cell")._internal_pluto_actions).reshow_cell(t??n.current.closest("pluto-cell").id,o,a)},$r=({mime:e,body:t,cell_id:n,persist_js_state:o,sanitize_html:a=!0})=>{let r=i.useContext(ye);const s=i.useRef(null),l=e=>i.html`<${yr} cell_id=${n} mime=${e[1]} body=${e[0]} persist_js_state=${o} sanitize_html=${a} />`,c=i.html`<${wr} on_click_more=${()=>{if(null==s.current||null!=s.current.closest("pluto-tree.collapsed"))return!1;Er({pluto_actions:r,cell_id:n,node_ref:s,objectid:t.objectid,dim:1})}} />`;let d=null;switch(t.type){case"Pair":const e=t.key_value;return i.html`${l(e[0])}${l(e[1])}`;case"circular":return i.html`circular reference`;case"Array":case"Set":case"Tuple":d=i.html`${kr(t)}${t.elements.map((e=>"more"===e?c:i.html`${"Set"===t.type?"":i.html`${e[0]}`}${l(e[1])}`))}`;break;case"Dict":d=i.html`${kr(t)}${t.elements.map((e=>"more"===e?c:i.html`${l(e[0])}${l(e[1])}`))}`;break;case"NamedTuple":d=i.html`${kr(t)}${t.elements.map((e=>"more"===e?c:i.html`${e[0]}${l(e[1])}`))}`;break;case"struct":d=i.html`${kr(t)}${t.elements.map((e=>i.html`${e[0]}${l(e[1])}`))}`}return i.html``},xr=({colspan:e=999})=>i.html` + + +
    (This table has no columns)
    + + +`,Sr=({colspan:e=999})=>i.html` + +
    +
    + (This table has no rows) +
    + +`,Nr=({mime:e,body:t,cell_id:n,persist_js_state:o})=>{var a,r,s,l,c;let d=i.useContext(ye);const u=i.useRef(null),p=e=>i.html`<${wr} + on_click_more=${()=>{Er({pluto_actions:d,cell_id:n,node_ref:u,objectid:t.objectid,dim:e})}} + />`,m=3+((null==t||null===(a=t.schema)||void 0===a||null===(r=a.names)||void 0===r?void 0:r.length)??1),g=0===((null==t||null===(s=t.schema)||void 0===s||null===(l=s.names)||void 0===l?void 0:l.length)??0)?i.html`<${xr} colspan=${m} />`:i.html` + + ${["",...t.schema.names].map((e=>i.html`${"more"===e?p(2):e}`))} + + + ${["",...t.schema.types].map((e=>i.html`${"more"===e?null:e}`))} + + `,h=i.html` + ${0!==((null===(c=t.rows)||void 0===c?void 0:c.length)??0)?t.rows.map((e=>i.html` + ${"more"===e?i.html`${p(1)}`:i.html`${e[0]} + ${e[1].map((e=>{return i.html`
    ${"more"===e?null:(t=e,i.html`<${yr} cell_id=${n} mime=${t[1]} body=${t[0]} persist_js_state=${o} />`)}
    `;var t}))}`} + `)):i.html`<${Sr} colspan=${m} />`} + `;return i.html` + ${g}${h} +
    `};io=r("1gqBQ"),ce=r("9Ta4i"),i=r("cNaMA"),no=r("fUfdR");function Cr(e){if(!(e instanceof HTMLInputElement))return e instanceof HTMLSelectElement&&e.multiple?Array.from(e.selectedOptions,(e=>e.value)):e.value;switch(e.type){case"range":case"number":return e.valueAsNumber;case"date":return e.valueAsDate;case"checkbox":return e.checked;case"file":var t;return e.multiple?e.files:null===(t=e.files)||void 0===t?void 0:t[0];default:return e.value}}function Ar(e){switch(e.type){case"button":case"submit":case"checkbox":return"click";case"file":return"change";default:return"input"}}const Mr=(e,t)=>{if(!(e instanceof HTMLInputElement&&"file"===e.type))if(null!=t){if(e instanceof HTMLInputElement)switch(e.type){case"range":case"number":return void(e.valueAsNumber!==t&&(e.valueAsNumber=t));case"date":return void(null!=e.valueAsDate&&Number(e.valueAsDate)===Number(t)||(e.valueAsDate=t));case"checkbox":return void(e.checked!==t&&(e.checked=t));case"file":return}else if(e instanceof HTMLSelectElement&&e.multiple){for(let n of Array.from(e.options))n.selected=t.includes(n.value);return}e.value!==t&&(e.value=t)}else e.value=t},Or=(e,t)=>{e.forEach((e=>{let n=e.getAttribute("def");if(null!=n&&null!=e.firstElementChild&&null!=t[n]){let o=t[n].value;try{Mr(e.firstElementChild,o)}catch(t){console.error("Error while setting input value",e.firstElementChild,"to value",o,": ",t)}}}))},Tr=(e,t,n,o)=>{let a=!1;o.then((()=>{a=!0})),e.forEach((async e=>{const o=e.getAttribute("def"),r=e.firstElementChild;if(null!=o&&null!=r){var i;const e=Cr(r);const s=Object.keys(n).includes(o)&&ce.default.isEqual(null===(i=n[o])||void 0===i?void 0:i.value,e)?null:t(o,e).catch(console.error);let l=!1;for(let e of function(e){return no.default.Generators.observe((function(t){var n=Ar(e),o=Cr(e);function a(){t(Cr(e))}return e.addEventListener(n,a),void 0!==o&&t(o),function(){e.removeEventListener(n,a)}}))}(r)){if(a)break;if(!1===l){l=!0;continue}const n=await Rr(await e);await s,await t(o,n).catch(console.error)}}}))},Rr=async e=>e instanceof FileList?Promise.all(Array.from(e).map((e=>Rr(e)))):e instanceof File?await new Promise((t=>{const n=new FileReader;n.onload=()=>t({name:e.name,type:e.type,data:new Uint8Array(n.result)}),n.onerror=()=>t({name:e.name,type:e.type,data:null}),n.readAsArrayBuffer(e)})):e;ve=r("aN0pg"),no=r("fUfdR");var Dr=r("h2NGW"),Lr=(St=r("hiQgq"),{exports:{}});function Ir(e){return e instanceof Map?e.clear=e.delete=e.set=()=>{throw Error("map is read-only")}:e instanceof Set&&(e.add=e.clear=e.delete=()=>{throw Error("set is read-only")}),Object.freeze(e),Object.getOwnPropertyNames(e).forEach((t=>{var n=e[t];"object"!=typeof n||Object.isFrozen(n)||Ir(n)})),e}Lr.exports=Ir,Lr.exports.default=Ir;var Pr=Lr.exports;class jr{constructor(e){void 0===e.data&&(e.data={}),this.data=e.data,this.isMatchIgnored=!1}ignoreMatch(){this.isMatchIgnored=!0}}function Br(e){return e.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'")}function Ur(e,...t){const n=Object.create(null);for(const t in e)n[t]=e[t];return t.forEach((e=>{for(const t in e)n[t]=e[t]})),n}const Fr=e=>!!e.kind;class zr{constructor(e,t){this.buffer="",this.classPrefix=t.classPrefix,e.walk(this)}addText(e){this.buffer+=Br(e)}openNode(e){if(!Fr(e))return;let t=e.kind;t=e.sublanguage?"language-"+t:((e,{prefix:t})=>{if(e.includes(".")){const n=e.split(".");return[`${t}${n.shift()}`,...n.map(((e,t)=>`${e}${"_".repeat(t+1)}`))].join(" ")}return`${t}${e}`})(t,{prefix:this.classPrefix}),this.span(t)}closeNode(e){Fr(e)&&(this.buffer+="")}value(){return this.buffer}span(e){this.buffer+=``}}class qr{constructor(){this.rootNode={children:[]},this.stack=[this.rootNode]}get top(){return this.stack[this.stack.length-1]}get root(){return this.rootNode}add(e){this.top.children.push(e)}openNode(e){const t={kind:e,children:[]};this.add(t),this.stack.push(t)}closeNode(){if(this.stack.length>1)return this.stack.pop()}closeAllNodes(){for(;this.closeNode(););}toJSON(){return JSON.stringify(this.rootNode,null,4)}walk(e){return this.constructor._walk(e,this.rootNode)}static _walk(e,t){return"string"==typeof t?e.addText(t):t.children&&(e.openNode(t),t.children.forEach((t=>this._walk(e,t))),e.closeNode(t)),e}static _collapse(e){"string"!=typeof e&&e.children&&(e.children.every((e=>"string"==typeof e))?e.children=[e.children.join("")]:e.children.forEach((e=>{qr._collapse(e)})))}}class Hr extends qr{constructor(e){super(),this.options=e}addKeyword(e,t){""!==e&&(this.openNode(t),this.addText(e),this.closeNode())}addText(e){""!==e&&this.add(e)}addSublanguage(e,t){const n=e.root;n.kind=t,n.sublanguage=!0,this.add(n)}toHTML(){return new zr(this,this.options).value()}finalize(){return!0}}function Wr(e){return e?"string"==typeof e?e:e.source:null}function Gr(e){return Vr("(?=",e,")")}function Kr(e){return Vr("(?:",e,")*")}function Zr(e){return Vr("(?:",e,")?")}function Vr(...e){return e.map((e=>Wr(e))).join("")}function Qr(...e){const t=(e=>{const t=e[e.length-1];return"object"==typeof t&&t.constructor===Object?(e.splice(e.length-1,1),t):{}})(e);return"("+(t.capture?"":"?:")+e.map((e=>Wr(e))).join("|")+")"}function Xr(e){return RegExp(e.toString()+"|").exec("").length-1}const Yr=/\[(?:[^\\\]]|\\.)*\]|\(\??|\\([1-9][0-9]*)|\\./;function Jr(e,{joinWith:t}){let n=0;return e.map((e=>{n+=1;const t=n;let o=Wr(e),a="";for(;o.length>0;){const e=Yr.exec(o);if(!e){a+=o;break}a+=o.substring(0,e.index),o=o.substring(e.index+e[0].length),"\\"===e[0][0]&&e[1]?a+="\\"+(Number(e[1])+t):(a+=e[0],"("===e[0]&&n++)}return a})).map((e=>`(${e})`)).join(t)}const ei={begin:"\\\\[\\s\\S]",relevance:0},ti={scope:"string",begin:"'",end:"'",illegal:"\\n",contains:[ei]},ni={scope:"string",begin:'"',end:'"',illegal:"\\n",contains:[ei]},oi=(e,t,n={})=>{const o=Ur({scope:"comment",begin:e,end:t,contains:[]},n);o.contains.push({scope:"doctag",begin:"[ ]*(?=(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):)",end:/(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):/,excludeBegin:!0,relevance:0});const a=Qr("I","a","is","so","us","to","at","if","in","it","on",/[A-Za-z]+['](d|ve|re|ll|t|s|n)/,/[A-Za-z]+[-][a-z]+/,/[A-Za-z][a-z]{2,}/);return o.contains.push({begin:Vr(/[ ]+/,"(",a,/[.]?[:]?([.][ ]|[ ])/,"){3}")}),o},ai=oi("//","$"),ri=oi("/\\*","\\*/"),ii=oi("#","$");var si=Object.freeze({__proto__:null,MATCH_NOTHING_RE:/\b\B/,IDENT_RE:"[a-zA-Z]\\w*",UNDERSCORE_IDENT_RE:"[a-zA-Z_]\\w*",NUMBER_RE:"\\b\\d+(\\.\\d+)?",C_NUMBER_RE:"(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)",BINARY_NUMBER_RE:"\\b(0b[01]+)",RE_STARTERS_RE:"!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~",SHEBANG:(e={})=>{const t=/^#![ ]*\//;return e.binary&&(e.begin=Vr(t,/.*\b/,e.binary,/\b.*/)),Ur({scope:"meta",begin:t,end:/$/,relevance:0,"on:begin":(e,t)=>{0!==e.index&&t.ignoreMatch()}},e)},BACKSLASH_ESCAPE:ei,APOS_STRING_MODE:ti,QUOTE_STRING_MODE:ni,PHRASAL_WORDS_MODE:{begin:/\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|they|like|more)\b/},COMMENT:oi,C_LINE_COMMENT_MODE:ai,C_BLOCK_COMMENT_MODE:ri,HASH_COMMENT_MODE:ii,NUMBER_MODE:{scope:"number",begin:"\\b\\d+(\\.\\d+)?",relevance:0},C_NUMBER_MODE:{scope:"number",begin:"(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)",relevance:0},BINARY_NUMBER_MODE:{scope:"number",begin:"\\b(0b[01]+)",relevance:0},REGEXP_MODE:{begin:/(?=\/[^/\n]*\/)/,contains:[{scope:"regexp",begin:/\//,end:/\/[gimuy]*/,illegal:/\n/,contains:[ei,{begin:/\[/,end:/\]/,relevance:0,contains:[ei]}]}]},TITLE_MODE:{scope:"title",begin:"[a-zA-Z]\\w*",relevance:0},UNDERSCORE_TITLE_MODE:{scope:"title",begin:"[a-zA-Z_]\\w*",relevance:0},METHOD_GUARD:{begin:"\\.\\s*[a-zA-Z_]\\w*",relevance:0},END_SAME_AS_BEGIN:e=>Object.assign(e,{"on:begin":(e,t)=>{t.data._beginMatch=e[1]},"on:end":(e,t)=>{t.data._beginMatch!==e[1]&&t.ignoreMatch()}})});function li(e,t){"."===e.input[e.index-1]&&t.ignoreMatch()}function ci(e,t){void 0!==e.className&&(e.scope=e.className,delete e.className)}function di(e,t){t&&e.beginKeywords&&(e.begin="\\b("+e.beginKeywords.split(" ").join("|")+")(?!\\.)(?=\\b|\\s)",e.__beforeBegin=li,e.keywords=e.keywords||e.beginKeywords,delete e.beginKeywords,void 0===e.relevance&&(e.relevance=0))}function ui(e,t){Array.isArray(e.illegal)&&(e.illegal=Qr(...e.illegal))}function pi(e,t){if(e.match){if(e.begin||e.end)throw Error("begin & end are not supported with match");e.begin=e.match,delete e.match}}function mi(e,t){void 0===e.relevance&&(e.relevance=1)}const gi=(e,t)=>{if(!e.beforeMatch)return;if(e.starts)throw Error("beforeMatch cannot be used with starts");const n=Object.assign({},e);Object.keys(e).forEach((t=>{delete e[t]})),e.keywords=n.keywords,e.begin=Vr(n.beforeMatch,Gr(n.begin)),e.starts={relevance:0,contains:[Object.assign(n,{endsParent:!0})]},e.relevance=0,delete n.beforeMatch},hi=["of","and","for","in","not","or","if","then","parent","list","value"];function fi(e,t,n="keyword"){const o=Object.create(null);function a(e,n){t&&(n=n.map((e=>e.toLowerCase()))),n.forEach((t=>{const n=t.split("|");o[n[0]]=[e,_i(n[0],n[1])]}))}return"string"==typeof e?a(n,e.split(" ")):Array.isArray(e)?a(n,e):Object.keys(e).forEach((n=>{Object.assign(o,fi(e[n],t,n))})),o}function _i(e,t){return t?Number(t):(e=>hi.includes(e.toLowerCase()))(e)?0:1}const bi={},vi=e=>{console.error(e)},yi=(e,...t)=>{console.log("WARN: "+e,...t)},wi=(e,t)=>{bi[`${e}/${t}`]||(console.log(`Deprecated as of ${e}. ${t}`),bi[`${e}/${t}`]=!0)},ki=Error();function Ei(e,t,{key:n}){let o=0;const a=e[n],r={},i={};for(let e=1;e<=t.length;e++)i[e+o]=a[e],r[e+o]=!0,o+=Xr(t[e-1]);e[n]=i,e[n]._emit=r,e[n]._multi=!0}function $i(e){(e=>{e.scope&&"object"==typeof e.scope&&null!==e.scope&&(e.beginScope=e.scope,delete e.scope)})(e),"string"==typeof e.beginScope&&(e.beginScope={_wrap:e.beginScope}),"string"==typeof e.endScope&&(e.endScope={_wrap:e.endScope}),(e=>{if(Array.isArray(e.begin)){if(e.skip||e.excludeBegin||e.returnBegin)throw vi("skip, excludeBegin, returnBegin not compatible with beginScope: {}"),ki;if("object"!=typeof e.beginScope||null===e.beginScope)throw vi("beginScope must be object"),ki;Ei(e,e.begin,{key:"beginScope"}),e.begin=Jr(e.begin,{joinWith:""})}})(e),(e=>{if(Array.isArray(e.end)){if(e.skip||e.excludeEnd||e.returnEnd)throw vi("skip, excludeEnd, returnEnd not compatible with endScope: {}"),ki;if("object"!=typeof e.endScope||null===e.endScope)throw vi("endScope must be object"),ki;Ei(e,e.end,{key:"endScope"}),e.end=Jr(e.end,{joinWith:""})}})(e)}function xi(e){function t(t,n){return RegExp(Wr(t),"m"+(e.case_insensitive?"i":"")+(e.unicodeRegex?"u":"")+(n?"g":""))}class n{constructor(){this.matchIndexes={},this.regexes=[],this.matchAt=1,this.position=0}addRule(e,t){t.position=this.position++,this.matchIndexes[this.matchAt]=t,this.regexes.push([t,e]),this.matchAt+=Xr(e)+1}compile(){0===this.regexes.length&&(this.exec=()=>null);const e=this.regexes.map((e=>e[1]));this.matcherRe=t(Jr(e,{joinWith:"|"}),!0),this.lastIndex=0}exec(e){this.matcherRe.lastIndex=this.lastIndex;const t=this.matcherRe.exec(e);if(!t)return null;const n=t.findIndex(((e,t)=>t>0&&void 0!==e)),o=this.matchIndexes[n];return t.splice(0,n),Object.assign(t,o)}}class o{constructor(){this.rules=[],this.multiRegexes=[],this.count=0,this.lastIndex=0,this.regexIndex=0}getMatcher(e){if(this.multiRegexes[e])return this.multiRegexes[e];const t=new n;return this.rules.slice(e).forEach((([e,n])=>t.addRule(e,n))),t.compile(),this.multiRegexes[e]=t,t}resumingScanAtSamePosition(){return 0!==this.regexIndex}considerAll(){this.regexIndex=0}addRule(e,t){this.rules.push([e,t]),"begin"===t.type&&this.count++}exec(e){const t=this.getMatcher(this.regexIndex);t.lastIndex=this.lastIndex;let n=t.exec(e);if(this.resumingScanAtSamePosition())if(n&&n.index===this.lastIndex);else{const t=this.getMatcher(0);t.lastIndex=this.lastIndex+1,n=t.exec(e)}return n&&(this.regexIndex+=n.position+1,this.regexIndex===this.count&&this.considerAll()),n}}if(e.compilerExtensions||(e.compilerExtensions=[]),e.contains&&e.contains.includes("self"))throw Error("ERR: contains `self` is not supported at the top-level of a language. See documentation.");return e.classNameAliases=Ur(e.classNameAliases||{}),function n(a,r){const i=a;if(a.isCompiled)return i;[ci,pi,$i,gi].forEach((e=>e(a,r))),e.compilerExtensions.forEach((e=>e(a,r))),a.__beforeBegin=null,[di,ui,mi].forEach((e=>e(a,r))),a.isCompiled=!0;let s=null;return"object"==typeof a.keywords&&a.keywords.$pattern&&(a.keywords=Object.assign({},a.keywords),s=a.keywords.$pattern,delete a.keywords.$pattern),s=s||/\w+/,a.keywords&&(a.keywords=fi(a.keywords,e.case_insensitive)),i.keywordPatternRe=t(s,!0),r&&(a.begin||(a.begin=/\B|\b/),i.beginRe=t(i.begin),a.end||a.endsWithParent||(a.end=/\B|\b/),a.end&&(i.endRe=t(i.end)),i.terminatorEnd=Wr(i.end)||"",a.endsWithParent&&r.terminatorEnd&&(i.terminatorEnd+=(a.end?"|":"")+r.terminatorEnd)),a.illegal&&(i.illegalRe=t(a.illegal)),a.contains||(a.contains=[]),a.contains=[].concat(...a.contains.map((e=>(e=>(e.variants&&!e.cachedVariants&&(e.cachedVariants=e.variants.map((t=>Ur(e,{variants:null},t)))),e.cachedVariants?e.cachedVariants:Si(e)?Ur(e,{starts:e.starts?Ur(e.starts):null}):Object.isFrozen(e)?Ur(e):e))("self"===e?a:e)))),a.contains.forEach((e=>{n(e,i)})),a.starts&&n(a.starts,r),i.matcher=(e=>{const t=new o;return e.contains.forEach((e=>t.addRule(e.begin,{rule:e,type:"begin"}))),e.terminatorEnd&&t.addRule(e.terminatorEnd,{type:"end"}),e.illegal&&t.addRule(e.illegal,{type:"illegal"}),t})(i),i}(e)}function Si(e){return!!e&&(e.endsWithParent||Si(e.starts))}class Ni extends Error{constructor(e,t){super(e),this.name="HTMLInjectionError",this.html=t}}const Ci=Br,Ai=Ur,Mi=Symbol("nomatch");var Oi=(e=>{const t=Object.create(null),n=Object.create(null),o=[];let a=!0;const r="Could not find the language '{}', did you forget to load/include a language module?",i={disableAutodetect:!0,name:"Plain text",contains:[]};let s={ignoreUnescapedHTML:!1,throwUnescapedHTML:!1,noHighlightRe:/^(no-?highlight)$/i,languageDetectRe:/\blang(?:uage)?-([\w-]+)\b/i,classPrefix:"hljs-",cssSelector:"pre code",languages:null,__emitter:Hr};function l(e){return s.noHighlightRe.test(e)}function c(e,t,n){let o="",a="";"object"==typeof t?(o=e,n=t.ignoreIllegals,a=t.language):(wi("10.7.0","highlight(lang, code, ...args) has been deprecated."),wi("10.7.0","Please use highlight(code, options) instead.\nhttps://github.com/highlightjs/highlight.js/issues/2277"),a=e,o=t),void 0===n&&(n=!0);const r={code:o,language:a};b("before:highlight",r);const i=r.result?r.result:d(r.language,r.code,n);return i.code=r.code,b("after:highlight",i),i}function d(e,n,o,i){const l=Object.create(null);function c(){if(!$.keywords)return void S.addText(N);let e=0;$.keywordPatternRe.lastIndex=0;let t=$.keywordPatternRe.exec(N),n="";for(;t;){n+=N.substring(e,t.index);const a=w.case_insensitive?t[0].toLowerCase():t[0],r=(o=a,$.keywords[o]);if(r){const[e,o]=r;if(S.addText(n),n="",l[a]=(l[a]||0)+1,l[a]<=7&&(C+=o),e.startsWith("_"))n+=t[0];else{const n=w.classNameAliases[e]||e;S.addKeyword(t[0],n)}}else n+=t[0];e=$.keywordPatternRe.lastIndex,t=$.keywordPatternRe.exec(N)}var o;n+=N.substr(e),S.addText(n)}function p(){null!=$.subLanguage?(()=>{if(""===N)return;let e=null;if("string"==typeof $.subLanguage){if(!t[$.subLanguage])return void S.addText(N);e=d($.subLanguage,N,!0,x[$.subLanguage]),x[$.subLanguage]=e._top}else e=u(N,$.subLanguage.length?$.subLanguage:null);$.relevance>0&&(C+=e.relevance),S.addSublanguage(e._emitter,e.language)})():c(),N=""}function m(e,t){let n=1;for(;void 0!==t[n];){if(!e._emit[n]){n++;continue}const o=w.classNameAliases[e[n]]||e[n],a=t[n];o?S.addKeyword(a,o):(N=a,c(),N=""),n++}}function g(e,t){return e.scope&&"string"==typeof e.scope&&S.openNode(w.classNameAliases[e.scope]||e.scope),e.beginScope&&(e.beginScope._wrap?(S.addKeyword(N,w.classNameAliases[e.beginScope._wrap]||e.beginScope._wrap),N=""):e.beginScope._multi&&(m(e.beginScope,t),N="")),$=Object.create(e,{parent:{value:$}}),$}function f(e,t,n){let o=((e,t)=>{const n=e&&e.exec(t);return n&&0===n.index})(e.endRe,n);if(o){if(e["on:end"]){const n=new jr(e);e["on:end"](t,n),n.isMatchIgnored&&(o=!1)}if(o){for(;e.endsParent&&e.parent;)e=e.parent;return e}}if(e.endsWithParent)return f(e.parent,t,n)}function _(e){return 0===$.matcher.regexIndex?(N+=e[0],1):(O=!0,0)}function b(e){const t=e[0],o=n.substr(e.index),a=f($,e,o);if(!a)return Mi;const r=$;$.endScope&&$.endScope._wrap?(p(),S.addKeyword(t,$.endScope._wrap)):$.endScope&&$.endScope._multi?(p(),m($.endScope,e)):r.skip?N+=t:(r.returnEnd||r.excludeEnd||(N+=t),p(),r.excludeEnd&&(N=t));do{$.scope&&S.closeNode(),$.skip||$.subLanguage||(C+=$.relevance),$=$.parent}while($!==a.parent);return a.starts&&g(a.starts,e),r.returnEnd?0:t.length}let v={};function y(t,r){const i=r&&r[0];if(N+=t,null==i)return p(),0;if("begin"===v.type&&"end"===r.type&&v.index===r.index&&""===i){if(N+=n.slice(r.index,r.index+1),!a){const t=Error(`0 width match regex (${e})`);throw t.languageName=e,t.badRule=v.rule,t}return 1}if(v=r,"begin"===r.type)return(e=>{const t=e[0],n=e.rule,o=new jr(n),a=[n.__beforeBegin,n["on:begin"]];for(const n of a)if(n&&(n(e,o),o.isMatchIgnored))return _(t);return n.skip?N+=t:(n.excludeBegin&&(N+=t),p(),n.returnBegin||n.excludeBegin||(N=t)),g(n,e),n.returnBegin?0:t.length})(r);if("illegal"===r.type&&!o){const e=Error('Illegal lexeme "'+i+'" for mode "'+($.scope||"")+'"');throw e.mode=$,e}if("end"===r.type){const e=b(r);if(e!==Mi)return e}if("illegal"===r.type&&""===i)return 1;if(M>1e5&&M>3*r.index)throw Error("potential infinite loop, way more iterations than matches");return N+=i,i.length}const w=h(e);if(!w)throw vi(r.replace("{}",e)),Error('Unknown language: "'+e+'"');const k=xi(w);let E="",$=i||k;const x={},S=new s.__emitter(s);(()=>{const e=[];for(let t=$;t!==w;t=t.parent)t.scope&&e.unshift(t.scope);e.forEach((e=>S.openNode(e)))})();let N="",C=0,A=0,M=0,O=!1;try{for($.matcher.considerAll();;){M++,O?O=!1:$.matcher.considerAll(),$.matcher.lastIndex=A;const e=$.matcher.exec(n);if(!e)break;const t=y(n.substring(A,e.index),e);A=e.index+t}return y(n.substr(A)),S.closeAllNodes(),S.finalize(),E=S.toHTML(),{language:e,value:E,relevance:C,illegal:!1,_emitter:S,_top:$}}catch(t){if(t.message&&t.message.includes("Illegal"))return{language:e,value:Ci(n),illegal:!0,relevance:0,_illegalBy:{message:t.message,index:A,context:n.slice(A-100,A+100),mode:t.mode,resultSoFar:E},_emitter:S};if(a)return{language:e,value:Ci(n),illegal:!1,relevance:0,errorRaised:t,_emitter:S,_top:$};throw t}}function u(e,n){n=n||s.languages||Object.keys(t);const o=(e=>{const t={value:Ci(e),illegal:!1,relevance:0,_top:i,_emitter:new s.__emitter(s)};return t._emitter.addText(e),t})(e),a=n.filter(h).filter(_).map((t=>d(t,e,!1)));a.unshift(o);const r=a.sort(((e,t)=>{if(e.relevance!==t.relevance)return t.relevance-e.relevance;if(e.language&&t.language){if(h(e.language).supersetOf===t.language)return 1;if(h(t.language).supersetOf===e.language)return-1}return 0})),[l,c]=r,u=l;return u.secondBest=c,u}function p(e){let t=null;const o=(e=>{let t=e.className+" ";t+=e.parentNode?e.parentNode.className:"";const n=s.languageDetectRe.exec(t);if(n){const t=h(n[1]);return t||(yi(r.replace("{}",n[1])),yi("Falling back to no-highlight mode for this block.",e)),t?n[1]:"no-highlight"}return t.split(/\s+/).find((e=>l(e)||h(e)))})(e);if(l(o))return;if(b("before:highlightElement",{el:e,language:o}),e.children.length>0&&(s.ignoreUnescapedHTML||(console.warn("One of your code blocks includes unescaped HTML. This is a potentially serious security risk."),console.warn("https://github.com/highlightjs/highlight.js/wiki/security"),console.warn("The element with unescaped HTML:"),console.warn(e)),s.throwUnescapedHTML))throw new Ni("One of your code blocks includes unescaped HTML.",e.innerHTML);t=e;const a=t.textContent,i=o?c(a,{language:o,ignoreIllegals:!0}):u(a);e.innerHTML=i.value,((e,t,o)=>{const a=t&&n[t]||o;e.classList.add("hljs"),e.classList.add("language-"+a)})(e,o,i.language),e.result={language:i.language,re:i.relevance,relevance:i.relevance},i.secondBest&&(e.secondBest={language:i.secondBest.language,relevance:i.secondBest.relevance}),b("after:highlightElement",{el:e,result:i,text:a})}let m=!1;function g(){"loading"!==document.readyState?document.querySelectorAll(s.cssSelector).forEach(p):m=!0}function h(e){return e=(e||"").toLowerCase(),t[e]||t[n[e]]}function f(e,{languageName:t}){"string"==typeof e&&(e=[e]),e.forEach((e=>{n[e.toLowerCase()]=t}))}function _(e){const t=h(e);return t&&!t.disableAutodetect}function b(e,t){const n=e;o.forEach((e=>{e[n]&&e[n](t)}))}"undefined"!=typeof window&&window.addEventListener&&window.addEventListener("DOMContentLoaded",(()=>{m&&g()}),!1),Object.assign(e,{highlight:c,highlightAuto:u,highlightAll:g,highlightElement:p,highlightBlock:e=>(wi("10.7.0","highlightBlock will be removed entirely in v12.0"),wi("10.7.0","Please use highlightElement now."),p(e)),configure:e=>{s=Ai(s,e)},initHighlighting:()=>{g(),wi("10.6.0","initHighlighting() deprecated. Use highlightAll() now.")},initHighlightingOnLoad:()=>{g(),wi("10.6.0","initHighlightingOnLoad() deprecated. Use highlightAll() now.")},registerLanguage:(n,o)=>{let r=null;try{r=o(e)}catch(e){if(vi("Language definition for '{}' could not be registered.".replace("{}",n)),!a)throw e;vi(e),r=i}r.name||(r.name=n),t[n]=r,r.rawDefinition=o.bind(null,e),r.aliases&&f(r.aliases,{languageName:n})},unregisterLanguage:e=>{delete t[e];for(const t of Object.keys(n))n[t]===e&&delete n[t]},listLanguages:()=>Object.keys(t),getLanguage:h,registerAliases:f,autoDetection:_,inherit:Ai,addPlugin:e=>{(e=>{e["before:highlightBlock"]&&!e["before:highlightElement"]&&(e["before:highlightElement"]=t=>{e["before:highlightBlock"](Object.assign({block:t.el},t))}),e["after:highlightBlock"]&&!e["after:highlightElement"]&&(e["after:highlightElement"]=t=>{e["after:highlightBlock"](Object.assign({block:t.el},t))})})(e),o.push(e)}}),e.debugMode=()=>{a=!1},e.safeMode=()=>{a=!0},e.versionString="11.4.0",e.regex={concat:Vr,lookahead:Gr,either:Qr,optional:Zr,anyNumberOfTimes:Kr};for(const e in si)"object"==typeof si[e]&&Pr(si[e]);return Object.assign(e,si),e})({});const Ti=e=>({IMPORTANT:{scope:"meta",begin:"!important"},BLOCK_COMMENT:e.C_BLOCK_COMMENT_MODE,HEXCOLOR:{scope:"number",begin:/#(([0-9a-fA-F]{3,4})|(([0-9a-fA-F]{2}){3,4}))\b/},FUNCTION_DISPATCH:{className:"built_in",begin:/[\w-]+(?=\()/},ATTRIBUTE_SELECTOR_MODE:{scope:"selector-attr",begin:/\[/,end:/\]/,illegal:"$",contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},CSS_NUMBER_MODE:{scope:"number",begin:e.NUMBER_RE+"(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?",relevance:0},CSS_VARIABLE:{className:"attr",begin:/--[A-Za-z][A-Za-z0-9_-]*/}}),Ri=["a","abbr","address","article","aside","audio","b","blockquote","body","button","canvas","caption","cite","code","dd","del","details","dfn","div","dl","dt","em","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","html","i","iframe","img","input","ins","kbd","label","legend","li","main","mark","menu","nav","object","ol","p","q","quote","samp","section","span","strong","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","tr","ul","var","video"],Di=["any-hover","any-pointer","aspect-ratio","color","color-gamut","color-index","device-aspect-ratio","device-height","device-width","display-mode","forced-colors","grid","height","hover","inverted-colors","monochrome","orientation","overflow-block","overflow-inline","pointer","prefers-color-scheme","prefers-contrast","prefers-reduced-motion","prefers-reduced-transparency","resolution","scan","scripting","update","width","min-width","max-width","min-height","max-height"],Li=["active","any-link","blank","checked","current","default","defined","dir","disabled","drop","empty","enabled","first","first-child","first-of-type","fullscreen","future","focus","focus-visible","focus-within","has","host","host-context","hover","indeterminate","in-range","invalid","is","lang","last-child","last-of-type","left","link","local-link","not","nth-child","nth-col","nth-last-child","nth-last-col","nth-last-of-type","nth-of-type","only-child","only-of-type","optional","out-of-range","past","placeholder-shown","read-only","read-write","required","right","root","scope","target","target-within","user-invalid","valid","visited","where"],Ii=["after","backdrop","before","cue","cue-region","first-letter","first-line","grammar-error","marker","part","placeholder","selection","slotted","spelling-error"],Pi=["align-content","align-items","align-self","all","animation","animation-delay","animation-direction","animation-duration","animation-fill-mode","animation-iteration-count","animation-name","animation-play-state","animation-timing-function","backface-visibility","background","background-attachment","background-clip","background-color","background-image","background-origin","background-position","background-repeat","background-size","border","border-bottom","border-bottom-color","border-bottom-left-radius","border-bottom-right-radius","border-bottom-style","border-bottom-width","border-collapse","border-color","border-image","border-image-outset","border-image-repeat","border-image-slice","border-image-source","border-image-width","border-left","border-left-color","border-left-style","border-left-width","border-radius","border-right","border-right-color","border-right-style","border-right-width","border-spacing","border-style","border-top","border-top-color","border-top-left-radius","border-top-right-radius","border-top-style","border-top-width","border-width","bottom","box-decoration-break","box-shadow","box-sizing","break-after","break-before","break-inside","caption-side","caret-color","clear","clip","clip-path","clip-rule","color","column-count","column-fill","column-gap","column-rule","column-rule-color","column-rule-style","column-rule-width","column-span","column-width","columns","contain","content","content-visibility","counter-increment","counter-reset","cue","cue-after","cue-before","cursor","direction","display","empty-cells","filter","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","float","flow","font","font-display","font-family","font-feature-settings","font-kerning","font-language-override","font-size","font-size-adjust","font-smoothing","font-stretch","font-style","font-synthesis","font-variant","font-variant-caps","font-variant-east-asian","font-variant-ligatures","font-variant-numeric","font-variant-position","font-variation-settings","font-weight","gap","glyph-orientation-vertical","grid","grid-area","grid-auto-columns","grid-auto-flow","grid-auto-rows","grid-column","grid-column-end","grid-column-start","grid-gap","grid-row","grid-row-end","grid-row-start","grid-template","grid-template-areas","grid-template-columns","grid-template-rows","hanging-punctuation","height","hyphens","icon","image-orientation","image-rendering","image-resolution","ime-mode","isolation","justify-content","left","letter-spacing","line-break","line-height","list-style","list-style-image","list-style-position","list-style-type","margin","margin-bottom","margin-left","margin-right","margin-top","marks","mask","mask-border","mask-border-mode","mask-border-outset","mask-border-repeat","mask-border-slice","mask-border-source","mask-border-width","mask-clip","mask-composite","mask-image","mask-mode","mask-origin","mask-position","mask-repeat","mask-size","mask-type","max-height","max-width","min-height","min-width","mix-blend-mode","nav-down","nav-index","nav-left","nav-right","nav-up","none","normal","object-fit","object-position","opacity","order","orphans","outline","outline-color","outline-offset","outline-style","outline-width","overflow","overflow-wrap","overflow-x","overflow-y","padding","padding-bottom","padding-left","padding-right","padding-top","page-break-after","page-break-before","page-break-inside","pause","pause-after","pause-before","perspective","perspective-origin","pointer-events","position","quotes","resize","rest","rest-after","rest-before","right","row-gap","scroll-margin","scroll-margin-block","scroll-margin-block-end","scroll-margin-block-start","scroll-margin-bottom","scroll-margin-inline","scroll-margin-inline-end","scroll-margin-inline-start","scroll-margin-left","scroll-margin-right","scroll-margin-top","scroll-padding","scroll-padding-block","scroll-padding-block-end","scroll-padding-block-start","scroll-padding-bottom","scroll-padding-inline","scroll-padding-inline-end","scroll-padding-inline-start","scroll-padding-left","scroll-padding-right","scroll-padding-top","scroll-snap-align","scroll-snap-stop","scroll-snap-type","shape-image-threshold","shape-margin","shape-outside","speak","speak-as","src","tab-size","table-layout","text-align","text-align-all","text-align-last","text-combine-upright","text-decoration","text-decoration-color","text-decoration-line","text-decoration-style","text-emphasis","text-emphasis-color","text-emphasis-position","text-emphasis-style","text-indent","text-justify","text-orientation","text-overflow","text-rendering","text-shadow","text-transform","text-underline-position","top","transform","transform-box","transform-origin","transform-style","transition","transition-delay","transition-duration","transition-property","transition-timing-function","unicode-bidi","vertical-align","visibility","voice-balance","voice-duration","voice-family","voice-pitch","voice-range","voice-rate","voice-stress","voice-volume","white-space","widows","width","will-change","word-break","word-spacing","word-wrap","writing-mode","z-index"].reverse(),ji=Li.concat(Ii);var Bi={className:"number",variants:[{begin:"(\\b([0-9](_*[0-9])*)((\\.([0-9](_*[0-9])*))|\\.)?|(\\.([0-9](_*[0-9])*)))[eE][+-]?([0-9](_*[0-9])*)[fFdD]?\\b"},{begin:"\\b([0-9](_*[0-9])*)((\\.([0-9](_*[0-9])*))[fFdD]?\\b|\\.([fFdD]\\b)?)"},{begin:"(\\.([0-9](_*[0-9])*))[fFdD]?\\b"},{begin:"\\b([0-9](_*[0-9])*)[fFdD]\\b"},{begin:"\\b0[xX](([0-9a-fA-F](_*[0-9a-fA-F])*)\\.?|([0-9a-fA-F](_*[0-9a-fA-F])*)?\\.([0-9a-fA-F](_*[0-9a-fA-F])*))[pP][+-]?([0-9](_*[0-9])*)[fFdD]?\\b"},{begin:"\\b(0|[1-9](_*[0-9])*)[lL]?\\b"},{begin:"\\b0[xX]([0-9a-fA-F](_*[0-9a-fA-F])*)[lL]?\\b"},{begin:"\\b0(_*[0-7])*[lL]?\\b"},{begin:"\\b0[bB][01](_*[01])*[lL]?\\b"}],relevance:0};function Ui(e,t,n){return-1===n?"":e.replace(t,(o=>Ui(e,t,n-1)))}const Fi=["as","in","of","if","for","while","finally","var","new","function","do","return","void","else","break","catch","instanceof","with","throw","case","default","try","switch","continue","typeof","delete","let","yield","const","class","debugger","async","await","static","import","from","export","extends"],zi=["true","false","null","undefined","NaN","Infinity"],qi=["Object","Function","Boolean","Symbol","Math","Date","Number","BigInt","String","RegExp","Array","Float32Array","Float64Array","Int8Array","Uint8Array","Uint8ClampedArray","Int16Array","Int32Array","Uint16Array","Uint32Array","BigInt64Array","BigUint64Array","Set","Map","WeakSet","WeakMap","ArrayBuffer","SharedArrayBuffer","Atomics","DataView","JSON","Promise","Generator","GeneratorFunction","AsyncFunction","Reflect","Proxy","Intl","WebAssembly"],Hi=["Error","EvalError","InternalError","RangeError","ReferenceError","SyntaxError","TypeError","URIError"],Wi=["setInterval","setTimeout","clearInterval","clearTimeout","require","exports","eval","isFinite","isNaN","parseFloat","parseInt","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","escape","unescape"],Gi=["arguments","this","super","console","window","document","localStorage","module","global"],Ki=[].concat(Wi,qi,Hi);function Zi(e){const t=e.regex,n="[A-Za-z$_][0-9A-Za-z$_]*",o={begin:/<[A-Za-z0-9\\._:-]+/,end:/\/[A-Za-z0-9\\._:-]+>|\/>/,isTrulyOpeningTag:(e,t)=>{const n=e[0].length+e.index,o=e.input[n];if("<"===o||","===o)return void t.ignoreMatch();let a;">"===o&&(((e,{after:t})=>{const n="",x={match:[/const|var|let/,/\s+/,n,/\s*/,/=\s*/,/(async\s*)?/,t.lookahead($)],keywords:"async",className:{1:"keyword",3:"title.function"},contains:[f]};return{name:"Javascript",aliases:["js","jsx","mjs","cjs"],keywords:a,exports:{PARAMS_CONTAINS:h,CLASS_REFERENCE:b},illegal:/#(?![$_A-z])/,contains:[e.SHEBANG({label:"shebang",binary:"node",relevance:5}),{label:"use_strict",className:"meta",relevance:10,begin:/^\s*['"]use (strict|asm)['"]/},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,c,d,u,p,s,b,{className:"attr",begin:n+t.lookahead(":"),relevance:0},x,{begin:"("+e.RE_STARTERS_RE+"|\\b(case|return|throw)\\b)\\s*",keywords:"return throw case",relevance:0,contains:[p,e.REGEXP_MODE,{className:"function",begin:$,returnBegin:!0,end:"\\s*=>",contains:[{className:"params",variants:[{begin:e.UNDERSCORE_IDENT_RE,relevance:0},{className:null,begin:/\(\s*\)/,skip:!0},{begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:a,contains:h}]}]},{begin:/,/,relevance:0},{match:/\s+/,relevance:0},{variants:[{begin:"<>",end:""},{match:/<[A-Za-z0-9\\._:-]+\s*\/>/},{begin:o.begin,"on:begin":o.isTrulyOpeningTag,end:o.end}],subLanguage:"xml",contains:[{begin:o.begin,end:o.end,skip:!0,contains:["self"]}]}]},v,{beginKeywords:"while if switch catch for"},{begin:"\\b(?!function)"+e.UNDERSCORE_IDENT_RE+"\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)\\s*\\{",returnBegin:!0,label:"func.def",contains:[f,e.inherit(e.TITLE_MODE,{begin:n,className:"title.function"})]},{match:/\.\.\./,relevance:0},k,{match:"\\$"+n,relevance:0},{match:[/\bconstructor(?=\s*\()/],className:{1:"title.function"},contains:[f]},y,{relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/,className:"variable.constant"},_,E,{match:/\$[(.]/}]}}const Vi=e=>Vr(/\b/,e,/\w$/.test(e)?/\b/:/\B/),Qi=["Protocol","Type"].map(Vi),Xi=["init","self"].map(Vi),Yi=["Any","Self"],Ji=["actor","associatedtype","async","await",/as\?/,/as!/,"as","break","case","catch","class","continue","convenience","default","defer","deinit","didSet","do","dynamic","else","enum","extension","fallthrough",/fileprivate\(set\)/,"fileprivate","final","for","func","get","guard","if","import","indirect","infix",/init\?/,/init!/,"inout",/internal\(set\)/,"internal","in","is","isolated","nonisolated","lazy","let","mutating","nonmutating",/open\(set\)/,"open","operator","optional","override","postfix","precedencegroup","prefix",/private\(set\)/,"private","protocol",/public\(set\)/,"public","repeat","required","rethrows","return","set","some","static","struct","subscript","super","switch","throws","throw",/try\?/,/try!/,"try","typealias",/unowned\(safe\)/,/unowned\(unsafe\)/,"unowned","var","weak","where","while","willSet"],es=["false","nil","true"],ts=["assignment","associativity","higherThan","left","lowerThan","none","right"],ns=["#colorLiteral","#column","#dsohandle","#else","#elseif","#endif","#error","#file","#fileID","#fileLiteral","#filePath","#function","#if","#imageLiteral","#keyPath","#line","#selector","#sourceLocation","#warn_unqualified_access","#warning"],os=["abs","all","any","assert","assertionFailure","debugPrint","dump","fatalError","getVaList","isKnownUniquelyReferenced","max","min","numericCast","pointwiseMax","pointwiseMin","precondition","preconditionFailure","print","readLine","repeatElement","sequence","stride","swap","swift_unboxFromSwiftValueWithType","transcode","type","unsafeBitCast","unsafeDowncast","withExtendedLifetime","withUnsafeMutablePointer","withUnsafePointer","withVaList","withoutActuallyEscaping","zip"],as=Qr(/[/=\-+!*%<>&|^~?]/,/[\u00A1-\u00A7]/,/[\u00A9\u00AB]/,/[\u00AC\u00AE]/,/[\u00B0\u00B1]/,/[\u00B6\u00BB\u00BF\u00D7\u00F7]/,/[\u2016-\u2017]/,/[\u2020-\u2027]/,/[\u2030-\u203E]/,/[\u2041-\u2053]/,/[\u2055-\u205E]/,/[\u2190-\u23FF]/,/[\u2500-\u2775]/,/[\u2794-\u2BFF]/,/[\u2E00-\u2E7F]/,/[\u3001-\u3003]/,/[\u3008-\u3020]/,/[\u3030]/),rs=Qr(as,/[\u0300-\u036F]/,/[\u1DC0-\u1DFF]/,/[\u20D0-\u20FF]/,/[\uFE00-\uFE0F]/,/[\uFE20-\uFE2F]/),is=Vr(as,rs,"*"),ss=Qr(/[a-zA-Z_]/,/[\u00A8\u00AA\u00AD\u00AF\u00B2-\u00B5\u00B7-\u00BA]/,/[\u00BC-\u00BE\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u00FF]/,/[\u0100-\u02FF\u0370-\u167F\u1681-\u180D\u180F-\u1DBF]/,/[\u1E00-\u1FFF]/,/[\u200B-\u200D\u202A-\u202E\u203F-\u2040\u2054\u2060-\u206F]/,/[\u2070-\u20CF\u2100-\u218F\u2460-\u24FF\u2776-\u2793]/,/[\u2C00-\u2DFF\u2E80-\u2FFF]/,/[\u3004-\u3007\u3021-\u302F\u3031-\u303F\u3040-\uD7FF]/,/[\uF900-\uFD3D\uFD40-\uFDCF\uFDF0-\uFE1F\uFE30-\uFE44]/,/[\uFE47-\uFEFE\uFF00-\uFFFD]/),ls=Qr(ss,/\d/,/[\u0300-\u036F\u1DC0-\u1DFF\u20D0-\u20FF\uFE20-\uFE2F]/),cs=Vr(ss,ls,"*"),ds=Vr(/[A-Z]/,ls,"*"),us=["autoclosure",Vr(/convention\(/,Qr("swift","block","c"),/\)/),"discardableResult","dynamicCallable","dynamicMemberLookup","escaping","frozen","GKInspectable","IBAction","IBDesignable","IBInspectable","IBOutlet","IBSegueAction","inlinable","main","nonobjc","NSApplicationMain","NSCopying","NSManaged",Vr(/objc\(/,cs,/\)/),"objc","objcMembers","propertyWrapper","requires_stored_property_inits","resultBuilder","testable","UIApplicationMain","unknown","usableFromInline"],ps=["iOS","iOSApplicationExtension","macOS","macOSApplicationExtension","macCatalyst","macCatalystApplicationExtension","watchOS","watchOSApplicationExtension","tvOS","tvOSApplicationExtension","swift"];var ms=Object.freeze({__proto__:null,grmr_bash:e=>{const t=e.regex,n={},o={begin:/\$\{/,end:/\}/,contains:["self",{begin:/:-/,contains:[n]}]};Object.assign(n,{className:"variable",variants:[{begin:t.concat(/\$[\w\d#@][\w\d_]*/,"(?![\\w\\d])(?![$])")},o]});const a={className:"subst",begin:/\$\(/,end:/\)/,contains:[e.BACKSLASH_ESCAPE]},r={begin:/<<-?\s*(?=\w+)/,starts:{contains:[e.END_SAME_AS_BEGIN({begin:/(\w+)/,end:/(\w+)/,className:"string"})]}},i={className:"string",begin:/"/,end:/"/,contains:[e.BACKSLASH_ESCAPE,n,a]};a.contains.push(i);const s={begin:/\$\(\(/,end:/\)\)/,contains:[{begin:/\d+#[0-9a-f]+/,className:"number"},e.NUMBER_MODE,n]},l=e.SHEBANG({binary:"(fish|bash|zsh|sh|csh|ksh|tcsh|dash|scsh)",relevance:10}),c={className:"function",begin:/\w[\w\d_]*\s*\(\s*\)\s*\{/,returnBegin:!0,contains:[e.inherit(e.TITLE_MODE,{begin:/\w[\w\d_]*/})],relevance:0};return{name:"Bash",aliases:["sh"],keywords:{$pattern:/\b[a-z._-]+\b/,keyword:["if","then","else","elif","fi","for","while","in","do","done","case","esac","function"],literal:["true","false"],built_in:["break","cd","continue","eval","exec","exit","export","getopts","hash","pwd","readonly","return","shift","test","times","trap","umask","unset","alias","bind","builtin","caller","command","declare","echo","enable","help","let","local","logout","mapfile","printf","read","readarray","source","type","typeset","ulimit","unalias","set","shopt","autoload","bg","bindkey","bye","cap","chdir","clone","comparguments","compcall","compctl","compdescribe","compfiles","compgroups","compquote","comptags","comptry","compvalues","dirs","disable","disown","echotc","echoti","emulate","fc","fg","float","functions","getcap","getln","history","integer","jobs","kill","limit","log","noglob","popd","print","pushd","pushln","rehash","sched","setcap","setopt","stat","suspend","ttyctl","unfunction","unhash","unlimit","unsetopt","vared","wait","whence","where","which","zcompile","zformat","zftp","zle","zmodload","zparseopts","zprof","zpty","zregexparse","zsocket","zstyle","ztcp","chcon","chgrp","chown","chmod","cp","dd","df","dir","dircolors","ln","ls","mkdir","mkfifo","mknod","mktemp","mv","realpath","rm","rmdir","shred","sync","touch","truncate","vdir","b2sum","base32","base64","cat","cksum","comm","csplit","cut","expand","fmt","fold","head","join","md5sum","nl","numfmt","od","paste","ptx","pr","sha1sum","sha224sum","sha256sum","sha384sum","sha512sum","shuf","sort","split","sum","tac","tail","tr","tsort","unexpand","uniq","wc","arch","basename","chroot","date","dirname","du","echo","env","expr","factor","groups","hostid","id","link","logname","nice","nohup","nproc","pathchk","pinky","printenv","printf","pwd","readlink","runcon","seq","sleep","stat","stdbuf","stty","tee","test","timeout","tty","uname","unlink","uptime","users","who","whoami","yes"]},contains:[l,e.SHEBANG(),c,s,e.HASH_COMMENT_MODE,r,{match:/(\/[a-z._-]+)+/},i,{className:"",begin:/\\"/},{className:"string",begin:/'/,end:/'/},n]}},grmr_c:e=>{const t=e.regex,n=e.COMMENT("//","$",{contains:[{begin:/\\\n/}]}),o="[a-zA-Z_]\\w*::",a="(decltype\\(auto\\)|"+t.optional(o)+"[a-zA-Z_]\\w*"+t.optional("<[^<>]+>")+")",r={className:"type",variants:[{begin:"\\b[a-z\\d_]*_t\\b"},{match:/\batomic_[a-z]{3,6}\b/}]},i={className:"string",variants:[{begin:'(u8?|U|L)?"',end:'"',illegal:"\\n",contains:[e.BACKSLASH_ESCAPE]},{begin:"(u8?|U|L)?'(\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\S)|.)",end:"'",illegal:"."},e.END_SAME_AS_BEGIN({begin:/(?:u8?|U|L)?R"([^()\\ ]{0,16})\(/,end:/\)([^()\\ ]{0,16})"/})]},s={className:"number",variants:[{begin:"\\b(0b[01']+)"},{begin:"(-?)\\b([\\d']+(\\.[\\d']*)?|\\.[\\d']+)((ll|LL|l|L)(u|U)?|(u|U)(ll|LL|l|L)?|f|F|b|B)"},{begin:"(-?)(\\b0[xX][a-fA-F0-9']+|(\\b[\\d']+(\\.[\\d']*)?|\\.[\\d']+)([eE][-+]?[\\d']+)?)"}],relevance:0},l={className:"meta",begin:/#\s*[a-z]+\b/,end:/$/,keywords:{keyword:"if else elif endif define undef warning error line pragma _Pragma ifdef ifndef include"},contains:[{begin:/\\\n/,relevance:0},e.inherit(i,{className:"string"}),{className:"string",begin:/<.*?>/},n,e.C_BLOCK_COMMENT_MODE]},c={className:"title",begin:t.optional(o)+e.IDENT_RE,relevance:0},d=t.optional(o)+e.IDENT_RE+"\\s*\\(",u={keyword:["asm","auto","break","case","continue","default","do","else","enum","extern","for","fortran","goto","if","inline","register","restrict","return","sizeof","struct","switch","typedef","union","volatile","while","_Alignas","_Alignof","_Atomic","_Generic","_Noreturn","_Static_assert","_Thread_local","alignas","alignof","noreturn","static_assert","thread_local","_Pragma"],type:["float","double","signed","unsigned","int","short","long","char","void","_Bool","_Complex","_Imaginary","_Decimal32","_Decimal64","_Decimal128","const","static","complex","bool","imaginary"],literal:"true false NULL",built_in:"std string wstring cin cout cerr clog stdin stdout stderr stringstream istringstream ostringstream auto_ptr deque list queue stack vector map set pair bitset multiset multimap unordered_set unordered_map unordered_multiset unordered_multimap priority_queue make_pair array shared_ptr abort terminate abs acos asin atan2 atan calloc ceil cosh cos exit exp fabs floor fmod fprintf fputs free frexp fscanf future isalnum isalpha iscntrl isdigit isgraph islower isprint ispunct isspace isupper isxdigit tolower toupper labs ldexp log10 log malloc realloc memchr memcmp memcpy memset modf pow printf putchar puts scanf sinh sin snprintf sprintf sqrt sscanf strcat strchr strcmp strcpy strcspn strlen strncat strncmp strncpy strpbrk strrchr strspn strstr tanh tan vfprintf vprintf vsprintf endl initializer_list unique_ptr"},p=[l,r,n,e.C_BLOCK_COMMENT_MODE,s,i],m={variants:[{begin:/=/,end:/;/},{begin:/\(/,end:/\)/},{beginKeywords:"new throw return else",end:/;/}],keywords:u,contains:p.concat([{begin:/\(/,end:/\)/,keywords:u,contains:p.concat(["self"]),relevance:0}]),relevance:0},g={begin:"("+a+"[\\*&\\s]+)+"+d,returnBegin:!0,end:/[{;=]/,excludeEnd:!0,keywords:u,illegal:/[^\w\s\*&:<>.]/,contains:[{begin:"decltype\\(auto\\)",keywords:u,relevance:0},{begin:d,returnBegin:!0,contains:[e.inherit(c,{className:"title.function"})],relevance:0},{relevance:0,match:/,/},{className:"params",begin:/\(/,end:/\)/,keywords:u,relevance:0,contains:[n,e.C_BLOCK_COMMENT_MODE,i,s,r,{begin:/\(/,end:/\)/,keywords:u,relevance:0,contains:["self",n,e.C_BLOCK_COMMENT_MODE,i,s,r]}]},r,n,e.C_BLOCK_COMMENT_MODE,l]};return{name:"C",aliases:["h"],keywords:u,disableAutodetect:!0,illegal:"=]/,contains:[{beginKeywords:"final class struct"},e.TITLE_MODE]}]),exports:{preprocessor:l,strings:i,keywords:u}}},grmr_cpp:e=>{const t=e.regex,n=e.COMMENT("//","$",{contains:[{begin:/\\\n/}]}),o="[a-zA-Z_]\\w*::",a="(?!struct)(decltype\\(auto\\)|"+t.optional(o)+"[a-zA-Z_]\\w*"+t.optional("<[^<>]+>")+")",r={className:"type",begin:"\\b[a-z\\d_]*_t\\b"},i={className:"string",variants:[{begin:'(u8?|U|L)?"',end:'"',illegal:"\\n",contains:[e.BACKSLASH_ESCAPE]},{begin:"(u8?|U|L)?'(\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\S)|.)",end:"'",illegal:"."},e.END_SAME_AS_BEGIN({begin:/(?:u8?|U|L)?R"([^()\\ ]{0,16})\(/,end:/\)([^()\\ ]{0,16})"/})]},s={className:"number",variants:[{begin:"\\b(0b[01']+)"},{begin:"(-?)\\b([\\d']+(\\.[\\d']*)?|\\.[\\d']+)((ll|LL|l|L)(u|U)?|(u|U)(ll|LL|l|L)?|f|F|b|B)"},{begin:"(-?)(\\b0[xX][a-fA-F0-9']+|(\\b[\\d']+(\\.[\\d']*)?|\\.[\\d']+)([eE][-+]?[\\d']+)?)"}],relevance:0},l={className:"meta",begin:/#\s*[a-z]+\b/,end:/$/,keywords:{keyword:"if else elif endif define undef warning error line pragma _Pragma ifdef ifndef include"},contains:[{begin:/\\\n/,relevance:0},e.inherit(i,{className:"string"}),{className:"string",begin:/<.*?>/},n,e.C_BLOCK_COMMENT_MODE]},c={className:"title",begin:t.optional(o)+e.IDENT_RE,relevance:0},d=t.optional(o)+e.IDENT_RE+"\\s*\\(",u={type:["bool","char","char16_t","char32_t","char8_t","double","float","int","long","short","void","wchar_t","unsigned","signed","const","static"],keyword:["alignas","alignof","and","and_eq","asm","atomic_cancel","atomic_commit","atomic_noexcept","auto","bitand","bitor","break","case","catch","class","co_await","co_return","co_yield","compl","concept","const_cast|10","consteval","constexpr","constinit","continue","decltype","default","delete","do","dynamic_cast|10","else","enum","explicit","export","extern","false","final","for","friend","goto","if","import","inline","module","mutable","namespace","new","noexcept","not","not_eq","nullptr","operator","or","or_eq","override","private","protected","public","reflexpr","register","reinterpret_cast|10","requires","return","sizeof","static_assert","static_cast|10","struct","switch","synchronized","template","this","thread_local","throw","transaction_safe","transaction_safe_dynamic","true","try","typedef","typeid","typename","union","using","virtual","volatile","while","xor","xor_eq"],literal:["NULL","false","nullopt","nullptr","true"],built_in:["_Pragma"],_type_hints:["any","auto_ptr","barrier","binary_semaphore","bitset","complex","condition_variable","condition_variable_any","counting_semaphore","deque","false_type","future","imaginary","initializer_list","istringstream","jthread","latch","lock_guard","multimap","multiset","mutex","optional","ostringstream","packaged_task","pair","promise","priority_queue","queue","recursive_mutex","recursive_timed_mutex","scoped_lock","set","shared_future","shared_lock","shared_mutex","shared_timed_mutex","shared_ptr","stack","string_view","stringstream","timed_mutex","thread","true_type","tuple","unique_lock","unique_ptr","unordered_map","unordered_multimap","unordered_multiset","unordered_set","variant","vector","weak_ptr","wstring","wstring_view"]},p={className:"function.dispatch",relevance:0,keywords:{_hint:["abort","abs","acos","apply","as_const","asin","atan","atan2","calloc","ceil","cerr","cin","clog","cos","cosh","cout","declval","endl","exchange","exit","exp","fabs","floor","fmod","forward","fprintf","fputs","free","frexp","fscanf","future","invoke","isalnum","isalpha","iscntrl","isdigit","isgraph","islower","isprint","ispunct","isspace","isupper","isxdigit","labs","launder","ldexp","log","log10","make_pair","make_shared","make_shared_for_overwrite","make_tuple","make_unique","malloc","memchr","memcmp","memcpy","memset","modf","move","pow","printf","putchar","puts","realloc","scanf","sin","sinh","snprintf","sprintf","sqrt","sscanf","std","stderr","stdin","stdout","strcat","strchr","strcmp","strcpy","strcspn","strlen","strncat","strncmp","strncpy","strpbrk","strrchr","strspn","strstr","swap","tan","tanh","terminate","to_underlying","tolower","toupper","vfprintf","visit","vprintf","vsprintf"]},begin:t.concat(/\b/,/(?!decltype)/,/(?!if)/,/(?!for)/,/(?!switch)/,/(?!while)/,e.IDENT_RE,t.lookahead(/(<[^<>]+>|)\s*\(/))},m=[p,l,r,n,e.C_BLOCK_COMMENT_MODE,s,i],g={variants:[{begin:/=/,end:/;/},{begin:/\(/,end:/\)/},{beginKeywords:"new throw return else",end:/;/}],keywords:u,contains:m.concat([{begin:/\(/,end:/\)/,keywords:u,contains:m.concat(["self"]),relevance:0}]),relevance:0},h={className:"function",begin:"("+a+"[\\*&\\s]+)+"+d,returnBegin:!0,end:/[{;=]/,excludeEnd:!0,keywords:u,illegal:/[^\w\s\*&:<>.]/,contains:[{begin:"decltype\\(auto\\)",keywords:u,relevance:0},{begin:d,returnBegin:!0,contains:[c],relevance:0},{begin:/::/,relevance:0},{begin:/:/,endsWithParent:!0,contains:[i,s]},{relevance:0,match:/,/},{className:"params",begin:/\(/,end:/\)/,keywords:u,relevance:0,contains:[n,e.C_BLOCK_COMMENT_MODE,i,s,r,{begin:/\(/,end:/\)/,keywords:u,relevance:0,contains:["self",n,e.C_BLOCK_COMMENT_MODE,i,s,r]}]},r,n,e.C_BLOCK_COMMENT_MODE,l]};return{name:"C++",aliases:["cc","c++","h++","hpp","hh","hxx","cxx"],keywords:u,illegal:"",keywords:u,contains:["self",r]},{begin:e.IDENT_RE+"::",keywords:u},{match:[/\b(?:enum(?:\s+(?:class|struct))?|class|struct|union)/,/\s+/,/\w+/],className:{1:"keyword",3:"title.class"}}])}},grmr_csharp:e=>{const t={keyword:["abstract","as","base","break","case","catch","class","const","continue","do","else","event","explicit","extern","finally","fixed","for","foreach","goto","if","implicit","in","interface","internal","is","lock","namespace","new","operator","out","override","params","private","protected","public","readonly","record","ref","return","sealed","sizeof","stackalloc","static","struct","switch","this","throw","try","typeof","unchecked","unsafe","using","virtual","void","volatile","while"].concat(["add","alias","and","ascending","async","await","by","descending","equals","from","get","global","group","init","into","join","let","nameof","not","notnull","on","or","orderby","partial","remove","select","set","unmanaged","value|0","var","when","where","with","yield"]),built_in:["bool","byte","char","decimal","delegate","double","dynamic","enum","float","int","long","nint","nuint","object","sbyte","short","string","ulong","uint","ushort"],literal:["default","false","null","true"]},n=e.inherit(e.TITLE_MODE,{begin:"[a-zA-Z](\\.?\\w)*"}),o={className:"number",variants:[{begin:"\\b(0b[01']+)"},{begin:"(-?)\\b([\\d']+(\\.[\\d']*)?|\\.[\\d']+)(u|U|l|L|ul|UL|f|F|b|B)"},{begin:"(-?)(\\b0[xX][a-fA-F0-9']+|(\\b[\\d']+(\\.[\\d']*)?|\\.[\\d']+)([eE][-+]?[\\d']+)?)"}],relevance:0},a={className:"string",begin:'@"',end:'"',contains:[{begin:'""'}]},r=e.inherit(a,{illegal:/\n/}),i={className:"subst",begin:/\{/,end:/\}/,keywords:t},s=e.inherit(i,{illegal:/\n/}),l={className:"string",begin:/\$"/,end:'"',illegal:/\n/,contains:[{begin:/\{\{/},{begin:/\}\}/},e.BACKSLASH_ESCAPE,s]},c={className:"string",begin:/\$@"/,end:'"',contains:[{begin:/\{\{/},{begin:/\}\}/},{begin:'""'},i]},d=e.inherit(c,{illegal:/\n/,contains:[{begin:/\{\{/},{begin:/\}\}/},{begin:'""'},s]});i.contains=[c,l,a,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,o,e.C_BLOCK_COMMENT_MODE],s.contains=[d,l,r,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,o,e.inherit(e.C_BLOCK_COMMENT_MODE,{illegal:/\n/})];const u={variants:[c,l,a,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},p={begin:"<",end:">",contains:[{beginKeywords:"in out"},n]},m=e.IDENT_RE+"(<"+e.IDENT_RE+"(\\s*,\\s*"+e.IDENT_RE+")*>)?(\\[\\])?",g={begin:"@"+e.IDENT_RE,relevance:0};return{name:"C#",aliases:["cs","c#"],keywords:t,illegal:/::/,contains:[e.COMMENT("///","$",{returnBegin:!0,contains:[{className:"doctag",variants:[{begin:"///",relevance:0},{begin:"\x3c!--|--\x3e"},{begin:""}]}]}),e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{className:"meta",begin:"#",end:"$",keywords:{keyword:"if else elif endif define undef warning error line region endregion pragma checksum"}},u,o,{beginKeywords:"class interface",relevance:0,end:/[{;=]/,illegal:/[^\s:,]/,contains:[{beginKeywords:"where class"},n,p,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{beginKeywords:"namespace",relevance:0,end:/[{;=]/,illegal:/[^\s:]/,contains:[n,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{beginKeywords:"record",relevance:0,end:/[{;=]/,illegal:/[^\s:]/,contains:[n,p,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{className:"meta",begin:"^\\s*\\[(?=[\\w])",excludeBegin:!0,end:"\\]",excludeEnd:!0,contains:[{className:"string",begin:/"/,end:/"/}]},{beginKeywords:"new return throw await else",relevance:0},{className:"function",begin:"("+m+"\\s+)+"+e.IDENT_RE+"\\s*(<[^=]+>\\s*)?\\(",returnBegin:!0,end:/\s*[{;=]/,excludeEnd:!0,keywords:t,contains:[{beginKeywords:"public private protected static internal protected abstract async extern override unsafe virtual new sealed partial",relevance:0},{begin:e.IDENT_RE+"\\s*(<[^=]+>\\s*)?\\(",returnBegin:!0,contains:[e.TITLE_MODE,p],relevance:0},{match:/\(\)/},{className:"params",begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:t,relevance:0,contains:[u,o,e.C_BLOCK_COMMENT_MODE]},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},g]}},grmr_css:e=>{const t=e.regex,n=Ti(e),o=[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE];return{name:"CSS",case_insensitive:!0,illegal:/[=|'\$]/,keywords:{keyframePosition:"from to"},classNameAliases:{keyframePosition:"selector-tag"},contains:[n.BLOCK_COMMENT,{begin:/-(webkit|moz|ms|o)-(?=[a-z])/},n.CSS_NUMBER_MODE,{className:"selector-id",begin:/#[A-Za-z0-9_-]+/,relevance:0},{className:"selector-class",begin:"\\.[a-zA-Z-][a-zA-Z0-9_-]*",relevance:0},n.ATTRIBUTE_SELECTOR_MODE,{className:"selector-pseudo",variants:[{begin:":("+Li.join("|")+")"},{begin:":(:)?("+Ii.join("|")+")"}]},n.CSS_VARIABLE,{className:"attribute",begin:"\\b("+Pi.join("|")+")\\b"},{begin:/:/,end:/[;}{]/,contains:[n.BLOCK_COMMENT,n.HEXCOLOR,n.IMPORTANT,n.CSS_NUMBER_MODE,...o,{begin:/(url|data-uri)\(/,end:/\)/,relevance:0,keywords:{built_in:"url data-uri"},contains:[{className:"string",begin:/[^)]/,endsWithParent:!0,excludeEnd:!0}]},n.FUNCTION_DISPATCH]},{begin:t.lookahead(/@/),end:"[{;]",relevance:0,illegal:/:/,contains:[{className:"keyword",begin:/@-?\w[\w]*(-\w+)*/},{begin:/\s/,endsWithParent:!0,excludeEnd:!0,relevance:0,keywords:{$pattern:/[a-z-]+/,keyword:"and or not only",attribute:Di.join(" ")},contains:[{begin:/[a-z-]+(?=:)/,className:"attribute"},...o,n.CSS_NUMBER_MODE]}]},{className:"selector-tag",begin:"\\b("+Ri.join("|")+")\\b"}]}},grmr_diff:e=>{const t=e.regex;return{name:"Diff",aliases:["patch"],contains:[{className:"meta",relevance:10,match:t.either(/^@@ +-\d+,\d+ +\+\d+,\d+ +@@/,/^\*\*\* +\d+,\d+ +\*\*\*\*$/,/^--- +\d+,\d+ +----$/)},{className:"comment",variants:[{begin:t.either(/Index: /,/^index/,/={3,}/,/^-{3}/,/^\*{3} /,/^\+{3}/,/^diff --git/),end:/$/},{match:/^\*{15}$/}]},{className:"addition",begin:/^\+/,end:/$/},{className:"deletion",begin:/^-/,end:/$/},{className:"addition",begin:/^!/,end:/$/}]}},grmr_go:e=>{const t={keyword:["break","case","chan","const","continue","default","defer","else","fallthrough","for","func","go","goto","if","import","interface","map","package","range","return","select","struct","switch","type","var"],type:["bool","byte","complex64","complex128","error","float32","float64","int8","int16","int32","int64","string","uint8","uint16","uint32","uint64","int","uint","uintptr","rune"],literal:["true","false","iota","nil"],built_in:["append","cap","close","complex","copy","imag","len","make","new","panic","print","println","real","recover","delete"]};return{name:"Go",aliases:["golang"],keywords:t,illegal:"{const t=e.regex,n={className:"number",relevance:0,variants:[{begin:/([+-]+)?[\d]+_[\d_]+/},{begin:e.NUMBER_RE}]},o=e.COMMENT();o.variants=[{begin:/;/,end:/$/},{begin:/#/,end:/$/}];const a={className:"variable",variants:[{begin:/\$[\w\d"][\w\d_]*/},{begin:/\$\{(.*?)\}/}]},r={className:"literal",begin:/\bon|off|true|false|yes|no\b/},i={className:"string",contains:[e.BACKSLASH_ESCAPE],variants:[{begin:"'''",end:"'''",relevance:10},{begin:'"""',end:'"""',relevance:10},{begin:'"',end:'"'},{begin:"'",end:"'"}]},s={begin:/\[/,end:/\]/,contains:[o,r,a,i,n,"self"],relevance:0},l=t.either(/[A-Za-z0-9_-]+/,/"(\\"|[^"])*"/,/'[^']*'/);return{name:"TOML, also INI",aliases:["toml"],case_insensitive:!0,illegal:/\S/,contains:[o,{className:"section",begin:/\[+/,end:/\]+/},{begin:t.concat(l,"(\\s*\\.\\s*",l,")*",t.lookahead(/\s*=\s*[^#\s]/)),className:"attr",starts:{end:/$/,contains:[o,s,r,a,i,n]}}]}},grmr_java:e=>{e.regex;const t="[À-ʸa-zA-Z_$][À-ʸa-zA-Z_$0-9]*",n=t+Ui("(?:<"+t+"~~~(?:\\s*,\\s*"+t+"~~~)*>)?",/~~~/g,2),o={keyword:["synchronized","abstract","private","var","static","if","const ","for","while","strictfp","finally","protected","import","native","final","void","enum","else","break","transient","catch","instanceof","volatile","case","assert","package","default","public","try","switch","continue","throws","protected","public","private","module","requires","exports","do","sealed"],literal:["false","true","null"],type:["char","boolean","long","float","int","byte","short","double"],built_in:["super","this"]},a={className:"meta",begin:"@"+t,contains:[{begin:/\(/,end:/\)/,contains:["self"]}]},r={className:"params",begin:/\(/,end:/\)/,keywords:o,relevance:0,contains:[e.C_BLOCK_COMMENT_MODE],endsParent:!0};return{name:"Java",aliases:["jsp"],keywords:o,illegal:/<\/|#/,contains:[e.COMMENT("/\\*\\*","\\*/",{relevance:0,contains:[{begin:/\w+@/,relevance:0},{className:"doctag",begin:"@[A-Za-z]+"}]}),{begin:/import java\.[a-z]+\./,keywords:"import",relevance:2},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{begin:/"""/,end:/"""/,className:"string",contains:[e.BACKSLASH_ESCAPE]},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,{match:[/\b(?:class|interface|enum|extends|implements|new)/,/\s+/,t],className:{1:"keyword",3:"title.class"}},{match:/non-sealed/,scope:"keyword"},{begin:[t,/\s+/,t,/\s+/,/=/],className:{1:"type",3:"variable",5:"operator"}},{begin:[/record/,/\s+/,t],className:{1:"keyword",3:"title.class"},contains:[r,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{beginKeywords:"new throw return else",relevance:0},{begin:["(?:"+n+"\\s+)",e.UNDERSCORE_IDENT_RE,/\s*(?=\()/],className:{2:"title.function"},keywords:o,contains:[{className:"params",begin:/\(/,end:/\)/,keywords:o,relevance:0,contains:[a,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,Bi,e.C_BLOCK_COMMENT_MODE]},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},Bi,a]}},grmr_javascript:Zi,grmr_json:e=>({name:"JSON",contains:[{className:"attr",begin:/"(\\.|[^\\"\r\n])*"(?=\s*:)/,relevance:1.01},{match:/[{}[\],:]/,className:"punctuation",relevance:0},e.QUOTE_STRING_MODE,{beginKeywords:"true false null"},e.C_NUMBER_MODE,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE],illegal:"\\S"}),grmr_kotlin:e=>{const t={keyword:"abstract as val var vararg get set class object open private protected public noinline crossinline dynamic final enum if else do while for when throw try catch finally import package is in fun override companion reified inline lateinit init interface annotation data sealed internal infix operator out by constructor super tailrec where const inner suspend typealias external expect actual",built_in:"Byte Short Char Int Long Boolean Float Double Void Unit Nothing",literal:"true false null"},n={className:"symbol",begin:e.UNDERSCORE_IDENT_RE+"@"},o={className:"subst",begin:/\$\{/,end:/\}/,contains:[e.C_NUMBER_MODE]},a={className:"variable",begin:"\\$"+e.UNDERSCORE_IDENT_RE},r={className:"string",variants:[{begin:'"""',end:'"""(?=[^"])',contains:[a,o]},{begin:"'",end:"'",illegal:/\n/,contains:[e.BACKSLASH_ESCAPE]},{begin:'"',end:'"',illegal:/\n/,contains:[e.BACKSLASH_ESCAPE,a,o]}]};o.contains.push(r);const i={className:"meta",begin:"@(?:file|property|field|get|set|receiver|param|setparam|delegate)\\s*:(?:\\s*"+e.UNDERSCORE_IDENT_RE+")?"},s={className:"meta",begin:"@"+e.UNDERSCORE_IDENT_RE,contains:[{begin:/\(/,end:/\)/,contains:[e.inherit(r,{className:"string"})]}]},l=Bi,c=e.COMMENT("/\\*","\\*/",{contains:[e.C_BLOCK_COMMENT_MODE]}),d={variants:[{className:"type",begin:e.UNDERSCORE_IDENT_RE},{begin:/\(/,end:/\)/,contains:[]}]},u=d;return u.variants[1].contains=[d],d.variants[1].contains=[u],{name:"Kotlin",aliases:["kt","kts"],keywords:t,contains:[e.COMMENT("/\\*\\*","\\*/",{relevance:0,contains:[{className:"doctag",begin:"@[A-Za-z]+"}]}),e.C_LINE_COMMENT_MODE,c,{className:"keyword",begin:/\b(break|continue|return|this)\b/,starts:{contains:[{className:"symbol",begin:/@\w+/}]}},n,i,s,{className:"function",beginKeywords:"fun",end:"[(]|$",returnBegin:!0,excludeEnd:!0,keywords:t,relevance:5,contains:[{begin:e.UNDERSCORE_IDENT_RE+"\\s*\\(",returnBegin:!0,relevance:0,contains:[e.UNDERSCORE_TITLE_MODE]},{className:"type",begin://,keywords:"reified",relevance:0},{className:"params",begin:/\(/,end:/\)/,endsParent:!0,keywords:t,relevance:0,contains:[{begin:/:/,end:/[=,\/]/,endsWithParent:!0,contains:[d,e.C_LINE_COMMENT_MODE,c],relevance:0},e.C_LINE_COMMENT_MODE,c,i,s,r,e.C_NUMBER_MODE]},c]},{className:"class",beginKeywords:"class interface trait",end:/[:\{(]|$/,excludeEnd:!0,illegal:"extends implements",contains:[{beginKeywords:"public protected internal private constructor"},e.UNDERSCORE_TITLE_MODE,{className:"type",begin://,excludeBegin:!0,excludeEnd:!0,relevance:0},{className:"type",begin:/[,:]\s*/,end:/[<\(,]|$/,excludeBegin:!0,returnEnd:!0},i,s]},r,{className:"meta",begin:"^#!/usr/bin/env",end:"$",illegal:"\n"},l]}},grmr_less:e=>{const t=Ti(e),n=ji,o="([\\w-]+|@\\{[\\w-]+\\})",a=[],r=[],i=e=>({className:"string",begin:"~?"+e+".*?"+e}),s=(e,t,n)=>({className:e,begin:t,relevance:n}),l={$pattern:/[a-z-]+/,keyword:"and or not only",attribute:Di.join(" ")},c={begin:"\\(",end:"\\)",contains:r,keywords:l,relevance:0};r.push(e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,i("'"),i('"'),t.CSS_NUMBER_MODE,{begin:"(url|data-uri)\\(",starts:{className:"string",end:"[\\)\\n]",excludeEnd:!0}},t.HEXCOLOR,c,s("variable","@@?[\\w-]+",10),s("variable","@\\{[\\w-]+\\}"),s("built_in","~?`[^`]*?`"),{className:"attribute",begin:"[\\w-]+\\s*:",end:":",returnBegin:!0,excludeEnd:!0},t.IMPORTANT);const d=r.concat({begin:/\{/,end:/\}/,contains:a}),u={beginKeywords:"when",endsWithParent:!0,contains:[{beginKeywords:"and not"}].concat(r)},p={begin:o+"\\s*:",returnBegin:!0,end:/[;}]/,relevance:0,contains:[{begin:/-(webkit|moz|ms|o)-/},t.CSS_VARIABLE,{className:"attribute",begin:"\\b("+Pi.join("|")+")\\b",end:/(?=:)/,starts:{endsWithParent:!0,illegal:"[<=$]",relevance:0,contains:r}}]},m={className:"keyword",begin:"@(import|media|charset|font-face|(-[a-z]+-)?keyframes|supports|document|namespace|page|viewport|host)\\b",starts:{end:"[;{}]",keywords:l,returnEnd:!0,contains:r,relevance:0}},g={className:"variable",variants:[{begin:"@[\\w-]+\\s*:",relevance:15},{begin:"@[\\w-]+"}],starts:{end:"[;}]",returnEnd:!0,contains:d}},h={variants:[{begin:"[\\.#:&\\[>]",end:"[;{}]"},{begin:o,end:/\{/}],returnBegin:!0,returnEnd:!0,illegal:"[<='$\"]",relevance:0,contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,u,s("keyword","all\\b"),s("variable","@\\{[\\w-]+\\}"),{begin:"\\b("+Ri.join("|")+")\\b",className:"selector-tag"},t.CSS_NUMBER_MODE,s("selector-tag",o,0),s("selector-id","#"+o),s("selector-class","\\."+o,0),s("selector-tag","&",0),t.ATTRIBUTE_SELECTOR_MODE,{className:"selector-pseudo",begin:":("+Li.join("|")+")"},{className:"selector-pseudo",begin:":(:)?("+Ii.join("|")+")"},{begin:/\(/,end:/\)/,relevance:0,contains:d},{begin:"!important"},t.FUNCTION_DISPATCH]},f={begin:`[\\w-]+:(:)?(${n.join("|")})`,returnBegin:!0,contains:[h]};return a.push(e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,m,g,f,p,h),{name:"Less",case_insensitive:!0,illegal:"[=>'/<($\"]",contains:a}},grmr_lua:e=>{const t="\\[=*\\[",n="\\]=*\\]",o={begin:t,end:n,contains:["self"]},a=[e.COMMENT("--(?!\\[=*\\[)","$"),e.COMMENT("--\\[=*\\[",n,{contains:[o],relevance:10})];return{name:"Lua",keywords:{$pattern:e.UNDERSCORE_IDENT_RE,literal:"true false nil",keyword:"and break do else elseif end for goto if in local not or repeat return then until while",built_in:"_G _ENV _VERSION __index __newindex __mode __call __metatable __tostring __len __gc __add __sub __mul __div __mod __pow __concat __unm __eq __lt __le assert collectgarbage dofile error getfenv getmetatable ipairs load loadfile loadstring module next pairs pcall print rawequal rawget rawset require select setfenv setmetatable tonumber tostring type unpack xpcall arg self coroutine resume yield status wrap create running debug getupvalue debug sethook getmetatable gethook setmetatable setlocal traceback setfenv getinfo setupvalue getlocal getregistry getfenv io lines write close flush open output type read stderr stdin input stdout popen tmpfile math log max acos huge ldexp pi cos tanh pow deg tan cosh sinh random randomseed frexp ceil floor rad abs sqrt modf asin min mod fmod log10 atan2 exp sin atan os exit setlocale date getenv difftime remove time clock tmpname rename execute package preload loadlib loaded loaders cpath config path seeall string sub upper len gfind rep find match char dump gmatch reverse byte format gsub lower table setn insert getn foreachi maxn foreach concat sort remove"},contains:a.concat([{className:"function",beginKeywords:"function",end:"\\)",contains:[e.inherit(e.TITLE_MODE,{begin:"([_a-zA-Z]\\w*\\.)*([_a-zA-Z]\\w*:)?[_a-zA-Z]\\w*"}),{className:"params",begin:"\\(",endsWithParent:!0,contains:a}].concat(a)},e.C_NUMBER_MODE,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,{className:"string",begin:t,end:n,contains:[o],relevance:5}])}},grmr_makefile:e=>{const t={className:"variable",variants:[{begin:"\\$\\("+e.UNDERSCORE_IDENT_RE+"\\)",contains:[e.BACKSLASH_ESCAPE]},{begin:/\$[@%{const t=e.regex,n=t.concat(/[A-Z_]/,t.optional(/[A-Z0-9_.-]*:/),/[A-Z0-9_.-]*/),o={className:"symbol",begin:/&[a-z]+;|&#[0-9]+;|&#x[a-f0-9]+;/},a={begin:/\s/,contains:[{className:"keyword",begin:/#?[a-z_][a-z1-9_-]+/,illegal:/\n/}]},r=e.inherit(a,{begin:/\(/,end:/\)/}),i=e.inherit(e.APOS_STRING_MODE,{className:"string"}),s=e.inherit(e.QUOTE_STRING_MODE,{className:"string"}),l={endsWithParent:!0,illegal:/`]+/}]}]}]};return{name:"HTML, XML",aliases:["html","xhtml","rss","atom","xjb","xsd","xsl","plist","wsf","svg"],case_insensitive:!0,contains:[{className:"meta",begin://,relevance:10,contains:[a,s,i,r,{begin:/\[/,end:/\]/,contains:[{className:"meta",begin://,contains:[a,r,s,i]}]}]},e.COMMENT(//,{relevance:10}),{begin://,relevance:10},o,{className:"meta",begin:/<\?xml/,end:/\?>/,relevance:10},{className:"tag",begin:/)/,end:/>/,keywords:{name:"style"},contains:[l],starts:{end:/<\/style>/,returnEnd:!0,subLanguage:["css","xml"]}},{className:"tag",begin:/)/,end:/>/,keywords:{name:"script"},contains:[l],starts:{end:/<\/script>/,returnEnd:!0,subLanguage:["javascript","handlebars","xml"]}},{className:"tag",begin:/<>|<\/>/},{className:"tag",begin:t.concat(//,/>/,/\s/)))),end:/\/?>/,contains:[{className:"name",begin:n,relevance:0,starts:l}]},{className:"tag",begin:t.concat(/<\//,t.lookahead(t.concat(n,/>/))),contains:[{className:"name",begin:n,relevance:0},{begin:/>/,relevance:0,endsParent:!0}]}]}},grmr_markdown:e=>{const t={begin:/<\/?[A-Za-z_]/,end:">",subLanguage:"xml",relevance:0},n={variants:[{begin:/\[.+?\]\[.*?\]/,relevance:0},{begin:/\[.+?\]\(((data|javascript|mailto):|(?:http|ftp)s?:\/\/).*?\)/,relevance:2},{begin:e.regex.concat(/\[.+?\]\(/,/[A-Za-z][A-Za-z0-9+.-]*/,/:\/\/.*?\)/),relevance:2},{begin:/\[.+?\]\([./?&#].*?\)/,relevance:1},{begin:/\[.*?\]\(.*?\)/,relevance:0}],returnBegin:!0,contains:[{match:/\[(?=\])/},{className:"string",relevance:0,begin:"\\[",end:"\\]",excludeBegin:!0,returnEnd:!0},{className:"link",relevance:0,begin:"\\]\\(",end:"\\)",excludeBegin:!0,excludeEnd:!0},{className:"symbol",relevance:0,begin:"\\]\\[",end:"\\]",excludeBegin:!0,excludeEnd:!0}]},o={className:"strong",contains:[],variants:[{begin:/_{2}/,end:/_{2}/},{begin:/\*{2}/,end:/\*{2}/}]},a={className:"emphasis",contains:[],variants:[{begin:/\*(?!\*)/,end:/\*/},{begin:/_(?!_)/,end:/_/,relevance:0}]};o.contains.push(a),a.contains.push(o);let r=[t,n];return o.contains=o.contains.concat(r),a.contains=a.contains.concat(r),r=r.concat(o,a),{name:"Markdown",aliases:["md","mkdown","mkd"],contains:[{className:"section",variants:[{begin:"^#{1,6}",end:"$",contains:r},{begin:"(?=^.+?\\n[=-]{2,}$)",contains:[{begin:"^[=-]*$"},{begin:"^",end:"\\n",contains:r}]}]},t,{className:"bullet",begin:"^[ \t]*([*+-]|(\\d+\\.))(?=\\s+)",end:"\\s+",excludeEnd:!0},o,a,{className:"quote",begin:"^>\\s+",contains:r,end:"$"},{className:"code",variants:[{begin:"(`{3,})[^`](.|\\n)*?\\1`*[ ]*"},{begin:"(~{3,})[^~](.|\\n)*?\\1~*[ ]*"},{begin:"```",end:"```+[ ]*$"},{begin:"~~~",end:"~~~+[ ]*$"},{begin:"`.+?`"},{begin:"(?=^( {4}|\\t))",contains:[{begin:"^( {4}|\\t)",end:"(\\n)$"}],relevance:0}]},{begin:"^[-\\*]{3,}",end:"$"},n,{begin:/^\[[^\n]+\]:/,returnBegin:!0,contains:[{className:"symbol",begin:/\[/,end:/\]/,excludeBegin:!0,excludeEnd:!0},{className:"link",begin:/:\s*/,end:/$/,excludeBegin:!0}]}]}},grmr_objectivec:e=>{const t=/[a-zA-Z@][a-zA-Z0-9_]*/,n={$pattern:t,keyword:["@interface","@class","@protocol","@implementation"]};return{name:"Objective-C",aliases:["mm","objc","obj-c","obj-c++","objective-c++"],keywords:{$pattern:t,keyword:["int","float","while","char","export","sizeof","typedef","const","struct","for","union","unsigned","long","volatile","static","bool","mutable","if","do","return","goto","void","enum","else","break","extern","asm","case","short","default","double","register","explicit","signed","typename","this","switch","continue","wchar_t","inline","readonly","assign","readwrite","self","@synchronized","id","typeof","nonatomic","super","unichar","IBOutlet","IBAction","strong","weak","copy","in","out","inout","bycopy","byref","oneway","__strong","__weak","__block","__autoreleasing","@private","@protected","@public","@try","@property","@end","@throw","@catch","@finally","@autoreleasepool","@synthesize","@dynamic","@selector","@optional","@required","@encode","@package","@import","@defs","@compatibility_alias","__bridge","__bridge_transfer","__bridge_retained","__bridge_retain","__covariant","__contravariant","__kindof","_Nonnull","_Nullable","_Null_unspecified","__FUNCTION__","__PRETTY_FUNCTION__","__attribute__","getter","setter","retain","unsafe_unretained","nonnull","nullable","null_unspecified","null_resettable","class","instancetype","NS_DESIGNATED_INITIALIZER","NS_UNAVAILABLE","NS_REQUIRES_SUPER","NS_RETURNS_INNER_POINTER","NS_INLINE","NS_AVAILABLE","NS_DEPRECATED","NS_ENUM","NS_OPTIONS","NS_SWIFT_UNAVAILABLE","NS_ASSUME_NONNULL_BEGIN","NS_ASSUME_NONNULL_END","NS_REFINED_FOR_SWIFT","NS_SWIFT_NAME","NS_SWIFT_NOTHROW","NS_DURING","NS_HANDLER","NS_ENDHANDLER","NS_VALUERETURN","NS_VOIDRETURN"],literal:["false","true","FALSE","TRUE","nil","YES","NO","NULL"],built_in:["BOOL","dispatch_once_t","dispatch_queue_t","dispatch_sync","dispatch_async","dispatch_once"]},illegal:"/,end:/$/,illegal:"\\n"},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{className:"class",begin:"("+n.keyword.join("|")+")\\b",end:/(\{|$)/,excludeEnd:!0,keywords:n,contains:[e.UNDERSCORE_TITLE_MODE]},{begin:"\\."+e.UNDERSCORE_IDENT_RE,relevance:0}]}},grmr_perl:e=>{const t=e.regex,n=/[dualxmsipngr]{0,12}/,o={$pattern:/[\w.]+/,keyword:"abs accept alarm and atan2 bind binmode bless break caller chdir chmod chomp chop chown chr chroot close closedir connect continue cos crypt dbmclose dbmopen defined delete die do dump each else elsif endgrent endhostent endnetent endprotoent endpwent endservent eof eval exec exists exit exp fcntl fileno flock for foreach fork format formline getc getgrent getgrgid getgrnam gethostbyaddr gethostbyname gethostent getlogin getnetbyaddr getnetbyname getnetent getpeername getpgrp getpriority getprotobyname getprotobynumber getprotoent getpwent getpwnam getpwuid getservbyname getservbyport getservent getsockname getsockopt given glob gmtime goto grep gt hex if index int ioctl join keys kill last lc lcfirst length link listen local localtime log lstat lt ma map mkdir msgctl msgget msgrcv msgsnd my ne next no not oct open opendir or ord our pack package pipe pop pos print printf prototype push q|0 qq quotemeta qw qx rand read readdir readline readlink readpipe recv redo ref rename require reset return reverse rewinddir rindex rmdir say scalar seek seekdir select semctl semget semop send setgrent sethostent setnetent setpgrp setpriority setprotoent setpwent setservent setsockopt shift shmctl shmget shmread shmwrite shutdown sin sleep socket socketpair sort splice split sprintf sqrt srand stat state study sub substr symlink syscall sysopen sysread sysseek system syswrite tell telldir tie tied time times tr truncate uc ucfirst umask undef unless unlink unpack unshift untie until use utime values vec wait waitpid wantarray warn when while write x|0 xor y|0"},a={className:"subst",begin:"[$@]\\{",end:"\\}",keywords:o},r={begin:/->\{/,end:/\}/},i={variants:[{begin:/\$\d/},{begin:t.concat(/[$%@](\^\w\b|#\w+(::\w+)*|\{\w+\}|\w+(::\w*)*)/,"(?![A-Za-z])(?![@$%])")},{begin:/[$%@][^\s\w{]/,relevance:0}]},s=[e.BACKSLASH_ESCAPE,a,i],l=[/!/,/\//,/\|/,/\?/,/'/,/"/,/#/],c=(e,o,a="\\1")=>{const r="\\1"===a?a:t.concat(a,o);return t.concat(t.concat("(?:",e,")"),o,/(?:\\.|[^\\\/])*?/,r,/(?:\\.|[^\\\/])*?/,a,n)},d=(e,o,a)=>t.concat(t.concat("(?:",e,")"),o,/(?:\\.|[^\\\/])*?/,a,n),u=[i,e.HASH_COMMENT_MODE,e.COMMENT(/^=\w/,/=cut/,{endsWithParent:!0}),r,{className:"string",contains:s,variants:[{begin:"q[qwxr]?\\s*\\(",end:"\\)",relevance:5},{begin:"q[qwxr]?\\s*\\[",end:"\\]",relevance:5},{begin:"q[qwxr]?\\s*\\{",end:"\\}",relevance:5},{begin:"q[qwxr]?\\s*\\|",end:"\\|",relevance:5},{begin:"q[qwxr]?\\s*<",end:">",relevance:5},{begin:"qw\\s+q",end:"q",relevance:5},{begin:"'",end:"'",contains:[e.BACKSLASH_ESCAPE]},{begin:'"',end:'"'},{begin:"`",end:"`",contains:[e.BACKSLASH_ESCAPE]},{begin:/\{\w+\}/,relevance:0},{begin:"-?\\w+\\s*=>",relevance:0}]},{className:"number",begin:"(\\b0[0-7_]+)|(\\b0x[0-9a-fA-F_]+)|(\\b[1-9][0-9_]*(\\.[0-9_]+)?)|[0_]\\b",relevance:0},{begin:"(\\/\\/|"+e.RE_STARTERS_RE+"|\\b(split|return|print|reverse|grep)\\b)\\s*",keywords:"split return print reverse grep",relevance:0,contains:[e.HASH_COMMENT_MODE,{className:"regexp",variants:[{begin:c("s|tr|y",t.either(...l,{capture:!0}))},{begin:c("s|tr|y","\\(","\\)")},{begin:c("s|tr|y","\\[","\\]")},{begin:c("s|tr|y","\\{","\\}")}],relevance:2},{className:"regexp",variants:[{begin:/(m|qr)\/\//,relevance:0},{begin:d("(?:m|qr)?",/\//,/\//)},{begin:d("m|qr",t.either(...l,{capture:!0}),/\1/)},{begin:d("m|qr",/\(/,/\)/)},{begin:d("m|qr",/\[/,/\]/)},{begin:d("m|qr",/\{/,/\}/)}]}]},{className:"function",beginKeywords:"sub",end:"(\\s*\\(.*?\\))?[;{]",excludeEnd:!0,relevance:5,contains:[e.TITLE_MODE]},{begin:"-\\w\\b",relevance:0},{begin:"^__DATA__$",end:"^__END__$",subLanguage:"mojolicious",contains:[{begin:"^@@.*",end:"$",className:"comment"}]}];return a.contains=u,r.contains=u,{name:"Perl",aliases:["pl","pm"],keywords:o,contains:u}},grmr_php:e=>{const t=e.regex,n="[a-zA-Z0-9_-ÿ]*(?![A-Za-z0-9])(?![$]))",o=t.concat("([a-zA-Z_\\x7f-\\xff]",n),a=t.concat("([A-Z]",n),r={scope:"variable",match:"\\$+"+o},i={scope:"subst",variants:[{begin:/\$\w+/},{begin:/\{\$/,end:/\}/}]},s=e.inherit(e.APOS_STRING_MODE,{illegal:null}),l="[ \t\n]",c={scope:"string",variants:[e.inherit(e.QUOTE_STRING_MODE,{illegal:null,contains:e.QUOTE_STRING_MODE.contains.concat(i)}),s,e.END_SAME_AS_BEGIN({begin:/<<<[ \t]*(\w+)\n/,end:/[ \t]*(\w+)\b/,contains:e.QUOTE_STRING_MODE.contains.concat(i)})]},d={scope:"number",variants:[{begin:"\\b0[bB][01]+(?:_[01]+)*\\b"},{begin:"\\b0[oO][0-7]+(?:_[0-7]+)*\\b"},{begin:"\\b0[xX][\\da-fA-F]+(?:_[\\da-fA-F]+)*\\b"},{begin:"(?:\\b\\d+(?:_\\d+)*(\\.(?:\\d+(?:_\\d+)*))?|\\B\\.\\d+)(?:[eE][+-]?\\d+)?"}],relevance:0},u=["__CLASS__","__DIR__","__FILE__","__FUNCTION__","__COMPILER_HALT_OFFSET__","__LINE__","__METHOD__","__NAMESPACE__","__TRAIT__","die","echo","exit","include","include_once","print","require","require_once","array","abstract","and","as","binary","bool","boolean","break","callable","case","catch","class","clone","const","continue","declare","default","do","double","else","elseif","empty","enddeclare","endfor","endforeach","endif","endswitch","endwhile","enum","eval","extends","final","finally","float","for","foreach","from","global","goto","if","implements","instanceof","insteadof","int","integer","interface","isset","iterable","list","match|0","mixed","new","never","object","or","private","protected","public","readonly","real","return","string","switch","throw","trait","try","unset","use","var","void","while","xor","yield"],p=["Error|0","AppendIterator","ArgumentCountError","ArithmeticError","ArrayIterator","ArrayObject","AssertionError","BadFunctionCallException","BadMethodCallException","CachingIterator","CallbackFilterIterator","CompileError","Countable","DirectoryIterator","DivisionByZeroError","DomainException","EmptyIterator","ErrorException","Exception","FilesystemIterator","FilterIterator","GlobIterator","InfiniteIterator","InvalidArgumentException","IteratorIterator","LengthException","LimitIterator","LogicException","MultipleIterator","NoRewindIterator","OutOfBoundsException","OutOfRangeException","OuterIterator","OverflowException","ParentIterator","ParseError","RangeException","RecursiveArrayIterator","RecursiveCachingIterator","RecursiveCallbackFilterIterator","RecursiveDirectoryIterator","RecursiveFilterIterator","RecursiveIterator","RecursiveIteratorIterator","RecursiveRegexIterator","RecursiveTreeIterator","RegexIterator","RuntimeException","SeekableIterator","SplDoublyLinkedList","SplFileInfo","SplFileObject","SplFixedArray","SplHeap","SplMaxHeap","SplMinHeap","SplObjectStorage","SplObserver","SplPriorityQueue","SplQueue","SplStack","SplSubject","SplTempFileObject","TypeError","UnderflowException","UnexpectedValueException","UnhandledMatchError","ArrayAccess","BackedEnum","Closure","Fiber","Generator","Iterator","IteratorAggregate","Serializable","Stringable","Throwable","Traversable","UnitEnum","WeakReference","WeakMap","Directory","__PHP_Incomplete_Class","parent","php_user_filter","self","static","stdClass"],m={keyword:u,literal:(e=>{const t=[];return["false","null","true"].forEach((e=>{t.push(e),e.toLowerCase()===e?t.push(e.toUpperCase()):t.push(e.toLowerCase())})),t})(),built_in:p},g=e=>e.map((e=>e.replace(/\|\d+$/,""))),h={variants:[{match:[/new/,t.concat(l,"+"),t.concat("(?!",g(p).join("\\b|"),"\\b)"),t.concat(/\\?/,o),t.concat(l,"*",/\(/)],scope:{1:"keyword",4:"title.class"}}]},f={relevance:0,match:[/\b/,t.concat("(?!fn\\b|function\\b|",g(u).join("\\b|"),"|",g(p).join("\\b|"),"\\b)"),o,t.concat(l,"*"),t.lookahead(/(?=\()/)],scope:{3:"title.function.invoke"}},_=t.concat(o,"\\b(?!\\()"),b={variants:[{match:[t.concat(/::/,t.lookahead(/(?!class\b)/)),_],scope:{2:"variable.constant"}},{match:[/::/,/class/],scope:{2:"variable.language"}},{match:[a,t.concat("::",t.lookahead(/(?!class\b)/))],scope:{1:"title.class"}},{match:[a,/::/,/class/],scope:{1:"title.class",3:"variable.language"}}]};return{case_insensitive:!1,keywords:m,contains:[e.HASH_COMMENT_MODE,e.COMMENT("//","$"),e.COMMENT("/\\*","\\*/",{contains:[{scope:"doctag",match:"@[A-Za-z]+"}]}),{match:/__halt_compiler\(\);/,keywords:"__halt_compiler",starts:{scope:"comment",end:e.MATCH_NOTHING_RE,contains:[{match:/\?>/,scope:"meta",endsParent:!0}]}},{scope:"meta",variants:[{begin:/<\?php/,relevance:10},{begin:/<\?[=]?/},{begin:/\?>/}]},{scope:"variable.language",match:/\$this\b/},r,f,b,{match:[/const/,/\s/,o,/\s*=/],scope:{1:"keyword",3:"variable.constant"}},h,{scope:"function",relevance:0,beginKeywords:"fn function",end:/[;{]/,excludeEnd:!0,illegal:"[$%\\[]",contains:[{beginKeywords:"use"},e.UNDERSCORE_TITLE_MODE,{begin:"=>",endsParent:!0},{scope:"params",begin:"\\(",end:"\\)",excludeBegin:!0,excludeEnd:!0,keywords:m,contains:["self",r,b,e.C_BLOCK_COMMENT_MODE,c,d]}]},{scope:"class",variants:[{beginKeywords:"enum",illegal:/[($"]/},{beginKeywords:"class interface trait",illegal:/[:($"]/}],relevance:0,end:/\{/,excludeEnd:!0,contains:[{beginKeywords:"extends implements"},e.UNDERSCORE_TITLE_MODE]},{beginKeywords:"namespace",relevance:0,end:";",illegal:/[.']/,contains:[e.inherit(e.UNDERSCORE_TITLE_MODE,{scope:"title.class"})]},{beginKeywords:"use",relevance:0,end:";",contains:[{match:/\b(as|const|function)\b/,scope:"keyword"},e.UNDERSCORE_TITLE_MODE]},c,d]}},grmr_php_template:e=>({name:"PHP template",subLanguage:"xml",contains:[{begin:/<\?(php|=)?/,end:/\?>/,subLanguage:"php",contains:[{begin:"/\\*",end:"\\*/",skip:!0},{begin:'b"',end:'"',skip:!0},{begin:"b'",end:"'",skip:!0},e.inherit(e.APOS_STRING_MODE,{illegal:null,className:null,contains:null,skip:!0}),e.inherit(e.QUOTE_STRING_MODE,{illegal:null,className:null,contains:null,skip:!0})]}]}),grmr_plaintext:e=>({name:"Plain text",aliases:["text","txt"],disableAutodetect:!0}),grmr_python:e=>{const t=e.regex,n=/[\p{XID_Start}_]\p{XID_Continue}*/u,o=["and","as","assert","async","await","break","class","continue","def","del","elif","else","except","finally","for","from","global","if","import","in","is","lambda","nonlocal|10","not","or","pass","raise","return","try","while","with","yield"],a={$pattern:/[A-Za-z]\w+|__\w+__/,keyword:o,built_in:["__import__","abs","all","any","ascii","bin","bool","breakpoint","bytearray","bytes","callable","chr","classmethod","compile","complex","delattr","dict","dir","divmod","enumerate","eval","exec","filter","float","format","frozenset","getattr","globals","hasattr","hash","help","hex","id","input","int","isinstance","issubclass","iter","len","list","locals","map","max","memoryview","min","next","object","oct","open","ord","pow","print","property","range","repr","reversed","round","set","setattr","slice","sorted","staticmethod","str","sum","super","tuple","type","vars","zip"],literal:["__debug__","Ellipsis","False","None","NotImplemented","True"],type:["Any","Callable","Coroutine","Dict","List","Literal","Generic","Optional","Sequence","Set","Tuple","Type","Union"]},r={className:"meta",begin:/^(>>>|\.\.\.) /},i={className:"subst",begin:/\{/,end:/\}/,keywords:a,illegal:/#/},s={begin:/\{\{/,relevance:0},l={className:"string",contains:[e.BACKSLASH_ESCAPE],variants:[{begin:/([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?'''/,end:/'''/,contains:[e.BACKSLASH_ESCAPE,r],relevance:10},{begin:/([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?"""/,end:/"""/,contains:[e.BACKSLASH_ESCAPE,r],relevance:10},{begin:/([fF][rR]|[rR][fF]|[fF])'''/,end:/'''/,contains:[e.BACKSLASH_ESCAPE,r,s,i]},{begin:/([fF][rR]|[rR][fF]|[fF])"""/,end:/"""/,contains:[e.BACKSLASH_ESCAPE,r,s,i]},{begin:/([uU]|[rR])'/,end:/'/,relevance:10},{begin:/([uU]|[rR])"/,end:/"/,relevance:10},{begin:/([bB]|[bB][rR]|[rR][bB])'/,end:/'/},{begin:/([bB]|[bB][rR]|[rR][bB])"/,end:/"/},{begin:/([fF][rR]|[rR][fF]|[fF])'/,end:/'/,contains:[e.BACKSLASH_ESCAPE,s,i]},{begin:/([fF][rR]|[rR][fF]|[fF])"/,end:/"/,contains:[e.BACKSLASH_ESCAPE,s,i]},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},c="[0-9](_?[0-9])*",d=`(\\b(${c}))?\\.(${c})|\\b(${c})\\.`,u="\\b|"+o.join("|"),p={className:"number",relevance:0,variants:[{begin:`(\\b(${c})|(${d}))[eE][+-]?(${c})[jJ]?(?=${u})`},{begin:`(${d})[jJ]?`},{begin:`\\b([1-9](_?[0-9])*|0+(_?0)*)[lLjJ]?(?=${u})`},{begin:`\\b0[bB](_?[01])+[lL]?(?=${u})`},{begin:`\\b0[oO](_?[0-7])+[lL]?(?=${u})`},{begin:`\\b0[xX](_?[0-9a-fA-F])+[lL]?(?=${u})`},{begin:`\\b(${c})[jJ](?=${u})`}]},m={className:"comment",begin:t.lookahead(/# type:/),end:/$/,keywords:a,contains:[{begin:/# type:/},{begin:/#/,end:/\b\B/,endsWithParent:!0}]},g={className:"params",variants:[{className:"",begin:/\(\s*\)/,skip:!0},{begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:a,contains:["self",r,p,l,e.HASH_COMMENT_MODE]}]};return i.contains=[l,p,r],{name:"Python",aliases:["py","gyp","ipython"],unicodeRegex:!0,keywords:a,illegal:/(<\/|->|\?)|=>/,contains:[r,p,{begin:/\bself\b/},{beginKeywords:"if",relevance:0},l,m,e.HASH_COMMENT_MODE,{match:[/\bdef/,/\s+/,n],scope:{1:"keyword",3:"title.function"},contains:[g]},{variants:[{match:[/\bclass/,/\s+/,n,/\s*/,/\(\s*/,n,/\s*\)/]},{match:[/\bclass/,/\s+/,n]}],scope:{1:"keyword",3:"title.class",6:"title.class.inherited"}},{className:"meta",begin:/^[\t ]*@/,end:/(?=#)|$/,contains:[p,g,l]}]}},grmr_python_repl:e=>({aliases:["pycon"],contains:[{className:"meta",starts:{end:/ |$/,starts:{end:"$",subLanguage:"python"}},variants:[{begin:/^>>>(?=[ ]|$)/},{begin:/^\.\.\.(?=[ ]|$)/}]}]}),grmr_r:e=>{const t=e.regex,n=/(?:(?:[a-zA-Z]|\.[._a-zA-Z])[._a-zA-Z0-9]*)|\.(?!\d)/,o=t.either(/0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*[pP][+-]?\d+i?/,/0[xX][0-9a-fA-F]+(?:[pP][+-]?\d+)?[Li]?/,/(?:\d+(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+)?[Li]?/),a=/[=!<>:]=|\|\||&&|:::?|<-|<<-|->>|->|\|>|[-+*\/?!$&|:<=>@^~]|\*\*/,r=t.either(/[()]/,/[{}]/,/\[\[/,/[[\]]/,/\\/,/,/);return{name:"R",keywords:{$pattern:n,keyword:"function if in break next repeat else for while",literal:"NULL NA TRUE FALSE Inf NaN NA_integer_|10 NA_real_|10 NA_character_|10 NA_complex_|10",built_in:"LETTERS letters month.abb month.name pi T F abs acos acosh all any anyNA Arg as.call as.character as.complex as.double as.environment as.integer as.logical as.null.default as.numeric as.raw asin asinh atan atanh attr attributes baseenv browser c call ceiling class Conj cos cosh cospi cummax cummin cumprod cumsum digamma dim dimnames emptyenv exp expression floor forceAndCall gamma gc.time globalenv Im interactive invisible is.array is.atomic is.call is.character is.complex is.double is.environment is.expression is.finite is.function is.infinite is.integer is.language is.list is.logical is.matrix is.na is.name is.nan is.null is.numeric is.object is.pairlist is.raw is.recursive is.single is.symbol lazyLoadDBfetch length lgamma list log max min missing Mod names nargs nzchar oldClass on.exit pos.to.env proc.time prod quote range Re rep retracemem return round seq_along seq_len seq.int sign signif sin sinh sinpi sqrt standardGeneric substitute sum switch tan tanh tanpi tracemem trigamma trunc unclass untracemem UseMethod xtfrm"},contains:[e.COMMENT(/#'/,/$/,{contains:[{scope:"doctag",match:/@examples/,starts:{end:t.lookahead(t.either(/\n^#'\s*(?=@[a-zA-Z]+)/,/\n^(?!#')/)),endsParent:!0}},{scope:"doctag",begin:"@param",end:/$/,contains:[{scope:"variable",variants:[{match:n},{match:/`(?:\\.|[^`\\])+`/}],endsParent:!0}]},{scope:"doctag",match:/@[a-zA-Z]+/},{scope:"keyword",match:/\\[a-zA-Z]+/}]}),e.HASH_COMMENT_MODE,{scope:"string",contains:[e.BACKSLASH_ESCAPE],variants:[e.END_SAME_AS_BEGIN({begin:/[rR]"(-*)\(/,end:/\)(-*)"/}),e.END_SAME_AS_BEGIN({begin:/[rR]"(-*)\{/,end:/\}(-*)"/}),e.END_SAME_AS_BEGIN({begin:/[rR]"(-*)\[/,end:/\](-*)"/}),e.END_SAME_AS_BEGIN({begin:/[rR]'(-*)\(/,end:/\)(-*)'/}),e.END_SAME_AS_BEGIN({begin:/[rR]'(-*)\{/,end:/\}(-*)'/}),e.END_SAME_AS_BEGIN({begin:/[rR]'(-*)\[/,end:/\](-*)'/}),{begin:'"',end:'"',relevance:0},{begin:"'",end:"'",relevance:0}]},{relevance:0,variants:[{scope:{1:"operator",2:"number"},match:[a,o]},{scope:{1:"operator",2:"number"},match:[/%[^%]*%/,o]},{scope:{1:"punctuation",2:"number"},match:[r,o]},{scope:{2:"number"},match:[/[^a-zA-Z0-9._]|^/,o]}]},{scope:{3:"operator"},match:[n,/\s+/,/<-/,/\s+/]},{scope:"operator",relevance:0,variants:[{match:a},{match:/%[^%]*%/}]},{scope:"punctuation",relevance:0,match:r},{begin:"`",end:"`",contains:[{begin:/\\./}]}]}},grmr_ruby:e=>{const t=e.regex,n="([a-zA-Z_]\\w*[!?=]?|[-+~]@|<<|>>|=~|===?|<=>|[<>]=?|\\*\\*|[-/+%^&*~`|]|\\[\\]=?)",o={keyword:"and then defined module in return redo if BEGIN retry end for self when next until do begin unless END rescue else break undef not super class case require yield alias while ensure elsif or include attr_reader attr_writer attr_accessor __FILE__",built_in:"proc lambda",literal:"true false nil"},a={className:"doctag",begin:"@[A-Za-z]+"},r={begin:"#<",end:">"},i=[e.COMMENT("#","$",{contains:[a]}),e.COMMENT("^=begin","^=end",{contains:[a],relevance:10}),e.COMMENT("^__END__","\\n$")],s={className:"subst",begin:/#\{/,end:/\}/,keywords:o},l={className:"string",contains:[e.BACKSLASH_ESCAPE,s],variants:[{begin:/'/,end:/'/},{begin:/"/,end:/"/},{begin:/`/,end:/`/},{begin:/%[qQwWx]?\(/,end:/\)/},{begin:/%[qQwWx]?\[/,end:/\]/},{begin:/%[qQwWx]?\{/,end:/\}/},{begin:/%[qQwWx]?/},{begin:/%[qQwWx]?\//,end:/\//},{begin:/%[qQwWx]?%/,end:/%/},{begin:/%[qQwWx]?-/,end:/-/},{begin:/%[qQwWx]?\|/,end:/\|/},{begin:/\B\?(\\\d{1,3})/},{begin:/\B\?(\\x[A-Fa-f0-9]{1,2})/},{begin:/\B\?(\\u\{?[A-Fa-f0-9]{1,6}\}?)/},{begin:/\B\?(\\M-\\C-|\\M-\\c|\\c\\M-|\\M-|\\C-\\M-)[\x20-\x7e]/},{begin:/\B\?\\(c|C-)[\x20-\x7e]/},{begin:/\B\?\\?\S/},{begin:t.concat(/<<[-~]?'?/,t.lookahead(/(\w+)(?=\W)[^\n]*\n(?:[^\n]*\n)*?\s*\1\b/)),contains:[e.END_SAME_AS_BEGIN({begin:/(\w+)/,end:/(\w+)/,contains:[e.BACKSLASH_ESCAPE,s]})]}]},c="[0-9](_?[0-9])*",d={className:"number",relevance:0,variants:[{begin:`\\b([1-9](_?[0-9])*|0)(\\.(${c}))?([eE][+-]?(${c})|r)?i?\\b`},{begin:"\\b0[dD][0-9](_?[0-9])*r?i?\\b"},{begin:"\\b0[bB][0-1](_?[0-1])*r?i?\\b"},{begin:"\\b0[oO][0-7](_?[0-7])*r?i?\\b"},{begin:"\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*r?i?\\b"},{begin:"\\b0(_?[0-7])+r?i?\\b"}]},u={className:"params",begin:"\\(",end:"\\)",endsParent:!0,keywords:o},p=[l,{className:"class",beginKeywords:"class module",end:"$|;",illegal:/=/,contains:[e.inherit(e.TITLE_MODE,{begin:"[A-Za-z_]\\w*(::\\w+)*(\\?|!)?"}),{begin:"<\\s*",contains:[{begin:"("+e.IDENT_RE+"::)?"+e.IDENT_RE,relevance:0}]}].concat(i)},{className:"function",begin:t.concat(/def\s+/,t.lookahead(n+"\\s*(\\(|;|$)")),relevance:0,keywords:"def",end:"$|;",contains:[e.inherit(e.TITLE_MODE,{begin:n}),u].concat(i)},{begin:e.IDENT_RE+"::"},{className:"symbol",begin:e.UNDERSCORE_IDENT_RE+"(!|\\?)?:",relevance:0},{className:"symbol",begin:":(?!\\s)",contains:[l,{begin:n}],relevance:0},d,{className:"variable",begin:"(\\$\\W)|((\\$|@@?)(\\w+))(?=[^@$?])(?![A-Za-z])(?![@$?'])"},{className:"params",begin:/\|/,end:/\|/,relevance:0,keywords:o},{begin:"("+e.RE_STARTERS_RE+"|unless)\\s*",keywords:"unless",contains:[{className:"regexp",contains:[e.BACKSLASH_ESCAPE,s],illegal:/\n/,variants:[{begin:"/",end:"/[a-z]*"},{begin:/%r\{/,end:/\}[a-z]*/},{begin:"%r\\(",end:"\\)[a-z]*"},{begin:"%r!",end:"![a-z]*"},{begin:"%r\\[",end:"\\][a-z]*"}]}].concat(r,i),relevance:0}].concat(r,i);s.contains=p,u.contains=p;const m=[{begin:/^\s*=>/,starts:{end:"$",contains:p}},{className:"meta",begin:"^([>?]>|[\\w#]+\\(\\w+\\):\\d+:\\d+>|(\\w+-)?\\d+\\.\\d+\\.\\d+(p\\d+)?[^\\d][^>]+>)(?=[ ])",starts:{end:"$",contains:p}}];return i.unshift(r),{name:"Ruby",aliases:["rb","gemspec","podspec","thor","irb"],keywords:o,illegal:/\/\*/,contains:[e.SHEBANG({binary:"ruby"})].concat(m).concat(i).concat(p)}},grmr_rust:e=>{const t=e.regex,n={className:"title.function.invoke",relevance:0,begin:t.concat(/\b/,/(?!let\b)/,e.IDENT_RE,t.lookahead(/\s*\(/))},o="([ui](8|16|32|64|128|size)|f(32|64))?",a=["drop ","Copy","Send","Sized","Sync","Drop","Fn","FnMut","FnOnce","ToOwned","Clone","Debug","PartialEq","PartialOrd","Eq","Ord","AsRef","AsMut","Into","From","Default","Iterator","Extend","IntoIterator","DoubleEndedIterator","ExactSizeIterator","SliceConcatExt","ToString","assert!","assert_eq!","bitflags!","bytes!","cfg!","col!","concat!","concat_idents!","debug_assert!","debug_assert_eq!","env!","panic!","file!","format!","format_args!","include_bin!","include_str!","line!","local_data_key!","module_path!","option_env!","print!","println!","select!","stringify!","try!","unimplemented!","unreachable!","vec!","write!","writeln!","macro_rules!","assert_ne!","debug_assert_ne!"];return{name:"Rust",aliases:["rs"],keywords:{$pattern:e.IDENT_RE+"!?",type:["i8","i16","i32","i64","i128","isize","u8","u16","u32","u64","u128","usize","f32","f64","str","char","bool","Box","Option","Result","String","Vec"],keyword:["abstract","as","async","await","become","box","break","const","continue","crate","do","dyn","else","enum","extern","false","final","fn","for","if","impl","in","let","loop","macro","match","mod","move","mut","override","priv","pub","ref","return","self","Self","static","struct","super","trait","true","try","type","typeof","unsafe","unsized","use","virtual","where","while","yield"],literal:["true","false","Some","None","Ok","Err"],built_in:a},illegal:""},n]}},grmr_scss:e=>{const t=Ti(e),n=Ii,o=Li,a="@[a-z-]+",r={className:"variable",begin:"(\\$[a-zA-Z-][a-zA-Z0-9_-]*)\\b"};return{name:"SCSS",case_insensitive:!0,illegal:"[=/|']",contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,t.CSS_NUMBER_MODE,{className:"selector-id",begin:"#[A-Za-z0-9_-]+",relevance:0},{className:"selector-class",begin:"\\.[A-Za-z0-9_-]+",relevance:0},t.ATTRIBUTE_SELECTOR_MODE,{className:"selector-tag",begin:"\\b("+Ri.join("|")+")\\b",relevance:0},{className:"selector-pseudo",begin:":("+o.join("|")+")"},{className:"selector-pseudo",begin:":(:)?("+n.join("|")+")"},r,{begin:/\(/,end:/\)/,contains:[t.CSS_NUMBER_MODE]},t.CSS_VARIABLE,{className:"attribute",begin:"\\b("+Pi.join("|")+")\\b"},{begin:"\\b(whitespace|wait|w-resize|visible|vertical-text|vertical-ideographic|uppercase|upper-roman|upper-alpha|underline|transparent|top|thin|thick|text|text-top|text-bottom|tb-rl|table-header-group|table-footer-group|sw-resize|super|strict|static|square|solid|small-caps|separate|se-resize|scroll|s-resize|rtl|row-resize|ridge|right|repeat|repeat-y|repeat-x|relative|progress|pointer|overline|outside|outset|oblique|nowrap|not-allowed|normal|none|nw-resize|no-repeat|no-drop|newspaper|ne-resize|n-resize|move|middle|medium|ltr|lr-tb|lowercase|lower-roman|lower-alpha|loose|list-item|line|line-through|line-edge|lighter|left|keep-all|justify|italic|inter-word|inter-ideograph|inside|inset|inline|inline-block|inherit|inactive|ideograph-space|ideograph-parenthesis|ideograph-numeric|ideograph-alpha|horizontal|hidden|help|hand|groove|fixed|ellipsis|e-resize|double|dotted|distribute|distribute-space|distribute-letter|distribute-all-lines|disc|disabled|default|decimal|dashed|crosshair|collapse|col-resize|circle|char|center|capitalize|break-word|break-all|bottom|both|bolder|bold|block|bidi-override|below|baseline|auto|always|all-scroll|absolute|table|table-cell)\\b"},{begin:/:/,end:/[;}{]/,contains:[t.BLOCK_COMMENT,r,t.HEXCOLOR,t.CSS_NUMBER_MODE,e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,t.IMPORTANT]},{begin:"@(page|font-face)",keywords:{$pattern:a,keyword:"@page @font-face"}},{begin:"@",end:"[{;]",returnBegin:!0,keywords:{$pattern:/[a-z-]+/,keyword:"and or not only",attribute:Di.join(" ")},contains:[{begin:a,className:"keyword"},{begin:/[a-z-]+(?=:)/,className:"attribute"},r,e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,t.HEXCOLOR,t.CSS_NUMBER_MODE]},t.FUNCTION_DISPATCH]}},grmr_shell:e=>({name:"Shell Session",aliases:["console","shellsession"],contains:[{className:"meta",begin:/^\s{0,3}[/~\w\d[\]()@-]*[>%$#][ ]?/,starts:{end:/[^\\](?=\s*$)/,subLanguage:"bash"}}]}),grmr_sql:e=>{const t=e.regex,n=e.COMMENT("--","$"),o=["true","false","unknown"],a=["bigint","binary","blob","boolean","char","character","clob","date","dec","decfloat","decimal","float","int","integer","interval","nchar","nclob","national","numeric","real","row","smallint","time","timestamp","varchar","varying","varbinary"],r=["abs","acos","array_agg","asin","atan","avg","cast","ceil","ceiling","coalesce","corr","cos","cosh","count","covar_pop","covar_samp","cume_dist","dense_rank","deref","element","exp","extract","first_value","floor","json_array","json_arrayagg","json_exists","json_object","json_objectagg","json_query","json_table","json_table_primitive","json_value","lag","last_value","lead","listagg","ln","log","log10","lower","max","min","mod","nth_value","ntile","nullif","percent_rank","percentile_cont","percentile_disc","position","position_regex","power","rank","regr_avgx","regr_avgy","regr_count","regr_intercept","regr_r2","regr_slope","regr_sxx","regr_sxy","regr_syy","row_number","sin","sinh","sqrt","stddev_pop","stddev_samp","substring","substring_regex","sum","tan","tanh","translate","translate_regex","treat","trim","trim_array","unnest","upper","value_of","var_pop","var_samp","width_bucket"],i=["create table","insert into","primary key","foreign key","not null","alter table","add constraint","grouping sets","on overflow","character set","respect nulls","ignore nulls","nulls first","nulls last","depth first","breadth first"],s=r,l=["abs","acos","all","allocate","alter","and","any","are","array","array_agg","array_max_cardinality","as","asensitive","asin","asymmetric","at","atan","atomic","authorization","avg","begin","begin_frame","begin_partition","between","bigint","binary","blob","boolean","both","by","call","called","cardinality","cascaded","case","cast","ceil","ceiling","char","char_length","character","character_length","check","classifier","clob","close","coalesce","collate","collect","column","commit","condition","connect","constraint","contains","convert","copy","corr","corresponding","cos","cosh","count","covar_pop","covar_samp","create","cross","cube","cume_dist","current","current_catalog","current_date","current_default_transform_group","current_path","current_role","current_row","current_schema","current_time","current_timestamp","current_path","current_role","current_transform_group_for_type","current_user","cursor","cycle","date","day","deallocate","dec","decimal","decfloat","declare","default","define","delete","dense_rank","deref","describe","deterministic","disconnect","distinct","double","drop","dynamic","each","element","else","empty","end","end_frame","end_partition","end-exec","equals","escape","every","except","exec","execute","exists","exp","external","extract","false","fetch","filter","first_value","float","floor","for","foreign","frame_row","free","from","full","function","fusion","get","global","grant","group","grouping","groups","having","hold","hour","identity","in","indicator","initial","inner","inout","insensitive","insert","int","integer","intersect","intersection","interval","into","is","join","json_array","json_arrayagg","json_exists","json_object","json_objectagg","json_query","json_table","json_table_primitive","json_value","lag","language","large","last_value","lateral","lead","leading","left","like","like_regex","listagg","ln","local","localtime","localtimestamp","log","log10","lower","match","match_number","match_recognize","matches","max","member","merge","method","min","minute","mod","modifies","module","month","multiset","national","natural","nchar","nclob","new","no","none","normalize","not","nth_value","ntile","null","nullif","numeric","octet_length","occurrences_regex","of","offset","old","omit","on","one","only","open","or","order","out","outer","over","overlaps","overlay","parameter","partition","pattern","per","percent","percent_rank","percentile_cont","percentile_disc","period","portion","position","position_regex","power","precedes","precision","prepare","primary","procedure","ptf","range","rank","reads","real","recursive","ref","references","referencing","regr_avgx","regr_avgy","regr_count","regr_intercept","regr_r2","regr_slope","regr_sxx","regr_sxy","regr_syy","release","result","return","returns","revoke","right","rollback","rollup","row","row_number","rows","running","savepoint","scope","scroll","search","second","seek","select","sensitive","session_user","set","show","similar","sin","sinh","skip","smallint","some","specific","specifictype","sql","sqlexception","sqlstate","sqlwarning","sqrt","start","static","stddev_pop","stddev_samp","submultiset","subset","substring","substring_regex","succeeds","sum","symmetric","system","system_time","system_user","table","tablesample","tan","tanh","then","time","timestamp","timezone_hour","timezone_minute","to","trailing","translate","translate_regex","translation","treat","trigger","trim","trim_array","true","truncate","uescape","union","unique","unknown","unnest","update","upper","user","using","value","values","value_of","var_pop","var_samp","varbinary","varchar","varying","versioning","when","whenever","where","width_bucket","window","with","within","without","year","add","asc","collation","desc","final","first","last","view"].filter((e=>!r.includes(e))),c={begin:t.concat(/\b/,t.either(...s),/\s*\(/),relevance:0,keywords:{built_in:s}};return{name:"SQL",case_insensitive:!0,illegal:/[{}]|<\//,keywords:{$pattern:/\b[\w\.]+/,keyword:((e,{exceptions:t,when:n}={})=>{const o=n;return t=t||[],e.map((e=>e.match(/\|\d+$/)||t.includes(e)?e:o(e)?e+"|0":e))})(l,{when:e=>e.length<3}),literal:o,type:a,built_in:["current_catalog","current_date","current_default_transform_group","current_path","current_role","current_schema","current_transform_group_for_type","current_user","session_user","system_time","system_user","current_time","localtime","current_timestamp","localtimestamp"]},contains:[{begin:t.either(...i),relevance:0,keywords:{$pattern:/[\w\.]+/,keyword:l.concat(i),literal:o,type:a}},{className:"type",begin:t.either("double precision","large object","with timezone","without timezone")},c,{className:"variable",begin:/@[a-z0-9]+/},{className:"string",variants:[{begin:/'/,end:/'/,contains:[{begin:/''/}]}]},{begin:/"/,end:/"/,contains:[{begin:/""/}]},e.C_NUMBER_MODE,e.C_BLOCK_COMMENT_MODE,n,{className:"operator",begin:/[-+*/=%^~]|&&?|\|\|?|!=?|<(?:=>?|<|>)?|>[>=]?/,relevance:0}]}},grmr_swift:e=>{const t={match:/\s+/,relevance:0},n=e.COMMENT("/\\*","\\*/",{contains:["self"]}),o=[e.C_LINE_COMMENT_MODE,n],a={match:[/\./,Qr(...Qi,...Xi)],className:{2:"keyword"}},r={match:Vr(/\./,Qr(...Ji)),relevance:0},i=Ji.filter((e=>"string"==typeof e)).concat(["_|0"]),s={variants:[{className:"keyword",match:Qr(...Ji.filter((e=>"string"!=typeof e)).concat(Yi).map(Vi),...Xi)}]},l={$pattern:Qr(/\b\w+/,/#\w+/),keyword:i.concat(ns),literal:es},c=[a,r,s],d=[{match:Vr(/\./,Qr(...os)),relevance:0},{className:"built_in",match:Vr(/\b/,Qr(...os),/(?=\()/)}],u={match:/->/,relevance:0},p=[u,{className:"operator",relevance:0,variants:[{match:is},{match:`\\.(\\.|${rs})+`}]}],m="([0-9a-fA-F]_*)+",g={className:"number",relevance:0,variants:[{match:"\\b(([0-9]_*)+)(\\.(([0-9]_*)+))?([eE][+-]?(([0-9]_*)+))?\\b"},{match:`\\b0x(${m})(\\.(${m}))?([pP][+-]?(([0-9]_*)+))?\\b`},{match:/\b0o([0-7]_*)+\b/},{match:/\b0b([01]_*)+\b/}]},h=(e="")=>({className:"subst",variants:[{match:Vr(/\\/,e,/[0\\tnr"']/)},{match:Vr(/\\/,e,/u\{[0-9a-fA-F]{1,8}\}/)}]}),f=(e="")=>({className:"subst",match:Vr(/\\/,e,/[\t ]*(?:[\r\n]|\r\n)/)}),_=(e="")=>({className:"subst",label:"interpol",begin:Vr(/\\/,e,/\(/),end:/\)/}),b=(e="")=>({begin:Vr(e,/"""/),end:Vr(/"""/,e),contains:[h(e),f(e),_(e)]}),v=(e="")=>({begin:Vr(e,/"/),end:Vr(/"/,e),contains:[h(e),_(e)]}),y={className:"string",variants:[b(),b("#"),b("##"),b("###"),v(),v("#"),v("##"),v("###")]},w={match:Vr(/`/,cs,/`/)},k=[w,{className:"variable",match:/\$\d+/},{className:"variable",match:`\\$${ls}+`}],E=[{match:/(@|#(un)?)available/,className:"keyword",starts:{contains:[{begin:/\(/,end:/\)/,keywords:ps,contains:[...p,g,y]}]}},{className:"keyword",match:Vr(/@/,Qr(...us))},{className:"meta",match:Vr(/@/,cs)}],$={match:Gr(/\b[A-Z]/),relevance:0,contains:[{className:"type",match:Vr(/(AV|CA|CF|CG|CI|CL|CM|CN|CT|MK|MP|MTK|MTL|NS|SCN|SK|UI|WK|XC)/,ls,"+")},{className:"type",match:ds,relevance:0},{match:/[?!]+/,relevance:0},{match:/\.\.\./,relevance:0},{match:Vr(/\s+&\s+/,Gr(ds)),relevance:0}]},x={begin://,keywords:l,contains:[...o,...c,...E,u,$]};$.contains.push(x);const S={begin:/\(/,end:/\)/,relevance:0,keywords:l,contains:["self",{match:Vr(cs,/\s*:/),keywords:"_|0",relevance:0},...o,...c,...d,...p,g,y,...k,...E,$]},N={begin://,contains:[...o,$]},C={begin:/\(/,end:/\)/,keywords:l,contains:[{begin:Qr(Gr(Vr(cs,/\s*:/)),Gr(Vr(cs,/\s+/,cs,/\s*:/))),end:/:/,relevance:0,contains:[{className:"keyword",match:/\b_\b/},{className:"params",match:cs}]},...o,...c,...p,g,y,...E,$,S],endsParent:!0,illegal:/["']/},A={match:[/func/,/\s+/,Qr(w.match,cs,is)],className:{1:"keyword",3:"title.function"},contains:[N,C,t],illegal:[/\[/,/%/]},M={match:[/\b(?:subscript|init[?!]?)/,/\s*(?=[<(])/],className:{1:"keyword"},contains:[N,C,t],illegal:/\[|%/},O={match:[/operator/,/\s+/,is],className:{1:"keyword",3:"title"}},T={begin:[/precedencegroup/,/\s+/,ds],className:{1:"keyword",3:"title"},contains:[$],keywords:[...ts,...es],end:/}/};for(const e of y.variants){const t=e.contains.find((e=>"interpol"===e.label));t.keywords=l;const n=[...c,...d,...p,g,y,...k];t.contains=[...n,{begin:/\(/,end:/\)/,contains:["self",...n]}]}return{name:"Swift",keywords:l,contains:[...o,A,M,{beginKeywords:"struct protocol class extension enum actor",end:"\\{",excludeEnd:!0,keywords:l,contains:[e.inherit(e.TITLE_MODE,{className:"title.class",begin:/[A-Za-z$_][\u00C0-\u02B80-9A-Za-z$_]*/}),...c]},O,T,{beginKeywords:"import",end:/$/,contains:[...o],relevance:0},...c,...d,...p,g,y,...k,...E,$,S]}},grmr_typescript:e=>{const t=Zi(e),n=["any","void","number","boolean","string","object","never","enum"],o={beginKeywords:"namespace",end:/\{/,excludeEnd:!0,contains:[t.exports.CLASS_REFERENCE]},a={beginKeywords:"interface",end:/\{/,excludeEnd:!0,keywords:{keyword:"interface extends",built_in:n},contains:[t.exports.CLASS_REFERENCE]},r={$pattern:"[A-Za-z$_][0-9A-Za-z$_]*",keyword:Fi.concat(["type","namespace","typedef","interface","public","private","protected","implements","declare","abstract","readonly"]),literal:zi,built_in:Ki.concat(n),"variable.language":Gi},i={className:"meta",begin:"@[A-Za-z$_][0-9A-Za-z$_]*"},s=(e,t,n)=>{const o=e.contains.findIndex((e=>e.label===t));if(-1===o)throw Error("can not find mode to replace");e.contains.splice(o,1,n)};return Object.assign(t.keywords,r),t.exports.PARAMS_CONTAINS.push(i),t.contains=t.contains.concat([i,o,a]),s(t,"shebang",e.SHEBANG()),s(t,"use_strict",{className:"meta",relevance:10,begin:/^\s*['"]use strict['"]/}),t.contains.find((e=>"func.def"===e.label)).relevance=0,Object.assign(t,{name:"TypeScript",aliases:["ts","tsx"]}),t},grmr_vbnet:e=>{const t=e.regex,n=/\d{1,2}\/\d{1,2}\/\d{4}/,o=/\d{4}-\d{1,2}-\d{1,2}/,a=/(\d|1[012])(:\d+){0,2} *(AM|PM)/,r=/\d{1,2}(:\d{1,2}){1,2}/,i={className:"literal",variants:[{begin:t.concat(/# */,t.either(o,n),/ *#/)},{begin:t.concat(/# */,r,/ *#/)},{begin:t.concat(/# */,a,/ *#/)},{begin:t.concat(/# */,t.either(o,n),/ +/,t.either(a,r),/ *#/)}]},s=e.COMMENT(/'''/,/$/,{contains:[{className:"doctag",begin:/<\/?/,end:/>/}]}),l=e.COMMENT(null,/$/,{variants:[{begin:/'/},{begin:/([\t ]|^)REM(?=\s)/}]});return{name:"Visual Basic .NET",aliases:["vb"],case_insensitive:!0,classNameAliases:{label:"symbol"},keywords:{keyword:"addhandler alias aggregate ansi as async assembly auto binary by byref byval call case catch class compare const continue custom declare default delegate dim distinct do each equals else elseif end enum erase error event exit explicit finally for friend from function get global goto group handles if implements imports in inherits interface into iterator join key let lib loop me mid module mustinherit mustoverride mybase myclass namespace narrowing new next notinheritable notoverridable of off on operator option optional order overloads overridable overrides paramarray partial preserve private property protected public raiseevent readonly redim removehandler resume return select set shadows shared skip static step stop structure strict sub synclock take text then throw to try unicode until using when where while widening with withevents writeonly yield",built_in:"addressof and andalso await directcast gettype getxmlnamespace is isfalse isnot istrue like mod nameof new not or orelse trycast typeof xor cbool cbyte cchar cdate cdbl cdec cint clng cobj csbyte cshort csng cstr cuint culng cushort",type:"boolean byte char date decimal double integer long object sbyte short single string uinteger ulong ushort",literal:"true false nothing"},illegal:"//|\\{|\\}|endif|gosub|variant|wend|^\\$ ",contains:[{className:"string",begin:/"(""|[^/n])"C\b/},{className:"string",begin:/"/,end:/"/,illegal:/\n/,contains:[{begin:/""/}]},i,{className:"number",relevance:0,variants:[{begin:/\b\d[\d_]*((\.[\d_]+(E[+-]?[\d_]+)?)|(E[+-]?[\d_]+))[RFD@!#]?/},{begin:/\b\d[\d_]*((U?[SIL])|[%&])?/},{begin:/&H[\dA-F_]+((U?[SIL])|[%&])?/},{begin:/&O[0-7_]+((U?[SIL])|[%&])?/},{begin:/&B[01_]+((U?[SIL])|[%&])?/}]},{className:"label",begin:/^\w+:/},s,l,{className:"meta",begin:/[\t ]*#(const|disable|else|elseif|enable|end|externalsource|if|region)\b/,end:/$/,keywords:{keyword:"const disable else elseif enable end externalsource if region then"},contains:[l]}]}},grmr_yaml:e=>{const t="true false yes no null",n="[\\w#;/?:@&=+$,.~*'()[\\]]+",o={className:"string",relevance:0,variants:[{begin:/'/,end:/'/},{begin:/"/,end:/"/},{begin:/\S+/}],contains:[e.BACKSLASH_ESCAPE,{className:"template-variable",variants:[{begin:/\{\{/,end:/\}\}/},{begin:/%\{/,end:/\}/}]}]},a=e.inherit(o,{variants:[{begin:/'/,end:/'/},{begin:/"/,end:/"/},{begin:/[^\s,{}[\]]+/}]}),r={end:",",endsWithParent:!0,excludeEnd:!0,keywords:t,relevance:0},i={begin:/\{/,end:/\}/,contains:[r],illegal:"\\n",relevance:0},s={begin:"\\[",end:"\\]",contains:[r],illegal:"\\n",relevance:0},l=[{className:"attr",variants:[{begin:"\\w[\\w :\\/.-]*:(?=[ \t]|$)"},{begin:'"\\w[\\w :\\/.-]*":(?=[ \t]|$)'},{begin:"'\\w[\\w :\\/.-]*':(?=[ \t]|$)"}]},{className:"meta",begin:"^---\\s*$",relevance:10},{className:"string",begin:"[\\|>]([1-9]?[+-])?[ ]*\\n( +)[^ ][^\\n]*\\n(\\2[^\\n]+\\n?)*"},{begin:"<%[%=-]?",end:"[%-]?%>",subLanguage:"ruby",excludeBegin:!0,excludeEnd:!0,relevance:0},{className:"type",begin:"!\\w+!"+n},{className:"type",begin:"!<"+n+">"},{className:"type",begin:"!"+n},{className:"type",begin:"!!"+n},{className:"meta",begin:"&"+e.UNDERSCORE_IDENT_RE+"$"},{className:"meta",begin:"\\*"+e.UNDERSCORE_IDENT_RE+"$"},{className:"bullet",begin:"-(?=[ ]|$)",relevance:0},e.HASH_COMMENT_MODE,{beginKeywords:t,keywords:{literal:t}},{className:"number",begin:"\\b[0-9]{4}(-[0-9][0-9]){0,2}([Tt \\t][0-9][0-9]?(:[0-9][0-9]){2})?(\\.[0-9]*)?([ \\t])*(Z|[-+][0-9][0-9]?(:[0-9][0-9])?)?\\b"},{className:"number",begin:e.C_NUMBER_RE+"\\b",relevance:0},i,s,o],c=[...l];return c.pop(),c.push(a),r.contains=c,{name:"YAML",case_insensitive:!0,aliases:["yml"],contains:l}}});const gs=Oi;for(const e of Object.keys(ms)){const t=e.replace("grmr_","").replace("_","-");gs.registerLanguage(t,ms[e])} +/*! `julia` grammar compiled for Highlight.js 11.4.0 */var hs=e=>{var t="[A-Za-z_\\u00A1-\\uFFFF][A-Za-z_0-9\\u00A1-\\uFFFF]*",n={$pattern:t,keyword:["baremodule","begin","break","catch","ccall","const","continue","do","else","elseif","end","export","false","finally","for","function","global","if","import","in","isa","let","local","macro","module","quote","return","true","try","using","where","while"],literal:["ARGS","C_NULL","DEPOT_PATH","ENDIAN_BOM","ENV","Inf","Inf16","Inf32","Inf64","InsertionSort","LOAD_PATH","MergeSort","NaN","NaN16","NaN32","NaN64","PROGRAM_FILE","QuickSort","RoundDown","RoundFromZero","RoundNearest","RoundNearestTiesAway","RoundNearestTiesUp","RoundToZero","RoundUp","VERSION|0","devnull","false","im","missing","nothing","pi","stderr","stdin","stdout","true","undef","π","ℯ"],built_in:["AbstractArray","AbstractChannel","AbstractChar","AbstractDict","AbstractDisplay","AbstractFloat","AbstractIrrational","AbstractMatrix","AbstractRange","AbstractSet","AbstractString","AbstractUnitRange","AbstractVecOrMat","AbstractVector","Any","ArgumentError","Array","AssertionError","BigFloat","BigInt","BitArray","BitMatrix","BitSet","BitVector","Bool","BoundsError","CapturedException","CartesianIndex","CartesianIndices","Cchar","Cdouble","Cfloat","Channel","Char","Cint","Cintmax_t","Clong","Clonglong","Cmd","Colon","Complex","ComplexF16","ComplexF32","ComplexF64","CompositeException","Condition","Cptrdiff_t","Cshort","Csize_t","Cssize_t","Cstring","Cuchar","Cuint","Cuintmax_t","Culong","Culonglong","Cushort","Cvoid","Cwchar_t","Cwstring","DataType","DenseArray","DenseMatrix","DenseVecOrMat","DenseVector","Dict","DimensionMismatch","Dims","DivideError","DomainError","EOFError","Enum","ErrorException","Exception","ExponentialBackOff","Expr","Float16","Float32","Float64","Function","GlobalRef","HTML","IO","IOBuffer","IOContext","IOStream","IdDict","IndexCartesian","IndexLinear","IndexStyle","InexactError","InitError","Int","Int128","Int16","Int32","Int64","Int8","Integer","InterruptException","InvalidStateException","Irrational","KeyError","LinRange","LineNumberNode","LinearIndices","LoadError","MIME","Matrix","Method","MethodError","Missing","MissingException","Module","NTuple","NamedTuple","Nothing","Number","OrdinalRange","OutOfMemoryError","OverflowError","Pair","PartialQuickSort","PermutedDimsArray","Pipe","ProcessFailedException","Ptr","QuoteNode","Rational","RawFD","ReadOnlyMemoryError","Real","ReentrantLock","Ref","Regex","RegexMatch","RoundingMode","SegmentationFault","Set","Signed","Some","StackOverflowError","StepRange","StepRangeLen","StridedArray","StridedMatrix","StridedVecOrMat","StridedVector","String","StringIndexError","SubArray","SubString","SubstitutionString","Symbol","SystemError","Task","TaskFailedException","Text","TextDisplay","Timer","Tuple","Type","TypeError","TypeVar","UInt","UInt128","UInt16","UInt32","UInt64","UInt8","UndefInitializer","UndefKeywordError","UndefRefError","UndefVarError","Union","UnionAll","UnitRange","Unsigned","Val","Vararg","VecElement","VecOrMat","Vector","VersionNumber","WeakKeyDict","WeakRef"]},o={keywords:n,illegal:/<\//},a={className:"subst",begin:/\$\(/,end:/\)/,keywords:n},r={className:"variable",begin:"\\$"+t},i={className:"string",contains:[e.BACKSLASH_ESCAPE,a,r],variants:[{begin:/\w*"""/,end:/"""\w*/,relevance:10},{begin:/\w*"/,end:/"\w*/}]},s={className:"string",contains:[e.BACKSLASH_ESCAPE,a,r],begin:"`",end:"`"},l={className:"meta",begin:"@"+t};return o.name="Julia",o.contains=[{className:"number",begin:/(\b0x[\d_]*(\.[\d_]*)?|0x\.\d[\d_]*)p[-+]?\d+|\b0[box][a-fA-F0-9][a-fA-F0-9_]*|(\b\d[\d_]*(\.[\d_]*)?|\.\d[\d_]*)([eEfF][-+]?\d+)?/,relevance:0},{className:"string",begin:/'(.|\\[xXuU][a-zA-Z0-9]+)'/},i,s,l,{className:"comment",variants:[{begin:"#=",end:"=#",relevance:10},{begin:"#",end:"$"}]},e.HASH_COMMENT_MODE,{className:"keyword",begin:"\\b(((abstract|primitive)\\s+)type|(mutable\\s+)?struct)\\b"},{begin:/<:/}],a.contains=o.contains,o},fs=hs,_s=e=>({name:"Julia REPL",contains:[{className:"meta",begin:/^julia>/,relevance:10,starts:{end:/^(?![ ]{6})/,subLanguage:"julia"}}],aliases:["jldoctest"]});gs.registerLanguage("julia",fs),gs.registerLanguage("julia-repl",_s),window.hljs=gs;var bs=gs;St=r("hiQgq"),io=r("1gqBQ");r("9Ta4i");i=r("cNaMA");const vs=({process_waiting_for_permission:e,risky_file_source:t,restart:n,warn_about_untrusted_code:o})=>i.html` +
    + ${e?i.html`
    +
    + Safe preview + + +
    +
    `:null} + `,ys=()=>i.html`
    + ${"Code not executed in "}Safe preview +
    `;class ws extends i.Component{constructor(){super(),this.state={output_changed_once:!1},this.old_height=0,this.resize_observer=new ResizeObserver((e=>{const t=this.base.offsetHeight;if(document.body.querySelector("pluto-cell:focus-within")){var n;const e=document.body.querySelectorAll("pluto-cell:focus-within ~ pluto-cell > pluto-output");"SUMMARY"===(null===(n=document.activeElement)||void 0===n?void 0:n.tagName)||0!==e.length&&Array.from(e).includes(this.base)||window.scrollBy(0,t-this.old_height)}this.old_height=t}))}shouldComponentUpdate({last_run_timestamp:e,sanitize_html:t}){return e!==this.props.last_run_timestamp||t!==this.props.sanitize_html}componentDidUpdate(e){this.props.last_run_timestamp!==e.last_run_timestamp&&this.setState({output_changed_once:!0})}componentDidMount(){this.resize_observer.observe(this.base)}componentWillUnmount(){this.resize_observer.unobserve(this.base)}render(){const e=this.props.errored||!this.props.body||"application/vnd.pluto.tree+object"!==this.props.mime&&"application/vnd.pluto.table+object"!==this.props.mime&&"text/plain"!==this.props.mime,t=!this.props.errored&&e;return i.html` + + + <${Es} ...${this.props} /> + + `;var n}}let ks=({body:e,mime:t})=>{let n=i.useRef();return i.useLayoutEffect((()=>{let o=URL.createObjectURL(new Blob([e],{type:t}));return n.current.onload=n.current.onerror=()=>{n.current&&(n.current.style.display=null)},""===n.current.src&&(n.current.style.display="none"),n.current.type=t,n.current.src=o,()=>URL.revokeObjectURL(o)}),[e,t]),i.html``};const Es=({mime:e,body:t,cell_id:n,persist_js_state:o=!1,last_run_timestamp:a,sanitize_html:r=!0})=>{switch(r="false"!==r&&!1!==r,o="true"===o||!0===o,e){case"image/png":case"image/jpg":case"image/jpeg":case"image/gif":case"image/bmp":case"image/svg+xml":return i.html`
    <${ks} mime=${e} body=${t} />
    `;case"text/html":return t.startsWith("`:i.html`<${Os} + cell_id=${n} + body=${t} + persist_js_state=${o} + last_run_timestamp=${a} + sanitize_html=${r} + />`;case"application/vnd.pluto.tree+object":return i.html`
    + <${$r} cell_id=${n} body=${t} persist_js_state=${o} sanitize_html=${r} /> +
    `;case"application/vnd.pluto.table+object":return i.html`<${Nr} cell_id=${n} body=${t} persist_js_state=${o} sanitize_html=${r} />`;case"application/vnd.pluto.parseerror+object":return i.html`
    <${_r} cell_id=${n} ...${t} />
    `;case"application/vnd.pluto.stacktrace+object":return i.html`
    <${br} cell_id=${n} ...${t} />
    `;case"application/vnd.pluto.divelement+object":return(({cell_id:e,style:t,classname:n,children:o,persist_js_state:a=!1,sanitize_html:r=!0})=>i.html`
    ${o.map((t=>i.html`<${yr} cell_id=${e} mime=${t[1]} body=${t[0]} persist_js_state=${a} sanitize_html=${r} />`))}
    `)({cell_id:n,...t,persist_js_state:o,sanitize_html:r});case"text/plain":return t?i.html`
    +
    ${t}
    +
    `:i.html`
    `;case null:case void 0:case"":return i.html``;default:return i.html`
    🛑
    `}};Dr.default(Es,"pluto-display",["mime","body","cell_id","persist_js_state","last_run_timestamp","sanitize_html"]);let $s=({body:e})=>{let t=i.useRef();return i.useLayoutEffect((()=>{let n=URL.createObjectURL(new Blob([e],{type:"text/html"}));return t.current.src=n,As((async()=>{await new Promise((e=>t.current.addEventListener("load",(()=>e(null)))));let e=t.current.contentWindow.document,n=document.querySelector("#iframe-resizer-content-window-script"),o=e.createElement("script");o.src=n.src,o.crossOrigin="anonymous",e.head.appendChild(o),new Promise((e=>o.addEventListener("load",(()=>e(null))))),window.iFrameResize({checkOrigin:!1},t.current)})),()=>URL.revokeObjectURL(n)}),[e]),i.html``},xs=async({environment:e,code:t})=>{const n=`"use strict"; return (async () => {${t}})()`;let{this:o,...a}=e,r=Object.keys(a),i=Object.values(a);return await Function(...r,n).bind(o)(...i)},Ss=0,Ns=async(e,t)=>{let n=document.createElement("script");for(let t of e.attributes)n.attributes.setNamedItem(t.cloneNode(!0));const o=`____FUNCTION_TO_RUN_INSIDE_SCRIPT_${Ss}`;n.textContent=`{\n window.${o}.result = window.${o}.function_to_run(window.${o}.currentScript)\n }`,window[o]={function_to_run:t,currentScript:n,result:null};const a=e.parentNode;if(null==a)throw"Failed to execute script it has no parent in DOM.";a.replaceChild(n,e);let r=await window[o].result;return window[o]={function_to_run:t,result:null},{node:n,result:r}};const Cs=e=>e instanceof Element&&e.nodeType===Node.ELEMENT_NODE;let As=e=>e(),Ms=e=>{try{const t=e.getAttribute("shadowroot"),n=e.parentElement.attachShadow({mode:t});n.appendChild(e.content),e.remove();return Array.from(n.querySelectorAll("script, template[shadowroot]")).flatMap((e=>"SCRIPT"===e.nodeName?[e]:"TEMPLATE"===e.nodeName?Ms(e):void 0))}catch(t){return console.error("Couldn't attach declarative shadow dom to",e,"because of",t),[]}},Os=({body:e,className:t="",persist_js_state:n=!1,last_run_timestamp:o,sanitize_html:a=!0,sanitize_html_message:r=!0})=>{let s=i.useContext(ye),l=i.useContext(we),c=i.useContext(ke),d=i.useRef(new Map),u=i.useRef((()=>{})),p=i.useRef(null);return i.useLayoutEffect((()=>{p.current&&l&&Or(p.current.querySelectorAll("bond"),l)}),[e,n,s,l,a]),i.useLayoutEffect((()=>{const t=p.current;if(null==t)return;let o=new Promise((e=>{u.current=()=>{e(null)}}));document.createElement("p-dumpster").append(...t.childNodes);let m=a?$t.sanitize(e,{FORBID_TAGS:["style"],ADD_ATTR:["target"]}):e;if(t.innerHTML=m,r&&m!==e){const n=new DOMParser,o=n.parseFromString(e,"text/html");if(n.parseFromString(m,"text/html").documentElement.innerHTML!==o.documentElement.innerHTML){console.info("HTML sanitized",{body:e,html_content_to_set:m});let n=document.createElement("div");n.innerHTML='
    \nScripts and styles not rendered in Safe preview\n
    ',t.prepend(n)}}if(a)return;const g=[...Array.from(t.querySelectorAll("template[shadowroot]")).flatMap((e=>Ms(e))),...Array.from(t.querySelectorAll("script"))];return As((async()=>{try{var e;if(null==c||c.add(t),d.current=await(async({root_node:e,script_nodes:t,previous_results_map:n,invalidation:o,pluto_actions:a})=>{let r=new Map;for(let e of t)if(null!=e.src&&""!==e.src);else{let t=e.id,o=t?n.get(t):null;Cs(o)&&(null===(s=e.parentElement)||void 0===s||s.insertBefore(o,e))}for(let l of t){if(Ss+=1,null!=l.src&&""!==l.src){let e=Array.from(document.head.querySelectorAll("script")).find((e=>e.src===l.src));null==e&&(e=document.createElement("script"),e.referrerPolicy=l.referrerPolicy,e.crossOrigin=l.crossOrigin,e.integrity=l.integrity,e.noModule=l.noModule,e.nonce=l.nonce,e.type=l.type,e.src=l.src,e.pluto_is_loading_me=!0);let t=e;null!=t.pluto_is_loading_me&&(await new Promise((e=>{t.addEventListener("load",e),t.addEventListener("error",e),document.head.appendChild(t)})),t.pluto_is_loading_me=void 0)}else try{let t=l.innerText,c=l.id,d=c?n.get(c):null;if("module"===l.type&&console.warn("We don't (yet) fully support
    \ No newline at end of file diff --git a/frontend-dist/ellipsis-horizontal-circle-outline.6279ed30.svg b/frontend-dist/ellipsis-horizontal-circle-outline.6279ed30.svg new file mode 100644 index 0000000000..4b8d05ea8e --- /dev/null +++ b/frontend-dist/ellipsis-horizontal-circle-outline.6279ed30.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend-dist/ellipsis-horizontal-outline.abb6e818.svg b/frontend-dist/ellipsis-horizontal-outline.abb6e818.svg new file mode 100644 index 0000000000..bf94f28aca --- /dev/null +++ b/frontend-dist/ellipsis-horizontal-outline.abb6e818.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend-dist/ellipsis-horizontal.c9a6cc29.svg b/frontend-dist/ellipsis-horizontal.c9a6cc29.svg new file mode 100644 index 0000000000..5df322580b --- /dev/null +++ b/frontend-dist/ellipsis-horizontal.c9a6cc29.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend-dist/ellipsis-vertical.a30e7430.svg b/frontend-dist/ellipsis-vertical.a30e7430.svg new file mode 100644 index 0000000000..27f793a2cb --- /dev/null +++ b/frontend-dist/ellipsis-vertical.a30e7430.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend-dist/error.jl.html b/frontend-dist/error.jl.html new file mode 100644 index 0000000000..7c839e6848 --- /dev/null +++ b/frontend-dist/error.jl.html @@ -0,0 +1 @@ +$TITLE$STYLE

    $TITLE

    $ADVICE


    Go back


    $BODYTITLE

    $BODY
    \ No newline at end of file diff --git a/frontend-dist/eye-off-outline.a37e03db.svg b/frontend-dist/eye-off-outline.a37e03db.svg new file mode 100644 index 0000000000..4a7e915939 --- /dev/null +++ b/frontend-dist/eye-off-outline.a37e03db.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend-dist/eye-outline.6e6e0f7c.svg b/frontend-dist/eye-outline.6e6e0f7c.svg new file mode 100644 index 0000000000..6901ef405b --- /dev/null +++ b/frontend-dist/eye-outline.6e6e0f7c.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend-dist/favicon-16x16.347d2855.png b/frontend-dist/favicon-16x16.347d2855.png new file mode 100644 index 0000000000..bd77b08001 Binary files /dev/null and b/frontend-dist/favicon-16x16.347d2855.png differ diff --git a/frontend-dist/favicon-32x32.8789add4.png b/frontend-dist/favicon-32x32.8789add4.png new file mode 100644 index 0000000000..96580877eb Binary files /dev/null and b/frontend-dist/favicon-32x32.8789add4.png differ diff --git a/frontend-dist/favicon-96x96.48689391.png b/frontend-dist/favicon-96x96.48689391.png new file mode 100644 index 0000000000..1d5d57d5b2 Binary files /dev/null and b/frontend-dist/favicon-96x96.48689391.png differ diff --git a/frontend-dist/favicon_unsaturated.d1387b25.svg b/frontend-dist/favicon_unsaturated.d1387b25.svg new file mode 100644 index 0000000000..ccc316f314 --- /dev/null +++ b/frontend-dist/favicon_unsaturated.d1387b25.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend-dist/firebase-app.15ba8989.js b/frontend-dist/firebase-app.15ba8989.js new file mode 100644 index 0000000000..3fd269f442 --- /dev/null +++ b/frontend-dist/firebase-app.15ba8989.js @@ -0,0 +1,279 @@ +var e="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{};function t(e,t,r,n){Object.defineProperty(e,t,{get:r,set:n,enumerable:!0,configurable:!0})}var r=e.parcelRequire94c2;r.register("8WRsO",(function(n,a){t(n.exports,"FirebaseError",(()=>g)),t(n.exports,"_DEFAULT_ENTRY_NAME",(()=>X)),t(n.exports,"_apps",(()=>Q)),t(n.exports,"_components",(()=>ee)),t(n.exports,"_addComponent",(()=>te)),t(n.exports,"_addOrOverwriteComponent",(()=>re)),t(n.exports,"_registerComponent",(()=>ne)),t(n.exports,"_getProvider",(()=>ae)),t(n.exports,"_removeServiceInstance",(()=>ie)),t(n.exports,"_clearComponents",(()=>se)),t(n.exports,"SDK_VERSION",(()=>he)),t(n.exports,"initializeApp",(()=>le)),t(n.exports,"getApp",(()=>de)),t(n.exports,"getApps",(()=>ue)),t(n.exports,"deleteApp",(()=>fe)),t(n.exports,"registerVersion",(()=>pe)),t(n.exports,"onLog",(()=>ge)),t(n.exports,"setLogLevel",(()=>me));var i=r("fnbc9"); +/** + * @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. + */const s=function(e){const t=[];let r=0;for(let n=0;n>6|192,t[r++]=63&a|128):55296==(64512&a)&&n+1>18|240,t[r++]=a>>12&63|128,t[r++]=a>>6&63|128,t[r++]=63&a|128):(t[r++]=a>>12|224,t[r++]=a>>6&63|128,t[r++]=63&a|128)}return t},o={byteToCharMap_:null,charToByteMap_:null,byteToCharMapWebSafe_:null,charToByteMapWebSafe_:null,ENCODED_VALS_BASE:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",get ENCODED_VALS(){return this.ENCODED_VALS_BASE+"+/="},get ENCODED_VALS_WEBSAFE(){return this.ENCODED_VALS_BASE+"-_."},HAS_NATIVE_SUPPORT:"function"==typeof atob,encodeByteArray(e,t){if(!Array.isArray(e))throw Error("encodeByteArray takes an array as a parameter");this.init_();const r=t?this.byteToCharMapWebSafe_:this.byteToCharMap_,n=[];for(let t=0;t>2,l=(3&a)<<4|s>>4;let d=(15&s)<<2|c>>6,u=63&c;o||(u=64,i||(d=64)),n.push(r[h],r[l],r[d],r[u])}return n.join("")},encodeString(e,t){return this.HAS_NATIVE_SUPPORT&&!t?btoa(e):this.encodeByteArray(s(e),t)},decodeString(e,t){return this.HAS_NATIVE_SUPPORT&&!t?atob(e):function(e){const t=[];let r=0,n=0;for(;r191&&a<224){const i=e[r++];t[n++]=String.fromCharCode((31&a)<<6|63&i)}else if(a>239&&a<365){const i=((7&a)<<18|(63&e[r++])<<12|(63&e[r++])<<6|63&e[r++])-65536;t[n++]=String.fromCharCode(55296+(i>>10)),t[n++]=String.fromCharCode(56320+(1023&i))}else{const i=e[r++],s=e[r++];t[n++]=String.fromCharCode((15&a)<<12|(63&i)<<6|63&s)}}return t.join("")}(this.decodeStringToByteArray(e,t))},decodeStringToByteArray(e,t){this.init_();const r=t?this.charToByteMapWebSafe_:this.charToByteMap_,n=[];for(let t=0;t>4;if(n.push(h),64!==s){const e=i<<4&240|s>>2;if(n.push(e),64!==o){const e=s<<6&192|o;n.push(e)}}}return n},init_(){if(!this.byteToCharMap_){this.byteToCharMap_={},this.charToByteMap_={},this.byteToCharMapWebSafe_={},this.charToByteMapWebSafe_={};for(let e=0;e=this.ENCODED_VALS_BASE.length&&(this.charToByteMap_[this.ENCODED_VALS_WEBSAFE.charAt(e)]=e,this.charToByteMapWebSafe_[this.ENCODED_VALS.charAt(e)]=e)}}};class c extends Error{constructor(){super(...arguments),this.name="DecodeBase64StringError"}}const h=function(e){return function(e){const t=s(e);return o.encodeByteArray(t,!0)}(e).replace(/\./g,"")}; +/** + * @license + * Copyright 2022 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. + */ +const l=()=> +/** + * @license + * Copyright 2022 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(){if("undefined"!=typeof self)return self;if("undefined"!=typeof window)return window;if(void 0!==e)return e;throw new Error("Unable to locate global object.")}().__FIREBASE_DEFAULTS__,d=()=>{if("undefined"==typeof document)return;let e;try{e=document.cookie.match(/__FIREBASE_DEFAULTS__=([^;]+)/)}catch(e){return}const t=e&&function(e){try{return o.decodeString(e,!0)}catch(e){console.error("base64Decode failed: ",e)}return null}(e[1]);return t&&JSON.parse(t)},u=()=>{try{return l()||(()=>{if(void 0===i||void 0===i.env)return})()||d()}catch(e){return void console.info(`Unable to get __FIREBASE_DEFAULTS__ due to: ${e}`)}},f=()=>{var e;return null===(e=u())||void 0===e?void 0:e.config}; +/** + * @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. + */ +class p{constructor(){this.reject=()=>{},this.resolve=()=>{},this.promise=new Promise(((e,t)=>{this.resolve=e,this.reject=t}))}wrapCallback(e){return(t,r)=>{t?this.reject(t):this.resolve(r),"function"==typeof e&&(this.promise.catch((()=>{})),1===e.length?e(t):e(t,r))}}}class g extends Error{constructor(e,t,r){super(t),this.code=e,this.customData=r,this.name="FirebaseError",Object.setPrototypeOf(this,g.prototype),Error.captureStackTrace&&Error.captureStackTrace(this,m.prototype.create)}}class m{constructor(e,t,r){this.service=e,this.serviceName=t,this.errors=r}create(e,...t){const r=t[0]||{},n=`${this.service}/${e}`,a=this.errors[e],i=a?function(e,t){return e.replace(b,((e,r)=>{const n=t[r];return null!=n?String(n):`<${r}?>`}))}(a,r):"Error",s=`${this.serviceName}: ${i} (${n}).`;return new g(n,s,r)}}const b=/\{\$([^}]+)}/g;function v(e,t){if(e===t)return!0;const r=Object.keys(e),n=Object.keys(t);for(const a of r){if(!n.includes(a))return!1;const r=e[a],i=t[a];if(E(r)&&E(i)){if(!v(r,i))return!1}else if(r!==i)return!1}for(const e of n)if(!r.includes(e))return!1;return!0}function E(e){return null!==e&&"object"==typeof e}class _{constructor(e,t,r){this.name=e,this.instanceFactory=t,this.type=r,this.multipleInstances=!1,this.serviceProps={},this.instantiationMode="LAZY",this.onInstanceCreated=null}setInstantiationMode(e){return this.instantiationMode=e,this}setMultipleInstances(e){return this.multipleInstances=e,this}setServiceProps(e){return this.serviceProps=e,this}setInstanceCreatedCallback(e){return this.onInstanceCreated=e,this}} +/** + * @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. + */const y="[DEFAULT]"; +/** + * @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. + */class w{constructor(e,t){this.name=e,this.container=t,this.component=null,this.instances=new Map,this.instancesDeferred=new Map,this.instancesOptions=new Map,this.onInitCallbacks=new Map}get(e){const t=this.normalizeInstanceIdentifier(e);if(!this.instancesDeferred.has(t)){const e=new p;if(this.instancesDeferred.set(t,e),this.isInitialized(t)||this.shouldAutoInitialize())try{const r=this.getOrInitializeService({instanceIdentifier:t});r&&e.resolve(r)}catch(e){}}return this.instancesDeferred.get(t).promise}getImmediate(e){var t;const r=this.normalizeInstanceIdentifier(null==e?void 0:e.identifier),n=null!==(t=null==e?void 0:e.optional)&&void 0!==t&&t;if(!this.isInitialized(r)&&!this.shouldAutoInitialize()){if(n)return null;throw Error(`Service ${this.name} is not available`)}try{return this.getOrInitializeService({instanceIdentifier:r})}catch(e){if(n)return null;throw e}}getComponent(){return this.component}setComponent(e){if(e.name!==this.name)throw Error(`Mismatching Component ${e.name} for Provider ${this.name}.`);if(this.component)throw Error(`Component for ${this.name} has already been provided`);if(this.component=e,this.shouldAutoInitialize()){if(function(e){return"EAGER"===e.instantiationMode} +/** + * @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. + */(e))try{this.getOrInitializeService({instanceIdentifier:y})}catch(e){}for(const[e,t]of this.instancesDeferred.entries()){const r=this.normalizeInstanceIdentifier(e);try{const e=this.getOrInitializeService({instanceIdentifier:r});t.resolve(e)}catch(e){}}}}clearInstance(e="[DEFAULT]"){this.instancesDeferred.delete(e),this.instancesOptions.delete(e),this.instances.delete(e)}async delete(){const e=Array.from(this.instances.values());await Promise.all([...e.filter((e=>"INTERNAL"in e)).map((e=>e.INTERNAL.delete())),...e.filter((e=>"_delete"in e)).map((e=>e._delete()))])}isComponentSet(){return null!=this.component}isInitialized(e="[DEFAULT]"){return this.instances.has(e)}getOptions(e="[DEFAULT]"){return this.instancesOptions.get(e)||{}}initialize(e={}){const{options:t={}}=e,r=this.normalizeInstanceIdentifier(e.instanceIdentifier);if(this.isInitialized(r))throw Error(`${this.name}(${r}) has already been initialized`);if(!this.isComponentSet())throw Error(`Component ${this.name} has not been registered yet`);const n=this.getOrInitializeService({instanceIdentifier:r,options:t});for(const[e,t]of this.instancesDeferred.entries()){r===this.normalizeInstanceIdentifier(e)&&t.resolve(n)}return n}onInit(e,t){var r;const n=this.normalizeInstanceIdentifier(t),a=null!==(r=this.onInitCallbacks.get(n))&&void 0!==r?r:new Set;a.add(e),this.onInitCallbacks.set(n,a);const i=this.instances.get(n);return i&&e(i,n),()=>{a.delete(e)}}invokeOnInitCallbacks(e,t){const r=this.onInitCallbacks.get(t);if(r)for(const n of r)try{n(e,t)}catch(e){}}getOrInitializeService({instanceIdentifier:e,options:t={}}){let r=this.instances.get(e);if(!r&&this.component&&(r=this.component.instanceFactory(this.container,{instanceIdentifier:(n=e,n===y?void 0:n),options:t}),this.instances.set(e,r),this.instancesOptions.set(e,t),this.invokeOnInitCallbacks(r,e),this.component.onInstanceCreated))try{this.component.onInstanceCreated(this.container,e,r)}catch(e){}var n;return r||null}normalizeInstanceIdentifier(e="[DEFAULT]"){return this.component?this.component.multipleInstances?e:y:e}shouldAutoInitialize(){return!!this.component&&"EXPLICIT"!==this.component.instantiationMode}}class I{constructor(e){this.name=e,this.providers=new Map}addComponent(e){const t=this.getProvider(e.name);if(t.isComponentSet())throw new Error(`Component ${e.name} has already been registered with ${this.name}`);t.setComponent(e)}addOrOverwriteComponent(e){this.getProvider(e.name).isComponentSet()&&this.providers.delete(e.name),this.addComponent(e)}getProvider(e){if(this.providers.has(e))return this.providers.get(e);const t=new w(e,this);return this.providers.set(e,t),t}getProviders(){return Array.from(this.providers.values())}} +/** + * @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. + */const D=[];var S,C;(C=S||(S={}))[C.DEBUG=0]="DEBUG",C[C.VERBOSE=1]="VERBOSE",C[C.INFO=2]="INFO",C[C.WARN=3]="WARN",C[C.ERROR=4]="ERROR",C[C.SILENT=5]="SILENT";const A={debug:S.DEBUG,verbose:S.VERBOSE,info:S.INFO,warn:S.WARN,error:S.ERROR,silent:S.SILENT},O=S.INFO,L={[S.DEBUG]:"log",[S.VERBOSE]:"log",[S.INFO]:"info",[S.WARN]:"warn",[S.ERROR]:"error"},B=(e,t,...r)=>{if(t(e[t]=r,!0),has:(e,t)=>e instanceof IDBTransaction&&("done"===t||"store"===t)||t in e};function k(e){return e!==IDBDatabase.prototype.transaction||"objectStoreNames"in IDBTransaction.prototype?(N||(N=[IDBCursor.prototype.advance,IDBCursor.prototype.continue,IDBCursor.prototype.continuePrimaryKey])).includes(e)?function(...t){return e.apply(V(this),t),F(M.get(this))}:function(...t){return F(e.apply(V(this),t))}:function(t,...r){const n=e.call(V(this),t,...r);return P.set(n,t.sort?t.sort():[t]),F(n)}}function j(e){return"function"==typeof e?k(e):(e instanceof IDBTransaction&&function(e){if(R.has(e))return;const t=new Promise(((t,r)=>{const n=()=>{e.removeEventListener("complete",a),e.removeEventListener("error",i),e.removeEventListener("abort",i)},a=()=>{t(),n()},i=()=>{r(e.error||new DOMException("AbortError","AbortError")),n()};e.addEventListener("complete",a),e.addEventListener("error",i),e.addEventListener("abort",i)}));R.set(e,t)}(e),t=e,(T||(T=[IDBDatabase,IDBObjectStore,IDBIndex,IDBCursor,IDBTransaction])).some((e=>t instanceof e))?new Proxy(e,H):e);var t}function F(e){if(e instanceof IDBRequest)return function(e){const t=new Promise(((t,r)=>{const n=()=>{e.removeEventListener("success",a),e.removeEventListener("error",i)},a=()=>{t(F(e.result)),n()},i=()=>{r(e.error),n()};e.addEventListener("success",a),e.addEventListener("error",i)}));return t.then((t=>{t instanceof IDBCursor&&M.set(t,e)})).catch((()=>{})),$.set(t,e),t}(e);if(x.has(e))return x.get(e);const t=j(e);return t!==e&&(x.set(e,t),$.set(t,e)),t}const V=e=>$.get(e);const U=["get","getKey","getAll","getAllKeys","count"],z=["put","add","delete","clear"],W=new Map;function G(e,t){if(!(e instanceof IDBDatabase)||t in e||"string"!=typeof t)return;if(W.get(t))return W.get(t);const r=t.replace(/FromIndex$/,""),n=t!==r,a=z.includes(r);if(!(r in(n?IDBIndex:IDBObjectStore).prototype)||!a&&!U.includes(r))return;const i=async function(e,...t){const i=this.transaction(e,a?"readwrite":"readonly");let s=i.store;return n&&(s=s.index(t.shift())),(await Promise.all([s[r](...t),a&&i.done]))[0]};return W.set(t,i),i}H=(e=>({...e,get:(t,r,n)=>G(t,r)||e.get(t,r,n),has:(t,r)=>!!G(t,r)||e.has(t,r)}))(H); +/** + * @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. + */ +class J{constructor(e){this.container=e}getPlatformInfoString(){return this.container.getProviders().map((e=>{if(function(e){const t=e.getComponent();return"VERSION"===(null==t?void 0:t.type)}(e)){const t=e.getImmediate();return`${t.library}/${t.version}`}return null})).filter((e=>e)).join(" ")}}const K="https://www.gstatic.com/firebasejs/10.8.0/firebase-app.js",q="0.9.27",Y=new class{constructor(e){this.name=e,this._logLevel=O,this._logHandler=B,this._userLogHandler=null,D.push(this)}get logLevel(){return this._logLevel}set logLevel(e){if(!(e in S))throw new TypeError(`Invalid value "${e}" assigned to \`logLevel\``);this._logLevel=e}setLogLevel(e){this._logLevel="string"==typeof e?A[e]:e}get logHandler(){return this._logHandler}set logHandler(e){if("function"!=typeof e)throw new TypeError("Value assigned to `logHandler` must be a function");this._logHandler=e}get userLogHandler(){return this._userLogHandler}set userLogHandler(e){this._userLogHandler=e}debug(...e){this._userLogHandler&&this._userLogHandler(this,S.DEBUG,...e),this._logHandler(this,S.DEBUG,...e)}log(...e){this._userLogHandler&&this._userLogHandler(this,S.VERBOSE,...e),this._logHandler(this,S.VERBOSE,...e)}info(...e){this._userLogHandler&&this._userLogHandler(this,S.INFO,...e),this._logHandler(this,S.INFO,...e)}warn(...e){this._userLogHandler&&this._userLogHandler(this,S.WARN,...e),this._logHandler(this,S.WARN,...e)}error(...e){this._userLogHandler&&this._userLogHandler(this,S.ERROR,...e),this._logHandler(this,S.ERROR,...e)}}("https://www.gstatic.com/firebasejs/10.8.0/firebase-app.js"),X="[DEFAULT]",Z={[K]:"fire-core","@firebase/app-compat":"fire-core-compat","@firebase/analytics":"fire-analytics","@firebase/analytics-compat":"fire-analytics-compat","@firebase/app-check":"fire-app-check","@firebase/app-check-compat":"fire-app-check-compat","@firebase/auth":"fire-auth","@firebase/auth-compat":"fire-auth-compat","@firebase/database":"fire-rtdb","@firebase/database-compat":"fire-rtdb-compat","@firebase/functions":"fire-fn","@firebase/functions-compat":"fire-fn-compat","@firebase/installations":"fire-iid","@firebase/installations-compat":"fire-iid-compat","@firebase/messaging":"fire-fcm","@firebase/messaging-compat":"fire-fcm-compat","@firebase/performance":"fire-perf","@firebase/performance-compat":"fire-perf-compat","@firebase/remote-config":"fire-rc","@firebase/remote-config-compat":"fire-rc-compat","@firebase/storage":"fire-gcs","@firebase/storage-compat":"fire-gcs-compat","@firebase/firestore":"fire-fst","@firebase/firestore-compat":"fire-fst-compat","fire-js":"fire-js",firebase:"fire-js-all"},Q=new Map,ee=new Map;function te(e,t){try{e.container.addComponent(t)}catch(r){Y.debug(`Component ${t.name} failed to register with FirebaseApp ${e.name}`,r)}}function re(e,t){e.container.addOrOverwriteComponent(t)}function ne(e){const t=e.name;if(ee.has(t))return Y.debug(`There were multiple attempts to register component ${t}.`),!1;ee.set(t,e);for(const t of Q.values())te(t,e);return!0}function ae(e,t){const r=e.container.getProvider("heartbeat").getImmediate({optional:!0});return r&&r.triggerHeartbeat(),e.container.getProvider(t)}function ie(e,t,r=X){ae(e,t).clearInstance(r)}function se(){ee.clear()} +/** + * @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. + */const oe=new m("app","Firebase",{"no-app":"No Firebase App '{$appName}' has been created - call initializeApp() first","bad-app-name":"Illegal App name: '{$appName}","duplicate-app":"Firebase App named '{$appName}' already exists with different options or config","app-deleted":"Firebase App named '{$appName}' already deleted","no-options":"Need to provide options, when not being deployed to hosting via source.","invalid-app-argument":"firebase.{$appName}() takes either no argument or a Firebase App instance.","invalid-log-argument":"First argument to `onLog` must be null or a function.","idb-open":"Error thrown when opening IndexedDB. Original error: {$originalErrorMessage}.","idb-get":"Error thrown when reading from IndexedDB. Original error: {$originalErrorMessage}.","idb-set":"Error thrown when writing to IndexedDB. Original error: {$originalErrorMessage}.","idb-delete":"Error thrown when deleting from IndexedDB. Original error: {$originalErrorMessage}."}); +/** + * @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. + */ +class ce{constructor(e,t,r){this._isDeleted=!1,this._options=Object.assign({},e),this._config=Object.assign({},t),this._name=t.name,this._automaticDataCollectionEnabled=t.automaticDataCollectionEnabled,this._container=r,this.container.addComponent(new _("app",(()=>this),"PUBLIC"))}get automaticDataCollectionEnabled(){return this.checkDestroyed(),this._automaticDataCollectionEnabled}set automaticDataCollectionEnabled(e){this.checkDestroyed(),this._automaticDataCollectionEnabled=e}get name(){return this.checkDestroyed(),this._name}get options(){return this.checkDestroyed(),this._options}get config(){return this.checkDestroyed(),this._config}get container(){return this._container}get isDeleted(){return this._isDeleted}set isDeleted(e){this._isDeleted=e}checkDestroyed(){if(this.isDeleted)throw oe.create("app-deleted",{appName:this._name})}} +/** + * @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. + */const he="10.8.0";function le(e,t={}){let r=e;if("object"!=typeof t){t={name:t}}const n=Object.assign({name:X,automaticDataCollectionEnabled:!1},t),a=n.name;if("string"!=typeof a||!a)throw oe.create("bad-app-name",{appName:String(a)});if(r||(r=f()),!r)throw oe.create("no-options");const i=Q.get(a);if(i){if(v(r,i.options)&&v(n,i.config))return i;throw oe.create("duplicate-app",{appName:a})}const s=new I(a);for(const e of ee.values())s.addComponent(e);const o=new ce(r,n,s);return Q.set(a,o),o}function de(e=X){const t=Q.get(e);if(!t&&e===X&&f())return le();if(!t)throw oe.create("no-app",{appName:e});return t}function ue(){return Array.from(Q.values())}async function fe(e){const t=e.name;Q.has(t)&&(Q.delete(t),await Promise.all(e.container.getProviders().map((e=>e.delete()))),e.isDeleted=!0)}function pe(e,t,r){var n;let a=null!==(n=Z[e])&&void 0!==n?n:e;r&&(a+=`-${r}`);const i=a.match(/\s|\//),s=t.match(/\s|\//);if(i||s){const e=[`Unable to register library "${a}" with version "${t}":`];return i&&e.push(`library name "${a}" contains illegal characters (whitespace or "/")`),i&&s&&e.push("and"),s&&e.push(`version name "${t}" contains illegal characters (whitespace or "/")`),void Y.warn(e.join(" "))}ne(new _(`${a}-version`,(()=>({library:a,version:t})),"VERSION"))}function ge(e,t){if(null!==e&&"function"!=typeof e)throw oe.create("invalid-log-argument");!function(e,t){for(const r of D){let n=null;t&&t.level&&(n=A[t.level]),r.userLogHandler=null===e?null:(t,r,...a)=>{const i=a.map((e=>{if(null==e)return null;if("string"==typeof e)return e;if("number"==typeof e||"boolean"==typeof e)return e.toString();if(e instanceof Error)return e.message;try{return JSON.stringify(e)}catch(e){return null}})).filter((e=>e)).join(" ");r>=(null!=n?n:t.logLevel)&&e({level:S[r].toLowerCase(),message:i,args:a,type:t.name})}}}(e,t)}function me(e){var t;t=e,D.forEach((e=>{e.setLogLevel(t)}))} +/** + * @license + * Copyright 2021 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. + */const be="firebase-heartbeat-store";let ve=null;function Ee(){return ve||(ve=function(e,t,{blocked:r,upgrade:n,blocking:a,terminated:i}={}){const s=indexedDB.open(e,t),o=F(s);return n&&s.addEventListener("upgradeneeded",(e=>{n(F(s.result),e.oldVersion,e.newVersion,F(s.transaction),e)})),r&&s.addEventListener("blocked",(e=>r(e.oldVersion,e.newVersion,e))),o.then((e=>{i&&e.addEventListener("close",(()=>i())),a&&e.addEventListener("versionchange",(e=>a(e.oldVersion,e.newVersion,e)))})).catch((()=>{})),o}("firebase-heartbeat-database",1,{upgrade:(e,t)=>{if(0===t)try{e.createObjectStore(be)}catch(e){console.warn(e)}}}).catch((e=>{throw oe.create("idb-open",{originalErrorMessage:e.message})}))),ve}async function _e(e,t){try{const r=(await Ee()).transaction(be,"readwrite"),n=r.objectStore(be);await n.put(t,ye(e)),await r.done}catch(e){if(e instanceof g)Y.warn(e.message);else{const t=oe.create("idb-set",{originalErrorMessage:null==e?void 0:e.message});Y.warn(t.message)}}}function ye(e){return`${e.name}!${e.options.appId}`} +/** + * @license + * Copyright 2021 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. + */class we{constructor(e){this.container=e,this._heartbeatsCache=null;const t=this.container.getProvider("app").getImmediate();this._storage=new De(t),this._heartbeatsCachePromise=this._storage.read().then((e=>(this._heartbeatsCache=e,e)))}async triggerHeartbeat(){var e,t;const r=this.container.getProvider("platform-logger").getImmediate().getPlatformInfoString(),n=Ie();if((null!=(null===(e=this._heartbeatsCache)||void 0===e?void 0:e.heartbeats)||(this._heartbeatsCache=await this._heartbeatsCachePromise,null!=(null===(t=this._heartbeatsCache)||void 0===t?void 0:t.heartbeats)))&&this._heartbeatsCache.lastSentHeartbeatDate!==n&&!this._heartbeatsCache.heartbeats.some((e=>e.date===n)))return this._heartbeatsCache.heartbeats.push({date:n,agent:r}),this._heartbeatsCache.heartbeats=this._heartbeatsCache.heartbeats.filter((e=>{const t=new Date(e.date).valueOf();return Date.now()-t<=2592e6})),this._storage.overwrite(this._heartbeatsCache)}async getHeartbeatsHeader(){var e;if(null===this._heartbeatsCache&&await this._heartbeatsCachePromise,null==(null===(e=this._heartbeatsCache)||void 0===e?void 0:e.heartbeats)||0===this._heartbeatsCache.heartbeats.length)return"";const t=Ie(),{heartbeatsToSend:r,unsentEntries:n}=function(e,t=1024){const r=[];let n=e.slice();for(const a of e){const e=r.find((e=>e.agent===a.agent));if(e){if(e.dates.push(a.date),Se(r)>t){e.dates.pop();break}}else if(r.push({agent:a.agent,dates:[a.date]}),Se(r)>t){r.pop();break}n=n.slice(1)}return{heartbeatsToSend:r,unsentEntries:n}}(this._heartbeatsCache.heartbeats),a=h(JSON.stringify({version:2,heartbeats:r}));return this._heartbeatsCache.lastSentHeartbeatDate=t,n.length>0?(this._heartbeatsCache.heartbeats=n,await this._storage.overwrite(this._heartbeatsCache)):(this._heartbeatsCache.heartbeats=[],this._storage.overwrite(this._heartbeatsCache)),a}}function Ie(){return(new Date).toISOString().substring(0,10)}class De{constructor(e){this.app=e,this._canUseIndexedDBPromise=this.runIndexedDBEnvironmentCheck()}async runIndexedDBEnvironmentCheck(){return!!function(){try{return"object"==typeof indexedDB}catch(e){return!1}}()&&new Promise(((e,t)=>{try{let r=!0;const n="validate-browser-context-for-indexeddb-analytics-module",a=self.indexedDB.open(n);a.onsuccess=()=>{a.result.close(),r||self.indexedDB.deleteDatabase(n),e(!0)},a.onupgradeneeded=()=>{r=!1},a.onerror=()=>{var e;t((null===(e=a.error)||void 0===e?void 0:e.message)||"")}}catch(e){t(e)}})).then((()=>!0)).catch((()=>!1))}async read(){if(await this._canUseIndexedDBPromise){const e=await async function(e){try{const t=(await Ee()).transaction(be),r=await t.objectStore(be).get(ye(e));return await t.done,r}catch(e){if(e instanceof g)Y.warn(e.message);else{const t=oe.create("idb-get",{originalErrorMessage:null==e?void 0:e.message});Y.warn(t.message)}}}(this.app);return(null==e?void 0:e.heartbeats)?e:{heartbeats:[]}}return{heartbeats:[]}}async overwrite(e){var t;if(await this._canUseIndexedDBPromise){const r=await this.read();return _e(this.app,{lastSentHeartbeatDate:null!==(t=e.lastSentHeartbeatDate)&&void 0!==t?t:r.lastSentHeartbeatDate,heartbeats:e.heartbeats})}}async add(e){var t;if(await this._canUseIndexedDBPromise){const r=await this.read();return _e(this.app,{lastSentHeartbeatDate:null!==(t=e.lastSentHeartbeatDate)&&void 0!==t?t:r.lastSentHeartbeatDate,heartbeats:[...r.heartbeats,...e.heartbeats]})}}}function Se(e){return h(JSON.stringify({version:2,heartbeats:e})).length} +/** + * @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 Ce;Ce="",ne(new _("platform-logger",(e=>new J(e)),"PRIVATE")),ne(new _("heartbeat",(e=>new we(e)),"PRIVATE")),pe(K,q,Ce),pe(K,q,"esm2017"),pe("fire-js",""); +/** + * @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. + */ +pe("firebase","10.8.0","cdn")})); \ No newline at end of file diff --git a/frontend-dist/firebase-app.a89bd3ee.js b/frontend-dist/firebase-app.a89bd3ee.js new file mode 100644 index 0000000000..73417e0895 --- /dev/null +++ b/frontend-dist/firebase-app.a89bd3ee.js @@ -0,0 +1,279 @@ +(()=>{var e="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{};function t(e,t,r,n){Object.defineProperty(e,t,{get:r,set:n,enumerable:!0,configurable:!0})}var r=e.parcelRequire94c2;r.register("1wlTY",(function(n,a){t(n.exports,"FirebaseError",(()=>g)),t(n.exports,"_DEFAULT_ENTRY_NAME",(()=>X)),t(n.exports,"_apps",(()=>Q)),t(n.exports,"_components",(()=>ee)),t(n.exports,"_addComponent",(()=>te)),t(n.exports,"_addOrOverwriteComponent",(()=>re)),t(n.exports,"_registerComponent",(()=>ne)),t(n.exports,"_getProvider",(()=>ae)),t(n.exports,"_removeServiceInstance",(()=>ie)),t(n.exports,"_clearComponents",(()=>se)),t(n.exports,"SDK_VERSION",(()=>he)),t(n.exports,"initializeApp",(()=>le)),t(n.exports,"getApp",(()=>de)),t(n.exports,"getApps",(()=>ue)),t(n.exports,"deleteApp",(()=>fe)),t(n.exports,"registerVersion",(()=>pe)),t(n.exports,"onLog",(()=>ge)),t(n.exports,"setLogLevel",(()=>me));var i=r("6kwV5"); +/** + * @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. + */const s=function(e){const t=[];let r=0;for(let n=0;n>6|192,t[r++]=63&a|128):55296==(64512&a)&&n+1>18|240,t[r++]=a>>12&63|128,t[r++]=a>>6&63|128,t[r++]=63&a|128):(t[r++]=a>>12|224,t[r++]=a>>6&63|128,t[r++]=63&a|128)}return t},o={byteToCharMap_:null,charToByteMap_:null,byteToCharMapWebSafe_:null,charToByteMapWebSafe_:null,ENCODED_VALS_BASE:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",get ENCODED_VALS(){return this.ENCODED_VALS_BASE+"+/="},get ENCODED_VALS_WEBSAFE(){return this.ENCODED_VALS_BASE+"-_."},HAS_NATIVE_SUPPORT:"function"==typeof atob,encodeByteArray(e,t){if(!Array.isArray(e))throw Error("encodeByteArray takes an array as a parameter");this.init_();const r=t?this.byteToCharMapWebSafe_:this.byteToCharMap_,n=[];for(let t=0;t>2,l=(3&a)<<4|s>>4;let d=(15&s)<<2|c>>6,u=63&c;o||(u=64,i||(d=64)),n.push(r[h],r[l],r[d],r[u])}return n.join("")},encodeString(e,t){return this.HAS_NATIVE_SUPPORT&&!t?btoa(e):this.encodeByteArray(s(e),t)},decodeString(e,t){return this.HAS_NATIVE_SUPPORT&&!t?atob(e):function(e){const t=[];let r=0,n=0;for(;r191&&a<224){const i=e[r++];t[n++]=String.fromCharCode((31&a)<<6|63&i)}else if(a>239&&a<365){const i=((7&a)<<18|(63&e[r++])<<12|(63&e[r++])<<6|63&e[r++])-65536;t[n++]=String.fromCharCode(55296+(i>>10)),t[n++]=String.fromCharCode(56320+(1023&i))}else{const i=e[r++],s=e[r++];t[n++]=String.fromCharCode((15&a)<<12|(63&i)<<6|63&s)}}return t.join("")}(this.decodeStringToByteArray(e,t))},decodeStringToByteArray(e,t){this.init_();const r=t?this.charToByteMapWebSafe_:this.charToByteMap_,n=[];for(let t=0;t>4;if(n.push(h),64!==s){const e=i<<4&240|s>>2;if(n.push(e),64!==o){const e=s<<6&192|o;n.push(e)}}}return n},init_(){if(!this.byteToCharMap_){this.byteToCharMap_={},this.charToByteMap_={},this.byteToCharMapWebSafe_={},this.charToByteMapWebSafe_={};for(let e=0;e=this.ENCODED_VALS_BASE.length&&(this.charToByteMap_[this.ENCODED_VALS_WEBSAFE.charAt(e)]=e,this.charToByteMapWebSafe_[this.ENCODED_VALS.charAt(e)]=e)}}};class c extends Error{constructor(){super(...arguments),this.name="DecodeBase64StringError"}}const h=function(e){return function(e){const t=s(e);return o.encodeByteArray(t,!0)}(e).replace(/\./g,"")}; +/** + * @license + * Copyright 2022 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. + */ +const l=()=> +/** + * @license + * Copyright 2022 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(){if("undefined"!=typeof self)return self;if("undefined"!=typeof window)return window;if(void 0!==e)return e;throw new Error("Unable to locate global object.")}().__FIREBASE_DEFAULTS__,d=()=>{if("undefined"==typeof document)return;let e;try{e=document.cookie.match(/__FIREBASE_DEFAULTS__=([^;]+)/)}catch(e){return}const t=e&&function(e){try{return o.decodeString(e,!0)}catch(e){console.error("base64Decode failed: ",e)}return null}(e[1]);return t&&JSON.parse(t)},u=()=>{try{return l()||(()=>{if(void 0===i||void 0===i.env)return})()||d()}catch(e){return void console.info(`Unable to get __FIREBASE_DEFAULTS__ due to: ${e}`)}},f=()=>{var e;return null===(e=u())||void 0===e?void 0:e.config}; +/** + * @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. + */ +class p{constructor(){this.reject=()=>{},this.resolve=()=>{},this.promise=new Promise(((e,t)=>{this.resolve=e,this.reject=t}))}wrapCallback(e){return(t,r)=>{t?this.reject(t):this.resolve(r),"function"==typeof e&&(this.promise.catch((()=>{})),1===e.length?e(t):e(t,r))}}}class g extends Error{constructor(e,t,r){super(t),this.code=e,this.customData=r,this.name="FirebaseError",Object.setPrototypeOf(this,g.prototype),Error.captureStackTrace&&Error.captureStackTrace(this,m.prototype.create)}}class m{constructor(e,t,r){this.service=e,this.serviceName=t,this.errors=r}create(e,...t){const r=t[0]||{},n=`${this.service}/${e}`,a=this.errors[e],i=a?function(e,t){return e.replace(b,((e,r)=>{const n=t[r];return null!=n?String(n):`<${r}?>`}))}(a,r):"Error",s=`${this.serviceName}: ${i} (${n}).`;return new g(n,s,r)}}const b=/\{\$([^}]+)}/g;function v(e,t){if(e===t)return!0;const r=Object.keys(e),n=Object.keys(t);for(const a of r){if(!n.includes(a))return!1;const r=e[a],i=t[a];if(E(r)&&E(i)){if(!v(r,i))return!1}else if(r!==i)return!1}for(const e of n)if(!r.includes(e))return!1;return!0}function E(e){return null!==e&&"object"==typeof e}class _{constructor(e,t,r){this.name=e,this.instanceFactory=t,this.type=r,this.multipleInstances=!1,this.serviceProps={},this.instantiationMode="LAZY",this.onInstanceCreated=null}setInstantiationMode(e){return this.instantiationMode=e,this}setMultipleInstances(e){return this.multipleInstances=e,this}setServiceProps(e){return this.serviceProps=e,this}setInstanceCreatedCallback(e){return this.onInstanceCreated=e,this}} +/** + * @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. + */const w="[DEFAULT]"; +/** + * @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. + */class y{constructor(e,t){this.name=e,this.container=t,this.component=null,this.instances=new Map,this.instancesDeferred=new Map,this.instancesOptions=new Map,this.onInitCallbacks=new Map}get(e){const t=this.normalizeInstanceIdentifier(e);if(!this.instancesDeferred.has(t)){const e=new p;if(this.instancesDeferred.set(t,e),this.isInitialized(t)||this.shouldAutoInitialize())try{const r=this.getOrInitializeService({instanceIdentifier:t});r&&e.resolve(r)}catch(e){}}return this.instancesDeferred.get(t).promise}getImmediate(e){var t;const r=this.normalizeInstanceIdentifier(null==e?void 0:e.identifier),n=null!==(t=null==e?void 0:e.optional)&&void 0!==t&&t;if(!this.isInitialized(r)&&!this.shouldAutoInitialize()){if(n)return null;throw Error(`Service ${this.name} is not available`)}try{return this.getOrInitializeService({instanceIdentifier:r})}catch(e){if(n)return null;throw e}}getComponent(){return this.component}setComponent(e){if(e.name!==this.name)throw Error(`Mismatching Component ${e.name} for Provider ${this.name}.`);if(this.component)throw Error(`Component for ${this.name} has already been provided`);if(this.component=e,this.shouldAutoInitialize()){if(function(e){return"EAGER"===e.instantiationMode} +/** + * @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. + */(e))try{this.getOrInitializeService({instanceIdentifier:w})}catch(e){}for(const[e,t]of this.instancesDeferred.entries()){const r=this.normalizeInstanceIdentifier(e);try{const e=this.getOrInitializeService({instanceIdentifier:r});t.resolve(e)}catch(e){}}}}clearInstance(e="[DEFAULT]"){this.instancesDeferred.delete(e),this.instancesOptions.delete(e),this.instances.delete(e)}async delete(){const e=Array.from(this.instances.values());await Promise.all([...e.filter((e=>"INTERNAL"in e)).map((e=>e.INTERNAL.delete())),...e.filter((e=>"_delete"in e)).map((e=>e._delete()))])}isComponentSet(){return null!=this.component}isInitialized(e="[DEFAULT]"){return this.instances.has(e)}getOptions(e="[DEFAULT]"){return this.instancesOptions.get(e)||{}}initialize(e={}){const{options:t={}}=e,r=this.normalizeInstanceIdentifier(e.instanceIdentifier);if(this.isInitialized(r))throw Error(`${this.name}(${r}) has already been initialized`);if(!this.isComponentSet())throw Error(`Component ${this.name} has not been registered yet`);const n=this.getOrInitializeService({instanceIdentifier:r,options:t});for(const[e,t]of this.instancesDeferred.entries()){r===this.normalizeInstanceIdentifier(e)&&t.resolve(n)}return n}onInit(e,t){var r;const n=this.normalizeInstanceIdentifier(t),a=null!==(r=this.onInitCallbacks.get(n))&&void 0!==r?r:new Set;a.add(e),this.onInitCallbacks.set(n,a);const i=this.instances.get(n);return i&&e(i,n),()=>{a.delete(e)}}invokeOnInitCallbacks(e,t){const r=this.onInitCallbacks.get(t);if(r)for(const n of r)try{n(e,t)}catch(e){}}getOrInitializeService({instanceIdentifier:e,options:t={}}){let r=this.instances.get(e);if(!r&&this.component&&(r=this.component.instanceFactory(this.container,{instanceIdentifier:(n=e,n===w?void 0:n),options:t}),this.instances.set(e,r),this.instancesOptions.set(e,t),this.invokeOnInitCallbacks(r,e),this.component.onInstanceCreated))try{this.component.onInstanceCreated(this.container,e,r)}catch(e){}var n;return r||null}normalizeInstanceIdentifier(e="[DEFAULT]"){return this.component?this.component.multipleInstances?e:w:e}shouldAutoInitialize(){return!!this.component&&"EXPLICIT"!==this.component.instantiationMode}}class I{constructor(e){this.name=e,this.providers=new Map}addComponent(e){const t=this.getProvider(e.name);if(t.isComponentSet())throw new Error(`Component ${e.name} has already been registered with ${this.name}`);t.setComponent(e)}addOrOverwriteComponent(e){this.getProvider(e.name).isComponentSet()&&this.providers.delete(e.name),this.addComponent(e)}getProvider(e){if(this.providers.has(e))return this.providers.get(e);const t=new y(e,this);return this.providers.set(e,t),t}getProviders(){return Array.from(this.providers.values())}} +/** + * @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. + */const D=[];var S,C;(C=S||(S={}))[C.DEBUG=0]="DEBUG",C[C.VERBOSE=1]="VERBOSE",C[C.INFO=2]="INFO",C[C.WARN=3]="WARN",C[C.ERROR=4]="ERROR",C[C.SILENT=5]="SILENT";const A={debug:S.DEBUG,verbose:S.VERBOSE,info:S.INFO,warn:S.WARN,error:S.ERROR,silent:S.SILENT},O=S.INFO,L={[S.DEBUG]:"log",[S.VERBOSE]:"log",[S.INFO]:"info",[S.WARN]:"warn",[S.ERROR]:"error"},B=(e,t,...r)=>{if(t(e[t]=r,!0),has:(e,t)=>e instanceof IDBTransaction&&("done"===t||"store"===t)||t in e};function k(e){return e!==IDBDatabase.prototype.transaction||"objectStoreNames"in IDBTransaction.prototype?(N||(N=[IDBCursor.prototype.advance,IDBCursor.prototype.continue,IDBCursor.prototype.continuePrimaryKey])).includes(e)?function(...t){return e.apply(V(this),t),F(M.get(this))}:function(...t){return F(e.apply(V(this),t))}:function(t,...r){const n=e.call(V(this),t,...r);return P.set(n,t.sort?t.sort():[t]),F(n)}}function j(e){return"function"==typeof e?k(e):(e instanceof IDBTransaction&&function(e){if(R.has(e))return;const t=new Promise(((t,r)=>{const n=()=>{e.removeEventListener("complete",a),e.removeEventListener("error",i),e.removeEventListener("abort",i)},a=()=>{t(),n()},i=()=>{r(e.error||new DOMException("AbortError","AbortError")),n()};e.addEventListener("complete",a),e.addEventListener("error",i),e.addEventListener("abort",i)}));R.set(e,t)}(e),t=e,(T||(T=[IDBDatabase,IDBObjectStore,IDBIndex,IDBCursor,IDBTransaction])).some((e=>t instanceof e))?new Proxy(e,H):e);var t}function F(e){if(e instanceof IDBRequest)return function(e){const t=new Promise(((t,r)=>{const n=()=>{e.removeEventListener("success",a),e.removeEventListener("error",i)},a=()=>{t(F(e.result)),n()},i=()=>{r(e.error),n()};e.addEventListener("success",a),e.addEventListener("error",i)}));return t.then((t=>{t instanceof IDBCursor&&M.set(t,e)})).catch((()=>{})),$.set(t,e),t}(e);if(x.has(e))return x.get(e);const t=j(e);return t!==e&&(x.set(e,t),$.set(t,e)),t}const V=e=>$.get(e);const U=["get","getKey","getAll","getAllKeys","count"],z=["put","add","delete","clear"],W=new Map;function G(e,t){if(!(e instanceof IDBDatabase)||t in e||"string"!=typeof t)return;if(W.get(t))return W.get(t);const r=t.replace(/FromIndex$/,""),n=t!==r,a=z.includes(r);if(!(r in(n?IDBIndex:IDBObjectStore).prototype)||!a&&!U.includes(r))return;const i=async function(e,...t){const i=this.transaction(e,a?"readwrite":"readonly");let s=i.store;return n&&(s=s.index(t.shift())),(await Promise.all([s[r](...t),a&&i.done]))[0]};return W.set(t,i),i}H=(e=>({...e,get:(t,r,n)=>G(t,r)||e.get(t,r,n),has:(t,r)=>!!G(t,r)||e.has(t,r)}))(H); +/** + * @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. + */ +class J{constructor(e){this.container=e}getPlatformInfoString(){return this.container.getProviders().map((e=>{if(function(e){const t=e.getComponent();return"VERSION"===(null==t?void 0:t.type)}(e)){const t=e.getImmediate();return`${t.library}/${t.version}`}return null})).filter((e=>e)).join(" ")}}const K="https://www.gstatic.com/firebasejs/10.8.0/firebase-app.js",Y="0.9.27",q=new class{constructor(e){this.name=e,this._logLevel=O,this._logHandler=B,this._userLogHandler=null,D.push(this)}get logLevel(){return this._logLevel}set logLevel(e){if(!(e in S))throw new TypeError(`Invalid value "${e}" assigned to \`logLevel\``);this._logLevel=e}setLogLevel(e){this._logLevel="string"==typeof e?A[e]:e}get logHandler(){return this._logHandler}set logHandler(e){if("function"!=typeof e)throw new TypeError("Value assigned to `logHandler` must be a function");this._logHandler=e}get userLogHandler(){return this._userLogHandler}set userLogHandler(e){this._userLogHandler=e}debug(...e){this._userLogHandler&&this._userLogHandler(this,S.DEBUG,...e),this._logHandler(this,S.DEBUG,...e)}log(...e){this._userLogHandler&&this._userLogHandler(this,S.VERBOSE,...e),this._logHandler(this,S.VERBOSE,...e)}info(...e){this._userLogHandler&&this._userLogHandler(this,S.INFO,...e),this._logHandler(this,S.INFO,...e)}warn(...e){this._userLogHandler&&this._userLogHandler(this,S.WARN,...e),this._logHandler(this,S.WARN,...e)}error(...e){this._userLogHandler&&this._userLogHandler(this,S.ERROR,...e),this._logHandler(this,S.ERROR,...e)}}("https://www.gstatic.com/firebasejs/10.8.0/firebase-app.js"),X="[DEFAULT]",Z={[K]:"fire-core","@firebase/app-compat":"fire-core-compat","@firebase/analytics":"fire-analytics","@firebase/analytics-compat":"fire-analytics-compat","@firebase/app-check":"fire-app-check","@firebase/app-check-compat":"fire-app-check-compat","@firebase/auth":"fire-auth","@firebase/auth-compat":"fire-auth-compat","@firebase/database":"fire-rtdb","@firebase/database-compat":"fire-rtdb-compat","@firebase/functions":"fire-fn","@firebase/functions-compat":"fire-fn-compat","@firebase/installations":"fire-iid","@firebase/installations-compat":"fire-iid-compat","@firebase/messaging":"fire-fcm","@firebase/messaging-compat":"fire-fcm-compat","@firebase/performance":"fire-perf","@firebase/performance-compat":"fire-perf-compat","@firebase/remote-config":"fire-rc","@firebase/remote-config-compat":"fire-rc-compat","@firebase/storage":"fire-gcs","@firebase/storage-compat":"fire-gcs-compat","@firebase/firestore":"fire-fst","@firebase/firestore-compat":"fire-fst-compat","fire-js":"fire-js",firebase:"fire-js-all"},Q=new Map,ee=new Map;function te(e,t){try{e.container.addComponent(t)}catch(r){q.debug(`Component ${t.name} failed to register with FirebaseApp ${e.name}`,r)}}function re(e,t){e.container.addOrOverwriteComponent(t)}function ne(e){const t=e.name;if(ee.has(t))return q.debug(`There were multiple attempts to register component ${t}.`),!1;ee.set(t,e);for(const t of Q.values())te(t,e);return!0}function ae(e,t){const r=e.container.getProvider("heartbeat").getImmediate({optional:!0});return r&&r.triggerHeartbeat(),e.container.getProvider(t)}function ie(e,t,r=X){ae(e,t).clearInstance(r)}function se(){ee.clear()} +/** + * @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. + */const oe=new m("app","Firebase",{"no-app":"No Firebase App '{$appName}' has been created - call initializeApp() first","bad-app-name":"Illegal App name: '{$appName}","duplicate-app":"Firebase App named '{$appName}' already exists with different options or config","app-deleted":"Firebase App named '{$appName}' already deleted","no-options":"Need to provide options, when not being deployed to hosting via source.","invalid-app-argument":"firebase.{$appName}() takes either no argument or a Firebase App instance.","invalid-log-argument":"First argument to `onLog` must be null or a function.","idb-open":"Error thrown when opening IndexedDB. Original error: {$originalErrorMessage}.","idb-get":"Error thrown when reading from IndexedDB. Original error: {$originalErrorMessage}.","idb-set":"Error thrown when writing to IndexedDB. Original error: {$originalErrorMessage}.","idb-delete":"Error thrown when deleting from IndexedDB. Original error: {$originalErrorMessage}."}); +/** + * @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. + */ +class ce{constructor(e,t,r){this._isDeleted=!1,this._options=Object.assign({},e),this._config=Object.assign({},t),this._name=t.name,this._automaticDataCollectionEnabled=t.automaticDataCollectionEnabled,this._container=r,this.container.addComponent(new _("app",(()=>this),"PUBLIC"))}get automaticDataCollectionEnabled(){return this.checkDestroyed(),this._automaticDataCollectionEnabled}set automaticDataCollectionEnabled(e){this.checkDestroyed(),this._automaticDataCollectionEnabled=e}get name(){return this.checkDestroyed(),this._name}get options(){return this.checkDestroyed(),this._options}get config(){return this.checkDestroyed(),this._config}get container(){return this._container}get isDeleted(){return this._isDeleted}set isDeleted(e){this._isDeleted=e}checkDestroyed(){if(this.isDeleted)throw oe.create("app-deleted",{appName:this._name})}} +/** + * @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. + */const he="10.8.0";function le(e,t={}){let r=e;if("object"!=typeof t){t={name:t}}const n=Object.assign({name:X,automaticDataCollectionEnabled:!1},t),a=n.name;if("string"!=typeof a||!a)throw oe.create("bad-app-name",{appName:String(a)});if(r||(r=f()),!r)throw oe.create("no-options");const i=Q.get(a);if(i){if(v(r,i.options)&&v(n,i.config))return i;throw oe.create("duplicate-app",{appName:a})}const s=new I(a);for(const e of ee.values())s.addComponent(e);const o=new ce(r,n,s);return Q.set(a,o),o}function de(e=X){const t=Q.get(e);if(!t&&e===X&&f())return le();if(!t)throw oe.create("no-app",{appName:e});return t}function ue(){return Array.from(Q.values())}async function fe(e){const t=e.name;Q.has(t)&&(Q.delete(t),await Promise.all(e.container.getProviders().map((e=>e.delete()))),e.isDeleted=!0)}function pe(e,t,r){var n;let a=null!==(n=Z[e])&&void 0!==n?n:e;r&&(a+=`-${r}`);const i=a.match(/\s|\//),s=t.match(/\s|\//);if(i||s){const e=[`Unable to register library "${a}" with version "${t}":`];return i&&e.push(`library name "${a}" contains illegal characters (whitespace or "/")`),i&&s&&e.push("and"),s&&e.push(`version name "${t}" contains illegal characters (whitespace or "/")`),void q.warn(e.join(" "))}ne(new _(`${a}-version`,(()=>({library:a,version:t})),"VERSION"))}function ge(e,t){if(null!==e&&"function"!=typeof e)throw oe.create("invalid-log-argument");!function(e,t){for(const r of D){let n=null;t&&t.level&&(n=A[t.level]),r.userLogHandler=null===e?null:(t,r,...a)=>{const i=a.map((e=>{if(null==e)return null;if("string"==typeof e)return e;if("number"==typeof e||"boolean"==typeof e)return e.toString();if(e instanceof Error)return e.message;try{return JSON.stringify(e)}catch(e){return null}})).filter((e=>e)).join(" ");r>=(null!=n?n:t.logLevel)&&e({level:S[r].toLowerCase(),message:i,args:a,type:t.name})}}}(e,t)}function me(e){var t;t=e,D.forEach((e=>{e.setLogLevel(t)}))} +/** + * @license + * Copyright 2021 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. + */const be="firebase-heartbeat-store";let ve=null;function Ee(){return ve||(ve=function(e,t,{blocked:r,upgrade:n,blocking:a,terminated:i}={}){const s=indexedDB.open(e,t),o=F(s);return n&&s.addEventListener("upgradeneeded",(e=>{n(F(s.result),e.oldVersion,e.newVersion,F(s.transaction),e)})),r&&s.addEventListener("blocked",(e=>r(e.oldVersion,e.newVersion,e))),o.then((e=>{i&&e.addEventListener("close",(()=>i())),a&&e.addEventListener("versionchange",(e=>a(e.oldVersion,e.newVersion,e)))})).catch((()=>{})),o}("firebase-heartbeat-database",1,{upgrade:(e,t)=>{if(0===t)try{e.createObjectStore(be)}catch(e){console.warn(e)}}}).catch((e=>{throw oe.create("idb-open",{originalErrorMessage:e.message})}))),ve}async function _e(e,t){try{const r=(await Ee()).transaction(be,"readwrite"),n=r.objectStore(be);await n.put(t,we(e)),await r.done}catch(e){if(e instanceof g)q.warn(e.message);else{const t=oe.create("idb-set",{originalErrorMessage:null==e?void 0:e.message});q.warn(t.message)}}}function we(e){return`${e.name}!${e.options.appId}`} +/** + * @license + * Copyright 2021 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. + */class ye{constructor(e){this.container=e,this._heartbeatsCache=null;const t=this.container.getProvider("app").getImmediate();this._storage=new De(t),this._heartbeatsCachePromise=this._storage.read().then((e=>(this._heartbeatsCache=e,e)))}async triggerHeartbeat(){var e,t;const r=this.container.getProvider("platform-logger").getImmediate().getPlatformInfoString(),n=Ie();if((null!=(null===(e=this._heartbeatsCache)||void 0===e?void 0:e.heartbeats)||(this._heartbeatsCache=await this._heartbeatsCachePromise,null!=(null===(t=this._heartbeatsCache)||void 0===t?void 0:t.heartbeats)))&&this._heartbeatsCache.lastSentHeartbeatDate!==n&&!this._heartbeatsCache.heartbeats.some((e=>e.date===n)))return this._heartbeatsCache.heartbeats.push({date:n,agent:r}),this._heartbeatsCache.heartbeats=this._heartbeatsCache.heartbeats.filter((e=>{const t=new Date(e.date).valueOf();return Date.now()-t<=2592e6})),this._storage.overwrite(this._heartbeatsCache)}async getHeartbeatsHeader(){var e;if(null===this._heartbeatsCache&&await this._heartbeatsCachePromise,null==(null===(e=this._heartbeatsCache)||void 0===e?void 0:e.heartbeats)||0===this._heartbeatsCache.heartbeats.length)return"";const t=Ie(),{heartbeatsToSend:r,unsentEntries:n}=function(e,t=1024){const r=[];let n=e.slice();for(const a of e){const e=r.find((e=>e.agent===a.agent));if(e){if(e.dates.push(a.date),Se(r)>t){e.dates.pop();break}}else if(r.push({agent:a.agent,dates:[a.date]}),Se(r)>t){r.pop();break}n=n.slice(1)}return{heartbeatsToSend:r,unsentEntries:n}}(this._heartbeatsCache.heartbeats),a=h(JSON.stringify({version:2,heartbeats:r}));return this._heartbeatsCache.lastSentHeartbeatDate=t,n.length>0?(this._heartbeatsCache.heartbeats=n,await this._storage.overwrite(this._heartbeatsCache)):(this._heartbeatsCache.heartbeats=[],this._storage.overwrite(this._heartbeatsCache)),a}}function Ie(){return(new Date).toISOString().substring(0,10)}class De{constructor(e){this.app=e,this._canUseIndexedDBPromise=this.runIndexedDBEnvironmentCheck()}async runIndexedDBEnvironmentCheck(){return!!function(){try{return"object"==typeof indexedDB}catch(e){return!1}}()&&new Promise(((e,t)=>{try{let r=!0;const n="validate-browser-context-for-indexeddb-analytics-module",a=self.indexedDB.open(n);a.onsuccess=()=>{a.result.close(),r||self.indexedDB.deleteDatabase(n),e(!0)},a.onupgradeneeded=()=>{r=!1},a.onerror=()=>{var e;t((null===(e=a.error)||void 0===e?void 0:e.message)||"")}}catch(e){t(e)}})).then((()=>!0)).catch((()=>!1))}async read(){if(await this._canUseIndexedDBPromise){const e=await async function(e){try{const t=(await Ee()).transaction(be),r=await t.objectStore(be).get(we(e));return await t.done,r}catch(e){if(e instanceof g)q.warn(e.message);else{const t=oe.create("idb-get",{originalErrorMessage:null==e?void 0:e.message});q.warn(t.message)}}}(this.app);return(null==e?void 0:e.heartbeats)?e:{heartbeats:[]}}return{heartbeats:[]}}async overwrite(e){var t;if(await this._canUseIndexedDBPromise){const r=await this.read();return _e(this.app,{lastSentHeartbeatDate:null!==(t=e.lastSentHeartbeatDate)&&void 0!==t?t:r.lastSentHeartbeatDate,heartbeats:e.heartbeats})}}async add(e){var t;if(await this._canUseIndexedDBPromise){const r=await this.read();return _e(this.app,{lastSentHeartbeatDate:null!==(t=e.lastSentHeartbeatDate)&&void 0!==t?t:r.lastSentHeartbeatDate,heartbeats:[...r.heartbeats,...e.heartbeats]})}}}function Se(e){return h(JSON.stringify({version:2,heartbeats:e})).length} +/** + * @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 Ce;Ce="",ne(new _("platform-logger",(e=>new J(e)),"PRIVATE")),ne(new _("heartbeat",(e=>new ye(e)),"PRIVATE")),pe(K,Y,Ce),pe(K,Y,"esm2017"),pe("fire-js",""); +/** + * @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. + */ +pe("firebase","10.8.0","cdn")}))})(); \ No newline at end of file diff --git a/frontend-dist/firebase-firestore.2ef1e41a.js b/frontend-dist/firebase-firestore.2ef1e41a.js new file mode 100644 index 0000000000..3f4b19e8ca --- /dev/null +++ b/frontend-dist/firebase-firestore.2ef1e41a.js @@ -0,0 +1 @@ +(()=>{var t="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{};function e(t,e,n,r){Object.defineProperty(t,e,{get:n,set:r,enumerable:!0,configurable:!0})}var n=t.parcelRequire94c2;n.register("4yuRh",(function(r,s){e(r.exports,"setLogLevel",(()=>Gr)),e(r.exports,"_logWarn",(()=>$r)),e(r.exports,"_debugAssert",(()=>Yr)),e(r.exports,"FirestoreError",(()=>Zr)),e(r.exports,"_EmptyAuthCredentialsProvider",(()=>ns)),e(r.exports,"_EmptyAppCheckTokenProvider",(()=>cs)),e(r.exports,"_AutoId",(()=>hs)),e(r.exports,"Timestamp",(()=>ms)),e(r.exports,"_FieldPath",(()=>bs)),e(r.exports,"_DocumentKey",(()=>_s)),e(r.exports,"_isBase64Available",(()=>Vi)),e(r.exports,"_ByteString",(()=>qi)),e(r.exports,"_DatabaseId",(()=>Hi)),e(r.exports,"_validateIsNotUsedTogether",(()=>$f)),e(r.exports,"_cast",(()=>Yf)),e(r.exports,"connectFirestoreEmulator",(()=>tg)),e(r.exports,"Query",(()=>eg)),e(r.exports,"DocumentReference",(()=>ng)),e(r.exports,"CollectionReference",(()=>rg)),e(r.exports,"collection",(()=>sg)),e(r.exports,"collectionGroup",(()=>ig)),e(r.exports,"doc",(()=>og)),e(r.exports,"refEqual",(()=>ag)),e(r.exports,"queryEqual",(()=>ug)),e(r.exports,"LoadBundleTask",(()=>hg)),e(r.exports,"CACHE_SIZE_UNLIMITED",(()=>dg)),e(r.exports,"Firestore",(()=>fg)),e(r.exports,"initializeFirestore",(()=>gg)),e(r.exports,"getFirestore",(()=>mg)),e(r.exports,"ensureFirestoreConfigured",(()=>pg)),e(r.exports,"enableIndexedDbPersistence",(()=>wg)),e(r.exports,"enableMultiTabIndexedDbPersistence",(()=>vg)),e(r.exports,"clearIndexedDbPersistence",(()=>_g)),e(r.exports,"waitForPendingWrites",(()=>Ig)),e(r.exports,"enableNetwork",(()=>Eg)),e(r.exports,"disableNetwork",(()=>Tg)),e(r.exports,"terminate",(()=>Sg)),e(r.exports,"loadBundle",(()=>xg)),e(r.exports,"namedQuery",(()=>Cg)),e(r.exports,"AggregateField",(()=>Ag)),e(r.exports,"AggregateQuerySnapshot",(()=>Ng)),e(r.exports,"Bytes",(()=>kg)),e(r.exports,"FieldPath",(()=>Rg)),e(r.exports,"documentId",(()=>Mg)),e(r.exports,"FieldValue",(()=>Lg)),e(r.exports,"GeoPoint",(()=>Og)),e(r.exports,"QueryConstraint",(()=>fm)),e(r.exports,"query",(()=>gm)),e(r.exports,"QueryCompositeFilterConstraint",(()=>ym)),e(r.exports,"QueryFieldFilterConstraint",(()=>mm)),e(r.exports,"where",(()=>pm)),e(r.exports,"or",(()=>wm)),e(r.exports,"and",(()=>vm)),e(r.exports,"QueryOrderByConstraint",(()=>bm)),e(r.exports,"orderBy",(()=>_m)),e(r.exports,"QueryLimitConstraint",(()=>Im)),e(r.exports,"limit",(()=>Em)),e(r.exports,"limitToLast",(()=>Tm)),e(r.exports,"QueryStartAtConstraint",(()=>Sm)),e(r.exports,"startAt",(()=>xm)),e(r.exports,"startAfter",(()=>Cm)),e(r.exports,"QueryEndAtConstraint",(()=>Dm)),e(r.exports,"endBefore",(()=>Am)),e(r.exports,"endAt",(()=>Nm)),e(r.exports,"AbstractUserDataWriter",(()=>Pm)),e(r.exports,"sum",(()=>qm)),e(r.exports,"average",(()=>Bm)),e(r.exports,"count",(()=>Um)),e(r.exports,"aggregateFieldEqual",(()=>zm)),e(r.exports,"aggregateQuerySnapshotEqual",(()=>Gm)),e(r.exports,"SnapshotMetadata",(()=>jm)),e(r.exports,"DocumentSnapshot",(()=>Km)),e(r.exports,"QueryDocumentSnapshot",(()=>$m)),e(r.exports,"QuerySnapshot",(()=>Qm)),e(r.exports,"snapshotEqual",(()=>Wm)),e(r.exports,"getDoc",(()=>Ym)),e(r.exports,"getDocFromCache",(()=>Jm)),e(r.exports,"getDocFromServer",(()=>Zm)),e(r.exports,"getDocs",(()=>tp)),e(r.exports,"getDocsFromCache",(()=>ep)),e(r.exports,"getDocsFromServer",(()=>np)),e(r.exports,"setDoc",(()=>rp)),e(r.exports,"executeWrite",(()=>cp)),e(r.exports,"updateDoc",(()=>sp)),e(r.exports,"deleteDoc",(()=>ip)),e(r.exports,"addDoc",(()=>op)),e(r.exports,"onSnapshot",(()=>ap)),e(r.exports,"onSnapshotsInSync",(()=>up)),e(r.exports,"getCountFromServer",(()=>hp)),e(r.exports,"getAggregateFromServer",(()=>dp)),e(r.exports,"persistentSingleTabManager",(()=>Ep)),e(r.exports,"memoryEagerGarbageCollector",(()=>yp)),e(r.exports,"memoryLruGarbageCollector",(()=>wp)),e(r.exports,"memoryLocalCache",(()=>vp)),e(r.exports,"persistentLocalCache",(()=>bp)),e(r.exports,"persistentMultipleTabManager",(()=>Tp)),e(r.exports,"WriteBatch",(()=>xp)),e(r.exports,"Transaction",(()=>Dp)),e(r.exports,"runTransaction",(()=>Ap)),e(r.exports,"deleteField",(()=>Np)),e(r.exports,"serverTimestamp",(()=>kp)),e(r.exports,"arrayUnion",(()=>Rp)),e(r.exports,"arrayRemove",(()=>Mp)),e(r.exports,"increment",(()=>Lp)),e(r.exports,"writeBatch",(()=>Op)),e(r.exports,"setIndexConfiguration",(()=>Pp)),e(r.exports,"PersistentCacheIndexManager",(()=>Vp)),e(r.exports,"getPersistentCacheIndexManager",(()=>qp)),e(r.exports,"enablePersistentCacheIndexAutoCreation",(()=>Bp)),e(r.exports,"disablePersistentCacheIndexAutoCreation",(()=>Up)),e(r.exports,"deleteAllPersistentCacheIndexes",(()=>zp)),e(r.exports,"_TestingHooks",(()=>Kp));var i=n("1wlTY"),o=n("6kwV5");const a=function(t){const e=[];let n=0;for(let r=0;r>6|192,e[n++]=63&s|128):55296==(64512&s)&&r+1>18|240,e[n++]=s>>12&63|128,e[n++]=s>>6&63|128,e[n++]=63&s|128):(e[n++]=s>>12|224,e[n++]=s>>6&63|128,e[n++]=63&s|128)}return e},u={byteToCharMap_:null,charToByteMap_:null,byteToCharMapWebSafe_:null,charToByteMapWebSafe_:null,ENCODED_VALS_BASE:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",get ENCODED_VALS(){return this.ENCODED_VALS_BASE+"+/="},get ENCODED_VALS_WEBSAFE(){return this.ENCODED_VALS_BASE+"-_."},HAS_NATIVE_SUPPORT:"function"==typeof atob,encodeByteArray(t,e){if(!Array.isArray(t))throw Error("encodeByteArray takes an array as a parameter");this.init_();const n=e?this.byteToCharMapWebSafe_:this.byteToCharMap_,r=[];for(let e=0;e>2,l=(3&s)<<4|o>>4;let h=(15&o)<<2|u>>6,d=63&u;a||(d=64,i||(h=64)),r.push(n[c],n[l],n[h],n[d])}return r.join("")},encodeString(t,e){return this.HAS_NATIVE_SUPPORT&&!e?btoa(t):this.encodeByteArray(a(t),e)},decodeString(t,e){return this.HAS_NATIVE_SUPPORT&&!e?atob(t):function(t){const e=[];let n=0,r=0;for(;n191&&s<224){const i=t[n++];e[r++]=String.fromCharCode((31&s)<<6|63&i)}else if(s>239&&s<365){const i=((7&s)<<18|(63&t[n++])<<12|(63&t[n++])<<6|63&t[n++])-65536;e[r++]=String.fromCharCode(55296+(i>>10)),e[r++]=String.fromCharCode(56320+(1023&i))}else{const i=t[n++],o=t[n++];e[r++]=String.fromCharCode((15&s)<<12|(63&i)<<6|63&o)}}return e.join("")}(this.decodeStringToByteArray(t,e))},decodeStringToByteArray(t,e){this.init_();const n=e?this.charToByteMapWebSafe_:this.charToByteMap_,r=[];for(let e=0;e>4;if(r.push(u),64!==o){const t=i<<4&240|o>>2;if(r.push(t),64!==a){const t=o<<6&192|a;r.push(t)}}}return r},init_(){if(!this.byteToCharMap_){this.byteToCharMap_={},this.charToByteMap_={},this.byteToCharMapWebSafe_={},this.charToByteMapWebSafe_={};for(let t=0;t=this.ENCODED_VALS_BASE.length&&(this.charToByteMap_[this.ENCODED_VALS_WEBSAFE.charAt(t)]=t,this.charToByteMapWebSafe_[this.ENCODED_VALS.charAt(t)]=t)}}};class c extends Error{constructor(){super(...arguments),this.name="DecodeBase64StringError"}}const l=function(t){return function(t){const e=a(t);return u.encodeByteArray(e,!0)}(t).replace(/\./g,"")},h=()=>{try{return function(){if("undefined"!=typeof self)return self;if("undefined"!=typeof window)return window;if(void 0!==t)return t;throw new Error("Unable to locate global object.")}().__FIREBASE_DEFAULTS__||(()=>{if(void 0===o||void 0===o.env)return})()||(()=>{if("undefined"==typeof document)return;let t;try{t=document.cookie.match(/__FIREBASE_DEFAULTS__=([^;]+)/)}catch(t){return}const e=t&&function(t){try{return u.decodeString(t,!0)}catch(t){console.error("base64Decode failed: ",t)}return null}(t[1]);return e&&JSON.parse(e)})()}catch(t){return void console.info(`Unable to get __FIREBASE_DEFAULTS__ due to: ${t}`)}};function d(){return"undefined"!=typeof navigator&&"string"==typeof navigator.userAgent?navigator.userAgent:""}function f(){return!function(){var e;const n=null===(e=h())||void 0===e?void 0:e.forceEnvironment;if("node"===n)return!0;if("browser"===n)return!1;try{return"[object process]"===Object.prototype.toString.call(t.process)}catch(t){return!1}}()&&!!navigator.userAgent&&navigator.userAgent.includes("Safari")&&!navigator.userAgent.includes("Chrome")}class g extends Error{constructor(t,e,n){super(e),this.code=t,this.customData=n,this.name="FirebaseError",Object.setPrototypeOf(this,g.prototype),Error.captureStackTrace&&Error.captureStackTrace(this,m.prototype.create)}}class m{constructor(t,e,n){this.service=t,this.serviceName=e,this.errors=n}create(t,...e){const n=e[0]||{},r=`${this.service}/${t}`,s=this.errors[t],i=s?function(t,e){return t.replace(p,((t,n)=>{const r=e[n];return null!=r?String(r):`<${n}?>`}))}(s,n):"Error",o=`${this.serviceName}: ${i} (${r}).`;return new g(r,o,n)}}const p=/\{\$([^}]+)}/g;function y(t,e){if(t===e)return!0;const n=Object.keys(t),r=Object.keys(e);for(const s of n){if(!r.includes(s))return!1;const n=t[s],i=e[s];if(w(n)&&w(i)){if(!y(n,i))return!1}else if(n!==i)return!1}for(const t of r)if(!n.includes(t))return!1;return!0}function w(t){return null!==t&&"object"==typeof t}function v(t){return t&&t._delegate?t._delegate:t}class b{constructor(t,e,n){this.name=t,this.instanceFactory=e,this.type=n,this.multipleInstances=!1,this.serviceProps={},this.instantiationMode="LAZY",this.onInstanceCreated=null}setInstantiationMode(t){return this.instantiationMode=t,this}setMultipleInstances(t){return this.multipleInstances=t,this}setServiceProps(t){return this.serviceProps=t,this}setInstanceCreatedCallback(t){return this.onInstanceCreated=t,this}}var _,I;(I=_||(_={}))[I.DEBUG=0]="DEBUG",I[I.VERBOSE=1]="VERBOSE",I[I.INFO=2]="INFO",I[I.WARN=3]="WARN",I[I.ERROR=4]="ERROR",I[I.SILENT=5]="SILENT";const E={debug:_.DEBUG,verbose:_.VERBOSE,info:_.INFO,warn:_.WARN,error:_.ERROR,silent:_.SILENT},T=_.INFO,S={[_.DEBUG]:"log",[_.VERBOSE]:"log",[_.INFO]:"info",[_.WARN]:"warn",[_.ERROR]:"error"},x=(t,e,...n)=>{if(e{};N.addEventListener("test",t,e),N.removeEventListener("test",t,e)}catch(t){}return t}();function j(t){return/^[\s\xa0]*$/.test(t)}function K(){var t=N.navigator;return t&&(t=t.userAgent)?t:""}function $(t){return-1!=K().indexOf(t)}function Q(t){return Q[" "](t),t}Q[" "]=function(){};var H,W,Y,X=$("Opera"),J=$("Trident")||$("MSIE"),Z=$("Edge"),tt=Z||J,et=$("Gecko")&&!(-1!=K().toLowerCase().indexOf("webkit")&&!$("Edge"))&&!($("Trident")||$("MSIE"))&&!$("Edge"),nt=-1!=K().toLowerCase().indexOf("webkit")&&!$("Edge");function rt(){var t=N.document;return t?t.documentMode:void 0}t:{var st="",it=(W=K(),et?/rv:([^\);]+)(\)|;)/.exec(W):Z?/Edge\/([\d\.]+)/.exec(W):J?/\b(?:MSIE|rv)[: ]([^\);]+)(\)|;)/.exec(W):nt?/WebKit\/(\S+)/.exec(W):X?/(?:Version)[ \/]?(\S+)/.exec(W):void 0);if(it&&(st=it?it[1]:""),J){var ot=rt();if(null!=ot&&ot>parseFloat(st)){H=String(ot);break t}}H=st}N.document&&J?Y=rt()||parseInt(H,10)||void 0:Y=void 0;var at=Y;function ut(t,e){if(z.call(this,t?t.type:""),this.relatedTarget=this.g=this.target=null,this.button=this.screenY=this.screenX=this.clientY=this.clientX=0,this.key="",this.metaKey=this.shiftKey=this.altKey=this.ctrlKey=!1,this.state=null,this.pointerId=0,this.pointerType="",this.i=null,t){var n=this.type=t.type,r=t.changedTouches&&t.changedTouches.length?t.changedTouches[0]:null;if(this.target=t.target||t.srcElement,this.g=e,e=t.relatedTarget){if(et){t:{try{Q(e.nodeName);var s=!0;break t}catch(t){}s=!1}s||(e=null)}}else"mouseover"==n?e=t.fromElement:"mouseout"==n&&(e=t.toElement);this.relatedTarget=e,r?(this.clientX=void 0!==r.clientX?r.clientX:r.pageX,this.clientY=void 0!==r.clientY?r.clientY:r.pageY,this.screenX=r.screenX||0,this.screenY=r.screenY||0):(this.clientX=void 0!==t.clientX?t.clientX:t.pageX,this.clientY=void 0!==t.clientY?t.clientY:t.pageY,this.screenX=t.screenX||0,this.screenY=t.screenY||0),this.button=t.button,this.key=t.key||"",this.ctrlKey=t.ctrlKey,this.altKey=t.altKey,this.shiftKey=t.shiftKey,this.metaKey=t.metaKey,this.pointerId=t.pointerId||0,this.pointerType="string"==typeof t.pointerType?t.pointerType:ct[t.pointerType]||"",this.state=t.state,this.i=t,t.defaultPrevented&&ut.$.h.call(this)}}F(ut,z);var ct={2:"touch",3:"pen",4:"mouse"};ut.prototype.h=function(){ut.$.h.call(this);var t=this.i;t.preventDefault?t.preventDefault():t.returnValue=!1};var lt="closure_listenable_"+(1e6*Math.random()|0),ht=0;function dt(t,e,n,r,s){this.listener=t,this.proxy=null,this.src=e,this.type=n,this.capture=!!r,this.la=s,this.key=++ht,this.fa=this.ia=!1}function ft(t){t.fa=!0,t.listener=null,t.proxy=null,t.src=null,t.la=null}function gt(t,e,n){for(const r in t)e.call(n,t[r],r,t)}function mt(t){const e={};for(const n in t)e[n]=t[n];return e}const pt="constructor hasOwnProperty isPrototypeOf propertyIsEnumerable toLocaleString toString valueOf".split(" ");function yt(t,e){let n,r;for(let e=1;e>>0);function Rt(t){return"function"==typeof t?t:(t[kt]||(t[kt]=function(e){return t.handleEvent(e)}),t[kt])}function Mt(){V.call(this),this.i=new wt(this),this.S=this,this.J=null}function Lt(t,e){var n,r=t.J;if(r)for(n=[];r;r=r.J)n.push(r);if(t=t.S,r=e.type||e,"string"==typeof e)e=new z(e,t);else if(e instanceof z)e.target=e.target||t;else{var s=e;yt(e=new z(r,t),s)}if(s=!0,n)for(var i=n.length-1;0<=i;i--){var o=e.g=n[i];s=Ot(o,r,!0,e)&&s}if(s=Ot(o=e.g=t,r,!0,e)&&s,s=Ot(o,r,!1,e)&&s,n)for(i=0;inew qt),(t=>t.reset()));class qt{constructor(){this.next=this.g=this.h=null}set(t,e){this.h=t,this.g=e,this.next=null}reset(){this.next=this.g=this.h=null}}function Bt(t){var e=1;t=t.split(":");const n=[];for(;0{throw t}),0)}let zt,Gt=!1,jt=new class{constructor(){this.h=this.g=null}add(t,e){const n=Vt.get();n.set(t,e),this.h?this.h.next=n:this.g=n,this.h=n}},Kt=()=>{const t=N.Promise.resolve(void 0);zt=()=>{t.then($t)}};var $t=()=>{for(var t;t=Ft();){try{t.h.call(t.g)}catch(t){Ut(t)}var e=Vt;e.j(t),100>e.h&&(e.h++,t.next=e.g,e.g=t)}Gt=!1};function Qt(t,e){Mt.call(this),this.h=t||1,this.g=e||N,this.j=O(this.qb,this),this.l=Date.now()}function Ht(t){t.ga=!1,t.T&&(t.g.clearTimeout(t.T),t.T=null)}function Wt(t,e,n){if("function"==typeof t)n&&(t=O(t,n));else{if(!t||"function"!=typeof t.handleEvent)throw Error("Invalid listener argument");t=O(t.handleEvent,t)}return 2147483647{t.g=null,t.i&&(t.i=!1,Yt(t))}),t.j);const e=t.h;t.h=null,t.m.apply(null,e)}F(Qt,Mt),(C=Qt.prototype).ga=!1,C.T=null,C.qb=function(){if(this.ga){var t=Date.now()-this.l;0r.length)){var s=r[1];if(Array.isArray(s)&&!(1>s.length)){var i=s[0];if("noop"!=i&&"stop"!=i&&"close"!=i)for(var o=1;oe.length?Ce:(e=e.slice(r,r+n),t.o=r+n,e))}function Me(t){t.Y=Date.now()+t.P,Le(t,t.P)}function Le(t,e){if(null!=t.C)throw Error("WatchDog timer not null");t.C=de(O(t.lb,t),e)}function Oe(t){t.C&&(N.clearTimeout(t.C),t.C=null)}function Pe(t){0==t.l.H||t.J||tr(t.l,t)}function Fe(t){Oe(t);var e=t.M;e&&"function"==typeof e.sa&&e.sa(),t.M=null,Ht(t.V),ee(t.U),t.g&&(e=t.g,t.g=null,e.abort(),e.sa())}function Ve(t,e){try{var n=t.l;if(0!=n.H&&(n.g==t||fn(n.i,t)))if(!t.K&&fn(n.i,t)&&3==n.H){try{var r=n.Ja.g.parse(e)}catch(t){r=null}if(Array.isArray(r)&&3==r.length){var s=r;if(0==s[0]){t:if(!n.u){if(n.g){if(!(n.g.G+3e3s[2]&&n.G&&0==n.A&&!n.v&&(n.v=de(O(n.ib,n),6e3));if(1>=dn(n.i)&&n.oa){try{n.oa()}catch(t){}n.oa=void 0}}else nr(n,11)}else if((t.K||n.g==t)&&Zn(n),!j(e))for(s=n.Ja.g.parse(e),e=0;el)&&(3!=l||tt||this.g&&(this.h.h||this.g.ja()||Fn(this.g)))){this.J||4!=l||7==e||ue(),Oe(this);var n=this.g.da();this.ca=n;e:if(Ne(this)){var r=Fn(this.g);t="";var s=r.length,i=4==Pn(this.g);if(!this.h.i){if("undefined"==typeof TextDecoder){Fe(this),Pe(this);var o="";break e}this.h.i=new N.TextDecoder}for(e=0;ee)throw Error("Bad port number "+e);t.m=e}else t.m=null}function Ke(t,e,n){e instanceof nn?(t.i=e,function(t,e){e&&!t.j&&(rn(t),t.i=null,t.g.forEach((function(t,e){var n=e.toLowerCase();e!=n&&(sn(this,e),an(this,n,t))}),t)),t.j=e}(t.i,t.h)):(n||(e=We(e,tn)),t.i=new nn(e,t.h))}function $e(t,e,n){t.i.set(e,n)}function Qe(t){return $e(t,"zx",Math.floor(2147483648*Math.random()).toString(36)+Math.abs(Math.floor(2147483648*Math.random())^Date.now()).toString(36)),t}function He(t,e){return t?e?decodeURI(t.replace(/%25/g,"%2525")):decodeURIComponent(t):""}function We(t,e,n){return"string"==typeof t?(t=encodeURI(t).replace(e,Ye),n&&(t=t.replace(/%25([0-9a-fA-F]{2})/g,"%$1")),t):null}function Ye(t){return"%"+((t=t.charCodeAt(0))>>4&15).toString(16)+(15&t).toString(16)}Ue.prototype.toString=function(){var t=[],e=this.j;e&&t.push(We(e,Xe,!0),":");var n=this.g;return(n||"file"==e)&&(t.push("//"),(e=this.s)&&t.push(We(e,Xe,!0),"@"),t.push(encodeURIComponent(String(n)).replace(/%25([0-9a-fA-F]{2})/g,"%$1")),null!=(n=this.m)&&t.push(":",String(n))),(n=this.l)&&(this.g&&"/"!=n.charAt(0)&&t.push("/"),t.push(We(n,"/"==n.charAt(0)?Ze:Je,!0))),(n=this.i.toString())&&t.push("?",n),(n=this.o)&&t.push("#",We(n,en)),t.join("")};var Xe=/[#\/\?@]/g,Je=/[#\?:]/g,Ze=/[#\?]/g,tn=/[#\?@]/g,en=/#/g;function nn(t,e){this.h=this.g=null,this.i=t||null,this.j=!!e}function rn(t){t.g||(t.g=new Map,t.h=0,t.i&&function(t,e){if(t){t=t.split("&");for(var n=0;n=t.j}function dn(t){return t.h?1:t.g?t.g.size:0}function fn(t,e){return t.h?t.h==e:!!t.g&&t.g.has(e)}function gn(t,e){t.g?t.g.add(e):t.h=e}function mn(t,e){t.h&&t.h==e?t.h=null:t.g&&t.g.has(e)&&t.g.delete(e)}function pn(t){if(null!=t.h)return t.i.concat(t.h.F);if(null!=t.g&&0!==t.g.size){let e=t.i;for(const n of t.g.values())e=e.concat(n.F);return e}return B(t.i)}function yn(){this.g=new class{stringify(t){return N.JSON.stringify(t,void 0)}parse(t){return N.JSON.parse(t,void 0)}}}function wn(t,e,n){const r=n||"";try{qe(t,(function(t,n){let s=t;R(t)&&(s=Pt(t)),e.push(r+n+"="+encodeURIComponent(s))}))}catch(t){throw e.push(r+"type="+encodeURIComponent("_badmap")),t}}function vn(t,e,n,r,s){try{e.onload=null,e.onerror=null,e.onabort=null,e.ontimeout=null,s(r)}catch(t){}}function bn(t){this.l=t.ec||null,this.j=t.ob||!1}function _n(t,e){Mt.call(this),this.F=t,this.u=e,this.m=void 0,this.readyState=In,this.status=0,this.responseType=this.responseText=this.response=this.statusText="",this.onreadystatechange=null,this.v=new Headers,this.h=null,this.C="GET",this.B="",this.g=!1,this.A=this.j=this.l=null}cn.prototype.cancel=function(){if(this.i=pn(this),this.h)this.h.cancel(),this.h=null;else if(this.g&&0!==this.g.size){for(const t of this.g.values())t.cancel();this.g.clear()}},F(bn,me),bn.prototype.g=function(){return new _n(this.l,this.j)},bn.prototype.i=function(t){return function(){return t}}({}),F(_n,Mt);var In=0;function En(t){t.j.read().then(t.Xa.bind(t)).catch(t.ka.bind(t))}function Tn(t){t.readyState=4,t.l=null,t.j=null,t.A=null,Sn(t)}function Sn(t){t.onreadystatechange&&t.onreadystatechange.call(t)}(C=_n.prototype).open=function(t,e){if(this.readyState!=In)throw this.abort(),Error("Error reopening a connection");this.C=t,this.B=e,this.readyState=1,Sn(this)},C.send=function(t){if(1!=this.readyState)throw this.abort(),Error("need to call open() first. ");this.g=!0;const e={headers:this.v,method:this.C,credentials:this.m,cache:void 0};t&&(e.body=t),(this.F||N).fetch(new Request(this.B,e)).then(this.$a.bind(this),this.ka.bind(this))},C.abort=function(){this.response=this.responseText="",this.v=new Headers,this.status=0,this.j&&this.j.cancel("Request was aborted.").catch((()=>{})),1<=this.readyState&&this.g&&4!=this.readyState&&(this.g=!1,Tn(this)),this.readyState=In},C.$a=function(t){if(this.g&&(this.l=t,this.h||(this.status=this.l.status,this.statusText=this.l.statusText,this.h=t.headers,this.readyState=2,Sn(this)),this.g&&(this.readyState=3,Sn(this),this.g)))if("arraybuffer"===this.responseType)t.arrayBuffer().then(this.Ya.bind(this),this.ka.bind(this));else if(void 0!==N.ReadableStream&&"body"in t){if(this.j=t.body.getReader(),this.u){if(this.responseType)throw Error('responseType must be empty for "streamBinaryChunks" mode responses.');this.response=[]}else this.response=this.responseText="",this.A=new TextDecoder;En(this)}else t.text().then(this.Za.bind(this),this.ka.bind(this))},C.Xa=function(t){if(this.g){if(this.u&&t.value)this.response.push(t.value);else if(!this.u){var e=t.value?t.value:new Uint8Array(0);(e=this.A.decode(e,{stream:!t.done}))&&(this.response=this.responseText+=e)}t.done?Tn(this):Sn(this),3==this.readyState&&En(this)}},C.Za=function(t){this.g&&(this.response=this.responseText=t,Tn(this))},C.Ya=function(t){this.g&&(this.response=t,Tn(this))},C.ka=function(){this.g&&Tn(this)},C.setRequestHeader=function(t,e){this.v.append(t,e)},C.getResponseHeader=function(t){return this.h&&this.h.get(t.toLowerCase())||""},C.getAllResponseHeaders=function(){if(!this.h)return"";const t=[],e=this.h.entries();for(var n=e.next();!n.done;)n=n.value,t.push(n[0]+": "+n[1]),n=e.next();return t.join("\r\n")},Object.defineProperty(_n.prototype,"withCredentials",{get:function(){return"include"===this.m},set:function(t){this.m=t?"include":"same-origin"}});var xn=N.JSON.parse;function Cn(t){Mt.call(this),this.headers=new Map,this.u=t||null,this.h=!1,this.C=this.g=null,this.I="",this.m=0,this.j="",this.l=this.G=this.v=this.F=!1,this.B=0,this.A=null,this.K=Dn,this.L=this.M=!1}F(Cn,Mt);var Dn="",An=/^https?$/i,Nn=["POST","PUT"];function kn(t,e){t.h=!1,t.g&&(t.l=!0,t.g.abort(),t.l=!1),t.j=e,t.m=5,Rn(t),Ln(t)}function Rn(t){t.F||(t.F=!0,Lt(t,"complete"),Lt(t,"error"))}function Mn(t){if(t.h&&void 0!==A&&(!t.C[1]||4!=Pn(t)||2!=t.da()))if(t.v&&4==Pn(t))Wt(t.La,0,t);else if(Lt(t,"readystatechange"),4==Pn(t)){t.h=!1;try{const o=t.da();t:switch(o){case 200:case 201:case 202:case 204:case 206:case 304:case 1223:var e=!0;break t;default:e=!1}var n;if(!(n=e)){var r;if(r=0===o){var s=String(t.I).match(Be)[1]||null;!s&&N.self&&N.self.location&&(s=N.self.location.protocol.slice(0,-1)),r=!An.test(s?s.toLowerCase():"")}n=r}if(n)Lt(t,"complete"),Lt(t,"success");else{t.m=6;try{var i=2{}:null;t.g=null,t.C=null,e||Lt(t,"ready");try{n.onreadystatechange=r}catch(t){}}}function On(t){t.g&&t.L&&(t.g.ontimeout=null),t.A&&(N.clearTimeout(t.A),t.A=null)}function Pn(t){return t.g?t.g.readyState:0}function Fn(t){try{if(!t.g)return null;if("response"in t.g)return t.g.response;switch(t.K){case Dn:case"text":return t.g.responseText;case"arraybuffer":if("mozResponseArrayBuffer"in t.g)return t.g.mozResponseArrayBuffer}return null}catch(t){return null}}function Vn(t){let e="";return gt(t,(function(t,n){e+=n,e+=":",e+=t,e+="\r\n"})),e}function qn(t,e,n){t:{for(r in n){var r=!1;break t}r=!0}r||(n=Vn(n),"string"==typeof t?null!=n&&encodeURIComponent(String(n)):$e(t,e,n))}function Bn(t,e,n){return n&&n.internalChannelParams&&n.internalChannelParams[t]||e}function Un(t){this.Ga=0,this.j=[],this.l=new ne,this.pa=this.wa=this.I=this.Y=this.g=this.Da=this.F=this.na=this.o=this.U=this.s=null,this.fb=this.W=0,this.cb=Bn("failFast",!1,t),this.G=this.v=this.u=this.m=this.h=null,this.aa=!0,this.Fa=this.V=-1,this.ba=this.A=this.C=0,this.ab=Bn("baseRetryDelayMs",5e3,t),this.hb=Bn("retryDelaySeedMs",1e4,t),this.eb=Bn("forwardChannelMaxRetries",2,t),this.xa=Bn("forwardChannelRequestTimeoutMs",2e4,t),this.va=t&&t.xmlHttpFactory||void 0,this.Ha=t&&t.useFetchStreams||!1,this.L=void 0,this.J=t&&t.supportsCrossDomainXhr||!1,this.K="",this.i=new cn(t&&t.concurrentRequestLimit),this.Ja=new yn,this.P=t&&t.fastHandshake||!1,this.O=t&&t.encodeInitMessageHeaders||!1,this.P&&this.O&&(this.O=!1),this.bb=t&&t.bc||!1,t&&t.Ea&&this.l.Ea(),t&&t.forceLongPolling&&(this.aa=!1),this.ca=!this.P&&this.aa&&t&&t.detectBufferingProxy||!1,this.qa=void 0,t&&t.longPollingTimeout&&0n)e=Math.max(0,s[o].g-100),i=!1;else try{wn(a,t,"req"+n+"_")}catch(t){r&&r(a)}}if(i){r=t.join("&");break t}}}return t=t.j.splice(0,n),e.F=t,r}function Wn(t){if(!t.g&&!t.u){t.ba=1;var e=t.Ma;zt||Kt(),Gt||(zt(),Gt=!0),jt.add(e,t),t.A=0}}function Yn(t){return!(t.g||t.u||3<=t.A||(t.ba++,t.u=de(O(t.Ma,t),er(t,t.A)),t.A++,0))}function Xn(t){null!=t.B&&(N.clearTimeout(t.B),t.B=null)}function Jn(t){t.g=new Ee(t,t.l,"rpc",t.ba),null===t.o&&(t.g.I=t.s),t.g.O=0;var e=ze(t.wa);$e(e,"RID","rpc"),$e(e,"SID",t.K),$e(e,"AID",t.V),$e(e,"CI",t.G?"0":"1"),!t.G&&t.qa&&$e(e,"TO",t.qa),$e(e,"TYPE","xmlhttp"),Qn(t,e),t.o&&t.s&&qn(e,t.o,t.s),t.L&&t.g.setTimeout(t.L);var n=t.g;t=t.pa,n.L=1,n.A=Qe(ze(e)),n.u=null,n.S=!0,Ae(n,t)}function Zn(t){null!=t.v&&(N.clearTimeout(t.v),t.v=null)}function tr(t,e){var n=null;if(t.g==e){Zn(t),Xn(t),t.g=null;var r=2}else{if(!fn(t.i,e))return;n=e.F,mn(t.i,e),r=1}if(0!=t.H)if(e.i)if(1==r){n=e.u?e.u.length:0,e=Date.now()-e.G;var s=t.C;Lt(r=oe(),new he(r,n)),Kn(t)}else Wn(t);else if(3==(s=e.s)||0==s&&0=t.i.j-(t.m?1:0)||(t.m?(t.j=e.F.concat(t.j),0):1==t.H||2==t.H||t.C>=(t.cb?0:t.eb)||(t.m=de(O(t.Na,t,e),er(t,t.C)),t.C++,0)))}(t,e)||2==r&&Yn(t)))switch(n&&0s;++s)r[s]=e.charCodeAt(n++)|e.charCodeAt(n++)<<8|e.charCodeAt(n++)<<16|e.charCodeAt(n++)<<24;else for(s=0;16>s;++s)r[s]=e[n++]|e[n++]<<8|e[n++]<<16|e[n++]<<24;e=t.g[0],n=t.g[1],s=t.g[2];var i=t.g[3],o=e+(i^n&(s^i))+r[0]+3614090360&4294967295;o=(n=(s=(i=(e=(n=(s=(i=(e=(n=(s=(i=(e=(n=(s=(i=(e=(n=(s=(i=(e=(n=(s=(i=(e=(n=(s=(i=(e=(n=(s=(i=(e=(n=(s=(i=(e=(n=(s=(i=(e=(n=(s=(i=(e=(n=(s=(i=(e=(n=(s=(i=(e=(n=(s=(i=(e=(n=(s=(i=(e=n+(o<<7&4294967295|o>>>25))+((o=i+(s^e&(n^s))+r[1]+3905402710&4294967295)<<12&4294967295|o>>>20))+((o=s+(n^i&(e^n))+r[2]+606105819&4294967295)<<17&4294967295|o>>>15))+((o=n+(e^s&(i^e))+r[3]+3250441966&4294967295)<<22&4294967295|o>>>10))+((o=e+(i^n&(s^i))+r[4]+4118548399&4294967295)<<7&4294967295|o>>>25))+((o=i+(s^e&(n^s))+r[5]+1200080426&4294967295)<<12&4294967295|o>>>20))+((o=s+(n^i&(e^n))+r[6]+2821735955&4294967295)<<17&4294967295|o>>>15))+((o=n+(e^s&(i^e))+r[7]+4249261313&4294967295)<<22&4294967295|o>>>10))+((o=e+(i^n&(s^i))+r[8]+1770035416&4294967295)<<7&4294967295|o>>>25))+((o=i+(s^e&(n^s))+r[9]+2336552879&4294967295)<<12&4294967295|o>>>20))+((o=s+(n^i&(e^n))+r[10]+4294925233&4294967295)<<17&4294967295|o>>>15))+((o=n+(e^s&(i^e))+r[11]+2304563134&4294967295)<<22&4294967295|o>>>10))+((o=e+(i^n&(s^i))+r[12]+1804603682&4294967295)<<7&4294967295|o>>>25))+((o=i+(s^e&(n^s))+r[13]+4254626195&4294967295)<<12&4294967295|o>>>20))+((o=s+(n^i&(e^n))+r[14]+2792965006&4294967295)<<17&4294967295|o>>>15))+((o=n+(e^s&(i^e))+r[15]+1236535329&4294967295)<<22&4294967295|o>>>10))+((o=e+(s^i&(n^s))+r[1]+4129170786&4294967295)<<5&4294967295|o>>>27))+((o=i+(n^s&(e^n))+r[6]+3225465664&4294967295)<<9&4294967295|o>>>23))+((o=s+(e^n&(i^e))+r[11]+643717713&4294967295)<<14&4294967295|o>>>18))+((o=n+(i^e&(s^i))+r[0]+3921069994&4294967295)<<20&4294967295|o>>>12))+((o=e+(s^i&(n^s))+r[5]+3593408605&4294967295)<<5&4294967295|o>>>27))+((o=i+(n^s&(e^n))+r[10]+38016083&4294967295)<<9&4294967295|o>>>23))+((o=s+(e^n&(i^e))+r[15]+3634488961&4294967295)<<14&4294967295|o>>>18))+((o=n+(i^e&(s^i))+r[4]+3889429448&4294967295)<<20&4294967295|o>>>12))+((o=e+(s^i&(n^s))+r[9]+568446438&4294967295)<<5&4294967295|o>>>27))+((o=i+(n^s&(e^n))+r[14]+3275163606&4294967295)<<9&4294967295|o>>>23))+((o=s+(e^n&(i^e))+r[3]+4107603335&4294967295)<<14&4294967295|o>>>18))+((o=n+(i^e&(s^i))+r[8]+1163531501&4294967295)<<20&4294967295|o>>>12))+((o=e+(s^i&(n^s))+r[13]+2850285829&4294967295)<<5&4294967295|o>>>27))+((o=i+(n^s&(e^n))+r[2]+4243563512&4294967295)<<9&4294967295|o>>>23))+((o=s+(e^n&(i^e))+r[7]+1735328473&4294967295)<<14&4294967295|o>>>18))+((o=n+(i^e&(s^i))+r[12]+2368359562&4294967295)<<20&4294967295|o>>>12))+((o=e+(n^s^i)+r[5]+4294588738&4294967295)<<4&4294967295|o>>>28))+((o=i+(e^n^s)+r[8]+2272392833&4294967295)<<11&4294967295|o>>>21))+((o=s+(i^e^n)+r[11]+1839030562&4294967295)<<16&4294967295|o>>>16))+((o=n+(s^i^e)+r[14]+4259657740&4294967295)<<23&4294967295|o>>>9))+((o=e+(n^s^i)+r[1]+2763975236&4294967295)<<4&4294967295|o>>>28))+((o=i+(e^n^s)+r[4]+1272893353&4294967295)<<11&4294967295|o>>>21))+((o=s+(i^e^n)+r[7]+4139469664&4294967295)<<16&4294967295|o>>>16))+((o=n+(s^i^e)+r[10]+3200236656&4294967295)<<23&4294967295|o>>>9))+((o=e+(n^s^i)+r[13]+681279174&4294967295)<<4&4294967295|o>>>28))+((o=i+(e^n^s)+r[0]+3936430074&4294967295)<<11&4294967295|o>>>21))+((o=s+(i^e^n)+r[3]+3572445317&4294967295)<<16&4294967295|o>>>16))+((o=n+(s^i^e)+r[6]+76029189&4294967295)<<23&4294967295|o>>>9))+((o=e+(n^s^i)+r[9]+3654602809&4294967295)<<4&4294967295|o>>>28))+((o=i+(e^n^s)+r[12]+3873151461&4294967295)<<11&4294967295|o>>>21))+((o=s+(i^e^n)+r[15]+530742520&4294967295)<<16&4294967295|o>>>16))+((o=n+(s^i^e)+r[2]+3299628645&4294967295)<<23&4294967295|o>>>9))+((o=e+(s^(n|~i))+r[0]+4096336452&4294967295)<<6&4294967295|o>>>26))+((o=i+(n^(e|~s))+r[7]+1126891415&4294967295)<<10&4294967295|o>>>22))+((o=s+(e^(i|~n))+r[14]+2878612391&4294967295)<<15&4294967295|o>>>17))+((o=n+(i^(s|~e))+r[5]+4237533241&4294967295)<<21&4294967295|o>>>11))+((o=e+(s^(n|~i))+r[12]+1700485571&4294967295)<<6&4294967295|o>>>26))+((o=i+(n^(e|~s))+r[3]+2399980690&4294967295)<<10&4294967295|o>>>22))+((o=s+(e^(i|~n))+r[10]+4293915773&4294967295)<<15&4294967295|o>>>17))+((o=n+(i^(s|~e))+r[1]+2240044497&4294967295)<<21&4294967295|o>>>11))+((o=e+(s^(n|~i))+r[8]+1873313359&4294967295)<<6&4294967295|o>>>26))+((o=i+(n^(e|~s))+r[15]+4264355552&4294967295)<<10&4294967295|o>>>22))+((o=s+(e^(i|~n))+r[6]+2734768916&4294967295)<<15&4294967295|o>>>17))+((o=n+(i^(s|~e))+r[13]+1309151649&4294967295)<<21&4294967295|o>>>11))+((i=(e=n+((o=e+(s^(n|~i))+r[4]+4149444226&4294967295)<<6&4294967295|o>>>26))+((o=i+(n^(e|~s))+r[11]+3174756917&4294967295)<<10&4294967295|o>>>22))^((s=i+((o=s+(e^(i|~n))+r[2]+718787259&4294967295)<<15&4294967295|o>>>17))|~e))+r[9]+3951481745&4294967295,t.g[0]=t.g[0]+e&4294967295,t.g[1]=t.g[1]+(s+(o<<21&4294967295|o>>>11))&4294967295,t.g[2]=t.g[2]+s&4294967295,t.g[3]=t.g[3]+i&4294967295}function gr(t,e){this.h=e;for(var n=[],r=!0,s=t.length-1;0<=s;s--){var i=0|t[s];r&&i==e||(n[s]=i,r=!1)}this.g=n}(C=Cn.prototype).Oa=function(t){this.M=t},C.ha=function(t,e,n,r){if(this.g)throw Error("[goog.net.XhrIo] Object is active with another request="+this.I+"; newUri="+t);e=e?e.toUpperCase():"GET",this.I=t,this.j="",this.m=0,this.F=!1,this.h=!0,this.g=this.u?this.u.g():we.g(),this.C=this.u?pe(this.u):pe(we),this.g.onreadystatechange=O(this.La,this);try{this.G=!0,this.g.open(e,String(t),!0),this.G=!1}catch(t){return void kn(this,t)}if(t=n||"",n=new Map(this.headers),r)if(Object.getPrototypeOf(r)===Object.prototype)for(var s in r)n.set(s,r[s]);else{if("function"!=typeof r.keys||"function"!=typeof r.get)throw Error("Unknown input type for opt_headers: "+String(r));for(const t of r.keys())n.set(t,r.get(t))}r=Array.from(n.keys()).find((t=>"content-type"==t.toLowerCase())),s=N.FormData&&t instanceof N.FormData,!(0<=q(Nn,e))||r||s||n.set("Content-Type","application/x-www-form-urlencoded;charset=utf-8");for(const[t,e]of n)this.g.setRequestHeader(t,e);this.K&&(this.g.responseType=this.K),"withCredentials"in this.g&&this.g.withCredentials!==this.M&&(this.g.withCredentials=this.M);try{On(this),0=this.S)){var t=2*this.S;this.l.info("BP detection timer enabled: "+t),this.B=de(O(this.jb,this),t)}},C.jb=function(){this.B&&(this.B=null,this.l.info("BP detection timeout reached."),this.l.info("Buffering proxy detected and switch to long-polling!"),this.G=!1,this.M=!0,le(10),Gn(this),Jn(this))},C.ib=function(){null!=this.v&&(this.v=null,Gn(this),Yn(this),le(19))},C.pb=function(t){t?(this.l.info("Successfully pinged google.com"),le(2)):(this.l.info("Failed to ping google.com"),le(1))},C.isActive=function(){return!!this.h&&this.h.isActive(this)},(C=or.prototype).Ba=function(){},C.Aa=function(){},C.za=function(){},C.ya=function(){},C.isActive=function(){return!0},C.Va=function(){},ar.prototype.g=function(t,e){return new ur(t,e)},F(ur,Mt),ur.prototype.m=function(){this.g.h=this.j,this.A&&(this.g.J=!0);var t=this.g,e=this.l,n=this.h||void 0;le(0),t.Y=e,t.na=n||{},t.G=t.aa,t.I=sr(t,null,t.Y),Kn(t)},ur.prototype.close=function(){zn(this.g)},ur.prototype.u=function(t){var e=this.g;if("string"==typeof t){var n={};n.__data__=t,t=n}else this.v&&((n={}).__data__=Pt(t),t=n);e.j.push(new class{constructor(t,e){this.g=t,this.map=e}}(e.fb++,t)),3==e.H&&Kn(e)},ur.prototype.N=function(){this.g.h=null,delete this.j,zn(this.g),delete this.g,ur.$.N.call(this)},F(cr,be),F(lr,_e),F(hr,or),hr.prototype.Ba=function(){Lt(this.g,"a")},hr.prototype.Aa=function(t){Lt(this.g,new cr(t))},hr.prototype.za=function(t){Lt(this.g,new lr)},hr.prototype.ya=function(){Lt(this.g,"b")},F(dr,(function(){this.blockSize=-1})),dr.prototype.reset=function(){this.g[0]=1732584193,this.g[1]=4023233417,this.g[2]=2562383102,this.g[3]=271733878,this.i=this.h=0},dr.prototype.j=function(t,e){void 0===e&&(e=t.length);for(var n=e-this.blockSize,r=this.m,s=this.h,i=0;ithis.h?this.blockSize:2*this.blockSize)-this.h);t[0]=128;for(var e=1;ee;++e)for(var r=0;32>r;r+=8)t[n++]=this.g[e]>>>r&255;return t};var mr={};function pr(t){return-128<=t&&128>t?function(t,e){var n=mr;return Object.prototype.hasOwnProperty.call(n,t)?n[t]:n[t]=e(t)}(t,(function(t){return new gr([0|t],0>t?-1:0)})):new gr([0|t],0>t?-1:0)}function yr(t){if(isNaN(t)||!isFinite(t))return vr;if(0>t)return Tr(yr(-t));for(var e=[],n=1,r=0;t>=n;r++)e[r]=t/n|0,n*=wr;return new gr(e,0)}var wr=4294967296,vr=pr(0),br=pr(1),_r=pr(16777216);function Ir(t){if(0!=t.h)return!1;for(var e=0;e>>16,t[e]&=65535,e++}function Cr(t,e){this.g=t,this.h=e}function Dr(t,e){if(Ir(e))throw Error("division by zero");if(Ir(t))return new Cr(vr,vr);if(Er(t))return e=Dr(Tr(t),e),new Cr(Tr(e.g),Tr(e.h));if(Er(e))return e=Dr(t,Tr(e)),new Cr(Tr(e.g),e.h);if(30=r.X(t);)n=Ar(n),r=Ar(r);var s=Nr(n,1),i=Nr(r,1);for(r=Nr(r,2),n=Nr(n,2);!Ir(r);){var o=i.add(r);0>=o.X(t)&&(s=s.add(n),i=o),r=Nr(r,1),n=Nr(n,1)}return e=Sr(t,s.R(e)),new Cr(s,e)}for(s=vr;0<=t.X(e);){for(n=Math.max(1,Math.floor(t.ea()/e.ea())),r=48>=(r=Math.ceil(Math.log(n)/Math.LN2))?1:Math.pow(2,r-48),o=(i=yr(n)).R(e);Er(o)||0>>31;return new gr(n,t.h)}function Nr(t,e){var n=e>>5;e%=32;for(var r=t.g.length-n,s=[],i=0;i>>e|t.D(i+n+1)<<32-e:t.D(i+n);return new gr(s,t.h)}(C=gr.prototype).ea=function(){if(Er(this))return-Tr(this).ea();for(var t=0,e=1,n=0;n(t=t||10)||36>>0).toString(t);if(Ir(n=s))return i+r;for(;6>i.length;)i="0"+i;r=i+r}},C.D=function(t){return 0>t?0:t>>16)+(this.D(s)>>>16)+(t.D(s)>>>16);r=o>>>16,i&=65535,o&=65535,n[s]=o<<16|i}return new gr(n,-2147483648&n[n.length-1]?-1:0)},C.R=function(t){if(Ir(this)||Ir(t))return vr;if(Er(this))return Er(t)?Tr(this).R(Tr(t)):Tr(Tr(this).R(t));if(Er(t))return Tr(this.R(Tr(t)));if(0>this.X(_r)&&0>t.X(_r))return yr(this.ea()*t.ea());for(var e=this.g.length+t.g.length,n=[],r=0;r<2*e;r++)n[r]=0;for(r=0;r>>16,o=65535&this.D(r),a=t.D(s)>>>16,u=65535&t.D(s);n[2*r+2*s]+=o*u,xr(n,2*r+2*s),n[2*r+2*s+1]+=i*u,xr(n,2*r+2*s+1),n[2*r+2*s+1]+=o*a,xr(n,2*r+2*s+1),n[2*r+2*s+2]+=i*a,xr(n,2*r+2*s+2)}for(r=0;r(n=n||10)||36o?(o=yr(Math.pow(n,o)),s=s.R(o).add(yr(a))):s=(s=s.R(r)).add(yr(a))}return s};var kr=fe,Rr=ge,Mr=se,Lr=ye,Or=Cn,Pr=dr,Fr=gr;const Vr="@firebase/firestore";class qr{constructor(t){this.uid=t}isAuthenticated(){return null!=this.uid}toKey(){return this.isAuthenticated()?"uid:"+this.uid:"anonymous-user"}isEqual(t){return t.uid===this.uid}}qr.UNAUTHENTICATED=new qr(null),qr.GOOGLE_CREDENTIALS=new qr("google-credentials-uid"),qr.FIRST_PARTY=new qr("first-party-uid"),qr.MOCK_USER=new qr("mock-user");let Br="10.8.0";const Ur=new class{constructor(t){this.name=t,this._logLevel=T,this._logHandler=x,this._userLogHandler=null}get logLevel(){return this._logLevel}set logLevel(t){if(!(t in _))throw new TypeError(`Invalid value "${t}" assigned to \`logLevel\``);this._logLevel=t}setLogLevel(t){this._logLevel="string"==typeof t?E[t]:t}get logHandler(){return this._logHandler}set logHandler(t){if("function"!=typeof t)throw new TypeError("Value assigned to `logHandler` must be a function");this._logHandler=t}get userLogHandler(){return this._userLogHandler}set userLogHandler(t){this._userLogHandler=t}debug(...t){this._userLogHandler&&this._userLogHandler(this,_.DEBUG,...t),this._logHandler(this,_.DEBUG,...t)}log(...t){this._userLogHandler&&this._userLogHandler(this,_.VERBOSE,...t),this._logHandler(this,_.VERBOSE,...t)}info(...t){this._userLogHandler&&this._userLogHandler(this,_.INFO,...t),this._logHandler(this,_.INFO,...t)}warn(...t){this._userLogHandler&&this._userLogHandler(this,_.WARN,...t),this._logHandler(this,_.WARN,...t)}error(...t){this._userLogHandler&&this._userLogHandler(this,_.ERROR,...t),this._logHandler(this,_.ERROR,...t)}}("@firebase/firestore");function zr(){return Ur.logLevel}function Gr(t){Ur.setLogLevel(t)}function jr(t,...e){if(Ur.logLevel<=_.DEBUG){const n=e.map(Qr);Ur.debug(`Firestore (${Br}): ${t}`,...n)}}function Kr(t,...e){if(Ur.logLevel<=_.ERROR){const n=e.map(Qr);Ur.error(`Firestore (${Br}): ${t}`,...n)}}function $r(t,...e){if(Ur.logLevel<=_.WARN){const n=e.map(Qr);Ur.warn(`Firestore (${Br}): ${t}`,...n)}}function Qr(t){if("string"==typeof t)return t;try{return function(t){return JSON.stringify(t)}(t)}catch(e){return t}}function Hr(t="Unexpected state"){const e=`FIRESTORE (${Br}) INTERNAL ASSERTION FAILED: `+t;throw Kr(e),new Error(e)}function Wr(t,e){t||Hr()}function Yr(t,e){t||Hr()}function Xr(t,e){return t}const Jr={OK:"ok",CANCELLED:"cancelled",UNKNOWN:"unknown",INVALID_ARGUMENT:"invalid-argument",DEADLINE_EXCEEDED:"deadline-exceeded",NOT_FOUND:"not-found",ALREADY_EXISTS:"already-exists",PERMISSION_DENIED:"permission-denied",UNAUTHENTICATED:"unauthenticated",RESOURCE_EXHAUSTED:"resource-exhausted",FAILED_PRECONDITION:"failed-precondition",ABORTED:"aborted",OUT_OF_RANGE:"out-of-range",UNIMPLEMENTED:"unimplemented",INTERNAL:"internal",UNAVAILABLE:"unavailable",DATA_LOSS:"data-loss"};class Zr extends g{constructor(t,e){super(t,e),this.code=t,this.message=e,this.toString=()=>`${this.name}: [code=${this.code}]: ${this.message}`}}class ts{constructor(){this.promise=new Promise(((t,e)=>{this.resolve=t,this.reject=e}))}}class es{constructor(t,e){this.user=e,this.type="OAuth",this.headers=new Map,this.headers.set("Authorization",`Bearer ${t}`)}}class ns{getToken(){return Promise.resolve(null)}invalidateToken(){}start(t,e){t.enqueueRetryable((()=>e(qr.UNAUTHENTICATED)))}shutdown(){}}class rs{constructor(t){this.token=t,this.changeListener=null}getToken(){return Promise.resolve(this.token)}invalidateToken(){}start(t,e){this.changeListener=e,t.enqueueRetryable((()=>e(this.token.user)))}shutdown(){this.changeListener=null}}class ss{constructor(t){this.t=t,this.currentUser=qr.UNAUTHENTICATED,this.i=0,this.forceRefresh=!1,this.auth=null}start(t,e){let n=this.i;const r=t=>this.i!==n?(n=this.i,e(t)):Promise.resolve();let s=new ts;this.o=()=>{this.i++,this.currentUser=this.u(),s.resolve(),s=new ts,t.enqueueRetryable((()=>r(this.currentUser)))};const i=()=>{const e=s;t.enqueueRetryable((async()=>{await e.promise,await r(this.currentUser)}))},o=t=>{jr("FirebaseAuthCredentialsProvider","Auth detected"),this.auth=t,this.auth.addAuthTokenListener(this.o),i()};this.t.onInit((t=>o(t))),setTimeout((()=>{if(!this.auth){const t=this.t.getImmediate({optional:!0});t?o(t):(jr("FirebaseAuthCredentialsProvider","Auth not yet detected"),s.resolve(),s=new ts)}}),0),i()}getToken(){const t=this.i,e=this.forceRefresh;return this.forceRefresh=!1,this.auth?this.auth.getToken(e).then((e=>this.i!==t?(jr("FirebaseAuthCredentialsProvider","getToken aborted due to token change."),this.getToken()):e?(Wr("string"==typeof e.accessToken),new es(e.accessToken,this.currentUser)):null)):Promise.resolve(null)}invalidateToken(){this.forceRefresh=!0}shutdown(){this.auth&&this.auth.removeAuthTokenListener(this.o)}u(){const t=this.auth&&this.auth.getUid();return Wr(null===t||"string"==typeof t),new qr(t)}}class is{constructor(t,e,n){this.l=t,this.h=e,this.P=n,this.type="FirstParty",this.user=qr.FIRST_PARTY,this.I=new Map}T(){return this.P?this.P():null}get headers(){this.I.set("X-Goog-AuthUser",this.l);const t=this.T();return t&&this.I.set("Authorization",t),this.h&&this.I.set("X-Goog-Iam-Authorization-Token",this.h),this.I}}class os{constructor(t,e,n){this.l=t,this.h=e,this.P=n}getToken(){return Promise.resolve(new is(this.l,this.h,this.P))}start(t,e){t.enqueueRetryable((()=>e(qr.FIRST_PARTY)))}shutdown(){}invalidateToken(){}}class as{constructor(t){this.value=t,this.type="AppCheck",this.headers=new Map,t&&t.length>0&&this.headers.set("x-firebase-appcheck",this.value)}}class us{constructor(t){this.A=t,this.forceRefresh=!1,this.appCheck=null,this.R=null}start(t,e){const n=t=>{null!=t.error&&jr("FirebaseAppCheckTokenProvider",`Error getting App Check token; using placeholder token instead. Error: ${t.error.message}`);const n=t.token!==this.R;return this.R=t.token,jr("FirebaseAppCheckTokenProvider",`Received ${n?"new":"existing"} token.`),n?e(t.token):Promise.resolve()};this.o=e=>{t.enqueueRetryable((()=>n(e)))};const r=t=>{jr("FirebaseAppCheckTokenProvider","AppCheck detected"),this.appCheck=t,this.appCheck.addTokenListener(this.o)};this.A.onInit((t=>r(t))),setTimeout((()=>{if(!this.appCheck){const t=this.A.getImmediate({optional:!0});t?r(t):jr("FirebaseAppCheckTokenProvider","AppCheck not yet detected")}}),0)}getToken(){const t=this.forceRefresh;return this.forceRefresh=!1,this.appCheck?this.appCheck.getToken(t).then((t=>t?(Wr("string"==typeof t.token),this.R=t.token,new as(t.token)):null)):Promise.resolve(null)}invalidateToken(){this.forceRefresh=!0}shutdown(){this.appCheck&&this.appCheck.removeTokenListener(this.o)}}class cs{getToken(){return Promise.resolve(new as(""))}invalidateToken(){}start(t,e){}shutdown(){}}function ls(t){const e="undefined"!=typeof self&&(self.crypto||self.msCrypto),n=new Uint8Array(t);if(e&&"function"==typeof e.getRandomValues)e.getRandomValues(n);else for(let e=0;ee?1:0}function fs(t,e,n){return t.length===e.length&&t.every(((t,r)=>n(t,e[r])))}function gs(t){return t+"\0"}class ms{constructor(t,e){if(this.seconds=t,this.nanoseconds=e,e<0)throw new Zr(Jr.INVALID_ARGUMENT,"Timestamp nanoseconds out of range: "+e);if(e>=1e9)throw new Zr(Jr.INVALID_ARGUMENT,"Timestamp nanoseconds out of range: "+e);if(t<-62135596800)throw new Zr(Jr.INVALID_ARGUMENT,"Timestamp seconds out of range: "+t);if(t>=253402300800)throw new Zr(Jr.INVALID_ARGUMENT,"Timestamp seconds out of range: "+t)}static now(){return ms.fromMillis(Date.now())}static fromDate(t){return ms.fromMillis(t.getTime())}static fromMillis(t){const e=Math.floor(t/1e3),n=Math.floor(1e6*(t-1e3*e));return new ms(e,n)}toDate(){return new Date(this.toMillis())}toMillis(){return 1e3*this.seconds+this.nanoseconds/1e6}_compareTo(t){return this.seconds===t.seconds?ds(this.nanoseconds,t.nanoseconds):ds(this.seconds,t.seconds)}isEqual(t){return t.seconds===this.seconds&&t.nanoseconds===this.nanoseconds}toString(){return"Timestamp(seconds="+this.seconds+", nanoseconds="+this.nanoseconds+")"}toJSON(){return{seconds:this.seconds,nanoseconds:this.nanoseconds}}valueOf(){const t=this.seconds- -62135596800;return String(t).padStart(12,"0")+"."+String(this.nanoseconds).padStart(9,"0")}}class ps{constructor(t){this.timestamp=t}static fromTimestamp(t){return new ps(t)}static min(){return new ps(new ms(0,0))}static max(){return new ps(new ms(253402300799,999999999))}compareTo(t){return this.timestamp._compareTo(t.timestamp)}isEqual(t){return this.timestamp.isEqual(t.timestamp)}toMicroseconds(){return 1e6*this.timestamp.seconds+this.timestamp.nanoseconds/1e3}toString(){return"SnapshotVersion("+this.timestamp.toString()+")"}toTimestamp(){return this.timestamp}}class ys{constructor(t,e,n){void 0===e?e=0:e>t.length&&Hr(),void 0===n?n=t.length-e:n>t.length-e&&Hr(),this.segments=t,this.offset=e,this.len=n}get length(){return this.len}isEqual(t){return 0===ys.comparator(this,t)}child(t){const e=this.segments.slice(this.offset,this.limit());return t instanceof ys?t.forEach((t=>{e.push(t)})):e.push(t),this.construct(e)}limit(){return this.offset+this.length}popFirst(t){return t=void 0===t?1:t,this.construct(this.segments,this.offset+t,this.length-t)}popLast(){return this.construct(this.segments,this.offset,this.length-1)}firstSegment(){return this.segments[this.offset]}lastSegment(){return this.get(this.length-1)}get(t){return this.segments[this.offset+t]}isEmpty(){return 0===this.length}isPrefixOf(t){if(t.lengths)return 1}return t.lengthe.length?1:0}}class ws extends ys{construct(t,e,n){return new ws(t,e,n)}canonicalString(){return this.toArray().join("/")}toString(){return this.canonicalString()}toUriEncodedString(){return this.toArray().map(encodeURIComponent).join("/")}static fromString(...t){const e=[];for(const n of t){if(n.indexOf("//")>=0)throw new Zr(Jr.INVALID_ARGUMENT,`Invalid segment (${n}). Paths must not contain // in them.`);e.push(...n.split("/").filter((t=>t.length>0)))}return new ws(e)}static emptyPath(){return new ws([])}}const vs=/^[_a-zA-Z][_a-zA-Z0-9]*$/;class bs extends ys{construct(t,e,n){return new bs(t,e,n)}static isValidIdentifier(t){return vs.test(t)}canonicalString(){return this.toArray().map((t=>(t=t.replace(/\\/g,"\\\\").replace(/`/g,"\\`"),bs.isValidIdentifier(t)||(t="`"+t+"`"),t))).join(".")}toString(){return this.canonicalString()}isKeyField(){return 1===this.length&&"__name__"===this.get(0)}static keyField(){return new bs(["__name__"])}static fromServerFormat(t){const e=[];let n="",r=0;const s=()=>{if(0===n.length)throw new Zr(Jr.INVALID_ARGUMENT,`Invalid field path (${t}). Paths must not be empty, begin with '.', end with '.', or contain '..'`);e.push(n),n=""};let i=!1;for(;r=2&&this.path.get(this.path.length-2)===t}getCollectionGroup(){return this.path.get(this.path.length-2)}getCollectionPath(){return this.path.popLast()}isEqual(t){return null!==t&&0===ws.comparator(this.path,t.path)}toString(){return this.path.toString()}static comparator(t,e){return ws.comparator(t.path,e.path)}static isDocumentKey(t){return t.length%2==0}static fromSegments(t){return new _s(new ws(t.slice()))}}class Is{constructor(t,e,n,r){this.indexId=t,this.collectionGroup=e,this.fields=n,this.indexState=r}}function Es(t){return t.fields.find((t=>2===t.kind))}function Ts(t){return t.fields.filter((t=>2!==t.kind))}function Ss(t,e){let n=ds(t.collectionGroup,e.collectionGroup);if(0!==n)return n;for(let r=0;rt()))}}async function Os(t){if(t.code!==Jr.FAILED_PRECONDITION||t.message!==Ms)throw t;jr("LocalStore","Unexpectedly lost primary lease")}class Ps{constructor(t){this.nextCallback=null,this.catchCallback=null,this.result=void 0,this.error=void 0,this.isDone=!1,this.callbackAttached=!1,t((t=>{this.isDone=!0,this.result=t,this.nextCallback&&this.nextCallback(t)}),(t=>{this.isDone=!0,this.error=t,this.catchCallback&&this.catchCallback(t)}))}catch(t){return this.next(void 0,t)}next(t,e){return this.callbackAttached&&Hr(),this.callbackAttached=!0,this.isDone?this.error?this.wrapFailure(e,this.error):this.wrapSuccess(t,this.result):new Ps(((n,r)=>{this.nextCallback=e=>{this.wrapSuccess(t,e).next(n,r)},this.catchCallback=t=>{this.wrapFailure(e,t).next(n,r)}}))}toPromise(){return new Promise(((t,e)=>{this.next(t,e)}))}wrapUserFunction(t){try{const e=t();return e instanceof Ps?e:Ps.resolve(e)}catch(t){return Ps.reject(t)}}wrapSuccess(t,e){return t?this.wrapUserFunction((()=>t(e))):Ps.resolve(e)}wrapFailure(t,e){return t?this.wrapUserFunction((()=>t(e))):Ps.reject(e)}static resolve(t){return new Ps(((e,n)=>{e(t)}))}static reject(t){return new Ps(((e,n)=>{n(t)}))}static waitFor(t){return new Ps(((e,n)=>{let r=0,s=0,i=!1;t.forEach((t=>{++r,t.next((()=>{++s,i&&s===r&&e()}),(t=>n(t)))})),i=!0,s===r&&e()}))}static or(t){let e=Ps.resolve(!1);for(const n of t)e=e.next((t=>t?Ps.resolve(t):n()));return e}static forEach(t,e){const n=[];return t.forEach(((t,r)=>{n.push(e.call(this,t,r))})),this.waitFor(n)}static mapArray(t,e){return new Ps(((n,r)=>{const s=t.length,i=new Array(s);let o=0;for(let a=0;a{i[u]=t,++o,o===s&&n(i)}),(t=>r(t)))}}))}static doWhile(t,e){return new Ps(((n,r)=>{const s=()=>{!0===t()?e().next((()=>{s()}),r):n()};s()}))}}class Fs{constructor(t,e){this.action=t,this.transaction=e,this.aborted=!1,this.V=new ts,this.transaction.oncomplete=()=>{this.V.resolve()},this.transaction.onabort=()=>{e.error?this.V.reject(new Bs(t,e.error)):this.V.resolve()},this.transaction.onerror=e=>{const n=Ks(e.target.error);this.V.reject(new Bs(t,n))}}static open(t,e,n,r){try{return new Fs(e,t.transaction(r,n))}catch(t){throw new Bs(e,t)}}get m(){return this.V.promise}abort(t){t&&this.V.reject(t),this.aborted||(jr("SimpleDb","Aborting transaction:",t?t.message:"Client-initiated abort"),this.aborted=!0,this.transaction.abort())}g(){const t=this.transaction;this.aborted||"function"!=typeof t.commit||t.commit()}store(t){const e=this.transaction.objectStore(t);return new zs(e)}}class Vs{constructor(t,e,n){this.name=t,this.version=e,this.p=n,12.2===Vs.S(d())&&Kr("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.")}static delete(t){return jr("SimpleDb","Removing database:",t),Gs(window.indexedDB.deleteDatabase(t)).toPromise()}static D(){if(!function(){try{return"object"==typeof indexedDB}catch(t){return!1}}())return!1;if(Vs.C())return!0;const t=d(),e=Vs.S(t),n=00||t.indexOf("Trident/")>0||t.indexOf("Edge/")>0||n||s)}static C(){var t;return void 0!==o&&"YES"===(null===(t=o.__PRIVATE_env)||void 0===t?void 0:t.F)}static M(t,e){return t.store(e)}static S(t){const e=t.match(/i(?:phone|pad|pod) os ([\d_]+)/i),n=e?e[1].split("_").slice(0,2).join("."):"-1";return Number(n)}static v(t){const e=t.match(/Android ([\d.]+)/i),n=e?e[1].split(".").slice(0,2).join("."):"-1";return Number(n)}async O(t){return this.db||(jr("SimpleDb","Opening database:",this.name),this.db=await new Promise(((e,n)=>{const r=indexedDB.open(this.name,this.version);r.onsuccess=t=>{const n=t.target.result;e(n)},r.onblocked=()=>{n(new Bs(t,"Cannot upgrade IndexedDB schema while another tab is open. Close all tabs that access Firestore and reload this page to proceed."))},r.onerror=e=>{const r=e.target.error;"VersionError"===r.name?n(new Zr(Jr.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.")):"InvalidStateError"===r.name?n(new Zr(Jr.FAILED_PRECONDITION,"Unable to open an IndexedDB connection. This could be due to running in a private browsing session on a browser whose private browsing sessions do not support IndexedDB: "+r)):n(new Bs(t,r))},r.onupgradeneeded=t=>{jr("SimpleDb",'Database "'+this.name+'" requires upgrade from version:',t.oldVersion);const e=t.target.result;this.p.N(e,r.transaction,t.oldVersion,this.version).next((()=>{jr("SimpleDb","Database upgrade to version "+this.version+" complete")}))}}))),this.B&&(this.db.onversionchange=t=>this.B(t)),this.db}L(t){this.B=t,this.db&&(this.db.onversionchange=e=>t(e))}async runTransaction(t,e,n,r){const s="readonly"===e;let i=0;for(;;){++i;try{this.db=await this.O(t);const e=Fs.open(this.db,t,s?"readonly":"readwrite",n),i=r(e).next((t=>(e.g(),t))).catch((t=>(e.abort(t),Ps.reject(t)))).toPromise();return i.catch((()=>{})),await e.m,i}catch(t){const e=t,n="FirebaseError"!==e.name&&i<3;if(jr("SimpleDb","Transaction failed with error:",e.message,"Retrying:",n),this.close(),!n)return Promise.reject(e)}}}close(){this.db&&this.db.close(),this.db=void 0}}class qs{constructor(t){this.k=t,this.q=!1,this.K=null}get isDone(){return this.q}get $(){return this.K}set cursor(t){this.k=t}done(){this.q=!0}U(t){this.K=t}delete(){return Gs(this.k.delete())}}class Bs extends Zr{constructor(t,e){super(Jr.UNAVAILABLE,`IndexedDB transaction '${t}' failed: ${e}`),this.name="IndexedDbTransactionError"}}function Us(t){return"IndexedDbTransactionError"===t.name}class zs{constructor(t){this.store=t}put(t,e){let n;return void 0!==e?(jr("SimpleDb","PUT",this.store.name,t,e),n=this.store.put(e,t)):(jr("SimpleDb","PUT",this.store.name,"",t),n=this.store.put(t)),Gs(n)}add(t){return jr("SimpleDb","ADD",this.store.name,t,t),Gs(this.store.add(t))}get(t){return Gs(this.store.get(t)).next((e=>(void 0===e&&(e=null),jr("SimpleDb","GET",this.store.name,t,e),e)))}delete(t){return jr("SimpleDb","DELETE",this.store.name,t),Gs(this.store.delete(t))}count(){return jr("SimpleDb","COUNT",this.store.name),Gs(this.store.count())}W(t,e){const n=this.options(t,e),r=n.index?this.store.index(n.index):this.store;if("function"==typeof r.getAll){const t=r.getAll(n.range);return new Ps(((e,n)=>{t.onerror=t=>{n(t.target.error)},t.onsuccess=t=>{e(t.target.result)}}))}{const t=this.cursor(n),e=[];return this.G(t,((t,n)=>{e.push(n)})).next((()=>e))}}j(t,e){const n=this.store.getAll(t,null===e?void 0:e);return new Ps(((t,e)=>{n.onerror=t=>{e(t.target.error)},n.onsuccess=e=>{t(e.target.result)}}))}H(t,e){jr("SimpleDb","DELETE ALL",this.store.name);const n=this.options(t,e);n.J=!1;const r=this.cursor(n);return this.G(r,((t,e,n)=>n.delete()))}Y(t,e){let n;e?n=t:(n={},e=t);const r=this.cursor(n);return this.G(r,e)}Z(t){const e=this.cursor({});return new Ps(((n,r)=>{e.onerror=t=>{const e=Ks(t.target.error);r(e)},e.onsuccess=e=>{const r=e.target.result;r?t(r.primaryKey,r.value).next((t=>{t?r.continue():n()})):n()}}))}G(t,e){const n=[];return new Ps(((r,s)=>{t.onerror=t=>{s(t.target.error)},t.onsuccess=t=>{const s=t.target.result;if(!s)return void r();const i=new qs(s),o=e(s.primaryKey,s.value,i);if(o instanceof Ps){const t=o.catch((t=>(i.done(),Ps.reject(t))));n.push(t)}i.isDone?r():null===i.$?s.continue():s.continue(i.$)}})).next((()=>Ps.waitFor(n)))}options(t,e){let n;return void 0!==t&&("string"==typeof t?n=t:e=t),{index:n,range:e}}cursor(t){let e="next";if(t.reverse&&(e="prev"),t.index){const n=this.store.index(t.index);return t.J?n.openKeyCursor(t.range,e):n.openCursor(t.range,e)}return this.store.openCursor(t.range,e)}}function Gs(t){return new Ps(((e,n)=>{t.onsuccess=t=>{const n=t.target.result;e(n)},t.onerror=t=>{const e=Ks(t.target.error);n(e)}}))}let js=!1;function Ks(t){const e=Vs.S(d());if(e>=12.2&&e<13){const e="An internal error was encountered in the Indexed Database server";if(t.message.indexOf(e)>=0){const t=new Zr("internal",`IOS_INDEXEDDB_BUG1: IndexedDb has thrown '${e}'. This is likely due to an unavoidable bug in iOS. See https://stackoverflow.com/q/56496296/110915 for details and a potential workaround.`);return js||(js=!0,setTimeout((()=>{throw t}),0)),t}}return t}class $s{constructor(t,e){this.asyncQueue=t,this.X=e,this.task=null}start(){this.ee(15e3)}stop(){this.task&&(this.task.cancel(),this.task=null)}get started(){return null!==this.task}ee(t){jr("IndexBackfiller",`Scheduled in ${t}ms`),this.task=this.asyncQueue.enqueueAfterDelay("index_backfill",t,(async()=>{this.task=null;try{jr("IndexBackfiller",`Documents written: ${await this.X.te()}`)}catch(t){Us(t)?jr("IndexBackfiller","Ignoring IndexedDB error during index backfill: ",t):await Os(t)}await this.ee(6e4)}))}}class Qs{constructor(t,e){this.localStore=t,this.persistence=e}async te(t=50){return this.persistence.runTransaction("Backfill Indexes","readwrite-primary",(e=>this.ne(e,t)))}ne(t,e){const n=new Set;let r=e,s=!0;return Ps.doWhile((()=>!0===s&&r>0),(()=>this.localStore.indexManager.getNextCollectionGroupToUpdate(t).next((e=>{if(null!==e&&!n.has(e))return jr("IndexBackfiller",`Processing collection: ${e}`),this.re(t,e,r).next((t=>{r-=t,n.add(e)}));s=!1})))).next((()=>e-r))}re(t,e,n){return this.localStore.indexManager.getMinOffsetFromCollectionGroup(t,e).next((r=>this.localStore.localDocuments.getNextDocuments(t,e,r,n).next((n=>{const s=n.changes;return this.localStore.indexManager.updateIndexEntries(t,s).next((()=>this.ie(r,n))).next((n=>(jr("IndexBackfiller",`Updating offset: ${n}`),this.localStore.indexManager.updateCollectionGroup(t,e,n)))).next((()=>s.size))}))))}ie(t,e){let n=t;return e.changes.forEach(((t,e)=>{const r=Ns(e);Rs(r,n)>0&&(n=r)})),new ks(n.readTime,n.documentKey,Math.max(e.batchId,t.largestBatchId))}}class Hs{constructor(t,e){this.previousValue=t,e&&(e.sequenceNumberHandler=t=>this.se(t),this.oe=t=>e.writeSequenceNumber(t))}se(t){return this.previousValue=Math.max(t,this.previousValue),this.previousValue}next(){const t=++this.previousValue;return this.oe&&this.oe(t),t}}function Ws(t){return null==t}function Ys(t){return 0===t&&1/t==-1/0}function Xs(t){return"number"==typeof t&&Number.isInteger(t)&&!Ys(t)&&t<=Number.MAX_SAFE_INTEGER&&t>=Number.MIN_SAFE_INTEGER}function Js(t){let e="";for(let n=0;n0&&(e=ti(e)),e=Zs(t.get(n),e);return ti(e)}function Zs(t,e){let n=e;const r=t.length;for(let e=0;e=2),2===e)return Wr(""===t.charAt(0)&&""===t.charAt(1)),ws.emptyPath();const n=e-2,r=[];let s="";for(let i=0;in)&&Hr(),t.charAt(e+1)){case"":const n=t.substring(i,e);let o;0===s.length?o=n:(s+=n,o=s,s=""),r.push(o);break;case"":s+=t.substring(i,e),s+="\0";break;case"":s+=t.substring(i,e+1);break;default:Hr()}i=e+2}return new ws(r)}Hs._e=-1;const ni=["userId","batchId"];function ri(t,e){return[t,Js(e)]}function si(t,e,n){return[t,Js(e),n]}const ii={},oi=["prefixPath","collectionGroup","readTime","documentId"],ai=["prefixPath","collectionGroup","documentId"],ui=["collectionGroup","readTime","prefixPath","documentId"],ci=["canonicalId","targetId"],li=["targetId","path"],hi=["path","targetId"],di=["collectionId","parent"],fi=["indexId","uid"],gi=["uid","sequenceNumber"],mi=["indexId","uid","arrayValue","directionalValue","orderedDocumentKey","documentKey"],pi=["indexId","uid","orderedDocumentKey"],yi=["userId","collectionPath","documentId"],wi=["userId","collectionPath","largestBatchId"],vi=["userId","collectionGroup","largestBatchId"],bi=["mutationQueues","mutations","documentMutations","remoteDocuments","targets","owner","targetGlobal","targetDocuments","clientMetadata","remoteDocumentGlobal","collectionParents","bundles","namedQueries"],_i=[...bi,"documentOverlays"],Ii=["mutationQueues","mutations","documentMutations","remoteDocumentsV14","targets","owner","targetGlobal","targetDocuments","clientMetadata","remoteDocumentGlobal","collectionParents","bundles","namedQueries","documentOverlays"],Ei=Ii,Ti=[...Ei,"indexConfiguration","indexState","indexEntries"];class Si extends Ls{constructor(t,e){super(),this.ae=t,this.currentSequenceNumber=e}}function xi(t,e){const n=Xr(t);return Vs.M(n.ae,e)}function Ci(t){let e=0;for(const n in t)Object.prototype.hasOwnProperty.call(t,n)&&e++;return e}function Di(t,e){for(const n in t)Object.prototype.hasOwnProperty.call(t,n)&&e(n,t[n])}function Ai(t){for(const e in t)if(Object.prototype.hasOwnProperty.call(t,e))return!1;return!0}class Ni{constructor(t,e){this.comparator=t,this.root=e||Ri.EMPTY}insert(t,e){return new Ni(this.comparator,this.root.insert(t,e,this.comparator).copy(null,null,Ri.BLACK,null,null))}remove(t){return new Ni(this.comparator,this.root.remove(t,this.comparator).copy(null,null,Ri.BLACK,null,null))}get(t){let e=this.root;for(;!e.isEmpty();){const n=this.comparator(t,e.key);if(0===n)return e.value;n<0?e=e.left:n>0&&(e=e.right)}return null}indexOf(t){let e=0,n=this.root;for(;!n.isEmpty();){const r=this.comparator(t,n.key);if(0===r)return e+n.left.size;r<0?n=n.left:(e+=n.left.size+1,n=n.right)}return-1}isEmpty(){return this.root.isEmpty()}get size(){return this.root.size}minKey(){return this.root.minKey()}maxKey(){return this.root.maxKey()}inorderTraversal(t){return this.root.inorderTraversal(t)}forEach(t){this.inorderTraversal(((e,n)=>(t(e,n),!1)))}toString(){const t=[];return this.inorderTraversal(((e,n)=>(t.push(`${e}:${n}`),!1))),`{${t.join(", ")}}`}reverseTraversal(t){return this.root.reverseTraversal(t)}getIterator(){return new ki(this.root,null,this.comparator,!1)}getIteratorFrom(t){return new ki(this.root,t,this.comparator,!1)}getReverseIterator(){return new ki(this.root,null,this.comparator,!0)}getReverseIteratorFrom(t){return new ki(this.root,t,this.comparator,!0)}}class ki{constructor(t,e,n,r){this.isReverse=r,this.nodeStack=[];let s=1;for(;!t.isEmpty();)if(s=e?n(t.key,e):1,e&&r&&(s*=-1),s<0)t=this.isReverse?t.left:t.right;else{if(0===s){this.nodeStack.push(t);break}this.nodeStack.push(t),t=this.isReverse?t.right:t.left}}getNext(){let t=this.nodeStack.pop();const e={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 e}hasNext(){return this.nodeStack.length>0}peek(){if(0===this.nodeStack.length)return null;const t=this.nodeStack[this.nodeStack.length-1];return{key:t.key,value:t.value}}}class Ri{constructor(t,e,n,r,s){this.key=t,this.value=e,this.color=null!=n?n:Ri.RED,this.left=null!=r?r:Ri.EMPTY,this.right=null!=s?s:Ri.EMPTY,this.size=this.left.size+1+this.right.size}copy(t,e,n,r,s){return new Ri(null!=t?t:this.key,null!=e?e:this.value,null!=n?n:this.color,null!=r?r:this.left,null!=s?s:this.right)}isEmpty(){return!1}inorderTraversal(t){return this.left.inorderTraversal(t)||t(this.key,this.value)||this.right.inorderTraversal(t)}reverseTraversal(t){return this.right.reverseTraversal(t)||t(this.key,this.value)||this.left.reverseTraversal(t)}min(){return this.left.isEmpty()?this:this.left.min()}minKey(){return this.min().key}maxKey(){return this.right.isEmpty()?this.key:this.right.maxKey()}insert(t,e,n){let r=this;const s=n(t,r.key);return r=s<0?r.copy(null,null,null,r.left.insert(t,e,n),null):0===s?r.copy(null,e,null,null,null):r.copy(null,null,null,null,r.right.insert(t,e,n)),r.fixUp()}removeMin(){if(this.left.isEmpty())return Ri.EMPTY;let t=this;return t.left.isRed()||t.left.left.isRed()||(t=t.moveRedLeft()),t=t.copy(null,null,null,t.left.removeMin(),null),t.fixUp()}remove(t,e){let n,r=this;if(e(t,r.key)<0)r.left.isEmpty()||r.left.isRed()||r.left.left.isRed()||(r=r.moveRedLeft()),r=r.copy(null,null,null,r.left.remove(t,e),null);else{if(r.left.isRed()&&(r=r.rotateRight()),r.right.isEmpty()||r.right.isRed()||r.right.left.isRed()||(r=r.moveRedRight()),0===e(t,r.key)){if(r.right.isEmpty())return Ri.EMPTY;n=r.right.min(),r=r.copy(n.key,n.value,null,null,r.right.removeMin())}r=r.copy(null,null,null,null,r.right.remove(t,e))}return r.fixUp()}isRed(){return this.color}fixUp(){let 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}moveRedLeft(){let t=this.colorFlip();return t.right.left.isRed()&&(t=t.copy(null,null,null,null,t.right.rotateRight()),t=t.rotateLeft(),t=t.colorFlip()),t}moveRedRight(){let t=this.colorFlip();return t.left.left.isRed()&&(t=t.rotateRight(),t=t.colorFlip()),t}rotateLeft(){const t=this.copy(null,null,Ri.RED,null,this.right.left);return this.right.copy(null,null,this.color,t,null)}rotateRight(){const t=this.copy(null,null,Ri.RED,this.left.right,null);return this.left.copy(null,null,this.color,null,t)}colorFlip(){const t=this.left.copy(null,null,!this.left.color,null,null),e=this.right.copy(null,null,!this.right.color,null,null);return this.copy(null,null,!this.color,t,e)}checkMaxDepth(){const t=this.check();return Math.pow(2,t)<=this.size+1}check(){if(this.isRed()&&this.left.isRed())throw Hr();if(this.right.isRed())throw Hr();const t=this.left.check();if(t!==this.right.check())throw Hr();return t+(this.isRed()?0:1)}}Ri.EMPTY=null,Ri.RED=!0,Ri.BLACK=!1,Ri.EMPTY=new class{constructor(){this.size=0}get key(){throw Hr()}get value(){throw Hr()}get color(){throw Hr()}get left(){throw Hr()}get right(){throw Hr()}copy(t,e,n,r,s){return this}insert(t,e,n){return new Ri(t,e)}remove(t,e){return this}isEmpty(){return!0}inorderTraversal(t){return!1}reverseTraversal(t){return!1}minKey(){return null}maxKey(){return null}isRed(){return!1}checkMaxDepth(){return!0}check(){return 0}};class Mi{constructor(t){this.comparator=t,this.data=new Ni(this.comparator)}has(t){return null!==this.data.get(t)}first(){return this.data.minKey()}last(){return this.data.maxKey()}get size(){return this.data.size}indexOf(t){return this.data.indexOf(t)}forEach(t){this.data.inorderTraversal(((e,n)=>(t(e),!1)))}forEachInRange(t,e){const n=this.data.getIteratorFrom(t[0]);for(;n.hasNext();){const r=n.getNext();if(this.comparator(r.key,t[1])>=0)return;e(r.key)}}forEachWhile(t,e){let n;for(n=void 0!==e?this.data.getIteratorFrom(e):this.data.getIterator();n.hasNext();)if(!t(n.getNext().key))return}firstAfterOrEqual(t){const e=this.data.getIteratorFrom(t);return e.hasNext()?e.getNext().key:null}getIterator(){return new Li(this.data.getIterator())}getIteratorFrom(t){return new Li(this.data.getIteratorFrom(t))}add(t){return this.copy(this.data.remove(t).insert(t,!0))}delete(t){return this.has(t)?this.copy(this.data.remove(t)):this}isEmpty(){return this.data.isEmpty()}unionWith(t){let e=this;return e.size{e=e.add(t)})),e}isEqual(t){if(!(t instanceof Mi))return!1;if(this.size!==t.size)return!1;const e=this.data.getIterator(),n=t.data.getIterator();for(;e.hasNext();){const t=e.getNext().key,r=n.getNext().key;if(0!==this.comparator(t,r))return!1}return!0}toArray(){const t=[];return this.forEach((e=>{t.push(e)})),t}toString(){const t=[];return this.forEach((e=>t.push(e))),"SortedSet("+t.toString()+")"}copy(t){const e=new Mi(this.comparator);return e.data=t,e}}class Li{constructor(t){this.iter=t}getNext(){return this.iter.getNext().key}hasNext(){return this.iter.hasNext()}}function Oi(t){return t.hasNext()?t.getNext():void 0}class Pi{constructor(t){this.fields=t,t.sort(bs.comparator)}static empty(){return new Pi([])}unionWith(t){let e=new Mi(bs.comparator);for(const t of this.fields)e=e.add(t);for(const n of t)e=e.add(n);return new Pi(e.toArray())}covers(t){for(const e of this.fields)if(e.isPrefixOf(t))return!0;return!1}isEqual(t){return fs(this.fields,t.fields,((t,e)=>t.isEqual(e)))}}class Fi extends Error{constructor(){super(...arguments),this.name="Base64DecodeError"}}function Vi(){return"undefined"!=typeof atob}class qi{constructor(t){this.binaryString=t}static fromBase64String(t){const e=function(t){try{return atob(t)}catch(t){throw"undefined"!=typeof DOMException&&t instanceof DOMException?new Fi("Invalid base64 string: "+t):t}}(t);return new qi(e)}static fromUint8Array(t){const e=function(t){let e="";for(let n=0;ntJi(t,e)))}function to(t,e){if(t===e)return 0;const n=Xi(t),r=Xi(e);if(n!==r)return ds(n,r);switch(n){case 0:case 9007199254740991:return 0;case 1:return ds(t.booleanValue,e.booleanValue);case 2:return function(t,e){const n=zi(t.integerValue||t.doubleValue),r=zi(e.integerValue||e.doubleValue);return nr?1:n===r?0:isNaN(n)?isNaN(r)?0:-1:1}(t,e);case 3:return eo(t.timestampValue,e.timestampValue);case 4:return eo($i(t),$i(e));case 5:return ds(t.stringValue,e.stringValue);case 6:return function(t,e){const n=Gi(t),r=Gi(e);return n.compareTo(r)}(t.bytesValue,e.bytesValue);case 7:return function(t,e){const n=t.split("/"),r=e.split("/");for(let t=0;tt+so(e)),0)}(t.arrayValue);case 10:return function(t){let e=0;return Di(t.fields,((t,n)=>{e+=t.length+so(n)})),e}(t.mapValue);default:throw Hr()}}function io(t,e){return{referenceValue:`projects/${t.projectId}/databases/${t.database}/documents/${e.path.canonicalString()}`}}function oo(t){return!!t&&"integerValue"in t}function ao(t){return!!t&&"arrayValue"in t}function uo(t){return!!t&&"nullValue"in t}function co(t){return!!t&&"doubleValue"in t&&isNaN(Number(t.doubleValue))}function lo(t){return!!t&&"mapValue"in t}function ho(t){if(t.geoPointValue)return{geoPointValue:Object.assign({},t.geoPointValue)};if(t.timestampValue&&"object"==typeof t.timestampValue)return{timestampValue:Object.assign({},t.timestampValue)};if(t.mapValue){const e={mapValue:{fields:{}}};return Di(t.mapValue.fields,((t,n)=>e.mapValue.fields[t]=ho(n))),e}if(t.arrayValue){const e={arrayValue:{values:[]}};for(let n=0;n<(t.arrayValue.values||[]).length;++n)e.arrayValue.values[n]=ho(t.arrayValue.values[n]);return e}return Object.assign({},t)}function fo(t){return"__max__"===(((t.mapValue||{}).fields||{}).__type__||{}).stringValue}function go(t){return"nullValue"in t?Yi:"booleanValue"in t?{booleanValue:!1}:"integerValue"in t||"doubleValue"in t?{doubleValue:NaN}:"timestampValue"in t?{timestampValue:{seconds:Number.MIN_SAFE_INTEGER}}:"stringValue"in t?{stringValue:""}:"bytesValue"in t?{bytesValue:""}:"referenceValue"in t?io(Hi.empty(),_s.empty()):"geoPointValue"in t?{geoPointValue:{latitude:-90,longitude:-180}}:"arrayValue"in t?{arrayValue:{}}:"mapValue"in t?{mapValue:{}}:Hr()}function mo(t){return"nullValue"in t?{booleanValue:!1}:"booleanValue"in t?{doubleValue:NaN}:"integerValue"in t||"doubleValue"in t?{timestampValue:{seconds:Number.MIN_SAFE_INTEGER}}:"timestampValue"in t?{stringValue:""}:"stringValue"in t?{bytesValue:""}:"bytesValue"in t?io(Hi.empty(),_s.empty()):"referenceValue"in t?{geoPointValue:{latitude:-90,longitude:-180}}:"geoPointValue"in t?{arrayValue:{}}:"arrayValue"in t?{mapValue:{}}:"mapValue"in t?Wi:Hr()}function po(t,e){const n=to(t.value,e.value);return 0!==n?n:t.inclusive&&!e.inclusive?-1:!t.inclusive&&e.inclusive?1:0}function yo(t,e){const n=to(t.value,e.value);return 0!==n?n:t.inclusive&&!e.inclusive?1:!t.inclusive&&e.inclusive?-1:0}class wo{constructor(t){this.value=t}static empty(){return new wo({mapValue:{}})}field(t){if(t.isEmpty())return this.value;{let e=this.value;for(let n=0;n{if(!e.isImmediateParentOf(s)){const t=this.getFieldsMap(e);this.applyChanges(t,n,r),n={},r=[],e=s.popLast()}t?n[s.lastSegment()]=ho(t):r.push(s.lastSegment())}));const s=this.getFieldsMap(e);this.applyChanges(s,n,r)}delete(t){const e=this.field(t.popLast());lo(e)&&e.mapValue.fields&&delete e.mapValue.fields[t.lastSegment()]}isEqual(t){return Ji(this.value,t.value)}getFieldsMap(t){let e=this.value;e.mapValue.fields||(e.mapValue={fields:{}});for(let n=0;nt[e]=n));for(const e of n)delete t[e]}clone(){return new wo(ho(this.value))}}function vo(t){const e=[];return Di(t.fields,((t,n)=>{const r=new bs([t]);if(lo(n)){const t=vo(n.mapValue).fields;if(0===t.length)e.push(r);else for(const n of t)e.push(r.child(n))}else e.push(r)})),new Pi(e)}class bo{constructor(t,e,n,r,s,i,o){this.key=t,this.documentType=e,this.version=n,this.readTime=r,this.createTime=s,this.data=i,this.documentState=o}static newInvalidDocument(t){return new bo(t,0,ps.min(),ps.min(),ps.min(),wo.empty(),0)}static newFoundDocument(t,e,n,r){return new bo(t,1,e,ps.min(),n,r,0)}static newNoDocument(t,e){return new bo(t,2,e,ps.min(),ps.min(),wo.empty(),0)}static newUnknownDocument(t,e){return new bo(t,3,e,ps.min(),ps.min(),wo.empty(),2)}convertToFoundDocument(t,e){return!this.createTime.isEqual(ps.min())||2!==this.documentType&&0!==this.documentType||(this.createTime=t),this.version=t,this.documentType=1,this.data=e,this.documentState=0,this}convertToNoDocument(t){return this.version=t,this.documentType=2,this.data=wo.empty(),this.documentState=0,this}convertToUnknownDocument(t){return this.version=t,this.documentType=3,this.data=wo.empty(),this.documentState=2,this}setHasCommittedMutations(){return this.documentState=2,this}setHasLocalMutations(){return this.documentState=1,this.version=ps.min(),this}setReadTime(t){return this.readTime=t,this}get hasLocalMutations(){return 1===this.documentState}get hasCommittedMutations(){return 2===this.documentState}get hasPendingWrites(){return this.hasLocalMutations||this.hasCommittedMutations}isValidDocument(){return 0!==this.documentType}isFoundDocument(){return 1===this.documentType}isNoDocument(){return 2===this.documentType}isUnknownDocument(){return 3===this.documentType}isEqual(t){return t instanceof bo&&this.key.isEqual(t.key)&&this.version.isEqual(t.version)&&this.documentType===t.documentType&&this.documentState===t.documentState&&this.data.isEqual(t.data)}mutableCopy(){return new bo(this.key,this.documentType,this.version,this.readTime,this.createTime,this.data.clone(),this.documentState)}toString(){return`Document(${this.key}, ${this.version}, ${JSON.stringify(this.data.value)}, {createTime: ${this.createTime}}), {documentType: ${this.documentType}}), {documentState: ${this.documentState}})`}}class _o{constructor(t,e){this.position=t,this.inclusive=e}}function Io(t,e,n){let r=0;for(let s=0;s":return t>0;case">=":return t>=0;default:return Hr()}}isInequality(){return["<","<=",">",">=","!=","not-in"].indexOf(this.op)>=0}getFlattenedFilters(){return[this]}getFilters(){return[this]}}class Do extends xo{constructor(t,e){super(),this.filters=t,this.op=e,this.ue=null}static create(t,e){return new Do(t,e)}matches(t){return Ao(this)?void 0===this.filters.find((e=>!e.matches(t))):void 0!==this.filters.find((e=>e.matches(t)))}getFlattenedFilters(){return null!==this.ue||(this.ue=this.filters.reduce(((t,e)=>t.concat(e.getFlattenedFilters())),[])),this.ue}getFilters(){return Object.assign([],this.filters)}}function Ao(t){return"and"===t.op}function No(t){return"or"===t.op}function ko(t){return Ro(t)&&Ao(t)}function Ro(t){for(const e of t.filters)if(e instanceof Do)return!1;return!0}function Mo(t){if(t instanceof Co)return t.field.canonicalString()+t.op.toString()+no(t.value);if(ko(t))return t.filters.map((t=>Mo(t))).join(",");{const e=t.filters.map((t=>Mo(t))).join(",");return`${t.op}(${e})`}}function Lo(t,e){return t instanceof Co?function(t,e){return e instanceof Co&&t.op===e.op&&t.field.isEqual(e.field)&&Ji(t.value,e.value)}(t,e):t instanceof Do?function(t,e){return e instanceof Do&&t.op===e.op&&t.filters.length===e.filters.length&&t.filters.reduce(((t,n,r)=>t&&Lo(n,e.filters[r])),!0)}(t,e):void Hr()}function Oo(t,e){const n=t.filters.concat(e);return Do.create(n,t.op)}function Po(t){return t instanceof Co?function(t){return`${t.field.canonicalString()} ${t.op} ${no(t.value)}`}(t):t instanceof Do?function(t){return t.op.toString()+" {"+t.getFilters().map(Po).join(" ,")+"}"}(t):"Filter"}class Fo extends Co{constructor(t,e,n){super(t,e,n),this.key=_s.fromName(n.referenceValue)}matches(t){const e=_s.comparator(t.key,this.key);return this.matchesComparison(e)}}class Vo extends Co{constructor(t,e){super(t,"in",e),this.keys=Bo("in",e)}matches(t){return this.keys.some((e=>e.isEqual(t.key)))}}class qo extends Co{constructor(t,e){super(t,"not-in",e),this.keys=Bo("not-in",e)}matches(t){return!this.keys.some((e=>e.isEqual(t.key)))}}function Bo(t,e){var n;return((null===(n=e.arrayValue)||void 0===n?void 0:n.values)||[]).map((t=>_s.fromName(t.referenceValue)))}class Uo extends Co{constructor(t,e){super(t,"array-contains",e)}matches(t){const e=t.data.field(this.field);return ao(e)&&Zi(e.arrayValue,this.value)}}class zo extends Co{constructor(t,e){super(t,"in",e)}matches(t){const e=t.data.field(this.field);return null!==e&&Zi(this.value.arrayValue,e)}}class Go extends Co{constructor(t,e){super(t,"not-in",e)}matches(t){if(Zi(this.value.arrayValue,{nullValue:"NULL_VALUE"}))return!1;const e=t.data.field(this.field);return null!==e&&!Zi(this.value.arrayValue,e)}}class jo extends Co{constructor(t,e){super(t,"array-contains-any",e)}matches(t){const e=t.data.field(this.field);return!(!ao(e)||!e.arrayValue.values)&&e.arrayValue.values.some((t=>Zi(this.value.arrayValue,t)))}}class Ko{constructor(t,e=null,n=[],r=[],s=null,i=null,o=null){this.path=t,this.collectionGroup=e,this.orderBy=n,this.filters=r,this.limit=s,this.startAt=i,this.endAt=o,this.ce=null}}function $o(t,e=null,n=[],r=[],s=null,i=null,o=null){return new Ko(t,e,n,r,s,i,o)}function Qo(t){const e=Xr(t);if(null===e.ce){let t=e.path.canonicalString();null!==e.collectionGroup&&(t+="|cg:"+e.collectionGroup),t+="|f:",t+=e.filters.map((t=>Mo(t))).join(","),t+="|ob:",t+=e.orderBy.map((t=>function(t){return t.field.canonicalString()+t.dir}(t))).join(","),Ws(e.limit)||(t+="|l:",t+=e.limit),e.startAt&&(t+="|lb:",t+=e.startAt.inclusive?"b:":"a:",t+=e.startAt.position.map((t=>no(t))).join(",")),e.endAt&&(t+="|ub:",t+=e.endAt.inclusive?"a:":"b:",t+=e.endAt.position.map((t=>no(t))).join(",")),e.ce=t}return e.ce}function Ho(t,e){if(t.limit!==e.limit)return!1;if(t.orderBy.length!==e.orderBy.length)return!1;for(let n=0;nt instanceof Co&&t.field.isEqual(e)))}function Xo(t,e,n){let r=Yi,s=!0;for(const n of Yo(t,e)){let t=Yi,e=!0;switch(n.op){case"<":case"<=":t=go(n.value);break;case"==":case"in":case">=":t=n.value;break;case">":t=n.value,e=!1;break;case"!=":case"not-in":t=Yi}po({value:r,inclusive:s},{value:t,inclusive:e})<0&&(r=t,s=e)}if(null!==n)for(let i=0;i=":case">":t=mo(n.value),e=!1;break;case"==":case"in":case"<=":t=n.value;break;case"<":t=n.value,e=!1;break;case"!=":case"not-in":t=Wi}yo({value:r,inclusive:s},{value:t,inclusive:e})>0&&(r=t,s=e)}if(null!==n)for(let i=0;i0&&(r=t,s=n.inclusive);break}return{value:r,inclusive:s}}class Zo{constructor(t,e=null,n=[],r=[],s=null,i="F",o=null,a=null){this.path=t,this.collectionGroup=e,this.explicitOrderBy=n,this.filters=r,this.limit=s,this.limitType=i,this.startAt=o,this.endAt=a,this.le=null,this.he=null,this.Pe=null,this.startAt,this.endAt}}function ta(t,e,n,r,s,i,o,a){return new Zo(t,e,n,r,s,i,o,a)}function ea(t){return new Zo(t)}function na(t){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())}function ra(t){return null!==t.collectionGroup}function sa(t){const e=Xr(t);if(null===e.le){e.le=[];const t=new Set;for(const n of e.explicitOrderBy)e.le.push(n),t.add(n.field.canonicalString());const n=e.explicitOrderBy.length>0?e.explicitOrderBy[e.explicitOrderBy.length-1].dir:"asc",r=function(t){let e=new Mi(bs.comparator);return t.filters.forEach((t=>{t.getFlattenedFilters().forEach((t=>{t.isInequality()&&(e=e.add(t.field))}))})),e}(e);r.forEach((r=>{t.has(r.canonicalString())||r.isKeyField()||e.le.push(new To(r,n))})),t.has(bs.keyField().canonicalString())||e.le.push(new To(bs.keyField(),n))}return e.le}function ia(t){const e=Xr(t);return e.he||(e.he=oa(e,sa(t))),e.he}function oa(t,e){if("F"===t.limitType)return $o(t.path,t.collectionGroup,e,t.filters,t.limit,t.startAt,t.endAt);{e=e.map((t=>{const e="desc"===t.dir?"asc":"desc";return new To(t.field,e)}));const n=t.endAt?new _o(t.endAt.position,t.endAt.inclusive):null,r=t.startAt?new _o(t.startAt.position,t.startAt.inclusive):null;return $o(t.path,t.collectionGroup,e,t.filters,t.limit,n,r)}}function aa(t,e){const n=t.filters.concat([e]);return new Zo(t.path,t.collectionGroup,t.explicitOrderBy.slice(),n,t.limit,t.limitType,t.startAt,t.endAt)}function ua(t,e,n){return new Zo(t.path,t.collectionGroup,t.explicitOrderBy.slice(),t.filters.slice(),e,n,t.startAt,t.endAt)}function ca(t,e){return Ho(ia(t),ia(e))&&t.limitType===e.limitType}function la(t){return`${Qo(ia(t))}|lt:${t.limitType}`}function ha(t){return`Query(target=${function(t){let e=t.path.canonicalString();return null!==t.collectionGroup&&(e+=" collectionGroup="+t.collectionGroup),t.filters.length>0&&(e+=`, filters: [${t.filters.map((t=>Po(t))).join(", ")}]`),Ws(t.limit)||(e+=", limit: "+t.limit),t.orderBy.length>0&&(e+=`, orderBy: [${t.orderBy.map((t=>function(t){return`${t.field.canonicalString()} (${t.dir})`}(t))).join(", ")}]`),t.startAt&&(e+=", startAt: ",e+=t.startAt.inclusive?"b:":"a:",e+=t.startAt.position.map((t=>no(t))).join(",")),t.endAt&&(e+=", endAt: ",e+=t.endAt.inclusive?"a:":"b:",e+=t.endAt.position.map((t=>no(t))).join(",")),`Target(${e})`}(ia(t))}; limitType=${t.limitType})`}function da(t,e){return e.isFoundDocument()&&function(t,e){const n=e.key.path;return null!==t.collectionGroup?e.key.hasCollectionId(t.collectionGroup)&&t.path.isPrefixOf(n):_s.isDocumentKey(t.path)?t.path.isEqual(n):t.path.isImmediateParentOf(n)}(t,e)&&function(t,e){for(const n of sa(t))if(!n.field.isKeyField()&&null===e.data.field(n.field))return!1;return!0}(t,e)&&function(t,e){for(const n of t.filters)if(!n.matches(e))return!1;return!0}(t,e)&&function(t,e){return!(t.startAt&&!function(t,e,n){const r=Io(t,e,n);return t.inclusive?r<=0:r<0}(t.startAt,sa(t),e)||t.endAt&&!function(t,e,n){const r=Io(t,e,n);return t.inclusive?r>=0:r>0}(t.endAt,sa(t),e))}(t,e)}function fa(t){return t.collectionGroup||(t.path.length%2==1?t.path.lastSegment():t.path.get(t.path.length-2))}function ga(t){return(e,n)=>{let r=!1;for(const s of sa(t)){const t=ma(s,e,n);if(0!==t)return t;r=r||s.field.isKeyField()}return 0}}function ma(t,e,n){const r=t.field.isKeyField()?_s.comparator(e.key,n.key):function(t,e,n){const r=e.data.field(t),s=n.data.field(t);return null!==r&&null!==s?to(r,s):Hr()}(t.field,e,n);switch(t.dir){case"asc":return r;case"desc":return-1*r;default:return Hr()}}class pa{constructor(t,e){this.mapKeyFn=t,this.equalsFn=e,this.inner={},this.innerSize=0}get(t){const e=this.mapKeyFn(t),n=this.inner[e];if(void 0!==n)for(const[e,r]of n)if(this.equalsFn(e,t))return r}has(t){return void 0!==this.get(t)}set(t,e){const n=this.mapKeyFn(t),r=this.inner[n];if(void 0===r)return this.inner[n]=[[t,e]],void this.innerSize++;for(let n=0;n{for(const[e,r]of n)t(e,r)}))}isEmpty(){return Ai(this.inner)}size(){return this.innerSize}}const ya=new Ni(_s.comparator);function wa(){return ya}const va=new Ni(_s.comparator);function ba(...t){let e=va;for(const n of t)e=e.insert(n.key,n);return e}function _a(t){let e=va;return t.forEach(((t,n)=>e=e.insert(t,n.overlayedDocument))),e}function Ia(){return Ta()}function Ea(){return Ta()}function Ta(){return new pa((t=>t.toString()),((t,e)=>t.isEqual(e)))}const Sa=new Ni(_s.comparator),xa=new Mi(_s.comparator);function Ca(...t){let e=xa;for(const n of t)e=e.add(n);return e}const Da=new Mi(ds);function Aa(){return Da}function Na(t,e){if(t.useProto3Json){if(isNaN(e))return{doubleValue:"NaN"};if(e===1/0)return{doubleValue:"Infinity"};if(e===-1/0)return{doubleValue:"-Infinity"}}return{doubleValue:Ys(e)?"-0":e}}function ka(t){return{integerValue:""+t}}function Ra(t,e){return Xs(e)?ka(e):Na(t,e)}class Ma{constructor(){this._=void 0}}function La(t,e,n){return t instanceof Fa?function(t,e){const n={fields:{__type__:{stringValue:"server_timestamp"},__local_write_time__:{timestampValue:{seconds:t.seconds,nanos:t.nanoseconds}}}};return e&&ji(e)&&(e=Ki(e)),e&&(n.fields.__previous_value__=e),{mapValue:n}}(n,e):t instanceof Va?qa(t,e):t instanceof Ba?Ua(t,e):function(t,e){const n=Pa(t,e),r=Ga(n)+Ga(t.Ie);return oo(n)&&oo(t.Ie)?ka(r):Na(t.serializer,r)}(t,e)}function Oa(t,e,n){return t instanceof Va?qa(t,e):t instanceof Ba?Ua(t,e):n}function Pa(t,e){return t instanceof za?function(t){return oo(t)||function(t){return!!t&&"doubleValue"in t}(t)}(e)?e:{integerValue:0}:null}class Fa extends Ma{}class Va extends Ma{constructor(t){super(),this.elements=t}}function qa(t,e){const n=ja(e);for(const e of t.elements)n.some((t=>Ji(t,e)))||n.push(e);return{arrayValue:{values:n}}}class Ba extends Ma{constructor(t){super(),this.elements=t}}function Ua(t,e){let n=ja(e);for(const e of t.elements)n=n.filter((t=>!Ji(t,e)));return{arrayValue:{values:n}}}class za extends Ma{constructor(t,e){super(),this.serializer=t,this.Ie=e}}function Ga(t){return zi(t.integerValue||t.doubleValue)}function ja(t){return ao(t)&&t.arrayValue.values?t.arrayValue.values.slice():[]}class Ka{constructor(t,e){this.field=t,this.transform=e}}class $a{constructor(t,e){this.version=t,this.transformResults=e}}class Qa{constructor(t,e){this.updateTime=t,this.exists=e}static none(){return new Qa}static exists(t){return new Qa(void 0,t)}static updateTime(t){return new Qa(t)}get isNone(){return void 0===this.updateTime&&void 0===this.exists}isEqual(t){return this.exists===t.exists&&(this.updateTime?!!t.updateTime&&this.updateTime.isEqual(t.updateTime):!t.updateTime)}}function Ha(t,e){return void 0!==t.updateTime?e.isFoundDocument()&&e.version.isEqual(t.updateTime):void 0===t.exists||t.exists===e.isFoundDocument()}class Wa{}function Ya(t,e){if(!t.hasLocalMutations||e&&0===e.fields.length)return null;if(null===e)return t.isNoDocument()?new ou(t.key,Qa.none()):new eu(t.key,t.data,Qa.none());{const n=t.data,r=wo.empty();let s=new Mi(bs.comparator);for(let t of e.fields)if(!s.has(t)){let e=n.field(t);null===e&&t.length>1&&(t=t.popLast(),e=n.field(t)),null===e?r.delete(t):r.set(t,e),s=s.add(t)}return new nu(t.key,r,new Pi(s.toArray()),Qa.none())}}function Xa(t,e,n){t instanceof eu?function(t,e,n){const r=t.value.clone(),s=su(t.fieldTransforms,e,n.transformResults);r.setAll(s),e.convertToFoundDocument(n.version,r).setHasCommittedMutations()}(t,e,n):t instanceof nu?function(t,e,n){if(!Ha(t.precondition,e))return void e.convertToUnknownDocument(n.version);const r=su(t.fieldTransforms,e,n.transformResults),s=e.data;s.setAll(ru(t)),s.setAll(r),e.convertToFoundDocument(n.version,s).setHasCommittedMutations()}(t,e,n):function(t,e,n){e.convertToNoDocument(n.version).setHasCommittedMutations()}(0,e,n)}function Ja(t,e,n,r){return t instanceof eu?function(t,e,n,r){if(!Ha(t.precondition,e))return n;const s=t.value.clone(),i=iu(t.fieldTransforms,r,e);return s.setAll(i),e.convertToFoundDocument(e.version,s).setHasLocalMutations(),null}(t,e,n,r):t instanceof nu?function(t,e,n,r){if(!Ha(t.precondition,e))return n;const s=iu(t.fieldTransforms,r,e),i=e.data;return i.setAll(ru(t)),i.setAll(s),e.convertToFoundDocument(e.version,i).setHasLocalMutations(),null===n?null:n.unionWith(t.fieldMask.fields).unionWith(t.fieldTransforms.map((t=>t.field)))}(t,e,n,r):function(t,e,n){return Ha(t.precondition,e)?(e.convertToNoDocument(e.version).setHasLocalMutations(),null):n}(t,e,n)}function Za(t,e){let n=null;for(const r of t.fieldTransforms){const t=e.data.field(r.field),s=Pa(r.transform,t||null);null!=s&&(null===n&&(n=wo.empty()),n.set(r.field,s))}return n||null}function tu(t,e){return t.type===e.type&&!!t.key.isEqual(e.key)&&!!t.precondition.isEqual(e.precondition)&&!!function(t,e){return void 0===t&&void 0===e||!(!t||!e)&&fs(t,e,((t,e)=>function(t,e){return t.field.isEqual(e.field)&&function(t,e){return t instanceof Va&&e instanceof Va||t instanceof Ba&&e instanceof Ba?fs(t.elements,e.elements,Ji):t instanceof za&&e instanceof za?Ji(t.Ie,e.Ie):t instanceof Fa&&e instanceof Fa}(t.transform,e.transform)}(t,e)))}(t.fieldTransforms,e.fieldTransforms)&&(0===t.type?t.value.isEqual(e.value):1!==t.type||t.data.isEqual(e.data)&&t.fieldMask.isEqual(e.fieldMask))}class eu extends Wa{constructor(t,e,n,r=[]){super(),this.key=t,this.value=e,this.precondition=n,this.fieldTransforms=r,this.type=0}getFieldMask(){return null}}class nu extends Wa{constructor(t,e,n,r,s=[]){super(),this.key=t,this.data=e,this.fieldMask=n,this.precondition=r,this.fieldTransforms=s,this.type=1}getFieldMask(){return this.fieldMask}}function ru(t){const e=new Map;return t.fieldMask.fields.forEach((n=>{if(!n.isEmpty()){const r=t.data.field(n);e.set(n,r)}})),e}function su(t,e,n){const r=new Map;Wr(t.length===n.length);for(let s=0;s{const s=t.get(r.key),i=s.overlayedDocument;let o=this.applyToLocalView(i,s.mutatedFields);o=e.has(r.key)?null:o;const a=Ya(i,o);null!==a&&n.set(r.key,a),i.isValidDocument()||i.convertToNoDocument(ps.min())})),n}keys(){return this.mutations.reduce(((t,e)=>t.add(e.key)),Ca())}isEqual(t){return this.batchId===t.batchId&&fs(this.mutations,t.mutations,((t,e)=>tu(t,e)))&&fs(this.baseMutations,t.baseMutations,((t,e)=>tu(t,e)))}}class cu{constructor(t,e,n,r){this.batch=t,this.commitVersion=e,this.mutationResults=n,this.docVersions=r}static from(t,e,n){Wr(t.mutations.length===n.length);let r=Sa;const s=t.mutations;for(let t=0;t=8)throw new Eu(`Invalid padding: ${e}`);if(n<0)throw new Eu(`Invalid hash count: ${n}`);if(t.length>0&&0===this.hashCount)throw new Eu(`Invalid hash count: ${n}`);if(0===t.length&&0!==e)throw new Eu(`Invalid padding when bitmap length is 0: ${e}`);this.Te=8*t.length-e,this.Ee=Fr.fromNumber(this.Te)}de(t,e,n){let r=t.add(e.multiply(Fr.fromNumber(n)));return 1===r.compare(vu)&&(r=new Fr([r.getBits(0),r.getBits(1)],0)),r.modulo(this.Ee).toNumber()}Ae(t){return 0!=(this.bitmap[Math.floor(t/8)]&1<i.insert(t))),i}insert(t){if(0===this.Te)return;const e=bu(t),[n,r]=_u(e);for(let t=0;t0&&(this.Se=!0,this.ye=t)}ve(){let t=Ca(),e=Ca(),n=Ca();return this.pe.forEach(((r,s)=>{switch(s){case 0:t=t.add(r);break;case 2:e=e.add(r);break;case 1:n=n.add(r);break;default:Hr()}})),new Su(this.ye,this.we,t,e,n)}Fe(){this.Se=!1,this.pe=Ru()}Me(t,e){this.Se=!0,this.pe=this.pe.insert(t,e)}xe(t){this.Se=!0,this.pe=this.pe.remove(t)}Oe(){this.ge+=1}Ne(){this.ge-=1,Wr(this.ge>=0)}Be(){this.Se=!0,this.we=!0}}class Nu{constructor(t){this.Le=t,this.ke=new Map,this.qe=wa(),this.Qe=ku(),this.Ke=new Ni(ds)}$e(t){for(const e of t.Ve)t.me&&t.me.isFoundDocument()?this.Ue(e,t.me):this.We(e,t.key,t.me);for(const e of t.removedTargetIds)this.We(e,t.key,t.me)}Ge(t){this.forEachTarget(t,(e=>{const n=this.ze(e);switch(t.state){case 0:this.je(e)&&n.Ce(t.resumeToken);break;case 1:n.Ne(),n.be||n.Fe(),n.Ce(t.resumeToken);break;case 2:n.Ne(),n.be||this.removeTarget(e);break;case 3:this.je(e)&&(n.Be(),n.Ce(t.resumeToken));break;case 4:this.je(e)&&(this.He(e),n.Ce(t.resumeToken));break;default:Hr()}}))}forEachTarget(t,e){t.targetIds.length>0?t.targetIds.forEach(e):this.ke.forEach(((t,n)=>{this.je(n)&&e(n)}))}Je(t){const e=t.targetId,n=t.fe.count,r=this.Ye(e);if(r){const s=r.target;if(Wo(s))if(0===n){const t=new _s(s.path);this.We(e,t,bo.newNoDocument(t,ps.min()))}else Wr(1===n);else{const r=this.Ze(e);if(r!==n){const n=this.Xe(t),s=n?this.et(n,t,r):1;if(0!==s){this.He(e);const t=2===s?"TargetPurposeExistenceFilterMismatchBloom":"TargetPurposeExistenceFilterMismatch";this.Ke=this.Ke.insert(e,t)}null==yu||yu.tt(function(t,e,n,r,s){var i,o,a,u,c,l;const h={localCacheCount:t,existenceFilterCount:e.count,databaseId:n.database,projectId:n.projectId},d=e.unchangedNames;return d&&(h.bloomFilter={applied:0===s,hashCount:null!==(i=null==d?void 0:d.hashCount)&&void 0!==i?i:0,bitmapLength:null!==(u=null===(a=null===(o=null==d?void 0:d.bits)||void 0===o?void 0:o.bitmap)||void 0===a?void 0:a.length)&&void 0!==u?u:0,padding:null!==(l=null===(c=null==d?void 0:d.bits)||void 0===c?void 0:c.padding)&&void 0!==l?l:0,mightContain:t=>{var e;return null!==(e=null==r?void 0:r.mightContain(t))&&void 0!==e&&e}}),h}(r,t.fe,this.Le.nt(),n,s))}}}}Xe(t){const e=t.fe.unchangedNames;if(!e||!e.bits)return null;const{bits:{bitmap:n="",padding:r=0},hashCount:s=0}=e;let i,o;try{i=Gi(n).toUint8Array()}catch(t){if(t instanceof Fi)return $r("Decoding the base64 bloom filter in existence filter failed ("+t.message+"); ignoring the bloom filter and falling back to full re-query."),null;throw t}try{o=new Iu(i,r,s)}catch(t){return $r(t instanceof Eu?"BloomFilter error: ":"Applying bloom filter failed: ",t),null}return 0===o.Te?null:o}et(t,e,n){return e.fe.count===n-this.rt(t,e.targetId)?0:2}rt(t,e){const n=this.Le.getRemoteKeysForTarget(e);let r=0;return n.forEach((n=>{const s=this.Le.nt(),i=`projects/${s.projectId}/databases/${s.database}/documents/${n.path.canonicalString()}`;t.mightContain(i)||(this.We(e,n,null),r++)})),r}it(t){const e=new Map;this.ke.forEach(((n,r)=>{const s=this.Ye(r);if(s){if(n.current&&Wo(s.target)){const e=new _s(s.target.path);null!==this.qe.get(e)||this.st(r,e)||this.We(r,e,bo.newNoDocument(e,t))}n.De&&(e.set(r,n.ve()),n.Fe())}}));let n=Ca();this.Qe.forEach(((t,e)=>{let r=!0;e.forEachWhile((t=>{const e=this.Ye(t);return!e||"TargetPurposeLimboResolution"===e.purpose||(r=!1,!1)})),r&&(n=n.add(t))})),this.qe.forEach(((e,n)=>n.setReadTime(t)));const r=new Tu(t,e,this.Ke,this.qe,n);return this.qe=wa(),this.Qe=ku(),this.Ke=new Ni(ds),r}Ue(t,e){if(!this.je(t))return;const n=this.st(t,e.key)?2:0;this.ze(t).Me(e.key,n),this.qe=this.qe.insert(e.key,e),this.Qe=this.Qe.insert(e.key,this.ot(e.key).add(t))}We(t,e,n){if(!this.je(t))return;const r=this.ze(t);this.st(t,e)?r.Me(e,1):r.xe(e),this.Qe=this.Qe.insert(e,this.ot(e).delete(t)),n&&(this.qe=this.qe.insert(e,n))}removeTarget(t){this.ke.delete(t)}Ze(t){const e=this.ze(t).ve();return this.Le.getRemoteKeysForTarget(t).size+e.addedDocuments.size-e.removedDocuments.size}Oe(t){this.ze(t).Oe()}ze(t){let e=this.ke.get(t);return e||(e=new Au,this.ke.set(t,e)),e}ot(t){let e=this.Qe.get(t);return e||(e=new Mi(ds),this.Qe=this.Qe.insert(t,e)),e}je(t){const e=null!==this.Ye(t);return e||jr("WatchChangeAggregator","Detected inactive target",t),e}Ye(t){const e=this.ke.get(t);return e&&e.be?null:this.Le._t(t)}He(t){this.ke.set(t,new Au),this.Le.getRemoteKeysForTarget(t).forEach((e=>{this.We(t,e,null)}))}st(t,e){return this.Le.getRemoteKeysForTarget(t).has(e)}}function ku(){return new Ni(_s.comparator)}function Ru(){return new Ni(_s.comparator)}const Mu={asc:"ASCENDING",desc:"DESCENDING"},Lu={"<":"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"},Ou={and:"AND",or:"OR"};class Pu{constructor(t,e){this.databaseId=t,this.useProto3Json=e}}function Fu(t,e){return t.useProto3Json||Ws(e)?e:{value:e}}function Vu(t,e){return t.useProto3Json?`${new Date(1e3*e.seconds).toISOString().replace(/\.\d*/,"").replace("Z","")}.${("000000000"+e.nanoseconds).slice(-9)}Z`:{seconds:""+e.seconds,nanos:e.nanoseconds}}function qu(t,e){return t.useProto3Json?e.toBase64():e.toUint8Array()}function Bu(t,e){return Vu(t,e.toTimestamp())}function Uu(t){return Wr(!!t),ps.fromTimestamp(function(t){const e=Ui(t);return new ms(e.seconds,e.nanos)}(t))}function zu(t,e){return Gu(t,e).canonicalString()}function Gu(t,e){const n=function(t){return new ws(["projects",t.projectId,"databases",t.database])}(t).child("documents");return void 0===e?n:n.child(e)}function ju(t){const e=ws.fromString(t);return Wr(dc(e)),e}function Ku(t,e){return zu(t.databaseId,e.path)}function $u(t,e){const n=ju(e);if(n.get(1)!==t.databaseId.projectId)throw new Zr(Jr.INVALID_ARGUMENT,"Tried to deserialize key from different project: "+n.get(1)+" vs "+t.databaseId.projectId);if(n.get(3)!==t.databaseId.database)throw new Zr(Jr.INVALID_ARGUMENT,"Tried to deserialize key from different database: "+n.get(3)+" vs "+t.databaseId.database);return new _s(Yu(n))}function Qu(t,e){return zu(t.databaseId,e)}function Hu(t){const e=ju(t);return 4===e.length?ws.emptyPath():Yu(e)}function Wu(t){return new ws(["projects",t.databaseId.projectId,"databases",t.databaseId.database]).canonicalString()}function Yu(t){return Wr(t.length>4&&"documents"===t.get(4)),t.popFirst(5)}function Xu(t,e,n){return{name:Ku(t,e),fields:n.value.mapValue.fields}}function Ju(t,e,n){const r=$u(t,e.name),s=Uu(e.updateTime),i=e.createTime?Uu(e.createTime):ps.min(),o=new wo({mapValue:{fields:e.fields}}),a=bo.newFoundDocument(r,s,i,o);return n&&a.setHasCommittedMutations(),n?a.setHasCommittedMutations():a}function Zu(t,e){let n;if(e instanceof eu)n={update:Xu(t,e.key,e.value)};else if(e instanceof ou)n={delete:Ku(t,e.key)};else if(e instanceof nu)n={update:Xu(t,e.key,e.data),updateMask:hc(e.fieldMask)};else{if(!(e instanceof au))return Hr();n={verify:Ku(t,e.key)}}return e.fieldTransforms.length>0&&(n.updateTransforms=e.fieldTransforms.map((t=>function(t,e){const n=e.transform;if(n instanceof Fa)return{fieldPath:e.field.canonicalString(),setToServerValue:"REQUEST_TIME"};if(n instanceof Va)return{fieldPath:e.field.canonicalString(),appendMissingElements:{values:n.elements}};if(n instanceof Ba)return{fieldPath:e.field.canonicalString(),removeAllFromArray:{values:n.elements}};if(n instanceof za)return{fieldPath:e.field.canonicalString(),increment:n.Ie};throw Hr()}(0,t)))),e.precondition.isNone||(n.currentDocument=function(t,e){return void 0!==e.updateTime?{updateTime:Bu(t,e.updateTime)}:void 0!==e.exists?{exists:e.exists}:Hr()}(t,e.precondition)),n}function tc(t,e){const n=e.currentDocument?function(t){return void 0!==t.updateTime?Qa.updateTime(Uu(t.updateTime)):void 0!==t.exists?Qa.exists(t.exists):Qa.none()}(e.currentDocument):Qa.none(),r=e.updateTransforms?e.updateTransforms.map((e=>function(t,e){let n=null;if("setToServerValue"in e)Wr("REQUEST_TIME"===e.setToServerValue),n=new Fa;else if("appendMissingElements"in e){const t=e.appendMissingElements.values||[];n=new Va(t)}else if("removeAllFromArray"in e){const t=e.removeAllFromArray.values||[];n=new Ba(t)}else"increment"in e?n=new za(t,e.increment):Hr();const r=bs.fromServerFormat(e.fieldPath);return new Ka(r,n)}(t,e))):[];if(e.update){e.update.name;const s=$u(t,e.update.name),i=new wo({mapValue:{fields:e.update.fields}});if(e.updateMask){const t=function(t){const e=t.fieldPaths||[];return new Pi(e.map((t=>bs.fromServerFormat(t))))}(e.updateMask);return new nu(s,i,t,n,r)}return new eu(s,i,n,r)}if(e.delete){const r=$u(t,e.delete);return new ou(r,n)}if(e.verify){const r=$u(t,e.verify);return new au(r,n)}return Hr()}function ec(t,e){return{documents:[Qu(t,e.path)]}}function nc(t,e){const n={structuredQuery:{}},r=e.path;let s;null!==e.collectionGroup?(s=r,n.structuredQuery.from=[{collectionId:e.collectionGroup,allDescendants:!0}]):(s=r.popLast(),n.structuredQuery.from=[{collectionId:r.lastSegment()}]),n.parent=Qu(t,s);const i=function(t){if(0!==t.length)return lc(Do.create(t,"and"))}(e.filters);i&&(n.structuredQuery.where=i);const o=function(t){if(0!==t.length)return t.map((t=>function(t){return{field:uc(t.field),direction:ic(t.dir)}}(t)))}(e.orderBy);o&&(n.structuredQuery.orderBy=o);const a=Fu(t,e.limit);return null!==a&&(n.structuredQuery.limit=a),e.startAt&&(n.structuredQuery.startAt=function(t){return{before:t.inclusive,values:t.position}}(e.startAt)),e.endAt&&(n.structuredQuery.endAt=function(t){return{before:!t.inclusive,values:t.position}}(e.endAt)),{ut:n,parent:s}}function rc(t){let e=Hu(t.parent);const n=t.structuredQuery,r=n.from?n.from.length:0;let s=null;if(r>0){Wr(1===r);const t=n.from[0];t.allDescendants?s=t.collectionId:e=e.child(t.collectionId)}let i=[];n.where&&(i=function(t){const e=sc(t);return e instanceof Do&&ko(e)?e.getFilters():[e]}(n.where));let o=[];n.orderBy&&(o=function(t){return t.map((t=>function(t){return new To(cc(t.field),function(t){switch(t){case"ASCENDING":return"asc";case"DESCENDING":return"desc";default:return}}(t.direction))}(t)))}(n.orderBy));let a=null;n.limit&&(a=function(t){let e;return e="object"==typeof t?t.value:t,Ws(e)?null:e}(n.limit));let u=null;n.startAt&&(u=function(t){const e=!!t.before,n=t.values||[];return new _o(n,e)}(n.startAt));let c=null;return n.endAt&&(c=function(t){const e=!t.before,n=t.values||[];return new _o(n,e)}(n.endAt)),ta(e,s,o,i,a,"F",u,c)}function sc(t){return void 0!==t.unaryFilter?function(t){switch(t.unaryFilter.op){case"IS_NAN":const e=cc(t.unaryFilter.field);return Co.create(e,"==",{doubleValue:NaN});case"IS_NULL":const n=cc(t.unaryFilter.field);return Co.create(n,"==",{nullValue:"NULL_VALUE"});case"IS_NOT_NAN":const r=cc(t.unaryFilter.field);return Co.create(r,"!=",{doubleValue:NaN});case"IS_NOT_NULL":const s=cc(t.unaryFilter.field);return Co.create(s,"!=",{nullValue:"NULL_VALUE"});default:return Hr()}}(t):void 0!==t.fieldFilter?function(t){return Co.create(cc(t.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";default:return Hr()}}(t.fieldFilter.op),t.fieldFilter.value)}(t):void 0!==t.compositeFilter?function(t){return Do.create(t.compositeFilter.filters.map((t=>sc(t))),function(t){switch(t){case"AND":return"and";case"OR":return"or";default:return Hr()}}(t.compositeFilter.op))}(t):Hr()}function ic(t){return Mu[t]}function oc(t){return Lu[t]}function ac(t){return Ou[t]}function uc(t){return{fieldPath:t.canonicalString()}}function cc(t){return bs.fromServerFormat(t.fieldPath)}function lc(t){return t instanceof Co?function(t){if("=="===t.op){if(co(t.value))return{unaryFilter:{field:uc(t.field),op:"IS_NAN"}};if(uo(t.value))return{unaryFilter:{field:uc(t.field),op:"IS_NULL"}}}else if("!="===t.op){if(co(t.value))return{unaryFilter:{field:uc(t.field),op:"IS_NOT_NAN"}};if(uo(t.value))return{unaryFilter:{field:uc(t.field),op:"IS_NOT_NULL"}}}return{fieldFilter:{field:uc(t.field),op:oc(t.op),value:t.value}}}(t):t instanceof Do?function(t){const e=t.getFilters().map((t=>lc(t)));return 1===e.length?e[0]:{compositeFilter:{op:ac(t.op),filters:e}}}(t):Hr()}function hc(t){const e=[];return t.fields.forEach((t=>e.push(t.canonicalString()))),{fieldPaths:e}}function dc(t){return t.length>=4&&"projects"===t.get(0)&&"databases"===t.get(2)}class fc{constructor(t,e,n,r,s=ps.min(),i=ps.min(),o=qi.EMPTY_BYTE_STRING,a=null){this.target=t,this.targetId=e,this.purpose=n,this.sequenceNumber=r,this.snapshotVersion=s,this.lastLimboFreeSnapshotVersion=i,this.resumeToken=o,this.expectedCount=a}withSequenceNumber(t){return new fc(this.target,this.targetId,this.purpose,t,this.snapshotVersion,this.lastLimboFreeSnapshotVersion,this.resumeToken,this.expectedCount)}withResumeToken(t,e){return new fc(this.target,this.targetId,this.purpose,this.sequenceNumber,e,this.lastLimboFreeSnapshotVersion,t,null)}withExpectedCount(t){return new fc(this.target,this.targetId,this.purpose,this.sequenceNumber,this.snapshotVersion,this.lastLimboFreeSnapshotVersion,this.resumeToken,t)}withLastLimboFreeSnapshotVersion(t){return new fc(this.target,this.targetId,this.purpose,this.sequenceNumber,this.snapshotVersion,t,this.resumeToken,this.expectedCount)}}class gc{constructor(t){this.ct=t}}function mc(t,e){const n=e.key,r={prefixPath:n.getCollectionPath().popLast().toArray(),collectionGroup:n.collectionGroup,documentId:n.path.lastSegment(),readTime:pc(e.readTime),hasCommittedMutations:e.hasCommittedMutations};if(e.isFoundDocument())r.document=function(t,e){return{name:Ku(t,e.key),fields:e.data.value.mapValue.fields,updateTime:Vu(t,e.version.toTimestamp()),createTime:Vu(t,e.createTime.toTimestamp())}}(t.ct,e);else if(e.isNoDocument())r.noDocument={path:n.path.toArray(),readTime:yc(e.version)};else{if(!e.isUnknownDocument())return Hr();r.unknownDocument={path:n.path.toArray(),version:yc(e.version)}}return r}function pc(t){const e=t.toTimestamp();return[e.seconds,e.nanoseconds]}function yc(t){const e=t.toTimestamp();return{seconds:e.seconds,nanoseconds:e.nanoseconds}}function wc(t){const e=new ms(t.seconds,t.nanoseconds);return ps.fromTimestamp(e)}function vc(t,e){const n=(e.baseMutations||[]).map((e=>tc(t.ct,e)));for(let t=0;ttc(t.ct,e))),s=ms.fromMillis(e.localWriteTimeMs);return new uu(e.batchId,s,n,r)}function bc(t){const e=wc(t.readTime),n=void 0!==t.lastLimboFreeSnapshotVersion?wc(t.lastLimboFreeSnapshotVersion):ps.min();let r;return r=function(t){return void 0!==t.documents}(t.query)?function(t){return Wr(1===t.documents.length),ia(ea(Hu(t.documents[0])))}(t.query):function(t){return ia(rc(t))}(t.query),new fc(r,t.targetId,"TargetPurposeListen",t.lastListenSequenceNumber,e,n,qi.fromBase64String(t.resumeToken))}function _c(t,e){const n=yc(e.snapshotVersion),r=yc(e.lastLimboFreeSnapshotVersion);let s;s=Wo(e.target)?ec(t.ct,e.target):nc(t.ct,e.target).ut;const i=e.resumeToken.toBase64();return{targetId:e.targetId,canonicalId:Qo(e.target),readTime:n,resumeToken:i,lastListenSequenceNumber:e.sequenceNumber,lastLimboFreeSnapshotVersion:r,query:s}}function Ic(t){const e=rc({parent:t.parent,structuredQuery:t.structuredQuery});return"LAST"===t.limitType?ua(e,e.limit,"L"):e}function Ec(t,e){return new lu(e.largestBatchId,tc(t.ct,e.overlayMutation))}function Tc(t,e){const n=e.path.lastSegment();return[t,Js(e.path.popLast()),n]}function Sc(t,e,n,r){return{indexId:t,uid:e,sequenceNumber:n,readTime:yc(r.readTime),documentKey:Js(r.documentKey.path),largestBatchId:r.largestBatchId}}class xc{getBundleMetadata(t,e){return Cc(t).get(e).next((t=>{if(t)return function(t){return{id:t.bundleId,createTime:wc(t.createTime),version:t.version}}(t)}))}saveBundleMetadata(t,e){return Cc(t).put(function(t){return{bundleId:t.id,createTime:yc(Uu(t.createTime)),version:t.version}}(e))}getNamedQuery(t,e){return Dc(t).get(e).next((t=>{if(t)return function(t){return{name:t.name,query:Ic(t.bundledQuery),readTime:wc(t.readTime)}}(t)}))}saveNamedQuery(t,e){return Dc(t).put(function(t){return{name:t.name,readTime:yc(Uu(t.readTime)),bundledQuery:t.bundledQuery}}(e))}}function Cc(t){return xi(t,"bundles")}function Dc(t){return xi(t,"namedQueries")}class Ac{constructor(t,e){this.serializer=t,this.userId=e}static lt(t,e){const n=e.uid||"";return new Ac(t,n)}getOverlay(t,e){return Nc(t).get(Tc(this.userId,e)).next((t=>t?Ec(this.serializer,t):null))}getOverlays(t,e){const n=Ia();return Ps.forEach(e,(e=>this.getOverlay(t,e).next((t=>{null!==t&&n.set(e,t)})))).next((()=>n))}saveOverlays(t,e,n){const r=[];return n.forEach(((n,s)=>{const i=new lu(e,s);r.push(this.ht(t,i))})),Ps.waitFor(r)}removeOverlaysForBatchId(t,e,n){const r=new Set;e.forEach((t=>r.add(Js(t.getCollectionPath()))));const s=[];return r.forEach((e=>{const r=IDBKeyRange.bound([this.userId,e,n],[this.userId,e,n+1],!1,!0);s.push(Nc(t).H("collectionPathOverlayIndex",r))})),Ps.waitFor(s)}getOverlaysForCollection(t,e,n){const r=Ia(),s=Js(e),i=IDBKeyRange.bound([this.userId,s,n],[this.userId,s,Number.POSITIVE_INFINITY],!0);return Nc(t).W("collectionPathOverlayIndex",i).next((t=>{for(const e of t){const t=Ec(this.serializer,e);r.set(t.getKey(),t)}return r}))}getOverlaysForCollectionGroup(t,e,n,r){const s=Ia();let i;const o=IDBKeyRange.bound([this.userId,e,n],[this.userId,e,Number.POSITIVE_INFINITY],!0);return Nc(t).Y({index:"collectionGroupOverlayIndex",range:o},((t,e,n)=>{const o=Ec(this.serializer,e);s.size()s))}ht(t,e){return Nc(t).put(function(t,e,n){const[r,s,i]=Tc(e,n.mutation.key);return{userId:e,collectionPath:s,documentId:i,collectionGroup:n.mutation.key.getCollectionGroup(),largestBatchId:n.largestBatchId,overlayMutation:Zu(t.ct,n.mutation)}}(this.serializer,this.userId,e))}}function Nc(t){return xi(t,"documentOverlays")}class kc{constructor(){}Pt(t,e){this.It(t,e),e.Tt()}It(t,e){if("nullValue"in t)this.Et(e,5);else if("booleanValue"in t)this.Et(e,10),e.dt(t.booleanValue?1:0);else if("integerValue"in t)this.Et(e,15),e.dt(zi(t.integerValue));else if("doubleValue"in t){const n=zi(t.doubleValue);isNaN(n)?this.Et(e,13):(this.Et(e,15),Ys(n)?e.dt(0):e.dt(n))}else if("timestampValue"in t){const n=t.timestampValue;this.Et(e,20),"string"==typeof n?e.At(n):(e.At(`${n.seconds||""}`),e.dt(n.nanos||0))}else if("stringValue"in t)this.Rt(t.stringValue,e),this.Vt(e);else if("bytesValue"in t)this.Et(e,30),e.ft(Gi(t.bytesValue)),this.Vt(e);else if("referenceValue"in t)this.gt(t.referenceValue,e);else if("geoPointValue"in t){const n=t.geoPointValue;this.Et(e,45),e.dt(n.latitude||0),e.dt(n.longitude||0)}else"mapValue"in t?fo(t)?this.Et(e,Number.MAX_SAFE_INTEGER):(this.yt(t.mapValue,e),this.Vt(e)):"arrayValue"in t?(this.wt(t.arrayValue,e),this.Vt(e)):Hr()}Rt(t,e){this.Et(e,25),this.St(t,e)}St(t,e){e.At(t)}yt(t,e){const n=t.fields||{};this.Et(e,55);for(const t of Object.keys(n))this.Rt(t,e),this.It(n[t],e)}wt(t,e){const n=t.values||[];this.Et(e,50);for(const t of n)this.It(t,e)}gt(t,e){this.Et(e,37),_s.fromName(t).path.forEach((t=>{this.Et(e,60),this.St(t,e)}))}Et(t,e){t.dt(e)}Vt(t){t.dt(2)}}function Rc(t){if(0===t)return 8;let e=0;return t>>4==0&&(e+=4,t<<=4),t>>6==0&&(e+=2,t<<=2),t>>7==0&&(e+=1),e}function Mc(t){const e=64-function(t){let e=0;for(let n=0;n<8;++n){const r=Rc(255&t[n]);if(e+=r,8!==r)break}return e}(t);return Math.ceil(e/8)}kc.bt=new kc;class Lc{constructor(){this.buffer=new Uint8Array(1024),this.position=0}Dt(t){const e=t[Symbol.iterator]();let n=e.next();for(;!n.done;)this.Ct(n.value),n=e.next();this.vt()}Ft(t){const e=t[Symbol.iterator]();let n=e.next();for(;!n.done;)this.Mt(n.value),n=e.next();this.xt()}Ot(t){for(const e of t){const t=e.charCodeAt(0);if(t<128)this.Ct(t);else if(t<2048)this.Ct(960|t>>>6),this.Ct(128|63&t);else if(e<"\ud800"||"\udbff">>12),this.Ct(128|63&t>>>6),this.Ct(128|63&t);else{const t=e.codePointAt(0);this.Ct(240|t>>>18),this.Ct(128|63&t>>>12),this.Ct(128|63&t>>>6),this.Ct(128|63&t)}}this.vt()}Nt(t){for(const e of t){const t=e.charCodeAt(0);if(t<128)this.Mt(t);else if(t<2048)this.Mt(960|t>>>6),this.Mt(128|63&t);else if(e<"\ud800"||"\udbff">>12),this.Mt(128|63&t>>>6),this.Mt(128|63&t);else{const t=e.codePointAt(0);this.Mt(240|t>>>18),this.Mt(128|63&t>>>12),this.Mt(128|63&t>>>6),this.Mt(128|63&t)}}this.xt()}Bt(t){const e=this.Lt(t),n=Mc(e);this.kt(1+n),this.buffer[this.position++]=255&n;for(let t=e.length-n;tbs.comparator(t.field,e.field))),this.collectionId=null!=t.collectionGroup?t.collectionGroup:t.path.lastSegment(),this.Zt=t.orderBy,this.Xt=[];for(const e of t.filters){const t=e;t.isInequality()?this.Yt=this.Yt.add(t):this.Xt.push(t)}}get en(){return this.Yt.size>1}tn(t){if(Wr(t.collectionGroup===this.collectionId),this.en)return!1;const e=Es(t);if(void 0!==e&&!this.nn(e))return!1;const n=Ts(t);let r=new Set,s=0,i=0;for(;s0){const t=this.Yt.getIterator().getNext();if(!r.has(t.field.canonicalString())){const e=n[s];if(!this.rn(t,e)||!this.sn(this.Zt[i++],e))return!1}++s}for(;s=this.Zt.length||!this.sn(this.Zt[i++],t))return!1}return!0}on(){if(this.en)return null;let t=new Mi(bs.comparator);const e=[];for(const n of this.Xt)if(!n.field.isKeyField())if("array-contains"===n.op||"array-contains-any"===n.op)e.push(new xs(n.field,2));else{if(t.has(n.field))continue;t=t.add(n.field),e.push(new xs(n.field,0))}for(const n of this.Zt)n.field.isKeyField()||t.has(n.field)||(t=t.add(n.field),e.push(new xs(n.field,"asc"===n.dir?0:1)));return new Is(Is.UNKNOWN_ID,this.collectionId,e,Ds.empty())}nn(t){for(const e of this.Xt)if(this.rn(e,t))return!0;return!1}rn(t,e){if(void 0===t||!t.field.isEqual(e.fieldPath))return!1;const n="array-contains"===t.op||"array-contains-any"===t.op;return 2===e.kind===n}sn(t,e){return!!t.field.isEqual(e.fieldPath)&&(0===e.kind&&"asc"===t.dir||1===e.kind&&"desc"===t.dir)}}function zc(t){var e,n;if(Wr(t instanceof Co||t instanceof Do),t instanceof Co){if(t instanceof zo){const r=(null===(n=null===(e=t.value.arrayValue)||void 0===e?void 0:e.values)||void 0===n?void 0:n.map((e=>Co.create(t.field,"==",e))))||[];return Do.create(r,"or")}return t}const r=t.filters.map((t=>zc(t)));return Do.create(r,t.op)}function Gc(t){if(0===t.getFilters().length)return[];const e=Qc(zc(t));return Wr($c(e)),jc(e)||Kc(e)?[e]:e.getFilters()}function jc(t){return t instanceof Co}function Kc(t){return t instanceof Do&&ko(t)}function $c(t){return jc(t)||Kc(t)||function(t){if(t instanceof Do&&No(t)){for(const e of t.getFilters())if(!jc(e)&&!Kc(e))return!1;return!0}return!1}(t)}function Qc(t){if(Wr(t instanceof Co||t instanceof Do),t instanceof Co)return t;if(1===t.filters.length)return Qc(t.filters[0]);const e=t.filters.map((t=>Qc(t)));let n=Do.create(e,t.op);return n=Yc(n),$c(n)?n:(Wr(n instanceof Do),Wr(Ao(n)),Wr(n.filters.length>1),n.filters.reduce(((t,e)=>Hc(t,e))))}function Hc(t,e){let n;return Wr(t instanceof Co||t instanceof Do),Wr(e instanceof Co||e instanceof Do),n=t instanceof Co?e instanceof Co?function(t,e){return Do.create([t,e],"and")}(t,e):Wc(t,e):e instanceof Co?Wc(e,t):function(t,e){if(Wr(t.filters.length>0&&e.filters.length>0),Ao(t)&&Ao(e))return Oo(t,e.getFilters());const n=No(t)?t:e,r=No(t)?e:t,s=n.filters.map((t=>Hc(t,r)));return Do.create(s,"or")}(t,e),Yc(n)}function Wc(t,e){if(Ao(e))return Oo(e,t.getFilters());{const n=e.filters.map((e=>Hc(t,e)));return Do.create(n,"or")}}function Yc(t){if(Wr(t instanceof Co||t instanceof Do),t instanceof Co)return t;const e=t.getFilters();if(1===e.length)return Yc(e[0]);if(Ro(t))return t;const n=e.map((t=>Yc(t))),r=[];return n.forEach((e=>{e instanceof Co?r.push(e):e instanceof Do&&(e.op===t.op?r.push(...e.filters):r.push(e))})),1===r.length?r[0]:Do.create(r,t.op)}class Xc{constructor(){this._n=new Jc}addToCollectionParentIndex(t,e){return this._n.add(e),Ps.resolve()}getCollectionParents(t,e){return Ps.resolve(this._n.getEntries(e))}addFieldIndex(t,e){return Ps.resolve()}deleteFieldIndex(t,e){return Ps.resolve()}deleteAllFieldIndexes(t){return Ps.resolve()}createTargetIndexes(t,e){return Ps.resolve()}getDocumentsMatchingTarget(t,e){return Ps.resolve(null)}getIndexType(t,e){return Ps.resolve(0)}getFieldIndexes(t,e){return Ps.resolve([])}getNextCollectionGroupToUpdate(t){return Ps.resolve(null)}getMinOffset(t,e){return Ps.resolve(ks.min())}getMinOffsetFromCollectionGroup(t,e){return Ps.resolve(ks.min())}updateCollectionGroup(t,e,n){return Ps.resolve()}updateIndexEntries(t,e){return Ps.resolve()}}class Jc{constructor(){this.index={}}add(t){const e=t.lastSegment(),n=t.popLast(),r=this.index[e]||new Mi(ws.comparator),s=!r.has(n);return this.index[e]=r.add(n),s}has(t){const e=t.lastSegment(),n=t.popLast(),r=this.index[e];return r&&r.has(n)}getEntries(t){return(this.index[t]||new Mi(ws.comparator)).toArray()}}const Zc=new Uint8Array(0);class tl{constructor(t,e){this.databaseId=e,this.an=new Jc,this.un=new pa((t=>Qo(t)),((t,e)=>Ho(t,e))),this.uid=t.uid||""}addToCollectionParentIndex(t,e){if(!this.an.has(e)){const n=e.lastSegment(),r=e.popLast();t.addOnCommittedListener((()=>{this.an.add(e)}));const s={collectionId:n,parent:Js(r)};return el(t).put(s)}return Ps.resolve()}getCollectionParents(t,e){const n=[],r=IDBKeyRange.bound([e,""],[gs(e),""],!1,!0);return el(t).W(r).next((t=>{for(const r of t){if(r.collectionId!==e)break;n.push(ei(r.parent))}return n}))}addFieldIndex(t,e){const n=rl(t),r=function(t){return{indexId:t.indexId,collectionGroup:t.collectionGroup,fields:t.fields.map((t=>[t.fieldPath.canonicalString(),t.kind]))}}(e);delete r.indexId;const s=n.add(r);if(e.indexState){const n=sl(t);return s.next((t=>{n.put(Sc(t,this.uid,e.indexState.sequenceNumber,e.indexState.offset))}))}return s.next()}deleteFieldIndex(t,e){const n=rl(t),r=sl(t),s=nl(t);return n.delete(e.indexId).next((()=>r.delete(IDBKeyRange.bound([e.indexId],[e.indexId+1],!1,!0)))).next((()=>s.delete(IDBKeyRange.bound([e.indexId],[e.indexId+1],!1,!0))))}deleteAllFieldIndexes(t){const e=rl(t),n=nl(t),r=sl(t);return e.H().next((()=>n.H())).next((()=>r.H()))}createTargetIndexes(t,e){return Ps.forEach(this.cn(e),(e=>this.getIndexType(t,e).next((n=>{if(0===n||1===n){const n=new Uc(e).on();if(null!=n)return this.addFieldIndex(t,n)}}))))}getDocumentsMatchingTarget(t,e){const n=nl(t);let r=!0;const s=new Map;return Ps.forEach(this.cn(e),(e=>this.ln(t,e).next((t=>{r&&(r=!!t),s.set(e,t)})))).next((()=>{if(r){let t=Ca();const r=[];return Ps.forEach(s,((s,i)=>{jr("IndexedDbIndexManager",`Using index ${function(t){return`id=${t.indexId}|cg=${t.collectionGroup}|f=${t.fields.map((t=>`${t.fieldPath}:${t.kind}`)).join(",")}`}(s)} to execute ${Qo(e)}`);const o=function(t,e){const n=Es(e);if(void 0===n)return null;for(const e of Yo(t,n.fieldPath))switch(e.op){case"array-contains-any":return e.value.arrayValue.values||[];case"array-contains":return[e.value]}return null}(i,s),a=function(t,e){const n=new Map;for(const r of Ts(e))for(const e of Yo(t,r.fieldPath))switch(e.op){case"==":case"in":n.set(r.fieldPath.canonicalString(),e.value);break;case"not-in":case"!=":return n.set(r.fieldPath.canonicalString(),e.value),Array.from(n.values())}return null}(i,s),u=function(t,e){const n=[];let r=!0;for(const s of Ts(e)){const e=0===s.kind?Xo(t,s.fieldPath,t.startAt):Jo(t,s.fieldPath,t.startAt);n.push(e.value),r&&(r=e.inclusive)}return new _o(n,r)}(i,s),c=function(t,e){const n=[];let r=!0;for(const s of Ts(e)){const e=0===s.kind?Jo(t,s.fieldPath,t.endAt):Xo(t,s.fieldPath,t.endAt);n.push(e.value),r&&(r=e.inclusive)}return new _o(n,r)}(i,s),l=this.hn(s,i,u),h=this.hn(s,i,c),d=this.Pn(s,i,a),f=this.In(s.indexId,o,l,u.inclusive,h,c.inclusive,d);return Ps.forEach(f,(s=>n.j(s,e.limit).next((e=>{e.forEach((e=>{const n=_s.fromSegments(e.documentKey);t.has(n)||(t=t.add(n),r.push(n))}))}))))})).next((()=>r))}return Ps.resolve(null)}))}cn(t){let e=this.un.get(t);return e||(e=0===t.filters.length?[t]:Gc(Do.create(t.filters,"and")).map((e=>$o(t.path,t.collectionGroup,t.orderBy,e.getFilters(),t.limit,t.startAt,t.endAt))),this.un.set(t,e),e)}In(t,e,n,r,s,i,o){const a=(null!=e?e.length:1)*Math.max(n.length,s.length),u=a/(null!=e?e.length:1),c=[];for(let l=0;lthis.En(t,a,e,!0)));c.push(...this.createRange(h,d,f))}return c}En(t,e,n,r){const s=new Vc(t,_s.empty(),e,n);return r?s:s.Jt()}dn(t,e,n,r){const s=new Vc(t,_s.empty(),e,n);return r?s.Jt():s}ln(t,e){const n=new Uc(e),r=null!=e.collectionGroup?e.collectionGroup:e.path.lastSegment();return this.getFieldIndexes(t,r).next((t=>{let e=null;for(const r of t)n.tn(r)&&(!e||r.fields.length>e.fields.length)&&(e=r);return e}))}getIndexType(t,e){let n=2;const r=this.cn(e);return Ps.forEach(r,(e=>this.ln(t,e).next((t=>{t?0!==n&&t.fields.lengthfunction(t){return null!==t.limit}(e)&&r.length>1&&2===n?1:n))}An(t,e){const n=new Fc;for(const r of Ts(t)){const t=e.data.field(r.fieldPath);if(null==t)return null;const s=n.Ht(r.kind);kc.bt.Pt(t,s)}return n.Wt()}Tn(t){const e=new Fc;return kc.bt.Pt(t,e.Ht(0)),e.Wt()}Rn(t,e){const n=new Fc;return kc.bt.Pt(io(this.databaseId,e),n.Ht(function(t){const e=Ts(t);return 0===e.length?0:e[e.length-1].kind}(t))),n.Wt()}Pn(t,e,n){if(null===n)return[];let r=[];r.push(new Fc);let s=0;for(const i of Ts(t)){const t=n[s++];for(const n of r)if(this.Vn(e,i.fieldPath)&&ao(t))r=this.mn(r,i,t);else{const e=n.Ht(i.kind);kc.bt.Pt(t,e)}}return this.fn(r)}hn(t,e,n){return this.Pn(t,e,n.position)}fn(t){const e=[];for(let n=0;nt instanceof Co&&t.field.isEqual(e)&&("in"===t.op||"not-in"===t.op)))}getFieldIndexes(t,e){const n=rl(t),r=sl(t);return(e?n.W("collectionGroupIndex",IDBKeyRange.bound(e,e)):n.W()).next((t=>{const e=[];return Ps.forEach(t,(t=>r.get([t.indexId,this.uid]).next((n=>{e.push(function(t,e){const n=e?new Ds(e.sequenceNumber,new ks(wc(e.readTime),new _s(ei(e.documentKey)),e.largestBatchId)):Ds.empty(),r=t.fields.map((([t,e])=>new xs(bs.fromServerFormat(t),e)));return new Is(t.indexId,t.collectionGroup,r,n)}(t,n))})))).next((()=>e))}))}getNextCollectionGroupToUpdate(t){return this.getFieldIndexes(t).next((t=>0===t.length?null:(t.sort(((t,e)=>{const n=t.indexState.sequenceNumber-e.indexState.sequenceNumber;return 0!==n?n:ds(t.collectionGroup,e.collectionGroup)})),t[0].collectionGroup)))}updateCollectionGroup(t,e,n){const r=rl(t),s=sl(t);return this.gn(t).next((t=>r.W("collectionGroupIndex",IDBKeyRange.bound(e,e)).next((e=>Ps.forEach(e,(e=>s.put(Sc(e.indexId,this.uid,t,n))))))))}updateIndexEntries(t,e){const n=new Map;return Ps.forEach(e,((e,r)=>{const s=n.get(e.collectionGroup);return(s?Ps.resolve(s):this.getFieldIndexes(t,e.collectionGroup)).next((s=>(n.set(e.collectionGroup,s),Ps.forEach(s,(n=>this.pn(t,e,n).next((e=>{const s=this.yn(r,n);return e.isEqual(s)?Ps.resolve():this.wn(t,r,n,e,s)})))))))}))}Sn(t,e,n,r){return nl(t).put({indexId:r.indexId,uid:this.uid,arrayValue:r.arrayValue,directionalValue:r.directionalValue,orderedDocumentKey:this.Rn(n,e.key),documentKey:e.key.path.toArray()})}bn(t,e,n,r){return nl(t).delete([r.indexId,this.uid,r.arrayValue,r.directionalValue,this.Rn(n,e.key),e.key.path.toArray()])}pn(t,e,n){const r=nl(t);let s=new Mi(qc);return r.Y({index:"documentKeyIndex",range:IDBKeyRange.only([n.indexId,this.uid,this.Rn(n,e)])},((t,r)=>{s=s.add(new Vc(n.indexId,e,r.arrayValue,r.directionalValue))})).next((()=>s))}yn(t,e){let n=new Mi(qc);const r=this.An(e,t);if(null==r)return n;const s=Es(e);if(null!=s){const i=t.data.field(s.fieldPath);if(ao(i))for(const s of i.arrayValue.values||[])n=n.add(new Vc(e.indexId,t.key,this.Tn(s),r))}else n=n.add(new Vc(e.indexId,t.key,Zc,r));return n}wn(t,e,n,r,s){jr("IndexedDbIndexManager","Updating index entries for document '%s'",e.key);const i=[];return function(t,e,n,r,s){const i=t.getIterator(),o=e.getIterator();let a=Oi(i),u=Oi(o);for(;a||u;){let t=!1,e=!1;if(a&&u){const r=n(a,u);r<0?e=!0:r>0&&(t=!0)}else null!=a?e=!0:t=!0;t?(r(u),u=Oi(o)):e?(s(a),a=Oi(i)):(a=Oi(i),u=Oi(o))}}(r,s,qc,(r=>{i.push(this.Sn(t,e,n,r))}),(r=>{i.push(this.bn(t,e,n,r))})),Ps.waitFor(i)}gn(t){let e=1;return sl(t).Y({index:"sequenceNumberIndex",reverse:!0,range:IDBKeyRange.upperBound([this.uid,Number.MAX_SAFE_INTEGER])},((t,n,r)=>{r.done(),e=n.sequenceNumber+1})).next((()=>e))}createRange(t,e,n){n=n.sort(((t,e)=>qc(t,e))).filter(((t,e,n)=>!e||0!==qc(t,n[e-1])));const r=[];r.push(t);for(const s of n){const n=qc(s,t),i=qc(s,e);if(0===n)r[0]=t.Jt();else if(n>0&&i<0)r.push(s),r.push(s.Jt());else if(i>0)break}r.push(e);const s=[];for(let t=0;t0}getMinOffsetFromCollectionGroup(t,e){return this.getFieldIndexes(t,e).next(il)}getMinOffset(t,e){return Ps.mapArray(this.cn(e),(e=>this.ln(t,e).next((t=>t||Hr())))).next(il)}}function el(t){return xi(t,"collectionParents")}function nl(t){return xi(t,"indexEntries")}function rl(t){return xi(t,"indexConfiguration")}function sl(t){return xi(t,"indexState")}function il(t){Wr(0!==t.length);let e=t[0].indexState.offset,n=e.largestBatchId;for(let r=1;r(a++,n.delete())));i.push(u.next((()=>{Wr(1===a)})));const c=[];for(const t of n.mutations){const r=si(e,t.key.path,n.batchId);i.push(s.delete(r)),c.push(t.key)}return Ps.waitFor(i).next((()=>c))}function cl(t){if(!t)return 0;let e;if(t.document)e=t.document;else if(t.unknownDocument)e=t.unknownDocument;else{if(!t.noDocument)throw Hr();e=t.noDocument}return JSON.stringify(e).length}al.DEFAULT_COLLECTION_PERCENTILE=10,al.DEFAULT_MAX_SEQUENCE_NUMBERS_TO_COLLECT=1e3,al.DEFAULT=new al(41943040,al.DEFAULT_COLLECTION_PERCENTILE,al.DEFAULT_MAX_SEQUENCE_NUMBERS_TO_COLLECT),al.DISABLED=new al(-1,0,0);class ll{constructor(t,e,n,r){this.userId=t,this.serializer=e,this.indexManager=n,this.referenceDelegate=r,this.Cn={}}static lt(t,e,n,r){Wr(""!==t.uid);const s=t.isAuthenticated()?t.uid:"";return new ll(s,e,n,r)}checkEmpty(t){let e=!0;const n=IDBKeyRange.bound([this.userId,Number.NEGATIVE_INFINITY],[this.userId,Number.POSITIVE_INFINITY]);return dl(t).Y({index:"userMutationsIndex",range:n},((t,n,r)=>{e=!1,r.done()})).next((()=>e))}addMutationBatch(t,e,n,r){const s=fl(t),i=dl(t);return i.add({}).next((o=>{Wr("number"==typeof o);const a=new uu(o,e,n,r),u=function(t,e,n){const r=n.baseMutations.map((e=>Zu(t.ct,e))),s=n.mutations.map((e=>Zu(t.ct,e)));return{userId:e,batchId:n.batchId,localWriteTimeMs:n.localWriteTime.toMillis(),baseMutations:r,mutations:s}}(this.serializer,this.userId,a),c=[];let l=new Mi(((t,e)=>ds(t.canonicalString(),e.canonicalString())));for(const t of r){const e=si(this.userId,t.key.path,o);l=l.add(t.key.path.popLast()),c.push(i.put(u)),c.push(s.put(e,ii))}return l.forEach((e=>{c.push(this.indexManager.addToCollectionParentIndex(t,e))})),t.addOnCommittedListener((()=>{this.Cn[o]=a.keys()})),Ps.waitFor(c).next((()=>a))}))}lookupMutationBatch(t,e){return dl(t).get(e).next((t=>t?(Wr(t.userId===this.userId),vc(this.serializer,t)):null))}vn(t,e){return this.Cn[e]?Ps.resolve(this.Cn[e]):this.lookupMutationBatch(t,e).next((t=>{if(t){const n=t.keys();return this.Cn[e]=n,n}return null}))}getNextMutationBatchAfterBatchId(t,e){const n=e+1,r=IDBKeyRange.lowerBound([this.userId,n]);let s=null;return dl(t).Y({index:"userMutationsIndex",range:r},((t,e,r)=>{e.userId===this.userId&&(Wr(e.batchId>=n),s=vc(this.serializer,e)),r.done()})).next((()=>s))}getHighestUnacknowledgedBatchId(t){const e=IDBKeyRange.upperBound([this.userId,Number.POSITIVE_INFINITY]);let n=-1;return dl(t).Y({index:"userMutationsIndex",range:e,reverse:!0},((t,e,r)=>{n=e.batchId,r.done()})).next((()=>n))}getAllMutationBatches(t){const e=IDBKeyRange.bound([this.userId,-1],[this.userId,Number.POSITIVE_INFINITY]);return dl(t).W("userMutationsIndex",e).next((t=>t.map((t=>vc(this.serializer,t)))))}getAllMutationBatchesAffectingDocumentKey(t,e){const n=ri(this.userId,e.path),r=IDBKeyRange.lowerBound(n),s=[];return fl(t).Y({range:r},((n,r,i)=>{const[o,a,u]=n,c=ei(a);if(o===this.userId&&e.path.isEqual(c))return dl(t).get(u).next((t=>{if(!t)throw Hr();Wr(t.userId===this.userId),s.push(vc(this.serializer,t))}));i.done()})).next((()=>s))}getAllMutationBatchesAffectingDocumentKeys(t,e){let n=new Mi(ds);const r=[];return e.forEach((e=>{const s=ri(this.userId,e.path),i=IDBKeyRange.lowerBound(s),o=fl(t).Y({range:i},((t,r,s)=>{const[i,o,a]=t,u=ei(o);i===this.userId&&e.path.isEqual(u)?n=n.add(a):s.done()}));r.push(o)})),Ps.waitFor(r).next((()=>this.Fn(t,n)))}getAllMutationBatchesAffectingQuery(t,e){const n=e.path,r=n.length+1,s=ri(this.userId,n),i=IDBKeyRange.lowerBound(s);let o=new Mi(ds);return fl(t).Y({range:i},((t,e,s)=>{const[i,a,u]=t,c=ei(a);i===this.userId&&n.isPrefixOf(c)?c.length===r&&(o=o.add(u)):s.done()})).next((()=>this.Fn(t,o)))}Fn(t,e){const n=[],r=[];return e.forEach((e=>{r.push(dl(t).get(e).next((t=>{if(null===t)throw Hr();Wr(t.userId===this.userId),n.push(vc(this.serializer,t))})))})),Ps.waitFor(r).next((()=>n))}removeMutationBatch(t,e){return ul(t.ae,this.userId,e).next((n=>(t.addOnCommittedListener((()=>{this.Mn(e.batchId)})),Ps.forEach(n,(e=>this.referenceDelegate.markPotentiallyOrphaned(t,e))))))}Mn(t){delete this.Cn[t]}performConsistencyCheck(t){return this.checkEmpty(t).next((e=>{if(!e)return Ps.resolve();const n=IDBKeyRange.lowerBound(function(t){return[t]}(this.userId)),r=[];return fl(t).Y({range:n},((t,e,n)=>{if(t[0]===this.userId){const e=ei(t[1]);r.push(e)}else n.done()})).next((()=>{Wr(0===r.length)}))}))}containsKey(t,e){return hl(t,this.userId,e)}xn(t){return gl(t).get(this.userId).next((t=>t||{userId:this.userId,lastAcknowledgedBatchId:-1,lastStreamToken:""}))}}function hl(t,e,n){const r=ri(e,n.path),s=r[1],i=IDBKeyRange.lowerBound(r);let o=!1;return fl(t).Y({range:i,J:!0},((t,n,r)=>{const[i,a,u]=t;i===e&&a===s&&(o=!0),r.done()})).next((()=>o))}function dl(t){return xi(t,"mutations")}function fl(t){return xi(t,"documentMutations")}function gl(t){return xi(t,"mutationQueues")}class ml{constructor(t){this.On=t}next(){return this.On+=2,this.On}static Nn(){return new ml(0)}static Bn(){return new ml(-1)}}class pl{constructor(t,e){this.referenceDelegate=t,this.serializer=e}allocateTargetId(t){return this.Ln(t).next((e=>{const n=new ml(e.highestTargetId);return e.highestTargetId=n.next(),this.kn(t,e).next((()=>e.highestTargetId))}))}getLastRemoteSnapshotVersion(t){return this.Ln(t).next((t=>ps.fromTimestamp(new ms(t.lastRemoteSnapshotVersion.seconds,t.lastRemoteSnapshotVersion.nanoseconds))))}getHighestSequenceNumber(t){return this.Ln(t).next((t=>t.highestListenSequenceNumber))}setTargetsMetadata(t,e,n){return this.Ln(t).next((r=>(r.highestListenSequenceNumber=e,n&&(r.lastRemoteSnapshotVersion=n.toTimestamp()),e>r.highestListenSequenceNumber&&(r.highestListenSequenceNumber=e),this.kn(t,r))))}addTargetData(t,e){return this.qn(t,e).next((()=>this.Ln(t).next((n=>(n.targetCount+=1,this.Qn(e,n),this.kn(t,n))))))}updateTargetData(t,e){return this.qn(t,e)}removeTargetData(t,e){return this.removeMatchingKeysForTargetId(t,e.targetId).next((()=>yl(t).delete(e.targetId))).next((()=>this.Ln(t))).next((e=>(Wr(e.targetCount>0),e.targetCount-=1,this.kn(t,e))))}removeTargets(t,e,n){let r=0;const s=[];return yl(t).Y(((i,o)=>{const a=bc(o);a.sequenceNumber<=e&&null===n.get(a.targetId)&&(r++,s.push(this.removeTargetData(t,a)))})).next((()=>Ps.waitFor(s))).next((()=>r))}forEachTarget(t,e){return yl(t).Y(((t,n)=>{const r=bc(n);e(r)}))}Ln(t){return wl(t).get("targetGlobalKey").next((t=>(Wr(null!==t),t)))}kn(t,e){return wl(t).put("targetGlobalKey",e)}qn(t,e){return yl(t).put(_c(this.serializer,e))}Qn(t,e){let n=!1;return t.targetId>e.highestTargetId&&(e.highestTargetId=t.targetId,n=!0),t.sequenceNumber>e.highestListenSequenceNumber&&(e.highestListenSequenceNumber=t.sequenceNumber,n=!0),n}getTargetCount(t){return this.Ln(t).next((t=>t.targetCount))}getTargetData(t,e){const n=Qo(e),r=IDBKeyRange.bound([n,Number.NEGATIVE_INFINITY],[n,Number.POSITIVE_INFINITY]);let s=null;return yl(t).Y({range:r,index:"queryTargetsIndex"},((t,n,r)=>{const i=bc(n);Ho(e,i.target)&&(s=i,r.done())})).next((()=>s))}addMatchingKeys(t,e,n){const r=[],s=vl(t);return e.forEach((e=>{const i=Js(e.path);r.push(s.put({targetId:n,path:i})),r.push(this.referenceDelegate.addReference(t,n,e))})),Ps.waitFor(r)}removeMatchingKeys(t,e,n){const r=vl(t);return Ps.forEach(e,(e=>{const s=Js(e.path);return Ps.waitFor([r.delete([n,s]),this.referenceDelegate.removeReference(t,n,e)])}))}removeMatchingKeysForTargetId(t,e){const n=vl(t),r=IDBKeyRange.bound([e],[e+1],!1,!0);return n.delete(r)}getMatchingKeysForTargetId(t,e){const n=IDBKeyRange.bound([e],[e+1],!1,!0),r=vl(t);let s=Ca();return r.Y({range:n,J:!0},((t,e,n)=>{const r=ei(t[1]),i=new _s(r);s=s.add(i)})).next((()=>s))}containsKey(t,e){const n=Js(e.path),r=IDBKeyRange.bound([n],[gs(n)],!1,!0);let s=0;return vl(t).Y({index:"documentTargetsIndex",J:!0,range:r},(([t,e],n,r)=>{0!==t&&(s++,r.done())})).next((()=>s>0))}_t(t,e){return yl(t).get(e).next((t=>t?bc(t):null))}}function yl(t){return xi(t,"targets")}function wl(t){return xi(t,"targetGlobal")}function vl(t){return xi(t,"targetDocuments")}function bl([t,e],[n,r]){const s=ds(t,n);return 0===s?ds(e,r):s}class _l{constructor(t){this.Kn=t,this.buffer=new Mi(bl),this.$n=0}Un(){return++this.$n}Wn(t){const e=[t,this.Un()];if(this.buffer.size{this.Gn=null;try{await this.localStore.collectGarbage(this.garbageCollector)}catch(t){Us(t)?jr("LruGarbageCollector","Ignoring IndexedDB error during garbage collection: ",t):await Os(t)}await this.zn(3e5)}))}}class El{constructor(t,e){this.jn=t,this.params=e}calculateTargetCount(t,e){return this.jn.Hn(t).next((t=>Math.floor(e/100*t)))}nthSequenceNumber(t,e){if(0===e)return Ps.resolve(Hs._e);const n=new _l(e);return this.jn.forEachTarget(t,(t=>n.Wn(t.sequenceNumber))).next((()=>this.jn.Jn(t,(t=>n.Wn(t))))).next((()=>n.maxValue))}removeTargets(t,e,n){return this.jn.removeTargets(t,e,n)}removeOrphanedDocuments(t,e){return this.jn.removeOrphanedDocuments(t,e)}collect(t,e){return-1===this.params.cacheSizeCollectionThreshold?(jr("LruGarbageCollector","Garbage collection skipped; disabled"),Ps.resolve(ol)):this.getCacheSize(t).next((n=>n(e>this.params.maximumSequenceNumbersToCollect?(jr("LruGarbageCollector",`Capping sequence numbers to collect down to the maximum of ${this.params.maximumSequenceNumbersToCollect} from ${e}`),r=this.params.maximumSequenceNumbersToCollect):r=e,i=Date.now(),this.nthSequenceNumber(t,r)))).next((r=>(n=r,o=Date.now(),this.removeTargets(t,n,e)))).next((e=>(s=e,a=Date.now(),this.removeOrphanedDocuments(t,n)))).next((t=>(u=Date.now(),zr()<=_.DEBUG&&jr("LruGarbageCollector",`LRU Garbage Collection\n\tCounted targets in ${i-c}ms\n\tDetermined least recently used ${r} in `+(o-i)+"ms\n"+`\tRemoved ${s} targets in `+(a-o)+"ms\n"+`\tRemoved ${t} documents in `+(u-a)+"ms\n"+`Total Duration: ${u-c}ms`),Ps.resolve({didRun:!0,sequenceNumbersCollected:r,targetsRemoved:s,documentsRemoved:t}))))}}function Tl(t,e){return new El(t,e)}class Sl{constructor(t,e){this.db=t,this.garbageCollector=Tl(this,e)}Hn(t){const e=this.Zn(t);return this.db.getTargetCache().getTargetCount(t).next((t=>e.next((e=>t+e))))}Zn(t){let e=0;return this.Jn(t,(t=>{e++})).next((()=>e))}forEachTarget(t,e){return this.db.getTargetCache().forEachTarget(t,e)}Jn(t,e){return this.Xn(t,((t,n)=>e(n)))}addReference(t,e,n){return xl(t,n)}removeReference(t,e,n){return xl(t,n)}removeTargets(t,e,n){return this.db.getTargetCache().removeTargets(t,e,n)}markPotentiallyOrphaned(t,e){return xl(t,e)}er(t,e){return function(t,e){let n=!1;return gl(t).Z((r=>hl(t,r,e).next((t=>(t&&(n=!0),Ps.resolve(!t)))))).next((()=>n))}(t,e)}removeOrphanedDocuments(t,e){const n=this.db.getRemoteDocumentCache().newChangeBuffer(),r=[];let s=0;return this.Xn(t,((i,o)=>{if(o<=e){const e=this.er(t,i).next((e=>{if(!e)return s++,n.getEntry(t,i).next((()=>(n.removeEntry(i,ps.min()),vl(t).delete(function(t){return[0,Js(t.path)]}(i)))))}));r.push(e)}})).next((()=>Ps.waitFor(r))).next((()=>n.apply(t))).next((()=>s))}removeTarget(t,e){const n=e.withSequenceNumber(t.currentSequenceNumber);return this.db.getTargetCache().updateTargetData(t,n)}updateLimboDocument(t,e){return xl(t,e)}Xn(t,e){const n=vl(t);let r,s=Hs._e;return n.Y({index:"documentTargetsIndex"},(([t,n],{path:i,sequenceNumber:o})=>{0===t?(s!==Hs._e&&e(new _s(ei(r)),s),s=o,r=i):s=Hs._e})).next((()=>{s!==Hs._e&&e(new _s(ei(r)),s)}))}getCacheSize(t){return this.db.getRemoteDocumentCache().getSize(t)}}function xl(t,e){return vl(t).put(function(t,e){return{targetId:0,path:Js(t.path),sequenceNumber:e}}(e,t.currentSequenceNumber))}class Cl{constructor(){this.changes=new pa((t=>t.toString()),((t,e)=>t.isEqual(e))),this.changesApplied=!1}addEntry(t){this.assertNotApplied(),this.changes.set(t.key,t)}removeEntry(t,e){this.assertNotApplied(),this.changes.set(t,bo.newInvalidDocument(t).setReadTime(e))}getEntry(t,e){this.assertNotApplied();const n=this.changes.get(e);return void 0!==n?Ps.resolve(n):this.getFromCache(t,e)}getEntries(t,e){return this.getAllFromCache(t,e)}apply(t){return this.assertNotApplied(),this.changesApplied=!0,this.applyChanges(t)}assertNotApplied(){}}class Dl{constructor(t){this.serializer=t}setIndexManager(t){this.indexManager=t}addEntry(t,e,n){return Rl(t).put(n)}removeEntry(t,e,n){return Rl(t).delete(function(t,e){const n=t.path.toArray();return[n.slice(0,n.length-2),n[n.length-2],pc(e),n[n.length-1]]}(e,n))}updateMetadata(t,e){return this.getMetadata(t).next((n=>(n.byteSize+=e,this.tr(t,n))))}getEntry(t,e){let n=bo.newInvalidDocument(e);return Rl(t).Y({index:"documentKeyIndex",range:IDBKeyRange.only(Ml(e))},((t,r)=>{n=this.nr(e,r)})).next((()=>n))}rr(t,e){let n={size:0,document:bo.newInvalidDocument(e)};return Rl(t).Y({index:"documentKeyIndex",range:IDBKeyRange.only(Ml(e))},((t,r)=>{n={document:this.nr(e,r),size:cl(r)}})).next((()=>n))}getEntries(t,e){let n=wa();return this.ir(t,e,((t,e)=>{const r=this.nr(t,e);n=n.insert(t,r)})).next((()=>n))}sr(t,e){let n=wa(),r=new Ni(_s.comparator);return this.ir(t,e,((t,e)=>{const s=this.nr(t,e);n=n.insert(t,s),r=r.insert(t,cl(e))})).next((()=>({documents:n,_r:r})))}ir(t,e,n){if(e.isEmpty())return Ps.resolve();let r=new Mi(Ol);e.forEach((t=>r=r.add(t)));const s=IDBKeyRange.bound(Ml(r.first()),Ml(r.last())),i=r.getIterator();let o=i.getNext();return Rl(t).Y({index:"documentKeyIndex",range:s},((t,e,r)=>{const s=_s.fromSegments([...e.prefixPath,e.collectionGroup,e.documentId]);for(;o&&Ol(o,s)<0;)n(o,null),o=i.getNext();o&&o.isEqual(s)&&(n(o,e),o=i.hasNext()?i.getNext():null),o?r.U(Ml(o)):r.done()})).next((()=>{for(;o;)n(o,null),o=i.hasNext()?i.getNext():null}))}getDocumentsMatchingQuery(t,e,n,r,s){const i=e.path,o=[i.popLast().toArray(),i.lastSegment(),pc(n.readTime),n.documentKey.path.isEmpty()?"":n.documentKey.path.lastSegment()],a=[i.popLast().toArray(),i.lastSegment(),[Number.MAX_SAFE_INTEGER,Number.MAX_SAFE_INTEGER],""];return Rl(t).W(IDBKeyRange.bound(o,a,!0)).next((t=>{null==s||s.incrementDocumentReadCount(t.length);let n=wa();for(const s of t){const t=this.nr(_s.fromSegments(s.prefixPath.concat(s.collectionGroup,s.documentId)),s);t.isFoundDocument()&&(da(e,t)||r.has(t.key))&&(n=n.insert(t.key,t))}return n}))}getAllFromCollectionGroup(t,e,n,r){let s=wa();const i=Ll(e,n),o=Ll(e,ks.max());return Rl(t).Y({index:"collectionGroupIndex",range:IDBKeyRange.bound(i,o,!0)},((t,e,n)=>{const i=this.nr(_s.fromSegments(e.prefixPath.concat(e.collectionGroup,e.documentId)),e);s=s.insert(i.key,i),s.size===r&&n.done()})).next((()=>s))}newChangeBuffer(t){return new Nl(this,!!t&&t.trackRemovals)}getSize(t){return this.getMetadata(t).next((t=>t.byteSize))}getMetadata(t){return kl(t).get("remoteDocumentGlobalKey").next((t=>(Wr(!!t),t)))}tr(t,e){return kl(t).put("remoteDocumentGlobalKey",e)}nr(t,e){if(e){const t=function(t,e){let n;if(e.document)n=Ju(t.ct,e.document,!!e.hasCommittedMutations);else if(e.noDocument){const t=_s.fromSegments(e.noDocument.path),r=wc(e.noDocument.readTime);n=bo.newNoDocument(t,r),e.hasCommittedMutations&&n.setHasCommittedMutations()}else{if(!e.unknownDocument)return Hr();{const t=_s.fromSegments(e.unknownDocument.path),r=wc(e.unknownDocument.version);n=bo.newUnknownDocument(t,r)}}return e.readTime&&n.setReadTime(function(t){const e=new ms(t[0],t[1]);return ps.fromTimestamp(e)}(e.readTime)),n}(this.serializer,e);if(!t.isNoDocument()||!t.version.isEqual(ps.min()))return t}return bo.newInvalidDocument(t)}}function Al(t){return new Dl(t)}class Nl extends Cl{constructor(t,e){super(),this.ar=t,this.trackRemovals=e,this.ur=new pa((t=>t.toString()),((t,e)=>t.isEqual(e)))}applyChanges(t){const e=[];let n=0,r=new Mi(((t,e)=>ds(t.canonicalString(),e.canonicalString())));return this.changes.forEach(((s,i)=>{const o=this.ur.get(s);if(e.push(this.ar.removeEntry(t,s,o.readTime)),i.isValidDocument()){const a=mc(this.ar.serializer,i);r=r.add(s.path.popLast());const u=cl(a);n+=u-o.size,e.push(this.ar.addEntry(t,s,a))}else if(n-=o.size,this.trackRemovals){const n=mc(this.ar.serializer,i.convertToNoDocument(ps.min()));e.push(this.ar.addEntry(t,s,n))}})),r.forEach((n=>{e.push(this.ar.indexManager.addToCollectionParentIndex(t,n))})),e.push(this.ar.updateMetadata(t,n)),Ps.waitFor(e)}getFromCache(t,e){return this.ar.rr(t,e).next((t=>(this.ur.set(e,{size:t.size,readTime:t.document.readTime}),t.document)))}getAllFromCache(t,e){return this.ar.sr(t,e).next((({documents:t,_r:e})=>(e.forEach(((e,n)=>{this.ur.set(e,{size:n,readTime:t.get(e).readTime})})),t)))}}function kl(t){return xi(t,"remoteDocumentGlobal")}function Rl(t){return xi(t,"remoteDocumentsV14")}function Ml(t){const e=t.path.toArray();return[e.slice(0,e.length-2),e[e.length-2],e[e.length-1]]}function Ll(t,e){const n=e.documentKey.path.toArray();return[t,pc(e.readTime),n.slice(0,n.length-2),n.length>0?n[n.length-1]:""]}function Ol(t,e){const n=t.path.toArray(),r=e.path.toArray();let s=0;for(let t=0;t(n=r,this.remoteDocumentCache.getEntry(t,e)))).next((t=>(null!==n&&Ja(n.mutation,t,Pi.empty(),ms.now()),t)))}getDocuments(t,e){return this.remoteDocumentCache.getEntries(t,e).next((e=>this.getLocalViewOfDocuments(t,e,Ca()).next((()=>e))))}getLocalViewOfDocuments(t,e,n=Ca()){const r=Ia();return this.populateOverlays(t,r,e).next((()=>this.computeViews(t,e,r,n).next((t=>{let e=ba();return t.forEach(((t,n)=>{e=e.insert(t,n.overlayedDocument)})),e}))))}getOverlayedDocuments(t,e){const n=Ia();return this.populateOverlays(t,n,e).next((()=>this.computeViews(t,e,n,Ca())))}populateOverlays(t,e,n){const r=[];return n.forEach((t=>{e.has(t)||r.push(t)})),this.documentOverlayCache.getOverlays(t,r).next((t=>{t.forEach(((t,n)=>{e.set(t,n)}))}))}computeViews(t,e,n,r){let s=wa();const i=Ta(),o=Ta();return e.forEach(((t,e)=>{const o=n.get(e.key);r.has(e.key)&&(void 0===o||o.mutation instanceof nu)?s=s.insert(e.key,e):void 0!==o?(i.set(e.key,o.mutation.getFieldMask()),Ja(o.mutation,e,o.mutation.getFieldMask(),ms.now())):i.set(e.key,Pi.empty())})),this.recalculateAndSaveOverlays(t,s).next((t=>(t.forEach(((t,e)=>i.set(t,e))),e.forEach(((t,e)=>{var n;return o.set(t,new Pl(e,null!==(n=i.get(t))&&void 0!==n?n:null))})),o)))}recalculateAndSaveOverlays(t,e){const n=Ta();let r=new Ni(((t,e)=>t-e)),s=Ca();return this.mutationQueue.getAllMutationBatchesAffectingDocumentKeys(t,e).next((t=>{for(const s of t)s.keys().forEach((t=>{const i=e.get(t);if(null===i)return;let o=n.get(t)||Pi.empty();o=s.applyToLocalView(i,o),n.set(t,o);const a=(r.get(s.batchId)||Ca()).add(t);r=r.insert(s.batchId,a)}))})).next((()=>{const i=[],o=r.getReverseIterator();for(;o.hasNext();){const r=o.getNext(),a=r.key,u=r.value,c=Ea();u.forEach((t=>{if(!s.has(t)){const r=Ya(e.get(t),n.get(t));null!==r&&c.set(t,r),s=s.add(t)}})),i.push(this.documentOverlayCache.saveOverlays(t,a,c))}return Ps.waitFor(i)})).next((()=>n))}recalculateAndSaveOverlaysForDocumentKeys(t,e){return this.remoteDocumentCache.getEntries(t,e).next((e=>this.recalculateAndSaveOverlays(t,e)))}getDocumentsMatchingQuery(t,e,n,r){return function(t){return _s.isDocumentKey(t.path)&&null===t.collectionGroup&&0===t.filters.length}(e)?this.getDocumentsMatchingDocumentQuery(t,e.path):ra(e)?this.getDocumentsMatchingCollectionGroupQuery(t,e,n,r):this.getDocumentsMatchingCollectionQuery(t,e,n,r)}getNextDocuments(t,e,n,r){return this.remoteDocumentCache.getAllFromCollectionGroup(t,e,n,r).next((s=>{const i=r-s.size>0?this.documentOverlayCache.getOverlaysForCollectionGroup(t,e,n.largestBatchId,r-s.size):Ps.resolve(Ia());let o=-1,a=s;return i.next((e=>Ps.forEach(e,((e,n)=>(o{a=a.insert(e,t)}))))).next((()=>this.populateOverlays(t,e,s))).next((()=>this.computeViews(t,a,e,Ca()))).next((t=>({batchId:o,changes:_a(t)})))))}))}getDocumentsMatchingDocumentQuery(t,e){return this.getDocument(t,new _s(e)).next((t=>{let e=ba();return t.isFoundDocument()&&(e=e.insert(t.key,t)),e}))}getDocumentsMatchingCollectionGroupQuery(t,e,n,r){const s=e.collectionGroup;let i=ba();return this.indexManager.getCollectionParents(t,s).next((o=>Ps.forEach(o,(o=>{const a=function(t,e){return new Zo(e,null,t.explicitOrderBy.slice(),t.filters.slice(),t.limit,t.limitType,t.startAt,t.endAt)}(e,o.child(s));return this.getDocumentsMatchingCollectionQuery(t,a,n,r).next((t=>{t.forEach(((t,e)=>{i=i.insert(t,e)}))}))})).next((()=>i))))}getDocumentsMatchingCollectionQuery(t,e,n,r){let s;return this.documentOverlayCache.getOverlaysForCollection(t,e.path,n.largestBatchId).next((i=>(s=i,this.remoteDocumentCache.getDocumentsMatchingQuery(t,e,n,s,r)))).next((t=>{s.forEach(((e,n)=>{const r=n.getKey();null===t.get(r)&&(t=t.insert(r,bo.newInvalidDocument(r)))}));let n=ba();return t.forEach(((t,r)=>{const i=s.get(t);void 0!==i&&Ja(i.mutation,r,Pi.empty(),ms.now()),da(e,r)&&(n=n.insert(t,r))})),n}))}}class Vl{constructor(t){this.serializer=t,this.cr=new Map,this.lr=new Map}getBundleMetadata(t,e){return Ps.resolve(this.cr.get(e))}saveBundleMetadata(t,e){return this.cr.set(e.id,function(t){return{id:t.id,version:t.version,createTime:Uu(t.createTime)}}(e)),Ps.resolve()}getNamedQuery(t,e){return Ps.resolve(this.lr.get(e))}saveNamedQuery(t,e){return this.lr.set(e.name,function(t){return{name:t.name,query:Ic(t.bundledQuery),readTime:Uu(t.readTime)}}(e)),Ps.resolve()}}class ql{constructor(){this.overlays=new Ni(_s.comparator),this.hr=new Map}getOverlay(t,e){return Ps.resolve(this.overlays.get(e))}getOverlays(t,e){const n=Ia();return Ps.forEach(e,(e=>this.getOverlay(t,e).next((t=>{null!==t&&n.set(e,t)})))).next((()=>n))}saveOverlays(t,e,n){return n.forEach(((n,r)=>{this.ht(t,e,r)})),Ps.resolve()}removeOverlaysForBatchId(t,e,n){const r=this.hr.get(n);return void 0!==r&&(r.forEach((t=>this.overlays=this.overlays.remove(t))),this.hr.delete(n)),Ps.resolve()}getOverlaysForCollection(t,e,n){const r=Ia(),s=e.length+1,i=new _s(e.child("")),o=this.overlays.getIteratorFrom(i);for(;o.hasNext();){const t=o.getNext().value,i=t.getKey();if(!e.isPrefixOf(i.path))break;i.path.length===s&&t.largestBatchId>n&&r.set(t.getKey(),t)}return Ps.resolve(r)}getOverlaysForCollectionGroup(t,e,n,r){let s=new Ni(((t,e)=>t-e));const i=this.overlays.getIterator();for(;i.hasNext();){const t=i.getNext().value;if(t.getKey().getCollectionGroup()===e&&t.largestBatchId>n){let e=s.get(t.largestBatchId);null===e&&(e=Ia(),s=s.insert(t.largestBatchId,e)),e.set(t.getKey(),t)}}const o=Ia(),a=s.getIterator();for(;a.hasNext()&&(a.getNext().value.forEach(((t,e)=>o.set(t,e))),!(o.size()>=r)););return Ps.resolve(o)}ht(t,e,n){const r=this.overlays.get(n.key);if(null!==r){const t=this.hr.get(r.largestBatchId).delete(n.key);this.hr.set(r.largestBatchId,t)}this.overlays=this.overlays.insert(n.key,new lu(e,n));let s=this.hr.get(e);void 0===s&&(s=Ca(),this.hr.set(e,s)),this.hr.set(e,s.add(n.key))}}class Bl{constructor(){this.Pr=new Mi(Ul.Ir),this.Tr=new Mi(Ul.Er)}isEmpty(){return this.Pr.isEmpty()}addReference(t,e){const n=new Ul(t,e);this.Pr=this.Pr.add(n),this.Tr=this.Tr.add(n)}dr(t,e){t.forEach((t=>this.addReference(t,e)))}removeReference(t,e){this.Ar(new Ul(t,e))}Rr(t,e){t.forEach((t=>this.removeReference(t,e)))}Vr(t){const e=new _s(new ws([])),n=new Ul(e,t),r=new Ul(e,t+1),s=[];return this.Tr.forEachInRange([n,r],(t=>{this.Ar(t),s.push(t.key)})),s}mr(){this.Pr.forEach((t=>this.Ar(t)))}Ar(t){this.Pr=this.Pr.delete(t),this.Tr=this.Tr.delete(t)}gr(t){const e=new _s(new ws([])),n=new Ul(e,t),r=new Ul(e,t+1);let s=Ca();return this.Tr.forEachInRange([n,r],(t=>{s=s.add(t.key)})),s}containsKey(t){const e=new Ul(t,0),n=this.Pr.firstAfterOrEqual(e);return null!==n&&t.isEqual(n.key)}}class Ul{constructor(t,e){this.key=t,this.pr=e}static Ir(t,e){return _s.comparator(t.key,e.key)||ds(t.pr,e.pr)}static Er(t,e){return ds(t.pr,e.pr)||_s.comparator(t.key,e.key)}}class zl{constructor(t,e){this.indexManager=t,this.referenceDelegate=e,this.mutationQueue=[],this.yr=1,this.wr=new Mi(Ul.Ir)}checkEmpty(t){return Ps.resolve(0===this.mutationQueue.length)}addMutationBatch(t,e,n,r){const s=this.yr;this.yr++,this.mutationQueue.length>0&&this.mutationQueue[this.mutationQueue.length-1];const i=new uu(s,e,n,r);this.mutationQueue.push(i);for(const e of r)this.wr=this.wr.add(new Ul(e.key,s)),this.indexManager.addToCollectionParentIndex(t,e.key.path.popLast());return Ps.resolve(i)}lookupMutationBatch(t,e){return Ps.resolve(this.Sr(e))}getNextMutationBatchAfterBatchId(t,e){const n=e+1,r=this.br(n),s=r<0?0:r;return Ps.resolve(this.mutationQueue.length>s?this.mutationQueue[s]:null)}getHighestUnacknowledgedBatchId(){return Ps.resolve(0===this.mutationQueue.length?-1:this.yr-1)}getAllMutationBatches(t){return Ps.resolve(this.mutationQueue.slice())}getAllMutationBatchesAffectingDocumentKey(t,e){const n=new Ul(e,0),r=new Ul(e,Number.POSITIVE_INFINITY),s=[];return this.wr.forEachInRange([n,r],(t=>{const e=this.Sr(t.pr);s.push(e)})),Ps.resolve(s)}getAllMutationBatchesAffectingDocumentKeys(t,e){let n=new Mi(ds);return e.forEach((t=>{const e=new Ul(t,0),r=new Ul(t,Number.POSITIVE_INFINITY);this.wr.forEachInRange([e,r],(t=>{n=n.add(t.pr)}))})),Ps.resolve(this.Dr(n))}getAllMutationBatchesAffectingQuery(t,e){const n=e.path,r=n.length+1;let s=n;_s.isDocumentKey(s)||(s=s.child(""));const i=new Ul(new _s(s),0);let o=new Mi(ds);return this.wr.forEachWhile((t=>{const e=t.key.path;return!!n.isPrefixOf(e)&&(e.length===r&&(o=o.add(t.pr)),!0)}),i),Ps.resolve(this.Dr(o))}Dr(t){const e=[];return t.forEach((t=>{const n=this.Sr(t);null!==n&&e.push(n)})),e}removeMutationBatch(t,e){Wr(0===this.Cr(e.batchId,"removed")),this.mutationQueue.shift();let n=this.wr;return Ps.forEach(e.mutations,(r=>{const s=new Ul(r.key,e.batchId);return n=n.delete(s),this.referenceDelegate.markPotentiallyOrphaned(t,r.key)})).next((()=>{this.wr=n}))}Mn(t){}containsKey(t,e){const n=new Ul(e,0),r=this.wr.firstAfterOrEqual(n);return Ps.resolve(e.isEqual(r&&r.key))}performConsistencyCheck(t){return this.mutationQueue.length,Ps.resolve()}Cr(t,e){return this.br(t)}br(t){return 0===this.mutationQueue.length?0:t-this.mutationQueue[0].batchId}Sr(t){const e=this.br(t);return e<0||e>=this.mutationQueue.length?null:this.mutationQueue[e]}}class Gl{constructor(t){this.vr=t,this.docs=new Ni(_s.comparator),this.size=0}setIndexManager(t){this.indexManager=t}addEntry(t,e){const n=e.key,r=this.docs.get(n),s=r?r.size:0,i=this.vr(e);return this.docs=this.docs.insert(n,{document:e.mutableCopy(),size:i}),this.size+=i-s,this.indexManager.addToCollectionParentIndex(t,n.path.popLast())}removeEntry(t){const e=this.docs.get(t);e&&(this.docs=this.docs.remove(t),this.size-=e.size)}getEntry(t,e){const n=this.docs.get(e);return Ps.resolve(n?n.document.mutableCopy():bo.newInvalidDocument(e))}getEntries(t,e){let n=wa();return e.forEach((t=>{const e=this.docs.get(t);n=n.insert(t,e?e.document.mutableCopy():bo.newInvalidDocument(t))})),Ps.resolve(n)}getDocumentsMatchingQuery(t,e,n,r){let s=wa();const i=e.path,o=new _s(i.child("")),a=this.docs.getIteratorFrom(o);for(;a.hasNext();){const{key:t,value:{document:o}}=a.getNext();if(!i.isPrefixOf(t.path))break;t.path.length>i.length+1||Rs(Ns(o),n)<=0||(r.has(o.key)||da(e,o))&&(s=s.insert(o.key,o.mutableCopy()))}return Ps.resolve(s)}getAllFromCollectionGroup(t,e,n,r){Hr()}Fr(t,e){return Ps.forEach(this.docs,(t=>e(t)))}newChangeBuffer(t){return new jl(this)}getSize(t){return Ps.resolve(this.size)}}class jl extends Cl{constructor(t){super(),this.ar=t}applyChanges(t){const e=[];return this.changes.forEach(((n,r)=>{r.isValidDocument()?e.push(this.ar.addEntry(t,r)):this.ar.removeEntry(n)})),Ps.waitFor(e)}getFromCache(t,e){return this.ar.getEntry(t,e)}getAllFromCache(t,e){return this.ar.getEntries(t,e)}}class Kl{constructor(t){this.persistence=t,this.Mr=new pa((t=>Qo(t)),Ho),this.lastRemoteSnapshotVersion=ps.min(),this.highestTargetId=0,this.Or=0,this.Nr=new Bl,this.targetCount=0,this.Br=ml.Nn()}forEachTarget(t,e){return this.Mr.forEach(((t,n)=>e(n))),Ps.resolve()}getLastRemoteSnapshotVersion(t){return Ps.resolve(this.lastRemoteSnapshotVersion)}getHighestSequenceNumber(t){return Ps.resolve(this.Or)}allocateTargetId(t){return this.highestTargetId=this.Br.next(),Ps.resolve(this.highestTargetId)}setTargetsMetadata(t,e,n){return n&&(this.lastRemoteSnapshotVersion=n),e>this.Or&&(this.Or=e),Ps.resolve()}qn(t){this.Mr.set(t.target,t);const e=t.targetId;e>this.highestTargetId&&(this.Br=new ml(e),this.highestTargetId=e),t.sequenceNumber>this.Or&&(this.Or=t.sequenceNumber)}addTargetData(t,e){return this.qn(e),this.targetCount+=1,Ps.resolve()}updateTargetData(t,e){return this.qn(e),Ps.resolve()}removeTargetData(t,e){return this.Mr.delete(e.target),this.Nr.Vr(e.targetId),this.targetCount-=1,Ps.resolve()}removeTargets(t,e,n){let r=0;const s=[];return this.Mr.forEach(((i,o)=>{o.sequenceNumber<=e&&null===n.get(o.targetId)&&(this.Mr.delete(i),s.push(this.removeMatchingKeysForTargetId(t,o.targetId)),r++)})),Ps.waitFor(s).next((()=>r))}getTargetCount(t){return Ps.resolve(this.targetCount)}getTargetData(t,e){const n=this.Mr.get(e)||null;return Ps.resolve(n)}addMatchingKeys(t,e,n){return this.Nr.dr(e,n),Ps.resolve()}removeMatchingKeys(t,e,n){this.Nr.Rr(e,n);const r=this.persistence.referenceDelegate,s=[];return r&&e.forEach((e=>{s.push(r.markPotentiallyOrphaned(t,e))})),Ps.waitFor(s)}removeMatchingKeysForTargetId(t,e){return this.Nr.Vr(e),Ps.resolve()}getMatchingKeysForTargetId(t,e){const n=this.Nr.gr(e);return Ps.resolve(n)}containsKey(t,e){return Ps.resolve(this.Nr.containsKey(e))}}class $l{constructor(t,e){this.Lr={},this.overlays={},this.kr=new Hs(0),this.qr=!1,this.qr=!0,this.referenceDelegate=t(this),this.Qr=new Kl(this),this.indexManager=new Xc,this.remoteDocumentCache=function(t){return new Gl(t)}((t=>this.referenceDelegate.Kr(t))),this.serializer=new gc(e),this.$r=new Vl(this.serializer)}start(){return Promise.resolve()}shutdown(){return this.qr=!1,Promise.resolve()}get started(){return this.qr}setDatabaseDeletedListener(){}setNetworkEnabled(){}getIndexManager(t){return this.indexManager}getDocumentOverlayCache(t){let e=this.overlays[t.toKey()];return e||(e=new ql,this.overlays[t.toKey()]=e),e}getMutationQueue(t,e){let n=this.Lr[t.toKey()];return n||(n=new zl(e,this.referenceDelegate),this.Lr[t.toKey()]=n),n}getTargetCache(){return this.Qr}getRemoteDocumentCache(){return this.remoteDocumentCache}getBundleCache(){return this.$r}runTransaction(t,e,n){jr("MemoryPersistence","Starting transaction:",t);const r=new Ql(this.kr.next());return this.referenceDelegate.Ur(),n(r).next((t=>this.referenceDelegate.Wr(r).next((()=>t)))).toPromise().then((t=>(r.raiseOnCommittedEvent(),t)))}Gr(t,e){return Ps.or(Object.values(this.Lr).map((n=>()=>n.containsKey(t,e))))}}class Ql extends Ls{constructor(t){super(),this.currentSequenceNumber=t}}class Hl{constructor(t){this.persistence=t,this.zr=new Bl,this.jr=null}static Hr(t){return new Hl(t)}get Jr(){if(this.jr)return this.jr;throw Hr()}addReference(t,e,n){return this.zr.addReference(n,e),this.Jr.delete(n.toString()),Ps.resolve()}removeReference(t,e,n){return this.zr.removeReference(n,e),this.Jr.add(n.toString()),Ps.resolve()}markPotentiallyOrphaned(t,e){return this.Jr.add(e.toString()),Ps.resolve()}removeTarget(t,e){this.zr.Vr(e.targetId).forEach((t=>this.Jr.add(t.toString())));const n=this.persistence.getTargetCache();return n.getMatchingKeysForTargetId(t,e.targetId).next((t=>{t.forEach((t=>this.Jr.add(t.toString())))})).next((()=>n.removeTargetData(t,e)))}Ur(){this.jr=new Set}Wr(t){const e=this.persistence.getRemoteDocumentCache().newChangeBuffer();return Ps.forEach(this.Jr,(n=>{const r=_s.fromPath(n);return this.Yr(t,r).next((t=>{t||e.removeEntry(r,ps.min())}))})).next((()=>(this.jr=null,e.apply(t))))}updateLimboDocument(t,e){return this.Yr(t,e).next((t=>{t?this.Jr.delete(e.toString()):this.Jr.add(e.toString())}))}Kr(t){return 0}Yr(t,e){return Ps.or([()=>Ps.resolve(this.zr.containsKey(e)),()=>this.persistence.getTargetCache().containsKey(t,e),()=>this.persistence.Gr(t,e)])}}class Wl{constructor(t,e){this.persistence=t,this.Zr=new pa((t=>Js(t.path)),((t,e)=>t.isEqual(e))),this.garbageCollector=Tl(this,e)}static Hr(t,e){return new Wl(t,e)}Ur(){}Wr(t){return Ps.resolve()}forEachTarget(t,e){return this.persistence.getTargetCache().forEachTarget(t,e)}Hn(t){const e=this.Zn(t);return this.persistence.getTargetCache().getTargetCount(t).next((t=>e.next((e=>t+e))))}Zn(t){let e=0;return this.Jn(t,(t=>{e++})).next((()=>e))}Jn(t,e){return Ps.forEach(this.Zr,((n,r)=>this.er(t,n,r).next((t=>t?Ps.resolve():e(r)))))}removeTargets(t,e,n){return this.persistence.getTargetCache().removeTargets(t,e,n)}removeOrphanedDocuments(t,e){let n=0;const r=this.persistence.getRemoteDocumentCache(),s=r.newChangeBuffer();return r.Fr(t,(r=>this.er(t,r,e).next((t=>{t||(n++,s.removeEntry(r,ps.min()))})))).next((()=>s.apply(t))).next((()=>n))}markPotentiallyOrphaned(t,e){return this.Zr.set(e,t.currentSequenceNumber),Ps.resolve()}removeTarget(t,e){const n=e.withSequenceNumber(t.currentSequenceNumber);return this.persistence.getTargetCache().updateTargetData(t,n)}addReference(t,e,n){return this.Zr.set(n,t.currentSequenceNumber),Ps.resolve()}removeReference(t,e,n){return this.Zr.set(n,t.currentSequenceNumber),Ps.resolve()}updateLimboDocument(t,e){return this.Zr.set(e,t.currentSequenceNumber),Ps.resolve()}Kr(t){let e=t.key.toString().length;return t.isFoundDocument()&&(e+=so(t.data.value)),e}er(t,e,n){return Ps.or([()=>this.persistence.Gr(t,e),()=>this.persistence.getTargetCache().containsKey(t,e),()=>{const t=this.Zr.get(e);return Ps.resolve(void 0!==t&&t>n)}])}getCacheSize(t){return this.persistence.getRemoteDocumentCache().getSize(t)}}class Yl{constructor(t){this.serializer=t}N(t,e,n,r){const s=new Fs("createOrUpgrade",e);n<1&&r>=1&&(function(t){t.createObjectStore("owner")}(t),function(t){t.createObjectStore("mutationQueues",{keyPath:"userId"}),t.createObjectStore("mutations",{keyPath:"batchId",autoIncrement:!0}).createIndex("userMutationsIndex",ni,{unique:!0}),t.createObjectStore("documentMutations")}(t),Xl(t),function(t){t.createObjectStore("remoteDocuments")}(t));let i=Ps.resolve();return n<3&&r>=3&&(0!==n&&(function(t){t.deleteObjectStore("targetDocuments"),t.deleteObjectStore("targets"),t.deleteObjectStore("targetGlobal")}(t),Xl(t)),i=i.next((()=>function(t){const e=t.store("targetGlobal"),n={highestTargetId:0,highestListenSequenceNumber:0,lastRemoteSnapshotVersion:ps.min().toTimestamp(),targetCount:0};return e.put("targetGlobalKey",n)}(s)))),n<4&&r>=4&&(0!==n&&(i=i.next((()=>function(t,e){return e.store("mutations").W().next((n=>{t.deleteObjectStore("mutations"),t.createObjectStore("mutations",{keyPath:"batchId",autoIncrement:!0}).createIndex("userMutationsIndex",ni,{unique:!0});const r=e.store("mutations"),s=n.map((t=>r.put(t)));return Ps.waitFor(s)}))}(t,s)))),i=i.next((()=>{!function(t){t.createObjectStore("clientMetadata",{keyPath:"clientId"})}(t)}))),n<5&&r>=5&&(i=i.next((()=>this.Xr(s)))),n<6&&r>=6&&(i=i.next((()=>(function(t){t.createObjectStore("remoteDocumentGlobal")}(t),this.ei(s))))),n<7&&r>=7&&(i=i.next((()=>this.ti(s)))),n<8&&r>=8&&(i=i.next((()=>this.ni(t,s)))),n<9&&r>=9&&(i=i.next((()=>{!function(t){t.objectStoreNames.contains("remoteDocumentChanges")&&t.deleteObjectStore("remoteDocumentChanges")}(t)}))),n<10&&r>=10&&(i=i.next((()=>this.ri(s)))),n<11&&r>=11&&(i=i.next((()=>{!function(t){t.createObjectStore("bundles",{keyPath:"bundleId"})}(t),function(t){t.createObjectStore("namedQueries",{keyPath:"name"})}(t)}))),n<12&&r>=12&&(i=i.next((()=>{!function(t){const e=t.createObjectStore("documentOverlays",{keyPath:yi});e.createIndex("collectionPathOverlayIndex",wi,{unique:!1}),e.createIndex("collectionGroupOverlayIndex",vi,{unique:!1})}(t)}))),n<13&&r>=13&&(i=i.next((()=>function(t){const e=t.createObjectStore("remoteDocumentsV14",{keyPath:oi});e.createIndex("documentKeyIndex",ai),e.createIndex("collectionGroupIndex",ui)}(t))).next((()=>this.ii(t,s))).next((()=>t.deleteObjectStore("remoteDocuments")))),n<14&&r>=14&&(i=i.next((()=>this.si(t,s)))),n<15&&r>=15&&(i=i.next((()=>function(t){t.createObjectStore("indexConfiguration",{keyPath:"indexId",autoIncrement:!0}).createIndex("collectionGroupIndex","collectionGroup",{unique:!1}),t.createObjectStore("indexState",{keyPath:fi}).createIndex("sequenceNumberIndex",gi,{unique:!1}),t.createObjectStore("indexEntries",{keyPath:mi}).createIndex("documentKeyIndex",pi,{unique:!1})}(t)))),i}ei(t){let e=0;return t.store("remoteDocuments").Y(((t,n)=>{e+=cl(n)})).next((()=>{const n={byteSize:e};return t.store("remoteDocumentGlobal").put("remoteDocumentGlobalKey",n)}))}Xr(t){const e=t.store("mutationQueues"),n=t.store("mutations");return e.W().next((e=>Ps.forEach(e,(e=>{const r=IDBKeyRange.bound([e.userId,-1],[e.userId,e.lastAcknowledgedBatchId]);return n.W("userMutationsIndex",r).next((n=>Ps.forEach(n,(n=>{Wr(n.userId===e.userId);const r=vc(this.serializer,n);return ul(t,e.userId,r).next((()=>{}))}))))}))))}ti(t){const e=t.store("targetDocuments"),n=t.store("remoteDocuments");return t.store("targetGlobal").get("targetGlobalKey").next((t=>{const r=[];return n.Y(((n,s)=>{const i=new ws(n),o=function(t){return[0,Js(t)]}(i);r.push(e.get(o).next((n=>n?Ps.resolve():(n=>e.put({targetId:0,path:Js(n),sequenceNumber:t.highestListenSequenceNumber}))(i))))})).next((()=>Ps.waitFor(r)))}))}ni(t,e){t.createObjectStore("collectionParents",{keyPath:di});const n=e.store("collectionParents"),r=new Jc,s=t=>{if(r.add(t)){const e=t.lastSegment(),r=t.popLast();return n.put({collectionId:e,parent:Js(r)})}};return e.store("remoteDocuments").Y({J:!0},((t,e)=>{const n=new ws(t);return s(n.popLast())})).next((()=>e.store("documentMutations").Y({J:!0},(([t,e,n],r)=>{const i=ei(e);return s(i.popLast())}))))}ri(t){const e=t.store("targets");return e.Y(((t,n)=>{const r=bc(n),s=_c(this.serializer,r);return e.put(s)}))}ii(t,e){const n=e.store("remoteDocuments"),r=[];return n.Y(((t,n)=>{const s=e.store("remoteDocumentsV14"),i=function(t){return t.document?new _s(ws.fromString(t.document.name).popFirst(5)):t.noDocument?_s.fromSegments(t.noDocument.path):t.unknownDocument?_s.fromSegments(t.unknownDocument.path):Hr()}(n).path.toArray(),o={prefixPath:i.slice(0,i.length-2),collectionGroup:i[i.length-2],documentId:i[i.length-1],readTime:n.readTime||[0,0],unknownDocument:n.unknownDocument,noDocument:n.noDocument,document:n.document,hasCommittedMutations:!!n.hasCommittedMutations};r.push(s.put(o))})).next((()=>Ps.waitFor(r)))}si(t,e){const n=e.store("mutations"),r=Al(this.serializer),s=new $l(Hl.Hr,this.serializer.ct);return n.W().next((t=>{const n=new Map;return t.forEach((t=>{var e;let r=null!==(e=n.get(t.userId))&&void 0!==e?e:Ca();vc(this.serializer,t).keys().forEach((t=>r=r.add(t))),n.set(t.userId,r)})),Ps.forEach(n,((t,n)=>{const i=new qr(n),o=Ac.lt(this.serializer,i),a=s.getIndexManager(i),u=ll.lt(i,this.serializer,a,s.referenceDelegate);return new Fl(r,u,o,a).recalculateAndSaveOverlaysForDocumentKeys(new Si(e,Hs._e),t).next()}))}))}}function Xl(t){t.createObjectStore("targetDocuments",{keyPath:li}).createIndex("documentTargetsIndex",hi,{unique:!0}),t.createObjectStore("targets",{keyPath:"targetId"}).createIndex("queryTargetsIndex",ci,{unique:!0}),t.createObjectStore("targetGlobal")}const Jl="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.";class Zl{constructor(t,e,n,r,s,i,o,a,u,c,l=15){if(this.allowTabSynchronization=t,this.persistenceKey=e,this.clientId=n,this.oi=s,this.window=i,this.document=o,this._i=u,this.ai=c,this.ui=l,this.kr=null,this.qr=!1,this.isPrimary=!1,this.networkEnabled=!0,this.ci=null,this.inForeground=!1,this.li=null,this.hi=null,this.Pi=Number.NEGATIVE_INFINITY,this.Ii=t=>Promise.resolve(),!Zl.D())throw new Zr(Jr.UNIMPLEMENTED,"This platform is either missing IndexedDB or is known to have an incomplete implementation. Offline persistence has been disabled.");this.referenceDelegate=new Sl(this,r),this.Ti=e+"main",this.serializer=new gc(a),this.Ei=new Vs(this.Ti,this.ui,new Yl(this.serializer)),this.Qr=new pl(this.referenceDelegate,this.serializer),this.remoteDocumentCache=Al(this.serializer),this.$r=new xc,this.window&&this.window.localStorage?this.di=this.window.localStorage:(this.di=null,!1===c&&Kr("IndexedDbPersistence","LocalStorage is unavailable. As a result, persistence may not work reliably. In particular enablePersistence() could fail immediately after refreshing the page."))}start(){return this.Ai().then((()=>{if(!this.isPrimary&&!this.allowTabSynchronization)throw new Zr(Jr.FAILED_PRECONDITION,Jl);return this.Ri(),this.Vi(),this.mi(),this.runTransaction("getHighestListenSequenceNumber","readonly",(t=>this.Qr.getHighestSequenceNumber(t)))})).then((t=>{this.kr=new Hs(t,this._i)})).then((()=>{this.qr=!0})).catch((t=>(this.Ei&&this.Ei.close(),Promise.reject(t))))}fi(t){return this.Ii=async e=>{if(this.started)return t(e)},t(this.isPrimary)}setDatabaseDeletedListener(t){this.Ei.L((async e=>{null===e.newVersion&&await t()}))}setNetworkEnabled(t){this.networkEnabled!==t&&(this.networkEnabled=t,this.oi.enqueueAndForget((async()=>{this.started&&await this.Ai()})))}Ai(){return this.runTransaction("updateClientMetadataAndTryBecomePrimary","readwrite",(t=>eh(t).put({clientId:this.clientId,updateTimeMs:Date.now(),networkEnabled:this.networkEnabled,inForeground:this.inForeground}).next((()=>{if(this.isPrimary)return this.gi(t).next((t=>{t||(this.isPrimary=!1,this.oi.enqueueRetryable((()=>this.Ii(!1))))}))})).next((()=>this.pi(t))).next((e=>this.isPrimary&&!e?this.yi(t).next((()=>!1)):!!e&&this.wi(t).next((()=>!0)))))).catch((t=>{if(Us(t))return jr("IndexedDbPersistence","Failed to extend owner lease: ",t),this.isPrimary;if(!this.allowTabSynchronization)throw t;return jr("IndexedDbPersistence","Releasing owner lease after error during lease refresh",t),!1})).then((t=>{this.isPrimary!==t&&this.oi.enqueueRetryable((()=>this.Ii(t))),this.isPrimary=t}))}gi(t){return th(t).get("owner").next((t=>Ps.resolve(this.Si(t))))}bi(t){return eh(t).delete(this.clientId)}async Di(){if(this.isPrimary&&!this.Ci(this.Pi,18e5)){this.Pi=Date.now();const t=await this.runTransaction("maybeGarbageCollectMultiClientState","readwrite-primary",(t=>{const e=xi(t,"clientMetadata");return e.W().next((t=>{const n=this.vi(t,18e5),r=t.filter((t=>-1===n.indexOf(t)));return Ps.forEach(r,(t=>e.delete(t.clientId))).next((()=>r))}))})).catch((()=>[]));if(this.di)for(const e of t)this.di.removeItem(this.Fi(e.clientId))}}mi(){this.hi=this.oi.enqueueAfterDelay("client_metadata_refresh",4e3,(()=>this.Ai().then((()=>this.Di())).then((()=>this.mi()))))}Si(t){return!!t&&t.ownerId===this.clientId}pi(t){return this.ai?Ps.resolve(!0):th(t).get("owner").next((e=>{if(null!==e&&this.Ci(e.leaseTimestampMs,5e3)&&!this.Mi(e.ownerId)){if(this.Si(e)&&this.networkEnabled)return!0;if(!this.Si(e)){if(!e.allowTabSynchronization)throw new Zr(Jr.FAILED_PRECONDITION,Jl);return!1}}return!(!this.networkEnabled||!this.inForeground)||eh(t).W().next((t=>void 0===this.vi(t,5e3).find((t=>{if(this.clientId!==t.clientId){const e=!this.networkEnabled&&t.networkEnabled,n=!this.inForeground&&t.inForeground,r=this.networkEnabled===t.networkEnabled;if(e||n&&r)return!0}return!1}))))})).next((t=>(this.isPrimary!==t&&jr("IndexedDbPersistence",`Client ${t?"is":"is not"} eligible for a primary lease.`),t)))}async shutdown(){this.qr=!1,this.xi(),this.hi&&(this.hi.cancel(),this.hi=null),this.Oi(),this.Ni(),await this.Ei.runTransaction("shutdown","readwrite",["owner","clientMetadata"],(t=>{const e=new Si(t,Hs._e);return this.yi(e).next((()=>this.bi(e)))})),this.Ei.close(),this.Bi()}vi(t,e){return t.filter((t=>this.Ci(t.updateTimeMs,e)&&!this.Mi(t.clientId)))}Li(){return this.runTransaction("getActiveClients","readonly",(t=>eh(t).W().next((t=>this.vi(t,18e5).map((t=>t.clientId))))))}get started(){return this.qr}getMutationQueue(t,e){return ll.lt(t,this.serializer,e,this.referenceDelegate)}getTargetCache(){return this.Qr}getRemoteDocumentCache(){return this.remoteDocumentCache}getIndexManager(t){return new tl(t,this.serializer.ct.databaseId)}getDocumentOverlayCache(t){return Ac.lt(this.serializer,t)}getBundleCache(){return this.$r}runTransaction(t,e,n){jr("IndexedDbPersistence","Starting transaction:",t);const r="readonly"===e?"readonly":"readwrite",s=function(t){return 15===t?Ti:14===t?Ei:13===t?Ii:12===t?_i:11===t?bi:void Hr()}(this.ui);let i;return this.Ei.runTransaction(t,r,s,(r=>(i=new Si(r,this.kr?this.kr.next():Hs._e),"readwrite-primary"===e?this.gi(i).next((t=>!!t||this.pi(i))).next((e=>{if(!e)throw Kr(`Failed to obtain primary lease for action '${t}'.`),this.isPrimary=!1,this.oi.enqueueRetryable((()=>this.Ii(!1))),new Zr(Jr.FAILED_PRECONDITION,Ms);return n(i)})).next((t=>this.wi(i).next((()=>t)))):this.ki(i).next((()=>n(i)))))).then((t=>(i.raiseOnCommittedEvent(),t)))}ki(t){return th(t).get("owner").next((t=>{if(null!==t&&this.Ci(t.leaseTimestampMs,5e3)&&!this.Mi(t.ownerId)&&!this.Si(t)&&!(this.ai||this.allowTabSynchronization&&t.allowTabSynchronization))throw new Zr(Jr.FAILED_PRECONDITION,Jl)}))}wi(t){const e={ownerId:this.clientId,allowTabSynchronization:this.allowTabSynchronization,leaseTimestampMs:Date.now()};return th(t).put("owner",e)}static D(){return Vs.D()}yi(t){const e=th(t);return e.get("owner").next((t=>this.Si(t)?(jr("IndexedDbPersistence","Releasing primary lease."),e.delete("owner")):Ps.resolve()))}Ci(t,e){const n=Date.now();return!(tn&&(Kr(`Detected an update time that is in the future: ${t} > ${n}`),1))}Ri(){null!==this.document&&"function"==typeof this.document.addEventListener&&(this.li=()=>{this.oi.enqueueAndForget((()=>(this.inForeground="visible"===this.document.visibilityState,this.Ai())))},this.document.addEventListener("visibilitychange",this.li),this.inForeground="visible"===this.document.visibilityState)}Oi(){this.li&&(this.document.removeEventListener("visibilitychange",this.li),this.li=null)}Vi(){var t;"function"==typeof(null===(t=this.window)||void 0===t?void 0:t.addEventListener)&&(this.ci=()=>{this.xi();const t=/(?:Version|Mobile)\/1[456]/;f()&&(navigator.appVersion.match(t)||navigator.userAgent.match(t))&&this.oi.enterRestrictedMode(!0),this.oi.enqueueAndForget((()=>this.shutdown()))},this.window.addEventListener("pagehide",this.ci))}Ni(){this.ci&&(this.window.removeEventListener("pagehide",this.ci),this.ci=null)}Mi(t){var e;try{const n=null!==(null===(e=this.di)||void 0===e?void 0:e.getItem(this.Fi(t)));return jr("IndexedDbPersistence",`Client '${t}' ${n?"is":"is not"} zombied in LocalStorage`),n}catch(t){return Kr("IndexedDbPersistence","Failed to get zombied client id.",t),!1}}xi(){if(this.di)try{this.di.setItem(this.Fi(this.clientId),String(Date.now()))}catch(t){Kr("Failed to set zombie client id.",t)}}Bi(){if(this.di)try{this.di.removeItem(this.Fi(this.clientId))}catch(t){}}Fi(t){return`firestore_zombie_${this.persistenceKey}_${t}`}}function th(t){return xi(t,"owner")}function eh(t){return xi(t,"clientMetadata")}function nh(t,e){let n=t.projectId;return t.isDefaultDatabase||(n+="."+t.database),"firestore/"+e+"/"+n+"/"}class rh{constructor(t,e,n,r){this.targetId=t,this.fromCache=e,this.qi=n,this.Qi=r}static Ki(t,e){let n=Ca(),r=Ca();for(const t of e.docChanges)switch(t.type){case 0:n=n.add(t.doc.key);break;case 1:r=r.add(t.doc.key)}return new rh(t,e.fromCache,n,r)}}class sh{constructor(){this._documentReadCount=0}get documentReadCount(){return this._documentReadCount}incrementDocumentReadCount(t){this._documentReadCount+=t}}class ih{constructor(){this.$i=!1,this.Ui=!1,this.Wi=100,this.Gi=f()?8:Vs.v(d())>0?6:4}initialize(t,e){this.zi=t,this.indexManager=e,this.$i=!0}getDocumentsMatchingQuery(t,e,n,r){const s={result:null};return this.ji(t,e).next((t=>{s.result=t})).next((()=>{if(!s.result)return this.Hi(t,e,r,n).next((t=>{s.result=t}))})).next((()=>{if(s.result)return;const n=new sh;return this.Ji(t,e,n).next((r=>{if(s.result=r,this.Ui)return this.Yi(t,e,n,r.size)}))})).next((()=>s.result))}Yi(t,e,n,r){return n.documentReadCountthis.Gi*r?(zr()<=_.DEBUG&&jr("QueryEngine","The SDK decides to create cache indexes for query:",ha(e),"as using cache indexes may help improve performance."),this.indexManager.createTargetIndexes(t,ia(e))):Ps.resolve())}ji(t,e){if(na(e))return Ps.resolve(null);let n=ia(e);return this.indexManager.getIndexType(t,n).next((r=>0===r?null:(null!==e.limit&&1===r&&(e=ua(e,null,"F"),n=ia(e)),this.indexManager.getDocumentsMatchingTarget(t,n).next((r=>{const s=Ca(...r);return this.zi.getDocuments(t,s).next((r=>this.indexManager.getMinOffset(t,n).next((n=>{const i=this.Zi(e,r);return this.Xi(e,i,s,n.readTime)?this.ji(t,ua(e,null,"F")):this.es(t,i,e,n)}))))})))))}Hi(t,e,n,r){return na(e)||r.isEqual(ps.min())?Ps.resolve(null):this.zi.getDocuments(t,n).next((s=>{const i=this.Zi(e,s);return this.Xi(e,i,n,r)?Ps.resolve(null):(zr()<=_.DEBUG&&jr("QueryEngine","Re-using previous result from %s to execute query: %s",r.toString(),ha(e)),this.es(t,i,e,As(r,-1)).next((t=>t)))}))}Zi(t,e){let n=new Mi(ga(t));return e.forEach(((e,r)=>{da(t,r)&&(n=n.add(r))})),n}Xi(t,e,n,r){if(null===t.limit)return!1;if(n.size!==e.size)return!0;const s="F"===t.limitType?e.last():e.first();return!!s&&(s.hasPendingWrites||s.version.compareTo(r)>0)}Ji(t,e,n){return zr()<=_.DEBUG&&jr("QueryEngine","Using full collection scan to execute query:",ha(e)),this.zi.getDocumentsMatchingQuery(t,e,ks.min(),n)}es(t,e,n,r){return this.zi.getDocumentsMatchingQuery(t,n,r).next((t=>(e.forEach((e=>{t=t.insert(e.key,e)})),t)))}}class oh{constructor(t,e,n,r){this.persistence=t,this.ts=e,this.serializer=r,this.ns=new Ni(ds),this.rs=new pa((t=>Qo(t)),Ho),this.ss=new Map,this.os=t.getRemoteDocumentCache(),this.Qr=t.getTargetCache(),this.$r=t.getBundleCache(),this._s(n)}_s(t){this.documentOverlayCache=this.persistence.getDocumentOverlayCache(t),this.indexManager=this.persistence.getIndexManager(t),this.mutationQueue=this.persistence.getMutationQueue(t,this.indexManager),this.localDocuments=new Fl(this.os,this.mutationQueue,this.documentOverlayCache,this.indexManager),this.os.setIndexManager(this.indexManager),this.ts.initialize(this.localDocuments,this.indexManager)}collectGarbage(t){return this.persistence.runTransaction("Collect garbage","readwrite-primary",(e=>t.collect(e,this.ns)))}}function ah(t,e,n,r){return new oh(t,e,n,r)}async function uh(t,e){const n=Xr(t);return await n.persistence.runTransaction("Handle user change","readonly",(t=>{let r;return n.mutationQueue.getAllMutationBatches(t).next((s=>(r=s,n._s(e),n.mutationQueue.getAllMutationBatches(t)))).next((e=>{const s=[],i=[];let o=Ca();for(const t of r){s.push(t.batchId);for(const e of t.mutations)o=o.add(e.key)}for(const t of e){i.push(t.batchId);for(const e of t.mutations)o=o.add(e.key)}return n.localDocuments.getDocuments(t,o).next((t=>({us:t,removedBatchIds:s,addedBatchIds:i})))}))}))}function ch(t){const e=Xr(t);return e.persistence.runTransaction("Get last remote snapshot version","readonly",(t=>e.Qr.getLastRemoteSnapshotVersion(t)))}function lh(t,e,n){let r=Ca(),s=Ca();return n.forEach((t=>r=r.add(t))),e.getEntries(t,r).next((t=>{let r=wa();return n.forEach(((n,i)=>{const o=t.get(n);i.isFoundDocument()!==o.isFoundDocument()&&(s=s.add(n)),i.isNoDocument()&&i.version.isEqual(ps.min())?(e.removeEntry(n,i.readTime),r=r.insert(n,i)):!o.isValidDocument()||i.version.compareTo(o.version)>0||0===i.version.compareTo(o.version)&&o.hasPendingWrites?(e.addEntry(i),r=r.insert(n,i)):jr("LocalStore","Ignoring outdated watch update for ",n,". Current version:",o.version," Watch version:",i.version)})),{cs:r,ls:s}}))}function hh(t,e){const n=Xr(t);return n.persistence.runTransaction("Get next mutation batch","readonly",(t=>(void 0===e&&(e=-1),n.mutationQueue.getNextMutationBatchAfterBatchId(t,e))))}function dh(t,e){const n=Xr(t);return n.persistence.runTransaction("Allocate target","readwrite",(t=>{let r;return n.Qr.getTargetData(t,e).next((s=>s?(r=s,Ps.resolve(r)):n.Qr.allocateTargetId(t).next((s=>(r=new fc(e,s,"TargetPurposeListen",t.currentSequenceNumber),n.Qr.addTargetData(t,r).next((()=>r)))))))})).then((t=>{const r=n.ns.get(t.targetId);return(null===r||t.snapshotVersion.compareTo(r.snapshotVersion)>0)&&(n.ns=n.ns.insert(t.targetId,t),n.rs.set(e,t.targetId)),t}))}async function fh(t,e,n){const r=Xr(t),s=r.ns.get(e),i=n?"readwrite":"readwrite-primary";try{n||await r.persistence.runTransaction("Release target",i,(t=>r.persistence.referenceDelegate.removeTarget(t,s)))}catch(t){if(!Us(t))throw t;jr("LocalStore",`Failed to update sequence numbers for target ${e}: ${t}`)}r.ns=r.ns.remove(e),r.rs.delete(s.target)}function gh(t,e,n){const r=Xr(t);let s=ps.min(),i=Ca();return r.persistence.runTransaction("Execute query","readwrite",(t=>function(t,e,n){const r=Xr(t),s=r.rs.get(n);return void 0!==s?Ps.resolve(r.ns.get(s)):r.Qr.getTargetData(e,n)}(r,t,ia(e)).next((e=>{if(e)return s=e.lastLimboFreeSnapshotVersion,r.Qr.getMatchingKeysForTargetId(t,e.targetId).next((t=>{i=t}))})).next((()=>r.ts.getDocumentsMatchingQuery(t,e,n?s:ps.min(),n?i:Ca()))).next((t=>(yh(r,fa(e),t),{documents:t,hs:i})))))}function mh(t,e){const n=Xr(t),r=Xr(n.Qr),s=n.ns.get(e);return s?Promise.resolve(s.target):n.persistence.runTransaction("Get target data","readonly",(t=>r._t(t,e).next((t=>t?t.target:null))))}function ph(t,e){const n=Xr(t),r=n.ss.get(e)||ps.min();return n.persistence.runTransaction("Get new document changes","readonly",(t=>n.os.getAllFromCollectionGroup(t,e,As(r,-1),Number.MAX_SAFE_INTEGER))).then((t=>(yh(n,e,t),t)))}function yh(t,e,n){let r=t.ss.get(e)||ps.min();n.forEach(((t,e)=>{e.readTime.compareTo(r)>0&&(r=e.readTime)})),t.ss.set(e,r)}async function wh(t,e,n=Ca()){const r=await dh(t,ia(Ic(e.bundledQuery))),s=Xr(t);return s.persistence.runTransaction("Save named query","readwrite",(t=>{const i=Uu(e.readTime);if(r.snapshotVersion.compareTo(i)>=0)return s.$r.saveNamedQuery(t,e);const o=r.withResumeToken(qi.EMPTY_BYTE_STRING,i);return s.ns=s.ns.insert(o.targetId,o),s.Qr.updateTargetData(t,o).next((()=>s.Qr.removeMatchingKeysForTargetId(t,r.targetId))).next((()=>s.Qr.addMatchingKeys(t,n,r.targetId))).next((()=>s.$r.saveNamedQuery(t,e)))}))}function vh(t,e){return`firestore_clients_${t}_${e}`}function bh(t,e,n){let r=`firestore_mutations_${t}_${n}`;return e.isAuthenticated()&&(r+=`_${e.uid}`),r}function _h(t,e){return`firestore_targets_${t}_${e}`}class Ih{constructor(t,e,n,r){this.user=t,this.batchId=e,this.state=n,this.error=r}static Es(t,e,n){const r=JSON.parse(n);let s,i="object"==typeof r&&-1!==["pending","acknowledged","rejected"].indexOf(r.state)&&(void 0===r.error||"object"==typeof r.error);return i&&r.error&&(i="string"==typeof r.error.message&&"string"==typeof r.error.code,i&&(s=new Zr(r.error.code,r.error.message))),i?new Ih(t,e,r.state,s):(Kr("SharedClientState",`Failed to parse mutation state for ID '${e}': ${n}`),null)}ds(){const t={state:this.state,updateTimeMs:Date.now()};return this.error&&(t.error={code:this.error.code,message:this.error.message}),JSON.stringify(t)}}class Eh{constructor(t,e,n){this.targetId=t,this.state=e,this.error=n}static Es(t,e){const n=JSON.parse(e);let r,s="object"==typeof n&&-1!==["not-current","current","rejected"].indexOf(n.state)&&(void 0===n.error||"object"==typeof n.error);return s&&n.error&&(s="string"==typeof n.error.message&&"string"==typeof n.error.code,s&&(r=new Zr(n.error.code,n.error.message))),s?new Eh(t,n.state,r):(Kr("SharedClientState",`Failed to parse target state for ID '${t}': ${e}`),null)}ds(){const t={state:this.state,updateTimeMs:Date.now()};return this.error&&(t.error={code:this.error.code,message:this.error.message}),JSON.stringify(t)}}class Th{constructor(t,e){this.clientId=t,this.activeTargetIds=e}static Es(t,e){const n=JSON.parse(e);let r="object"==typeof n&&n.activeTargetIds instanceof Array,s=Aa();for(let t=0;r&&tthis.shutdown())),this.started=!0}writeSequenceNumber(t){this.setItem(this.Ss,JSON.stringify(t))}getAllActiveQueryTargets(){return this.Ns(this.ps)}isActiveQueryTarget(t){let e=!1;return this.ps.forEach(((n,r)=>{r.activeTargetIds.has(t)&&(e=!0)})),e}addPendingMutation(t){this.Bs(t,"pending")}updateMutationState(t,e,n){this.Bs(t,e,n),this.Ls(t)}addLocalQueryTarget(t){let e="not-current";if(this.isActiveQueryTarget(t)){const n=this.storage.getItem(_h(this.persistenceKey,t));if(n){const r=Eh.Es(t,n);r&&(e=r.state)}}return this.ks.As(t),this.Ms(),e}removeLocalQueryTarget(t){this.ks.Rs(t),this.Ms()}isLocalQueryTarget(t){return this.ks.activeTargetIds.has(t)}clearQueryState(t){this.removeItem(_h(this.persistenceKey,t))}updateQueryState(t,e,n){this.qs(t,e,n)}handleUserChange(t,e,n){e.forEach((t=>{this.Ls(t)})),this.currentUser=t,n.forEach((t=>{this.addPendingMutation(t)}))}setOnlineState(t){this.Qs(t)}notifyBundleLoaded(t){this.Ks(t)}shutdown(){this.started&&(this.window.removeEventListener("storage",this.fs),this.removeItem(this.ws),this.started=!1)}getItem(t){const e=this.storage.getItem(t);return jr("SharedClientState","READ",t,e),e}setItem(t,e){jr("SharedClientState","SET",t,e),this.storage.setItem(t,e)}removeItem(t){jr("SharedClientState","REMOVE",t),this.storage.removeItem(t)}gs(t){const e=t;if(e.storageArea===this.storage){if(jr("SharedClientState","EVENT",e.key,e.newValue),e.key===this.ws)return void Kr("Received WebStorage notification for local change. Another client might have garbage-collected our state");this.oi.enqueueRetryable((async()=>{if(this.started){if(null!==e.key)if(this.bs.test(e.key)){if(null==e.newValue){const t=this.$s(e.key);return this.Us(t,null)}{const t=this.Ws(e.key,e.newValue);if(t)return this.Us(t.clientId,t)}}else if(this.Ds.test(e.key)){if(null!==e.newValue){const t=this.Gs(e.key,e.newValue);if(t)return this.zs(t)}}else if(this.Cs.test(e.key)){if(null!==e.newValue){const t=this.js(e.key,e.newValue);if(t)return this.Hs(t)}}else if(e.key===this.vs){if(null!==e.newValue){const t=this.xs(e.newValue);if(t)return this.Os(t)}}else if(e.key===this.Ss){const t=function(t){let e=Hs._e;if(null!=t)try{const n=JSON.parse(t);Wr("number"==typeof n),e=n}catch(t){Kr("SharedClientState","Failed to read sequence number from WebStorage",t)}return e}(e.newValue);t!==Hs._e&&this.sequenceNumberHandler(t)}else if(e.key===this.Fs){const t=this.Js(e.newValue);await Promise.all(t.map((t=>this.syncEngine.Ys(t))))}}else this.ys.push(e)}))}}get ks(){return this.ps.get(this.Vs)}Ms(){this.setItem(this.ws,this.ks.ds())}Bs(t,e,n){const r=new Ih(this.currentUser,t,e,n),s=bh(this.persistenceKey,this.currentUser,t);this.setItem(s,r.ds())}Ls(t){const e=bh(this.persistenceKey,this.currentUser,t);this.removeItem(e)}Qs(t){const e={clientId:this.Vs,onlineState:t};this.storage.setItem(this.vs,JSON.stringify(e))}qs(t,e,n){const r=_h(this.persistenceKey,t),s=new Eh(t,e,n);this.setItem(r,s.ds())}Ks(t){const e=JSON.stringify(Array.from(t));this.setItem(this.Fs,e)}$s(t){const e=this.bs.exec(t);return e?e[1]:null}Ws(t,e){const n=this.$s(t);return Th.Es(n,e)}Gs(t,e){const n=this.Ds.exec(t),r=Number(n[1]),s=void 0!==n[2]?n[2]:null;return Ih.Es(new qr(s),r,e)}js(t,e){const n=this.Cs.exec(t),r=Number(n[1]);return Eh.Es(r,e)}xs(t){return Sh.Es(t)}Js(t){return JSON.parse(t)}async zs(t){if(t.user.uid===this.currentUser.uid)return this.syncEngine.Zs(t.batchId,t.state,t.error);jr("SharedClientState",`Ignoring mutation for non-active user ${t.user.uid}`)}Hs(t){return this.syncEngine.Xs(t.targetId,t.state,t.error)}Us(t,e){const n=e?this.ps.insert(t,e):this.ps.remove(t),r=this.Ns(this.ps),s=this.Ns(n),i=[],o=[];return s.forEach((t=>{r.has(t)||i.push(t)})),r.forEach((t=>{s.has(t)||o.push(t)})),this.syncEngine.eo(i,o).then((()=>{this.ps=n}))}Os(t){this.ps.get(t.clientId)&&this.onlineStateHandler(t.onlineState)}Ns(t){let e=Aa();return t.forEach(((t,n)=>{e=e.unionWith(n.activeTargetIds)})),e}}class Dh{constructor(){this.no=new xh,this.ro={},this.onlineStateHandler=null,this.sequenceNumberHandler=null}addPendingMutation(t){}updateMutationState(t,e,n){}addLocalQueryTarget(t){return this.no.As(t),this.ro[t]||"not-current"}updateQueryState(t,e,n){this.ro[t]=e}removeLocalQueryTarget(t){this.no.Rs(t)}isLocalQueryTarget(t){return this.no.activeTargetIds.has(t)}clearQueryState(t){delete this.ro[t]}getAllActiveQueryTargets(){return this.no.activeTargetIds}isActiveQueryTarget(t){return this.no.activeTargetIds.has(t)}start(){return this.no=new xh,Promise.resolve()}handleUserChange(t,e,n){}setOnlineState(t){}shutdown(){}writeSequenceNumber(t){}notifyBundleLoaded(t){}}class Ah{io(t){}shutdown(){}}class Nh{constructor(){this.so=()=>this.oo(),this._o=()=>this.ao(),this.uo=[],this.co()}io(t){this.uo.push(t)}shutdown(){window.removeEventListener("online",this.so),window.removeEventListener("offline",this._o)}co(){window.addEventListener("online",this.so),window.addEventListener("offline",this._o)}oo(){jr("ConnectivityMonitor","Network connectivity changed: AVAILABLE");for(const t of this.uo)t(0)}ao(){jr("ConnectivityMonitor","Network connectivity changed: UNAVAILABLE");for(const t of this.uo)t(1)}static D(){return"undefined"!=typeof window&&void 0!==window.addEventListener&&void 0!==window.removeEventListener}}let kh=null;function Rh(){return null===kh?kh=268435456+Math.round(2147483648*Math.random()):kh++,"0x"+kh.toString(16)}const Mh={BatchGetDocuments:"batchGet",Commit:"commit",RunQuery:"runQuery",RunAggregationQuery:"runAggregationQuery"};class Lh{constructor(t){this.lo=t.lo,this.ho=t.ho}Po(t){this.Io=t}To(t){this.Eo=t}onMessage(t){this.Ao=t}close(){this.ho()}send(t){this.lo(t)}Ro(){this.Io()}Vo(t){this.Eo(t)}mo(t){this.Ao(t)}}const Oh="WebChannelConnection";class Ph extends class{constructor(t){this.databaseInfo=t,this.databaseId=t.databaseId;const e=t.ssl?"https":"http",n=encodeURIComponent(this.databaseId.projectId),r=encodeURIComponent(this.databaseId.database);this.fo=e+"://"+t.host,this.po=`projects/${n}/databases/${r}`,this.yo="(default)"===this.databaseId.database?`project_id=${n}`:`project_id=${n}&database_id=${r}`}get wo(){return!1}So(t,e,n,r,s){const i=Rh(),o=this.bo(t,e.toUriEncodedString());jr("RestConnection",`Sending RPC '${t}' ${i}:`,o,n);const a={"google-cloud-resource-prefix":this.po,"x-goog-request-params":this.yo};return this.Do(a,r,s),this.Co(t,o,a,n).then((e=>(jr("RestConnection",`Received RPC '${t}' ${i}: `,e),e)),(e=>{throw $r("RestConnection",`RPC '${t}' ${i} failed with error: `,e,"url: ",o,"request:",n),e}))}vo(t,e,n,r,s,i){return this.So(t,e,n,r,s)}Do(t,e,n){t["X-Goog-Api-Client"]="gl-js/ fire/"+Br,t["Content-Type"]="text/plain",this.databaseInfo.appId&&(t["X-Firebase-GMPID"]=this.databaseInfo.appId),e&&e.headers.forEach(((e,n)=>t[n]=e)),n&&n.headers.forEach(((e,n)=>t[n]=e))}bo(t,e){const n=Mh[t];return`${this.fo}/v1/${e}:${n}`}terminate(){}}{constructor(t){super(t),this.forceLongPolling=t.forceLongPolling,this.autoDetectLongPolling=t.autoDetectLongPolling,this.useFetchStreams=t.useFetchStreams,this.longPollingOptions=t.longPollingOptions}Co(t,e,n,r){const s=Rh();return new Promise(((i,o)=>{const a=new Or;a.setWithCredentials(!0),a.listenOnce(Rr.COMPLETE,(()=>{try{switch(a.getLastErrorCode()){case kr.NO_ERROR:const e=a.getResponseJson();jr(Oh,`XHR for RPC '${t}' ${s} received:`,JSON.stringify(e)),i(e);break;case kr.TIMEOUT:jr(Oh,`RPC '${t}' ${s} timed out`),o(new Zr(Jr.DEADLINE_EXCEEDED,"Request time out"));break;case kr.HTTP_ERROR:const n=a.getStatus();if(jr(Oh,`RPC '${t}' ${s} failed with status:`,n,"response text:",a.getResponseText()),n>0){let t=a.getResponseJson();Array.isArray(t)&&(t=t[0]);const e=null==t?void 0:t.error;if(e&&e.status&&e.message){const t=function(t){const e=t.toLowerCase().replace(/_/g,"-");return Object.values(Jr).indexOf(e)>=0?e:Jr.UNKNOWN}(e.status);o(new Zr(t,e.message))}else o(new Zr(Jr.UNKNOWN,"Server responded with status "+a.getStatus()))}else o(new Zr(Jr.UNAVAILABLE,"Connection failed."));break;default:Hr()}}finally{jr(Oh,`RPC '${t}' ${s} completed.`)}}));const u=JSON.stringify(r);jr(Oh,`RPC '${t}' ${s} sending request:`,r),a.send(e,"POST",u,n,15)}))}Fo(t,e,n){const r=Rh(),s=[this.fo,"/","google.firestore.v1.Firestore","/",t,"/channel"],i=new ar,o=oe(),a={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},u=this.longPollingOptions.timeoutSeconds;void 0!==u&&(a.longPollingTimeout=Math.round(1e3*u)),this.useFetchStreams&&(a.useFetchStreams=!0),this.Do(a.initMessageHeaders,e,n),a.encodeInitMessageHeaders=!0;const c=s.join("");jr(Oh,`Creating RPC '${t}' stream ${r}: ${c}`,a);const l=i.createWebChannel(c,a);let h=!1,d=!1;const f=new Lh({lo:e=>{d?jr(Oh,`Not sending because RPC '${t}' stream ${r} is closed:`,e):(h||(jr(Oh,`Opening RPC '${t}' stream ${r} transport.`),l.open(),h=!0),jr(Oh,`RPC '${t}' stream ${r} sending:`,e),l.send(e))},ho:()=>l.close()}),g=(t,e,n)=>{t.listen(e,(t=>{try{n(t)}catch(t){setTimeout((()=>{throw t}),0)}}))};return g(l,Lr.EventType.OPEN,(()=>{d||jr(Oh,`RPC '${t}' stream ${r} transport opened.`)})),g(l,Lr.EventType.CLOSE,(()=>{d||(d=!0,jr(Oh,`RPC '${t}' stream ${r} transport closed`),f.Vo())})),g(l,Lr.EventType.ERROR,(e=>{d||(d=!0,$r(Oh,`RPC '${t}' stream ${r} transport errored:`,e),f.Vo(new Zr(Jr.UNAVAILABLE,"The operation could not be completed")))})),g(l,Lr.EventType.MESSAGE,(e=>{var n;if(!d){const s=e.data[0];Wr(!!s);const i=s,o=i.error||(null===(n=i[0])||void 0===n?void 0:n.error);if(o){jr(Oh,`RPC '${t}' stream ${r} received error:`,o);const e=o.status;let n=function(t){const e=fu[t];if(void 0!==e)return pu(e)}(e),s=o.message;void 0===n&&(n=Jr.INTERNAL,s="Unknown error status: "+e+" with message "+o.message),d=!0,f.Vo(new Zr(n,s)),l.close()}else jr(Oh,`RPC '${t}' stream ${r} received:`,s),f.mo(s)}})),g(o,Mr.STAT_EVENT,(e=>{10===e.stat?jr(Oh,`RPC '${t}' stream ${r} detected buffering proxy`):11===e.stat&&jr(Oh,`RPC '${t}' stream ${r} detected no buffering proxy`)})),setTimeout((()=>{f.Ro()}),0),f}}function Fh(){return"undefined"!=typeof window?window:null}function Vh(){return"undefined"!=typeof document?document:null}function qh(t){return new Pu(t,!0)}class Bh{constructor(t,e,n=1e3,r=1.5,s=6e4){this.oi=t,this.timerId=e,this.Mo=n,this.xo=r,this.Oo=s,this.No=0,this.Bo=null,this.Lo=Date.now(),this.reset()}reset(){this.No=0}ko(){this.No=this.Oo}qo(t){this.cancel();const e=Math.floor(this.No+this.Qo()),n=Math.max(0,Date.now()-this.Lo),r=Math.max(0,e-n);r>0&&jr("ExponentialBackoff",`Backing off for ${r} ms (base delay: ${this.No} ms, delay with jitter: ${e} ms, last attempt: ${n} ms ago)`),this.Bo=this.oi.enqueueAfterDelay(this.timerId,r,(()=>(this.Lo=Date.now(),t()))),this.No*=this.xo,this.Nothis.Oo&&(this.No=this.Oo)}Ko(){null!==this.Bo&&(this.Bo.skipDelay(),this.Bo=null)}cancel(){null!==this.Bo&&(this.Bo.cancel(),this.Bo=null)}Qo(){return(Math.random()-.5)*this.No}}class Uh{constructor(t,e,n,r,s,i,o,a){this.oi=t,this.$o=n,this.Uo=r,this.connection=s,this.authCredentialsProvider=i,this.appCheckCredentialsProvider=o,this.listener=a,this.state=0,this.Wo=0,this.Go=null,this.zo=null,this.stream=null,this.jo=new Bh(t,e)}Ho(){return 1===this.state||5===this.state||this.Jo()}Jo(){return 2===this.state||3===this.state}start(){4!==this.state?this.auth():this.Yo()}async stop(){this.Ho()&&await this.close(0)}Zo(){this.state=0,this.jo.reset()}Xo(){this.Jo()&&null===this.Go&&(this.Go=this.oi.enqueueAfterDelay(this.$o,6e4,(()=>this.e_())))}t_(t){this.n_(),this.stream.send(t)}async e_(){if(this.Jo())return this.close(0)}n_(){this.Go&&(this.Go.cancel(),this.Go=null)}r_(){this.zo&&(this.zo.cancel(),this.zo=null)}async close(t,e){this.n_(),this.r_(),this.jo.cancel(),this.Wo++,4!==t?this.jo.reset():e&&e.code===Jr.RESOURCE_EXHAUSTED?(Kr(e.toString()),Kr("Using maximum backoff delay to prevent overloading the backend."),this.jo.ko()):e&&e.code===Jr.UNAUTHENTICATED&&3!==this.state&&(this.authCredentialsProvider.invalidateToken(),this.appCheckCredentialsProvider.invalidateToken()),null!==this.stream&&(this.i_(),this.stream.close(),this.stream=null),this.state=t,await this.listener.To(e)}i_(){}auth(){this.state=1;const t=this.s_(this.Wo),e=this.Wo;Promise.all([this.authCredentialsProvider.getToken(),this.appCheckCredentialsProvider.getToken()]).then((([t,n])=>{this.Wo===e&&this.o_(t,n)}),(e=>{t((()=>{const t=new Zr(Jr.UNKNOWN,"Fetching auth token failed: "+e.message);return this.__(t)}))}))}o_(t,e){const n=this.s_(this.Wo);this.stream=this.a_(t,e),this.stream.Po((()=>{n((()=>(this.state=2,this.zo=this.oi.enqueueAfterDelay(this.Uo,1e4,(()=>(this.Jo()&&(this.state=3),Promise.resolve()))),this.listener.Po())))})),this.stream.To((t=>{n((()=>this.__(t)))})),this.stream.onMessage((t=>{n((()=>this.onMessage(t)))}))}Yo(){this.state=5,this.jo.qo((async()=>{this.state=0,this.start()}))}__(t){return jr("PersistentStream",`close with error: ${t}`),this.stream=null,this.close(4,t)}s_(t){return e=>{this.oi.enqueueAndForget((()=>this.Wo===t?e():(jr("PersistentStream","stream callback skipped by getCloseGuardedDispatcher."),Promise.resolve())))}}}class zh extends Uh{constructor(t,e,n,r,s,i){super(t,"listen_stream_connection_backoff","listen_stream_idle","health_check_timeout",e,n,r,i),this.serializer=s}a_(t,e){return this.connection.Fo("Listen",t,e)}onMessage(t){this.jo.reset();const e=function(t,e){let n;if("targetChange"in e){e.targetChange;const r=function(t){return"NO_CHANGE"===t?0:"ADD"===t?1:"REMOVE"===t?2:"CURRENT"===t?3:"RESET"===t?4:Hr()}(e.targetChange.targetChangeType||"NO_CHANGE"),s=e.targetChange.targetIds||[],i=function(t,e){return t.useProto3Json?(Wr(void 0===e||"string"==typeof e),qi.fromBase64String(e||"")):(Wr(void 0===e||e instanceof Uint8Array),qi.fromUint8Array(e||new Uint8Array))}(t,e.targetChange.resumeToken),o=e.targetChange.cause,a=o&&function(t){const e=void 0===t.code?Jr.UNKNOWN:pu(t.code);return new Zr(e,t.message||"")}(o);n=new Du(r,s,i,a||null)}else if("documentChange"in e){e.documentChange;const r=e.documentChange;r.document,r.document.name,r.document.updateTime;const s=$u(t,r.document.name),i=Uu(r.document.updateTime),o=r.document.createTime?Uu(r.document.createTime):ps.min(),a=new wo({mapValue:{fields:r.document.fields}}),u=bo.newFoundDocument(s,i,o,a),c=r.targetIds||[],l=r.removedTargetIds||[];n=new xu(c,l,u.key,u)}else if("documentDelete"in e){e.documentDelete;const r=e.documentDelete;r.document;const s=$u(t,r.document),i=r.readTime?Uu(r.readTime):ps.min(),o=bo.newNoDocument(s,i),a=r.removedTargetIds||[];n=new xu([],a,o.key,o)}else if("documentRemove"in e){e.documentRemove;const r=e.documentRemove;r.document;const s=$u(t,r.document),i=r.removedTargetIds||[];n=new xu([],i,s,null)}else{if(!("filter"in e))return Hr();{e.filter;const t=e.filter;t.targetId;const{count:r=0,unchangedNames:s}=t,i=new du(r,s),o=t.targetId;n=new Cu(o,i)}}return n}(this.serializer,t),n=function(t){if(!("targetChange"in t))return ps.min();const e=t.targetChange;return e.targetIds&&e.targetIds.length?ps.min():e.readTime?Uu(e.readTime):ps.min()}(t);return this.listener.u_(e,n)}c_(t){const e={};e.database=Wu(this.serializer),e.addTarget=function(t,e){let n;const r=e.target;if(n=Wo(r)?{documents:ec(t,r)}:{query:nc(t,r).ut},n.targetId=e.targetId,e.resumeToken.approximateByteSize()>0){n.resumeToken=qu(t,e.resumeToken);const r=Fu(t,e.expectedCount);null!==r&&(n.expectedCount=r)}else if(e.snapshotVersion.compareTo(ps.min())>0){n.readTime=Vu(t,e.snapshotVersion.toTimestamp());const r=Fu(t,e.expectedCount);null!==r&&(n.expectedCount=r)}return n}(this.serializer,t);const n=function(t,e){const n=function(t){switch(t){case"TargetPurposeListen":return null;case"TargetPurposeExistenceFilterMismatch":return"existence-filter-mismatch";case"TargetPurposeExistenceFilterMismatchBloom":return"existence-filter-mismatch-bloom";case"TargetPurposeLimboResolution":return"limbo-document";default:return Hr()}}(e.purpose);return null==n?null:{"goog-listen-tags":n}}(this.serializer,t);n&&(e.labels=n),this.t_(e)}l_(t){const e={};e.database=Wu(this.serializer),e.removeTarget=t,this.t_(e)}}class Gh extends Uh{constructor(t,e,n,r,s,i){super(t,"write_stream_connection_backoff","write_stream_idle","health_check_timeout",e,n,r,i),this.serializer=s,this.h_=!1}get P_(){return this.h_}start(){this.h_=!1,this.lastStreamToken=void 0,super.start()}i_(){this.h_&&this.I_([])}a_(t,e){return this.connection.Fo("Write",t,e)}onMessage(t){if(Wr(!!t.streamToken),this.lastStreamToken=t.streamToken,this.h_){this.jo.reset();const e=function(t,e){return t&&t.length>0?(Wr(void 0!==e),t.map((t=>function(t,e){let n=t.updateTime?Uu(t.updateTime):Uu(e);return n.isEqual(ps.min())&&(n=Uu(e)),new $a(n,t.transformResults||[])}(t,e)))):[]}(t.writeResults,t.commitTime),n=Uu(t.commitTime);return this.listener.T_(n,e)}return Wr(!t.writeResults||0===t.writeResults.length),this.h_=!0,this.listener.E_()}d_(){const t={};t.database=Wu(this.serializer),this.t_(t)}I_(t){const e={streamToken:this.lastStreamToken,writes:t.map((t=>Zu(this.serializer,t)))};this.t_(e)}}class jh extends class{}{constructor(t,e,n,r){super(),this.authCredentials=t,this.appCheckCredentials=e,this.connection=n,this.serializer=r,this.A_=!1}R_(){if(this.A_)throw new Zr(Jr.FAILED_PRECONDITION,"The client has already been terminated.")}So(t,e,n,r){return this.R_(),Promise.all([this.authCredentials.getToken(),this.appCheckCredentials.getToken()]).then((([s,i])=>this.connection.So(t,Gu(e,n),r,s,i))).catch((t=>{throw"FirebaseError"===t.name?(t.code===Jr.UNAUTHENTICATED&&(this.authCredentials.invalidateToken(),this.appCheckCredentials.invalidateToken()),t):new Zr(Jr.UNKNOWN,t.toString())}))}vo(t,e,n,r,s){return this.R_(),Promise.all([this.authCredentials.getToken(),this.appCheckCredentials.getToken()]).then((([i,o])=>this.connection.vo(t,Gu(e,n),r,i,o,s))).catch((t=>{throw"FirebaseError"===t.name?(t.code===Jr.UNAUTHENTICATED&&(this.authCredentials.invalidateToken(),this.appCheckCredentials.invalidateToken()),t):new Zr(Jr.UNKNOWN,t.toString())}))}terminate(){this.A_=!0,this.connection.terminate()}}class Kh{constructor(t,e){this.asyncQueue=t,this.onlineStateHandler=e,this.state="Unknown",this.m_=0,this.f_=null,this.g_=!0}p_(){0===this.m_&&(this.y_("Unknown"),this.f_=this.asyncQueue.enqueueAfterDelay("online_state_timeout",1e4,(()=>(this.f_=null,this.w_("Backend didn't respond within 10 seconds."),this.y_("Offline"),Promise.resolve()))))}S_(t){"Online"===this.state?this.y_("Unknown"):(this.m_++,this.m_>=1&&(this.b_(),this.w_(`Connection failed 1 times. Most recent error: ${t.toString()}`),this.y_("Offline")))}set(t){this.b_(),this.m_=0,"Online"===t&&(this.g_=!1),this.y_(t)}y_(t){t!==this.state&&(this.state=t,this.onlineStateHandler(t))}w_(t){const 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.`;this.g_?(Kr(e),this.g_=!1):jr("OnlineStateTracker",e)}b_(){null!==this.f_&&(this.f_.cancel(),this.f_=null)}}class $h{constructor(t,e,n,r,s){this.localStore=t,this.datastore=e,this.asyncQueue=n,this.remoteSyncer={},this.D_=[],this.C_=new Map,this.v_=new Set,this.F_=[],this.M_=s,this.M_.io((t=>{n.enqueueAndForget((async()=>{ed(this)&&(jr("RemoteStore","Restarting streams for network reachability change."),await async function(t){const e=Xr(t);e.v_.add(4),await Hh(e),e.x_.set("Unknown"),e.v_.delete(4),await Qh(e)}(this))}))})),this.x_=new Kh(n,r)}}async function Qh(t){if(ed(t))for(const e of t.F_)await e(!0)}async function Hh(t){for(const e of t.F_)await e(!1)}function Wh(t,e){const n=Xr(t);n.C_.has(e.targetId)||(n.C_.set(e.targetId,e),td(n)?Zh(n):vd(n).Jo()&&Xh(n,e))}function Yh(t,e){const n=Xr(t),r=vd(n);n.C_.delete(e),r.Jo()&&Jh(n,e),0===n.C_.size&&(r.Jo()?r.Xo():ed(n)&&n.x_.set("Unknown"))}function Xh(t,e){if(t.O_.Oe(e.targetId),e.resumeToken.approximateByteSize()>0||e.snapshotVersion.compareTo(ps.min())>0){const n=t.remoteSyncer.getRemoteKeysForTarget(e.targetId).size;e=e.withExpectedCount(n)}vd(t).c_(e)}function Jh(t,e){t.O_.Oe(e),vd(t).l_(e)}function Zh(t){t.O_=new Nu({getRemoteKeysForTarget:e=>t.remoteSyncer.getRemoteKeysForTarget(e),_t:e=>t.C_.get(e)||null,nt:()=>t.datastore.serializer.databaseId}),vd(t).start(),t.x_.p_()}function td(t){return ed(t)&&!vd(t).Ho()&&t.C_.size>0}function ed(t){return 0===Xr(t).v_.size}function nd(t){t.O_=void 0}async function rd(t){t.C_.forEach(((e,n)=>{Xh(t,e)}))}async function sd(t,e){nd(t),td(t)?(t.x_.S_(e),Zh(t)):t.x_.set("Unknown")}async function id(t,e,n){if(t.x_.set("Online"),e instanceof Du&&2===e.state&&e.cause)try{await async function(t,e){const n=e.cause;for(const r of e.targetIds)t.C_.has(r)&&(await t.remoteSyncer.rejectListen(r,n),t.C_.delete(r),t.O_.removeTarget(r))}(t,e)}catch(n){jr("RemoteStore","Failed to remove targets %s: %s ",e.targetIds.join(","),n),await od(t,n)}else if(e instanceof xu?t.O_.$e(e):e instanceof Cu?t.O_.Je(e):t.O_.Ge(e),!n.isEqual(ps.min()))try{const e=await ch(t.localStore);n.compareTo(e)>=0&&await function(t,e){const n=t.O_.it(e);return n.targetChanges.forEach(((n,r)=>{if(n.resumeToken.approximateByteSize()>0){const s=t.C_.get(r);s&&t.C_.set(r,s.withResumeToken(n.resumeToken,e))}})),n.targetMismatches.forEach(((e,n)=>{const r=t.C_.get(e);if(!r)return;t.C_.set(e,r.withResumeToken(qi.EMPTY_BYTE_STRING,r.snapshotVersion)),Jh(t,e);const s=new fc(r.target,e,n,r.sequenceNumber);Xh(t,s)})),t.remoteSyncer.applyRemoteEvent(n)}(t,n)}catch(e){jr("RemoteStore","Failed to raise snapshot:",e),await od(t,e)}}async function od(t,e,n){if(!Us(e))throw e;t.v_.add(1),await Hh(t),t.x_.set("Offline"),n||(n=()=>ch(t.localStore)),t.asyncQueue.enqueueRetryable((async()=>{jr("RemoteStore","Retrying IndexedDB access"),await n(),t.v_.delete(1),await Qh(t)}))}function ad(t,e){return e().catch((n=>od(t,n,e)))}async function ud(t){const e=Xr(t),n=bd(e);let r=e.D_.length>0?e.D_[e.D_.length-1].batchId:-1;for(;cd(e);)try{const t=await hh(e.localStore,r);if(null===t){0===e.D_.length&&n.Xo();break}r=t.batchId,ld(e,t)}catch(t){await od(e,t)}hd(e)&&dd(e)}function cd(t){return ed(t)&&t.D_.length<10}function ld(t,e){t.D_.push(e);const n=bd(t);n.Jo()&&n.P_&&n.I_(e.mutations)}function hd(t){return ed(t)&&!bd(t).Ho()&&t.D_.length>0}function dd(t){bd(t).start()}async function fd(t){bd(t).d_()}async function gd(t){const e=bd(t);for(const n of t.D_)e.I_(n.mutations)}async function md(t,e,n){const r=t.D_.shift(),s=cu.from(r,e,n);await ad(t,(()=>t.remoteSyncer.applySuccessfulWrite(s))),await ud(t)}async function pd(t,e){e&&bd(t).P_&&await async function(t,e){if(function(t){return mu(t)&&t!==Jr.ABORTED}(e.code)){const n=t.D_.shift();bd(t).Zo(),await ad(t,(()=>t.remoteSyncer.rejectFailedWrite(n.batchId,e))),await ud(t)}}(t,e),hd(t)&&dd(t)}async function yd(t,e){const n=Xr(t);n.asyncQueue.verifyOperationInProgress(),jr("RemoteStore","RemoteStore received new credentials");const r=ed(n);n.v_.add(3),await Hh(n),r&&n.x_.set("Unknown"),await n.remoteSyncer.handleCredentialChange(e),n.v_.delete(3),await Qh(n)}async function wd(t,e){const n=Xr(t);e?(n.v_.delete(2),await Qh(n)):e||(n.v_.add(2),await Hh(n),n.x_.set("Unknown"))}function vd(t){return t.N_||(t.N_=function(t,e,n){const r=Xr(t);return r.R_(),new zh(e,r.connection,r.authCredentials,r.appCheckCredentials,r.serializer,n)}(t.datastore,t.asyncQueue,{Po:rd.bind(null,t),To:sd.bind(null,t),u_:id.bind(null,t)}),t.F_.push((async e=>{e?(t.N_.Zo(),td(t)?Zh(t):t.x_.set("Unknown")):(await t.N_.stop(),nd(t))}))),t.N_}function bd(t){return t.B_||(t.B_=function(t,e,n){const r=Xr(t);return r.R_(),new Gh(e,r.connection,r.authCredentials,r.appCheckCredentials,r.serializer,n)}(t.datastore,t.asyncQueue,{Po:fd.bind(null,t),To:pd.bind(null,t),E_:gd.bind(null,t),T_:md.bind(null,t)}),t.F_.push((async e=>{e?(t.B_.Zo(),await ud(t)):(await t.B_.stop(),t.D_.length>0&&(jr("RemoteStore",`Stopping write stream with ${t.D_.length} pending writes`),t.D_=[]))}))),t.B_}class _d{constructor(t,e,n,r,s){this.asyncQueue=t,this.timerId=e,this.targetTimeMs=n,this.op=r,this.removalCallback=s,this.deferred=new ts,this.then=this.deferred.promise.then.bind(this.deferred.promise),this.deferred.promise.catch((t=>{}))}get promise(){return this.deferred.promise}static createAndSchedule(t,e,n,r,s){const i=Date.now()+n,o=new _d(t,e,i,r,s);return o.start(n),o}start(t){this.timerHandle=setTimeout((()=>this.handleDelayElapsed()),t)}skipDelay(){return this.handleDelayElapsed()}cancel(t){null!==this.timerHandle&&(this.clearTimeout(),this.deferred.reject(new Zr(Jr.CANCELLED,"Operation cancelled"+(t?": "+t:""))))}handleDelayElapsed(){this.asyncQueue.enqueueAndForget((()=>null!==this.timerHandle?(this.clearTimeout(),this.op().then((t=>this.deferred.resolve(t)))):Promise.resolve()))}clearTimeout(){null!==this.timerHandle&&(this.removalCallback(this),clearTimeout(this.timerHandle),this.timerHandle=null)}}function Id(t,e){if(Kr("AsyncQueue",`${e}: ${t}`),Us(t))return new Zr(Jr.UNAVAILABLE,`${e}: ${t}`);throw t}class Ed{constructor(t){this.comparator=t?(e,n)=>t(e,n)||_s.comparator(e.key,n.key):(t,e)=>_s.comparator(t.key,e.key),this.keyedMap=ba(),this.sortedSet=new Ni(this.comparator)}static emptySet(t){return new Ed(t.comparator)}has(t){return null!=this.keyedMap.get(t)}get(t){return this.keyedMap.get(t)}first(){return this.sortedSet.minKey()}last(){return this.sortedSet.maxKey()}isEmpty(){return this.sortedSet.isEmpty()}indexOf(t){const e=this.keyedMap.get(t);return e?this.sortedSet.indexOf(e):-1}get size(){return this.sortedSet.size}forEach(t){this.sortedSet.inorderTraversal(((e,n)=>(t(e),!1)))}add(t){const e=this.delete(t.key);return e.copy(e.keyedMap.insert(t.key,t),e.sortedSet.insert(t,null))}delete(t){const e=this.get(t);return e?this.copy(this.keyedMap.remove(t),this.sortedSet.remove(e)):this}isEqual(t){if(!(t instanceof Ed))return!1;if(this.size!==t.size)return!1;const e=this.sortedSet.getIterator(),n=t.sortedSet.getIterator();for(;e.hasNext();){const t=e.getNext().key,r=n.getNext().key;if(!t.isEqual(r))return!1}return!0}toString(){const t=[];return this.forEach((e=>{t.push(e.toString())})),0===t.length?"DocumentSet ()":"DocumentSet (\n "+t.join(" \n")+"\n)"}copy(t,e){const n=new Ed;return n.comparator=this.comparator,n.keyedMap=t,n.sortedSet=e,n}}class Td{constructor(){this.L_=new Ni(_s.comparator)}track(t){const e=t.doc.key,n=this.L_.get(e);n?0!==t.type&&3===n.type?this.L_=this.L_.insert(e,t):3===t.type&&1!==n.type?this.L_=this.L_.insert(e,{type:n.type,doc:t.doc}):2===t.type&&2===n.type?this.L_=this.L_.insert(e,{type:2,doc:t.doc}):2===t.type&&0===n.type?this.L_=this.L_.insert(e,{type:0,doc:t.doc}):1===t.type&&0===n.type?this.L_=this.L_.remove(e):1===t.type&&2===n.type?this.L_=this.L_.insert(e,{type:1,doc:n.doc}):0===t.type&&1===n.type?this.L_=this.L_.insert(e,{type:2,doc:t.doc}):Hr():this.L_=this.L_.insert(e,t)}k_(){const t=[];return this.L_.inorderTraversal(((e,n)=>{t.push(n)})),t}}class Sd{constructor(t,e,n,r,s,i,o,a,u){this.query=t,this.docs=e,this.oldDocs=n,this.docChanges=r,this.mutatedKeys=s,this.fromCache=i,this.syncStateChanged=o,this.excludesMetadataChanges=a,this.hasCachedResults=u}static fromInitialDocuments(t,e,n,r,s){const i=[];return e.forEach((t=>{i.push({type:0,doc:t})})),new Sd(t,e,Ed.emptySet(e),i,n,r,!0,!1,s)}get hasPendingWrites(){return!this.mutatedKeys.isEmpty()}isEqual(t){if(!(this.fromCache===t.fromCache&&this.hasCachedResults===t.hasCachedResults&&this.syncStateChanged===t.syncStateChanged&&this.mutatedKeys.isEqual(t.mutatedKeys)&&ca(this.query,t.query)&&this.docs.isEqual(t.docs)&&this.oldDocs.isEqual(t.oldDocs)))return!1;const e=this.docChanges,n=t.docChanges;if(e.length!==n.length)return!1;for(let t=0;tla(t)),ca),this.onlineState="Unknown",this.K_=new Set}}async function Dd(t,e){const n=Xr(t),r=e.query;let s=!1,i=n.queries.get(r);if(i||(s=!0,i=new xd),s)try{i.q_=await n.onListen(r)}catch(t){const n=Id(t,`Initialization of query '${ha(e.query)}' failed`);return void e.onError(n)}n.queries.set(r,i),i.Q_.push(e),e.U_(n.onlineState),i.q_&&e.W_(i.q_)&&Rd(n)}async function Ad(t,e){const n=Xr(t),r=e.query;let s=!1;const i=n.queries.get(r);if(i){const t=i.Q_.indexOf(e);t>=0&&(i.Q_.splice(t,1),s=0===i.Q_.length)}if(s)return n.queries.delete(r),n.onUnlisten(r)}function Nd(t,e){const n=Xr(t);let r=!1;for(const t of e){const e=t.query,s=n.queries.get(e);if(s){for(const e of s.Q_)e.W_(t)&&(r=!0);s.q_=t}}r&&Rd(n)}function kd(t,e,n){const r=Xr(t),s=r.queries.get(e);if(s)for(const t of s.Q_)t.onError(n);r.queries.delete(e)}function Rd(t){t.K_.forEach((t=>{t.next()}))}class Md{constructor(t,e,n){this.query=t,this.G_=e,this.z_=!1,this.j_=null,this.onlineState="Unknown",this.options=n||{}}W_(t){if(!this.options.includeMetadataChanges){const e=[];for(const n of t.docChanges)3!==n.type&&e.push(n);t=new Sd(t.query,t.docs,t.oldDocs,e,t.mutatedKeys,t.fromCache,t.syncStateChanged,!0,t.hasCachedResults)}let e=!1;return this.z_?this.H_(t)&&(this.G_.next(t),e=!0):this.J_(t,this.onlineState)&&(this.Y_(t),e=!0),this.j_=t,e}onError(t){this.G_.error(t)}U_(t){this.onlineState=t;let e=!1;return this.j_&&!this.z_&&this.J_(this.j_,t)&&(this.Y_(this.j_),e=!0),e}J_(t,e){if(!t.fromCache)return!0;const n="Offline"!==e;return(!this.options.Z_||!n)&&(!t.docs.isEmpty()||t.hasCachedResults||"Offline"===e)}H_(t){if(t.docChanges.length>0)return!0;const e=this.j_&&this.j_.hasPendingWrites!==t.hasPendingWrites;return!(!t.syncStateChanged&&!e)&&!0===this.options.includeMetadataChanges}Y_(t){t=Sd.fromInitialDocuments(t.query,t.docs,t.mutatedKeys,t.fromCache,t.hasCachedResults),this.z_=!0,this.G_.next(t)}}class Ld{constructor(t,e){this.X_=t,this.byteLength=e}ea(){return"metadata"in this.X_}}class Od{constructor(t){this.serializer=t}Ps(t){return $u(this.serializer,t)}Is(t){return t.metadata.exists?Ju(this.serializer,t.document,!1):bo.newNoDocument(this.Ps(t.metadata.name),this.Ts(t.metadata.readTime))}Ts(t){return Uu(t)}}class Pd{constructor(t,e,n){this.ta=t,this.localStore=e,this.serializer=n,this.queries=[],this.documents=[],this.collectionGroups=new Set,this.progress=Fd(t)}na(t){this.progress.bytesLoaded+=t.byteLength;let e=this.progress.documentsLoaded;if(t.X_.namedQuery)this.queries.push(t.X_.namedQuery);else if(t.X_.documentMetadata){this.documents.push({metadata:t.X_.documentMetadata}),t.X_.documentMetadata.exists||++e;const n=ws.fromString(t.X_.documentMetadata.name);this.collectionGroups.add(n.get(n.length-2))}else t.X_.document&&(this.documents[this.documents.length-1].document=t.X_.document,++e);return e!==this.progress.documentsLoaded?(this.progress.documentsLoaded=e,Object.assign({},this.progress)):null}ra(t){const e=new Map,n=new Od(this.serializer);for(const r of t)if(r.metadata.queries){const t=n.Ps(r.metadata.name);for(const n of r.metadata.queries){const r=(e.get(n)||Ca()).add(t);e.set(n,r)}}return e}async complete(){const t=await async function(t,e,n,r){const s=Xr(t);let i=Ca(),o=wa();for(const t of n){const n=e.Ps(t.metadata.name);t.document&&(i=i.add(n));const r=e.Is(t);r.setReadTime(e.Ts(t.metadata.readTime)),o=o.insert(n,r)}const a=s.os.newChangeBuffer({trackRemovals:!0}),u=await dh(s,function(t){return ia(ea(ws.fromString(`__bundle__/docs/${t}`)))}(r));return s.persistence.runTransaction("Apply bundle documents","readwrite",(t=>lh(t,a,o).next((e=>(a.apply(t),e))).next((e=>s.Qr.removeMatchingKeysForTargetId(t,u.targetId).next((()=>s.Qr.addMatchingKeys(t,i,u.targetId))).next((()=>s.localDocuments.getLocalViewOfDocuments(t,e.cs,e.ls))).next((()=>e.cs))))))}(this.localStore,new Od(this.serializer),this.documents,this.ta.id),e=this.ra(this.documents);for(const t of this.queries)await wh(this.localStore,t,e.get(t.name));return this.progress.taskState="Success",{progress:this.progress,ia:this.collectionGroups,sa:t}}}function Fd(t){return{taskState:"Running",documentsLoaded:0,bytesLoaded:0,totalDocuments:t.totalDocuments,totalBytes:t.totalBytes}}class Vd{constructor(t){this.key=t}}class qd{constructor(t){this.key=t}}class Bd{constructor(t,e){this.query=t,this.oa=e,this._a=null,this.hasCachedResults=!1,this.current=!1,this.aa=Ca(),this.mutatedKeys=Ca(),this.ua=ga(t),this.ca=new Ed(this.ua)}get la(){return this.oa}ha(t,e){const n=e?e.Pa:new Td,r=e?e.ca:this.ca;let s=e?e.mutatedKeys:this.mutatedKeys,i=r,o=!1;const a="F"===this.query.limitType&&r.size===this.query.limit?r.last():null,u="L"===this.query.limitType&&r.size===this.query.limit?r.first():null;if(t.inorderTraversal(((t,e)=>{const c=r.get(t),l=da(this.query,e)?e:null,h=!!c&&this.mutatedKeys.has(c.key),d=!!l&&(l.hasLocalMutations||this.mutatedKeys.has(l.key)&&l.hasCommittedMutations);let f=!1;c&&l?c.data.isEqual(l.data)?h!==d&&(n.track({type:3,doc:l}),f=!0):this.Ia(c,l)||(n.track({type:2,doc:l}),f=!0,(a&&this.ua(l,a)>0||u&&this.ua(l,u)<0)&&(o=!0)):!c&&l?(n.track({type:0,doc:l}),f=!0):c&&!l&&(n.track({type:1,doc:c}),f=!0,(a||u)&&(o=!0)),f&&(l?(i=i.add(l),s=d?s.add(t):s.delete(t)):(i=i.delete(t),s=s.delete(t)))})),null!==this.query.limit)for(;i.size>this.query.limit;){const t="F"===this.query.limitType?i.last():i.first();i=i.delete(t.key),s=s.delete(t.key),n.track({type:1,doc:t})}return{ca:i,Pa:n,Xi:o,mutatedKeys:s}}Ia(t,e){return t.hasLocalMutations&&e.hasCommittedMutations&&!e.hasLocalMutations}applyChanges(t,e,n,r){const s=this.ca;this.ca=t.ca,this.mutatedKeys=t.mutatedKeys;const i=t.Pa.k_();i.sort(((t,e)=>function(t,e){const n=t=>{switch(t){case 0:return 1;case 2:case 3:return 2;case 1:return 0;default:return Hr()}};return n(t)-n(e)}(t.type,e.type)||this.ua(t.doc,e.doc))),this.Ta(n),r=null!=r&&r;const o=e&&!r?this.Ea():[],a=0===this.aa.size&&this.current&&!r?1:0,u=a!==this._a;return this._a=a,0!==i.length||u?{snapshot:new Sd(this.query,t.ca,s,i,t.mutatedKeys,0===a,u,!1,!!n&&n.resumeToken.approximateByteSize()>0),da:o}:{da:o}}U_(t){return this.current&&"Offline"===t?(this.current=!1,this.applyChanges({ca:this.ca,Pa:new Td,mutatedKeys:this.mutatedKeys,Xi:!1},!1)):{da:[]}}Aa(t){return!this.oa.has(t)&&!!this.ca.has(t)&&!this.ca.get(t).hasLocalMutations}Ta(t){t&&(t.addedDocuments.forEach((t=>this.oa=this.oa.add(t))),t.modifiedDocuments.forEach((t=>{})),t.removedDocuments.forEach((t=>this.oa=this.oa.delete(t))),this.current=t.current)}Ea(){if(!this.current)return[];const t=this.aa;this.aa=Ca(),this.ca.forEach((t=>{this.Aa(t.key)&&(this.aa=this.aa.add(t.key))}));const e=[];return t.forEach((t=>{this.aa.has(t)||e.push(new qd(t))})),this.aa.forEach((n=>{t.has(n)||e.push(new Vd(n))})),e}Ra(t){this.oa=t.hs,this.aa=Ca();const e=this.ha(t.documents);return this.applyChanges(e,!0)}Va(){return Sd.fromInitialDocuments(this.query,this.ca,this.mutatedKeys,0===this._a,this.hasCachedResults)}}class Ud{constructor(t,e,n){this.query=t,this.targetId=e,this.view=n}}class zd{constructor(t){this.key=t,this.ma=!1}}class Gd{constructor(t,e,n,r,s,i){this.localStore=t,this.remoteStore=e,this.eventManager=n,this.sharedClientState=r,this.currentUser=s,this.maxConcurrentLimboResolutions=i,this.fa={},this.ga=new pa((t=>la(t)),ca),this.pa=new Map,this.ya=new Set,this.wa=new Ni(_s.comparator),this.Sa=new Map,this.ba=new Bl,this.Da={},this.Ca=new Map,this.va=ml.Bn(),this.onlineState="Unknown",this.Fa=void 0}get isPrimaryClient(){return!0===this.Fa}}async function jd(t,e){const n=yf(t);let r,s;const i=n.ga.get(e);if(i)r=i.targetId,n.sharedClientState.addLocalQueryTarget(r),s=i.view.Va();else{const t=await dh(n.localStore,ia(e)),i=n.sharedClientState.addLocalQueryTarget(t.targetId);r=t.targetId,s=await Kd(n,e,r,"current"===i,t.resumeToken),n.isPrimaryClient&&Wh(n.remoteStore,t)}return s}async function Kd(t,e,n,r,s){t.Ma=(e,n,r)=>async function(t,e,n,r){let s=e.view.ha(n);s.Xi&&(s=await gh(t.localStore,e.query,!1).then((({documents:t})=>e.view.ha(t,s))));const i=r&&r.targetChanges.get(e.targetId),o=r&&null!=r.targetMismatches.get(e.targetId),a=e.view.applyChanges(s,t.isPrimaryClient,i,o);return nf(t,e.targetId,a.da),a.snapshot}(t,e,n,r);const i=await gh(t.localStore,e,!0),o=new Bd(e,i.hs),a=o.ha(i.documents),u=Su.createSynthesizedTargetChangeForCurrentChange(n,r&&"Offline"!==t.onlineState,s),c=o.applyChanges(a,t.isPrimaryClient,u);nf(t,n,c.da);const l=new Ud(e,n,o);return t.ga.set(e,l),t.pa.has(n)?t.pa.get(n).push(e):t.pa.set(n,[e]),c.snapshot}async function $d(t,e){const n=Xr(t),r=n.ga.get(e),s=n.pa.get(r.targetId);if(s.length>1)return n.pa.set(r.targetId,s.filter((t=>!ca(t,e)))),void n.ga.delete(e);n.isPrimaryClient?(n.sharedClientState.removeLocalQueryTarget(r.targetId),n.sharedClientState.isActiveQueryTarget(r.targetId)||await fh(n.localStore,r.targetId,!1).then((()=>{n.sharedClientState.clearQueryState(r.targetId),Yh(n.remoteStore,r.targetId),tf(n,r.targetId)})).catch(Os)):(tf(n,r.targetId),await fh(n.localStore,r.targetId,!0))}async function Qd(t,e){const n=Xr(t);try{const t=await function(t,e){const n=Xr(t),r=e.snapshotVersion;let s=n.ns;return n.persistence.runTransaction("Apply remote event","readwrite-primary",(t=>{const i=n.os.newChangeBuffer({trackRemovals:!0});s=n.ns;const o=[];e.targetChanges.forEach(((i,a)=>{const u=s.get(a);if(!u)return;o.push(n.Qr.removeMatchingKeys(t,i.removedDocuments,a).next((()=>n.Qr.addMatchingKeys(t,i.addedDocuments,a))));let c=u.withSequenceNumber(t.currentSequenceNumber);null!==e.targetMismatches.get(a)?c=c.withResumeToken(qi.EMPTY_BYTE_STRING,ps.min()).withLastLimboFreeSnapshotVersion(ps.min()):i.resumeToken.approximateByteSize()>0&&(c=c.withResumeToken(i.resumeToken,r)),s=s.insert(a,c),function(t,e,n){return 0===t.resumeToken.approximateByteSize()||e.snapshotVersion.toMicroseconds()-t.snapshotVersion.toMicroseconds()>=3e8||n.addedDocuments.size+n.modifiedDocuments.size+n.removedDocuments.size>0}(u,c,i)&&o.push(n.Qr.updateTargetData(t,c))}));let a=wa(),u=Ca();if(e.documentUpdates.forEach((r=>{e.resolvedLimboDocuments.has(r)&&o.push(n.persistence.referenceDelegate.updateLimboDocument(t,r))})),o.push(lh(t,i,e.documentUpdates).next((t=>{a=t.cs,u=t.ls}))),!r.isEqual(ps.min())){const e=n.Qr.getLastRemoteSnapshotVersion(t).next((e=>n.Qr.setTargetsMetadata(t,t.currentSequenceNumber,r)));o.push(e)}return Ps.waitFor(o).next((()=>i.apply(t))).next((()=>n.localDocuments.getLocalViewOfDocuments(t,a,u))).next((()=>a))})).then((t=>(n.ns=s,t)))}(n.localStore,e);e.targetChanges.forEach(((t,e)=>{const r=n.Sa.get(e);r&&(Wr(t.addedDocuments.size+t.modifiedDocuments.size+t.removedDocuments.size<=1),t.addedDocuments.size>0?r.ma=!0:t.modifiedDocuments.size>0?Wr(r.ma):t.removedDocuments.size>0&&(Wr(r.ma),r.ma=!1))})),await of(n,t,e)}catch(t){await Os(t)}}function Hd(t,e,n){const r=Xr(t);if(r.isPrimaryClient&&0===n||!r.isPrimaryClient&&1===n){const t=[];r.ga.forEach(((n,r)=>{const s=r.view.U_(e);s.snapshot&&t.push(s.snapshot)})),function(t,e){const n=Xr(t);n.onlineState=e;let r=!1;n.queries.forEach(((t,n)=>{for(const t of n.Q_)t.U_(e)&&(r=!0)})),r&&Rd(n)}(r.eventManager,e),t.length&&r.fa.u_(t),r.onlineState=e,r.isPrimaryClient&&r.sharedClientState.setOnlineState(e)}}async function Wd(t,e,n){const r=Xr(t);r.sharedClientState.updateQueryState(e,"rejected",n);const s=r.Sa.get(e),i=s&&s.key;if(i){let t=new Ni(_s.comparator);t=t.insert(i,bo.newNoDocument(i,ps.min()));const n=Ca().add(i),s=new Tu(ps.min(),new Map,new Ni(ds),t,n);await Qd(r,s),r.wa=r.wa.remove(i),r.Sa.delete(e),sf(r)}else await fh(r.localStore,e,!1).then((()=>tf(r,e,n))).catch(Os)}async function Yd(t,e){const n=Xr(t),r=e.batch.batchId;try{const t=await function(t,e){const n=Xr(t);return n.persistence.runTransaction("Acknowledge batch","readwrite-primary",(t=>{const r=e.batch.keys(),s=n.os.newChangeBuffer({trackRemovals:!0});return function(t,e,n,r){const s=n.batch,i=s.keys();let o=Ps.resolve();return i.forEach((t=>{o=o.next((()=>r.getEntry(e,t))).next((e=>{const i=n.docVersions.get(t);Wr(null!==i),e.version.compareTo(i)<0&&(s.applyToRemoteDocument(e,n),e.isValidDocument()&&(e.setReadTime(n.commitVersion),r.addEntry(e)))}))})),o.next((()=>t.mutationQueue.removeMutationBatch(e,s)))}(n,t,e,s).next((()=>s.apply(t))).next((()=>n.mutationQueue.performConsistencyCheck(t))).next((()=>n.documentOverlayCache.removeOverlaysForBatchId(t,r,e.batch.batchId))).next((()=>n.localDocuments.recalculateAndSaveOverlaysForDocumentKeys(t,function(t){let e=Ca();for(let n=0;n0&&(e=e.add(t.batch.mutations[n].key));return e}(e)))).next((()=>n.localDocuments.getDocuments(t,r)))}))}(n.localStore,e);Zd(n,r,null),Jd(n,r),n.sharedClientState.updateMutationState(r,"acknowledged"),await of(n,t)}catch(t){await Os(t)}}async function Xd(t,e,n){const r=Xr(t);try{const t=await function(t,e){const n=Xr(t);return n.persistence.runTransaction("Reject batch","readwrite-primary",(t=>{let r;return n.mutationQueue.lookupMutationBatch(t,e).next((e=>(Wr(null!==e),r=e.keys(),n.mutationQueue.removeMutationBatch(t,e)))).next((()=>n.mutationQueue.performConsistencyCheck(t))).next((()=>n.documentOverlayCache.removeOverlaysForBatchId(t,r,e))).next((()=>n.localDocuments.recalculateAndSaveOverlaysForDocumentKeys(t,r))).next((()=>n.localDocuments.getDocuments(t,r)))}))}(r.localStore,e);Zd(r,e,n),Jd(r,e),r.sharedClientState.updateMutationState(e,"rejected",n),await of(r,t)}catch(t){await Os(t)}}function Jd(t,e){(t.Ca.get(e)||[]).forEach((t=>{t.resolve()})),t.Ca.delete(e)}function Zd(t,e,n){const r=Xr(t);let s=r.Da[r.currentUser.toKey()];if(s){const t=s.get(e);t&&(n?t.reject(n):t.resolve(),s=s.remove(e)),r.Da[r.currentUser.toKey()]=s}}function tf(t,e,n=null){t.sharedClientState.removeLocalQueryTarget(e);for(const r of t.pa.get(e))t.ga.delete(r),n&&t.fa.xa(r,n);t.pa.delete(e),t.isPrimaryClient&&t.ba.Vr(e).forEach((e=>{t.ba.containsKey(e)||ef(t,e)}))}function ef(t,e){t.ya.delete(e.path.canonicalString());const n=t.wa.get(e);null!==n&&(Yh(t.remoteStore,n),t.wa=t.wa.remove(e),t.Sa.delete(n),sf(t))}function nf(t,e,n){for(const r of n)r instanceof Vd?(t.ba.addReference(r.key,e),rf(t,r)):r instanceof qd?(jr("SyncEngine","Document no longer in limbo: "+r.key),t.ba.removeReference(r.key,e),t.ba.containsKey(r.key)||ef(t,r.key)):Hr()}function rf(t,e){const n=e.key,r=n.path.canonicalString();t.wa.get(n)||t.ya.has(r)||(jr("SyncEngine","New document in limbo: "+n),t.ya.add(r),sf(t))}function sf(t){for(;t.ya.size>0&&t.wa.size{o.push(r.Ma(a,e,n).then((t=>{if((t||n)&&r.isPrimaryClient&&r.sharedClientState.updateQueryState(a.targetId,(null==t?void 0:t.fromCache)?"not-current":"current"),t){s.push(t);const e=rh.Ki(a.targetId,t);i.push(e)}})))})),await Promise.all(o),r.fa.u_(s),await async function(t,e){const n=Xr(t);try{await n.persistence.runTransaction("notifyLocalViewChanges","readwrite",(t=>Ps.forEach(e,(e=>Ps.forEach(e.qi,(r=>n.persistence.referenceDelegate.addReference(t,e.targetId,r))).next((()=>Ps.forEach(e.Qi,(r=>n.persistence.referenceDelegate.removeReference(t,e.targetId,r)))))))))}catch(t){if(!Us(t))throw t;jr("LocalStore","Failed to update sequence numbers: "+t)}for(const t of e){const e=t.targetId;if(!t.fromCache){const t=n.ns.get(e),r=t.snapshotVersion,s=t.withLastLimboFreeSnapshotVersion(r);n.ns=n.ns.insert(e,s)}}}(r.localStore,i))}async function af(t,e){const n=Xr(t);if(!n.currentUser.isEqual(e)){jr("SyncEngine","User change. New user:",e.toKey());const t=await uh(n.localStore,e);n.currentUser=e,function(t,e){t.Ca.forEach((t=>{t.forEach((t=>{t.reject(new Zr(Jr.CANCELLED,e))}))})),t.Ca.clear()}(n,"'waitForPendingWrites' promise is rejected due to a user change."),n.sharedClientState.handleUserChange(e,t.removedBatchIds,t.addedBatchIds),await of(n,t.us)}}function uf(t,e){const n=Xr(t),r=n.Sa.get(e);if(r&&r.ma)return Ca().add(r.key);{let t=Ca();const r=n.pa.get(e);if(!r)return t;for(const e of r){const r=n.ga.get(e);t=t.unionWith(r.view.la)}return t}}async function cf(t,e){const n=Xr(t),r=await gh(n.localStore,e.query,!0),s=e.view.Ra(r);return n.isPrimaryClient&&nf(n,e.targetId,s.da),s}async function lf(t,e){const n=Xr(t);return ph(n.localStore,e).then((t=>of(n,t)))}async function hf(t,e,n,r){const s=Xr(t),i=await function(t,e){const n=Xr(t),r=Xr(n.mutationQueue);return n.persistence.runTransaction("Lookup mutation documents","readonly",(t=>r.vn(t,e).next((e=>e?n.localDocuments.getDocuments(t,e):Ps.resolve(null)))))}(s.localStore,e);null!==i?("pending"===n?await ud(s.remoteStore):"acknowledged"===n||"rejected"===n?(Zd(s,e,r||null),Jd(s,e),function(t,e){Xr(Xr(t).mutationQueue).Mn(e)}(s.localStore,e)):Hr(),await of(s,i)):jr("SyncEngine","Cannot apply mutation batch with id: "+e)}async function df(t,e,n){const r=Xr(t),s=[],i=[];for(const t of e){let e;const n=r.pa.get(t);if(n&&0!==n.length){e=await dh(r.localStore,ia(n[0]));for(const t of n){const e=r.ga.get(t),n=await cf(r,e);n.snapshot&&i.push(n.snapshot)}}else{const n=await mh(r.localStore,t);e=await dh(r.localStore,n),await Kd(r,ff(n),t,!1,e.resumeToken)}s.push(e)}return r.fa.u_(i),s}function ff(t){return ta(t.path,t.collectionGroup,t.orderBy,t.filters,t.limit,"F",t.startAt,t.endAt)}function gf(t){return function(t){return Xr(Xr(t).persistence).Li()}(Xr(t).localStore)}async function mf(t,e,n,r){const s=Xr(t);if(s.Fa)return void jr("SyncEngine","Ignoring unexpected query state notification.");const i=s.pa.get(e);if(i&&i.length>0)switch(n){case"current":case"not-current":{const t=await ph(s.localStore,fa(i[0])),r=Tu.createSynthesizedRemoteEventForCurrentChange(e,"current"===n,qi.EMPTY_BYTE_STRING);await of(s,t,r);break}case"rejected":await fh(s.localStore,e,!0),tf(s,e,r);break;default:Hr()}}async function pf(t,e,n){const r=yf(t);if(r.Fa){for(const t of e){if(r.pa.has(t)){jr("SyncEngine","Adding an already active target "+t);continue}const e=await mh(r.localStore,t),n=await dh(r.localStore,e);await Kd(r,ff(e),n.targetId,!1,n.resumeToken),Wh(r.remoteStore,n)}for(const t of n)r.pa.has(t)&&await fh(r.localStore,t,!1).then((()=>{Yh(r.remoteStore,t),tf(r,t)})).catch(Os)}}function yf(t){const e=Xr(t);return e.remoteStore.remoteSyncer.applyRemoteEvent=Qd.bind(null,e),e.remoteStore.remoteSyncer.getRemoteKeysForTarget=uf.bind(null,e),e.remoteStore.remoteSyncer.rejectListen=Wd.bind(null,e),e.fa.u_=Nd.bind(null,e.eventManager),e.fa.xa=kd.bind(null,e.eventManager),e}function wf(t){const e=Xr(t);return e.remoteStore.remoteSyncer.applySuccessfulWrite=Yd.bind(null,e),e.remoteStore.remoteSyncer.rejectFailedWrite=Xd.bind(null,e),e}class vf{constructor(){this.synchronizeTabs=!1}async initialize(t){this.serializer=qh(t.databaseInfo.databaseId),this.sharedClientState=this.createSharedClientState(t),this.persistence=this.createPersistence(t),await this.persistence.start(),this.localStore=this.createLocalStore(t),this.gcScheduler=this.createGarbageCollectionScheduler(t,this.localStore),this.indexBackfillerScheduler=this.createIndexBackfillerScheduler(t,this.localStore)}createGarbageCollectionScheduler(t,e){return null}createIndexBackfillerScheduler(t,e){return null}createLocalStore(t){return ah(this.persistence,new ih,t.initialUser,this.serializer)}createPersistence(t){return new $l(Hl.Hr,this.serializer)}createSharedClientState(t){return new Dh}async terminate(){var t,e;null===(t=this.gcScheduler)||void 0===t||t.stop(),null===(e=this.indexBackfillerScheduler)||void 0===e||e.stop(),this.sharedClientState.shutdown(),await this.persistence.shutdown()}}class bf extends vf{constructor(t){super(),this.cacheSizeBytes=t}createGarbageCollectionScheduler(t,e){Wr(this.persistence.referenceDelegate instanceof Wl);const n=this.persistence.referenceDelegate.garbageCollector;return new Il(n,t.asyncQueue,e)}createPersistence(t){const e=void 0!==this.cacheSizeBytes?al.withCacheSize(this.cacheSizeBytes):al.DEFAULT;return new $l((t=>Wl.Hr(t,e)),this.serializer)}}class _f extends vf{constructor(t,e,n){super(),this.Na=t,this.cacheSizeBytes=e,this.forceOwnership=n,this.synchronizeTabs=!1}async initialize(t){await super.initialize(t),await this.Na.initialize(this,t),await wf(this.Na.syncEngine),await ud(this.Na.remoteStore),await this.persistence.fi((()=>(this.gcScheduler&&!this.gcScheduler.started&&this.gcScheduler.start(),this.indexBackfillerScheduler&&!this.indexBackfillerScheduler.started&&this.indexBackfillerScheduler.start(),Promise.resolve())))}createLocalStore(t){return ah(this.persistence,new ih,t.initialUser,this.serializer)}createGarbageCollectionScheduler(t,e){const n=this.persistence.referenceDelegate.garbageCollector;return new Il(n,t.asyncQueue,e)}createIndexBackfillerScheduler(t,e){const n=new Qs(e,this.persistence);return new $s(t.asyncQueue,n)}createPersistence(t){const e=nh(t.databaseInfo.databaseId,t.databaseInfo.persistenceKey),n=void 0!==this.cacheSizeBytes?al.withCacheSize(this.cacheSizeBytes):al.DEFAULT;return new Zl(this.synchronizeTabs,e,t.clientId,n,t.asyncQueue,Fh(),Vh(),this.serializer,this.sharedClientState,!!this.forceOwnership)}createSharedClientState(t){return new Dh}}class If extends _f{constructor(t,e){super(t,e,!1),this.Na=t,this.cacheSizeBytes=e,this.synchronizeTabs=!0}async initialize(t){await super.initialize(t);const e=this.Na.syncEngine;this.sharedClientState instanceof Ch&&(this.sharedClientState.syncEngine={Zs:hf.bind(null,e),Xs:mf.bind(null,e),eo:pf.bind(null,e),Li:gf.bind(null,e),Ys:lf.bind(null,e)},await this.sharedClientState.start()),await this.persistence.fi((async t=>{await async function(t,e){const n=Xr(t);if(yf(n),wf(n),!0===e&&!0!==n.Fa){const t=n.sharedClientState.getAllActiveQueryTargets(),e=await df(n,t.toArray());n.Fa=!0,await wd(n.remoteStore,!0);for(const t of e)Wh(n.remoteStore,t)}else if(!1===e&&!1!==n.Fa){const t=[];let e=Promise.resolve();n.pa.forEach(((r,s)=>{n.sharedClientState.isLocalQueryTarget(s)?t.push(s):e=e.then((()=>(tf(n,s),fh(n.localStore,s,!0)))),Yh(n.remoteStore,s)})),await e,await df(n,t),function(t){const e=Xr(t);e.Sa.forEach(((t,n)=>{Yh(e.remoteStore,n)})),e.ba.mr(),e.Sa=new Map,e.wa=new Ni(_s.comparator)}(n),n.Fa=!1,await wd(n.remoteStore,!1)}}(this.Na.syncEngine,t),this.gcScheduler&&(t&&!this.gcScheduler.started?this.gcScheduler.start():t||this.gcScheduler.stop()),this.indexBackfillerScheduler&&(t&&!this.indexBackfillerScheduler.started?this.indexBackfillerScheduler.start():t||this.indexBackfillerScheduler.stop())}))}createSharedClientState(t){const e=Fh();if(!Ch.D(e))throw new Zr(Jr.UNIMPLEMENTED,"IndexedDB persistence is only available on platforms that support LocalStorage.");const n=nh(t.databaseInfo.databaseId,t.databaseInfo.persistenceKey);return new Ch(e,t.asyncQueue,n,t.clientId,t.initialUser)}}class Ef{async initialize(t,e){this.localStore||(this.localStore=t.localStore,this.sharedClientState=t.sharedClientState,this.datastore=this.createDatastore(e),this.remoteStore=this.createRemoteStore(e),this.eventManager=this.createEventManager(e),this.syncEngine=this.createSyncEngine(e,!t.synchronizeTabs),this.sharedClientState.onlineStateHandler=t=>Hd(this.syncEngine,t,1),this.remoteStore.remoteSyncer.handleCredentialChange=af.bind(null,this.syncEngine),await wd(this.remoteStore,this.syncEngine.isPrimaryClient))}createEventManager(t){return new Cd}createDatastore(t){const e=qh(t.databaseInfo.databaseId),n=function(t){return new Ph(t)}(t.databaseInfo);return function(t,e,n,r){return new jh(t,e,n,r)}(t.authCredentials,t.appCheckCredentials,n,e)}createRemoteStore(t){return function(t,e,n,r,s){return new $h(t,e,n,r,s)}(this.localStore,this.datastore,t.asyncQueue,(t=>Hd(this.syncEngine,t,0)),Nh.D()?new Nh:new Ah)}createSyncEngine(t,e){return function(t,e,n,r,s,i,o){const a=new Gd(t,e,n,r,s,i);return o&&(a.Fa=!0),a}(this.localStore,this.remoteStore,this.eventManager,this.sharedClientState,t.initialUser,t.maxConcurrentLimboResolutions,e)}async terminate(){var t;await async function(t){const e=Xr(t);jr("RemoteStore","RemoteStore shutting down."),e.v_.add(5),await Hh(e),e.M_.shutdown(),e.x_.set("Unknown")}(this.remoteStore),null===(t=this.datastore)||void 0===t||t.terminate()}}function Tf(t,e=10240){let n=0;return{async read(){if(n{this.muted||t(e)}),0)}}class xf{constructor(t,e){this.ka=t,this.serializer=e,this.metadata=new ts,this.buffer=new Uint8Array,this.qa=new TextDecoder("utf-8"),this.Qa().then((t=>{t&&t.ea()?this.metadata.resolve(t.X_.metadata):this.metadata.reject(new Error(`The first element of the bundle is not a metadata, it is\n ${JSON.stringify(null==t?void 0:t.X_)}`))}),(t=>this.metadata.reject(t)))}close(){return this.ka.cancel()}async getMetadata(){return this.metadata.promise}async Oa(){return await this.getMetadata(),this.Qa()}async Qa(){const t=await this.Ka();if(null===t)return null;const e=this.qa.decode(t),n=Number(e);isNaN(n)&&this.$a(`length string (${e}) is not valid number`);const r=await this.Ua(n);return new Ld(JSON.parse(r),t.length+n)}Wa(){return this.buffer.findIndex((t=>t==="{".charCodeAt(0)))}async Ka(){for(;this.Wa()<0&&!await this.Ga(););if(0===this.buffer.length)return null;const t=this.Wa();t<0&&this.$a("Reached the end of bundle when a length string is expected.");const e=this.buffer.slice(0,t);return this.buffer=this.buffer.slice(t),e}async Ua(t){for(;this.buffer.length0)throw this.lastTransactionError=new Zr(Jr.INVALID_ARGUMENT,"Firestore transactions require all reads to be executed before all writes."),this.lastTransactionError;const e=await async function(t,e){const n=Xr(t),r={documents:e.map((t=>Ku(n.serializer,t)))},s=await n.vo("BatchGetDocuments",n.serializer.databaseId,ws.emptyPath(),r,e.length),i=new Map;s.forEach((t=>{const e=function(t,e){return"found"in e?function(t,e){Wr(!!e.found),e.found.name,e.found.updateTime;const n=$u(t,e.found.name),r=Uu(e.found.updateTime),s=e.found.createTime?Uu(e.found.createTime):ps.min(),i=new wo({mapValue:{fields:e.found.fields}});return bo.newFoundDocument(n,r,s,i)}(t,e):"missing"in e?function(t,e){Wr(!!e.missing),Wr(!!e.readTime);const n=$u(t,e.missing),r=Uu(e.readTime);return bo.newNoDocument(n,r)}(t,e):Hr()}(n.serializer,t);i.set(e.key.toString(),e)}));const o=[];return e.forEach((t=>{const e=i.get(t.toString());Wr(!!e),o.push(e)})),o}(this.datastore,t);return e.forEach((t=>this.recordVersion(t))),e}set(t,e){this.write(e.toMutation(t,this.precondition(t))),this.writtenDocs.add(t.toString())}update(t,e){try{this.write(e.toMutation(t,this.preconditionForUpdate(t)))}catch(t){this.lastTransactionError=t}this.writtenDocs.add(t.toString())}delete(t){this.write(new ou(t,this.precondition(t))),this.writtenDocs.add(t.toString())}async commit(){if(this.ensureCommitNotCalled(),this.lastTransactionError)throw this.lastTransactionError;const t=this.readVersions;this.mutations.forEach((e=>{t.delete(e.key.toString())})),t.forEach(((t,e)=>{const n=_s.fromPath(e);this.mutations.push(new au(n,this.precondition(n)))})),await async function(t,e){const n=Xr(t),r={writes:e.map((t=>Zu(n.serializer,t)))};await n.So("Commit",n.serializer.databaseId,ws.emptyPath(),r)}(this.datastore,this.mutations),this.committed=!0}recordVersion(t){let e;if(t.isFoundDocument())e=t.version;else{if(!t.isNoDocument())throw Hr();e=ps.min()}const n=this.readVersions.get(t.key.toString());if(n){if(!e.isEqual(n))throw new Zr(Jr.ABORTED,"Document version changed between two reads.")}else this.readVersions.set(t.key.toString(),e)}precondition(t){const e=this.readVersions.get(t.toString());return!this.writtenDocs.has(t.toString())&&e?e.isEqual(ps.min())?Qa.exists(!1):Qa.updateTime(e):Qa.none()}preconditionForUpdate(t){const e=this.readVersions.get(t.toString());if(!this.writtenDocs.has(t.toString())&&e){if(e.isEqual(ps.min()))throw new Zr(Jr.INVALID_ARGUMENT,"Can't update a document that doesn't exist.");return Qa.updateTime(e)}return Qa.exists(!0)}write(t){this.ensureCommitNotCalled(),this.mutations.push(t)}ensureCommitNotCalled(){}}class Df{constructor(t,e,n,r,s){this.asyncQueue=t,this.datastore=e,this.options=n,this.updateFunction=r,this.deferred=s,this.za=n.maxAttempts,this.jo=new Bh(this.asyncQueue,"transaction_retry")}ja(){this.za-=1,this.Ha()}Ha(){this.jo.qo((async()=>{const t=new Cf(this.datastore),e=this.Ja(t);e&&e.then((e=>{this.asyncQueue.enqueueAndForget((()=>t.commit().then((()=>{this.deferred.resolve(e)})).catch((t=>{this.Ya(t)}))))})).catch((t=>{this.Ya(t)}))}))}Ja(t){try{const e=this.updateFunction(t);return!Ws(e)&&e.catch&&e.then?e:(this.deferred.reject(Error("Transaction callback must return a Promise")),null)}catch(t){return this.deferred.reject(t),null}}Ya(t){this.za>0&&this.Za(t)?(this.za-=1,this.asyncQueue.enqueueAndForget((()=>(this.Ha(),Promise.resolve())))):this.deferred.reject(t)}Za(t){if("FirebaseError"===t.name){const e=t.code;return"aborted"===e||"failed-precondition"===e||"already-exists"===e||!mu(e)}return!1}}class Af{constructor(t,e,n,r){this.authCredentials=t,this.appCheckCredentials=e,this.asyncQueue=n,this.databaseInfo=r,this.user=qr.UNAUTHENTICATED,this.clientId=hs.newId(),this.authCredentialListener=()=>Promise.resolve(),this.appCheckCredentialListener=()=>Promise.resolve(),this.authCredentials.start(n,(async t=>{jr("FirestoreClient","Received user=",t.uid),await this.authCredentialListener(t),this.user=t})),this.appCheckCredentials.start(n,(t=>(jr("FirestoreClient","Received new app check token=",t),this.appCheckCredentialListener(t,this.user))))}get configuration(){return{asyncQueue:this.asyncQueue,databaseInfo:this.databaseInfo,clientId:this.clientId,authCredentials:this.authCredentials,appCheckCredentials:this.appCheckCredentials,initialUser:this.user,maxConcurrentLimboResolutions:100}}setCredentialChangeListener(t){this.authCredentialListener=t}setAppCheckTokenChangeListener(t){this.appCheckCredentialListener=t}verifyNotTerminated(){if(this.asyncQueue.isShuttingDown)throw new Zr(Jr.FAILED_PRECONDITION,"The client has already been terminated.")}terminate(){this.asyncQueue.enterRestrictedMode();const t=new ts;return this.asyncQueue.enqueueAndForgetEvenWhileRestricted((async()=>{try{this._onlineComponents&&await this._onlineComponents.terminate(),this._offlineComponents&&await this._offlineComponents.terminate(),this.authCredentials.shutdown(),this.appCheckCredentials.shutdown(),t.resolve()}catch(e){const n=Id(e,"Failed to shutdown persistence");t.reject(n)}})),t.promise}}async function Nf(t,e){t.asyncQueue.verifyOperationInProgress(),jr("FirestoreClient","Initializing OfflineComponentProvider");const n=t.configuration;await e.initialize(n);let r=n.initialUser;t.setCredentialChangeListener((async t=>{r.isEqual(t)||(await uh(e.localStore,t),r=t)})),e.persistence.setDatabaseDeletedListener((()=>t.terminate())),t._offlineComponents=e}async function kf(t,e){t.asyncQueue.verifyOperationInProgress();const n=await Mf(t);jr("FirestoreClient","Initializing OnlineComponentProvider"),await e.initialize(n,t.configuration),t.setCredentialChangeListener((t=>yd(e.remoteStore,t))),t.setAppCheckTokenChangeListener(((t,n)=>yd(e.remoteStore,n))),t._onlineComponents=e}function Rf(t){return"FirebaseError"===t.name?t.code===Jr.FAILED_PRECONDITION||t.code===Jr.UNIMPLEMENTED:!("undefined"!=typeof DOMException&&t instanceof DOMException)||22===t.code||20===t.code||11===t.code}async function Mf(t){if(!t._offlineComponents)if(t._uninitializedComponentsProvider){jr("FirestoreClient","Using user provided OfflineComponentProvider");try{await Nf(t,t._uninitializedComponentsProvider._offline)}catch(e){const n=e;if(!Rf(n))throw n;$r("Error using user provided cache. Falling back to memory cache: "+n),await Nf(t,new vf)}}else jr("FirestoreClient","Using default OfflineComponentProvider"),await Nf(t,new vf);return t._offlineComponents}async function Lf(t){return t._onlineComponents||(t._uninitializedComponentsProvider?(jr("FirestoreClient","Using user provided OnlineComponentProvider"),await kf(t,t._uninitializedComponentsProvider._online)):(jr("FirestoreClient","Using default OnlineComponentProvider"),await kf(t,new Ef))),t._onlineComponents}function Of(t){return Mf(t).then((t=>t.persistence))}function Pf(t){return Mf(t).then((t=>t.localStore))}function Ff(t){return Lf(t).then((t=>t.remoteStore))}function Vf(t){return Lf(t).then((t=>t.syncEngine))}function qf(t){return Lf(t).then((t=>t.datastore))}async function Bf(t){const e=await Lf(t),n=e.eventManager;return n.onListen=jd.bind(null,e.syncEngine),n.onUnlisten=$d.bind(null,e.syncEngine),n}function Uf(t,e,n={}){const r=new ts;return t.asyncQueue.enqueueAndForget((async()=>function(t,e,n,r,s){const i=new Sf({next:i=>{e.enqueueAndForget((()=>Ad(t,o)));const a=i.docs.has(n);!a&&i.fromCache?s.reject(new Zr(Jr.UNAVAILABLE,"Failed to get document because the client is offline.")):a&&i.fromCache&&r&&"server"===r.source?s.reject(new Zr(Jr.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.)')):s.resolve(i)},error:t=>s.reject(t)}),o=new Md(ea(n.path),i,{includeMetadataChanges:!0,Z_:!0});return Dd(t,o)}(await Bf(t),t.asyncQueue,e,n,r))),r.promise}function zf(t,e,n={}){const r=new ts;return t.asyncQueue.enqueueAndForget((async()=>function(t,e,n,r,s){const i=new Sf({next:n=>{e.enqueueAndForget((()=>Ad(t,o))),n.fromCache&&"server"===r.source?s.reject(new Zr(Jr.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.)')):s.resolve(n)},error:t=>s.reject(t)}),o=new Md(n,i,{includeMetadataChanges:!0,Z_:!0});return Dd(t,o)}(await Bf(t),t.asyncQueue,e,n,r))),r.promise}function Gf(t){const e={};return void 0!==t.timeoutSeconds&&(e.timeoutSeconds=t.timeoutSeconds),e}const jf=new Map;function Kf(t,e,n){if(!n)throw new Zr(Jr.INVALID_ARGUMENT,`Function ${t}() cannot be called with an empty ${e}.`)}function $f(t,e,n,r){if(!0===e&&!0===r)throw new Zr(Jr.INVALID_ARGUMENT,`${t} and ${n} cannot be used together.`)}function Qf(t){if(!_s.isDocumentKey(t))throw new Zr(Jr.INVALID_ARGUMENT,`Invalid document reference. Document references must have an even number of segments, but ${t} has ${t.length}.`)}function Hf(t){if(_s.isDocumentKey(t))throw new Zr(Jr.INVALID_ARGUMENT,`Invalid collection reference. Collection references must have an odd number of segments, but ${t} has ${t.length}.`)}function Wf(t){if(void 0===t)return"undefined";if(null===t)return"null";if("string"==typeof t)return t.length>20&&(t=`${t.substring(0,20)}...`),JSON.stringify(t);if("number"==typeof t||"boolean"==typeof t)return""+t;if("object"==typeof t){if(t instanceof Array)return"an array";{const e=function(t){return t.constructor?t.constructor.name:null}(t);return e?`a custom ${e} object`:"an object"}}return"function"==typeof t?"a function":Hr()}function Yf(t,e){if("_delegate"in t&&(t=t._delegate),!(t instanceof e)){if(e.name===t.constructor.name)throw new Zr(Jr.INVALID_ARGUMENT,"Type does not match the expected instance. Did you pass a reference from a different Firestore SDK?");{const n=Wf(t);throw new Zr(Jr.INVALID_ARGUMENT,`Expected type '${e.name}', but it was: ${n}`)}}return t}function Xf(t,e){if(e<=0)throw new Zr(Jr.INVALID_ARGUMENT,`Function ${t}() requires a positive number, but it was: ${e}.`)}class Jf{constructor(t){var e,n;if(void 0===t.host){if(void 0!==t.ssl)throw new Zr(Jr.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=null===(e=t.ssl)||void 0===e||e;if(this.credentials=t.credentials,this.ignoreUndefinedProperties=!!t.ignoreUndefinedProperties,this.localCache=t.localCache,void 0===t.cacheSizeBytes)this.cacheSizeBytes=41943040;else{if(-1!==t.cacheSizeBytes&&t.cacheSizeBytes<1048576)throw new Zr(Jr.INVALID_ARGUMENT,"cacheSizeBytes must be at least 1048576");this.cacheSizeBytes=t.cacheSizeBytes}$f("experimentalForceLongPolling",t.experimentalForceLongPolling,"experimentalAutoDetectLongPolling",t.experimentalAutoDetectLongPolling),this.experimentalForceLongPolling=!!t.experimentalForceLongPolling,this.experimentalForceLongPolling?this.experimentalAutoDetectLongPolling=!1:void 0===t.experimentalAutoDetectLongPolling?this.experimentalAutoDetectLongPolling=!0:this.experimentalAutoDetectLongPolling=!!t.experimentalAutoDetectLongPolling,this.experimentalLongPollingOptions=Gf(null!==(n=t.experimentalLongPollingOptions)&&void 0!==n?n:{}),function(t){if(void 0!==t.timeoutSeconds){if(isNaN(t.timeoutSeconds))throw new Zr(Jr.INVALID_ARGUMENT,`invalid long polling timeout: ${t.timeoutSeconds} (must not be NaN)`);if(t.timeoutSeconds<5)throw new Zr(Jr.INVALID_ARGUMENT,`invalid long polling timeout: ${t.timeoutSeconds} (minimum allowed value is 5)`);if(t.timeoutSeconds>30)throw new Zr(Jr.INVALID_ARGUMENT,`invalid long polling timeout: ${t.timeoutSeconds} (maximum allowed value is 30)`)}}(this.experimentalLongPollingOptions),this.useFetchStreams=!!t.useFetchStreams}isEqual(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&&function(t,e){return t.timeoutSeconds===e.timeoutSeconds}(this.experimentalLongPollingOptions,t.experimentalLongPollingOptions)&&this.ignoreUndefinedProperties===t.ignoreUndefinedProperties&&this.useFetchStreams===t.useFetchStreams}}class Zf{constructor(t,e,n,r){this._authCredentials=t,this._appCheckCredentials=e,this._databaseId=n,this._app=r,this.type="firestore-lite",this._persistenceKey="(lite)",this._settings=new Jf({}),this._settingsFrozen=!1}get app(){if(!this._app)throw new Zr(Jr.FAILED_PRECONDITION,"Firestore was not initialized using the Firebase SDK. 'app' is not available");return this._app}get _initialized(){return this._settingsFrozen}get _terminated(){return void 0!==this._terminateTask}_setSettings(t){if(this._settingsFrozen)throw new Zr(Jr.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 Jf(t),void 0!==t.credentials&&(this._authCredentials=function(t){if(!t)return new ns;switch(t.type){case"firstParty":return new os(t.sessionIndex||"0",t.iamToken||null,t.authTokenFactory||null);case"provider":return t.client;default:throw new Zr(Jr.INVALID_ARGUMENT,"makeAuthCredentialsProvider failed due to invalid credential type")}}(t.credentials))}_getSettings(){return this._settings}_freezeSettings(){return this._settingsFrozen=!0,this._settings}_delete(){return this._terminateTask||(this._terminateTask=this._terminate()),this._terminateTask}toJSON(){return{app:this._app,databaseId:this._databaseId,settings:this._settings}}_terminate(){return function(t){const e=jf.get(t);e&&(jr("ComponentProvider","Removing Datastore"),jf.delete(t),e.terminate())}(this),Promise.resolve()}}function tg(t,e,n,r={}){var s;const i=(t=Yf(t,Zf))._getSettings(),o=`${e}:${n}`;if("firestore.googleapis.com"!==i.host&&i.host!==o&&$r("Host has been set in both settings() and connectFirestoreEmulator(), emulator host will be used."),t._setSettings(Object.assign(Object.assign({},i),{host:o,ssl:!1})),r.mockUserToken){let e,n;if("string"==typeof r.mockUserToken)e=r.mockUserToken,n=qr.MOCK_USER;else{e=function(t,e){if(t.uid)throw new Error('The "uid" field is no longer supported by mockUserToken. Please use "sub" instead for Firebase Auth User ID.');const n=e||"demo-project",r=t.iat||0,s=t.sub||t.user_id;if(!s)throw new Error("mockUserToken must contain 'sub' or 'user_id' field!");const i=Object.assign({iss:`https://securetoken.google.com/${n}`,aud:n,iat:r,exp:r+3600,auth_time:r,sub:s,user_id:s,firebase:{sign_in_provider:"custom",identities:{}}},t);return[l(JSON.stringify({alg:"none",type:"JWT"})),l(JSON.stringify(i)),""].join(".")}(r.mockUserToken,null===(s=t._app)||void 0===s?void 0:s.options.projectId);const i=r.mockUserToken.sub||r.mockUserToken.user_id;if(!i)throw new Zr(Jr.INVALID_ARGUMENT,"mockUserToken must contain 'sub' or 'user_id' field!");n=new qr(i)}t._authCredentials=new rs(new es(e,n))}}class eg{constructor(t,e,n){this.converter=e,this._query=n,this.type="query",this.firestore=t}withConverter(t){return new eg(this.firestore,t,this._query)}}class ng{constructor(t,e,n){this.converter=e,this._key=n,this.type="document",this.firestore=t}get _path(){return this._key.path}get id(){return this._key.path.lastSegment()}get path(){return this._key.path.canonicalString()}get parent(){return new rg(this.firestore,this.converter,this._key.path.popLast())}withConverter(t){return new ng(this.firestore,t,this._key)}}class rg extends eg{constructor(t,e,n){super(t,e,ea(n)),this._path=n,this.type="collection"}get id(){return this._query.path.lastSegment()}get path(){return this._query.path.canonicalString()}get parent(){const t=this._path.popLast();return t.isEmpty()?null:new ng(this.firestore,null,new _s(t))}withConverter(t){return new rg(this.firestore,t,this._path)}}function sg(t,e,...n){if(t=v(t),Kf("collection","path",e),t instanceof Zf){const r=ws.fromString(e,...n);return Hf(r),new rg(t,null,r)}{if(!(t instanceof ng||t instanceof rg))throw new Zr(Jr.INVALID_ARGUMENT,"Expected first argument to collection() to be a CollectionReference, a DocumentReference or FirebaseFirestore");const r=t._path.child(ws.fromString(e,...n));return Hf(r),new rg(t.firestore,null,r)}}function ig(t,e){if(t=Yf(t,Zf),Kf("collectionGroup","collection id",e),e.indexOf("/")>=0)throw new Zr(Jr.INVALID_ARGUMENT,`Invalid collection ID '${e}' passed to function collectionGroup(). Collection IDs must not contain '/'.`);return new eg(t,null,function(t){return new Zo(ws.emptyPath(),t)}(e))}function og(t,e,...n){if(t=v(t),1===arguments.length&&(e=hs.newId()),Kf("doc","path",e),t instanceof Zf){const r=ws.fromString(e,...n);return Qf(r),new ng(t,null,new _s(r))}{if(!(t instanceof ng||t instanceof rg))throw new Zr(Jr.INVALID_ARGUMENT,"Expected first argument to collection() to be a CollectionReference, a DocumentReference or FirebaseFirestore");const r=t._path.child(ws.fromString(e,...n));return Qf(r),new ng(t.firestore,t instanceof rg?t.converter:null,new _s(r))}}function ag(t,e){return t=v(t),e=v(e),(t instanceof ng||t instanceof rg)&&(e instanceof ng||e instanceof rg)&&t.firestore===e.firestore&&t.path===e.path&&t.converter===e.converter}function ug(t,e){return t=v(t),e=v(e),t instanceof eg&&e instanceof eg&&t.firestore===e.firestore&&ca(t._query,e._query)&&t.converter===e.converter}class cg{constructor(){this.Xa=Promise.resolve(),this.eu=[],this.tu=!1,this.nu=[],this.ru=null,this.iu=!1,this.su=!1,this.ou=[],this.jo=new Bh(this,"async_queue_retry"),this._u=()=>{const t=Vh();t&&jr("AsyncQueue","Visibility state changed to "+t.visibilityState),this.jo.Ko()};const t=Vh();t&&"function"==typeof t.addEventListener&&t.addEventListener("visibilitychange",this._u)}get isShuttingDown(){return this.tu}enqueueAndForget(t){this.enqueue(t)}enqueueAndForgetEvenWhileRestricted(t){this.au(),this.uu(t)}enterRestrictedMode(t){if(!this.tu){this.tu=!0,this.su=t||!1;const e=Vh();e&&"function"==typeof e.removeEventListener&&e.removeEventListener("visibilitychange",this._u)}}enqueue(t){if(this.au(),this.tu)return new Promise((()=>{}));const e=new ts;return this.uu((()=>this.tu&&this.su?Promise.resolve():(t().then(e.resolve,e.reject),e.promise))).then((()=>e.promise))}enqueueRetryable(t){this.enqueueAndForget((()=>(this.eu.push(t),this.cu())))}async cu(){if(0!==this.eu.length){try{await this.eu[0](),this.eu.shift(),this.jo.reset()}catch(t){if(!Us(t))throw t;jr("AsyncQueue","Operation failed with retryable error: "+t)}this.eu.length>0&&this.jo.qo((()=>this.cu()))}}uu(t){const e=this.Xa.then((()=>(this.iu=!0,t().catch((t=>{this.ru=t,this.iu=!1;const e=function(t){let e=t.message||"";return t.stack&&(e=t.stack.includes(t.message)?t.stack:t.message+"\n"+t.stack),e}(t);throw Kr("INTERNAL UNHANDLED ERROR: ",e),t})).then((t=>(this.iu=!1,t))))));return this.Xa=e,e}enqueueAfterDelay(t,e,n){this.au(),this.ou.indexOf(t)>-1&&(e=0);const r=_d.createAndSchedule(this,t,e,n,(t=>this.lu(t)));return this.nu.push(r),r}au(){this.ru&&Hr()}verifyOperationInProgress(){}async hu(){let t;do{t=this.Xa,await t}while(t!==this.Xa)}Pu(t){for(const e of this.nu)if(e.timerId===t)return!0;return!1}Iu(t){return this.hu().then((()=>{this.nu.sort(((t,e)=>t.targetTimeMs-e.targetTimeMs));for(const e of this.nu)if(e.skipDelay(),"all"!==t&&e.timerId===t)break;return this.hu()}))}Tu(t){this.ou.push(t)}lu(t){const e=this.nu.indexOf(t);this.nu.splice(e,1)}}function lg(t){return function(t,e){if("object"!=typeof t||null===t)return!1;const n=t;for(const t of e)if(t in n&&"function"==typeof n[t])return!0;return!1}(t,["next","error","complete"])}class hg{constructor(){this._progressObserver={},this._taskCompletionResolver=new ts,this._lastProgress={taskState:"Running",totalBytes:0,totalDocuments:0,bytesLoaded:0,documentsLoaded:0}}onProgress(t,e,n){this._progressObserver={next:t,error:e,complete:n}}catch(t){return this._taskCompletionResolver.promise.catch(t)}then(t,e){return this._taskCompletionResolver.promise.then(t,e)}_completeWith(t){this._updateProgress(t),this._progressObserver.complete&&this._progressObserver.complete(),this._taskCompletionResolver.resolve(t)}_failWith(t){this._lastProgress.taskState="Error",this._progressObserver.next&&this._progressObserver.next(this._lastProgress),this._progressObserver.error&&this._progressObserver.error(t),this._taskCompletionResolver.reject(t)}_updateProgress(t){this._lastProgress=t,this._progressObserver.next&&this._progressObserver.next(t)}}const dg=-1;class fg extends Zf{constructor(t,e,n,r){super(t,e,n,r),this.type="firestore",this._queue=new cg,this._persistenceKey=(null==r?void 0:r.name)||"[DEFAULT]"}_terminate(){return this._firestoreClient||yg(this),this._firestoreClient.terminate()}}function gg(t,e,n){n||(n="(default)");const r=i._getProvider(t,"firestore");if(r.isInitialized(n)){const t=r.getImmediate({identifier:n});if(y(r.getOptions(n),e))return t;throw new Zr(Jr.FAILED_PRECONDITION,"initializeFirestore() has already been called with different options. To avoid this error, call initializeFirestore() with the same options as when it was originally called, or call getFirestore() to return the already initialized instance.")}if(void 0!==e.cacheSizeBytes&&void 0!==e.localCache)throw new Zr(Jr.INVALID_ARGUMENT,"cache and cacheSizeBytes cannot be specified at the same time as cacheSizeBytes willbe deprecated. Instead, specify the cache size in the cache object");if(void 0!==e.cacheSizeBytes&&-1!==e.cacheSizeBytes&&e.cacheSizeBytes<1048576)throw new Zr(Jr.INVALID_ARGUMENT,"cacheSizeBytes must be at least 1048576");return r.initialize({options:e,instanceIdentifier:n})}function mg(t,e){const n="object"==typeof t?t:i.getApp(),r="string"==typeof t?t:e||"(default)",s=i._getProvider(n,"firestore").getImmediate({identifier:r});if(!s._initialized){const t=(t=>{const e=(t=>{var e,n;return null===(n=null===(e=h())||void 0===e?void 0:e.emulatorHosts)||void 0===n?void 0:n[t]})(t);if(!e)return;const n=e.lastIndexOf(":");if(n<=0||n+1===e.length)throw new Error(`Invalid host ${e} with no separate hostname and port!`);const r=parseInt(e.substring(n+1),10);return"["===e[0]?[e.substring(1,n-1),r]:[e.substring(0,n),r]})("firestore");t&&tg(s,...t)}return s}function pg(t){return t._firestoreClient||yg(t),t._firestoreClient.verifyNotTerminated(),t._firestoreClient}function yg(t){var e,n,r;const s=t._freezeSettings(),i=function(t,e,n,r){return new Qi(t,e,n,r.host,r.ssl,r.experimentalForceLongPolling,r.experimentalAutoDetectLongPolling,Gf(r.experimentalLongPollingOptions),r.useFetchStreams)}(t._databaseId,(null===(e=t._app)||void 0===e?void 0:e.options.appId)||"",t._persistenceKey,s);t._firestoreClient=new Af(t._authCredentials,t._appCheckCredentials,t._queue,i),(null===(n=s.localCache)||void 0===n?void 0:n._offlineComponentProvider)&&(null===(r=s.localCache)||void 0===r?void 0:r._onlineComponentProvider)&&(t._firestoreClient._uninitializedComponentsProvider={_offlineKind:s.localCache.kind,_offline:s.localCache._offlineComponentProvider,_online:s.localCache._onlineComponentProvider})}function wg(t,e){Dg(t=Yf(t,fg));const n=pg(t);if(n._uninitializedComponentsProvider)throw new Zr(Jr.FAILED_PRECONDITION,"SDK cache is already specified.");$r("enableIndexedDbPersistence() will be deprecated in the future, you can use `FirestoreSettings.cache` instead.");const r=t._freezeSettings(),s=new Ef;return bg(n,s,new _f(s,r.cacheSizeBytes,null==e?void 0:e.forceOwnership))}function vg(t){Dg(t=Yf(t,fg));const e=pg(t);if(e._uninitializedComponentsProvider)throw new Zr(Jr.FAILED_PRECONDITION,"SDK cache is already specified.");$r("enableMultiTabIndexedDbPersistence() will be deprecated in the future, you can use `FirestoreSettings.cache` instead.");const n=t._freezeSettings(),r=new Ef;return bg(e,r,new If(r,n.cacheSizeBytes))}function bg(t,e,n){const r=new ts;return t.asyncQueue.enqueue((async()=>{try{await Nf(t,n),await kf(t,e),r.resolve()}catch(t){const e=t;if(!Rf(e))throw e;$r("Error enabling indexeddb cache. Falling back to memory cache: "+e),r.reject(e)}})).then((()=>r.promise))}function _g(t){if(t._initialized&&!t._terminated)throw new Zr(Jr.FAILED_PRECONDITION,"Persistence can only be cleared before a Firestore instance is initialized or after it is terminated.");const e=new ts;return t._queue.enqueueAndForgetEvenWhileRestricted((async()=>{try{await async function(t){if(!Vs.D())return Promise.resolve();const e=t+"main";await Vs.delete(e)}(nh(t._databaseId,t._persistenceKey)),e.resolve()}catch(t){e.reject(t)}})),e.promise}function Ig(t){return function(t){const e=new ts;return t.asyncQueue.enqueueAndForget((async()=>async function(t,e){const n=Xr(t);ed(n.remoteStore)||jr("SyncEngine","The network is disabled. The task returned by 'awaitPendingWrites()' will not complete until the network is enabled.");try{const t=await function(t){const e=Xr(t);return e.persistence.runTransaction("Get highest unacknowledged batch id","readonly",(t=>e.mutationQueue.getHighestUnacknowledgedBatchId(t)))}(n.localStore);if(-1===t)return void e.resolve();const r=n.Ca.get(t)||[];r.push(e),n.Ca.set(t,r)}catch(t){const n=Id(t,"Initialization of waitForPendingWrites() operation failed");e.reject(n)}}(await Vf(t),e))),e.promise}(pg(t=Yf(t,fg)))}function Eg(t){return function(t){return t.asyncQueue.enqueue((async()=>{const e=await Of(t),n=await Ff(t);return e.setNetworkEnabled(!0),function(t){const e=Xr(t);return e.v_.delete(0),Qh(e)}(n)}))}(pg(t=Yf(t,fg)))}function Tg(t){return function(t){return t.asyncQueue.enqueue((async()=>{const e=await Of(t),n=await Ff(t);return e.setNetworkEnabled(!1),async function(t){const e=Xr(t);e.v_.add(0),await Hh(e),e.x_.set("Offline")}(n)}))}(pg(t=Yf(t,fg)))}function Sg(t){return i._removeServiceInstance(t.app,"firestore",t._databaseId.database),t._delete()}function xg(t,e){const n=pg(t=Yf(t,fg)),r=new hg;return function(t,e,n,r){const s=function(t,e){let n;return n="string"==typeof t?wu().encode(t):t,function(t,e){return new xf(t,e)}(function(t,e){if(t instanceof Uint8Array)return Tf(t,e);if(t instanceof ArrayBuffer)return Tf(new Uint8Array(t),e);if(t instanceof ReadableStream)return t.getReader();throw new Error("Source of `toByteStreamReader` has to be a ArrayBuffer or ReadableStream")}(n),e)}(n,qh(e));t.asyncQueue.enqueueAndForget((async()=>{!function(t,e,n){const r=Xr(t);(async function(t,e,n){try{const r=await e.getMetadata();if(await function(t,e){const n=Xr(t),r=Uu(e.createTime);return n.persistence.runTransaction("hasNewerBundle","readonly",(t=>n.$r.getBundleMetadata(t,e.id))).then((t=>!!t&&t.createTime.compareTo(r)>=0))}(t.localStore,r))return await e.close(),n._completeWith(function(t){return{taskState:"Success",documentsLoaded:t.totalDocuments,bytesLoaded:t.totalBytes,totalDocuments:t.totalDocuments,totalBytes:t.totalBytes}}(r)),Promise.resolve(new Set);n._updateProgress(Fd(r));const s=new Pd(r,t.localStore,e.serializer);let i=await e.Oa();for(;i;){const t=await s.na(i);t&&n._updateProgress(t),i=await e.Oa()}const o=await s.complete();return await of(t,o.sa,void 0),await function(t,e){const n=Xr(t);return n.persistence.runTransaction("Save bundle","readwrite",(t=>n.$r.saveBundleMetadata(t,e)))}(t.localStore,r),n._completeWith(o.progress),Promise.resolve(o.ia)}catch(t){return $r("SyncEngine",`Loading bundle failed with ${t}`),n._failWith(t),Promise.resolve(new Set)}})(r,e,n).then((t=>{r.sharedClientState.notifyBundleLoaded(t)}))}(await Vf(t),s,r)}))}(n,t._databaseId,e,r),r}function Cg(t,e){return function(t,e){return t.asyncQueue.enqueue((async()=>function(t,e){const n=Xr(t);return n.persistence.runTransaction("Get named query","readonly",(t=>n.$r.getNamedQuery(t,e)))}(await Pf(t),e)))}(pg(t=Yf(t,fg)),e).then((e=>e?new eg(t,null,e.query):null))}function Dg(t){if(t._initialized||t._terminated)throw new Zr(Jr.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.")}class Ag{constructor(t="count",e){this._internalFieldPath=e,this.type="AggregateField",this.aggregateType=t}}class Ng{constructor(t,e,n){this._userDataWriter=e,this._data=n,this.type="AggregateQuerySnapshot",this.query=t}data(){return this._userDataWriter.convertObjectMap(this._data)}}class kg{constructor(t){this._byteString=t}static fromBase64String(t){try{return new kg(qi.fromBase64String(t))}catch(t){throw new Zr(Jr.INVALID_ARGUMENT,"Failed to construct data from Base64 string: "+t)}}static fromUint8Array(t){return new kg(qi.fromUint8Array(t))}toBase64(){return this._byteString.toBase64()}toUint8Array(){return this._byteString.toUint8Array()}toString(){return"Bytes(base64: "+this.toBase64()+")"}isEqual(t){return this._byteString.isEqual(t._byteString)}}class Rg{constructor(...t){for(let e=0;e90)throw new Zr(Jr.INVALID_ARGUMENT,"Latitude must be a number between -90 and 90, but was: "+t);if(!isFinite(e)||e<-180||e>180)throw new Zr(Jr.INVALID_ARGUMENT,"Longitude must be a number between -180 and 180, but was: "+e);this._lat=t,this._long=e}get latitude(){return this._lat}get longitude(){return this._long}isEqual(t){return this._lat===t._lat&&this._long===t._long}toJSON(){return{latitude:this._lat,longitude:this._long}}_compareTo(t){return ds(this._lat,t._lat)||ds(this._long,t._long)}}const Pg=/^__.*__$/;class Fg{constructor(t,e,n){this.data=t,this.fieldMask=e,this.fieldTransforms=n}toMutation(t,e){return null!==this.fieldMask?new nu(t,this.data,this.fieldMask,e,this.fieldTransforms):new eu(t,this.data,e,this.fieldTransforms)}}class Vg{constructor(t,e,n){this.data=t,this.fieldMask=e,this.fieldTransforms=n}toMutation(t,e){return new nu(t,this.data,this.fieldMask,e,this.fieldTransforms)}}function qg(t){switch(t){case 0:case 2:case 1:return!0;case 3:case 4:return!1;default:throw Hr()}}class Bg{constructor(t,e,n,r,s,i){this.settings=t,this.databaseId=e,this.serializer=n,this.ignoreUndefinedProperties=r,void 0===s&&this.Eu(),this.fieldTransforms=s||[],this.fieldMask=i||[]}get path(){return this.settings.path}get du(){return this.settings.du}Au(t){return new Bg(Object.assign(Object.assign({},this.settings),t),this.databaseId,this.serializer,this.ignoreUndefinedProperties,this.fieldTransforms,this.fieldMask)}Ru(t){var e;const n=null===(e=this.path)||void 0===e?void 0:e.child(t),r=this.Au({path:n,Vu:!1});return r.mu(t),r}fu(t){var e;const n=null===(e=this.path)||void 0===e?void 0:e.child(t),r=this.Au({path:n,Vu:!1});return r.Eu(),r}gu(t){return this.Au({path:void 0,Vu:!0})}pu(t){return om(t,this.settings.methodName,this.settings.yu||!1,this.path,this.settings.wu)}contains(t){return void 0!==this.fieldMask.find((e=>t.isPrefixOf(e)))||void 0!==this.fieldTransforms.find((e=>t.isPrefixOf(e.field)))}Eu(){if(this.path)for(let t=0;tu.covers(t.field)))}else u=null,c=o.fieldTransforms;return new Fg(new wo(a),u,c)}class jg extends Lg{_toFieldTransform(t){if(2!==t.du)throw 1===t.du?t.pu(`${this._methodName}() can only appear at the top level of your update data`):t.pu(`${this._methodName}() cannot be used with set() unless you pass {merge:true}`);return t.fieldMask.push(t.path),null}isEqual(t){return t instanceof jg}}function Kg(t,e,n){return new Bg({du:3,wu:e.settings.wu,methodName:t._methodName,Vu:n},e.databaseId,e.serializer,e.ignoreUndefinedProperties)}class $g extends Lg{_toFieldTransform(t){return new Ka(t.path,new Fa)}isEqual(t){return t instanceof $g}}class Qg extends Lg{constructor(t,e){super(t),this.bu=e}_toFieldTransform(t){const e=Kg(this,t,!0),n=this.bu.map((t=>Zg(t,e))),r=new Va(n);return new Ka(t.path,r)}isEqual(t){return t instanceof Qg&&y(this.bu,t.bu)}}class Hg extends Lg{constructor(t,e){super(t),this.bu=e}_toFieldTransform(t){const e=Kg(this,t,!0),n=this.bu.map((t=>Zg(t,e))),r=new Ba(n);return new Ka(t.path,r)}isEqual(t){return t instanceof Hg&&y(this.bu,t.bu)}}class Wg extends Lg{constructor(t,e){super(t),this.Du=e}_toFieldTransform(t){const e=new za(t.serializer,Ra(t.serializer,this.Du));return new Ka(t.path,e)}isEqual(t){return t instanceof Wg&&this.Du===t.Du}}function Yg(t,e,n,r){const s=t.Su(1,e,n);nm("Data must be an object, but it was:",s,r);const i=[],o=wo.empty();Di(r,((t,r)=>{const a=im(e,t,n);r=v(r);const u=s.fu(a);if(r instanceof jg)i.push(a);else{const t=Zg(r,u);null!=t&&(i.push(a),o.set(a,t))}}));const a=new Pi(i);return new Vg(o,a,s.fieldTransforms)}function Xg(t,e,n,r,s,i){const o=t.Su(1,e,n),a=[rm(e,r,n)],u=[s];if(i.length%2!=0)throw new Zr(Jr.INVALID_ARGUMENT,`Function ${e}() needs to be called with an even number of arguments that alternate between field names and values.`);for(let t=0;t=0;--t)if(!am(c,a[t])){const e=a[t];let n=u[t];n=v(n);const r=o.fu(e);if(n instanceof jg)c.push(e);else{const t=Zg(n,r);null!=t&&(c.push(e),l.set(e,t))}}const h=new Pi(c);return new Vg(l,h,o.fieldTransforms)}function Jg(t,e,n,r=!1){return Zg(n,t.Su(r?4:3,e))}function Zg(t,e){if(em(t=v(t)))return nm("Unsupported field value:",e,t),tm(t,e);if(t instanceof Lg)return function(t,e){if(!qg(e.du))throw e.pu(`${t._methodName}() can only be used with update() and set()`);if(!e.path)throw e.pu(`${t._methodName}() is not currently supported inside arrays`);const n=t._toFieldTransform(e);n&&e.fieldTransforms.push(n)}(t,e),null;if(void 0===t&&e.ignoreUndefinedProperties)return null;if(e.path&&e.fieldMask.push(e.path),t instanceof Array){if(e.settings.Vu&&4!==e.du)throw e.pu("Nested arrays are not supported");return function(t,e){const n=[];let r=0;for(const s of t){let t=Zg(s,e.gu(r));null==t&&(t={nullValue:"NULL_VALUE"}),n.push(t),r++}return{arrayValue:{values:n}}}(t,e)}return function(t,e){if(null===(t=v(t)))return{nullValue:"NULL_VALUE"};if("number"==typeof t)return Ra(e.serializer,t);if("boolean"==typeof t)return{booleanValue:t};if("string"==typeof t)return{stringValue:t};if(t instanceof Date){const n=ms.fromDate(t);return{timestampValue:Vu(e.serializer,n)}}if(t instanceof ms){const n=new ms(t.seconds,1e3*Math.floor(t.nanoseconds/1e3));return{timestampValue:Vu(e.serializer,n)}}if(t instanceof Og)return{geoPointValue:{latitude:t.latitude,longitude:t.longitude}};if(t instanceof kg)return{bytesValue:qu(e.serializer,t._byteString)};if(t instanceof ng){const n=e.databaseId,r=t.firestore._databaseId;if(!r.isEqual(n))throw e.pu(`Document reference is for database ${r.projectId}/${r.database} but should be for database ${n.projectId}/${n.database}`);return{referenceValue:zu(t.firestore._databaseId||e.databaseId,t._key.path)}}throw e.pu(`Unsupported field value: ${Wf(t)}`)}(t,e)}function tm(t,e){const n={};return Ai(t)?e.path&&e.path.length>0&&e.fieldMask.push(e.path):Di(t,((t,r)=>{const s=Zg(r,e.Ru(t));null!=s&&(n[t]=s)})),{mapValue:{fields:n}}}function em(t){return!("object"!=typeof t||null===t||t instanceof Array||t instanceof Date||t instanceof ms||t instanceof Og||t instanceof kg||t instanceof ng||t instanceof Lg)}function nm(t,e,n){if(!em(n)||!function(t){return"object"==typeof t&&null!==t&&(Object.getPrototypeOf(t)===Object.prototype||null===Object.getPrototypeOf(t))}(n)){const r=Wf(n);throw"an object"===r?e.pu(t+" a custom object"):e.pu(t+" "+r)}}function rm(t,e,n){if((e=v(e))instanceof Rg)return e._internalPath;if("string"==typeof e)return im(t,e);throw om("Field path arguments must be of type string or ",t,!1,void 0,n)}const sm=new RegExp("[~\\*/\\[\\]]");function im(t,e,n){if(e.search(sm)>=0)throw om(`Invalid field path (${e}). Paths must not contain '~', '*', '/', '[', or ']'`,t,!1,void 0,n);try{return new Rg(...e.split("."))._internalPath}catch(r){throw om(`Invalid field path (${e}). Paths must not be empty, begin with '.', end with '.', or contain '..'`,t,!1,void 0,n)}}function om(t,e,n,r,s){const i=r&&!r.isEmpty(),o=void 0!==s;let a=`Function ${e}() called with invalid data`;n&&(a+=" (via `toFirestore()`)"),a+=". ";let u="";return(i||o)&&(u+=" (found",i&&(u+=` in field ${r}`),o&&(u+=` in document ${s}`),u+=")"),new Zr(Jr.INVALID_ARGUMENT,a+t+u)}function am(t,e){return t.some((t=>t.isEqual(e)))}class um{constructor(t,e,n,r,s){this._firestore=t,this._userDataWriter=e,this._key=n,this._document=r,this._converter=s}get id(){return this._key.path.lastSegment()}get ref(){return new ng(this._firestore,this._converter,this._key)}exists(){return null!==this._document}data(){if(this._document){if(this._converter){const t=new cm(this._firestore,this._userDataWriter,this._key,this._document,null);return this._converter.fromFirestore(t)}return this._userDataWriter.convertValue(this._document.data.value)}}get(t){if(this._document){const e=this._document.data.field(lm("DocumentSnapshot.get",t));if(null!==e)return this._userDataWriter.convertValue(e)}}}class cm extends um{data(){return super.data()}}function lm(t,e){return"string"==typeof e?im(t,e):e instanceof Rg?e._internalPath:e._delegate._internalPath}function hm(t){if("L"===t.limitType&&0===t.explicitOrderBy.length)throw new Zr(Jr.UNIMPLEMENTED,"limitToLast() queries require specifying at least one orderBy() clause")}class dm{}class fm extends dm{}function gm(t,e,...n){let r=[];e instanceof dm&&r.push(e),r=r.concat(n),function(t){const e=t.filter((t=>t instanceof ym)).length,n=t.filter((t=>t instanceof mm)).length;if(e>1||e>0&&n>0)throw new Zr(Jr.INVALID_ARGUMENT,"InvalidQuery. When using composite filters, you cannot use more than one filter at the top level. Consider nesting the multiple filters within an `and(...)` statement. For example: change `query(query, where(...), or(...))` to `query(query, and(where(...), or(...)))`.")}(r);for(const e of r)t=e._apply(t);return t}class mm extends fm{constructor(t,e,n){super(),this._field=t,this._op=e,this._value=n,this.type="where"}static _create(t,e,n){return new mm(t,e,n)}_apply(t){const e=this._parse(t);return Lm(t._query,e),new eg(t.firestore,t.converter,aa(t._query,e))}_parse(t){const e=zg(t.firestore),n=function(t,e,n,r,s,i,o){let a;if(s.isKeyField()){if("array-contains"===i||"array-contains-any"===i)throw new Zr(Jr.INVALID_ARGUMENT,`Invalid Query. You can't perform '${i}' queries on documentId().`);if("in"===i||"not-in"===i){Mm(o,i);const e=[];for(const n of o)e.push(Rm(r,t,n));a={arrayValue:{values:e}}}else a=Rm(r,t,o)}else"in"!==i&&"not-in"!==i&&"array-contains-any"!==i||Mm(o,i),a=Jg(n,e,o,"in"===i||"not-in"===i);return Co.create(s,i,a)}(t._query,"where",e,t.firestore._databaseId,this._field,this._op,this._value);return n}}function pm(t,e,n){const r=e,s=lm("where",t);return mm._create(s,r,n)}class ym extends dm{constructor(t,e){super(),this.type=t,this._queryConstraints=e}static _create(t,e){return new ym(t,e)}_parse(t){const e=this._queryConstraints.map((e=>e._parse(t))).filter((t=>t.getFilters().length>0));return 1===e.length?e[0]:Do.create(e,this._getOperator())}_apply(t){const e=this._parse(t);return 0===e.getFilters().length?t:(function(t,e){let n=t;const r=e.getFlattenedFilters();for(const t of r)Lm(n,t),n=aa(n,t)}(t._query,e),new eg(t.firestore,t.converter,aa(t._query,e)))}_getQueryConstraints(){return this._queryConstraints}_getOperator(){return"and"===this.type?"and":"or"}}function wm(...t){return t.forEach((t=>Om("or",t))),ym._create("or",t)}function vm(...t){return t.forEach((t=>Om("and",t))),ym._create("and",t)}class bm extends fm{constructor(t,e){super(),this._field=t,this._direction=e,this.type="orderBy"}static _create(t,e){return new bm(t,e)}_apply(t){const e=function(t,e,n){if(null!==t.startAt)throw new Zr(Jr.INVALID_ARGUMENT,"Invalid query. You must not call startAt() or startAfter() before calling orderBy().");if(null!==t.endAt)throw new Zr(Jr.INVALID_ARGUMENT,"Invalid query. You must not call endAt() or endBefore() before calling orderBy().");return new To(e,n)}(t._query,this._field,this._direction);return new eg(t.firestore,t.converter,function(t,e){const n=t.explicitOrderBy.concat([e]);return new Zo(t.path,t.collectionGroup,n,t.filters.slice(),t.limit,t.limitType,t.startAt,t.endAt)}(t._query,e))}}function _m(t,e="asc"){const n=e,r=lm("orderBy",t);return bm._create(r,n)}class Im extends fm{constructor(t,e,n){super(),this.type=t,this._limit=e,this._limitType=n}static _create(t,e,n){return new Im(t,e,n)}_apply(t){return new eg(t.firestore,t.converter,ua(t._query,this._limit,this._limitType))}}function Em(t){return Xf("limit",t),Im._create("limit",t,"F")}function Tm(t){return Xf("limitToLast",t),Im._create("limitToLast",t,"L")}class Sm extends fm{constructor(t,e,n){super(),this.type=t,this._docOrFields=e,this._inclusive=n}static _create(t,e,n){return new Sm(t,e,n)}_apply(t){const e=km(t,this.type,this._docOrFields,this._inclusive);return new eg(t.firestore,t.converter,function(t,e){return new Zo(t.path,t.collectionGroup,t.explicitOrderBy.slice(),t.filters.slice(),t.limit,t.limitType,e,t.endAt)}(t._query,e))}}function xm(...t){return Sm._create("startAt",t,!0)}function Cm(...t){return Sm._create("startAfter",t,!1)}class Dm extends fm{constructor(t,e,n){super(),this.type=t,this._docOrFields=e,this._inclusive=n}static _create(t,e,n){return new Dm(t,e,n)}_apply(t){const e=km(t,this.type,this._docOrFields,this._inclusive);return new eg(t.firestore,t.converter,function(t,e){return new Zo(t.path,t.collectionGroup,t.explicitOrderBy.slice(),t.filters.slice(),t.limit,t.limitType,t.startAt,e)}(t._query,e))}}function Am(...t){return Dm._create("endBefore",t,!1)}function Nm(...t){return Dm._create("endAt",t,!0)}function km(t,e,n,r){if(n[0]=v(n[0]),n[0]instanceof um)return function(t,e,n,r,s){if(!r)throw new Zr(Jr.NOT_FOUND,`Can't use a DocumentSnapshot that doesn't exist for ${n}().`);const i=[];for(const n of sa(t))if(n.field.isKeyField())i.push(io(e,r.key));else{const t=r.data.field(n.field);if(ji(t))throw new Zr(Jr.INVALID_ARGUMENT,'Invalid query. You are trying to start or end a query using a document for which the field "'+n.field+'" is an uncommitted server timestamp. (Since the value of this field is unknown, you cannot start/end a query with it.)');if(null===t){const t=n.field.canonicalString();throw new Zr(Jr.INVALID_ARGUMENT,`Invalid query. You are trying to start or end a query using a document for which the field '${t}' (used as the orderBy) does not exist.`)}i.push(t)}return new _o(i,s)}(t._query,t.firestore._databaseId,e,n[0]._document,r);{const s=zg(t.firestore);return function(t,e,n,r,s,i){const o=t.explicitOrderBy;if(s.length>o.length)throw new Zr(Jr.INVALID_ARGUMENT,`Too many arguments provided to ${r}(). The number of arguments must be less than or equal to the number of orderBy() clauses`);const a=[];for(let i=0;i=0)return t.op;return null}(t.filters,function(t){switch(t){case"!=":return["!=","not-in"];case"array-contains-any":case"in":return["not-in"];case"not-in":return["array-contains-any","in","not-in","!="];default:return[]}}(e.op));if(null!==n)throw n===e.op?new Zr(Jr.INVALID_ARGUMENT,`Invalid query. You cannot use more than one '${e.op.toString()}' filter.`):new Zr(Jr.INVALID_ARGUMENT,`Invalid query. You cannot use '${e.op.toString()}' filters with '${n.toString()}' filters.`)}function Om(t,e){if(!(e instanceof mm||e instanceof ym))throw new Zr(Jr.INVALID_ARGUMENT,`Function ${t}() requires AppliableConstraints created with a call to 'where(...)', 'or(...)', or 'and(...)'.`)}class Pm{convertValue(t,e="none"){switch(Xi(t)){case 0:return null;case 1:return t.booleanValue;case 2:return zi(t.integerValue||t.doubleValue);case 3:return this.convertTimestamp(t.timestampValue);case 4:return this.convertServerTimestamp(t,e);case 5:return t.stringValue;case 6:return this.convertBytes(Gi(t.bytesValue));case 7:return this.convertReference(t.referenceValue);case 8:return this.convertGeoPoint(t.geoPointValue);case 9:return this.convertArray(t.arrayValue,e);case 10:return this.convertObject(t.mapValue,e);default:throw Hr()}}convertObject(t,e){return this.convertObjectMap(t.fields,e)}convertObjectMap(t,e="none"){const n={};return Di(t,((t,r)=>{n[t]=this.convertValue(r,e)})),n}convertGeoPoint(t){return new Og(zi(t.latitude),zi(t.longitude))}convertArray(t,e){return(t.values||[]).map((t=>this.convertValue(t,e)))}convertServerTimestamp(t,e){switch(e){case"previous":const n=Ki(t);return null==n?null:this.convertValue(n,e);case"estimate":return this.convertTimestamp($i(t));default:return null}}convertTimestamp(t){const e=Ui(t);return new ms(e.seconds,e.nanos)}convertDocumentKey(t,e){const n=ws.fromString(t);Wr(dc(n));const r=new Hi(n.get(1),n.get(3)),s=new _s(n.popFirst(5));return r.isEqual(e)||Kr(`Document ${s} 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.`),s}}function Fm(t,e,n){let r;return r=t?n&&(n.merge||n.mergeFields)?t.toFirestore(e,n):t.toFirestore(e):e,r}class Vm extends Pm{constructor(t){super(),this.firestore=t}convertBytes(t){return new kg(t)}convertReference(t){const e=this.convertDocumentKey(t,this.firestore._databaseId);return new ng(this.firestore,null,e)}}function qm(t){return new Ag("sum",rm("sum",t))}function Bm(t){return new Ag("avg",rm("average",t))}function Um(){return new Ag("count")}function zm(t,e){var n,r;return t instanceof Ag&&e instanceof Ag&&t.aggregateType===e.aggregateType&&(null===(n=t._internalFieldPath)||void 0===n?void 0:n.canonicalString())===(null===(r=e._internalFieldPath)||void 0===r?void 0:r.canonicalString())}function Gm(t,e){return ug(t.query,e.query)&&y(t.data(),e.data())}class jm{constructor(t,e){this.hasPendingWrites=t,this.fromCache=e}isEqual(t){return this.hasPendingWrites===t.hasPendingWrites&&this.fromCache===t.fromCache}}class Km extends um{constructor(t,e,n,r,s,i){super(t,e,n,r,i),this._firestore=t,this._firestoreImpl=t,this.metadata=s}exists(){return super.exists()}data(t={}){if(this._document){if(this._converter){const e=new $m(this._firestore,this._userDataWriter,this._key,this._document,this.metadata,null);return this._converter.fromFirestore(e,t)}return this._userDataWriter.convertValue(this._document.data.value,t.serverTimestamps)}}get(t,e={}){if(this._document){const n=this._document.data.field(lm("DocumentSnapshot.get",t));if(null!==n)return this._userDataWriter.convertValue(n,e.serverTimestamps)}}}class $m extends Km{data(t={}){return super.data(t)}}class Qm{constructor(t,e,n,r){this._firestore=t,this._userDataWriter=e,this._snapshot=r,this.metadata=new jm(r.hasPendingWrites,r.fromCache),this.query=n}get docs(){const t=[];return this.forEach((e=>t.push(e))),t}get size(){return this._snapshot.docs.size}get empty(){return 0===this.size}forEach(t,e){this._snapshot.docs.forEach((n=>{t.call(e,new $m(this._firestore,this._userDataWriter,n.key,n,new jm(this._snapshot.mutatedKeys.has(n.key),this._snapshot.fromCache),this.query.converter))}))}docChanges(t={}){const e=!!t.includeMetadataChanges;if(e&&this._snapshot.excludesMetadataChanges)throw new Zr(Jr.INVALID_ARGUMENT,"To include metadata changes with your document changes, you must also pass { includeMetadataChanges:true } to onSnapshot().");return this._cachedChanges&&this._cachedChangesIncludeMetadataChanges===e||(this._cachedChanges=function(t,e){if(t._snapshot.oldDocs.isEmpty()){let e=0;return t._snapshot.docChanges.map((n=>{const r=new $m(t._firestore,t._userDataWriter,n.doc.key,n.doc,new jm(t._snapshot.mutatedKeys.has(n.doc.key),t._snapshot.fromCache),t.query.converter);return n.doc,{type:"added",doc:r,oldIndex:-1,newIndex:e++}}))}{let n=t._snapshot.oldDocs;return t._snapshot.docChanges.filter((t=>e||3!==t.type)).map((e=>{const r=new $m(t._firestore,t._userDataWriter,e.doc.key,e.doc,new jm(t._snapshot.mutatedKeys.has(e.doc.key),t._snapshot.fromCache),t.query.converter);let s=-1,i=-1;return 0!==e.type&&(s=n.indexOf(e.doc.key),n=n.delete(e.doc.key)),1!==e.type&&(n=n.add(e.doc),i=n.indexOf(e.doc.key)),{type:Hm(e.type),doc:r,oldIndex:s,newIndex:i}}))}}(this,e),this._cachedChangesIncludeMetadataChanges=e),this._cachedChanges}}function Hm(t){switch(t){case 0:return"added";case 2:case 3:return"modified";case 1:return"removed";default:return Hr()}}function Wm(t,e){return t instanceof Km&&e instanceof Km?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 Qm&&e instanceof Qm&&t._firestore===e._firestore&&ug(t.query,e.query)&&t.metadata.isEqual(e.metadata)&&t._snapshot.isEqual(e._snapshot)}function Ym(t){t=Yf(t,ng);const e=Yf(t.firestore,fg);return Uf(pg(e),t._key).then((n=>lp(e,t,n)))}class Xm extends Pm{constructor(t){super(),this.firestore=t}convertBytes(t){return new kg(t)}convertReference(t){const e=this.convertDocumentKey(t,this.firestore._databaseId);return new ng(this.firestore,null,e)}}function Jm(t){t=Yf(t,ng);const e=Yf(t.firestore,fg),n=pg(e),r=new Xm(e);return function(t,e){const n=new ts;return t.asyncQueue.enqueueAndForget((async()=>async function(t,e,n){try{const r=await function(t,e){const n=Xr(t);return n.persistence.runTransaction("read document","readonly",(t=>n.localDocuments.getDocument(t,e)))}(t,e);r.isFoundDocument()?n.resolve(r):r.isNoDocument()?n.resolve(null):n.reject(new Zr(Jr.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.)"))}catch(t){const r=Id(t,`Failed to get document '${e} from cache`);n.reject(r)}}(await Pf(t),e,n))),n.promise}(n,t._key).then((n=>new Km(e,r,t._key,n,new jm(null!==n&&n.hasLocalMutations,!0),t.converter)))}function Zm(t){t=Yf(t,ng);const e=Yf(t.firestore,fg);return Uf(pg(e),t._key,{source:"server"}).then((n=>lp(e,t,n)))}function tp(t){t=Yf(t,eg);const e=Yf(t.firestore,fg),n=pg(e),r=new Xm(e);return hm(t._query),zf(n,t._query).then((n=>new Qm(e,r,t,n)))}function ep(t){t=Yf(t,eg);const e=Yf(t.firestore,fg),n=pg(e),r=new Xm(e);return function(t,e){const n=new ts;return t.asyncQueue.enqueueAndForget((async()=>async function(t,e,n){try{const r=await gh(t,e,!0),s=new Bd(e,r.hs),i=s.ha(r.documents),o=s.applyChanges(i,!1);n.resolve(o.snapshot)}catch(t){const r=Id(t,`Failed to execute query '${e} against cache`);n.reject(r)}}(await Pf(t),e,n))),n.promise}(n,t._query).then((n=>new Qm(e,r,t,n)))}function np(t){t=Yf(t,eg);const e=Yf(t.firestore,fg),n=pg(e),r=new Xm(e);return zf(n,t._query,{source:"server"}).then((n=>new Qm(e,r,t,n)))}function rp(t,e,n){t=Yf(t,ng);const r=Yf(t.firestore,fg),s=Fm(t.converter,e,n);return cp(r,[Gg(zg(r),"setDoc",t._key,s,null!==t.converter,n).toMutation(t._key,Qa.none())])}function sp(t,e,n,...r){t=Yf(t,ng);const s=Yf(t.firestore,fg),i=zg(s);let o;return o="string"==typeof(e=v(e))||e instanceof Rg?Xg(i,"updateDoc",t._key,e,n,r):Yg(i,"updateDoc",t._key,e),cp(s,[o.toMutation(t._key,Qa.exists(!0))])}function ip(t){return cp(Yf(t.firestore,fg),[new ou(t._key,Qa.none())])}function op(t,e){const n=Yf(t.firestore,fg),r=og(t),s=Fm(t.converter,e);return cp(n,[Gg(zg(t.firestore),"addDoc",r._key,s,null!==t.converter,{}).toMutation(r._key,Qa.exists(!1))]).then((()=>r))}function ap(t,...e){var n,r,s;t=v(t);let i={includeMetadataChanges:!1},o=0;"object"!=typeof e[o]||lg(e[o])||(i=e[o],o++);const a={includeMetadataChanges:i.includeMetadataChanges};if(lg(e[o])){const t=e[o];e[o]=null===(n=t.next)||void 0===n?void 0:n.bind(t),e[o+1]=null===(r=t.error)||void 0===r?void 0:r.bind(t),e[o+2]=null===(s=t.complete)||void 0===s?void 0:s.bind(t)}let u,c,l;if(t instanceof ng)c=Yf(t.firestore,fg),l=ea(t._key.path),u={next:n=>{e[o]&&e[o](lp(c,t,n))},error:e[o+1],complete:e[o+2]};else{const n=Yf(t,eg);c=Yf(n.firestore,fg),l=n._query;const r=new Xm(c);u={next:t=>{e[o]&&e[o](new Qm(c,r,n,t))},error:e[o+1],complete:e[o+2]},hm(t._query)}return function(t,e,n,r){const s=new Sf(r),i=new Md(e,s,n);return t.asyncQueue.enqueueAndForget((async()=>Dd(await Bf(t),i))),()=>{s.La(),t.asyncQueue.enqueueAndForget((async()=>Ad(await Bf(t),i)))}}(pg(c),l,a,u)}function up(t,e){return function(t,e){const n=new Sf(e);return t.asyncQueue.enqueueAndForget((async()=>function(t,e){Xr(t).K_.add(e),e.next()}(await Bf(t),n))),()=>{n.La(),t.asyncQueue.enqueueAndForget((async()=>function(t,e){Xr(t).K_.delete(e)}(await Bf(t),n)))}}(pg(t=Yf(t,fg)),lg(e)?e:{next:e})}function cp(t,e){return function(t,e){const n=new ts;return t.asyncQueue.enqueueAndForget((async()=>async function(t,e,n){const r=wf(t);try{const t=await function(t,e){const n=Xr(t),r=ms.now(),s=e.reduce(((t,e)=>t.add(e.key)),Ca());let i,o;return n.persistence.runTransaction("Locally write mutations","readwrite",(t=>{let a=wa(),u=Ca();return n.os.getEntries(t,s).next((t=>{a=t,a.forEach(((t,e)=>{e.isValidDocument()||(u=u.add(t))}))})).next((()=>n.localDocuments.getOverlayedDocuments(t,a))).next((s=>{i=s;const o=[];for(const t of e){const e=Za(t,i.get(t.key).overlayedDocument);null!=e&&o.push(new nu(t.key,e,vo(e.value.mapValue),Qa.exists(!0)))}return n.mutationQueue.addMutationBatch(t,r,o,e)})).next((e=>{o=e;const r=e.applyToLocalDocumentSet(i,u);return n.documentOverlayCache.saveOverlays(t,e.batchId,r)}))})).then((()=>({batchId:o.batchId,changes:_a(i)})))}(r.localStore,e);r.sharedClientState.addPendingMutation(t.batchId),function(t,e,n){let r=t.Da[t.currentUser.toKey()];r||(r=new Ni(ds)),r=r.insert(e,n),t.Da[t.currentUser.toKey()]=r}(r,t.batchId,n),await of(r,t.changes),await ud(r.remoteStore)}catch(t){const e=Id(t,"Failed to persist write");n.reject(e)}}(await Vf(t),e,n))),n.promise}(pg(t),e)}function lp(t,e,n){const r=n.docs.get(e._key),s=new Xm(t);return new Km(t,s,e._key,r,new jm(n.hasPendingWrites,n.fromCache),e.converter)}function hp(t){return dp(t,{count:Um()})}function dp(t,e){const n=Yf(t.firestore,fg),r=pg(n),s=function(t,e){const n=[];for(const r in t)Object.prototype.hasOwnProperty.call(t,r)&&n.push(e(t[r],r,t));return n}(e,((t,e)=>new hu(e,t.aggregateType,t._internalFieldPath)));return function(t,e,n){const r=new ts;return t.asyncQueue.enqueueAndForget((async()=>{try{const s=await qf(t);r.resolve(async function(t,e,n){var r;const s=Xr(t),{request:i,V_:o,parent:a}=function(t,e,n){const{ut:r,parent:s}=nc(t,e),i={},o=[];let a=0;return n.forEach((t=>{const e="aggregate_"+a++;i[e]=t.alias,"count"===t.aggregateType?o.push({alias:e,count:{}}):"avg"===t.aggregateType?o.push({alias:e,avg:{field:uc(t.fieldPath)}}):"sum"===t.aggregateType&&o.push({alias:e,sum:{field:uc(t.fieldPath)}})})),{request:{structuredAggregationQuery:{aggregations:o,structuredQuery:r.structuredQuery},parent:r.parent},V_:i,parent:s}}(s.serializer,function(t){const e=Xr(t);return e.Pe||(e.Pe=oa(e,t.explicitOrderBy)),e.Pe}(e),n);s.connection.wo||delete i.parent;const u=(await s.vo("RunAggregationQuery",s.serializer.databaseId,a,i,1)).filter((t=>!!t.result));Wr(1===u.length);const c=null===(r=u[0].result)||void 0===r?void 0:r.aggregateFields;return Object.keys(c).reduce(((t,e)=>(t[o[e]]=c[e],t)),{})}(s,e,n))}catch(t){r.reject(t)}})),r.promise}(r,t._query,s).then((e=>function(t,e,n){const r=new Xm(t);return new Ng(e,r,n)}(n,t,e)))}class fp{constructor(t){this.kind="memory",this._onlineComponentProvider=new Ef,(null==t?void 0:t.garbageCollector)?this._offlineComponentProvider=t.garbageCollector._offlineComponentProvider:this._offlineComponentProvider=new vf}toJSON(){return{kind:this.kind}}}class gp{constructor(t){let e;this.kind="persistent",(null==t?void 0:t.tabManager)?(t.tabManager._initialize(t),e=t.tabManager):(e=Ep(void 0),e._initialize(t)),this._onlineComponentProvider=e._onlineComponentProvider,this._offlineComponentProvider=e._offlineComponentProvider}toJSON(){return{kind:this.kind}}}class mp{constructor(){this.kind="memoryEager",this._offlineComponentProvider=new vf}toJSON(){return{kind:this.kind}}}class pp{constructor(t){this.kind="memoryLru",this._offlineComponentProvider=new bf(t)}toJSON(){return{kind:this.kind}}}function yp(){return new mp}function wp(t){return new pp(null==t?void 0:t.cacheSizeBytes)}function vp(t){return new fp(t)}function bp(t){return new gp(t)}class _p{constructor(t){this.forceOwnership=t,this.kind="persistentSingleTab"}toJSON(){return{kind:this.kind}}_initialize(t){this._onlineComponentProvider=new Ef,this._offlineComponentProvider=new _f(this._onlineComponentProvider,null==t?void 0:t.cacheSizeBytes,this.forceOwnership)}}class Ip{constructor(){this.kind="PersistentMultipleTab"}toJSON(){return{kind:this.kind}}_initialize(t){this._onlineComponentProvider=new Ef,this._offlineComponentProvider=new If(this._onlineComponentProvider,null==t?void 0:t.cacheSizeBytes)}}function Ep(t){return new _p(null==t?void 0:t.forceOwnership)}function Tp(){return new Ip}const Sp={maxAttempts:5};class xp{constructor(t,e){this._firestore=t,this._commitHandler=e,this._mutations=[],this._committed=!1,this._dataReader=zg(t)}set(t,e,n){this._verifyNotCommitted();const r=Cp(t,this._firestore),s=Fm(r.converter,e,n),i=Gg(this._dataReader,"WriteBatch.set",r._key,s,null!==r.converter,n);return this._mutations.push(i.toMutation(r._key,Qa.none())),this}update(t,e,n,...r){this._verifyNotCommitted();const s=Cp(t,this._firestore);let i;return i="string"==typeof(e=v(e))||e instanceof Rg?Xg(this._dataReader,"WriteBatch.update",s._key,e,n,r):Yg(this._dataReader,"WriteBatch.update",s._key,e),this._mutations.push(i.toMutation(s._key,Qa.exists(!0))),this}delete(t){this._verifyNotCommitted();const e=Cp(t,this._firestore);return this._mutations=this._mutations.concat(new ou(e._key,Qa.none())),this}commit(){return this._verifyNotCommitted(),this._committed=!0,this._mutations.length>0?this._commitHandler(this._mutations):Promise.resolve()}_verifyNotCommitted(){if(this._committed)throw new Zr(Jr.FAILED_PRECONDITION,"A write batch can no longer be used after commit() has been called.")}}function Cp(t,e){if((t=v(t)).firestore!==e)throw new Zr(Jr.INVALID_ARGUMENT,"Provided document reference is from a different Firestore instance.");return t}class Dp extends class{constructor(t,e){this._firestore=t,this._transaction=e,this._dataReader=zg(t)}get(t){const e=Cp(t,this._firestore),n=new Vm(this._firestore);return this._transaction.lookup([e._key]).then((t=>{if(!t||1!==t.length)return Hr();const r=t[0];if(r.isFoundDocument())return new um(this._firestore,n,r.key,r,e.converter);if(r.isNoDocument())return new um(this._firestore,n,e._key,null,e.converter);throw Hr()}))}set(t,e,n){const r=Cp(t,this._firestore),s=Fm(r.converter,e,n),i=Gg(this._dataReader,"Transaction.set",r._key,s,null!==r.converter,n);return this._transaction.set(r._key,i),this}update(t,e,n,...r){const s=Cp(t,this._firestore);let i;return i="string"==typeof(e=v(e))||e instanceof Rg?Xg(this._dataReader,"Transaction.update",s._key,e,n,r):Yg(this._dataReader,"Transaction.update",s._key,e),this._transaction.update(s._key,i),this}delete(t){const e=Cp(t,this._firestore);return this._transaction.delete(e._key),this}}{constructor(t,e){super(t,e),this._firestore=t}get(t){const e=Cp(t,this._firestore),n=new Xm(this._firestore);return super.get(t).then((t=>new Km(this._firestore,n,e._key,t._document,new jm(!1,!1),e.converter)))}}function Ap(t,e,n){t=Yf(t,fg);const r=Object.assign(Object.assign({},Sp),n);return function(t){if(t.maxAttempts<1)throw new Zr(Jr.INVALID_ARGUMENT,"Max attempts must be at least 1")}(r),function(t,e,n){const r=new ts;return t.asyncQueue.enqueueAndForget((async()=>{const s=await qf(t);new Df(t.asyncQueue,s,n,e,r).ja()})),r.promise}(pg(t),(n=>e(new Dp(t,n))),r)}function Np(){return new jg("deleteField")}function kp(){return new $g("serverTimestamp")}function Rp(...t){return new Qg("arrayUnion",t)}function Mp(...t){return new Hg("arrayRemove",t)}function Lp(t){return new Wg("increment",t)}function Op(t){return pg(t=Yf(t,fg)),new xp(t,(e=>cp(t,e)))}function Pp(t,e){var n;const r=pg(t=Yf(t,fg));if(!r._uninitializedComponentsProvider||"memory"===(null===(n=r._uninitializedComponentsProvider)||void 0===n?void 0:n._offlineKind))return $r("Cannot enable indexes when persistence is disabled"),Promise.resolve();const s=function(t){const e="string"==typeof t?function(t){try{return JSON.parse(t)}catch(t){throw new Zr(Jr.INVALID_ARGUMENT,"Failed to parse JSON: "+(null==t?void 0:t.message))}}(t):t,n=[];if(Array.isArray(e.indexes))for(const t of e.indexes){const e=Fp(t,"collectionGroup"),r=[];if(Array.isArray(t.fields))for(const e of t.fields){const t=im("setIndexConfiguration",Fp(e,"fieldPath"));"CONTAINS"===e.arrayConfig?r.push(new xs(t,2)):"ASCENDING"===e.order?r.push(new xs(t,0)):"DESCENDING"===e.order&&r.push(new xs(t,1))}n.push(new Is(Is.UNKNOWN_ID,e,r,Ds.empty()))}return n}(e);return function(t,e){return t.asyncQueue.enqueue((async()=>async function(t,e){const n=Xr(t),r=n.indexManager,s=[];return n.persistence.runTransaction("Configure indexes","readwrite",(t=>r.getFieldIndexes(t).next((n=>function(t,e,n,r,s){t=[...t],e=[...e],t.sort(n),e.sort(n);const i=t.length,o=e.length;let a=0,u=0;for(;a0?r(e[a++]):(a++,u++)}for(;a{s.push(r.addFieldIndex(t,e))}),(e=>{s.push(r.deleteFieldIndex(t,e))})))).next((()=>Ps.waitFor(s)))))}(await Pf(t),e)))}(r,s)}function Fp(t,e){if("string"!=typeof t[e])throw new Zr(Jr.INVALID_ARGUMENT,"Missing string value for: "+e);return t[e]}class Vp{constructor(t){this._client=t,this.type="PersistentCacheIndexManager"}}function qp(t){var e;t=Yf(t,fg);const n=jp.get(t);if(n)return n;const r=pg(t);if("persistent"!==(null===(e=r._uninitializedComponentsProvider)||void 0===e?void 0:e._offlineKind))return null;const s=new Vp(r);return jp.set(t,s),s}function Bp(t){Gp(t,!0)}function Up(t){Gp(t,!1)}function zp(t){t._client.verifyNotTerminated(),function(t){return t.asyncQueue.enqueue((async()=>function(t){const e=Xr(t),n=e.indexManager;return e.persistence.runTransaction("Delete All Indexes","readwrite",(t=>n.deleteAllFieldIndexes(t)))}(await Pf(t))))}(t._client).then((t=>jr("deleting all persistent cache indexes succeeded"))).catch((t=>$r("deleting all persistent cache indexes failed",t)))}function Gp(t,e){t._client.verifyNotTerminated(),function(t,e){return t.asyncQueue.enqueue((async()=>function(t,e){Xr(t).ts.Ui=e}(await Pf(t),e)))}(t._client,e).then((t=>jr(`setting persistent cache index auto creation isEnabled=${e} succeeded`))).catch((t=>$r(`setting persistent cache index auto creation isEnabled=${e} failed`,t)))}const jp=new WeakMap;class Kp{constructor(){throw new Error("instances of this class should not be created")}static onExistenceFilterMismatch(t){return $p.instance.onExistenceFilterMismatch(t)}}class $p{constructor(){this.Cu=new Map}static get instance(){return Qp||(Qp=new $p,function(t){if(yu)throw new Error("a TestingHooksSpi instance is already set");yu=t}(Qp)),Qp}tt(t){this.Cu.forEach((e=>e(t)))}onExistenceFilterMismatch(t){const e=Symbol(),n=this.Cu;return n.set(e,t),()=>n.delete(e)}}let Qp=null;!function(t,e=!0){!function(t){Br=t}(i.SDK_VERSION),i._registerComponent(new b("firestore",((t,{instanceIdentifier:n,options:r})=>{const s=t.getProvider("app").getImmediate(),i=new fg(new ss(t.getProvider("auth-internal")),new us(t.getProvider("app-check-internal")),function(t,e){if(!Object.prototype.hasOwnProperty.apply(t.options,["projectId"]))throw new Zr(Jr.INVALID_ARGUMENT,'"projectId" not provided in firebase.initializeApp.');return new Hi(t.options.projectId,e)}(s,n),s);return r=Object.assign({useFetchStreams:e},r),i._setSettings(r),i}),"PUBLIC").setMultipleInstances(!0)),i.registerVersion(Vr,"4.4.2",t),i.registerVersion(Vr,"4.4.2","esm2017")}()}))})(); \ No newline at end of file diff --git a/frontend-dist/firebase-firestore.f72d0b8a.js b/frontend-dist/firebase-firestore.f72d0b8a.js new file mode 100644 index 0000000000..cb3c6ee7b3 --- /dev/null +++ b/frontend-dist/firebase-firestore.f72d0b8a.js @@ -0,0 +1 @@ +var t="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{};function e(t,e,n,r){Object.defineProperty(t,e,{get:n,set:r,enumerable:!0,configurable:!0})}var n=t.parcelRequire94c2;n.register("4rxkr",(function(r,s){e(r.exports,"setLogLevel",(()=>Gr)),e(r.exports,"_logWarn",(()=>$r)),e(r.exports,"_debugAssert",(()=>Yr)),e(r.exports,"FirestoreError",(()=>Zr)),e(r.exports,"_EmptyAuthCredentialsProvider",(()=>ns)),e(r.exports,"_EmptyAppCheckTokenProvider",(()=>cs)),e(r.exports,"_AutoId",(()=>hs)),e(r.exports,"Timestamp",(()=>ms)),e(r.exports,"_FieldPath",(()=>bs)),e(r.exports,"_DocumentKey",(()=>_s)),e(r.exports,"_isBase64Available",(()=>Vi)),e(r.exports,"_ByteString",(()=>qi)),e(r.exports,"_DatabaseId",(()=>Hi)),e(r.exports,"_validateIsNotUsedTogether",(()=>$f)),e(r.exports,"_cast",(()=>Yf)),e(r.exports,"connectFirestoreEmulator",(()=>tg)),e(r.exports,"Query",(()=>eg)),e(r.exports,"DocumentReference",(()=>ng)),e(r.exports,"CollectionReference",(()=>rg)),e(r.exports,"collection",(()=>sg)),e(r.exports,"collectionGroup",(()=>ig)),e(r.exports,"doc",(()=>og)),e(r.exports,"refEqual",(()=>ag)),e(r.exports,"queryEqual",(()=>ug)),e(r.exports,"LoadBundleTask",(()=>hg)),e(r.exports,"CACHE_SIZE_UNLIMITED",(()=>dg)),e(r.exports,"Firestore",(()=>fg)),e(r.exports,"initializeFirestore",(()=>gg)),e(r.exports,"getFirestore",(()=>mg)),e(r.exports,"ensureFirestoreConfigured",(()=>pg)),e(r.exports,"enableIndexedDbPersistence",(()=>wg)),e(r.exports,"enableMultiTabIndexedDbPersistence",(()=>vg)),e(r.exports,"clearIndexedDbPersistence",(()=>_g)),e(r.exports,"waitForPendingWrites",(()=>Ig)),e(r.exports,"enableNetwork",(()=>Eg)),e(r.exports,"disableNetwork",(()=>Tg)),e(r.exports,"terminate",(()=>Sg)),e(r.exports,"loadBundle",(()=>xg)),e(r.exports,"namedQuery",(()=>Cg)),e(r.exports,"AggregateField",(()=>Ag)),e(r.exports,"AggregateQuerySnapshot",(()=>Ng)),e(r.exports,"Bytes",(()=>kg)),e(r.exports,"FieldPath",(()=>Rg)),e(r.exports,"documentId",(()=>Mg)),e(r.exports,"FieldValue",(()=>Lg)),e(r.exports,"GeoPoint",(()=>Og)),e(r.exports,"QueryConstraint",(()=>fm)),e(r.exports,"query",(()=>gm)),e(r.exports,"QueryCompositeFilterConstraint",(()=>ym)),e(r.exports,"QueryFieldFilterConstraint",(()=>mm)),e(r.exports,"where",(()=>pm)),e(r.exports,"or",(()=>wm)),e(r.exports,"and",(()=>vm)),e(r.exports,"QueryOrderByConstraint",(()=>bm)),e(r.exports,"orderBy",(()=>_m)),e(r.exports,"QueryLimitConstraint",(()=>Im)),e(r.exports,"limit",(()=>Em)),e(r.exports,"limitToLast",(()=>Tm)),e(r.exports,"QueryStartAtConstraint",(()=>Sm)),e(r.exports,"startAt",(()=>xm)),e(r.exports,"startAfter",(()=>Cm)),e(r.exports,"QueryEndAtConstraint",(()=>Dm)),e(r.exports,"endBefore",(()=>Am)),e(r.exports,"endAt",(()=>Nm)),e(r.exports,"AbstractUserDataWriter",(()=>Pm)),e(r.exports,"sum",(()=>qm)),e(r.exports,"average",(()=>Bm)),e(r.exports,"count",(()=>Um)),e(r.exports,"aggregateFieldEqual",(()=>zm)),e(r.exports,"aggregateQuerySnapshotEqual",(()=>Gm)),e(r.exports,"SnapshotMetadata",(()=>jm)),e(r.exports,"DocumentSnapshot",(()=>Km)),e(r.exports,"QueryDocumentSnapshot",(()=>$m)),e(r.exports,"QuerySnapshot",(()=>Qm)),e(r.exports,"snapshotEqual",(()=>Wm)),e(r.exports,"getDoc",(()=>Ym)),e(r.exports,"getDocFromCache",(()=>Jm)),e(r.exports,"getDocFromServer",(()=>Zm)),e(r.exports,"getDocs",(()=>tp)),e(r.exports,"getDocsFromCache",(()=>ep)),e(r.exports,"getDocsFromServer",(()=>np)),e(r.exports,"setDoc",(()=>rp)),e(r.exports,"executeWrite",(()=>cp)),e(r.exports,"updateDoc",(()=>sp)),e(r.exports,"deleteDoc",(()=>ip)),e(r.exports,"addDoc",(()=>op)),e(r.exports,"onSnapshot",(()=>ap)),e(r.exports,"onSnapshotsInSync",(()=>up)),e(r.exports,"getCountFromServer",(()=>hp)),e(r.exports,"getAggregateFromServer",(()=>dp)),e(r.exports,"persistentSingleTabManager",(()=>Ep)),e(r.exports,"memoryEagerGarbageCollector",(()=>yp)),e(r.exports,"memoryLruGarbageCollector",(()=>wp)),e(r.exports,"memoryLocalCache",(()=>vp)),e(r.exports,"persistentLocalCache",(()=>bp)),e(r.exports,"persistentMultipleTabManager",(()=>Tp)),e(r.exports,"WriteBatch",(()=>xp)),e(r.exports,"Transaction",(()=>Dp)),e(r.exports,"runTransaction",(()=>Ap)),e(r.exports,"deleteField",(()=>Np)),e(r.exports,"serverTimestamp",(()=>kp)),e(r.exports,"arrayUnion",(()=>Rp)),e(r.exports,"arrayRemove",(()=>Mp)),e(r.exports,"increment",(()=>Lp)),e(r.exports,"writeBatch",(()=>Op)),e(r.exports,"setIndexConfiguration",(()=>Pp)),e(r.exports,"PersistentCacheIndexManager",(()=>Vp)),e(r.exports,"getPersistentCacheIndexManager",(()=>qp)),e(r.exports,"enablePersistentCacheIndexAutoCreation",(()=>Bp)),e(r.exports,"disablePersistentCacheIndexAutoCreation",(()=>Up)),e(r.exports,"deleteAllPersistentCacheIndexes",(()=>zp)),e(r.exports,"_TestingHooks",(()=>Kp));var i=n("8WRsO"),o=n("fnbc9");const a=function(t){const e=[];let n=0;for(let r=0;r>6|192,e[n++]=63&s|128):55296==(64512&s)&&r+1>18|240,e[n++]=s>>12&63|128,e[n++]=s>>6&63|128,e[n++]=63&s|128):(e[n++]=s>>12|224,e[n++]=s>>6&63|128,e[n++]=63&s|128)}return e},u={byteToCharMap_:null,charToByteMap_:null,byteToCharMapWebSafe_:null,charToByteMapWebSafe_:null,ENCODED_VALS_BASE:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",get ENCODED_VALS(){return this.ENCODED_VALS_BASE+"+/="},get ENCODED_VALS_WEBSAFE(){return this.ENCODED_VALS_BASE+"-_."},HAS_NATIVE_SUPPORT:"function"==typeof atob,encodeByteArray(t,e){if(!Array.isArray(t))throw Error("encodeByteArray takes an array as a parameter");this.init_();const n=e?this.byteToCharMapWebSafe_:this.byteToCharMap_,r=[];for(let e=0;e>2,l=(3&s)<<4|o>>4;let h=(15&o)<<2|u>>6,d=63&u;a||(d=64,i||(h=64)),r.push(n[c],n[l],n[h],n[d])}return r.join("")},encodeString(t,e){return this.HAS_NATIVE_SUPPORT&&!e?btoa(t):this.encodeByteArray(a(t),e)},decodeString(t,e){return this.HAS_NATIVE_SUPPORT&&!e?atob(t):function(t){const e=[];let n=0,r=0;for(;n191&&s<224){const i=t[n++];e[r++]=String.fromCharCode((31&s)<<6|63&i)}else if(s>239&&s<365){const i=((7&s)<<18|(63&t[n++])<<12|(63&t[n++])<<6|63&t[n++])-65536;e[r++]=String.fromCharCode(55296+(i>>10)),e[r++]=String.fromCharCode(56320+(1023&i))}else{const i=t[n++],o=t[n++];e[r++]=String.fromCharCode((15&s)<<12|(63&i)<<6|63&o)}}return e.join("")}(this.decodeStringToByteArray(t,e))},decodeStringToByteArray(t,e){this.init_();const n=e?this.charToByteMapWebSafe_:this.charToByteMap_,r=[];for(let e=0;e>4;if(r.push(u),64!==o){const t=i<<4&240|o>>2;if(r.push(t),64!==a){const t=o<<6&192|a;r.push(t)}}}return r},init_(){if(!this.byteToCharMap_){this.byteToCharMap_={},this.charToByteMap_={},this.byteToCharMapWebSafe_={},this.charToByteMapWebSafe_={};for(let t=0;t=this.ENCODED_VALS_BASE.length&&(this.charToByteMap_[this.ENCODED_VALS_WEBSAFE.charAt(t)]=t,this.charToByteMapWebSafe_[this.ENCODED_VALS.charAt(t)]=t)}}};class c extends Error{constructor(){super(...arguments),this.name="DecodeBase64StringError"}}const l=function(t){return function(t){const e=a(t);return u.encodeByteArray(e,!0)}(t).replace(/\./g,"")},h=()=>{try{return function(){if("undefined"!=typeof self)return self;if("undefined"!=typeof window)return window;if(void 0!==t)return t;throw new Error("Unable to locate global object.")}().__FIREBASE_DEFAULTS__||(()=>{if(void 0===o||void 0===o.env)return})()||(()=>{if("undefined"==typeof document)return;let t;try{t=document.cookie.match(/__FIREBASE_DEFAULTS__=([^;]+)/)}catch(t){return}const e=t&&function(t){try{return u.decodeString(t,!0)}catch(t){console.error("base64Decode failed: ",t)}return null}(t[1]);return e&&JSON.parse(e)})()}catch(t){return void console.info(`Unable to get __FIREBASE_DEFAULTS__ due to: ${t}`)}};function d(){return"undefined"!=typeof navigator&&"string"==typeof navigator.userAgent?navigator.userAgent:""}function f(){return!function(){var e;const n=null===(e=h())||void 0===e?void 0:e.forceEnvironment;if("node"===n)return!0;if("browser"===n)return!1;try{return"[object process]"===Object.prototype.toString.call(t.process)}catch(t){return!1}}()&&!!navigator.userAgent&&navigator.userAgent.includes("Safari")&&!navigator.userAgent.includes("Chrome")}class g extends Error{constructor(t,e,n){super(e),this.code=t,this.customData=n,this.name="FirebaseError",Object.setPrototypeOf(this,g.prototype),Error.captureStackTrace&&Error.captureStackTrace(this,m.prototype.create)}}class m{constructor(t,e,n){this.service=t,this.serviceName=e,this.errors=n}create(t,...e){const n=e[0]||{},r=`${this.service}/${t}`,s=this.errors[t],i=s?function(t,e){return t.replace(p,((t,n)=>{const r=e[n];return null!=r?String(r):`<${n}?>`}))}(s,n):"Error",o=`${this.serviceName}: ${i} (${r}).`;return new g(r,o,n)}}const p=/\{\$([^}]+)}/g;function y(t,e){if(t===e)return!0;const n=Object.keys(t),r=Object.keys(e);for(const s of n){if(!r.includes(s))return!1;const n=t[s],i=e[s];if(w(n)&&w(i)){if(!y(n,i))return!1}else if(n!==i)return!1}for(const t of r)if(!n.includes(t))return!1;return!0}function w(t){return null!==t&&"object"==typeof t}function v(t){return t&&t._delegate?t._delegate:t}class b{constructor(t,e,n){this.name=t,this.instanceFactory=e,this.type=n,this.multipleInstances=!1,this.serviceProps={},this.instantiationMode="LAZY",this.onInstanceCreated=null}setInstantiationMode(t){return this.instantiationMode=t,this}setMultipleInstances(t){return this.multipleInstances=t,this}setServiceProps(t){return this.serviceProps=t,this}setInstanceCreatedCallback(t){return this.onInstanceCreated=t,this}}var _,I;(I=_||(_={}))[I.DEBUG=0]="DEBUG",I[I.VERBOSE=1]="VERBOSE",I[I.INFO=2]="INFO",I[I.WARN=3]="WARN",I[I.ERROR=4]="ERROR",I[I.SILENT=5]="SILENT";const E={debug:_.DEBUG,verbose:_.VERBOSE,info:_.INFO,warn:_.WARN,error:_.ERROR,silent:_.SILENT},T=_.INFO,S={[_.DEBUG]:"log",[_.VERBOSE]:"log",[_.INFO]:"info",[_.WARN]:"warn",[_.ERROR]:"error"},x=(t,e,...n)=>{if(e{};N.addEventListener("test",t,e),N.removeEventListener("test",t,e)}catch(t){}return t}();function j(t){return/^[\s\xa0]*$/.test(t)}function K(){var t=N.navigator;return t&&(t=t.userAgent)?t:""}function $(t){return-1!=K().indexOf(t)}function Q(t){return Q[" "](t),t}Q[" "]=function(){};var H,W,Y,X=$("Opera"),J=$("Trident")||$("MSIE"),Z=$("Edge"),tt=Z||J,et=$("Gecko")&&!(-1!=K().toLowerCase().indexOf("webkit")&&!$("Edge"))&&!($("Trident")||$("MSIE"))&&!$("Edge"),nt=-1!=K().toLowerCase().indexOf("webkit")&&!$("Edge");function rt(){var t=N.document;return t?t.documentMode:void 0}t:{var st="",it=(W=K(),et?/rv:([^\);]+)(\)|;)/.exec(W):Z?/Edge\/([\d\.]+)/.exec(W):J?/\b(?:MSIE|rv)[: ]([^\);]+)(\)|;)/.exec(W):nt?/WebKit\/(\S+)/.exec(W):X?/(?:Version)[ \/]?(\S+)/.exec(W):void 0);if(it&&(st=it?it[1]:""),J){var ot=rt();if(null!=ot&&ot>parseFloat(st)){H=String(ot);break t}}H=st}N.document&&J?Y=rt()||parseInt(H,10)||void 0:Y=void 0;var at=Y;function ut(t,e){if(z.call(this,t?t.type:""),this.relatedTarget=this.g=this.target=null,this.button=this.screenY=this.screenX=this.clientY=this.clientX=0,this.key="",this.metaKey=this.shiftKey=this.altKey=this.ctrlKey=!1,this.state=null,this.pointerId=0,this.pointerType="",this.i=null,t){var n=this.type=t.type,r=t.changedTouches&&t.changedTouches.length?t.changedTouches[0]:null;if(this.target=t.target||t.srcElement,this.g=e,e=t.relatedTarget){if(et){t:{try{Q(e.nodeName);var s=!0;break t}catch(t){}s=!1}s||(e=null)}}else"mouseover"==n?e=t.fromElement:"mouseout"==n&&(e=t.toElement);this.relatedTarget=e,r?(this.clientX=void 0!==r.clientX?r.clientX:r.pageX,this.clientY=void 0!==r.clientY?r.clientY:r.pageY,this.screenX=r.screenX||0,this.screenY=r.screenY||0):(this.clientX=void 0!==t.clientX?t.clientX:t.pageX,this.clientY=void 0!==t.clientY?t.clientY:t.pageY,this.screenX=t.screenX||0,this.screenY=t.screenY||0),this.button=t.button,this.key=t.key||"",this.ctrlKey=t.ctrlKey,this.altKey=t.altKey,this.shiftKey=t.shiftKey,this.metaKey=t.metaKey,this.pointerId=t.pointerId||0,this.pointerType="string"==typeof t.pointerType?t.pointerType:ct[t.pointerType]||"",this.state=t.state,this.i=t,t.defaultPrevented&&ut.$.h.call(this)}}F(ut,z);var ct={2:"touch",3:"pen",4:"mouse"};ut.prototype.h=function(){ut.$.h.call(this);var t=this.i;t.preventDefault?t.preventDefault():t.returnValue=!1};var lt="closure_listenable_"+(1e6*Math.random()|0),ht=0;function dt(t,e,n,r,s){this.listener=t,this.proxy=null,this.src=e,this.type=n,this.capture=!!r,this.la=s,this.key=++ht,this.fa=this.ia=!1}function ft(t){t.fa=!0,t.listener=null,t.proxy=null,t.src=null,t.la=null}function gt(t,e,n){for(const r in t)e.call(n,t[r],r,t)}function mt(t){const e={};for(const n in t)e[n]=t[n];return e}const pt="constructor hasOwnProperty isPrototypeOf propertyIsEnumerable toLocaleString toString valueOf".split(" ");function yt(t,e){let n,r;for(let e=1;e>>0);function Rt(t){return"function"==typeof t?t:(t[kt]||(t[kt]=function(e){return t.handleEvent(e)}),t[kt])}function Mt(){V.call(this),this.i=new wt(this),this.S=this,this.J=null}function Lt(t,e){var n,r=t.J;if(r)for(n=[];r;r=r.J)n.push(r);if(t=t.S,r=e.type||e,"string"==typeof e)e=new z(e,t);else if(e instanceof z)e.target=e.target||t;else{var s=e;yt(e=new z(r,t),s)}if(s=!0,n)for(var i=n.length-1;0<=i;i--){var o=e.g=n[i];s=Ot(o,r,!0,e)&&s}if(s=Ot(o=e.g=t,r,!0,e)&&s,s=Ot(o,r,!1,e)&&s,n)for(i=0;inew qt),(t=>t.reset()));class qt{constructor(){this.next=this.g=this.h=null}set(t,e){this.h=t,this.g=e,this.next=null}reset(){this.next=this.g=this.h=null}}function Bt(t){var e=1;t=t.split(":");const n=[];for(;0{throw t}),0)}let zt,Gt=!1,jt=new class{constructor(){this.h=this.g=null}add(t,e){const n=Vt.get();n.set(t,e),this.h?this.h.next=n:this.g=n,this.h=n}},Kt=()=>{const t=N.Promise.resolve(void 0);zt=()=>{t.then($t)}};var $t=()=>{for(var t;t=Ft();){try{t.h.call(t.g)}catch(t){Ut(t)}var e=Vt;e.j(t),100>e.h&&(e.h++,t.next=e.g,e.g=t)}Gt=!1};function Qt(t,e){Mt.call(this),this.h=t||1,this.g=e||N,this.j=O(this.qb,this),this.l=Date.now()}function Ht(t){t.ga=!1,t.T&&(t.g.clearTimeout(t.T),t.T=null)}function Wt(t,e,n){if("function"==typeof t)n&&(t=O(t,n));else{if(!t||"function"!=typeof t.handleEvent)throw Error("Invalid listener argument");t=O(t.handleEvent,t)}return 2147483647{t.g=null,t.i&&(t.i=!1,Yt(t))}),t.j);const e=t.h;t.h=null,t.m.apply(null,e)}F(Qt,Mt),(C=Qt.prototype).ga=!1,C.T=null,C.qb=function(){if(this.ga){var t=Date.now()-this.l;0r.length)){var s=r[1];if(Array.isArray(s)&&!(1>s.length)){var i=s[0];if("noop"!=i&&"stop"!=i&&"close"!=i)for(var o=1;oe.length?Ce:(e=e.slice(r,r+n),t.o=r+n,e))}function Me(t){t.Y=Date.now()+t.P,Le(t,t.P)}function Le(t,e){if(null!=t.C)throw Error("WatchDog timer not null");t.C=de(O(t.lb,t),e)}function Oe(t){t.C&&(N.clearTimeout(t.C),t.C=null)}function Pe(t){0==t.l.H||t.J||tr(t.l,t)}function Fe(t){Oe(t);var e=t.M;e&&"function"==typeof e.sa&&e.sa(),t.M=null,Ht(t.V),ee(t.U),t.g&&(e=t.g,t.g=null,e.abort(),e.sa())}function Ve(t,e){try{var n=t.l;if(0!=n.H&&(n.g==t||fn(n.i,t)))if(!t.K&&fn(n.i,t)&&3==n.H){try{var r=n.Ja.g.parse(e)}catch(t){r=null}if(Array.isArray(r)&&3==r.length){var s=r;if(0==s[0]){t:if(!n.u){if(n.g){if(!(n.g.G+3e3s[2]&&n.G&&0==n.A&&!n.v&&(n.v=de(O(n.ib,n),6e3));if(1>=dn(n.i)&&n.oa){try{n.oa()}catch(t){}n.oa=void 0}}else nr(n,11)}else if((t.K||n.g==t)&&Zn(n),!j(e))for(s=n.Ja.g.parse(e),e=0;el)&&(3!=l||tt||this.g&&(this.h.h||this.g.ja()||Fn(this.g)))){this.J||4!=l||7==e||ue(),Oe(this);var n=this.g.da();this.ca=n;e:if(Ne(this)){var r=Fn(this.g);t="";var s=r.length,i=4==Pn(this.g);if(!this.h.i){if("undefined"==typeof TextDecoder){Fe(this),Pe(this);var o="";break e}this.h.i=new N.TextDecoder}for(e=0;ee)throw Error("Bad port number "+e);t.m=e}else t.m=null}function Ke(t,e,n){e instanceof nn?(t.i=e,function(t,e){e&&!t.j&&(rn(t),t.i=null,t.g.forEach((function(t,e){var n=e.toLowerCase();e!=n&&(sn(this,e),an(this,n,t))}),t)),t.j=e}(t.i,t.h)):(n||(e=We(e,tn)),t.i=new nn(e,t.h))}function $e(t,e,n){t.i.set(e,n)}function Qe(t){return $e(t,"zx",Math.floor(2147483648*Math.random()).toString(36)+Math.abs(Math.floor(2147483648*Math.random())^Date.now()).toString(36)),t}function He(t,e){return t?e?decodeURI(t.replace(/%25/g,"%2525")):decodeURIComponent(t):""}function We(t,e,n){return"string"==typeof t?(t=encodeURI(t).replace(e,Ye),n&&(t=t.replace(/%25([0-9a-fA-F]{2})/g,"%$1")),t):null}function Ye(t){return"%"+((t=t.charCodeAt(0))>>4&15).toString(16)+(15&t).toString(16)}Ue.prototype.toString=function(){var t=[],e=this.j;e&&t.push(We(e,Xe,!0),":");var n=this.g;return(n||"file"==e)&&(t.push("//"),(e=this.s)&&t.push(We(e,Xe,!0),"@"),t.push(encodeURIComponent(String(n)).replace(/%25([0-9a-fA-F]{2})/g,"%$1")),null!=(n=this.m)&&t.push(":",String(n))),(n=this.l)&&(this.g&&"/"!=n.charAt(0)&&t.push("/"),t.push(We(n,"/"==n.charAt(0)?Ze:Je,!0))),(n=this.i.toString())&&t.push("?",n),(n=this.o)&&t.push("#",We(n,en)),t.join("")};var Xe=/[#\/\?@]/g,Je=/[#\?:]/g,Ze=/[#\?]/g,tn=/[#\?@]/g,en=/#/g;function nn(t,e){this.h=this.g=null,this.i=t||null,this.j=!!e}function rn(t){t.g||(t.g=new Map,t.h=0,t.i&&function(t,e){if(t){t=t.split("&");for(var n=0;n=t.j}function dn(t){return t.h?1:t.g?t.g.size:0}function fn(t,e){return t.h?t.h==e:!!t.g&&t.g.has(e)}function gn(t,e){t.g?t.g.add(e):t.h=e}function mn(t,e){t.h&&t.h==e?t.h=null:t.g&&t.g.has(e)&&t.g.delete(e)}function pn(t){if(null!=t.h)return t.i.concat(t.h.F);if(null!=t.g&&0!==t.g.size){let e=t.i;for(const n of t.g.values())e=e.concat(n.F);return e}return B(t.i)}function yn(){this.g=new class{stringify(t){return N.JSON.stringify(t,void 0)}parse(t){return N.JSON.parse(t,void 0)}}}function wn(t,e,n){const r=n||"";try{qe(t,(function(t,n){let s=t;R(t)&&(s=Pt(t)),e.push(r+n+"="+encodeURIComponent(s))}))}catch(t){throw e.push(r+"type="+encodeURIComponent("_badmap")),t}}function vn(t,e,n,r,s){try{e.onload=null,e.onerror=null,e.onabort=null,e.ontimeout=null,s(r)}catch(t){}}function bn(t){this.l=t.ec||null,this.j=t.ob||!1}function _n(t,e){Mt.call(this),this.F=t,this.u=e,this.m=void 0,this.readyState=In,this.status=0,this.responseType=this.responseText=this.response=this.statusText="",this.onreadystatechange=null,this.v=new Headers,this.h=null,this.C="GET",this.B="",this.g=!1,this.A=this.j=this.l=null}cn.prototype.cancel=function(){if(this.i=pn(this),this.h)this.h.cancel(),this.h=null;else if(this.g&&0!==this.g.size){for(const t of this.g.values())t.cancel();this.g.clear()}},F(bn,me),bn.prototype.g=function(){return new _n(this.l,this.j)},bn.prototype.i=function(t){return function(){return t}}({}),F(_n,Mt);var In=0;function En(t){t.j.read().then(t.Xa.bind(t)).catch(t.ka.bind(t))}function Tn(t){t.readyState=4,t.l=null,t.j=null,t.A=null,Sn(t)}function Sn(t){t.onreadystatechange&&t.onreadystatechange.call(t)}(C=_n.prototype).open=function(t,e){if(this.readyState!=In)throw this.abort(),Error("Error reopening a connection");this.C=t,this.B=e,this.readyState=1,Sn(this)},C.send=function(t){if(1!=this.readyState)throw this.abort(),Error("need to call open() first. ");this.g=!0;const e={headers:this.v,method:this.C,credentials:this.m,cache:void 0};t&&(e.body=t),(this.F||N).fetch(new Request(this.B,e)).then(this.$a.bind(this),this.ka.bind(this))},C.abort=function(){this.response=this.responseText="",this.v=new Headers,this.status=0,this.j&&this.j.cancel("Request was aborted.").catch((()=>{})),1<=this.readyState&&this.g&&4!=this.readyState&&(this.g=!1,Tn(this)),this.readyState=In},C.$a=function(t){if(this.g&&(this.l=t,this.h||(this.status=this.l.status,this.statusText=this.l.statusText,this.h=t.headers,this.readyState=2,Sn(this)),this.g&&(this.readyState=3,Sn(this),this.g)))if("arraybuffer"===this.responseType)t.arrayBuffer().then(this.Ya.bind(this),this.ka.bind(this));else if(void 0!==N.ReadableStream&&"body"in t){if(this.j=t.body.getReader(),this.u){if(this.responseType)throw Error('responseType must be empty for "streamBinaryChunks" mode responses.');this.response=[]}else this.response=this.responseText="",this.A=new TextDecoder;En(this)}else t.text().then(this.Za.bind(this),this.ka.bind(this))},C.Xa=function(t){if(this.g){if(this.u&&t.value)this.response.push(t.value);else if(!this.u){var e=t.value?t.value:new Uint8Array(0);(e=this.A.decode(e,{stream:!t.done}))&&(this.response=this.responseText+=e)}t.done?Tn(this):Sn(this),3==this.readyState&&En(this)}},C.Za=function(t){this.g&&(this.response=this.responseText=t,Tn(this))},C.Ya=function(t){this.g&&(this.response=t,Tn(this))},C.ka=function(){this.g&&Tn(this)},C.setRequestHeader=function(t,e){this.v.append(t,e)},C.getResponseHeader=function(t){return this.h&&this.h.get(t.toLowerCase())||""},C.getAllResponseHeaders=function(){if(!this.h)return"";const t=[],e=this.h.entries();for(var n=e.next();!n.done;)n=n.value,t.push(n[0]+": "+n[1]),n=e.next();return t.join("\r\n")},Object.defineProperty(_n.prototype,"withCredentials",{get:function(){return"include"===this.m},set:function(t){this.m=t?"include":"same-origin"}});var xn=N.JSON.parse;function Cn(t){Mt.call(this),this.headers=new Map,this.u=t||null,this.h=!1,this.C=this.g=null,this.I="",this.m=0,this.j="",this.l=this.G=this.v=this.F=!1,this.B=0,this.A=null,this.K=Dn,this.L=this.M=!1}F(Cn,Mt);var Dn="",An=/^https?$/i,Nn=["POST","PUT"];function kn(t,e){t.h=!1,t.g&&(t.l=!0,t.g.abort(),t.l=!1),t.j=e,t.m=5,Rn(t),Ln(t)}function Rn(t){t.F||(t.F=!0,Lt(t,"complete"),Lt(t,"error"))}function Mn(t){if(t.h&&void 0!==A&&(!t.C[1]||4!=Pn(t)||2!=t.da()))if(t.v&&4==Pn(t))Wt(t.La,0,t);else if(Lt(t,"readystatechange"),4==Pn(t)){t.h=!1;try{const o=t.da();t:switch(o){case 200:case 201:case 202:case 204:case 206:case 304:case 1223:var e=!0;break t;default:e=!1}var n;if(!(n=e)){var r;if(r=0===o){var s=String(t.I).match(Be)[1]||null;!s&&N.self&&N.self.location&&(s=N.self.location.protocol.slice(0,-1)),r=!An.test(s?s.toLowerCase():"")}n=r}if(n)Lt(t,"complete"),Lt(t,"success");else{t.m=6;try{var i=2{}:null;t.g=null,t.C=null,e||Lt(t,"ready");try{n.onreadystatechange=r}catch(t){}}}function On(t){t.g&&t.L&&(t.g.ontimeout=null),t.A&&(N.clearTimeout(t.A),t.A=null)}function Pn(t){return t.g?t.g.readyState:0}function Fn(t){try{if(!t.g)return null;if("response"in t.g)return t.g.response;switch(t.K){case Dn:case"text":return t.g.responseText;case"arraybuffer":if("mozResponseArrayBuffer"in t.g)return t.g.mozResponseArrayBuffer}return null}catch(t){return null}}function Vn(t){let e="";return gt(t,(function(t,n){e+=n,e+=":",e+=t,e+="\r\n"})),e}function qn(t,e,n){t:{for(r in n){var r=!1;break t}r=!0}r||(n=Vn(n),"string"==typeof t?null!=n&&encodeURIComponent(String(n)):$e(t,e,n))}function Bn(t,e,n){return n&&n.internalChannelParams&&n.internalChannelParams[t]||e}function Un(t){this.Ga=0,this.j=[],this.l=new ne,this.pa=this.wa=this.I=this.Y=this.g=this.Da=this.F=this.na=this.o=this.U=this.s=null,this.fb=this.W=0,this.cb=Bn("failFast",!1,t),this.G=this.v=this.u=this.m=this.h=null,this.aa=!0,this.Fa=this.V=-1,this.ba=this.A=this.C=0,this.ab=Bn("baseRetryDelayMs",5e3,t),this.hb=Bn("retryDelaySeedMs",1e4,t),this.eb=Bn("forwardChannelMaxRetries",2,t),this.xa=Bn("forwardChannelRequestTimeoutMs",2e4,t),this.va=t&&t.xmlHttpFactory||void 0,this.Ha=t&&t.useFetchStreams||!1,this.L=void 0,this.J=t&&t.supportsCrossDomainXhr||!1,this.K="",this.i=new cn(t&&t.concurrentRequestLimit),this.Ja=new yn,this.P=t&&t.fastHandshake||!1,this.O=t&&t.encodeInitMessageHeaders||!1,this.P&&this.O&&(this.O=!1),this.bb=t&&t.bc||!1,t&&t.Ea&&this.l.Ea(),t&&t.forceLongPolling&&(this.aa=!1),this.ca=!this.P&&this.aa&&t&&t.detectBufferingProxy||!1,this.qa=void 0,t&&t.longPollingTimeout&&0n)e=Math.max(0,s[o].g-100),i=!1;else try{wn(a,t,"req"+n+"_")}catch(t){r&&r(a)}}if(i){r=t.join("&");break t}}}return t=t.j.splice(0,n),e.F=t,r}function Wn(t){if(!t.g&&!t.u){t.ba=1;var e=t.Ma;zt||Kt(),Gt||(zt(),Gt=!0),jt.add(e,t),t.A=0}}function Yn(t){return!(t.g||t.u||3<=t.A||(t.ba++,t.u=de(O(t.Ma,t),er(t,t.A)),t.A++,0))}function Xn(t){null!=t.B&&(N.clearTimeout(t.B),t.B=null)}function Jn(t){t.g=new Ee(t,t.l,"rpc",t.ba),null===t.o&&(t.g.I=t.s),t.g.O=0;var e=ze(t.wa);$e(e,"RID","rpc"),$e(e,"SID",t.K),$e(e,"AID",t.V),$e(e,"CI",t.G?"0":"1"),!t.G&&t.qa&&$e(e,"TO",t.qa),$e(e,"TYPE","xmlhttp"),Qn(t,e),t.o&&t.s&&qn(e,t.o,t.s),t.L&&t.g.setTimeout(t.L);var n=t.g;t=t.pa,n.L=1,n.A=Qe(ze(e)),n.u=null,n.S=!0,Ae(n,t)}function Zn(t){null!=t.v&&(N.clearTimeout(t.v),t.v=null)}function tr(t,e){var n=null;if(t.g==e){Zn(t),Xn(t),t.g=null;var r=2}else{if(!fn(t.i,e))return;n=e.F,mn(t.i,e),r=1}if(0!=t.H)if(e.i)if(1==r){n=e.u?e.u.length:0,e=Date.now()-e.G;var s=t.C;Lt(r=oe(),new he(r,n)),Kn(t)}else Wn(t);else if(3==(s=e.s)||0==s&&0=t.i.j-(t.m?1:0)||(t.m?(t.j=e.F.concat(t.j),0):1==t.H||2==t.H||t.C>=(t.cb?0:t.eb)||(t.m=de(O(t.Na,t,e),er(t,t.C)),t.C++,0)))}(t,e)||2==r&&Yn(t)))switch(n&&0s;++s)r[s]=e.charCodeAt(n++)|e.charCodeAt(n++)<<8|e.charCodeAt(n++)<<16|e.charCodeAt(n++)<<24;else for(s=0;16>s;++s)r[s]=e[n++]|e[n++]<<8|e[n++]<<16|e[n++]<<24;e=t.g[0],n=t.g[1],s=t.g[2];var i=t.g[3],o=e+(i^n&(s^i))+r[0]+3614090360&4294967295;o=(n=(s=(i=(e=(n=(s=(i=(e=(n=(s=(i=(e=(n=(s=(i=(e=(n=(s=(i=(e=(n=(s=(i=(e=(n=(s=(i=(e=(n=(s=(i=(e=(n=(s=(i=(e=(n=(s=(i=(e=(n=(s=(i=(e=(n=(s=(i=(e=(n=(s=(i=(e=(n=(s=(i=(e=(n=(s=(i=(e=n+(o<<7&4294967295|o>>>25))+((o=i+(s^e&(n^s))+r[1]+3905402710&4294967295)<<12&4294967295|o>>>20))+((o=s+(n^i&(e^n))+r[2]+606105819&4294967295)<<17&4294967295|o>>>15))+((o=n+(e^s&(i^e))+r[3]+3250441966&4294967295)<<22&4294967295|o>>>10))+((o=e+(i^n&(s^i))+r[4]+4118548399&4294967295)<<7&4294967295|o>>>25))+((o=i+(s^e&(n^s))+r[5]+1200080426&4294967295)<<12&4294967295|o>>>20))+((o=s+(n^i&(e^n))+r[6]+2821735955&4294967295)<<17&4294967295|o>>>15))+((o=n+(e^s&(i^e))+r[7]+4249261313&4294967295)<<22&4294967295|o>>>10))+((o=e+(i^n&(s^i))+r[8]+1770035416&4294967295)<<7&4294967295|o>>>25))+((o=i+(s^e&(n^s))+r[9]+2336552879&4294967295)<<12&4294967295|o>>>20))+((o=s+(n^i&(e^n))+r[10]+4294925233&4294967295)<<17&4294967295|o>>>15))+((o=n+(e^s&(i^e))+r[11]+2304563134&4294967295)<<22&4294967295|o>>>10))+((o=e+(i^n&(s^i))+r[12]+1804603682&4294967295)<<7&4294967295|o>>>25))+((o=i+(s^e&(n^s))+r[13]+4254626195&4294967295)<<12&4294967295|o>>>20))+((o=s+(n^i&(e^n))+r[14]+2792965006&4294967295)<<17&4294967295|o>>>15))+((o=n+(e^s&(i^e))+r[15]+1236535329&4294967295)<<22&4294967295|o>>>10))+((o=e+(s^i&(n^s))+r[1]+4129170786&4294967295)<<5&4294967295|o>>>27))+((o=i+(n^s&(e^n))+r[6]+3225465664&4294967295)<<9&4294967295|o>>>23))+((o=s+(e^n&(i^e))+r[11]+643717713&4294967295)<<14&4294967295|o>>>18))+((o=n+(i^e&(s^i))+r[0]+3921069994&4294967295)<<20&4294967295|o>>>12))+((o=e+(s^i&(n^s))+r[5]+3593408605&4294967295)<<5&4294967295|o>>>27))+((o=i+(n^s&(e^n))+r[10]+38016083&4294967295)<<9&4294967295|o>>>23))+((o=s+(e^n&(i^e))+r[15]+3634488961&4294967295)<<14&4294967295|o>>>18))+((o=n+(i^e&(s^i))+r[4]+3889429448&4294967295)<<20&4294967295|o>>>12))+((o=e+(s^i&(n^s))+r[9]+568446438&4294967295)<<5&4294967295|o>>>27))+((o=i+(n^s&(e^n))+r[14]+3275163606&4294967295)<<9&4294967295|o>>>23))+((o=s+(e^n&(i^e))+r[3]+4107603335&4294967295)<<14&4294967295|o>>>18))+((o=n+(i^e&(s^i))+r[8]+1163531501&4294967295)<<20&4294967295|o>>>12))+((o=e+(s^i&(n^s))+r[13]+2850285829&4294967295)<<5&4294967295|o>>>27))+((o=i+(n^s&(e^n))+r[2]+4243563512&4294967295)<<9&4294967295|o>>>23))+((o=s+(e^n&(i^e))+r[7]+1735328473&4294967295)<<14&4294967295|o>>>18))+((o=n+(i^e&(s^i))+r[12]+2368359562&4294967295)<<20&4294967295|o>>>12))+((o=e+(n^s^i)+r[5]+4294588738&4294967295)<<4&4294967295|o>>>28))+((o=i+(e^n^s)+r[8]+2272392833&4294967295)<<11&4294967295|o>>>21))+((o=s+(i^e^n)+r[11]+1839030562&4294967295)<<16&4294967295|o>>>16))+((o=n+(s^i^e)+r[14]+4259657740&4294967295)<<23&4294967295|o>>>9))+((o=e+(n^s^i)+r[1]+2763975236&4294967295)<<4&4294967295|o>>>28))+((o=i+(e^n^s)+r[4]+1272893353&4294967295)<<11&4294967295|o>>>21))+((o=s+(i^e^n)+r[7]+4139469664&4294967295)<<16&4294967295|o>>>16))+((o=n+(s^i^e)+r[10]+3200236656&4294967295)<<23&4294967295|o>>>9))+((o=e+(n^s^i)+r[13]+681279174&4294967295)<<4&4294967295|o>>>28))+((o=i+(e^n^s)+r[0]+3936430074&4294967295)<<11&4294967295|o>>>21))+((o=s+(i^e^n)+r[3]+3572445317&4294967295)<<16&4294967295|o>>>16))+((o=n+(s^i^e)+r[6]+76029189&4294967295)<<23&4294967295|o>>>9))+((o=e+(n^s^i)+r[9]+3654602809&4294967295)<<4&4294967295|o>>>28))+((o=i+(e^n^s)+r[12]+3873151461&4294967295)<<11&4294967295|o>>>21))+((o=s+(i^e^n)+r[15]+530742520&4294967295)<<16&4294967295|o>>>16))+((o=n+(s^i^e)+r[2]+3299628645&4294967295)<<23&4294967295|o>>>9))+((o=e+(s^(n|~i))+r[0]+4096336452&4294967295)<<6&4294967295|o>>>26))+((o=i+(n^(e|~s))+r[7]+1126891415&4294967295)<<10&4294967295|o>>>22))+((o=s+(e^(i|~n))+r[14]+2878612391&4294967295)<<15&4294967295|o>>>17))+((o=n+(i^(s|~e))+r[5]+4237533241&4294967295)<<21&4294967295|o>>>11))+((o=e+(s^(n|~i))+r[12]+1700485571&4294967295)<<6&4294967295|o>>>26))+((o=i+(n^(e|~s))+r[3]+2399980690&4294967295)<<10&4294967295|o>>>22))+((o=s+(e^(i|~n))+r[10]+4293915773&4294967295)<<15&4294967295|o>>>17))+((o=n+(i^(s|~e))+r[1]+2240044497&4294967295)<<21&4294967295|o>>>11))+((o=e+(s^(n|~i))+r[8]+1873313359&4294967295)<<6&4294967295|o>>>26))+((o=i+(n^(e|~s))+r[15]+4264355552&4294967295)<<10&4294967295|o>>>22))+((o=s+(e^(i|~n))+r[6]+2734768916&4294967295)<<15&4294967295|o>>>17))+((o=n+(i^(s|~e))+r[13]+1309151649&4294967295)<<21&4294967295|o>>>11))+((i=(e=n+((o=e+(s^(n|~i))+r[4]+4149444226&4294967295)<<6&4294967295|o>>>26))+((o=i+(n^(e|~s))+r[11]+3174756917&4294967295)<<10&4294967295|o>>>22))^((s=i+((o=s+(e^(i|~n))+r[2]+718787259&4294967295)<<15&4294967295|o>>>17))|~e))+r[9]+3951481745&4294967295,t.g[0]=t.g[0]+e&4294967295,t.g[1]=t.g[1]+(s+(o<<21&4294967295|o>>>11))&4294967295,t.g[2]=t.g[2]+s&4294967295,t.g[3]=t.g[3]+i&4294967295}function gr(t,e){this.h=e;for(var n=[],r=!0,s=t.length-1;0<=s;s--){var i=0|t[s];r&&i==e||(n[s]=i,r=!1)}this.g=n}(C=Cn.prototype).Oa=function(t){this.M=t},C.ha=function(t,e,n,r){if(this.g)throw Error("[goog.net.XhrIo] Object is active with another request="+this.I+"; newUri="+t);e=e?e.toUpperCase():"GET",this.I=t,this.j="",this.m=0,this.F=!1,this.h=!0,this.g=this.u?this.u.g():we.g(),this.C=this.u?pe(this.u):pe(we),this.g.onreadystatechange=O(this.La,this);try{this.G=!0,this.g.open(e,String(t),!0),this.G=!1}catch(t){return void kn(this,t)}if(t=n||"",n=new Map(this.headers),r)if(Object.getPrototypeOf(r)===Object.prototype)for(var s in r)n.set(s,r[s]);else{if("function"!=typeof r.keys||"function"!=typeof r.get)throw Error("Unknown input type for opt_headers: "+String(r));for(const t of r.keys())n.set(t,r.get(t))}r=Array.from(n.keys()).find((t=>"content-type"==t.toLowerCase())),s=N.FormData&&t instanceof N.FormData,!(0<=q(Nn,e))||r||s||n.set("Content-Type","application/x-www-form-urlencoded;charset=utf-8");for(const[t,e]of n)this.g.setRequestHeader(t,e);this.K&&(this.g.responseType=this.K),"withCredentials"in this.g&&this.g.withCredentials!==this.M&&(this.g.withCredentials=this.M);try{On(this),0=this.S)){var t=2*this.S;this.l.info("BP detection timer enabled: "+t),this.B=de(O(this.jb,this),t)}},C.jb=function(){this.B&&(this.B=null,this.l.info("BP detection timeout reached."),this.l.info("Buffering proxy detected and switch to long-polling!"),this.G=!1,this.M=!0,le(10),Gn(this),Jn(this))},C.ib=function(){null!=this.v&&(this.v=null,Gn(this),Yn(this),le(19))},C.pb=function(t){t?(this.l.info("Successfully pinged google.com"),le(2)):(this.l.info("Failed to ping google.com"),le(1))},C.isActive=function(){return!!this.h&&this.h.isActive(this)},(C=or.prototype).Ba=function(){},C.Aa=function(){},C.za=function(){},C.ya=function(){},C.isActive=function(){return!0},C.Va=function(){},ar.prototype.g=function(t,e){return new ur(t,e)},F(ur,Mt),ur.prototype.m=function(){this.g.h=this.j,this.A&&(this.g.J=!0);var t=this.g,e=this.l,n=this.h||void 0;le(0),t.Y=e,t.na=n||{},t.G=t.aa,t.I=sr(t,null,t.Y),Kn(t)},ur.prototype.close=function(){zn(this.g)},ur.prototype.u=function(t){var e=this.g;if("string"==typeof t){var n={};n.__data__=t,t=n}else this.v&&((n={}).__data__=Pt(t),t=n);e.j.push(new class{constructor(t,e){this.g=t,this.map=e}}(e.fb++,t)),3==e.H&&Kn(e)},ur.prototype.N=function(){this.g.h=null,delete this.j,zn(this.g),delete this.g,ur.$.N.call(this)},F(cr,be),F(lr,_e),F(hr,or),hr.prototype.Ba=function(){Lt(this.g,"a")},hr.prototype.Aa=function(t){Lt(this.g,new cr(t))},hr.prototype.za=function(t){Lt(this.g,new lr)},hr.prototype.ya=function(){Lt(this.g,"b")},F(dr,(function(){this.blockSize=-1})),dr.prototype.reset=function(){this.g[0]=1732584193,this.g[1]=4023233417,this.g[2]=2562383102,this.g[3]=271733878,this.i=this.h=0},dr.prototype.j=function(t,e){void 0===e&&(e=t.length);for(var n=e-this.blockSize,r=this.m,s=this.h,i=0;ithis.h?this.blockSize:2*this.blockSize)-this.h);t[0]=128;for(var e=1;ee;++e)for(var r=0;32>r;r+=8)t[n++]=this.g[e]>>>r&255;return t};var mr={};function pr(t){return-128<=t&&128>t?function(t,e){var n=mr;return Object.prototype.hasOwnProperty.call(n,t)?n[t]:n[t]=e(t)}(t,(function(t){return new gr([0|t],0>t?-1:0)})):new gr([0|t],0>t?-1:0)}function yr(t){if(isNaN(t)||!isFinite(t))return vr;if(0>t)return Tr(yr(-t));for(var e=[],n=1,r=0;t>=n;r++)e[r]=t/n|0,n*=wr;return new gr(e,0)}var wr=4294967296,vr=pr(0),br=pr(1),_r=pr(16777216);function Ir(t){if(0!=t.h)return!1;for(var e=0;e>>16,t[e]&=65535,e++}function Cr(t,e){this.g=t,this.h=e}function Dr(t,e){if(Ir(e))throw Error("division by zero");if(Ir(t))return new Cr(vr,vr);if(Er(t))return e=Dr(Tr(t),e),new Cr(Tr(e.g),Tr(e.h));if(Er(e))return e=Dr(t,Tr(e)),new Cr(Tr(e.g),e.h);if(30=r.X(t);)n=Ar(n),r=Ar(r);var s=Nr(n,1),i=Nr(r,1);for(r=Nr(r,2),n=Nr(n,2);!Ir(r);){var o=i.add(r);0>=o.X(t)&&(s=s.add(n),i=o),r=Nr(r,1),n=Nr(n,1)}return e=Sr(t,s.R(e)),new Cr(s,e)}for(s=vr;0<=t.X(e);){for(n=Math.max(1,Math.floor(t.ea()/e.ea())),r=48>=(r=Math.ceil(Math.log(n)/Math.LN2))?1:Math.pow(2,r-48),o=(i=yr(n)).R(e);Er(o)||0>>31;return new gr(n,t.h)}function Nr(t,e){var n=e>>5;e%=32;for(var r=t.g.length-n,s=[],i=0;i>>e|t.D(i+n+1)<<32-e:t.D(i+n);return new gr(s,t.h)}(C=gr.prototype).ea=function(){if(Er(this))return-Tr(this).ea();for(var t=0,e=1,n=0;n(t=t||10)||36>>0).toString(t);if(Ir(n=s))return i+r;for(;6>i.length;)i="0"+i;r=i+r}},C.D=function(t){return 0>t?0:t>>16)+(this.D(s)>>>16)+(t.D(s)>>>16);r=o>>>16,i&=65535,o&=65535,n[s]=o<<16|i}return new gr(n,-2147483648&n[n.length-1]?-1:0)},C.R=function(t){if(Ir(this)||Ir(t))return vr;if(Er(this))return Er(t)?Tr(this).R(Tr(t)):Tr(Tr(this).R(t));if(Er(t))return Tr(this.R(Tr(t)));if(0>this.X(_r)&&0>t.X(_r))return yr(this.ea()*t.ea());for(var e=this.g.length+t.g.length,n=[],r=0;r<2*e;r++)n[r]=0;for(r=0;r>>16,o=65535&this.D(r),a=t.D(s)>>>16,u=65535&t.D(s);n[2*r+2*s]+=o*u,xr(n,2*r+2*s),n[2*r+2*s+1]+=i*u,xr(n,2*r+2*s+1),n[2*r+2*s+1]+=o*a,xr(n,2*r+2*s+1),n[2*r+2*s+2]+=i*a,xr(n,2*r+2*s+2)}for(r=0;r(n=n||10)||36o?(o=yr(Math.pow(n,o)),s=s.R(o).add(yr(a))):s=(s=s.R(r)).add(yr(a))}return s};var kr=fe,Rr=ge,Mr=se,Lr=ye,Or=Cn,Pr=dr,Fr=gr;const Vr="@firebase/firestore";class qr{constructor(t){this.uid=t}isAuthenticated(){return null!=this.uid}toKey(){return this.isAuthenticated()?"uid:"+this.uid:"anonymous-user"}isEqual(t){return t.uid===this.uid}}qr.UNAUTHENTICATED=new qr(null),qr.GOOGLE_CREDENTIALS=new qr("google-credentials-uid"),qr.FIRST_PARTY=new qr("first-party-uid"),qr.MOCK_USER=new qr("mock-user");let Br="10.8.0";const Ur=new class{constructor(t){this.name=t,this._logLevel=T,this._logHandler=x,this._userLogHandler=null}get logLevel(){return this._logLevel}set logLevel(t){if(!(t in _))throw new TypeError(`Invalid value "${t}" assigned to \`logLevel\``);this._logLevel=t}setLogLevel(t){this._logLevel="string"==typeof t?E[t]:t}get logHandler(){return this._logHandler}set logHandler(t){if("function"!=typeof t)throw new TypeError("Value assigned to `logHandler` must be a function");this._logHandler=t}get userLogHandler(){return this._userLogHandler}set userLogHandler(t){this._userLogHandler=t}debug(...t){this._userLogHandler&&this._userLogHandler(this,_.DEBUG,...t),this._logHandler(this,_.DEBUG,...t)}log(...t){this._userLogHandler&&this._userLogHandler(this,_.VERBOSE,...t),this._logHandler(this,_.VERBOSE,...t)}info(...t){this._userLogHandler&&this._userLogHandler(this,_.INFO,...t),this._logHandler(this,_.INFO,...t)}warn(...t){this._userLogHandler&&this._userLogHandler(this,_.WARN,...t),this._logHandler(this,_.WARN,...t)}error(...t){this._userLogHandler&&this._userLogHandler(this,_.ERROR,...t),this._logHandler(this,_.ERROR,...t)}}("@firebase/firestore");function zr(){return Ur.logLevel}function Gr(t){Ur.setLogLevel(t)}function jr(t,...e){if(Ur.logLevel<=_.DEBUG){const n=e.map(Qr);Ur.debug(`Firestore (${Br}): ${t}`,...n)}}function Kr(t,...e){if(Ur.logLevel<=_.ERROR){const n=e.map(Qr);Ur.error(`Firestore (${Br}): ${t}`,...n)}}function $r(t,...e){if(Ur.logLevel<=_.WARN){const n=e.map(Qr);Ur.warn(`Firestore (${Br}): ${t}`,...n)}}function Qr(t){if("string"==typeof t)return t;try{return function(t){return JSON.stringify(t)}(t)}catch(e){return t}}function Hr(t="Unexpected state"){const e=`FIRESTORE (${Br}) INTERNAL ASSERTION FAILED: `+t;throw Kr(e),new Error(e)}function Wr(t,e){t||Hr()}function Yr(t,e){t||Hr()}function Xr(t,e){return t}const Jr={OK:"ok",CANCELLED:"cancelled",UNKNOWN:"unknown",INVALID_ARGUMENT:"invalid-argument",DEADLINE_EXCEEDED:"deadline-exceeded",NOT_FOUND:"not-found",ALREADY_EXISTS:"already-exists",PERMISSION_DENIED:"permission-denied",UNAUTHENTICATED:"unauthenticated",RESOURCE_EXHAUSTED:"resource-exhausted",FAILED_PRECONDITION:"failed-precondition",ABORTED:"aborted",OUT_OF_RANGE:"out-of-range",UNIMPLEMENTED:"unimplemented",INTERNAL:"internal",UNAVAILABLE:"unavailable",DATA_LOSS:"data-loss"};class Zr extends g{constructor(t,e){super(t,e),this.code=t,this.message=e,this.toString=()=>`${this.name}: [code=${this.code}]: ${this.message}`}}class ts{constructor(){this.promise=new Promise(((t,e)=>{this.resolve=t,this.reject=e}))}}class es{constructor(t,e){this.user=e,this.type="OAuth",this.headers=new Map,this.headers.set("Authorization",`Bearer ${t}`)}}class ns{getToken(){return Promise.resolve(null)}invalidateToken(){}start(t,e){t.enqueueRetryable((()=>e(qr.UNAUTHENTICATED)))}shutdown(){}}class rs{constructor(t){this.token=t,this.changeListener=null}getToken(){return Promise.resolve(this.token)}invalidateToken(){}start(t,e){this.changeListener=e,t.enqueueRetryable((()=>e(this.token.user)))}shutdown(){this.changeListener=null}}class ss{constructor(t){this.t=t,this.currentUser=qr.UNAUTHENTICATED,this.i=0,this.forceRefresh=!1,this.auth=null}start(t,e){let n=this.i;const r=t=>this.i!==n?(n=this.i,e(t)):Promise.resolve();let s=new ts;this.o=()=>{this.i++,this.currentUser=this.u(),s.resolve(),s=new ts,t.enqueueRetryable((()=>r(this.currentUser)))};const i=()=>{const e=s;t.enqueueRetryable((async()=>{await e.promise,await r(this.currentUser)}))},o=t=>{jr("FirebaseAuthCredentialsProvider","Auth detected"),this.auth=t,this.auth.addAuthTokenListener(this.o),i()};this.t.onInit((t=>o(t))),setTimeout((()=>{if(!this.auth){const t=this.t.getImmediate({optional:!0});t?o(t):(jr("FirebaseAuthCredentialsProvider","Auth not yet detected"),s.resolve(),s=new ts)}}),0),i()}getToken(){const t=this.i,e=this.forceRefresh;return this.forceRefresh=!1,this.auth?this.auth.getToken(e).then((e=>this.i!==t?(jr("FirebaseAuthCredentialsProvider","getToken aborted due to token change."),this.getToken()):e?(Wr("string"==typeof e.accessToken),new es(e.accessToken,this.currentUser)):null)):Promise.resolve(null)}invalidateToken(){this.forceRefresh=!0}shutdown(){this.auth&&this.auth.removeAuthTokenListener(this.o)}u(){const t=this.auth&&this.auth.getUid();return Wr(null===t||"string"==typeof t),new qr(t)}}class is{constructor(t,e,n){this.l=t,this.h=e,this.P=n,this.type="FirstParty",this.user=qr.FIRST_PARTY,this.I=new Map}T(){return this.P?this.P():null}get headers(){this.I.set("X-Goog-AuthUser",this.l);const t=this.T();return t&&this.I.set("Authorization",t),this.h&&this.I.set("X-Goog-Iam-Authorization-Token",this.h),this.I}}class os{constructor(t,e,n){this.l=t,this.h=e,this.P=n}getToken(){return Promise.resolve(new is(this.l,this.h,this.P))}start(t,e){t.enqueueRetryable((()=>e(qr.FIRST_PARTY)))}shutdown(){}invalidateToken(){}}class as{constructor(t){this.value=t,this.type="AppCheck",this.headers=new Map,t&&t.length>0&&this.headers.set("x-firebase-appcheck",this.value)}}class us{constructor(t){this.A=t,this.forceRefresh=!1,this.appCheck=null,this.R=null}start(t,e){const n=t=>{null!=t.error&&jr("FirebaseAppCheckTokenProvider",`Error getting App Check token; using placeholder token instead. Error: ${t.error.message}`);const n=t.token!==this.R;return this.R=t.token,jr("FirebaseAppCheckTokenProvider",`Received ${n?"new":"existing"} token.`),n?e(t.token):Promise.resolve()};this.o=e=>{t.enqueueRetryable((()=>n(e)))};const r=t=>{jr("FirebaseAppCheckTokenProvider","AppCheck detected"),this.appCheck=t,this.appCheck.addTokenListener(this.o)};this.A.onInit((t=>r(t))),setTimeout((()=>{if(!this.appCheck){const t=this.A.getImmediate({optional:!0});t?r(t):jr("FirebaseAppCheckTokenProvider","AppCheck not yet detected")}}),0)}getToken(){const t=this.forceRefresh;return this.forceRefresh=!1,this.appCheck?this.appCheck.getToken(t).then((t=>t?(Wr("string"==typeof t.token),this.R=t.token,new as(t.token)):null)):Promise.resolve(null)}invalidateToken(){this.forceRefresh=!0}shutdown(){this.appCheck&&this.appCheck.removeTokenListener(this.o)}}class cs{getToken(){return Promise.resolve(new as(""))}invalidateToken(){}start(t,e){}shutdown(){}}function ls(t){const e="undefined"!=typeof self&&(self.crypto||self.msCrypto),n=new Uint8Array(t);if(e&&"function"==typeof e.getRandomValues)e.getRandomValues(n);else for(let e=0;ee?1:0}function fs(t,e,n){return t.length===e.length&&t.every(((t,r)=>n(t,e[r])))}function gs(t){return t+"\0"}class ms{constructor(t,e){if(this.seconds=t,this.nanoseconds=e,e<0)throw new Zr(Jr.INVALID_ARGUMENT,"Timestamp nanoseconds out of range: "+e);if(e>=1e9)throw new Zr(Jr.INVALID_ARGUMENT,"Timestamp nanoseconds out of range: "+e);if(t<-62135596800)throw new Zr(Jr.INVALID_ARGUMENT,"Timestamp seconds out of range: "+t);if(t>=253402300800)throw new Zr(Jr.INVALID_ARGUMENT,"Timestamp seconds out of range: "+t)}static now(){return ms.fromMillis(Date.now())}static fromDate(t){return ms.fromMillis(t.getTime())}static fromMillis(t){const e=Math.floor(t/1e3),n=Math.floor(1e6*(t-1e3*e));return new ms(e,n)}toDate(){return new Date(this.toMillis())}toMillis(){return 1e3*this.seconds+this.nanoseconds/1e6}_compareTo(t){return this.seconds===t.seconds?ds(this.nanoseconds,t.nanoseconds):ds(this.seconds,t.seconds)}isEqual(t){return t.seconds===this.seconds&&t.nanoseconds===this.nanoseconds}toString(){return"Timestamp(seconds="+this.seconds+", nanoseconds="+this.nanoseconds+")"}toJSON(){return{seconds:this.seconds,nanoseconds:this.nanoseconds}}valueOf(){const t=this.seconds- -62135596800;return String(t).padStart(12,"0")+"."+String(this.nanoseconds).padStart(9,"0")}}class ps{constructor(t){this.timestamp=t}static fromTimestamp(t){return new ps(t)}static min(){return new ps(new ms(0,0))}static max(){return new ps(new ms(253402300799,999999999))}compareTo(t){return this.timestamp._compareTo(t.timestamp)}isEqual(t){return this.timestamp.isEqual(t.timestamp)}toMicroseconds(){return 1e6*this.timestamp.seconds+this.timestamp.nanoseconds/1e3}toString(){return"SnapshotVersion("+this.timestamp.toString()+")"}toTimestamp(){return this.timestamp}}class ys{constructor(t,e,n){void 0===e?e=0:e>t.length&&Hr(),void 0===n?n=t.length-e:n>t.length-e&&Hr(),this.segments=t,this.offset=e,this.len=n}get length(){return this.len}isEqual(t){return 0===ys.comparator(this,t)}child(t){const e=this.segments.slice(this.offset,this.limit());return t instanceof ys?t.forEach((t=>{e.push(t)})):e.push(t),this.construct(e)}limit(){return this.offset+this.length}popFirst(t){return t=void 0===t?1:t,this.construct(this.segments,this.offset+t,this.length-t)}popLast(){return this.construct(this.segments,this.offset,this.length-1)}firstSegment(){return this.segments[this.offset]}lastSegment(){return this.get(this.length-1)}get(t){return this.segments[this.offset+t]}isEmpty(){return 0===this.length}isPrefixOf(t){if(t.lengths)return 1}return t.lengthe.length?1:0}}class ws extends ys{construct(t,e,n){return new ws(t,e,n)}canonicalString(){return this.toArray().join("/")}toString(){return this.canonicalString()}toUriEncodedString(){return this.toArray().map(encodeURIComponent).join("/")}static fromString(...t){const e=[];for(const n of t){if(n.indexOf("//")>=0)throw new Zr(Jr.INVALID_ARGUMENT,`Invalid segment (${n}). Paths must not contain // in them.`);e.push(...n.split("/").filter((t=>t.length>0)))}return new ws(e)}static emptyPath(){return new ws([])}}const vs=/^[_a-zA-Z][_a-zA-Z0-9]*$/;class bs extends ys{construct(t,e,n){return new bs(t,e,n)}static isValidIdentifier(t){return vs.test(t)}canonicalString(){return this.toArray().map((t=>(t=t.replace(/\\/g,"\\\\").replace(/`/g,"\\`"),bs.isValidIdentifier(t)||(t="`"+t+"`"),t))).join(".")}toString(){return this.canonicalString()}isKeyField(){return 1===this.length&&"__name__"===this.get(0)}static keyField(){return new bs(["__name__"])}static fromServerFormat(t){const e=[];let n="",r=0;const s=()=>{if(0===n.length)throw new Zr(Jr.INVALID_ARGUMENT,`Invalid field path (${t}). Paths must not be empty, begin with '.', end with '.', or contain '..'`);e.push(n),n=""};let i=!1;for(;r=2&&this.path.get(this.path.length-2)===t}getCollectionGroup(){return this.path.get(this.path.length-2)}getCollectionPath(){return this.path.popLast()}isEqual(t){return null!==t&&0===ws.comparator(this.path,t.path)}toString(){return this.path.toString()}static comparator(t,e){return ws.comparator(t.path,e.path)}static isDocumentKey(t){return t.length%2==0}static fromSegments(t){return new _s(new ws(t.slice()))}}class Is{constructor(t,e,n,r){this.indexId=t,this.collectionGroup=e,this.fields=n,this.indexState=r}}function Es(t){return t.fields.find((t=>2===t.kind))}function Ts(t){return t.fields.filter((t=>2!==t.kind))}function Ss(t,e){let n=ds(t.collectionGroup,e.collectionGroup);if(0!==n)return n;for(let r=0;rt()))}}async function Os(t){if(t.code!==Jr.FAILED_PRECONDITION||t.message!==Ms)throw t;jr("LocalStore","Unexpectedly lost primary lease")}class Ps{constructor(t){this.nextCallback=null,this.catchCallback=null,this.result=void 0,this.error=void 0,this.isDone=!1,this.callbackAttached=!1,t((t=>{this.isDone=!0,this.result=t,this.nextCallback&&this.nextCallback(t)}),(t=>{this.isDone=!0,this.error=t,this.catchCallback&&this.catchCallback(t)}))}catch(t){return this.next(void 0,t)}next(t,e){return this.callbackAttached&&Hr(),this.callbackAttached=!0,this.isDone?this.error?this.wrapFailure(e,this.error):this.wrapSuccess(t,this.result):new Ps(((n,r)=>{this.nextCallback=e=>{this.wrapSuccess(t,e).next(n,r)},this.catchCallback=t=>{this.wrapFailure(e,t).next(n,r)}}))}toPromise(){return new Promise(((t,e)=>{this.next(t,e)}))}wrapUserFunction(t){try{const e=t();return e instanceof Ps?e:Ps.resolve(e)}catch(t){return Ps.reject(t)}}wrapSuccess(t,e){return t?this.wrapUserFunction((()=>t(e))):Ps.resolve(e)}wrapFailure(t,e){return t?this.wrapUserFunction((()=>t(e))):Ps.reject(e)}static resolve(t){return new Ps(((e,n)=>{e(t)}))}static reject(t){return new Ps(((e,n)=>{n(t)}))}static waitFor(t){return new Ps(((e,n)=>{let r=0,s=0,i=!1;t.forEach((t=>{++r,t.next((()=>{++s,i&&s===r&&e()}),(t=>n(t)))})),i=!0,s===r&&e()}))}static or(t){let e=Ps.resolve(!1);for(const n of t)e=e.next((t=>t?Ps.resolve(t):n()));return e}static forEach(t,e){const n=[];return t.forEach(((t,r)=>{n.push(e.call(this,t,r))})),this.waitFor(n)}static mapArray(t,e){return new Ps(((n,r)=>{const s=t.length,i=new Array(s);let o=0;for(let a=0;a{i[u]=t,++o,o===s&&n(i)}),(t=>r(t)))}}))}static doWhile(t,e){return new Ps(((n,r)=>{const s=()=>{!0===t()?e().next((()=>{s()}),r):n()};s()}))}}class Fs{constructor(t,e){this.action=t,this.transaction=e,this.aborted=!1,this.V=new ts,this.transaction.oncomplete=()=>{this.V.resolve()},this.transaction.onabort=()=>{e.error?this.V.reject(new Bs(t,e.error)):this.V.resolve()},this.transaction.onerror=e=>{const n=Ks(e.target.error);this.V.reject(new Bs(t,n))}}static open(t,e,n,r){try{return new Fs(e,t.transaction(r,n))}catch(t){throw new Bs(e,t)}}get m(){return this.V.promise}abort(t){t&&this.V.reject(t),this.aborted||(jr("SimpleDb","Aborting transaction:",t?t.message:"Client-initiated abort"),this.aborted=!0,this.transaction.abort())}g(){const t=this.transaction;this.aborted||"function"!=typeof t.commit||t.commit()}store(t){const e=this.transaction.objectStore(t);return new zs(e)}}class Vs{constructor(t,e,n){this.name=t,this.version=e,this.p=n,12.2===Vs.S(d())&&Kr("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.")}static delete(t){return jr("SimpleDb","Removing database:",t),Gs(window.indexedDB.deleteDatabase(t)).toPromise()}static D(){if(!function(){try{return"object"==typeof indexedDB}catch(t){return!1}}())return!1;if(Vs.C())return!0;const t=d(),e=Vs.S(t),n=00||t.indexOf("Trident/")>0||t.indexOf("Edge/")>0||n||s)}static C(){var t;return void 0!==o&&"YES"===(null===(t=o.__PRIVATE_env)||void 0===t?void 0:t.F)}static M(t,e){return t.store(e)}static S(t){const e=t.match(/i(?:phone|pad|pod) os ([\d_]+)/i),n=e?e[1].split("_").slice(0,2).join("."):"-1";return Number(n)}static v(t){const e=t.match(/Android ([\d.]+)/i),n=e?e[1].split(".").slice(0,2).join("."):"-1";return Number(n)}async O(t){return this.db||(jr("SimpleDb","Opening database:",this.name),this.db=await new Promise(((e,n)=>{const r=indexedDB.open(this.name,this.version);r.onsuccess=t=>{const n=t.target.result;e(n)},r.onblocked=()=>{n(new Bs(t,"Cannot upgrade IndexedDB schema while another tab is open. Close all tabs that access Firestore and reload this page to proceed."))},r.onerror=e=>{const r=e.target.error;"VersionError"===r.name?n(new Zr(Jr.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.")):"InvalidStateError"===r.name?n(new Zr(Jr.FAILED_PRECONDITION,"Unable to open an IndexedDB connection. This could be due to running in a private browsing session on a browser whose private browsing sessions do not support IndexedDB: "+r)):n(new Bs(t,r))},r.onupgradeneeded=t=>{jr("SimpleDb",'Database "'+this.name+'" requires upgrade from version:',t.oldVersion);const e=t.target.result;this.p.N(e,r.transaction,t.oldVersion,this.version).next((()=>{jr("SimpleDb","Database upgrade to version "+this.version+" complete")}))}}))),this.B&&(this.db.onversionchange=t=>this.B(t)),this.db}L(t){this.B=t,this.db&&(this.db.onversionchange=e=>t(e))}async runTransaction(t,e,n,r){const s="readonly"===e;let i=0;for(;;){++i;try{this.db=await this.O(t);const e=Fs.open(this.db,t,s?"readonly":"readwrite",n),i=r(e).next((t=>(e.g(),t))).catch((t=>(e.abort(t),Ps.reject(t)))).toPromise();return i.catch((()=>{})),await e.m,i}catch(t){const e=t,n="FirebaseError"!==e.name&&i<3;if(jr("SimpleDb","Transaction failed with error:",e.message,"Retrying:",n),this.close(),!n)return Promise.reject(e)}}}close(){this.db&&this.db.close(),this.db=void 0}}class qs{constructor(t){this.k=t,this.q=!1,this.K=null}get isDone(){return this.q}get $(){return this.K}set cursor(t){this.k=t}done(){this.q=!0}U(t){this.K=t}delete(){return Gs(this.k.delete())}}class Bs extends Zr{constructor(t,e){super(Jr.UNAVAILABLE,`IndexedDB transaction '${t}' failed: ${e}`),this.name="IndexedDbTransactionError"}}function Us(t){return"IndexedDbTransactionError"===t.name}class zs{constructor(t){this.store=t}put(t,e){let n;return void 0!==e?(jr("SimpleDb","PUT",this.store.name,t,e),n=this.store.put(e,t)):(jr("SimpleDb","PUT",this.store.name,"",t),n=this.store.put(t)),Gs(n)}add(t){return jr("SimpleDb","ADD",this.store.name,t,t),Gs(this.store.add(t))}get(t){return Gs(this.store.get(t)).next((e=>(void 0===e&&(e=null),jr("SimpleDb","GET",this.store.name,t,e),e)))}delete(t){return jr("SimpleDb","DELETE",this.store.name,t),Gs(this.store.delete(t))}count(){return jr("SimpleDb","COUNT",this.store.name),Gs(this.store.count())}W(t,e){const n=this.options(t,e),r=n.index?this.store.index(n.index):this.store;if("function"==typeof r.getAll){const t=r.getAll(n.range);return new Ps(((e,n)=>{t.onerror=t=>{n(t.target.error)},t.onsuccess=t=>{e(t.target.result)}}))}{const t=this.cursor(n),e=[];return this.G(t,((t,n)=>{e.push(n)})).next((()=>e))}}j(t,e){const n=this.store.getAll(t,null===e?void 0:e);return new Ps(((t,e)=>{n.onerror=t=>{e(t.target.error)},n.onsuccess=e=>{t(e.target.result)}}))}H(t,e){jr("SimpleDb","DELETE ALL",this.store.name);const n=this.options(t,e);n.J=!1;const r=this.cursor(n);return this.G(r,((t,e,n)=>n.delete()))}Y(t,e){let n;e?n=t:(n={},e=t);const r=this.cursor(n);return this.G(r,e)}Z(t){const e=this.cursor({});return new Ps(((n,r)=>{e.onerror=t=>{const e=Ks(t.target.error);r(e)},e.onsuccess=e=>{const r=e.target.result;r?t(r.primaryKey,r.value).next((t=>{t?r.continue():n()})):n()}}))}G(t,e){const n=[];return new Ps(((r,s)=>{t.onerror=t=>{s(t.target.error)},t.onsuccess=t=>{const s=t.target.result;if(!s)return void r();const i=new qs(s),o=e(s.primaryKey,s.value,i);if(o instanceof Ps){const t=o.catch((t=>(i.done(),Ps.reject(t))));n.push(t)}i.isDone?r():null===i.$?s.continue():s.continue(i.$)}})).next((()=>Ps.waitFor(n)))}options(t,e){let n;return void 0!==t&&("string"==typeof t?n=t:e=t),{index:n,range:e}}cursor(t){let e="next";if(t.reverse&&(e="prev"),t.index){const n=this.store.index(t.index);return t.J?n.openKeyCursor(t.range,e):n.openCursor(t.range,e)}return this.store.openCursor(t.range,e)}}function Gs(t){return new Ps(((e,n)=>{t.onsuccess=t=>{const n=t.target.result;e(n)},t.onerror=t=>{const e=Ks(t.target.error);n(e)}}))}let js=!1;function Ks(t){const e=Vs.S(d());if(e>=12.2&&e<13){const e="An internal error was encountered in the Indexed Database server";if(t.message.indexOf(e)>=0){const t=new Zr("internal",`IOS_INDEXEDDB_BUG1: IndexedDb has thrown '${e}'. This is likely due to an unavoidable bug in iOS. See https://stackoverflow.com/q/56496296/110915 for details and a potential workaround.`);return js||(js=!0,setTimeout((()=>{throw t}),0)),t}}return t}class $s{constructor(t,e){this.asyncQueue=t,this.X=e,this.task=null}start(){this.ee(15e3)}stop(){this.task&&(this.task.cancel(),this.task=null)}get started(){return null!==this.task}ee(t){jr("IndexBackfiller",`Scheduled in ${t}ms`),this.task=this.asyncQueue.enqueueAfterDelay("index_backfill",t,(async()=>{this.task=null;try{jr("IndexBackfiller",`Documents written: ${await this.X.te()}`)}catch(t){Us(t)?jr("IndexBackfiller","Ignoring IndexedDB error during index backfill: ",t):await Os(t)}await this.ee(6e4)}))}}class Qs{constructor(t,e){this.localStore=t,this.persistence=e}async te(t=50){return this.persistence.runTransaction("Backfill Indexes","readwrite-primary",(e=>this.ne(e,t)))}ne(t,e){const n=new Set;let r=e,s=!0;return Ps.doWhile((()=>!0===s&&r>0),(()=>this.localStore.indexManager.getNextCollectionGroupToUpdate(t).next((e=>{if(null!==e&&!n.has(e))return jr("IndexBackfiller",`Processing collection: ${e}`),this.re(t,e,r).next((t=>{r-=t,n.add(e)}));s=!1})))).next((()=>e-r))}re(t,e,n){return this.localStore.indexManager.getMinOffsetFromCollectionGroup(t,e).next((r=>this.localStore.localDocuments.getNextDocuments(t,e,r,n).next((n=>{const s=n.changes;return this.localStore.indexManager.updateIndexEntries(t,s).next((()=>this.ie(r,n))).next((n=>(jr("IndexBackfiller",`Updating offset: ${n}`),this.localStore.indexManager.updateCollectionGroup(t,e,n)))).next((()=>s.size))}))))}ie(t,e){let n=t;return e.changes.forEach(((t,e)=>{const r=Ns(e);Rs(r,n)>0&&(n=r)})),new ks(n.readTime,n.documentKey,Math.max(e.batchId,t.largestBatchId))}}class Hs{constructor(t,e){this.previousValue=t,e&&(e.sequenceNumberHandler=t=>this.se(t),this.oe=t=>e.writeSequenceNumber(t))}se(t){return this.previousValue=Math.max(t,this.previousValue),this.previousValue}next(){const t=++this.previousValue;return this.oe&&this.oe(t),t}}function Ws(t){return null==t}function Ys(t){return 0===t&&1/t==-1/0}function Xs(t){return"number"==typeof t&&Number.isInteger(t)&&!Ys(t)&&t<=Number.MAX_SAFE_INTEGER&&t>=Number.MIN_SAFE_INTEGER}function Js(t){let e="";for(let n=0;n0&&(e=ti(e)),e=Zs(t.get(n),e);return ti(e)}function Zs(t,e){let n=e;const r=t.length;for(let e=0;e=2),2===e)return Wr(""===t.charAt(0)&&""===t.charAt(1)),ws.emptyPath();const n=e-2,r=[];let s="";for(let i=0;in)&&Hr(),t.charAt(e+1)){case"":const n=t.substring(i,e);let o;0===s.length?o=n:(s+=n,o=s,s=""),r.push(o);break;case"":s+=t.substring(i,e),s+="\0";break;case"":s+=t.substring(i,e+1);break;default:Hr()}i=e+2}return new ws(r)}Hs._e=-1;const ni=["userId","batchId"];function ri(t,e){return[t,Js(e)]}function si(t,e,n){return[t,Js(e),n]}const ii={},oi=["prefixPath","collectionGroup","readTime","documentId"],ai=["prefixPath","collectionGroup","documentId"],ui=["collectionGroup","readTime","prefixPath","documentId"],ci=["canonicalId","targetId"],li=["targetId","path"],hi=["path","targetId"],di=["collectionId","parent"],fi=["indexId","uid"],gi=["uid","sequenceNumber"],mi=["indexId","uid","arrayValue","directionalValue","orderedDocumentKey","documentKey"],pi=["indexId","uid","orderedDocumentKey"],yi=["userId","collectionPath","documentId"],wi=["userId","collectionPath","largestBatchId"],vi=["userId","collectionGroup","largestBatchId"],bi=["mutationQueues","mutations","documentMutations","remoteDocuments","targets","owner","targetGlobal","targetDocuments","clientMetadata","remoteDocumentGlobal","collectionParents","bundles","namedQueries"],_i=[...bi,"documentOverlays"],Ii=["mutationQueues","mutations","documentMutations","remoteDocumentsV14","targets","owner","targetGlobal","targetDocuments","clientMetadata","remoteDocumentGlobal","collectionParents","bundles","namedQueries","documentOverlays"],Ei=Ii,Ti=[...Ei,"indexConfiguration","indexState","indexEntries"];class Si extends Ls{constructor(t,e){super(),this.ae=t,this.currentSequenceNumber=e}}function xi(t,e){const n=Xr(t);return Vs.M(n.ae,e)}function Ci(t){let e=0;for(const n in t)Object.prototype.hasOwnProperty.call(t,n)&&e++;return e}function Di(t,e){for(const n in t)Object.prototype.hasOwnProperty.call(t,n)&&e(n,t[n])}function Ai(t){for(const e in t)if(Object.prototype.hasOwnProperty.call(t,e))return!1;return!0}class Ni{constructor(t,e){this.comparator=t,this.root=e||Ri.EMPTY}insert(t,e){return new Ni(this.comparator,this.root.insert(t,e,this.comparator).copy(null,null,Ri.BLACK,null,null))}remove(t){return new Ni(this.comparator,this.root.remove(t,this.comparator).copy(null,null,Ri.BLACK,null,null))}get(t){let e=this.root;for(;!e.isEmpty();){const n=this.comparator(t,e.key);if(0===n)return e.value;n<0?e=e.left:n>0&&(e=e.right)}return null}indexOf(t){let e=0,n=this.root;for(;!n.isEmpty();){const r=this.comparator(t,n.key);if(0===r)return e+n.left.size;r<0?n=n.left:(e+=n.left.size+1,n=n.right)}return-1}isEmpty(){return this.root.isEmpty()}get size(){return this.root.size}minKey(){return this.root.minKey()}maxKey(){return this.root.maxKey()}inorderTraversal(t){return this.root.inorderTraversal(t)}forEach(t){this.inorderTraversal(((e,n)=>(t(e,n),!1)))}toString(){const t=[];return this.inorderTraversal(((e,n)=>(t.push(`${e}:${n}`),!1))),`{${t.join(", ")}}`}reverseTraversal(t){return this.root.reverseTraversal(t)}getIterator(){return new ki(this.root,null,this.comparator,!1)}getIteratorFrom(t){return new ki(this.root,t,this.comparator,!1)}getReverseIterator(){return new ki(this.root,null,this.comparator,!0)}getReverseIteratorFrom(t){return new ki(this.root,t,this.comparator,!0)}}class ki{constructor(t,e,n,r){this.isReverse=r,this.nodeStack=[];let s=1;for(;!t.isEmpty();)if(s=e?n(t.key,e):1,e&&r&&(s*=-1),s<0)t=this.isReverse?t.left:t.right;else{if(0===s){this.nodeStack.push(t);break}this.nodeStack.push(t),t=this.isReverse?t.right:t.left}}getNext(){let t=this.nodeStack.pop();const e={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 e}hasNext(){return this.nodeStack.length>0}peek(){if(0===this.nodeStack.length)return null;const t=this.nodeStack[this.nodeStack.length-1];return{key:t.key,value:t.value}}}class Ri{constructor(t,e,n,r,s){this.key=t,this.value=e,this.color=null!=n?n:Ri.RED,this.left=null!=r?r:Ri.EMPTY,this.right=null!=s?s:Ri.EMPTY,this.size=this.left.size+1+this.right.size}copy(t,e,n,r,s){return new Ri(null!=t?t:this.key,null!=e?e:this.value,null!=n?n:this.color,null!=r?r:this.left,null!=s?s:this.right)}isEmpty(){return!1}inorderTraversal(t){return this.left.inorderTraversal(t)||t(this.key,this.value)||this.right.inorderTraversal(t)}reverseTraversal(t){return this.right.reverseTraversal(t)||t(this.key,this.value)||this.left.reverseTraversal(t)}min(){return this.left.isEmpty()?this:this.left.min()}minKey(){return this.min().key}maxKey(){return this.right.isEmpty()?this.key:this.right.maxKey()}insert(t,e,n){let r=this;const s=n(t,r.key);return r=s<0?r.copy(null,null,null,r.left.insert(t,e,n),null):0===s?r.copy(null,e,null,null,null):r.copy(null,null,null,null,r.right.insert(t,e,n)),r.fixUp()}removeMin(){if(this.left.isEmpty())return Ri.EMPTY;let t=this;return t.left.isRed()||t.left.left.isRed()||(t=t.moveRedLeft()),t=t.copy(null,null,null,t.left.removeMin(),null),t.fixUp()}remove(t,e){let n,r=this;if(e(t,r.key)<0)r.left.isEmpty()||r.left.isRed()||r.left.left.isRed()||(r=r.moveRedLeft()),r=r.copy(null,null,null,r.left.remove(t,e),null);else{if(r.left.isRed()&&(r=r.rotateRight()),r.right.isEmpty()||r.right.isRed()||r.right.left.isRed()||(r=r.moveRedRight()),0===e(t,r.key)){if(r.right.isEmpty())return Ri.EMPTY;n=r.right.min(),r=r.copy(n.key,n.value,null,null,r.right.removeMin())}r=r.copy(null,null,null,null,r.right.remove(t,e))}return r.fixUp()}isRed(){return this.color}fixUp(){let 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}moveRedLeft(){let t=this.colorFlip();return t.right.left.isRed()&&(t=t.copy(null,null,null,null,t.right.rotateRight()),t=t.rotateLeft(),t=t.colorFlip()),t}moveRedRight(){let t=this.colorFlip();return t.left.left.isRed()&&(t=t.rotateRight(),t=t.colorFlip()),t}rotateLeft(){const t=this.copy(null,null,Ri.RED,null,this.right.left);return this.right.copy(null,null,this.color,t,null)}rotateRight(){const t=this.copy(null,null,Ri.RED,this.left.right,null);return this.left.copy(null,null,this.color,null,t)}colorFlip(){const t=this.left.copy(null,null,!this.left.color,null,null),e=this.right.copy(null,null,!this.right.color,null,null);return this.copy(null,null,!this.color,t,e)}checkMaxDepth(){const t=this.check();return Math.pow(2,t)<=this.size+1}check(){if(this.isRed()&&this.left.isRed())throw Hr();if(this.right.isRed())throw Hr();const t=this.left.check();if(t!==this.right.check())throw Hr();return t+(this.isRed()?0:1)}}Ri.EMPTY=null,Ri.RED=!0,Ri.BLACK=!1,Ri.EMPTY=new class{constructor(){this.size=0}get key(){throw Hr()}get value(){throw Hr()}get color(){throw Hr()}get left(){throw Hr()}get right(){throw Hr()}copy(t,e,n,r,s){return this}insert(t,e,n){return new Ri(t,e)}remove(t,e){return this}isEmpty(){return!0}inorderTraversal(t){return!1}reverseTraversal(t){return!1}minKey(){return null}maxKey(){return null}isRed(){return!1}checkMaxDepth(){return!0}check(){return 0}};class Mi{constructor(t){this.comparator=t,this.data=new Ni(this.comparator)}has(t){return null!==this.data.get(t)}first(){return this.data.minKey()}last(){return this.data.maxKey()}get size(){return this.data.size}indexOf(t){return this.data.indexOf(t)}forEach(t){this.data.inorderTraversal(((e,n)=>(t(e),!1)))}forEachInRange(t,e){const n=this.data.getIteratorFrom(t[0]);for(;n.hasNext();){const r=n.getNext();if(this.comparator(r.key,t[1])>=0)return;e(r.key)}}forEachWhile(t,e){let n;for(n=void 0!==e?this.data.getIteratorFrom(e):this.data.getIterator();n.hasNext();)if(!t(n.getNext().key))return}firstAfterOrEqual(t){const e=this.data.getIteratorFrom(t);return e.hasNext()?e.getNext().key:null}getIterator(){return new Li(this.data.getIterator())}getIteratorFrom(t){return new Li(this.data.getIteratorFrom(t))}add(t){return this.copy(this.data.remove(t).insert(t,!0))}delete(t){return this.has(t)?this.copy(this.data.remove(t)):this}isEmpty(){return this.data.isEmpty()}unionWith(t){let e=this;return e.size{e=e.add(t)})),e}isEqual(t){if(!(t instanceof Mi))return!1;if(this.size!==t.size)return!1;const e=this.data.getIterator(),n=t.data.getIterator();for(;e.hasNext();){const t=e.getNext().key,r=n.getNext().key;if(0!==this.comparator(t,r))return!1}return!0}toArray(){const t=[];return this.forEach((e=>{t.push(e)})),t}toString(){const t=[];return this.forEach((e=>t.push(e))),"SortedSet("+t.toString()+")"}copy(t){const e=new Mi(this.comparator);return e.data=t,e}}class Li{constructor(t){this.iter=t}getNext(){return this.iter.getNext().key}hasNext(){return this.iter.hasNext()}}function Oi(t){return t.hasNext()?t.getNext():void 0}class Pi{constructor(t){this.fields=t,t.sort(bs.comparator)}static empty(){return new Pi([])}unionWith(t){let e=new Mi(bs.comparator);for(const t of this.fields)e=e.add(t);for(const n of t)e=e.add(n);return new Pi(e.toArray())}covers(t){for(const e of this.fields)if(e.isPrefixOf(t))return!0;return!1}isEqual(t){return fs(this.fields,t.fields,((t,e)=>t.isEqual(e)))}}class Fi extends Error{constructor(){super(...arguments),this.name="Base64DecodeError"}}function Vi(){return"undefined"!=typeof atob}class qi{constructor(t){this.binaryString=t}static fromBase64String(t){const e=function(t){try{return atob(t)}catch(t){throw"undefined"!=typeof DOMException&&t instanceof DOMException?new Fi("Invalid base64 string: "+t):t}}(t);return new qi(e)}static fromUint8Array(t){const e=function(t){let e="";for(let n=0;ntJi(t,e)))}function to(t,e){if(t===e)return 0;const n=Xi(t),r=Xi(e);if(n!==r)return ds(n,r);switch(n){case 0:case 9007199254740991:return 0;case 1:return ds(t.booleanValue,e.booleanValue);case 2:return function(t,e){const n=zi(t.integerValue||t.doubleValue),r=zi(e.integerValue||e.doubleValue);return nr?1:n===r?0:isNaN(n)?isNaN(r)?0:-1:1}(t,e);case 3:return eo(t.timestampValue,e.timestampValue);case 4:return eo($i(t),$i(e));case 5:return ds(t.stringValue,e.stringValue);case 6:return function(t,e){const n=Gi(t),r=Gi(e);return n.compareTo(r)}(t.bytesValue,e.bytesValue);case 7:return function(t,e){const n=t.split("/"),r=e.split("/");for(let t=0;tt+so(e)),0)}(t.arrayValue);case 10:return function(t){let e=0;return Di(t.fields,((t,n)=>{e+=t.length+so(n)})),e}(t.mapValue);default:throw Hr()}}function io(t,e){return{referenceValue:`projects/${t.projectId}/databases/${t.database}/documents/${e.path.canonicalString()}`}}function oo(t){return!!t&&"integerValue"in t}function ao(t){return!!t&&"arrayValue"in t}function uo(t){return!!t&&"nullValue"in t}function co(t){return!!t&&"doubleValue"in t&&isNaN(Number(t.doubleValue))}function lo(t){return!!t&&"mapValue"in t}function ho(t){if(t.geoPointValue)return{geoPointValue:Object.assign({},t.geoPointValue)};if(t.timestampValue&&"object"==typeof t.timestampValue)return{timestampValue:Object.assign({},t.timestampValue)};if(t.mapValue){const e={mapValue:{fields:{}}};return Di(t.mapValue.fields,((t,n)=>e.mapValue.fields[t]=ho(n))),e}if(t.arrayValue){const e={arrayValue:{values:[]}};for(let n=0;n<(t.arrayValue.values||[]).length;++n)e.arrayValue.values[n]=ho(t.arrayValue.values[n]);return e}return Object.assign({},t)}function fo(t){return"__max__"===(((t.mapValue||{}).fields||{}).__type__||{}).stringValue}function go(t){return"nullValue"in t?Yi:"booleanValue"in t?{booleanValue:!1}:"integerValue"in t||"doubleValue"in t?{doubleValue:NaN}:"timestampValue"in t?{timestampValue:{seconds:Number.MIN_SAFE_INTEGER}}:"stringValue"in t?{stringValue:""}:"bytesValue"in t?{bytesValue:""}:"referenceValue"in t?io(Hi.empty(),_s.empty()):"geoPointValue"in t?{geoPointValue:{latitude:-90,longitude:-180}}:"arrayValue"in t?{arrayValue:{}}:"mapValue"in t?{mapValue:{}}:Hr()}function mo(t){return"nullValue"in t?{booleanValue:!1}:"booleanValue"in t?{doubleValue:NaN}:"integerValue"in t||"doubleValue"in t?{timestampValue:{seconds:Number.MIN_SAFE_INTEGER}}:"timestampValue"in t?{stringValue:""}:"stringValue"in t?{bytesValue:""}:"bytesValue"in t?io(Hi.empty(),_s.empty()):"referenceValue"in t?{geoPointValue:{latitude:-90,longitude:-180}}:"geoPointValue"in t?{arrayValue:{}}:"arrayValue"in t?{mapValue:{}}:"mapValue"in t?Wi:Hr()}function po(t,e){const n=to(t.value,e.value);return 0!==n?n:t.inclusive&&!e.inclusive?-1:!t.inclusive&&e.inclusive?1:0}function yo(t,e){const n=to(t.value,e.value);return 0!==n?n:t.inclusive&&!e.inclusive?1:!t.inclusive&&e.inclusive?-1:0}class wo{constructor(t){this.value=t}static empty(){return new wo({mapValue:{}})}field(t){if(t.isEmpty())return this.value;{let e=this.value;for(let n=0;n{if(!e.isImmediateParentOf(s)){const t=this.getFieldsMap(e);this.applyChanges(t,n,r),n={},r=[],e=s.popLast()}t?n[s.lastSegment()]=ho(t):r.push(s.lastSegment())}));const s=this.getFieldsMap(e);this.applyChanges(s,n,r)}delete(t){const e=this.field(t.popLast());lo(e)&&e.mapValue.fields&&delete e.mapValue.fields[t.lastSegment()]}isEqual(t){return Ji(this.value,t.value)}getFieldsMap(t){let e=this.value;e.mapValue.fields||(e.mapValue={fields:{}});for(let n=0;nt[e]=n));for(const e of n)delete t[e]}clone(){return new wo(ho(this.value))}}function vo(t){const e=[];return Di(t.fields,((t,n)=>{const r=new bs([t]);if(lo(n)){const t=vo(n.mapValue).fields;if(0===t.length)e.push(r);else for(const n of t)e.push(r.child(n))}else e.push(r)})),new Pi(e)}class bo{constructor(t,e,n,r,s,i,o){this.key=t,this.documentType=e,this.version=n,this.readTime=r,this.createTime=s,this.data=i,this.documentState=o}static newInvalidDocument(t){return new bo(t,0,ps.min(),ps.min(),ps.min(),wo.empty(),0)}static newFoundDocument(t,e,n,r){return new bo(t,1,e,ps.min(),n,r,0)}static newNoDocument(t,e){return new bo(t,2,e,ps.min(),ps.min(),wo.empty(),0)}static newUnknownDocument(t,e){return new bo(t,3,e,ps.min(),ps.min(),wo.empty(),2)}convertToFoundDocument(t,e){return!this.createTime.isEqual(ps.min())||2!==this.documentType&&0!==this.documentType||(this.createTime=t),this.version=t,this.documentType=1,this.data=e,this.documentState=0,this}convertToNoDocument(t){return this.version=t,this.documentType=2,this.data=wo.empty(),this.documentState=0,this}convertToUnknownDocument(t){return this.version=t,this.documentType=3,this.data=wo.empty(),this.documentState=2,this}setHasCommittedMutations(){return this.documentState=2,this}setHasLocalMutations(){return this.documentState=1,this.version=ps.min(),this}setReadTime(t){return this.readTime=t,this}get hasLocalMutations(){return 1===this.documentState}get hasCommittedMutations(){return 2===this.documentState}get hasPendingWrites(){return this.hasLocalMutations||this.hasCommittedMutations}isValidDocument(){return 0!==this.documentType}isFoundDocument(){return 1===this.documentType}isNoDocument(){return 2===this.documentType}isUnknownDocument(){return 3===this.documentType}isEqual(t){return t instanceof bo&&this.key.isEqual(t.key)&&this.version.isEqual(t.version)&&this.documentType===t.documentType&&this.documentState===t.documentState&&this.data.isEqual(t.data)}mutableCopy(){return new bo(this.key,this.documentType,this.version,this.readTime,this.createTime,this.data.clone(),this.documentState)}toString(){return`Document(${this.key}, ${this.version}, ${JSON.stringify(this.data.value)}, {createTime: ${this.createTime}}), {documentType: ${this.documentType}}), {documentState: ${this.documentState}})`}}class _o{constructor(t,e){this.position=t,this.inclusive=e}}function Io(t,e,n){let r=0;for(let s=0;s":return t>0;case">=":return t>=0;default:return Hr()}}isInequality(){return["<","<=",">",">=","!=","not-in"].indexOf(this.op)>=0}getFlattenedFilters(){return[this]}getFilters(){return[this]}}class Do extends xo{constructor(t,e){super(),this.filters=t,this.op=e,this.ue=null}static create(t,e){return new Do(t,e)}matches(t){return Ao(this)?void 0===this.filters.find((e=>!e.matches(t))):void 0!==this.filters.find((e=>e.matches(t)))}getFlattenedFilters(){return null!==this.ue||(this.ue=this.filters.reduce(((t,e)=>t.concat(e.getFlattenedFilters())),[])),this.ue}getFilters(){return Object.assign([],this.filters)}}function Ao(t){return"and"===t.op}function No(t){return"or"===t.op}function ko(t){return Ro(t)&&Ao(t)}function Ro(t){for(const e of t.filters)if(e instanceof Do)return!1;return!0}function Mo(t){if(t instanceof Co)return t.field.canonicalString()+t.op.toString()+no(t.value);if(ko(t))return t.filters.map((t=>Mo(t))).join(",");{const e=t.filters.map((t=>Mo(t))).join(",");return`${t.op}(${e})`}}function Lo(t,e){return t instanceof Co?function(t,e){return e instanceof Co&&t.op===e.op&&t.field.isEqual(e.field)&&Ji(t.value,e.value)}(t,e):t instanceof Do?function(t,e){return e instanceof Do&&t.op===e.op&&t.filters.length===e.filters.length&&t.filters.reduce(((t,n,r)=>t&&Lo(n,e.filters[r])),!0)}(t,e):void Hr()}function Oo(t,e){const n=t.filters.concat(e);return Do.create(n,t.op)}function Po(t){return t instanceof Co?function(t){return`${t.field.canonicalString()} ${t.op} ${no(t.value)}`}(t):t instanceof Do?function(t){return t.op.toString()+" {"+t.getFilters().map(Po).join(" ,")+"}"}(t):"Filter"}class Fo extends Co{constructor(t,e,n){super(t,e,n),this.key=_s.fromName(n.referenceValue)}matches(t){const e=_s.comparator(t.key,this.key);return this.matchesComparison(e)}}class Vo extends Co{constructor(t,e){super(t,"in",e),this.keys=Bo("in",e)}matches(t){return this.keys.some((e=>e.isEqual(t.key)))}}class qo extends Co{constructor(t,e){super(t,"not-in",e),this.keys=Bo("not-in",e)}matches(t){return!this.keys.some((e=>e.isEqual(t.key)))}}function Bo(t,e){var n;return((null===(n=e.arrayValue)||void 0===n?void 0:n.values)||[]).map((t=>_s.fromName(t.referenceValue)))}class Uo extends Co{constructor(t,e){super(t,"array-contains",e)}matches(t){const e=t.data.field(this.field);return ao(e)&&Zi(e.arrayValue,this.value)}}class zo extends Co{constructor(t,e){super(t,"in",e)}matches(t){const e=t.data.field(this.field);return null!==e&&Zi(this.value.arrayValue,e)}}class Go extends Co{constructor(t,e){super(t,"not-in",e)}matches(t){if(Zi(this.value.arrayValue,{nullValue:"NULL_VALUE"}))return!1;const e=t.data.field(this.field);return null!==e&&!Zi(this.value.arrayValue,e)}}class jo extends Co{constructor(t,e){super(t,"array-contains-any",e)}matches(t){const e=t.data.field(this.field);return!(!ao(e)||!e.arrayValue.values)&&e.arrayValue.values.some((t=>Zi(this.value.arrayValue,t)))}}class Ko{constructor(t,e=null,n=[],r=[],s=null,i=null,o=null){this.path=t,this.collectionGroup=e,this.orderBy=n,this.filters=r,this.limit=s,this.startAt=i,this.endAt=o,this.ce=null}}function $o(t,e=null,n=[],r=[],s=null,i=null,o=null){return new Ko(t,e,n,r,s,i,o)}function Qo(t){const e=Xr(t);if(null===e.ce){let t=e.path.canonicalString();null!==e.collectionGroup&&(t+="|cg:"+e.collectionGroup),t+="|f:",t+=e.filters.map((t=>Mo(t))).join(","),t+="|ob:",t+=e.orderBy.map((t=>function(t){return t.field.canonicalString()+t.dir}(t))).join(","),Ws(e.limit)||(t+="|l:",t+=e.limit),e.startAt&&(t+="|lb:",t+=e.startAt.inclusive?"b:":"a:",t+=e.startAt.position.map((t=>no(t))).join(",")),e.endAt&&(t+="|ub:",t+=e.endAt.inclusive?"a:":"b:",t+=e.endAt.position.map((t=>no(t))).join(",")),e.ce=t}return e.ce}function Ho(t,e){if(t.limit!==e.limit)return!1;if(t.orderBy.length!==e.orderBy.length)return!1;for(let n=0;nt instanceof Co&&t.field.isEqual(e)))}function Xo(t,e,n){let r=Yi,s=!0;for(const n of Yo(t,e)){let t=Yi,e=!0;switch(n.op){case"<":case"<=":t=go(n.value);break;case"==":case"in":case">=":t=n.value;break;case">":t=n.value,e=!1;break;case"!=":case"not-in":t=Yi}po({value:r,inclusive:s},{value:t,inclusive:e})<0&&(r=t,s=e)}if(null!==n)for(let i=0;i=":case">":t=mo(n.value),e=!1;break;case"==":case"in":case"<=":t=n.value;break;case"<":t=n.value,e=!1;break;case"!=":case"not-in":t=Wi}yo({value:r,inclusive:s},{value:t,inclusive:e})>0&&(r=t,s=e)}if(null!==n)for(let i=0;i0&&(r=t,s=n.inclusive);break}return{value:r,inclusive:s}}class Zo{constructor(t,e=null,n=[],r=[],s=null,i="F",o=null,a=null){this.path=t,this.collectionGroup=e,this.explicitOrderBy=n,this.filters=r,this.limit=s,this.limitType=i,this.startAt=o,this.endAt=a,this.le=null,this.he=null,this.Pe=null,this.startAt,this.endAt}}function ta(t,e,n,r,s,i,o,a){return new Zo(t,e,n,r,s,i,o,a)}function ea(t){return new Zo(t)}function na(t){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())}function ra(t){return null!==t.collectionGroup}function sa(t){const e=Xr(t);if(null===e.le){e.le=[];const t=new Set;for(const n of e.explicitOrderBy)e.le.push(n),t.add(n.field.canonicalString());const n=e.explicitOrderBy.length>0?e.explicitOrderBy[e.explicitOrderBy.length-1].dir:"asc",r=function(t){let e=new Mi(bs.comparator);return t.filters.forEach((t=>{t.getFlattenedFilters().forEach((t=>{t.isInequality()&&(e=e.add(t.field))}))})),e}(e);r.forEach((r=>{t.has(r.canonicalString())||r.isKeyField()||e.le.push(new To(r,n))})),t.has(bs.keyField().canonicalString())||e.le.push(new To(bs.keyField(),n))}return e.le}function ia(t){const e=Xr(t);return e.he||(e.he=oa(e,sa(t))),e.he}function oa(t,e){if("F"===t.limitType)return $o(t.path,t.collectionGroup,e,t.filters,t.limit,t.startAt,t.endAt);{e=e.map((t=>{const e="desc"===t.dir?"asc":"desc";return new To(t.field,e)}));const n=t.endAt?new _o(t.endAt.position,t.endAt.inclusive):null,r=t.startAt?new _o(t.startAt.position,t.startAt.inclusive):null;return $o(t.path,t.collectionGroup,e,t.filters,t.limit,n,r)}}function aa(t,e){const n=t.filters.concat([e]);return new Zo(t.path,t.collectionGroup,t.explicitOrderBy.slice(),n,t.limit,t.limitType,t.startAt,t.endAt)}function ua(t,e,n){return new Zo(t.path,t.collectionGroup,t.explicitOrderBy.slice(),t.filters.slice(),e,n,t.startAt,t.endAt)}function ca(t,e){return Ho(ia(t),ia(e))&&t.limitType===e.limitType}function la(t){return`${Qo(ia(t))}|lt:${t.limitType}`}function ha(t){return`Query(target=${function(t){let e=t.path.canonicalString();return null!==t.collectionGroup&&(e+=" collectionGroup="+t.collectionGroup),t.filters.length>0&&(e+=`, filters: [${t.filters.map((t=>Po(t))).join(", ")}]`),Ws(t.limit)||(e+=", limit: "+t.limit),t.orderBy.length>0&&(e+=`, orderBy: [${t.orderBy.map((t=>function(t){return`${t.field.canonicalString()} (${t.dir})`}(t))).join(", ")}]`),t.startAt&&(e+=", startAt: ",e+=t.startAt.inclusive?"b:":"a:",e+=t.startAt.position.map((t=>no(t))).join(",")),t.endAt&&(e+=", endAt: ",e+=t.endAt.inclusive?"a:":"b:",e+=t.endAt.position.map((t=>no(t))).join(",")),`Target(${e})`}(ia(t))}; limitType=${t.limitType})`}function da(t,e){return e.isFoundDocument()&&function(t,e){const n=e.key.path;return null!==t.collectionGroup?e.key.hasCollectionId(t.collectionGroup)&&t.path.isPrefixOf(n):_s.isDocumentKey(t.path)?t.path.isEqual(n):t.path.isImmediateParentOf(n)}(t,e)&&function(t,e){for(const n of sa(t))if(!n.field.isKeyField()&&null===e.data.field(n.field))return!1;return!0}(t,e)&&function(t,e){for(const n of t.filters)if(!n.matches(e))return!1;return!0}(t,e)&&function(t,e){return!(t.startAt&&!function(t,e,n){const r=Io(t,e,n);return t.inclusive?r<=0:r<0}(t.startAt,sa(t),e)||t.endAt&&!function(t,e,n){const r=Io(t,e,n);return t.inclusive?r>=0:r>0}(t.endAt,sa(t),e))}(t,e)}function fa(t){return t.collectionGroup||(t.path.length%2==1?t.path.lastSegment():t.path.get(t.path.length-2))}function ga(t){return(e,n)=>{let r=!1;for(const s of sa(t)){const t=ma(s,e,n);if(0!==t)return t;r=r||s.field.isKeyField()}return 0}}function ma(t,e,n){const r=t.field.isKeyField()?_s.comparator(e.key,n.key):function(t,e,n){const r=e.data.field(t),s=n.data.field(t);return null!==r&&null!==s?to(r,s):Hr()}(t.field,e,n);switch(t.dir){case"asc":return r;case"desc":return-1*r;default:return Hr()}}class pa{constructor(t,e){this.mapKeyFn=t,this.equalsFn=e,this.inner={},this.innerSize=0}get(t){const e=this.mapKeyFn(t),n=this.inner[e];if(void 0!==n)for(const[e,r]of n)if(this.equalsFn(e,t))return r}has(t){return void 0!==this.get(t)}set(t,e){const n=this.mapKeyFn(t),r=this.inner[n];if(void 0===r)return this.inner[n]=[[t,e]],void this.innerSize++;for(let n=0;n{for(const[e,r]of n)t(e,r)}))}isEmpty(){return Ai(this.inner)}size(){return this.innerSize}}const ya=new Ni(_s.comparator);function wa(){return ya}const va=new Ni(_s.comparator);function ba(...t){let e=va;for(const n of t)e=e.insert(n.key,n);return e}function _a(t){let e=va;return t.forEach(((t,n)=>e=e.insert(t,n.overlayedDocument))),e}function Ia(){return Ta()}function Ea(){return Ta()}function Ta(){return new pa((t=>t.toString()),((t,e)=>t.isEqual(e)))}const Sa=new Ni(_s.comparator),xa=new Mi(_s.comparator);function Ca(...t){let e=xa;for(const n of t)e=e.add(n);return e}const Da=new Mi(ds);function Aa(){return Da}function Na(t,e){if(t.useProto3Json){if(isNaN(e))return{doubleValue:"NaN"};if(e===1/0)return{doubleValue:"Infinity"};if(e===-1/0)return{doubleValue:"-Infinity"}}return{doubleValue:Ys(e)?"-0":e}}function ka(t){return{integerValue:""+t}}function Ra(t,e){return Xs(e)?ka(e):Na(t,e)}class Ma{constructor(){this._=void 0}}function La(t,e,n){return t instanceof Fa?function(t,e){const n={fields:{__type__:{stringValue:"server_timestamp"},__local_write_time__:{timestampValue:{seconds:t.seconds,nanos:t.nanoseconds}}}};return e&&ji(e)&&(e=Ki(e)),e&&(n.fields.__previous_value__=e),{mapValue:n}}(n,e):t instanceof Va?qa(t,e):t instanceof Ba?Ua(t,e):function(t,e){const n=Pa(t,e),r=Ga(n)+Ga(t.Ie);return oo(n)&&oo(t.Ie)?ka(r):Na(t.serializer,r)}(t,e)}function Oa(t,e,n){return t instanceof Va?qa(t,e):t instanceof Ba?Ua(t,e):n}function Pa(t,e){return t instanceof za?function(t){return oo(t)||function(t){return!!t&&"doubleValue"in t}(t)}(e)?e:{integerValue:0}:null}class Fa extends Ma{}class Va extends Ma{constructor(t){super(),this.elements=t}}function qa(t,e){const n=ja(e);for(const e of t.elements)n.some((t=>Ji(t,e)))||n.push(e);return{arrayValue:{values:n}}}class Ba extends Ma{constructor(t){super(),this.elements=t}}function Ua(t,e){let n=ja(e);for(const e of t.elements)n=n.filter((t=>!Ji(t,e)));return{arrayValue:{values:n}}}class za extends Ma{constructor(t,e){super(),this.serializer=t,this.Ie=e}}function Ga(t){return zi(t.integerValue||t.doubleValue)}function ja(t){return ao(t)&&t.arrayValue.values?t.arrayValue.values.slice():[]}class Ka{constructor(t,e){this.field=t,this.transform=e}}class $a{constructor(t,e){this.version=t,this.transformResults=e}}class Qa{constructor(t,e){this.updateTime=t,this.exists=e}static none(){return new Qa}static exists(t){return new Qa(void 0,t)}static updateTime(t){return new Qa(t)}get isNone(){return void 0===this.updateTime&&void 0===this.exists}isEqual(t){return this.exists===t.exists&&(this.updateTime?!!t.updateTime&&this.updateTime.isEqual(t.updateTime):!t.updateTime)}}function Ha(t,e){return void 0!==t.updateTime?e.isFoundDocument()&&e.version.isEqual(t.updateTime):void 0===t.exists||t.exists===e.isFoundDocument()}class Wa{}function Ya(t,e){if(!t.hasLocalMutations||e&&0===e.fields.length)return null;if(null===e)return t.isNoDocument()?new ou(t.key,Qa.none()):new eu(t.key,t.data,Qa.none());{const n=t.data,r=wo.empty();let s=new Mi(bs.comparator);for(let t of e.fields)if(!s.has(t)){let e=n.field(t);null===e&&t.length>1&&(t=t.popLast(),e=n.field(t)),null===e?r.delete(t):r.set(t,e),s=s.add(t)}return new nu(t.key,r,new Pi(s.toArray()),Qa.none())}}function Xa(t,e,n){t instanceof eu?function(t,e,n){const r=t.value.clone(),s=su(t.fieldTransforms,e,n.transformResults);r.setAll(s),e.convertToFoundDocument(n.version,r).setHasCommittedMutations()}(t,e,n):t instanceof nu?function(t,e,n){if(!Ha(t.precondition,e))return void e.convertToUnknownDocument(n.version);const r=su(t.fieldTransforms,e,n.transformResults),s=e.data;s.setAll(ru(t)),s.setAll(r),e.convertToFoundDocument(n.version,s).setHasCommittedMutations()}(t,e,n):function(t,e,n){e.convertToNoDocument(n.version).setHasCommittedMutations()}(0,e,n)}function Ja(t,e,n,r){return t instanceof eu?function(t,e,n,r){if(!Ha(t.precondition,e))return n;const s=t.value.clone(),i=iu(t.fieldTransforms,r,e);return s.setAll(i),e.convertToFoundDocument(e.version,s).setHasLocalMutations(),null}(t,e,n,r):t instanceof nu?function(t,e,n,r){if(!Ha(t.precondition,e))return n;const s=iu(t.fieldTransforms,r,e),i=e.data;return i.setAll(ru(t)),i.setAll(s),e.convertToFoundDocument(e.version,i).setHasLocalMutations(),null===n?null:n.unionWith(t.fieldMask.fields).unionWith(t.fieldTransforms.map((t=>t.field)))}(t,e,n,r):function(t,e,n){return Ha(t.precondition,e)?(e.convertToNoDocument(e.version).setHasLocalMutations(),null):n}(t,e,n)}function Za(t,e){let n=null;for(const r of t.fieldTransforms){const t=e.data.field(r.field),s=Pa(r.transform,t||null);null!=s&&(null===n&&(n=wo.empty()),n.set(r.field,s))}return n||null}function tu(t,e){return t.type===e.type&&!!t.key.isEqual(e.key)&&!!t.precondition.isEqual(e.precondition)&&!!function(t,e){return void 0===t&&void 0===e||!(!t||!e)&&fs(t,e,((t,e)=>function(t,e){return t.field.isEqual(e.field)&&function(t,e){return t instanceof Va&&e instanceof Va||t instanceof Ba&&e instanceof Ba?fs(t.elements,e.elements,Ji):t instanceof za&&e instanceof za?Ji(t.Ie,e.Ie):t instanceof Fa&&e instanceof Fa}(t.transform,e.transform)}(t,e)))}(t.fieldTransforms,e.fieldTransforms)&&(0===t.type?t.value.isEqual(e.value):1!==t.type||t.data.isEqual(e.data)&&t.fieldMask.isEqual(e.fieldMask))}class eu extends Wa{constructor(t,e,n,r=[]){super(),this.key=t,this.value=e,this.precondition=n,this.fieldTransforms=r,this.type=0}getFieldMask(){return null}}class nu extends Wa{constructor(t,e,n,r,s=[]){super(),this.key=t,this.data=e,this.fieldMask=n,this.precondition=r,this.fieldTransforms=s,this.type=1}getFieldMask(){return this.fieldMask}}function ru(t){const e=new Map;return t.fieldMask.fields.forEach((n=>{if(!n.isEmpty()){const r=t.data.field(n);e.set(n,r)}})),e}function su(t,e,n){const r=new Map;Wr(t.length===n.length);for(let s=0;s{const s=t.get(r.key),i=s.overlayedDocument;let o=this.applyToLocalView(i,s.mutatedFields);o=e.has(r.key)?null:o;const a=Ya(i,o);null!==a&&n.set(r.key,a),i.isValidDocument()||i.convertToNoDocument(ps.min())})),n}keys(){return this.mutations.reduce(((t,e)=>t.add(e.key)),Ca())}isEqual(t){return this.batchId===t.batchId&&fs(this.mutations,t.mutations,((t,e)=>tu(t,e)))&&fs(this.baseMutations,t.baseMutations,((t,e)=>tu(t,e)))}}class cu{constructor(t,e,n,r){this.batch=t,this.commitVersion=e,this.mutationResults=n,this.docVersions=r}static from(t,e,n){Wr(t.mutations.length===n.length);let r=Sa;const s=t.mutations;for(let t=0;t=8)throw new Eu(`Invalid padding: ${e}`);if(n<0)throw new Eu(`Invalid hash count: ${n}`);if(t.length>0&&0===this.hashCount)throw new Eu(`Invalid hash count: ${n}`);if(0===t.length&&0!==e)throw new Eu(`Invalid padding when bitmap length is 0: ${e}`);this.Te=8*t.length-e,this.Ee=Fr.fromNumber(this.Te)}de(t,e,n){let r=t.add(e.multiply(Fr.fromNumber(n)));return 1===r.compare(vu)&&(r=new Fr([r.getBits(0),r.getBits(1)],0)),r.modulo(this.Ee).toNumber()}Ae(t){return 0!=(this.bitmap[Math.floor(t/8)]&1<i.insert(t))),i}insert(t){if(0===this.Te)return;const e=bu(t),[n,r]=_u(e);for(let t=0;t0&&(this.Se=!0,this.ye=t)}ve(){let t=Ca(),e=Ca(),n=Ca();return this.pe.forEach(((r,s)=>{switch(s){case 0:t=t.add(r);break;case 2:e=e.add(r);break;case 1:n=n.add(r);break;default:Hr()}})),new Su(this.ye,this.we,t,e,n)}Fe(){this.Se=!1,this.pe=Ru()}Me(t,e){this.Se=!0,this.pe=this.pe.insert(t,e)}xe(t){this.Se=!0,this.pe=this.pe.remove(t)}Oe(){this.ge+=1}Ne(){this.ge-=1,Wr(this.ge>=0)}Be(){this.Se=!0,this.we=!0}}class Nu{constructor(t){this.Le=t,this.ke=new Map,this.qe=wa(),this.Qe=ku(),this.Ke=new Ni(ds)}$e(t){for(const e of t.Ve)t.me&&t.me.isFoundDocument()?this.Ue(e,t.me):this.We(e,t.key,t.me);for(const e of t.removedTargetIds)this.We(e,t.key,t.me)}Ge(t){this.forEachTarget(t,(e=>{const n=this.ze(e);switch(t.state){case 0:this.je(e)&&n.Ce(t.resumeToken);break;case 1:n.Ne(),n.be||n.Fe(),n.Ce(t.resumeToken);break;case 2:n.Ne(),n.be||this.removeTarget(e);break;case 3:this.je(e)&&(n.Be(),n.Ce(t.resumeToken));break;case 4:this.je(e)&&(this.He(e),n.Ce(t.resumeToken));break;default:Hr()}}))}forEachTarget(t,e){t.targetIds.length>0?t.targetIds.forEach(e):this.ke.forEach(((t,n)=>{this.je(n)&&e(n)}))}Je(t){const e=t.targetId,n=t.fe.count,r=this.Ye(e);if(r){const s=r.target;if(Wo(s))if(0===n){const t=new _s(s.path);this.We(e,t,bo.newNoDocument(t,ps.min()))}else Wr(1===n);else{const r=this.Ze(e);if(r!==n){const n=this.Xe(t),s=n?this.et(n,t,r):1;if(0!==s){this.He(e);const t=2===s?"TargetPurposeExistenceFilterMismatchBloom":"TargetPurposeExistenceFilterMismatch";this.Ke=this.Ke.insert(e,t)}null==yu||yu.tt(function(t,e,n,r,s){var i,o,a,u,c,l;const h={localCacheCount:t,existenceFilterCount:e.count,databaseId:n.database,projectId:n.projectId},d=e.unchangedNames;return d&&(h.bloomFilter={applied:0===s,hashCount:null!==(i=null==d?void 0:d.hashCount)&&void 0!==i?i:0,bitmapLength:null!==(u=null===(a=null===(o=null==d?void 0:d.bits)||void 0===o?void 0:o.bitmap)||void 0===a?void 0:a.length)&&void 0!==u?u:0,padding:null!==(l=null===(c=null==d?void 0:d.bits)||void 0===c?void 0:c.padding)&&void 0!==l?l:0,mightContain:t=>{var e;return null!==(e=null==r?void 0:r.mightContain(t))&&void 0!==e&&e}}),h}(r,t.fe,this.Le.nt(),n,s))}}}}Xe(t){const e=t.fe.unchangedNames;if(!e||!e.bits)return null;const{bits:{bitmap:n="",padding:r=0},hashCount:s=0}=e;let i,o;try{i=Gi(n).toUint8Array()}catch(t){if(t instanceof Fi)return $r("Decoding the base64 bloom filter in existence filter failed ("+t.message+"); ignoring the bloom filter and falling back to full re-query."),null;throw t}try{o=new Iu(i,r,s)}catch(t){return $r(t instanceof Eu?"BloomFilter error: ":"Applying bloom filter failed: ",t),null}return 0===o.Te?null:o}et(t,e,n){return e.fe.count===n-this.rt(t,e.targetId)?0:2}rt(t,e){const n=this.Le.getRemoteKeysForTarget(e);let r=0;return n.forEach((n=>{const s=this.Le.nt(),i=`projects/${s.projectId}/databases/${s.database}/documents/${n.path.canonicalString()}`;t.mightContain(i)||(this.We(e,n,null),r++)})),r}it(t){const e=new Map;this.ke.forEach(((n,r)=>{const s=this.Ye(r);if(s){if(n.current&&Wo(s.target)){const e=new _s(s.target.path);null!==this.qe.get(e)||this.st(r,e)||this.We(r,e,bo.newNoDocument(e,t))}n.De&&(e.set(r,n.ve()),n.Fe())}}));let n=Ca();this.Qe.forEach(((t,e)=>{let r=!0;e.forEachWhile((t=>{const e=this.Ye(t);return!e||"TargetPurposeLimboResolution"===e.purpose||(r=!1,!1)})),r&&(n=n.add(t))})),this.qe.forEach(((e,n)=>n.setReadTime(t)));const r=new Tu(t,e,this.Ke,this.qe,n);return this.qe=wa(),this.Qe=ku(),this.Ke=new Ni(ds),r}Ue(t,e){if(!this.je(t))return;const n=this.st(t,e.key)?2:0;this.ze(t).Me(e.key,n),this.qe=this.qe.insert(e.key,e),this.Qe=this.Qe.insert(e.key,this.ot(e.key).add(t))}We(t,e,n){if(!this.je(t))return;const r=this.ze(t);this.st(t,e)?r.Me(e,1):r.xe(e),this.Qe=this.Qe.insert(e,this.ot(e).delete(t)),n&&(this.qe=this.qe.insert(e,n))}removeTarget(t){this.ke.delete(t)}Ze(t){const e=this.ze(t).ve();return this.Le.getRemoteKeysForTarget(t).size+e.addedDocuments.size-e.removedDocuments.size}Oe(t){this.ze(t).Oe()}ze(t){let e=this.ke.get(t);return e||(e=new Au,this.ke.set(t,e)),e}ot(t){let e=this.Qe.get(t);return e||(e=new Mi(ds),this.Qe=this.Qe.insert(t,e)),e}je(t){const e=null!==this.Ye(t);return e||jr("WatchChangeAggregator","Detected inactive target",t),e}Ye(t){const e=this.ke.get(t);return e&&e.be?null:this.Le._t(t)}He(t){this.ke.set(t,new Au),this.Le.getRemoteKeysForTarget(t).forEach((e=>{this.We(t,e,null)}))}st(t,e){return this.Le.getRemoteKeysForTarget(t).has(e)}}function ku(){return new Ni(_s.comparator)}function Ru(){return new Ni(_s.comparator)}const Mu={asc:"ASCENDING",desc:"DESCENDING"},Lu={"<":"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"},Ou={and:"AND",or:"OR"};class Pu{constructor(t,e){this.databaseId=t,this.useProto3Json=e}}function Fu(t,e){return t.useProto3Json||Ws(e)?e:{value:e}}function Vu(t,e){return t.useProto3Json?`${new Date(1e3*e.seconds).toISOString().replace(/\.\d*/,"").replace("Z","")}.${("000000000"+e.nanoseconds).slice(-9)}Z`:{seconds:""+e.seconds,nanos:e.nanoseconds}}function qu(t,e){return t.useProto3Json?e.toBase64():e.toUint8Array()}function Bu(t,e){return Vu(t,e.toTimestamp())}function Uu(t){return Wr(!!t),ps.fromTimestamp(function(t){const e=Ui(t);return new ms(e.seconds,e.nanos)}(t))}function zu(t,e){return Gu(t,e).canonicalString()}function Gu(t,e){const n=function(t){return new ws(["projects",t.projectId,"databases",t.database])}(t).child("documents");return void 0===e?n:n.child(e)}function ju(t){const e=ws.fromString(t);return Wr(dc(e)),e}function Ku(t,e){return zu(t.databaseId,e.path)}function $u(t,e){const n=ju(e);if(n.get(1)!==t.databaseId.projectId)throw new Zr(Jr.INVALID_ARGUMENT,"Tried to deserialize key from different project: "+n.get(1)+" vs "+t.databaseId.projectId);if(n.get(3)!==t.databaseId.database)throw new Zr(Jr.INVALID_ARGUMENT,"Tried to deserialize key from different database: "+n.get(3)+" vs "+t.databaseId.database);return new _s(Yu(n))}function Qu(t,e){return zu(t.databaseId,e)}function Hu(t){const e=ju(t);return 4===e.length?ws.emptyPath():Yu(e)}function Wu(t){return new ws(["projects",t.databaseId.projectId,"databases",t.databaseId.database]).canonicalString()}function Yu(t){return Wr(t.length>4&&"documents"===t.get(4)),t.popFirst(5)}function Xu(t,e,n){return{name:Ku(t,e),fields:n.value.mapValue.fields}}function Ju(t,e,n){const r=$u(t,e.name),s=Uu(e.updateTime),i=e.createTime?Uu(e.createTime):ps.min(),o=new wo({mapValue:{fields:e.fields}}),a=bo.newFoundDocument(r,s,i,o);return n&&a.setHasCommittedMutations(),n?a.setHasCommittedMutations():a}function Zu(t,e){let n;if(e instanceof eu)n={update:Xu(t,e.key,e.value)};else if(e instanceof ou)n={delete:Ku(t,e.key)};else if(e instanceof nu)n={update:Xu(t,e.key,e.data),updateMask:hc(e.fieldMask)};else{if(!(e instanceof au))return Hr();n={verify:Ku(t,e.key)}}return e.fieldTransforms.length>0&&(n.updateTransforms=e.fieldTransforms.map((t=>function(t,e){const n=e.transform;if(n instanceof Fa)return{fieldPath:e.field.canonicalString(),setToServerValue:"REQUEST_TIME"};if(n instanceof Va)return{fieldPath:e.field.canonicalString(),appendMissingElements:{values:n.elements}};if(n instanceof Ba)return{fieldPath:e.field.canonicalString(),removeAllFromArray:{values:n.elements}};if(n instanceof za)return{fieldPath:e.field.canonicalString(),increment:n.Ie};throw Hr()}(0,t)))),e.precondition.isNone||(n.currentDocument=function(t,e){return void 0!==e.updateTime?{updateTime:Bu(t,e.updateTime)}:void 0!==e.exists?{exists:e.exists}:Hr()}(t,e.precondition)),n}function tc(t,e){const n=e.currentDocument?function(t){return void 0!==t.updateTime?Qa.updateTime(Uu(t.updateTime)):void 0!==t.exists?Qa.exists(t.exists):Qa.none()}(e.currentDocument):Qa.none(),r=e.updateTransforms?e.updateTransforms.map((e=>function(t,e){let n=null;if("setToServerValue"in e)Wr("REQUEST_TIME"===e.setToServerValue),n=new Fa;else if("appendMissingElements"in e){const t=e.appendMissingElements.values||[];n=new Va(t)}else if("removeAllFromArray"in e){const t=e.removeAllFromArray.values||[];n=new Ba(t)}else"increment"in e?n=new za(t,e.increment):Hr();const r=bs.fromServerFormat(e.fieldPath);return new Ka(r,n)}(t,e))):[];if(e.update){e.update.name;const s=$u(t,e.update.name),i=new wo({mapValue:{fields:e.update.fields}});if(e.updateMask){const t=function(t){const e=t.fieldPaths||[];return new Pi(e.map((t=>bs.fromServerFormat(t))))}(e.updateMask);return new nu(s,i,t,n,r)}return new eu(s,i,n,r)}if(e.delete){const r=$u(t,e.delete);return new ou(r,n)}if(e.verify){const r=$u(t,e.verify);return new au(r,n)}return Hr()}function ec(t,e){return{documents:[Qu(t,e.path)]}}function nc(t,e){const n={structuredQuery:{}},r=e.path;let s;null!==e.collectionGroup?(s=r,n.structuredQuery.from=[{collectionId:e.collectionGroup,allDescendants:!0}]):(s=r.popLast(),n.structuredQuery.from=[{collectionId:r.lastSegment()}]),n.parent=Qu(t,s);const i=function(t){if(0!==t.length)return lc(Do.create(t,"and"))}(e.filters);i&&(n.structuredQuery.where=i);const o=function(t){if(0!==t.length)return t.map((t=>function(t){return{field:uc(t.field),direction:ic(t.dir)}}(t)))}(e.orderBy);o&&(n.structuredQuery.orderBy=o);const a=Fu(t,e.limit);return null!==a&&(n.structuredQuery.limit=a),e.startAt&&(n.structuredQuery.startAt=function(t){return{before:t.inclusive,values:t.position}}(e.startAt)),e.endAt&&(n.structuredQuery.endAt=function(t){return{before:!t.inclusive,values:t.position}}(e.endAt)),{ut:n,parent:s}}function rc(t){let e=Hu(t.parent);const n=t.structuredQuery,r=n.from?n.from.length:0;let s=null;if(r>0){Wr(1===r);const t=n.from[0];t.allDescendants?s=t.collectionId:e=e.child(t.collectionId)}let i=[];n.where&&(i=function(t){const e=sc(t);return e instanceof Do&&ko(e)?e.getFilters():[e]}(n.where));let o=[];n.orderBy&&(o=function(t){return t.map((t=>function(t){return new To(cc(t.field),function(t){switch(t){case"ASCENDING":return"asc";case"DESCENDING":return"desc";default:return}}(t.direction))}(t)))}(n.orderBy));let a=null;n.limit&&(a=function(t){let e;return e="object"==typeof t?t.value:t,Ws(e)?null:e}(n.limit));let u=null;n.startAt&&(u=function(t){const e=!!t.before,n=t.values||[];return new _o(n,e)}(n.startAt));let c=null;return n.endAt&&(c=function(t){const e=!t.before,n=t.values||[];return new _o(n,e)}(n.endAt)),ta(e,s,o,i,a,"F",u,c)}function sc(t){return void 0!==t.unaryFilter?function(t){switch(t.unaryFilter.op){case"IS_NAN":const e=cc(t.unaryFilter.field);return Co.create(e,"==",{doubleValue:NaN});case"IS_NULL":const n=cc(t.unaryFilter.field);return Co.create(n,"==",{nullValue:"NULL_VALUE"});case"IS_NOT_NAN":const r=cc(t.unaryFilter.field);return Co.create(r,"!=",{doubleValue:NaN});case"IS_NOT_NULL":const s=cc(t.unaryFilter.field);return Co.create(s,"!=",{nullValue:"NULL_VALUE"});default:return Hr()}}(t):void 0!==t.fieldFilter?function(t){return Co.create(cc(t.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";default:return Hr()}}(t.fieldFilter.op),t.fieldFilter.value)}(t):void 0!==t.compositeFilter?function(t){return Do.create(t.compositeFilter.filters.map((t=>sc(t))),function(t){switch(t){case"AND":return"and";case"OR":return"or";default:return Hr()}}(t.compositeFilter.op))}(t):Hr()}function ic(t){return Mu[t]}function oc(t){return Lu[t]}function ac(t){return Ou[t]}function uc(t){return{fieldPath:t.canonicalString()}}function cc(t){return bs.fromServerFormat(t.fieldPath)}function lc(t){return t instanceof Co?function(t){if("=="===t.op){if(co(t.value))return{unaryFilter:{field:uc(t.field),op:"IS_NAN"}};if(uo(t.value))return{unaryFilter:{field:uc(t.field),op:"IS_NULL"}}}else if("!="===t.op){if(co(t.value))return{unaryFilter:{field:uc(t.field),op:"IS_NOT_NAN"}};if(uo(t.value))return{unaryFilter:{field:uc(t.field),op:"IS_NOT_NULL"}}}return{fieldFilter:{field:uc(t.field),op:oc(t.op),value:t.value}}}(t):t instanceof Do?function(t){const e=t.getFilters().map((t=>lc(t)));return 1===e.length?e[0]:{compositeFilter:{op:ac(t.op),filters:e}}}(t):Hr()}function hc(t){const e=[];return t.fields.forEach((t=>e.push(t.canonicalString()))),{fieldPaths:e}}function dc(t){return t.length>=4&&"projects"===t.get(0)&&"databases"===t.get(2)}class fc{constructor(t,e,n,r,s=ps.min(),i=ps.min(),o=qi.EMPTY_BYTE_STRING,a=null){this.target=t,this.targetId=e,this.purpose=n,this.sequenceNumber=r,this.snapshotVersion=s,this.lastLimboFreeSnapshotVersion=i,this.resumeToken=o,this.expectedCount=a}withSequenceNumber(t){return new fc(this.target,this.targetId,this.purpose,t,this.snapshotVersion,this.lastLimboFreeSnapshotVersion,this.resumeToken,this.expectedCount)}withResumeToken(t,e){return new fc(this.target,this.targetId,this.purpose,this.sequenceNumber,e,this.lastLimboFreeSnapshotVersion,t,null)}withExpectedCount(t){return new fc(this.target,this.targetId,this.purpose,this.sequenceNumber,this.snapshotVersion,this.lastLimboFreeSnapshotVersion,this.resumeToken,t)}withLastLimboFreeSnapshotVersion(t){return new fc(this.target,this.targetId,this.purpose,this.sequenceNumber,this.snapshotVersion,t,this.resumeToken,this.expectedCount)}}class gc{constructor(t){this.ct=t}}function mc(t,e){const n=e.key,r={prefixPath:n.getCollectionPath().popLast().toArray(),collectionGroup:n.collectionGroup,documentId:n.path.lastSegment(),readTime:pc(e.readTime),hasCommittedMutations:e.hasCommittedMutations};if(e.isFoundDocument())r.document=function(t,e){return{name:Ku(t,e.key),fields:e.data.value.mapValue.fields,updateTime:Vu(t,e.version.toTimestamp()),createTime:Vu(t,e.createTime.toTimestamp())}}(t.ct,e);else if(e.isNoDocument())r.noDocument={path:n.path.toArray(),readTime:yc(e.version)};else{if(!e.isUnknownDocument())return Hr();r.unknownDocument={path:n.path.toArray(),version:yc(e.version)}}return r}function pc(t){const e=t.toTimestamp();return[e.seconds,e.nanoseconds]}function yc(t){const e=t.toTimestamp();return{seconds:e.seconds,nanoseconds:e.nanoseconds}}function wc(t){const e=new ms(t.seconds,t.nanoseconds);return ps.fromTimestamp(e)}function vc(t,e){const n=(e.baseMutations||[]).map((e=>tc(t.ct,e)));for(let t=0;ttc(t.ct,e))),s=ms.fromMillis(e.localWriteTimeMs);return new uu(e.batchId,s,n,r)}function bc(t){const e=wc(t.readTime),n=void 0!==t.lastLimboFreeSnapshotVersion?wc(t.lastLimboFreeSnapshotVersion):ps.min();let r;return r=function(t){return void 0!==t.documents}(t.query)?function(t){return Wr(1===t.documents.length),ia(ea(Hu(t.documents[0])))}(t.query):function(t){return ia(rc(t))}(t.query),new fc(r,t.targetId,"TargetPurposeListen",t.lastListenSequenceNumber,e,n,qi.fromBase64String(t.resumeToken))}function _c(t,e){const n=yc(e.snapshotVersion),r=yc(e.lastLimboFreeSnapshotVersion);let s;s=Wo(e.target)?ec(t.ct,e.target):nc(t.ct,e.target).ut;const i=e.resumeToken.toBase64();return{targetId:e.targetId,canonicalId:Qo(e.target),readTime:n,resumeToken:i,lastListenSequenceNumber:e.sequenceNumber,lastLimboFreeSnapshotVersion:r,query:s}}function Ic(t){const e=rc({parent:t.parent,structuredQuery:t.structuredQuery});return"LAST"===t.limitType?ua(e,e.limit,"L"):e}function Ec(t,e){return new lu(e.largestBatchId,tc(t.ct,e.overlayMutation))}function Tc(t,e){const n=e.path.lastSegment();return[t,Js(e.path.popLast()),n]}function Sc(t,e,n,r){return{indexId:t,uid:e,sequenceNumber:n,readTime:yc(r.readTime),documentKey:Js(r.documentKey.path),largestBatchId:r.largestBatchId}}class xc{getBundleMetadata(t,e){return Cc(t).get(e).next((t=>{if(t)return function(t){return{id:t.bundleId,createTime:wc(t.createTime),version:t.version}}(t)}))}saveBundleMetadata(t,e){return Cc(t).put(function(t){return{bundleId:t.id,createTime:yc(Uu(t.createTime)),version:t.version}}(e))}getNamedQuery(t,e){return Dc(t).get(e).next((t=>{if(t)return function(t){return{name:t.name,query:Ic(t.bundledQuery),readTime:wc(t.readTime)}}(t)}))}saveNamedQuery(t,e){return Dc(t).put(function(t){return{name:t.name,readTime:yc(Uu(t.readTime)),bundledQuery:t.bundledQuery}}(e))}}function Cc(t){return xi(t,"bundles")}function Dc(t){return xi(t,"namedQueries")}class Ac{constructor(t,e){this.serializer=t,this.userId=e}static lt(t,e){const n=e.uid||"";return new Ac(t,n)}getOverlay(t,e){return Nc(t).get(Tc(this.userId,e)).next((t=>t?Ec(this.serializer,t):null))}getOverlays(t,e){const n=Ia();return Ps.forEach(e,(e=>this.getOverlay(t,e).next((t=>{null!==t&&n.set(e,t)})))).next((()=>n))}saveOverlays(t,e,n){const r=[];return n.forEach(((n,s)=>{const i=new lu(e,s);r.push(this.ht(t,i))})),Ps.waitFor(r)}removeOverlaysForBatchId(t,e,n){const r=new Set;e.forEach((t=>r.add(Js(t.getCollectionPath()))));const s=[];return r.forEach((e=>{const r=IDBKeyRange.bound([this.userId,e,n],[this.userId,e,n+1],!1,!0);s.push(Nc(t).H("collectionPathOverlayIndex",r))})),Ps.waitFor(s)}getOverlaysForCollection(t,e,n){const r=Ia(),s=Js(e),i=IDBKeyRange.bound([this.userId,s,n],[this.userId,s,Number.POSITIVE_INFINITY],!0);return Nc(t).W("collectionPathOverlayIndex",i).next((t=>{for(const e of t){const t=Ec(this.serializer,e);r.set(t.getKey(),t)}return r}))}getOverlaysForCollectionGroup(t,e,n,r){const s=Ia();let i;const o=IDBKeyRange.bound([this.userId,e,n],[this.userId,e,Number.POSITIVE_INFINITY],!0);return Nc(t).Y({index:"collectionGroupOverlayIndex",range:o},((t,e,n)=>{const o=Ec(this.serializer,e);s.size()s))}ht(t,e){return Nc(t).put(function(t,e,n){const[r,s,i]=Tc(e,n.mutation.key);return{userId:e,collectionPath:s,documentId:i,collectionGroup:n.mutation.key.getCollectionGroup(),largestBatchId:n.largestBatchId,overlayMutation:Zu(t.ct,n.mutation)}}(this.serializer,this.userId,e))}}function Nc(t){return xi(t,"documentOverlays")}class kc{constructor(){}Pt(t,e){this.It(t,e),e.Tt()}It(t,e){if("nullValue"in t)this.Et(e,5);else if("booleanValue"in t)this.Et(e,10),e.dt(t.booleanValue?1:0);else if("integerValue"in t)this.Et(e,15),e.dt(zi(t.integerValue));else if("doubleValue"in t){const n=zi(t.doubleValue);isNaN(n)?this.Et(e,13):(this.Et(e,15),Ys(n)?e.dt(0):e.dt(n))}else if("timestampValue"in t){const n=t.timestampValue;this.Et(e,20),"string"==typeof n?e.At(n):(e.At(`${n.seconds||""}`),e.dt(n.nanos||0))}else if("stringValue"in t)this.Rt(t.stringValue,e),this.Vt(e);else if("bytesValue"in t)this.Et(e,30),e.ft(Gi(t.bytesValue)),this.Vt(e);else if("referenceValue"in t)this.gt(t.referenceValue,e);else if("geoPointValue"in t){const n=t.geoPointValue;this.Et(e,45),e.dt(n.latitude||0),e.dt(n.longitude||0)}else"mapValue"in t?fo(t)?this.Et(e,Number.MAX_SAFE_INTEGER):(this.yt(t.mapValue,e),this.Vt(e)):"arrayValue"in t?(this.wt(t.arrayValue,e),this.Vt(e)):Hr()}Rt(t,e){this.Et(e,25),this.St(t,e)}St(t,e){e.At(t)}yt(t,e){const n=t.fields||{};this.Et(e,55);for(const t of Object.keys(n))this.Rt(t,e),this.It(n[t],e)}wt(t,e){const n=t.values||[];this.Et(e,50);for(const t of n)this.It(t,e)}gt(t,e){this.Et(e,37),_s.fromName(t).path.forEach((t=>{this.Et(e,60),this.St(t,e)}))}Et(t,e){t.dt(e)}Vt(t){t.dt(2)}}function Rc(t){if(0===t)return 8;let e=0;return t>>4==0&&(e+=4,t<<=4),t>>6==0&&(e+=2,t<<=2),t>>7==0&&(e+=1),e}function Mc(t){const e=64-function(t){let e=0;for(let n=0;n<8;++n){const r=Rc(255&t[n]);if(e+=r,8!==r)break}return e}(t);return Math.ceil(e/8)}kc.bt=new kc;class Lc{constructor(){this.buffer=new Uint8Array(1024),this.position=0}Dt(t){const e=t[Symbol.iterator]();let n=e.next();for(;!n.done;)this.Ct(n.value),n=e.next();this.vt()}Ft(t){const e=t[Symbol.iterator]();let n=e.next();for(;!n.done;)this.Mt(n.value),n=e.next();this.xt()}Ot(t){for(const e of t){const t=e.charCodeAt(0);if(t<128)this.Ct(t);else if(t<2048)this.Ct(960|t>>>6),this.Ct(128|63&t);else if(e<"\ud800"||"\udbff">>12),this.Ct(128|63&t>>>6),this.Ct(128|63&t);else{const t=e.codePointAt(0);this.Ct(240|t>>>18),this.Ct(128|63&t>>>12),this.Ct(128|63&t>>>6),this.Ct(128|63&t)}}this.vt()}Nt(t){for(const e of t){const t=e.charCodeAt(0);if(t<128)this.Mt(t);else if(t<2048)this.Mt(960|t>>>6),this.Mt(128|63&t);else if(e<"\ud800"||"\udbff">>12),this.Mt(128|63&t>>>6),this.Mt(128|63&t);else{const t=e.codePointAt(0);this.Mt(240|t>>>18),this.Mt(128|63&t>>>12),this.Mt(128|63&t>>>6),this.Mt(128|63&t)}}this.xt()}Bt(t){const e=this.Lt(t),n=Mc(e);this.kt(1+n),this.buffer[this.position++]=255&n;for(let t=e.length-n;tbs.comparator(t.field,e.field))),this.collectionId=null!=t.collectionGroup?t.collectionGroup:t.path.lastSegment(),this.Zt=t.orderBy,this.Xt=[];for(const e of t.filters){const t=e;t.isInequality()?this.Yt=this.Yt.add(t):this.Xt.push(t)}}get en(){return this.Yt.size>1}tn(t){if(Wr(t.collectionGroup===this.collectionId),this.en)return!1;const e=Es(t);if(void 0!==e&&!this.nn(e))return!1;const n=Ts(t);let r=new Set,s=0,i=0;for(;s0){const t=this.Yt.getIterator().getNext();if(!r.has(t.field.canonicalString())){const e=n[s];if(!this.rn(t,e)||!this.sn(this.Zt[i++],e))return!1}++s}for(;s=this.Zt.length||!this.sn(this.Zt[i++],t))return!1}return!0}on(){if(this.en)return null;let t=new Mi(bs.comparator);const e=[];for(const n of this.Xt)if(!n.field.isKeyField())if("array-contains"===n.op||"array-contains-any"===n.op)e.push(new xs(n.field,2));else{if(t.has(n.field))continue;t=t.add(n.field),e.push(new xs(n.field,0))}for(const n of this.Zt)n.field.isKeyField()||t.has(n.field)||(t=t.add(n.field),e.push(new xs(n.field,"asc"===n.dir?0:1)));return new Is(Is.UNKNOWN_ID,this.collectionId,e,Ds.empty())}nn(t){for(const e of this.Xt)if(this.rn(e,t))return!0;return!1}rn(t,e){if(void 0===t||!t.field.isEqual(e.fieldPath))return!1;const n="array-contains"===t.op||"array-contains-any"===t.op;return 2===e.kind===n}sn(t,e){return!!t.field.isEqual(e.fieldPath)&&(0===e.kind&&"asc"===t.dir||1===e.kind&&"desc"===t.dir)}}function zc(t){var e,n;if(Wr(t instanceof Co||t instanceof Do),t instanceof Co){if(t instanceof zo){const r=(null===(n=null===(e=t.value.arrayValue)||void 0===e?void 0:e.values)||void 0===n?void 0:n.map((e=>Co.create(t.field,"==",e))))||[];return Do.create(r,"or")}return t}const r=t.filters.map((t=>zc(t)));return Do.create(r,t.op)}function Gc(t){if(0===t.getFilters().length)return[];const e=Qc(zc(t));return Wr($c(e)),jc(e)||Kc(e)?[e]:e.getFilters()}function jc(t){return t instanceof Co}function Kc(t){return t instanceof Do&&ko(t)}function $c(t){return jc(t)||Kc(t)||function(t){if(t instanceof Do&&No(t)){for(const e of t.getFilters())if(!jc(e)&&!Kc(e))return!1;return!0}return!1}(t)}function Qc(t){if(Wr(t instanceof Co||t instanceof Do),t instanceof Co)return t;if(1===t.filters.length)return Qc(t.filters[0]);const e=t.filters.map((t=>Qc(t)));let n=Do.create(e,t.op);return n=Yc(n),$c(n)?n:(Wr(n instanceof Do),Wr(Ao(n)),Wr(n.filters.length>1),n.filters.reduce(((t,e)=>Hc(t,e))))}function Hc(t,e){let n;return Wr(t instanceof Co||t instanceof Do),Wr(e instanceof Co||e instanceof Do),n=t instanceof Co?e instanceof Co?function(t,e){return Do.create([t,e],"and")}(t,e):Wc(t,e):e instanceof Co?Wc(e,t):function(t,e){if(Wr(t.filters.length>0&&e.filters.length>0),Ao(t)&&Ao(e))return Oo(t,e.getFilters());const n=No(t)?t:e,r=No(t)?e:t,s=n.filters.map((t=>Hc(t,r)));return Do.create(s,"or")}(t,e),Yc(n)}function Wc(t,e){if(Ao(e))return Oo(e,t.getFilters());{const n=e.filters.map((e=>Hc(t,e)));return Do.create(n,"or")}}function Yc(t){if(Wr(t instanceof Co||t instanceof Do),t instanceof Co)return t;const e=t.getFilters();if(1===e.length)return Yc(e[0]);if(Ro(t))return t;const n=e.map((t=>Yc(t))),r=[];return n.forEach((e=>{e instanceof Co?r.push(e):e instanceof Do&&(e.op===t.op?r.push(...e.filters):r.push(e))})),1===r.length?r[0]:Do.create(r,t.op)}class Xc{constructor(){this._n=new Jc}addToCollectionParentIndex(t,e){return this._n.add(e),Ps.resolve()}getCollectionParents(t,e){return Ps.resolve(this._n.getEntries(e))}addFieldIndex(t,e){return Ps.resolve()}deleteFieldIndex(t,e){return Ps.resolve()}deleteAllFieldIndexes(t){return Ps.resolve()}createTargetIndexes(t,e){return Ps.resolve()}getDocumentsMatchingTarget(t,e){return Ps.resolve(null)}getIndexType(t,e){return Ps.resolve(0)}getFieldIndexes(t,e){return Ps.resolve([])}getNextCollectionGroupToUpdate(t){return Ps.resolve(null)}getMinOffset(t,e){return Ps.resolve(ks.min())}getMinOffsetFromCollectionGroup(t,e){return Ps.resolve(ks.min())}updateCollectionGroup(t,e,n){return Ps.resolve()}updateIndexEntries(t,e){return Ps.resolve()}}class Jc{constructor(){this.index={}}add(t){const e=t.lastSegment(),n=t.popLast(),r=this.index[e]||new Mi(ws.comparator),s=!r.has(n);return this.index[e]=r.add(n),s}has(t){const e=t.lastSegment(),n=t.popLast(),r=this.index[e];return r&&r.has(n)}getEntries(t){return(this.index[t]||new Mi(ws.comparator)).toArray()}}const Zc=new Uint8Array(0);class tl{constructor(t,e){this.databaseId=e,this.an=new Jc,this.un=new pa((t=>Qo(t)),((t,e)=>Ho(t,e))),this.uid=t.uid||""}addToCollectionParentIndex(t,e){if(!this.an.has(e)){const n=e.lastSegment(),r=e.popLast();t.addOnCommittedListener((()=>{this.an.add(e)}));const s={collectionId:n,parent:Js(r)};return el(t).put(s)}return Ps.resolve()}getCollectionParents(t,e){const n=[],r=IDBKeyRange.bound([e,""],[gs(e),""],!1,!0);return el(t).W(r).next((t=>{for(const r of t){if(r.collectionId!==e)break;n.push(ei(r.parent))}return n}))}addFieldIndex(t,e){const n=rl(t),r=function(t){return{indexId:t.indexId,collectionGroup:t.collectionGroup,fields:t.fields.map((t=>[t.fieldPath.canonicalString(),t.kind]))}}(e);delete r.indexId;const s=n.add(r);if(e.indexState){const n=sl(t);return s.next((t=>{n.put(Sc(t,this.uid,e.indexState.sequenceNumber,e.indexState.offset))}))}return s.next()}deleteFieldIndex(t,e){const n=rl(t),r=sl(t),s=nl(t);return n.delete(e.indexId).next((()=>r.delete(IDBKeyRange.bound([e.indexId],[e.indexId+1],!1,!0)))).next((()=>s.delete(IDBKeyRange.bound([e.indexId],[e.indexId+1],!1,!0))))}deleteAllFieldIndexes(t){const e=rl(t),n=nl(t),r=sl(t);return e.H().next((()=>n.H())).next((()=>r.H()))}createTargetIndexes(t,e){return Ps.forEach(this.cn(e),(e=>this.getIndexType(t,e).next((n=>{if(0===n||1===n){const n=new Uc(e).on();if(null!=n)return this.addFieldIndex(t,n)}}))))}getDocumentsMatchingTarget(t,e){const n=nl(t);let r=!0;const s=new Map;return Ps.forEach(this.cn(e),(e=>this.ln(t,e).next((t=>{r&&(r=!!t),s.set(e,t)})))).next((()=>{if(r){let t=Ca();const r=[];return Ps.forEach(s,((s,i)=>{jr("IndexedDbIndexManager",`Using index ${function(t){return`id=${t.indexId}|cg=${t.collectionGroup}|f=${t.fields.map((t=>`${t.fieldPath}:${t.kind}`)).join(",")}`}(s)} to execute ${Qo(e)}`);const o=function(t,e){const n=Es(e);if(void 0===n)return null;for(const e of Yo(t,n.fieldPath))switch(e.op){case"array-contains-any":return e.value.arrayValue.values||[];case"array-contains":return[e.value]}return null}(i,s),a=function(t,e){const n=new Map;for(const r of Ts(e))for(const e of Yo(t,r.fieldPath))switch(e.op){case"==":case"in":n.set(r.fieldPath.canonicalString(),e.value);break;case"not-in":case"!=":return n.set(r.fieldPath.canonicalString(),e.value),Array.from(n.values())}return null}(i,s),u=function(t,e){const n=[];let r=!0;for(const s of Ts(e)){const e=0===s.kind?Xo(t,s.fieldPath,t.startAt):Jo(t,s.fieldPath,t.startAt);n.push(e.value),r&&(r=e.inclusive)}return new _o(n,r)}(i,s),c=function(t,e){const n=[];let r=!0;for(const s of Ts(e)){const e=0===s.kind?Jo(t,s.fieldPath,t.endAt):Xo(t,s.fieldPath,t.endAt);n.push(e.value),r&&(r=e.inclusive)}return new _o(n,r)}(i,s),l=this.hn(s,i,u),h=this.hn(s,i,c),d=this.Pn(s,i,a),f=this.In(s.indexId,o,l,u.inclusive,h,c.inclusive,d);return Ps.forEach(f,(s=>n.j(s,e.limit).next((e=>{e.forEach((e=>{const n=_s.fromSegments(e.documentKey);t.has(n)||(t=t.add(n),r.push(n))}))}))))})).next((()=>r))}return Ps.resolve(null)}))}cn(t){let e=this.un.get(t);return e||(e=0===t.filters.length?[t]:Gc(Do.create(t.filters,"and")).map((e=>$o(t.path,t.collectionGroup,t.orderBy,e.getFilters(),t.limit,t.startAt,t.endAt))),this.un.set(t,e),e)}In(t,e,n,r,s,i,o){const a=(null!=e?e.length:1)*Math.max(n.length,s.length),u=a/(null!=e?e.length:1),c=[];for(let l=0;lthis.En(t,a,e,!0)));c.push(...this.createRange(h,d,f))}return c}En(t,e,n,r){const s=new Vc(t,_s.empty(),e,n);return r?s:s.Jt()}dn(t,e,n,r){const s=new Vc(t,_s.empty(),e,n);return r?s.Jt():s}ln(t,e){const n=new Uc(e),r=null!=e.collectionGroup?e.collectionGroup:e.path.lastSegment();return this.getFieldIndexes(t,r).next((t=>{let e=null;for(const r of t)n.tn(r)&&(!e||r.fields.length>e.fields.length)&&(e=r);return e}))}getIndexType(t,e){let n=2;const r=this.cn(e);return Ps.forEach(r,(e=>this.ln(t,e).next((t=>{t?0!==n&&t.fields.lengthfunction(t){return null!==t.limit}(e)&&r.length>1&&2===n?1:n))}An(t,e){const n=new Fc;for(const r of Ts(t)){const t=e.data.field(r.fieldPath);if(null==t)return null;const s=n.Ht(r.kind);kc.bt.Pt(t,s)}return n.Wt()}Tn(t){const e=new Fc;return kc.bt.Pt(t,e.Ht(0)),e.Wt()}Rn(t,e){const n=new Fc;return kc.bt.Pt(io(this.databaseId,e),n.Ht(function(t){const e=Ts(t);return 0===e.length?0:e[e.length-1].kind}(t))),n.Wt()}Pn(t,e,n){if(null===n)return[];let r=[];r.push(new Fc);let s=0;for(const i of Ts(t)){const t=n[s++];for(const n of r)if(this.Vn(e,i.fieldPath)&&ao(t))r=this.mn(r,i,t);else{const e=n.Ht(i.kind);kc.bt.Pt(t,e)}}return this.fn(r)}hn(t,e,n){return this.Pn(t,e,n.position)}fn(t){const e=[];for(let n=0;nt instanceof Co&&t.field.isEqual(e)&&("in"===t.op||"not-in"===t.op)))}getFieldIndexes(t,e){const n=rl(t),r=sl(t);return(e?n.W("collectionGroupIndex",IDBKeyRange.bound(e,e)):n.W()).next((t=>{const e=[];return Ps.forEach(t,(t=>r.get([t.indexId,this.uid]).next((n=>{e.push(function(t,e){const n=e?new Ds(e.sequenceNumber,new ks(wc(e.readTime),new _s(ei(e.documentKey)),e.largestBatchId)):Ds.empty(),r=t.fields.map((([t,e])=>new xs(bs.fromServerFormat(t),e)));return new Is(t.indexId,t.collectionGroup,r,n)}(t,n))})))).next((()=>e))}))}getNextCollectionGroupToUpdate(t){return this.getFieldIndexes(t).next((t=>0===t.length?null:(t.sort(((t,e)=>{const n=t.indexState.sequenceNumber-e.indexState.sequenceNumber;return 0!==n?n:ds(t.collectionGroup,e.collectionGroup)})),t[0].collectionGroup)))}updateCollectionGroup(t,e,n){const r=rl(t),s=sl(t);return this.gn(t).next((t=>r.W("collectionGroupIndex",IDBKeyRange.bound(e,e)).next((e=>Ps.forEach(e,(e=>s.put(Sc(e.indexId,this.uid,t,n))))))))}updateIndexEntries(t,e){const n=new Map;return Ps.forEach(e,((e,r)=>{const s=n.get(e.collectionGroup);return(s?Ps.resolve(s):this.getFieldIndexes(t,e.collectionGroup)).next((s=>(n.set(e.collectionGroup,s),Ps.forEach(s,(n=>this.pn(t,e,n).next((e=>{const s=this.yn(r,n);return e.isEqual(s)?Ps.resolve():this.wn(t,r,n,e,s)})))))))}))}Sn(t,e,n,r){return nl(t).put({indexId:r.indexId,uid:this.uid,arrayValue:r.arrayValue,directionalValue:r.directionalValue,orderedDocumentKey:this.Rn(n,e.key),documentKey:e.key.path.toArray()})}bn(t,e,n,r){return nl(t).delete([r.indexId,this.uid,r.arrayValue,r.directionalValue,this.Rn(n,e.key),e.key.path.toArray()])}pn(t,e,n){const r=nl(t);let s=new Mi(qc);return r.Y({index:"documentKeyIndex",range:IDBKeyRange.only([n.indexId,this.uid,this.Rn(n,e)])},((t,r)=>{s=s.add(new Vc(n.indexId,e,r.arrayValue,r.directionalValue))})).next((()=>s))}yn(t,e){let n=new Mi(qc);const r=this.An(e,t);if(null==r)return n;const s=Es(e);if(null!=s){const i=t.data.field(s.fieldPath);if(ao(i))for(const s of i.arrayValue.values||[])n=n.add(new Vc(e.indexId,t.key,this.Tn(s),r))}else n=n.add(new Vc(e.indexId,t.key,Zc,r));return n}wn(t,e,n,r,s){jr("IndexedDbIndexManager","Updating index entries for document '%s'",e.key);const i=[];return function(t,e,n,r,s){const i=t.getIterator(),o=e.getIterator();let a=Oi(i),u=Oi(o);for(;a||u;){let t=!1,e=!1;if(a&&u){const r=n(a,u);r<0?e=!0:r>0&&(t=!0)}else null!=a?e=!0:t=!0;t?(r(u),u=Oi(o)):e?(s(a),a=Oi(i)):(a=Oi(i),u=Oi(o))}}(r,s,qc,(r=>{i.push(this.Sn(t,e,n,r))}),(r=>{i.push(this.bn(t,e,n,r))})),Ps.waitFor(i)}gn(t){let e=1;return sl(t).Y({index:"sequenceNumberIndex",reverse:!0,range:IDBKeyRange.upperBound([this.uid,Number.MAX_SAFE_INTEGER])},((t,n,r)=>{r.done(),e=n.sequenceNumber+1})).next((()=>e))}createRange(t,e,n){n=n.sort(((t,e)=>qc(t,e))).filter(((t,e,n)=>!e||0!==qc(t,n[e-1])));const r=[];r.push(t);for(const s of n){const n=qc(s,t),i=qc(s,e);if(0===n)r[0]=t.Jt();else if(n>0&&i<0)r.push(s),r.push(s.Jt());else if(i>0)break}r.push(e);const s=[];for(let t=0;t0}getMinOffsetFromCollectionGroup(t,e){return this.getFieldIndexes(t,e).next(il)}getMinOffset(t,e){return Ps.mapArray(this.cn(e),(e=>this.ln(t,e).next((t=>t||Hr())))).next(il)}}function el(t){return xi(t,"collectionParents")}function nl(t){return xi(t,"indexEntries")}function rl(t){return xi(t,"indexConfiguration")}function sl(t){return xi(t,"indexState")}function il(t){Wr(0!==t.length);let e=t[0].indexState.offset,n=e.largestBatchId;for(let r=1;r(a++,n.delete())));i.push(u.next((()=>{Wr(1===a)})));const c=[];for(const t of n.mutations){const r=si(e,t.key.path,n.batchId);i.push(s.delete(r)),c.push(t.key)}return Ps.waitFor(i).next((()=>c))}function cl(t){if(!t)return 0;let e;if(t.document)e=t.document;else if(t.unknownDocument)e=t.unknownDocument;else{if(!t.noDocument)throw Hr();e=t.noDocument}return JSON.stringify(e).length}al.DEFAULT_COLLECTION_PERCENTILE=10,al.DEFAULT_MAX_SEQUENCE_NUMBERS_TO_COLLECT=1e3,al.DEFAULT=new al(41943040,al.DEFAULT_COLLECTION_PERCENTILE,al.DEFAULT_MAX_SEQUENCE_NUMBERS_TO_COLLECT),al.DISABLED=new al(-1,0,0);class ll{constructor(t,e,n,r){this.userId=t,this.serializer=e,this.indexManager=n,this.referenceDelegate=r,this.Cn={}}static lt(t,e,n,r){Wr(""!==t.uid);const s=t.isAuthenticated()?t.uid:"";return new ll(s,e,n,r)}checkEmpty(t){let e=!0;const n=IDBKeyRange.bound([this.userId,Number.NEGATIVE_INFINITY],[this.userId,Number.POSITIVE_INFINITY]);return dl(t).Y({index:"userMutationsIndex",range:n},((t,n,r)=>{e=!1,r.done()})).next((()=>e))}addMutationBatch(t,e,n,r){const s=fl(t),i=dl(t);return i.add({}).next((o=>{Wr("number"==typeof o);const a=new uu(o,e,n,r),u=function(t,e,n){const r=n.baseMutations.map((e=>Zu(t.ct,e))),s=n.mutations.map((e=>Zu(t.ct,e)));return{userId:e,batchId:n.batchId,localWriteTimeMs:n.localWriteTime.toMillis(),baseMutations:r,mutations:s}}(this.serializer,this.userId,a),c=[];let l=new Mi(((t,e)=>ds(t.canonicalString(),e.canonicalString())));for(const t of r){const e=si(this.userId,t.key.path,o);l=l.add(t.key.path.popLast()),c.push(i.put(u)),c.push(s.put(e,ii))}return l.forEach((e=>{c.push(this.indexManager.addToCollectionParentIndex(t,e))})),t.addOnCommittedListener((()=>{this.Cn[o]=a.keys()})),Ps.waitFor(c).next((()=>a))}))}lookupMutationBatch(t,e){return dl(t).get(e).next((t=>t?(Wr(t.userId===this.userId),vc(this.serializer,t)):null))}vn(t,e){return this.Cn[e]?Ps.resolve(this.Cn[e]):this.lookupMutationBatch(t,e).next((t=>{if(t){const n=t.keys();return this.Cn[e]=n,n}return null}))}getNextMutationBatchAfterBatchId(t,e){const n=e+1,r=IDBKeyRange.lowerBound([this.userId,n]);let s=null;return dl(t).Y({index:"userMutationsIndex",range:r},((t,e,r)=>{e.userId===this.userId&&(Wr(e.batchId>=n),s=vc(this.serializer,e)),r.done()})).next((()=>s))}getHighestUnacknowledgedBatchId(t){const e=IDBKeyRange.upperBound([this.userId,Number.POSITIVE_INFINITY]);let n=-1;return dl(t).Y({index:"userMutationsIndex",range:e,reverse:!0},((t,e,r)=>{n=e.batchId,r.done()})).next((()=>n))}getAllMutationBatches(t){const e=IDBKeyRange.bound([this.userId,-1],[this.userId,Number.POSITIVE_INFINITY]);return dl(t).W("userMutationsIndex",e).next((t=>t.map((t=>vc(this.serializer,t)))))}getAllMutationBatchesAffectingDocumentKey(t,e){const n=ri(this.userId,e.path),r=IDBKeyRange.lowerBound(n),s=[];return fl(t).Y({range:r},((n,r,i)=>{const[o,a,u]=n,c=ei(a);if(o===this.userId&&e.path.isEqual(c))return dl(t).get(u).next((t=>{if(!t)throw Hr();Wr(t.userId===this.userId),s.push(vc(this.serializer,t))}));i.done()})).next((()=>s))}getAllMutationBatchesAffectingDocumentKeys(t,e){let n=new Mi(ds);const r=[];return e.forEach((e=>{const s=ri(this.userId,e.path),i=IDBKeyRange.lowerBound(s),o=fl(t).Y({range:i},((t,r,s)=>{const[i,o,a]=t,u=ei(o);i===this.userId&&e.path.isEqual(u)?n=n.add(a):s.done()}));r.push(o)})),Ps.waitFor(r).next((()=>this.Fn(t,n)))}getAllMutationBatchesAffectingQuery(t,e){const n=e.path,r=n.length+1,s=ri(this.userId,n),i=IDBKeyRange.lowerBound(s);let o=new Mi(ds);return fl(t).Y({range:i},((t,e,s)=>{const[i,a,u]=t,c=ei(a);i===this.userId&&n.isPrefixOf(c)?c.length===r&&(o=o.add(u)):s.done()})).next((()=>this.Fn(t,o)))}Fn(t,e){const n=[],r=[];return e.forEach((e=>{r.push(dl(t).get(e).next((t=>{if(null===t)throw Hr();Wr(t.userId===this.userId),n.push(vc(this.serializer,t))})))})),Ps.waitFor(r).next((()=>n))}removeMutationBatch(t,e){return ul(t.ae,this.userId,e).next((n=>(t.addOnCommittedListener((()=>{this.Mn(e.batchId)})),Ps.forEach(n,(e=>this.referenceDelegate.markPotentiallyOrphaned(t,e))))))}Mn(t){delete this.Cn[t]}performConsistencyCheck(t){return this.checkEmpty(t).next((e=>{if(!e)return Ps.resolve();const n=IDBKeyRange.lowerBound(function(t){return[t]}(this.userId)),r=[];return fl(t).Y({range:n},((t,e,n)=>{if(t[0]===this.userId){const e=ei(t[1]);r.push(e)}else n.done()})).next((()=>{Wr(0===r.length)}))}))}containsKey(t,e){return hl(t,this.userId,e)}xn(t){return gl(t).get(this.userId).next((t=>t||{userId:this.userId,lastAcknowledgedBatchId:-1,lastStreamToken:""}))}}function hl(t,e,n){const r=ri(e,n.path),s=r[1],i=IDBKeyRange.lowerBound(r);let o=!1;return fl(t).Y({range:i,J:!0},((t,n,r)=>{const[i,a,u]=t;i===e&&a===s&&(o=!0),r.done()})).next((()=>o))}function dl(t){return xi(t,"mutations")}function fl(t){return xi(t,"documentMutations")}function gl(t){return xi(t,"mutationQueues")}class ml{constructor(t){this.On=t}next(){return this.On+=2,this.On}static Nn(){return new ml(0)}static Bn(){return new ml(-1)}}class pl{constructor(t,e){this.referenceDelegate=t,this.serializer=e}allocateTargetId(t){return this.Ln(t).next((e=>{const n=new ml(e.highestTargetId);return e.highestTargetId=n.next(),this.kn(t,e).next((()=>e.highestTargetId))}))}getLastRemoteSnapshotVersion(t){return this.Ln(t).next((t=>ps.fromTimestamp(new ms(t.lastRemoteSnapshotVersion.seconds,t.lastRemoteSnapshotVersion.nanoseconds))))}getHighestSequenceNumber(t){return this.Ln(t).next((t=>t.highestListenSequenceNumber))}setTargetsMetadata(t,e,n){return this.Ln(t).next((r=>(r.highestListenSequenceNumber=e,n&&(r.lastRemoteSnapshotVersion=n.toTimestamp()),e>r.highestListenSequenceNumber&&(r.highestListenSequenceNumber=e),this.kn(t,r))))}addTargetData(t,e){return this.qn(t,e).next((()=>this.Ln(t).next((n=>(n.targetCount+=1,this.Qn(e,n),this.kn(t,n))))))}updateTargetData(t,e){return this.qn(t,e)}removeTargetData(t,e){return this.removeMatchingKeysForTargetId(t,e.targetId).next((()=>yl(t).delete(e.targetId))).next((()=>this.Ln(t))).next((e=>(Wr(e.targetCount>0),e.targetCount-=1,this.kn(t,e))))}removeTargets(t,e,n){let r=0;const s=[];return yl(t).Y(((i,o)=>{const a=bc(o);a.sequenceNumber<=e&&null===n.get(a.targetId)&&(r++,s.push(this.removeTargetData(t,a)))})).next((()=>Ps.waitFor(s))).next((()=>r))}forEachTarget(t,e){return yl(t).Y(((t,n)=>{const r=bc(n);e(r)}))}Ln(t){return wl(t).get("targetGlobalKey").next((t=>(Wr(null!==t),t)))}kn(t,e){return wl(t).put("targetGlobalKey",e)}qn(t,e){return yl(t).put(_c(this.serializer,e))}Qn(t,e){let n=!1;return t.targetId>e.highestTargetId&&(e.highestTargetId=t.targetId,n=!0),t.sequenceNumber>e.highestListenSequenceNumber&&(e.highestListenSequenceNumber=t.sequenceNumber,n=!0),n}getTargetCount(t){return this.Ln(t).next((t=>t.targetCount))}getTargetData(t,e){const n=Qo(e),r=IDBKeyRange.bound([n,Number.NEGATIVE_INFINITY],[n,Number.POSITIVE_INFINITY]);let s=null;return yl(t).Y({range:r,index:"queryTargetsIndex"},((t,n,r)=>{const i=bc(n);Ho(e,i.target)&&(s=i,r.done())})).next((()=>s))}addMatchingKeys(t,e,n){const r=[],s=vl(t);return e.forEach((e=>{const i=Js(e.path);r.push(s.put({targetId:n,path:i})),r.push(this.referenceDelegate.addReference(t,n,e))})),Ps.waitFor(r)}removeMatchingKeys(t,e,n){const r=vl(t);return Ps.forEach(e,(e=>{const s=Js(e.path);return Ps.waitFor([r.delete([n,s]),this.referenceDelegate.removeReference(t,n,e)])}))}removeMatchingKeysForTargetId(t,e){const n=vl(t),r=IDBKeyRange.bound([e],[e+1],!1,!0);return n.delete(r)}getMatchingKeysForTargetId(t,e){const n=IDBKeyRange.bound([e],[e+1],!1,!0),r=vl(t);let s=Ca();return r.Y({range:n,J:!0},((t,e,n)=>{const r=ei(t[1]),i=new _s(r);s=s.add(i)})).next((()=>s))}containsKey(t,e){const n=Js(e.path),r=IDBKeyRange.bound([n],[gs(n)],!1,!0);let s=0;return vl(t).Y({index:"documentTargetsIndex",J:!0,range:r},(([t,e],n,r)=>{0!==t&&(s++,r.done())})).next((()=>s>0))}_t(t,e){return yl(t).get(e).next((t=>t?bc(t):null))}}function yl(t){return xi(t,"targets")}function wl(t){return xi(t,"targetGlobal")}function vl(t){return xi(t,"targetDocuments")}function bl([t,e],[n,r]){const s=ds(t,n);return 0===s?ds(e,r):s}class _l{constructor(t){this.Kn=t,this.buffer=new Mi(bl),this.$n=0}Un(){return++this.$n}Wn(t){const e=[t,this.Un()];if(this.buffer.size{this.Gn=null;try{await this.localStore.collectGarbage(this.garbageCollector)}catch(t){Us(t)?jr("LruGarbageCollector","Ignoring IndexedDB error during garbage collection: ",t):await Os(t)}await this.zn(3e5)}))}}class El{constructor(t,e){this.jn=t,this.params=e}calculateTargetCount(t,e){return this.jn.Hn(t).next((t=>Math.floor(e/100*t)))}nthSequenceNumber(t,e){if(0===e)return Ps.resolve(Hs._e);const n=new _l(e);return this.jn.forEachTarget(t,(t=>n.Wn(t.sequenceNumber))).next((()=>this.jn.Jn(t,(t=>n.Wn(t))))).next((()=>n.maxValue))}removeTargets(t,e,n){return this.jn.removeTargets(t,e,n)}removeOrphanedDocuments(t,e){return this.jn.removeOrphanedDocuments(t,e)}collect(t,e){return-1===this.params.cacheSizeCollectionThreshold?(jr("LruGarbageCollector","Garbage collection skipped; disabled"),Ps.resolve(ol)):this.getCacheSize(t).next((n=>n(e>this.params.maximumSequenceNumbersToCollect?(jr("LruGarbageCollector",`Capping sequence numbers to collect down to the maximum of ${this.params.maximumSequenceNumbersToCollect} from ${e}`),r=this.params.maximumSequenceNumbersToCollect):r=e,i=Date.now(),this.nthSequenceNumber(t,r)))).next((r=>(n=r,o=Date.now(),this.removeTargets(t,n,e)))).next((e=>(s=e,a=Date.now(),this.removeOrphanedDocuments(t,n)))).next((t=>(u=Date.now(),zr()<=_.DEBUG&&jr("LruGarbageCollector",`LRU Garbage Collection\n\tCounted targets in ${i-c}ms\n\tDetermined least recently used ${r} in `+(o-i)+"ms\n"+`\tRemoved ${s} targets in `+(a-o)+"ms\n"+`\tRemoved ${t} documents in `+(u-a)+"ms\n"+`Total Duration: ${u-c}ms`),Ps.resolve({didRun:!0,sequenceNumbersCollected:r,targetsRemoved:s,documentsRemoved:t}))))}}function Tl(t,e){return new El(t,e)}class Sl{constructor(t,e){this.db=t,this.garbageCollector=Tl(this,e)}Hn(t){const e=this.Zn(t);return this.db.getTargetCache().getTargetCount(t).next((t=>e.next((e=>t+e))))}Zn(t){let e=0;return this.Jn(t,(t=>{e++})).next((()=>e))}forEachTarget(t,e){return this.db.getTargetCache().forEachTarget(t,e)}Jn(t,e){return this.Xn(t,((t,n)=>e(n)))}addReference(t,e,n){return xl(t,n)}removeReference(t,e,n){return xl(t,n)}removeTargets(t,e,n){return this.db.getTargetCache().removeTargets(t,e,n)}markPotentiallyOrphaned(t,e){return xl(t,e)}er(t,e){return function(t,e){let n=!1;return gl(t).Z((r=>hl(t,r,e).next((t=>(t&&(n=!0),Ps.resolve(!t)))))).next((()=>n))}(t,e)}removeOrphanedDocuments(t,e){const n=this.db.getRemoteDocumentCache().newChangeBuffer(),r=[];let s=0;return this.Xn(t,((i,o)=>{if(o<=e){const e=this.er(t,i).next((e=>{if(!e)return s++,n.getEntry(t,i).next((()=>(n.removeEntry(i,ps.min()),vl(t).delete(function(t){return[0,Js(t.path)]}(i)))))}));r.push(e)}})).next((()=>Ps.waitFor(r))).next((()=>n.apply(t))).next((()=>s))}removeTarget(t,e){const n=e.withSequenceNumber(t.currentSequenceNumber);return this.db.getTargetCache().updateTargetData(t,n)}updateLimboDocument(t,e){return xl(t,e)}Xn(t,e){const n=vl(t);let r,s=Hs._e;return n.Y({index:"documentTargetsIndex"},(([t,n],{path:i,sequenceNumber:o})=>{0===t?(s!==Hs._e&&e(new _s(ei(r)),s),s=o,r=i):s=Hs._e})).next((()=>{s!==Hs._e&&e(new _s(ei(r)),s)}))}getCacheSize(t){return this.db.getRemoteDocumentCache().getSize(t)}}function xl(t,e){return vl(t).put(function(t,e){return{targetId:0,path:Js(t.path),sequenceNumber:e}}(e,t.currentSequenceNumber))}class Cl{constructor(){this.changes=new pa((t=>t.toString()),((t,e)=>t.isEqual(e))),this.changesApplied=!1}addEntry(t){this.assertNotApplied(),this.changes.set(t.key,t)}removeEntry(t,e){this.assertNotApplied(),this.changes.set(t,bo.newInvalidDocument(t).setReadTime(e))}getEntry(t,e){this.assertNotApplied();const n=this.changes.get(e);return void 0!==n?Ps.resolve(n):this.getFromCache(t,e)}getEntries(t,e){return this.getAllFromCache(t,e)}apply(t){return this.assertNotApplied(),this.changesApplied=!0,this.applyChanges(t)}assertNotApplied(){}}class Dl{constructor(t){this.serializer=t}setIndexManager(t){this.indexManager=t}addEntry(t,e,n){return Rl(t).put(n)}removeEntry(t,e,n){return Rl(t).delete(function(t,e){const n=t.path.toArray();return[n.slice(0,n.length-2),n[n.length-2],pc(e),n[n.length-1]]}(e,n))}updateMetadata(t,e){return this.getMetadata(t).next((n=>(n.byteSize+=e,this.tr(t,n))))}getEntry(t,e){let n=bo.newInvalidDocument(e);return Rl(t).Y({index:"documentKeyIndex",range:IDBKeyRange.only(Ml(e))},((t,r)=>{n=this.nr(e,r)})).next((()=>n))}rr(t,e){let n={size:0,document:bo.newInvalidDocument(e)};return Rl(t).Y({index:"documentKeyIndex",range:IDBKeyRange.only(Ml(e))},((t,r)=>{n={document:this.nr(e,r),size:cl(r)}})).next((()=>n))}getEntries(t,e){let n=wa();return this.ir(t,e,((t,e)=>{const r=this.nr(t,e);n=n.insert(t,r)})).next((()=>n))}sr(t,e){let n=wa(),r=new Ni(_s.comparator);return this.ir(t,e,((t,e)=>{const s=this.nr(t,e);n=n.insert(t,s),r=r.insert(t,cl(e))})).next((()=>({documents:n,_r:r})))}ir(t,e,n){if(e.isEmpty())return Ps.resolve();let r=new Mi(Ol);e.forEach((t=>r=r.add(t)));const s=IDBKeyRange.bound(Ml(r.first()),Ml(r.last())),i=r.getIterator();let o=i.getNext();return Rl(t).Y({index:"documentKeyIndex",range:s},((t,e,r)=>{const s=_s.fromSegments([...e.prefixPath,e.collectionGroup,e.documentId]);for(;o&&Ol(o,s)<0;)n(o,null),o=i.getNext();o&&o.isEqual(s)&&(n(o,e),o=i.hasNext()?i.getNext():null),o?r.U(Ml(o)):r.done()})).next((()=>{for(;o;)n(o,null),o=i.hasNext()?i.getNext():null}))}getDocumentsMatchingQuery(t,e,n,r,s){const i=e.path,o=[i.popLast().toArray(),i.lastSegment(),pc(n.readTime),n.documentKey.path.isEmpty()?"":n.documentKey.path.lastSegment()],a=[i.popLast().toArray(),i.lastSegment(),[Number.MAX_SAFE_INTEGER,Number.MAX_SAFE_INTEGER],""];return Rl(t).W(IDBKeyRange.bound(o,a,!0)).next((t=>{null==s||s.incrementDocumentReadCount(t.length);let n=wa();for(const s of t){const t=this.nr(_s.fromSegments(s.prefixPath.concat(s.collectionGroup,s.documentId)),s);t.isFoundDocument()&&(da(e,t)||r.has(t.key))&&(n=n.insert(t.key,t))}return n}))}getAllFromCollectionGroup(t,e,n,r){let s=wa();const i=Ll(e,n),o=Ll(e,ks.max());return Rl(t).Y({index:"collectionGroupIndex",range:IDBKeyRange.bound(i,o,!0)},((t,e,n)=>{const i=this.nr(_s.fromSegments(e.prefixPath.concat(e.collectionGroup,e.documentId)),e);s=s.insert(i.key,i),s.size===r&&n.done()})).next((()=>s))}newChangeBuffer(t){return new Nl(this,!!t&&t.trackRemovals)}getSize(t){return this.getMetadata(t).next((t=>t.byteSize))}getMetadata(t){return kl(t).get("remoteDocumentGlobalKey").next((t=>(Wr(!!t),t)))}tr(t,e){return kl(t).put("remoteDocumentGlobalKey",e)}nr(t,e){if(e){const t=function(t,e){let n;if(e.document)n=Ju(t.ct,e.document,!!e.hasCommittedMutations);else if(e.noDocument){const t=_s.fromSegments(e.noDocument.path),r=wc(e.noDocument.readTime);n=bo.newNoDocument(t,r),e.hasCommittedMutations&&n.setHasCommittedMutations()}else{if(!e.unknownDocument)return Hr();{const t=_s.fromSegments(e.unknownDocument.path),r=wc(e.unknownDocument.version);n=bo.newUnknownDocument(t,r)}}return e.readTime&&n.setReadTime(function(t){const e=new ms(t[0],t[1]);return ps.fromTimestamp(e)}(e.readTime)),n}(this.serializer,e);if(!t.isNoDocument()||!t.version.isEqual(ps.min()))return t}return bo.newInvalidDocument(t)}}function Al(t){return new Dl(t)}class Nl extends Cl{constructor(t,e){super(),this.ar=t,this.trackRemovals=e,this.ur=new pa((t=>t.toString()),((t,e)=>t.isEqual(e)))}applyChanges(t){const e=[];let n=0,r=new Mi(((t,e)=>ds(t.canonicalString(),e.canonicalString())));return this.changes.forEach(((s,i)=>{const o=this.ur.get(s);if(e.push(this.ar.removeEntry(t,s,o.readTime)),i.isValidDocument()){const a=mc(this.ar.serializer,i);r=r.add(s.path.popLast());const u=cl(a);n+=u-o.size,e.push(this.ar.addEntry(t,s,a))}else if(n-=o.size,this.trackRemovals){const n=mc(this.ar.serializer,i.convertToNoDocument(ps.min()));e.push(this.ar.addEntry(t,s,n))}})),r.forEach((n=>{e.push(this.ar.indexManager.addToCollectionParentIndex(t,n))})),e.push(this.ar.updateMetadata(t,n)),Ps.waitFor(e)}getFromCache(t,e){return this.ar.rr(t,e).next((t=>(this.ur.set(e,{size:t.size,readTime:t.document.readTime}),t.document)))}getAllFromCache(t,e){return this.ar.sr(t,e).next((({documents:t,_r:e})=>(e.forEach(((e,n)=>{this.ur.set(e,{size:n,readTime:t.get(e).readTime})})),t)))}}function kl(t){return xi(t,"remoteDocumentGlobal")}function Rl(t){return xi(t,"remoteDocumentsV14")}function Ml(t){const e=t.path.toArray();return[e.slice(0,e.length-2),e[e.length-2],e[e.length-1]]}function Ll(t,e){const n=e.documentKey.path.toArray();return[t,pc(e.readTime),n.slice(0,n.length-2),n.length>0?n[n.length-1]:""]}function Ol(t,e){const n=t.path.toArray(),r=e.path.toArray();let s=0;for(let t=0;t(n=r,this.remoteDocumentCache.getEntry(t,e)))).next((t=>(null!==n&&Ja(n.mutation,t,Pi.empty(),ms.now()),t)))}getDocuments(t,e){return this.remoteDocumentCache.getEntries(t,e).next((e=>this.getLocalViewOfDocuments(t,e,Ca()).next((()=>e))))}getLocalViewOfDocuments(t,e,n=Ca()){const r=Ia();return this.populateOverlays(t,r,e).next((()=>this.computeViews(t,e,r,n).next((t=>{let e=ba();return t.forEach(((t,n)=>{e=e.insert(t,n.overlayedDocument)})),e}))))}getOverlayedDocuments(t,e){const n=Ia();return this.populateOverlays(t,n,e).next((()=>this.computeViews(t,e,n,Ca())))}populateOverlays(t,e,n){const r=[];return n.forEach((t=>{e.has(t)||r.push(t)})),this.documentOverlayCache.getOverlays(t,r).next((t=>{t.forEach(((t,n)=>{e.set(t,n)}))}))}computeViews(t,e,n,r){let s=wa();const i=Ta(),o=Ta();return e.forEach(((t,e)=>{const o=n.get(e.key);r.has(e.key)&&(void 0===o||o.mutation instanceof nu)?s=s.insert(e.key,e):void 0!==o?(i.set(e.key,o.mutation.getFieldMask()),Ja(o.mutation,e,o.mutation.getFieldMask(),ms.now())):i.set(e.key,Pi.empty())})),this.recalculateAndSaveOverlays(t,s).next((t=>(t.forEach(((t,e)=>i.set(t,e))),e.forEach(((t,e)=>{var n;return o.set(t,new Pl(e,null!==(n=i.get(t))&&void 0!==n?n:null))})),o)))}recalculateAndSaveOverlays(t,e){const n=Ta();let r=new Ni(((t,e)=>t-e)),s=Ca();return this.mutationQueue.getAllMutationBatchesAffectingDocumentKeys(t,e).next((t=>{for(const s of t)s.keys().forEach((t=>{const i=e.get(t);if(null===i)return;let o=n.get(t)||Pi.empty();o=s.applyToLocalView(i,o),n.set(t,o);const a=(r.get(s.batchId)||Ca()).add(t);r=r.insert(s.batchId,a)}))})).next((()=>{const i=[],o=r.getReverseIterator();for(;o.hasNext();){const r=o.getNext(),a=r.key,u=r.value,c=Ea();u.forEach((t=>{if(!s.has(t)){const r=Ya(e.get(t),n.get(t));null!==r&&c.set(t,r),s=s.add(t)}})),i.push(this.documentOverlayCache.saveOverlays(t,a,c))}return Ps.waitFor(i)})).next((()=>n))}recalculateAndSaveOverlaysForDocumentKeys(t,e){return this.remoteDocumentCache.getEntries(t,e).next((e=>this.recalculateAndSaveOverlays(t,e)))}getDocumentsMatchingQuery(t,e,n,r){return function(t){return _s.isDocumentKey(t.path)&&null===t.collectionGroup&&0===t.filters.length}(e)?this.getDocumentsMatchingDocumentQuery(t,e.path):ra(e)?this.getDocumentsMatchingCollectionGroupQuery(t,e,n,r):this.getDocumentsMatchingCollectionQuery(t,e,n,r)}getNextDocuments(t,e,n,r){return this.remoteDocumentCache.getAllFromCollectionGroup(t,e,n,r).next((s=>{const i=r-s.size>0?this.documentOverlayCache.getOverlaysForCollectionGroup(t,e,n.largestBatchId,r-s.size):Ps.resolve(Ia());let o=-1,a=s;return i.next((e=>Ps.forEach(e,((e,n)=>(o{a=a.insert(e,t)}))))).next((()=>this.populateOverlays(t,e,s))).next((()=>this.computeViews(t,a,e,Ca()))).next((t=>({batchId:o,changes:_a(t)})))))}))}getDocumentsMatchingDocumentQuery(t,e){return this.getDocument(t,new _s(e)).next((t=>{let e=ba();return t.isFoundDocument()&&(e=e.insert(t.key,t)),e}))}getDocumentsMatchingCollectionGroupQuery(t,e,n,r){const s=e.collectionGroup;let i=ba();return this.indexManager.getCollectionParents(t,s).next((o=>Ps.forEach(o,(o=>{const a=function(t,e){return new Zo(e,null,t.explicitOrderBy.slice(),t.filters.slice(),t.limit,t.limitType,t.startAt,t.endAt)}(e,o.child(s));return this.getDocumentsMatchingCollectionQuery(t,a,n,r).next((t=>{t.forEach(((t,e)=>{i=i.insert(t,e)}))}))})).next((()=>i))))}getDocumentsMatchingCollectionQuery(t,e,n,r){let s;return this.documentOverlayCache.getOverlaysForCollection(t,e.path,n.largestBatchId).next((i=>(s=i,this.remoteDocumentCache.getDocumentsMatchingQuery(t,e,n,s,r)))).next((t=>{s.forEach(((e,n)=>{const r=n.getKey();null===t.get(r)&&(t=t.insert(r,bo.newInvalidDocument(r)))}));let n=ba();return t.forEach(((t,r)=>{const i=s.get(t);void 0!==i&&Ja(i.mutation,r,Pi.empty(),ms.now()),da(e,r)&&(n=n.insert(t,r))})),n}))}}class Vl{constructor(t){this.serializer=t,this.cr=new Map,this.lr=new Map}getBundleMetadata(t,e){return Ps.resolve(this.cr.get(e))}saveBundleMetadata(t,e){return this.cr.set(e.id,function(t){return{id:t.id,version:t.version,createTime:Uu(t.createTime)}}(e)),Ps.resolve()}getNamedQuery(t,e){return Ps.resolve(this.lr.get(e))}saveNamedQuery(t,e){return this.lr.set(e.name,function(t){return{name:t.name,query:Ic(t.bundledQuery),readTime:Uu(t.readTime)}}(e)),Ps.resolve()}}class ql{constructor(){this.overlays=new Ni(_s.comparator),this.hr=new Map}getOverlay(t,e){return Ps.resolve(this.overlays.get(e))}getOverlays(t,e){const n=Ia();return Ps.forEach(e,(e=>this.getOverlay(t,e).next((t=>{null!==t&&n.set(e,t)})))).next((()=>n))}saveOverlays(t,e,n){return n.forEach(((n,r)=>{this.ht(t,e,r)})),Ps.resolve()}removeOverlaysForBatchId(t,e,n){const r=this.hr.get(n);return void 0!==r&&(r.forEach((t=>this.overlays=this.overlays.remove(t))),this.hr.delete(n)),Ps.resolve()}getOverlaysForCollection(t,e,n){const r=Ia(),s=e.length+1,i=new _s(e.child("")),o=this.overlays.getIteratorFrom(i);for(;o.hasNext();){const t=o.getNext().value,i=t.getKey();if(!e.isPrefixOf(i.path))break;i.path.length===s&&t.largestBatchId>n&&r.set(t.getKey(),t)}return Ps.resolve(r)}getOverlaysForCollectionGroup(t,e,n,r){let s=new Ni(((t,e)=>t-e));const i=this.overlays.getIterator();for(;i.hasNext();){const t=i.getNext().value;if(t.getKey().getCollectionGroup()===e&&t.largestBatchId>n){let e=s.get(t.largestBatchId);null===e&&(e=Ia(),s=s.insert(t.largestBatchId,e)),e.set(t.getKey(),t)}}const o=Ia(),a=s.getIterator();for(;a.hasNext()&&(a.getNext().value.forEach(((t,e)=>o.set(t,e))),!(o.size()>=r)););return Ps.resolve(o)}ht(t,e,n){const r=this.overlays.get(n.key);if(null!==r){const t=this.hr.get(r.largestBatchId).delete(n.key);this.hr.set(r.largestBatchId,t)}this.overlays=this.overlays.insert(n.key,new lu(e,n));let s=this.hr.get(e);void 0===s&&(s=Ca(),this.hr.set(e,s)),this.hr.set(e,s.add(n.key))}}class Bl{constructor(){this.Pr=new Mi(Ul.Ir),this.Tr=new Mi(Ul.Er)}isEmpty(){return this.Pr.isEmpty()}addReference(t,e){const n=new Ul(t,e);this.Pr=this.Pr.add(n),this.Tr=this.Tr.add(n)}dr(t,e){t.forEach((t=>this.addReference(t,e)))}removeReference(t,e){this.Ar(new Ul(t,e))}Rr(t,e){t.forEach((t=>this.removeReference(t,e)))}Vr(t){const e=new _s(new ws([])),n=new Ul(e,t),r=new Ul(e,t+1),s=[];return this.Tr.forEachInRange([n,r],(t=>{this.Ar(t),s.push(t.key)})),s}mr(){this.Pr.forEach((t=>this.Ar(t)))}Ar(t){this.Pr=this.Pr.delete(t),this.Tr=this.Tr.delete(t)}gr(t){const e=new _s(new ws([])),n=new Ul(e,t),r=new Ul(e,t+1);let s=Ca();return this.Tr.forEachInRange([n,r],(t=>{s=s.add(t.key)})),s}containsKey(t){const e=new Ul(t,0),n=this.Pr.firstAfterOrEqual(e);return null!==n&&t.isEqual(n.key)}}class Ul{constructor(t,e){this.key=t,this.pr=e}static Ir(t,e){return _s.comparator(t.key,e.key)||ds(t.pr,e.pr)}static Er(t,e){return ds(t.pr,e.pr)||_s.comparator(t.key,e.key)}}class zl{constructor(t,e){this.indexManager=t,this.referenceDelegate=e,this.mutationQueue=[],this.yr=1,this.wr=new Mi(Ul.Ir)}checkEmpty(t){return Ps.resolve(0===this.mutationQueue.length)}addMutationBatch(t,e,n,r){const s=this.yr;this.yr++,this.mutationQueue.length>0&&this.mutationQueue[this.mutationQueue.length-1];const i=new uu(s,e,n,r);this.mutationQueue.push(i);for(const e of r)this.wr=this.wr.add(new Ul(e.key,s)),this.indexManager.addToCollectionParentIndex(t,e.key.path.popLast());return Ps.resolve(i)}lookupMutationBatch(t,e){return Ps.resolve(this.Sr(e))}getNextMutationBatchAfterBatchId(t,e){const n=e+1,r=this.br(n),s=r<0?0:r;return Ps.resolve(this.mutationQueue.length>s?this.mutationQueue[s]:null)}getHighestUnacknowledgedBatchId(){return Ps.resolve(0===this.mutationQueue.length?-1:this.yr-1)}getAllMutationBatches(t){return Ps.resolve(this.mutationQueue.slice())}getAllMutationBatchesAffectingDocumentKey(t,e){const n=new Ul(e,0),r=new Ul(e,Number.POSITIVE_INFINITY),s=[];return this.wr.forEachInRange([n,r],(t=>{const e=this.Sr(t.pr);s.push(e)})),Ps.resolve(s)}getAllMutationBatchesAffectingDocumentKeys(t,e){let n=new Mi(ds);return e.forEach((t=>{const e=new Ul(t,0),r=new Ul(t,Number.POSITIVE_INFINITY);this.wr.forEachInRange([e,r],(t=>{n=n.add(t.pr)}))})),Ps.resolve(this.Dr(n))}getAllMutationBatchesAffectingQuery(t,e){const n=e.path,r=n.length+1;let s=n;_s.isDocumentKey(s)||(s=s.child(""));const i=new Ul(new _s(s),0);let o=new Mi(ds);return this.wr.forEachWhile((t=>{const e=t.key.path;return!!n.isPrefixOf(e)&&(e.length===r&&(o=o.add(t.pr)),!0)}),i),Ps.resolve(this.Dr(o))}Dr(t){const e=[];return t.forEach((t=>{const n=this.Sr(t);null!==n&&e.push(n)})),e}removeMutationBatch(t,e){Wr(0===this.Cr(e.batchId,"removed")),this.mutationQueue.shift();let n=this.wr;return Ps.forEach(e.mutations,(r=>{const s=new Ul(r.key,e.batchId);return n=n.delete(s),this.referenceDelegate.markPotentiallyOrphaned(t,r.key)})).next((()=>{this.wr=n}))}Mn(t){}containsKey(t,e){const n=new Ul(e,0),r=this.wr.firstAfterOrEqual(n);return Ps.resolve(e.isEqual(r&&r.key))}performConsistencyCheck(t){return this.mutationQueue.length,Ps.resolve()}Cr(t,e){return this.br(t)}br(t){return 0===this.mutationQueue.length?0:t-this.mutationQueue[0].batchId}Sr(t){const e=this.br(t);return e<0||e>=this.mutationQueue.length?null:this.mutationQueue[e]}}class Gl{constructor(t){this.vr=t,this.docs=new Ni(_s.comparator),this.size=0}setIndexManager(t){this.indexManager=t}addEntry(t,e){const n=e.key,r=this.docs.get(n),s=r?r.size:0,i=this.vr(e);return this.docs=this.docs.insert(n,{document:e.mutableCopy(),size:i}),this.size+=i-s,this.indexManager.addToCollectionParentIndex(t,n.path.popLast())}removeEntry(t){const e=this.docs.get(t);e&&(this.docs=this.docs.remove(t),this.size-=e.size)}getEntry(t,e){const n=this.docs.get(e);return Ps.resolve(n?n.document.mutableCopy():bo.newInvalidDocument(e))}getEntries(t,e){let n=wa();return e.forEach((t=>{const e=this.docs.get(t);n=n.insert(t,e?e.document.mutableCopy():bo.newInvalidDocument(t))})),Ps.resolve(n)}getDocumentsMatchingQuery(t,e,n,r){let s=wa();const i=e.path,o=new _s(i.child("")),a=this.docs.getIteratorFrom(o);for(;a.hasNext();){const{key:t,value:{document:o}}=a.getNext();if(!i.isPrefixOf(t.path))break;t.path.length>i.length+1||Rs(Ns(o),n)<=0||(r.has(o.key)||da(e,o))&&(s=s.insert(o.key,o.mutableCopy()))}return Ps.resolve(s)}getAllFromCollectionGroup(t,e,n,r){Hr()}Fr(t,e){return Ps.forEach(this.docs,(t=>e(t)))}newChangeBuffer(t){return new jl(this)}getSize(t){return Ps.resolve(this.size)}}class jl extends Cl{constructor(t){super(),this.ar=t}applyChanges(t){const e=[];return this.changes.forEach(((n,r)=>{r.isValidDocument()?e.push(this.ar.addEntry(t,r)):this.ar.removeEntry(n)})),Ps.waitFor(e)}getFromCache(t,e){return this.ar.getEntry(t,e)}getAllFromCache(t,e){return this.ar.getEntries(t,e)}}class Kl{constructor(t){this.persistence=t,this.Mr=new pa((t=>Qo(t)),Ho),this.lastRemoteSnapshotVersion=ps.min(),this.highestTargetId=0,this.Or=0,this.Nr=new Bl,this.targetCount=0,this.Br=ml.Nn()}forEachTarget(t,e){return this.Mr.forEach(((t,n)=>e(n))),Ps.resolve()}getLastRemoteSnapshotVersion(t){return Ps.resolve(this.lastRemoteSnapshotVersion)}getHighestSequenceNumber(t){return Ps.resolve(this.Or)}allocateTargetId(t){return this.highestTargetId=this.Br.next(),Ps.resolve(this.highestTargetId)}setTargetsMetadata(t,e,n){return n&&(this.lastRemoteSnapshotVersion=n),e>this.Or&&(this.Or=e),Ps.resolve()}qn(t){this.Mr.set(t.target,t);const e=t.targetId;e>this.highestTargetId&&(this.Br=new ml(e),this.highestTargetId=e),t.sequenceNumber>this.Or&&(this.Or=t.sequenceNumber)}addTargetData(t,e){return this.qn(e),this.targetCount+=1,Ps.resolve()}updateTargetData(t,e){return this.qn(e),Ps.resolve()}removeTargetData(t,e){return this.Mr.delete(e.target),this.Nr.Vr(e.targetId),this.targetCount-=1,Ps.resolve()}removeTargets(t,e,n){let r=0;const s=[];return this.Mr.forEach(((i,o)=>{o.sequenceNumber<=e&&null===n.get(o.targetId)&&(this.Mr.delete(i),s.push(this.removeMatchingKeysForTargetId(t,o.targetId)),r++)})),Ps.waitFor(s).next((()=>r))}getTargetCount(t){return Ps.resolve(this.targetCount)}getTargetData(t,e){const n=this.Mr.get(e)||null;return Ps.resolve(n)}addMatchingKeys(t,e,n){return this.Nr.dr(e,n),Ps.resolve()}removeMatchingKeys(t,e,n){this.Nr.Rr(e,n);const r=this.persistence.referenceDelegate,s=[];return r&&e.forEach((e=>{s.push(r.markPotentiallyOrphaned(t,e))})),Ps.waitFor(s)}removeMatchingKeysForTargetId(t,e){return this.Nr.Vr(e),Ps.resolve()}getMatchingKeysForTargetId(t,e){const n=this.Nr.gr(e);return Ps.resolve(n)}containsKey(t,e){return Ps.resolve(this.Nr.containsKey(e))}}class $l{constructor(t,e){this.Lr={},this.overlays={},this.kr=new Hs(0),this.qr=!1,this.qr=!0,this.referenceDelegate=t(this),this.Qr=new Kl(this),this.indexManager=new Xc,this.remoteDocumentCache=function(t){return new Gl(t)}((t=>this.referenceDelegate.Kr(t))),this.serializer=new gc(e),this.$r=new Vl(this.serializer)}start(){return Promise.resolve()}shutdown(){return this.qr=!1,Promise.resolve()}get started(){return this.qr}setDatabaseDeletedListener(){}setNetworkEnabled(){}getIndexManager(t){return this.indexManager}getDocumentOverlayCache(t){let e=this.overlays[t.toKey()];return e||(e=new ql,this.overlays[t.toKey()]=e),e}getMutationQueue(t,e){let n=this.Lr[t.toKey()];return n||(n=new zl(e,this.referenceDelegate),this.Lr[t.toKey()]=n),n}getTargetCache(){return this.Qr}getRemoteDocumentCache(){return this.remoteDocumentCache}getBundleCache(){return this.$r}runTransaction(t,e,n){jr("MemoryPersistence","Starting transaction:",t);const r=new Ql(this.kr.next());return this.referenceDelegate.Ur(),n(r).next((t=>this.referenceDelegate.Wr(r).next((()=>t)))).toPromise().then((t=>(r.raiseOnCommittedEvent(),t)))}Gr(t,e){return Ps.or(Object.values(this.Lr).map((n=>()=>n.containsKey(t,e))))}}class Ql extends Ls{constructor(t){super(),this.currentSequenceNumber=t}}class Hl{constructor(t){this.persistence=t,this.zr=new Bl,this.jr=null}static Hr(t){return new Hl(t)}get Jr(){if(this.jr)return this.jr;throw Hr()}addReference(t,e,n){return this.zr.addReference(n,e),this.Jr.delete(n.toString()),Ps.resolve()}removeReference(t,e,n){return this.zr.removeReference(n,e),this.Jr.add(n.toString()),Ps.resolve()}markPotentiallyOrphaned(t,e){return this.Jr.add(e.toString()),Ps.resolve()}removeTarget(t,e){this.zr.Vr(e.targetId).forEach((t=>this.Jr.add(t.toString())));const n=this.persistence.getTargetCache();return n.getMatchingKeysForTargetId(t,e.targetId).next((t=>{t.forEach((t=>this.Jr.add(t.toString())))})).next((()=>n.removeTargetData(t,e)))}Ur(){this.jr=new Set}Wr(t){const e=this.persistence.getRemoteDocumentCache().newChangeBuffer();return Ps.forEach(this.Jr,(n=>{const r=_s.fromPath(n);return this.Yr(t,r).next((t=>{t||e.removeEntry(r,ps.min())}))})).next((()=>(this.jr=null,e.apply(t))))}updateLimboDocument(t,e){return this.Yr(t,e).next((t=>{t?this.Jr.delete(e.toString()):this.Jr.add(e.toString())}))}Kr(t){return 0}Yr(t,e){return Ps.or([()=>Ps.resolve(this.zr.containsKey(e)),()=>this.persistence.getTargetCache().containsKey(t,e),()=>this.persistence.Gr(t,e)])}}class Wl{constructor(t,e){this.persistence=t,this.Zr=new pa((t=>Js(t.path)),((t,e)=>t.isEqual(e))),this.garbageCollector=Tl(this,e)}static Hr(t,e){return new Wl(t,e)}Ur(){}Wr(t){return Ps.resolve()}forEachTarget(t,e){return this.persistence.getTargetCache().forEachTarget(t,e)}Hn(t){const e=this.Zn(t);return this.persistence.getTargetCache().getTargetCount(t).next((t=>e.next((e=>t+e))))}Zn(t){let e=0;return this.Jn(t,(t=>{e++})).next((()=>e))}Jn(t,e){return Ps.forEach(this.Zr,((n,r)=>this.er(t,n,r).next((t=>t?Ps.resolve():e(r)))))}removeTargets(t,e,n){return this.persistence.getTargetCache().removeTargets(t,e,n)}removeOrphanedDocuments(t,e){let n=0;const r=this.persistence.getRemoteDocumentCache(),s=r.newChangeBuffer();return r.Fr(t,(r=>this.er(t,r,e).next((t=>{t||(n++,s.removeEntry(r,ps.min()))})))).next((()=>s.apply(t))).next((()=>n))}markPotentiallyOrphaned(t,e){return this.Zr.set(e,t.currentSequenceNumber),Ps.resolve()}removeTarget(t,e){const n=e.withSequenceNumber(t.currentSequenceNumber);return this.persistence.getTargetCache().updateTargetData(t,n)}addReference(t,e,n){return this.Zr.set(n,t.currentSequenceNumber),Ps.resolve()}removeReference(t,e,n){return this.Zr.set(n,t.currentSequenceNumber),Ps.resolve()}updateLimboDocument(t,e){return this.Zr.set(e,t.currentSequenceNumber),Ps.resolve()}Kr(t){let e=t.key.toString().length;return t.isFoundDocument()&&(e+=so(t.data.value)),e}er(t,e,n){return Ps.or([()=>this.persistence.Gr(t,e),()=>this.persistence.getTargetCache().containsKey(t,e),()=>{const t=this.Zr.get(e);return Ps.resolve(void 0!==t&&t>n)}])}getCacheSize(t){return this.persistence.getRemoteDocumentCache().getSize(t)}}class Yl{constructor(t){this.serializer=t}N(t,e,n,r){const s=new Fs("createOrUpgrade",e);n<1&&r>=1&&(function(t){t.createObjectStore("owner")}(t),function(t){t.createObjectStore("mutationQueues",{keyPath:"userId"}),t.createObjectStore("mutations",{keyPath:"batchId",autoIncrement:!0}).createIndex("userMutationsIndex",ni,{unique:!0}),t.createObjectStore("documentMutations")}(t),Xl(t),function(t){t.createObjectStore("remoteDocuments")}(t));let i=Ps.resolve();return n<3&&r>=3&&(0!==n&&(function(t){t.deleteObjectStore("targetDocuments"),t.deleteObjectStore("targets"),t.deleteObjectStore("targetGlobal")}(t),Xl(t)),i=i.next((()=>function(t){const e=t.store("targetGlobal"),n={highestTargetId:0,highestListenSequenceNumber:0,lastRemoteSnapshotVersion:ps.min().toTimestamp(),targetCount:0};return e.put("targetGlobalKey",n)}(s)))),n<4&&r>=4&&(0!==n&&(i=i.next((()=>function(t,e){return e.store("mutations").W().next((n=>{t.deleteObjectStore("mutations"),t.createObjectStore("mutations",{keyPath:"batchId",autoIncrement:!0}).createIndex("userMutationsIndex",ni,{unique:!0});const r=e.store("mutations"),s=n.map((t=>r.put(t)));return Ps.waitFor(s)}))}(t,s)))),i=i.next((()=>{!function(t){t.createObjectStore("clientMetadata",{keyPath:"clientId"})}(t)}))),n<5&&r>=5&&(i=i.next((()=>this.Xr(s)))),n<6&&r>=6&&(i=i.next((()=>(function(t){t.createObjectStore("remoteDocumentGlobal")}(t),this.ei(s))))),n<7&&r>=7&&(i=i.next((()=>this.ti(s)))),n<8&&r>=8&&(i=i.next((()=>this.ni(t,s)))),n<9&&r>=9&&(i=i.next((()=>{!function(t){t.objectStoreNames.contains("remoteDocumentChanges")&&t.deleteObjectStore("remoteDocumentChanges")}(t)}))),n<10&&r>=10&&(i=i.next((()=>this.ri(s)))),n<11&&r>=11&&(i=i.next((()=>{!function(t){t.createObjectStore("bundles",{keyPath:"bundleId"})}(t),function(t){t.createObjectStore("namedQueries",{keyPath:"name"})}(t)}))),n<12&&r>=12&&(i=i.next((()=>{!function(t){const e=t.createObjectStore("documentOverlays",{keyPath:yi});e.createIndex("collectionPathOverlayIndex",wi,{unique:!1}),e.createIndex("collectionGroupOverlayIndex",vi,{unique:!1})}(t)}))),n<13&&r>=13&&(i=i.next((()=>function(t){const e=t.createObjectStore("remoteDocumentsV14",{keyPath:oi});e.createIndex("documentKeyIndex",ai),e.createIndex("collectionGroupIndex",ui)}(t))).next((()=>this.ii(t,s))).next((()=>t.deleteObjectStore("remoteDocuments")))),n<14&&r>=14&&(i=i.next((()=>this.si(t,s)))),n<15&&r>=15&&(i=i.next((()=>function(t){t.createObjectStore("indexConfiguration",{keyPath:"indexId",autoIncrement:!0}).createIndex("collectionGroupIndex","collectionGroup",{unique:!1}),t.createObjectStore("indexState",{keyPath:fi}).createIndex("sequenceNumberIndex",gi,{unique:!1}),t.createObjectStore("indexEntries",{keyPath:mi}).createIndex("documentKeyIndex",pi,{unique:!1})}(t)))),i}ei(t){let e=0;return t.store("remoteDocuments").Y(((t,n)=>{e+=cl(n)})).next((()=>{const n={byteSize:e};return t.store("remoteDocumentGlobal").put("remoteDocumentGlobalKey",n)}))}Xr(t){const e=t.store("mutationQueues"),n=t.store("mutations");return e.W().next((e=>Ps.forEach(e,(e=>{const r=IDBKeyRange.bound([e.userId,-1],[e.userId,e.lastAcknowledgedBatchId]);return n.W("userMutationsIndex",r).next((n=>Ps.forEach(n,(n=>{Wr(n.userId===e.userId);const r=vc(this.serializer,n);return ul(t,e.userId,r).next((()=>{}))}))))}))))}ti(t){const e=t.store("targetDocuments"),n=t.store("remoteDocuments");return t.store("targetGlobal").get("targetGlobalKey").next((t=>{const r=[];return n.Y(((n,s)=>{const i=new ws(n),o=function(t){return[0,Js(t)]}(i);r.push(e.get(o).next((n=>n?Ps.resolve():(n=>e.put({targetId:0,path:Js(n),sequenceNumber:t.highestListenSequenceNumber}))(i))))})).next((()=>Ps.waitFor(r)))}))}ni(t,e){t.createObjectStore("collectionParents",{keyPath:di});const n=e.store("collectionParents"),r=new Jc,s=t=>{if(r.add(t)){const e=t.lastSegment(),r=t.popLast();return n.put({collectionId:e,parent:Js(r)})}};return e.store("remoteDocuments").Y({J:!0},((t,e)=>{const n=new ws(t);return s(n.popLast())})).next((()=>e.store("documentMutations").Y({J:!0},(([t,e,n],r)=>{const i=ei(e);return s(i.popLast())}))))}ri(t){const e=t.store("targets");return e.Y(((t,n)=>{const r=bc(n),s=_c(this.serializer,r);return e.put(s)}))}ii(t,e){const n=e.store("remoteDocuments"),r=[];return n.Y(((t,n)=>{const s=e.store("remoteDocumentsV14"),i=function(t){return t.document?new _s(ws.fromString(t.document.name).popFirst(5)):t.noDocument?_s.fromSegments(t.noDocument.path):t.unknownDocument?_s.fromSegments(t.unknownDocument.path):Hr()}(n).path.toArray(),o={prefixPath:i.slice(0,i.length-2),collectionGroup:i[i.length-2],documentId:i[i.length-1],readTime:n.readTime||[0,0],unknownDocument:n.unknownDocument,noDocument:n.noDocument,document:n.document,hasCommittedMutations:!!n.hasCommittedMutations};r.push(s.put(o))})).next((()=>Ps.waitFor(r)))}si(t,e){const n=e.store("mutations"),r=Al(this.serializer),s=new $l(Hl.Hr,this.serializer.ct);return n.W().next((t=>{const n=new Map;return t.forEach((t=>{var e;let r=null!==(e=n.get(t.userId))&&void 0!==e?e:Ca();vc(this.serializer,t).keys().forEach((t=>r=r.add(t))),n.set(t.userId,r)})),Ps.forEach(n,((t,n)=>{const i=new qr(n),o=Ac.lt(this.serializer,i),a=s.getIndexManager(i),u=ll.lt(i,this.serializer,a,s.referenceDelegate);return new Fl(r,u,o,a).recalculateAndSaveOverlaysForDocumentKeys(new Si(e,Hs._e),t).next()}))}))}}function Xl(t){t.createObjectStore("targetDocuments",{keyPath:li}).createIndex("documentTargetsIndex",hi,{unique:!0}),t.createObjectStore("targets",{keyPath:"targetId"}).createIndex("queryTargetsIndex",ci,{unique:!0}),t.createObjectStore("targetGlobal")}const Jl="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.";class Zl{constructor(t,e,n,r,s,i,o,a,u,c,l=15){if(this.allowTabSynchronization=t,this.persistenceKey=e,this.clientId=n,this.oi=s,this.window=i,this.document=o,this._i=u,this.ai=c,this.ui=l,this.kr=null,this.qr=!1,this.isPrimary=!1,this.networkEnabled=!0,this.ci=null,this.inForeground=!1,this.li=null,this.hi=null,this.Pi=Number.NEGATIVE_INFINITY,this.Ii=t=>Promise.resolve(),!Zl.D())throw new Zr(Jr.UNIMPLEMENTED,"This platform is either missing IndexedDB or is known to have an incomplete implementation. Offline persistence has been disabled.");this.referenceDelegate=new Sl(this,r),this.Ti=e+"main",this.serializer=new gc(a),this.Ei=new Vs(this.Ti,this.ui,new Yl(this.serializer)),this.Qr=new pl(this.referenceDelegate,this.serializer),this.remoteDocumentCache=Al(this.serializer),this.$r=new xc,this.window&&this.window.localStorage?this.di=this.window.localStorage:(this.di=null,!1===c&&Kr("IndexedDbPersistence","LocalStorage is unavailable. As a result, persistence may not work reliably. In particular enablePersistence() could fail immediately after refreshing the page."))}start(){return this.Ai().then((()=>{if(!this.isPrimary&&!this.allowTabSynchronization)throw new Zr(Jr.FAILED_PRECONDITION,Jl);return this.Ri(),this.Vi(),this.mi(),this.runTransaction("getHighestListenSequenceNumber","readonly",(t=>this.Qr.getHighestSequenceNumber(t)))})).then((t=>{this.kr=new Hs(t,this._i)})).then((()=>{this.qr=!0})).catch((t=>(this.Ei&&this.Ei.close(),Promise.reject(t))))}fi(t){return this.Ii=async e=>{if(this.started)return t(e)},t(this.isPrimary)}setDatabaseDeletedListener(t){this.Ei.L((async e=>{null===e.newVersion&&await t()}))}setNetworkEnabled(t){this.networkEnabled!==t&&(this.networkEnabled=t,this.oi.enqueueAndForget((async()=>{this.started&&await this.Ai()})))}Ai(){return this.runTransaction("updateClientMetadataAndTryBecomePrimary","readwrite",(t=>eh(t).put({clientId:this.clientId,updateTimeMs:Date.now(),networkEnabled:this.networkEnabled,inForeground:this.inForeground}).next((()=>{if(this.isPrimary)return this.gi(t).next((t=>{t||(this.isPrimary=!1,this.oi.enqueueRetryable((()=>this.Ii(!1))))}))})).next((()=>this.pi(t))).next((e=>this.isPrimary&&!e?this.yi(t).next((()=>!1)):!!e&&this.wi(t).next((()=>!0)))))).catch((t=>{if(Us(t))return jr("IndexedDbPersistence","Failed to extend owner lease: ",t),this.isPrimary;if(!this.allowTabSynchronization)throw t;return jr("IndexedDbPersistence","Releasing owner lease after error during lease refresh",t),!1})).then((t=>{this.isPrimary!==t&&this.oi.enqueueRetryable((()=>this.Ii(t))),this.isPrimary=t}))}gi(t){return th(t).get("owner").next((t=>Ps.resolve(this.Si(t))))}bi(t){return eh(t).delete(this.clientId)}async Di(){if(this.isPrimary&&!this.Ci(this.Pi,18e5)){this.Pi=Date.now();const t=await this.runTransaction("maybeGarbageCollectMultiClientState","readwrite-primary",(t=>{const e=xi(t,"clientMetadata");return e.W().next((t=>{const n=this.vi(t,18e5),r=t.filter((t=>-1===n.indexOf(t)));return Ps.forEach(r,(t=>e.delete(t.clientId))).next((()=>r))}))})).catch((()=>[]));if(this.di)for(const e of t)this.di.removeItem(this.Fi(e.clientId))}}mi(){this.hi=this.oi.enqueueAfterDelay("client_metadata_refresh",4e3,(()=>this.Ai().then((()=>this.Di())).then((()=>this.mi()))))}Si(t){return!!t&&t.ownerId===this.clientId}pi(t){return this.ai?Ps.resolve(!0):th(t).get("owner").next((e=>{if(null!==e&&this.Ci(e.leaseTimestampMs,5e3)&&!this.Mi(e.ownerId)){if(this.Si(e)&&this.networkEnabled)return!0;if(!this.Si(e)){if(!e.allowTabSynchronization)throw new Zr(Jr.FAILED_PRECONDITION,Jl);return!1}}return!(!this.networkEnabled||!this.inForeground)||eh(t).W().next((t=>void 0===this.vi(t,5e3).find((t=>{if(this.clientId!==t.clientId){const e=!this.networkEnabled&&t.networkEnabled,n=!this.inForeground&&t.inForeground,r=this.networkEnabled===t.networkEnabled;if(e||n&&r)return!0}return!1}))))})).next((t=>(this.isPrimary!==t&&jr("IndexedDbPersistence",`Client ${t?"is":"is not"} eligible for a primary lease.`),t)))}async shutdown(){this.qr=!1,this.xi(),this.hi&&(this.hi.cancel(),this.hi=null),this.Oi(),this.Ni(),await this.Ei.runTransaction("shutdown","readwrite",["owner","clientMetadata"],(t=>{const e=new Si(t,Hs._e);return this.yi(e).next((()=>this.bi(e)))})),this.Ei.close(),this.Bi()}vi(t,e){return t.filter((t=>this.Ci(t.updateTimeMs,e)&&!this.Mi(t.clientId)))}Li(){return this.runTransaction("getActiveClients","readonly",(t=>eh(t).W().next((t=>this.vi(t,18e5).map((t=>t.clientId))))))}get started(){return this.qr}getMutationQueue(t,e){return ll.lt(t,this.serializer,e,this.referenceDelegate)}getTargetCache(){return this.Qr}getRemoteDocumentCache(){return this.remoteDocumentCache}getIndexManager(t){return new tl(t,this.serializer.ct.databaseId)}getDocumentOverlayCache(t){return Ac.lt(this.serializer,t)}getBundleCache(){return this.$r}runTransaction(t,e,n){jr("IndexedDbPersistence","Starting transaction:",t);const r="readonly"===e?"readonly":"readwrite",s=function(t){return 15===t?Ti:14===t?Ei:13===t?Ii:12===t?_i:11===t?bi:void Hr()}(this.ui);let i;return this.Ei.runTransaction(t,r,s,(r=>(i=new Si(r,this.kr?this.kr.next():Hs._e),"readwrite-primary"===e?this.gi(i).next((t=>!!t||this.pi(i))).next((e=>{if(!e)throw Kr(`Failed to obtain primary lease for action '${t}'.`),this.isPrimary=!1,this.oi.enqueueRetryable((()=>this.Ii(!1))),new Zr(Jr.FAILED_PRECONDITION,Ms);return n(i)})).next((t=>this.wi(i).next((()=>t)))):this.ki(i).next((()=>n(i)))))).then((t=>(i.raiseOnCommittedEvent(),t)))}ki(t){return th(t).get("owner").next((t=>{if(null!==t&&this.Ci(t.leaseTimestampMs,5e3)&&!this.Mi(t.ownerId)&&!this.Si(t)&&!(this.ai||this.allowTabSynchronization&&t.allowTabSynchronization))throw new Zr(Jr.FAILED_PRECONDITION,Jl)}))}wi(t){const e={ownerId:this.clientId,allowTabSynchronization:this.allowTabSynchronization,leaseTimestampMs:Date.now()};return th(t).put("owner",e)}static D(){return Vs.D()}yi(t){const e=th(t);return e.get("owner").next((t=>this.Si(t)?(jr("IndexedDbPersistence","Releasing primary lease."),e.delete("owner")):Ps.resolve()))}Ci(t,e){const n=Date.now();return!(tn&&(Kr(`Detected an update time that is in the future: ${t} > ${n}`),1))}Ri(){null!==this.document&&"function"==typeof this.document.addEventListener&&(this.li=()=>{this.oi.enqueueAndForget((()=>(this.inForeground="visible"===this.document.visibilityState,this.Ai())))},this.document.addEventListener("visibilitychange",this.li),this.inForeground="visible"===this.document.visibilityState)}Oi(){this.li&&(this.document.removeEventListener("visibilitychange",this.li),this.li=null)}Vi(){var t;"function"==typeof(null===(t=this.window)||void 0===t?void 0:t.addEventListener)&&(this.ci=()=>{this.xi();const t=/(?:Version|Mobile)\/1[456]/;f()&&(navigator.appVersion.match(t)||navigator.userAgent.match(t))&&this.oi.enterRestrictedMode(!0),this.oi.enqueueAndForget((()=>this.shutdown()))},this.window.addEventListener("pagehide",this.ci))}Ni(){this.ci&&(this.window.removeEventListener("pagehide",this.ci),this.ci=null)}Mi(t){var e;try{const n=null!==(null===(e=this.di)||void 0===e?void 0:e.getItem(this.Fi(t)));return jr("IndexedDbPersistence",`Client '${t}' ${n?"is":"is not"} zombied in LocalStorage`),n}catch(t){return Kr("IndexedDbPersistence","Failed to get zombied client id.",t),!1}}xi(){if(this.di)try{this.di.setItem(this.Fi(this.clientId),String(Date.now()))}catch(t){Kr("Failed to set zombie client id.",t)}}Bi(){if(this.di)try{this.di.removeItem(this.Fi(this.clientId))}catch(t){}}Fi(t){return`firestore_zombie_${this.persistenceKey}_${t}`}}function th(t){return xi(t,"owner")}function eh(t){return xi(t,"clientMetadata")}function nh(t,e){let n=t.projectId;return t.isDefaultDatabase||(n+="."+t.database),"firestore/"+e+"/"+n+"/"}class rh{constructor(t,e,n,r){this.targetId=t,this.fromCache=e,this.qi=n,this.Qi=r}static Ki(t,e){let n=Ca(),r=Ca();for(const t of e.docChanges)switch(t.type){case 0:n=n.add(t.doc.key);break;case 1:r=r.add(t.doc.key)}return new rh(t,e.fromCache,n,r)}}class sh{constructor(){this._documentReadCount=0}get documentReadCount(){return this._documentReadCount}incrementDocumentReadCount(t){this._documentReadCount+=t}}class ih{constructor(){this.$i=!1,this.Ui=!1,this.Wi=100,this.Gi=f()?8:Vs.v(d())>0?6:4}initialize(t,e){this.zi=t,this.indexManager=e,this.$i=!0}getDocumentsMatchingQuery(t,e,n,r){const s={result:null};return this.ji(t,e).next((t=>{s.result=t})).next((()=>{if(!s.result)return this.Hi(t,e,r,n).next((t=>{s.result=t}))})).next((()=>{if(s.result)return;const n=new sh;return this.Ji(t,e,n).next((r=>{if(s.result=r,this.Ui)return this.Yi(t,e,n,r.size)}))})).next((()=>s.result))}Yi(t,e,n,r){return n.documentReadCountthis.Gi*r?(zr()<=_.DEBUG&&jr("QueryEngine","The SDK decides to create cache indexes for query:",ha(e),"as using cache indexes may help improve performance."),this.indexManager.createTargetIndexes(t,ia(e))):Ps.resolve())}ji(t,e){if(na(e))return Ps.resolve(null);let n=ia(e);return this.indexManager.getIndexType(t,n).next((r=>0===r?null:(null!==e.limit&&1===r&&(e=ua(e,null,"F"),n=ia(e)),this.indexManager.getDocumentsMatchingTarget(t,n).next((r=>{const s=Ca(...r);return this.zi.getDocuments(t,s).next((r=>this.indexManager.getMinOffset(t,n).next((n=>{const i=this.Zi(e,r);return this.Xi(e,i,s,n.readTime)?this.ji(t,ua(e,null,"F")):this.es(t,i,e,n)}))))})))))}Hi(t,e,n,r){return na(e)||r.isEqual(ps.min())?Ps.resolve(null):this.zi.getDocuments(t,n).next((s=>{const i=this.Zi(e,s);return this.Xi(e,i,n,r)?Ps.resolve(null):(zr()<=_.DEBUG&&jr("QueryEngine","Re-using previous result from %s to execute query: %s",r.toString(),ha(e)),this.es(t,i,e,As(r,-1)).next((t=>t)))}))}Zi(t,e){let n=new Mi(ga(t));return e.forEach(((e,r)=>{da(t,r)&&(n=n.add(r))})),n}Xi(t,e,n,r){if(null===t.limit)return!1;if(n.size!==e.size)return!0;const s="F"===t.limitType?e.last():e.first();return!!s&&(s.hasPendingWrites||s.version.compareTo(r)>0)}Ji(t,e,n){return zr()<=_.DEBUG&&jr("QueryEngine","Using full collection scan to execute query:",ha(e)),this.zi.getDocumentsMatchingQuery(t,e,ks.min(),n)}es(t,e,n,r){return this.zi.getDocumentsMatchingQuery(t,n,r).next((t=>(e.forEach((e=>{t=t.insert(e.key,e)})),t)))}}class oh{constructor(t,e,n,r){this.persistence=t,this.ts=e,this.serializer=r,this.ns=new Ni(ds),this.rs=new pa((t=>Qo(t)),Ho),this.ss=new Map,this.os=t.getRemoteDocumentCache(),this.Qr=t.getTargetCache(),this.$r=t.getBundleCache(),this._s(n)}_s(t){this.documentOverlayCache=this.persistence.getDocumentOverlayCache(t),this.indexManager=this.persistence.getIndexManager(t),this.mutationQueue=this.persistence.getMutationQueue(t,this.indexManager),this.localDocuments=new Fl(this.os,this.mutationQueue,this.documentOverlayCache,this.indexManager),this.os.setIndexManager(this.indexManager),this.ts.initialize(this.localDocuments,this.indexManager)}collectGarbage(t){return this.persistence.runTransaction("Collect garbage","readwrite-primary",(e=>t.collect(e,this.ns)))}}function ah(t,e,n,r){return new oh(t,e,n,r)}async function uh(t,e){const n=Xr(t);return await n.persistence.runTransaction("Handle user change","readonly",(t=>{let r;return n.mutationQueue.getAllMutationBatches(t).next((s=>(r=s,n._s(e),n.mutationQueue.getAllMutationBatches(t)))).next((e=>{const s=[],i=[];let o=Ca();for(const t of r){s.push(t.batchId);for(const e of t.mutations)o=o.add(e.key)}for(const t of e){i.push(t.batchId);for(const e of t.mutations)o=o.add(e.key)}return n.localDocuments.getDocuments(t,o).next((t=>({us:t,removedBatchIds:s,addedBatchIds:i})))}))}))}function ch(t){const e=Xr(t);return e.persistence.runTransaction("Get last remote snapshot version","readonly",(t=>e.Qr.getLastRemoteSnapshotVersion(t)))}function lh(t,e,n){let r=Ca(),s=Ca();return n.forEach((t=>r=r.add(t))),e.getEntries(t,r).next((t=>{let r=wa();return n.forEach(((n,i)=>{const o=t.get(n);i.isFoundDocument()!==o.isFoundDocument()&&(s=s.add(n)),i.isNoDocument()&&i.version.isEqual(ps.min())?(e.removeEntry(n,i.readTime),r=r.insert(n,i)):!o.isValidDocument()||i.version.compareTo(o.version)>0||0===i.version.compareTo(o.version)&&o.hasPendingWrites?(e.addEntry(i),r=r.insert(n,i)):jr("LocalStore","Ignoring outdated watch update for ",n,". Current version:",o.version," Watch version:",i.version)})),{cs:r,ls:s}}))}function hh(t,e){const n=Xr(t);return n.persistence.runTransaction("Get next mutation batch","readonly",(t=>(void 0===e&&(e=-1),n.mutationQueue.getNextMutationBatchAfterBatchId(t,e))))}function dh(t,e){const n=Xr(t);return n.persistence.runTransaction("Allocate target","readwrite",(t=>{let r;return n.Qr.getTargetData(t,e).next((s=>s?(r=s,Ps.resolve(r)):n.Qr.allocateTargetId(t).next((s=>(r=new fc(e,s,"TargetPurposeListen",t.currentSequenceNumber),n.Qr.addTargetData(t,r).next((()=>r)))))))})).then((t=>{const r=n.ns.get(t.targetId);return(null===r||t.snapshotVersion.compareTo(r.snapshotVersion)>0)&&(n.ns=n.ns.insert(t.targetId,t),n.rs.set(e,t.targetId)),t}))}async function fh(t,e,n){const r=Xr(t),s=r.ns.get(e),i=n?"readwrite":"readwrite-primary";try{n||await r.persistence.runTransaction("Release target",i,(t=>r.persistence.referenceDelegate.removeTarget(t,s)))}catch(t){if(!Us(t))throw t;jr("LocalStore",`Failed to update sequence numbers for target ${e}: ${t}`)}r.ns=r.ns.remove(e),r.rs.delete(s.target)}function gh(t,e,n){const r=Xr(t);let s=ps.min(),i=Ca();return r.persistence.runTransaction("Execute query","readwrite",(t=>function(t,e,n){const r=Xr(t),s=r.rs.get(n);return void 0!==s?Ps.resolve(r.ns.get(s)):r.Qr.getTargetData(e,n)}(r,t,ia(e)).next((e=>{if(e)return s=e.lastLimboFreeSnapshotVersion,r.Qr.getMatchingKeysForTargetId(t,e.targetId).next((t=>{i=t}))})).next((()=>r.ts.getDocumentsMatchingQuery(t,e,n?s:ps.min(),n?i:Ca()))).next((t=>(yh(r,fa(e),t),{documents:t,hs:i})))))}function mh(t,e){const n=Xr(t),r=Xr(n.Qr),s=n.ns.get(e);return s?Promise.resolve(s.target):n.persistence.runTransaction("Get target data","readonly",(t=>r._t(t,e).next((t=>t?t.target:null))))}function ph(t,e){const n=Xr(t),r=n.ss.get(e)||ps.min();return n.persistence.runTransaction("Get new document changes","readonly",(t=>n.os.getAllFromCollectionGroup(t,e,As(r,-1),Number.MAX_SAFE_INTEGER))).then((t=>(yh(n,e,t),t)))}function yh(t,e,n){let r=t.ss.get(e)||ps.min();n.forEach(((t,e)=>{e.readTime.compareTo(r)>0&&(r=e.readTime)})),t.ss.set(e,r)}async function wh(t,e,n=Ca()){const r=await dh(t,ia(Ic(e.bundledQuery))),s=Xr(t);return s.persistence.runTransaction("Save named query","readwrite",(t=>{const i=Uu(e.readTime);if(r.snapshotVersion.compareTo(i)>=0)return s.$r.saveNamedQuery(t,e);const o=r.withResumeToken(qi.EMPTY_BYTE_STRING,i);return s.ns=s.ns.insert(o.targetId,o),s.Qr.updateTargetData(t,o).next((()=>s.Qr.removeMatchingKeysForTargetId(t,r.targetId))).next((()=>s.Qr.addMatchingKeys(t,n,r.targetId))).next((()=>s.$r.saveNamedQuery(t,e)))}))}function vh(t,e){return`firestore_clients_${t}_${e}`}function bh(t,e,n){let r=`firestore_mutations_${t}_${n}`;return e.isAuthenticated()&&(r+=`_${e.uid}`),r}function _h(t,e){return`firestore_targets_${t}_${e}`}class Ih{constructor(t,e,n,r){this.user=t,this.batchId=e,this.state=n,this.error=r}static Es(t,e,n){const r=JSON.parse(n);let s,i="object"==typeof r&&-1!==["pending","acknowledged","rejected"].indexOf(r.state)&&(void 0===r.error||"object"==typeof r.error);return i&&r.error&&(i="string"==typeof r.error.message&&"string"==typeof r.error.code,i&&(s=new Zr(r.error.code,r.error.message))),i?new Ih(t,e,r.state,s):(Kr("SharedClientState",`Failed to parse mutation state for ID '${e}': ${n}`),null)}ds(){const t={state:this.state,updateTimeMs:Date.now()};return this.error&&(t.error={code:this.error.code,message:this.error.message}),JSON.stringify(t)}}class Eh{constructor(t,e,n){this.targetId=t,this.state=e,this.error=n}static Es(t,e){const n=JSON.parse(e);let r,s="object"==typeof n&&-1!==["not-current","current","rejected"].indexOf(n.state)&&(void 0===n.error||"object"==typeof n.error);return s&&n.error&&(s="string"==typeof n.error.message&&"string"==typeof n.error.code,s&&(r=new Zr(n.error.code,n.error.message))),s?new Eh(t,n.state,r):(Kr("SharedClientState",`Failed to parse target state for ID '${t}': ${e}`),null)}ds(){const t={state:this.state,updateTimeMs:Date.now()};return this.error&&(t.error={code:this.error.code,message:this.error.message}),JSON.stringify(t)}}class Th{constructor(t,e){this.clientId=t,this.activeTargetIds=e}static Es(t,e){const n=JSON.parse(e);let r="object"==typeof n&&n.activeTargetIds instanceof Array,s=Aa();for(let t=0;r&&tthis.shutdown())),this.started=!0}writeSequenceNumber(t){this.setItem(this.Ss,JSON.stringify(t))}getAllActiveQueryTargets(){return this.Ns(this.ps)}isActiveQueryTarget(t){let e=!1;return this.ps.forEach(((n,r)=>{r.activeTargetIds.has(t)&&(e=!0)})),e}addPendingMutation(t){this.Bs(t,"pending")}updateMutationState(t,e,n){this.Bs(t,e,n),this.Ls(t)}addLocalQueryTarget(t){let e="not-current";if(this.isActiveQueryTarget(t)){const n=this.storage.getItem(_h(this.persistenceKey,t));if(n){const r=Eh.Es(t,n);r&&(e=r.state)}}return this.ks.As(t),this.Ms(),e}removeLocalQueryTarget(t){this.ks.Rs(t),this.Ms()}isLocalQueryTarget(t){return this.ks.activeTargetIds.has(t)}clearQueryState(t){this.removeItem(_h(this.persistenceKey,t))}updateQueryState(t,e,n){this.qs(t,e,n)}handleUserChange(t,e,n){e.forEach((t=>{this.Ls(t)})),this.currentUser=t,n.forEach((t=>{this.addPendingMutation(t)}))}setOnlineState(t){this.Qs(t)}notifyBundleLoaded(t){this.Ks(t)}shutdown(){this.started&&(this.window.removeEventListener("storage",this.fs),this.removeItem(this.ws),this.started=!1)}getItem(t){const e=this.storage.getItem(t);return jr("SharedClientState","READ",t,e),e}setItem(t,e){jr("SharedClientState","SET",t,e),this.storage.setItem(t,e)}removeItem(t){jr("SharedClientState","REMOVE",t),this.storage.removeItem(t)}gs(t){const e=t;if(e.storageArea===this.storage){if(jr("SharedClientState","EVENT",e.key,e.newValue),e.key===this.ws)return void Kr("Received WebStorage notification for local change. Another client might have garbage-collected our state");this.oi.enqueueRetryable((async()=>{if(this.started){if(null!==e.key)if(this.bs.test(e.key)){if(null==e.newValue){const t=this.$s(e.key);return this.Us(t,null)}{const t=this.Ws(e.key,e.newValue);if(t)return this.Us(t.clientId,t)}}else if(this.Ds.test(e.key)){if(null!==e.newValue){const t=this.Gs(e.key,e.newValue);if(t)return this.zs(t)}}else if(this.Cs.test(e.key)){if(null!==e.newValue){const t=this.js(e.key,e.newValue);if(t)return this.Hs(t)}}else if(e.key===this.vs){if(null!==e.newValue){const t=this.xs(e.newValue);if(t)return this.Os(t)}}else if(e.key===this.Ss){const t=function(t){let e=Hs._e;if(null!=t)try{const n=JSON.parse(t);Wr("number"==typeof n),e=n}catch(t){Kr("SharedClientState","Failed to read sequence number from WebStorage",t)}return e}(e.newValue);t!==Hs._e&&this.sequenceNumberHandler(t)}else if(e.key===this.Fs){const t=this.Js(e.newValue);await Promise.all(t.map((t=>this.syncEngine.Ys(t))))}}else this.ys.push(e)}))}}get ks(){return this.ps.get(this.Vs)}Ms(){this.setItem(this.ws,this.ks.ds())}Bs(t,e,n){const r=new Ih(this.currentUser,t,e,n),s=bh(this.persistenceKey,this.currentUser,t);this.setItem(s,r.ds())}Ls(t){const e=bh(this.persistenceKey,this.currentUser,t);this.removeItem(e)}Qs(t){const e={clientId:this.Vs,onlineState:t};this.storage.setItem(this.vs,JSON.stringify(e))}qs(t,e,n){const r=_h(this.persistenceKey,t),s=new Eh(t,e,n);this.setItem(r,s.ds())}Ks(t){const e=JSON.stringify(Array.from(t));this.setItem(this.Fs,e)}$s(t){const e=this.bs.exec(t);return e?e[1]:null}Ws(t,e){const n=this.$s(t);return Th.Es(n,e)}Gs(t,e){const n=this.Ds.exec(t),r=Number(n[1]),s=void 0!==n[2]?n[2]:null;return Ih.Es(new qr(s),r,e)}js(t,e){const n=this.Cs.exec(t),r=Number(n[1]);return Eh.Es(r,e)}xs(t){return Sh.Es(t)}Js(t){return JSON.parse(t)}async zs(t){if(t.user.uid===this.currentUser.uid)return this.syncEngine.Zs(t.batchId,t.state,t.error);jr("SharedClientState",`Ignoring mutation for non-active user ${t.user.uid}`)}Hs(t){return this.syncEngine.Xs(t.targetId,t.state,t.error)}Us(t,e){const n=e?this.ps.insert(t,e):this.ps.remove(t),r=this.Ns(this.ps),s=this.Ns(n),i=[],o=[];return s.forEach((t=>{r.has(t)||i.push(t)})),r.forEach((t=>{s.has(t)||o.push(t)})),this.syncEngine.eo(i,o).then((()=>{this.ps=n}))}Os(t){this.ps.get(t.clientId)&&this.onlineStateHandler(t.onlineState)}Ns(t){let e=Aa();return t.forEach(((t,n)=>{e=e.unionWith(n.activeTargetIds)})),e}}class Dh{constructor(){this.no=new xh,this.ro={},this.onlineStateHandler=null,this.sequenceNumberHandler=null}addPendingMutation(t){}updateMutationState(t,e,n){}addLocalQueryTarget(t){return this.no.As(t),this.ro[t]||"not-current"}updateQueryState(t,e,n){this.ro[t]=e}removeLocalQueryTarget(t){this.no.Rs(t)}isLocalQueryTarget(t){return this.no.activeTargetIds.has(t)}clearQueryState(t){delete this.ro[t]}getAllActiveQueryTargets(){return this.no.activeTargetIds}isActiveQueryTarget(t){return this.no.activeTargetIds.has(t)}start(){return this.no=new xh,Promise.resolve()}handleUserChange(t,e,n){}setOnlineState(t){}shutdown(){}writeSequenceNumber(t){}notifyBundleLoaded(t){}}class Ah{io(t){}shutdown(){}}class Nh{constructor(){this.so=()=>this.oo(),this._o=()=>this.ao(),this.uo=[],this.co()}io(t){this.uo.push(t)}shutdown(){window.removeEventListener("online",this.so),window.removeEventListener("offline",this._o)}co(){window.addEventListener("online",this.so),window.addEventListener("offline",this._o)}oo(){jr("ConnectivityMonitor","Network connectivity changed: AVAILABLE");for(const t of this.uo)t(0)}ao(){jr("ConnectivityMonitor","Network connectivity changed: UNAVAILABLE");for(const t of this.uo)t(1)}static D(){return"undefined"!=typeof window&&void 0!==window.addEventListener&&void 0!==window.removeEventListener}}let kh=null;function Rh(){return null===kh?kh=268435456+Math.round(2147483648*Math.random()):kh++,"0x"+kh.toString(16)}const Mh={BatchGetDocuments:"batchGet",Commit:"commit",RunQuery:"runQuery",RunAggregationQuery:"runAggregationQuery"};class Lh{constructor(t){this.lo=t.lo,this.ho=t.ho}Po(t){this.Io=t}To(t){this.Eo=t}onMessage(t){this.Ao=t}close(){this.ho()}send(t){this.lo(t)}Ro(){this.Io()}Vo(t){this.Eo(t)}mo(t){this.Ao(t)}}const Oh="WebChannelConnection";class Ph extends class{constructor(t){this.databaseInfo=t,this.databaseId=t.databaseId;const e=t.ssl?"https":"http",n=encodeURIComponent(this.databaseId.projectId),r=encodeURIComponent(this.databaseId.database);this.fo=e+"://"+t.host,this.po=`projects/${n}/databases/${r}`,this.yo="(default)"===this.databaseId.database?`project_id=${n}`:`project_id=${n}&database_id=${r}`}get wo(){return!1}So(t,e,n,r,s){const i=Rh(),o=this.bo(t,e.toUriEncodedString());jr("RestConnection",`Sending RPC '${t}' ${i}:`,o,n);const a={"google-cloud-resource-prefix":this.po,"x-goog-request-params":this.yo};return this.Do(a,r,s),this.Co(t,o,a,n).then((e=>(jr("RestConnection",`Received RPC '${t}' ${i}: `,e),e)),(e=>{throw $r("RestConnection",`RPC '${t}' ${i} failed with error: `,e,"url: ",o,"request:",n),e}))}vo(t,e,n,r,s,i){return this.So(t,e,n,r,s)}Do(t,e,n){t["X-Goog-Api-Client"]="gl-js/ fire/"+Br,t["Content-Type"]="text/plain",this.databaseInfo.appId&&(t["X-Firebase-GMPID"]=this.databaseInfo.appId),e&&e.headers.forEach(((e,n)=>t[n]=e)),n&&n.headers.forEach(((e,n)=>t[n]=e))}bo(t,e){const n=Mh[t];return`${this.fo}/v1/${e}:${n}`}terminate(){}}{constructor(t){super(t),this.forceLongPolling=t.forceLongPolling,this.autoDetectLongPolling=t.autoDetectLongPolling,this.useFetchStreams=t.useFetchStreams,this.longPollingOptions=t.longPollingOptions}Co(t,e,n,r){const s=Rh();return new Promise(((i,o)=>{const a=new Or;a.setWithCredentials(!0),a.listenOnce(Rr.COMPLETE,(()=>{try{switch(a.getLastErrorCode()){case kr.NO_ERROR:const e=a.getResponseJson();jr(Oh,`XHR for RPC '${t}' ${s} received:`,JSON.stringify(e)),i(e);break;case kr.TIMEOUT:jr(Oh,`RPC '${t}' ${s} timed out`),o(new Zr(Jr.DEADLINE_EXCEEDED,"Request time out"));break;case kr.HTTP_ERROR:const n=a.getStatus();if(jr(Oh,`RPC '${t}' ${s} failed with status:`,n,"response text:",a.getResponseText()),n>0){let t=a.getResponseJson();Array.isArray(t)&&(t=t[0]);const e=null==t?void 0:t.error;if(e&&e.status&&e.message){const t=function(t){const e=t.toLowerCase().replace(/_/g,"-");return Object.values(Jr).indexOf(e)>=0?e:Jr.UNKNOWN}(e.status);o(new Zr(t,e.message))}else o(new Zr(Jr.UNKNOWN,"Server responded with status "+a.getStatus()))}else o(new Zr(Jr.UNAVAILABLE,"Connection failed."));break;default:Hr()}}finally{jr(Oh,`RPC '${t}' ${s} completed.`)}}));const u=JSON.stringify(r);jr(Oh,`RPC '${t}' ${s} sending request:`,r),a.send(e,"POST",u,n,15)}))}Fo(t,e,n){const r=Rh(),s=[this.fo,"/","google.firestore.v1.Firestore","/",t,"/channel"],i=new ar,o=oe(),a={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},u=this.longPollingOptions.timeoutSeconds;void 0!==u&&(a.longPollingTimeout=Math.round(1e3*u)),this.useFetchStreams&&(a.useFetchStreams=!0),this.Do(a.initMessageHeaders,e,n),a.encodeInitMessageHeaders=!0;const c=s.join("");jr(Oh,`Creating RPC '${t}' stream ${r}: ${c}`,a);const l=i.createWebChannel(c,a);let h=!1,d=!1;const f=new Lh({lo:e=>{d?jr(Oh,`Not sending because RPC '${t}' stream ${r} is closed:`,e):(h||(jr(Oh,`Opening RPC '${t}' stream ${r} transport.`),l.open(),h=!0),jr(Oh,`RPC '${t}' stream ${r} sending:`,e),l.send(e))},ho:()=>l.close()}),g=(t,e,n)=>{t.listen(e,(t=>{try{n(t)}catch(t){setTimeout((()=>{throw t}),0)}}))};return g(l,Lr.EventType.OPEN,(()=>{d||jr(Oh,`RPC '${t}' stream ${r} transport opened.`)})),g(l,Lr.EventType.CLOSE,(()=>{d||(d=!0,jr(Oh,`RPC '${t}' stream ${r} transport closed`),f.Vo())})),g(l,Lr.EventType.ERROR,(e=>{d||(d=!0,$r(Oh,`RPC '${t}' stream ${r} transport errored:`,e),f.Vo(new Zr(Jr.UNAVAILABLE,"The operation could not be completed")))})),g(l,Lr.EventType.MESSAGE,(e=>{var n;if(!d){const s=e.data[0];Wr(!!s);const i=s,o=i.error||(null===(n=i[0])||void 0===n?void 0:n.error);if(o){jr(Oh,`RPC '${t}' stream ${r} received error:`,o);const e=o.status;let n=function(t){const e=fu[t];if(void 0!==e)return pu(e)}(e),s=o.message;void 0===n&&(n=Jr.INTERNAL,s="Unknown error status: "+e+" with message "+o.message),d=!0,f.Vo(new Zr(n,s)),l.close()}else jr(Oh,`RPC '${t}' stream ${r} received:`,s),f.mo(s)}})),g(o,Mr.STAT_EVENT,(e=>{10===e.stat?jr(Oh,`RPC '${t}' stream ${r} detected buffering proxy`):11===e.stat&&jr(Oh,`RPC '${t}' stream ${r} detected no buffering proxy`)})),setTimeout((()=>{f.Ro()}),0),f}}function Fh(){return"undefined"!=typeof window?window:null}function Vh(){return"undefined"!=typeof document?document:null}function qh(t){return new Pu(t,!0)}class Bh{constructor(t,e,n=1e3,r=1.5,s=6e4){this.oi=t,this.timerId=e,this.Mo=n,this.xo=r,this.Oo=s,this.No=0,this.Bo=null,this.Lo=Date.now(),this.reset()}reset(){this.No=0}ko(){this.No=this.Oo}qo(t){this.cancel();const e=Math.floor(this.No+this.Qo()),n=Math.max(0,Date.now()-this.Lo),r=Math.max(0,e-n);r>0&&jr("ExponentialBackoff",`Backing off for ${r} ms (base delay: ${this.No} ms, delay with jitter: ${e} ms, last attempt: ${n} ms ago)`),this.Bo=this.oi.enqueueAfterDelay(this.timerId,r,(()=>(this.Lo=Date.now(),t()))),this.No*=this.xo,this.Nothis.Oo&&(this.No=this.Oo)}Ko(){null!==this.Bo&&(this.Bo.skipDelay(),this.Bo=null)}cancel(){null!==this.Bo&&(this.Bo.cancel(),this.Bo=null)}Qo(){return(Math.random()-.5)*this.No}}class Uh{constructor(t,e,n,r,s,i,o,a){this.oi=t,this.$o=n,this.Uo=r,this.connection=s,this.authCredentialsProvider=i,this.appCheckCredentialsProvider=o,this.listener=a,this.state=0,this.Wo=0,this.Go=null,this.zo=null,this.stream=null,this.jo=new Bh(t,e)}Ho(){return 1===this.state||5===this.state||this.Jo()}Jo(){return 2===this.state||3===this.state}start(){4!==this.state?this.auth():this.Yo()}async stop(){this.Ho()&&await this.close(0)}Zo(){this.state=0,this.jo.reset()}Xo(){this.Jo()&&null===this.Go&&(this.Go=this.oi.enqueueAfterDelay(this.$o,6e4,(()=>this.e_())))}t_(t){this.n_(),this.stream.send(t)}async e_(){if(this.Jo())return this.close(0)}n_(){this.Go&&(this.Go.cancel(),this.Go=null)}r_(){this.zo&&(this.zo.cancel(),this.zo=null)}async close(t,e){this.n_(),this.r_(),this.jo.cancel(),this.Wo++,4!==t?this.jo.reset():e&&e.code===Jr.RESOURCE_EXHAUSTED?(Kr(e.toString()),Kr("Using maximum backoff delay to prevent overloading the backend."),this.jo.ko()):e&&e.code===Jr.UNAUTHENTICATED&&3!==this.state&&(this.authCredentialsProvider.invalidateToken(),this.appCheckCredentialsProvider.invalidateToken()),null!==this.stream&&(this.i_(),this.stream.close(),this.stream=null),this.state=t,await this.listener.To(e)}i_(){}auth(){this.state=1;const t=this.s_(this.Wo),e=this.Wo;Promise.all([this.authCredentialsProvider.getToken(),this.appCheckCredentialsProvider.getToken()]).then((([t,n])=>{this.Wo===e&&this.o_(t,n)}),(e=>{t((()=>{const t=new Zr(Jr.UNKNOWN,"Fetching auth token failed: "+e.message);return this.__(t)}))}))}o_(t,e){const n=this.s_(this.Wo);this.stream=this.a_(t,e),this.stream.Po((()=>{n((()=>(this.state=2,this.zo=this.oi.enqueueAfterDelay(this.Uo,1e4,(()=>(this.Jo()&&(this.state=3),Promise.resolve()))),this.listener.Po())))})),this.stream.To((t=>{n((()=>this.__(t)))})),this.stream.onMessage((t=>{n((()=>this.onMessage(t)))}))}Yo(){this.state=5,this.jo.qo((async()=>{this.state=0,this.start()}))}__(t){return jr("PersistentStream",`close with error: ${t}`),this.stream=null,this.close(4,t)}s_(t){return e=>{this.oi.enqueueAndForget((()=>this.Wo===t?e():(jr("PersistentStream","stream callback skipped by getCloseGuardedDispatcher."),Promise.resolve())))}}}class zh extends Uh{constructor(t,e,n,r,s,i){super(t,"listen_stream_connection_backoff","listen_stream_idle","health_check_timeout",e,n,r,i),this.serializer=s}a_(t,e){return this.connection.Fo("Listen",t,e)}onMessage(t){this.jo.reset();const e=function(t,e){let n;if("targetChange"in e){e.targetChange;const r=function(t){return"NO_CHANGE"===t?0:"ADD"===t?1:"REMOVE"===t?2:"CURRENT"===t?3:"RESET"===t?4:Hr()}(e.targetChange.targetChangeType||"NO_CHANGE"),s=e.targetChange.targetIds||[],i=function(t,e){return t.useProto3Json?(Wr(void 0===e||"string"==typeof e),qi.fromBase64String(e||"")):(Wr(void 0===e||e instanceof Uint8Array),qi.fromUint8Array(e||new Uint8Array))}(t,e.targetChange.resumeToken),o=e.targetChange.cause,a=o&&function(t){const e=void 0===t.code?Jr.UNKNOWN:pu(t.code);return new Zr(e,t.message||"")}(o);n=new Du(r,s,i,a||null)}else if("documentChange"in e){e.documentChange;const r=e.documentChange;r.document,r.document.name,r.document.updateTime;const s=$u(t,r.document.name),i=Uu(r.document.updateTime),o=r.document.createTime?Uu(r.document.createTime):ps.min(),a=new wo({mapValue:{fields:r.document.fields}}),u=bo.newFoundDocument(s,i,o,a),c=r.targetIds||[],l=r.removedTargetIds||[];n=new xu(c,l,u.key,u)}else if("documentDelete"in e){e.documentDelete;const r=e.documentDelete;r.document;const s=$u(t,r.document),i=r.readTime?Uu(r.readTime):ps.min(),o=bo.newNoDocument(s,i),a=r.removedTargetIds||[];n=new xu([],a,o.key,o)}else if("documentRemove"in e){e.documentRemove;const r=e.documentRemove;r.document;const s=$u(t,r.document),i=r.removedTargetIds||[];n=new xu([],i,s,null)}else{if(!("filter"in e))return Hr();{e.filter;const t=e.filter;t.targetId;const{count:r=0,unchangedNames:s}=t,i=new du(r,s),o=t.targetId;n=new Cu(o,i)}}return n}(this.serializer,t),n=function(t){if(!("targetChange"in t))return ps.min();const e=t.targetChange;return e.targetIds&&e.targetIds.length?ps.min():e.readTime?Uu(e.readTime):ps.min()}(t);return this.listener.u_(e,n)}c_(t){const e={};e.database=Wu(this.serializer),e.addTarget=function(t,e){let n;const r=e.target;if(n=Wo(r)?{documents:ec(t,r)}:{query:nc(t,r).ut},n.targetId=e.targetId,e.resumeToken.approximateByteSize()>0){n.resumeToken=qu(t,e.resumeToken);const r=Fu(t,e.expectedCount);null!==r&&(n.expectedCount=r)}else if(e.snapshotVersion.compareTo(ps.min())>0){n.readTime=Vu(t,e.snapshotVersion.toTimestamp());const r=Fu(t,e.expectedCount);null!==r&&(n.expectedCount=r)}return n}(this.serializer,t);const n=function(t,e){const n=function(t){switch(t){case"TargetPurposeListen":return null;case"TargetPurposeExistenceFilterMismatch":return"existence-filter-mismatch";case"TargetPurposeExistenceFilterMismatchBloom":return"existence-filter-mismatch-bloom";case"TargetPurposeLimboResolution":return"limbo-document";default:return Hr()}}(e.purpose);return null==n?null:{"goog-listen-tags":n}}(this.serializer,t);n&&(e.labels=n),this.t_(e)}l_(t){const e={};e.database=Wu(this.serializer),e.removeTarget=t,this.t_(e)}}class Gh extends Uh{constructor(t,e,n,r,s,i){super(t,"write_stream_connection_backoff","write_stream_idle","health_check_timeout",e,n,r,i),this.serializer=s,this.h_=!1}get P_(){return this.h_}start(){this.h_=!1,this.lastStreamToken=void 0,super.start()}i_(){this.h_&&this.I_([])}a_(t,e){return this.connection.Fo("Write",t,e)}onMessage(t){if(Wr(!!t.streamToken),this.lastStreamToken=t.streamToken,this.h_){this.jo.reset();const e=function(t,e){return t&&t.length>0?(Wr(void 0!==e),t.map((t=>function(t,e){let n=t.updateTime?Uu(t.updateTime):Uu(e);return n.isEqual(ps.min())&&(n=Uu(e)),new $a(n,t.transformResults||[])}(t,e)))):[]}(t.writeResults,t.commitTime),n=Uu(t.commitTime);return this.listener.T_(n,e)}return Wr(!t.writeResults||0===t.writeResults.length),this.h_=!0,this.listener.E_()}d_(){const t={};t.database=Wu(this.serializer),this.t_(t)}I_(t){const e={streamToken:this.lastStreamToken,writes:t.map((t=>Zu(this.serializer,t)))};this.t_(e)}}class jh extends class{}{constructor(t,e,n,r){super(),this.authCredentials=t,this.appCheckCredentials=e,this.connection=n,this.serializer=r,this.A_=!1}R_(){if(this.A_)throw new Zr(Jr.FAILED_PRECONDITION,"The client has already been terminated.")}So(t,e,n,r){return this.R_(),Promise.all([this.authCredentials.getToken(),this.appCheckCredentials.getToken()]).then((([s,i])=>this.connection.So(t,Gu(e,n),r,s,i))).catch((t=>{throw"FirebaseError"===t.name?(t.code===Jr.UNAUTHENTICATED&&(this.authCredentials.invalidateToken(),this.appCheckCredentials.invalidateToken()),t):new Zr(Jr.UNKNOWN,t.toString())}))}vo(t,e,n,r,s){return this.R_(),Promise.all([this.authCredentials.getToken(),this.appCheckCredentials.getToken()]).then((([i,o])=>this.connection.vo(t,Gu(e,n),r,i,o,s))).catch((t=>{throw"FirebaseError"===t.name?(t.code===Jr.UNAUTHENTICATED&&(this.authCredentials.invalidateToken(),this.appCheckCredentials.invalidateToken()),t):new Zr(Jr.UNKNOWN,t.toString())}))}terminate(){this.A_=!0,this.connection.terminate()}}class Kh{constructor(t,e){this.asyncQueue=t,this.onlineStateHandler=e,this.state="Unknown",this.m_=0,this.f_=null,this.g_=!0}p_(){0===this.m_&&(this.y_("Unknown"),this.f_=this.asyncQueue.enqueueAfterDelay("online_state_timeout",1e4,(()=>(this.f_=null,this.w_("Backend didn't respond within 10 seconds."),this.y_("Offline"),Promise.resolve()))))}S_(t){"Online"===this.state?this.y_("Unknown"):(this.m_++,this.m_>=1&&(this.b_(),this.w_(`Connection failed 1 times. Most recent error: ${t.toString()}`),this.y_("Offline")))}set(t){this.b_(),this.m_=0,"Online"===t&&(this.g_=!1),this.y_(t)}y_(t){t!==this.state&&(this.state=t,this.onlineStateHandler(t))}w_(t){const 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.`;this.g_?(Kr(e),this.g_=!1):jr("OnlineStateTracker",e)}b_(){null!==this.f_&&(this.f_.cancel(),this.f_=null)}}class $h{constructor(t,e,n,r,s){this.localStore=t,this.datastore=e,this.asyncQueue=n,this.remoteSyncer={},this.D_=[],this.C_=new Map,this.v_=new Set,this.F_=[],this.M_=s,this.M_.io((t=>{n.enqueueAndForget((async()=>{ed(this)&&(jr("RemoteStore","Restarting streams for network reachability change."),await async function(t){const e=Xr(t);e.v_.add(4),await Hh(e),e.x_.set("Unknown"),e.v_.delete(4),await Qh(e)}(this))}))})),this.x_=new Kh(n,r)}}async function Qh(t){if(ed(t))for(const e of t.F_)await e(!0)}async function Hh(t){for(const e of t.F_)await e(!1)}function Wh(t,e){const n=Xr(t);n.C_.has(e.targetId)||(n.C_.set(e.targetId,e),td(n)?Zh(n):vd(n).Jo()&&Xh(n,e))}function Yh(t,e){const n=Xr(t),r=vd(n);n.C_.delete(e),r.Jo()&&Jh(n,e),0===n.C_.size&&(r.Jo()?r.Xo():ed(n)&&n.x_.set("Unknown"))}function Xh(t,e){if(t.O_.Oe(e.targetId),e.resumeToken.approximateByteSize()>0||e.snapshotVersion.compareTo(ps.min())>0){const n=t.remoteSyncer.getRemoteKeysForTarget(e.targetId).size;e=e.withExpectedCount(n)}vd(t).c_(e)}function Jh(t,e){t.O_.Oe(e),vd(t).l_(e)}function Zh(t){t.O_=new Nu({getRemoteKeysForTarget:e=>t.remoteSyncer.getRemoteKeysForTarget(e),_t:e=>t.C_.get(e)||null,nt:()=>t.datastore.serializer.databaseId}),vd(t).start(),t.x_.p_()}function td(t){return ed(t)&&!vd(t).Ho()&&t.C_.size>0}function ed(t){return 0===Xr(t).v_.size}function nd(t){t.O_=void 0}async function rd(t){t.C_.forEach(((e,n)=>{Xh(t,e)}))}async function sd(t,e){nd(t),td(t)?(t.x_.S_(e),Zh(t)):t.x_.set("Unknown")}async function id(t,e,n){if(t.x_.set("Online"),e instanceof Du&&2===e.state&&e.cause)try{await async function(t,e){const n=e.cause;for(const r of e.targetIds)t.C_.has(r)&&(await t.remoteSyncer.rejectListen(r,n),t.C_.delete(r),t.O_.removeTarget(r))}(t,e)}catch(n){jr("RemoteStore","Failed to remove targets %s: %s ",e.targetIds.join(","),n),await od(t,n)}else if(e instanceof xu?t.O_.$e(e):e instanceof Cu?t.O_.Je(e):t.O_.Ge(e),!n.isEqual(ps.min()))try{const e=await ch(t.localStore);n.compareTo(e)>=0&&await function(t,e){const n=t.O_.it(e);return n.targetChanges.forEach(((n,r)=>{if(n.resumeToken.approximateByteSize()>0){const s=t.C_.get(r);s&&t.C_.set(r,s.withResumeToken(n.resumeToken,e))}})),n.targetMismatches.forEach(((e,n)=>{const r=t.C_.get(e);if(!r)return;t.C_.set(e,r.withResumeToken(qi.EMPTY_BYTE_STRING,r.snapshotVersion)),Jh(t,e);const s=new fc(r.target,e,n,r.sequenceNumber);Xh(t,s)})),t.remoteSyncer.applyRemoteEvent(n)}(t,n)}catch(e){jr("RemoteStore","Failed to raise snapshot:",e),await od(t,e)}}async function od(t,e,n){if(!Us(e))throw e;t.v_.add(1),await Hh(t),t.x_.set("Offline"),n||(n=()=>ch(t.localStore)),t.asyncQueue.enqueueRetryable((async()=>{jr("RemoteStore","Retrying IndexedDB access"),await n(),t.v_.delete(1),await Qh(t)}))}function ad(t,e){return e().catch((n=>od(t,n,e)))}async function ud(t){const e=Xr(t),n=bd(e);let r=e.D_.length>0?e.D_[e.D_.length-1].batchId:-1;for(;cd(e);)try{const t=await hh(e.localStore,r);if(null===t){0===e.D_.length&&n.Xo();break}r=t.batchId,ld(e,t)}catch(t){await od(e,t)}hd(e)&&dd(e)}function cd(t){return ed(t)&&t.D_.length<10}function ld(t,e){t.D_.push(e);const n=bd(t);n.Jo()&&n.P_&&n.I_(e.mutations)}function hd(t){return ed(t)&&!bd(t).Ho()&&t.D_.length>0}function dd(t){bd(t).start()}async function fd(t){bd(t).d_()}async function gd(t){const e=bd(t);for(const n of t.D_)e.I_(n.mutations)}async function md(t,e,n){const r=t.D_.shift(),s=cu.from(r,e,n);await ad(t,(()=>t.remoteSyncer.applySuccessfulWrite(s))),await ud(t)}async function pd(t,e){e&&bd(t).P_&&await async function(t,e){if(function(t){return mu(t)&&t!==Jr.ABORTED}(e.code)){const n=t.D_.shift();bd(t).Zo(),await ad(t,(()=>t.remoteSyncer.rejectFailedWrite(n.batchId,e))),await ud(t)}}(t,e),hd(t)&&dd(t)}async function yd(t,e){const n=Xr(t);n.asyncQueue.verifyOperationInProgress(),jr("RemoteStore","RemoteStore received new credentials");const r=ed(n);n.v_.add(3),await Hh(n),r&&n.x_.set("Unknown"),await n.remoteSyncer.handleCredentialChange(e),n.v_.delete(3),await Qh(n)}async function wd(t,e){const n=Xr(t);e?(n.v_.delete(2),await Qh(n)):e||(n.v_.add(2),await Hh(n),n.x_.set("Unknown"))}function vd(t){return t.N_||(t.N_=function(t,e,n){const r=Xr(t);return r.R_(),new zh(e,r.connection,r.authCredentials,r.appCheckCredentials,r.serializer,n)}(t.datastore,t.asyncQueue,{Po:rd.bind(null,t),To:sd.bind(null,t),u_:id.bind(null,t)}),t.F_.push((async e=>{e?(t.N_.Zo(),td(t)?Zh(t):t.x_.set("Unknown")):(await t.N_.stop(),nd(t))}))),t.N_}function bd(t){return t.B_||(t.B_=function(t,e,n){const r=Xr(t);return r.R_(),new Gh(e,r.connection,r.authCredentials,r.appCheckCredentials,r.serializer,n)}(t.datastore,t.asyncQueue,{Po:fd.bind(null,t),To:pd.bind(null,t),E_:gd.bind(null,t),T_:md.bind(null,t)}),t.F_.push((async e=>{e?(t.B_.Zo(),await ud(t)):(await t.B_.stop(),t.D_.length>0&&(jr("RemoteStore",`Stopping write stream with ${t.D_.length} pending writes`),t.D_=[]))}))),t.B_}class _d{constructor(t,e,n,r,s){this.asyncQueue=t,this.timerId=e,this.targetTimeMs=n,this.op=r,this.removalCallback=s,this.deferred=new ts,this.then=this.deferred.promise.then.bind(this.deferred.promise),this.deferred.promise.catch((t=>{}))}get promise(){return this.deferred.promise}static createAndSchedule(t,e,n,r,s){const i=Date.now()+n,o=new _d(t,e,i,r,s);return o.start(n),o}start(t){this.timerHandle=setTimeout((()=>this.handleDelayElapsed()),t)}skipDelay(){return this.handleDelayElapsed()}cancel(t){null!==this.timerHandle&&(this.clearTimeout(),this.deferred.reject(new Zr(Jr.CANCELLED,"Operation cancelled"+(t?": "+t:""))))}handleDelayElapsed(){this.asyncQueue.enqueueAndForget((()=>null!==this.timerHandle?(this.clearTimeout(),this.op().then((t=>this.deferred.resolve(t)))):Promise.resolve()))}clearTimeout(){null!==this.timerHandle&&(this.removalCallback(this),clearTimeout(this.timerHandle),this.timerHandle=null)}}function Id(t,e){if(Kr("AsyncQueue",`${e}: ${t}`),Us(t))return new Zr(Jr.UNAVAILABLE,`${e}: ${t}`);throw t}class Ed{constructor(t){this.comparator=t?(e,n)=>t(e,n)||_s.comparator(e.key,n.key):(t,e)=>_s.comparator(t.key,e.key),this.keyedMap=ba(),this.sortedSet=new Ni(this.comparator)}static emptySet(t){return new Ed(t.comparator)}has(t){return null!=this.keyedMap.get(t)}get(t){return this.keyedMap.get(t)}first(){return this.sortedSet.minKey()}last(){return this.sortedSet.maxKey()}isEmpty(){return this.sortedSet.isEmpty()}indexOf(t){const e=this.keyedMap.get(t);return e?this.sortedSet.indexOf(e):-1}get size(){return this.sortedSet.size}forEach(t){this.sortedSet.inorderTraversal(((e,n)=>(t(e),!1)))}add(t){const e=this.delete(t.key);return e.copy(e.keyedMap.insert(t.key,t),e.sortedSet.insert(t,null))}delete(t){const e=this.get(t);return e?this.copy(this.keyedMap.remove(t),this.sortedSet.remove(e)):this}isEqual(t){if(!(t instanceof Ed))return!1;if(this.size!==t.size)return!1;const e=this.sortedSet.getIterator(),n=t.sortedSet.getIterator();for(;e.hasNext();){const t=e.getNext().key,r=n.getNext().key;if(!t.isEqual(r))return!1}return!0}toString(){const t=[];return this.forEach((e=>{t.push(e.toString())})),0===t.length?"DocumentSet ()":"DocumentSet (\n "+t.join(" \n")+"\n)"}copy(t,e){const n=new Ed;return n.comparator=this.comparator,n.keyedMap=t,n.sortedSet=e,n}}class Td{constructor(){this.L_=new Ni(_s.comparator)}track(t){const e=t.doc.key,n=this.L_.get(e);n?0!==t.type&&3===n.type?this.L_=this.L_.insert(e,t):3===t.type&&1!==n.type?this.L_=this.L_.insert(e,{type:n.type,doc:t.doc}):2===t.type&&2===n.type?this.L_=this.L_.insert(e,{type:2,doc:t.doc}):2===t.type&&0===n.type?this.L_=this.L_.insert(e,{type:0,doc:t.doc}):1===t.type&&0===n.type?this.L_=this.L_.remove(e):1===t.type&&2===n.type?this.L_=this.L_.insert(e,{type:1,doc:n.doc}):0===t.type&&1===n.type?this.L_=this.L_.insert(e,{type:2,doc:t.doc}):Hr():this.L_=this.L_.insert(e,t)}k_(){const t=[];return this.L_.inorderTraversal(((e,n)=>{t.push(n)})),t}}class Sd{constructor(t,e,n,r,s,i,o,a,u){this.query=t,this.docs=e,this.oldDocs=n,this.docChanges=r,this.mutatedKeys=s,this.fromCache=i,this.syncStateChanged=o,this.excludesMetadataChanges=a,this.hasCachedResults=u}static fromInitialDocuments(t,e,n,r,s){const i=[];return e.forEach((t=>{i.push({type:0,doc:t})})),new Sd(t,e,Ed.emptySet(e),i,n,r,!0,!1,s)}get hasPendingWrites(){return!this.mutatedKeys.isEmpty()}isEqual(t){if(!(this.fromCache===t.fromCache&&this.hasCachedResults===t.hasCachedResults&&this.syncStateChanged===t.syncStateChanged&&this.mutatedKeys.isEqual(t.mutatedKeys)&&ca(this.query,t.query)&&this.docs.isEqual(t.docs)&&this.oldDocs.isEqual(t.oldDocs)))return!1;const e=this.docChanges,n=t.docChanges;if(e.length!==n.length)return!1;for(let t=0;tla(t)),ca),this.onlineState="Unknown",this.K_=new Set}}async function Dd(t,e){const n=Xr(t),r=e.query;let s=!1,i=n.queries.get(r);if(i||(s=!0,i=new xd),s)try{i.q_=await n.onListen(r)}catch(t){const n=Id(t,`Initialization of query '${ha(e.query)}' failed`);return void e.onError(n)}n.queries.set(r,i),i.Q_.push(e),e.U_(n.onlineState),i.q_&&e.W_(i.q_)&&Rd(n)}async function Ad(t,e){const n=Xr(t),r=e.query;let s=!1;const i=n.queries.get(r);if(i){const t=i.Q_.indexOf(e);t>=0&&(i.Q_.splice(t,1),s=0===i.Q_.length)}if(s)return n.queries.delete(r),n.onUnlisten(r)}function Nd(t,e){const n=Xr(t);let r=!1;for(const t of e){const e=t.query,s=n.queries.get(e);if(s){for(const e of s.Q_)e.W_(t)&&(r=!0);s.q_=t}}r&&Rd(n)}function kd(t,e,n){const r=Xr(t),s=r.queries.get(e);if(s)for(const t of s.Q_)t.onError(n);r.queries.delete(e)}function Rd(t){t.K_.forEach((t=>{t.next()}))}class Md{constructor(t,e,n){this.query=t,this.G_=e,this.z_=!1,this.j_=null,this.onlineState="Unknown",this.options=n||{}}W_(t){if(!this.options.includeMetadataChanges){const e=[];for(const n of t.docChanges)3!==n.type&&e.push(n);t=new Sd(t.query,t.docs,t.oldDocs,e,t.mutatedKeys,t.fromCache,t.syncStateChanged,!0,t.hasCachedResults)}let e=!1;return this.z_?this.H_(t)&&(this.G_.next(t),e=!0):this.J_(t,this.onlineState)&&(this.Y_(t),e=!0),this.j_=t,e}onError(t){this.G_.error(t)}U_(t){this.onlineState=t;let e=!1;return this.j_&&!this.z_&&this.J_(this.j_,t)&&(this.Y_(this.j_),e=!0),e}J_(t,e){if(!t.fromCache)return!0;const n="Offline"!==e;return(!this.options.Z_||!n)&&(!t.docs.isEmpty()||t.hasCachedResults||"Offline"===e)}H_(t){if(t.docChanges.length>0)return!0;const e=this.j_&&this.j_.hasPendingWrites!==t.hasPendingWrites;return!(!t.syncStateChanged&&!e)&&!0===this.options.includeMetadataChanges}Y_(t){t=Sd.fromInitialDocuments(t.query,t.docs,t.mutatedKeys,t.fromCache,t.hasCachedResults),this.z_=!0,this.G_.next(t)}}class Ld{constructor(t,e){this.X_=t,this.byteLength=e}ea(){return"metadata"in this.X_}}class Od{constructor(t){this.serializer=t}Ps(t){return $u(this.serializer,t)}Is(t){return t.metadata.exists?Ju(this.serializer,t.document,!1):bo.newNoDocument(this.Ps(t.metadata.name),this.Ts(t.metadata.readTime))}Ts(t){return Uu(t)}}class Pd{constructor(t,e,n){this.ta=t,this.localStore=e,this.serializer=n,this.queries=[],this.documents=[],this.collectionGroups=new Set,this.progress=Fd(t)}na(t){this.progress.bytesLoaded+=t.byteLength;let e=this.progress.documentsLoaded;if(t.X_.namedQuery)this.queries.push(t.X_.namedQuery);else if(t.X_.documentMetadata){this.documents.push({metadata:t.X_.documentMetadata}),t.X_.documentMetadata.exists||++e;const n=ws.fromString(t.X_.documentMetadata.name);this.collectionGroups.add(n.get(n.length-2))}else t.X_.document&&(this.documents[this.documents.length-1].document=t.X_.document,++e);return e!==this.progress.documentsLoaded?(this.progress.documentsLoaded=e,Object.assign({},this.progress)):null}ra(t){const e=new Map,n=new Od(this.serializer);for(const r of t)if(r.metadata.queries){const t=n.Ps(r.metadata.name);for(const n of r.metadata.queries){const r=(e.get(n)||Ca()).add(t);e.set(n,r)}}return e}async complete(){const t=await async function(t,e,n,r){const s=Xr(t);let i=Ca(),o=wa();for(const t of n){const n=e.Ps(t.metadata.name);t.document&&(i=i.add(n));const r=e.Is(t);r.setReadTime(e.Ts(t.metadata.readTime)),o=o.insert(n,r)}const a=s.os.newChangeBuffer({trackRemovals:!0}),u=await dh(s,function(t){return ia(ea(ws.fromString(`__bundle__/docs/${t}`)))}(r));return s.persistence.runTransaction("Apply bundle documents","readwrite",(t=>lh(t,a,o).next((e=>(a.apply(t),e))).next((e=>s.Qr.removeMatchingKeysForTargetId(t,u.targetId).next((()=>s.Qr.addMatchingKeys(t,i,u.targetId))).next((()=>s.localDocuments.getLocalViewOfDocuments(t,e.cs,e.ls))).next((()=>e.cs))))))}(this.localStore,new Od(this.serializer),this.documents,this.ta.id),e=this.ra(this.documents);for(const t of this.queries)await wh(this.localStore,t,e.get(t.name));return this.progress.taskState="Success",{progress:this.progress,ia:this.collectionGroups,sa:t}}}function Fd(t){return{taskState:"Running",documentsLoaded:0,bytesLoaded:0,totalDocuments:t.totalDocuments,totalBytes:t.totalBytes}}class Vd{constructor(t){this.key=t}}class qd{constructor(t){this.key=t}}class Bd{constructor(t,e){this.query=t,this.oa=e,this._a=null,this.hasCachedResults=!1,this.current=!1,this.aa=Ca(),this.mutatedKeys=Ca(),this.ua=ga(t),this.ca=new Ed(this.ua)}get la(){return this.oa}ha(t,e){const n=e?e.Pa:new Td,r=e?e.ca:this.ca;let s=e?e.mutatedKeys:this.mutatedKeys,i=r,o=!1;const a="F"===this.query.limitType&&r.size===this.query.limit?r.last():null,u="L"===this.query.limitType&&r.size===this.query.limit?r.first():null;if(t.inorderTraversal(((t,e)=>{const c=r.get(t),l=da(this.query,e)?e:null,h=!!c&&this.mutatedKeys.has(c.key),d=!!l&&(l.hasLocalMutations||this.mutatedKeys.has(l.key)&&l.hasCommittedMutations);let f=!1;c&&l?c.data.isEqual(l.data)?h!==d&&(n.track({type:3,doc:l}),f=!0):this.Ia(c,l)||(n.track({type:2,doc:l}),f=!0,(a&&this.ua(l,a)>0||u&&this.ua(l,u)<0)&&(o=!0)):!c&&l?(n.track({type:0,doc:l}),f=!0):c&&!l&&(n.track({type:1,doc:c}),f=!0,(a||u)&&(o=!0)),f&&(l?(i=i.add(l),s=d?s.add(t):s.delete(t)):(i=i.delete(t),s=s.delete(t)))})),null!==this.query.limit)for(;i.size>this.query.limit;){const t="F"===this.query.limitType?i.last():i.first();i=i.delete(t.key),s=s.delete(t.key),n.track({type:1,doc:t})}return{ca:i,Pa:n,Xi:o,mutatedKeys:s}}Ia(t,e){return t.hasLocalMutations&&e.hasCommittedMutations&&!e.hasLocalMutations}applyChanges(t,e,n,r){const s=this.ca;this.ca=t.ca,this.mutatedKeys=t.mutatedKeys;const i=t.Pa.k_();i.sort(((t,e)=>function(t,e){const n=t=>{switch(t){case 0:return 1;case 2:case 3:return 2;case 1:return 0;default:return Hr()}};return n(t)-n(e)}(t.type,e.type)||this.ua(t.doc,e.doc))),this.Ta(n),r=null!=r&&r;const o=e&&!r?this.Ea():[],a=0===this.aa.size&&this.current&&!r?1:0,u=a!==this._a;return this._a=a,0!==i.length||u?{snapshot:new Sd(this.query,t.ca,s,i,t.mutatedKeys,0===a,u,!1,!!n&&n.resumeToken.approximateByteSize()>0),da:o}:{da:o}}U_(t){return this.current&&"Offline"===t?(this.current=!1,this.applyChanges({ca:this.ca,Pa:new Td,mutatedKeys:this.mutatedKeys,Xi:!1},!1)):{da:[]}}Aa(t){return!this.oa.has(t)&&!!this.ca.has(t)&&!this.ca.get(t).hasLocalMutations}Ta(t){t&&(t.addedDocuments.forEach((t=>this.oa=this.oa.add(t))),t.modifiedDocuments.forEach((t=>{})),t.removedDocuments.forEach((t=>this.oa=this.oa.delete(t))),this.current=t.current)}Ea(){if(!this.current)return[];const t=this.aa;this.aa=Ca(),this.ca.forEach((t=>{this.Aa(t.key)&&(this.aa=this.aa.add(t.key))}));const e=[];return t.forEach((t=>{this.aa.has(t)||e.push(new qd(t))})),this.aa.forEach((n=>{t.has(n)||e.push(new Vd(n))})),e}Ra(t){this.oa=t.hs,this.aa=Ca();const e=this.ha(t.documents);return this.applyChanges(e,!0)}Va(){return Sd.fromInitialDocuments(this.query,this.ca,this.mutatedKeys,0===this._a,this.hasCachedResults)}}class Ud{constructor(t,e,n){this.query=t,this.targetId=e,this.view=n}}class zd{constructor(t){this.key=t,this.ma=!1}}class Gd{constructor(t,e,n,r,s,i){this.localStore=t,this.remoteStore=e,this.eventManager=n,this.sharedClientState=r,this.currentUser=s,this.maxConcurrentLimboResolutions=i,this.fa={},this.ga=new pa((t=>la(t)),ca),this.pa=new Map,this.ya=new Set,this.wa=new Ni(_s.comparator),this.Sa=new Map,this.ba=new Bl,this.Da={},this.Ca=new Map,this.va=ml.Bn(),this.onlineState="Unknown",this.Fa=void 0}get isPrimaryClient(){return!0===this.Fa}}async function jd(t,e){const n=yf(t);let r,s;const i=n.ga.get(e);if(i)r=i.targetId,n.sharedClientState.addLocalQueryTarget(r),s=i.view.Va();else{const t=await dh(n.localStore,ia(e)),i=n.sharedClientState.addLocalQueryTarget(t.targetId);r=t.targetId,s=await Kd(n,e,r,"current"===i,t.resumeToken),n.isPrimaryClient&&Wh(n.remoteStore,t)}return s}async function Kd(t,e,n,r,s){t.Ma=(e,n,r)=>async function(t,e,n,r){let s=e.view.ha(n);s.Xi&&(s=await gh(t.localStore,e.query,!1).then((({documents:t})=>e.view.ha(t,s))));const i=r&&r.targetChanges.get(e.targetId),o=r&&null!=r.targetMismatches.get(e.targetId),a=e.view.applyChanges(s,t.isPrimaryClient,i,o);return nf(t,e.targetId,a.da),a.snapshot}(t,e,n,r);const i=await gh(t.localStore,e,!0),o=new Bd(e,i.hs),a=o.ha(i.documents),u=Su.createSynthesizedTargetChangeForCurrentChange(n,r&&"Offline"!==t.onlineState,s),c=o.applyChanges(a,t.isPrimaryClient,u);nf(t,n,c.da);const l=new Ud(e,n,o);return t.ga.set(e,l),t.pa.has(n)?t.pa.get(n).push(e):t.pa.set(n,[e]),c.snapshot}async function $d(t,e){const n=Xr(t),r=n.ga.get(e),s=n.pa.get(r.targetId);if(s.length>1)return n.pa.set(r.targetId,s.filter((t=>!ca(t,e)))),void n.ga.delete(e);n.isPrimaryClient?(n.sharedClientState.removeLocalQueryTarget(r.targetId),n.sharedClientState.isActiveQueryTarget(r.targetId)||await fh(n.localStore,r.targetId,!1).then((()=>{n.sharedClientState.clearQueryState(r.targetId),Yh(n.remoteStore,r.targetId),tf(n,r.targetId)})).catch(Os)):(tf(n,r.targetId),await fh(n.localStore,r.targetId,!0))}async function Qd(t,e){const n=Xr(t);try{const t=await function(t,e){const n=Xr(t),r=e.snapshotVersion;let s=n.ns;return n.persistence.runTransaction("Apply remote event","readwrite-primary",(t=>{const i=n.os.newChangeBuffer({trackRemovals:!0});s=n.ns;const o=[];e.targetChanges.forEach(((i,a)=>{const u=s.get(a);if(!u)return;o.push(n.Qr.removeMatchingKeys(t,i.removedDocuments,a).next((()=>n.Qr.addMatchingKeys(t,i.addedDocuments,a))));let c=u.withSequenceNumber(t.currentSequenceNumber);null!==e.targetMismatches.get(a)?c=c.withResumeToken(qi.EMPTY_BYTE_STRING,ps.min()).withLastLimboFreeSnapshotVersion(ps.min()):i.resumeToken.approximateByteSize()>0&&(c=c.withResumeToken(i.resumeToken,r)),s=s.insert(a,c),function(t,e,n){return 0===t.resumeToken.approximateByteSize()||e.snapshotVersion.toMicroseconds()-t.snapshotVersion.toMicroseconds()>=3e8||n.addedDocuments.size+n.modifiedDocuments.size+n.removedDocuments.size>0}(u,c,i)&&o.push(n.Qr.updateTargetData(t,c))}));let a=wa(),u=Ca();if(e.documentUpdates.forEach((r=>{e.resolvedLimboDocuments.has(r)&&o.push(n.persistence.referenceDelegate.updateLimboDocument(t,r))})),o.push(lh(t,i,e.documentUpdates).next((t=>{a=t.cs,u=t.ls}))),!r.isEqual(ps.min())){const e=n.Qr.getLastRemoteSnapshotVersion(t).next((e=>n.Qr.setTargetsMetadata(t,t.currentSequenceNumber,r)));o.push(e)}return Ps.waitFor(o).next((()=>i.apply(t))).next((()=>n.localDocuments.getLocalViewOfDocuments(t,a,u))).next((()=>a))})).then((t=>(n.ns=s,t)))}(n.localStore,e);e.targetChanges.forEach(((t,e)=>{const r=n.Sa.get(e);r&&(Wr(t.addedDocuments.size+t.modifiedDocuments.size+t.removedDocuments.size<=1),t.addedDocuments.size>0?r.ma=!0:t.modifiedDocuments.size>0?Wr(r.ma):t.removedDocuments.size>0&&(Wr(r.ma),r.ma=!1))})),await of(n,t,e)}catch(t){await Os(t)}}function Hd(t,e,n){const r=Xr(t);if(r.isPrimaryClient&&0===n||!r.isPrimaryClient&&1===n){const t=[];r.ga.forEach(((n,r)=>{const s=r.view.U_(e);s.snapshot&&t.push(s.snapshot)})),function(t,e){const n=Xr(t);n.onlineState=e;let r=!1;n.queries.forEach(((t,n)=>{for(const t of n.Q_)t.U_(e)&&(r=!0)})),r&&Rd(n)}(r.eventManager,e),t.length&&r.fa.u_(t),r.onlineState=e,r.isPrimaryClient&&r.sharedClientState.setOnlineState(e)}}async function Wd(t,e,n){const r=Xr(t);r.sharedClientState.updateQueryState(e,"rejected",n);const s=r.Sa.get(e),i=s&&s.key;if(i){let t=new Ni(_s.comparator);t=t.insert(i,bo.newNoDocument(i,ps.min()));const n=Ca().add(i),s=new Tu(ps.min(),new Map,new Ni(ds),t,n);await Qd(r,s),r.wa=r.wa.remove(i),r.Sa.delete(e),sf(r)}else await fh(r.localStore,e,!1).then((()=>tf(r,e,n))).catch(Os)}async function Yd(t,e){const n=Xr(t),r=e.batch.batchId;try{const t=await function(t,e){const n=Xr(t);return n.persistence.runTransaction("Acknowledge batch","readwrite-primary",(t=>{const r=e.batch.keys(),s=n.os.newChangeBuffer({trackRemovals:!0});return function(t,e,n,r){const s=n.batch,i=s.keys();let o=Ps.resolve();return i.forEach((t=>{o=o.next((()=>r.getEntry(e,t))).next((e=>{const i=n.docVersions.get(t);Wr(null!==i),e.version.compareTo(i)<0&&(s.applyToRemoteDocument(e,n),e.isValidDocument()&&(e.setReadTime(n.commitVersion),r.addEntry(e)))}))})),o.next((()=>t.mutationQueue.removeMutationBatch(e,s)))}(n,t,e,s).next((()=>s.apply(t))).next((()=>n.mutationQueue.performConsistencyCheck(t))).next((()=>n.documentOverlayCache.removeOverlaysForBatchId(t,r,e.batch.batchId))).next((()=>n.localDocuments.recalculateAndSaveOverlaysForDocumentKeys(t,function(t){let e=Ca();for(let n=0;n0&&(e=e.add(t.batch.mutations[n].key));return e}(e)))).next((()=>n.localDocuments.getDocuments(t,r)))}))}(n.localStore,e);Zd(n,r,null),Jd(n,r),n.sharedClientState.updateMutationState(r,"acknowledged"),await of(n,t)}catch(t){await Os(t)}}async function Xd(t,e,n){const r=Xr(t);try{const t=await function(t,e){const n=Xr(t);return n.persistence.runTransaction("Reject batch","readwrite-primary",(t=>{let r;return n.mutationQueue.lookupMutationBatch(t,e).next((e=>(Wr(null!==e),r=e.keys(),n.mutationQueue.removeMutationBatch(t,e)))).next((()=>n.mutationQueue.performConsistencyCheck(t))).next((()=>n.documentOverlayCache.removeOverlaysForBatchId(t,r,e))).next((()=>n.localDocuments.recalculateAndSaveOverlaysForDocumentKeys(t,r))).next((()=>n.localDocuments.getDocuments(t,r)))}))}(r.localStore,e);Zd(r,e,n),Jd(r,e),r.sharedClientState.updateMutationState(e,"rejected",n),await of(r,t)}catch(t){await Os(t)}}function Jd(t,e){(t.Ca.get(e)||[]).forEach((t=>{t.resolve()})),t.Ca.delete(e)}function Zd(t,e,n){const r=Xr(t);let s=r.Da[r.currentUser.toKey()];if(s){const t=s.get(e);t&&(n?t.reject(n):t.resolve(),s=s.remove(e)),r.Da[r.currentUser.toKey()]=s}}function tf(t,e,n=null){t.sharedClientState.removeLocalQueryTarget(e);for(const r of t.pa.get(e))t.ga.delete(r),n&&t.fa.xa(r,n);t.pa.delete(e),t.isPrimaryClient&&t.ba.Vr(e).forEach((e=>{t.ba.containsKey(e)||ef(t,e)}))}function ef(t,e){t.ya.delete(e.path.canonicalString());const n=t.wa.get(e);null!==n&&(Yh(t.remoteStore,n),t.wa=t.wa.remove(e),t.Sa.delete(n),sf(t))}function nf(t,e,n){for(const r of n)r instanceof Vd?(t.ba.addReference(r.key,e),rf(t,r)):r instanceof qd?(jr("SyncEngine","Document no longer in limbo: "+r.key),t.ba.removeReference(r.key,e),t.ba.containsKey(r.key)||ef(t,r.key)):Hr()}function rf(t,e){const n=e.key,r=n.path.canonicalString();t.wa.get(n)||t.ya.has(r)||(jr("SyncEngine","New document in limbo: "+n),t.ya.add(r),sf(t))}function sf(t){for(;t.ya.size>0&&t.wa.size{o.push(r.Ma(a,e,n).then((t=>{if((t||n)&&r.isPrimaryClient&&r.sharedClientState.updateQueryState(a.targetId,(null==t?void 0:t.fromCache)?"not-current":"current"),t){s.push(t);const e=rh.Ki(a.targetId,t);i.push(e)}})))})),await Promise.all(o),r.fa.u_(s),await async function(t,e){const n=Xr(t);try{await n.persistence.runTransaction("notifyLocalViewChanges","readwrite",(t=>Ps.forEach(e,(e=>Ps.forEach(e.qi,(r=>n.persistence.referenceDelegate.addReference(t,e.targetId,r))).next((()=>Ps.forEach(e.Qi,(r=>n.persistence.referenceDelegate.removeReference(t,e.targetId,r)))))))))}catch(t){if(!Us(t))throw t;jr("LocalStore","Failed to update sequence numbers: "+t)}for(const t of e){const e=t.targetId;if(!t.fromCache){const t=n.ns.get(e),r=t.snapshotVersion,s=t.withLastLimboFreeSnapshotVersion(r);n.ns=n.ns.insert(e,s)}}}(r.localStore,i))}async function af(t,e){const n=Xr(t);if(!n.currentUser.isEqual(e)){jr("SyncEngine","User change. New user:",e.toKey());const t=await uh(n.localStore,e);n.currentUser=e,function(t,e){t.Ca.forEach((t=>{t.forEach((t=>{t.reject(new Zr(Jr.CANCELLED,e))}))})),t.Ca.clear()}(n,"'waitForPendingWrites' promise is rejected due to a user change."),n.sharedClientState.handleUserChange(e,t.removedBatchIds,t.addedBatchIds),await of(n,t.us)}}function uf(t,e){const n=Xr(t),r=n.Sa.get(e);if(r&&r.ma)return Ca().add(r.key);{let t=Ca();const r=n.pa.get(e);if(!r)return t;for(const e of r){const r=n.ga.get(e);t=t.unionWith(r.view.la)}return t}}async function cf(t,e){const n=Xr(t),r=await gh(n.localStore,e.query,!0),s=e.view.Ra(r);return n.isPrimaryClient&&nf(n,e.targetId,s.da),s}async function lf(t,e){const n=Xr(t);return ph(n.localStore,e).then((t=>of(n,t)))}async function hf(t,e,n,r){const s=Xr(t),i=await function(t,e){const n=Xr(t),r=Xr(n.mutationQueue);return n.persistence.runTransaction("Lookup mutation documents","readonly",(t=>r.vn(t,e).next((e=>e?n.localDocuments.getDocuments(t,e):Ps.resolve(null)))))}(s.localStore,e);null!==i?("pending"===n?await ud(s.remoteStore):"acknowledged"===n||"rejected"===n?(Zd(s,e,r||null),Jd(s,e),function(t,e){Xr(Xr(t).mutationQueue).Mn(e)}(s.localStore,e)):Hr(),await of(s,i)):jr("SyncEngine","Cannot apply mutation batch with id: "+e)}async function df(t,e,n){const r=Xr(t),s=[],i=[];for(const t of e){let e;const n=r.pa.get(t);if(n&&0!==n.length){e=await dh(r.localStore,ia(n[0]));for(const t of n){const e=r.ga.get(t),n=await cf(r,e);n.snapshot&&i.push(n.snapshot)}}else{const n=await mh(r.localStore,t);e=await dh(r.localStore,n),await Kd(r,ff(n),t,!1,e.resumeToken)}s.push(e)}return r.fa.u_(i),s}function ff(t){return ta(t.path,t.collectionGroup,t.orderBy,t.filters,t.limit,"F",t.startAt,t.endAt)}function gf(t){return function(t){return Xr(Xr(t).persistence).Li()}(Xr(t).localStore)}async function mf(t,e,n,r){const s=Xr(t);if(s.Fa)return void jr("SyncEngine","Ignoring unexpected query state notification.");const i=s.pa.get(e);if(i&&i.length>0)switch(n){case"current":case"not-current":{const t=await ph(s.localStore,fa(i[0])),r=Tu.createSynthesizedRemoteEventForCurrentChange(e,"current"===n,qi.EMPTY_BYTE_STRING);await of(s,t,r);break}case"rejected":await fh(s.localStore,e,!0),tf(s,e,r);break;default:Hr()}}async function pf(t,e,n){const r=yf(t);if(r.Fa){for(const t of e){if(r.pa.has(t)){jr("SyncEngine","Adding an already active target "+t);continue}const e=await mh(r.localStore,t),n=await dh(r.localStore,e);await Kd(r,ff(e),n.targetId,!1,n.resumeToken),Wh(r.remoteStore,n)}for(const t of n)r.pa.has(t)&&await fh(r.localStore,t,!1).then((()=>{Yh(r.remoteStore,t),tf(r,t)})).catch(Os)}}function yf(t){const e=Xr(t);return e.remoteStore.remoteSyncer.applyRemoteEvent=Qd.bind(null,e),e.remoteStore.remoteSyncer.getRemoteKeysForTarget=uf.bind(null,e),e.remoteStore.remoteSyncer.rejectListen=Wd.bind(null,e),e.fa.u_=Nd.bind(null,e.eventManager),e.fa.xa=kd.bind(null,e.eventManager),e}function wf(t){const e=Xr(t);return e.remoteStore.remoteSyncer.applySuccessfulWrite=Yd.bind(null,e),e.remoteStore.remoteSyncer.rejectFailedWrite=Xd.bind(null,e),e}class vf{constructor(){this.synchronizeTabs=!1}async initialize(t){this.serializer=qh(t.databaseInfo.databaseId),this.sharedClientState=this.createSharedClientState(t),this.persistence=this.createPersistence(t),await this.persistence.start(),this.localStore=this.createLocalStore(t),this.gcScheduler=this.createGarbageCollectionScheduler(t,this.localStore),this.indexBackfillerScheduler=this.createIndexBackfillerScheduler(t,this.localStore)}createGarbageCollectionScheduler(t,e){return null}createIndexBackfillerScheduler(t,e){return null}createLocalStore(t){return ah(this.persistence,new ih,t.initialUser,this.serializer)}createPersistence(t){return new $l(Hl.Hr,this.serializer)}createSharedClientState(t){return new Dh}async terminate(){var t,e;null===(t=this.gcScheduler)||void 0===t||t.stop(),null===(e=this.indexBackfillerScheduler)||void 0===e||e.stop(),this.sharedClientState.shutdown(),await this.persistence.shutdown()}}class bf extends vf{constructor(t){super(),this.cacheSizeBytes=t}createGarbageCollectionScheduler(t,e){Wr(this.persistence.referenceDelegate instanceof Wl);const n=this.persistence.referenceDelegate.garbageCollector;return new Il(n,t.asyncQueue,e)}createPersistence(t){const e=void 0!==this.cacheSizeBytes?al.withCacheSize(this.cacheSizeBytes):al.DEFAULT;return new $l((t=>Wl.Hr(t,e)),this.serializer)}}class _f extends vf{constructor(t,e,n){super(),this.Na=t,this.cacheSizeBytes=e,this.forceOwnership=n,this.synchronizeTabs=!1}async initialize(t){await super.initialize(t),await this.Na.initialize(this,t),await wf(this.Na.syncEngine),await ud(this.Na.remoteStore),await this.persistence.fi((()=>(this.gcScheduler&&!this.gcScheduler.started&&this.gcScheduler.start(),this.indexBackfillerScheduler&&!this.indexBackfillerScheduler.started&&this.indexBackfillerScheduler.start(),Promise.resolve())))}createLocalStore(t){return ah(this.persistence,new ih,t.initialUser,this.serializer)}createGarbageCollectionScheduler(t,e){const n=this.persistence.referenceDelegate.garbageCollector;return new Il(n,t.asyncQueue,e)}createIndexBackfillerScheduler(t,e){const n=new Qs(e,this.persistence);return new $s(t.asyncQueue,n)}createPersistence(t){const e=nh(t.databaseInfo.databaseId,t.databaseInfo.persistenceKey),n=void 0!==this.cacheSizeBytes?al.withCacheSize(this.cacheSizeBytes):al.DEFAULT;return new Zl(this.synchronizeTabs,e,t.clientId,n,t.asyncQueue,Fh(),Vh(),this.serializer,this.sharedClientState,!!this.forceOwnership)}createSharedClientState(t){return new Dh}}class If extends _f{constructor(t,e){super(t,e,!1),this.Na=t,this.cacheSizeBytes=e,this.synchronizeTabs=!0}async initialize(t){await super.initialize(t);const e=this.Na.syncEngine;this.sharedClientState instanceof Ch&&(this.sharedClientState.syncEngine={Zs:hf.bind(null,e),Xs:mf.bind(null,e),eo:pf.bind(null,e),Li:gf.bind(null,e),Ys:lf.bind(null,e)},await this.sharedClientState.start()),await this.persistence.fi((async t=>{await async function(t,e){const n=Xr(t);if(yf(n),wf(n),!0===e&&!0!==n.Fa){const t=n.sharedClientState.getAllActiveQueryTargets(),e=await df(n,t.toArray());n.Fa=!0,await wd(n.remoteStore,!0);for(const t of e)Wh(n.remoteStore,t)}else if(!1===e&&!1!==n.Fa){const t=[];let e=Promise.resolve();n.pa.forEach(((r,s)=>{n.sharedClientState.isLocalQueryTarget(s)?t.push(s):e=e.then((()=>(tf(n,s),fh(n.localStore,s,!0)))),Yh(n.remoteStore,s)})),await e,await df(n,t),function(t){const e=Xr(t);e.Sa.forEach(((t,n)=>{Yh(e.remoteStore,n)})),e.ba.mr(),e.Sa=new Map,e.wa=new Ni(_s.comparator)}(n),n.Fa=!1,await wd(n.remoteStore,!1)}}(this.Na.syncEngine,t),this.gcScheduler&&(t&&!this.gcScheduler.started?this.gcScheduler.start():t||this.gcScheduler.stop()),this.indexBackfillerScheduler&&(t&&!this.indexBackfillerScheduler.started?this.indexBackfillerScheduler.start():t||this.indexBackfillerScheduler.stop())}))}createSharedClientState(t){const e=Fh();if(!Ch.D(e))throw new Zr(Jr.UNIMPLEMENTED,"IndexedDB persistence is only available on platforms that support LocalStorage.");const n=nh(t.databaseInfo.databaseId,t.databaseInfo.persistenceKey);return new Ch(e,t.asyncQueue,n,t.clientId,t.initialUser)}}class Ef{async initialize(t,e){this.localStore||(this.localStore=t.localStore,this.sharedClientState=t.sharedClientState,this.datastore=this.createDatastore(e),this.remoteStore=this.createRemoteStore(e),this.eventManager=this.createEventManager(e),this.syncEngine=this.createSyncEngine(e,!t.synchronizeTabs),this.sharedClientState.onlineStateHandler=t=>Hd(this.syncEngine,t,1),this.remoteStore.remoteSyncer.handleCredentialChange=af.bind(null,this.syncEngine),await wd(this.remoteStore,this.syncEngine.isPrimaryClient))}createEventManager(t){return new Cd}createDatastore(t){const e=qh(t.databaseInfo.databaseId),n=function(t){return new Ph(t)}(t.databaseInfo);return function(t,e,n,r){return new jh(t,e,n,r)}(t.authCredentials,t.appCheckCredentials,n,e)}createRemoteStore(t){return function(t,e,n,r,s){return new $h(t,e,n,r,s)}(this.localStore,this.datastore,t.asyncQueue,(t=>Hd(this.syncEngine,t,0)),Nh.D()?new Nh:new Ah)}createSyncEngine(t,e){return function(t,e,n,r,s,i,o){const a=new Gd(t,e,n,r,s,i);return o&&(a.Fa=!0),a}(this.localStore,this.remoteStore,this.eventManager,this.sharedClientState,t.initialUser,t.maxConcurrentLimboResolutions,e)}async terminate(){var t;await async function(t){const e=Xr(t);jr("RemoteStore","RemoteStore shutting down."),e.v_.add(5),await Hh(e),e.M_.shutdown(),e.x_.set("Unknown")}(this.remoteStore),null===(t=this.datastore)||void 0===t||t.terminate()}}function Tf(t,e=10240){let n=0;return{async read(){if(n{this.muted||t(e)}),0)}}class xf{constructor(t,e){this.ka=t,this.serializer=e,this.metadata=new ts,this.buffer=new Uint8Array,this.qa=new TextDecoder("utf-8"),this.Qa().then((t=>{t&&t.ea()?this.metadata.resolve(t.X_.metadata):this.metadata.reject(new Error(`The first element of the bundle is not a metadata, it is\n ${JSON.stringify(null==t?void 0:t.X_)}`))}),(t=>this.metadata.reject(t)))}close(){return this.ka.cancel()}async getMetadata(){return this.metadata.promise}async Oa(){return await this.getMetadata(),this.Qa()}async Qa(){const t=await this.Ka();if(null===t)return null;const e=this.qa.decode(t),n=Number(e);isNaN(n)&&this.$a(`length string (${e}) is not valid number`);const r=await this.Ua(n);return new Ld(JSON.parse(r),t.length+n)}Wa(){return this.buffer.findIndex((t=>t==="{".charCodeAt(0)))}async Ka(){for(;this.Wa()<0&&!await this.Ga(););if(0===this.buffer.length)return null;const t=this.Wa();t<0&&this.$a("Reached the end of bundle when a length string is expected.");const e=this.buffer.slice(0,t);return this.buffer=this.buffer.slice(t),e}async Ua(t){for(;this.buffer.length0)throw this.lastTransactionError=new Zr(Jr.INVALID_ARGUMENT,"Firestore transactions require all reads to be executed before all writes."),this.lastTransactionError;const e=await async function(t,e){const n=Xr(t),r={documents:e.map((t=>Ku(n.serializer,t)))},s=await n.vo("BatchGetDocuments",n.serializer.databaseId,ws.emptyPath(),r,e.length),i=new Map;s.forEach((t=>{const e=function(t,e){return"found"in e?function(t,e){Wr(!!e.found),e.found.name,e.found.updateTime;const n=$u(t,e.found.name),r=Uu(e.found.updateTime),s=e.found.createTime?Uu(e.found.createTime):ps.min(),i=new wo({mapValue:{fields:e.found.fields}});return bo.newFoundDocument(n,r,s,i)}(t,e):"missing"in e?function(t,e){Wr(!!e.missing),Wr(!!e.readTime);const n=$u(t,e.missing),r=Uu(e.readTime);return bo.newNoDocument(n,r)}(t,e):Hr()}(n.serializer,t);i.set(e.key.toString(),e)}));const o=[];return e.forEach((t=>{const e=i.get(t.toString());Wr(!!e),o.push(e)})),o}(this.datastore,t);return e.forEach((t=>this.recordVersion(t))),e}set(t,e){this.write(e.toMutation(t,this.precondition(t))),this.writtenDocs.add(t.toString())}update(t,e){try{this.write(e.toMutation(t,this.preconditionForUpdate(t)))}catch(t){this.lastTransactionError=t}this.writtenDocs.add(t.toString())}delete(t){this.write(new ou(t,this.precondition(t))),this.writtenDocs.add(t.toString())}async commit(){if(this.ensureCommitNotCalled(),this.lastTransactionError)throw this.lastTransactionError;const t=this.readVersions;this.mutations.forEach((e=>{t.delete(e.key.toString())})),t.forEach(((t,e)=>{const n=_s.fromPath(e);this.mutations.push(new au(n,this.precondition(n)))})),await async function(t,e){const n=Xr(t),r={writes:e.map((t=>Zu(n.serializer,t)))};await n.So("Commit",n.serializer.databaseId,ws.emptyPath(),r)}(this.datastore,this.mutations),this.committed=!0}recordVersion(t){let e;if(t.isFoundDocument())e=t.version;else{if(!t.isNoDocument())throw Hr();e=ps.min()}const n=this.readVersions.get(t.key.toString());if(n){if(!e.isEqual(n))throw new Zr(Jr.ABORTED,"Document version changed between two reads.")}else this.readVersions.set(t.key.toString(),e)}precondition(t){const e=this.readVersions.get(t.toString());return!this.writtenDocs.has(t.toString())&&e?e.isEqual(ps.min())?Qa.exists(!1):Qa.updateTime(e):Qa.none()}preconditionForUpdate(t){const e=this.readVersions.get(t.toString());if(!this.writtenDocs.has(t.toString())&&e){if(e.isEqual(ps.min()))throw new Zr(Jr.INVALID_ARGUMENT,"Can't update a document that doesn't exist.");return Qa.updateTime(e)}return Qa.exists(!0)}write(t){this.ensureCommitNotCalled(),this.mutations.push(t)}ensureCommitNotCalled(){}}class Df{constructor(t,e,n,r,s){this.asyncQueue=t,this.datastore=e,this.options=n,this.updateFunction=r,this.deferred=s,this.za=n.maxAttempts,this.jo=new Bh(this.asyncQueue,"transaction_retry")}ja(){this.za-=1,this.Ha()}Ha(){this.jo.qo((async()=>{const t=new Cf(this.datastore),e=this.Ja(t);e&&e.then((e=>{this.asyncQueue.enqueueAndForget((()=>t.commit().then((()=>{this.deferred.resolve(e)})).catch((t=>{this.Ya(t)}))))})).catch((t=>{this.Ya(t)}))}))}Ja(t){try{const e=this.updateFunction(t);return!Ws(e)&&e.catch&&e.then?e:(this.deferred.reject(Error("Transaction callback must return a Promise")),null)}catch(t){return this.deferred.reject(t),null}}Ya(t){this.za>0&&this.Za(t)?(this.za-=1,this.asyncQueue.enqueueAndForget((()=>(this.Ha(),Promise.resolve())))):this.deferred.reject(t)}Za(t){if("FirebaseError"===t.name){const e=t.code;return"aborted"===e||"failed-precondition"===e||"already-exists"===e||!mu(e)}return!1}}class Af{constructor(t,e,n,r){this.authCredentials=t,this.appCheckCredentials=e,this.asyncQueue=n,this.databaseInfo=r,this.user=qr.UNAUTHENTICATED,this.clientId=hs.newId(),this.authCredentialListener=()=>Promise.resolve(),this.appCheckCredentialListener=()=>Promise.resolve(),this.authCredentials.start(n,(async t=>{jr("FirestoreClient","Received user=",t.uid),await this.authCredentialListener(t),this.user=t})),this.appCheckCredentials.start(n,(t=>(jr("FirestoreClient","Received new app check token=",t),this.appCheckCredentialListener(t,this.user))))}get configuration(){return{asyncQueue:this.asyncQueue,databaseInfo:this.databaseInfo,clientId:this.clientId,authCredentials:this.authCredentials,appCheckCredentials:this.appCheckCredentials,initialUser:this.user,maxConcurrentLimboResolutions:100}}setCredentialChangeListener(t){this.authCredentialListener=t}setAppCheckTokenChangeListener(t){this.appCheckCredentialListener=t}verifyNotTerminated(){if(this.asyncQueue.isShuttingDown)throw new Zr(Jr.FAILED_PRECONDITION,"The client has already been terminated.")}terminate(){this.asyncQueue.enterRestrictedMode();const t=new ts;return this.asyncQueue.enqueueAndForgetEvenWhileRestricted((async()=>{try{this._onlineComponents&&await this._onlineComponents.terminate(),this._offlineComponents&&await this._offlineComponents.terminate(),this.authCredentials.shutdown(),this.appCheckCredentials.shutdown(),t.resolve()}catch(e){const n=Id(e,"Failed to shutdown persistence");t.reject(n)}})),t.promise}}async function Nf(t,e){t.asyncQueue.verifyOperationInProgress(),jr("FirestoreClient","Initializing OfflineComponentProvider");const n=t.configuration;await e.initialize(n);let r=n.initialUser;t.setCredentialChangeListener((async t=>{r.isEqual(t)||(await uh(e.localStore,t),r=t)})),e.persistence.setDatabaseDeletedListener((()=>t.terminate())),t._offlineComponents=e}async function kf(t,e){t.asyncQueue.verifyOperationInProgress();const n=await Mf(t);jr("FirestoreClient","Initializing OnlineComponentProvider"),await e.initialize(n,t.configuration),t.setCredentialChangeListener((t=>yd(e.remoteStore,t))),t.setAppCheckTokenChangeListener(((t,n)=>yd(e.remoteStore,n))),t._onlineComponents=e}function Rf(t){return"FirebaseError"===t.name?t.code===Jr.FAILED_PRECONDITION||t.code===Jr.UNIMPLEMENTED:!("undefined"!=typeof DOMException&&t instanceof DOMException)||22===t.code||20===t.code||11===t.code}async function Mf(t){if(!t._offlineComponents)if(t._uninitializedComponentsProvider){jr("FirestoreClient","Using user provided OfflineComponentProvider");try{await Nf(t,t._uninitializedComponentsProvider._offline)}catch(e){const n=e;if(!Rf(n))throw n;$r("Error using user provided cache. Falling back to memory cache: "+n),await Nf(t,new vf)}}else jr("FirestoreClient","Using default OfflineComponentProvider"),await Nf(t,new vf);return t._offlineComponents}async function Lf(t){return t._onlineComponents||(t._uninitializedComponentsProvider?(jr("FirestoreClient","Using user provided OnlineComponentProvider"),await kf(t,t._uninitializedComponentsProvider._online)):(jr("FirestoreClient","Using default OnlineComponentProvider"),await kf(t,new Ef))),t._onlineComponents}function Of(t){return Mf(t).then((t=>t.persistence))}function Pf(t){return Mf(t).then((t=>t.localStore))}function Ff(t){return Lf(t).then((t=>t.remoteStore))}function Vf(t){return Lf(t).then((t=>t.syncEngine))}function qf(t){return Lf(t).then((t=>t.datastore))}async function Bf(t){const e=await Lf(t),n=e.eventManager;return n.onListen=jd.bind(null,e.syncEngine),n.onUnlisten=$d.bind(null,e.syncEngine),n}function Uf(t,e,n={}){const r=new ts;return t.asyncQueue.enqueueAndForget((async()=>function(t,e,n,r,s){const i=new Sf({next:i=>{e.enqueueAndForget((()=>Ad(t,o)));const a=i.docs.has(n);!a&&i.fromCache?s.reject(new Zr(Jr.UNAVAILABLE,"Failed to get document because the client is offline.")):a&&i.fromCache&&r&&"server"===r.source?s.reject(new Zr(Jr.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.)')):s.resolve(i)},error:t=>s.reject(t)}),o=new Md(ea(n.path),i,{includeMetadataChanges:!0,Z_:!0});return Dd(t,o)}(await Bf(t),t.asyncQueue,e,n,r))),r.promise}function zf(t,e,n={}){const r=new ts;return t.asyncQueue.enqueueAndForget((async()=>function(t,e,n,r,s){const i=new Sf({next:n=>{e.enqueueAndForget((()=>Ad(t,o))),n.fromCache&&"server"===r.source?s.reject(new Zr(Jr.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.)')):s.resolve(n)},error:t=>s.reject(t)}),o=new Md(n,i,{includeMetadataChanges:!0,Z_:!0});return Dd(t,o)}(await Bf(t),t.asyncQueue,e,n,r))),r.promise}function Gf(t){const e={};return void 0!==t.timeoutSeconds&&(e.timeoutSeconds=t.timeoutSeconds),e}const jf=new Map;function Kf(t,e,n){if(!n)throw new Zr(Jr.INVALID_ARGUMENT,`Function ${t}() cannot be called with an empty ${e}.`)}function $f(t,e,n,r){if(!0===e&&!0===r)throw new Zr(Jr.INVALID_ARGUMENT,`${t} and ${n} cannot be used together.`)}function Qf(t){if(!_s.isDocumentKey(t))throw new Zr(Jr.INVALID_ARGUMENT,`Invalid document reference. Document references must have an even number of segments, but ${t} has ${t.length}.`)}function Hf(t){if(_s.isDocumentKey(t))throw new Zr(Jr.INVALID_ARGUMENT,`Invalid collection reference. Collection references must have an odd number of segments, but ${t} has ${t.length}.`)}function Wf(t){if(void 0===t)return"undefined";if(null===t)return"null";if("string"==typeof t)return t.length>20&&(t=`${t.substring(0,20)}...`),JSON.stringify(t);if("number"==typeof t||"boolean"==typeof t)return""+t;if("object"==typeof t){if(t instanceof Array)return"an array";{const e=function(t){return t.constructor?t.constructor.name:null}(t);return e?`a custom ${e} object`:"an object"}}return"function"==typeof t?"a function":Hr()}function Yf(t,e){if("_delegate"in t&&(t=t._delegate),!(t instanceof e)){if(e.name===t.constructor.name)throw new Zr(Jr.INVALID_ARGUMENT,"Type does not match the expected instance. Did you pass a reference from a different Firestore SDK?");{const n=Wf(t);throw new Zr(Jr.INVALID_ARGUMENT,`Expected type '${e.name}', but it was: ${n}`)}}return t}function Xf(t,e){if(e<=0)throw new Zr(Jr.INVALID_ARGUMENT,`Function ${t}() requires a positive number, but it was: ${e}.`)}class Jf{constructor(t){var e,n;if(void 0===t.host){if(void 0!==t.ssl)throw new Zr(Jr.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=null===(e=t.ssl)||void 0===e||e;if(this.credentials=t.credentials,this.ignoreUndefinedProperties=!!t.ignoreUndefinedProperties,this.localCache=t.localCache,void 0===t.cacheSizeBytes)this.cacheSizeBytes=41943040;else{if(-1!==t.cacheSizeBytes&&t.cacheSizeBytes<1048576)throw new Zr(Jr.INVALID_ARGUMENT,"cacheSizeBytes must be at least 1048576");this.cacheSizeBytes=t.cacheSizeBytes}$f("experimentalForceLongPolling",t.experimentalForceLongPolling,"experimentalAutoDetectLongPolling",t.experimentalAutoDetectLongPolling),this.experimentalForceLongPolling=!!t.experimentalForceLongPolling,this.experimentalForceLongPolling?this.experimentalAutoDetectLongPolling=!1:void 0===t.experimentalAutoDetectLongPolling?this.experimentalAutoDetectLongPolling=!0:this.experimentalAutoDetectLongPolling=!!t.experimentalAutoDetectLongPolling,this.experimentalLongPollingOptions=Gf(null!==(n=t.experimentalLongPollingOptions)&&void 0!==n?n:{}),function(t){if(void 0!==t.timeoutSeconds){if(isNaN(t.timeoutSeconds))throw new Zr(Jr.INVALID_ARGUMENT,`invalid long polling timeout: ${t.timeoutSeconds} (must not be NaN)`);if(t.timeoutSeconds<5)throw new Zr(Jr.INVALID_ARGUMENT,`invalid long polling timeout: ${t.timeoutSeconds} (minimum allowed value is 5)`);if(t.timeoutSeconds>30)throw new Zr(Jr.INVALID_ARGUMENT,`invalid long polling timeout: ${t.timeoutSeconds} (maximum allowed value is 30)`)}}(this.experimentalLongPollingOptions),this.useFetchStreams=!!t.useFetchStreams}isEqual(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&&function(t,e){return t.timeoutSeconds===e.timeoutSeconds}(this.experimentalLongPollingOptions,t.experimentalLongPollingOptions)&&this.ignoreUndefinedProperties===t.ignoreUndefinedProperties&&this.useFetchStreams===t.useFetchStreams}}class Zf{constructor(t,e,n,r){this._authCredentials=t,this._appCheckCredentials=e,this._databaseId=n,this._app=r,this.type="firestore-lite",this._persistenceKey="(lite)",this._settings=new Jf({}),this._settingsFrozen=!1}get app(){if(!this._app)throw new Zr(Jr.FAILED_PRECONDITION,"Firestore was not initialized using the Firebase SDK. 'app' is not available");return this._app}get _initialized(){return this._settingsFrozen}get _terminated(){return void 0!==this._terminateTask}_setSettings(t){if(this._settingsFrozen)throw new Zr(Jr.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 Jf(t),void 0!==t.credentials&&(this._authCredentials=function(t){if(!t)return new ns;switch(t.type){case"firstParty":return new os(t.sessionIndex||"0",t.iamToken||null,t.authTokenFactory||null);case"provider":return t.client;default:throw new Zr(Jr.INVALID_ARGUMENT,"makeAuthCredentialsProvider failed due to invalid credential type")}}(t.credentials))}_getSettings(){return this._settings}_freezeSettings(){return this._settingsFrozen=!0,this._settings}_delete(){return this._terminateTask||(this._terminateTask=this._terminate()),this._terminateTask}toJSON(){return{app:this._app,databaseId:this._databaseId,settings:this._settings}}_terminate(){return function(t){const e=jf.get(t);e&&(jr("ComponentProvider","Removing Datastore"),jf.delete(t),e.terminate())}(this),Promise.resolve()}}function tg(t,e,n,r={}){var s;const i=(t=Yf(t,Zf))._getSettings(),o=`${e}:${n}`;if("firestore.googleapis.com"!==i.host&&i.host!==o&&$r("Host has been set in both settings() and connectFirestoreEmulator(), emulator host will be used."),t._setSettings(Object.assign(Object.assign({},i),{host:o,ssl:!1})),r.mockUserToken){let e,n;if("string"==typeof r.mockUserToken)e=r.mockUserToken,n=qr.MOCK_USER;else{e=function(t,e){if(t.uid)throw new Error('The "uid" field is no longer supported by mockUserToken. Please use "sub" instead for Firebase Auth User ID.');const n=e||"demo-project",r=t.iat||0,s=t.sub||t.user_id;if(!s)throw new Error("mockUserToken must contain 'sub' or 'user_id' field!");const i=Object.assign({iss:`https://securetoken.google.com/${n}`,aud:n,iat:r,exp:r+3600,auth_time:r,sub:s,user_id:s,firebase:{sign_in_provider:"custom",identities:{}}},t);return[l(JSON.stringify({alg:"none",type:"JWT"})),l(JSON.stringify(i)),""].join(".")}(r.mockUserToken,null===(s=t._app)||void 0===s?void 0:s.options.projectId);const i=r.mockUserToken.sub||r.mockUserToken.user_id;if(!i)throw new Zr(Jr.INVALID_ARGUMENT,"mockUserToken must contain 'sub' or 'user_id' field!");n=new qr(i)}t._authCredentials=new rs(new es(e,n))}}class eg{constructor(t,e,n){this.converter=e,this._query=n,this.type="query",this.firestore=t}withConverter(t){return new eg(this.firestore,t,this._query)}}class ng{constructor(t,e,n){this.converter=e,this._key=n,this.type="document",this.firestore=t}get _path(){return this._key.path}get id(){return this._key.path.lastSegment()}get path(){return this._key.path.canonicalString()}get parent(){return new rg(this.firestore,this.converter,this._key.path.popLast())}withConverter(t){return new ng(this.firestore,t,this._key)}}class rg extends eg{constructor(t,e,n){super(t,e,ea(n)),this._path=n,this.type="collection"}get id(){return this._query.path.lastSegment()}get path(){return this._query.path.canonicalString()}get parent(){const t=this._path.popLast();return t.isEmpty()?null:new ng(this.firestore,null,new _s(t))}withConverter(t){return new rg(this.firestore,t,this._path)}}function sg(t,e,...n){if(t=v(t),Kf("collection","path",e),t instanceof Zf){const r=ws.fromString(e,...n);return Hf(r),new rg(t,null,r)}{if(!(t instanceof ng||t instanceof rg))throw new Zr(Jr.INVALID_ARGUMENT,"Expected first argument to collection() to be a CollectionReference, a DocumentReference or FirebaseFirestore");const r=t._path.child(ws.fromString(e,...n));return Hf(r),new rg(t.firestore,null,r)}}function ig(t,e){if(t=Yf(t,Zf),Kf("collectionGroup","collection id",e),e.indexOf("/")>=0)throw new Zr(Jr.INVALID_ARGUMENT,`Invalid collection ID '${e}' passed to function collectionGroup(). Collection IDs must not contain '/'.`);return new eg(t,null,function(t){return new Zo(ws.emptyPath(),t)}(e))}function og(t,e,...n){if(t=v(t),1===arguments.length&&(e=hs.newId()),Kf("doc","path",e),t instanceof Zf){const r=ws.fromString(e,...n);return Qf(r),new ng(t,null,new _s(r))}{if(!(t instanceof ng||t instanceof rg))throw new Zr(Jr.INVALID_ARGUMENT,"Expected first argument to collection() to be a CollectionReference, a DocumentReference or FirebaseFirestore");const r=t._path.child(ws.fromString(e,...n));return Qf(r),new ng(t.firestore,t instanceof rg?t.converter:null,new _s(r))}}function ag(t,e){return t=v(t),e=v(e),(t instanceof ng||t instanceof rg)&&(e instanceof ng||e instanceof rg)&&t.firestore===e.firestore&&t.path===e.path&&t.converter===e.converter}function ug(t,e){return t=v(t),e=v(e),t instanceof eg&&e instanceof eg&&t.firestore===e.firestore&&ca(t._query,e._query)&&t.converter===e.converter}class cg{constructor(){this.Xa=Promise.resolve(),this.eu=[],this.tu=!1,this.nu=[],this.ru=null,this.iu=!1,this.su=!1,this.ou=[],this.jo=new Bh(this,"async_queue_retry"),this._u=()=>{const t=Vh();t&&jr("AsyncQueue","Visibility state changed to "+t.visibilityState),this.jo.Ko()};const t=Vh();t&&"function"==typeof t.addEventListener&&t.addEventListener("visibilitychange",this._u)}get isShuttingDown(){return this.tu}enqueueAndForget(t){this.enqueue(t)}enqueueAndForgetEvenWhileRestricted(t){this.au(),this.uu(t)}enterRestrictedMode(t){if(!this.tu){this.tu=!0,this.su=t||!1;const e=Vh();e&&"function"==typeof e.removeEventListener&&e.removeEventListener("visibilitychange",this._u)}}enqueue(t){if(this.au(),this.tu)return new Promise((()=>{}));const e=new ts;return this.uu((()=>this.tu&&this.su?Promise.resolve():(t().then(e.resolve,e.reject),e.promise))).then((()=>e.promise))}enqueueRetryable(t){this.enqueueAndForget((()=>(this.eu.push(t),this.cu())))}async cu(){if(0!==this.eu.length){try{await this.eu[0](),this.eu.shift(),this.jo.reset()}catch(t){if(!Us(t))throw t;jr("AsyncQueue","Operation failed with retryable error: "+t)}this.eu.length>0&&this.jo.qo((()=>this.cu()))}}uu(t){const e=this.Xa.then((()=>(this.iu=!0,t().catch((t=>{this.ru=t,this.iu=!1;const e=function(t){let e=t.message||"";return t.stack&&(e=t.stack.includes(t.message)?t.stack:t.message+"\n"+t.stack),e}(t);throw Kr("INTERNAL UNHANDLED ERROR: ",e),t})).then((t=>(this.iu=!1,t))))));return this.Xa=e,e}enqueueAfterDelay(t,e,n){this.au(),this.ou.indexOf(t)>-1&&(e=0);const r=_d.createAndSchedule(this,t,e,n,(t=>this.lu(t)));return this.nu.push(r),r}au(){this.ru&&Hr()}verifyOperationInProgress(){}async hu(){let t;do{t=this.Xa,await t}while(t!==this.Xa)}Pu(t){for(const e of this.nu)if(e.timerId===t)return!0;return!1}Iu(t){return this.hu().then((()=>{this.nu.sort(((t,e)=>t.targetTimeMs-e.targetTimeMs));for(const e of this.nu)if(e.skipDelay(),"all"!==t&&e.timerId===t)break;return this.hu()}))}Tu(t){this.ou.push(t)}lu(t){const e=this.nu.indexOf(t);this.nu.splice(e,1)}}function lg(t){return function(t,e){if("object"!=typeof t||null===t)return!1;const n=t;for(const t of e)if(t in n&&"function"==typeof n[t])return!0;return!1}(t,["next","error","complete"])}class hg{constructor(){this._progressObserver={},this._taskCompletionResolver=new ts,this._lastProgress={taskState:"Running",totalBytes:0,totalDocuments:0,bytesLoaded:0,documentsLoaded:0}}onProgress(t,e,n){this._progressObserver={next:t,error:e,complete:n}}catch(t){return this._taskCompletionResolver.promise.catch(t)}then(t,e){return this._taskCompletionResolver.promise.then(t,e)}_completeWith(t){this._updateProgress(t),this._progressObserver.complete&&this._progressObserver.complete(),this._taskCompletionResolver.resolve(t)}_failWith(t){this._lastProgress.taskState="Error",this._progressObserver.next&&this._progressObserver.next(this._lastProgress),this._progressObserver.error&&this._progressObserver.error(t),this._taskCompletionResolver.reject(t)}_updateProgress(t){this._lastProgress=t,this._progressObserver.next&&this._progressObserver.next(t)}}const dg=-1;class fg extends Zf{constructor(t,e,n,r){super(t,e,n,r),this.type="firestore",this._queue=new cg,this._persistenceKey=(null==r?void 0:r.name)||"[DEFAULT]"}_terminate(){return this._firestoreClient||yg(this),this._firestoreClient.terminate()}}function gg(t,e,n){n||(n="(default)");const r=i._getProvider(t,"firestore");if(r.isInitialized(n)){const t=r.getImmediate({identifier:n});if(y(r.getOptions(n),e))return t;throw new Zr(Jr.FAILED_PRECONDITION,"initializeFirestore() has already been called with different options. To avoid this error, call initializeFirestore() with the same options as when it was originally called, or call getFirestore() to return the already initialized instance.")}if(void 0!==e.cacheSizeBytes&&void 0!==e.localCache)throw new Zr(Jr.INVALID_ARGUMENT,"cache and cacheSizeBytes cannot be specified at the same time as cacheSizeBytes willbe deprecated. Instead, specify the cache size in the cache object");if(void 0!==e.cacheSizeBytes&&-1!==e.cacheSizeBytes&&e.cacheSizeBytes<1048576)throw new Zr(Jr.INVALID_ARGUMENT,"cacheSizeBytes must be at least 1048576");return r.initialize({options:e,instanceIdentifier:n})}function mg(t,e){const n="object"==typeof t?t:i.getApp(),r="string"==typeof t?t:e||"(default)",s=i._getProvider(n,"firestore").getImmediate({identifier:r});if(!s._initialized){const t=(t=>{const e=(t=>{var e,n;return null===(n=null===(e=h())||void 0===e?void 0:e.emulatorHosts)||void 0===n?void 0:n[t]})(t);if(!e)return;const n=e.lastIndexOf(":");if(n<=0||n+1===e.length)throw new Error(`Invalid host ${e} with no separate hostname and port!`);const r=parseInt(e.substring(n+1),10);return"["===e[0]?[e.substring(1,n-1),r]:[e.substring(0,n),r]})("firestore");t&&tg(s,...t)}return s}function pg(t){return t._firestoreClient||yg(t),t._firestoreClient.verifyNotTerminated(),t._firestoreClient}function yg(t){var e,n,r;const s=t._freezeSettings(),i=function(t,e,n,r){return new Qi(t,e,n,r.host,r.ssl,r.experimentalForceLongPolling,r.experimentalAutoDetectLongPolling,Gf(r.experimentalLongPollingOptions),r.useFetchStreams)}(t._databaseId,(null===(e=t._app)||void 0===e?void 0:e.options.appId)||"",t._persistenceKey,s);t._firestoreClient=new Af(t._authCredentials,t._appCheckCredentials,t._queue,i),(null===(n=s.localCache)||void 0===n?void 0:n._offlineComponentProvider)&&(null===(r=s.localCache)||void 0===r?void 0:r._onlineComponentProvider)&&(t._firestoreClient._uninitializedComponentsProvider={_offlineKind:s.localCache.kind,_offline:s.localCache._offlineComponentProvider,_online:s.localCache._onlineComponentProvider})}function wg(t,e){Dg(t=Yf(t,fg));const n=pg(t);if(n._uninitializedComponentsProvider)throw new Zr(Jr.FAILED_PRECONDITION,"SDK cache is already specified.");$r("enableIndexedDbPersistence() will be deprecated in the future, you can use `FirestoreSettings.cache` instead.");const r=t._freezeSettings(),s=new Ef;return bg(n,s,new _f(s,r.cacheSizeBytes,null==e?void 0:e.forceOwnership))}function vg(t){Dg(t=Yf(t,fg));const e=pg(t);if(e._uninitializedComponentsProvider)throw new Zr(Jr.FAILED_PRECONDITION,"SDK cache is already specified.");$r("enableMultiTabIndexedDbPersistence() will be deprecated in the future, you can use `FirestoreSettings.cache` instead.");const n=t._freezeSettings(),r=new Ef;return bg(e,r,new If(r,n.cacheSizeBytes))}function bg(t,e,n){const r=new ts;return t.asyncQueue.enqueue((async()=>{try{await Nf(t,n),await kf(t,e),r.resolve()}catch(t){const e=t;if(!Rf(e))throw e;$r("Error enabling indexeddb cache. Falling back to memory cache: "+e),r.reject(e)}})).then((()=>r.promise))}function _g(t){if(t._initialized&&!t._terminated)throw new Zr(Jr.FAILED_PRECONDITION,"Persistence can only be cleared before a Firestore instance is initialized or after it is terminated.");const e=new ts;return t._queue.enqueueAndForgetEvenWhileRestricted((async()=>{try{await async function(t){if(!Vs.D())return Promise.resolve();const e=t+"main";await Vs.delete(e)}(nh(t._databaseId,t._persistenceKey)),e.resolve()}catch(t){e.reject(t)}})),e.promise}function Ig(t){return function(t){const e=new ts;return t.asyncQueue.enqueueAndForget((async()=>async function(t,e){const n=Xr(t);ed(n.remoteStore)||jr("SyncEngine","The network is disabled. The task returned by 'awaitPendingWrites()' will not complete until the network is enabled.");try{const t=await function(t){const e=Xr(t);return e.persistence.runTransaction("Get highest unacknowledged batch id","readonly",(t=>e.mutationQueue.getHighestUnacknowledgedBatchId(t)))}(n.localStore);if(-1===t)return void e.resolve();const r=n.Ca.get(t)||[];r.push(e),n.Ca.set(t,r)}catch(t){const n=Id(t,"Initialization of waitForPendingWrites() operation failed");e.reject(n)}}(await Vf(t),e))),e.promise}(pg(t=Yf(t,fg)))}function Eg(t){return function(t){return t.asyncQueue.enqueue((async()=>{const e=await Of(t),n=await Ff(t);return e.setNetworkEnabled(!0),function(t){const e=Xr(t);return e.v_.delete(0),Qh(e)}(n)}))}(pg(t=Yf(t,fg)))}function Tg(t){return function(t){return t.asyncQueue.enqueue((async()=>{const e=await Of(t),n=await Ff(t);return e.setNetworkEnabled(!1),async function(t){const e=Xr(t);e.v_.add(0),await Hh(e),e.x_.set("Offline")}(n)}))}(pg(t=Yf(t,fg)))}function Sg(t){return i._removeServiceInstance(t.app,"firestore",t._databaseId.database),t._delete()}function xg(t,e){const n=pg(t=Yf(t,fg)),r=new hg;return function(t,e,n,r){const s=function(t,e){let n;return n="string"==typeof t?wu().encode(t):t,function(t,e){return new xf(t,e)}(function(t,e){if(t instanceof Uint8Array)return Tf(t,e);if(t instanceof ArrayBuffer)return Tf(new Uint8Array(t),e);if(t instanceof ReadableStream)return t.getReader();throw new Error("Source of `toByteStreamReader` has to be a ArrayBuffer or ReadableStream")}(n),e)}(n,qh(e));t.asyncQueue.enqueueAndForget((async()=>{!function(t,e,n){const r=Xr(t);(async function(t,e,n){try{const r=await e.getMetadata();if(await function(t,e){const n=Xr(t),r=Uu(e.createTime);return n.persistence.runTransaction("hasNewerBundle","readonly",(t=>n.$r.getBundleMetadata(t,e.id))).then((t=>!!t&&t.createTime.compareTo(r)>=0))}(t.localStore,r))return await e.close(),n._completeWith(function(t){return{taskState:"Success",documentsLoaded:t.totalDocuments,bytesLoaded:t.totalBytes,totalDocuments:t.totalDocuments,totalBytes:t.totalBytes}}(r)),Promise.resolve(new Set);n._updateProgress(Fd(r));const s=new Pd(r,t.localStore,e.serializer);let i=await e.Oa();for(;i;){const t=await s.na(i);t&&n._updateProgress(t),i=await e.Oa()}const o=await s.complete();return await of(t,o.sa,void 0),await function(t,e){const n=Xr(t);return n.persistence.runTransaction("Save bundle","readwrite",(t=>n.$r.saveBundleMetadata(t,e)))}(t.localStore,r),n._completeWith(o.progress),Promise.resolve(o.ia)}catch(t){return $r("SyncEngine",`Loading bundle failed with ${t}`),n._failWith(t),Promise.resolve(new Set)}})(r,e,n).then((t=>{r.sharedClientState.notifyBundleLoaded(t)}))}(await Vf(t),s,r)}))}(n,t._databaseId,e,r),r}function Cg(t,e){return function(t,e){return t.asyncQueue.enqueue((async()=>function(t,e){const n=Xr(t);return n.persistence.runTransaction("Get named query","readonly",(t=>n.$r.getNamedQuery(t,e)))}(await Pf(t),e)))}(pg(t=Yf(t,fg)),e).then((e=>e?new eg(t,null,e.query):null))}function Dg(t){if(t._initialized||t._terminated)throw new Zr(Jr.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.")}class Ag{constructor(t="count",e){this._internalFieldPath=e,this.type="AggregateField",this.aggregateType=t}}class Ng{constructor(t,e,n){this._userDataWriter=e,this._data=n,this.type="AggregateQuerySnapshot",this.query=t}data(){return this._userDataWriter.convertObjectMap(this._data)}}class kg{constructor(t){this._byteString=t}static fromBase64String(t){try{return new kg(qi.fromBase64String(t))}catch(t){throw new Zr(Jr.INVALID_ARGUMENT,"Failed to construct data from Base64 string: "+t)}}static fromUint8Array(t){return new kg(qi.fromUint8Array(t))}toBase64(){return this._byteString.toBase64()}toUint8Array(){return this._byteString.toUint8Array()}toString(){return"Bytes(base64: "+this.toBase64()+")"}isEqual(t){return this._byteString.isEqual(t._byteString)}}class Rg{constructor(...t){for(let e=0;e90)throw new Zr(Jr.INVALID_ARGUMENT,"Latitude must be a number between -90 and 90, but was: "+t);if(!isFinite(e)||e<-180||e>180)throw new Zr(Jr.INVALID_ARGUMENT,"Longitude must be a number between -180 and 180, but was: "+e);this._lat=t,this._long=e}get latitude(){return this._lat}get longitude(){return this._long}isEqual(t){return this._lat===t._lat&&this._long===t._long}toJSON(){return{latitude:this._lat,longitude:this._long}}_compareTo(t){return ds(this._lat,t._lat)||ds(this._long,t._long)}}const Pg=/^__.*__$/;class Fg{constructor(t,e,n){this.data=t,this.fieldMask=e,this.fieldTransforms=n}toMutation(t,e){return null!==this.fieldMask?new nu(t,this.data,this.fieldMask,e,this.fieldTransforms):new eu(t,this.data,e,this.fieldTransforms)}}class Vg{constructor(t,e,n){this.data=t,this.fieldMask=e,this.fieldTransforms=n}toMutation(t,e){return new nu(t,this.data,this.fieldMask,e,this.fieldTransforms)}}function qg(t){switch(t){case 0:case 2:case 1:return!0;case 3:case 4:return!1;default:throw Hr()}}class Bg{constructor(t,e,n,r,s,i){this.settings=t,this.databaseId=e,this.serializer=n,this.ignoreUndefinedProperties=r,void 0===s&&this.Eu(),this.fieldTransforms=s||[],this.fieldMask=i||[]}get path(){return this.settings.path}get du(){return this.settings.du}Au(t){return new Bg(Object.assign(Object.assign({},this.settings),t),this.databaseId,this.serializer,this.ignoreUndefinedProperties,this.fieldTransforms,this.fieldMask)}Ru(t){var e;const n=null===(e=this.path)||void 0===e?void 0:e.child(t),r=this.Au({path:n,Vu:!1});return r.mu(t),r}fu(t){var e;const n=null===(e=this.path)||void 0===e?void 0:e.child(t),r=this.Au({path:n,Vu:!1});return r.Eu(),r}gu(t){return this.Au({path:void 0,Vu:!0})}pu(t){return om(t,this.settings.methodName,this.settings.yu||!1,this.path,this.settings.wu)}contains(t){return void 0!==this.fieldMask.find((e=>t.isPrefixOf(e)))||void 0!==this.fieldTransforms.find((e=>t.isPrefixOf(e.field)))}Eu(){if(this.path)for(let t=0;tu.covers(t.field)))}else u=null,c=o.fieldTransforms;return new Fg(new wo(a),u,c)}class jg extends Lg{_toFieldTransform(t){if(2!==t.du)throw 1===t.du?t.pu(`${this._methodName}() can only appear at the top level of your update data`):t.pu(`${this._methodName}() cannot be used with set() unless you pass {merge:true}`);return t.fieldMask.push(t.path),null}isEqual(t){return t instanceof jg}}function Kg(t,e,n){return new Bg({du:3,wu:e.settings.wu,methodName:t._methodName,Vu:n},e.databaseId,e.serializer,e.ignoreUndefinedProperties)}class $g extends Lg{_toFieldTransform(t){return new Ka(t.path,new Fa)}isEqual(t){return t instanceof $g}}class Qg extends Lg{constructor(t,e){super(t),this.bu=e}_toFieldTransform(t){const e=Kg(this,t,!0),n=this.bu.map((t=>Zg(t,e))),r=new Va(n);return new Ka(t.path,r)}isEqual(t){return t instanceof Qg&&y(this.bu,t.bu)}}class Hg extends Lg{constructor(t,e){super(t),this.bu=e}_toFieldTransform(t){const e=Kg(this,t,!0),n=this.bu.map((t=>Zg(t,e))),r=new Ba(n);return new Ka(t.path,r)}isEqual(t){return t instanceof Hg&&y(this.bu,t.bu)}}class Wg extends Lg{constructor(t,e){super(t),this.Du=e}_toFieldTransform(t){const e=new za(t.serializer,Ra(t.serializer,this.Du));return new Ka(t.path,e)}isEqual(t){return t instanceof Wg&&this.Du===t.Du}}function Yg(t,e,n,r){const s=t.Su(1,e,n);nm("Data must be an object, but it was:",s,r);const i=[],o=wo.empty();Di(r,((t,r)=>{const a=im(e,t,n);r=v(r);const u=s.fu(a);if(r instanceof jg)i.push(a);else{const t=Zg(r,u);null!=t&&(i.push(a),o.set(a,t))}}));const a=new Pi(i);return new Vg(o,a,s.fieldTransforms)}function Xg(t,e,n,r,s,i){const o=t.Su(1,e,n),a=[rm(e,r,n)],u=[s];if(i.length%2!=0)throw new Zr(Jr.INVALID_ARGUMENT,`Function ${e}() needs to be called with an even number of arguments that alternate between field names and values.`);for(let t=0;t=0;--t)if(!am(c,a[t])){const e=a[t];let n=u[t];n=v(n);const r=o.fu(e);if(n instanceof jg)c.push(e);else{const t=Zg(n,r);null!=t&&(c.push(e),l.set(e,t))}}const h=new Pi(c);return new Vg(l,h,o.fieldTransforms)}function Jg(t,e,n,r=!1){return Zg(n,t.Su(r?4:3,e))}function Zg(t,e){if(em(t=v(t)))return nm("Unsupported field value:",e,t),tm(t,e);if(t instanceof Lg)return function(t,e){if(!qg(e.du))throw e.pu(`${t._methodName}() can only be used with update() and set()`);if(!e.path)throw e.pu(`${t._methodName}() is not currently supported inside arrays`);const n=t._toFieldTransform(e);n&&e.fieldTransforms.push(n)}(t,e),null;if(void 0===t&&e.ignoreUndefinedProperties)return null;if(e.path&&e.fieldMask.push(e.path),t instanceof Array){if(e.settings.Vu&&4!==e.du)throw e.pu("Nested arrays are not supported");return function(t,e){const n=[];let r=0;for(const s of t){let t=Zg(s,e.gu(r));null==t&&(t={nullValue:"NULL_VALUE"}),n.push(t),r++}return{arrayValue:{values:n}}}(t,e)}return function(t,e){if(null===(t=v(t)))return{nullValue:"NULL_VALUE"};if("number"==typeof t)return Ra(e.serializer,t);if("boolean"==typeof t)return{booleanValue:t};if("string"==typeof t)return{stringValue:t};if(t instanceof Date){const n=ms.fromDate(t);return{timestampValue:Vu(e.serializer,n)}}if(t instanceof ms){const n=new ms(t.seconds,1e3*Math.floor(t.nanoseconds/1e3));return{timestampValue:Vu(e.serializer,n)}}if(t instanceof Og)return{geoPointValue:{latitude:t.latitude,longitude:t.longitude}};if(t instanceof kg)return{bytesValue:qu(e.serializer,t._byteString)};if(t instanceof ng){const n=e.databaseId,r=t.firestore._databaseId;if(!r.isEqual(n))throw e.pu(`Document reference is for database ${r.projectId}/${r.database} but should be for database ${n.projectId}/${n.database}`);return{referenceValue:zu(t.firestore._databaseId||e.databaseId,t._key.path)}}throw e.pu(`Unsupported field value: ${Wf(t)}`)}(t,e)}function tm(t,e){const n={};return Ai(t)?e.path&&e.path.length>0&&e.fieldMask.push(e.path):Di(t,((t,r)=>{const s=Zg(r,e.Ru(t));null!=s&&(n[t]=s)})),{mapValue:{fields:n}}}function em(t){return!("object"!=typeof t||null===t||t instanceof Array||t instanceof Date||t instanceof ms||t instanceof Og||t instanceof kg||t instanceof ng||t instanceof Lg)}function nm(t,e,n){if(!em(n)||!function(t){return"object"==typeof t&&null!==t&&(Object.getPrototypeOf(t)===Object.prototype||null===Object.getPrototypeOf(t))}(n)){const r=Wf(n);throw"an object"===r?e.pu(t+" a custom object"):e.pu(t+" "+r)}}function rm(t,e,n){if((e=v(e))instanceof Rg)return e._internalPath;if("string"==typeof e)return im(t,e);throw om("Field path arguments must be of type string or ",t,!1,void 0,n)}const sm=new RegExp("[~\\*/\\[\\]]");function im(t,e,n){if(e.search(sm)>=0)throw om(`Invalid field path (${e}). Paths must not contain '~', '*', '/', '[', or ']'`,t,!1,void 0,n);try{return new Rg(...e.split("."))._internalPath}catch(r){throw om(`Invalid field path (${e}). Paths must not be empty, begin with '.', end with '.', or contain '..'`,t,!1,void 0,n)}}function om(t,e,n,r,s){const i=r&&!r.isEmpty(),o=void 0!==s;let a=`Function ${e}() called with invalid data`;n&&(a+=" (via `toFirestore()`)"),a+=". ";let u="";return(i||o)&&(u+=" (found",i&&(u+=` in field ${r}`),o&&(u+=` in document ${s}`),u+=")"),new Zr(Jr.INVALID_ARGUMENT,a+t+u)}function am(t,e){return t.some((t=>t.isEqual(e)))}class um{constructor(t,e,n,r,s){this._firestore=t,this._userDataWriter=e,this._key=n,this._document=r,this._converter=s}get id(){return this._key.path.lastSegment()}get ref(){return new ng(this._firestore,this._converter,this._key)}exists(){return null!==this._document}data(){if(this._document){if(this._converter){const t=new cm(this._firestore,this._userDataWriter,this._key,this._document,null);return this._converter.fromFirestore(t)}return this._userDataWriter.convertValue(this._document.data.value)}}get(t){if(this._document){const e=this._document.data.field(lm("DocumentSnapshot.get",t));if(null!==e)return this._userDataWriter.convertValue(e)}}}class cm extends um{data(){return super.data()}}function lm(t,e){return"string"==typeof e?im(t,e):e instanceof Rg?e._internalPath:e._delegate._internalPath}function hm(t){if("L"===t.limitType&&0===t.explicitOrderBy.length)throw new Zr(Jr.UNIMPLEMENTED,"limitToLast() queries require specifying at least one orderBy() clause")}class dm{}class fm extends dm{}function gm(t,e,...n){let r=[];e instanceof dm&&r.push(e),r=r.concat(n),function(t){const e=t.filter((t=>t instanceof ym)).length,n=t.filter((t=>t instanceof mm)).length;if(e>1||e>0&&n>0)throw new Zr(Jr.INVALID_ARGUMENT,"InvalidQuery. When using composite filters, you cannot use more than one filter at the top level. Consider nesting the multiple filters within an `and(...)` statement. For example: change `query(query, where(...), or(...))` to `query(query, and(where(...), or(...)))`.")}(r);for(const e of r)t=e._apply(t);return t}class mm extends fm{constructor(t,e,n){super(),this._field=t,this._op=e,this._value=n,this.type="where"}static _create(t,e,n){return new mm(t,e,n)}_apply(t){const e=this._parse(t);return Lm(t._query,e),new eg(t.firestore,t.converter,aa(t._query,e))}_parse(t){const e=zg(t.firestore),n=function(t,e,n,r,s,i,o){let a;if(s.isKeyField()){if("array-contains"===i||"array-contains-any"===i)throw new Zr(Jr.INVALID_ARGUMENT,`Invalid Query. You can't perform '${i}' queries on documentId().`);if("in"===i||"not-in"===i){Mm(o,i);const e=[];for(const n of o)e.push(Rm(r,t,n));a={arrayValue:{values:e}}}else a=Rm(r,t,o)}else"in"!==i&&"not-in"!==i&&"array-contains-any"!==i||Mm(o,i),a=Jg(n,e,o,"in"===i||"not-in"===i);return Co.create(s,i,a)}(t._query,"where",e,t.firestore._databaseId,this._field,this._op,this._value);return n}}function pm(t,e,n){const r=e,s=lm("where",t);return mm._create(s,r,n)}class ym extends dm{constructor(t,e){super(),this.type=t,this._queryConstraints=e}static _create(t,e){return new ym(t,e)}_parse(t){const e=this._queryConstraints.map((e=>e._parse(t))).filter((t=>t.getFilters().length>0));return 1===e.length?e[0]:Do.create(e,this._getOperator())}_apply(t){const e=this._parse(t);return 0===e.getFilters().length?t:(function(t,e){let n=t;const r=e.getFlattenedFilters();for(const t of r)Lm(n,t),n=aa(n,t)}(t._query,e),new eg(t.firestore,t.converter,aa(t._query,e)))}_getQueryConstraints(){return this._queryConstraints}_getOperator(){return"and"===this.type?"and":"or"}}function wm(...t){return t.forEach((t=>Om("or",t))),ym._create("or",t)}function vm(...t){return t.forEach((t=>Om("and",t))),ym._create("and",t)}class bm extends fm{constructor(t,e){super(),this._field=t,this._direction=e,this.type="orderBy"}static _create(t,e){return new bm(t,e)}_apply(t){const e=function(t,e,n){if(null!==t.startAt)throw new Zr(Jr.INVALID_ARGUMENT,"Invalid query. You must not call startAt() or startAfter() before calling orderBy().");if(null!==t.endAt)throw new Zr(Jr.INVALID_ARGUMENT,"Invalid query. You must not call endAt() or endBefore() before calling orderBy().");return new To(e,n)}(t._query,this._field,this._direction);return new eg(t.firestore,t.converter,function(t,e){const n=t.explicitOrderBy.concat([e]);return new Zo(t.path,t.collectionGroup,n,t.filters.slice(),t.limit,t.limitType,t.startAt,t.endAt)}(t._query,e))}}function _m(t,e="asc"){const n=e,r=lm("orderBy",t);return bm._create(r,n)}class Im extends fm{constructor(t,e,n){super(),this.type=t,this._limit=e,this._limitType=n}static _create(t,e,n){return new Im(t,e,n)}_apply(t){return new eg(t.firestore,t.converter,ua(t._query,this._limit,this._limitType))}}function Em(t){return Xf("limit",t),Im._create("limit",t,"F")}function Tm(t){return Xf("limitToLast",t),Im._create("limitToLast",t,"L")}class Sm extends fm{constructor(t,e,n){super(),this.type=t,this._docOrFields=e,this._inclusive=n}static _create(t,e,n){return new Sm(t,e,n)}_apply(t){const e=km(t,this.type,this._docOrFields,this._inclusive);return new eg(t.firestore,t.converter,function(t,e){return new Zo(t.path,t.collectionGroup,t.explicitOrderBy.slice(),t.filters.slice(),t.limit,t.limitType,e,t.endAt)}(t._query,e))}}function xm(...t){return Sm._create("startAt",t,!0)}function Cm(...t){return Sm._create("startAfter",t,!1)}class Dm extends fm{constructor(t,e,n){super(),this.type=t,this._docOrFields=e,this._inclusive=n}static _create(t,e,n){return new Dm(t,e,n)}_apply(t){const e=km(t,this.type,this._docOrFields,this._inclusive);return new eg(t.firestore,t.converter,function(t,e){return new Zo(t.path,t.collectionGroup,t.explicitOrderBy.slice(),t.filters.slice(),t.limit,t.limitType,t.startAt,e)}(t._query,e))}}function Am(...t){return Dm._create("endBefore",t,!1)}function Nm(...t){return Dm._create("endAt",t,!0)}function km(t,e,n,r){if(n[0]=v(n[0]),n[0]instanceof um)return function(t,e,n,r,s){if(!r)throw new Zr(Jr.NOT_FOUND,`Can't use a DocumentSnapshot that doesn't exist for ${n}().`);const i=[];for(const n of sa(t))if(n.field.isKeyField())i.push(io(e,r.key));else{const t=r.data.field(n.field);if(ji(t))throw new Zr(Jr.INVALID_ARGUMENT,'Invalid query. You are trying to start or end a query using a document for which the field "'+n.field+'" is an uncommitted server timestamp. (Since the value of this field is unknown, you cannot start/end a query with it.)');if(null===t){const t=n.field.canonicalString();throw new Zr(Jr.INVALID_ARGUMENT,`Invalid query. You are trying to start or end a query using a document for which the field '${t}' (used as the orderBy) does not exist.`)}i.push(t)}return new _o(i,s)}(t._query,t.firestore._databaseId,e,n[0]._document,r);{const s=zg(t.firestore);return function(t,e,n,r,s,i){const o=t.explicitOrderBy;if(s.length>o.length)throw new Zr(Jr.INVALID_ARGUMENT,`Too many arguments provided to ${r}(). The number of arguments must be less than or equal to the number of orderBy() clauses`);const a=[];for(let i=0;i=0)return t.op;return null}(t.filters,function(t){switch(t){case"!=":return["!=","not-in"];case"array-contains-any":case"in":return["not-in"];case"not-in":return["array-contains-any","in","not-in","!="];default:return[]}}(e.op));if(null!==n)throw n===e.op?new Zr(Jr.INVALID_ARGUMENT,`Invalid query. You cannot use more than one '${e.op.toString()}' filter.`):new Zr(Jr.INVALID_ARGUMENT,`Invalid query. You cannot use '${e.op.toString()}' filters with '${n.toString()}' filters.`)}function Om(t,e){if(!(e instanceof mm||e instanceof ym))throw new Zr(Jr.INVALID_ARGUMENT,`Function ${t}() requires AppliableConstraints created with a call to 'where(...)', 'or(...)', or 'and(...)'.`)}class Pm{convertValue(t,e="none"){switch(Xi(t)){case 0:return null;case 1:return t.booleanValue;case 2:return zi(t.integerValue||t.doubleValue);case 3:return this.convertTimestamp(t.timestampValue);case 4:return this.convertServerTimestamp(t,e);case 5:return t.stringValue;case 6:return this.convertBytes(Gi(t.bytesValue));case 7:return this.convertReference(t.referenceValue);case 8:return this.convertGeoPoint(t.geoPointValue);case 9:return this.convertArray(t.arrayValue,e);case 10:return this.convertObject(t.mapValue,e);default:throw Hr()}}convertObject(t,e){return this.convertObjectMap(t.fields,e)}convertObjectMap(t,e="none"){const n={};return Di(t,((t,r)=>{n[t]=this.convertValue(r,e)})),n}convertGeoPoint(t){return new Og(zi(t.latitude),zi(t.longitude))}convertArray(t,e){return(t.values||[]).map((t=>this.convertValue(t,e)))}convertServerTimestamp(t,e){switch(e){case"previous":const n=Ki(t);return null==n?null:this.convertValue(n,e);case"estimate":return this.convertTimestamp($i(t));default:return null}}convertTimestamp(t){const e=Ui(t);return new ms(e.seconds,e.nanos)}convertDocumentKey(t,e){const n=ws.fromString(t);Wr(dc(n));const r=new Hi(n.get(1),n.get(3)),s=new _s(n.popFirst(5));return r.isEqual(e)||Kr(`Document ${s} 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.`),s}}function Fm(t,e,n){let r;return r=t?n&&(n.merge||n.mergeFields)?t.toFirestore(e,n):t.toFirestore(e):e,r}class Vm extends Pm{constructor(t){super(),this.firestore=t}convertBytes(t){return new kg(t)}convertReference(t){const e=this.convertDocumentKey(t,this.firestore._databaseId);return new ng(this.firestore,null,e)}}function qm(t){return new Ag("sum",rm("sum",t))}function Bm(t){return new Ag("avg",rm("average",t))}function Um(){return new Ag("count")}function zm(t,e){var n,r;return t instanceof Ag&&e instanceof Ag&&t.aggregateType===e.aggregateType&&(null===(n=t._internalFieldPath)||void 0===n?void 0:n.canonicalString())===(null===(r=e._internalFieldPath)||void 0===r?void 0:r.canonicalString())}function Gm(t,e){return ug(t.query,e.query)&&y(t.data(),e.data())}class jm{constructor(t,e){this.hasPendingWrites=t,this.fromCache=e}isEqual(t){return this.hasPendingWrites===t.hasPendingWrites&&this.fromCache===t.fromCache}}class Km extends um{constructor(t,e,n,r,s,i){super(t,e,n,r,i),this._firestore=t,this._firestoreImpl=t,this.metadata=s}exists(){return super.exists()}data(t={}){if(this._document){if(this._converter){const e=new $m(this._firestore,this._userDataWriter,this._key,this._document,this.metadata,null);return this._converter.fromFirestore(e,t)}return this._userDataWriter.convertValue(this._document.data.value,t.serverTimestamps)}}get(t,e={}){if(this._document){const n=this._document.data.field(lm("DocumentSnapshot.get",t));if(null!==n)return this._userDataWriter.convertValue(n,e.serverTimestamps)}}}class $m extends Km{data(t={}){return super.data(t)}}class Qm{constructor(t,e,n,r){this._firestore=t,this._userDataWriter=e,this._snapshot=r,this.metadata=new jm(r.hasPendingWrites,r.fromCache),this.query=n}get docs(){const t=[];return this.forEach((e=>t.push(e))),t}get size(){return this._snapshot.docs.size}get empty(){return 0===this.size}forEach(t,e){this._snapshot.docs.forEach((n=>{t.call(e,new $m(this._firestore,this._userDataWriter,n.key,n,new jm(this._snapshot.mutatedKeys.has(n.key),this._snapshot.fromCache),this.query.converter))}))}docChanges(t={}){const e=!!t.includeMetadataChanges;if(e&&this._snapshot.excludesMetadataChanges)throw new Zr(Jr.INVALID_ARGUMENT,"To include metadata changes with your document changes, you must also pass { includeMetadataChanges:true } to onSnapshot().");return this._cachedChanges&&this._cachedChangesIncludeMetadataChanges===e||(this._cachedChanges=function(t,e){if(t._snapshot.oldDocs.isEmpty()){let e=0;return t._snapshot.docChanges.map((n=>{const r=new $m(t._firestore,t._userDataWriter,n.doc.key,n.doc,new jm(t._snapshot.mutatedKeys.has(n.doc.key),t._snapshot.fromCache),t.query.converter);return n.doc,{type:"added",doc:r,oldIndex:-1,newIndex:e++}}))}{let n=t._snapshot.oldDocs;return t._snapshot.docChanges.filter((t=>e||3!==t.type)).map((e=>{const r=new $m(t._firestore,t._userDataWriter,e.doc.key,e.doc,new jm(t._snapshot.mutatedKeys.has(e.doc.key),t._snapshot.fromCache),t.query.converter);let s=-1,i=-1;return 0!==e.type&&(s=n.indexOf(e.doc.key),n=n.delete(e.doc.key)),1!==e.type&&(n=n.add(e.doc),i=n.indexOf(e.doc.key)),{type:Hm(e.type),doc:r,oldIndex:s,newIndex:i}}))}}(this,e),this._cachedChangesIncludeMetadataChanges=e),this._cachedChanges}}function Hm(t){switch(t){case 0:return"added";case 2:case 3:return"modified";case 1:return"removed";default:return Hr()}}function Wm(t,e){return t instanceof Km&&e instanceof Km?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 Qm&&e instanceof Qm&&t._firestore===e._firestore&&ug(t.query,e.query)&&t.metadata.isEqual(e.metadata)&&t._snapshot.isEqual(e._snapshot)}function Ym(t){t=Yf(t,ng);const e=Yf(t.firestore,fg);return Uf(pg(e),t._key).then((n=>lp(e,t,n)))}class Xm extends Pm{constructor(t){super(),this.firestore=t}convertBytes(t){return new kg(t)}convertReference(t){const e=this.convertDocumentKey(t,this.firestore._databaseId);return new ng(this.firestore,null,e)}}function Jm(t){t=Yf(t,ng);const e=Yf(t.firestore,fg),n=pg(e),r=new Xm(e);return function(t,e){const n=new ts;return t.asyncQueue.enqueueAndForget((async()=>async function(t,e,n){try{const r=await function(t,e){const n=Xr(t);return n.persistence.runTransaction("read document","readonly",(t=>n.localDocuments.getDocument(t,e)))}(t,e);r.isFoundDocument()?n.resolve(r):r.isNoDocument()?n.resolve(null):n.reject(new Zr(Jr.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.)"))}catch(t){const r=Id(t,`Failed to get document '${e} from cache`);n.reject(r)}}(await Pf(t),e,n))),n.promise}(n,t._key).then((n=>new Km(e,r,t._key,n,new jm(null!==n&&n.hasLocalMutations,!0),t.converter)))}function Zm(t){t=Yf(t,ng);const e=Yf(t.firestore,fg);return Uf(pg(e),t._key,{source:"server"}).then((n=>lp(e,t,n)))}function tp(t){t=Yf(t,eg);const e=Yf(t.firestore,fg),n=pg(e),r=new Xm(e);return hm(t._query),zf(n,t._query).then((n=>new Qm(e,r,t,n)))}function ep(t){t=Yf(t,eg);const e=Yf(t.firestore,fg),n=pg(e),r=new Xm(e);return function(t,e){const n=new ts;return t.asyncQueue.enqueueAndForget((async()=>async function(t,e,n){try{const r=await gh(t,e,!0),s=new Bd(e,r.hs),i=s.ha(r.documents),o=s.applyChanges(i,!1);n.resolve(o.snapshot)}catch(t){const r=Id(t,`Failed to execute query '${e} against cache`);n.reject(r)}}(await Pf(t),e,n))),n.promise}(n,t._query).then((n=>new Qm(e,r,t,n)))}function np(t){t=Yf(t,eg);const e=Yf(t.firestore,fg),n=pg(e),r=new Xm(e);return zf(n,t._query,{source:"server"}).then((n=>new Qm(e,r,t,n)))}function rp(t,e,n){t=Yf(t,ng);const r=Yf(t.firestore,fg),s=Fm(t.converter,e,n);return cp(r,[Gg(zg(r),"setDoc",t._key,s,null!==t.converter,n).toMutation(t._key,Qa.none())])}function sp(t,e,n,...r){t=Yf(t,ng);const s=Yf(t.firestore,fg),i=zg(s);let o;return o="string"==typeof(e=v(e))||e instanceof Rg?Xg(i,"updateDoc",t._key,e,n,r):Yg(i,"updateDoc",t._key,e),cp(s,[o.toMutation(t._key,Qa.exists(!0))])}function ip(t){return cp(Yf(t.firestore,fg),[new ou(t._key,Qa.none())])}function op(t,e){const n=Yf(t.firestore,fg),r=og(t),s=Fm(t.converter,e);return cp(n,[Gg(zg(t.firestore),"addDoc",r._key,s,null!==t.converter,{}).toMutation(r._key,Qa.exists(!1))]).then((()=>r))}function ap(t,...e){var n,r,s;t=v(t);let i={includeMetadataChanges:!1},o=0;"object"!=typeof e[o]||lg(e[o])||(i=e[o],o++);const a={includeMetadataChanges:i.includeMetadataChanges};if(lg(e[o])){const t=e[o];e[o]=null===(n=t.next)||void 0===n?void 0:n.bind(t),e[o+1]=null===(r=t.error)||void 0===r?void 0:r.bind(t),e[o+2]=null===(s=t.complete)||void 0===s?void 0:s.bind(t)}let u,c,l;if(t instanceof ng)c=Yf(t.firestore,fg),l=ea(t._key.path),u={next:n=>{e[o]&&e[o](lp(c,t,n))},error:e[o+1],complete:e[o+2]};else{const n=Yf(t,eg);c=Yf(n.firestore,fg),l=n._query;const r=new Xm(c);u={next:t=>{e[o]&&e[o](new Qm(c,r,n,t))},error:e[o+1],complete:e[o+2]},hm(t._query)}return function(t,e,n,r){const s=new Sf(r),i=new Md(e,s,n);return t.asyncQueue.enqueueAndForget((async()=>Dd(await Bf(t),i))),()=>{s.La(),t.asyncQueue.enqueueAndForget((async()=>Ad(await Bf(t),i)))}}(pg(c),l,a,u)}function up(t,e){return function(t,e){const n=new Sf(e);return t.asyncQueue.enqueueAndForget((async()=>function(t,e){Xr(t).K_.add(e),e.next()}(await Bf(t),n))),()=>{n.La(),t.asyncQueue.enqueueAndForget((async()=>function(t,e){Xr(t).K_.delete(e)}(await Bf(t),n)))}}(pg(t=Yf(t,fg)),lg(e)?e:{next:e})}function cp(t,e){return function(t,e){const n=new ts;return t.asyncQueue.enqueueAndForget((async()=>async function(t,e,n){const r=wf(t);try{const t=await function(t,e){const n=Xr(t),r=ms.now(),s=e.reduce(((t,e)=>t.add(e.key)),Ca());let i,o;return n.persistence.runTransaction("Locally write mutations","readwrite",(t=>{let a=wa(),u=Ca();return n.os.getEntries(t,s).next((t=>{a=t,a.forEach(((t,e)=>{e.isValidDocument()||(u=u.add(t))}))})).next((()=>n.localDocuments.getOverlayedDocuments(t,a))).next((s=>{i=s;const o=[];for(const t of e){const e=Za(t,i.get(t.key).overlayedDocument);null!=e&&o.push(new nu(t.key,e,vo(e.value.mapValue),Qa.exists(!0)))}return n.mutationQueue.addMutationBatch(t,r,o,e)})).next((e=>{o=e;const r=e.applyToLocalDocumentSet(i,u);return n.documentOverlayCache.saveOverlays(t,e.batchId,r)}))})).then((()=>({batchId:o.batchId,changes:_a(i)})))}(r.localStore,e);r.sharedClientState.addPendingMutation(t.batchId),function(t,e,n){let r=t.Da[t.currentUser.toKey()];r||(r=new Ni(ds)),r=r.insert(e,n),t.Da[t.currentUser.toKey()]=r}(r,t.batchId,n),await of(r,t.changes),await ud(r.remoteStore)}catch(t){const e=Id(t,"Failed to persist write");n.reject(e)}}(await Vf(t),e,n))),n.promise}(pg(t),e)}function lp(t,e,n){const r=n.docs.get(e._key),s=new Xm(t);return new Km(t,s,e._key,r,new jm(n.hasPendingWrites,n.fromCache),e.converter)}function hp(t){return dp(t,{count:Um()})}function dp(t,e){const n=Yf(t.firestore,fg),r=pg(n),s=function(t,e){const n=[];for(const r in t)Object.prototype.hasOwnProperty.call(t,r)&&n.push(e(t[r],r,t));return n}(e,((t,e)=>new hu(e,t.aggregateType,t._internalFieldPath)));return function(t,e,n){const r=new ts;return t.asyncQueue.enqueueAndForget((async()=>{try{const s=await qf(t);r.resolve(async function(t,e,n){var r;const s=Xr(t),{request:i,V_:o,parent:a}=function(t,e,n){const{ut:r,parent:s}=nc(t,e),i={},o=[];let a=0;return n.forEach((t=>{const e="aggregate_"+a++;i[e]=t.alias,"count"===t.aggregateType?o.push({alias:e,count:{}}):"avg"===t.aggregateType?o.push({alias:e,avg:{field:uc(t.fieldPath)}}):"sum"===t.aggregateType&&o.push({alias:e,sum:{field:uc(t.fieldPath)}})})),{request:{structuredAggregationQuery:{aggregations:o,structuredQuery:r.structuredQuery},parent:r.parent},V_:i,parent:s}}(s.serializer,function(t){const e=Xr(t);return e.Pe||(e.Pe=oa(e,t.explicitOrderBy)),e.Pe}(e),n);s.connection.wo||delete i.parent;const u=(await s.vo("RunAggregationQuery",s.serializer.databaseId,a,i,1)).filter((t=>!!t.result));Wr(1===u.length);const c=null===(r=u[0].result)||void 0===r?void 0:r.aggregateFields;return Object.keys(c).reduce(((t,e)=>(t[o[e]]=c[e],t)),{})}(s,e,n))}catch(t){r.reject(t)}})),r.promise}(r,t._query,s).then((e=>function(t,e,n){const r=new Xm(t);return new Ng(e,r,n)}(n,t,e)))}class fp{constructor(t){this.kind="memory",this._onlineComponentProvider=new Ef,(null==t?void 0:t.garbageCollector)?this._offlineComponentProvider=t.garbageCollector._offlineComponentProvider:this._offlineComponentProvider=new vf}toJSON(){return{kind:this.kind}}}class gp{constructor(t){let e;this.kind="persistent",(null==t?void 0:t.tabManager)?(t.tabManager._initialize(t),e=t.tabManager):(e=Ep(void 0),e._initialize(t)),this._onlineComponentProvider=e._onlineComponentProvider,this._offlineComponentProvider=e._offlineComponentProvider}toJSON(){return{kind:this.kind}}}class mp{constructor(){this.kind="memoryEager",this._offlineComponentProvider=new vf}toJSON(){return{kind:this.kind}}}class pp{constructor(t){this.kind="memoryLru",this._offlineComponentProvider=new bf(t)}toJSON(){return{kind:this.kind}}}function yp(){return new mp}function wp(t){return new pp(null==t?void 0:t.cacheSizeBytes)}function vp(t){return new fp(t)}function bp(t){return new gp(t)}class _p{constructor(t){this.forceOwnership=t,this.kind="persistentSingleTab"}toJSON(){return{kind:this.kind}}_initialize(t){this._onlineComponentProvider=new Ef,this._offlineComponentProvider=new _f(this._onlineComponentProvider,null==t?void 0:t.cacheSizeBytes,this.forceOwnership)}}class Ip{constructor(){this.kind="PersistentMultipleTab"}toJSON(){return{kind:this.kind}}_initialize(t){this._onlineComponentProvider=new Ef,this._offlineComponentProvider=new If(this._onlineComponentProvider,null==t?void 0:t.cacheSizeBytes)}}function Ep(t){return new _p(null==t?void 0:t.forceOwnership)}function Tp(){return new Ip}const Sp={maxAttempts:5};class xp{constructor(t,e){this._firestore=t,this._commitHandler=e,this._mutations=[],this._committed=!1,this._dataReader=zg(t)}set(t,e,n){this._verifyNotCommitted();const r=Cp(t,this._firestore),s=Fm(r.converter,e,n),i=Gg(this._dataReader,"WriteBatch.set",r._key,s,null!==r.converter,n);return this._mutations.push(i.toMutation(r._key,Qa.none())),this}update(t,e,n,...r){this._verifyNotCommitted();const s=Cp(t,this._firestore);let i;return i="string"==typeof(e=v(e))||e instanceof Rg?Xg(this._dataReader,"WriteBatch.update",s._key,e,n,r):Yg(this._dataReader,"WriteBatch.update",s._key,e),this._mutations.push(i.toMutation(s._key,Qa.exists(!0))),this}delete(t){this._verifyNotCommitted();const e=Cp(t,this._firestore);return this._mutations=this._mutations.concat(new ou(e._key,Qa.none())),this}commit(){return this._verifyNotCommitted(),this._committed=!0,this._mutations.length>0?this._commitHandler(this._mutations):Promise.resolve()}_verifyNotCommitted(){if(this._committed)throw new Zr(Jr.FAILED_PRECONDITION,"A write batch can no longer be used after commit() has been called.")}}function Cp(t,e){if((t=v(t)).firestore!==e)throw new Zr(Jr.INVALID_ARGUMENT,"Provided document reference is from a different Firestore instance.");return t}class Dp extends class{constructor(t,e){this._firestore=t,this._transaction=e,this._dataReader=zg(t)}get(t){const e=Cp(t,this._firestore),n=new Vm(this._firestore);return this._transaction.lookup([e._key]).then((t=>{if(!t||1!==t.length)return Hr();const r=t[0];if(r.isFoundDocument())return new um(this._firestore,n,r.key,r,e.converter);if(r.isNoDocument())return new um(this._firestore,n,e._key,null,e.converter);throw Hr()}))}set(t,e,n){const r=Cp(t,this._firestore),s=Fm(r.converter,e,n),i=Gg(this._dataReader,"Transaction.set",r._key,s,null!==r.converter,n);return this._transaction.set(r._key,i),this}update(t,e,n,...r){const s=Cp(t,this._firestore);let i;return i="string"==typeof(e=v(e))||e instanceof Rg?Xg(this._dataReader,"Transaction.update",s._key,e,n,r):Yg(this._dataReader,"Transaction.update",s._key,e),this._transaction.update(s._key,i),this}delete(t){const e=Cp(t,this._firestore);return this._transaction.delete(e._key),this}}{constructor(t,e){super(t,e),this._firestore=t}get(t){const e=Cp(t,this._firestore),n=new Xm(this._firestore);return super.get(t).then((t=>new Km(this._firestore,n,e._key,t._document,new jm(!1,!1),e.converter)))}}function Ap(t,e,n){t=Yf(t,fg);const r=Object.assign(Object.assign({},Sp),n);return function(t){if(t.maxAttempts<1)throw new Zr(Jr.INVALID_ARGUMENT,"Max attempts must be at least 1")}(r),function(t,e,n){const r=new ts;return t.asyncQueue.enqueueAndForget((async()=>{const s=await qf(t);new Df(t.asyncQueue,s,n,e,r).ja()})),r.promise}(pg(t),(n=>e(new Dp(t,n))),r)}function Np(){return new jg("deleteField")}function kp(){return new $g("serverTimestamp")}function Rp(...t){return new Qg("arrayUnion",t)}function Mp(...t){return new Hg("arrayRemove",t)}function Lp(t){return new Wg("increment",t)}function Op(t){return pg(t=Yf(t,fg)),new xp(t,(e=>cp(t,e)))}function Pp(t,e){var n;const r=pg(t=Yf(t,fg));if(!r._uninitializedComponentsProvider||"memory"===(null===(n=r._uninitializedComponentsProvider)||void 0===n?void 0:n._offlineKind))return $r("Cannot enable indexes when persistence is disabled"),Promise.resolve();const s=function(t){const e="string"==typeof t?function(t){try{return JSON.parse(t)}catch(t){throw new Zr(Jr.INVALID_ARGUMENT,"Failed to parse JSON: "+(null==t?void 0:t.message))}}(t):t,n=[];if(Array.isArray(e.indexes))for(const t of e.indexes){const e=Fp(t,"collectionGroup"),r=[];if(Array.isArray(t.fields))for(const e of t.fields){const t=im("setIndexConfiguration",Fp(e,"fieldPath"));"CONTAINS"===e.arrayConfig?r.push(new xs(t,2)):"ASCENDING"===e.order?r.push(new xs(t,0)):"DESCENDING"===e.order&&r.push(new xs(t,1))}n.push(new Is(Is.UNKNOWN_ID,e,r,Ds.empty()))}return n}(e);return function(t,e){return t.asyncQueue.enqueue((async()=>async function(t,e){const n=Xr(t),r=n.indexManager,s=[];return n.persistence.runTransaction("Configure indexes","readwrite",(t=>r.getFieldIndexes(t).next((n=>function(t,e,n,r,s){t=[...t],e=[...e],t.sort(n),e.sort(n);const i=t.length,o=e.length;let a=0,u=0;for(;a0?r(e[a++]):(a++,u++)}for(;a{s.push(r.addFieldIndex(t,e))}),(e=>{s.push(r.deleteFieldIndex(t,e))})))).next((()=>Ps.waitFor(s)))))}(await Pf(t),e)))}(r,s)}function Fp(t,e){if("string"!=typeof t[e])throw new Zr(Jr.INVALID_ARGUMENT,"Missing string value for: "+e);return t[e]}class Vp{constructor(t){this._client=t,this.type="PersistentCacheIndexManager"}}function qp(t){var e;t=Yf(t,fg);const n=jp.get(t);if(n)return n;const r=pg(t);if("persistent"!==(null===(e=r._uninitializedComponentsProvider)||void 0===e?void 0:e._offlineKind))return null;const s=new Vp(r);return jp.set(t,s),s}function Bp(t){Gp(t,!0)}function Up(t){Gp(t,!1)}function zp(t){t._client.verifyNotTerminated(),function(t){return t.asyncQueue.enqueue((async()=>function(t){const e=Xr(t),n=e.indexManager;return e.persistence.runTransaction("Delete All Indexes","readwrite",(t=>n.deleteAllFieldIndexes(t)))}(await Pf(t))))}(t._client).then((t=>jr("deleting all persistent cache indexes succeeded"))).catch((t=>$r("deleting all persistent cache indexes failed",t)))}function Gp(t,e){t._client.verifyNotTerminated(),function(t,e){return t.asyncQueue.enqueue((async()=>function(t,e){Xr(t).ts.Ui=e}(await Pf(t),e)))}(t._client,e).then((t=>jr(`setting persistent cache index auto creation isEnabled=${e} succeeded`))).catch((t=>$r(`setting persistent cache index auto creation isEnabled=${e} failed`,t)))}const jp=new WeakMap;class Kp{constructor(){throw new Error("instances of this class should not be created")}static onExistenceFilterMismatch(t){return $p.instance.onExistenceFilterMismatch(t)}}class $p{constructor(){this.Cu=new Map}static get instance(){return Qp||(Qp=new $p,function(t){if(yu)throw new Error("a TestingHooksSpi instance is already set");yu=t}(Qp)),Qp}tt(t){this.Cu.forEach((e=>e(t)))}onExistenceFilterMismatch(t){const e=Symbol(),n=this.Cu;return n.set(e,t),()=>n.delete(e)}}let Qp=null;!function(t,e=!0){!function(t){Br=t}(i.SDK_VERSION),i._registerComponent(new b("firestore",((t,{instanceIdentifier:n,options:r})=>{const s=t.getProvider("app").getImmediate(),i=new fg(new ss(t.getProvider("auth-internal")),new us(t.getProvider("app-check-internal")),function(t,e){if(!Object.prototype.hasOwnProperty.apply(t.options,["projectId"]))throw new Zr(Jr.INVALID_ARGUMENT,'"projectId" not provided in firebase.initializeApp.');return new Hi(t.options.projectId,e)}(s,n),s);return r=Object.assign({useFetchStreams:e},r),i._setSettings(r),i}),"PUBLIC").setMultipleInstances(!0)),i.registerVersion(Vr,"4.4.2",t),i.registerVersion(Vr,"4.4.2","esm2017")}()})); \ No newline at end of file diff --git a/frontend-dist/help-circle-outline.a023036a.svg b/frontend-dist/help-circle-outline.a023036a.svg new file mode 100644 index 0000000000..17ce1e0bc9 --- /dev/null +++ b/frontend-dist/help-circle-outline.a023036a.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend-dist/index.61105732.css b/frontend-dist/index.61105732.css new file mode 100644 index 0000000000..b8599f7c64 --- /dev/null +++ b/frontend-dist/index.61105732.css @@ -0,0 +1 @@ +*{box-sizing:border-box}html{font-size:17px}#title h1{color:var(--pluto-output-h-color);font-family:Vollkorn,serif;font-size:2em;font-style:italic;font-weight:500;letter-spacing:.08em;margin:0;padding:4rem 1rem 3rem;text-align:center}#title h1 img{filter:var(--image-filters);height:1.2em;margin-bottom:-.27em;margin-left:.1em;width:4.9em}body{background:var(--main-bg-color);margin:0;min-height:100%;position:absolute;width:100%}p{color:var(--index-text-color)}ul{list-style:none;padding-left:0}li{border-bottom:1px solid var(--welcome-recentnotebook-border);padding:.4em;white-space:nowrap}a{color:inherit;color:var(--index-clickable-text-color)}pluto-filepicker{background:var(--white);display:flex;flex-direction:row}.desktop_picker{display:flex;flex-direction:row;margin-left:5px}pluto-filepicker .cm-editor{background:none;border:2px solid var(--footer-filepicker-focus-color);border-radius:3px;border-bottom-right-radius:0;border-right:none;border-top-right-radius:0;color:var(--nav-filepicker-color);display:inline-block;flex:1 1 auto;font-family:var(--inter-ui-font-stack);font-size:.75rem;font-style:normal;font-weight:500;height:calc(1rem + 12px);letter-spacing:1px;width:100%;width:0}pluto-filepicker .cm-scroller{scrollbar-width:none}pluto-filepicker .cm-scroller::-webkit-scrollbar{display:none}.desktop_picker button,pluto-filepicker button{background:var(--footer-filepicker-focus-color);border:2px solid var(--nav-filepicker-focus-color);border-radius:3px;color:var(--white);font-family:Roboto Mono,monospace;font-size:.75rem;font-weight:600;margin:0}.desktop_picker_group{display:inline-flex}.desktop_picker_group>input{margin-left:1em}.desktop_picker>button{cursor:pointer}.desktop_picker>button.full_width{width:100%}pluto-filepicker button{border-bottom-left-radius:0;border-top-left-radius:0;cursor:pointer;flex:0 1 auto}pluto-filepicker button:disabled{cursor:not-allowed;opacity:.7}.cm-editor .cm-tooltip{border:1px solid var(--cm-editor-tooltip-border-color);border-radius:4px;box-shadow:3px 3px 4px rgb(0 0 0/20%)}.cm-tooltip-autocomplete{box-sizing:content-box;z-index:100}.cm-editor .cm-tooltip.cm-tooltip-autocomplete>ul{max-height:max(3em,min(50dvh,20em))}.cm-tooltip.cm-completionInfo.cm-completionInfo-right:empty{display:none}.cm-editor .cm-tooltip.cm-tooltip-autocomplete>ul>li{border-radius:3px;height:18px;margin-bottom:unset;overflow-y:hidden}.cm-editor .cm-tooltip.cm-tooltip-autocomplete>ul>li[aria-selected]{background:var(--cm-editor-li-aria-selected-bg-color);color:var(--cm-editor-li-aria-selected-color)}.cm-editor .cm-completionIcon{display:none}.cm-completionIcon:before{color:transparent;content:"⚫";margin-right:.5em;opacity:1}.cm-tooltip.cm-tooltip-autocomplete{background:var(--autocomplete-menu-bg-color);margin-left:-1.5em;padding:0}.cm-tooltip-autocomplete li.file.new:before{content:"👉 "}.cm-tooltip-autocomplete li.file:before{content:"📄 "}.cm-tooltip-autocomplete li.dir:before{content:"📁 "}.cm-tooltip-autocomplete>ul{padding:0}.cm-editor .cm-tooltip-autocomplete .cm-completionLabel{font-family:var(--inter-ui-font-stack);font-size:.8rem;font-variant-ligatures:none;font-weight:400}body.nosessions ul#new~*{display:none}#recent{scrollbar-gutter:stable;background:var(--welcome-recentnotebook-bg);border:.2rem solid #d5d5d5;border-radius:.4rem;box-shadow:-2px 4px 9px 0 #00000012;max-height:16em;overflow-x:hidden;overflow-y:auto}#recent>li.recent{opacity:.8}#recent button{background:none;border:none;color:var(--ui-button-color);cursor:pointer;margin:0 .2em 0 0;opacity:.6;padding:1px}span.ionicon:after{background-size:1rem 1rem;content:" ";display:inline-block;filter:var(--image-filters);height:1rem;margin-bottom:-.17rem;width:1rem}#recent li.running button>span:after{background-image:url(close-circle.d0f6eac6.svg)}#recent li.recent button>span:after{background-image:url(caret-forward-circle-outline.d0bf2b34.svg)}#recent li.transitioning button>span:after{background-image:url(ellipsis-horizontal-outline.abb6e818.svg)}#recent li.new span:after{background-image:url(add-outline.e3c93c35.svg)}loading-bar{background-color:var(--loading-grad-color-1);display:none;height:6px;position:fixed;top:0;width:100vw}body.loading loading-bar{animation:load 16s ease-in-out;display:block}@keyframes load{0%{right:100vw}20%{right:30vw}to{right:0}}.card-list{display:grid;place-items:center;align-items:stretch;gap:0;grid-template-columns:repeat(auto-fit,minmax(var(--card-width),1fr));justify-items:stretch}.navigating-away-banner{display:grid;min-height:70vh;padding:3em;place-content:center;width:100vw}.navigating-away-banner h2{overflow:hidden;text-overflow:ellipsis;white-space:nowrap} \ No newline at end of file diff --git a/frontend-dist/index.6587449d.js b/frontend-dist/index.6587449d.js new file mode 100644 index 0000000000..153725763b --- /dev/null +++ b/frontend-dist/index.6587449d.js @@ -0,0 +1,122 @@ +var e="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},t={},o={},n=e.parcelRequire94c2;null==n&&((n=function(e){if(e in t)return t[e].exports;if(e in o){var n=o[e];delete o[e];var r={id:e,exports:{}};return t[e]=r,n.call(r.exports,r,r.exports),r.exports}var a=new Error("Cannot find module '"+e+"'");throw a.code="MODULE_NOT_FOUND",a}).register=function(e,t){o[e]=t},e.parcelRequire94c2=n);var r=n("cNaMA");n("eS9BV");var a,i,l,s,c={};a=c,i="Welcome",l=()=>q,s=e=>q=e,Object.defineProperty(a,i,{get:l,set:s,enumerable:!0,configurable:!0}),n("9Ta4i");r=n("cNaMA"),r=n("cNaMA");var u=n("4zMEb");const d=async()=>{let e=await fetch("https://api.github.com/repos/fonsp/Pluto.jl/releases",{method:"GET",mode:"cors",cache:"no-cache",headers:{"Content-Type":"application/json"},redirect:"follow",referrerPolicy:"no-referrer"});return(await e.json()).reverse()};n("9Ta4i");r=n("cNaMA");var p=n("2ZZ1r"),h=n("hrGZZ");r=n("cNaMA");const f=e=>{const t=`${e}\n`.replace("\r\n","\n"),o=t.indexOf("### A Pluto.jl notebook ###"),n=t.match(/# ... ........-....-....-....-............/g),r=(null==n?void 0:n.length)??0;let a=t.indexOf("# ╔═╡ Cell order:")+17+1;for(let e=1;e<=r;e++)a=t.indexOf("\n",a+1)+1;return t.slice(o,a)},m=({on_start_navigation:e})=>{const t=async t=>{var o;let n;if(console.log(t),(null===(o=((null==t?void 0:t.path)??(null==t?void 0:t.composedPath())).filter((e=>{var t;return null==e||null===(t=e.classList)||void 0===t?void 0:t.contains(".cm-editor")})))||void 0===o?void 0:o.length)>0)return;switch(t.type){case"paste":n=f(t.clipboardData.getData("text/plain"));break;case"dragstart":return void(t.dataTransfer.dropEffect="move");case"dragover":return void t.preventDefault();case"drop":t.preventDefault(),n=t.dataTransfer.types.includes("Files")?await(a=t.dataTransfer.files[0],new Promise(((e,t)=>{const{name:o,type:n}=a,r=new FileReader;r.onerror=()=>t("Failed to read file!"),r.onloadstart=()=>{},r.onprogress=({loaded:e,total:t})=>{},r.onload=()=>{},r.onloadend=()=>e({file:r.result,name:o,type:n}),r.readAsText(a)}))).then((({file:e})=>e)):f(await(r=t.dataTransfer.items[0],new Promise(((e,t)=>{try{r.getAsString((t=>{console.log(t),e(t)}))}catch(e){t(e)}}))))}var r,a;if(!n)return;e("notebook from clipboard",!1),document.body.classList.add("loading");const i=await fetch("./notebookupload",{method:"POST",body:n});if(i.ok)window.location.href=b(await i.text());else{let e=await i.blob();window.location.href=URL.createObjectURL(e)}};return h.useEventListener(document,"paste",t,[t]),h.useEventListener(document,"drop",t,[t]),h.useEventListener(document,"dragstart",t,[t]),h.useEventListener(document,"dragover",t,[t]),r.html``};var _=n("1xJnC");const v=({client:e,connected:t,CustomPicker:o,show_samples:n,on_start_navigation:a})=>{const i=o??{text:"Open a notebook",placeholder:"Enter path or URL..."};return r.html`<${m} on_start_navigation=${a} /> +

    ${i.text}

    +
    + <${p.FilePicker} + key=${i.placeholder} + client=${e} + value="" + on_submit=${async e=>{const t=await _.guess_notebook_location(e);a(t.path_or_url),window.location.href=("path"===t.type?g:w)(t.path_or_url)}} + on_desktop_submit=${async e=>{var t;null===(t=window.plutoDesktop)||void 0===t||t.fileSystem.openNotebook("path")}} + button_label=${window.plutoDesktop?"Open File":"Open"} + placeholder=${i.placeholder} + /> + ${window.plutoDesktop&&r.html`<${p.FilePicker} + key=${i.placeholder} + client=${e} + value="" + on_desktop_submit=${async e=>{var t;null===(t=window.plutoDesktop)||void 0===t||t.fileSystem.openNotebook("url",e)}} + button_label="Open from URL" + placeholder=${i.placeholder} + />`} +
    `},g=(e,t=!1)=>"open?"+new URLSearchParams({path:e}).toString(),w=e=>"open?"+new URLSearchParams({url:e}).toString(),b=e=>"edit?id="+e;var y=n("9Ta4i"),k=(r=n("cNaMA"),r=n("cNaMA"),n("aN0pg")),$=n("dYd4C");const P=e=>({transitioning:!1,entry:void 0,path:e}),j=e=>({transitioning:!1,entry:e,path:e.path}),S=(e,t)=>e.split(/\/|\\/).slice(-t).join("/"),E=(e,t)=>{let o=1;for(const n of t)if(n!==e)for(;S(e,o)===S(n,o);)o++;return S(e,o)},x=({client:e,connected:t,remote_notebooks:o,CustomRecent:n,on_start_navigation:a})=>{const[i,l]=r.useState(null),s=r.useRef(i);s.current=i;const c=(e,t)=>{l((o=>(null==o?void 0:o.map((o=>o.path==e?{...o,...t}:o)))??null))};r.useEffect((()=>{null!=e&&t&&e.send("get_all_notebooks",{},{}).then((({message:e})=>{const t=e.notebooks.map((e=>j(e))),o=L(),n=[...y.default.sortBy(t,[e=>y.default.findIndex([...o,...t],(t=>t.path===e.path))]),...y.default.differenceBy(o,t,(e=>e.path))];l(n),document.body.classList.remove("loading")}))}),[null!=e&&t]),r.useEffect((()=>{const e=o;if(null!=s.current){const t=[],o=s.current.map((o=>{let n=null;if(n=null!=o.entry?e.find((e=>{var t;return e.notebook_id===(null===(t=o.entry)||void 0===t?void 0:t.notebook_id)})):e.find((e=>e.path===o.path)),null==n)return P(o.path);{const e=j(n);return t.push(n),e}})),n=e.filter((e=>!t.includes(e))).map(j);l([...n,...o])}}),[o]);r.useEffect((()=>{document.body.classList.toggle("nosessions",!(null==i||i.length>0))}),[i]);const u=null==i?void 0:i.map((e=>e.path));let d=null==i?r.html`
  • Loading...
  • `:i.map((t=>{var o,n;const i=null!=t.entry;return r.html`
  • + + {i||(a(E(t.path,u)),c(t.path,{transitioning:!0}))}} + >${E(t.path,u)} +
  • `}));return null==n?r.html` +

    My work

    + + `:r.html`<${n} cl=${k.cl} combined=${i} client=${e} recents=${d} />`},L=()=>{const e=localStorage.getItem("recent notebooks"),t=null!=e?JSON.parse(e):[];return(t instanceof Array?t:[]).map(P)};y=n("9Ta4i"),r=n("cNaMA");var T=n("h2NGW"),C=n("1Mxs0");const N=[{title:"Featured Notebooks",description:"These notebooks from the Julia community show off what you can do with Pluto. Give it a try, you might learn something new!",collections:[{title:"Loading...",tags:[]}],notebooks:{}}],A=r.html` + +`,O=[{title:"Notebooks",tags:"everything"}],R=e=>(null==e?void 0:e.id)??e.url,M=({sources:e,direct_html_links:t})=>{const[o,n]=r.useState({});r.useEffect((()=>{if(null!=e){i(!1),n({});const t=Array.from(new Set(e.map(R))).map((t=>{const o=e.filter((e=>R(e)===t));return U(o.map((async e=>{const{url:o,integrity:n,valid_until:r}=e;if(null!=r&&new Date(r){n((n=>({...n,[t]:{...e,source_url:o}})))}))}));Promise.any(t).catch((e=>{console.error("All featured sources failed to load: ",e),((null==e?void 0:e.errors)??[]).forEach((e=>console.error(e))),i(!0)}))}}),[e]),r.useEffect((()=>{Object.entries(o).length>0&&console.log("Sources:",o)}),[o]);const[a,i]=r.useState(!1);r.useEffect((()=>{setTimeout((()=>{i(!0)}),8e3)}),[]);const l=0===Object.entries(o).length,s=Array.from(new Set((null==e?void 0:e.map(R))??[])).map((e=>o[e])).filter((e=>null!=e));return l&&a?A:r.html` + ${(l?N:s).map((e=>{let o=(null==e?void 0:e.collections)??O;return r.html` + + `}))} + `};T.default(M,"pluto-featured",["sources","direct_html_links"]);const D=(e,t)=>{const o="everything"===t?e:e.filter((e=>t.some((t=>{var o;return((null===(o=e.frontmatter)||void 0===o?void 0:o.tags)??[]).includes(t)}))));return y.default.sortBy(o,[e=>{var t;return(e=>isNaN(e)?e:Number(e))(null==e||null===(t=e.frontmatter)||void 0===t?void 0:t.order)},"id"])},U=(e,t=[])=>e.length<=1?Promise.any([...e,...t]):e[0].catch((()=>U(e.slice(1),[...t,e[0]])));var F,I=n("cpCG6"),G={sources:[{url:"https://featured.plutojl.org/pluto_export.json",valid_until:"2025-10",id:"featured pluto"},{id:"featured pluto",url:"https://cdn.jsdelivr.net/gh/JuliaPluto/featured@v4/pluto_export.json",integrity:"sha256-YT5Msj4Iy4cJIuHQi09h3+AwxzreK46WS6EySbPPmJM="}]};const J=(null===(F=document.head.querySelector("link[rel='pluto-logo-big']"))||void 0===F?void 0:F.getAttribute("href"))??"",q=({launch_params:e})=>{const[t,o]=r.useState([]),[n,a]=r.useState(!1),[i,l]=r.useState({show_samples:!0,CustomPicker:null,CustomRecent:null}),s=r.useRef({});r.useEffect((()=>{const t=a;u.create_pluto_connection({on_unrequested_update:({message:e,type:t})=>{"notebook_list"===t&&o(e.notebooks)},on_connection_status:t,on_reconnect:()=>!0,ws_address:e.pluto_server_url?u.ws_address_from_base(e.pluto_server_url):void 0}).then((async e=>{Object.assign(s.current,e),a(!0);try{const t=await I.get_environment(e),{custom_recent:o,custom_filepicker:n,show_samples:a=!0}=t({client:e,editor:void 0,imports:{preact:r}});l((e=>({...e,CustomRecent:o,CustomPicker:n,show_samples:a})))}catch(e){}(e=>{d().then((t=>{const o=e.version_info.pluto,n=t[t.length-1].tag_name;console.log(`Pluto version ${o}`);const r=t.findIndex((e=>e.tag_name===o));-1!==r&&t.slice(r+1).filter((e=>e.body.toLowerCase().includes("recommended update"))).length>0&&(console.log(`Newer version ${n} is available`),e.version_info.dismiss_update_notification||alert("A new version of Pluto.jl is available! 🎉\n\n You have "+o+", the latest is "+n+'.\n\nYou can update Pluto.jl using the julia package manager:\n import Pkg; Pkg.update("Pluto")\nAfterwards, exit Pluto.jl and restart julia.'))})).catch((()=>{}))})(e),e.send("current_time"),e.send("completepath",{query:""},{})}))}),[]);const{show_samples:c,CustomRecent:p,CustomPicker:h}=i,[f,m]=r.useState(null),_=(e,t=!0)=>{if(t){const t=t=>{m(e)};window.addEventListener("beforeunload",t),setTimeout((()=>window.removeEventListener("beforeunload",t)),1e3)}else m(e)},g=r.useMemo((()=>e.featured_sources??(e.featured_source_url?[{url:e.featured_source_url,integrity:e.featured_source_integrity}]:G.sources)),[e]);return null!=f?r.html` + + `:r.html` +
    +

    welcome to

    +
    +
    +
    + <${x} + client=${s.current} + connected=${n} + remote_notebooks=${t} + CustomRecent=${p} + on_start_navigation=${_} + /> +
    +
    +
    +
    + <${v} + client=${s.current} + connected=${n} + CustomPicker=${h} + show_samples=${c} + on_start_navigation=${_} + /> +
    +
    + + `},B=new URLSearchParams(window.location.search),H={featured_direct_html_links:!!(B.get("featured_direct_html_links")??window.pluto_featured_direct_html_links),featured_sources:window.pluto_featured_sources,featured_source_url:B.get("featured_source_url")??window.pluto_featured_source_url,featured_source_integrity:B.get("featured_source_integrity")??window.pluto_featured_source_integrity,pluto_server_url:B.get("pluto_server_url")??window.pluto_server_url};console.log("Launch parameters: ",H),r.render(r.html`<${c.Welcome} launch_params=${H} />`,document.querySelector("#app")); \ No newline at end of file diff --git a/frontend-dist/index.dbc7264b.css b/frontend-dist/index.dbc7264b.css new file mode 100644 index 0000000000..17a18c7ef8 --- /dev/null +++ b/frontend-dist/index.dbc7264b.css @@ -0,0 +1 @@ +@font-face{font-display:swap;font-family:Inter;font-style:normal;font-weight:100;src:url(Inter-Thin.woff2.a3efb88f6f.099a7dc1.woff2) format("woff2"),url(Inter-Thin.woff.a3efb88f6f.832f7e9d.woff) format("woff")}@font-face{font-display:swap;font-family:Inter;font-style:italic;font-weight:100;src:url(Inter-ThinItalic.woff2.a3efb88f6f.f5b32cfe.woff2) format("woff2"),url(Inter-ThinItalic.woff.a3efb88f6f.9a9e646f.woff) format("woff")}@font-face{font-display:swap;font-family:Inter;font-style:normal;font-weight:200;src:url(Inter-ExtraLight.woff2.a3efb88f6f.735b820a.woff2) format("woff2"),url(Inter-ExtraLight.woff.a3efb88f6f.018d6d24.woff) format("woff")}@font-face{font-display:swap;font-family:Inter;font-style:italic;font-weight:200;src:url(Inter-ExtraLightItalic.woff2.a3efb88f6f.75944d4e.woff2) format("woff2"),url(Inter-ExtraLightItalic.woff.a3efb88f6f.c051c5b4.woff) format("woff")}@font-face{font-display:swap;font-family:Inter;font-style:normal;font-weight:300;src:url(Inter-Light.woff2.a3efb88f6f.f86a8a97.woff2) format("woff2"),url(Inter-Light.woff.a3efb88f6f.0cf765a1.woff) format("woff")}@font-face{font-display:swap;font-family:Inter;font-style:italic;font-weight:300;src:url(Inter-LightItalic.woff2.a3efb88f6f.cb22faff.woff2) format("woff2"),url(Inter-LightItalic.woff.a3efb88f6f.6c91af65.woff) format("woff")}@font-face{font-display:swap;font-family:Inter;font-style:normal;font-weight:400;src:url(Inter-Regular.woff2.a3efb88f6f.c52a047f.woff2) format("woff2"),url(Inter-Regular.woff.a3efb88f6f.d9325c13.woff) format("woff")}@font-face{font-display:swap;font-family:Inter;font-style:italic;font-weight:400;src:url(Inter-Italic.woff2.a3efb88f6f.85eee0c1.woff2) format("woff2"),url(Inter-Italic.woff.a3efb88f6f.d9effa31.woff) format("woff")}@font-face{font-display:swap;font-family:Inter;font-style:normal;font-weight:500;src:url(Inter-Medium.woff2.a3efb88f6f.4f0ea984.woff2) format("woff2"),url(Inter-Medium.woff.a3efb88f6f.cb391d89.woff) format("woff")}@font-face{font-display:swap;font-family:Inter;font-style:italic;font-weight:500;src:url(Inter-MediumItalic.woff2.a3efb88f6f.2b734b7a.woff2) format("woff2"),url(Inter-MediumItalic.woff.a3efb88f6f.1f636c25.woff) format("woff")}@font-face{font-display:swap;font-family:Inter;font-style:normal;font-weight:600;src:url(Inter-SemiBold.woff2.a3efb88f6f.08366574.woff2) format("woff2"),url(Inter-SemiBold.woff.a3efb88f6f.c6670c13.woff) format("woff")}@font-face{font-display:swap;font-family:Inter;font-style:italic;font-weight:600;src:url(Inter-SemiBoldItalic.woff2.a3efb88f6f.5c7db07d.woff2) format("woff2"),url(Inter-SemiBoldItalic.woff.a3efb88f6f.13394743.woff) format("woff")}@font-face{font-display:swap;font-family:Inter;font-style:normal;font-weight:700;src:url(Inter-Bold.woff2.a3efb88f6f.e8bd971d.woff2) format("woff2"),url(Inter-Bold.woff.a3efb88f6f.d92ed350.woff) format("woff")}@font-face{font-display:swap;font-family:Inter;font-style:italic;font-weight:700;src:url(Inter-BoldItalic.woff2.a3efb88f6f.cd6e580e.woff2) format("woff2"),url(Inter-BoldItalic.woff.a3efb88f6f.39f68e5f.woff) format("woff")}@font-face{font-display:swap;font-family:Inter;font-style:normal;font-weight:800;src:url(Inter-ExtraBold.woff2.a3efb88f6f.ffc04ff0.woff2) format("woff2"),url(Inter-ExtraBold.woff.a3efb88f6f.cd51bf91.woff) format("woff")}@font-face{font-display:swap;font-family:Inter;font-style:italic;font-weight:800;src:url(Inter-ExtraBoldItalic.woff2.a3efb88f6f.de4f3979.woff2) format("woff2"),url(Inter-ExtraBoldItalic.woff.a3efb88f6f.122106d3.woff) format("woff")}@font-face{font-display:swap;font-family:Inter;font-style:normal;font-weight:900;src:url(Inter-Black.woff2.a3efb88f6f.1f333c9f.woff2) format("woff2"),url(Inter-Black.woff.a3efb88f6f.efe3f25b.woff) format("woff")}@font-face{font-display:swap;font-family:Inter;font-style:italic;font-weight:900;src:url(Inter-BlackItalic.woff2.a3efb88f6f.89710fff.woff2) format("woff2"),url(Inter-BlackItalic.woff.a3efb88f6f.f6e2e726.woff) format("woff")}@font-face{font-named-instance:"Regular";font-display:swap;font-family:Inter var;font-style:normal;font-weight:100 900;src:url(Inter-roman.var.woff2.a3efb88f6f.8120837c.woff2) format("woff2 supports variations(gvar)"),url(Inter-roman.var.woff2.a3efb88f6f.8120837c.woff2) format("woff2-variations"),url(Inter-roman.var.woff2.a3efb88f6f.8120837c.woff2) format("woff2")}@font-face{font-named-instance:"Italic";font-display:swap;font-family:Inter var;font-style:italic;font-weight:100 900;src:url(Inter-italic.var.woff2.a3efb88f6f.e62a3bb2.woff2) format("woff2 supports variations(gvar)"),url(Inter-italic.var.woff2.a3efb88f6f.e62a3bb2.woff2) format("woff2-variations"),url(Inter-italic.var.woff2.a3efb88f6f.e62a3bb2.woff2) format("woff2")}@font-face{font-display:swap;font-family:Inter var experimental;font-style:oblique 0deg 10deg;font-weight:100 900;src:url(Inter.var.woff2.a3efb88f6f.ca82f9aa.woff2) format("woff2-variations"),url(Inter.var.woff2.a3efb88f6f.ca82f9aa.woff2) format("woff2")}:root{--pluto-cell-spacing:17px;--pluto-operator-ligatures:none;--julia-mono-font-stack:JuliaMono,Menlo,"Roboto Mono","Lucida Sans Typewriter","Source Code Pro",monospace;--sans-serif-font-stack:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen,Ubuntu,Cantarell,"Open Sans","Helvetica Neue",sans-serif;--lato-ui-font-stack:"Lato",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Cantarell,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol",system-ui,sans-serif;--inter-ui-font-stack:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Cantarell,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol",system-ui,sans-serif;color-scheme:light dark}html{font-family:var(--inter-ui-font-stack);font-size:17px}main{display:block;margin:0 auto;max-width:1200px;padding:1rem}header{background-color:#f5efd2;background-size:cover;display:flex;justify-content:center;padding:1.3rem}header h1{font-weight:500;text-align:center}section#mywork,section#open{background:var(--welcome-mywork-bg);position:relative}.pluto-logo{align-items:center;color:inherit;flex-direction:row;font-family:var(--inter-ui-font-stack);font-style:normal;font-weight:800;gap:.5ch;padding:.5em;transform:translateY(.23em)}.pluto-logo img{height:1.2em;width:1.2em}#new{background:var(--welcome-open-bg);border-radius:.6rem;box-shadow:-2px 4px 9px 0 #00000012;margin:1rem;padding:1.3rem}#new.desktop_opener{align-content:center;box-shadow:none;display:flex;flex-direction:row;justify-content:space-around;position:relative}#new.desktop_opener .desktop_picker{width:100%}section{display:flex;flex-direction:row;justify-content:center}section>div{flex:1 1 auto;margin:1rem;max-width:614px;min-width:0}.pluto-logo{background:#fff;border-radius:.4em;display:flex;flex:0 1 auto;font-size:1.6rem;transform:none}section#open{position:relative}section#featured>div{max-width:900px}header>div{display:flex;flex:1 1 auto;max-width:62rem;z-index:1}section#mywork:before,section#open:after{--c:rgba(53,72,80,0.06);background:linear-gradient(0deg,transparent,var(--c));content:"";display:block;height:50px;left:0;pointer-events:none;position:absolute;right:0;top:0;z-index:0}:where(#mywork,#open) h2{--off:4px;--offm:-4px;--oc:#fff;border-radius:.4em;display:inline-block;margin:2rem 0 0}section#open:after{background:linear-gradient(0deg,var(--c),transparent);bottom:0;top:unset}div#app{background-position:0 77%;background-size:cover}.new a{font-style:italic;font-weight:500;text-decoration:none}li.new{background:var(--welcome-newnotebook-bg);position:sticky;top:0;z-index:2}h1{font-size:2.8rem;margin-block-end:0}.collection{margin:6em 0}.collection h2{font-size:2.5rem;font-weight:600;margin:0}#featured p{max-width:54ch}#github img{aspect-ratio:1;filter:var(--image-filters);width:2rem}a#github{display:block;position:absolute;right:.5rem;top:.5rem}.show_scrollbar::-webkit-scrollbar{opacity:.1;width:10px}.show_scrollbar::-webkit-scrollbar-thumb{background-color:var(--black);border-radius:1000px;opacity:.6}.show_scrollbar::-webkit-scrollbar-thumb:hover{opacity:1} \ No newline at end of file diff --git a/frontend-dist/index.html b/frontend-dist/index.html new file mode 100644 index 0000000000..d92db91bb6 --- /dev/null +++ b/frontend-dist/index.html @@ -0,0 +1 @@ +Pluto.jl

    welcome to

    My work

    Open a notebook

    Loading...

    \ No newline at end of file diff --git a/frontend-dist/information-circle-outline.008b2bb9.svg b/frontend-dist/information-circle-outline.008b2bb9.svg new file mode 100644 index 0000000000..163c7e4d5a --- /dev/null +++ b/frontend-dist/information-circle-outline.008b2bb9.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend-dist/juliamono.c6034ab4.css b/frontend-dist/juliamono.c6034ab4.css new file mode 100644 index 0000000000..45b84c3479 --- /dev/null +++ b/frontend-dist/juliamono.c6034ab4.css @@ -0,0 +1 @@ +@font-face{font-display:swap;font-family:JuliaMono;font-weight:400;src:url(JuliaMono-RegularLatin.26c56b70.woff2) format("woff2");unicode-range:U+00-7f}@font-face{font-display:swap;font-family:JuliaMono;font-weight:700;src:url(JuliaMono-BoldLatin.7ec5c608.woff2) format("woff2");unicode-range:U+00-7f}@font-face{font-display:swap;font-family:JuliaMono;font-weight:400;src:url(JuliaMono-Regular.e0106c6f.woff2) format("woff2")}@font-face{font-display:swap;font-family:JuliaMono;font-weight:700;src:url(JuliaMono-Bold.24b57d33.woff2) format("woff2")}@font-face{font-display:swap;font-family:JuliaMono;font-style:italic;font-weight:400;src:url(JuliaMono-RegularItalic.3159f647.woff2) format("woff2")} \ No newline at end of file diff --git a/frontend-dist/lato-all-400-italic.c29c8c6c.woff b/frontend-dist/lato-all-400-italic.c29c8c6c.woff new file mode 100644 index 0000000000..6131624555 Binary files /dev/null and b/frontend-dist/lato-all-400-italic.c29c8c6c.woff differ diff --git a/frontend-dist/lato-all-400-normal.a1a68bdf.woff b/frontend-dist/lato-all-400-normal.a1a68bdf.woff new file mode 100644 index 0000000000..1f1fd49a12 Binary files /dev/null and b/frontend-dist/lato-all-400-normal.a1a68bdf.woff differ diff --git a/frontend-dist/lato-latin-400-italic.6edbc86c.woff2 b/frontend-dist/lato-latin-400-italic.6edbc86c.woff2 new file mode 100644 index 0000000000..3246c1286f Binary files /dev/null and b/frontend-dist/lato-latin-400-italic.6edbc86c.woff2 differ diff --git a/frontend-dist/lato-latin-400-normal.77db3602.woff2 b/frontend-dist/lato-latin-400-normal.77db3602.woff2 new file mode 100644 index 0000000000..6904b6649f Binary files /dev/null and b/frontend-dist/lato-latin-400-normal.77db3602.woff2 differ diff --git a/frontend-dist/lato-latin-ext-400-italic.336aaf51.woff2 b/frontend-dist/lato-latin-ext-400-italic.336aaf51.woff2 new file mode 100644 index 0000000000..69af6c080d Binary files /dev/null and b/frontend-dist/lato-latin-ext-400-italic.336aaf51.woff2 differ diff --git a/frontend-dist/lato-latin-ext-400-normal.e1ce8ad3.woff2 b/frontend-dist/lato-latin-ext-400-normal.e1ce8ad3.woff2 new file mode 100644 index 0000000000..0a0ee5eaed Binary files /dev/null and b/frontend-dist/lato-latin-ext-400-normal.e1ce8ad3.woff2 differ diff --git a/frontend-dist/logo.004c1d7c.svg b/frontend-dist/logo.004c1d7c.svg new file mode 100644 index 0000000000..cec701dc07 --- /dev/null +++ b/frontend-dist/logo.004c1d7c.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend-dist/mic-off-outline.251c22b7.svg b/frontend-dist/mic-off-outline.251c22b7.svg new file mode 100644 index 0000000000..5ff2a050d0 --- /dev/null +++ b/frontend-dist/mic-off-outline.251c22b7.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend-dist/mic-outline.e10eafe2.svg b/frontend-dist/mic-outline.e10eafe2.svg new file mode 100644 index 0000000000..96d55c507f --- /dev/null +++ b/frontend-dist/mic-outline.e10eafe2.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend-dist/newspaper-outline.e481c39c.svg b/frontend-dist/newspaper-outline.e481c39c.svg new file mode 100644 index 0000000000..c142efa0f1 --- /dev/null +++ b/frontend-dist/newspaper-outline.e481c39c.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend-dist/notifications-outline.aa91b431.svg b/frontend-dist/notifications-outline.aa91b431.svg new file mode 100644 index 0000000000..f284fa8886 --- /dev/null +++ b/frontend-dist/notifications-outline.aa91b431.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend-dist/parcel-manifest.json b/frontend-dist/parcel-manifest.json new file mode 100644 index 0000000000..ab7df48227 --- /dev/null +++ b/frontend-dist/parcel-manifest.json @@ -0,0 +1 @@ +{"editor.html":"./editor.html","img/favicon-16x16.png":"./favicon-16x16.347d2855.png","img/favicon-32x32.png":"./favicon-32x32.8789add4.png","img/favicon-96x96.png":"./favicon-96x96.48689391.png","img/logo.svg":"./logo.004c1d7c.svg","img/favicon_unsaturated.svg":"./favicon_unsaturated.d1387b25.svg","juliamono.css":"./juliamono.c6034ab4.css",".parcel-cache/.net/https/cdn.jsdelivr.net/gh/cormullion/juliamono@0.047/webfonts/JuliaMono-RegularLatin.woff2":"./JuliaMono-RegularLatin.26c56b70.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/gh/cormullion/juliamono@0.047/webfonts/JuliaMono-BoldLatin.woff2":"./JuliaMono-BoldLatin.7ec5c608.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/gh/cormullion/juliamono@0.047/webfonts/JuliaMono-Regular.woff2":"./JuliaMono-Regular.e0106c6f.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/gh/cormullion/juliamono@0.047/webfonts/JuliaMono-Bold.woff2":"./JuliaMono-Bold.24b57d33.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/gh/cormullion/juliamono@0.047/webfonts/JuliaMono-RegularItalic.woff2":"./JuliaMono-RegularItalic.3159f647.woff2","vollkorn.css":"./vollkorn.089565a8.css",".parcel-cache/.net/https/cdn.jsdelivr.net/gh/fonsp/Vollkorn-Typeface@1/fonts/woff2/Vollkorn-SemiBold.woff2":"./Vollkorn-SemiBold.8072eb6c.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/gh/fonsp/Vollkorn-Typeface@1/fonts/woff2/Vollkorn-SemiBoldItalic.woff2":"./Vollkorn-SemiBoldItalic.5c3cd265.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/gh/fonsp/Vollkorn-Typeface@1/fonts/woff2/Vollkorn-Bold.woff2":"./Vollkorn-Bold.6e1feb70.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/gh/fonsp/Vollkorn-Typeface@1/fonts/woff2/Vollkorn-BoldItalic.woff2":"./Vollkorn-BoldItalic.a48ab300.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/gh/fonsp/Vollkorn-Typeface@1/fonts/woff2/Vollkorn-Black.woff2":"./Vollkorn-Black.0ebdfbf5.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/gh/fonsp/Vollkorn-Typeface@1/fonts/woff2/Vollkorn-BlackItalic.woff2":"./Vollkorn-BlackItalic.4095acfe.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/lodash@4.17.20/lodash.min.js":"./editor.b8733d72.js",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/@observablehq/stdlib@3.3.1/dist/stdlib.js":"./editor.9f9dc874.js",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/iframe-resizer@4.2.11/js/iframeResizer.min.js":"./editor.90ede145.js",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/ansi_up@5.1.0/ansi_up.min.js":"./editor.dbeed08a.js",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/iframe-resizer@4.2.11/js/iframeResizer.contentWindow.min.js":"./editor.6386bd9d.js","editor.css":"./editor.d2196825.css",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/@fontsource/roboto-mono@4.4.5/files/roboto-mono-cyrillic-ext-500-normal.woff2":"./roboto-mono-cyrillic-ext-500-normal.d362a132.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/@fontsource/roboto-mono@4.4.5/files/roboto-mono-all-500-normal.woff":"./roboto-mono-all-500-normal.cc559149.woff",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/@fontsource/roboto-mono@4.4.5/files/roboto-mono-cyrillic-500-normal.woff2":"./roboto-mono-cyrillic-500-normal.8ed3add8.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/@fontsource/roboto-mono@4.4.5/files/roboto-mono-greek-500-normal.woff2":"./roboto-mono-greek-500-normal.dd57b097.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/@fontsource/roboto-mono@4.4.5/files/roboto-mono-vietnamese-500-normal.woff2":"./roboto-mono-vietnamese-500-normal.1320bb60.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/@fontsource/roboto-mono@4.4.5/files/roboto-mono-latin-ext-500-normal.woff2":"./roboto-mono-latin-ext-500-normal.415f7d14.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/@fontsource/roboto-mono@4.4.5/files/roboto-mono-latin-500-normal.woff2":"./roboto-mono-latin-500-normal.98ad1d4e.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/@fontsource/roboto-mono@4.4.5/files/roboto-mono-cyrillic-ext-700-normal.woff2":"./roboto-mono-cyrillic-ext-700-normal.5c7aabac.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/@fontsource/roboto-mono@4.4.5/files/roboto-mono-all-700-normal.woff":"./roboto-mono-all-700-normal.393c796d.woff",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/@fontsource/roboto-mono@4.4.5/files/roboto-mono-cyrillic-700-normal.woff2":"./roboto-mono-cyrillic-700-normal.5e6410cf.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/@fontsource/roboto-mono@4.4.5/files/roboto-mono-greek-700-normal.woff2":"./roboto-mono-greek-700-normal.b101f80c.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/@fontsource/roboto-mono@4.4.5/files/roboto-mono-vietnamese-700-normal.woff2":"./roboto-mono-vietnamese-700-normal.edb1435b.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/@fontsource/roboto-mono@4.4.5/files/roboto-mono-latin-ext-700-normal.woff2":"./roboto-mono-latin-ext-700-normal.c497b002.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/@fontsource/roboto-mono@4.4.5/files/roboto-mono-latin-700-normal.woff2":"./roboto-mono-latin-700-normal.447ac127.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/@fontsource/alegreya-sans@4.4.5/files/alegreya-sans-cyrillic-ext-400-normal.woff2":"./alegreya-sans-cyrillic-ext-400-normal.5f5cc2ef.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/@fontsource/alegreya-sans@4.4.5/files/alegreya-sans-all-400-normal.woff":"./alegreya-sans-all-400-normal.a91dc265.woff",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/@fontsource/alegreya-sans@4.4.5/files/alegreya-sans-cyrillic-400-normal.woff2":"./alegreya-sans-cyrillic-400-normal.ab3d1dcc.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/@fontsource/alegreya-sans@4.4.5/files/alegreya-sans-greek-ext-400-normal.woff2":"./alegreya-sans-greek-ext-400-normal.b82a0aea.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/@fontsource/alegreya-sans@4.4.5/files/alegreya-sans-greek-400-normal.woff2":"./alegreya-sans-greek-400-normal.4e5a8597.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/@fontsource/alegreya-sans@4.4.5/files/alegreya-sans-vietnamese-400-normal.woff2":"./alegreya-sans-vietnamese-400-normal.bdc8a622.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/@fontsource/alegreya-sans@4.4.5/files/alegreya-sans-latin-ext-400-normal.woff2":"./alegreya-sans-latin-ext-400-normal.1c1602b0.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/@fontsource/alegreya-sans@4.4.5/files/alegreya-sans-latin-400-normal.woff2":"./alegreya-sans-latin-400-normal.62b57001.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/@fontsource/alegreya-sans@4.4.5/files/alegreya-sans-cyrillic-ext-500-normal.woff2":"./alegreya-sans-cyrillic-ext-500-normal.0e6ee102.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/@fontsource/alegreya-sans@4.4.5/files/alegreya-sans-all-500-normal.woff":"./alegreya-sans-all-500-normal.5db27a5b.woff",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/@fontsource/alegreya-sans@4.4.5/files/alegreya-sans-cyrillic-500-normal.woff2":"./alegreya-sans-cyrillic-500-normal.8a029e9d.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/@fontsource/alegreya-sans@4.4.5/files/alegreya-sans-greek-ext-500-normal.woff2":"./alegreya-sans-greek-ext-500-normal.00f2c6f3.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/@fontsource/alegreya-sans@4.4.5/files/alegreya-sans-greek-500-normal.woff2":"./alegreya-sans-greek-500-normal.54a6041f.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/@fontsource/alegreya-sans@4.4.5/files/alegreya-sans-vietnamese-500-normal.woff2":"./alegreya-sans-vietnamese-500-normal.97e250df.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/@fontsource/alegreya-sans@4.4.5/files/alegreya-sans-latin-ext-500-normal.woff2":"./alegreya-sans-latin-ext-500-normal.637067c1.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/@fontsource/alegreya-sans@4.4.5/files/alegreya-sans-latin-500-normal.woff2":"./alegreya-sans-latin-500-normal.4428c984.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/@fontsource/alegreya-sans@4.4.5/files/alegreya-sans-cyrillic-ext-700-normal.woff2":"./alegreya-sans-cyrillic-ext-700-normal.2e02b08f.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/@fontsource/alegreya-sans@4.4.5/files/alegreya-sans-all-700-normal.woff":"./alegreya-sans-all-700-normal.29d7dfa9.woff",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/@fontsource/alegreya-sans@4.4.5/files/alegreya-sans-cyrillic-700-normal.woff2":"./alegreya-sans-cyrillic-700-normal.5a5aa5e3.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/@fontsource/alegreya-sans@4.4.5/files/alegreya-sans-greek-ext-700-normal.woff2":"./alegreya-sans-greek-ext-700-normal.ca9ee8e1.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/@fontsource/alegreya-sans@4.4.5/files/alegreya-sans-greek-700-normal.woff2":"./alegreya-sans-greek-700-normal.452fc62e.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/@fontsource/alegreya-sans@4.4.5/files/alegreya-sans-vietnamese-700-normal.woff2":"./alegreya-sans-vietnamese-700-normal.59390763.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/@fontsource/alegreya-sans@4.4.5/files/alegreya-sans-latin-ext-700-normal.woff2":"./alegreya-sans-latin-ext-700-normal.b5306f41.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/@fontsource/alegreya-sans@4.4.5/files/alegreya-sans-latin-700-normal.woff2":"./alegreya-sans-latin-700-normal.96e2fcc9.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/@fontsource/alegreya-sans@4.4.5/files/alegreya-sans-cyrillic-ext-400-italic.woff2":"./alegreya-sans-cyrillic-ext-400-italic.7c2a4a40.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/@fontsource/alegreya-sans@4.4.5/files/alegreya-sans-all-400-italic.woff":"./alegreya-sans-all-400-italic.f87bfe89.woff",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/@fontsource/alegreya-sans@4.4.5/files/alegreya-sans-cyrillic-400-italic.woff2":"./alegreya-sans-cyrillic-400-italic.8c81649c.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/@fontsource/alegreya-sans@4.4.5/files/alegreya-sans-greek-ext-400-italic.woff2":"./alegreya-sans-greek-ext-400-italic.550f5118.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/@fontsource/alegreya-sans@4.4.5/files/alegreya-sans-greek-400-italic.woff2":"./alegreya-sans-greek-400-italic.1b909c63.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/@fontsource/alegreya-sans@4.4.5/files/alegreya-sans-vietnamese-400-italic.woff2":"./alegreya-sans-vietnamese-400-italic.d08e8dff.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/@fontsource/alegreya-sans@4.4.5/files/alegreya-sans-latin-ext-400-italic.woff2":"./alegreya-sans-latin-ext-400-italic.b9ce632b.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/@fontsource/alegreya-sans@4.4.5/files/alegreya-sans-latin-400-italic.woff2":"./alegreya-sans-latin-400-italic.ec56f658.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/@fontsource/alegreya-sans@4.4.5/files/alegreya-sans-cyrillic-ext-500-italic.woff2":"./alegreya-sans-cyrillic-ext-500-italic.78248b65.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/@fontsource/alegreya-sans@4.4.5/files/alegreya-sans-all-500-italic.woff":"./alegreya-sans-all-500-italic.8917c3da.woff",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/@fontsource/alegreya-sans@4.4.5/files/alegreya-sans-cyrillic-500-italic.woff2":"./alegreya-sans-cyrillic-500-italic.a40f95be.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/@fontsource/alegreya-sans@4.4.5/files/alegreya-sans-greek-ext-500-italic.woff2":"./alegreya-sans-greek-ext-500-italic.8b2e952b.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/@fontsource/alegreya-sans@4.4.5/files/alegreya-sans-greek-500-italic.woff2":"./alegreya-sans-greek-500-italic.19d09eea.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/@fontsource/alegreya-sans@4.4.5/files/alegreya-sans-vietnamese-500-italic.woff2":"./alegreya-sans-vietnamese-500-italic.3ff20df8.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/@fontsource/alegreya-sans@4.4.5/files/alegreya-sans-latin-ext-500-italic.woff2":"./alegreya-sans-latin-ext-500-italic.d15c8f11.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/@fontsource/alegreya-sans@4.4.5/files/alegreya-sans-latin-500-italic.woff2":"./alegreya-sans-latin-500-italic.6d8350bf.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/@fontsource/alegreya-sans@4.4.5/files/alegreya-sans-cyrillic-ext-700-italic.woff2":"./alegreya-sans-cyrillic-ext-700-italic.69b0617e.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/@fontsource/alegreya-sans@4.4.5/files/alegreya-sans-all-700-italic.woff":"./alegreya-sans-all-700-italic.a6d70e05.woff",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/@fontsource/alegreya-sans@4.4.5/files/alegreya-sans-cyrillic-700-italic.woff2":"./alegreya-sans-cyrillic-700-italic.c4ef17a2.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/@fontsource/alegreya-sans@4.4.5/files/alegreya-sans-greek-ext-700-italic.woff2":"./alegreya-sans-greek-ext-700-italic.a1ccc0c2.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/@fontsource/alegreya-sans@4.4.5/files/alegreya-sans-greek-700-italic.woff2":"./alegreya-sans-greek-700-italic.5aef27cf.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/@fontsource/alegreya-sans@4.4.5/files/alegreya-sans-vietnamese-700-italic.woff2":"./alegreya-sans-vietnamese-700-italic.7de0cccc.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/@fontsource/alegreya-sans@4.4.5/files/alegreya-sans-latin-ext-700-italic.woff2":"./alegreya-sans-latin-ext-700-italic.733aea09.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/@fontsource/alegreya-sans@4.4.5/files/alegreya-sans-latin-700-italic.woff2":"./alegreya-sans-latin-700-italic.abc64c8a.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/@fontsource/lato@4.4.5/files/lato-latin-ext-400-normal.woff2":"./lato-latin-ext-400-normal.e1ce8ad3.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/@fontsource/lato@4.4.5/files/lato-all-400-normal.woff":"./lato-all-400-normal.a1a68bdf.woff",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/@fontsource/lato@4.4.5/files/lato-latin-400-normal.woff2":"./lato-latin-400-normal.77db3602.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/@fontsource/lato@4.4.5/files/lato-latin-ext-400-italic.woff2":"./lato-latin-ext-400-italic.336aaf51.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/@fontsource/lato@4.4.5/files/lato-all-400-italic.woff":"./lato-all-400-italic.c29c8c6c.woff",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/@fontsource/lato@4.4.5/files/lato-latin-400-italic.woff2":"./lato-latin-400-italic.6edbc86c.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/gh/ionic-team/ionicons@5.5.1/src/svg/radio-button-on-outline.svg":"./radio-button-on-outline.778acac1.svg",".parcel-cache/.net/https/cdn.jsdelivr.net/gh/ionic-team/ionicons@5.5.1/src/svg/stop-circle-outline.svg":"./stop-circle-outline.6623356d.svg",".parcel-cache/.net/https/cdn.jsdelivr.net/gh/ionic-team/ionicons@5.5.1/src/svg/share-outline.svg":"./share-outline.50164ded.svg",".parcel-cache/.net/https/cdn.jsdelivr.net/gh/ionic-team/ionicons@5.5.1/src/svg/close-outline.svg":"./close-outline.9c22a232.svg",".parcel-cache/.net/https/cdn.jsdelivr.net/gh/ionic-team/ionicons@5.5.1/src/svg/newspaper-outline.svg":"./newspaper-outline.e481c39c.svg",".parcel-cache/.net/https/cdn.jsdelivr.net/gh/ionic-team/ionicons@5.5.1/src/svg/easel-outline.svg":"./easel-outline.9b064e1f.svg",".parcel-cache/.net/https/cdn.jsdelivr.net/gh/ionic-team/ionicons@5.5.1/src/svg/mic-outline.svg":"./mic-outline.e10eafe2.svg",".parcel-cache/.net/https/cdn.jsdelivr.net/gh/ionic-team/ionicons@5.5.1/src/svg/information-circle-outline.svg":"./information-circle-outline.008b2bb9.svg",".parcel-cache/.net/https/cdn.jsdelivr.net/gh/ionic-team/ionicons@5.5.1/src/svg/cloud-offline-outline.svg":"./cloud-offline-outline.ac2eade9.svg",".parcel-cache/.net/https/cdn.jsdelivr.net/gh/ionic-team/ionicons@5.5.1/src/svg/mic-off-outline.svg":"./mic-off-outline.251c22b7.svg",".parcel-cache/.net/https/cdn.jsdelivr.net/gh/ionic-team/ionicons@5.5.1/src/svg/arrow-undo-outline.svg":"./arrow-undo-outline.d8c99108.svg",".parcel-cache/.net/https/cdn.jsdelivr.net/gh/ionic-team/ionicons@5.5.1/src/svg/sync-circle-outline.svg":"./sync-circle-outline.65b15d76.svg",".parcel-cache/.net/https/cdn.jsdelivr.net/gh/ionic-team/ionicons@5.5.1/src/svg/checkmark-outline.svg":"./checkmark-outline.4fb8c646.svg",".parcel-cache/.net/https/cdn.jsdelivr.net/gh/ionic-team/ionicons@5.5.1/src/svg/eye-outline.svg":"./eye-outline.6e6e0f7c.svg",".parcel-cache/.net/https/cdn.jsdelivr.net/gh/ionic-team/ionicons@5.5.1/src/svg/eye-off-outline.svg":"./eye-off-outline.a37e03db.svg",".parcel-cache/.net/https/cdn.jsdelivr.net/gh/ionic-team/ionicons@5.5.1/src/svg/add-outline.svg":"./add-outline.e3c93c35.svg",".parcel-cache/.net/https/cdn.jsdelivr.net/gh/ionic-team/ionicons@5.5.1/src/svg/document-text-outline.svg":"./document-text-outline.8d1e2333.svg",".parcel-cache/.net/https/cdn.jsdelivr.net/gh/ionic-team/ionicons@5.5.1/src/svg/caret-forward-circle-outline.svg":"./caret-forward-circle-outline.d0bf2b34.svg",".parcel-cache/.net/https/cdn.jsdelivr.net/gh/ionic-team/ionicons@5.5.1/src/svg/ban-outline.svg":"./ban-outline.c97da9b4.svg",".parcel-cache/.net/https/cdn.jsdelivr.net/gh/ionic-team/ionicons@5.5.1/src/svg/close-circle-outline.svg":"./close-circle-outline.4baeedb9.svg",".parcel-cache/.net/https/cdn.jsdelivr.net/gh/ionic-team/ionicons@5.5.1/src/svg/document-lock-outline.svg":"./document-lock-outline.69d176a4.svg",".parcel-cache/.net/https/cdn.jsdelivr.net/gh/ionic-team/ionicons@5.5.1/src/svg/copy-outline.svg":"./copy-outline.0f561529.svg",".parcel-cache/.net/https/cdn.jsdelivr.net/gh/ionic-team/ionicons@5.5.1/src/svg/ellipsis-horizontal-circle-outline.svg":"./ellipsis-horizontal-circle-outline.6279ed30.svg",".parcel-cache/.net/https/cdn.jsdelivr.net/gh/ionic-team/ionicons@5.5.1/src/svg/time-outline.svg":"./time-outline.7c1877f0.svg",".parcel-cache/.net/https/cdn.jsdelivr.net/gh/ionic-team/ionicons@5.5.1/src/svg/sync-outline.svg":"./sync-outline.9a1bd27b.svg",".parcel-cache/.net/https/cdn.jsdelivr.net/gh/ionic-team/ionicons@5.5.1/src/svg/cloud-download-outline.svg":"./cloud-download-outline.8c1ff9bb.svg",".parcel-cache/.net/https/cdn.jsdelivr.net/gh/ionic-team/ionicons@5.5.1/src/svg/chatbox-ellipses-outline.svg":"./chatbox-ellipses-outline.4334a3a4.svg",".parcel-cache/.net/https/cdn.jsdelivr.net/gh/ionic-team/ionicons@5.5.1/src/svg/arrow-redo-circle-outline.svg":"./arrow-redo-circle-outline.dfa899f4.svg",".parcel-cache/.net/https/cdn.jsdelivr.net/gh/ionic-team/ionicons@5.5.1/src/svg/chevron-forward-circle-outline.svg":"./chevron-forward-circle-outline.babf2a99.svg",".parcel-cache/.net/https/cdn.jsdelivr.net/gh/ionic-team/ionicons@5.5.1/src/svg/search.svg":"./search.1ca5b3b3.svg",".parcel-cache/.net/https/cdn.jsdelivr.net/gh/ionic-team/ionicons@5.5.1/src/svg/terminal.svg":"./terminal.6b804248.svg",".parcel-cache/.net/https/cdn.jsdelivr.net/gh/ionic-team/ionicons@5.5.1/src/svg/pulse.svg":"./pulse.27a877a7.svg",".parcel-cache/.net/https/cdn.jsdelivr.net/gh/ionic-team/ionicons@5.5.1/src/svg/chevron-down-outline.svg":"./chevron-down-outline.1efaf1cc.svg",".parcel-cache/.net/https/cdn.jsdelivr.net/gh/ionic-team/ionicons@5.5.1/src/svg/notifications-outline.svg":"./notifications-outline.aa91b431.svg",".parcel-cache/.net/https/cdn.jsdelivr.net/gh/ionic-team/ionicons@5.5.1/src/svg/warning-outline.svg":"./warning-outline.d84ed9e8.svg",".parcel-cache/.net/https/cdn.jsdelivr.net/gh/ionic-team/ionicons@5.5.1/src/svg/terminal-outline.svg":"./terminal-outline.79a23031.svg",".parcel-cache/.net/https/cdn.jsdelivr.net/gh/ionic-team/ionicons@5.5.1/src/svg/arrow-back-outline.svg":"./arrow-back-outline.9ae1bed8.svg",".parcel-cache/.net/https/cdn.jsdelivr.net/gh/ionic-team/ionicons@5.5.1/src/svg/arrow-forward-outline.svg":"./arrow-forward-outline.f5f68f5c.svg",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/@fontsource/roboto-mono@4.4.5/files/roboto-mono-cyrillic-ext-400-normal.woff2":"./roboto-mono-cyrillic-ext-400-normal.dcb520ee.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/@fontsource/roboto-mono@4.4.5/files/roboto-mono-all-400-normal.woff":"./roboto-mono-all-400-normal.364ec368.woff",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/@fontsource/roboto-mono@4.4.5/files/roboto-mono-cyrillic-400-normal.woff2":"./roboto-mono-cyrillic-400-normal.638e826e.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/@fontsource/roboto-mono@4.4.5/files/roboto-mono-greek-400-normal.woff2":"./roboto-mono-greek-400-normal.dd843e41.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/@fontsource/roboto-mono@4.4.5/files/roboto-mono-vietnamese-400-normal.woff2":"./roboto-mono-vietnamese-400-normal.306e7635.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/@fontsource/roboto-mono@4.4.5/files/roboto-mono-latin-ext-400-normal.woff2":"./roboto-mono-latin-ext-400-normal.d9409874.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/@fontsource/roboto-mono@4.4.5/files/roboto-mono-latin-400-normal.woff2":"./roboto-mono-latin-400-normal.cf1eee5f.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/@fontsource/roboto-mono@4.4.5/files/roboto-mono-cyrillic-ext-400-italic.woff2":"./roboto-mono-cyrillic-ext-400-italic.db052448.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/@fontsource/roboto-mono@4.4.5/files/roboto-mono-all-400-italic.woff":"./roboto-mono-all-400-italic.31a14f53.woff",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/@fontsource/roboto-mono@4.4.5/files/roboto-mono-cyrillic-400-italic.woff2":"./roboto-mono-cyrillic-400-italic.e399ed93.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/@fontsource/roboto-mono@4.4.5/files/roboto-mono-greek-400-italic.woff2":"./roboto-mono-greek-400-italic.6f7e0b2f.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/@fontsource/roboto-mono@4.4.5/files/roboto-mono-vietnamese-400-italic.woff2":"./roboto-mono-vietnamese-400-italic.d8e0a32a.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/@fontsource/roboto-mono@4.4.5/files/roboto-mono-latin-ext-400-italic.woff2":"./roboto-mono-latin-ext-400-italic.aaa9a959.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/@fontsource/roboto-mono@4.4.5/files/roboto-mono-latin-400-italic.woff2":"./roboto-mono-latin-400-italic.ef82d48f.woff2","hide-ui.css":"./editor.52bd66ba.css","binder.css":"./editor.ec3a6a5b.css",".parcel-cache/.net/https/cdn.jsdelivr.net/gh/ionic-team/ionicons@5.5.1/src/svg/download-outline.svg":"./download-outline.523a74d8.svg","treeview.css":"./editor.bc0bd8d4.css",".parcel-cache/.net/https/cdn.jsdelivr.net/gh/ionic-team/ionicons@5.5.1/src/svg/caret-down-outline.svg":"./caret-down-outline.4253a2fe.svg",".parcel-cache/.net/https/cdn.jsdelivr.net/gh/ionic-team/ionicons@5.5.1/src/svg/caret-forward-outline.svg":"./caret-forward-outline.348a84b6.svg",".parcel-cache/.net/https/cdn.jsdelivr.net/gh/ionic-team/ionicons@5.5.1/src/svg/ellipsis-vertical.svg":"./ellipsis-vertical.a30e7430.svg",".parcel-cache/.net/https/cdn.jsdelivr.net/gh/ionic-team/ionicons@5.5.1/src/svg/ellipsis-horizontal.svg":"./ellipsis-horizontal.c9a6cc29.svg","highlightjs.css":"./editor.e82e08bd.css","editor.js":"./editor.d81c87ad.js",".parcel-cache/.net/https/www.gstatic.com/firebasejs/10.8.0/firebase-app.js":"./firebase-app.a89bd3ee.js",".parcel-cache/.net/https/www.gstatic.com/firebasejs/10.8.0/firebase-firestore.js":"./firebase-firestore.2ef1e41a.js",".parcel-cache/.net/https/cdn.jsdelivr.net/gh/ionic-team/ionicons@5.5.1/src/svg/arrow-up-circle-outline.svg":"./arrow-up-circle-outline.3f146ffe.svg",".parcel-cache/.net/https/cdn.jsdelivr.net/gh/ionic-team/ionicons@5.5.1/src/svg/help-circle-outline.svg":"./help-circle-outline.a023036a.svg",".parcel-cache/.net/https/unpkg.com/vmsg@0.4.0/vmsg.wasm":"./vmsg.56bb9389.wasm","warn_old_browsers.js":"./editor.8a3292da.js","index.html":"./index.html","welcome.css":"./index.dbc7264b.css",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/inter-ui@3.19.3/Inter%20(web%20latin)/Inter-Thin.woff2.a3efb88f6f.woff2":"./Inter-Thin.woff2.a3efb88f6f.099a7dc1.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/inter-ui@3.19.3/Inter%20(web%20latin)/Inter-Thin.woff.a3efb88f6f.woff":"./Inter-Thin.woff.a3efb88f6f.832f7e9d.woff",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/inter-ui@3.19.3/Inter%20(web%20latin)/Inter-ThinItalic.woff2.a3efb88f6f.woff2":"./Inter-ThinItalic.woff2.a3efb88f6f.f5b32cfe.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/inter-ui@3.19.3/Inter%20(web%20latin)/Inter-ThinItalic.woff.a3efb88f6f.woff":"./Inter-ThinItalic.woff.a3efb88f6f.9a9e646f.woff",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/inter-ui@3.19.3/Inter%20(web%20latin)/Inter-ExtraLight.woff2.a3efb88f6f.woff2":"./Inter-ExtraLight.woff2.a3efb88f6f.735b820a.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/inter-ui@3.19.3/Inter%20(web%20latin)/Inter-ExtraLight.woff.a3efb88f6f.woff":"./Inter-ExtraLight.woff.a3efb88f6f.018d6d24.woff",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/inter-ui@3.19.3/Inter%20(web%20latin)/Inter-ExtraLightItalic.woff2.a3efb88f6f.woff2":"./Inter-ExtraLightItalic.woff2.a3efb88f6f.75944d4e.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/inter-ui@3.19.3/Inter%20(web%20latin)/Inter-ExtraLightItalic.woff.a3efb88f6f.woff":"./Inter-ExtraLightItalic.woff.a3efb88f6f.c051c5b4.woff",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/inter-ui@3.19.3/Inter%20(web%20latin)/Inter-Light.woff2.a3efb88f6f.woff2":"./Inter-Light.woff2.a3efb88f6f.f86a8a97.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/inter-ui@3.19.3/Inter%20(web%20latin)/Inter-Light.woff.a3efb88f6f.woff":"./Inter-Light.woff.a3efb88f6f.0cf765a1.woff",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/inter-ui@3.19.3/Inter%20(web%20latin)/Inter-LightItalic.woff2.a3efb88f6f.woff2":"./Inter-LightItalic.woff2.a3efb88f6f.cb22faff.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/inter-ui@3.19.3/Inter%20(web%20latin)/Inter-LightItalic.woff.a3efb88f6f.woff":"./Inter-LightItalic.woff.a3efb88f6f.6c91af65.woff",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/inter-ui@3.19.3/Inter%20(web%20latin)/Inter-Regular.woff2.a3efb88f6f.woff2":"./Inter-Regular.woff2.a3efb88f6f.c52a047f.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/inter-ui@3.19.3/Inter%20(web%20latin)/Inter-Regular.woff.a3efb88f6f.woff":"./Inter-Regular.woff.a3efb88f6f.d9325c13.woff",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/inter-ui@3.19.3/Inter%20(web%20latin)/Inter-Italic.woff2.a3efb88f6f.woff2":"./Inter-Italic.woff2.a3efb88f6f.85eee0c1.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/inter-ui@3.19.3/Inter%20(web%20latin)/Inter-Italic.woff.a3efb88f6f.woff":"./Inter-Italic.woff.a3efb88f6f.d9effa31.woff",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/inter-ui@3.19.3/Inter%20(web%20latin)/Inter-Medium.woff2.a3efb88f6f.woff2":"./Inter-Medium.woff2.a3efb88f6f.4f0ea984.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/inter-ui@3.19.3/Inter%20(web%20latin)/Inter-Medium.woff.a3efb88f6f.woff":"./Inter-Medium.woff.a3efb88f6f.cb391d89.woff",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/inter-ui@3.19.3/Inter%20(web%20latin)/Inter-MediumItalic.woff2.a3efb88f6f.woff2":"./Inter-MediumItalic.woff2.a3efb88f6f.2b734b7a.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/inter-ui@3.19.3/Inter%20(web%20latin)/Inter-MediumItalic.woff.a3efb88f6f.woff":"./Inter-MediumItalic.woff.a3efb88f6f.1f636c25.woff",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/inter-ui@3.19.3/Inter%20(web%20latin)/Inter-SemiBold.woff2.a3efb88f6f.woff2":"./Inter-SemiBold.woff2.a3efb88f6f.08366574.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/inter-ui@3.19.3/Inter%20(web%20latin)/Inter-SemiBold.woff.a3efb88f6f.woff":"./Inter-SemiBold.woff.a3efb88f6f.c6670c13.woff",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/inter-ui@3.19.3/Inter%20(web%20latin)/Inter-SemiBoldItalic.woff2.a3efb88f6f.woff2":"./Inter-SemiBoldItalic.woff2.a3efb88f6f.5c7db07d.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/inter-ui@3.19.3/Inter%20(web%20latin)/Inter-SemiBoldItalic.woff.a3efb88f6f.woff":"./Inter-SemiBoldItalic.woff.a3efb88f6f.13394743.woff",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/inter-ui@3.19.3/Inter%20(web%20latin)/Inter-Bold.woff2.a3efb88f6f.woff2":"./Inter-Bold.woff2.a3efb88f6f.e8bd971d.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/inter-ui@3.19.3/Inter%20(web%20latin)/Inter-Bold.woff.a3efb88f6f.woff":"./Inter-Bold.woff.a3efb88f6f.d92ed350.woff",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/inter-ui@3.19.3/Inter%20(web%20latin)/Inter-BoldItalic.woff2.a3efb88f6f.woff2":"./Inter-BoldItalic.woff2.a3efb88f6f.cd6e580e.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/inter-ui@3.19.3/Inter%20(web%20latin)/Inter-BoldItalic.woff.a3efb88f6f.woff":"./Inter-BoldItalic.woff.a3efb88f6f.39f68e5f.woff",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/inter-ui@3.19.3/Inter%20(web%20latin)/Inter-ExtraBold.woff2.a3efb88f6f.woff2":"./Inter-ExtraBold.woff2.a3efb88f6f.ffc04ff0.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/inter-ui@3.19.3/Inter%20(web%20latin)/Inter-ExtraBold.woff.a3efb88f6f.woff":"./Inter-ExtraBold.woff.a3efb88f6f.cd51bf91.woff",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/inter-ui@3.19.3/Inter%20(web%20latin)/Inter-ExtraBoldItalic.woff2.a3efb88f6f.woff2":"./Inter-ExtraBoldItalic.woff2.a3efb88f6f.de4f3979.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/inter-ui@3.19.3/Inter%20(web%20latin)/Inter-ExtraBoldItalic.woff.a3efb88f6f.woff":"./Inter-ExtraBoldItalic.woff.a3efb88f6f.122106d3.woff",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/inter-ui@3.19.3/Inter%20(web%20latin)/Inter-Black.woff2.a3efb88f6f.woff2":"./Inter-Black.woff2.a3efb88f6f.1f333c9f.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/inter-ui@3.19.3/Inter%20(web%20latin)/Inter-Black.woff.a3efb88f6f.woff":"./Inter-Black.woff.a3efb88f6f.efe3f25b.woff",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/inter-ui@3.19.3/Inter%20(web%20latin)/Inter-BlackItalic.woff2.a3efb88f6f.woff2":"./Inter-BlackItalic.woff2.a3efb88f6f.89710fff.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/inter-ui@3.19.3/Inter%20(web%20latin)/Inter-BlackItalic.woff.a3efb88f6f.woff":"./Inter-BlackItalic.woff.a3efb88f6f.f6e2e726.woff",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/inter-ui@3.19.3/Inter%20(web%20latin)/Inter-roman.var.woff2.a3efb88f6f.woff2":"./Inter-roman.var.woff2.a3efb88f6f.8120837c.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/inter-ui@3.19.3/Inter%20(web%20latin)/Inter-italic.var.woff2.a3efb88f6f.woff2":"./Inter-italic.var.woff2.a3efb88f6f.e62a3bb2.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/inter-ui@3.19.3/Inter%20(web%20latin)/Inter.var.woff2.a3efb88f6f.woff2":"./Inter.var.woff2.a3efb88f6f.ca82f9aa.woff2","index.css":"./index.61105732.css",".parcel-cache/.net/https/cdn.jsdelivr.net/gh/ionic-team/ionicons@5.5.1/src/svg/close-circle.svg":"./close-circle.d0f6eac6.svg",".parcel-cache/.net/https/cdn.jsdelivr.net/gh/ionic-team/ionicons@5.5.1/src/svg/ellipsis-horizontal-outline.svg":"./ellipsis-horizontal-outline.abb6e818.svg","index.js":"./index.6587449d.js","error.jl.html":"./error.jl.html"} \ No newline at end of file diff --git a/frontend-dist/pulse.27a877a7.svg b/frontend-dist/pulse.27a877a7.svg new file mode 100644 index 0000000000..3251eb43e8 --- /dev/null +++ b/frontend-dist/pulse.27a877a7.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend-dist/radio-button-on-outline.778acac1.svg b/frontend-dist/radio-button-on-outline.778acac1.svg new file mode 100644 index 0000000000..061b534687 --- /dev/null +++ b/frontend-dist/radio-button-on-outline.778acac1.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend-dist/roboto-mono-all-400-italic.31a14f53.woff b/frontend-dist/roboto-mono-all-400-italic.31a14f53.woff new file mode 100644 index 0000000000..723ffe83fc Binary files /dev/null and b/frontend-dist/roboto-mono-all-400-italic.31a14f53.woff differ diff --git a/frontend-dist/roboto-mono-all-400-normal.364ec368.woff b/frontend-dist/roboto-mono-all-400-normal.364ec368.woff new file mode 100644 index 0000000000..379f9ae197 Binary files /dev/null and b/frontend-dist/roboto-mono-all-400-normal.364ec368.woff differ diff --git a/frontend-dist/roboto-mono-all-500-normal.cc559149.woff b/frontend-dist/roboto-mono-all-500-normal.cc559149.woff new file mode 100644 index 0000000000..6fc0cbe59e Binary files /dev/null and b/frontend-dist/roboto-mono-all-500-normal.cc559149.woff differ diff --git a/frontend-dist/roboto-mono-all-700-normal.393c796d.woff b/frontend-dist/roboto-mono-all-700-normal.393c796d.woff new file mode 100644 index 0000000000..bd2a43d0aa Binary files /dev/null and b/frontend-dist/roboto-mono-all-700-normal.393c796d.woff differ diff --git a/frontend-dist/roboto-mono-cyrillic-400-italic.e399ed93.woff2 b/frontend-dist/roboto-mono-cyrillic-400-italic.e399ed93.woff2 new file mode 100644 index 0000000000..8695ed91d2 Binary files /dev/null and b/frontend-dist/roboto-mono-cyrillic-400-italic.e399ed93.woff2 differ diff --git a/frontend-dist/roboto-mono-cyrillic-400-normal.638e826e.woff2 b/frontend-dist/roboto-mono-cyrillic-400-normal.638e826e.woff2 new file mode 100644 index 0000000000..68b8a8dc8c Binary files /dev/null and b/frontend-dist/roboto-mono-cyrillic-400-normal.638e826e.woff2 differ diff --git a/frontend-dist/roboto-mono-cyrillic-500-normal.8ed3add8.woff2 b/frontend-dist/roboto-mono-cyrillic-500-normal.8ed3add8.woff2 new file mode 100644 index 0000000000..c307876e05 Binary files /dev/null and b/frontend-dist/roboto-mono-cyrillic-500-normal.8ed3add8.woff2 differ diff --git a/frontend-dist/roboto-mono-cyrillic-700-normal.5e6410cf.woff2 b/frontend-dist/roboto-mono-cyrillic-700-normal.5e6410cf.woff2 new file mode 100644 index 0000000000..1967932dfe Binary files /dev/null and b/frontend-dist/roboto-mono-cyrillic-700-normal.5e6410cf.woff2 differ diff --git a/frontend-dist/roboto-mono-cyrillic-ext-400-italic.db052448.woff2 b/frontend-dist/roboto-mono-cyrillic-ext-400-italic.db052448.woff2 new file mode 100644 index 0000000000..85a9f5b370 Binary files /dev/null and b/frontend-dist/roboto-mono-cyrillic-ext-400-italic.db052448.woff2 differ diff --git a/frontend-dist/roboto-mono-cyrillic-ext-400-normal.dcb520ee.woff2 b/frontend-dist/roboto-mono-cyrillic-ext-400-normal.dcb520ee.woff2 new file mode 100644 index 0000000000..1630ec9c56 Binary files /dev/null and b/frontend-dist/roboto-mono-cyrillic-ext-400-normal.dcb520ee.woff2 differ diff --git a/frontend-dist/roboto-mono-cyrillic-ext-500-normal.d362a132.woff2 b/frontend-dist/roboto-mono-cyrillic-ext-500-normal.d362a132.woff2 new file mode 100644 index 0000000000..b34eed9747 Binary files /dev/null and b/frontend-dist/roboto-mono-cyrillic-ext-500-normal.d362a132.woff2 differ diff --git a/frontend-dist/roboto-mono-cyrillic-ext-700-normal.5c7aabac.woff2 b/frontend-dist/roboto-mono-cyrillic-ext-700-normal.5c7aabac.woff2 new file mode 100644 index 0000000000..a89f2e8413 Binary files /dev/null and b/frontend-dist/roboto-mono-cyrillic-ext-700-normal.5c7aabac.woff2 differ diff --git a/frontend-dist/roboto-mono-greek-400-italic.6f7e0b2f.woff2 b/frontend-dist/roboto-mono-greek-400-italic.6f7e0b2f.woff2 new file mode 100644 index 0000000000..7bab226ca5 Binary files /dev/null and b/frontend-dist/roboto-mono-greek-400-italic.6f7e0b2f.woff2 differ diff --git a/frontend-dist/roboto-mono-greek-400-normal.dd843e41.woff2 b/frontend-dist/roboto-mono-greek-400-normal.dd843e41.woff2 new file mode 100644 index 0000000000..466f9ec13f Binary files /dev/null and b/frontend-dist/roboto-mono-greek-400-normal.dd843e41.woff2 differ diff --git a/frontend-dist/roboto-mono-greek-500-normal.dd57b097.woff2 b/frontend-dist/roboto-mono-greek-500-normal.dd57b097.woff2 new file mode 100644 index 0000000000..72f600238f Binary files /dev/null and b/frontend-dist/roboto-mono-greek-500-normal.dd57b097.woff2 differ diff --git a/frontend-dist/roboto-mono-greek-700-normal.b101f80c.woff2 b/frontend-dist/roboto-mono-greek-700-normal.b101f80c.woff2 new file mode 100644 index 0000000000..9ab1293a88 Binary files /dev/null and b/frontend-dist/roboto-mono-greek-700-normal.b101f80c.woff2 differ diff --git a/frontend-dist/roboto-mono-latin-400-italic.ef82d48f.woff2 b/frontend-dist/roboto-mono-latin-400-italic.ef82d48f.woff2 new file mode 100644 index 0000000000..721ca2e93a Binary files /dev/null and b/frontend-dist/roboto-mono-latin-400-italic.ef82d48f.woff2 differ diff --git a/frontend-dist/roboto-mono-latin-400-normal.cf1eee5f.woff2 b/frontend-dist/roboto-mono-latin-400-normal.cf1eee5f.woff2 new file mode 100644 index 0000000000..ed384d22fd Binary files /dev/null and b/frontend-dist/roboto-mono-latin-400-normal.cf1eee5f.woff2 differ diff --git a/frontend-dist/roboto-mono-latin-500-normal.98ad1d4e.woff2 b/frontend-dist/roboto-mono-latin-500-normal.98ad1d4e.woff2 new file mode 100644 index 0000000000..01b58ed2c5 Binary files /dev/null and b/frontend-dist/roboto-mono-latin-500-normal.98ad1d4e.woff2 differ diff --git a/frontend-dist/roboto-mono-latin-700-normal.447ac127.woff2 b/frontend-dist/roboto-mono-latin-700-normal.447ac127.woff2 new file mode 100644 index 0000000000..c89a6eb38c Binary files /dev/null and b/frontend-dist/roboto-mono-latin-700-normal.447ac127.woff2 differ diff --git a/frontend-dist/roboto-mono-latin-ext-400-italic.aaa9a959.woff2 b/frontend-dist/roboto-mono-latin-ext-400-italic.aaa9a959.woff2 new file mode 100644 index 0000000000..9831c28b9e Binary files /dev/null and b/frontend-dist/roboto-mono-latin-ext-400-italic.aaa9a959.woff2 differ diff --git a/frontend-dist/roboto-mono-latin-ext-400-normal.d9409874.woff2 b/frontend-dist/roboto-mono-latin-ext-400-normal.d9409874.woff2 new file mode 100644 index 0000000000..d4f9a09cca Binary files /dev/null and b/frontend-dist/roboto-mono-latin-ext-400-normal.d9409874.woff2 differ diff --git a/frontend-dist/roboto-mono-latin-ext-500-normal.415f7d14.woff2 b/frontend-dist/roboto-mono-latin-ext-500-normal.415f7d14.woff2 new file mode 100644 index 0000000000..77a97cf73e Binary files /dev/null and b/frontend-dist/roboto-mono-latin-ext-500-normal.415f7d14.woff2 differ diff --git a/frontend-dist/roboto-mono-latin-ext-700-normal.c497b002.woff2 b/frontend-dist/roboto-mono-latin-ext-700-normal.c497b002.woff2 new file mode 100644 index 0000000000..9b733dd3cc Binary files /dev/null and b/frontend-dist/roboto-mono-latin-ext-700-normal.c497b002.woff2 differ diff --git a/frontend-dist/roboto-mono-vietnamese-400-italic.d8e0a32a.woff2 b/frontend-dist/roboto-mono-vietnamese-400-italic.d8e0a32a.woff2 new file mode 100644 index 0000000000..2ec55df09d Binary files /dev/null and b/frontend-dist/roboto-mono-vietnamese-400-italic.d8e0a32a.woff2 differ diff --git a/frontend-dist/roboto-mono-vietnamese-400-normal.306e7635.woff2 b/frontend-dist/roboto-mono-vietnamese-400-normal.306e7635.woff2 new file mode 100644 index 0000000000..2cf6dfc420 Binary files /dev/null and b/frontend-dist/roboto-mono-vietnamese-400-normal.306e7635.woff2 differ diff --git a/frontend-dist/roboto-mono-vietnamese-500-normal.1320bb60.woff2 b/frontend-dist/roboto-mono-vietnamese-500-normal.1320bb60.woff2 new file mode 100644 index 0000000000..3ab766e250 Binary files /dev/null and b/frontend-dist/roboto-mono-vietnamese-500-normal.1320bb60.woff2 differ diff --git a/frontend-dist/roboto-mono-vietnamese-700-normal.edb1435b.woff2 b/frontend-dist/roboto-mono-vietnamese-700-normal.edb1435b.woff2 new file mode 100644 index 0000000000..12357bd521 Binary files /dev/null and b/frontend-dist/roboto-mono-vietnamese-700-normal.edb1435b.woff2 differ diff --git a/frontend-dist/search.1ca5b3b3.svg b/frontend-dist/search.1ca5b3b3.svg new file mode 100644 index 0000000000..c6b864ae91 --- /dev/null +++ b/frontend-dist/search.1ca5b3b3.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend-dist/share-outline.50164ded.svg b/frontend-dist/share-outline.50164ded.svg new file mode 100644 index 0000000000..601cb684ac --- /dev/null +++ b/frontend-dist/share-outline.50164ded.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend-dist/stop-circle-outline.6623356d.svg b/frontend-dist/stop-circle-outline.6623356d.svg new file mode 100644 index 0000000000..30addb7f98 --- /dev/null +++ b/frontend-dist/stop-circle-outline.6623356d.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend-dist/sync-circle-outline.65b15d76.svg b/frontend-dist/sync-circle-outline.65b15d76.svg new file mode 100644 index 0000000000..3b41a36e9b --- /dev/null +++ b/frontend-dist/sync-circle-outline.65b15d76.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend-dist/sync-outline.9a1bd27b.svg b/frontend-dist/sync-outline.9a1bd27b.svg new file mode 100644 index 0000000000..9f69e76f35 --- /dev/null +++ b/frontend-dist/sync-outline.9a1bd27b.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend-dist/terminal-outline.79a23031.svg b/frontend-dist/terminal-outline.79a23031.svg new file mode 100644 index 0000000000..99c52751a3 --- /dev/null +++ b/frontend-dist/terminal-outline.79a23031.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend-dist/terminal.6b804248.svg b/frontend-dist/terminal.6b804248.svg new file mode 100644 index 0000000000..030b7bb4ef --- /dev/null +++ b/frontend-dist/terminal.6b804248.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend-dist/time-outline.7c1877f0.svg b/frontend-dist/time-outline.7c1877f0.svg new file mode 100644 index 0000000000..b4d1371332 --- /dev/null +++ b/frontend-dist/time-outline.7c1877f0.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend-dist/vmsg.56bb9389.wasm b/frontend-dist/vmsg.56bb9389.wasm new file mode 100644 index 0000000000..224bcc7fd1 Binary files /dev/null and b/frontend-dist/vmsg.56bb9389.wasm differ diff --git a/frontend-dist/vollkorn.089565a8.css b/frontend-dist/vollkorn.089565a8.css new file mode 100644 index 0000000000..83907db83a --- /dev/null +++ b/frontend-dist/vollkorn.089565a8.css @@ -0,0 +1 @@ +@font-face{font-display:swap;font-family:Vollkorn;font-weight:600;src:url(Vollkorn-SemiBold.8072eb6c.woff2) format("woff2")}@font-face{font-display:swap;font-family:Vollkorn;font-style:italic;font-weight:600;src:url(Vollkorn-SemiBoldItalic.5c3cd265.woff2) format("woff2")}@font-face{font-display:swap;font-family:Vollkorn;font-weight:700;src:url(Vollkorn-Bold.6e1feb70.woff2) format("woff2")}@font-face{font-display:swap;font-family:Vollkorn;font-style:italic;font-weight:700;src:url(Vollkorn-BoldItalic.a48ab300.woff2) format("woff2")}@font-face{font-display:swap;font-family:Vollkorn;font-weight:900;src:url(Vollkorn-Black.0ebdfbf5.woff2) format("woff2")}@font-face{font-display:swap;font-family:Vollkorn;font-style:italic;font-weight:900;src:url(Vollkorn-BlackItalic.4095acfe.woff2) format("woff2")} \ No newline at end of file diff --git a/frontend-dist/warning-outline.d84ed9e8.svg b/frontend-dist/warning-outline.d84ed9e8.svg new file mode 100644 index 0000000000..df490bfa15 --- /dev/null +++ b/frontend-dist/warning-outline.d84ed9e8.svg @@ -0,0 +1 @@ + \ No newline at end of file