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.1f4cf2ca.css b/frontend-dist/editor.1f4cf2ca.css new file mode 100644 index 0000000000..5174971568 --- /dev/null +++ b/frontend-dist/editor.1f4cf2ca.css @@ -0,0 +1 @@ +pluto-tree,pluto-tree-pair{font-family:var(--julia-mono-font-stack);font-size:.75rem}pluto-tree{color:var(--pluto-tree-color);cursor:pointer;white-space:pre}pluto-tree,pluto-tree-items{align-items:flex-start;display:inline-flex;flex-direction:column}pluto-tree.collapsed,pluto-tree.collapsed pluto-tree,pluto-tree.collapsed pluto-tree-items{align-items:baseline;flex-direction:row}pluto-tree-items{cursor:auto}pluto-tree-prefix{align-items:baseline;display:inline-flex;flex-direction:row}pluto-tree>pluto-tree-prefix:before{background-image:url(caret-down-outline.4253a2fe.svg);background-size:100%;bottom:-2px;content:"";cursor:pointer;display:inline-block;filter:var(--image-filters);height:1em;opacity:.5;position:relative;width:1em}pluto-tree.collapsed pluto-tree>pluto-tree-prefix:before{display:none}pluto-tree.collapsed>pluto-tree-prefix:before{background-image:url(caret-forward-outline.348a84b6.svg)}pluto-tree p-r>p-v{color:var(--pluto-output-color);display:inline-flex}pluto-tree.collapsed pluto-tree-items.Array>p-r>p-k,pluto-tree.collapsed pluto-tree-items.Set>p-r>p-k,pluto-tree.collapsed pluto-tree-items.struct>p-r>p-k,pluto-tree.collapsed pluto-tree-items.Tuple>p-r>p-k{display:none}pluto-tree>pluto-tree-prefix>.long{display:block}pluto-tree.collapsed>pluto-tree-prefix>.long,pluto-tree>pluto-tree-prefix>.short{display:none}pluto-tree.collapsed>pluto-tree-prefix>.short{display:block}pluto-tree p-r{margin-left:3em}pluto-tree.collapsed p-r{margin-left:.5em}pluto-tree.collapsed p-r:first-child{margin-left:0}pluto-tree pluto-tree-items.Array>p-r>p-k,pluto-tree pluto-tree-items.Set>p-r>p-k,pluto-tree pluto-tree-items.Tuple>p-r>p-k{margin-right:1em;opacity:.5;user-select:none}pluto-tree.Array>pluto-tree-prefix:after{content:"["}pluto-tree pluto-tree-items.Array:after{content:"]"}pluto-tree.Set>pluto-tree-prefix:after{content:"(["}pluto-tree pluto-tree-items.Set:after{content:"])"}pluto-tree.Dict>pluto-tree-prefix:after,pluto-tree.NamedTuple>pluto-tree-prefix:after,pluto-tree.struct>pluto-tree-prefix:after,pluto-tree.Tuple>pluto-tree-prefix:after{content:"("}pluto-tree pluto-tree-items.Dict:after,pluto-tree pluto-tree-items.NamedTuple:after,pluto-tree pluto-tree-items.struct:after,pluto-tree pluto-tree-items.Tuple:after{content:")"}pluto-tree pluto-tree-items.Array>p-r>p-k:after,pluto-tree pluto-tree-items.Set>p-r>p-k:after,pluto-tree pluto-tree-items.Tuple>p-r>p-k:after{content:":"}pluto-tree-pair>p-r>p-k:after,pluto-tree pluto-tree-items.Dict>p-r>p-k:after{content:" => "}pluto-tree pluto-tree-items.NamedTuple>p-r>p-k:after,pluto-tree pluto-tree-items.struct>p-r>p-k:after{content:" = "}pluto-tree.collapsed p-r:after{content:","}pluto-tree.collapsed p-r:last-child:after{content:""}pluto-tree-more{cursor:pointer;display:inline-block;padding:.6em 0;white-space:nowrap;width:100%}pluto-tree-more:before{background-image:url(ellipsis-vertical.a30e7430.svg);background-size:100%;bottom:-.1em;content:"";display:inline-block;filter:var(--image-filters);height:1em;margin-left:.2em;margin-right:.5em;opacity:.5;position:relative;width:1em}pluto-tree-more.loading:before{animation:loadspin 3s ease-in-out infinite;background-image:url(sync-outline.9a1bd27b.svg)}@keyframes loadspin{0%{transform:rotate(0deg)}25%{transform:rotate(180deg)}50%{transform:rotate(180deg)}75%{transform:rotate(1turn)}to{transform:rotate(1turn)}}pluto-tree.collapsed pluto-tree-more{margin:0}pluto-tree.collapsed pluto-tree-more:before{background-image:url(ellipsis-horizontal.c9a6cc29.svg)}pluto-tree.collapsed img{max-height:4rem;max-width:4rem}pluto-tree img{max-height:8rem;max-width:12rem}pluto-tree p-r pre{white-space:pre;word-break:normal}jlerror{font-family:Roboto Mono,monospace;font-size:.75rem}jlerror>header{color:var(--jlerror-header-color)}jlerror>header>p{margin-block-end:.2em}jlerror>header>p:first-child{font-weight:700}jlerror>section>ol>li>mark{background:var(--jlerror-mark-bg-color);border-radius:6px;color:var(--jlerror-mark-color);font-family:var(--julia-mono-font-stack);font-variant-ligatures:none}jlerror>section>ol>li>em>a{background:var(--jlerror-a-bg-color);border-left:3px solid var(--jlerror-a-border-left-color);border-radius:4px;padding:1px 7px;text-decoration:none}jlerror>section>ol>li>span{opacity:.8;padding:0 1em}table.pluto-table{table-layout:fixed}table.pluto-table td{max-width:300px;overflow:auto}table.pluto-table .schema-types{color:var(--pluto-schema-types-color);font-family:var(--julia-mono-font-stack);font-size:.75rem;opacity:0}table.pluto-table .schema-types th{background-color:var(--main-bg-color);border-bottom:1px solid var(--pluto-schema-types-border-color);height:2rem}table.pluto-table thead:hover .schema-types{opacity:1}table.pluto-table .schema-names th{transform:translateY(.5em);transition:transform .1s ease-in-out}table.pluto-table .schema-names th:first-child,table.pluto-table .schema-types th:first-child{left:-10px;z-index:2}table.pluto-table .schema-names th,table.pluto-table .schema-types th:first-child{background-color:var(--main-bg-color);height:2rem;position:sticky;top:calc(.25rem - var(--pluto-cell-spacing));z-index:1}table.pluto-table thead:hover .schema-names th{transform:translate(0)}table.pluto-table tbody th:first-child{background-color:var(--main-bg-color);left:-10px;position:sticky}table.pluto-table .pluto-tree-more-td{overflow:unset;text-align:left}table.pluto-table .pluto-tree-more-td pluto-tree-more{left:0;max-width:650px;overflow:unset;position:sticky;top:2rem}table.pluto-table tr.empty div{align-items:center;display:flex;flex-flow:column nowrap;font-size:1.5rem;justify-content:center;width:100%}table.pluto-table tr.empty small{font-size:.5rem}pluto-tree.collapsed p-v>pre{max-height:2em;overflow-y:hidden} \ No newline at end of file diff --git a/frontend-dist/editor.30cc7101.js b/frontend-dist/editor.30cc7101.js new file mode 100644 index 0000000000..5da77c2354 --- /dev/null +++ b/frontend-dist/editor.30cc7101.js @@ -0,0 +1,1218 @@ +(()=>{function e(e,t,i,n){Object.defineProperty(e,t,{get:i,set:n,enumerable:!0,configurable:!0})}function t(e){Object.defineProperty(e,"__esModule",{value:!0,configurable:!0})}var i="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{};var n={},r={},o=i.parcelRequire94c2;null==o&&((o=function(e){if(e in n)return n[e].exports;if(e in r){var t=r[e];delete r[e];var i={id:e,exports:{}};return n[e]=i,t.call(i.exports,i,i.exports),i.exports}var o=new Error("Cannot find module '"+e+"'");throw o.code="MODULE_NOT_FOUND",o}).register=function(e,t){r[e]=t},i.parcelRequire94c2=o),o.register("jTduX",(function(t,i){var n,r;e(t.exports,"register",(()=>n),(e=>n=e)),e(t.exports,"resolve",(()=>r),(e=>r=e));var o={};n=function(e){for(var t=Object.keys(e),i=0;i_e)),e(s,"render",(()=>j)),e(s,"Component",(()=>_)),e(s,"useEffect",(()=>se)),e(s,"useLayoutEffect",(()=>ae)),e(s,"useState",(()=>oe)),e(s,"useRef",(()=>le)),e(s,"useMemo",(()=>ce)),e(s,"useCallback",(()=>Oe)),e(s,"useErrorBoundary",(()=>ue)),e(s,"createContext",(()=>z)),e(s,"createRef",(()=>y)),e(s,"useContext",(()=>he)),e(s,"h",(()=>Q)),e(s,"cloneElement",(()=>D)),e(s,"hydrate",(()=>M));var a,l,c,O,h,u,d,f,p={},g=[],m=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i;function b(e,t){for(var i in t)e[i]=t[i];return e}function $(e){var t=e.parentNode;t&&t.removeChild(e)}function Q(e,t,i){var n,r,o,s={};for(o in t)"key"==o?n=t[o]:"ref"==o?r=t[o]:s[o]=t[o];if(arguments.length>2&&(s.children=arguments.length>3?a.call(arguments,2):i),"function"==typeof e&&null!=e.defaultProps)for(o in e.defaultProps)void 0===s[o]&&(s[o]=e.defaultProps[o]);return v(e,s,n,r,null)}function v(e,t,i,n,r){var o={type:e,props:t,key:i,ref:n,__k:null,__:null,__b:0,__e:null,__d:void 0,__c:null,__h:null,constructor:void 0,__v:r??++c};return null==r&&null!=l.vnode&&l.vnode(o),o}function y(){return{current:null}}function w(e){return e.children}function _(e,t){this.props=e,this.context=t}function S(e,t){if(null==t)return e.__?S(e.__,e.__.__k.indexOf(e)+1):null;for(var i;tt&&O.sort(d));P.__r=0}function k(e,t,i,n,r,o,s,a,l,c){var O,h,u,d,f,m,b,$=n&&n.__k||g,Q=$.length;for(i.__k=[],O=0;O0?v(d.type,d.props,d.key,d.ref?d.ref:null,d.__v):d)){if(d.__=i,d.__b=i.__b+1,null===(u=$[O])||u&&d.key==u.key&&d.type===u.type)$[O]=void 0;else for(h=0;h=0;t--)if((i=e.__k[t])&&(n=Y(i)))return n;return null}function A(e,t,i){"-"===t[0]?e.setProperty(t,i??""):e[t]=null==i?"":"number"!=typeof i||m.test(t)?i:i+"px"}function V(e,t,i,n,r){var o;e:if("style"===t)if("string"==typeof i)e.style.cssText=i;else{if("string"==typeof n&&(e.style.cssText=n=""),n)for(t in n)i&&t in i||A(e.style,t,"");if(i)for(t in i)n&&i[t]===n[t]||A(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?n||e.addEventListener(t,o?E:Z,o):e.removeEventListener(t,o?E:Z,o);else if("dangerouslySetInnerHTML"!==t){if(r)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 Z(e){return this.l[e.type+!1](l.event?l.event(e):e)}function E(e){return this.l[e.type+!0](l.event?l.event(e):e)}function C(e,t,i,n,r,o,s,c,O){var h,u,d,f,g,m,Q,v,y,x,X,P,T,R,Y,A=t.type;if(void 0!==t.constructor)return null;null!=i.__h&&(O=i.__h,c=t.__e=i.__e,t.__h=null,o=[c]),(h=l.__b)&&h(t);try{e:if("function"==typeof A){if(v=t.props,y=(h=A.contextType)&&n[h.__c],x=h?y?y.props.value:h.__:n,i.__c?Q=(u=t.__c=i.__c).__=u.__E:("prototype"in A&&A.prototype.render?t.__c=u=new A(v,x):(t.__c=u=new _(v,x),u.constructor=A,u.render=W),y&&y.sub(u),u.props=v,u.state||(u.state={}),u.context=x,u.__n=n,d=u.__d=!0,u.__h=[],u._sb=[]),null==u.__s&&(u.__s=u.state),null!=A.getDerivedStateFromProps&&(u.__s==u.state&&(u.__s=b({},u.__s)),b(u.__s,A.getDerivedStateFromProps(v,u.__s))),f=u.props,g=u.state,u.__v=t,d)null==A.getDerivedStateFromProps&&null!=u.componentWillMount&&u.componentWillMount(),null!=u.componentDidMount&&u.__h.push(u.componentDidMount);else{if(null==A.getDerivedStateFromProps&&v!==f&&null!=u.componentWillReceiveProps&&u.componentWillReceiveProps(v,x),!u.__e&&null!=u.shouldComponentUpdate&&!1===u.shouldComponentUpdate(v,u.__s,x)||t.__v===i.__v){for(t.__v!==i.__v&&(u.props=v,u.state=u.__s,u.__d=!1),u.__e=!1,t.__e=i.__e,t.__k=i.__k,t.__k.forEach((function(e){e&&(e.__=t)})),X=0;X2&&(s.children=arguments.length>3?a.call(arguments,2):i),v(e.type,s,n||e.key,r||e.ref,null)}function z(e,t){var i={__c:t="__cC"+f++,__:e,Consumer:function(e,t){return e.children(t)},Provider:function(e){var i,n;return this.getChildContext||(i=[],(n={})[t]=this,this.getChildContext=function(){return n},this.shouldComponentUpdate=function(e){this.props.value!==e.value&&i.some((function(e){e.__e=!0,X(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}a=g.slice,l={__e:function(e,t,i,n){for(var r,o,s;t=t.__;)if((r=t.__c)&&!r.__)try{if((o=r.constructor)&&null!=o.getDerivedStateFromError&&(r.setState(o.getDerivedStateFromError(e)),s=r.__d),null!=r.componentDidCatch&&(r.componentDidCatch(e,n||{}),s=r.__d),s)return r.__E=r}catch(t){e=t}throw e}},c=0,_.prototype.setState=function(e,t){var i;i=null!=this.__s&&this.__s!==this.state?this.__s:this.__s=b({},this.state),"function"==typeof e&&(e=e(b({},i),this.props)),e&&b(i,e),null!=e&&this.__v&&(t&&this._sb.push(t),X(this))},_.prototype.forceUpdate=function(e){this.__v&&(this.__e=!0,e&&this.__h.push(e),X(this))},_.prototype.render=w,O=[],u="function"==typeof Promise?Promise.prototype.then.bind(Promise.resolve()):setTimeout,d=function(e,t){return e.__v.__b-t.__v.__b},P.__r=0,f=0;var B,G,I,L,K=0,F=[],H=[],J=l.__b,ee=l.__r,te=l.diffed,ie=l.__c,ne=l.unmount;function re(e,t){l.__h&&l.__h(G,e,K||t),K=0;var i=G.__H||(G.__H={__:[],__h:[]});return e>=i.__.length&&i.__.push({__V:H}),i.__[e]}function oe(e){return K=1,function(e,t,i){var n=re(B++,2);if(n.t=e,!n.__c&&(n.__=[i?i(t):$e(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=G,!G.u)){var r=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 s=!1;return r.forEach((function(e){if(e.__N){var t=e.__[0];e.__=e.__N,e.__N=void 0,t!==e.__[0]&&(s=!0)}})),!(!s&&n.__c.props===e)&&(!o||o.call(this,e,t,i))};G.u=!0;var o=G.shouldComponentUpdate,s=G.componentWillUpdate;G.componentWillUpdate=function(e,t,i){if(this.__e){var n=o;o=void 0,r(e,t,i),o=n}s&&s.call(this,e,t,i)},G.shouldComponentUpdate=r}return n.__N||n.__}($e,e)}function se(e,t){var i=re(B++,3);!l.__s&&be(i.__H,t)&&(i.__=e,i.i=t,G.__H.__h.push(i))}function ae(e,t){var i=re(B++,4);!l.__s&&be(i.__H,t)&&(i.__=e,i.i=t,G.__h.push(i))}function le(e){return K=5,ce((function(){return{current:e}}),[])}function ce(e,t){var i=re(B++,7);return be(i.__H,t)?(i.__V=e(),i.i=t,i.__h=e,i.__V):i.__}function Oe(e,t){return K=8,ce((function(){return e}),t)}function he(e){var t=G.context[e.__c],i=re(B++,9);return i.c=e,t?(null==i.__&&(i.__=!0,t.sub(G)),t.props.value):e.__}function ue(e){var t=re(B++,10),i=oe();return t.__=e,G.componentDidCatch||(G.componentDidCatch=function(e,n){t.__&&t.__(e,n),i[1](e)}),[i[0],function(){i[1](void 0)}]}function de(){for(var e;e=F.shift();)if(e.__P&&e.__H)try{e.__H.__h.forEach(ge),e.__H.__h.forEach(me),e.__H.__h=[]}catch(t){e.__H.__h=[],l.__e(t,e.__v)}}l.__b=function(e){G=null,J&&J(e)},l.__r=function(e){ee&&ee(e),B=0;var t=(G=e.__c).__H;t&&(I===G?(t.__h=[],G.__h=[],t.__.forEach((function(e){e.__N&&(e.__=e.__N),e.__V=H,e.__N=e.i=void 0}))):(t.__h.forEach(ge),t.__h.forEach(me),t.__h=[])),I=G},l.diffed=function(e){te&&te(e);var t=e.__c;t&&t.__H&&(t.__H.__h.length&&(1!==F.push(t)&&L===l.requestAnimationFrame||((L=l.requestAnimationFrame)||pe)(de)),t.__H.__.forEach((function(e){e.i&&(e.__H=e.i),e.__V!==H&&(e.__=e.__V),e.i=void 0,e.__V=H}))),I=G=null},l.__c=function(e,t){t.some((function(e){try{e.__h.forEach(ge),e.__h=e.__h.filter((function(e){return!e.__||me(e)}))}catch(i){t.some((function(e){e.__h&&(e.__h=[])})),t=[],l.__e(i,e.__v)}})),ie&&ie(e,t)},l.unmount=function(e){ne&&ne(e);var t,i=e.__c;i&&i.__H&&(i.__H.__.forEach((function(e){try{ge(e)}catch(e){t=e}})),i.__H=void 0,t&&l.__e(t,i.__v))};var fe="function"==typeof requestAnimationFrame;function pe(e){var t,i=function(){clearTimeout(n),fe&&cancelAnimationFrame(t),setTimeout(e)},n=setTimeout(i,100);fe&&(t=requestAnimationFrame(i))}function ge(e){var t=G,i=e.__c;"function"==typeof i&&(e.__c=void 0,i()),G=t}function me(e){var t=G;e.__c=e.__(),G=t}function be(e,t){return!e||e.length!==t.length||t.some((function(t,i){return t!==e[i]}))}function $e(e,t){return"function"==typeof t?t(e):t}var Qe={};t(Qe),e(Qe,"default",(()=>we));var ve=function(e,t,i,n){var r;t[0]=0;for(var o=1;o=5&&((r||!e&&5===n)&&(s.push(n,0,r,i),n=6),e&&(s.push(n,e,0,i),n=6)),r=""},l=0;l"===t?(n=1,r=""):r=t+r[0]:o?t===o?o="":r+=t:'"'===t||"'"===t?o=t:">"===t?(a(),n=1):n&&("="===t?(n=5,i=r,r=""):"/"===t&&(n<5||">"===e[l][c+1])?(a(),3===n&&(s=s[0]),n=s,(s=s[0]).push(2,0,n),n=0):" "===t||"\t"===t||"\n"===t||"\r"===t?(a(),n=2):r+=t),3===n&&"!--"===r&&(n=4,s=s[0])}return a(),s}(e)),t),arguments,[])).length>1?t:t[0]}const _e=we.bind(Q);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")}function Se(e){for(var t=arguments.length,i=Array(t>1?t-1:0),n=1;n3?t.i-4:t.i:Array.isArray(e)?1:Ve(e)?2:Ze(e)?3:0}function Te(e,t){return 2===ke(e)?e.has(t):Object.prototype.hasOwnProperty.call(e,t)}function Re(e,t){return 2===ke(e)?e.get(t):e[t]}function Ye(e,t,i){var n=ke(e);2===n?e.set(t,i):3===n?(e.delete(t),e.add(i)):e[t]=i}function Ae(e,t){return e===t?0!==e||1/e==1/t:e!=e&&t!=t}function Ve(e){return ct&&e instanceof Map}function Ze(e){return Ot&&e instanceof Set}function Ee(e){return e.o||e.t}function Ce(e){if(Array.isArray(e))return Array.prototype.slice.call(e);var t=gt(e);delete t[ft];for(var i=pt(t),n=0;n1&&(e.set=e.add=e.clear=e.delete=qe),Object.freeze(e),t&&Pe(e,(function(e,t){return Ne(t,!0)}),!0)),e}function qe(){Se(2)}function Ue(e){return null==e||"object"!=typeof e||Object.isFrozen(e)}function We(e){var t=mt[e];return t||Se(18,e),t}function je(e,t){mt[e]||(mt[e]=t)}function Me(){return at}function De(e,t){t&&(We("Patches"),e.u=[],e.s=[],e.v=t)}function ze(e){Be(e),e.p.forEach(Ie),e.p=null}function Be(e){e===at&&(at=e.l)}function Ge(e){return at={p:[],l:at,h:e,m:!0,_:0}}function Ie(e){var t=e[ft];0===t.i||1===t.i?t.j():t.g=!0}function Le(e,t){t._=t.p.length;var i=t.p[0],n=void 0!==e&&e!==i;return t.h.O||We("ES5").S(t,e,n),n?(i[ft].P&&(ze(t),Se(4)),Xe(e)&&(e=Ke(t,e),t.l||He(t,e)),t.u&&We("Patches").M(i[ft],e,t.u,t.s)):e=Ke(t,i,[]),ze(t),t.u&&t.v(t.u,t.s),e!==ut?e:void 0}function Ke(e,t,i){if(Ue(t))return t;var n=t[ft];if(!n)return Pe(t,(function(r,o){return Fe(e,n,t,r,o,i)}),!0),t;if(n.A!==e)return t;if(!n.P)return He(e,n.t,!0),n.t;if(!n.I){n.I=!0,n.A._--;var r=4===n.i||5===n.i?n.o=Ce(n.k):n.o;Pe(3===n.i?new Set(r):r,(function(t,o){return Fe(e,n,r,t,o,i)})),He(e,r,!1),i&&e.u&&We("Patches").R(n,i,e.u,e.s)}return n.o}function Fe(e,t,i,n,r,o){if(xe(r)){var s=Ke(e,r,o&&t&&3!==t.i&&!Te(t.D,n)?o.concat(n):void 0);if(Ye(i,n,s),!xe(s))return;e.m=!1}if(Xe(r)&&!Ue(r)){if(!e.h.N&&e._<1)return;Ke(e,r),t&&t.A.l||He(e,r)}}function He(e,t,i){void 0===i&&(i=!1),e.h.N&&e.m&&Ne(t,i)}function Je(e,t){var i=e[ft];return(i?Ee(i):e)[t]}function et(e,t){if(t in e)for(var i=Object.getPrototypeOf(e);i;){var n=Object.getOwnPropertyDescriptor(i,t);if(n)return n;i=Object.getPrototypeOf(i)}}function tt(e){e.P||(e.P=!0,e.l&&tt(e.l))}function it(e){e.o||(e.o=Ce(e.t))}function nt(e,t,i){var n=Ve(t)?We("MapSet").T(t,i):Ze(t)?We("MapSet").F(t,i):e.O?function(e,t){var i=Array.isArray(e),n={i:i?1:0,A:t?t.A:Me(),P:!1,I:!1,D:{},l:t,t:e,k:null,o:null,j:null,C:!1},r=n,o=bt;i&&(r=[n],o=$t);var s=Proxy.revocable(r,o),a=s.revoke,l=s.proxy;return n.k=l,n.j=a,l}(t,i):We("ES5").J(t,i);return(i?i.A:Me()).p.push(n),n}function rt(e,t){switch(t){case 2:return new Map(e);case 3:return Array.from(e)}return Ce(e)}function ot(){function e(t){if(!Xe(t))return t;if(Array.isArray(t))return t.map(e);if(Ve(t))return new Map(Array.from(t.entries()).map((function(t){return[t[0],e(t[1])]})));if(Ze(t))return new Set(Array.from(t).map(e));var i=Object.create(Object.getPrototypeOf(t));for(var n in t)i[n]=e(t[n]);return i}function t(t){return xe(t)?e(t):t}var i="add";je("Patches",{$:function(t,n){return n.forEach((function(n){for(var r=n.path,o=n.op,s=t,a=0;a1?o-1:0),a=1;a1?i-1:0),o=1;o=0;i--){var n=t[i];if(0===n.path.length&&"replace"===n.op){e=n.value;break}}var r=We("Patches").$;return xe(e)?r(e,t):this.produce(e,(function(e){return r(e,t.slice(i+1))}))},e}(),vt=new Qt,yt=vt.produce,wt=vt.produceWithPatches.bind(vt),_t=vt.setAutoFreeze.bind(vt),St=(vt.setUseProxies.bind(vt),vt.applyPatches.bind(vt)),xt=(vt.createDraft.bind(vt),vt.finishDraft.bind(vt),yt);ot(),_t(!1);var Xt=window._;let Pt=()=>{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 kt=Pt(),Tt=Pt();kt.DOM,kt.Files,kt.Generators;let Rt=kt.Promises;kt.now,kt.svg,kt.html,kt.require;const Yt=function e(t,i,n){function r(s,a){if(!i[s]){if(!t[s]){var l=void 0;if(!a&&l)return l(s,!0);if(o)return o(s,!0);var c=new Error("Cannot find module '"+s+"'");throw c.code="MODULE_NOT_FOUND",c}var O=i[s]={exports:{}};t[s][0].call(O.exports,(function(e){var i=t[s][1][e];return r(i||e)}),O,O.exports,e,t,i,n)}return i[s].exports}for(var o=void 0,s=0;s>>6,i[n++]=128|63&o):o<55296||o>57343?(i[n++]=224|o>>>12,i[n++]=128|o>>>6&63,i[n++]=128|63&o):(o=65536+(o-55296<<10|e.charCodeAt(s++)-56320),i[n++]=240|o>>>18,i[n++]=128|o>>>12&63,i[n++]=128|o>>>6&63,i[n++]=128|63&o);return n-t}function r(e,t,i){var n=this,r=0|t;i||(i=n.length);for(var o="",s=0;r=65536?(s-=65536,o+=String.fromCharCode(55296+(s>>>10),56320+(1023&s))):o+=String.fromCharCode(s));return o}function o(e,t,i,n){var r;i||(i=0),n||0===n||(n=this.length),t||(t=0);var o=n-i;if(e===this&&i=0;r--)e[r+t]=this[r+i];else for(r=0;rthis.buffer.length)throw new Error(g);return this.offset=i,t}return{bufferish:d,write:e,fetch:l,flush:t,push:O,pull:h,read:c,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 n(e){var t=0|e;if(this.buffer){var i=this.buffer.length,n=0|this.offset,r=n+t;if(rthis.minBufferSize)this.flush(),this.push(e);else{var i=this.reserve(t);d.prototype.copy.call(e,this.buffer,i)}}return{bufferish:d,write:a,fetch:e,flush:t,push:O,pull:i,read:c,reserve:n,send:r,maxBufferSize:p,minBufferSize:f,offset:0,start:0}}function a(){throw new Error("method not implemented: write()")}function l(){throw new Error("method not implemented: fetch()")}function c(){return this.buffers&&this.buffers.length?(this.flush(),this.pull()):this.fetch()}function O(e){(this.buffers||(this.buffers=[])).push(e)}function h(){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=n,i.FlexEncoder=r;var d=e("./bufferish"),f=2048,p=65536,g="BUFFER_SHORTAGE";n.mixin=u(o()),n.mixin(n.prototype),r.mixin=u(s()),r.mixin(r.prototype)},{"./bufferish":8}],22:[function(e,t,i){function n(e){function t(e){var t=c(e),n=i[t];if(!n)throw new Error("Invalid type: "+(t?"0x"+t.toString(16):t));return n(e)}var i=O.getReadToken(e);return t}function r(){var e=this.options;return this.decode=n(e),e&&e.preset&&l.setExtUnpackers(this),this}function o(e,t){(this.extUnpackers||(this.extUnpackers=[]))[e]=h.filter(t)}function s(e){function t(t){return new a(t,e)}return(this.extUnpackers||(this.extUnpackers=[]))[e]||t}var a=e("./ext-buffer").ExtBuffer,l=e("./ext-unpacker"),c=e("./read-format").readUint8,O=e("./read-token"),h=e("./codec-base");h.install({addExtUnpacker:o,getExtUnpacker:s,init:r}),i.preset=r.call(h.preset)},{"./codec-base":9,"./ext-buffer":17,"./ext-unpacker":19,"./read-format":23,"./read-token":24}],23:[function(e,t,i){function n(e){var t=P.hasArrayBuffer&&e&&e.binarraybuffer,i=e&&e.int64;return{map:T&&e&&e.usemap?o:r,array:s,str:a,bin:t?c:l,ext:O,uint8:h,uint16:d,uint32:p,uint64:m(8,i?Q:b),int8:u,int16:f,int32:g,int64:m(8,i?v:$),float32:m(4,y),float64:m(8,w)}}function r(e,t){var i,n={},r=new Array(t),o=new Array(t),s=e.codec.decode;for(i=0;i>>8,r[n]=i}}function c(e){return function(t,i){var n=t.reserve(5),r=t.buffer;r[n++]=e,r[n++]=i>>>24,r[n++]=i>>>16,r[n++]=i>>>8,r[n]=i}}function O(e,t,i,n){return function(r,o){var s=r.reserve(t+1);r.buffer[s++]=e,i.call(r.buffer,o,s,n)}}function h(e,t){new m(this,t,e)}function u(e,t){new b(this,t,e)}function d(e,t){p.write(this,e,t,!1,23,4)}function f(e,t){p.write(this,e,t,!1,52,8)}var p=e("ieee754"),g=e("int64-buffer"),m=g.Uint64BE,b=g.Int64BE,$=e("./write-uint8").uint8,Q=e("./bufferish"),v=Q.global,y=Q.hasBuffer&&"TYPED_ARRAY_SUPPORT"in v&&!v.TYPED_ARRAY_SUPPORT,w=Q.hasBuffer&&v.prototype||{};i.getWriteToken=n},{"./bufferish":8,"./write-uint8":28,ieee754:32,"int64-buffer":33}],27:[function(e,t,i){function n(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 n(e,t){k[207](e,t.toArray())}function o(e,t){k[211](e,t.toArray())}function g(e){return e<32?1:e<=255?2:e<=65535?3:5}function m(e){return e<32?1:e<=65535?3:5}function b(e){function t(t,i){var n=i.length,r=5+3*n;t.offset=t.reserve(r);var o=t.buffer,s=e(n),a=t.offset+s;n=c.write.call(o,i,a);var l=e(n);if(s!==l){var O=a+l-s,h=a+n;c.copy.call(o,o,O,a,h)}k[1===l?160+n:l<=3?215+l:219](t,n),t.offset+=n}return t}function $(e,t){if(null===t)return v(e,t);if(Y(t))return A(e,t);if(r(t))return y(e,t);if(s.isUint64BE(t))return n(e,t);if(a.isInt64BE(t))return o(e,t);var i=e.codec.getExtPacker(t);return i&&(t=i(t)),t instanceof u?S(e,t):void V(e,t)}function Q(e,t){return Y(t)?P(e,t):void $(e,t)}function v(e,t){k[192](e,t)}function y(e,t){var i=t.length;k[i<16?144+i:i<=65535?220:221](e,i);for(var n=e.codec.encode,r=0;r=r())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+r().toString(16)+" bytes");return 0|e}function g(e){return+e!=e&&(e=0),s.alloc(+e)}function m(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 n=!1;;)switch(t){case"ascii":case"latin1":case"binary":return i;case"utf8":case"utf-8":case void 0:return z(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(n)return z(e).length;t=(""+t).toLowerCase(),n=!0}}function b(e,t,i){var n=!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 A(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 Y(this,t,i);case"base64":return P(this,t,i);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return V(this,t,i);default:if(n)throw new TypeError("Unknown encoding: "+e);e=(e+"").toLowerCase(),n=!0}}function $(e,t,i){var n=e[t];e[t]=e[i],e[i]=n}function Q(e,t,i,n,r){if(0===e.length)return-1;if("string"==typeof i?(n=i,i=0):i>2147483647?i=2147483647:i<-2147483648&&(i=-2147483648),i=+i,isNaN(i)&&(i=r?0:e.length-1),i<0&&(i=e.length+i),i>=e.length){if(r)return-1;i=e.length-1}else if(i<0){if(!r)return-1;i=0}if("string"==typeof t&&(t=s.from(t,n)),s.isBuffer(t))return 0===t.length?-1:v(e,t,i,n,r);if("number"==typeof t)return t&=255,s.TYPED_ARRAY_SUPPORT&&"function"==typeof Uint8Array.prototype.indexOf?r?Uint8Array.prototype.indexOf.call(e,t,i):Uint8Array.prototype.lastIndexOf.call(e,t,i):v(e,[t],i,n,r);throw new TypeError("val must be string, number or Buffer")}function v(e,t,i,n,r){function o(e,t){return 1===a?e[t]:e.readUInt16BE(t*a)}var s,a=1,l=e.length,c=t.length;if(void 0!==n&&("ucs2"===(n=String(n).toLowerCase())||"ucs-2"===n||"utf16le"===n||"utf-16le"===n)){if(e.length<2||t.length<2)return-1;a=2,l/=2,c/=2,i/=2}if(r){var O=-1;for(s=i;sl&&(i=l-c),s=i;s>=0;s--){for(var h=!0,u=0;ur&&(n=r):n=r;var o=t.length;if(o%2!=0)throw new TypeError("Invalid hex string");n>o/2&&(n=o/2);for(var s=0;s239?4:c>223?3:c>191?2:1;if(r+h<=i)switch(h){case 1:c<128&&(O=c);break;case 2:128==(192&(o=e[r+1]))&&(l=(31&c)<<6|63&o)>127&&(O=l);break;case 3:o=e[r+1],s=e[r+2],128==(192&o)&&128==(192&s)&&(l=(15&c)<<12|(63&o)<<6|63&s)>2047&&(l<55296||l>57343)&&(O=l);break;case 4:o=e[r+1],s=e[r+2],a=e[r+3],128==(192&o)&&128==(192&s)&&128==(192&a)&&(l=(15&c)<<18|(63&o)<<12|(63&s)<<6|63&a)>65535&&l<1114112&&(O=l)}null===O?(O=65533,h=1):O>65535&&(O-=65536,n.push(O>>>10&1023|55296),O=56320|1023&O),n.push(O),r+=h}return T(n)}function T(e){var t=e.length;if(t<=ee)return String.fromCharCode.apply(String,e);for(var i="",n=0;nn)&&(i=n);for(var r="",o=t;oi)throw new RangeError("Trying to access beyond buffer length")}function E(e,t,i,n,r,o){if(!s.isBuffer(e))throw new TypeError('"buffer" argument must be a Buffer instance');if(t>r||te.length)throw new RangeError("Index out of range")}function C(e,t,i,n){t<0&&(t=65535+t+1);for(var r=0,o=Math.min(e.length-i,2);r>>8*(n?r:1-r)}function N(e,t,i,n){t<0&&(t=4294967295+t+1);for(var r=0,o=Math.min(e.length-i,4);r>>8*(n?r:3-r)&255}function q(e,t,i,n,r,o){if(i+n>e.length)throw new RangeError("Index out of range");if(i<0)throw new RangeError("Index out of range")}function U(e,t,i,n,r){return r||q(e,t,i,4,34028234663852886e22,-34028234663852886e22),H.write(e,t,i,n,23,4),i+4}function W(e,t,i,n,r){return r||q(e,t,i,8,17976931348623157e292,-17976931348623157e292),H.write(e,t,i,n,52,8),i+8}function j(e){if((e=M(e).replace(te,"")).length<2)return"";for(;e.length%4!=0;)e+="=";return e}function M(e){return e.trim?e.trim():e.replace(/^\s+|\s+$/g,"")}function D(e){return e<16?"0"+e.toString(16):e.toString(16)}function z(e,t){t=t||1/0;for(var i,n=e.length,r=null,o=[],s=0;s55295&&i<57344){if(!r){if(i>56319){(t-=3)>-1&&o.push(239,191,189);continue}if(s+1===n){(t-=3)>-1&&o.push(239,191,189);continue}r=i;continue}if(i<56320){(t-=3)>-1&&o.push(239,191,189),r=i;continue}i=65536+(r-55296<<10|i-56320)}else r&&(t-=3)>-1&&o.push(239,191,189);if(r=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 B(e){for(var t=[],i=0;i>8,r=i%256,o.push(r),o.push(n);return o}function I(e){return F.toByteArray(j(e))}function L(e,t,i,n){for(var r=0;r=t.length||r>=e.length);++r)t[r+i]=e[r];return r}function K(e){return e!=e}var F=e("base64-js"),H=e("ieee754"),J=e("isarray");n.Buffer=s,n.SlowBuffer=g,n.INSPECT_MAX_BYTES=50,s.TYPED_ARRAY_SUPPORT=void 0!==t.TYPED_ARRAY_SUPPORT?t.TYPED_ARRAY_SUPPORT:i(),n.kMaxLength=r(),s.poolSize=8192,s._augment=function(e){return e.__proto__=s.prototype,e},s.from=function(e,t,i){return a(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 c(null,e,t,i)},s.allocUnsafe=function(e){return O(null,e)},s.allocUnsafeSlow=function(e){return O(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,n=t.length,r=0,o=Math.min(i,n);r0&&(e=this.toString("hex",0,t).match(/.{2}/g).join(" "),this.length>t&&(e+=" ... ")),""},s.prototype.compare=function(e,t,i,n,r){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===n&&(n=0),void 0===r&&(r=this.length),t<0||i>e.length||n<0||r>this.length)throw new RangeError("out of range index");if(n>=r&&t>=i)return 0;if(n>=r)return-1;if(t>=i)return 1;if(this===e)return 0;for(var o=(r>>>=0)-(n>>>=0),a=(i>>>=0)-(t>>>=0),l=Math.min(o,a),c=this.slice(n,r),O=e.slice(t,i),h=0;hr)&&(i=r),e.length>0&&(i<0||t<0)||t>this.length)throw new RangeError("Attempt to write outside buffer bounds");n||(n="utf8");for(var o=!1;;)switch(n){case"hex":return y(this,e,t,i);case"utf8":case"utf-8":return w(this,e,t,i);case"ascii":return _(this,e,t,i);case"latin1":case"binary":return S(this,e,t,i);case"base64":return x(this,e,t,i);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return X(this,e,t,i);default:if(o)throw new TypeError("Unknown encoding: "+n);n=(""+n).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,n=this.length;if((e=~~e)<0?(e+=n)<0&&(e=0):e>n&&(e=n),(t=void 0===t?n:~~t)<0?(t+=n)<0&&(t=0):t>n&&(t=n),t0&&(r*=256);)n+=this[e+--t]*r;return n},s.prototype.readUInt8=function(e,t){return t||Z(e,1,this.length),this[e]},s.prototype.readUInt16LE=function(e,t){return t||Z(e,2,this.length),this[e]|this[e+1]<<8},s.prototype.readUInt16BE=function(e,t){return t||Z(e,2,this.length),this[e]<<8|this[e+1]},s.prototype.readUInt32LE=function(e,t){return t||Z(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||Z(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||Z(e,t,this.length);for(var n=this[e],r=1,o=0;++o=(r*=128)&&(n-=Math.pow(2,8*t)),n},s.prototype.readIntBE=function(e,t,i){e|=0,t|=0,i||Z(e,t,this.length);for(var n=t,r=1,o=this[e+--n];n>0&&(r*=256);)o+=this[e+--n]*r;return o>=(r*=128)&&(o-=Math.pow(2,8*t)),o},s.prototype.readInt8=function(e,t){return t||Z(e,1,this.length),128&this[e]?-1*(255-this[e]+1):this[e]},s.prototype.readInt16LE=function(e,t){t||Z(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||Z(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||Z(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||Z(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||Z(e,4,this.length),H.read(this,e,!0,23,4)},s.prototype.readFloatBE=function(e,t){return t||Z(e,4,this.length),H.read(this,e,!1,23,4)},s.prototype.readDoubleLE=function(e,t){return t||Z(e,8,this.length),H.read(this,e,!0,52,8)},s.prototype.readDoubleBE=function(e,t){return t||Z(e,8,this.length),H.read(this,e,!1,52,8)},s.prototype.writeUIntLE=function(e,t,i,n){e=+e,t|=0,i|=0,n||E(this,e,t,i,Math.pow(2,8*i)-1,0);var r=1,o=0;for(this[t]=255&e;++o=0&&(o*=256);)this[t+r]=e/o&255;return t+i},s.prototype.writeUInt8=function(e,t,i){return e=+e,t|=0,i||E(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||E(this,e,t,2,65535,0),s.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):C(this,e,t,!0),t+2},s.prototype.writeUInt16BE=function(e,t,i){return e=+e,t|=0,i||E(this,e,t,2,65535,0),s.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):C(this,e,t,!1),t+2},s.prototype.writeUInt32LE=function(e,t,i){return e=+e,t|=0,i||E(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):N(this,e,t,!0),t+4},s.prototype.writeUInt32BE=function(e,t,i){return e=+e,t|=0,i||E(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):N(this,e,t,!1),t+4},s.prototype.writeIntLE=function(e,t,i,n){if(e=+e,t|=0,!n){var r=Math.pow(2,8*i-1);E(this,e,t,i,r-1,-r)}var o=0,s=1,a=0;for(this[t]=255&e;++o>0)-a&255;return t+i},s.prototype.writeIntBE=function(e,t,i,n){if(e=+e,t|=0,!n){var r=Math.pow(2,8*i-1);E(this,e,t,i,r-1,-r)}var o=i-1,s=1,a=0;for(this[t+o]=255&e;--o>=0&&(s*=256);)e<0&&0===a&&0!==this[t+o+1]&&(a=1),this[t+o]=(e/s>>0)-a&255;return t+i},s.prototype.writeInt8=function(e,t,i){return e=+e,t|=0,i||E(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||E(this,e,t,2,32767,-32768),s.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):C(this,e,t,!0),t+2},s.prototype.writeInt16BE=function(e,t,i){return e=+e,t|=0,i||E(this,e,t,2,32767,-32768),s.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):C(this,e,t,!1),t+2},s.prototype.writeInt32LE=function(e,t,i){return e=+e,t|=0,i||E(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):N(this,e,t,!0),t+4},s.prototype.writeInt32BE=function(e,t,i){return e=+e,t|=0,i||E(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):N(this,e,t,!1),t+4},s.prototype.writeFloatLE=function(e,t,i){return U(this,e,t,!0,i)},s.prototype.writeFloatBE=function(e,t,i){return U(this,e,t,!1,i)},s.prototype.writeDoubleLE=function(e,t,i){return W(this,e,t,!0,i)},s.prototype.writeDoubleBE=function(e,t,i){return W(this,e,t,!1,i)},s.prototype.copy=function(e,t,i,n){if(i||(i=0),n||0===n||(n=this.length),t>=e.length&&(t=e.length),t||(t=0),n>0&&n=this.length)throw new RangeError("sourceStart out of bounds");if(n<0)throw new RangeError("sourceEnd out of bounds");n>this.length&&(n=this.length),e.length-t=0;--r)e[r+t]=this[r+i];else if(o<1e3||!s.TYPED_ARRAY_SUPPORT)for(r=0;r>>=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 r(e){return 3*e.length/4-n(e)}function o(e){var t,i,r,o,s,a,l=e.length;s=n(e),a=new h(3*l/4-s),r=s>0?l-4:l;var c=0;for(t=0,i=0;t>16&255,a[c++]=o>>8&255,a[c++]=255&o;return 2===s?(o=O[e.charCodeAt(t)]<<2|O[e.charCodeAt(t+1)]>>4,a[c++]=255&o):1===s&&(o=O[e.charCodeAt(t)]<<10|O[e.charCodeAt(t+1)]<<4|O[e.charCodeAt(t+2)]>>2,a[c++]=o>>8&255,a[c++]=255&o),a}function s(e){return c[e>>18&63]+c[e>>12&63]+c[e>>6&63]+c[63&e]}function a(e,t,i){for(var n,r=[],o=t;oO?O:l+s));return 1===n?(t=e[i-1],r+=c[t>>2],r+=c[t<<4&63],r+="=="):2===n&&(t=(e[i-2]<<8)+e[i-1],r+=c[t>>10],r+=c[t>>4&63],r+=c[t<<2&63],r+="="),o.push(r),o.join("")}i.byteLength=r,i.toByteArray=o,i.fromByteArray=l;for(var c=[],O=[],h="undefined"!=typeof Uint8Array?Uint8Array:Array,u="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",d=0,f=u.length;d>1,O=-7,h=i?r-1:0,u=i?-1:1,d=e[t+h];for(h+=u,o=d&(1<<-O)-1,d>>=-O,O+=a;O>0;o=256*o+e[t+h],h+=u,O-=8);for(s=o&(1<<-O)-1,o>>=-O,O+=n;O>0;s=256*s+e[t+h],h+=u,O-=8);if(0===o)o=1-c;else{if(o===l)return s?NaN:1/0*(d?-1:1);s+=Math.pow(2,n),o-=c}return(d?-1:1)*s*Math.pow(2,o-n)},i.write=function(e,t,i,n,r,o){var s,a,l,c=8*o-r-1,O=(1<>1,u=23===r?Math.pow(2,-24)-Math.pow(2,-77):0,d=n?0:o-1,f=n?1:-1,p=t<0||0===t&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(a=isNaN(t)?1:0,s=O):(s=Math.floor(Math.log(t)/Math.LN2),t*(l=Math.pow(2,-s))<1&&(s--,l*=2),(t+=s+h>=1?u/l:u*Math.pow(2,1-h))*l>=2&&(s++,l/=2),s+h>=O?(a=0,s=O):s+h>=1?(a=(t*l-1)*Math.pow(2,r),s+=h):(a=t*Math.pow(2,h-1)*Math.pow(2,r),s=0));r>=8;e[i+d]=255&a,d+=f,a/=256,r-=8);for(s=s<0;e[i+d]=255&s,d+=f,s/=256,c-=8);e[i+d-f]|=128*p}},{}],33:[function(e,t,i){(function(e){!function(t){function i(e,i,d){function Q(e,t,i,n){return this instanceof Q?_(this,e,t,i,n):new Q(e,t,i,n)}function w(e){return!(!e||!e[U])}function _(e,t,i,n,r){m&&b&&(t instanceof b&&(t=new m(t)),n instanceof b&&(n=new m(n))),t||i||n||f?(s(t,i)||(r=i,n=t,i=0,t=new(f||Array)(8)),e.buffer=t,e.offset=i|=0,p!==typeof n&&("string"==typeof n?S(t,i,n,r||10):s(n,r)?a(t,i,n,r):"number"==typeof r?(P(t,i+T,n),P(t,i+R,r)):n>0?E(t,i,n):n<0?C(t,i,n):a(t,i,$,0))):e.buffer=l($,0)}function S(e,t,i,n){var r=0,o=i.length,s=0,a=0;"-"===i[0]&&r++;for(var l=r;r=0))break;a=a*n+c,s=s*n+Math.floor(a/v),a%=v}l&&(s=~s,a?a=v-a:s++),P(e,t+T,s),P(e,t+R,a)}function x(){var e=this.buffer,t=this.offset,i=k(e,t+T),n=k(e,t+R);return d||(i|=0),i?i*v+n:n}function X(e){var t=this.buffer,i=this.offset,n=k(t,i+T),r=k(t,i+R),o="",s=!d&&2147483648&n;for(s&&(n=~n,r=v-r),e=e||10;;){var a=n%e*v+r;if(n=Math.floor(n/e),r=Math.floor(a/e),o=(a%e).toString(e)+o,!n&&!r)break}return s&&(o="-"+o),o}function P(e,t,i){e[t+Z]=255&i,i>>=8,e[t+V]=255&i,i>>=8,e[t+A]=255&i,i>>=8,e[t+Y]=255&i}function k(e,t){return e[t+Y]*y+(e[t+A]<<16)+(e[t+V]<<8)+e[t+Z]}var T=i?0:4,R=i?4:0,Y=i?0:3,A=i?1:2,V=i?2:1,Z=i?3:0,E=i?c:h,C=i?O:u,N=Q.prototype,q="is"+e,U="_"+q;return N.buffer=void 0,N.offset=0,N[U]=!0,N.toNumber=x,N.toString=X,N.toJSON=x,N.toArray=n,g&&(N.toBuffer=r),m&&(N.toArrayBuffer=o),Q[q]=w,t[e]=Q,Q}function n(e){var t=this.buffer,i=this.offset;return f=null,!1!==e&&0===i&&8===t.length&&Q(t)?t:l(t,i)}function r(t){var i=this.buffer,n=this.offset;if(f=g,!1!==t&&0===n&&8===i.length&&e.isBuffer(i))return i;var r=new g(8);return a(r,0,i,n),r}function o(e){var t=this.buffer,i=this.offset,n=t.buffer;if(f=m,!1!==e&&0===i&&n instanceof b&&8===n.byteLength)return n;var r=new m(8);return a(r,0,t,i),r.buffer}function s(e,t){var i=e&&e.length;return t|=0,i&&t+8<=i&&"string"!=typeof e[t]}function a(e,t,i,n){t|=0,n|=0;for(var r=0;r<8;r++)e[t++]=255&i[n++]}function l(e,t){return Array.prototype.slice.call(e,t,t+8)}function c(e,t,i){for(var n=t+8;n>t;)e[--n]=255&i,i/=256}function O(e,t,i){var n=t+8;for(i++;n>t;)e[--n]=255&-i^255,i/=256}function h(e,t,i){for(var n=t+8;tnew Uint8Array(e.buffer,e.byteOffset,e.byteLength);Vt.addExtPacker(17,Int8Array,Zt),Vt.addExtPacker(18,Uint8Array,Zt),Vt.addExtPacker(19,Int16Array,Zt),Vt.addExtPacker(20,Uint16Array,Zt),Vt.addExtPacker(21,Int32Array,Zt),Vt.addExtPacker(22,Uint32Array,Zt),Vt.addExtPacker(23,Float32Array,Zt),Vt.addExtPacker(24,Float64Array,Zt),Vt.addExtPacker(18,Uint8ClampedArray,Zt),Vt.addExtPacker(18,ArrayBuffer,(e=>new Uint8Array(e))),Vt.addExtPacker(18,DataView,Zt),Vt.addExtPacker(13,Date,(e=>new BigInt64Array([BigInt(+e)]))),Vt.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)})),Vt.addExtUnpacker(17,(e=>new Int8Array(e.buffer))),Vt.addExtUnpacker(18,(e=>new Uint8Array(e.buffer))),Vt.addExtUnpacker(19,(e=>new Int16Array(e.buffer))),Vt.addExtUnpacker(20,(e=>new Uint16Array(e.buffer))),Vt.addExtUnpacker(21,(e=>new Int32Array(e.buffer))),Vt.addExtUnpacker(22,(e=>new Uint32Array(e.buffer))),Vt.addExtUnpacker(23,(e=>new Float32Array(e.buffer))),Vt.addExtUnpacker(24,(e=>new Float64Array(e.buffer)));const Et=e=>At.encode(e,{codec:Vt}),Ct=e=>At.decode(e,{codec:Vt});var Nt=e=>void 0===e||"auto"===e||"instant"===e||"smooth"===e;function qt(e,t){this.scrollLeft=e,this.scrollTop=t}var Ut=(e,t,i="cannot convert to dictionary.")=>`Failed to execute '${e}' on '${t}': ${i}`,Wt=(e,t,i)=>Ut(e,t,`The provided value '${i}' is not a valid enum value of type ScrollBehavior.`),jt=(e,t,i)=>{var n;let r=`__SEAMLESS.BACKUP$${t}`;return!e[r]&&e[t]&&!(null!==(n=e[t])&&void 0!==n&&n.__isPolyfill)&&(e[r]=e[t]),e[r]||i},Mt=e=>{let t=typeof e;return null!==e&&("object"===t||"function"===t)},Dt=()=>"scrollBehavior"in window.document.documentElement.style,zt=e=>{Object.defineProperty(e,"__isPolyfill",{value:!0})},Bt=(e,t)=>{zt(t),[HTMLElement.prototype,SVGElement.prototype,Element.prototype].forEach((i=>{jt(i,e),i[e]=t}))},Gt=e=>e.ownerDocument.scrollingElement||e.ownerDocument.documentElement,It=e=>.5*(1-Math.cos(Math.PI*e));function Lt(){var e;let t;return t=null!==(e=window.performance)&&void 0!==e&&e.now?()=>window.performance.now():()=>window.Date.now(),Lt=t,t()}var Kt=e=>{let t=(Lt()-e.timeStamp)/(e.duration||500);if(t>1)return e.method(e.targetX,e.targetY),void e.callback();let i=(e.timingFunc||It)(t),n=e.startX+(e.targetX-e.startX)*i,r=e.startY+(e.targetY-e.startY)*i;e.method(n,r),e.rafId=window.requestAnimationFrame((()=>{Kt(e)}))},Ft=e=>isFinite(e)?Number(e):0,Ht=e=>(t,i,n)=>{let[r,o]=(e=>e.window===e)(t)?[Gt(t.document.documentElement),"Window"]:[t,"Element"],s=i??{};if(!Mt(s))throw new TypeError(Ut(e,o));if(!Nt(s.behavior))throw new TypeError(Wt(e,o,s.behavior));"scrollBy"===e&&(s.left=Ft(s.left)+r.scrollLeft,s.top=Ft(s.top)+r.scrollTop),((e,t,i)=>{var n,r;if(!(e=>{var t;return null!==(t=e.isConnected)&&void 0!==t?t:!(e.ownerDocument&&1&e.ownerDocument.compareDocumentPosition(e))})(e))return;let o=e.scrollLeft,s=e.scrollTop,a=Ft(null!==(n=t.left)&&void 0!==n?n:o),l=Ft(null!==(r=t.top)&&void 0!==r?r:s);if(a===o&&l===s)return;let c=jt(HTMLElement.prototype,"scroll",qt),O=jt(Object.getPrototypeOf(e),"scroll",c).bind(e);if("smooth"!==t.behavior)return void O(a,l);let h=()=>{window.removeEventListener("wheel",d),window.removeEventListener("touchmove",d)},u=Object.assign(Object.assign({},i),{timeStamp:Lt(),startX:o,startY:s,targetX:a,targetY:l,rafId:0,method:O,callback:h}),d=()=>{window.cancelAnimationFrame(u.rafId),h()};window.addEventListener("wheel",d,{passive:!0,once:!0}),window.addEventListener("touchmove",d,{passive:!0,once:!0}),Kt(u)})(r,s,n)},Jt=Ht("scroll"),ei=Ht("scrollTo"),ti=Ht("scrollBy"),ii=Jt,ni=(e,t)=>i=>{if(Dt())return;let n={scroll:Jt,scrollTo:ei,scrollBy:ti}[e];t(e,(function(){let e=arguments;if(1===arguments.length)return void n(this,e[0],i);let t=e[0],r=e[1];n(this,{left:t,top:r})}))},ri=ni("scroll",Bt),oi=ni("scrollTo",Bt),si=ni("scrollBy",Bt),ai=(e,t)=>{zt(t),jt(window,e),window[e]=t},li=ni("scroll",ai),ci=ni("scrollTo",ai),Oi=ni("scrollBy",ai),hi=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},ui=(e,t,i,n)=>{let r=0;switch(t||(r^=2),e){case 0:r=r>>1|(1&r)<<1,[i,n]=[n,i];break;case 1:case 3:r^=1;break;case 4:r^=2}return[r,i,n]},di=e=>1==(1&ui(hi(e.writingMode),"rtl"!==e.direction,void 0,void 0)[0]),fi=(e,t,i,n,r,o,s)=>0!==e?e:ri||r>t&&o=i&&s>=n?2:o>i&&sn?3:null,pi=e=>"visible"!==e&&"clip"!==e,gi=(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},bi=(e,t,i)=>ei?i:e,$i=(e,t,i)=>{switch(e){case 1:return(t+i)/2;case 3:return i;case 2:case 0:return t}},Qi=(e,t)=>{var i,n,r;let o=null===(i=e.ownerDocument.defaultView)||void 0===i?void 0:i.visualViewport,[s,a,l,c]=e===Gt(e)?[0,0,null!==(n=null==o?void 0:o.width)&&void 0!==n?n:e.clientWidth,null!==(r=null==o?void 0:o.height)&&void 0!==r?r:e.clientHeight]:[t.left,t.top,e.clientWidth,e.clientHeight],O=s+e.clientLeft,h=a+e.clientTop;return[h,O+l,h+c,O]},vi=(e,t)=>{let i=[],n=e.ownerDocument,r=n.defaultView;if(!r)return i;let o=window.getComputedStyle(e),s="rtl"!==o.direction,a=hi(o.writingMode||o.getPropertyValue("-webkit-writing-mode")||o.getPropertyValue("-ms-writing-mode")),[l,c]=((e,t,i)=>{let[n,r,o]=ui(t,i,e.block||"start",e.inline||"nearest");return[r,o].map(((e,t)=>{switch(e){case"center":return 1;case"nearest":return 0;default:return"start"===e==!(n>>t&1)?2:3}}))})(t,a,s),[O,h,u,d]=((e,t,i)=>{let{top:n,right:r,bottom:o,left:s}=t,a=(e=>["scroll-margin","scroll-snap-margin"].filter((t=>t in e.documentElement.style))[0])(e.ownerDocument);if(!a)return[n,r,o,s];let l=e=>{let t=i.getPropertyValue(`${a}-${e}`);return parseInt(t,10)||0};return[n-l("top"),r+l("right"),o+l("bottom"),s-l("left")]})(e,e.getBoundingClientRect(),o);for(let o=mi(e);null!==o;o=mi(o)){if(n!==o.ownerDocument){if(n=o.ownerDocument,r=n.defaultView,!r)break;let{left:e,top:t}=o.getBoundingClientRect();O+=t,h+=e,u+=t,d+=e}let e=r.getComputedStyle(o);if("fixed"===e.position)break;if(!gi(o,e))continue;let s=o.getBoundingClientRect(),[a,f,p,g]=Qi(o,s),m=fi(l,g,f,o.clientWidth,d,h,h-d),b=fi(c,a,p,o.clientHeight,O,u,u-O),$=null===m?0:$i(m,d,h)-$i(m,g,f),Q=null===b?0:$i(b,O,u)-$i(b,a,p),v=di(e)?bi($,-o.scrollWidth+o.clientWidth-o.scrollLeft,-o.scrollLeft):bi($,-o.scrollLeft,o.scrollWidth-o.clientWidth-o.scrollLeft),y=bi(Q,-o.scrollTop,o.scrollHeight-o.clientHeight-o.scrollTop);i.push([o,{left:o.scrollLeft+v,top:o.scrollTop+y,behavior:t.behavior}]),O=Math.max(O-y,a),h=Math.min(h-v,f),u=Math.min(u-y,p),d=Math.max(d-v,g)}return i},yi=(e,t,i)=>{let n=t||{};if(!Nt(n.behavior))throw new TypeError(Wt("scrollIntoView","Element",n.behavior));vi(e,n).forEach((([e,t])=>{ii(e,t,i)}))};function wi(e){yi(this,{block:e??1?"start":"end",inline:"nearest"})}var _i,Si=e=>{if(Dt())return;let t=jt(window.HTMLElement.prototype,"scrollIntoView",wi);Bt("scrollIntoView",(function(){let i=arguments,n=i[0];1===i.length&&Mt(n)?yi(this,n,e):t.apply(this,i)}))};null==Blob.prototype.text&&(Blob.prototype.text=function(){const e=new FileReader,t=new Promise(((t,i)=>{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()}),Dt()||(ri(_i),oi(_i),si(_i),Si(_i),li(_i),ci(_i),Oi(_i));const xi=(e,t)=>{const i="http://delete-me.com/",n=new URL(e,i);return Object.entries(t).forEach((([e,t])=>{null!=t&&n.searchParams.append(e,t)})),n.toString().replace(i,"")};console.assert("https://example.com/?a=b+c"===xi("https://example.com/",{a:"b c"})),console.assert("https://example.com/?a=b+c"===xi(new URL("https://example.com/"),{a:"b c"})),console.assert("https://example.com/?a=b+c&xx=123"===xi(new URL("https://example.com/"),{a:"b c",asdf:null,xx:"123"})),console.assert("index.html?a=b+c"===xi("index.html",{a:"b c"})),console.assert("index.html?x=123&a=b+c"===xi("index.html?x=123",{a:"b c"})),console.assert("index.html?x=123&a=b+c#asdf"===xi("index.html?x=123#asdf",{a:"b c"}));const Xi=(e,t)=>Promise.race([e,new Promise(((e,i)=>{setTimeout((()=>{i(new Error("Promise timed out."))}),t)}))]),Pi=()=>crypto.getRandomValues(new Uint32Array(1))[0].toString(36),ki=e=>e.readyState==WebSocket.OPEN||e.readyState==WebSocket.CONNECTING,Ti=e=>{e.onopen=()=>{Ti(e)},e.onmessage=e.onclose=e.onerror=null;try{e.close(1e3,"byebye")}catch(e){}},Ri=(e,{on_message:t,on_socket_close:i},n=30)=>new Promise(((r,o)=>{const s=new WebSocket(e);let a=!1;const l=setTimeout((()=>{console.warn("Creating websocket timed out",(new Date).toLocaleTimeString()),Ti(s),o("Socket timeout")}),1e3*n),c=e=>{const t=Et(e);s.send(t)};let O=Promise.resolve();s.onmessage=e=>{O=O.then((async()=>{try{const i=await e.data.arrayBuffer(),n=Ct(new Uint8Array(i));try{t(n)}catch(t){console.error("Failed to process message from websocket",t,{message:n}),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)}`)}}))},s.onerror=async e=>{console.error(`Socket did an oopsie - ${e.type}`,(new Date).toLocaleTimeString(),"was open:",a,e),await(e=>new Promise((t=>{ki(e)?t(!0):setTimeout((()=>{t(ki(e))}),1e3)})))(s)?(console.log("The socket somehow recovered from an error?! Onbegrijpelijk"),console.log(s),console.log(s.readyState)):a?(i(),Ti(s)):o(e)},s.onclose=async e=>{console.error(`Socket did an oopsie - ${e.type}`,(new Date).toLocaleTimeString(),"was open:",a,e),a?(i(),Ti(s)):o(e)},s.onopen=()=>{console.log("Socket opened",(new Date).toLocaleTimeString()),clearInterval(l),a=!0,r({socket:s,send:c})},console.log("Waiting for socket to open...",(new Date).toLocaleTimeString())}));const Yi=e=>{let t=null,i=[],n=null;return async(r,o,s,a)=>{if("update_notebook"===r){if(null!=n&&n!=s.notebook_id)throw new Error("Switched notebook inbetween same-tick updates??? WHAT?!?!");return i=[...i,...o.updates],n=s.notebook_id,null==t&&(t=new Promise((e=>setTimeout(e,0))).then((async()=>{let o=i;return t=null,i=[],n=null,await e(r,{updates:o},s,a)}))),await t}return await e(r,o,s,a)}},Ai=e=>{const t=new URL("./",e);t.protocol=t.protocol.replace("http","ws");return xi(t,{secret:new URL(e).searchParams.get("secret")})},Vi=()=>Ai(window.location.href),Zi=async({on_unrequested_update:e,on_reconnect:t,on_connection_status:i,connect_metadata:n={},ws_address:r=Vi()})=>{let o=null;const s={send:null,session_options:null,version_info:{julia:"unknown",pluto:"unknown",dismiss_update_notification:!1},notebook_exists:!0,kill:null},a=Pi(),l=new Map,c=async(t,i={},n={},r=!0)=>{if(null==o)throw new Error("No connection established yet");const s=Pi(),c={type:t,client_id:a,request_id:s,body:i,...n};let O=(()=>{let e=()=>{},t=()=>{};return{current:new Promise(((i,n)=>{e=i,t=n})),resolve:e,reject:t}})();return l.set(s,(t=>{O.resolve(t),!1===r&&e(t,!0)})),o.send(c),await O.current};s.send=Yi(c);const O=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{o=await Ri(String(r),{on_message:t=>{const i=t.initiator_id==a,n=t.request_id;if(i&&n){const e=l.get(n);if(e)return e(t),void l.delete(n)}e(t,i)},on_socket_close:async()=>{i(!1,!1),console.log("Starting new websocket",(new Date).toLocaleTimeString()),await Rt.delay(500),await O(),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 h=await c("connect",{},n);if(console.log("Hello!"),s.kill=()=>{o&&o.socket.close()},s.session_options=h.message.options,s.version_info=h.message.version_info,s.notebook_exists=h.message.notebook_exists,console.log("Client object: ",s),null!=n.notebook_id&&!h.message.notebook_exists)return i(!1,!0),{};i(!0,!1);const u=()=>{c("ping",{},{}).then((()=>{setTimeout(u,28e3)})).catch((()=>{}))};return u(),h.message}catch(e){return console.error("connect() failed",e),await Rt.delay(5e3),await O()}};return await O(),s};let Ei=async e=>e(),Ci=null;o.register("dLidm",(function(e,t){e.exports=o("aFTz8")(o("8LcMF").getBundleURL("7rd1W")+o("jTduX").resolve("9OeRT")).then((()=>o("dN8oq")))})),o.register("aFTz8",(function(e,t){"use strict";var i=o("l8cOo");e.exports=i((function(e){return new Promise((function(t,i){var n=document.getElementsByTagName("script");if([].concat(n).some((function(t){return t.src===e})))t();else{var r=document.createElement("script");r.async=!0,r.type="text/javascript",r.charset="utf-8",r.src=e,r.onerror=function(e){r.onerror=r.onload=null,r.remove(),i(e)},r.onload=function(){r.onerror=r.onload=null,t()},document.getElementsByTagName("head")[0].appendChild(r)}}))}))})),o.register("l8cOo",(function(e,t){"use strict";var i={},n={},r={};function o(e){switch(e){case"preload":return n;case"prefetch":return r;default:return i}}e.exports=function(e,t){return function(i){var n=o(t);return n[i]?n[i]:n[i]=e.apply(null,arguments).catch((function(e){throw delete n[i],e}))}}})),o.register("8LcMF",(function(t,i){var n;e(t.exports,"getBundleURL",(()=>n),(e=>n=e));var r={};function o(e){return(""+e).replace(/^((?:https?|file|ftp):\/\/.+)\/[^/]+$/,"$1")+"/"}n=function(e){var t=r[e];return t||(t=function(){try{throw new Error}catch(t){var e=(""+t.stack).match(/(https?|file|ftp):\/\/[^)\n]+/g);if(e)return o(e[2])}return"/"}(),r[e]=t),t}})),o.register("cQdD1",(function(e,t){e.exports=Promise.all([o("aFTz8")(o("8LcMF").getBundleURL("7rd1W")+o("jTduX").resolve("9OeRT")),o("aFTz8")(o("8LcMF").getBundleURL("7rd1W")+o("jTduX").resolve("eSSrR"))]).then((()=>o("4Odpp")))}));const Ni=async()=>(null==Ci&&(Ci=Ei((async()=>{let[{initializeApp:e},t]=await Promise.all([o("dLidm"),o("cQdD1")]),{getFirestore:i,addDoc:n,doc:r,collection:s}=t,a=s(i(e({apiKey:"AIzaSyC0DqEcaM8AZ6cvApXuNcNU2RgZZOj7F68",authDomain:"localhost",projectId:"pluto-feedback"})),"feedback");return console.log("🔥base loaded"),async e=>{await n(a,e)}}))),await Ci),qi=async()=>{try{const e=document.querySelector("form#feedback");e.addEventListener("submit",(t=>{const i=prompt("Would you like us to contact you?\n\nEmail: (leave blank to stay anonymous 👀)");t.preventDefault(),Ei((async()=>{try{let n=await Ni();await Xi(n({feedback:new FormData(t.target).get("opinion"),timestamp:Date.now(),email:i||""}),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",(()=>{Ni()}))}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 Ui(e){return e.replace(/\r\n/g,"\n").split(/# ╔═╡ \S+\n/).map((e=>e.trim())).filter((e=>""!==e))}const Wi="julia> ";function ji(e){const t=e.replace(/\r\n/g,"\n").split(Wi),i=" ".repeat(prompt.length);return t.map((function(e){return(i+e).split("\n").filter((e=>e.startsWith(i))).map((e=>e.replace(i,""))).join("\n")})).map((e=>e.trim())).filter((e=>""!==e))}const Mi=e=>{var t;return e.trim().startsWith(Wi)?ji:(null===(t=e.match(/# ╔═╡ ........-....-....-....-............/g))||void 0===t?void 0:t.length)?Ui:null},Di=new TextEncoder,zi=new TextDecoder,Bi=(e,t)=>zi.decode(Di.encode(e).slice(0,t)).length,Gi=(e,t,i)=>{const n=Di.encode(e);return zi.decode(n.slice(t,i))};console.assert("e é hannes ❤ is a dog"===((e,t,i,n)=>{const r=Di.encode(e),o=Di.encode(n),s=new Uint8Array(r.length+o.length-(i-t));return s.set(r.slice(0,t),0),s.set(o,t),s.set(r.slice(i),t+o.length),zi.decode(s)})("e é 🐶 is a dog",5,9,"hannes ❤")),console.assert("🐶"===Gi("e é 🐶 is a dog",5,9));let Ii=/Mac/.test(navigator.platform),Li=Ii?"Cmd":"Ctrl",Ki=e=>e.ctrlKey||Ii&&e.metaKey;o.register("6kwV5",(function(e,t){}));var Fi=o("6kwV5");class Hi{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 n=[];return this.decompose(0,e,n,2),i.length&&i.decompose(0,i.length,n,3),this.decompose(t,this.length,n,1),en.from(n,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),en.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),n=new rn(this),r=new rn(e);for(let e=t,o=t;;){if(n.next(e),r.next(e),e=0,n.lineBreak!=r.lineBreak||n.done!=r.done||n.value!=r.value)return!1;if(o+=n.value.length,n.done||o>=i)return!0}}iter(e=1){return new rn(this,e)}iterRange(e,t=this.length){return new on(this,e,t)}iterLines(e,t){let i;if(null==e)i=this.iter();else{null==t&&(t=this.lines+1);let n=this.line(e).from;i=this.iterRange(n,Math.max(n,t==this.lines+1?this.length:t<=1?0:this.line(t-1).to))}return new sn(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 Ji(e):en.from(Ji.split(e,[])):Hi.empty}}class Ji extends Hi{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,n){for(let r=0;;r++){let o=this.text[r],s=n+o.length;if((t?i:s)>=e)return new an(n,s,i,o);n=s+1,i++}}decompose(e,t,i,n){let r=e<=0&&t>=this.length?this:new Ji(nn(this.text,e,t),Math.min(t,this.length)-Math.max(0,e));if(1&n){let e=i.pop(),t=tn(r.text,e.text.slice(),0,r.length);if(t.length<=32)i.push(new Ji(t,e.length+r.length));else{let e=t.length>>1;i.push(new Ji(t.slice(0,e)),new Ji(t.slice(e)))}}else i.push(r)}replace(e,t,i){if(!(i instanceof Ji))return super.replace(e,t,i);let n=tn(this.text,tn(i.text,nn(this.text,0,e)),t),r=this.length+i.length-(t-e);return n.length<=32?new Ji(n,r):en.from(Ji.split(n,[]),r)}sliceString(e,t=this.length,i="\n"){let n="";for(let r=0,o=0;r<=t&&oe&&o&&(n+=i),er&&(n+=s.slice(Math.max(0,e-r),t-r)),r=a+1}return n}flatten(e){for(let t of this.text)e.push(t)}scanIdentical(){return 0}static split(e,t){let i=[],n=-1;for(let r of e)i.push(r),n+=r.length+1,32==i.length&&(t.push(new Ji(i,n)),i=[],n=-1);return n>-1&&t.push(new Ji(i,n)),t}}class en extends Hi{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,n){for(let r=0;;r++){let o=this.children[r],s=n+o.length,a=i+o.lines-1;if((t?a:s)>=e)return o.lineInner(e,t,i,n);n=s+1,i=a+1}}decompose(e,t,i,n){for(let r=0,o=0;o<=t&&r=o){let r=n&((o<=e?1:0)|(a>=t?2:0));o>=e&&a<=t&&!r?i.push(s):s.decompose(e-o,t-o,i,r)}o=a+1}}replace(e,t,i){if(i.lines=r&&t<=s){let a=o.replace(e-r,t-r,i),l=this.lines-o.lines+a.lines;if(a.lines>4&&a.lines>l>>6){let r=this.children.slice();return r[n]=a,new en(r,this.length-(t-e)+i.length)}return super.replace(r,s,a)}r=s+1}return super.replace(e,t,i)}sliceString(e,t=this.length,i="\n"){let n="";for(let r=0,o=0;re&&r&&(n+=i),eo&&(n+=s.sliceString(e-o,t-o,i)),o=a+1}return n}flatten(e){for(let t of this.children)t.flatten(e)}scanIdentical(e,t){if(!(e instanceof en))return 0;let i=0,[n,r,o,s]=t>0?[0,0,this.children.length,e.children.length]:[this.children.length-1,e.children.length-1,-1,-1];for(;;n+=t,r+=t){if(n==o||r==s)return i;let a=this.children[n],l=e.children[r];if(a!=l)return i+a.scanIdentical(l,t);i+=a.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 Ji(i,t)}let n=Math.max(32,i>>5),r=n<<1,o=n>>1,s=[],a=0,l=-1,c=[];function O(e){let t;if(e.lines>r&&e instanceof en)for(let t of e.children)O(t);else e.lines>o&&(a>o||!a)?(h(),s.push(e)):e instanceof Ji&&a&&(t=c[c.length-1])instanceof Ji&&e.lines+t.lines<=32?(a+=e.lines,l+=e.length+1,c[c.length-1]=new Ji(t.text.concat(e.text),t.length+1+e.length)):(a+e.lines>n&&h(),a+=e.lines,l+=e.length+1,c.push(e))}function h(){0!=a&&(s.push(1==c.length?c[0]:en.from(c,l)),l=-1,a=c.length=0)}for(let t of e)O(t);return h(),1==s.length?s[0]:new en(s,t)}}function tn(e,t,i=0,n=1e9){for(let r=0,o=0,s=!0;o=i&&(l>n&&(a=a.slice(0,n-r)),r0?1:(e instanceof Ji?e.text.length:e.children.length)<<1]}nextInner(e,t){for(this.done=this.lineBreak=!1;;){let i=this.nodes.length-1,n=this.nodes[i],r=this.offsets[i],o=r>>1,s=n instanceof Ji?n.text.length:n.children.length;if(o==(t>0?s: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&r)==(t>0?0:1)){if(this.offsets[i]+=t,0==e)return this.lineBreak=!0,this.value="\n",this;e--}else if(n instanceof Ji){let r=n.text[o+(t<0?-1:0)];if(this.offsets[i]+=t,r.length>Math.max(0,e))return this.value=0==e?r:t>0?r.slice(e):r.slice(0,r.length-e),this;e-=r.length}else{let r=n.children[o+(t<0?-1:0)];e>r.length?(e-=r.length,this.offsets[i]+=t):(t<0&&this.offsets[i]--,this.nodes.push(r),this.offsets.push(t>0?1:(r instanceof Ji?r.text.length:r.children.length)<<1))}}}next(e=0){return e<0&&(this.nextInner(-e,-this.dir),e=this.value.length),this.nextInner(e,this.dir)}}class on{constructor(e,t,i){this.value="",this.done=!1,this.cursor=new rn(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:n}=this.cursor.next(e);return this.pos+=(n.length+e)*t,this.value=n.length<=i?n:t<0?n.slice(n.length-i):n.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 sn{constructor(e){this.inner=e,this.afterBreak=!0,this.value="",this.done=!1}next(e=0){let{done:t,lineBreak:i,value:n}=this.inner.next(e);return t?(this.done=!0,this.value=""):i?this.afterBreak?this.value="":(this.afterBreak=!0,this.next()):(this.value=n,this.afterBreak=!1),this}get lineBreak(){return!1}}"undefined"!=typeof Symbol&&(Hi.prototype[Symbol.iterator]=function(){return this.iter()},rn.prototype[Symbol.iterator]=on.prototype[Symbol.iterator]=sn.prototype[Symbol.iterator]=function(){return this});let an=class{constructor(e,t,i,n){this.from=e,this.to=t,this.number=i,this.text=n}get length(){return this.to-this.from}},ln="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 ln[t-1]<=e;return!1}function On(e){return e>=127462&&e<=127487}function hn(e,t,i=!0,n=!0){return(i?un:dn)(e,t,n)}function un(e,t,i){if(t==e.length)return t;t&&fn(e.charCodeAt(t))&&pn(e.charCodeAt(t-1))&&t--;let n=gn(e,t);for(t+=bn(n);t=0&&On(gn(e,n));)i++,n-=2;if(i%2==0)break;t+=2}}}return t}function dn(e,t,i){for(;t>0;){let n=un(e,t-2,i);if(n=56320&&e<57344}function pn(e){return e>=55296&&e<56320}function gn(e,t){let i=e.charCodeAt(t);if(!pn(i)||t+1==e.length)return i;let n=e.charCodeAt(t+1);return fn(n)?n-56320+(i-55296<<10)+65536:i}function mn(e){return e<=65535?String.fromCharCode(e):(e-=65536,String.fromCharCode(55296+(e>>10),56320+(1023&e)))}function bn(e){return e<65536?1:2}const $n=/\r\n?|\n/;var Qn,vn=((Qn=vn||(vn={}))[Qn.Simple=0]="Simple",Qn[Qn.TrackDel=1]="TrackDel",Qn[Qn.TrackBefore=2]="TrackBefore",Qn[Qn.TrackAfter=3]="TrackAfter",Qn);class yn{constructor(e){this.sections=e}get length(){let e=0;for(let t=0;te)return r+(e-n);r+=s}else{if(i!=vn.Simple&&l>=e&&(i==vn.TrackDel&&ne||i==vn.TrackBefore&&ne))return null;if(l>e||l==e&&t<0&&!s)return e==n||t<0?r:r+a;r+=a}n=l}if(e>n)throw new RangeError(`Position ${e} is out of range for changeset of length ${n}`);return r}touchesRange(e,t=e){for(let i=0,n=0;i=0&&n<=t&&r>=e)return!(nt)||"cover";n=r}return!1}toString(){let e="";for(let t=0;t=0?":"+n:"")}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 yn(e)}static create(e){return new yn(e)}}class wn extends yn{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 xn(this,((t,i,n,r,o)=>e=e.replace(n,n+(i-t),o)),!1),e}mapDesc(e,t=!1){return Xn(this,e,t,!0)}invert(e){let t=this.sections.slice(),i=[];for(let n=0,r=0;n=0){t[n]=s,t[n+1]=o;let a=n>>1;for(;i.length0&&Sn(i,t,r.text),r.forward(e),s+=e}let l=e[o++];for(;s>1].toJSON()))}return e}static of(e,t,i){let n=[],r=[],o=0,s=null;function a(e=!1){if(!e&&!n.length)return;os||e<0||s>t)throw new RangeError(`Invalid change range ${e} to ${s} (in doc of length ${t})`);let O=c?"string"==typeof c?Hi.of(c.split(i||$n)):c:Hi.empty,h=O.length;if(e==s&&0==h)return;eo&&_n(n,e-o,-1),_n(n,s-e,h),Sn(r,n,O),o=s}}(e),a(!s),s}static empty(e){return new wn(e?[e,-1]:[],[])}static fromJSON(e){if(!Array.isArray(e))throw new RangeError("Invalid JSON representation of ChangeSet");let t=[],i=[];for(let n=0;nt&&"string"!=typeof e)))throw new RangeError("Invalid JSON representation of ChangeSet");if(1==r.length)t.push(r[0],0);else{for(;i.length=0&&i<=0&&i==e[r+1]?e[r]+=t:0==t&&0==e[r]?e[r+1]+=i:n?(e[r]+=t,e[r+1]+=i):e.push(t,i)}function Sn(e,t,i){if(0==i.length)return;let n=t.length-2>>1;if(n>1])),!(i||s==e.sections.length||e.sections[s+1]<0);)a=e.sections[s++],l=e.sections[s++];t(r,c,o,O,h),r=c,o=O}}}function Xn(e,t,i,n=!1){let r=[],o=n?[]:null,s=new kn(e),a=new kn(t);for(let e=-1;;)if(-1==s.ins&&-1==a.ins){let e=Math.min(s.len,a.len);_n(r,e,-1),s.forward(e),a.forward(e)}else if(a.ins>=0&&(s.ins<0||e==s.i||0==s.off&&(a.len=0&&e=0)){if(s.done&&a.done)return o?wn.createSet(r,o):yn.create(r);throw new Error("Mismatched change set lengths")}{let t=0,i=s.len;for(;i;)if(-1==a.ins){let e=Math.min(i,a.len);t+=e,i-=e,a.forward(e)}else{if(!(0==a.ins&&a.lent||s.ins>=0&&s.len>t)&&(e||n.length>i),o.forward2(t),s.forward(t)}}else _n(n,0,s.ins,e),r&&Sn(r,n,s.text),s.next()}}class kn{constructor(e){this.set=e,this.i=0,this.next()}next(){let{sections:e}=this.set;this.i>1;return t>=e.length?Hi.empty:e[t]}textBit(e){let{inserted:t}=this.set,i=this.i-2>>1;return i>=t.length&&!e?Hi.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 Tn{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,n;return this.empty?i=n=e.mapPos(this.from,t):(i=e.mapPos(this.from,1),n=e.mapPos(this.to,-1)),i==this.from&&n==this.to?this:new Tn(i,n,this.flags)}extend(e,t=e){if(e<=this.anchor&&t>=this.anchor)return Rn.range(e,t);let i=Math.abs(e-this.anchor)>Math.abs(t-this.anchor)?e:t;return Rn.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 Rn.range(e.anchor,e.head)}static create(e,t,i){return new Tn(e,t,i)}}class Rn{constructor(e,t){this.ranges=e,this.mainIndex=t}map(e,t=-1){return e.empty?this:Rn.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 Rn(e.ranges.map((e=>Tn.fromJSON(e))),e.main)}static single(e,t=e){return new Rn([Rn.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,n=0;ne?8:0)|r)}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;in.head?Rn.range(s,o):Rn.range(o,s))}}return new Rn(e,t)}}function Yn(e,t){for(let i of e.ranges)if(i.to>t)throw new RangeError("Selection points outside of document")}let An=0;class Vn{constructor(e,t,i,n,r){this.combine=e,this.compareInput=t,this.compare=i,this.isStatic=n,this.id=An++,this.default=e([]),this.extensions="function"==typeof r?r(this):r}get reader(){return this}static define(e={}){return new Vn(e.combine||(e=>e),e.compareInput||((e,t)=>e===t),e.compare||(e.combine?(e,t)=>e===t:Zn),!!e.static,e.enables)}of(e){return new En([],this,0,e)}compute(e,t){if(this.isStatic)throw new Error("Can't compute a static facet");return new En(e,this,1,t)}computeN(e,t){if(this.isStatic)throw new Error("Can't compute a static facet");return new En(e,this,2,t)}from(e,t){return t||(t=e=>e),this.compute([e],(i=>t(i.field(e))))}}function Zn(e,t){return e==t||e.length==t.length&&e.every(((e,i)=>e===t[i]))}class En{constructor(e,t,i,n){this.dependencies=e,this.facet=t,this.type=i,this.value=n,this.id=An++}dynamicSlot(e){var t;let i=this.value,n=this.facet.compareInput,r=this.id,o=e[r]>>1,s=2==this.type,a=!1,l=!1,c=[];for(let i of this.dependencies)"doc"==i?a=!0:"selection"==i?l=!0:0==(1&(null!==(t=e[i.id])&&void 0!==t?t:1))&&c.push(e[i.id]);return{create:e=>(e.values[o]=i(e),1),update(e,t){if(a&&t.docChanged||l&&(t.docChanged||t.selection)||Nn(e,c)){let t=i(e);if(s?!Cn(t,e.values[o],n):!n(t,e.values[o]))return e.values[o]=t,1}return 0},reconfigure:(e,t)=>{let a,l=t.config.address[r];if(null!=l){let r=Jn(t,l);if(this.dependencies.every((i=>i instanceof Vn?t.facet(i)===e.facet(i):!(i instanceof Wn)||t.field(i,!1)==e.field(i,!1)))||(s?Cn(a=i(e),r,n):n(a=i(e),r)))return e.values[o]=r,0}else a=i(e);return e.values[o]=a,1}}}}function Cn(e,t,i){if(e.length!=t.length)return!1;for(let n=0;ne[t.id])),r=i.map((e=>e.type)),o=n.filter((e=>!(1&e))),s=e[t.id]>>1;function a(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(Un).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 n=e.values[t],r=this.updateF(n,i);return this.compareF(n,r)?0:(e.values[t]=r,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,Un.of({field:this,create:e})]}get extension(){return this}}const jn=4,Mn=3,Dn=2,zn=1;function Bn(e){return t=>new In(t,e)}const Gn={highest:Bn(0),high:Bn(zn),default:Bn(Dn),low:Bn(Mn),lowest:Bn(jn)};class In{constructor(e,t){this.inner=e,this.prec=t}}class Ln{of(e){return new Kn(this,e)}reconfigure(e){return Ln.reconfigure.of({compartment:this,extension:e})}get(e){return e.config.compartments.get(this)}}class Kn{constructor(e,t){this.compartment=e,this.inner=t}}class Fn{constructor(e,t,i,n,r,o){for(this.base=e,this.compartments=t,this.dynamicSlots=i,this.address=n,this.staticValues=r,this.facets=o,this.statusTemplate=[];this.statusTemplate.length>1]}static resolve(e,t,i){let n=[],r=Object.create(null),o=new Map;for(let i of function(e,t,i){let n=[[],[],[],[],[]],r=new Map;return function e(o,s){let a=r.get(o);if(null!=a){if(a<=s)return;let e=n[a].indexOf(o);e>-1&&n[a].splice(e,1),o instanceof Kn&&i.delete(o.compartment)}if(r.set(o,s),Array.isArray(o))for(let t of o)e(t,s);else if(o instanceof Kn){if(i.has(o.compartment))throw new RangeError("Duplicate use of compartment in extensions");let n=t.get(o.compartment)||o.inner;i.set(o.compartment,n),e(n,s)}else if(o instanceof In)e(o.inner,o.prec);else if(o instanceof Wn)n[s].push(o),o.provides&&e(o.provides,s);else if(o instanceof En)n[s].push(o),o.facet.extensions&&e(o.facet.extensions,Dn);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,Dn),n.reduce(((e,t)=>e.concat(t)))}(e,t,o))i instanceof Wn?n.push(i):(r[i.facet.id]||(r[i.facet.id]=[])).push(i);let s=Object.create(null),a=[],l=[];for(let e of n)s[e.id]=l.length<<1,l.push((t=>e.slot(t)));let c=null==i?void 0:i.config.facets;for(let e in r){let t=r[e],n=t[0].facet,o=c&&c[e]||[];if(t.every((e=>0==e.type)))if(s[n.id]=a.length<<1|1,Zn(o,t))a.push(i.facet(n));else{let e=n.combine(t.map((e=>e.value)));a.push(i&&n.compare(e,i.facet(n))?i.facet(n):e)}else{for(let e of t)0==e.type?(s[e.id]=a.length<<1|1,a.push(e.value)):(s[e.id]=l.length<<1,l.push((t=>e.dynamicSlot(t))));s[n.id]=l.length<<1,l.push((e=>qn(e,n,t)))}}let O=l.map((e=>e(s)));return new Fn(e,o,O,s,a,r)}}function Hn(e,t){if(1&t)return 2;let i=t>>1,n=e.status[i];if(4==n)throw new Error("Cyclic dependency between fields and/or facets");if(2&n)return n;e.status[i]=4;let r=e.computeSlot(e,e.config.dynamicSlots[i]);return e.status[i]=2|r}function Jn(e,t){return 1&t?e.config.staticValues[t>>1]:e.values[t>>1]}const er=Vn.define(),tr=Vn.define({combine:e=>e.some((e=>e)),static:!0}),ir=Vn.define({combine:e=>e.length?e[0]:void 0,static:!0}),nr=Vn.define(),rr=Vn.define(),or=Vn.define(),sr=Vn.define({combine:e=>!!e.length&&e[0]});class ar{constructor(e,t){this.type=e,this.value=t}static define(){return new lr}}class lr{of(e){return new ar(this,e)}}class cr{constructor(e){this.map=e}of(e){return new Or(this,e)}}class Or{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 Or(this.type,t)}is(e){return this.type==e}static define(e={}){return new cr(e.map||(e=>e))}static mapEffects(e,t){if(!e.length)return e;let i=[];for(let n of e){let e=n.map(t);e&&i.push(e)}return i}}Or.reconfigure=Or.define(),Or.appendConfig=Or.define();class hr{constructor(e,t,i,n,r,o){this.startState=e,this.changes=t,this.selection=i,this.effects=n,this.annotations=r,this.scrollIntoView=o,this._doc=null,this._state=null,i&&Yn(i,t.newLength),r.some((e=>e.type==hr.time))||(this.annotations=r.concat(hr.time.of(Date.now())))}static create(e,t,i,n,r,o){return new hr(e,t,i,n,r,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(hr.userEvent);return!(!t||!(t==e||t.length>e.length&&t.slice(0,e.length)==e&&"."==t[e.length]))}}function ur(e,t){let i=[];for(let n=0,r=0;;){let o,s;if(n=e[n]))o=e[n++],s=e[n++];else{if(!(r=0;r--){let o=i[r](e);o&&Object.keys(o).length&&(n=dr(n,fr(t,o,e.changes.newLength),!0))}return n==e?e:hr.create(t,e.changes,e.selection,n.effects,n.annotations,n.scrollIntoView)}(i?function(e){let t=e.startState,i=!0;for(let n of t.facet(nr)){let t=n(e);if(!1===t){i=!1;break}Array.isArray(t)&&(i=!0===i?t:ur(i,t))}if(!0!==i){let n,r;if(!1===i)r=e.changes.invertedDesc,n=wn.empty(t.doc.length);else{let t=e.changes.filter(i);n=t.changes,r=t.filtered.mapDesc(t.changes).invertedDesc}e=hr.create(t,n,e.selection&&e.selection.map(r),Or.mapEffects(e.effects,r),e.annotations,e.scrollIntoView)}let n=t.facet(rr);for(let i=n.length-1;i>=0;i--){let r=n[i](e);e=r instanceof hr?r:Array.isArray(r)&&1==r.length&&r[0]instanceof hr?r[0]:pr(t,mr(r),!1)}return e}(r):r)}hr.time=ar.define(),hr.userEvent=ar.define(),hr.addToHistory=ar.define(),hr.remote=ar.define();const gr=[];function mr(e){return null==e?gr:Array.isArray(e)?e:[e]}var br=function(e){return e[e.Word=0]="Word",e[e.Space=1]="Space",e[e.Other=2]="Other",e}(br||(br={}));const $r=/[\u00df\u0587\u0590-\u05f4\u0600-\u06ff\u3040-\u309f\u30a0-\u30ff\u3400-\u4db5\u4e00-\u9fcc\uac00-\ud7af]/;let Qr;try{Qr=new RegExp("[\\p{Alphabetic}\\p{Number}_]","u")}catch(e){}function vr(e){return t=>{if(!/\S/.test(t))return br.Space;if(function(e){if(Qr)return Qr.test(e);for(let t=0;t"€"&&(i.toUpperCase()!=i.toLowerCase()||$r.test(i)))return!0}return!1}(t))return br.Word;for(let i=0;i-1)return br.Word;return br.Other}}class yr{constructor(e,t,i,n,r,o){this.config=e,this.doc=t,this.selection=i,this.values=n,this.status=e.statusTemplate.slice(),this.computeSlot=r,o&&(o._state=this);for(let e=0;er.set(t,e))),i=null),r.set(t.value.compartment,t.value.extension)):t.is(Or.reconfigure)?(i=null,n=t.value):t.is(Or.appendConfig)&&(i=null,n=mr(n).concat(t.value));i?t=e.startState.values.slice():(i=Fn.resolve(n,r,this),t=new yr(i,this.doc,this.selection,i.dynamicSlots.map((()=>null)),((e,t)=>t.reconfigure(e,this)),null).values),new yr(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:Rn.cursor(t.from+e.length)})))}changeByRange(e){let t=this.selection,i=e(t.ranges[0]),n=this.changes(i.changes),r=[i.range],o=mr(i.effects);for(let i=1;ir.spec.fromJSON(o,e))))}return yr.create({doc:e.doc,selection:Rn.fromJSON(e.selection),extensions:t.extensions?n.concat([t.extensions]):n})}static create(e={}){let t=Fn.resolve(e.extensions||[],new Map),i=e.doc instanceof Hi?e.doc:Hi.of((e.doc||"").split(t.staticFacet(yr.lineSeparator)||$n)),n=e.selection?e.selection instanceof Rn?e.selection:Rn.single(e.selection.anchor,e.selection.head):Rn.single(0);return Yn(n,i.length),t.staticFacet(tr)||(n=n.asSingle()),new yr(t,i,n,t.dynamicSlots.map((()=>null)),((e,t)=>t.create(e)),null)}get tabSize(){return this.facet(yr.tabSize)}get lineBreak(){return this.facet(yr.lineSeparator)||"\n"}get readOnly(){return this.facet(sr)}phrase(e,...t){for(let t of this.facet(yr.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 n=+(i||1);return!n||n>t.length?e:t[n-1]}))),e}languageDataAt(e,t,i=-1){let n=[];for(let r of this.facet(er))for(let o of r(this,t,i))Object.prototype.hasOwnProperty.call(o,e)&&n.push(o[e]);return n}charCategorizer(e){return vr(this.languageDataAt("wordChars",e).join(""))}wordAt(e){let{text:t,from:i,length:n}=this.doc.lineAt(e),r=this.charCategorizer(e),o=e-i,s=e-i;for(;o>0;){let e=hn(t,o,!1);if(r(t.slice(e,o))!=br.Word)break;o=e}for(;se.length?e[0]:4}),yr.lineSeparator=ir,yr.readOnly=sr,yr.phrases=Vn.define({compare(e,t){let i=Object.keys(e),n=Object.keys(t);return i.length==n.length&&i.every((i=>e[i]==t[i]))}}),yr.languageData=er,yr.changeFilter=nr,yr.transactionFilter=rr,yr.transactionExtender=or,Ln.reconfigure=Or.define();class _r{eq(e){return this==e}range(e,t=e){return Sr.create(e,t,this)}}_r.prototype.startSide=_r.prototype.endSide=0,_r.prototype.point=!1,_r.prototype.mapMode=vn.TrackDel;let Sr=class e{constructor(e,t,i){this.from=e,this.to=t,this.value=i}static create(t,i,n){return new e(t,i,n)}};function xr(e,t){return e.from-t.from||e.value.startSide-t.value.startSide}class Xr{constructor(e,t,i,n){this.from=e,this.to=t,this.value=i,this.maxPoint=n}get length(){return this.to[this.to.length-1]}findIndex(e,t,i,n=0){let r=i?this.to:this.from;for(let o=n,s=r.length;;){if(o==s)return o;let n=o+s>>1,a=r[n]-e||(i?this.value[n].endSide:this.value[n].startSide)-t;if(n==o)return a>=0?o:s;a>=0?s=n:o=n+1}}between(e,t,i,n){for(let r=this.findIndex(t,-1e9,!0),o=this.findIndex(i,1e9,!1,r);rc||l==c&&O.startSide>0&&O.endSide<=0)continue;(c-l||O.endSide-O.startSide)<0||(o<0&&(o=l),O.point&&(s=Math.max(s,c-l)),i.push(O),n.push(l-o),r.push(c-o))}return{mapped:i.length?new Xr(n,r,i,s):null,pos:o}}}class Pr{constructor(e,t,i,n){this.chunkPos=e,this.chunk=t,this.nextLayer=i,this.maxPoint=n}static create(e,t,i,n){return new Pr(e,t,i,n)}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:n=0,filterTo:r=this.length}=e,o=e.filter;if(0==t.length&&!o)return this;if(i&&(t=t.slice().sort(xr)),this.isEmpty)return t.length?Pr.of(t):this;let s=new Rr(this,null,-1).goto(0),a=0,l=[],c=new kr;for(;s.value||a=0){let e=t[a++];c.addInner(e.from,e.to,e.value)||l.push(e)}else 1==s.rangeIndex&&s.chunkIndexthis.chunkEnd(s.chunkIndex)||rs.to||r=r&&e<=r+o.length&&!1===o.between(r,e-r,t-r,i))return}this.nextLayer.between(e,t,i)}}iter(e=0){return Yr.from([this]).goto(e)}get isEmpty(){return this.nextLayer==this}static iter(e,t=0){return Yr.from(e).goto(t)}static compare(e,t,i,n,r=-1){let o=e.filter((e=>e.maxPoint>0||!e.isEmpty&&e.maxPoint>=r)),s=t.filter((e=>e.maxPoint>0||!e.isEmpty&&e.maxPoint>=r)),a=Tr(o,s,i),l=new Vr(o,a,r),c=new Vr(s,a,r);i.iterGaps(((e,t,i)=>Zr(l,e,c,t,i,n))),i.empty&&0==i.length&&Zr(l,0,c,0,0,n)}static eq(e,t,i=0,n){null==n&&(n=999999999);let r=e.filter((e=>!e.isEmpty&&t.indexOf(e)<0)),o=t.filter((t=>!t.isEmpty&&e.indexOf(t)<0));if(r.length!=o.length)return!1;if(!r.length)return!0;let s=Tr(r,o),a=new Vr(r,s,0).goto(i),l=new Vr(o,s,0).goto(i);for(;;){if(a.to!=l.to||!Er(a.active,l.active)||a.point&&(!l.point||!a.point.eq(l.point)))return!1;if(a.to>n)return!0;a.next(),l.next()}}static spans(e,t,i,n,r=-1){let o=new Vr(e,null,r).goto(t),s=t,a=o.openStart;for(;;){let e=Math.min(o.to,i);if(o.point){let i=o.activeForPoint(o.to),r=o.pointFroms&&(n.span(s,e,o.active,a),a=o.openEnd(e));if(o.to>i)return a+(o.point&&o.to>i?1:0);s=o.to,o.next()}}static of(e,t=!1){let i=new kr;for(let n of e instanceof Sr?[e]:t?function(e){if(e.length>1)for(let t=e[0],i=1;i0)return e.slice().sort(xr);t=n}return e}(e):e)i.add(n.from,n.to,n.value);return i.finish()}}Pr.empty=new Pr([],[],null,-1),Pr.empty.nextLayer=Pr.empty;class kr{finishChunk(e){this.chunks.push(new Xr(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 kr)).add(e,t,i)}addInner(e,t,i){let n=e-this.lastTo||i.startSide-this.last.endSide;if(n<=0&&(e-this.lastFrom||i.startSide-this.last.startSide)<0)throw new Error("Ranges must be added sorted by `from` position and `startSide`");return!(n<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(Pr.empty)}finishInner(e){if(this.from.length&&this.finishChunk(!1),0==this.chunks.length)return e;let t=Pr.create(this.chunkPos,this.chunks,this.nextLayer?this.nextLayer.finishInner(e):e,this.setMaxPoint);return this.from=null,t}}function Tr(e,t,i){let n=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&&n.push(new Rr(o,t,i,r));return 1==n.length?n[0]:new Yr(n)}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--)Ar(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--)Ar(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(),Ar(this.heap,0)}}}function Ar(e,t){for(let i=e[t];;){let n=1+(t<<1);if(n>=e.length)break;let r=e[n];if(n+1=0&&(r=e[n+1],n++),i.compare(r)<0)break;e[n]=i,e[t]=r,t=n}}class Vr{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=Yr.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){Cr(this.active,e),Cr(this.activeTo,e),Cr(this.activeRank,e),this.minActive=qr(this.active,this.activeTo)}addActive(e){let t=0,{value:i,to:n,rank:r}=this.cursor;for(;t-1&&(this.activeTo[n]-this.cursor.from||this.active[n].endSide-this.cursor.startSide)<0){if(this.activeTo[n]>e){this.to=this.activeTo[n],this.endSide=this.active[n].endSide;break}this.removeActive(n),i&&Cr(i,n)}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 Zr(e,t,i,n,r,o){e.goto(t),i.goto(n);let s=n+r,a=n,l=n-t;for(;;){let t=e.to+l-i.to||e.endSide-i.endSide,n=t<0?e.to+l:i.to,r=Math.min(n,s);if(e.point||i.point?e.point&&i.point&&(e.point==i.point||e.point.eq(i.point))&&Er(e.activeForPoint(e.to),i.activeForPoint(i.to))||o.comparePoint(a,r,e.point,i.point):r>a&&!Er(e.active,i.active)&&o.compareRange(a,r,e.active,i.active),n>s)break;a=n,t<=0&&e.next(),t>=0&&i.next()}}function Er(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 qr(e,t){let i=-1,n=1e9;for(let r=0;r=t)return n;if(n==e.length)break;r+=9==e.charCodeAt(n)?i-r%i:1,n=hn(e,n)}return!0===n?-1:e.length}const jr=1024;let Mr=0;class Dr{constructor(e,t){this.from=e,this.to=t}}class zr{constructor(e={}){this.id=Mr++,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=Ir.match(e)),t=>{let i=e(t);return void 0===i?null:[this,i]}}}zr.closedBy=new zr({deserialize:e=>e.split(" ")}),zr.openedBy=new zr({deserialize:e=>e.split(" ")}),zr.group=new zr({deserialize:e=>e.split(" ")}),zr.contextHash=new zr({perNode:!0}),zr.lookAhead=new zr({perNode:!0}),zr.mounted=new zr({perNode:!0});class Br{constructor(e,t,i){this.tree=e,this.overlay=t,this.parser=i}static get(e){return e&&e.props&&e.props[zr.mounted.id]}}const Gr=Object.create(null);class Ir{constructor(e,t,i,n=0){this.name=e,this.props=t,this.id=i,this.flags=n}static define(e){let t=e.props&&e.props.length?Object.create(null):Gr,i=(e.top?1:0)|(e.skipped?2:0)|(e.error?4:0)|(null==e.name?8:0),n=new Ir(e.name||"",t,e.id,i);if(e.props)for(let i of e.props)if(Array.isArray(i)||(i=i(n)),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 n}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(zr.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 n of i.split(" "))t[n]=e[i];return e=>{for(let i=e.prop(zr.group),n=-1;n<(i?i.length:0);n++){let r=t[n<0?e.name:i[n]];if(r)return r}}}}Ir.none=new Ir("",Object.create(null),0,8);class Lr{constructor(e){this.types=e;for(let t=0;t=t){let s=new oo(o.tree,o.overlay[0].from+e.from,0,null);(r||(r=[n])).push(no(s,t,i,!1))}}return r?Oo(r):n}(this,e,t)}iterate(e){let{enter:t,leave:i,from:n=0,to:r=this.length}=e,o=e.mode||0,s=(o&Hr.IncludeAnonymous)>0;for(let e=this.cursor(o|Hr.IncludeAnonymous);;){let o=!1;if(e.from<=r&&e.to>=n&&(!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:mo(Ir.none,this.children,this.positions,0,this.children.length,0,this.length,((e,t,i)=>new Jr(this.type,e,t,i,this.propValues)),e.makeTree||((e,t,i)=>new Jr(Ir.none,e,t,i)))}static build(e){return function(e){var t;let{buffer:i,nodeSet:n,maxBufferLength:r=jr,reused:o=[],minRepeatType:s=n.types.length}=e,a=Array.isArray(i)?new eo(i,i.length):i,l=n.types,c=0,O=0;function h(e,t,i,p,g){let{id:m,start:b,end:$,size:Q}=a,v=O;for(;Q<0;){if(a.next(),-1==Q){let t=o[m];return i.push(t),void p.push(b-e)}if(-3==Q)return void(c=m);if(-4==Q)return void(O=m);throw new RangeError(`Unrecognized record size: ${Q}`)}let y,w,_=l[m],S=b-e;if($-b<=r&&(w=function(e,t){let i=a.fork(),n=0,o=0,l=0,c=i.end-r,O={size:0,start:0,skip:0};e:for(let r=i.pos-e;i.pos>r;){let e=i.size;if(i.id==t&&e>=0){O.size=n,O.start=o,O.skip=l,l+=4,n+=4,i.next();continue}let a=i.pos-e;if(e<0||a=s?4:0,u=i.start;for(i.next();i.pos>a;){if(i.size<0){if(-3!=i.size)break e;h+=4}else i.id>=s&&(h+=4);i.next()}o=u,n+=e,l+=h}return(t<0||n==e)&&(O.size=n,O.start=o,O.skip=l),O.size>4?O:void 0}(a.pos-t,g))){let t=new Uint16Array(w.size-w.skip),i=a.pos-w.size,r=t.length;for(;a.pos>i;)r=f(w.start,t,r);y=new to(t,$-w.start,n),S=w.start-e}else{let e=a.pos-Q;a.next();let t=[],i=[],n=m>=s?m:-1,o=0,l=$;for(;a.pos>e;)n>=0&&a.id==n&&a.size>=0?(a.end<=l-r&&(u(t,i,b,o,a.end,l,n,v),o=t.length,l=a.end),a.next()):h(b,e,t,i,n);if(n>=0&&o>0&&o-1&&o>0){let e=function(e){return(t,i,n)=>{let r,o,s=0,a=t.length-1;if(a>=0&&(r=t[a])instanceof Jr){if(!a&&r.type==e&&r.length==n)return r;(o=r.prop(zr.lookAhead))&&(s=i[a]+r.length+o)}return d(e,t,i,n,s)}}(_);y=mo(_,t,i,0,t.length,0,$-b,e,e)}else y=d(_,t,i,$-b,v-$)}i.push(y),p.push(S)}function u(e,t,i,r,o,s,a,l){let c=[],O=[];for(;e.length>r;)c.push(e.pop()),O.push(t.pop()+i-o);e.push(d(n.types[a],c,O,s-o,l-s)),t.push(o-i)}function d(e,t,i,n,r=0,o){if(c){let e=[zr.contextHash,c];o=o?[e].concat(o):[e]}if(r>25){let e=[zr.lookAhead,r];o=o?[e].concat(o):[e]}return new Jr(e,t,i,n,o)}function f(e,t,i){let{id:n,start:r,end:o,size:l}=a;if(a.next(),l>=0&&n4){let n=a.pos-(l-4);for(;a.pos>n;)i=f(e,t,i)}t[--i]=s,t[--i]=o-e,t[--i]=r-e,t[--i]=n}else-3==l?c=n:-4==l&&(O=n);return i}let p=[],g=[];for(;a.pos>0;)h(e.start||0,e.bufferStart||0,p,g,-1);let m=null!==(t=e.length)&&void 0!==t?t:p.length?g[0]+p[0].length:0;return new Jr(l[e.topID],p.reverse(),g.reverse(),m)}(e)}}Jr.empty=new Jr(Ir.none,[],[],0);class eo{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 eo(this.buffer,this.index)}}class to{constructor(e,t,i){this.buffer=e,this.length=t,this.set=i}get type(){return Ir.none}toString(){let e=[];for(let t=0;t0));a=o[a+3]);return s}slice(e,t,i){let n=this.buffer,r=new Uint16Array(t-e),o=0;for(let s=e,a=0;s=t&&it;case 1:return i<=t&&n>t;case 2:return n>t;case 4:return!0}}function no(e,t,i,n){for(var r;e.from==e.to||(i<1?e.from>=t:e.from>t)||(i>-1?e.to<=t:e.to0?s.length:-1;e!=l;e+=t){let l=s[e],c=a[e]+o.from;if(io(n,i,c,c+l.length))if(l instanceof to){if(r&Hr.ExcludeBuffers)continue;let s=l.findChild(0,l.buffer.length,t,i-c,n);if(s>-1)return new co(new lo(o,l,e,c),null,s)}else if(r&Hr.IncludeAnonymous||!l.type.isAnonymous||fo(l)){let s;if(!(r&Hr.IgnoreMounts)&&(s=Br.get(l))&&!s.overlay)return new oo(s.tree,c,e,o);let a=new oo(l,c,e,o);return r&Hr.IncludeAnonymous||!a.type.isAnonymous?a:a.nextChild(t<0?l.children.length-1:0,t,i,n)}}if(r&Hr.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 n;if(!(i&Hr.IgnoreOverlays)&&(n=Br.get(this._tree))&&n.overlay){let i=e-this.from;for(let{from:e,to:r}of n.overlay)if((t>0?e<=i:e=i:r>i))return new oo(n.tree,n.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 so(e,t,i,n){let r=e.cursor(),o=[];if(!r.firstChild())return o;if(null!=i)for(;!r.type.is(i);)if(!r.nextSibling())return o;for(;;){if(null!=n&&r.type.is(n))return o;if(r.type.is(t)&&o.push(r.node),!r.nextSibling())return null==n?o:[]}}function ao(e,t,i=t.length-1){for(let n=e.parent;i>=0;n=n.parent){if(!n)return!1;if(!n.type.isAnonymous){if(t[i]&&t[i]!=n.name)return!1;i--}}return!0}class lo{constructor(e,t,i,n){this.parent=e,this.buffer=t,this.index=i,this.start=n}}class co extends ro{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:n}=this.context,r=n.findChild(this.index+4,n.buffer[this.index+3],e,t-this.context.start,i);return r<0?null:new co(this.context,this,r)}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&Hr.ExcludeBuffers)return null;let{buffer:n}=this.context,r=n.findChild(this.index+4,n.buffer[this.index+3],t>0?1:-1,e-this.context.start,t);return r<0?null:new co(this.context,this,r)}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 co(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 co(this.context,this._parent,e.findChild(t,this.index,-1,0,4))}get tree(){return null}toTree(){let e=[],t=[],{buffer:i}=this.context,n=this.index+4,r=i.buffer[this.index+3];if(r>n){let o=i.buffer[this.index+1];e.push(i.slice(n,r,o)),t.push(0)}return new Jr(this.type,e,t,this.to-this.from)}toString(){return this.context.buffer.childString(this.index)}}function Oo(e){if(!e.length)return null;if(1==e.length)return e[0];let t=0,i=e[0];for(let n=1;ni.from||r.to0){if(this.index-1)for(let n=t+e,r=e<0?-1:i._tree.children.length;n!=r;n+=e){let e=i._tree.children[n];if(this.mode&Hr.IncludeAnonymous||e instanceof to||!e.type.isAnonymous||fo(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==n){if(n==this.index)return o;t=o,i=r+1;break e}n=this.stack[--r]}for(let e=i;e=0;r--){if(r<0)return ao(this.node,e,n);let o=i[t.buffer[this.stack[r]]];if(!o.isAnonymous){if(e[n]&&e[n]!=o.name)return!1;n--}}return!0}}function fo(e){return e.children.some((e=>e instanceof to||!e.type.isAnonymous||fo(e)))}const po=new WeakMap;function go(e,t){if(!e.isAnonymous||t instanceof to||t.type!=e)return 1;let i=po.get(t);if(null==i){i=1;for(let n of t.children){if(n.type!=e||!(n instanceof Jr)){i=1;break}i+=go(e,n)}po.set(t,i)}return i}function mo(e,t,i,n,r,o,s,a,l){let c=0;for(let i=n;i=O)break;f+=t}if(c==r+1){if(f>O){let e=i[r];t(e.children,e.positions,0,e.children.length,n[r]+a);continue}h.push(i[r])}else{let t=n[c-1]+i[c-1].length-d;h.push(mo(e,i,n,r,c,d,t,null,l))}u.push(d+a-o)}}(t,i,n,r,0),(a||l)(h,u,s)}class bo{constructor(){this.map=new WeakMap}setBuffer(e,t,i){let n=this.map.get(e);n||this.map.set(e,n=new Map),n.set(t,i)}getBuffer(e,t){let i=this.map.get(e);return i&&i.get(t)}set(e,t){e instanceof co?this.setBuffer(e.context.buffer,e.index,t):e instanceof oo&&this.map.set(e.tree,t)}get(e){return e instanceof co?this.getBuffer(e.context.buffer,e.index):e instanceof oo?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 $o{constructor(e,t,i,n,r=!1,o=!1){this.from=e,this.to=t,this.tree=i,this.offset=n,this.open=(r?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 n=[new $o(0,e.length,e,0,!1,i)];for(let i of t)i.to>e.length&&n.push(i);return n}static applyChanges(e,t,i=128){if(!t.length)return e;let n=[],r=1,o=e.length?e[0]:null;for(let s=0,a=0,l=0;;s++){let c=s=i)for(;o&&o.from=t.from||O<=t.to||l){let e=Math.max(t.from,a)-l,i=Math.min(t.to,O)-l;t=e>=i?null:new $o(e,i,t.tree,t.offset+l,s>0,!!c)}if(t&&n.push(t),o.to>O)break;o=rnew Dr(e.from,e.to))):[new Dr(0,0)]:[new Dr(0,e.length)],this.createParse(e,t||[],i)}parse(e,t,i){let n=this.startParse(e,t,i);for(;;){let e=n.advance();if(e)return e}}}class vo{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 yo(e){return(t,i,n,r)=>new xo(t,e,i,n,r)}class wo{constructor(e,t,i,n,r){if(this.parser=e,this.parse=t,this.overlay=i,this.target=n,this.ranges=r,!r.length||r.some((e=>e.from>=e.to)))throw new RangeError("Invalid inner parse ranges given: "+JSON.stringify(r))}}class _o{constructor(e,t,i,n,r,o,s){this.parser=e,this.predicate=t,this.mounts=i,this.index=n,this.start=r,this.target=o,this.prev=s,this.depth=0,this.ranges=[]}}const So=new zr({perNode:!0});class xo{constructor(e,t,i,n,r){this.nest=t,this.input=i,this.fragments=n,this.ranges=r,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 Jr(e.type,e.children,e.positions,e.length,e.propValues.concat([[So,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[zr.mounted.id]=new Br(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<=n.from&&e.frag.to>=n.to&&e.mount.overlay));if(e)for(let i of e.mount.overlay){let r=i.from+e.pos,o=i.to+e.pos;r>=n.from&&o<=n.to&&!t.ranges.some((e=>e.fromr))&&t.ranges.push({from:r,to:o})}}a=!1}else if(i&&(o=Xo(i.ranges,n.from,n.to)))a=2!=o;else if(!n.type.isAnonymous&&n.fromnew Dr(e.from-n.from,e.to-n.from))):null,n.tree,e)),r.overlay?e.length&&(i={ranges:e,depth:0,prev:i}):a=!1}}else t&&(s=t.predicate(n))&&(!0===s&&(s=new Dr(n.from,n.to)),s.fromnew Dr(e.from-t.start,e.to-t.start))),t.target,e)),t=t.prev}i&&!--i.depth&&(i=i.prev)}}}}function Xo(e,t,i){for(let n of e){if(n.from>=i)break;if(n.to>t)return n.from<=t&&n.to>=i?2:1}return 0}function Po(e,t,i,n,r,o){if(t=t.to);n++);let s=r.children[n],a=s.buffer;r.children[n]=function e(i,n,r,l,c){let O=i;for(;a[O+2]+o<=t.from;)O=a[O+3];let h=[],u=[];Po(s,i,O,h,u,l);let d=a[O+1],f=a[O+2],p=d+o==t.from&&f+o==t.to&&a[O]==t.type.id;return h.push(p?t.toTree():e(O+4,a[O+3],s.set.types[a[O]],d,f-d)),u.push(d-l),Po(s,a[O+3],n,h,u,l),new Jr(r,h,u,c)}(0,a.length,Ir.none,0,s.length);for(let n=0;n<=i;n++)e.childAfter(t.from)}class To{constructor(e,t){this.offset=t,this.done=!1,this.cursor=e.cursor(Hr.IncludeAnonymous|Hr.IgnoreMounts)}moveTo(e){let{cursor:t}=this,i=e-this.offset;for(;!this.done&&t.from=e&&t.enter(i,1,Hr.IgnoreOverlays|Hr.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 Jr))break;t=t.children[0]}return!1}}let Ro=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(So))&&void 0!==t?t:i.to,this.inner=new To(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(So))&&void 0!==e?e:t.to,this.inner=new To(t.tree,-t.offset)}}findMounts(e,t){var i;let n=[];if(this.inner){this.inner.cursor.moveTo(e,1);for(let e=this.inner.cursor.node;e;e=e.parent){let r=null===(i=e.tree)||void 0===i?void 0:i.prop(zr.mounted);if(r&&r.parser==t)for(let t=this.fragI;t=e.to)break;i.tree==this.curFrag.tree&&n.push({frag:i,pos:e.from-i.offset,mount:r})}}}return n}};function Yo(e,t){let i=null,n=t;for(let r=1,o=0;r=a)break;e.to<=s||(i||(n=i=t.slice()),e.froma&&i.splice(o+1,0,new Dr(a,e.to))):e.to>a?i[o--]=new Dr(a,e.to):i.splice(o--,1))}}return n}function Ao(e,t,i,n){let r=0,o=0,s=!1,a=!1,l=-1e9,c=[];for(;;){let O=r==e.length?1e9:s?e[r].to:e[r].from,h=o==t.length?1e9:a?t[o].to:t[o].from;if(s!=a){let e=Math.max(l,i),t=Math.min(O,h,n);enew Dr(e.from+n,e.to+n))),a,l);for(let t=0,n=a;;t++){let a=t==s.length,c=a?l:s[t].from;if(c>n&&i.push(new $o(n,c,r.tree,-e,o.from>=n||o.openStart,o.to<=c||o.openEnd)),a)break;n=s[t].to}}else i.push(new $o(a,l,r.tree,-e,o.from>=e||o.openStart,o.to<=s||o.openEnd))}return i}class Zo{constructor(e,t,i,n,r,o,s,a,l,c=0,O){this.p=e,this.stack=t,this.state=i,this.reducePos=n,this.pos=r,this.score=o,this.buffer=s,this.bufferBase=a,this.curContext=l,this.lookAhead=c,this.parent=O}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 n=e.parser.context;return new Zo(e,[],t,i,i,0,[],0,n?new Eo(n,n.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,n=65535&e,{parser:r}=this.p,o=r.dynamicPrecedence(n);if(o&&(this.score+=o),0==i)return this.pushState(r.getGoto(this.state,n,!0),this.reducePos),n=2e3&&!(null===(t=this.p.parser.nodeSet.types[n])||void 0===t?void 0:t.isAnonymous)&&(a==this.p.lastBigReductionStart?(this.p.bigReductionCount++,this.p.lastBigReductionSize=l):this.p.lastBigReductionSizes;)this.stack.pop();this.reduceContext(n,a)}storeNode(e,t,i,n=4,r=!1){if(0==e&&(!this.stack.length||this.stack[this.stack.length-1]0&&0==e.buffer[n-4]&&e.buffer[n-1]>-1){if(t==i)return;if(e.buffer[n-2]>=t)return void(e.buffer[n-2]=i)}}if(r&&this.pos!=i){let r=this.buffer.length;if(r>0&&0!=this.buffer[r-4])for(;r>0&&this.buffer[r-2]>i;)this.buffer[r]=this.buffer[r-4],this.buffer[r+1]=this.buffer[r-3],this.buffer[r+2]=this.buffer[r-2],this.buffer[r+3]=this.buffer[r-1],r-=4,n>4&&(n-=4);this.buffer[r]=e,this.buffer[r+1]=t,this.buffer[r+2]=i,this.buffer[r+3]=n}else this.buffer.push(e,t,i,n)}shift(e,t,i,n){if(131072&e)this.pushState(65535&e,this.pos);else if(0==(262144&e)){let r=e,{parser:o}=this.p;(n>this.pos||t<=o.maxNode)&&(this.pos=n,o.stateFlag(r,1)||(this.reducePos=n)),this.pushState(r,i),this.shiftContext(t,i),t<=o.maxNode&&this.buffer.push(t,i,n,4)}else this.pos=n,this.shiftContext(t,i),t<=this.p.parser.maxNode&&this.buffer.push(t,i,n,4)}apply(e,t,i,n){65536&e?this.reduce(e):this.shift(e,t,i,n)}useNode(e,t){let i=this.p.reused.length-1;(i<0||this.p.reused[i]!=e)&&(this.p.reused.push(e),i++);let n=this.pos;this.reducePos=this.pos=n+e.length,this.pushState(t,n),this.buffer.push(i,n,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),n=e.bufferBase+t;for(;e&&n==e.bufferBase;)e=e.parent;return new Zo(this.p,this.stack.slice(),this.state,this.reducePos,this.pos,this.score,i,n,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 Co(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 n,r=0;r1&t&&e==n))||i.push(t[e],n)}t=i}let i=[];for(let e=0;e>19,n=65535&t,r=this.stack.length-3*i;if(r<0||e.getGoto(this.stack[r],n,!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=(n,r)=>{if(!t.includes(n))return t.push(n),e.allActions(n,(t=>{if(393216&t);else if(65536&t){let i=(t>>19)-r;if(i>1){let n=65535&t,r=this.stack.length-3*i;if(r>=0&&e.getGoto(this.stack[r],n,!1)>=0)return i<<19|65536|n}}else{let e=i(t,r+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 Eo{constructor(e,t){this.tracker=e,this.context=t,this.hash=e.strict?e.hash(t):0}}class Co{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 n=this.start.p.parser.getGoto(this.stack[this.base-3],t,!0);this.state=n}}class No{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 No(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 No(this.stack,this.pos,this.index)}}function qo(e,t=Uint16Array){if("string"!=typeof e)return e;let i=null;for(let n=0,r=0;n=92&&t--,t>=34&&t--;let r=t-32;if(r>=46&&(r-=46,i=!0),o+=r,i)break;o*=46}i?i[r++]=o:i=new t(o)}return i}class Uo{constructor(){this.start=-1,this.value=-1,this.end=-1,this.extended=-1,this.lookAhead=0,this.mask=0,this.context=0}}const Wo=new Uo;class jo{constructor(e,t){this.input=e,this.ranges=t,this.chunk="",this.chunkOff=0,this.chunk2="",this.chunk2Pos=0,this.next=-1,this.token=Wo,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,n=this.rangeIndex,r=this.pos+e;for(;ri.to:r>=i.to;){if(n==this.ranges.length-1)return null;let e=this.ranges[++n];r+=e.from-i.to,i=e}return r}clipPos(e){if(e>=this.range.from&&ee)return Math.max(e,t.from);return this.end}peek(e){let t,i,n=this.chunkOff+e;if(n>=0&&n=this.chunk2Pos&&tn.to&&(this.chunk2=this.chunk2.slice(0,n.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=Wo,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 n of this.ranges){if(n.from>=t)break;n.to>e&&(i+=this.input.read(Math.max(n.from,e),Math.min(n.to,t)))}return i}}class Mo{constructor(e,t){this.data=e,this.id=t}token(e,t){let{parser:i}=t.p;Bo(this.data,e,t,this.id,i.data,i.tokenPrecTable)}}Mo.prototype.contextual=Mo.prototype.fallback=Mo.prototype.extend=!1;class Do{constructor(e,t,i){this.precTable=t,this.elseToken=i,this.data="string"==typeof e?qo(e):e}token(e,t){let i=e.pos,n=0;for(;;){let i=e.next<0,r=e.resolveOffset(1,1);if(Bo(this.data,e,t,0,this.data,this.precTable),e.token.value>-1)break;if(null==this.elseToken)return;if(i||n++,null==r)break;e.reset(r,e.token)}n&&(e.reset(i,e.token),e.acceptToken(this.elseToken,n))}}Do.prototype.contextual=Mo.prototype.fallback=Mo.prototype.extend=!1;class zo{constructor(e,t={}){this.token=e,this.contextual=!!t.contextual,this.fallback=!!t.fallback,this.extend=!!t.extend}}function Bo(e,t,i,n,r,o){let s=0,a=1<0){let i=e[n];if(l.allows(i)&&(-1==t.token.value||t.token.value==i||Io(i,t.token.value,r,o))){t.acceptToken(i);break}}let n=t.next,c=0,O=e[s+2];if(!(t.next<0&&O>c&&65535==e[i+3*O-3]&&65535==e[i+3*O-3])){for(;c>1,o=i+r+(r<<1),a=e[o],l=e[o+1]||65536;if(n=l)){s=e[o+2],t.advance();continue e}c=r+1}}break}s=e[i+3*O-1]}}function Go(e,t,i){for(let n,r=t;65535!=(n=e[r]);r++)if(n==i)return r-t;return-1}function Io(e,t,i,n){let r=Go(i,n,t);return r<0||Go(i,n,e)t)&&!n.type.isError)return i<0?Math.max(0,Math.min(n.to-1,t-25)):Math.min(e.length,Math.max(n.from+1,t+25));if(i<0?n.prevSibling():n.nextSibling())break;if(!n.parent())return i<0?0:e.length}}class Ho{constructor(e,t){this.stream=t,this.tokens=[],this.mainToken=null,this.actions=[],this.tokens=e.tokenizers.map((e=>new Uo))}getActions(e){let t=0,i=null,{parser:n}=e.p,{tokenizers:r}=n,o=n.stateSlot(e.state,3),s=e.curContext?e.curContext.hash:0,a=0;for(let n=0;nc.end+25&&(a=Math.max(c.lookAhead,a)),0!=c.value)){let n=t;if(c.extended>-1&&(t=this.addActions(e,c.extended,c.end,t)),t=this.addActions(e,c.value,c.end,t),!l.extend&&(i=c,t>n))break}}for(;this.actions.length>t;)this.actions.pop();return a&&e.setLookAhead(a),i||e.pos!=this.stream.end||(i=new Uo,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 Uo,{pos:i,p:n}=e;return t.start=i,t.end=Math.min(i+1,n.stream.end),t.value=i==n.stream.end?n.parser.eofTerm:0,t}updateCachedToken(e,t,i){let n=this.stream.clipPos(i.pos);if(t.token(this.stream.reset(n,e),i),e.value>-1){let{parser:t}=i.p;for(let n=0;n=0&&i.p.parser.dialect.allows(r>>1)){0==(1&r)?e.value=r>>1:e.extended=r>>1;break}}}else e.value=0,e.end=this.stream.clipPos(n+1)}putAction(e,t,i,n){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?Fo(e.tree,e.from+e.offset,1)-e.offset:e.from,this.safeTo=e.openEnd?Fo(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(r instanceof Jr){if(o==e){if(o=Math.max(this.safeFrom,e)&&(this.trees.push(r),this.start.push(o),this.index.push(0))}else this.index[t]++,this.nextStart=o+r.length}}}(i,e.nodeSet):null}get parsedPos(){return this.minStackPos}advance(){let e,t,i=this.stacks,n=this.minStackPos,r=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;on)r.push(s);else{if(this.advanceStack(s,r,i))continue;{e||(e=[],t=[]),e.push(s);let i=this.tokens.getMainToken(s);t.push(i.value,i.end)}}break}}if(!r.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,r);if(i)return Lo&&console.log("Force-finish "+this.stackID(i)),this.stackToTree(i.forceAll())}if(this.recovering){let e=1==this.recovering?1:3*this.recovering;if(r.length>e)for(r.sort(((e,t)=>t.score-e.score));r.length>e;)r.pop();r.some((e=>e.reducePos>n))&&this.recovering--}else if(r.length>1){e:for(let e=0;e500&&n.buffer.length>500){if(!((t.score-n.score||t.buffer.length-n.buffer.length)>0)){r.splice(e--,1);continue e}r.splice(i--,1)}}}r.length>12&&r.splice(12,r.length-12)}this.minStackPos=r[0].pos;for(let e=1;e ":"";if(null!=this.stoppedAt&&n>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(n);s;){let n=this.parser.nodeSet.types[s.type.id]==s.type?r.getGoto(e.state,s.type.id):-1;if(n>-1&&s.length&&(!t||(s.prop(zr.contextHash)||0)==i))return e.useNode(s,n),Lo&&console.log(o+this.stackID(e)+` (via reuse of ${r.getName(s.type.id)})`),!0;if(!(s instanceof Jr)||0==s.children.length||s.positions[0]>0)break;let a=s.children[0];if(!(a instanceof Jr&&0==s.positions[0]))break;s=a}}let s=r.stateSlot(e.state,4);if(s>0)return e.reduce(s),Lo&&console.log(o+this.stackID(e)+` (via always-reduce ${r.getName(65535&s)})`),!0;if(e.stack.length>=9e3)for(;e.stack.length>6e3&&e.forceReduce(););let a=this.tokens.getActions(e);for(let s=0;sn?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 es(e,t),!0}}runRecovery(e,t,i){let n=null,r=!1;for(let o=0;o ":"";if(s.deadEnd){if(r)continue;if(r=!0,s.restart(),Lo&&console.log(c+this.stackID(s)+" (restarted)"),this.advanceFully(s,i))continue}let O=s.split(),h=c;for(let e=0;O.forceReduce()&&e<10&&(Lo&&console.log(h+this.stackID(O)+" (via force-reduce)"),!this.advanceFully(O,i));e++)Lo&&(h=this.stackID(O)+" -> ");for(let e of s.recoverByInsert(a))Lo&&console.log(c+this.stackID(e)+" (via recover-insert)"),this.advanceFully(e,i);this.stream.end>s.pos?(l==s.pos&&(l++,a=0),s.recoverByDelete(a,l),Lo&&console.log(c+this.stackID(s)+` (via recover-delete ${this.parser.getName(a)})`),es(s,i)):(!n||n.scoree;class ns{constructor(e){this.start=e.start,this.shift=e.shift||is,this.reduce=e.reduce||is,this.reuse=e.reuse||is,this.hash=e.hash||(()=>0),this.strict=!1!==e.strict}}class rs extends Qo{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])),n=[];for(let e=0;e=0)r(n,e,t[i++]);else{let o=t[i+-n];for(let s=-n;s>0;s--)r(t[i++],e,o);i++}}}this.nodeSet=new Lr(t.map(((t,r)=>Ir.define({name:r>=this.minRepeatTerm?void 0:t,id:r,props:n[r],top:i.indexOf(r)>-1,error:0==r,skipped:e.skippedNodes&&e.skippedNodes.indexOf(r)>-1})))),e.propSources&&(this.nodeSet=this.nodeSet.extend(...e.propSources)),this.strict=!1,this.bufferLength=jr;let o=qo(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 Mo(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 n=new Jo(this,e,t,i);for(let r of this.wrappers)n=r(n,e,t,i);return n}getGoto(e,t,i=!1){let n=this.goto;if(t>=n[0])return-1;for(let r=n[t+1];;){let t=n[r++],o=1&t,s=n[r++];if(o&&i)return s;for(let i=r+(t>>1);r0}validAction(e,t){return!!this.allActions(e,(e=>e==t||null))}allActions(e,t){let i=this.stateSlot(e,4),n=i?t(i):void 0;for(let i=this.stateSlot(e,1);null==n;i+=3){if(65535==this.data[i]){if(1!=this.data[i+1])break;i=os(this.data,i+2)}n=t(os(this.data,i+1))}return n}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=os(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(rs.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,n)=>{let r=e.specializers.find((e=>e.from==i.external));if(!r)return i;let o=Object.assign(Object.assign({},i),{external:r.to});return t.specializers[n]=ss(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 n of e.split(" ")){let e=t.indexOf(n);e>=0&&(i[e]=!0)}let n=null;for(let e=0;ee.external(i,n)<<1|t}return e.get}const as=".".codePointAt(0),ls="\\".codePointAt(0),cs="`".codePointAt(0),Os="$".codePointAt(0),hs="#".codePointAt(0),us="=".codePointAt(0),ds="(".codePointAt(0),fs="{".codePointAt(0),ps="[".codePointAt(0),gs=":".codePointAt(0),ms='"'.codePointAt(0),bs="'".codePointAt(0),$s="\n".codePointAt(0),Qs="A".codePointAt(0),vs="Z".codePointAt(0),ys="a".codePointAt(0),ws="z".codePointAt(0),_s="0".codePointAt(0),Ss="9".codePointAt(0),xs="_".codePointAt(0),Xs="!".codePointAt(0),Ps=/^\p{Lu}/u,ks=/^\p{Ll}/u,Ts=/^\p{Lt}/u,Rs=/^\p{Lm}/u,Ys=/^\p{Lo}/u,As=/^\p{Me}/u,Vs=/^\p{Mn}/u,Zs=/^\p{Mc}/u,Es=/^\p{Nd}/u,Cs=/^\p{Nl}/u,Ns=/^\p{No}/u,qs=/^\p{Pc}/u,Us=/^\p{Sc}/u,Ws=/^\p{Sk}/u,js=/^\p{So}/u,Ms=/^\p{Emoji}/u,Ds=new zo(((e,t)=>{e.peek(0)===$s&&t.canShift(256)&&e.acceptToken(256,1)}));function zs(e,t){return Ps.test(e)||ks.test(e)||Ts.test(e)||Rs.test(e)||Ys.test(e)||Cs.test(e)||Us.test(e)||Ms.test(e)||js.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 Bs(e,t){let i=e.peek(t);if(i>=Qs&&i<=vs||i>=ys&&i<=ws||i==xs)return 1;if(i<161||i>1114111)return 0;{let n=Gs(e,t);return zs(n,i)?n.length:0}}function Gs(e,t){let i=1,n=e.peek(t),r=String.fromCodePoint(n);for(;;){let o=e.peek(t+i);if(!(55296<=n&&n<=56319&&56320<=o&&o<=57343))break;r+=String.fromCodePoint(o),n=o,i+=1}return r}const Is=e=>new zo(((t,i)=>{let n=!0,r=0,o=1;for(;;){let e=t.peek(r);if(-1===e)break;if(n){if(n=!1,o=Bs(t,r),0===o)break}else if(e>=Qs&&e<=vs||e>=ys&&e<=ws||e>=_s&&e<=Ss||e==xs||e==Xs);else{if(e<161||e>1114111)break;{let i=Gs(t,r);if(o=i.length,zs(i,e));else if(!(Vs.test(i)||Zs.test(i)||Es.test(i)||qs.test(i)||Ws.test(i)||As.test(i)||Ns.test(i)||e>=8242&&e<=8247||8279==e))break}}r+=o,o=1}0!==r&&t.acceptToken(e,r)})),Ls=Is(1),Ks=Is(257),Fs=(e,t)=>{let i=e.peek(t),n=e.peek(t+1);return i===Os&&(0!==Bs(e,t+1)||n==ds)},Hs=({till:e,term:t})=>new zo(((i,n)=>{let r=0,o=!1;for(;;){let n=i.peek(r);if(-1===n)break;if(o)o=!1;else if(n===ls)o=!0;else if(Fs(i,r)||e(i,r))return void(r>0&&i.acceptToken(t,r));r+=1}})),Js=({till:e,term:t})=>new zo(((i,n)=>{let r=0,o=!1;for(;;){let n=i.peek(r);if(-1===n)break;if(o)o=!1;else if(n===ls)o=!0;else if(e(i,r))return void(r>0&&i.acceptToken(t,r));r+=1}})),ea=(e,t)=>e.peek(t)===ms&&e.peek(t+1)===ms&&e.peek(t+2)===ms,ta=(e,t)=>e.peek(t)===ms,ia=(e,t)=>e.peek(t)===cs,na=Hs({term:258,till:ea}),ra=Hs({term:259,till:ta}),oa=Hs({term:260,till:ia}),sa=Js({term:261,till:ea}),aa=Js({term:262,till:ta}),la=Js({term:263,till:ia}),ca=(e,t)=>e.peek(t)===hs&&e.peek(t+1)===us,Oa=(e,t)=>e.peek(t)===us&&e.peek(t+1)===hs,ha=new zo(((e,t)=>{if(ca(e,0)){let t=1,i=2;for(;-1!==e.peek(i);)if(Oa(e,i)){if(t-=1,0===t)return void e.acceptToken(2,i+2);i+=2}else ca(e,i)?(t+=1,i+=2):i+=1;e.acceptToken(2,i)}})),ua=(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},da=new zo(((e,t)=>{e.peek(0)!==ds||ua(e,-1)||!t.canShift(247)?e.peek(0)!==gs||ua(e,-1)||!t.canShift(248)?e.peek(0)!==fs||ua(e,-1)||!t.canShift(249)?e.peek(0)!==ps||ua(e,-1)||!t.canShift(250)?e.peek(0)!==bs||ua(e,-1)||!t.canShift(251)?e.peek(0)!==ms||ua(e,-1)||!t.canShift(252)?e.peek(0)!==cs||ua(e,-1)||!t.canShift(253)?e.peek(0)!==as||ua(e,-1)||!t.canShift(254)?ua(e,-1)||ua(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}),fa={__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},pa=rs.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:[da,Ds,Ks,Ls,ha,na,ra,oa,sa,aa,la,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=>fa[e]||-1}],tokenPrec:53216}),ga="undefined"==typeof Symbol?"__ͼ":Symbol.for("ͼ"),ma="undefined"==typeof Symbol?"__styleSet"+Math.floor(1e8*Math.random()):Symbol("styleSet"),ba="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:{};class $a{constructor(e,t){this.rules=[];let{finish:i}=t||{};function n(e){return/^@/.test(e)?[e]:e.split(/,\s*/)}function r(e,t,o,s){let a=[],l=/^@(\w+)\b/.exec(e[0]),c=l&&"keyframes"==l[1];if(l&&null==t)return o.push(e[0]+";");for(let i in t){let s=t[i];if(/&/.test(i))r(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(!l)throw new RangeError("The value of a property ("+i+") should be a primitive value.");r(n(i),s,a,c)}else null!=s&&a.push(i.replace(/_.*/,"").replace(/[A-Z]/g,(e=>"-"+e.toLowerCase()))+": "+s+";")}(a.length||c)&&o.push((!i||l||s?e:e.map(i)).join(", ")+" {"+a.join(" ")+"}")}for(let t in e)r(n(t),e[t],this.rules)}getRules(){return this.rules.join("\n")}static newName(){let e=ba[ga]||1;return ba[ga]=e+1,"ͼ"+e.toString(36)}static mount(e,t,i){let n=e[ma],r=i&&i.nonce;n?r&&n.setNonce(r):n=new va(e,r),n.mount(Array.isArray(t)?t:[t])}}let Qa=new Map;class va{constructor(e,t){let i=e.ownerDocument||e,n=i.defaultView;if(!e.head&&e.adoptedStyleSheets&&n.CSSStyleSheet){let t=Qa.get(i);if(t)return e.adoptedStyleSheets=[t.sheet,...e.adoptedStyleSheets],e[ma]=t;this.sheet=new n.CSSStyleSheet,e.adoptedStyleSheets=[this.sheet,...e.adoptedStyleSheets],Qa.set(i,this)}else{this.styleTag=i.createElement("style"),t&&this.styleTag.setAttribute("nonce",t);let n=e.head||e;n.insertBefore(this.styleTag,n.firstChild)}this.modules=[],e[ma]=this}mount(e){let t=this.sheet,i=0,n=0;for(let r=0;r-1&&(this.modules.splice(s,1),n--,s=-1),-1==s){if(this.modules.splice(n++,0,o),t)for(let e=0;e",191:"?",192:"~",219:"{",220:"|",221:"}",222:'"'},_a="undefined"!=typeof navigator&&/Mac/.test(navigator.platform),Sa="undefined"!=typeof navigator&&/MSIE \d|Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(navigator.userAgent),xa=0;xa<10;xa++)ya[48+xa]=ya[96+xa]=String(xa);for(xa=1;xa<=24;xa++)ya[xa+111]="F"+xa;for(xa=65;xa<=90;xa++)ya[xa]=String.fromCharCode(xa+32),wa[xa]=String.fromCharCode(xa);for(var Xa in ya)wa.hasOwnProperty(Xa)||(wa[Xa]=ya[Xa]);function Pa(e){let t;return t=11==e.nodeType?e.getSelection?e:e.ownerDocument:e,t.getSelection()}function ka(e,t){return!!t&&(e==t||e.contains(1!=t.nodeType?t.parentNode:t))}function Ta(e,t){if(!t.anchorNode)return!1;try{return ka(e,t.anchorNode)}catch(e){return!1}}function Ra(e){return 3==e.nodeType?ja(e,0,e.nodeValue.length).getClientRects():1==e.nodeType?e.getClientRects():[]}function Ya(e,t,i,n){return!!i&&(Va(e,t,i,n,-1)||Va(e,t,i,n,1))}function Aa(e){for(var t=0;;t++)if(!(e=e.previousSibling))return t}function Va(e,t,i,n,r){for(;;){if(e==i&&t==n)return!0;if(t==(r<0?0:Za(e))){if("DIV"==e.nodeName)return!1;let i=e.parentNode;if(!i||1!=i.nodeType)return!1;t=Aa(e)+(r<0?0:1),e=i}else{if(1!=e.nodeType)return!1;if(1==(e=e.childNodes[t+(r<0?-1:0)]).nodeType&&"false"==e.contentEditable)return!1;t=r<0?Za(e):0}}}function Za(e){return 3==e.nodeType?e.nodeValue.length:e.childNodes.length}function Ea(e,t){let i=t?e.left:e.right;return{left:i,right:i,top:e.top,bottom:e.bottom}}function Ca(e){return{left:0,right:e.innerWidth,top:0,bottom:e.innerHeight}}class Na{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?Za(t):0),i,Math.min(e.focusOffset,i?Za(i):0))}set(e,t,i,n){this.anchorNode=e,this.anchorOffset=t,this.focusNode=i,this.focusOffset=n}}let qa,Ua=null;function Wa(e){if(e.setActive)return e.setActive();if(Ua)return e.focus(Ua);let t=[];for(let i=e;i&&(t.push(i,i.scrollTop,i.scrollLeft),i!=i.ownerDocument);i=i.parentNode);if(e.focus(null==Ua?{get preventScroll(){return Ua={preventScroll:!0},!0}}:void 0),!Ua){Ua=!1;for(let e=0;eMath.max(1,e.scrollHeight-e.clientHeight-4)}class Ba{constructor(e,t,i=!0){this.node=e,this.offset=t,this.precise=i}static before(e,t){return new Ba(e.parentNode,Aa(e),t)}static after(e,t){return new Ba(e.parentNode,Aa(e)+1,t)}}const Ga=[];class Ia{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,n=this.dom,r=null;for(let o of this.children){if(7&o.flags){if(!o.dom&&(i=r?r.nextSibling:n.firstChild)){let e=Ia.get(i);(!e||!e.parent&&e.canReuseDOM(o))&&o.reuseDOM(i)}o.sync(e,t),o.flags&=-8}if(i=r?r.nextSibling:n.firstChild,t&&!t.written&&t.node==n&&i!=o.dom&&(t.written=!0),o.dom.parentNode==n)for(;i&&i!=o.dom;)i=La(i);else n.insertBefore(o.dom,i);r=o.dom}for(i=r?r.nextSibling:n.firstChild,i&&t&&t.node==n&&(t.written=!0);i;)i=La(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 n=0==Za(e)?0:0==t?-1:1;for(;;){let t=e.parentNode;if(t==this.dom)break;0==n&&t.firstChild!=t.lastChild&&(n=e==t.firstChild?-1:1),e=t}i=n<0?e:e.nextSibling}if(i==this.dom.firstChild)return 0;for(;i&&!Ia.get(i);)i=i.nextSibling;if(!i)return this.length;for(let e=0,t=0;;e++){let n=this.children[e];if(n.dom==i)return t;t+=n.length+n.breakAfter}}domBoundsAround(e,t,i=0){let n=-1,r=-1,o=-1,s=-1;for(let a=0,l=i,c=i;at)return i.domBoundsAround(e,t,l);if(O>=e&&-1==n&&(n=a,r=l),l>t&&i.dom.parentNode==this.dom){o=a,s=c;break}c=O,l=O+i.breakAfter}return{from:r,to:s<0?i+this.length:s,startDOM:(n?this.children[n-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=Ga){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 Fa(e,t,i,n,r,o,s,a,l){let{children:c}=e,O=c.length?c[t]:null,h=o.length?o[o.length-1]:null,u=h?h.breakAfter:s;if(!(t==n&&O&&!s&&!u&&o.length<2&&O.merge(i,r,o.length?h:null,0==i,a,l))){if(n0&&(!s&&o.length&&O.merge(i,O.length,o[0],!1,a,0)?O.breakAfter=o.shift().breakAfter:(i2);var Ol={mac:cl||/Mac/.test(Ja.platform),windows:/Win/.test(Ja.platform),linux:/Linux|X11/.test(Ja.platform),ie:rl,ie_version:il?el.documentMode||6:nl?+nl[1]:tl?+tl[1]:0,gecko:ol,gecko_version:ol?+(/Firefox\/(\d+)/.exec(Ja.userAgent)||[0,0])[1]:0,chrome:!!sl,chrome_version:sl?+sl[1]:0,ios:cl,android:/Android\b/.test(Ja.userAgent),webkit:al,safari:ll,webkit_version:al?+(/\bAppleWebKit\/(\d+)/.exec(navigator.userAgent)||[0,0])[1]:0,tabSize:null!=el.documentElement.style.tabSize?"tab-size":"-moz-tab-size"};class hl extends Ia{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 hl)||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 hl(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 Ba(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 n=e.nodeValue.length;t>n&&(t=n);let r=t,o=t,s=0;0==t&&i<0||t==n&&i>=0?Ol.chrome||Ol.gecko||(t?(r--,s=1):o=0)?0:a.length-1];return Ol.safari&&!s&&0==l.width&&(l=Array.prototype.find.call(a,(e=>e.width))||l),s?Ea(l,s<0):l||null}(this.dom,e,t)}}class ul extends Ia{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(Da(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,n,r,o){return!(i&&(!(i instanceof ul&&i.mark.eq(this.mark))||e&&r<=0||te&&t.push(i=e&&(n=r),i=s,r++}let o=this.length-e;return this.length=e,n>-1&&(this.children.length=n,this.markDirty()),new ul(this.mark,t,o)}domAtPos(e){return pl(this,e)}coordsAt(e,t){return ml(this,e,t)}}class dl extends Ia{static create(e,t,i){return new dl(e,t,i)}constructor(e,t,i){super(),this.widget=e,this.length=t,this.side=i,this.prevWidget=null}split(e){let t=dl.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,n,r,o){return!(i&&(!(i instanceof dl&&this.widget.compare(i.widget))||e>0&&r<=0||t0)?Ba.before(this.dom):Ba.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 n=this.dom.getClientRects(),r=null;if(!n.length)return null;let o=this.side?this.side<0:e>0;for(let t=o?n.length-1:0;r=n[t],!(e>0?0==t:t==n.length-1||r.top0?Ba.before(this.dom):Ba.after(this.dom)}localPosFromDOM(){return 0}domBoundsAround(){return null}coordsAt(e){return this.dom.getBoundingClientRect()}get overrideDOMText(){return Hi.empty}get isHidden(){return!0}}function pl(e,t){let i=e.dom,{children:n}=e,r=0;for(let e=0;re&&t0;e--){let t=n[e-1];if(t.dom.parentNode==i)return t.domAtPos(t.length)}for(let e=r;e0&&t instanceof ul&&r.length&&(n=r[r.length-1])instanceof ul&&n.mark.eq(t.mark)?gl(n,t.children[0],i-1):(r.push(t),t.setParent(e)),e.length+=t.length}function ml(e,t,i){let n=null,r=-1,o=null,s=-1;!function e(t,a){for(let l=0,c=0;l=a&&(O.children.length?e(O,a-c):(!o||o.isHidden&&i>0)&&(h>a||c==h&&O.getSide()>0)?(o=O,s=a-c):(c-1?1:0)!=r.length-(i&&r.indexOf(i)>-1?1:0))return!1;for(let o of n)if(o!=i&&(-1==r.indexOf(o)||e[o]!==t[o]))return!1;return!0}function vl(e,t,i){let n=!1;if(t)for(let r in t)i&&r in i||(n=!0,"style"==r?e.style.cssText="":e.removeAttribute(r));if(i)for(let r in i)t&&t[r]==i[r]||(n=!0,"style"==r?e.style.cssText=i[r]:e.setAttribute(r,i[r]));return n}function yl(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){Ql(this.attrs,e)||(this.dom&&(this.prevAttrs=this.attrs,this.markDirty()),this.attrs=e)}append(e,t){gl(this,e,t)}addLineDeco(e){let t=e.spec.attributes,i=e.spec.class;t&&(this.attrs=bl(t,this.attrs||{})),i&&(this.attrs=bl({class:i},this.attrs||{}))}domAtPos(e){return pl(this,e)}reuseDOM(e){"DIV"==e.nodeName&&(this.setDOM(e),this.flags|=6)}sync(e,t){var i;this.dom?4&this.flags&&(Da(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&&(vl(this.dom,this.prevAttrs,this.attrs),this.dom.classList.add("cm-line"),this.prevAttrs=void 0),super.sync(e,t);let n=this.dom.lastChild;for(;n&&Ia.get(n)instanceof ul;)n=n.lastChild;if(!(n&&this.length&&("BR"==n.nodeName||0!=(null===(i=Ia.get(n))||void 0===i?void 0:i.isEditable)||Ol.ios&&this.children.some((e=>e instanceof hl))))){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 hl)||/[^ -~]/.test(i.text))return null;let n=Ra(i.dom);if(1!=n.length)return null;t+=n[0].width,e=n[0].height}return t?{lineHeight:this.dom.getBoundingClientRect().height,charWidth:t/this.length,textHeight:e}:null}coordsAt(e,t){let i=ml(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(r instanceof wl)return r;if(o>t)break}n=o+r.breakAfter}return null}}class _l extends Ia{constructor(e,t,i){super(),this.widget=e,this.length=t,this.deco=i,this.breakAfter=0,this.prevWidget=null}merge(e,t,i,n,r,o){return!(i&&(!(i instanceof _l&&this.widget.compare(i.widget))||e>0&&r<=0||t0)}}class Sl{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 xl=function(e){return e[e.Text=0]="Text",e[e.WidgetBefore=1]="WidgetBefore",e[e.WidgetAfter=2]="WidgetAfter",e[e.WidgetRange=3]="WidgetRange",e}(xl||(xl={}));class Xl extends _r{constructor(e,t,i,n){super(),this.startSide=e,this.endSide=t,this.widget=i,this.spec=n}get heightRelevant(){return!1}static mark(e){return new Pl(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 Tl(e,t,t,i,e.widget||null,!1)}static replace(e){let t,i,n=!!e.block;if(e.isBlockGap)t=-5e8,i=4e8;else{let{start:r,end:o}=Rl(e,n);t=(r?n?-3e8:-1:5e8)-1,i=1+(o?n?2e8:1:-6e8)}return new Tl(e,t,i,n,e.widget||null,!0)}static line(e){return new kl(e)}static set(e,t=!1){return Pr.of(e,t)}hasHeight(){return!!this.widget&&this.widget.estimatedHeight>-1}}Xl.none=Pr.empty;class Pl extends Xl{constructor(e){let{start:t,end:i}=Rl(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 Pl&&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))&&Ql(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)}}Pl.prototype.point=!1;class kl extends Xl{constructor(e){super(-2e8,-2e8,null,e)}eq(e){return e instanceof kl&&this.spec.class==e.spec.class&&Ql(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)}}kl.prototype.mapMode=vn.TrackBefore,kl.prototype.point=!0;class Tl extends Xl{constructor(e,t,i,n,r,o){super(t,i,r,e),this.block=n,this.isReplace=o,this.mapMode=n?t<=0?vn.TrackBefore:vn.TrackAfter:vn.TrackDel}get type(){return this.startSide!=this.endSide?xl.WidgetRange:this.startSide<=0?xl.WidgetBefore:xl.WidgetAfter}get heightRelevant(){return this.block||!!this.widget&&(this.widget.estimatedHeight>=5||this.widget.lineBreaks>0)}eq(e){return e instanceof Tl&&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 Rl(e,t=!1){let{inclusiveStart:i,inclusiveEnd:n}=e;return null==i&&(i=e.inclusive),null==n&&(n=e.inclusive),{start:null!=i?i:t,end:null!=n?n:t}}function Yl(e,t,i,n=0){let r=i.length-1;r>=0&&i[r]+n>=e?i[r]=Math.max(i[r],t):i.push(e,t)}Tl.prototype.point=!0;class Al{constructor(e,t,i,n){this.doc=e,this.pos=t,this.end=i,this.disallowBlockEffectsFor=n,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 _l&&e.deco.endSide<0)}getLine(){return this.curLine||(this.content.push(this.curLine=new wl),this.atCursorPos=!0),this.curLine}flushBuffer(e=this.bufferMarks){this.pendingBuffer&&(this.curLine.append(Vl(new fl(-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 _l||this.getLine()}buildText(e,t,i){for(;e>0;){if(this.textOff==this.text.length){let{value:t,lineBreak:i,done:n}=this.cursor.next(this.skip);if(this.skip=0,n)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 n=Math.min(this.text.length-this.textOff,e,512);this.flushBuffer(t.slice(t.length-i)),this.getLine().append(Vl(new hl(this.text.slice(this.textOff,this.textOff+n)),t),i),this.atCursorPos=!0,this.textOff+=n,e-=n,i=0}}span(e,t,i,n){this.buildText(t-e,i,n),this.pos=t,this.openStart<0&&(this.openStart=n)}point(e,t,i,n,r,o){if(this.disallowBlockEffectsFor[o]&&i instanceof Tl){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 Tl)if(i.block)i.startSide>0&&!this.posCovered()&&this.getLine(),this.addBlockWidget(new _l(i.widget||new Zl("div"),s,i));else{let o=dl.create(i.widget||new Zl("span"),s,s?0:i.startSide),a=this.atCursorPos&&!o.isEditable&&r<=n.length&&(e0),l=!o.isEditable&&(en.length||i.startSide<=0),c=this.getLine();2!=this.pendingBuffer||a||o.isEditable||(this.pendingBuffer=0),this.flushBuffer(n),a&&(c.append(Vl(new fl(1),n),r),r=n.length+Math.max(0,r-n.length)),c.append(Vl(o,n),r),this.atCursorPos=l,this.pendingBuffer=l?en.length?1:2:0,this.pendingBuffer&&(this.bufferMarks=n.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=r)}static build(e,t,i,n,r){let o=new Al(e,t,i,r);return o.openEnd=Pr.spans(n,t,i,o),o.openStart<0&&(o.openStart=o.openEnd),o.finish(o.openEnd),o}}function Vl(e,t){for(let i of t)e=new ul(i,[e],e.length);return e}class Zl extends Sl{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 El=Vn.define(),Cl=Vn.define(),Nl=Vn.define(),ql=Vn.define(),Ul=Vn.define(),Wl=Vn.define(),jl=Vn.define(),Ml=Vn.define({combine:e=>e.some((e=>e))}),Dl=Vn.define({combine:e=>e.some((e=>e))});class zl{constructor(e,t="nearest",i="nearest",n=5,r=5){this.range=e,this.y=t,this.x=i,this.yMargin=n,this.xMargin=r}map(e){return e.empty?this:new zl(this.range.map(e),this.y,this.x,this.yMargin,this.xMargin)}}const Bl=Or.define({map:(e,t)=>e.map(t)});function Gl(e,t,i){let n=e.facet(ql);n.length?n[0](t):window.onerror?window.onerror(String(t),i,void 0,void 0,t):i?console.error(i+":",t):console.error(t)}const Il=Vn.define({combine:e=>!e.length||e[0]});let Ll=0;const Kl=Vn.define();class Fl{constructor(e,t,i,n,r){this.id=e,this.create=t,this.domEventHandlers=i,this.domEventObservers=n,this.extension=r(this)}static define(e,t){const{eventHandlers:i,eventObservers:n,provide:r,decorations:o}=t||{};return new Fl(Ll++,e,i,n,(e=>{let t=[Kl.of(e)];return o&&t.push(tc.of((t=>{let i=t.plugin(e);return i?o(i):Xl.none}))),r&&t.push(r(e)),t}))}static fromClass(e,t){return Fl.define((t=>new e(t)),t)}}class Hl{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(Gl(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){Gl(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){Gl(e.state,t,"CodeMirror plugin crashed")}}deactivate(){this.spec=this.value=null}}const Jl=Vn.define(),ec=Vn.define(),tc=Vn.define(),ic=Vn.define(),nc=Vn.define();function rc(e,t,i){let n=e.state.facet(nc);if(!n.length)return n;let r=n.map((t=>t instanceof Function?t(e):t)),o=[];return Pr.spans(r,t,i,{point(){},span(e,t,i,n){let r=o;for(let o=i.length-1;o>=0;o--,n--){let s,a=i[o].spec.bidiIsolate;if(null!=a)if(n>0&&r.length&&(s=r[r.length-1]).to==e&&s.direction==a)s.to=t,r=s.inner;else{let i={from:e,to:t,direction:a,inner:[]};r.push(i),r=i.inner}}}}),o}const oc=Vn.define();function sc(e){let t=0,i=0,n=0,r=0;for(let o of e.state.facet(oc)){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&&(n=Math.max(n,s.top)),null!=s.bottom&&(r=Math.max(r,s.bottom)))}return{left:t,right:i,top:n,bottom:r}}const ac=Vn.define();class lc{constructor(e,t,i,n){this.fromA=e,this.toA=t,this.fromB=i,this.toB=n}join(e){return new lc(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 n=e[t-1];if(!(n.fromA>i.toA)){if(n.toAc)break;r+=2}if(!a)return i;new lc(a.fromA,a.toA,a.fromB,a.toB).addToSet(i),o=a.toA,s=a.toB}}}class cc{constructor(e,t,i){this.view=e,this.state=t,this.transactions=i,this.flags=0,this.startState=e.state,this.changes=wn.empty(this.startState.doc.length);for(let e of i)this.changes=this.changes.compose(e.changes);let n=[];this.changes.iterChangedRanges(((e,t,i,r)=>n.push(new lc(e,t,i,r)))),this.changedRanges=n}static create(e,t,i){return new cc(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 Oc=function(e){return e[e.LTR=0]="LTR",e[e.RTL=1]="RTL",e}(Oc||(Oc={}));const hc=Oc.LTR,uc=Oc.RTL;function dc(e){let t=[];for(let i=0;i=t){if(s.level==i)return o;(r<0||(0!=n?n<0?s.fromt:e[r].level>s.level))&&(r=o)}}if(r<0)throw new RangeError("Index out of range");return r}}function vc(e,t){if(e.length!=t.length)return!1;for(let i=0;il&&s.push(new Qc(l,f.from,u)),_c(e,f.direction==hc!=!(u%2)?n+1:n,r,f.inner,f.from,f.to,s),l=f.to),d=f.to}else{if(d==i||(t?yc[d]!=a:yc[d]==a))break;d++}h?wc(e,l,d,n+1,r,h,s):lt;){let i=!0,O=!1;if(!c||l>o[c-1].to){let e=yc[l-1];e!=a&&(i=!1,O=16==e)}let h=i||1!=a?null:[],u=i?n:n+1,d=l;e:for(;;)if(c&&d==o[c-1].to){if(O)break e;let f=o[--c];if(!i)for(let e=f.from,i=c;;){if(e==t)break e;if(!i||o[i-1].to!=e){if(yc[e-1]==a)break e;break}e=o[--i].from}h?h.push(f):(f.to=0;e-=3)if(mc[e+1]==-i){let t=mc[e+2],i=2&t?r:4&t?1&t?o:r:0;i&&(yc[s]=yc[mc[e]]=i),a=e;break}}else{if(189==mc.length)break;mc[a++]=s,mc[a++]=t,mc[a++]=l}else if(2==(n=yc[s])||1==n){let e=n==r;l=e?0:1;for(let t=a-3;t>=0;t-=3){let i=mc[t+2];if(2&i)break;if(e)mc[t+2]|=2;else{if(4&i)break;mc[t+2]|=4}}}}}(e,r,o,n,a),function(e,t,i,n){for(let r=0,o=n;r<=i.length;r++){let s=r?i[r-1].to:e,a=rl;)t==o&&(t=i[--n].from,o=n?i[n-1].to:e),yc[--t]=O;l=s}else o=s,l++}}}(r,o,n,a),wc(e,r,o,t,i,n,s)}function Sc(e){return[new Qc(0,e,0)]}let xc="";function Xc(e,t,i,n,r){var o;let s=n.head-e.from,a=-1;if(0==s){if(!r||!e.length)return null;t[0].level!=i&&(s=t[0].side(!1,i),a=0)}else if(s==e.length){if(r)return null;let e=t[t.length-1];e.level!=i&&(s=e.side(!0,i),a=t.length-1)}a<0&&(a=Qc.find(t,s,null!==(o=n.bidiLevel)&&void 0!==o?o:-1,n.assoc));let l=t[a];s==l.side(r,i)&&(l=t[a+=r?1:-1],s=l.side(!r,i));let c=r==(l.dir==i),O=hn(e.text,s,c);if(xc=e.text.slice(Math.min(s,O),Math.max(s,O)),O!=l.side(r,i))return Rn.cursor(O+e.from,c?-1:1,l.level);let h=a==(r?t.length-1:0)?null:t[a+(r?1:-1)];return h||l.level==i?h&&h.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 n=-1;this.view.inputState.composing>=0&&((null===(t=this.domChanged)||void 0===t?void 0:t.newSel)?n=this.domChanged.newSel.head:function(e,t){let i=!1;return t&&e.iterChangedRanges(((e,n)=>{et.from&&(i=!0)})),i}(e.changes,this.hasComposition)||e.selectionSet||(n=e.state.selection.main.head));let r=n>-1?function(e,t,i){let n=Tc(e,i);if(!n)return null;let{node:r,from:o,to:s}=n,a=r.nodeValue;if(/[\n\r]/.test(a))return null;if(e.state.doc.sliceString(n.from,n.to)!=a)return null;let l=t.invertedDesc,c=new lc(l.mapPos(o),l.mapPos(s),o,s),O=[];for(let t=r.parentNode;;t=t.parentNode){let i=Ia.get(t);if(i instanceof ul)O.push({node:t,deco:i.mark});else{if(i instanceof wl||"DIV"==t.nodeName&&t.parentNode==e.contentDOM)return{range:c,text:r,marks:O,line:t};if(t==e.contentDOM)return null;O.push({node:t,deco:new Pl({inclusive:!0,attributes:yl(t),tagName:t.tagName.toLowerCase()})})}}}(this.view,e.changes,n):null;if(this.domChanged=null,this.hasComposition){this.markedForComposition.clear();let{from:t,to:n}=this.hasComposition;i=new lc(t,n,e.changes.mapPos(t,-1),e.changes.mapPos(n,1)).addToSet(i.slice())}this.hasComposition=r?{from:r.range.fromB,to:r.range.toB}:null,(Ol.ie||Ol.chrome)&&!r&&e&&e.state.doc.lines!=e.startState.doc.lines&&(this.forceSelection=!0);let o=function(e,t,i){let n=new class{constructor(){this.changes=[]}compareRange(e,t){Yl(e,t,this.changes)}comparePoint(e,t){Yl(e,t,this.changes)}};return Pr.compare(e,t,i,n),n.changes}(this.decorations,this.updateDeco(),e.changes);return i=lc.extendWithRanges(i,o),!!(7&this.flags||0!=i.length)&&(this.updateInner(i,e.startState.doc.length,r),e.transactions.length&&(this.lastUpdate=Date.now()),!0)}updateInner(e,t,i){this.view.viewState.mustMeasureContent=!0,this.updateChildren(e,t,i);let{observer:n}=this.view;n.ignore((()=>{this.dom.style.height=this.view.viewState.contentHeight/this.view.scaleY+"px",this.dom.style.flexBasis=this.minWidth?this.minWidth+"px":"";let e=Ol.chrome||Ol.ios?{node:n.selectionRange.focusNode,written:!1}:void 0;this.sync(this.view,e),this.flags&=-8,e&&(e.written||n.selectionRange.focusNode!=e.node)&&(this.forceSelection=!0),this.dom.style.height=""})),this.markedForComposition.forEach((e=>e.flags&=-9));let r=[];if(this.view.viewport.from||this.view.viewport.to=0?n[e]:null;if(!t)break;let o,s,a,l,{fromA:c,toA:O,fromB:h,toB:u}=t;if(i&&i.range.fromBh){let e=Al.build(this.view.state.doc,h,i.range.fromB,this.decorations,this.dynamicDecorationMap),t=Al.build(this.view.state.doc,i.range.toB,u,this.decorations,this.dynamicDecorationMap);s=e.breakAtStart,a=e.openStart,l=t.openEnd;let n=this.compositionView(i);t.breakAtStart?n.breakAfter=1:t.content.length&&n.merge(n.length,n.length,t.content[0],!1,t.openStart,0)&&(n.breakAfter=t.content[0].breakAfter,t.content.shift()),e.content.length&&n.merge(0,0,e.content[e.content.length-1],!0,0,e.openEnd)&&e.content.pop(),o=e.content.concat(n).concat(t.content)}else({content:o,breakAtStart:s,openStart:a,openEnd:l}=Al.build(this.view.state.doc,h,u,this.decorations,this.dynamicDecorationMap));let{i:d,off:f}=r.findPos(O,1),{i:p,off:g}=r.findPos(c,-1);Fa(this,p,g,d,f,o,s,a,l)}i&&this.fixCompositionDOM(i)}compositionView(e){let t=new hl(e.text.nodeValue);t.flags|=8;for(let{deco:i}of e.marks)t=new ul(i,[t],t.length);let i=new wl;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=Ia.get(e);i&&i!=t&&(i.dom=null),t.setDOM(e)},i=this.childPos(e.range.fromB,1),n=this.children[i.i];t(e.line,n);for(let r=e.marks.length-1;r>=-1;r--)i=n.childPos(i.off,1),n=n.children[i.i],t(r>=0?e.marks[r].node:e.text,n)}updateSelection(e=!1,t=!1){!e&&this.view.observer.selectionRange.focusNode||this.view.observer.readSelectionRange();let i=this.view.root.activeElement,n=i==this.dom,r=!n&&Ta(this.dom,this.view.observer.selectionRange)&&!(i&&this.dom.contains(i));if(!(n||t||r))return;let o=this.forceSelection;this.forceSelection=!1;let s=this.view.state.selection.main,a=this.moveToLine(this.domAtPos(s.anchor)),l=s.empty?a:this.moveToLine(this.domAtPos(s.head));if(Ol.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)}(a)){let e=document.createTextNode("");this.view.observer.ignore((()=>a.node.insertBefore(e,a.node.childNodes[a.offset]||null))),a=l=new Ba(e,0),o=!0}let c=this.view.observer.selectionRange;!o&&c.focusNode&&Ya(a.node,a.offset,c.anchorNode,c.anchorOffset)&&Ya(l.node,l.offset,c.focusNode,c.focusOffset)||(this.view.observer.ignore((()=>{Ol.android&&Ol.chrome&&this.dom.contains(c.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}(c.focusNode,this.dom)&&(this.dom.blur(),this.dom.focus({preventScroll:!0}));let e=Pa(this.view.root);if(e)if(s.empty){if(Ol.gecko){let e=function(e,t){return 1!=e.nodeType?0:(t&&"false"==e.childNodes[t-1].contentEditable?1:0)|(ts.head&&([a,l]=[l,a]),t.setEnd(l.node,l.offset),t.setStart(a.node,a.offset),e.removeAllRanges(),e.addRange(t)}r&&this.view.root.activeElement==this.dom&&(this.dom.blur(),i&&i.focus())})),this.view.observer.setSelectionRange(a,l)),this.impreciseAnchor=a.precise?null:new Ba(c.anchorNode,c.anchorOffset),this.impreciseHead=l.precise?null:new Ba(c.focusNode,c.focusOffset)}enforceCursorAssoc(){if(this.hasComposition)return;let{view:e}=this,t=e.state.selection.main,i=Pa(e.root),{anchorNode:n,anchorOffset:r}=e.observer.selectionRange;if(!(i&&t.empty&&t.assoc&&i.modify))return;let o=wl.find(this,t.head);if(!o)return;let s=o.posAtStart;if(t.head==s||t.head==s+o.length)return;let a=this.coordsAt(t.head,-1),l=this.coordsAt(t.head,1);if(!a||!l||a.bottom>l.top)return;let c=this.domAtPos(t.head+t.assoc);i.collapse(c.node,c.offset),i.modify("move",t.assoc<0?"forward":"backward","lineboundary"),e.observer.readSelectionRange();let O=e.observer.selectionRange;e.docView.posFromDOM(O.anchorNode,O.anchorOffset)!=t.from&&i.collapse(n,r)}moveToLine(e){let t,i=this.dom;if(e.node!=i)return e;for(let n=e.offset;!t&&n=0;n--){let e=Ia.get(i.childNodes[n]);e instanceof wl&&(t=e.domAtPos(e.length))}return t?new Ba(t.node,t.offset,!0):e}nearest(e){for(let t=e;t;){let e=Ia.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],a=r-s.breakAfter,l=a-s.length;if(ae||s.covers(1))&&(!i||s instanceof wl&&!(i instanceof wl&&t>=0))&&(i=s,n=l),r=l}return i?i.coordsAt(e-n,t):null}coordsForChar(e){let{i:t,off:i}=this.childPos(e,1),n=this.children[t];if(!(n instanceof wl))return null;for(;n.children.length;){let{i:e,off:t}=n.childPos(i,1);for(;;e++){if(e==n.children.length)return null;if((n=n.children[e]).length)break}i=t}if(!(n instanceof hl))return null;let r=hn(n.text,i);if(r==i)return null;let o=ja(n.dom,i,r).getClientRects();for(let e=0;eMath.max(this.view.scrollDOM.clientWidth,this.minWidth)+1,s=-1,a=this.view.textDirection==Oc.LTR;for(let e=0,l=0;ln)break;if(e>=i){let i=c.dom.getBoundingClientRect();if(t.push(i.height),o){let t=c.dom.lastChild,n=t?Ra(t):[];if(n.length){let t=n[n.length-1],o=a?t.right-i.left:i.right-t.left;o>s&&(s=o,this.minWidth=r,this.minWidthFrom=e,this.minWidthTo=O)}}}e=O+c.breakAfter}return t}textDirectionAt(e){let{i:t}=this.childPos(e,1);return"rtl"==getComputedStyle(this.children[t].dom).direction?Oc.RTL:Oc.LTR}measureTextSize(){for(let e of this.children)if(e instanceof wl){let t=e.measureTextSize();if(t)return t}let e,t,i,n=document.createElement("div");return n.className="cm-line",n.style.width="99999px",n.style.position="absolute",n.textContent="abc def ghi jkl mno pqr stu",this.view.observer.ignore((()=>{this.dom.appendChild(n);let r=Ra(n.firstChild)[0];e=n.getBoundingClientRect().height,t=r?r.width/27:7,i=r?r.height:e,n.remove()})),{lineHeight:e,charWidth:t,textHeight:i}}childCursor(e=this.length){let t=this.children.length;return t&&(e-=this.children[--t].length),new Ka(this.children,e,t)}computeBlockGapDeco(){let e=[],t=this.view.viewState;for(let i=0,n=0;;n++){let r=n==t.viewports.length?null:t.viewports[n],o=r?r.from-1:this.length;if(o>i){let n=(t.lineBlockAt(o).bottom-t.lineBlockAt(i).top)/this.view.scaleY;e.push(Xl.replace({widget:new kc(n),block:!0,inclusive:!0,isBlockGap:!0}).range(i,o))}if(!r)break;i=r.to+1}return Xl.set(e)}updateDeco(){let e=this.view.state.facet(tc).map(((e,t)=>(this.dynamicDecorationMap[t]="function"==typeof e)?e(this.view):e));for(let t=e.length;ti.anchor?-1:1);if(!n)return;!i.empty&&(t=this.coordsAt(i.anchor,i.anchor>i.head?-1:1))&&(n={left:Math.min(n.left,t.left),top:Math.min(n.top,t.top),right:Math.max(n.right,t.right),bottom:Math.max(n.bottom,t.bottom)});let r=sc(this.view),o={left:n.left-r.left,top:n.top-r.top,right:n.right+r.right,bottom:n.bottom+r.bottom};!function(e,t,i,n,r,o,s,a){let l=e.ownerDocument,c=l.defaultView||window;for(let O=e,h=!1;O&&!h;)if(1==O.nodeType){let e,u=O==l.body,d=1,f=1;if(u)e=Ca(c);else{if(/^(fixed|sticky)$/.test(getComputedStyle(O).position)&&(h=!0),O.scrollHeight<=O.clientHeight&&O.scrollWidth<=O.clientWidth){O=O.assignedSlot||O.parentNode;continue}let t=O.getBoundingClientRect();d=t.width/O.offsetWidth,f=t.height/O.offsetHeight,e={left:t.left,right:t.left+O.clientWidth*d,top:t.top,bottom:t.top+O.clientHeight*f}}let p=0,g=0;if("nearest"==r)t.top0&&t.bottom>e.bottom+g&&(g=t.bottom-e.bottom+g+s)):t.bottom>e.bottom&&(g=t.bottom-e.bottom+s,i<0&&t.top-g0&&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[n-1],n=Za(i)}if(i>=0)for(let n=e,r=t;;){if(3==n.nodeType)return{node:n,offset:r};if(!(1==n.nodeType&&r=0))break;n=n.childNodes[r],r=0}return null}function Yc(e,t){return t.left>e?t.left-e:Math.max(0,e-t.right)}function Ac(e,t){return t.top>e?t.top-e:Math.max(0,e-t.bottom)}function Vc(e,t){return e.topt.top+1}function Zc(e,t){return te.bottom?{top:e.top,left:e.left,right:e.right,bottom:t}:e}function Cc(e,t,i){let n,r,o,s,a,l,c,O,h=!1;for(let u=e.firstChild;u;u=u.nextSibling){let e=Ra(u);for(let d=0;dg||s==g&&o>p){n=u,r=f,o=p,s=g;let a=g?i0?d0)}0==p?i>f.bottom&&(!c||c.bottomf.top)&&(l=u,O=f):c&&Vc(c,f)?c=Ec(c,f.bottom):O&&Vc(O,f)&&(O=Zc(O,f.top))}}if(c&&c.bottom>=i?(n=a,r=c):O&&O.top<=i&&(n=l,r=O),!n)return{node:e,offset:0};let u=Math.max(r.left,Math.min(r.right,t));return 3==n.nodeType?Nc(n,u,i):h&&"false"!=n.contentEditable?Cc(n,u,i):{node:e,offset:Array.prototype.indexOf.call(e.childNodes,n)+(t>=(r.left+r.right)/2?1:0)}}function Nc(e,t,i){let n=e.nodeValue.length,r=-1,o=1e9,s=0;for(let a=0;ai?c.top-i:i-c.bottom)-1;if(c.left-1<=t&&c.right+1>=t&&O=(c.left+c.right)/2,n=i;if((Ol.chrome||Ol.gecko)&&ja(e,a).getBoundingClientRect().left==c.right&&(n=!i),O<=0)return{node:e,offset:a+(n?1:0)};r=a+(n?1:0),o=O}}}return{node:e,offset:r>-1?r:s>0?e.nodeValue.length:0}}function qc(e,t,i,n=-1){var r,o;let s,a=e.contentDOM.getBoundingClientRect(),l=a.top+e.viewState.paddingTop,{docHeight:c}=e.viewState,{x:O,y:h}=t,u=h-l;if(u<0)return 0;if(u>c)return e.state.doc.length;for(let t=e.viewState.heightOracle.textHeight/2,r=!1;s=e.elementAtHeight(u),s.type!=xl.Text;)for(;u=n>0?s.bottom+t:s.top-t,!(u>=0&&u<=c);){if(r)return i?null:0;r=!0,n=-n}h=l+u;let d=s.from;if(de.viewport.to)return e.viewport.to==e.state.doc.length?e.state.doc.length:i?null:Uc(e,a,s,O,h);let f=e.dom.ownerDocument,p=e.root.elementFromPoint?e.root:f,g=p.elementFromPoint(O,h);g&&!e.contentDOM.contains(g)&&(g=null),g||(O=Math.max(a.left+1,Math.min(a.right-1,O)),g=p.elementFromPoint(O,h),g&&!e.contentDOM.contains(g)&&(g=null));let m,b=-1;if(g&&0!=(null===(r=e.docView.nearest(g))||void 0===r?void 0:r.isEditable))if(f.caretPositionFromPoint){let e=f.caretPositionFromPoint(O,h);e&&({offsetNode:m,offset:b}=e)}else if(f.caretRangeFromPoint){let t=f.caretRangeFromPoint(O,h);t&&(({startContainer:m,startOffset:b}=t),(!e.contentDOM.contains(m)||Ol.safari&&function(e,t,i){let n;if(3!=e.nodeType||t!=(n=e.nodeValue.length))return!1;for(let t=e.nextSibling;t;t=t.nextSibling)if(1!=t.nodeType||"BR"!=t.nodeName)return!1;return ja(e,n-1,n).getBoundingClientRect().left>i}(m,b,O)||Ol.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():ja(e,0,Math.max(e.nodeValue.length,1)).getBoundingClientRect()).left>5}(m,b,O))&&(m=void 0))}if(!m||!e.docView.dom.contains(m)){let t=wl.find(e.docView,d);if(!t)return u>s.top+s.height/2?s.to:s.from;({node:m,offset:b}=Cc(t.dom,O,h))}let $=e.docView.nearest(m);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((r-i.top-.5*(e.defaultLineHeight-t))/t)*e.viewState.heightOracle.lineLength}let s=e.state.sliceDoc(i.from,i.to);return i.from+Wr(s,o,e.state.tabSize)}function Wc(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==xl.Text))return e;return i}function jc(e,t,i,n){let r=e.state.doc.lineAt(t.head),o=e.bidiSpans(r),s=e.textDirectionAt(r.from);for(let a=t,l=null;;){let t=Xc(r,o,s,a,i),c=xc;if(!t){if(r.number==(i?e.state.doc.lines:1))return a;c="\n",r=e.state.doc.line(r.number+(i?1:-1)),o=e.bidiSpans(r),t=Rn.cursor(i?r.from:r.to)}if(l){if(!l(c))return a}else{if(!n)return t;l=n(c)}a=t}}function Mc(e,t,i){for(;;){let n=0;for(let r of e)r.between(t-1,t+1,((e,r,o)=>{if(t>e&&tt(e))),i.from,t.head>i.from?-1:1);return n==i.from?i:Rn.cursor(n,nnull)),Ol.gecko&&function(e){mO.has(e)||(mO.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,n=t.target;n!=e.contentDOM;n=n.parentNode)if(!n||11==n.nodeType||(i=Ia.get(n))&&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 n in e.domEventHandlers){let r=e.domEventHandlers[n];r&&i(n).handlers.push(Bc(t.value,r))}if(e&&e.domEventObservers)for(let n in e.domEventObservers){let r=e.domEventObservers[n];r&&i(n).observers.push(Bc(t.value,r))}}for(let e in Hc)i(e).handlers.push(Hc[e]);for(let e in Jc)i(e).observers.push(Jc[e]);return t}(e),i=this.handlers,n=this.view.contentDOM;for(let e in t)if("scroll"!=e){let r=!t[e].handlers.length,o=i[e];o&&r!=!o.handlers.length&&(n.removeEventListener(e,this.handleEvent),o=null),o||n.addEventListener(e,this.handleEvent,{passive:r})}for(let e in i)"scroll"==e||t[e]||n.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||Ic.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,Ma(this.view.contentDOM,e.key,e.keyCode))}ignoreDuringComposition(e){return!!/^key/.test(e.type)&&(this.composing>0||!!(Ol.safari&&!Ol.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 Bc(e,t){return(i,n)=>{try{return t.call(e,n,i)}catch(e){Gl(i.state,e)}}}const Gc=[{key:"Backspace",keyCode:8,inputType:"deleteContentBackward"},{key:"Enter",keyCode:13,inputType:"insertParagraph"},{key:"Enter",keyCode:13,inputType:"insertLineBreak"},{key:"Delete",keyCode:46,inputType:"deleteContentForward"}],Ic="dthko",Lc=[16,17,18,20,91,92,224,225];function Kc(e){return.7*Math.max(0,e)+8}class Fc{constructor(e,t,i,n){this.view=e,this.startEvent=t,this.style=i,this.mustSelect=n,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(ic).map((t=>t(e)));let r=e.contentDOM.ownerDocument;r.addEventListener("mousemove",this.move=this.move.bind(this)),r.addEventListener("mouseup",this.up=this.up.bind(this)),this.extend=t.shiftKey,this.multiple=e.state.facet(yr.allowMultipleSelections)&&function(e,t){let i=e.state.facet(El);return i.length?i[0](t):Ol.mac?t.metaKey:t.ctrlKey}(e,t),this.dragging=!(!function(e,t){let{main:i}=e.state.selection;if(i.empty)return!1;let n=Pa(e.root);if(!n||0==n.rangeCount)return!0;let r=n.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!=hO(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,n=0,r=(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=sc(this.view);e.clientX-o.left<=r.left+6?i=-Kc(r.left-e.clientX):e.clientX+o.right>=r.right-6&&(i=Kc(e.clientX-r.right)),e.clientY-o.top<=r.top+6?n=-Kc(r.top-e.clientY):e.clientY+o.bottom>=r.bottom-6&&(n=Kc(e.clientY-r.bottom)),this.setScrollSpeed(i,n)}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 Hc=Object.create(null),Jc=Object.create(null),eO=Ol.ie&&Ol.ie_version<15||Ol.ios&&Ol.webkit_version<604;function tO(e,t){let i,{state:n}=e,r=1,o=n.toText(t),s=o.lines==n.selection.ranges.length;if(null!=dO&&n.selection.ranges.every((e=>e.empty))&&dO==o.toString()){let e=-1;i=n.changeByRange((i=>{let a=n.doc.lineAt(i.from);if(a.from==e)return{range:i};e=a.from;let l=n.toText((s?o.line(r++).text:t)+n.lineBreak);return{changes:{from:a.from,insert:l},range:Rn.cursor(i.from+l.length)}}))}else i=s?n.changeByRange((e=>{let t=o.line(r++);return{changes:{from:e.from,to:e.to,insert:t.text},range:Rn.cursor(e.from+t.length)}})):n.replaceSelection(o);e.dispatch(i,{userEvent:"input.paste",scrollIntoView:!0})}function iO(e,t,i,n){if(1==n)return Rn.cursor(t,i);if(2==n)return function(e,t,i=1){let n=e.charCategorizer(t),r=e.doc.lineAt(t),o=t-r.from;if(0==r.length)return Rn.cursor(t);0==o?i=1:o==r.length&&(i=-1);let s=o,a=o;i<0?s=hn(r.text,o,!1):a=hn(r.text,o);let l=n(r.text.slice(s,a));for(;s>0;){let e=hn(r.text,s,!1);if(n(r.text.slice(e,s))!=l)break;s=e}for(;a{e.inputState.lastScrollTop=e.scrollDOM.scrollTop,e.inputState.lastScrollLeft=e.scrollDOM.scrollLeft},Hc.keydown=(e,t)=>(e.inputState.setSelectionOrigin("select"),27==t.keyCode&&(e.inputState.lastEscPress=Date.now()),!1),Jc.touchstart=(e,t)=>{e.inputState.lastTouchTime=Date.now(),e.inputState.setSelectionOrigin("select.pointer")},Jc.touchmove=e=>{e.inputState.setSelectionOrigin("select.pointer")},Hc.mousedown=(e,t)=>{if(e.observer.flush(),e.inputState.lastTouchTime>Date.now()-2e3)return!1;let i=null;for(let n of e.state.facet(Nl))if(i=n(e,t),i)break;if(i||0!=t.button||(i=function(e,t){let i=sO(e,t),n=hO(t),r=e.state.selection;return{update(e){e.docChanged&&(i.pos=e.changes.mapPos(i.pos),r=r.map(e.changes))},get(t,o,s){let a,l=sO(e,t),c=iO(e,l.pos,l.bias,n);if(i.pos!=l.pos&&!o){let t=iO(e,i.pos,i.bias,n),r=Math.min(t.from,c.from),o=Math.max(t.to,c.to);c=r1&&(a=function(e,t){for(let i=0;i=t)return Rn.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}(r,l.pos))?a:s?r.addRange(c):Rn.create([c])}}}(e,t)),i){let n=!e.hasFocus;e.inputState.startMouseSelection(new Fc(e,t,i,n)),n&&e.observer.ignore((()=>Wa(e.contentDOM)));let r=e.inputState.mouseSelection;if(r)return r.start(t),!1===r.dragging}return!1};let nO=(e,t)=>e>=t.top&&e<=t.bottom,rO=(e,t,i)=>nO(t,i)&&e>=i.left&&e<=i.right;function oO(e,t,i,n){let r=wl.find(e.docView,t);if(!r)return 1;let o=t-r.posAtStart;if(0==o)return 1;if(o==r.length)return-1;let s=r.coordsAt(o,-1);if(s&&rO(i,n,s))return-1;let a=r.coordsAt(o,1);return a&&rO(i,n,a)?1:s&&nO(n,s)?-1:1}function sO(e,t){let i=e.posAtCoords({x:t.clientX,y:t.clientY},!1);return{pos:i,bias:oO(e,i,t.clientX,t.clientY)}}const aO=Ol.ie&&Ol.ie_version<=11;let lO=null,cO=0,OO=0;function hO(e){if(!aO)return e.detail;let t=lO,i=OO;return lO=e,OO=Date.now(),cO=!t||i>Date.now()-400&&Math.abs(t.clientX-e.clientX)<2&&Math.abs(t.clientY-e.clientY)<2?(cO+1)%3:1}function uO(e,t,i,n){if(!i)return;let r=e.posAtCoords({x:t.clientX,y:t.clientY},!1),{mouseSelection:o}=e.inputState,s=n&&o&&o.dragging&&function(e,t){let i=e.state.facet(Cl);return i.length?i[0](t):Ol.mac?!t.altKey:!t.ctrlKey}(e,t)?{from:o.dragging.from,to:o.dragging.to}:null,a={from:r,insert:i},l=e.state.changes(s?[s,a]:a);e.focus(),e.dispatch({changes:l,selection:{anchor:l.mapPos(r,-1),head:l.mapPos(r,1)},userEvent:s?"move.drop":"input.drop"})}Hc.dragstart=(e,t)=>{let{selection:{main:i}}=e.state,{mouseSelection:n}=e.inputState;return n&&(n.dragging=i),t.dataTransfer&&(t.dataTransfer.setData("Text",e.state.sliceDoc(i.from,i.to)),t.dataTransfer.effectAllowed="copyMove"),!1},Hc.drop=(e,t)=>{if(!t.dataTransfer)return!1;if(e.state.readOnly)return!0;let i=t.dataTransfer.files;if(i&&i.length){let n=Array(i.length),r=0,o=()=>{++r==i.length&&uO(e,t,n.filter((e=>null!=e)).join(e.state.lineBreak),!1)};for(let e=0;e{/[\x00-\x08\x0e-\x1f]{2}/.test(t.result)||(n[e]=t.result),o()},t.readAsText(i[e])}return!0}{let i=t.dataTransfer.getData("Text");if(i)return uO(e,t,i,!0),!0}return!1},Hc.paste=(e,t)=>{if(e.state.readOnly)return!0;e.observer.flush();let i=eO?null:t.clipboardData;return i?(tO(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(),tO(e,i.value)}),50)}(e),!1)};let dO=null;Hc.copy=Hc.cut=(e,t)=>{let{text:i,ranges:n,linewise:r}=function(e){let t=[],i=[],n=!1;for(let n of e.selection.ranges)n.empty||(t.push(e.sliceDoc(n.from,n.to)),i.push(n));if(!t.length){let r=-1;for(let{from:n}of e.selection.ranges){let o=e.doc.lineAt(n);o.number>r&&(t.push(o.text),i.push({from:o.from,to:Math.min(e.doc.length,o.to+1)})),r=o.number}n=!0}return{text:t.join(e.lineBreak),ranges:i,linewise:n}}(e.state);if(!i&&!r)return!1;dO=r?i:null,"cut"!=t.type||e.state.readOnly||e.dispatch({changes:n,scrollIntoView:!0,userEvent:"delete.cut"});let o=eO?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 n=i.appendChild(document.createElement("textarea"));n.style.cssText="position: fixed; left: -10000px; top: 10px",n.value=t,n.focus(),n.selectionEnd=t.length,n.selectionStart=0,setTimeout((()=>{n.remove(),e.focus()}),50)}(e,i),!1)};const fO=ar.define();function pO(e,t){let i=[];for(let n of e.facet(jl)){let r=n(e,t);r&&i.push(r)}return i?e.update({effects:i,annotations:fO.of(!0)}):null}function gO(e){setTimeout((()=>{let t=e.hasFocus;if(t!=e.inputState.notifiedFocused){let i=pO(e.state,t);i?e.dispatch(i):e.update([])}}),10)}Jc.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),gO(e)},Jc.blur=e=>{e.observer.clearSelectionRange(),gO(e)},Jc.compositionstart=Jc.compositionupdate=e=>{null==e.inputState.compositionFirstChange&&(e.inputState.compositionFirstChange=!0),e.inputState.composing<0&&(e.inputState.composing=0)},Jc.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,Ol.chrome&&Ol.android?e.observer.flushSoon():e.inputState.compositionPendingChange?Promise.resolve().then((()=>e.observer.flush())):setTimeout((()=>{e.inputState.composing<0&&e.docView.hasComposition&&e.update([])}),50)},Jc.contextmenu=e=>{e.inputState.lastContextMenu=Date.now()},Hc.beforeinput=(e,t)=>{var i;let n;if(Ol.chrome&&Ol.android&&(n=Gc.find((e=>e.inputType==t.inputType)))&&(e.observer.delayAndroidKey(n.key,n.keyCode),"Backspace"==n.key||"Delete"==n.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 mO=new Set;const bO=["pre-wrap","normal","pre-line","break-spaces"];class $O{constructor(e){this.lineWrapping=e,this.doc=Hi.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 bO.indexOf(e)>-1!=this.lineWrapping}mustRefreshForHeights(e){let t=!1;for(let i=0;i-1,a=Math.round(t)!=Math.round(this.lineHeight)||this.lineWrapping!=s;if(this.lineWrapping=s,this.lineHeight=t,this.charWidth=i,this.textHeight=n,this.lineLength=r,a){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 wO.of(i)}decomposeLeft(e,t){t.push(this)}decomposeRight(e,t){t.push(this)}applyChanges(e,t,i,n){let r=this,o=i.doc;for(let s=n.length-1;s>=0;s--){let{fromA:a,toA:l,fromB:c,toB:O}=n[s],h=r.lineAt(a,yO.ByPosNoHeight,i.setDoc(t),0,0),u=h.to>=l?h:r.lineAt(l,yO.ByPosNoHeight,i,0,0);for(O+=u.to-l,l=u.to;s>0&&h.from<=n[s-1].toA;)a=n[s-1].fromA,c=n[s-1].fromB,s--,a2*r){let r=e[t-1];r.break?e.splice(--t,1,r.left,null,r.right):e.splice(--t,1,r.left,r.right),i+=1+r.break,n-=r.size}else{if(!(r>2*n))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,r-=t.size}}else if(n=r&&o(this.blockAt(0,i,n,r))}updateHeight(e,t=0,i=!1,n){return n&&n.from<=t&&n.more&&this.setHeight(e,n.heights[n.index++]),this.outdated=!1,this}toString(){return`block(${this.length})`}}class SO extends _O{constructor(e,t){super(e,t,null),this.collapsed=0,this.widgetHeight=0,this.breaks=0}blockAt(e,t,i,n){return new vO(n,this.length,i,this.height,this.breaks)}replace(e,t,i){let n=i[0];return 1==i.length&&(n instanceof SO||n instanceof xO&&4&n.flags)&&Math.abs(this.length-n.length)<10?(n instanceof xO?n=new SO(n.length,this.height):n.height=this.height,this.outdated||(n.outdated=!1),n):wO.of(i)}updateHeight(e,t=0,i=!1,n){return n&&n.from<=t&&n.more?this.setHeight(e,n.heights[n.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 xO extends wO{constructor(e){super(e,0)}heightMetrics(e,t){let i,n=e.doc.lineAt(t).number,r=e.doc.lineAt(t+this.length).number,o=r-n+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:n,lastLine:r,perLine:i,perChar:s}}blockAt(e,t,i,n){let{firstLine:r,lastLine:o,perLine:s,perChar:a}=this.heightMetrics(t,n);if(t.lineWrapping){let r=n+Math.round(Math.max(0,Math.min(1,(e-i)/this.height))*this.length),o=t.doc.lineAt(r),l=s+o.length*a,c=Math.max(i,e-l/2);return new vO(o.from,o.length,c,l,0)}{let n=Math.max(0,Math.min(o-r,Math.floor((e-i)/s))),{from:a,length:l}=t.doc.line(r+n);return new vO(a,l,i+s*n,s,0)}}lineAt(e,t,i,n,r){if(t==yO.ByHeight)return this.blockAt(e,i,n,r);if(t==yO.ByPosNoHeight){let{from:t,to:n}=i.doc.lineAt(e);return new vO(t,n-t,0,0,0)}let{firstLine:o,perLine:s,perChar:a}=this.heightMetrics(i,r),l=i.doc.lineAt(e),c=s+l.length*a,O=l.number-o,h=n+s*O+a*(l.from-r-O);return new vO(l.from,l.length,Math.max(n,Math.min(h,n+this.height-c)),c,0)}forEachLine(e,t,i,n,r,o){e=Math.max(e,r),t=Math.min(t,r+this.length);let{firstLine:s,perLine:a,perChar:l}=this.heightMetrics(i,r);for(let c=e,O=n;c<=t;){let t=i.doc.lineAt(c);if(c==e){let i=t.number-s;O+=a*i+l*(e-r-i)}let n=a+l*t.length;o(new vO(t.from,t.length,O,n,0)),O+=n,c=t.to+1}}replace(e,t,i){let n=this.length-t;if(n>0){let e=i[i.length-1];e instanceof xO?i[i.length-1]=new xO(e.length+n):i.push(null,new xO(n-1))}if(e>0){let t=i[0];t instanceof xO?i[0]=new xO(e+t.length):i.unshift(new xO(e-1),null)}return wO.of(i)}decomposeLeft(e,t){t.push(new xO(e-1),null)}decomposeRight(e,t){t.push(null,new xO(this.length-e-1))}updateHeight(e,t=0,i=!1,n){let r=t+this.length;if(n&&n.from<=t+this.length&&n.more){let i=[],o=Math.max(t,n.from),s=-1;for(n.from>t&&i.push(new xO(n.from-t-1).updateHeight(e,t));o<=r&&n.more;){let t=e.doc.lineAt(o).length;i.length&&i.push(null);let r=n.heights[n.index++];-1==s?s=r:Math.abs(r-s)>=.001&&(s=-2);let a=new SO(t,r);a.outdated=!1,i.push(a),o+=t+1}o<=r&&i.push(null,new xO(r-o).updateHeight(e,o));let a=wO.of(i);return(s<0||Math.abs(a.height-this.height)>=.001||Math.abs(s-this.heightMetrics(e,t).perLine)>=.001)&&(e.heightChanged=!0),a}return(i||this.outdated)&&(this.setHeight(e,e.heightForGap(t,t+this.length)),this.outdated=!1),this}toString(){return`gap(${this.length})`}}class XO extends wO{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,n){let r=i+this.left.height;return es))return l;let c=t==yO.ByPosNoHeight?yO.ByPosNoHeight:yO.ByPos;return a?l.join(this.right.lineAt(s,c,i,o,s)):this.left.lineAt(s,c,i,n,r).join(l)}forEachLine(e,t,i,n,r,o){let s=n+this.left.height,a=r+this.left.length+this.break;if(this.break)e=a&&this.right.forEachLine(e,t,i,s,a,o);else{let l=this.lineAt(a,yO.ByPos,i,n,r);e=e&&l.from<=t&&o(l),t>l.to&&this.right.forEachLine(l.to+1,t,i,s,a,o)}}replace(e,t,i){let n=this.left.length+this.break;if(tthis.left.length)return this.balanced(this.left,this.right.replace(e-n,t-n,i));let r=[];e>0&&this.decomposeLeft(e,r);let o=r.length;for(let e of i)r.push(e);if(e>0&&PO(r,o-1),t=i&&t.push(null)),e>i&&this.right.decomposeLeft(e-i,t)}decomposeRight(e,t){let i=this.left.length,n=i+this.break;if(e>=n)return this.right.decomposeRight(e-n,t);e2*t.size||t.size>2*e.size?wO.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,n){let{left:r,right:o}=this,s=t+r.length+this.break,a=null;return n&&n.from<=t+r.length&&n.more?a=r=r.updateHeight(e,t,i,n):r.updateHeight(e,t,i),n&&n.from<=s+o.length&&n.more?a=o=o.updateHeight(e,s,i,n):o.updateHeight(e,s,i),a?this.balanced(r,o):(this.height=this.left.height+this.right.height,this.outdated=!1,this)}toString(){return this.left+(this.break?" ":"-")+this.right}}function PO(e,t){let i,n;null==e[t]&&(i=e[t-1])instanceof xO&&(n=e[t+1])instanceof xO&&e.splice(t-1,3,new xO(i.length+1+n.length))}class kO{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 SO?i.length+=e-this.pos:(e>this.pos||!this.isCovered)&&this.nodes.push(new SO(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(n,r,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 SO(this.pos-e,-1)),this.writtenTo=this.pos}blankContent(e,t){let i=new xO(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 SO)return e;let t=new SO(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 n=this.ensureLine();n.length+=i,n.collapsed+=i,n.widgetHeight=Math.max(n.widgetHeight,e),n.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 SO||this.isCovered?(this.writtenToi.clientHeight||i.scrollWidth>i.clientWidth)&&"visible"!=n.overflow){let n=i.getBoundingClientRect();o=Math.max(o,n.left),s=Math.min(s,n.right),a=Math.max(a,n.top),l=t==e.parentNode?n.bottom:Math.min(l,n.bottom)}t="absolute"==n.position||"fixed"==n.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:a-(i.top+t),bottom:Math.max(a,l)-(i.top+t)}}function YO(e,t){let i=e.getBoundingClientRect();return{left:0,right:i.right-i.left,top:t,bottom:i.bottom-(i.top+t)}}class AO{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 $O(t),this.stateDeco=e.facet(tc).filter((e=>"function"!=typeof e)),this.heightMap=wO.empty().applyChanges(this.stateDeco,Hi.empty,this.heightOracle.setDoc(e.doc),[new lc(0,0,0,e.doc.length)]),this.viewport=this.getViewport(0,null),this.updateViewportLines(),this.updateForViewport(),this.lineGaps=this.ensureLineGaps([]),this.lineGapDeco=Xl.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 n=i?t.head:t.anchor;if(!e.some((({from:e,to:t})=>n>=e&&n<=t))){let{from:t,to:i}=this.lineBlockAt(n);e.push(new EO(t,i))}}this.viewports=e.sort(((e,t)=>e.from-t.from)),this.scaler=this.heightMap.height<=7e6?UO:new WO(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:jO(e,this.scaler))}))}update(e,t=null){this.state=e.state;let i=this.stateDeco;this.stateDeco=this.state.facet(tc).filter((e=>"function"!=typeof e));let n=e.changedRanges,r=lc.extendWithRanges(n,function(e,t,i){let n=new TO;return Pr.compare(e,t,i,n,0),n.changes}(i,this.stateDeco,e?e.changes:wn.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),r),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 a=r.length?this.mapViewport(this.viewport,e.changes):this.viewport;(t&&(t.range.heada.to)||!this.viewportIsAppropriate(a))&&(a=this.getViewport(0,t));let l=!e.changes.empty||2&e.flags||a.from!=this.viewport.from||a.to!=this.viewport.to;this.viewport=a,this.updateForViewport(),l&&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(Dl)&&(this.mustEnforceCursorAssoc=!0)}measure(e){let t=e.contentDOM,i=window.getComputedStyle(t),n=this.heightOracle,r=i.whiteSpace;this.defaultTextDirection="rtl"==i.direction?Oc.RTL:Oc.LTR;let o=this.heightOracle.mustRefreshForWrapping(r),s=t.getBoundingClientRect(),a=o||this.mustMeasureContent||this.contentDOMHeight!=s.height;this.contentDOMHeight=s.height,this.mustMeasureContent=!1;let l=0,c=0;if(s.width&&s.height){let e=s.width/t.offsetWidth,i=s.height/t.offsetHeight;(e>.995&&e<1.005||!isFinite(e)||Math.abs(s.width-t.offsetWidth)<1)&&(e=1),(i>.995&&i<1.005||!isFinite(i)||Math.abs(s.height-t.offsetHeight)<1)&&(i=1),this.scaleX==e&&this.scaleY==i||(this.scaleX=e,this.scaleY=i,l|=8,o=a=!0)}let O=(parseInt(i.paddingTop)||0)*this.scaleY,h=(parseInt(i.paddingBottom)||0)*this.scaleY;this.paddingTop==O&&this.paddingBottom==h||(this.paddingTop=O,this.paddingBottom=h,l|=10),this.editorWidth!=e.scrollDOM.clientWidth&&(n.lineWrapping&&(a=!0),this.editorWidth=e.scrollDOM.clientWidth,l|=8);let u=e.scrollDOM.scrollTop*this.scaleY;this.scrollTop!=u&&(this.scrollAnchorHeight=-1,this.scrollTop=u),this.scrolledToBottom=za(e.scrollDOM);let d=(this.printing?YO:RO)(t,this.paddingTop),f=d.top-this.pixelViewport.top,p=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=s.width;if(this.contentDOMWidth==m&&this.editorHeight==e.scrollDOM.clientHeight||(this.contentDOMWidth=s.width,this.editorHeight=e.scrollDOM.clientHeight,l|=8),a){let t=e.docView.measureVisibleLineHeights(this.viewport);if(n.mustRefreshForHeights(t)&&(o=!0),o||n.lineWrapping&&Math.abs(m-this.contentDOMWidth)>n.charWidth){let{lineHeight:i,charWidth:s,textHeight:a}=e.docView.measureTextSize();o=i>0&&n.refresh(r,i,s,a,m/s,t),o&&(e.docView.minWidth=0,l|=8)}f>0&&p>0?c=Math.max(f,p):f<0&&p<0&&(c=Math.min(f,p)),n.heightChanged=!1;for(let i of this.viewports){let r=i.from==this.viewport.from?t:e.docView.measureVisibleLineHeights(i);this.heightMap=(o?wO.empty().applyChanges(this.stateDeco,Hi.empty,this.heightOracle,[new lc(0,0,0,e.state.doc.length)]):this.heightMap).updateHeight(n,0,o,new QO(i.from,r))}n.heightChanged&&(l|=2)}let b=!this.viewportIsAppropriate(this.viewport,c)||this.scrollTarget&&(this.scrollTarget.range.headthis.viewport.to);return b&&(this.viewport=this.getViewport(c,this.scrollTarget)),this.updateForViewport(),(2&l||b)&&this.updateViewportLines(),(this.lineGaps.length||this.viewport.to-this.viewport.from>4e3)&&this.updateLineGaps(this.ensureLineGaps(o?[]: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)),n=this.heightMap,r=this.heightOracle,{visibleTop:o,visibleBottom:s}=this,a=new EO(n.lineAt(o-1e3*i,yO.ByHeight,r,0,0).from,n.lineAt(s+1e3*(1-i),yO.ByHeight,r,0,0).to);if(t){let{head:e}=t.range;if(ea.to){let i,o=Math.min(this.editorHeight,this.pixelViewport.bottom-this.pixelViewport.top),s=n.lineAt(e,yO.ByPos,r,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)))&&n>o-2e3&&r>1,o=n<<1;if(this.defaultTextDirection!=Oc.LTR&&!i)return[];let s=[],a=(n,o,l,c)=>{if(o-nn&&ee.from>=l.from&&e.to<=l.to&&Math.abs(e.from-n)e.fromt))));if(!u){if(oe.from<=o&&e.to>=o))){let e=t.moveToLineBoundary(Rn.cursor(o),!1,!0).head;e>n&&(o=e)}u=new AO(n,o,this.gapSize(l,n,o,c))}s.push(u)};for(let e of this.viewportLines){if(e.lengthe.from&&a(e.from,r,e,t),se.draw(this,this.heightOracle.lineWrapping)))))}computeVisibleRanges(){let e=this.stateDeco;this.lineGaps.length&&(e=e.concat(this.lineGapDeco));let t=[];Pr.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))||jO(this.heightMap.lineAt(e,yO.ByPos,this.heightOracle,0,0),this.scaler)}lineBlockAtHeight(e){return jO(this.heightMap.lineAt(this.scaler.fromDOM(e),yO.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 jO(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 EO{constructor(e,t){this.from=e,this.to=t}}function CO(e,t,i){let n=[],r=e,o=0;return Pr.spans(i,e,t,{span(){},point(e,t){e>r&&(n.push({from:r,to:e}),o+=e-r),r=t}},20),r=1)return t[t.length-1].to;let n=Math.floor(e*i);for(let e=0;;e++){let{from:i,to:r}=t[e],o=r-i;if(n<=o)return i+n;n-=o}}function qO(e,t){let i=0;for(let{from:n,to:r}of e.ranges){if(t<=r){i+=t-n;break}i+=r-n}return i/e.total}const UO={toDOM:e=>e,fromDOM:e=>e,scale:1};class WO{constructor(e,t,i){let n=0,r=0,o=0;this.viewports=i.map((({from:i,to:r})=>{let o=t.lineAt(i,yO.ByPos,e,0,0).top,s=t.lineAt(r,yO.ByPos,e,0,0).bottom;return n+=s-o,{from:i,to:r,top:o,bottom:s,domTop:0,domBottom:0}})),this.scale=(7e6-n)/(t.height-n);for(let e of this.viewports)e.domTop=o+(e.top-r)*this.scale,o=e.domBottom=e.domTop+(e.bottom-e.top),r=e.bottom}toDOM(e){for(let t=0,i=0,n=0;;t++){let r=tjO(e,t))):e._content)}const MO=Vn.define({combine:e=>e.join(" ")}),DO=Vn.define({combine:e=>e.indexOf(!0)>-1}),zO=$a.newName(),BO=$a.newName(),GO=$a.newName(),IO={"&light":"."+BO,"&dark":"."+GO};function LO(e,t,i){return new $a(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 KO=LO("."+zO,{"&":{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"}},IO);class FO{constructor(e,t){this.points=e,this.text="",this.lineSeparator=t.facet(yr.lineSeparator)}append(e){this.text+=e}lineBreak(){this.text+="￿"}readRange(e,t){if(!e)return this;let i=e.parentNode;for(let n=e;;){this.findPointBefore(i,n);let e=this.text.length;this.readNode(n);let r=n.nextSibling;if(r==t)break;let o=Ia.get(n),s=Ia.get(r);(o&&s?o.breakAfter:(o?o.breakAfter:JO(n))||JO(r)&&("BR"!=n.nodeName||n.cmIgnore)&&this.text.length>e)&&this.lineBreak(),n=r}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,n=this.lineSeparator?null:/\r\n?|\n/g;;){let r,o=-1,s=1;if(this.lineSeparator?(o=t.indexOf(this.lineSeparator,i),s=this.lineSeparator.length):(r=n.exec(t))&&(o=r.index,s=r[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=Ia.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+(HO(e,i.node,i.offset)?t:0))}}function HO(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=r||o?[]:function(e){let t=[];if(e.root.activeElement!=e.contentDOM)return t;let{anchorNode:i,anchorOffset:n,focusNode:r,focusOffset:o}=e.observer.selectionRange;return i&&(t.push(new eh(i,n)),r==i&&o==n||t.push(new eh(r,o))),t}(e),i=new FO(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,n=2==e.length?e[1].pos:i;return i>-1&&n>-1?Rn.single(i+t,n+t):null}(t,this.bounds.from)}else{let t=e.observer.selectionRange,i=r&&r.node==t.focusNode&&r.offset==t.focusOffset||!ka(e.contentDOM,t.focusNode)?e.state.selection.main.head:e.docView.posFromDOM(t.focusNode,t.focusOffset),n=o&&o.node==t.anchorNode&&o.offset==t.anchorOffset||!ka(e.contentDOM,t.anchorNode)?e.state.selection.main.anchor:e.docView.posFromDOM(t.anchorNode,t.anchorOffset);this.newSel=Rn.single(n,i)}}}function ih(e,t){let i,{newSel:n}=t,r=e.state.selection.main,o=e.inputState.lastKeyTime>Date.now()-100?e.inputState.lastKeyCode:-1;if(t.bounds){let{from:n,to:s}=t.bounds,a=r.from,l=null;(8===o||Ol.android&&t.text.length0&&a>0&&e.charCodeAt(s-1)==t.charCodeAt(a-1);)s--,a--;"end"==n&&(i-=s+Math.max(0,o-Math.min(s,a))-o);s=s?o-i:0,a=o+(a-s),s=o):a=a?o-i:0,s=o+(s-a),a=o);return{from:o,toA:s,toB:a}}(e.state.doc.sliceString(n,s,"￿"),t.text,a-n,l);c&&(Ol.chrome&&13==o&&c.toB==c.from+2&&"￿￿"==t.text.slice(c.from,c.toB)&&c.toB--,i={from:n+c.from,to:n+c.toA,insert:Hi.of(t.text.slice(c.from,c.toB).split("￿"))})}else n&&(!e.hasFocus&&e.state.facet(Il)||n.main.eq(r))&&(n=null);if(!i&&!n)return!1;if(!i&&t.typeOver&&!r.empty&&n&&n.main.empty?i={from:r.from,to:r.to,insert:e.state.doc.slice(r.from,r.to)}:i&&i.from>=r.from&&i.to<=r.to&&(i.from!=r.from||i.to!=r.to)&&r.to-r.from-(i.to-i.from)<=4?i={from:r.from,to:r.to,insert:e.state.doc.slice(r.from,i.from).append(i.insert).append(e.state.doc.slice(i.to,r.to))}:(Ol.mac||Ol.android)&&i&&i.from==i.to&&i.from==r.head-1&&/^\. ?$/.test(i.insert.toString())&&"off"==e.contentDOM.getAttribute("autocorrect")?(n&&2==i.insert.length&&(n=Rn.single(n.main.anchor-1,n.main.head-1)),i={from:r.from,to:r.to,insert:Hi.of([" "])}):Ol.chrome&&i&&i.from==i.to&&i.from==r.head&&"\n "==i.insert.toString()&&e.lineWrapping&&(n&&(n=Rn.single(n.main.anchor-1,n.main.head-1)),i={from:r.from,to:r.to,insert:Hi.of([" "])}),i){if(Ol.ios&&e.inputState.flushIOSKey())return!0;if(Ol.android&&(i.from==r.from&&i.to==r.to&&1==i.insert.length&&2==i.insert.lines&&Ma(e.contentDOM,"Enter",13)||(i.from==r.from-1&&i.to==r.to&&0==i.insert.length||8==o&&i.insert.lengthr.head)&&Ma(e.contentDOM,"Backspace",8)||i.from==r.from&&i.to==r.to+1&&0==i.insert.length&&Ma(e.contentDOM,"Delete",46)))return!0;let t,s=i.insert.toString();e.inputState.composing>=0&&e.inputState.composing++;let a=()=>t||(t=function(e,t,i){let n,r=e.state,o=r.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?r.sliceDoc(t.to,o.to):"";n=r.replaceSelection(e.state.toText(i+t.insert.sliceString(0,void 0,e.state.lineBreak)+s))}else{let s=r.changes(t),a=i&&i.main.to<=s.newLength?i.main:void 0;if(r.selection.ranges.length>1&&e.inputState.composing>=0&&t.to<=o.to&&t.to>=o.to-10){let l,c=e.state.sliceDoc(t.from,t.to),O=i&&Tc(e,i.main.head);if(O){let e=t.insert.length-(t.to-t.from);l={from:O.from,to:O.to-e}}else l=e.state.doc.lineAt(o.head);let h=o.to-t.to,u=o.to-o.from;n=r.changeByRange((i=>{if(i.from==o.from&&i.to==o.to)return{changes:s,range:a||i.map(s)};let n=i.to-h,O=n-c.length;if(i.to-i.from!=u||e.state.sliceDoc(O,n)!=c||i.to>=l.from&&i.from<=l.to)return{range:i};let d=r.changes({from:O,to:n,insert:t.insert}),f=i.to-o.to;return{changes:d,range:a?Rn.range(Math.max(0,a.anchor+f),Math.max(0,a.head+f)):i.map(d)}}))}else n={changes:s,selection:a&&r.selection.replaceRange(a)}}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)),r.update(n,{userEvent:s,scrollIntoView:!0})}(e,i,n));return e.state.facet(Wl).some((t=>t(e,i.from,i.to,s,a)))||e.dispatch(a()),!0}if(n&&!n.main.eq(r)){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:n,scrollIntoView:t,userEvent:i}),!0}return!1}const nh={childList:!0,characterData:!0,subtree:!0,attributes:!0,characterDataOldValue:!0},rh=Ol.ie&&Ol.ie_version<=11;class oh{constructor(e){this.view=e,this.active=!1,this.selectionRange=new Na,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);(Ol.ie&&Ol.ie_version<=11||Ol.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()})),rh&&(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,n=this.selectionRange;if(i.state.facet(Il)?i.root.activeElement!=this.dom:!Ta(i.dom,n))return;let r=n.anchorNode&&i.docView.nearest(n.anchorNode);r&&r.ignoreEvent(e)?t||(this.selectionChanged=!1):(Ol.ie&&Ol.ie_version<=11||Ol.android&&Ol.chrome)&&!i.state.selection.main.empty&&n.focusNode&&Ya(n.focusNode,n.focusOffset,n.anchorNode,n.anchorOffset)?this.flushSoon():this.flush(!1)}readSelectionRange(){let{view:e}=this,t=Ol.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 n=t.startContainer,r=t.startOffset,o=t.endContainer,s=t.endOffset,a=e.docView.domAtPos(e.state.selection.main.anchor);return Ya(a.node,a.offset,o,s)&&([n,r,o,s]=[o,s,n,r]),{anchorNode:n,anchorOffset:r,focusNode:o,focusOffset:s}}(this.view)||Pa(e.root);if(!t||this.selectionRange.eq(t))return!1;let i=Ta(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&&Ma(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,n=!1;for(let r of e){let e=this.readMutation(r);e&&(e.typeOver&&(n=!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:n}}readChange(){let{from:e,to:t,typeOver:i}=this.processRecords(),n=this.selectionChanged&&Ta(this.dom,this.selectionRange);if(e<0&&!n)return null;e>-1&&(this.lastChange=Date.now()),this.view.inputState.lastFocusTime=0,this.selectionChanged=!1;let r=new th(this.view,e,t,i);return this.view.docView.domChanged={newSel:r.newSel?r.newSel.main:null},r}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,n=ih(this.view,t);return this.view.state==i&&this.view.update([]),n}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=sh(t,e.previousSibling||e.target.previousSibling,-1),n=sh(t,e.nextSibling||e.target.nextSibling,1);return{from:i?t.posAfter(i):t.posAtStart,to:n?t.posBefore(n):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,n;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===(n=this.resizeContent)||void 0===n||n.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 sh(e,t,i){for(;t;){let n=Ia.get(t);if(n&&n.parent==e)return n;let r=t.parentNode;t=r!=e.dom?r:i>0?t.nextSibling:t.previousSibling}return null}class ah{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 ZO(e.state||yr.create(e)),this.plugins=this.state.facet(Kl).map((e=>new Hl(e)));for(let e of this.plugins)e.update(this);this.observer=new oh(this),this.inputState=new zc(this),this.inputState.ensureHandlers(this.plugins),this.docView=new Pc(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 hr?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,n=!1,r=this.state;for(let t of e){if(t.startState!=r)throw new RangeError("Trying to update state with a transaction that doesn't start from the previous state.");r=t.state}if(this.destroyed)return void(this.viewState.state=r);let o=this.hasFocus,s=0,a=null;e.some((e=>e.annotation(fO)))?(this.inputState.notifiedFocused=o,s=1):o!=this.inputState.notifiedFocused&&(this.inputState.notifiedFocused=o,a=pO(r,o),a||(s=1));let l=this.observer.delayedAndroidKey,c=null;if(l?(this.observer.clearDelayedAndroidKey(),c=this.observer.readChange(),(c&&!this.state.doc.eq(r.doc)||!this.state.selection.eq(r.selection))&&(c=null)):this.observer.clear(),r.facet(yr.phrases)!=this.state.facet(yr.phrases))return this.setState(r);t=cc.create(this,r,e),t.flags|=s;let O=this.viewState.scrollTarget;try{this.updateState=2;for(let t of e){if(O&&(O=O.map(t.changes)),t.scrollIntoView){let{main:e}=t.state.selection;O=new zl(e.empty?e:Rn.cursor(e.head,e.head>e.anchor?-1:1))}for(let e of t.effects)e.is(Bl)&&(O=e.value)}this.viewState.update(t,O),this.bidiCache=Oh.update(this.bidiCache,t.changes),t.empty||(this.updatePlugins(t),this.inputState.update(t)),i=this.docView.update(t),this.state.facet(ac)!=this.styleModules&&this.mountStyles(),n=this.updateAttrs(),this.showAnnouncements(e),this.docView.updateSelection(i,e.some((e=>e.isUserEvent("select.pointer"))))}finally{this.updateState=0}if(t.startState.facet(MO)!=t.state.facet(MO)&&(this.viewState.mustMeasureContent=!0),(i||n||O||this.viewState.mustEnforceCursorAssoc||this.viewState.mustMeasureContent)&&this.requestMeasure(),!t.empty)for(let e of this.state.facet(Ul))e(t);(a||c)&&Promise.resolve().then((()=>{a&&this.state==a.startState&&this.dispatch(a),c&&!ih(this,c)&&l.force&&Ma(this.contentDOM,l.key,l.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 ZO(e),this.plugins=e.facet(Kl).map((e=>new Hl(e))),this.pluginMap.clear();for(let e of this.plugins)e.update(this);this.docView=new Pc(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(Kl),i=e.state.facet(Kl);if(t!=i){let n=[];for(let r of i){let i=t.indexOf(r);if(i<0)n.push(new Hl(r));else{let t=this.plugins[i];t.mustUpdate=e,n.push(t)}}for(let t of this.plugins)t.mustUpdate!=e&&t.destroy(this);this.plugins=n,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,n=i.scrollTop*this.scaleY,{scrollAnchorPos:r,scrollAnchorHeight:o}=this.viewState;Math.abs(n-this.viewState.scrollTop)>1&&(o=-1),this.viewState.scrollAnchorHeight=-1;try{for(let e=0;;e++){if(o<0)if(za(i))r=-1,o=this.viewState.heightMap.height;else{let e=this.viewState.scrollAnchorAt(n);r=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 a=[];4&s||([this.measureRequests,a]=[a,this.measureRequests]);let l=a.map((e=>{try{return e.read(this)}catch(e){return Gl(this.state,e),ch}})),c=cc.create(this,this.state,[]),O=!1;c.flags|=s,t?t.flags|=s:t=c,this.updateState=2,c.empty||(this.updatePlugins(c),this.inputState.update(c),this.updateAttrs(),O=this.docView.update(c));for(let e=0;e1||e<-1){n+=e,i.scrollTop=n/this.scaleY,o=-1;continue}}}break}}}finally{this.updateState=0,this.measureScheduled=-1}if(t&&!t.empty)for(let e of this.state.facet(Ul))e(t)}get themeClasses(){return zO+" "+(this.state.facet(DO)?GO:BO)+" "+this.state.facet(MO)}updateAttrs(){let e=hh(this,Jl,{class:"cm-editor"+(this.hasFocus?" cm-focused ":" ")+this.themeClasses}),t={spellcheck:"false",autocorrect:"off",autocapitalize:"off",translate:"no",contenteditable:this.state.facet(Il)?"true":"false",class:"cm-content",style:`${Ol.tabSize}: ${this.state.tabSize}`,role:"textbox","aria-multiline":"true"};this.state.readOnly&&(t["aria-readonly"]="true"),hh(this,ec,t);let i=this.observer.ignore((()=>{let i=vl(this.contentDOM,this.contentAttrs,t),n=vl(this.dom,this.editorAttrs,e);return i||n}));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(ah.announce)&&(t&&(this.announceDOM.textContent=""),t=!1,this.announceDOM.appendChild(document.createElement("div")).textContent=e.value)}mountStyles(){this.styleModules=this.state.facet(ac);let e=this.state.facet(ah.cspNonce);$a.mount(this.root,this.styleModules.concat(KO).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 Dc(this,e,jc(this,e,t,i))}moveByGroup(e,t){return Dc(this,e,jc(this,e,t,(t=>function(e,t,i){let n=e.state.charCategorizer(t),r=n(i);return e=>{let t=n(e);return r==br.Space&&(r=t),r==t}}(this,e.head,t))))}moveToLineBoundary(e,t,i=!0){return function(e,t,i,n){let r=Wc(e,t.head),o=n&&r.type==xl.Text&&(e.lineWrapping||r.widgetLineBreaks)?e.coordsAtPos(t.assoc<0&&t.head>r.from?t.head-1:t.head):null;if(o){let t=e.dom.getBoundingClientRect(),n=e.textDirectionAt(r.from),s=e.posAtCoords({x:i==(n==Oc.LTR)?t.right-1:t.left+1,y:(o.top+o.bottom)/2});if(null!=s)return Rn.cursor(s,i?-1:1)}return Rn.cursor(i?r.to:r.from,i?-1:1)}(this,e,t,i)}moveVertically(e,t,i){return Dc(this,e,function(e,t,i,n){let r=t.head,o=i?1:-1;if(r==(i?e.state.doc.length:0))return Rn.cursor(r,t.assoc);let s,a=t.goalColumn,l=e.contentDOM.getBoundingClientRect(),c=e.coordsAtPos(r,t.assoc||-1),O=e.documentTop;if(c)null==a&&(a=c.left-l.left),s=o<0?c.top:c.bottom;else{let t=e.viewState.lineBlockAt(r);null==a&&(a=Math.min(l.right-l.left,e.defaultCharacterWidth*(r-t.from))),s=(o<0?t.top:t.bottom)+O}let h=l.left+a,u=null!=n?n:e.viewState.heightOracle.textHeight>>1;for(let t=0;;t+=10){let i=s+(u+t)*o,n=qc(e,{x:h,y:i},!1,o);if(il.bottom||(o<0?nr)){let t=e.docView.coordsForChar(n),r=!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(Ml)||ethis.viewport.to?this.textDirection:(this.readMeasured(),this.docView.textDirectionAt(e))}get lineWrapping(){return this.viewState.heightOracle.lineWrapping}bidiSpans(e){if(e.length>lh)return Sc(e.length);let t,i=this.textDirectionAt(e.from);for(let n of this.bidiCache)if(n.from==e.from&&n.dir==i&&(n.fresh||vc(n.isolates,t=rc(this,e.from,e.to))))return n.order;t||(t=rc(this,e.from,e.to));let n=function(e,t,i){if(!e)return[new Qc(0,0,t==uc?1:0)];if(t==hc&&!i.length&&!$c.test(e))return Sc(e.length);if(i.length)for(;e.length>yc.length;)yc[yc.length]=256;let n=[],r=t==hc?0:1;return _c(e,r,r,i,0,e.length,n),n}(e.text,i,t);return this.bidiCache.push(new Oh(e.from,e.to,i,t,!0,n)),n}get hasFocus(){var e;return(this.dom.ownerDocument.hasFocus()||Ol.safari&&(null===(e=this.inputState)||void 0===e?void 0:e.lastContextMenu)>Date.now()-3e4)&&this.root.activeElement==this.contentDOM}focus(){this.observer.ignore((()=>{Wa(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 Bl.of(new zl("number"==typeof e?Rn.cursor(e):e,t.y,t.x,t.yMargin,t.xMargin))}static domEventHandlers(e){return Fl.define((()=>({})),{eventHandlers:e})}static domEventObservers(e){return Fl.define((()=>({})),{eventObservers:e})}static theme(e,t){let i=$a.newName(),n=[MO.of(i),ac.of(LO(`.${i}`,e))];return t&&t.dark&&n.push(DO.of(!0)),n}static baseTheme(e){return Gn.lowest(ac.of(LO("."+zO,e,IO)))}static findFromDOM(e){var t;let i=e.querySelector(".cm-content"),n=i&&Ia.get(i)||Ia.get(e);return(null===(t=null==n?void 0:n.rootView)||void 0===t?void 0:t.view)||null}}ah.styleModule=ac,ah.inputHandler=Wl,ah.focusChangeEffect=jl,ah.perLineTextDirection=Ml,ah.exceptionSink=ql,ah.updateListener=Ul,ah.editable=Il,ah.mouseSelectionStyle=Nl,ah.dragMovesSelection=Cl,ah.clickAddsSelectionRange=El,ah.decorations=tc,ah.atomicRanges=ic,ah.bidiIsolatedRanges=nc,ah.scrollMargins=oc,ah.darkTheme=DO,ah.cspNonce=Vn.define({combine:e=>e.length?e[0]:""}),ah.contentAttributes=ec,ah.editorAttributes=Jl,ah.lineWrapping=ah.contentAttributes.of({class:"cm-lineWrapping"}),ah.announce=Or.define();const lh=4096,ch={};class Oh{constructor(e,t,i,n,r,o){this.from=e,this.to=t,this.dir=i,this.isolates=n,this.fresh=r,this.order=o}static update(e,t){if(t.empty&&!e.some((e=>e.fresh)))return e;let i=[],n=e.length?e[e.length-1].dir:Oc.LTR;for(let r=Math.max(0,e.length-10);r=0;r--){let t=n[r],o="function"==typeof t?t(e):t;o&&bl(o,i)}return i}const uh=Ol.mac?"mac":Ol.windows?"win":Ol.linux?"linux":"key";function dh(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 fh=Gn.default(ah.domEventHandlers({keydown:(e,t)=>$h(mh(t.state),e,t,"editor")})),ph=Vn.define({enables:fh}),gh=new WeakMap;function mh(e){let t=e.facet(ph),i=gh.get(t);return i||gh.set(t,i=function(e,t=uh){let i=Object.create(null),n=Object.create(null),r=(e,t)=>{let i=n[e];if(null==i)n[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,n,o,s,a)=>{var l,c;let O=i[e]||(i[e]=Object.create(null)),h=n.split(/ (?!$)/).map((e=>function(e,t){const i=e.split(/-(?!$)/);let n,r,o,s,a=i[i.length-1];"Space"==a&&(a=" ");for(let e=0;e{let n=bh={view:t,prefix:i,scope:e};return setTimeout((()=>{bh==n&&(bh=null)}),4e3),!0}]})}let u=h.join(" ");r(u,!1);let d=O[u]||(O[u]={preventDefault:!1,stopPropagation:!1,run:(null===(c=null===(l=O._any)||void 0===l?void 0:l.run)||void 0===c?void 0:c.slice())||[]});o&&d.run.push(o),s&&(d.preventDefault=!0),a&&(d.stopPropagation=!0)};for(let n of e){let e=n.scope?n.scope.split(" "):["editor"];if(n.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(n.any)}let r=n[t]||n.key;if(r)for(let t of e)o(t,r,n.run,n.preventDefault,n.stopPropagation),n.shift&&o(t,"Shift-"+r,n.shift,n.preventDefault,n.stopPropagation)}return i}(t.reduce(((e,t)=>e.concat(t)),[]))),i}let bh=null;function $h(e,t,i,n){let r=function(e){var t=!(_a&&e.metaKey&&e.shiftKey&&!e.ctrlKey&&!e.altKey||Sa&&e.shiftKey&&e.key&&1==e.key.length||"Unidentified"==e.key)&&e.key||(e.shiftKey?wa:ya)[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=bn(gn(r,0))==r.length&&" "!=r,s="",a=!1,l=!1,c=!1;bh&&bh.view==i&&bh.scope==n&&(s=bh.prefix+" ",Lc.indexOf(t.keyCode)<0&&(l=!0,bh=null));let O,h,u=new Set,d=e=>{if(e){for(let n of e.run)if(!u.has(n)&&(u.add(n),n(i,t)))return e.stopPropagation&&(c=!0),!0;e.preventDefault&&(e.stopPropagation&&(c=!0),l=!0)}return!1},f=e[n];return f&&(d(f[s+dh(r,t,!o)])?a=!0:o&&(t.altKey||t.metaKey||t.ctrlKey)&&!(Ol.windows&&t.ctrlKey&&t.altKey)&&(O=ya[t.keyCode])&&O!=r?(d(f[s+dh(O,t,!0)])||t.shiftKey&&(h=wa[t.keyCode])!=r&&h!=O&&d(f[s+dh(h,t,!1)]))&&(a=!0):o&&t.shiftKey&&d(f[s+dh(r,t,!0)])&&(a=!0),!a&&d(f._any)&&(a=!0)),l&&(a=!0),a&&c&&t.stopPropagation(),a}class Qh{constructor(e,t,i,n,r){this.className=e,this.left=t,this.top=i,this.width=n,this.height=r}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 n=e.coordsAtPos(i.head,i.assoc||1);if(!n)return[];let r=vh(e);return[new Qh(t,n.left-r.left,n.top-r.top,null,n.bottom-n.top)]}return function(e,t,i){if(i.to<=e.viewport.from||i.from>=e.viewport.to)return[];let n=Math.max(i.from,e.viewport.from),r=Math.min(i.to,e.viewport.to),o=e.textDirection==Oc.LTR,s=e.contentDOM,a=s.getBoundingClientRect(),l=vh(e),c=s.querySelector(".cm-line"),O=c&&window.getComputedStyle(c),h=a.left+(O?parseInt(O.paddingLeft)+Math.min(0,parseInt(O.textIndent)):0),u=a.right-(O?parseInt(O.paddingRight):0),d=Wc(e,n),f=Wc(e,r),p=d.type==xl.Text?d:null,g=f.type==xl.Text?f:null;if(p&&(e.lineWrapping||d.widgetLineBreaks)&&(p=yh(e,n,p)),g&&(e.lineWrapping||f.widgetLineBreaks)&&(g=yh(e,r,g)),p&&g&&p.from==g.from)return b($(i.from,i.to,p));{let t=p?$(i.from,null,p):Q(d,!1),n=g?$(null,i.to,g):Q(f,!0),r=[];return(p||d).to<(g||f).from-(p&&g?1:0)||d.widgetLineBreaks>1&&t.bottom+e.defaultLineHeight/2c&&n.from=o)break;a>r&&l(Math.max(e,r),null==t&&e<=c,Math.min(a,o),null==i&&a>=O,s.dir)}if(r=n.to+1,r>=o)break}return 0==a.length&&l(c,null==t,O,null==i,e.textDirection),{top:r,bottom:s,horizontal:a}}function Q(e,t){let i=a.top+(t?e.top:e.bottom);return{top:i,bottom:i,horizontal:[]}}}(e,t,i)}}function vh(e){let t=e.scrollDOM.getBoundingClientRect();return{left:(e.textDirection==Oc.LTR?t.left:t.right-e.scrollDOM.clientWidth*e.scaleX)-e.scrollDOM.scrollLeft*e.scaleX,top:t.top-e.scrollDOM.scrollTop*e.scaleY}}function yh(e,t,i){let n=Rn.cursor(t);return{from:Math.max(i.from,e.moveToLineBoundary(n,!1,!0).from),to:Math.min(i.to,e.moveToLineBoundary(n,!0,!0).from),type:xl.Text}}class wh{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(_h)!=e.state.facet(_h)&&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(_h);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 n of e)n.update&&t&&n.constructor&&this.drawn[i].constructor&&n.update(t,this.drawn[i])?(t=t.nextSibling,i++):this.dom.insertBefore(n.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 _h=Vn.define();function Sh(e){return[Fl.define((t=>new wh(t,e))),_h.of(e)]}const xh=!Ol.ios,Xh=Vn.define({combine:e=>wr(e,{cursorBlinkRate:1200,drawRangeCursor:!0},{cursorBlinkRate:(e,t)=>Math.min(e,t),drawRangeCursor:(e,t)=>e||t})});function Ph(e={}){return[Xh.of(e),Th,Yh,Vh,Dl.of(!0)]}function kh(e){return e.startState.facet(Xh)!=e.state.facet(Xh)}const Th=Sh({above:!0,markers(e){let{state:t}=e,i=t.facet(Xh),n=[];for(let r of t.selection.ranges){let o=r==t.selection.main;if(r.empty?!o||xh:i.drawRangeCursor){let t=o?"cm-cursor cm-cursor-primary":"cm-cursor cm-cursor-secondary",i=r.empty?r:Rn.cursor(r.head,r.head>r.anchor?-1:1);for(let r of Qh.forRange(e,t,i))n.push(r)}}return n},update(e,t){e.transactions.some((e=>e.selection))&&(t.style.animationName="cm-blink"==t.style.animationName?"cm-blink2":"cm-blink");let i=kh(e);return i&&Rh(e.state,t),e.docChanged||e.selectionSet||i},mount(e,t){Rh(t.state,e)},class:"cm-cursorLayer"});function Rh(e,t){t.style.animationDuration=e.facet(Xh).cursorBlinkRate+"ms"}const Yh=Sh({above:!1,markers:e=>e.state.selection.ranges.map((t=>t.empty?[]:Qh.forRange(e,"cm-selectionBackground",t))).reduce(((e,t)=>e.concat(t))),update:(e,t)=>e.docChanged||e.selectionSet||e.viewportChanged||kh(e),class:"cm-selectionLayer"}),Ah={".cm-line":{"& ::selection":{backgroundColor:"transparent !important"},"&::selection":{backgroundColor:"transparent !important"}}};xh&&(Ah[".cm-line"].caretColor="transparent !important");const Vh=Gn.highest(ah.theme(Ah));function Zh(e,t,i,n,r){t.lastIndex=0;for(let o,s=e.iterRange(i,n),a=i;!s.next().done;a+=s.value.length)if(!s.lineBreak)for(;o=t.exec(s.value);)r(a+o.index,o)}class Eh{constructor(e){const{regexp:t,decoration:i,decorate:n,boundary:r,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,n)this.addMatch=(e,t,i,r)=>n(r,i,i+e[0].length,e,t);else if("function"==typeof i)this.addMatch=(e,t,n,r)=>{let o=i(e,t,n);o&&r(n,n+e[0].length,o)};else{if(!i)throw new RangeError("Either 'decorate' or 'decoration' should be provided to MatchDecorator");this.addMatch=(e,t,n,r)=>r(n,n+e[0].length,i)}this.boundary=r,this.maxLength=o}createDeco(e){let t=new kr,i=t.add.bind(t);for(let{from:t,to:n}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 n=[];for(let{from:r,to:o}of i)r=Math.max(e.state.doc.lineAt(r).from,r-t),o=Math.min(e.state.doc.lineAt(o).to,o+t),n.length&&n[n.length-1].to>=r?n[n.length-1].to=o:n.push({from:r,to:o});return n}(e,this.maxLength))Zh(e.state.doc,this.regexp,t,n,((t,n)=>this.addMatch(n,e,t,i)));return t.finish()}updateDeco(e,t){let i=1e9,n=-1;return e.docChanged&&e.changes.iterChanges(((t,r,o,s)=>{s>e.view.viewport.from&&o1e3?this.createDeco(e.view):n>-1?this.updateRange(e.view,t.map(e.changes),i,n):t}updateRange(e,t,i,n){for(let r of e.visibleRanges){let o=Math.max(r.from,i),s=Math.min(r.to,n);if(s>o){let i=e.state.doc.lineAt(o),n=i.toi.from;o--)if(this.boundary.test(i.text[o-1-i.from])){a=o;break}for(;sO.push(i.range(e,t));if(i==n)for(this.regexp.lastIndex=a-i.from;(c=this.regexp.exec(i.text))&&c.indexthis.addMatch(i,e,t,h)));t=t.update({filterFrom:a,filterTo:l,filter:(e,t)=>el,add:O})}}return t}}const Ch=null!=/x/.unicode?"gu":"g",Nh=new RegExp("[\0-\b\n--Ÿ­؜​‎‏\u2028\u2029‭‮⁦⁧⁩\ufeff-]",Ch),qh={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 Uh=null;const Wh=Vn.define({combine(e){let t=wr(e,{render:null,specialChars:Nh,addSpecialChars:null});return(t.replaceTabs=!function(){var e;if(null==Uh&&"undefined"!=typeof document&&document.body){let t=document.body.style;Uh=null!=(null!==(e=t.tabSize)&&void 0!==e?e:t.MozTabSize)}return Uh||!1}())&&(t.specialChars=new RegExp("\t|"+t.specialChars.source,Ch)),t.addSpecialChars&&(t.specialChars=new RegExp(t.specialChars.source+"|"+t.addSpecialChars.source,Ch)),t}});function jh(e={}){return[Wh.of(e),Mh||(Mh=Fl.fromClass(class{constructor(e){this.view=e,this.decorations=Xl.none,this.decorationCache=Object.create(null),this.decorator=this.makeDecorator(e.state.facet(Wh)),this.decorations=this.decorator.createDeco(e)}makeDecorator(e){return new Eh({regexp:e.specialChars,decoration:(t,i,n)=>{let{doc:r}=i.state,o=gn(t[0],0);if(9==o){let e=r.lineAt(n),t=i.state.tabSize,o=Ur(e.text,t,n-e.from);return Xl.replace({widget:new zh((t-o%t)*this.view.defaultCharacterWidth/this.view.scaleX)})}return this.decorationCache[o]||(this.decorationCache[o]=Xl.replace({widget:new Dh(e,o)}))},boundary:e.replaceTabs?void 0:/[^]/})}update(e){let t=e.state.facet(Wh);e.startState.facet(Wh)!=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 Mh=null;class Dh extends Sl{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")+" "+(qh[this.code]||"0x"+this.code.toString(16)),n=this.options.render&&this.options.render(this.code,i,t);if(n)return n;let r=document.createElement("span");return r.textContent=t,r.title=i,r.setAttribute("aria-label",i),r.className="cm-specialChar",r}ignoreEvent(){return!1}}class zh extends Sl{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 Bh extends Sl{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?Ra(e.firstChild):[];if(!t.length)return null;let i=window.getComputedStyle(e.parentNode),n=Ea(t[0],"rtl"!=i.direction),r=parseInt(i.lineHeight);return n.bottom-n.top>1.5*r?{left:n.left,right:n.right,top:n.top,bottom:n.top+r}:n}ignoreEvent(){return!1}}function Gh(e){return Fl.fromClass(class{constructor(t){this.view=t,this.placeholder=e?Xl.set([Xl.widget({widget:new Bh(e),side:1}).range(0)]):Xl.none}get decorations(){return this.view.state.doc.length?Xl.none:this.placeholder}},{decorations:e=>e.decorations})}const Ih=2e3;function Lh(e,t){let i=e.posAtCoords({x:t.clientX,y:t.clientY},!1),n=e.state.doc.lineAt(i),r=i-n.from,o=r>Ih?-1:r==n.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):Ur(n.text,e.state.tabSize,i-n.from);return{line:n.number,col:o,off:r}}function Kh(e,t){let i=Lh(e,t),n=e.state.selection;return i?{update(e){if(e.docChanged){let t=e.changes.mapPos(e.startState.doc.line(i.line).from),r=e.state.doc.lineAt(t);i={line:r.number,col:i.col,off:Math.min(i.off,r.length)},n=n.map(e.changes)}},get(t,r,o){let s=Lh(e,t);if(!s)return n;let a=function(e,t,i){let n=Math.min(t.line,i.line),r=Math.max(t.line,i.line),o=[];if(t.off>Ih||i.off>Ih||t.col<0||i.col<0){let s=Math.min(t.off,i.off),a=Math.max(t.off,i.off);for(let t=n;t<=r;t++){let i=e.doc.line(t);i.length<=a&&o.push(Rn.range(i.from+s,i.to+a))}}else{let s=Math.min(t.col,i.col),a=Math.max(t.col,i.col);for(let t=n;t<=r;t++){let i=e.doc.line(t),n=Wr(i.text,s,e.tabSize,!0);if(n<0)o.push(Rn.cursor(i.to));else{let t=Wr(i.text,a,e.tabSize);o.push(Rn.range(i.from+n,i.from+t))}}}return o}(e.state,i,s);return a.length?o?Rn.create(a.concat(n.ranges)):Rn.create(a):n}}:null}function Fh(e){let t=(null==e?void 0:e.eventFilter)||(e=>e.altKey&&0==e.button);return ah.mouseSelectionStyle.of(((e,i)=>t(i)?Kh(e,i):null))}const Hh="-10000px";class Jh{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 n=e.state.facet(this.facet),r=n.filter((e=>e));if(n===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=n,this.tooltips=r,this.tooltipViews=o,!0}}function eu(e){let{win:t}=e;return{top:0,left:0,bottom:t.innerHeight,right:t.innerWidth}}const tu=Vn.define({combine:e=>{var t,i,n;return{position:Ol.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===(n=e.find((e=>e.tooltipSpace)))||void 0===n?void 0:n.tooltipSpace)||eu}}}),iu=new WeakMap,nu=Fl.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(tu);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 Jh(e,su,(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,n=e.state.facet(tu);if(n.position!=this.position&&!this.madeAbsolute){this.position=n.position;for(let e of this.manager.tooltipViews)e.dom.style.position=this.position;i=!0}if(n.parent!=this.parent){this.parent&&this.container.remove(),this.parent=n.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=Hh,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,n=!1;if("fixed"==this.position&&this.manager.tooltipViews.length){let{offsetParent:e}=this.manager.tooltipViews[0].dom;n=!(!e||e==this.container.ownerDocument.body)}if(n||"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(tu).tooltipSpace(this.view),scaleX:t,scaleY:i,makeAbsolute:n}}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:n,scaleX:r,scaleY:o}=e,s=[];for(let a=0;a=Math.min(i.bottom,n.bottom)||h.rightMath.min(i.right,n.right)+.1){O.style.top=Hh;continue}let d=l.arrow?c.dom.querySelector(".cm-tooltip-arrow"):null,f=d?7:0,p=u.right-u.left,g=null!==(t=iu.get(c))&&void 0!==t?t:u.bottom-u.top,m=c.offset||ou,b=this.view.textDirection==Oc.LTR,$=u.width>n.right-n.left?b?n.left:n.right-u.width:b?Math.min(h.left-(d?14:0)+m.x,n.right-p):Math.max(n.left,h.left-p+(d?14:0)-m.x),Q=this.above[a];!l.strictSide&&(Q?h.top-(u.bottom-u.top)-m.yn.bottom)&&Q==n.bottom-h.bottom>h.top-n.top&&(Q=this.above[a]=!Q);let v=(Q?h.top-n.top:n.bottom-h.bottom)-f;if(v$&&e.topy&&(y=Q?e.top-g-2-f:e.bottom+f+2);if("absolute"==this.position?(O.style.top=(y-e.parent.top)/o+"px",O.style.left=($-e.parent.left)/r+"px"):(O.style.top=y/o+"px",O.style.left=$/r+"px"),d){let e=h.left+(b?m.x:-m.x)-($+14-7);d.style.left=e/r+"px"}!0!==c.overlap&&s.push({left:$,top:y,right:w,bottom:y+g}),O.classList.toggle("cm-tooltip-above",Q),O.classList.toggle("cm-tooltip-below",!Q),c.positioned&&c.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=Hh}},{eventObservers:{scroll(){this.maybeMeasure()}}}),ru=ah.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"}}}),ou={x:0,y:0},su=Vn.define({enables:[nu,ru]}),au=Vn.define();class lu{static create(e){return new lu(e)}constructor(e){this.view=e,this.mounted=!1,this.dom=document.createElement("div"),this.dom.classList.add("cm-tooltip-hover"),this.manager=new Jh(e,au,(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 cu=su.compute([au],(e=>{let t=e.facet(au).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:lu.create,above:t[0].above,arrow:t.some((e=>e.arrow))}}));class Ou{constructor(e,t,i,n,r){this.view=e,this.source=t,this.field=i,this.setHover=n,this.hoverTime=r,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(n)).find((e=>e.from<=n&&e.to>=n)),s=o&&o.dir==Oc.RTL?-1:1;r=t.x{this.pending==t&&(this.pending=null,i&&e.dispatch({effects:this.setHover.of(i)}))}),(t=>Gl(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&&!hu(this.lastMove.target)||this.pending){let{pos:n}=i||this.pending,r=null!==(t=null==i?void 0:i.end)&&void 0!==t?t:n;(n==r?this.view.posAtCoords(this.lastMove)==n:function(e,t,i,n,r,o){let s=e.scrollDOM.getBoundingClientRect(),a=e.documentTop+e.documentPadding.top+e.contentHeight;if(s.left>n||s.rightr||Math.min(s.bottom,a)=t&&l<=i}(this.view,n,r,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&&!hu(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 hu(e){for(let t=e;t;t=t.parentNode)if(1==t.nodeType&&t.classList.contains("cm-tooltip"))return!0;return!1}function uu(e,t){let i=e.plugin(nu);if(!i)return null;let n=i.manager.tooltips.indexOf(t);return n<0?null:i.manager.tooltipViews[n]}const du=Or.define(),fu=Vn.define({combine(e){let t,i;for(let n of e)t=t||n.topContainer,i=i||n.bottomContainer;return{topContainer:t,bottomContainer:i}}});function pu(e,t){let i=e.plugin(gu),n=i?i.specs.indexOf(t):-1;return n>-1?i.panels[n]:null}const gu=Fl.fromClass(class{constructor(e){this.input=e.state.facet($u),this.specs=this.input.filter((e=>e)),this.panels=this.specs.map((t=>t(e)));let t=e.state.facet(fu);this.top=new mu(e,!0,t.topContainer),this.bottom=new mu(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(fu);this.top.container!=t.topContainer&&(this.top.sync([]),this.top=new mu(e.view,!0,t.topContainer)),this.bottom.container!=t.bottomContainer&&(this.bottom.sync([]),this.bottom=new mu(e.view,!1,t.bottomContainer)),this.top.syncClasses(),this.bottom.syncClasses();let i=e.state.facet($u);if(i!=this.input){let t=i.filter((e=>e)),n=[],r=[],o=[],s=[];for(let i of t){let t,a=this.specs.indexOf(i);a<0?(t=i(e.view),s.push(t)):(t=this.panels[a],t.update&&t.update(e)),n.push(t),(t.top?r:o).push(t)}this.specs=t,this.panels=n,this.top.sync(r),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=>ah.scrollMargins.of((t=>{let i=t.plugin(e);return i&&{top:i.top.scrollMargin(),bottom:i.bottom.scrollMargin()}}))});class mu{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=bu(e);e=e.nextSibling}else this.dom.insertBefore(t.dom,e);for(;e;)e=bu(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 bu(e){let t=e.nextSibling;return e.remove(),t}const $u=Vn.define({enables:gu});class Qu extends _r{compare(e){return this==e||this.constructor==e.constructor&&this.eq(e)}eq(e){return!1}destroy(e){}}Qu.prototype.elementClass="",Qu.prototype.toDOM=void 0,Qu.prototype.mapMode=vn.TrackBefore,Qu.prototype.startSide=Qu.prototype.endSide=-1,Qu.prototype.point=!0;const vu=Vn.define(),yu=Vn.define();const wu=Vn.define({combine:e=>e.some((e=>e))});function _u(e){let t=[Su];return e&&!1===e.fixed&&t.push(wu.of(!0)),t}const Su=Fl.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(yu).map((t=>new ku(e,t)));for(let e of this.gutters)this.dom.appendChild(e.dom);this.fixed=!e.state.facet(wu),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,n=Math.min(t.to,i.to)-Math.max(t.from,i.from);this.syncGutters(n<.8*(i.to-i.from))}e.geometryChanged&&(this.dom.style.minHeight=this.view.contentHeight+"px"),this.view.state.facet(wu)!=!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=Pr.iter(this.view.state.facet(vu),this.view.viewport.from),n=[],r=this.gutters.map((e=>new Pu(e,this.view.viewport,-this.view.documentPadding.top)));for(let e of this.view.viewportLineBlocks)if(n.length&&(n=[]),Array.isArray(e.type)){let t=!0;for(let o of e.type)if(o.type==xl.Text&&t){Xu(i,n,o.from);for(let e of r)e.line(this.view,o,n);t=!1}else if(o.widget)for(let e of r)e.widget(this.view,o)}else if(e.type==xl.Text){Xu(i,n,e.from);for(let t of r)t.line(this.view,e,n)}else if(e.widget)for(let t of r)t.widget(this.view,e);for(let e of r)e.finish();e&&this.view.scrollDOM.insertBefore(this.dom,t)}updateGutters(e){let t=e.startState.facet(yu),i=e.state.facet(yu),n=e.docChanged||e.heightChanged||e.viewportChanged||!Pr.eq(e.startState.facet(vu),e.state.facet(vu),e.view.viewport.from,e.view.viewport.to);if(t==i)for(let t of this.gutters)t.update(e)&&(n=!0);else{n=!0;let r=[];for(let n of i){let i=t.indexOf(n);i<0?r.push(new ku(this.view,n)):(this.gutters[i].update(e),r.push(this.gutters[i]))}for(let e of this.gutters)e.dom.remove(),r.indexOf(e)<0&&e.destroy();for(let e of r)this.dom.appendChild(e.dom);this.gutters=r}return n}destroy(){for(let e of this.gutters)e.destroy();this.dom.remove()}},{provide:e=>ah.scrollMargins.of((t=>{let i=t.plugin(e);return i&&0!=i.gutters.length&&i.fixed?t.textDirection==Oc.LTR?{left:i.dom.offsetWidth*t.scaleX}:{right:i.dom.offsetWidth*t.scaleX}:null}))});function xu(e){return Array.isArray(e)?e:[e]}function Xu(e,t,i){for(;e.value&&e.from<=i;)e.from==i&&t.push(e.value),e.next()}class Pu{constructor(e,t,i){this.gutter=e,this.height=i,this.i=0,this.cursor=Pr.iter(e.markers,t.from)}addElement(e,t,i){let{gutter:n}=this,r=(t.top-this.height)/e.scaleY,o=t.height/e.scaleY;if(this.i==n.elements.length){let t=new Tu(e,o,r,i);n.elements.push(t),n.dom.appendChild(t.dom)}else n.elements[this.i].update(e,o,r,i);this.height=t.bottom,this.i++}line(e,t,i){let n=[];Xu(this.cursor,n,t.from),i.length&&(n=n.concat(i));let r=this.gutter.config.lineMarker(e,t,n);r&&n.unshift(r);let o=this.gutter;(0!=n.length||o.config.renderEmptyElements)&&this.addElement(e,t,n)}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 ku{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,(n=>{let r,o=n.target;if(o!=this.dom&&this.dom.contains(o)){for(;o.parentNode!=this.dom;)o=o.parentNode;let e=o.getBoundingClientRect();r=(e.top+e.bottom)/2}else r=n.clientY;let s=e.lineBlockAtHeight(r-e.documentTop);t.domEventHandlers[i](e,s,n)&&n.preventDefault()}));this.markers=xu(t.markers(e)),t.initialSpacer&&(this.spacer=new Tu(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=xu(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!Pr.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 Tu{constructor(e,t,i,n){this.height=-1,this.above=0,this.markers=[],this.dom=document.createElement("div"),this.dom.className="cm-gutterElement",this.update(e,t,i,n)}update(e,t,i,n){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;iwr(e,{formatNumber:String,domEventHandlers:{}},{domEventHandlers(e,t){let i=Object.assign({},e);for(let e in t){let n=i[e],r=t[e];i[e]=n?(e,t,i)=>n(e,t,i)||r(e,t,i):r}return i}})});class Au extends Qu{constructor(e){super(),this.number=e}eq(e){return this.number==e.number}toDOM(){return document.createTextNode(this.number)}}function Vu(e,t){return e.state.facet(Yu).formatNumber(t,e.state)}const Zu=yu.compute([Yu],(e=>({class:"cm-lineNumbers",renderEmptyElements:!1,markers:e=>e.state.facet(Ru),lineMarker:(e,t,i)=>i.some((e=>e.toDOM))?null:new Au(Vu(e,e.state.doc.lineAt(t.from).number)),widgetMarker:()=>null,lineMarkerChange:e=>e.startState.facet(Yu)!=e.state.facet(Yu),initialSpacer:e=>new Au(Vu(e,Cu(e.state.doc.lines))),updateSpacer(e,t){let i=Vu(t.view,Cu(t.view.state.doc.lines));return i==e.number?e:new Au(i)},domEventHandlers:e.facet(Yu).domEventHandlers})));function Eu(e={}){return[Yu.of(e),_u(),Zu]}function Cu(e){let t=9;for(;tt.modified.indexOf(e)>-1?t:Wu.get(t.base||t,t.modified.concat(e).sort(((e,t)=>e.id-t.id)))}}let Uu=0;class Wu{constructor(){this.instances=[],this.id=Uu++}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 n=[],r=new qu(n,e,t);for(let e of t)e.instances.push(r);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)n.push(Wu.get(t,e));return r}}function ju(e){let t=Object.create(null);for(let i in e){let n=e[i];Array.isArray(n)||(n=[n]);for(let e of i.split(" "))if(e){let i=[],r=2,o=e;for(let t=0;;){if("..."==o&&t>0&&t+3==e.length){r=1;break}let n=/^"(?:[^"\\]|\\.)*?"|[^\/!]+/.exec(o);if(!n)throw new RangeError("Invalid path: "+e);if(i.push("*"==n[0]?"":'"'==n[0][0]?JSON.parse(n[0]):n[0]),t+=n[0].length,t==e.length)break;let s=e[t++];if(t==e.length&&"!"==s){r=0;break}if("/"!=s)throw new RangeError("Invalid path: "+e);o=e.slice(t)}let s=i.length-1,a=i[s];if(!a)throw new RangeError("Invalid path: "+e);let l=new Du(n,r,s>0?i.slice(0,s):null);t[a]=l.sort(t[a])}}return Mu.add(t)}const Mu=new zr;class Du{constructor(e,t,i,n){this.tags=e,this.mode=t,this.context=i,this.next=n}get opaque(){return 0==this.mode}get inherit(){return 1==this.mode}sort(e){return!e||e.depth{let t=r;for(let n of e)for(let e of n.set){let n=i[e.id];if(n){t=t?t+" "+n:n;break}}return t},scope:n}}function Bu(e,t,i,n=0,r=e.length){let o=new Gu(n,Array.isArray(t)?t:[t],i);o.highlightRange(e.cursor(),n,r,"",o.highlighters),o.flush(r)}Du.empty=new Du([],2,null);class Gu{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,n,r){let{type:o,from:s,to:a}=e;if(s>=i||a<=t)return;o.isTop&&(r=this.highlighters.filter((e=>!e.scope||e.scope(o))));let l=n,c=function(e){let t=e.type.prop(Mu);for(;t&&t.context&&!e.matchContext(t.context);)t=t.next;return t||null}(e)||Du.empty,O=function(e,t){let i=null;for(let n of e){let e=n.style(t);e&&(i=i?i+" "+e:e)}return i}(r,c.tags);if(O&&(l&&(l+=" "),l+=O,1==c.mode&&(n+=(n?" ":"")+O)),this.startSpan(Math.max(t,s),l),c.opaque)return;let h=e.tree&&e.tree.prop(zr.mounted);if(h&&h.overlay){let o=e.node.enter(h.overlay[0].from+s,1),c=this.highlighters.filter((e=>!e.scope||e.scope(h.tree.type))),O=e.firstChild();for(let u=0,d=s;;u++){let f=u=p)&&e.nextSibling()););if(!f||p>i)break;d=f.to+s,d>t&&(this.highlightRange(o.cursor(),Math.max(t,f.from+s),Math.min(i,d),"",c),this.startSpan(Math.min(i,d),l))}O&&e.parent()}else if(e.firstChild()){h&&(n="");do{if(!(e.to<=t)){if(e.from>=i)break;this.highlightRange(e,t,i,n,r),this.startSpan(Math.min(i,e.to),l)}}while(e.nextSibling());e.parent()}}}const Iu=qu.define,Lu=Iu(),Ku=Iu(),Fu=Iu(Ku),Hu=Iu(Ku),Ju=Iu(),ed=Iu(Ju),td=Iu(Ju),id=Iu(),nd=Iu(id),rd=Iu(),od=Iu(),sd=Iu(),ad=Iu(sd),ld=Iu(),cd={comment:Lu,lineComment:Iu(Lu),blockComment:Iu(Lu),docComment:Iu(Lu),name:Ku,variableName:Iu(Ku),typeName:Fu,tagName:Iu(Fu),propertyName:Hu,attributeName:Iu(Hu),className:Iu(Ku),labelName:Iu(Ku),namespace:Iu(Ku),macroName:Iu(Ku),literal:Ju,string:ed,docString:Iu(ed),character:Iu(ed),attributeValue:Iu(ed),number:td,integer:Iu(td),float:Iu(td),bool:Iu(Ju),regexp:Iu(Ju),escape:Iu(Ju),color:Iu(Ju),url:Iu(Ju),keyword:rd,self:Iu(rd),null:Iu(rd),atom:Iu(rd),unit:Iu(rd),modifier:Iu(rd),operatorKeyword:Iu(rd),controlKeyword:Iu(rd),definitionKeyword:Iu(rd),moduleKeyword:Iu(rd),operator:od,derefOperator:Iu(od),arithmeticOperator:Iu(od),logicOperator:Iu(od),bitwiseOperator:Iu(od),compareOperator:Iu(od),updateOperator:Iu(od),definitionOperator:Iu(od),typeOperator:Iu(od),controlOperator:Iu(od),punctuation:sd,separator:Iu(sd),bracket:ad,angleBracket:Iu(ad),squareBracket:Iu(ad),paren:Iu(ad),brace:Iu(ad),content:id,heading:nd,heading1:Iu(nd),heading2:Iu(nd),heading3:Iu(nd),heading4:Iu(nd),heading5:Iu(nd),heading6:Iu(nd),contentSeparator:Iu(id),list:Iu(id),quote:Iu(id),emphasis:Iu(id),strong:Iu(id),link:Iu(id),monospace:Iu(id),strikethrough:Iu(id),inserted:Iu(),deleted:Iu(),changed:Iu(),invalid:Iu(),meta:ld,documentMeta:Iu(ld),annotation:Iu(ld),processingInstruction:Iu(ld),definition:qu.defineModifier(),constant:qu.defineModifier(),function:qu.defineModifier(),standard:qu.defineModifier(),local:qu.defineModifier(),special:qu.defineModifier()};var Od;zu([{tag:cd.link,class:"tok-link"},{tag:cd.heading,class:"tok-heading"},{tag:cd.emphasis,class:"tok-emphasis"},{tag:cd.strong,class:"tok-strong"},{tag:cd.keyword,class:"tok-keyword"},{tag:cd.atom,class:"tok-atom"},{tag:cd.bool,class:"tok-bool"},{tag:cd.url,class:"tok-url"},{tag:cd.labelName,class:"tok-labelName"},{tag:cd.inserted,class:"tok-inserted"},{tag:cd.deleted,class:"tok-deleted"},{tag:cd.literal,class:"tok-literal"},{tag:cd.string,class:"tok-string"},{tag:cd.number,class:"tok-number"},{tag:[cd.regexp,cd.escape,cd.special(cd.string)],class:"tok-string2"},{tag:cd.variableName,class:"tok-variableName"},{tag:cd.local(cd.variableName),class:"tok-variableName tok-local"},{tag:cd.definition(cd.variableName),class:"tok-variableName tok-definition"},{tag:cd.special(cd.variableName),class:"tok-variableName2"},{tag:cd.definition(cd.propertyName),class:"tok-propertyName tok-definition"},{tag:cd.typeName,class:"tok-typeName"},{tag:cd.namespace,class:"tok-namespace"},{tag:cd.className,class:"tok-className"},{tag:cd.macroName,class:"tok-macroName"},{tag:cd.propertyName,class:"tok-propertyName"},{tag:cd.operator,class:"tok-operator"},{tag:cd.comment,class:"tok-comment"},{tag:cd.meta,class:"tok-meta"},{tag:cd.invalid,class:"tok-invalid"},{tag:cd.punctuation,class:"tok-punctuation"}]);const hd=new zr;function ud(e){return Vn.define({combine:e?t=>t.concat(e):void 0})}const dd=new zr;class fd{constructor(e,t,i=[],n=""){this.data=e,this.name=n,yr.prototype.hasOwnProperty("tree")||Object.defineProperty(yr.prototype,"tree",{get(){return md(this)}}),this.parser=t,this.extension=[xd.of(this),yr.languageData.of(((e,t,i)=>{let n=pd(e,t,i),r=n.type.prop(hd);if(!r)return[];let o=e.facet(r),s=n.type.prop(dd);if(s){let r=n.resolve(t-n.from,i);for(let t of s)if(t.test(r,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 pd(e,t,i).type.prop(hd)==this.data}findRegions(e){let t=e.facet(xd);if((null==t?void 0:t.data)==this.data)return[{from:0,to:e.doc.length}];if(!t||!t.allowsNesting)return[];let i=[],n=(e,t)=>{if(e.prop(hd)==this.data)return void i.push({from:t,to:t+e.length});let r=e.prop(zr.mounted);if(r){if(r.tree.prop(hd)==this.data){if(r.overlay)for(let e of r.overlay)i.push({from:e.from+t,to:e.to+t});else i.push({from:t,to:t+e.length});return}if(r.overlay){let e=i.length;if(n(r.tree,r.overlay[0].from+t),i.length>e)return}}for(let i=0;ie.isTop?t:void 0))]}),e.name)}configure(e,t){return new gd(this.data,this.parser.configure(e),t||this.name)}get allowsNesting(){return this.parser.hasWrappers()}}function md(e){let t=e.field(fd.state,!1);return t?t.tree:Jr.empty}class bd{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 $d=null;class Qd{constructor(e,t,i=[],n,r,o,s,a){this.parser=e,this.state=t,this.fragments=i,this.tree=n,this.treeLen=r,this.viewport=o,this.skipped=s,this.scheduleOn=a,this.parse=null,this.tempSkipped=[]}static create(e,t,i){return new Qd(e,t,[],Jr.empty,0,i,[],null)}startParse(){return this.parser.startParse(new bd(this.state.doc),this.fragments)}work(e,t){return null!=t&&t>=this.state.doc.length&&(t=void 0),this.tree!=Jr.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($o.addTree(this.tree,this.fragments,!0)),this.parse=null)}withContext(e){let t=$d;$d=this;try{return e()}finally{$d=t}}withoutTempSkipped(e){for(let t;t=this.tempSkipped.pop();)e=vd(e,t.from,t.to);return e}changes(e,t){let{fragments:i,tree:n,treeLen:r,viewport:o,skipped:s}=this;if(this.takeTree(),!e.empty){let t=[];if(e.iterChangedRanges(((e,i,n,r)=>t.push({fromA:e,toA:i,fromB:n,toB:r}))),i=$o.applyChanges(i,t),n=Jr.empty,r=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),n=e.mapPos(t.to,-1);ie.from&&(this.fragments=vd(this.fragments,i,n),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 Qo{createParse(t,i,n){let r=n[0].from,o=n[n.length-1].to;return{parsedPos:r,advance(){let t=$d;if(t){for(let e of n)t.tempSkipped.push(e);e&&(t.scheduleOn=t.scheduleOn?Promise.all([t.scheduleOn,e]):e)}return this.parsedPos=o,new Jr(Ir.none,[],[],o-r)},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 $d}}function vd(e,t,i){return $o.applyChanges(e,[{fromA:t,toA:i,fromB:t,toB:i}])}class yd{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 yd(t)}static init(e){let t=Math.min(3e3,e.doc.length),i=Qd.create(e.facet(xd).parser,e,{from:0,to:t});return i.work(20,t)||i.takeTree(),new yd(i)}}fd.state=Wn.define({create:yd.init,update(e,t){for(let e of t.effects)if(e.is(fd.setState))return e.value;return t.startState.facet(xd)!=t.state.facet(xd)?yd.init(t.state):e.apply(t)}});let wd=e=>{let t=setTimeout((()=>e()),500);return()=>clearTimeout(t)};"undefined"!=typeof requestIdleCallback&&(wd=e=>{let t=-1,i=setTimeout((()=>{t=requestIdleCallback(e,{timeout:400})}),100);return()=>t<0?clearTimeout(i):cancelIdleCallback(t)});const _d="undefined"!=typeof navigator&&(null===(Od=navigator.scheduling)||void 0===Od?void 0:Od.isInputPending)?()=>navigator.scheduling.isInputPending():null,Sd=Fl.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(fd.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(fd.state);t.tree==t.context.tree&&t.context.isDone(e.doc.length)||(this.working=wd(this.work))}work(e){this.working=null;let t=Date.now();if(this.chunkEndn+1e3,a=r.context.work((()=>_d&&_d()||Date.now()>o),n+(s?0:1e5));this.chunkBudget-=Date.now()-t,(a||this.chunkBudget<=0)&&(r.context.takeTree(),this.view.dispatch({effects:fd.setState.of(new yd(r.context))})),this.chunkBudget>0&&(!a||s)&&this.scheduleWork(),this.checkAsyncSchedule(r.context)}checkAsyncSchedule(e){e.scheduleOn&&(this.workScheduled++,e.scheduleOn.then((()=>this.scheduleWork())).catch((e=>Gl(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()}}}),xd=Vn.define({combine:e=>e.length?e[0]:null,enables:e=>[fd.state,Sd,ah.contentAttributes.compute([e],(t=>{let i=t.facet(e);return i&&i.name?{"data-language":i.name}:{}}))]});class Xd{constructor(e,t=[]){this.language=e,this.support=t,this.extension=[e,t]}}class Pd{constructor(e,t,i,n,r,o){this.name=e,this.alias=t,this.extensions=i,this.filename=n,this.loadFunc=r,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 Pd(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 n=t.indexOf(e);if(n>-1&&(e.length>2||!/\w/.test(t[n-1])&&!/\w/.test(t[n+e.length])))return i}return null}}const kd=Vn.define(),Td=Vn.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 Rd(e){let t=e.facet(Td);return 9==t.charCodeAt(0)?e.tabSize*t.length:t.length}function Yd(e,t){let i="",n=e.tabSize,r=e.facet(Td)[0];if("\t"==r){for(;t>=n;)i+="\t",t-=n;r=" "}for(let e=0;e=t?function(e,t,i){let n=t.resolveStack(i),r=n.node.enterUnfinishedNodesBefore(i);if(r!=n.node){let e=[];for(let t=r;t!=n.node;t=t.parent)e.push(t);for(let t=e.length-1;t>=0;t--)n={node:e[t],next:n}}return Ed(n,e,i)}(e,i,t):null}class Vd{constructor(e,t={}){this.state=e,this.options=t,this.unit=Rd(e)}lineAt(e,t=1){let i=this.state.doc.lineAt(e),{simulateBreak:n,simulateDoubleBreak:r}=this.options;return null!=n&&n>=i.from&&n<=i.to?r&&n==e?{text:"",from:e}:(t<0?n-1&&(r+=o-this.countColumn(i,i.search(/\S|$/))),r}countColumn(e,t=e.length){return Ur(e,this.state.tabSize,t)}lineIndent(e,t=1){let{text:i,from:n}=this.lineAt(e,t),r=this.options.overrideIndentation;if(r){let e=r(n);if(e>-1)return e}return this.countColumn(i,i.search(/\S|$/))}get simulatedBreak(){return this.options.simulateBreak||null}}const Zd=new zr;function Ed(e,t,i){for(let n=e;n;n=n.next){let e=Cd(n.node);if(e)return e(qd.create(t,i,n))}return 0}function Cd(e){let t=e.type.prop(Zd);if(t)return t;let i,n=e.firstChild;if(n&&(i=n.type.prop(zr.closedBy))){let t=e.lastChild,n=t&&i.indexOf(t.name)>-1;return e=>jd(e,!0,1,void 0,n&&!function(e){return e.pos==e.options.simulateBreak&&e.options.simulateDoubleBreak}(e)?t.from:void 0)}return null==e.parent?Nd:null}function Nd(){return 0}class qd extends Vd{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 qd(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(Ud(i,e))break;t=this.state.doc.lineAt(i.from)}return this.lineIndent(t.from)}continue(){return Ed(this.context.next,this.base,this.pos)}}function Ud(e,t){for(let i=t;i;i=i.parent)if(e==i)return!0;return!1}function Wd({closing:e,align:t=!0,units:i=1}){return n=>jd(n,t,i,e)}function jd(e,t,i,n,r){let o=e.textAfter,s=o.match(/^\s*/)[0].length,a=n&&o.slice(s,s+n.length)==n||r==e.pos+s,l=t?function(e){let t=e.node,i=t.childAfter(t.from),n=t.lastChild;if(!i)return null;let r=e.options.simulateBreak,o=e.state.doc.lineAt(i.from),s=null==r||r<=o.from?o.to:Math.min(o.to,r);for(let e=i.to;;){let r=t.childAfter(e);if(!r||r==n)return null;if(!r.type.isSkipped)return r.from{let n=e&&e.test(i.textAfter);return i.baseIndent+(n?0:t*i.unit)}}const Dd=Vn.define(),zd=new zr;function Bd(e){let t=e.firstChild,i=e.lastChild;return t&&t.toi)continue;if(r&&s.from=t&&n.to>i&&(r=n)}}return r}(e,t,i)}function Ld(e,t){let i=t.mapPos(e.from,1),n=t.mapPos(e.to,-1);return i>=n?void 0:{from:i,to:n}}const Kd=Or.define({map:Ld}),Fd=Or.define({map:Ld});function Hd(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 Jd=Wn.define({create:()=>Xl.none,update(e,t){e=e.map(t.changes);for(let i of t.effects)if(i.is(Kd)&&!tf(e,i.value.from,i.value.to)){let{preparePlaceholder:n}=t.state.facet(af),r=n?Xl.replace({widget:new hf(n(t.state,i.value))}):Of;e=e.update({add:[r.range(i.value.from,i.value.to)]})}else i.is(Fd)&&(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:n}=t.selection.main;e.between(n,n,((e,t)=>{en&&(i=!0)})),i&&(e=e.update({filterFrom:n,filterTo:n,filter:(e,t)=>t<=n||e>=n}))}return e},provide:e=>ah.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{(!r||r.from>e)&&(r={from:e,to:t})})),r}function tf(e,t,i){let n=!1;return e.between(t,t,((e,r)=>{e==t&&r==i&&(n=!0)})),n}function nf(e,t){return e.field(Jd,!1)?t:t.concat(Or.appendConfig.of(lf()))}function rf(e,t,i=!0){let n=e.state.doc.lineAt(t.from).number,r=e.state.doc.lineAt(t.to).number;return ah.announce.of(`${e.state.phrase(i?"Folded lines":"Unfolded lines")} ${n} ${e.state.phrase("to")} ${r}.`)}const of=[{key:"Ctrl-Shift-[",mac:"Cmd-Alt-[",run:e=>{for(let t of Hd(e)){let i=Id(e.state,t.from,t.to);if(i)return e.dispatch({effects:nf(e.state,[Kd.of(i),rf(e,i)])}),!0}return!1}},{key:"Ctrl-Shift-]",mac:"Cmd-Alt-]",run:e=>{if(!e.state.field(Jd,!1))return!1;let t=[];for(let i of Hd(e)){let n=ef(e.state,i.from,i.to);n&&t.push(Fd.of(n),rf(e,n,!1))}return t.length&&e.dispatch({effects:t}),t.length>0}},{key:"Ctrl-Alt-[",run:e=>{let{state:t}=e,i=[];for(let n=0;n{let t=e.state.field(Jd,!1);if(!t||!t.size)return!1;let i=[];return t.between(0,e.state.doc.length,((e,t)=>{i.push(Fd.of({from:e,to:t}))})),e.dispatch({effects:i}),!0}}],sf={placeholderDOM:null,preparePlaceholder:null,placeholderText:"…"},af=Vn.define({combine:e=>wr(e,sf)});function lf(e){let t=[Jd,uf];return e&&t.push(af.of(e)),t}function cf(e,t){let{state:i}=e,n=i.facet(af),r=t=>{let i=e.lineBlockAt(e.posAtDOM(t.target)),n=ef(e.state,i.from,i.to);n&&e.dispatch({effects:Fd.of(n)}),t.preventDefault()};if(n.placeholderDOM)return n.placeholderDOM(e,r,t);let o=document.createElement("span");return o.textContent=n.placeholderText,o.setAttribute("aria-label",i.phrase("folded code")),o.title=i.phrase("unfold"),o.className="cm-foldPlaceholder",o.onclick=r,o}const Of=Xl.replace({widget:new class extends Sl{toDOM(e){return cf(e,null)}}});class hf extends Sl{constructor(e){super(),this.value=e}eq(e){return this.value==e.value}toDOM(e){return cf(e,this.value)}}const uf=ah.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 df{constructor(e,t){let i;function n(e){let t=$a.newName();return(i||(i=Object.create(null)))["."+t]=e,t}this.specs=e;const r="string"==typeof t.all?t.all:t.all?n(t.all):void 0,o=t.scope;this.scope=o instanceof fd?e=>e.prop(hd)==o.data:o?e=>e==o:void 0,this.style=zu(e.map((e=>({tag:e.tag,class:e.class||n(Object.assign({},e,{tag:null}))}))),{all:r}).style,this.module=i?new $a(i):null,this.themeType=t.themeType}static define(e,t){return new df(e,t||{})}}const ff=Vn.define(),pf=Vn.define({combine:e=>e.length?[e[0]]:null});function gf(e){let t=e.facet(ff);return t.length?t:e.facet(pf)}function mf(e,t){let i,n=[bf];return e instanceof df&&(e.module&&n.push(ah.styleModule.of(e.module)),i=e.themeType),(null==t?void 0:t.fallback)?n.push(pf.of(e)):i?n.push(ff.computeN([ah.darkTheme],(t=>t.facet(ah.darkTheme)==("dark"==i)?[e]:[]))):n.push(ff.of(e)),n}const bf=Gn.high(Fl.fromClass(class{constructor(e){this.markCache=Object.create(null),this.tree=md(e.state),this.decorations=this.buildDeco(e,gf(e.state))}update(e){let t=md(e.state),i=gf(e.state),n=i!=gf(e.startState);t.length{i.add(e,t,this.markCache[n]||(this.markCache[n]=Xl.mark({class:n})))}),n,r);return i.finish()}},{decorations:e=>e.decorations})),$f=(df.define([{tag:cd.meta,color:"#404740"},{tag:cd.link,textDecoration:"underline"},{tag:cd.heading,textDecoration:"underline",fontWeight:"bold"},{tag:cd.emphasis,fontStyle:"italic"},{tag:cd.strong,fontWeight:"bold"},{tag:cd.strikethrough,textDecoration:"line-through"},{tag:cd.keyword,color:"#708"},{tag:[cd.atom,cd.bool,cd.url,cd.contentSeparator,cd.labelName],color:"#219"},{tag:[cd.literal,cd.inserted],color:"#164"},{tag:[cd.string,cd.deleted],color:"#a11"},{tag:[cd.regexp,cd.escape,cd.special(cd.string)],color:"#e40"},{tag:cd.definition(cd.variableName),color:"#00f"},{tag:cd.local(cd.variableName),color:"#30a"},{tag:[cd.typeName,cd.namespace],color:"#085"},{tag:cd.className,color:"#167"},{tag:[cd.special(cd.variableName),cd.macroName],color:"#256"},{tag:cd.definition(cd.propertyName),color:"#00c"},{tag:cd.comment,color:"#940"},{tag:cd.invalid,color:"#f00"}]),ah.baseTheme({"&.cm-focused .cm-matchingBracket":{backgroundColor:"#328c8252"},"&.cm-focused .cm-nonmatchingBracket":{backgroundColor:"#bb555544"}}),"()[]{}"),Qf=Vn.define({combine:e=>wr(e,{afterCursor:!0,brackets:$f,maxScanDistance:1e4,renderMatch:wf})}),vf=Xl.mark({class:"cm-matchingBracket"}),yf=Xl.mark({class:"cm-nonmatchingBracket"});function wf(e){let t=[],i=e.matched?vf:yf;return t.push(i.range(e.start.from,e.start.to)),e.end&&t.push(i.range(e.end.from,e.end.to)),t}Wn.define({create:()=>Xl.none,update(e,t){if(!t.docChanged&&!t.selection)return e;let i=[],n=t.state.facet(Qf);for(let e of t.state.selection.ranges){if(!e.empty)continue;let r=Xf(t.state,e.head,-1,n)||e.head>0&&Xf(t.state,e.head-1,1,n)||n.afterCursor&&(Xf(t.state,e.head,1,n)||e.headah.decorations.from(e)});const _f=new zr;function Sf(e,t,i){let n=e.prop(t<0?zr.openedBy:zr.closedBy);if(n)return n;if(1==e.name.length){let n=i.indexOf(e.name);if(n>-1&&n%2==(t<0?1:0))return[i[n+t]]}return null}function xf(e){let t=e.type.prop(_f);return t?t(e.node):e}function Xf(e,t,i,n={}){let r=n.maxScanDistance||1e4,o=n.brackets||$f,s=md(e),a=s.resolveInner(t,i);for(let n=a;n;n=n.parent){let r=Sf(n.type,i,o);if(r&&n.from0?t>=s.from&&ts.from&&t<=s.to))return Pf(e,t,i,n,s,r,o)}}return function(e,t,i,n,r,o,s){let a=i<0?e.sliceDoc(t-1,t):e.sliceDoc(t,t+1),l=s.indexOf(a);if(l<0||l%2==0!=i>0)return null;let c={from:i<0?t-1:t,to:i>0?t+1:t},O=e.doc.iterRange(t,i>0?e.doc.length:0),h=0;for(let e=0;!O.next().done&&e<=o;){let o=O.value;i<0&&(e+=o.length);let a=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||n.resolveInner(a+e,1).type!=r))if(t%2==0==i>0)h++;else{if(1==h)return{start:c,end:{from:a+e,to:a+e+1},matched:t>>1==l>>1};h--}}i>0&&(e+=o.length)}return O.done?{start:c,matched:!1}:null}(e,t,i,s,a.type,r,o)}function Pf(e,t,i,n,r,o,s){let a=n.parent,l={from:r.from,to:r.to},c=0,O=null==a?void 0:a.cursor();if(O&&(i<0?O.childBefore(n.from):O.childAfter(n.to)))do{if(i<0?O.to<=n.from:O.from>=n.to){if(0==c&&o.indexOf(O.type.name)>-1&&O.from-1||(Rf.push(e),console.warn(t))}function Vf(e,t){let i=null;for(let n of t.split(".")){let t=e[n]||cd[n];t?"function"==typeof t?i?i=t(i):Af(n,`Modifier ${n} used at start of tag`):i?Af(n,`Tag ${n} used as modifier`):i=t:Af(n,`Unknown highlighting tag ${n}`)}if(!i)return 0;let n=t.replace(/ /g,"_"),r=Ir.define({id:Tf.length,name:n,props:[ju({[n]:i})]});return Tf.push(r),r.id}class Zf{constructor(e,t,i){this.state=e,this.pos=t,this.explicit=i,this.abortListeners=[]}tokenBefore(e){let t=md(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),n=t.text.slice(i-t.from,this.pos-t.from),r=n.search(Wf(e,!1));return r<0?null:{from:i+r,to:this.pos,text:n.slice(r)}}get aborted(){return null==this.abortListeners}addEventListener(e,t){"abort"==e&&this.abortListeners&&this.abortListeners.push(t)}}function Ef(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 Cf(e){let t=e.map((e=>"string"==typeof e?{label:e}:e)),[i,n]=t.every((e=>/^\w+$/.test(e.label)))?[/\w*$/,/\w+$/]:function(e){let t=Object.create(null),i=Object.create(null);for(let{label:n}of e){t[n[0]]=!0;for(let e=1;e{let r=e.matchBefore(n);return r||e.explicit?{from:r?r.from:e.pos,options:t,validFor:i}:null}}function Nf(e,t){return i=>{for(let t=md(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 qf{constructor(e,t,i,n){this.completion=e,this.source=t,this.match=i,this.score=n}}function Uf(e){return e.selection.main.from}function Wf(e,t){var i;let{source:n}=e,r=t&&"^"!=n[0],o="$"!=n[n.length-1];return r||o?new RegExp(`${r?"^":""}(?:${n})${o?"$":""}`,null!==(i=e.flags)&&void 0!==i?i:e.ignoreCase?"i":""):e}const jf=ar.define();function Mf(e,t,i,n){let{main:r}=e.selection,o=i-r.from,s=n-r.from;return Object.assign(Object.assign({},e.changeByRange((a=>a!=r&&i!=n&&e.sliceDoc(a.from+o,a.from+s)!=e.sliceDoc(i,n)?{range:a}:{changes:{from:a.from+o,to:n==r.from?a.to:a.from+s,insert:t},range:Rn.cursor(a.from+o+t.length)}))),{scrollIntoView:!0,userEvent:"input.complete"})}const Df=new WeakMap;function zf(e){if(!Array.isArray(e))return e;let t=Df.get(e);return t||Df.set(e,t=Cf(e)),t}const Bf=Or.define(),Gf=Or.define();class If{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&&l<=57||l>=97&&l<=122?2:l>=65&&l<=90?1:0:(b=mn(l))!=b.toLowerCase()?1:b!=b.toUpperCase()?2:0;(!n||1==$&&p||0==m&&0!=$)&&(t[O]==l||i[O]==l&&(h=!0)?o[O++]=n:o.length&&(g=!1)),m=$,n+=bn(l)}return O==a&&0==o[0]&&g?this.result((h?-200:0)-100,o,e):u==a&&0==d?this.ret(-200-e.length+(f==e.length?0:-100),[0,f]):s>-1?this.ret(-700-e.length,[s,s+this.pattern.length]):u==a?this.ret(-900-e.length,[d,f]):O==a?this.result((h?-200:0)-100-700+(g?0:-1100),o,e):2!=t.length&&this.result((n[0]?-700:0)-200-1100,n,e)}result(e,t,i){let n=[],r=0;for(let e of t){let t=e+(this.astral?bn(gn(i,e)):1);r&&n[r-1]==e?n[r-1]=t:(n[r++]=e,n[r++]=t)}return this.ret(e-i.length,n)}}const Lf=Vn.define({combine:e=>wr(e,{activateOnTyping:!0,selectOnOpen:!0,override:null,closeOnBlur:!0,maxRenderedOptions:100,defaultKeymap:!0,tooltipClass:()=>"",optionClass:()=>"",aboveCursor:!1,icons:!0,addToOptions:[],positionInfo:Ff,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=>Kf(e(i),t(i)),optionClass:(e,t)=>i=>Kf(e(i),t(i)),addToOptions:(e,t)=>e.concat(t)})});function Kf(e,t){return e?t?e+" "+t:e:t}function Ff(e,t,i,n,r,o){let s,a,l=e.textDirection==Oc.RTL,c=l,O=!1,h="top",u=t.left-r.left,d=r.right-t.right,f=n.right-n.left,p=n.bottom-n.top;if(c&&u=p||e>t.top?s=i.bottom-t.top:(h="bottom",s=t.bottom-i.top)}return{style:`${h}: ${s/((t.bottom-t.top)/o.offsetHeight)}px; max-width: ${a/((t.right-t.left)/o.offsetWidth)}px`,class:"cm-completionInfo-"+(O?l?"left-narrow":"right-narrow":c?"left":"right")}}function Hf(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 n=Math.floor((e-t)/i);return{from:e-(n+1)*i,to:e-n*i}}class Jf{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 n=e.state.field(t),{options:r,selected:o}=n.open,s=e.state.facet(Lf);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 n=document.createElement("span");n.className="cm-completionLabel";let r=e.displayLabel||e.label,o=0;for(let e=0;eo&&n.appendChild(document.createTextNode(r.slice(o,t)));let a=n.appendChild(document.createElement("span"));a.appendChild(document.createTextNode(r.slice(t,s))),a.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=Hf(r.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:n}=e.state.field(t).open;for(let t,r=i.target;r&&r!=this.dom;r=r.parentNode)if("LI"==r.nodeName&&(t=/-(\d+)$/.exec(r.id))&&+t[1]{let i=e.state.field(this.stateField,!1);i&&i.tooltip&&e.state.facet(Lf).closeOnBlur&&t.relatedTarget!=e.contentDOM&&e.dispatch({effects:Gf.of(null)})})),this.showOptions(r,n.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),n=e.startState.field(this.stateField);if(this.updateTooltipClass(e.state),i!=n){let{options:r,selected:o,disabled:s}=i.open;n.open&&n.open.options==r||(this.range=Hf(r.length,o,e.state.facet(Lf).maxRenderedOptions),this.showOptions(r,i.id)),this.updateSel(),s!=(null===(t=n.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=Hf(t.options.length,t.selected,this.view.state.facet(Lf).maxRenderedOptions),this.showOptions(t.options,e.id)),this.updateSelectedOption(t.selected)){this.destroyInfo();let{completion:i}=t.options[t.selected],{info:n}=i;if(!n)return;let r="string"==typeof n?document.createTextNode(n):n(i);if(!r)return;"then"in r?r.then((t=>{t&&this.view.state.field(this.stateField,!1)==e&&this.addInfoPane(t,i)})).catch((e=>Gl(this.view.state,e,"completion info"))):this.addInfoPane(r,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:n}=e;i.appendChild(t),this.infoDestroy=n||null}this.dom.appendChild(i),this.view.requestMeasure(this.placeInfoReq)}updateSelectedOption(e){let t=null;for(let i=this.list.firstChild,n=this.range.from;i;i=i.nextSibling,n++)"LI"==i.nodeName&&i.id?n==e?i.hasAttribute("aria-selected")||(i.setAttribute("aria-selected","true"),t=i):i.hasAttribute("aria-selected")&&i.removeAttribute("aria-selected"):n--;return t&&function(e,t){let i=e.getBoundingClientRect(),n=t.getBoundingClientRect(),r=i.height/e.offsetHeight;n.topi.bottom&&(e.scrollTop+=(n.bottom-i.bottom)/r)}(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(),n=e.getBoundingClientRect(),r=this.space;if(!r){let e=this.dom.ownerDocument.defaultView||window;r={left:0,top:0,right:e.innerWidth,bottom:e.innerHeight}}return n.top>Math.min(r.bottom,t.bottom)-10||n.bottomi.from||0==i.from)&&(r=e,"string"!=typeof l&&l.header?n.appendChild(l.header(l)):n.appendChild(document.createElement("completion-section")).textContent=e)}const c=n.appendChild(document.createElement("li"));c.id=t+"-"+o,c.setAttribute("role","option");let O=this.optionClass(s);O&&(c.className=O);for(let e of this.optionContent){let t=e(s,this.view.state,a);t&&c.appendChild(t)}}return i.from&&n.classList.add("cm-completionListIncompleteTop"),i.to=this.options.length?this:new tp(this.options,rp(t,e),this.tooltip,this.timestamp,e,this.disabled)}static build(e,t,i,n,r){let o=function(e,t){let i=[],n=null,r=e=>{i.push(e);let{section:t}=e.completion;if(t){n||(n=[]);let e="string"==typeof t?t:t.name;n.some((t=>t.name==e))||n.push("string"==typeof t?{name:e}:t)}};for(let n of e)if(n.hasResult()){let e=n.result.getMatch;if(!1===n.result.filter)for(let t of n.result.options)r(new qf(t,n.source,e?e(t):[],1e9-i.length));else{let i=new If(t.sliceDoc(n.from,n.to));for(let t of n.result.options)if(i.match(t.label)){let o=t.displayLabel?e?e(t,i.matched):[]:i.matched;r(new qf(t,n.source,o,i.score+(t.boost||0)))}}}if(n){let e=Object.create(null),t=0,r=(e,t)=>{var i,n;return(null!==(i=e.rank)&&void 0!==i?i:1e9)-(null!==(n=t.rank)&&void 0!==n?n:1e9)||(e.namet.score-e.score||a(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):ep(e.completion)>ep(s)&&(o[o.length-1]=e),s=e.completion}return o}(e,t);if(!o.length)return n&&e.some((e=>1==e.state))?new tp(n.options,n.attrs,n.tooltip,n.timestamp,n.selected,!0):null;let s=t.facet(Lf).selectOnOpen?0:-1;if(n&&n.selected!=s&&-1!=n.selected){let e=n.options[n.selected].completion;for(let t=0;tt.hasResult()?Math.min(e,t.from):e),1e8),create:dp,above:r.aboveCursor},n?n.timestamp:Date.now(),s,!1)}map(e){return new tp(this.options,this.attrs,Object.assign(Object.assign({},this.tooltip),{pos:e.mapPos(this.tooltip.pos)}),this.timestamp,this.selected,this.disabled)}}class ip{constructor(e,t,i){this.active=e,this.id=t,this.open=i}static start(){return new ip(op,"cm-ac-"+Math.floor(2e6*Math.random()).toString(36),null)}update(e){let{state:t}=e,i=t.facet(Lf),n=(i.override||t.languageDataAt("autocomplete",Uf(t)).map(zf)).map((t=>(this.active.find((e=>e.source==t))||new ap(t,this.active.some((e=>0!=e.state))?1:0)).update(e,i)));n.length==this.active.length&&n.every(((e,t)=>e==this.active[t]))&&(n=this.active);let r=this.open;r&&e.docChanged&&(r=r.map(e.changes)),e.selection||n.some((t=>t.hasResult()&&e.changes.touchesRange(t.from,t.to)))||!function(e,t){if(e==t)return!0;for(let i=0,n=0;;){for(;i1==e.state))&&(r=null),!r&&n.every((e=>1!=e.state))&&n.some((e=>e.hasResult()))&&(n=n.map((e=>e.hasResult()?new ap(e.source,0):e)));for(let t of e.effects)t.is(Op)&&(r=r&&r.setSelected(t.value,this.id));return n==this.active&&r==this.open?this:new ip(n,this.id,r)}get tooltip(){return this.open?this.open.tooltip:null}get attrs(){return this.open?this.open.attrs:np}}const np={"aria-autocomplete":"list"};function rp(e,t){let i={"aria-autocomplete":"list","aria-haspopup":"listbox","aria-controls":e};return t>-1&&(i["aria-activedescendant"]=e+"-"+t),i}const op=[];function sp(e){return e.isUserEvent("input.type")?"input":e.isUserEvent("delete.backward")?"delete":null}class ap{constructor(e,t,i=-1){this.source=e,this.state=t,this.explicitPos=i}hasResult(){return!1}update(e,t){let i=sp(e),n=this;i?n=n.handleUserEvent(e,i,t):e.docChanged?n=n.handleChange(e):e.selection&&0!=n.state&&(n=new ap(n.source,0));for(let t of e.effects)if(t.is(Bf))n=new ap(n.source,1,t.value?Uf(e.state):-1);else if(t.is(Gf))n=new ap(n.source,0);else if(t.is(cp))for(let e of t.value)e.source==n.source&&(n=e);return n}handleUserEvent(e,t,i){return"delete"!=t&&i.activateOnTyping?new ap(this.source,1):this.map(e.changes)}handleChange(e){return e.changes.touchesRange(Uf(e.startState))?new ap(this.source,0):this.map(e.changes)}map(e){return e.empty||this.explicitPos<0?this:new ap(this.source,this.state,e.mapPos(this.explicitPos))}}class lp extends ap{constructor(e,t,i,n,r){super(e,2,t),this.result=i,this.from=n,this.to=r}hasResult(){return!0}handleUserEvent(e,t,i){var n;let r=e.changes.mapPos(this.from),o=e.changes.mapPos(this.to,1),s=Uf(e.state);if((this.explicitPos<0?s<=r:so||"delete"==t&&Uf(e.startState)==this.from)return new ap(this.source,"input"==t&&i.activateOnTyping?1:0);let a,l=this.explicitPos<0?-1:e.changes.mapPos(this.explicitPos);return function(e,t,i,n){if(!e)return!1;let r=t.sliceDoc(i,n);return"function"==typeof e?e(r,i,n,t):Wf(e,!0).test(r)}(this.result.validFor,e.state,r,o)?new lp(this.source,l,this.result,r,o):this.result.update&&(a=this.result.update(this.result,r,o,new Zf(e.state,s,l>=0)))?new lp(this.source,l,a,a.from,null!==(n=a.to)&&void 0!==n?n:Uf(e.state)):new ap(this.source,1,l)}handleChange(e){return e.changes.touchesRange(this.from,this.to)?new ap(this.source,0):this.map(e.changes)}map(e){return e.empty?this:new lp(this.source,this.explicitPos<0?-1:e.mapPos(this.explicitPos),this.result,e.mapPos(this.from),e.mapPos(this.to,1))}}const cp=Or.define({map:(e,t)=>e.map((e=>e.map(t)))}),Op=Or.define(),hp=Wn.define({create:()=>ip.start(),update:(e,t)=>e.update(t),provide:e=>[su.from(e,(e=>e.tooltip)),ah.contentAttributes.from(e,(e=>e.attrs))]});function up(e,t){const i=t.completion.apply||t.completion.label;let n=e.state.field(hp).active.find((e=>e.source==t.source));return n instanceof lp&&("string"==typeof i?e.dispatch(Object.assign(Object.assign({},Mf(e.state,i,n.from,n.to)),{annotations:jf.of(t.completion)})):i(e,t.completion,n.from,n.to),!0)}const dp=function(e,t){return i=>new Jf(i,e,t)}(hp,up);function fp(e,t="option"){return i=>{let n=i.state.field(hp,!1);if(!n||!n.open||n.open.disabled||Date.now()-n.open.timestamp-1?n.open.selected+o*(e?1:-1):e?0:s-1;return a<0?a="page"==t?0:s-1:a>=s&&(a="page"==t?s-1:0),i.dispatch({effects:Op.of(a)}),!0}}const pp=e=>{let t=e.state.field(hp,!1);return!(e.state.readOnly||!t||!t.open||t.open.selected<0||t.open.disabled||Date.now()-t.open.timestamp!!e.state.field(hp,!1)&&(e.dispatch({effects:Bf.of(!0)}),!0),mp=e=>{let t=e.state.field(hp,!1);return!(!t||!t.active.some((e=>0!=e.state))||(e.dispatch({effects:Gf.of(null)}),0))};class bp{constructor(e,t){this.active=e,this.context=t,this.time=Date.now(),this.updates=[],this.done=void 0}}const $p=Fl.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(hp).active)1==t.state&&this.startQuery(t)}update(e){let t=e.state.field(hp);if(!e.selectionSet&&!e.docChanged&&e.startState.field(hp)==t)return;let i=e.transactions.some((e=>(e.selection||e.docChanged)&&!sp(e)));for(let t=0;t50&&Date.now()-n.time>1e3){for(let e of n.context.abortListeners)try{e()}catch(e){Gl(this.view.state,e)}n.context.abortListeners=null,this.running.splice(t--,1)}else n.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"==sp(t)?this.composing=2:2==this.composing&&t.selection&&(this.composing=3)}startUpdate(){this.debounceUpdate=-1;let{state:e}=this.view,t=e.field(hp);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=Uf(t),n=new Zf(t,i,e.explicitPos==i),r=new bp(e,n);this.running.push(r),Promise.resolve(e.source(n)).then((e=>{r.context.aborted||(r.done=e||null,this.scheduleAccept())}),(e=>{this.view.dispatch({effects:Gf.of(null)}),Gl(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(Lf).updateSyncTime))}accept(){var e;this.debounceAccept>-1&&clearTimeout(this.debounceAccept),this.debounceAccept=-1;let t=[],i=this.view.state.facet(Lf);for(let n=0;ne.source==r.active.source));if(o&&1==o.state)if(null==r.done){let e=new ap(r.active.source,0);for(let t of r.updates)e=e.update(t,i);1!=e.state&&t.push(e)}else this.startQuery(o)}t.length&&this.view.dispatch({effects:cp.of(t)})}},{eventHandlers:{blur(e){let t=this.view.state.field(hp,!1);if(t&&t.tooltip&&this.view.state.facet(Lf).closeOnBlur){let i=t.open&&uu(this.view,t.open.tooltip);i&&i.dom.contains(e.relatedTarget)||this.view.dispatch({effects:Gf.of(null)})}},compositionstart(){this.composing=1},compositionend(){3==this.composing&&setTimeout((()=>this.view.dispatch({effects:Bf.of(!1)})),20),this.composing=0}}}),Qp=ah.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 vp{constructor(e,t,i,n){this.field=e,this.line=t,this.from=i,this.to=n}}class yp{constructor(e,t,i){this.field=e,this.from=t,this.to=i}map(e){let t=e.mapPos(this.from,-1,vn.TrackDel),i=e.mapPos(this.to,1,vn.TrackDel);return null==t||null==i?null:new yp(this.field,t,i)}}class wp{constructor(e,t){this.lines=e,this.fieldPositions=t}instantiate(e,t){let i=[],n=[t],r=e.doc.lineAt(t),o=/^\s*/.exec(r.text)[0];for(let r of this.lines){if(i.length){let i=o,s=/^\t*/.exec(r)[0].length;for(let t=0;tnew yp(e.field,n[e.line]+e.from,n[e.line]+e.to)));return{text:i,ranges:s}}static parse(e){let t,i=[],n=[],r=[];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]||"",a=-1;for(let t=0;t=a&&e.field++}r.push(new vp(a,n.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 r)t.line==n.length&&t.from>e.index&&(t.from--,t.to--)}n.push(o)}return new wp(n,r)}}let _p=Xl.widget({widget:new class extends Sl{toDOM(){let e=document.createElement("span");return e.className="cm-snippetFieldPosition",e}ignoreEvent(){return!1}}}),Sp=Xl.mark({class:"cm-snippetField"});class xp{constructor(e,t){this.ranges=e,this.active=t,this.deco=Xl.set(e.map((e=>(e.from==e.to?_p:Sp).range(e.from,e.to))))}map(e){let t=[];for(let i of this.ranges){let n=i.map(e);if(!n)return null;t.push(n)}return new xp(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 Xp=Or.define({map:(e,t)=>e&&e.map(t)}),Pp=Or.define(),kp=Wn.define({create:()=>null,update(e,t){for(let i of t.effects){if(i.is(Xp))return i.value;if(i.is(Pp)&&e)return new xp(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=>ah.decorations.from(e,(e=>e?e.deco:Xl.none))});function Tp(e,t){return Rn.create(e.filter((e=>e.field==t)).map((e=>Rn.range(e.from,e.to))))}function Rp(e){let t=wp.parse(e);return(e,i,n,r)=>{let{text:o,ranges:s}=t.instantiate(e.state,n),a={changes:{from:n,to:r,insert:Hi.of(o)},scrollIntoView:!0,annotations:i?jf.of(i):void 0};if(s.length&&(a.selection=Tp(s,0)),s.length>1){let t=new xp(s,0),i=a.effects=[Xp.of(t)];void 0===e.state.field(kp,!1)&&i.push(Or.appendConfig.of([kp,Np,Up,Qp]))}e.dispatch(e.state.update(a))}}function Yp(e){return({state:t,dispatch:i})=>{let n=t.field(kp,!1);if(!n||e<0&&0==n.active)return!1;let r=n.active+e,o=e>0&&!n.ranges.some((t=>t.field==r+e));return i(t.update({selection:Tp(n.ranges,r),effects:Xp.of(o?null:new xp(n.ranges,r)),scrollIntoView:!0})),!0}}const Ap=({state:e,dispatch:t})=>!!e.field(kp,!1)&&(t(e.update({effects:Xp.of(null)})),!0),Vp=Yp(1),Zp=Yp(-1);const Ep=[{key:"Tab",run:Vp,shift:Zp},{key:"Escape",run:Ap}],Cp=Vn.define({combine:e=>e.length?e[0]:Ep}),Np=Gn.highest(ph.compute([Cp],(e=>e.facet(Cp))));function qp(e,t){return Object.assign(Object.assign({},t),{apply:Rp(e)})}const Up=ah.domEventHandlers({mousedown(e,t){let i,n=t.state.field(kp,!1);if(!n||null==(i=t.posAtCoords({x:e.clientX,y:e.clientY})))return!1;let r=n.ranges.find((e=>e.from<=i&&e.to>=i));return!(!r||r.field==n.active||(t.dispatch({selection:Tp(n.ranges,r.field),effects:Xp.of(n.ranges.some((e=>e.field>r.field))?new xp(n.ranges,r.field):null),scrollIntoView:!0}),0))}});function Wp(e,t){return new RegExp(t(e.source),e.unicode?"u":"")}const jp=Object.create(null);function Mp(e){return jp[e]||(jp[e]=new WeakMap)}function Dp(e,t,i,n,r){for(let o=e.iterLines(),s=0;!o.next().done;){let e,{value:a}=o;for(t.lastIndex=0;e=t.exec(a);)if(!n[e[0]]&&s+e.index!=r&&(i.push({type:"text",label:e[0]}),n[e[0]]=!0,i.length>=2e3))return;s+=a.length+1}}function zp(e,t,i,n,r){let o=e.length>=1e3,s=o&&t.get(e);if(s)return s;let a=[],l=Object.create(null);if(e.children){let o=0;for(let s of e.children){if(s.length>=1e3)for(let e of zp(s,t,i,n-o,r-o))l[e.label]||(l[e.label]=!0,a.push(e));else Dp(s,i,a,l,r-o);o+=s.length+1}}else Dp(e,i,a,l,r);return o&&a.length<2e3&&t.set(e,a),a}const Bp={brackets:["(","[","{","'",'"'],before:")]}:;>",stringPrefixes:[]},Gp=Or.define({map(e,t){let i=t.mapPos(e,-1,vn.TrackAfter);return null==i?void 0:i}}),Ip=new class extends _r{};Ip.startSide=1,Ip.endSide=-1;const Lp=Wn.define({create:()=>Pr.empty,update(e,t){if(t.selection){let i=t.state.doc.lineAt(t.selection.main.head).from,n=t.startState.doc.lineAt(t.startState.selection.main.head).from;i!=t.changes.mapPos(n,-1)&&(e=Pr.empty)}e=e.map(t.changes);for(let i of t.effects)i.is(Gp)&&(e=e.update({add:[Ip.range(i.value,i.value+1)]}));return e}});function Kp(){return[tg,Lp]}const Fp="()[]{}<>";function Hp(e){for(let t=0;t{if((eg?e.composing:e.compositionStarted)||e.state.readOnly)return!1;let r=e.state.selection.main;if(n.length>2||2==n.length&&1==bn(gn(n,0))||t!=r.from||i!=r.to)return!1;let o=rg(e.state,n);return!!o&&(e.dispatch(o),!0)})),ig=({state:e,dispatch:t})=>{if(e.readOnly)return!1;let i=Jp(e,e.selection.main.head).brackets||Bp.brackets,n=null,r=e.changeByRange((t=>{if(t.empty){let n=function(e,t){let i=e.sliceString(t-2,t);return bn(gn(i,0))==i.length?i:i.slice(1)}(e.doc,t.head);for(let r of i)if(r==n&&sg(e.doc,t.head)==Hp(gn(r,0)))return{changes:{from:t.head-r.length,to:t.head+r.length},range:Rn.cursor(t.head-r.length)}}return{range:n=t}}));return n||t(e.update(r,{scrollIntoView:!0,userEvent:"delete.backward"})),!n},ng=[{key:"Backspace",run:ig}];function rg(e,t){let i=Jp(e,e.selection.main.head),n=i.brackets||Bp.brackets;for(let r of n){let o=Hp(gn(r,0));if(t==r)return o==r?cg(e,r,n.indexOf(r+r+r)>-1,i):ag(e,r,o,i.before||Bp.before);if(t==o&&og(e,e.selection.main.from))return lg(e,r,o)}return null}function og(e,t){let i=!1;return e.field(Lp).between(0,e.doc.length,(e=>{e==t&&(i=!0)})),i}function sg(e,t){let i=e.sliceString(t,t+2);return i.slice(0,bn(gn(i,0)))}function ag(e,t,i,n){let r=null,o=e.changeByRange((o=>{if(!o.empty)return{changes:[{insert:t,from:o.from},{insert:i,from:o.to}],effects:Gp.of(o.to+t.length),range:Rn.range(o.anchor+t.length,o.head+t.length)};let s=sg(e.doc,o.head);return!s||/\s/.test(s)||n.indexOf(s)>-1?{changes:{insert:t+i,from:o.head},effects:Gp.of(o.head+t.length),range:Rn.cursor(o.head+t.length)}:{range:r=o}}));return r?null:e.update(o,{scrollIntoView:!0,userEvent:"input.type"})}function lg(e,t,i){let n=null,r=e.changeByRange((t=>t.empty&&sg(e.doc,t.head)==i?{changes:{from:t.head,to:t.head+i.length,insert:i},range:Rn.cursor(t.head+i.length)}:n={range:t}));return n?null:e.update(r,{scrollIntoView:!0,userEvent:"input.type"})}function cg(e,t,i,n){let r=n.stringPrefixes||Bp.stringPrefixes,o=null,s=e.changeByRange((n=>{if(!n.empty)return{changes:[{insert:t,from:n.from},{insert:t,from:n.to}],effects:Gp.of(n.to+t.length),range:Rn.range(n.anchor+t.length,n.head+t.length)};let s,a=n.head,l=sg(e.doc,a);if(l==t){if(Og(e,a))return{changes:{insert:t+t,from:a},effects:Gp.of(a+t.length),range:Rn.cursor(a+t.length)};if(og(e,a)){let n=i&&e.sliceDoc(a,a+3*t.length)==t+t+t?t+t+t:t;return{changes:{from:a,to:a+n.length,insert:n},range:Rn.cursor(a+n.length)}}}else{if(i&&e.sliceDoc(a-2*t.length,a)==t+t&&(s=hg(e,a-2*t.length,r))>-1&&Og(e,s))return{changes:{insert:t+t+t+t,from:a},effects:Gp.of(a+t.length),range:Rn.cursor(a+t.length)};if(e.charCategorizer(a)(l)!=br.Word&&hg(e,a,r)>-1&&!function(e,t,i,n){let r=md(e).resolveInner(t,-1),o=n.reduce(((e,t)=>Math.max(e,t.length)),0);for(let s=0;s<5;s++){let s=e.sliceDoc(r.from,Math.min(r.to,r.from+i.length+o)),a=s.indexOf(i);if(!a||a>-1&&n.indexOf(s.slice(0,a))>-1){let t=r.firstChild;for(;t&&t.from==r.from&&t.to-t.from>i.length+a;){if(e.sliceDoc(t.to-i.length,t.to)==i)return!1;t=t.firstChild}return!0}let l=r.to==t&&r.parent;if(!l)break;r=l}return!1}(e,a,t,r))return{changes:{insert:t+t,from:a},effects:Gp.of(a+t.length),range:Rn.cursor(a+t.length)}}return{range:o=n}}));return o?null:e.update(s,{scrollIntoView:!0,userEvent:"input.type"})}function Og(e,t){let i=md(e).resolveInner(t+1);return i.parent&&i.from==t}function hg(e,t,i){let n=e.charCategorizer(t);if(n(e.sliceDoc(t-1,t))!=br.Word)return t;for(let r of i){let i=t-r.length;if(e.sliceDoc(i,t)==r&&n(e.sliceDoc(i-1,i))!=br.Word)return i}return-1}const ug=[{key:"Ctrl-Space",run:gp},{key:"Escape",run:mp},{key:"ArrowDown",run:fp(!0)},{key:"ArrowUp",run:fp(!1)},{key:"PageDown",run:fp(!0,"page")},{key:"PageUp",run:fp(!1,"page")},{key:"Enter",run:pp}],dg=Gn.highest(ph.computeN([Lf],(e=>e.facet(Lf).defaultKeymap?[ug]:[])));const fg=new WeakMap;var pg=Object.freeze({__proto__:null,CompletionContext:Zf,acceptCompletion:pp,autocompletion:function(e={}){return[hp,Lf.of(e),$p,dg,Qp]},clearSnippet:Ap,closeBrackets:Kp,closeBracketsKeymap:ng,closeCompletion:mp,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),n=e.matchBefore(Wp(i,(e=>e+"$")));if(!n&&!e.explicit)return null;let r=n?n.from:e.pos;return{from:r,options:zp(e.state.doc,Mp(t),i,5e4,r),validFor:Wp(i,(e=>"^"+e))}},completeFromList:Cf,completionKeymap:ug,completionStatus:function(e){let t=e.field(hp,!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(hp,!1))||void 0===t?void 0:t.open;if(!i||i.disabled)return[];let n=fg.get(i.options);return n||fg.set(i.options,n=i.options.map((e=>e.completion))),n},deleteBracketPair:ig,hasNextSnippetField:function(e){let t=e.field(kp,!1);return!(!t||!t.ranges.some((e=>e.field==t.active+1)))},hasPrevSnippetField:function(e){let t=e.field(kp,!1);return!!(t&&t.active>0)},ifIn:function(e,t){return i=>{for(let n=md(i.state).resolveInner(i.pos,-1);n;n=n.parent){if(e.indexOf(n.name)>-1)return t(i);if(n.type.isTop)break}return null}},ifNotIn:Nf,insertBracket:rg,insertCompletionText:Mf,moveCompletionSelection:fp,nextSnippetField:Vp,pickedCompletion:jf,prevSnippetField:Zp,selectedCompletion:function(e){var t;let i=null===(t=e.field(hp,!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(hp,!1))||void 0===t?void 0:t.open;return i&&!i.disabled&&i.selected>=0?i.selected:null},setSelectedCompletion:function(e){return Op.of(e)},snippet:Rp,snippetCompletion:qp,snippetKeymap:Cp,startCompletion:gp});function gg({closing:e,units:t=1}){return i=>function(e,t,i){let n=e.textAfter,r=n.match(/^\s*/)[0].length,o=!1;switch(i.length){case 1:o=n.slice(r,r+i[0].length)===i[0];break;case 2:o=n.slice(r,r+i[0].length)===i[0]||n.slice(r,r+i[1].length)===i[1];break;case 3:o=n.slice(r,r+i[0].length)===i[0]||n.slice(r,r+i[1].length)===i[1]||n.slice(r,r+i[2].length)===i[2];break;default:o=i.some((e=>n.slice(r,r+e.length)===e))}return e.baseIndent+(o?0:e.unit*t)}(i,t,e)}function mg(e){return e.baseIndent}let bg=function(){let e={indents:{VariableDeclaration:Md(),AssignmentExpression:Md()},keywords:[]};for(let t of pa.nodeSet.types){let i,n=t.prop(zr.group);"keyword"===(null!=n?n[0]:null)&&e.keywords.push(t);let r=t.prop(zr.closedBy);i=r?gg({closing:r}):mg,e.indents[t.name]=i}return e}(),$g=ju({String:cd.string,TripleString:cd.string,CommandString:cd.string,StringWithoutInterpolation:cd.string,TripleStringWithoutInterpolation:cd.string,CommandStringWithoutInterpolation:cd.string,"String/$ TripleString/$ CommandString/$":cd.special(cd.brace),"String/( TripleString/( CommandString/(":cd.special(cd.brace),"String/) TripleString/) CommandString/)":cd.special(cd.brace),Comment:cd.lineComment,BlockComment:cd.comment,"mutable struct StructDefinition/end":cd.definitionKeyword,"primitive type PrimitiveDefinition/end":cd.definitionKeyword,"const local global":cd.definitionKeyword,"ForStatement/for ForBinding/in ForStatement/end":cd.controlKeyword,"WhileStatement/while WhileStatement/end":cd.controlKeyword,"IfClause/if IfClause/elseif ElseClause/else IfStatement/end":cd.controlKeyword,"default break return":cd.controlKeyword,"TryStatement/try CatchClause/catch TryElseClause/else FinallyClause/finally TryStatement/end":cd.controlKeyword,"( )":cd.paren,"[ ]":cd.paren,"{ }":cd.paren,[bg.keywords.map((e=>e.name)).join(" ")]:cd.keyword,BooleanLiteral:cd.bool,Number:cd.number,"Coefficient/PrefixedString!":cd.unit,"Type! TypeParameters!":cd.typeName,"StructDefinition/Identifier StructDefinition/AssignmentExpression/Identifier StructDefinition/TypedExpression/Identifier StructDefinition/AssignmentExpression/TypedExpression/Identifier":cd.definition(cd.propertyName),":: <:":cd.typeOperator,Identifier:cd.variableName,"MacroIdentifier! MacroFieldExpression!":cd.macroName,"MacroDefinition/Definition!":cd.definition(cd.macroName),"FieldName!":cd.propertyName,FieldExpression:cd.propertyName,"FieldExpression .":cd.derefOperator,"Symbol!":cd.atom}),Qg=gd.define({parser:pa.configure({props:[$g,Zd.add(Object.assign(Object.assign({},bg.indents),{ModuleDefinition:mg,BareModuleDefinition:mg,VariableDeclaration:Md(),AssignmentExpression:Md()}))]}),languageData:{commentTokens:{line:"#"},indentOnInput:/^\s*(\]|\}|\)|end|else|elseif|catch|finally)$/,closeBrackets:{brackets:["(","[","{","'",'"',"`"]}}});const vg=Qg.data.of({autocomplete:Cf(bg.keywords.map((e=>({label:e.name,type:"keyword"}))))});let yg={enableKeywordCompletion:!1};function wg(e=yg){let t=[];return(e=Object.assign(Object.assign({},yg),e)).enableKeywordCompletion&&t.push(vg),new Xd(Qg,t)}function _g(e,t){return({state:i,dispatch:n})=>{if(i.readOnly)return!1;let r=e(t,i);return!!r&&(n(i.update(r)),!0)}}const Sg=_g((function(e,t,i=t.selection.ranges){let n=[],r=-1;for(let{from:e,to:o}of i){let i=n.length,s=1e9,a=Pg(t,e).line;if(a){for(let i=e;i<=o;){let l=t.doc.lineAt(i);if(l.from>r&&(e==o||o>l.from)){r=l.from;let e=/^\s*/.exec(l.text)[0].length,t=e==l.length,i=l.text.slice(e,e+a.length)==a?e:-1;ee.comment<0&&(!e.empty||e.single)))){let e=[];for(let{line:t,token:i,indent:r,empty:o,single:s}of n)!s&&o||e.push({from:t.from+r,insert:i+" "});let i=t.changes(e);return{changes:i,selection:t.selection.map(i,1)}}if(1!=e&&n.some((e=>e.comment>=0))){let e=[];for(let{line:t,comment:i,token:r}of n)if(i>=0){let n=t.from+i,o=n+r.length;" "==t.text[o-t.from]&&o++,e.push({from:n,to:o})}return{changes:e}}return null}),0),xg=_g(kg,0),Xg=_g(((e,t)=>kg(e,t,function(e){let t=[];for(let i of e.selection.ranges){let n=e.doc.lineAt(i.from),r=i.to<=n.to?n:e.doc.lineAt(i.to),o=t.length-1;o>=0&&t[o].to>n.from?t[o].to=r.to:t.push({from:n.from+/^\s*/.exec(n.text)[0].length,to:r.to})}return t}(t))),0);function Pg(e,t){let i=e.languageDataAt("commentTokens",t);return i.length?i[0]:{}}function kg(e,t,i=t.selection.ranges){let n=i.map((e=>Pg(t,e.from).block));if(!n.every((e=>e)))return null;let r=i.map(((e,i)=>function(e,{open:t,close:i},n,r){let o,s,a=e.sliceDoc(n-50,n),l=e.sliceDoc(r,r+50),c=/\s*$/.exec(a)[0].length,O=/^\s*/.exec(l)[0].length,h=a.length-c;if(a.slice(h-t.length,h)==t&&l.slice(O,O+i.length)==i)return{open:{pos:n-c,margin:c&&1},close:{pos:r+O,margin:O&&1}};r-n<=100?o=s=e.sliceDoc(n,r):(o=e.sliceDoc(n,n+50),s=e.sliceDoc(r-50,r));let u=/^\s*/.exec(o)[0].length,d=/\s*$/.exec(s)[0].length,f=s.length-d-i.length;return o.slice(u,u+t.length)==t&&s.slice(f,f+i.length)==i?{open:{pos:n+u+t.length,margin:/\s/.test(o.charAt(u+t.length))?1:0},close:{pos:r-d-i.length,margin:/\s/.test(s.charAt(f-1))?1:0}}:null}(t,n[i],e.from,e.to)));if(2!=e&&!r.every((e=>e)))return{changes:t.changes(i.map(((e,t)=>r[t]?[]:[{from:e.from,insert:n[t].open+" "},{from:e.to,insert:" "+n[t].close}])))};if(1!=e&&r.some((e=>e))){let e=[];for(let t,i=0;iwr(e,{minDepth:100,newGroupDelay:500,joinToEvent:(e,t)=>t},{minDepth:Math.max,newGroupDelay:Math.min,joinToEvent:(e,t)=>(i,n)=>e(i,n)||t(i,n)})});const Vg=Wn.define({create:()=>Kg.empty,update(e,t){let i=t.state.facet(Ag),n=t.annotation(Tg);if(n){let r=t.docChanged?Rn.single(function(e){let t=0;return e.iterChangedRanges(((e,i)=>t=i)),t}(t.changes)):void 0,o=Wg.fromTransaction(t,r),s=n.side,a=0==s?e.undone:e.done;return a=o?jg(a,a.length,i.minDepth,o):zg(a,t.startState.selection),new Kg(0==s?n.rest:a,0==s?a:n.rest)}let r=t.annotation(Rg);if("full"!=r&&"before"!=r||(e=e.isolate()),!1===t.annotation(hr.addToHistory))return t.changes.empty?e:e.addMapping(t.changes.desc);let o=Wg.fromTransaction(t),s=t.annotation(hr.time),a=t.annotation(hr.userEvent);return o?e=e.addChanges(o,s,a,i,t):t.selection&&(e=e.addSelection(t.startState.selection,s,a,i.newGroupDelay)),"full"!=r&&"after"!=r||(e=e.isolate()),e},toJSON:e=>({done:e.done.map((e=>e.toJSON())),undone:e.undone.map((e=>e.toJSON()))}),fromJSON:e=>new Kg(e.done.map(Wg.fromJSON),e.undone.map(Wg.fromJSON))});function Zg(e={}){return[Vg,Ag.of(e),ah.domEventHandlers({beforeinput(e,t){let i="historyUndo"==e.inputType?Cg:"historyRedo"==e.inputType?Ng:null;return!!i&&(e.preventDefault(),i(t))}})]}function Eg(e,t){return function({state:i,dispatch:n}){if(!t&&i.readOnly)return!1;let r=i.field(Vg,!1);if(!r)return!1;let o=r.pop(e,i,t);return!!o&&(n(o),!0)}}const Cg=Eg(0,!1),Ng=Eg(1,!1),qg=Eg(0,!0),Ug=Eg(1,!0);class Wg{constructor(e,t,i,n,r){this.changes=e,this.effects=t,this.mapped=i,this.startSelection=n,this.selectionsAfter=r}setSelAfter(e){return new Wg(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 Wg(e.changes&&wn.fromJSON(e.changes),[],e.mapped&&yn.fromJSON(e.mapped),e.startSelection&&Rn.fromJSON(e.startSelection),e.selectionsAfter.map(Rn.fromJSON))}static fromTransaction(e,t){let i=Dg;for(let t of e.startState.facet(Yg)){let n=t(e);n.length&&(i=i.concat(n))}return!i.length&&e.changes.empty?null:new Wg(e.changes.invert(e.startState.doc),i,void 0,t||e.startState.selection,Dg)}static selection(e){return new Wg(void 0,Dg,void 0,void 0,e)}}function jg(e,t,i,n){let r=t+1>i+20?t-i-1:0,o=e.slice(r,t);return o.push(n),o}function Mg(e,t){return e.length?t.length?e.concat(t):e:t}const Dg=[];function zg(e,t){if(e.length){let i=e[e.length-1],n=i.selectionsAfter.slice(Math.max(0,i.selectionsAfter.length-200));return n.length&&n[n.length-1].eq(t)?e:(n.push(t),jg(e,e.length-1,1e9,i.setSelAfter(n)))}return[Wg.selection([t])]}function Bg(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 Gg(e,t){if(!e.length)return e;let i=e.length,n=Dg;for(;i;){let r=Ig(e[i-1],t,n);if(r.changes&&!r.changes.empty||r.effects.length){let t=e.slice(0,i);return t[i-1]=r,t}t=r.mapped,i--,n=r.selectionsAfter}return n.length?[Wg.selection(n)]:Dg}function Ig(e,t,i){let n=Mg(e.selectionsAfter.length?e.selectionsAfter.map((e=>e.map(t))):Dg,i);if(!e.changes)return Wg.selection(n);let r=e.changes.map(t),o=t.mapDesc(e.changes,!0),s=e.mapped?e.mapped.composeDesc(o):o;return new Wg(r,Or.mapEffects(e.effects,t),s,e.startSelection.map(o),n)}const Lg=/^(input\.type|delete)($|\.)/;class Kg{constructor(e,t,i=0,n){this.done=e,this.undone=t,this.prevTime=i,this.prevUserEvent=n}isolate(){return this.prevTime?new Kg(this.done,this.undone):this}addChanges(e,t,i,n,r){let o=this.done,s=o[o.length-1];return o=s&&s.changes&&!s.changes.empty&&e.changes&&(!i||Lg.test(i))&&(!s.selectionsAfter.length&&t-this.prevTimei.push(e,t))),t.iterChangedRanges(((e,t,r,o)=>{for(let e=0;e=t&&r<=s&&(n=!0)}})),n}(s.changes,e.changes))||"input.type.compose"==i)?jg(o,o.length-1,n.minDepth,new Wg(e.changes.compose(s.changes),Mg(e.effects,s.effects),s.mapped,s.startSelection,Dg)):jg(o,o.length,n.minDepth,e),new Kg(o,Dg,t,i)}addSelection(e,t,i,n){let r=this.done.length?this.done[this.done.length-1].selectionsAfter:Dg;return r.length>0&&t-this.prevTimee.empty!=t.ranges[i].empty)).length}(r[r.length-1],e)?this:new Kg(zg(this.done,e),this.undone,t,i)}addMapping(e){return new Kg(Gg(this.done,e),Gg(this.undone,e),this.prevTime,this.prevUserEvent)}pop(e,t,i){let n=0==e?this.done:this.undone;if(0==n.length)return null;let r=n[n.length-1];if(i&&r.selectionsAfter.length)return t.update({selection:r.selectionsAfter[r.selectionsAfter.length-1],annotations:Tg.of({side:e,rest:Bg(n)}),userEvent:0==e?"select.undo":"select.redo",scrollIntoView:!0});if(r.changes){let i=1==n.length?Dg:n.slice(0,n.length-1);return r.mapped&&(i=Gg(i,r.mapped)),t.update({changes:r.changes,selection:r.startSelection,effects:r.effects,annotations:Tg.of({side:e,rest:i}),filter:!1,userEvent:0==e?"undo":"redo",scrollIntoView:!0})}return null}}Kg.empty=new Kg(Dg,Dg);const Fg=[{key:"Mod-z",run:Cg,preventDefault:!0},{key:"Mod-y",mac:"Mod-Shift-z",run:Ng,preventDefault:!0},{linux:"Ctrl-Shift-z",run:Ng,preventDefault:!0},{key:"Mod-u",run:qg,preventDefault:!0},{key:"Alt-u",mac:"Mod-Shift-u",run:Ug,preventDefault:!0}];function Hg(e,t){return Rn.create(e.ranges.map(t),e.mainIndex)}function Jg(e,t){return e.update({selection:t,scrollIntoView:!0,userEvent:"select"})}function em({state:e,dispatch:t},i){let n=Hg(e.selection,i);return!n.eq(e.selection)&&(t(Jg(e,n)),!0)}function tm(e,t){return Rn.cursor(t?e.to:e.from)}function im(e,t){return em(e,(i=>i.empty?e.moveByChar(i,t):tm(i,t)))}function nm(e){return e.textDirectionAt(e.state.selection.main.head)==Oc.LTR}const rm=e=>im(e,!nm(e)),om=e=>im(e,nm(e));function sm(e,t){return em(e,(i=>i.empty?e.moveByGroup(i,t):tm(i,t)))}function am(e,t,i){if(t.type.prop(i))return!0;let n=t.to-t.from;return n&&(n>2||/[^\s,.;:]/.test(e.sliceDoc(t.from,t.to)))||t.firstChild}function lm(e,t,i){let n,r,o=md(e).resolveInner(t.head),s=i?zr.closedBy:zr.openedBy;for(let n=t.head;;){let t=i?o.childAfter(n):o.childBefore(n);if(!t)break;am(e,t,s)?o=t:n=i?t.to:t.from}return r=o.type.prop(s)&&(n=i?Xf(e,o.from,1):Xf(e,o.to,-1))&&n.matched?i?n.end.to:n.end.from:i?o.to:o.from,Rn.cursor(r,i?-1:1)}function cm(e,t){return em(e,(i=>{if(!i.empty)return tm(i,t);let n=e.moveVertically(i,t);return n.head!=i.head?n:e.moveToLineBoundary(i,t)}))}const Om=e=>cm(e,!1),hm=e=>cm(e,!0);function um(e){let t,i=e.scrollDOM.clientHeighti.empty?e.moveVertically(i,t,n.height):tm(i,t)));if(o.eq(r.selection))return!1;if(n.selfScroll){let t=e.coordsAtPos(r.selection.main.head),s=e.scrollDOM.getBoundingClientRect(),a=s.top+n.marginTop,l=s.bottom-n.marginBottom;t&&t.top>a&&t.bottomdm(e,!1),pm=e=>dm(e,!0);function gm(e,t,i){let n=e.lineBlockAt(t.head),r=e.moveToLineBoundary(t,i);if(r.head==t.head&&r.head!=(i?n.to:n.from)&&(r=e.moveToLineBoundary(t,i,!1)),!i&&r.head==n.from&&n.length){let i=/^\s*/.exec(e.state.sliceDoc(n.from,Math.min(n.from+100,n.to)))[0].length;i&&t.head!=n.from+i&&(r=Rn.cursor(n.from+i))}return r}function mm(e,t){let i=Hg(e.state.selection,(e=>{let i=t(e);return Rn.range(e.anchor,i.head,i.goalColumn,i.bidiLevel||void 0)}));return!i.eq(e.state.selection)&&(e.dispatch(Jg(e.state,i)),!0)}function bm(e,t){return mm(e,(i=>e.moveByChar(i,t)))}const $m=e=>bm(e,!nm(e)),Qm=e=>bm(e,nm(e));function vm(e,t){return mm(e,(i=>e.moveByGroup(i,t)))}function ym(e,t){return mm(e,(i=>e.moveVertically(i,t)))}const wm=e=>ym(e,!1),_m=e=>ym(e,!0);function Sm(e,t){return mm(e,(i=>e.moveVertically(i,t,um(e).height)))}const xm=e=>Sm(e,!1),Xm=e=>Sm(e,!0),Pm=({state:e,dispatch:t})=>(t(Jg(e,{anchor:0})),!0),km=({state:e,dispatch:t})=>(t(Jg(e,{anchor:e.doc.length})),!0),Tm=({state:e,dispatch:t})=>(t(Jg(e,{anchor:e.selection.main.anchor,head:0})),!0),Rm=({state:e,dispatch:t})=>(t(Jg(e,{anchor:e.selection.main.anchor,head:e.doc.length})),!0);function Ym(e,t){if(e.state.readOnly)return!1;let i="delete.selection",{state:n}=e,r=n.changeByRange((n=>{let{from:r,to:o}=n;if(r==o){let s=t(n);sr&&(i="delete.forward",s=Am(e,s,!0)),r=Math.min(r,s),o=Math.max(o,s)}else r=Am(e,r,!1),o=Am(e,o,!0);return r==o?{range:n}:{changes:{from:r,to:o},range:Rn.cursor(r,rt(e))))n.between(t,t,((e,n)=>{et&&(t=i?n:e)}));return t}const Vm=(e,t)=>Ym(e,(i=>{let n,r,o=i.from,{state:s}=e,a=s.doc.lineAt(o);if(!t&&o>a.from&&oVm(e,!1),Em=e=>Vm(e,!0),Cm=(e,t)=>Ym(e,(i=>{let n=i.head,{state:r}=e,o=r.doc.lineAt(n),s=r.charCategorizer(n);for(let e=null;;){if(n==(t?o.to:o.from)){n==i.head&&o.number!=(t?r.doc.lines:1)&&(n+=t?1:-1);break}let a=hn(o.text,n-o.from,t)+o.from,l=o.text.slice(Math.min(n,a)-o.from,Math.max(n,a)-o.from),c=s(l);if(null!=e&&c!=e)break;" "==l&&n==i.head||(e=c),n=a}return n})),Nm=e=>Cm(e,!1);function qm(e){let t=[],i=-1;for(let n of e.selection.ranges){let r=e.doc.lineAt(n.from),o=e.doc.lineAt(n.to);if(n.empty||n.to!=o.from||(o=e.doc.lineAt(n.to-1)),i>=r.number){let e=t[t.length-1];e.to=o.to,e.ranges.push(n)}else t.push({from:r.from,to:o.to,ranges:[n]});i=o.number+1}return t}function Um(e,t,i){if(e.readOnly)return!1;let n=[],r=[];for(let t of qm(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){n.push({from:t.to,to:o.to},{from:t.from,insert:o.text+e.lineBreak});for(let i of t.ranges)r.push(Rn.range(Math.min(e.doc.length,i.anchor+s),Math.min(e.doc.length,i.head+s)))}else{n.push({from:o.from,to:t.from},{from:t.to,insert:e.lineBreak+o.text});for(let e of t.ranges)r.push(Rn.range(e.anchor-s,e.head-s))}}return!!n.length&&(t(e.update({changes:n,scrollIntoView:!0,selection:Rn.create(r,e.selection.mainIndex),userEvent:"move.line"})),!0)}function Wm(e,t,i){if(e.readOnly)return!1;let n=[];for(let t of qm(e))i?n.push({from:t.from,insert:e.doc.slice(t.from,t.to)+e.lineBreak}):n.push({from:t.to,insert:e.lineBreak+e.doc.slice(t.from,t.to)});return t(e.update({changes:n,scrollIntoView:!0,userEvent:"input.copyline"})),!0}const jm=Dm(!1),Mm=Dm(!0);function Dm(e){return({state:t,dispatch:i})=>{if(t.readOnly)return!1;let n=t.changeByRange((i=>{let{from:n,to:r}=i,o=t.doc.lineAt(n),s=!e&&n==r&&function(e,t){if(/\(\)|\[\]|\{\}/.test(e.sliceDoc(t-1,t+1)))return{from:t,to:t};let i,n=md(e).resolveInner(t),r=n.childBefore(t),o=n.childAfter(t);return r&&o&&r.to<=t&&o.from>=t&&(i=r.type.prop(zr.closedBy))&&i.indexOf(o.name)>-1&&e.doc.lineAt(r.to).from==e.doc.lineAt(o.from).from&&!/\S/.test(e.sliceDoc(r.to,o.from))?{from:r.to,to:o.from}:null}(t,n);e&&(n=r=(r<=o.to?o:t.doc.lineAt(r)).to);let a=new Vd(t,{simulateBreak:n,simulateDoubleBreak:!!s}),l=Ad(a,n);for(null==l&&(l=Ur(/^\s*/.exec(t.doc.lineAt(n).text)[0],t.tabSize));ro.from&&n{let r=[];for(let o=n.from;o<=n.to;){let s=e.doc.lineAt(o);s.number>i&&(n.empty||n.to>s.from)&&(t(s,r,n),i=s.number),o=s.to+1}let o=e.changes(r);return{changes:r,range:Rn.range(o.mapPos(n.anchor,1),o.mapPos(n.head,1))}}))}const Bm=({state:e,dispatch:t})=>!e.readOnly&&(t(e.update(zm(e,((t,i)=>{i.push({from:t.from,insert:e.facet(Td)})})),{userEvent:"input.indent"})),!0),Gm=({state:e,dispatch:t})=>!e.readOnly&&(t(e.update(zm(e,((t,i)=>{let n=/^\s*/.exec(t.text)[0];if(!n)return;let r=Ur(n,e.tabSize),o=0,s=Yd(e,Math.max(0,r-Rd(e)));for(;oem(e,(t=>Rn.cursor(e.lineBlockAt(t.head).from,1))),shift:e=>mm(e,(t=>Rn.cursor(e.lineBlockAt(t.head).from)))},{key:"Ctrl-e",run:e=>em(e,(t=>Rn.cursor(e.lineBlockAt(t.head).to,-1))),shift:e=>mm(e,(t=>Rn.cursor(e.lineBlockAt(t.head).to)))},{key:"Ctrl-d",run:Em},{key:"Ctrl-h",run:Zm},{key:"Ctrl-k",run:e=>Ym(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:Hi.of(["",""])},range:Rn.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,n=e.doc.lineAt(i),r=i==n.from?i-1:hn(n.text,i-n.from,!1)+n.from,o=i==n.to?i+1:hn(n.text,i-n.from,!0)+n.from;return{changes:{from:r,to:o,insert:e.doc.slice(i,o).append(e.doc.slice(r,i))},range:Rn.cursor(o)}}));return!i.changes.empty&&(t(e.update(i,{scrollIntoView:!0,userEvent:"move.character"})),!0)}},{key:"Ctrl-v",run:pm}],Lm=[{key:"ArrowLeft",run:rm,shift:$m,preventDefault:!0},{key:"Mod-ArrowLeft",mac:"Alt-ArrowLeft",run:e=>sm(e,!nm(e)),shift:e=>vm(e,!nm(e)),preventDefault:!0},{mac:"Cmd-ArrowLeft",run:e=>em(e,(t=>gm(e,t,!nm(e)))),shift:e=>mm(e,(t=>gm(e,t,!nm(e)))),preventDefault:!0},{key:"ArrowRight",run:om,shift:Qm,preventDefault:!0},{key:"Mod-ArrowRight",mac:"Alt-ArrowRight",run:e=>sm(e,nm(e)),shift:e=>vm(e,nm(e)),preventDefault:!0},{mac:"Cmd-ArrowRight",run:e=>em(e,(t=>gm(e,t,nm(e)))),shift:e=>mm(e,(t=>gm(e,t,nm(e)))),preventDefault:!0},{key:"ArrowUp",run:Om,shift:wm,preventDefault:!0},{mac:"Cmd-ArrowUp",run:Pm,shift:Tm},{mac:"Ctrl-ArrowUp",run:fm,shift:xm},{key:"ArrowDown",run:hm,shift:_m,preventDefault:!0},{mac:"Cmd-ArrowDown",run:km,shift:Rm},{mac:"Ctrl-ArrowDown",run:pm,shift:Xm},{key:"PageUp",run:fm,shift:xm},{key:"PageDown",run:pm,shift:Xm},{key:"Home",run:e=>em(e,(t=>gm(e,t,!1))),shift:e=>mm(e,(t=>gm(e,t,!1))),preventDefault:!0},{key:"Mod-Home",run:Pm,shift:Tm},{key:"End",run:e=>em(e,(t=>gm(e,t,!0))),shift:e=>mm(e,(t=>gm(e,t,!0))),preventDefault:!0},{key:"Mod-End",run:km,shift:Rm},{key:"Enter",run:jm},{key:"Mod-a",run:({state:e,dispatch:t})=>(t(e.update({selection:{anchor:0,head:e.doc.length},userEvent:"select"})),!0)},{key:"Backspace",run:Zm,shift:Zm},{key:"Delete",run:Em},{key:"Mod-Backspace",mac:"Alt-Backspace",run:Nm},{key:"Mod-Delete",mac:"Alt-Delete",run:e=>Cm(e,!0)},{mac:"Mod-Backspace",run:e=>Ym(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=>Ym(e,(t=>{let i=e.moveToLineBoundary(t,!0).head;return t.head({mac:e.key,run:e.run,shift:e.shift})))),Km=[{key:"Alt-ArrowLeft",mac:"Ctrl-ArrowLeft",run:e=>em(e,(t=>lm(e.state,t,!nm(e)))),shift:e=>mm(e,(t=>lm(e.state,t,!nm(e))))},{key:"Alt-ArrowRight",mac:"Ctrl-ArrowRight",run:e=>em(e,(t=>lm(e.state,t,nm(e)))),shift:e=>mm(e,(t=>lm(e.state,t,nm(e))))},{key:"Alt-ArrowUp",run:({state:e,dispatch:t})=>Um(e,t,!1)},{key:"Shift-Alt-ArrowUp",run:({state:e,dispatch:t})=>Wm(e,t,!1)},{key:"Alt-ArrowDown",run:({state:e,dispatch:t})=>Um(e,t,!0)},{key:"Shift-Alt-ArrowDown",run:({state:e,dispatch:t})=>Wm(e,t,!0)},{key:"Escape",run:({state:e,dispatch:t})=>{let i=e.selection,n=null;return i.ranges.length>1?n=Rn.create([i.main]):i.main.empty||(n=Rn.create([Rn.cursor(i.main.head)])),!!n&&(t(Jg(e,n)),!0)}},{key:"Mod-Enter",run:Mm},{key:"Alt-l",mac:"Ctrl-l",run:({state:e,dispatch:t})=>{let i=qm(e).map((({from:t,to:i})=>Rn.range(t,Math.min(i+1,e.doc.length))));return t(e.update({selection:Rn.create(i),userEvent:"select"})),!0}},{key:"Mod-i",run:({state:e,dispatch:t})=>{let i=Hg(e.selection,(t=>{var i;for(let n=md(e).resolveStack(t.from,1);n;n=n.next){let{node:e}=n;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 Rn.range(e.to,e.from)}return t}));return t(Jg(e,i)),!0},preventDefault:!0},{key:"Mod-[",run:Gm},{key:"Mod-]",run:Bm},{key:"Mod-Alt-\\",run:({state:e,dispatch:t})=>{if(e.readOnly)return!1;let i=Object.create(null),n=new Vd(e,{overrideIndentation:e=>{let t=i[e];return null==t?-1:t}}),r=zm(e,((t,r,o)=>{let s=Ad(n,t.from);if(null==s)return;/\S/.test(t.text)||(s=0);let a=/^\s*/.exec(t.text)[0],l=Yd(e,s);(a!=l||o.from{if(e.state.readOnly)return!1;let{state:t}=e,i=t.changes(qm(t).map((({from:e,to:i})=>(e>0?e--:ie.moveVertically(t,!0))).map(i);return e.dispatch({changes:i,selection:n,scrollIntoView:!0,userEvent:"delete.line"}),!0}},{key:"Shift-Mod-\\",run:({state:e,dispatch:t})=>function(e,t,i){let n=!1,r=Hg(e.selection,(t=>{let r=Xf(e,t.head,-1)||Xf(e,t.head,1)||t.head>0&&Xf(e,t.head-1,1)||t.head{let{state:t}=e,i=t.doc.lineAt(t.selection.main.from),n=Pg(e.state,i.from);return n.line?Sg(e):!!n.block&&Xg(e)}},{key:"Alt-A",run:xg}].concat(Lm);function Fm(){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 n in i)if(Object.prototype.hasOwnProperty.call(i,n)){var r=i[n];"string"==typeof r?e.setAttribute(n,r):null!=r&&(e[n]=r)}t++}for(;te.normalize("NFKD"):e=>e;class eb{constructor(e,t,i=0,n=e.length,r,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,n),this.bufferStart=i,this.normalize=r?e=>r(Jm(e)):Jm,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 gn(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=mn(e),i=this.bufferStart+this.bufferPos;this.bufferPos+=bn(e);let n=this.normalize(t);for(let e=0,r=i;;e++){let o=n.charCodeAt(e),s=this.match(o,r);if(e==n.length-1){if(s)return this.value=s,this;break}r==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,n=i+t[0].length;if(this.matchPos=ab(this.text,n+(i==n?1:0)),i==this.curLineStart+this.curLine.length&&this.nextLine(),(ithis.value.to)&&(!this.test||this.test(i,n,t)))return this.value={from:i,to:n,match:t},this;e=this.matchPos-this.curLineStart}else{if(!(this.curLineStart+this.curLine.length=i||n.to<=t){let n=new ob(t,e.sliceString(t,i));return rb.set(e,n),n}if(n.from==t&&n.to==i)return n;let{text:r,from:o}=n;return o>t&&(r=e.sliceString(t,o)+r,o=t),n.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=ab(this.text,i+(e==i?1:0)),this}if(this.flat.to==this.to)return this.done=!0,this;this.flat=ob.get(this.text,this.flat.from,this.chunkEnd(this.flat.from+2*this.flat.text.length))}}}function ab(e,t){if(t>=e.length)return t;let i,n=e.lineAt(t);for(;t=56320&&i<57344;)t++;return t}function lb(e){let t=Fm("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:n}=e,r=n.doc.lineAt(n.selection.main.head),[,o,s,a,l]=i,c=a?+a.slice(1):0,O=s?+s:r.number;if(s&&l){let e=O/100;o&&(e=e*("-"==o?-1:1)+r.number/n.doc.lines),O=Math.round(n.doc.lines*e)}else s&&o&&(O=O*("-"==o?-1:1)+r.number);let h=n.doc.line(Math.max(1,Math.min(n.doc.lines,O))),u=Rn.cursor(h.from+Math.max(0,Math.min(c,h.length)));e.dispatch({effects:[cb.of(!1),ah.scrollIntoView(u.from,{y:"center"})],selection:u}),e.focus()}return{dom:Fm("form",{class:"cm-gotoLine",onkeydown:t=>{27==t.keyCode?(t.preventDefault(),e.dispatch({effects:cb.of(!1)}),e.focus()):13==t.keyCode&&(t.preventDefault(),i())},onsubmit:e=>{e.preventDefault(),i()}},Fm("label",e.state.phrase("Go to line"),": ",t)," ",Fm("button",{class:"cm-button",type:"submit"},e.state.phrase("go")))}}"undefined"!=typeof Symbol&&(nb.prototype[Symbol.iterator]=sb.prototype[Symbol.iterator]=function(){return this});const cb=Or.define(),Ob=(Wn.define({create:()=>!0,update(e,t){for(let i of t.effects)i.is(cb)&&(e=i.value);return e},provide:e=>$u.from(e,(e=>e?lb:null))}),ah.baseTheme({".cm-panel.cm-gotoLine":{padding:"2px 6px 4px","& label":{fontSize:"80%"}}}),{highlightWordAroundCursor:!1,minSelectionLength:1,maxMatches:100,wholeWords:!1}),hb=Vn.define({combine:e=>wr(e,Ob,{highlightWordAroundCursor:(e,t)=>e||t,minSelectionLength:Math.min,maxMatches:Math.min})});function ub(e){let t=[mb,gb];return e&&t.push(hb.of(e)),t}const db=Xl.mark({class:"cm-selectionMatch"}),fb=Xl.mark({class:"cm-selectionMatch cm-selectionMatch-main"});function pb(e,t,i,n){return!(0!=i&&e(t.sliceDoc(i-1,i))==br.Word||n!=t.doc.length&&e(t.sliceDoc(n,n+1))==br.Word)}const gb=Fl.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(hb),{state:i}=e,n=i.selection;if(n.ranges.length>1)return Xl.none;let r,o=n.main,s=null;if(o.empty){if(!t.highlightWordAroundCursor)return Xl.none;let e=i.wordAt(o.head);if(!e)return Xl.none;s=i.charCategorizer(o.head),r=i.sliceDoc(e.from,e.to)}else{let e=o.to-o.from;if(e200)return Xl.none;if(t.wholeWords){if(r=i.sliceDoc(o.from,o.to),s=i.charCategorizer(o.head),!pb(s,i,o.from,o.to)||!function(e,t,i,n){return e(t.sliceDoc(i,i+1))==br.Word&&e(t.sliceDoc(n-1,n))==br.Word}(s,i,o.from,o.to))return Xl.none}else if(r=i.sliceDoc(o.from,o.to).trim(),!r)return Xl.none}let a=[];for(let n of e.visibleRanges){let e=new eb(i.doc,r,n.from,n.to);for(;!e.next().done;){let{from:n,to:r}=e.value;if((!s||pb(s,i,n,r))&&(o.empty&&n<=o.from&&r>=o.to?a.push(fb.range(n,r)):(n>=o.to||r<=o.from)&&a.push(db.range(n,r)),a.length>t.maxMatches))return Xl.none}}return Xl.set(a)}},{decorations:e=>e.decorations}),mb=ah.baseTheme({".cm-selectionMatch":{backgroundColor:"#99ff7780"},".cm-searchMatch .cm-selectionMatch":{backgroundColor:"transparent"}});const bb=({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,n=Rn.create(i.ranges.map((t=>e.wordAt(t.head)||Rn.cursor(t.head))),i.mainIndex);return!n.eq(i)&&(t(e.update({selection:n})),!0)})({state:e,dispatch:t});let n=e.sliceDoc(i[0].from,i[0].to);if(e.selection.ranges.some((t=>e.sliceDoc(t.from,t.to)!=n)))return!1;let r=function(e,t){let{main:i,ranges:n}=e.selection,r=e.wordAt(i.head),o=r&&r.from==i.from&&r.to==i.to;for(let i=!1,r=new eb(e.doc,t,n[n.length-1].to);;){if(r.next(),!r.done){if(i&&n.some((e=>e.from==r.value.from)))continue;if(o){let t=e.wordAt(r.value.from);if(!t||t.from!=r.value.from||t.to!=r.value.to)continue}return r.value}if(i)return null;r=new eb(e.doc,t,0,Math.max(0,n[n.length-1].from-1)),i=!0}}(e,n);return!!r&&(t(e.update({selection:e.selection.addRange(Rn.range(r.from,r.to),!1),effects:ah.scrollIntoView(r.to)})),!0)},$b=Vn.define({combine:e=>wr(e,{top:!1,caseSensitive:!1,literal:!1,regexp:!1,wholeWord:!1,createPanel:e=>new Ib(e),scrollToMatch:e=>ah.scrollIntoView(e)})});class Qb{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,ib),!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 Pb(this):new wb(this)}getCursor(e,t=0,i){let n=e.doc?e:yr.create({doc:e});return null==i&&(i=n.doc.length),this.regexp?_b(this,n,t,i):yb(this,n,t,i)}}class vb{constructor(e){this.spec=e}}function yb(e,t,i,n){return new eb(t.doc,e.unquoted,i,n,e.caseSensitive?void 0:e=>e.toLowerCase(),e.wholeWord?function(e,t){return(i,n,r,o)=>((o>i||o+r.length=t)return null;n.push(i.value)}return n}highlight(e,t,i,n){let r=yb(this.spec,e,Math.max(0,t-this.spec.unquoted.length),Math.min(i+this.spec.unquoted.length,e.doc.length));for(;!r.next().done;)n(r.value.from,r.value.to)}}function _b(e,t,i,n){return new nb(t.doc,e.search,{ignoreCase:!e.caseSensitive,test:e.wholeWord?Xb(t.charCategorizer(t.selection.main.head)):void 0},i,n)}function Sb(e,t){return e.slice(hn(e,t,!1),t)}function xb(e,t){return e.slice(t,hn(e,t))}function Xb(e){return(t,i,n)=>!n[0].length||(e(Sb(n.input,n.index))!=br.Word||e(xb(n.input,n.index))!=br.Word)&&(e(xb(n.input,n.index+n[0].length))!=br.Word||e(Sb(n.input,n.index+n[0].length))!=br.Word)}class Pb extends vb{nextMatch(e,t,i){let n=_b(this.spec,e,i,e.doc.length).next();return n.done&&(n=_b(this.spec,e,0,t).next()),n.done?null:n.value}prevMatchInRange(e,t,i){for(let n=1;;n++){let r=Math.max(t,i-1e4*n),o=_b(this.spec,e,r,i),s=null;for(;!o.next().done;)s=o.value;if(s&&(r==t||s.from>r+10))return s;if(r==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;n.push(i.value)}return n}highlight(e,t,i,n){let r=_b(this.spec,e,Math.max(0,t-250),Math.min(i+250,e.doc.length));for(;!r.next().done;)n(r.value.from,r.value.to)}}const kb=Or.define(),Tb=Or.define(),Rb=Wn.define({create:e=>new Yb(Mb(e).create(),null),update(e,t){for(let i of t.effects)i.is(kb)?e=new Yb(i.value.create(),e.panel):i.is(Tb)&&(e=new Yb(e.query,i.value?jb:null));return e},provide:e=>$u.from(e,(e=>e.panel))});class Yb{constructor(e,t){this.query=e,this.panel=t}}const Ab=Xl.mark({class:"cm-searchMatch"}),Vb=Xl.mark({class:"cm-searchMatch cm-searchMatch-selected"}),Zb=Fl.fromClass(class{constructor(e){this.view=e,this.decorations=this.highlight(e.state.field(Rb))}update(e){let t=e.state.field(Rb);(t!=e.startState.field(Rb)||e.docChanged||e.selectionSet||e.viewportChanged)&&(this.decorations=this.highlight(t))}highlight({query:e,panel:t}){if(!t||!e.spec.valid)return Xl.none;let{view:i}=this,n=new kr;for(let t=0,r=i.visibleRanges,o=r.length;tr[t+1].from-500;)a=r[++t].to;e.highlight(i.state,s,a,((e,t)=>{let r=i.state.selection.ranges.some((i=>i.from==e&&i.to==t));n.add(e,t,r?Vb:Ab)}))}return n.finish()}},{decorations:e=>e.decorations});function Eb(e){return t=>{let i=t.state.field(Rb,!1);return i&&i.query.spec.valid?e(t,i):Bb(t)}}const Cb=Eb(((e,{query:t})=>{let{to:i}=e.state.selection.main,n=t.nextMatch(e.state,i,i);if(!n)return!1;let r=Rn.single(n.from,n.to),o=e.state.facet($b);return e.dispatch({selection:r,effects:[Fb(e,n),o.scrollToMatch(r.main,e)],userEvent:"select.search"}),zb(e),!0})),Nb=Eb(((e,{query:t})=>{let{state:i}=e,{from:n}=i.selection.main,r=t.prevMatch(i,n,n);if(!r)return!1;let o=Rn.single(r.from,r.to),s=e.state.facet($b);return e.dispatch({selection:o,effects:[Fb(e,r),s.scrollToMatch(o.main,e)],userEvent:"select.search"}),zb(e),!0})),qb=Eb(((e,{query:t})=>{let i=t.matchAll(e.state,1e3);return!(!i||!i.length||(e.dispatch({selection:Rn.create(i.map((e=>Rn.range(e.from,e.to)))),userEvent:"select.search.matches"}),0))})),Ub=Eb(((e,{query:t})=>{let{state:i}=e,{from:n,to:r}=i.selection.main;if(i.readOnly)return!1;let o=t.nextMatch(i,n,n);if(!o)return!1;let s,a,l=[],c=[];if(o.from==n&&o.to==r&&(a=i.toText(t.getReplacement(o)),l.push({from:o.from,to:o.to,insert:a}),o=t.nextMatch(i,o.from,o.to),c.push(ah.announce.of(i.phrase("replaced match on line $",i.doc.lineAt(n).number)+"."))),o){let t=0==l.length||l[0].from>=o.to?0:o.to-o.from-a.length;s=Rn.single(o.from-t,o.to-t),c.push(Fb(e,o)),c.push(i.facet($b).scrollToMatch(s.main,e))}return e.dispatch({changes:l,selection:s,effects:c,userEvent:"input.replace"}),!0})),Wb=Eb(((e,{query:t})=>{if(e.state.readOnly)return!1;let i=t.matchAll(e.state,1e9).map((e=>{let{from:i,to:n}=e;return{from:i,to:n,insert:t.getReplacement(e)}}));if(!i.length)return!1;let n=e.state.phrase("replaced $ matches",i.length)+".";return e.dispatch({changes:i,effects:ah.announce.of(n),userEvent:"input.replace.all"}),!0}));function jb(e){return e.state.facet($b).createPanel(e)}function Mb(e,t){var i,n,r,o,s;let a=e.selection.main,l=a.empty||a.to>a.from+100?"":e.sliceDoc(a.from,a.to);if(t&&!l)return t;let c=e.facet($b);return new Qb({search:(null!==(i=null==t?void 0:t.literal)&&void 0!==i?i:c.literal)?l:l.replace(/\n/g,"\\n"),caseSensitive:null!==(n=null==t?void 0:t.caseSensitive)&&void 0!==n?n:c.caseSensitive,literal:null!==(r=null==t?void 0:t.literal)&&void 0!==r?r:c.literal,regexp:null!==(o=null==t?void 0:t.regexp)&&void 0!==o?o:c.regexp,wholeWord:null!==(s=null==t?void 0:t.wholeWord)&&void 0!==s?s:c.wholeWord})}function Db(e){let t=pu(e,jb);return t&&t.dom.querySelector("[main-field]")}function zb(e){let t=Db(e);t&&t==e.root.activeElement&&t.select()}const Bb=e=>{let t=e.state.field(Rb,!1);if(t&&t.panel){let i=Db(e);if(i&&i!=e.root.activeElement){let n=Mb(e.state,t.query.spec);n.valid&&e.dispatch({effects:kb.of(n)}),i.focus(),i.select()}}else e.dispatch({effects:[Tb.of(!0),t?kb.of(Mb(e.state,t.query.spec)):Or.appendConfig.of(Jb)]});return!0},Gb=e=>{let t=e.state.field(Rb,!1);if(!t||!t.panel)return!1;let i=pu(e,jb);return i&&i.dom.contains(e.root.activeElement)&&e.focus(),e.dispatch({effects:Tb.of(!1)}),!0};class Ib{constructor(e){this.view=e;let t=this.query=e.state.field(Rb).query.spec;function i(e,t,i){return Fm("button",{class:"cm-button",name:e,onclick:t,type:"button"},i)}this.commit=this.commit.bind(this),this.searchField=Fm("input",{value:t.search,placeholder:Lb(e,"Find"),"aria-label":Lb(e,"Find"),class:"cm-textfield",name:"search",form:"","main-field":"true",onchange:this.commit,onkeyup:this.commit}),this.replaceField=Fm("input",{value:t.replace,placeholder:Lb(e,"Replace"),"aria-label":Lb(e,"Replace"),class:"cm-textfield",name:"replace",form:"",onchange:this.commit,onkeyup:this.commit}),this.caseField=Fm("input",{type:"checkbox",name:"case",form:"",checked:t.caseSensitive,onchange:this.commit}),this.reField=Fm("input",{type:"checkbox",name:"re",form:"",checked:t.regexp,onchange:this.commit}),this.wordField=Fm("input",{type:"checkbox",name:"word",form:"",checked:t.wholeWord,onchange:this.commit}),this.dom=Fm("div",{onkeydown:e=>this.keydown(e),class:"cm-search"},[this.searchField,i("next",(()=>Cb(e)),[Lb(e,"next")]),i("prev",(()=>Nb(e)),[Lb(e,"previous")]),i("select",(()=>qb(e)),[Lb(e,"all")]),Fm("label",null,[this.caseField,Lb(e,"match case")]),Fm("label",null,[this.reField,Lb(e,"regexp")]),Fm("label",null,[this.wordField,Lb(e,"by word")]),...e.state.readOnly?[]:[Fm("br"),this.replaceField,i("replace",(()=>Ub(e)),[Lb(e,"replace")]),i("replaceAll",(()=>Wb(e)),[Lb(e,"replace all")])],Fm("button",{name:"close",onclick:()=>Gb(e),"aria-label":Lb(e,"close"),type:"button"},["×"])])}commit(){let e=new Qb({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:kb.of(e)}))}keydown(e){!function(e,t,i){return $h(mh(e.state),t,e,i)}(this.view,e,"search-panel")?13==e.keyCode&&e.target==this.searchField?(e.preventDefault(),(e.shiftKey?Nb:Cb)(this.view)):13==e.keyCode&&e.target==this.replaceField&&(e.preventDefault(),Ub(this.view)):e.preventDefault()}update(e){for(let t of e.transactions)for(let e of t.effects)e.is(kb)&&!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($b).top}}function Lb(e,t){return e.state.phrase(t)}const Kb=/[\s\.,:;?!]/;function Fb(e,{from:t,to:i}){let n=e.state.doc.lineAt(t),r=e.state.doc.lineAt(i).to,o=Math.max(n.from,t-30),s=Math.min(r,i+30),a=e.state.sliceDoc(o,s);if(o!=n.from)for(let e=0;e<30;e++)if(!Kb.test(a[e+1])&&Kb.test(a[e])){a=a.slice(e);break}if(s!=r)for(let e=a.length-1;e>a.length-30;e--)if(!Kb.test(a[e-1])&&Kb.test(a[e])){a=a.slice(0,e);break}return ah.announce.of(`${e.state.phrase("current match")}. ${a} ${e.state.phrase("on line")} ${n.number}.`)}const Hb=ah.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"}}),Jb=[Rb,Gn.low(Zb),Hb];class e${static create(e,t,i,n,r){return new e$(e,t,i,n+(n<<8)+e+(t<<4)|0,r,[],[])}constructor(e,t,i,n,r,o,s){this.type=e,this.value=t,this.from=i,this.hash=n,this.end=r,this.children=o,this.positions=s,this.hashProp=[[zr.contextHash,n]]}addChild(e,t){e.prop(zr.contextHash)!=this.hash&&(e=new Jr(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 Jr(e.types[this.type],this.children,this.positions,t-this.from).balance({makeTree:(e,t,i)=>new Jr(Ir.none,e,t,i,this.hashProp)})}}var t$;!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"}(t$||(t$={}));class i${constructor(e,t){this.start=e,this.content=t,this.marks=[],this.parsers=[]}}class n${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 a$(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 n=t;n=t.stack[i.depth+1].value+i.baseIndent)return!0;if(i.indent>=i.baseIndent+4)return!1;let n=(e.type==t$.OrderedList?f$:d$)(i,t,!1);return n>0&&(e.type!=t$.BulletList||h$(i,t,!1)<0)&&i.text.charCodeAt(i.pos+n-1)==e.value}const o$={[t$.Blockquote]:(e,t,i)=>62==i.next&&(i.markers.push(j$(t$.QuoteMark,t.lineStart+i.pos,t.lineStart+i.pos+1)),i.moveBase(i.pos+(s$(i.text.charCodeAt(i.pos+1))?2:1)),e.end=t.lineStart+i.text.length,!0),[t$.ListItem]:(e,t,i)=>!(i.indent-1||(i.moveBaseColumn(i.baseIndent+e.value),0)),[t$.OrderedList]:r$,[t$.BulletList]:r$,[t$.Document]:()=>!0};function s$(e){return 32==e||9==e||10==e||13==e}function a$(e,t=0){for(;ti&&s$(e.charCodeAt(t-1));)t--;return t}function c$(e){if(96!=e.next&&126!=e.next)return-1;let t=e.pos+1;for(;t-1&&e.depth==t.stack.length||n<3?-1:1}function u$(e,t){for(let i=e.stack.length-1;i>=0;i--)if(e.stack[i].type==t)return!0;return!1}function d$(e,t,i){return 45!=e.next&&43!=e.next&&42!=e.next||e.pos!=e.text.length-1&&!s$(e.text.charCodeAt(e.pos+1))||!(!i||u$(t,t$.BulletList)||e.skipSpace(e.pos+2)=48&&r<=57;){if(n++,n==e.text.length)return-1;r=e.text.charCodeAt(n)}return n==e.pos||n>e.pos+9||46!=r&&41!=r||ne.pos+1||49!=e.next)?-1:n+1-e.pos}function p$(e){if(35!=e.next)return-1;let t=e.pos+1;for(;t6?-1:i}function g$(e){if(45!=e.next&&61!=e.next||e.indent>=e.baseIndent+4)return-1;let t=e.pos+1;for(;t/,$$=/\?>/,Q$=[[/^<(?:script|pre|style)(?:\s|>|$)/i,/<\/(?:script|pre|style)>/i],[/^\s*/i.exec(n);if(o)return e.append(j$(t$.Comment,i,i+1+o[0].length));let s=/^\?[^]*?\?>/.exec(n);if(s)return e.append(j$(t$.ProcessingInstruction,i,i+1+s[0].length));let a=/^(?:![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(n);return a?e.append(j$(t$.HTMLTag,i,i+1+a[0].length)):-1},Emphasis(e,t,i){if(95!=t&&42!=t)return-1;let n=i+1;for(;e.char(n)==t;)n++;let r=e.slice(i-1,i),o=e.slice(n,n+1),s=I$.test(r),a=I$.test(o),l=/\s|^$/.test(r),c=/\s|^$/.test(o),O=!c&&(!a||l||s),h=!l&&(!s||c||a),u=O&&(42==t||!h||s),d=h&&(42==t||!O||a);return e.append(new G$(95==t?M$:D$,i,n,(u?1:0)|(d?2:0)))},HardBreak(e,t,i){if(92==t&&10==e.char(i+1))return e.append(j$(t$.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(j$(t$.HardBreak,i,t+1))}return-1},Link:(e,t,i)=>91==t?e.append(new G$(z$,i,i+1,1)):-1,Image:(e,t,i)=>33==t&&91==e.char(i+1)?e.append(new G$(B$,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 n=e.parts[t];if(n instanceof G$&&(n.type==z$||n.type==B$)){if(!n.side||e.skipSpace(n.to)==i&&!/[(\[]/.test(e.slice(i+1,i+2)))return e.parts[t]=null,-1;let r=e.takeContent(t),o=e.parts[t]=K$(e,r,n.type==z$?t$.Link:t$.Image,n.from,i+1);if(n.type==z$)for(let i=0;it?j$(t$.URL,t+i,r+i):r==e.length&&null}}function H$(e,t,i){let n=e.charCodeAt(t);if(39!=n&&34!=n&&40!=n)return!1;let r=40==n?41:n;for(let n=t+1,o=!1;n=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,n,r){return this.append(new G$(e,t,i,(n?1:0)|(r?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 G$&&1&e.side&&e.type==i.type&&!(r&&(1&i.side||2&e.side)&&(e.to-e.from+o)%3==0&&((e.to-e.from)%3||o%3))){n=e;break}}if(!n)continue;let a=i.type.resolve,l=[],c=n.from,O=i.to;if(r){let e=Math.min(2,n.to-n.from,o);c=n.to-e,O=i.from+e,a=1==e?"Emphasis":"StrongEmphasis"}n.type.mark&&l.push(this.elt(n.type.mark,c,n.to));for(let e=s+1;e=0;t--){let i=this.parts[t];if(i instanceof G$&&i.type==e)return t}return null}takeContent(e){let t=this.resolveMarkers(e);return this.parts.length=e,t}skipSpace(e){return a$(this.text,e-this.offset)+this.offset}elt(e,t,i,n){return"string"==typeof e?j$(this.parser.getNodeType(e),t,i,n):new W$(e,t)}}function tQ(e,t){if(!t.length)return e;if(!e.length)return t;let i=e.slice(),n=0;for(let e of t){for(;n(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 n=e+this.fragment.offset;for(;i.to<=n;)if(!i.parent())return!1;for(;;){if(i.from>=n)return this.fragment.from<=t;if(!i.childAfter(n))return!1}}matches(e){let t=this.cursor.tree;return t&&t.prop(zr.contextHash)==e}takeNodes(e){let t=this.cursor,i=this.fragment.offset,n=this.fragmentEnd-(this.fragment.openEnd?1:0),r=e.absoluteLineStart,o=r,s=e.block.children.length,a=o,l=s;for(;;){if(t.to-i>n){if(t.type.isAnonymous&&t.firstChild())continue;break}let r=rQ(t.from-i,e.ranges);if(t.to-i<=e.ranges[e.rangeI].to)e.addNode(t.tree,r);else{let i=new Jr(e.parser.nodeSet.types[t$.Paragraph],[],[],0,e.block.hashProp);e.reusePlaceholders.set(i,t.tree),e.addNode(i,r)}if(t.type.is("Block")&&(iQ.indexOf(t.type.id)<0?(o=t.to-i,s=e.block.children.length):(o=a,s=l,a=t.to-i,l=e.block.children.length)),!t.nextSibling())break}for(;e.block.children.length>s;)e.block.children.pop(),e.block.positions.pop();return o-r}}function rQ(e,t){let i=e;for(let n=1;n_$[e])),Object.keys(_$).map((e=>P$[e])),Object.keys(_$),k$,o$,Object.keys(L$).map((e=>L$[e])),Object.keys(L$),[]);function aQ(e,t,i){let n=[];for(let r=e.firstChild,o=t;;r=r.nextSibling){let e=r?r.from:i;if(e>o&&n.push({from:o,to:e}),!r)break;o=r.to}return n}function lQ(e){let{codeParser:t,htmlParser:i}=e,n=yo(((e,n)=>{let r=e.type.id;if(!t||r!=t$.CodeBlock&&r!=t$.FencedCode){if(i&&(r==t$.HTMLBlock||r==t$.HTMLTag))return{parser:i,overlay:aQ(e.node,e.from,e.to)}}else{let i="";if(r==t$.FencedCode){let t=e.node.getChild(t$.CodeInfo);t&&(i=n.read(t.from,t.to))}let o=t(i);if(o)return{parser:o,overlay:e=>e.type.id==t$.CodeText}}return null}));return{wrap:n}}const cQ={resolve:"Strikethrough",mark:"StrikethroughMark"},OQ={defineNodes:[{name:"Strikethrough",style:{"Strikethrough/...":cd.strikethrough}},{name:"StrikethroughMark",style:cd.processingInstruction}],parseInline:[{name:"Strikethrough",parse(e,t,i){if(126!=t||126!=e.char(i+1)||126==e.char(i+2))return-1;let n=e.slice(i-1,i),r=e.slice(i+2,i+3),o=/\s|^$/.test(n),s=/\s|^$/.test(r),a=I$.test(n),l=I$.test(r);return e.addDelimiter(cQ,i,i+2,!s&&(!l||o||a),!o&&(!a||s||l))},after:"Emphasis"}]};function hQ(e,t,i=0,n,r=0){let o=0,s=!0,a=-1,l=-1,c=!1,O=()=>{n.push(e.elt("TableCell",r+a,r+l,e.parser.parseInline(t.slice(a,l),r+a)))};for(let h=i;h-1)&&o++,s=!1,n&&(a>-1&&O(),n.push(e.elt("TableDelimiter",h+r,h+r+1))),a=l=-1),c=!c&&92==i}return a>-1&&(o++,n&&O()),o}function uQ(e,t){for(let i=t;iuQ(t.content,0)?new fQ:null,endLeaf(e,t,i){if(i.parsers.some((e=>e instanceof fQ))||!uQ(t.text,t.basePos))return!1;let n=e.scanLine(e.absoluteLineEnd+1).text;return dQ.test(n)&&hQ(e,t.text,t.basePos)==hQ(e,n,t.basePos)},before:"SetextHeading"}]};class gQ{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 mQ={defineNodes:[{name:"Task",block:!0,style:cd.list},{name:"TaskMarker",style:cd.atom}],parseBlock:[{name:"TaskList",leaf:(e,t)=>/^\[[ xX]\][ \t]/.test(t.content)&&"ListItem"==e.parentType().name?new gQ:null,after:"SetextHeading"}]},bQ=/(www\.)|(https?:\/\/)|([\w.+-]+@)|(mailto:|xmpp:)/gy,$Q=/[\w-]+(\.\w+(\.\w+)?)(\/[^\s<]*)?/gy,QQ=/[\w.+-]+@[\w-]+\.[\w.-]+/gy,vQ=/\/[a-zA-Z\d@.]+/gy;function yQ(e,t,i,n){let r=0;for(let o=t;oyQ(e,t,n,"("))n--;else{if(";"!=r||!(i=/&(?:#\d+|#x[a-f\d]+|\w+);$/.exec(e.slice(t,n))))break;n=t+i.index}}return n}(e.text,n+r[0].length):r[3]?o=wQ(e.text,n):(o=wQ(e.text,n+r[0].length),o>-1&&"xmpp:"==r[0]&&(vQ.lastIndex=o,r=vQ.exec(e.text),r&&(o=r.index+r[0].length))),o<0?-1:(e.addElement(e.elt("URL",i,o+e.offset)),o+e.offset)):-1}}]},SQ=[pQ,mQ,OQ,_Q];function xQ(e,t,i){return(n,r,o)=>{if(r!=e||n.char(o+1)==e)return-1;let s=[n.elt(i,o,o+1)];for(let r=o+1;r=65&&e<=90||95==e||e>=97&&e<=122||e>=161}function VQ(e){return 9==e||10==e||13==e||32==e}let ZQ=null,EQ=null,CQ=0;function NQ(e,t){let i=e.pos+t;if(CQ==i&&EQ==e)return ZQ;let n=e.peek(t);for(;VQ(n);)n=e.peek(++t);let r="";for(;AQ(n);)r+=String.fromCharCode(n),n=e.peek(++t);return EQ=e,CQ=i,ZQ=r?r.toLowerCase():n==qQ||n==UQ?void 0:null}const qQ=63,UQ=33;function WQ(e,t){this.name=e,this.parent=t,this.hash=t?t.hash:0;for(let t=0;tjQ.indexOf(t)>-1?new WQ(NQ(n,1)||"",e):e,reduce:(e,t)=>20==t&&e?e.parent:e,reuse(e,t,i,n){let r=t.type.id;return 6==r||36==r?new WQ(NQ(n,1)||"",e):e},hash:e=>e?e.hash:0,strict:!1}),DQ=new zo(((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 n=NQ(e,0);if(void 0===n)return;if(!n)return e.acceptToken(i?14:6);let r=t.context?t.context.name:null;if(i){if(n==r)return e.acceptToken(11);if(r&&RQ[r])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==n)return;e.acceptToken(13)}else{if("script"==n)return e.acceptToken(7);if("style"==n)return e.acceptToken(8);if("textarea"==n)return e.acceptToken(9);if(TQ.hasOwnProperty(n))return e.acceptToken(10);r&&YQ[r]&&YQ[r][n]?e.acceptToken(57,-1):e.acceptToken(6)}}),{contextual:!0}),zQ=new zo((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 BQ=new zo(((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 GQ(e,t,i){let n=2+e.length;return new zo((r=>{for(let o=0,s=0,a=0;;a++){if(r.next<0){a&&r.acceptToken(t);break}if(0==o&&60==r.next||1==o&&47==r.next||o>=2&&os?r.acceptToken(t,-s):r.acceptToken(i,-(s-2));break}if((10==r.next||13==r.next)&&a){r.acceptToken(t,1);break}o=s=0}else s++;r.advance()}}))}const IQ=GQ("script",54,1),LQ=GQ("style",55,2),KQ=GQ("textarea",56,3),FQ=ju({"Text RawText":cd.content,"StartTag StartCloseTag SelfClosingEndTag EndTag":cd.angleBracket,TagName:cd.tagName,"MismatchedCloseTag/TagName":[cd.tagName,cd.invalid],AttributeName:cd.attributeName,"AttributeValue UnquotedAttributeValue":cd.attributeValue,Is:cd.definitionOperator,"EntityReference CharacterReference":cd.character,Comment:cd.blockComment,ProcessingInst:cd.processingInstruction,DoctypeDecl:cd.documentMeta}),HQ=rs.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:MQ,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:[FQ],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 a=e.type.id;if(28==a)return tv(e,t,i);if(31==a)return tv(e,t,n);if(34==a)return tv(e,t,r);if(20==a&&o.length){let i,n=e.node,r=n.firstChild,s=r&&ev(r,t);if(s)for(let e of o)if(e.tag==s&&(!e.attrs||e.attrs(i||(i=JQ(n,t))))){let t=n.lastChild;return{parser:e.parser,overlay:[{from:r.to,to:37==t.type.id?t.from:n.to}]}}}if(s&&23==a){let i,n=e.node;if(i=n.firstChild){let e=s[t.read(i.from,i.to)];if(e)for(let i of e){if(i.tagName&&i.tagName!=ev(n.parent,t))continue;let e=n.lastChild;if(26==e.type.id){let t=e.from+1,n=e.lastChild,r=e.to-(n&&n.isError?0:1);if(r>t)return{parser:i.parser,overlay:[{from:t,to:r}]}}else if(27==e.type.id)return{parser:i.parser,overlay:[{from:e.from,to:e.to}]}}}}return null}))}const nv=[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 rv(e){return e>=65&&e<=90||e>=97&&e<=122||e>=161}function ov(e){return e>=48&&e<=57}const sv=new zo(((e,t)=>{for(let i=!1,n=0,r=0;;r++){let{next:o}=e;if(!(rv(o)||45==o||95==o||i&&ov(o))){i&&e.acceptToken(40==o?97:2==n&&t.canShift(2)?2:98);break}!i&&(45!=o||r>0)&&(i=!0),n===r&&45==o&&n++,e.advance()}})),av=new zo((e=>{if(nv.includes(e.peek(-1))){let{next:t}=e;(rv(t)||95==t||35==t||46==t||91==t||58==t||45==t)&&e.acceptToken(96)}})),lv=new zo((e=>{if(!nv.includes(e.peek(-1))){let{next:t}=e;if(37==t&&(e.advance(),e.acceptToken(1)),rv(t)){do{e.advance()}while(rv(e.next));e.acceptToken(1)}}})),cv=ju({"AtKeyword import charset namespace keyframes media supports":cd.definitionKeyword,"from to selector":cd.keyword,NamespaceName:cd.namespace,KeyframeName:cd.labelName,KeyframeRangeName:cd.operatorKeyword,TagName:cd.tagName,ClassName:cd.className,PseudoClassName:cd.constant(cd.className),IdName:cd.labelName,"FeatureName PropertyName":cd.propertyName,AttributeName:cd.attributeName,NumberLiteral:cd.number,KeywordQuery:cd.keyword,UnaryQueryOp:cd.operatorKeyword,"CallTag ValueName":cd.atom,VariableName:cd.variableName,Callee:cd.operatorKeyword,Unit:cd.unit,"UniversalSelector NestingSelector":cd.definitionOperator,MatchOp:cd.compareOperator,"ChildOp SiblingOp, LogicOp":cd.logicOperator,BinOp:cd.arithmeticOperator,Important:cd.modifier,Comment:cd.blockComment,ColorLiteral:cd.color,"ParenthesizedContent StringLiteral":cd.string,":":cd.punctuation,"PseudoOp #":cd.derefOperator,"; ,":cd.separator,"( )":cd.paren,"[ ]":cd.squareBracket,"{ }":cd.brace}),Ov={__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},hv={__proto__:null,"@import":114,"@media":138,"@charset":142,"@namespace":146,"@keyframes":152,"@supports":164},uv={__proto__:null,not:128,only:128},dv=rs.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:[av,lv,sv,1,2,3,4,new Do("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=>Ov[e]||-1},{term:56,get:e=>hv[e]||-1},{term:98,get:e=>uv[e]||-1}],tokenPrec:1169});let fv=null;function pv(){if(!fv&&"object"==typeof document&&document.body){let{style:e}=document.body,t=[],i=new Set;for(let n in e)"cssText"!=n&&"cssFloat"!=n&&"string"==typeof e[n]&&(/[A-Z]/.test(n)&&(n=n.replace(/[A-Z]/g,(e=>"-"+e.toLowerCase()))),i.has(n)||(t.push(n),i.add(n)));fv=t.sort().map((e=>({type:"property",label:e})))}return fv||[]}const gv=["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}))),mv=["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})))),bv=["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}))),$v=/^(\w[\w-]*|-\w[\w-]*|)$/,Qv=/^-(-[\w-]*)?$/;const vv=new bo,yv=["Declaration"];function wv(e){for(let t=e;;){if(t.type.isTop)return t;if(!(t=t.parent))return e}}function _v(e,t,i){if(t.to-t.from>4096){let n=vv.get(t);if(n)return n;let r=[],o=new Set,s=t.cursor(Hr.IncludeAnonymous);if(s.firstChild())do{for(let t of _v(e,s.node,i))o.has(t.label)||(o.add(t.label),r.push(t))}while(s.nextSibling());return vv.set(t,r),r}{let n=[],r=new Set;return t.cursor().iterate((t=>{var o;if(i(t)&&t.matchContext(yv)&&":"==(null===(o=t.node.nextSibling)||void 0===o?void 0:o.name)){let i=e.sliceString(t.from,t.to);r.has(i)||(r.add(i),n.push({label:i,type:"variable"}))}})),n}}const Sv=(e=>t=>{let{state:i,pos:n}=t,r=md(i).resolveInner(n,-1),o=r.type.isError&&r.from==r.to-1&&"-"==i.doc.sliceString(r.from,r.to);if("PropertyName"==r.name||(o||"TagName"==r.name)&&/^(Block|Styles)$/.test(r.resolve(r.to).name))return{from:r.from,options:pv(),validFor:$v};if("ValueName"==r.name)return{from:r.from,options:mv,validFor:$v};if("PseudoClassName"==r.name)return{from:r.from,options:gv,validFor:$v};if(e(r)||(t.explicit||o)&&function(e,t){var i;if(("("==e.name||e.type.isError)&&(e=e.parent||e),"ArgList"!=e.name)return!1;let n=null===(i=e.parent)||void 0===i?void 0:i.firstChild;return"Callee"==(null==n?void 0:n.name)&&"var"==t.sliceString(n.from,n.to)}(r,i.doc))return{from:e(r)||o?r.from:n,options:_v(i.doc,wv(r),e),validFor:Qv};if("TagName"==r.name){for(let{parent:e}=r;e;e=e.parent)if("Block"==e.name)return{from:r.from,options:pv(),validFor:$v};return{from:r.from,options:bv,validFor:$v}}if(!t.explicit)return null;let s=r.resolve(n),a=s.childBefore(n);return a&&":"==a.name&&"PseudoClassSelector"==s.name?{from:n,options:gv,validFor:$v}:a&&":"==a.name&&"Declaration"==s.name||"ArgList"==s.name?{from:n,options:mv,validFor:$v}:"Block"==s.name||"Styles"==s.name?{from:n,options:pv(),validFor:$v}:null})((e=>"VariableName"==e.name)),xv=gd.define({name:"css",parser:dv.configure({props:[Zd.add({Declaration:Md()}),zd.add({"Block KeyframeList":Bd})]}),languageData:{commentTokens:{block:{open:"/*",close:"*/"}},indentOnInput:/^\s*\}$/,wordChars:"-"}});const Xv=[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],Pv=new ns({start:!1,shift:(e,t)=>3==t||4==t||307==t?e:308==t,strict:!1}),kv=new zo(((e,t)=>{let{next:i}=e;(125==i||-1==i||t.context)&&e.acceptToken(305)}),{contextual:!0,fallback:!0}),Tv=new zo(((e,t)=>{let i,{next:n}=e;Xv.indexOf(n)>-1||(47!=n||47!=(i=e.peek(1))&&42!=i)&&(125==n||59==n||-1==n||t.context||e.acceptToken(304))}),{contextual:!0}),Rv=new zo(((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}),Yv=ju({"get set async static":cd.modifier,"for while do if else switch try catch finally return throw break continue default case":cd.controlKeyword,"in of await yield void typeof delete instanceof":cd.operatorKeyword,"let var const using function class extends":cd.definitionKeyword,"import export from":cd.moduleKeyword,"with debugger as new":cd.keyword,TemplateString:cd.special(cd.string),super:cd.atom,BooleanLiteral:cd.bool,this:cd.self,null:cd.null,Star:cd.modifier,VariableName:cd.variableName,"CallExpression/VariableName TaggedTemplateExpression/VariableName":cd.function(cd.variableName),VariableDefinition:cd.definition(cd.variableName),Label:cd.labelName,PropertyName:cd.propertyName,PrivatePropertyName:cd.special(cd.propertyName),"CallExpression/MemberExpression/PropertyName":cd.function(cd.propertyName),"FunctionDeclaration/VariableDefinition":cd.function(cd.definition(cd.variableName)),"ClassDeclaration/VariableDefinition":cd.definition(cd.className),PropertyDefinition:cd.definition(cd.propertyName),PrivatePropertyDefinition:cd.definition(cd.special(cd.propertyName)),UpdateOp:cd.updateOperator,"LineComment Hashbang":cd.lineComment,BlockComment:cd.blockComment,Number:cd.number,String:cd.string,Escape:cd.escape,ArithOp:cd.arithmeticOperator,LogicOp:cd.logicOperator,BitOp:cd.bitwiseOperator,CompareOp:cd.compareOperator,RegExp:cd.regexp,Equals:cd.definitionOperator,Arrow:cd.function(cd.punctuation),": Spread":cd.punctuation,"( )":cd.paren,"[ ]":cd.squareBracket,"{ }":cd.brace,"InterpolationStart InterpolationEnd":cd.special(cd.brace),".":cd.derefOperator,", ;":cd.separator,"@":cd.meta,TypeName:cd.typeName,TypeDefinition:cd.definition(cd.typeName),"type enum interface implements namespace module declare":cd.definitionKeyword,"abstract global Privacy readonly override":cd.modifier,"is keyof unique infer":cd.operatorKeyword,JSXAttributeValue:cd.attributeValue,JSXText:cd.content,"JSXStartTag JSXStartCloseTag JSXSelfCloseEndTag JSXEndTag":cd.angleBracket,"JSXIdentifier JSXNameSpacedName":cd.tagName,"JSXAttribute/JSXIdentifier JSXAttribute/JSXNameSpacedName":cd.attributeName,"JSXBuiltin/JSXIdentifier":cd.standard(cd.tagName)}),Av={__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},Vv={__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},Zv={__proto__:null,"<":139},Ev=rs.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:Pv,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:[Yv],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#Av[e]||-1},{term:330,get:e=>Vv[e]||-1},{term:68,get:e=>Zv[e]||-1}],tokenPrec:12827}),Cv=[qp("function ${name}(${params}) {\n\t${}\n}",{label:"function",detail:"definition",type:"keyword"}),qp("for (let ${index} = 0; ${index} < ${bound}; ${index}++) {\n\t${}\n}",{label:"for",detail:"loop",type:"keyword"}),qp("for (let ${name} of ${collection}) {\n\t${}\n}",{label:"for",detail:"of loop",type:"keyword"}),qp("do {\n\t${}\n} while (${})",{label:"do",detail:"loop",type:"keyword"}),qp("while (${}) {\n\t${}\n}",{label:"while",detail:"loop",type:"keyword"}),qp("try {\n\t${}\n} catch (${error}) {\n\t${}\n}",{label:"try",detail:"/ catch block",type:"keyword"}),qp("if (${}) {\n\t${}\n}",{label:"if",detail:"block",type:"keyword"}),qp("if (${}) {\n\t${}\n} else {\n\t${}\n}",{label:"if",detail:"/ else block",type:"keyword"}),qp("class ${name} {\n\tconstructor(${params}) {\n\t\t${}\n\t}\n}",{label:"class",detail:"definition",type:"keyword"}),qp('import {${names}} from "${module}"\n${}',{label:"import",detail:"named",type:"keyword"}),qp('import ${name} from "${module}"\n${}',{label:"import",detail:"default",type:"keyword"})],Nv=Cv.concat([qp("interface ${name} {\n\t${}\n}",{label:"interface",detail:"definition",type:"keyword"}),qp("type ${name} = ${type}",{label:"type",detail:"definition",type:"keyword"}),qp("enum ${name} {\n\t${}\n}",{label:"enum",detail:"definition",type:"keyword"})]),qv=new bo,Uv=new Set(["Script","Block","FunctionExpression","FunctionDeclaration","ArrowFunction","MethodDeclaration","ForStatement"]);function Wv(e){return(t,i)=>{let n=t.node.getChild("VariableDefinition");return n&&i(n,e),!0}}const jv=["FunctionDeclaration"],Mv={FunctionDeclaration:Wv("function"),ClassDeclaration:Wv("class"),ClassExpression:()=>!0,EnumDeclaration:Wv("constant"),TypeAliasDeclaration:Wv("type"),NamespaceDeclaration:Wv("namespace"),VariableDefinition(e,t){e.matchContext(jv)||t(e,"variable")},TypeDefinition(e,t){t(e,"type")},__proto__:null};function Dv(e,t){let i=qv.get(t);if(i)return i;let n=[],r=!0;function o(t,i){let r=e.sliceString(t.from,t.to);n.push({label:r,type:i})}return t.cursor(Hr.IncludeAnonymous).iterate((t=>{if(r)r=!1;else if(t.name){let e=Mv[t.name];if(e&&e(t,o)||Uv.has(t.name))return!1}else if(t.to-t.from>8192){for(let i of Dv(e,t.node))n.push(i);return!1}})),qv.set(t,n),n}const zv=/^[\w$\xa1-\uffff][\w$\d\xa1-\uffff]*$/,Bv=["TemplateString","String","RegExp","LineComment","BlockComment","VariableDefinition","TypeDefinition","Label","PropertyDefinition","PropertyName","PrivatePropertyDefinition","PrivatePropertyName",".","?."];function Gv(e){let t=md(e.state).resolveInner(e.pos,-1);if(Bv.indexOf(t.name)>-1)return null;let i="VariableName"==t.name||t.to-t.from<20&&zv.test(e.state.sliceDoc(t.from,t.to));if(!i&&!e.explicit)return null;let n=[];for(let i=t;i;i=i.parent)Uv.has(i.name)&&(n=n.concat(Dv(e.state.doc,i)));return{options:n,from:i?t.from:e.pos,validFor:zv}}const Iv=gd.define({name:"javascript",parser:Ev.configure({props:[Zd.add({IfStatement:Md({except:/^\s*({|else\b)/}),TryStatement:Md({except:/^\s*({|catch\b|finally\b)/}),LabeledStatement:e=>e.baseIndent,SwitchBody:e=>{let t=e.textAfter,i=/^\s*\}/.test(t),n=/^\s*(case|default)\b/.test(t);return e.baseIndent+(i?0:n?1:2)*e.unit},Block:Wd({closing:"}"}),ArrowFunction:e=>e.baseIndent+e.unit,"TemplateString BlockComment":()=>null,"Statement Property":Md({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}),zd.add({"Block ClassBody SwitchBody EnumBody ObjectExpression ArrayExpression ObjectType":Bd,BlockComment:e=>({from:e.from+2,to:e.to-2})})]}),languageData:{closeBrackets:{brackets:["(","[","{","'",'"',"`"]},commentTokens:{line:"//",block:{open:"/*",close:"*/"}},indentOnInput:/^\s*(?:case |default:|\{|\}|<\/)$/,wordChars:"$"}}),Lv={test:e=>/^JSX/.test(e.name),facet:ud({commentTokens:{block:{open:"{/*",close:"*/}"}}})},Kv=Iv.configure({dialect:"ts"},"typescript"),Fv=Iv.configure({dialect:"jsx",props:[dd.add((e=>e.isTop?[Lv]:void 0))]}),Hv=Iv.configure({dialect:"jsx ts",props:[dd.add((e=>e.isTop?[Lv]:void 0))]},"typescript");let Jv=e=>({label:e,type:"keyword"});const ey="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(Jv),ty=ey.concat(["declare","implements","private","protected","public"].map(Jv));function iy(e={}){let t=e.jsx?e.typescript?Hv:Fv:e.typescript?Kv:Iv,i=e.typescript?Nv.concat(ty):Cv.concat(ey);return new Xd(t,[Iv.data.of({autocomplete:Nf(Bv,Cf(i))}),Iv.data.of({autocomplete:Gv}),e.jsx?oy:[]])}function ny(e,t,i=e.length){for(let n=null==t?void 0:t.firstChild;n;n=n.nextSibling)if("JSXIdentifier"==n.name||"JSXBuiltin"==n.name||"JSXNamespacedName"==n.name||"JSXMemberExpression"==n.name)return e.sliceString(n.from,Math.min(n.to,i));return""}const ry="object"==typeof navigator&&/Android\b/.test(navigator.userAgent),oy=ah.inputHandler.of(((e,t,i,n,r)=>{if((ry?e.composing:e.compositionStarted)||e.state.readOnly||t!=i||">"!=n&&"/"!=n||!Iv.isActiveAt(e.state,t,-1))return!1;let o=r(),{state:s}=o,a=s.changeByRange((e=>{var t;let i,{head:r}=e,o=md(s).resolveInner(r-1,-1);if("JSXStartTag"==o.name&&(o=o.parent),s.doc.sliceString(r-1,r)!=n||"JSXAttributeValue"==o.name&&o.to>r);else{if(">"==n&&"JSXFragmentTag"==o.name)return{range:e,changes:{from:r,insert:""}};if("/"==n&&"JSXStartCloseTag"==o.name){let e=o.parent,n=e.parent;if(n&&e.from==r-2&&((i=ny(s.doc,n.firstChild,r))||"JSXFragmentTag"==(null===(t=n.firstChild)||void 0===t?void 0:t.name))){let e=`${i}>`;return{range:Rn.cursor(r+e.length,-1),changes:{from:r,insert:e}}}}else if(">"==n){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(r,r+2))&&(i=ny(s.doc,t,r)))return{range:e,changes:{from:r,insert:``}}}}return{range:e}}));return!a.changes.empty&&(e.dispatch([o,s.update(a,{userEvent:"input.complete",scrollIntoView:!0})]),!0)})),sy=["_blank","_self","_top","_parent"],ay=["ascii","utf-8","utf-16","latin1","latin1"],ly=["get","post","put","delete"],cy=["application/x-www-form-urlencoded","multipart/form-data","text/plain"],Oy=["true","false"],hy={},uy={a:{attrs:{href:null,ping:null,type:null,media:null,target:sy,hreflang:null}},abbr:hy,address:hy,area:{attrs:{alt:null,coords:null,href:null,target:null,ping:null,media:null,hreflang:null,type:null,shape:["default","rect","circle","poly"]}},article:hy,aside:hy,audio:{attrs:{src:null,mediagroup:null,crossorigin:["anonymous","use-credentials"],preload:["none","metadata","auto"],autoplay:["autoplay"],loop:["loop"],controls:["controls"]}},b:hy,base:{attrs:{href:null,target:sy}},bdi:hy,bdo:hy,blockquote:{attrs:{cite:null}},body:hy,br:hy,button:{attrs:{form:null,formaction:null,name:null,value:null,autofocus:["autofocus"],disabled:["autofocus"],formenctype:cy,formmethod:ly,formnovalidate:["novalidate"],formtarget:sy,type:["submit","reset","button"]}},canvas:{attrs:{width:null,height:null}},caption:hy,center:hy,cite:hy,code:hy,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:hy,del:{attrs:{cite:null,datetime:null}},details:{attrs:{open:["open"]}},dfn:hy,div:hy,dl:hy,dt:hy,em:hy,embed:{attrs:{src:null,type:null,width:null,height:null}},eventsource:{attrs:{src:null}},fieldset:{attrs:{disabled:["disabled"],form:null,name:null}},figcaption:hy,figure:hy,footer:hy,form:{attrs:{action:null,name:null,"accept-charset":ay,autocomplete:["on","off"],enctype:cy,method:ly,novalidate:["novalidate"],target:sy}},h1:hy,h2:hy,h3:hy,h4:hy,h5:hy,h6:hy,head:{children:["title","base","link","style","meta","script","noscript","command"]},header:hy,hgroup:hy,hr:hy,html:{attrs:{manifest:null}},i:hy,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:cy,formmethod:ly,formnovalidate:["novalidate"],formtarget:sy,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:hy,keygen:{attrs:{challenge:null,form:null,name:null,autofocus:["autofocus"],disabled:["disabled"],keytype:["RSA"]}},label:{attrs:{for:null,form:null}},legend:hy,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:hy,menu:{attrs:{label:null,type:["list","context","toolbar"]}},meta:{attrs:{content:null,charset:ay,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:hy,noscript:hy,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:hy,param:{attrs:{name:null,value:null}},pre:hy,progress:{attrs:{value:null,max:null}},q:{attrs:{cite:null}},rp:hy,rt:hy,ruby:hy,samp:hy,script:{attrs:{type:["text/javascript"],src:null,async:["async"],defer:["defer"],charset:ay}},section:hy,select:{attrs:{form:null,name:null,size:null,autofocus:["autofocus"],disabled:["disabled"],multiple:["multiple"]}},slot:{attrs:{name:null}},small:hy,source:{attrs:{src:null,type:null,media:null}},span:hy,strong:hy,style:{attrs:{type:["text/css"],media:null,scoped:null}},sub:hy,summary:hy,sup:hy,table:hy,tbody:hy,td:{attrs:{colspan:null,rowspan:null,headers:null}},template:hy,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:hy,th:{attrs:{colspan:null,rowspan:null,headers:null,scope:["row","col","rowgroup","colgroup"]}},thead:hy,time:{attrs:{datetime:null}},title:hy,tr:hy,track:{attrs:{src:null,label:null,default:null,kind:["subtitles","captions","descriptions","chapters","metadata"],srclang:null}},ul:{children:["li","script","template","ul","ol"]},var:hy,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:hy},dy={accesskey:null,class:null,contenteditable:Oy,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:Oy,autocorrect:Oy,autocapitalize:Oy,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":Oy,"aria-autocomplete":["inline","list","both","none"],"aria-busy":Oy,"aria-checked":["true","false","mixed","undefined"],"aria-controls":null,"aria-describedby":null,"aria-disabled":Oy,"aria-dropeffect":null,"aria-expanded":["true","false","undefined"],"aria-flowto":null,"aria-grabbed":["true","false","undefined"],"aria-haspopup":Oy,"aria-hidden":Oy,"aria-invalid":["true","false","grammar","spelling"],"aria-label":null,"aria-labelledby":null,"aria-level":null,"aria-live":["off","polite","assertive"],"aria-multiline":Oy,"aria-multiselectable":Oy,"aria-owns":null,"aria-posinset":null,"aria-pressed":["true","false","mixed","undefined"],"aria-readonly":Oy,"aria-relevant":null,"aria-required":Oy,"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},fy="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 fy)dy[e]=null;class py{constructor(e,t){this.tags=Object.assign(Object.assign({},uy),e),this.globalAttrs=Object.assign(Object.assign({},dy),t),this.allTags=Object.keys(this.tags),this.globalAttrNames=Object.keys(this.globalAttrs)}}function gy(e,t,i=e.length){if(!t)return"";let n=t.firstChild,r=n&&n.getChild("TagName");return r?e.sliceString(r.from,Math.min(r.to,i)):""}function my(e,t=!1){for(;e;e=e.parent)if("Element"==e.name){if(!t)return e;t=!1}return null}function by(e,t,i){let n=i.tags[gy(e,my(t))];return(null==n?void 0:n.children)||i.allTags}function $y(e,t){let i=[];for(let n=my(t);n&&!n.type.isTop;n=my(n.parent)){let r=gy(e,n);if(r&&"CloseTag"==n.lastChild.name)break;r&&i.indexOf(r)<0&&("EndTag"==t.name||t.from>=n.firstChild.to)&&i.push(r)}return i}py.default=new py;const Qy=/^[:\-\.\w\u00b7-\uffff]*$/;function vy(e,t,i,n,r){let o=/\s*>/.test(e.sliceDoc(r,r+5))?"":">",s=my(i,!0);return{from:n,to:r,options:by(e.doc,s,t).map((e=>({label:e,type:"type"}))).concat($y(e.doc,i).map(((e,t)=>({label:"/"+e,apply:"/"+e+o,type:"type",boost:99-t})))),validFor:/^\/?[:\-\.\w\u00b7-\uffff]*$/}}function yy(e,t,i,n){let r=/\s*>/.test(e.sliceDoc(n,n+5))?"":">";return{from:i,to:n,options:$y(e.doc,t).map(((e,t)=>({label:e,apply:e+r,type:"type",boost:99-t}))),validFor:Qy}}function wy(e,t){let{state:i,pos:n}=t,r=md(i).resolveInner(n,-1),o=r.resolve(n);for(let e,t=n;o==r&&(e=r.childBefore(t));){let i=e.lastChild;if(!i||!i.type.isError||i.from({label:e,type:"property"}))),validFor:Qy}}(i,e,r,"AttributeName"==r.name?r.from:n,n):"Is"==r.name||"AttributeValue"==r.name||"UnquotedAttributeValue"==r.name?function(e,t,i,n,r){var o;let s,a=null===(o=i.parent)||void 0===o?void 0:o.getChild("AttributeName"),l=[];if(a){let o=e.sliceDoc(a.from,a.to),c=t.globalAttrs[o];if(!c){let n=my(i),r=n?t.tags[gy(e.doc,n)]:null;c=(null==r?void 0:r.attrs)&&r.attrs[o]}if(c){let t=e.sliceDoc(n,r).toLowerCase(),i='"',o='"';/^['"]/.test(t)?(s='"'==t[0]?/^[^"]*$/:/^[^']*$/,i="",o=e.sliceDoc(r,r+1)==t[0]?"":t[0],t=t.slice(1),n++):s=/^[^\s<>='"]*$/;for(let e of c)l.push({label:e,apply:i+e+o,type:"constant"})}}return{from:n,to:r,options:l,validFor:s}}(i,e,r,"Is"==r.name?n:r.from,n):!t.explicit||"Element"!=o.name&&"Text"!=o.name&&"Document"!=o.name?null:function(e,t,i,n){let r=[],o=0;for(let n of by(e.doc,i,t))r.push({label:"<"+n,type:"type"});for(let t of $y(e.doc,i))r.push({label:"",type:"type",boost:99-o++});return{from:n,to:n,options:r,validFor:/^<\/?[:\-\.\w\u00b7-\uffff]*$/}}(i,e,r,n)}function _y(e){let{extraTags:t,extraGlobalAttributes:i}=e,n=i||t?new py(t,i):py.default;return e=>wy(n,e)}const Sy=Iv.parser.configure({top:"SingleExpression"}),xy=[{tag:"script",attrs:e=>"text/typescript"==e.type||"ts"==e.lang,parser:Kv.parser},{tag:"script",attrs:e=>"text/babel"==e.type||"text/jsx"==e.type,parser:Fv.parser},{tag:"script",attrs:e=>"text/typescript-jsx"==e.type,parser:Hv.parser},{tag:"script",attrs:e=>"importmap"==e.type||"speculationrules"==e.type,parser:Sy},{tag:"script",attrs:e=>!e.type||/^(?:text|application)\/(?:x-)?(?:java|ecma)script$|^module$|^$/i.test(e.type),parser:Iv.parser},{tag:"style",attrs:e=>(!e.lang||"css"==e.lang)&&(!e.type||/^(text\/)?(x-)?(stylesheet|css)$/i.test(e.type)),parser:xv.parser}],Xy=[{name:"style",parser:xv.parser.configure({top:"Styles"})}].concat(fy.map((e=>({name:e,parser:Iv.parser})))),Py=gd.define({name:"html",parser:HQ.configure({props:[Zd.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:"-._"}}),ky=Py.configure({wrap:iv(xy,Xy)});function Ty(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=iv((e.nestedLanguages||[]).concat(xy),(e.nestedAttributes||[]).concat(Xy)));let n=t?Py.configure({wrap:t,dialect:i}):i?ky.configure({dialect:i}):ky;return new Xd(n,[ky.data.of({autocomplete:_y(e)}),!1!==e.autoCloseTags?Yy:[],iy().support,new Xd(xv,xv.data.of({autocomplete:Sv})).support])}const Ry=new Set("area base br col command embed frame hr img input keygen link meta param source track wbr menuitem".split(" ")),Yy=ah.inputHandler.of(((e,t,i,n,r)=>{if(e.composing||e.state.readOnly||t!=i||">"!=n&&"/"!=n||!ky.isActiveAt(e.state,t,-1))return!1;let o=r(),{state:s}=o,a=s.changeByRange((e=>{var t,i,r;let o,a=s.doc.sliceString(e.from-1,e.to)==n,{head:l}=e,c=md(s).resolveInner(l-1,-1);if("TagName"!=c.name&&"StartTag"!=c.name||(c=c.parent),a&&">"==n&&"OpenTag"==c.name){if("CloseTag"!=(null===(i=null===(t=c.parent)||void 0===t?void 0:t.lastChild)||void 0===i?void 0:i.name)&&(o=gy(s.doc,c.parent,l))&&!Ry.has(o))return{range:e,changes:{from:l,to:l+(">"===s.doc.sliceString(l,l+1)?1:0),insert:``}}}else if(a&&"/"==n&&"IncompleteCloseTag"==c.name){let e=c.parent;if(c.from==l-2&&"CloseTag"!=(null===(r=e.lastChild)||void 0===r?void 0:r.name)&&(o=gy(s.doc,e,l))&&!Ry.has(o)){let e=l+(">"===s.doc.sliceString(l,l+1)?1:0),t=`${o}>`;return{range:Rn.cursor(l+t.length,-1),changes:{from:l,to:e,insert:t}}}}return{range:e}}));return!a.changes.empty&&(e.dispatch([o,s.update(a,{userEvent:"input.complete",scrollIntoView:!0})]),!0)})),Ay=ud({commentTokens:{block:{open:"\x3c!--",close:"--\x3e"}}}),Vy=new zr,Zy=sQ.configure({props:[zd.add((e=>!e.is("Block")||e.is("Document")||null!=Ey(e)?void 0:(e,t)=>({from:t.doc.lineAt(e.from).to,to:e.to}))),Vy.add(Ey),Zd.add({Document:()=>null}),hd.add({Document:Ay})]});function Ey(e){let t=/^(?:ATX|Setext)Heading(\d)$/.exec(e.name);return t?+t[1]:void 0}function Cy(e,t){let i=e;for(;;){let e,n=i.nextSibling;if(!n||null!=(e=Ey(n.type))&&e<=t)break;i=n}return i.to}const Ny=Dd.of(((e,t,i)=>{for(let n=md(e).resolveInner(i,-1);n&&!(n.fromi)return{from:i,to:t}}return null}));function qy(e){return new fd(Ay,e,[Ny],"markdown")}const Uy=qy(Zy),Wy=qy(Zy.configure([SQ,PQ,XQ,kQ]));class jy{constructor(e,t,i,n,r,o,s){this.node=e,this.from=t,this.to=i,this.spaceBefore=n,this.spaceAfter=r,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(+Dy(this.item,e)[2]+t):"";return this.spaceBefore+i+this.type+this.spaceAfter}}function My(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 n=[];for(let e=i.length-1;e>=0;e--){let r,o=i[e],s=t.lineAt(o.from),a=o.from-s.from;if("FencedCode"==o.name)n.push(new jy(o,a,a,"","","",null));else if("Blockquote"==o.name&&(r=/^ *>( ?)/.exec(s.text.slice(a))))n.push(new jy(o,a,a+r[0].length,"",r[1],">",null));else if("ListItem"==o.name&&"OrderedList"==o.parent.name&&(r=/^( *)\d+([.)])( *)/.exec(s.text.slice(a)))){let e=r[3],t=r[0].length;e.length>=4&&(e=e.slice(0,e.length-4),t-=4),n.push(new jy(o.parent,a,a+t,r[1],e,r[2],o))}else if("ListItem"==o.name&&"BulletList"==o.parent.name&&(r=/^( *)([-+*])( {1,4}\[[ xX]\])?( +)/.exec(s.text.slice(a)))){let e=r[4],t=r[0].length;e.length>4&&(e=e.slice(0,e.length-4),t-=4);let i=r[2];r[3]&&(i+=r[3].replace(/[xX]/," ")),n.push(new jy(o.parent,a,a+t,r[1],e,i,o))}}return n}function Dy(e,t){return/^(\s*)(\d+)(?=[.)])/.exec(t.sliceString(e.from,e.from+10))}function zy(e,t,i,n=0){for(let r=-1,o=e;;){if("ListItem"==o.name){let e=Dy(o,t),s=+e[2];if(r>=0){if(s!=r+1)return;i.push({from:o.from+e[1].length,to:o.from+e[0].length,insert:String(r+2+n)})}r=s}let e=o.nextSibling;if(!e)break;o=e}}function By(e,t){let i=/^[ \t]*/.exec(e)[0].length;if(!i||"\t"!=t.facet(Td))return e;let n="";for(let t=Ur(e,4,i);t>0;)t>=4?(n+="\t",t-=4):(n+=" ",t--);return n+e.slice(i)}function Gy(e){return"QuoteMark"==e.name||"ListMark"==e.name}const Iy=[{key:"Enter",run:({state:e,dispatch:t})=>{let i=md(e),{doc:n}=e,r=null,o=e.changeByRange((t=>{if(!t.empty||!Wy.isActiveAt(e,t.from))return r={range:t};let o=t.from,s=n.lineAt(o),a=My(i.resolveInner(o,-1),n);for(;a.length&&a[a.length-1].from>o-s.from;)a.pop();if(!a.length)return r={range:t};let l=a[a.length-1];if(l.to-l.spaceAfter.length>o-s.from)return r={range:t};let c=o>=l.to-l.spaceAfter.length&&!/\S/.test(s.text.slice(l.to));if(l.item&&c){if(l.node.firstChild.to>=o||s.from>0&&!/[^\s>]/.test(n.lineAt(s.from-1).text)){let e,t=a.length>1?a[a.length-2]:null,i="";t&&t.item?(e=s.from+t.from,i=t.marker(n,1)):e=s.from+(t?t.to:0);let r=[{from:e,to:o,insert:i}];return"OrderedList"==l.node.name&&zy(l.item,n,r,-2),t&&"OrderedList"==t.node.name&&zy(t.item,n,r),{range:Rn.cursor(e+i.length),changes:r}}{let t="";for(let e=0,i=a.length-2;e<=i;e++)t+=a[e].blank(e\s*$/.exec(i.text);if(r&&r.index==l.from){let n=e.changes([{from:i.from+r.index,to:i.to},{from:s.from+l.from,to:s.to}]);return{range:t.map(n),changes:n}}}let O=[];"OrderedList"==l.node.name&&zy(l.item,n,O);let h=l.item&&l.item.from]*/.exec(s.text)[0].length>=l.to)for(let e=0,t=a.length-1;e<=t;e++)u+=e!=t||h?a[e].blank(es.from&&/\s/.test(s.text.charAt(d-s.from-1));)d--;return u=By(u,e),O.push({from:d,to:o,insert:e.lineBreak+u}),{range:Rn.cursor(d+u.length+1),changes:O}}));return!r&&(t(e.update(o,{scrollIntoView:!0,userEvent:"input"})),!0)}},{key:"Backspace",run:({state:e,dispatch:t})=>{let i=md(e),n=null,r=e.changeByRange((t=>{let r=t.from,{doc:o}=e;if(t.empty&&Wy.isActiveAt(e,t.from)){let t=o.lineAt(r),n=My(function(e,t){let i,n=e.resolveInner(t,-1),r=t;for(Gy(n)&&(r=n.from,n=n.parent);i=n.childBefore(r);)if(Gy(i))r=i.from;else{if("OrderedList"!=i.name&&"BulletList"!=i.name)break;n=i.lastChild,r=n.to}return n}(i,r),o);if(n.length){let i=n[n.length-1],o=i.to-i.spaceAfter.length+(i.spaceAfter?1:0);if(r-t.from>o&&!/\S/.test(t.text.slice(o,r-t.from)))return{range:Rn.cursor(t.from+o),changes:{from:t.from+o,to:r}};if(r-t.from==o&&(!i.item||t.from<=i.item.from||!/\S/.test(t.text.slice(0,i.to)))){let n=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):Pd.matchLanguageName(e,i,!0),t instanceof Pd)return t.support?t.support.language.parser:Qd.getSkippingParser(t.load());if(t)return t.parser}return t?t.parser:null}}(t,s):void 0;a.push(lQ({codeParser:c,htmlParser:Ly.language.parser})),n&&l.push(Gn.high(ph.of(Iy)));let O=qy(r.configure(a));return o&&l.push(O.data.of({autocomplete:Fy})),new Xd(O,l)}function Fy(e){let{state:t,pos:i}=e,n=/<[:\-\.\w\u00b7-\uffff]*$/.exec(t.sliceDoc(i-25,i));if(!n)return null;let r=md(t).resolveInner(i,-1);for(;r&&!r.type.isTop;){if("CodeBlock"==r.name||"FencedCode"==r.name||"ProcessingInstructionBlock"==r.name||"CommentBlock"==r.name||"Link"==r.name||"Image"==r.name)return null;r=r.parent}return{from:i-n[0].length,to:i,options:Jy(),validFor:/^<[:\-\.\w\u00b7-\uffff]*$/}}let Hy=null;function Jy(){if(Hy)return Hy;let e=function(e){return wy(py.default,e)}(new Zf(yr.create({extensions:Ly}),0,!0));return Hy=e?e.options:[]}function ew(e){return e>=65&&e<=90||e>=97&&e<=122||e>=48&&e<=57}function tw(e){return e>=48&&e<=57||e>=97&&e<=102||e>=65&&e<=70}function iw(e,t,i){for(let n=!1;;){if(e.next<0)return;if(e.next==t&&!n)return void e.advance();n=i&&!n&&92==e.next,e.advance()}}function nw(e,t){for(;95==e.next||ew(e.next);)null!=t&&(t+=String.fromCharCode(e.next)),e.advance();return t}function rw(e,t){for(;48==e.next||49==e.next;)e.advance();t&&e.next==t&&e.advance()}function ow(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 sw(e){for(;!(e.next<0||10==e.next);)e.advance()}function aw(e,t){for(let i=0;i!=&|~^/",specialVar:"?",identifierQuotes:'"',words:cw(hw,Ow)};function dw(e){return new zo((t=>{var i;let{next:n}=t;if(t.advance(),aw(n,lw)){for(;aw(t.next,lw);)t.advance();t.acceptToken(36)}else if(36==n&&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==n||34==n&&e.doubleQuotedStrings)iw(t,n,e.backslashEscapes),t.acceptToken(3);else if(35==n&&e.hashComments||47==n&&47==t.next&&e.slashComments)sw(t),t.acceptToken(1);else if(45!=n||45!=t.next||e.spaceAfterDashes&&32!=t.peek(1))if(47==n&&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!=n&&69!=n||39!=t.next)if(110!=n&&78!=n||39!=t.next||!e.charSetCasts)if(95==n&&e.charSetCasts)for(let i=0;;i++){if(39==t.next&&i>1){t.advance(),iw(t,39,e.backslashEscapes),t.acceptToken(3);break}if(!ew(t.next))break;t.advance()}else if(e.plsqlQuotingMechanism&&(113==n||81==n)&&39==t.next&&t.peek(1)>0&&!aw(t.peek(1),lw)){let e=t.peek(1);t.advance(2),function(e,t){let i="[{<(".indexOf(String.fromCharCode(t)),n=i<0?t:"]}>)".charCodeAt(i);for(;;){if(e.next<0)return;if(e.next==n&&39==e.peek(1))return void e.advance(2);e.advance()}}(t,e),t.acceptToken(3)}else if(40==n)t.acceptToken(7);else if(41==n)t.acceptToken(8);else if(123==n)t.acceptToken(9);else if(125==n)t.acceptToken(10);else if(91==n)t.acceptToken(11);else if(93==n)t.acceptToken(12);else if(59==n)t.acceptToken(13);else if(e.unquotedBitLiterals&&48==n&&98==t.next)t.advance(),rw(t),t.acceptToken(22);else if(98!=n&&66!=n||39!=t.next&&34!=t.next){if(48==n&&(120==t.next||88==t.next)||(120==n||88==n)&&39==t.next){let e=39==t.next;for(t.advance();tw(t.next);)t.advance();e&&39==t.next&&t.advance(),t.acceptToken(4)}else if(46==n&&t.next>=48&&t.next<=57)ow(t,!0),t.acceptToken(4);else if(46==n)t.acceptToken(14);else if(n>=48&&n<=57)ow(t,!1),t.acceptToken(4);else if(aw(n,e.operatorChars)){for(;aw(t.next,e.operatorChars);)t.advance();t.acceptToken(15)}else if(aw(n,e.specialVar))t.next==n&&t.advance(),function(e){if(39==e.next||34==e.next||96==e.next){let t=e.next;e.advance(),iw(e,t,!1)}else nw(e)}(t),t.acceptToken(17);else if(aw(n,e.identifierQuotes))iw(t,n,!1),t.acceptToken(19);else if(58==n||44==n)t.acceptToken(16);else if(ew(n)){let r=nw(t,String.fromCharCode(n));t.acceptToken(46==t.next?18:null!==(i=e.words[r.toLowerCase()])&&void 0!==i?i:18)}}else{const i=t.next;t.advance(),e.treatBitsAsBytes?(iw(t,i,e.backslashEscapes),t.acceptToken(23)):(rw(t,i),t.acceptToken(22))}else t.advance(),iw(t,39,e.backslashEscapes),t.acceptToken(3);else t.advance(),iw(t,39,!0);else sw(t),t.acceptToken(1)}))}const fw=dw(uw),pw=rs.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,fw],topRules:{Script:[0,25]},tokenPrec:0});function gw(e){let t=e.cursor().moveTo(e.from,-1);for(;/Comment/.test(t.name);)t.moveTo(t.from,-1);return t.node}function mw(e,t){let i=e.sliceString(t.from,t.to),n=/^([`'"])(.*)\1$/.exec(i);return n?n[2]:i}function bw(e){return e&&("Identifier"==e.name||"QuotedIdentifier"==e.name)}function $w(e,t){if("CompositeIdentifier"==t.name){let i=[];for(let n=t.firstChild;n;n=n.nextSibling)bw(n)&&i.push(mw(e,n));return i}return[mw(e,t)]}function Qw(e,t){for(let i=[];;){if(!t||"."!=t.name)return i;let n=gw(t);if(!bw(n))return i;i.unshift(mw(e,n)),t=gw(n)}}function vw(e,t){let i=md(e).resolveInner(t,-1),n=function(e,t){let i;for(let e=t;!i;e=e.parent){if(!e)return null;"Statement"==e.name&&(i=e)}let n=null;for(let t=i.firstChild,r=!1,o=null;t;t=t.nextSibling){let i="Keyword"==t.name?e.sliceString(t.from,t.to).toLowerCase():null,s=null;if(r)if("as"==i&&o&&bw(t.nextSibling))s=mw(e,t.nextSibling);else{if(i&&yw.has(i))break;o&&bw(t)&&(s=mw(e,t))}else r="from"==i;s&&(n||(n=Object.create(null)),n[s]=$w(e,o)),o=/Identifier$/.test(t.name)?t:null}return n}(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:Qw(e.doc,gw(i)),aliases:n}:"."==i.name?{from:t,quoted:null,parents:Qw(e.doc,i),aliases:n}:{from:t,quoted:null,parents:[],empty:!0,aliases:n}}const yw=new Set("where group having order union intersect except all distinct limit offset fetch for".split(" "));function ww(e,t){return e?t.map((t=>Object.assign(Object.assign({},t),{label:e+t.label+e,apply:void 0}))):t}const _w=/^\w*$/,Sw=/^[`'"]?\w*[`'"]?$/;class xw{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(Xw(e,"type",t)),i[e]=new xw)}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 Xw(e,t,i){return/[^\w\xb5-\uffff]/.test(e)?{label:e,type:t,apply:i+e+i}:{label:e,type:t}}let Pw=pw.configure({props:[Zd.add({Statement:Md()}),zd.add({Statement:e=>({from:e.firstChild.to,to:e.to}),BlockComment:e=>({from:e.from+2,to:e.to-2})}),ju({Keyword:cd.keyword,Type:cd.typeName,Builtin:cd.standard(cd.name),Bits:cd.number,Bytes:cd.string,Bool:cd.bool,Null:cd.null,Number:cd.number,String:cd.string,Identifier:cd.name,QuotedIdentifier:cd.special(cd.string),SpecialVar:cd.special(cd.name),LineComment:cd.lineComment,BlockComment:cd.blockComment,Operator:cd.operator,"Semi Punctuation":cd.punctuation,"( )":cd.paren,"{ }":cd.brace,"[ ]":cd.squareBracket})]});class kw{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,n){let r={};for(let t in uw)r[t]=(e.hasOwnProperty(t)?e:uw)[t];return t&&(r.words=cw(t,i||"",n)),r}(e,e.keywords,e.types,e.builtin),i=gd.define({name:"sql",parser:Pw.configure({tokenizers:[{from:fw,to:dw(t)}]}),languageData:{commentTokens:{line:"--",block:{open:"/*",close:"*/"}},closeBrackets:{brackets:["(","[","{","'",'"',"`"]}}});return new kw(t,i,e)}}function Tw(e,t=!1){return function(e,t){return Nf(["QuotedIdentifier","SpecialVar","String","LineComment","BlockComment","."],Cf(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 Rw(e,t=!1){return e.language.data.of({autocomplete:Tw(e,t)})}function Yw(e){return e.schema?function(e,t,i,n,r,o){var s;let a=new xw,l=(null===(s=null==o?void 0:o.spec.identifierQuotes)||void 0===s?void 0:s[0])||'"',c=a.child(r||"",l);for(let t in e){let i=t.replace(/\\?\./g,(e=>"."==e?"\0":e)).split("\0"),n=1==i.length?c:a;for(let e of i)n=n.child(e.replace(/\\\./g,"."),l);for(let i of e[t])i&&n.list.push("string"==typeof i?Xw(i,"property",l):i)}return t&&c.addCompletions(t),i&&a.addCompletions(i),a.addCompletions(c.list),n&&a.addCompletions(c.child(n,l).list),e=>{let{parents:t,from:i,quoted:r,empty:o,aliases:s}=vw(e.state,e.pos);if(o&&!e.explicit)return null;s&&1==t.length&&(t=s[t[0]]||t);let O=a;for(let e of t){for(;!O.children||!O.children[e];)if(O==a)O=c;else{if(O!=c||!n)return null;O=O.child(n,l)}O=O.child(e,l)}let h=r&&e.state.sliceDoc(e.pos,e.pos+1)==r,u=O.list;return O==a&&s&&(u=u.concat(Object.keys(s).map((e=>({label:e,type:"constant"}))))),{from:i,to:h?e.pos+1:void 0,options:ww(r,u),validFor:r?Sw:_w}}}(e.schema,e.tables,e.schemas,e.defaultTable,e.defaultSchema,e.dialect||Vw):()=>null}function Aw(e){return e.schema?(e.dialect||Vw).language.data.of({autocomplete:Yw(e)}):[]}const Vw=kw.define({}),Zw=kw.define({charSetCasts:!0,doubleDollarQuotedStrings:!0,operatorChars:"+-*/<>=~!@#%^&|`?",specialVar:"",keywords:hw+"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:Ow+"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"}),Ew=new Set([27,51,52,270,67,133,58,59,251,64,65,74,62,63,154,155,158,115]);function Cw(e){return 10==e||13==e}const Nw=new zo(((e,t)=>{let i;if(e.next<0)e.acceptToken(206);else if(t.context.depth<0)Cw(e.next)&&e.acceptToken(205,1);else if(((i=e.peek(-1))<0||Cw(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 Cw(e.next)&&e.acceptToken(203,1)}),{contextual:!0}),qw=new zo(((e,t)=>{let i=t.context.depth;if(i<0)return;let n=e.peek(-1);if(10==n||13==n){let t=0,n=0;for(;;){if(32==e.next)t++;else{if(9!=e.next)break;t+=8-t%8}e.advance(),n++}t!=i&&10!=e.next&&13!=e.next&&35!=e.next&&(te.depth<0&&Ew.has(t)?e.parent:e,shift:(e,t,i,n)=>201==t?new Uw(e,function(e){let t=0;for(let i=0;ie.hash}),jw=new zo((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 Mw(e,t,i,n,r){return new zo((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(n,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(r,t);break}o.advance()}o.pos>s&&o.acceptToken(i)}))}const Dw=Mw(39,1,207,2,208),zw=Mw(34,1,209,3,210),Bw=Mw(39,3,211,4,212),Gw=Mw(34,3,213,5,214),Iw=ju({'async "*" "**" FormatConversion FormatSpec':cd.modifier,"for while if elif else try except finally return raise break continue with pass assert await yield match case":cd.controlKeyword,"in not and or is del":cd.operatorKeyword,"from def class global nonlocal lambda":cd.definitionKeyword,import:cd.moduleKeyword,"with as print":cd.keyword,Boolean:cd.bool,None:cd.null,VariableName:cd.variableName,"CallExpression/VariableName":cd.function(cd.variableName),"FunctionDefinition/VariableName":cd.function(cd.definition(cd.variableName)),"ClassDefinition/VariableName":cd.definition(cd.className),PropertyName:cd.propertyName,"CallExpression/MemberExpression/PropertyName":cd.function(cd.propertyName),Comment:cd.lineComment,Number:cd.number,String:cd.string,FormatString:cd.special(cd.string),UpdateOp:cd.updateOperator,"ArithOp!":cd.arithmeticOperator,BitOp:cd.bitwiseOperator,CompareOp:cd.compareOperator,AssignOp:cd.definitionOperator,Ellipsis:cd.punctuation,At:cd.meta,"( )":cd.paren,"[ ]":cd.squareBracket,"{ }":cd.brace,".":cd.derefOperator,", ;":cd.separator}),Lw={__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},Kw=rs.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:Ww,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:[Iw],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$Lw[e]||-1}],tokenPrec:7372}),Fw=new bo,Hw=new Set(["Script","Body","FunctionDefinition","ClassDefinition","LambdaExpression","ForStatement","MatchClause"]);function Jw(e){return(t,i,n)=>{if(n)return!1;let r=t.node.getChild("VariableName");return r&&i(r,e),!0}}const e_={FunctionDefinition:Jw("function"),ClassDefinition:Jw("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,n;let{node:r}=e,o="from"==(null===(i=r.firstChild)||void 0===i?void 0:i.name);for(let e=r.getChild("import");e;e=e.nextSibling)"VariableName"==e.name&&"as"!=(null===(n=e.nextSibling)||void 0===n?void 0:n.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,n=e.node.firstChild;n;n=n.nextSibling)"VariableName"!=n.name||i&&/\*|AssignOp/.test(i.name)||t(n,"variable"),i=n},CapturePattern:Jw("variable"),AsPattern:Jw("variable"),__proto__:null};function t_(e,t){let i=Fw.get(t);if(i)return i;let n=[],r=!0;function o(t,i){let r=e.sliceString(t.from,t.to);n.push({label:r,type:i})}return t.cursor(Hr.IncludeAnonymous).iterate((t=>{if(t.name){let e=e_[t.name];if(e&&e(t,o,r)||!r&&Hw.has(t.name))return!1;r=!1}else if(t.to-t.from>8192){for(let i of t_(e,t.node))n.push(i);return!1}})),Fw.set(t,n),n}const i_=/^[\w\xa1-\uffff][\w\d\xa1-\uffff]*$/,n_=["String","FormatString","Comment","PropertyName"];function r_(e){let t=md(e.state).resolveInner(e.pos,-1);if(n_.indexOf(t.name)>-1)return null;let i="VariableName"==t.name||t.to-t.from<20&&i_.test(e.state.sliceDoc(t.from,t.to));if(!i&&!e.explicit)return null;let n=[];for(let i=t;i;i=i.parent)Hw.has(i.name)&&(n=n.concat(t_(e.state.doc,i)));return{options:n,from:i?t.from:e.pos,validFor:i_}}const o_=["__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"})))),s_=[qp("def ${name}(${params}):\n\t${}",{label:"def",detail:"function",type:"keyword"}),qp("for ${name} in ${collection}:\n\t${}",{label:"for",detail:"loop",type:"keyword"}),qp("while ${}:\n\t${}",{label:"while",detail:"loop",type:"keyword"}),qp("try:\n\t${}\nexcept ${error}:\n\t${}",{label:"try",detail:"/ except block",type:"keyword"}),qp("if ${}:\n\t\n",{label:"if",detail:"block",type:"keyword"}),qp("if ${}:\n\t${}\nelse:\n\t${}",{label:"if",detail:"/ else block",type:"keyword"}),qp("class ${name}:\n\tdef __init__(self, ${params}):\n\t\t\t${}",{label:"class",detail:"definition",type:"keyword"}),qp("import ${module}",{label:"import",detail:"statement",type:"keyword"}),qp("from ${module} import ${names}",{label:"from",detail:"import",type:"keyword"})],a_=Nf(n_,Cf(o_.concat(s_)));function l_(e,t){let i=e.baseIndentFor(t),n=e.lineAt(e.pos,-1),r=n.from+n.text.length;return/^\s*($|#)/.test(n.text)&&e.node.toi?null:i+e.unit}const c_=gd.define({name:"python",parser:Kw.configure({props:[Zd.add({Body:e=>{var t;return null!==(t=l_(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":Wd({closing:")"}),"DictionaryExpression DictionaryComprehensionExpression SetExpression SetComprehensionExpression":Wd({closing:"}"}),"ArrayExpression ArrayComprehensionExpression":Wd({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,n=i.to;i=i.lastChild,i&&i.to==n;)"Body"==i.type.name&&(t=i);if(t){let i=l_(e,t);if(null!=i)return i}}return e.continue()}}),zd.add({"ArrayExpression DictionaryExpression SetExpression TupleExpression":Bd,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:)$/}});class O_{constructor(e,t,i,n){this.origin=e,this.changes=t,this.effects=i,this.clientID=n}}class h_{constructor(e,t){this.version=e,this.unconfirmed=t}}const u_=Vn.define({combine(e){let t=wr(e,{startVersion:0,clientID:null,sharedEffects:()=>[]},{generatedID:e=>e});return null==t.clientID&&(t.clientID=e.length&&e[0].generatedID||""),t}}),d_=ar.define();Wn.define({create:e=>new h_(e.facet(u_).startVersion,[]),update(e,t){let i=t.annotation(d_);if(i)return i;let{sharedEffects:n,clientID:r}=t.startState.facet(u_),o=n(t);return o.length||!t.changes.empty?new h_(e.version,e.unconfirmed.concat(new O_(t,t.changes,o,r))):e}});class f_{constructor(e,t,i){this.from=e,this.to=t,this.diagnostic=i}}class p_{constructor(e,t,i){this.diagnostics=e,this.panel=t,this.selected=i}static init(e,t,i){let n=e,r=i.facet(x_).markerFilter;r&&(n=r(n));let o=Xl.set(n.map((e=>e.from==e.to||e.from==e.to-1&&i.doc.lineAt(e.from).to==e.from?Xl.widget({widget:new k_(e),diagnostic:e}).range(e.from):Xl.mark({attributes:{class:"cm-lintRange cm-lintRange-"+e.severity+(e.markClass?" "+e.markClass:"")},diagnostic:e}).range(e.from,e.to))),!0);return new p_(o,t,g_(o))}}function g_(e,t=null,i=0){let n=null;return e.between(i,1e9,((e,i,{spec:r})=>{if(!t||r.diagnostic==t)return n=new f_(e,i,r.diagnostic),!1})),n}function m_(e,t){return e.field(y_,!1)?t:t.concat(Or.appendConfig.of(V_))}function b_(e,t){return{effects:m_(e,[$_.of(t)])}}const $_=Or.define(),Q_=Or.define(),v_=Or.define(),y_=Wn.define({create:()=>new p_(Xl.none,null,null),update(e,t){if(t.docChanged){let i=e.diagnostics.map(t.changes),n=null;if(e.selected){let r=t.changes.mapPos(e.selected.from,1);n=g_(i,e.selected.diagnostic,r)||g_(i,null,r)}e=new p_(i,e.panel,n)}for(let i of t.effects)i.is($_)?e=p_.init(i.value,e.panel,t.state):i.is(Q_)?e=new p_(e.diagnostics,i.value?R_.open:null,e.selected):i.is(v_)&&(e=new p_(e.diagnostics,e.panel,i.value));return e},provide:e=>[$u.from(e,(e=>e.panel)),ah.decorations.from(e,(e=>e.diagnostics))]}),w_=Xl.mark({class:"cm-lintRange cm-lintRange-active"});function __(e,t){return Fm("ul",{class:"cm-tooltip-lint"},t.map((t=>P_(e,t,!1))))}const S_=e=>{let t=e.state.field(y_,!1);return!(!t||!t.panel||(e.dispatch({effects:Q_.of(!1)}),0))},x_=(Fl.fromClass(class{constructor(e){this.view=e,this.timeout=-1,this.set=!0;let{delay:t}=e.state.facet(x_);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(b_(this.view.state,i))}),(e=>{Gl(this.view.state,e)}))}}update(e){let t=e.state.facet(x_);(e.docChanged||t!=e.startState.facet(x_)||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)}}),Vn.define({combine:e=>Object.assign({sources:e.map((e=>e.source))},wr(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 X_(e){let t=[];if(e)e:for(let{name:i}of e){for(let e=0;ee.toLowerCase()==n.toLowerCase()))){t.push(n);continue e}}t.push("")}return t}function P_(e,t,i){var n;let r=i?X_(t.actions):[];return Fm("li",{class:"cm-diagnostic cm-diagnostic-"+t.severity},Fm("span",{class:"cm-diagnosticText"},t.renderMessage?t.renderMessage():t.message),null===(n=t.actions)||void 0===n?void 0:n.map(((i,n)=>{let o=!1,s=n=>{if(n.preventDefault(),o)return;o=!0;let r=g_(e.state.field(y_).diagnostics,t);r&&i.apply(e,r.from,r.to)},{name:a}=i,l=r[n]?a.indexOf(r[n]):-1,c=l<0?a:[a.slice(0,l),Fm("u",a.slice(l,l+1)),a.slice(l+1)];return Fm("button",{type:"button",class:"cm-diagnosticAction",onclick:s,onmousedown:s,"aria-label":` Action: ${a}${l<0?"":` (access key "${r[n]})"`}.`},c)})),t.source&&Fm("div",{class:"cm-diagnosticSource"},t.source))}class k_ extends Sl{constructor(e){super(),this.diagnostic=e}eq(e){return e.diagnostic==this.diagnostic}toDOM(){return Fm("span",{class:"cm-lintPoint cm-lintPoint-"+this.diagnostic.severity})}}class T_{constructor(e,t){this.diagnostic=t,this.id="item_"+Math.floor(4294967295*Math.random()).toString(16),this.dom=P_(e,t,!0),this.dom.id=this.id,this.dom.setAttribute("role","option")}}class R_{constructor(e){this.view=e,this.items=[],this.list=Fm("ul",{tabIndex:0,role:"listbox","aria-label":this.view.state.phrase("Diagnostics"),onkeydown:t=>{if(27==t.keyCode)S_(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],n=X_(i.actions);for(let r=0;r{for(let t=0;tS_(this.view)},"×")),this.update()}get selectedIndex(){let e=this.view.state.field(y_).selected;if(!e)return-1;for(let t=0;t{let a,l=-1;for(let e=i;ei&&(this.items.splice(i,l-i),n=!0)),t&&a.diagnostic==t.diagnostic?a.dom.hasAttribute("aria-selected")||(a.dom.setAttribute("aria-selected","true"),r=a):a.dom.hasAttribute("aria-selected")&&a.dom.removeAttribute("aria-selected"),i++}));i({sel:r.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"),n&&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=g_(this.view.state.field(y_).diagnostics,this.items[e].diagnostic);t&&this.view.dispatch({selection:{anchor:t.from,head:t.to},scrollIntoView:!0,effects:v_.of(t)})}static open(e){return new R_(e)}}function Y_(e){return function(e,t='viewBox="0 0 40 40"'){return`url('data:image/svg+xml,${encodeURIComponent(e)}')`}(``,'width="6" height="3"')}const A_=ah.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:Y_("#d11")},".cm-lintRange-warning":{backgroundImage:Y_("orange")},".cm-lintRange-info":{backgroundImage:Y_("#999")},".cm-lintRange-hint":{backgroundImage:Y_("#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}}}),V_=[y_,ah.decorations.compute([y_],(e=>{let{selected:t,panel:i}=e.field(y_);return t&&i&&t.from!=t.to?Xl.set([w_.range(t.from,t.to)]):Xl.none})),function(e,t={}){let i=Or.define(),n=Wn.define({create:()=>null,update(e,n){if(e&&(t.hideOnChange&&(n.docChanged||n.selection)||t.hideOn&&t.hideOn(n,e)))return null;if(e&&n.docChanged){let t=n.changes.mapPos(e.pos,-1,vn.TrackDel);if(null==t)return null;let i=Object.assign(Object.create(null),e);i.pos=t,null!=e.end&&(i.end=n.changes.mapPos(e.end)),e=i}for(let t of n.effects)t.is(i)&&(e=t.value),t.is(du)&&(e=null);return e},provide:e=>au.from(e)});return[n,Fl.define((r=>new Ou(r,e,n,i,t.hoverTime||300))),cu]}((function(e,t,i){let{diagnostics:n}=e.state.field(y_),r=[],o=2e8,s=0;n.between(t-(i<0?1:0),t+(i>0?1:0),((e,n,{spec:a})=>{t>=e&&t<=n&&(e==n||(t>e||i>0)&&(t({dom:__(e,r)})}:null}),{hideOn:function(e,t){let i=e.startState.doc.lineAt(t.pos);return!(!e.effects.some((e=>e.is($_)))&&!e.changes.touchesRange(i.from,i.to))}}),A_],Z_=e=>e.toLowerCase().normalize("NFD").replace(/[^a-z1-9]/g,""),E_=e=>{window.dispatchEvent(new CustomEvent("open pluto popup",{detail:e}))},C_=Or.define(),N_=Wn.define({create:()=>!1,update(e,t){for(let e of t.effects)if(e.is(C_))return e.value;return e}}),q_=Or.define(),U_=Wn.define({create:()=>!1,update(e,t){for(let e of t.effects)if(e.is(q_))return e.value;return e}}),W_=Fl.define((e=>({setready:t=>e.dispatch({effects:[C_.of(t)]})})),{provide:e=>[N_,U_],eventObservers:{focus:function(e,t){this.setready(!0)},blur:function(e,t){this.setready(!1),t.dispatch({effects:[q_.of(!1)]})},click:function(e,t){this.setready(!1)},keydown:function(e,t){console.error(e.key,t.state.field(N_),t.state.field(U_)),"Tab"==e.key?!t.state.field(N_)||t.state.field(U_)||t.state.readOnly||(console.log(123),E_({type:"info",source_element:t.dom,body:_e`Press Esc and then Tab to continue navigation. skkrt!`}),this.setready(!1)):this.setready(!1)}}});let{autocompletion:j_,completionKeymap:M_}=pg,D_=M_.find((e=>"Ctrl-Space"===e.key)),z_=M_.find((e=>"Enter"===e.key)),B_=M_.find((e=>"Escape"===e.key));const G_=e=>{if(null==e)throw new Error("Unexpected null value");return e},I_=(e,t,i=!0)=>{let n=e.hasFocus;e.dispatch({changes:{from:0,to:e.state.doc.length,insert:t},selection:Rn.cursor(t.length),scrollIntoView:i}),n||e.contentDOM.blur()},L_=!!window.plutoDesktop;L_&&console.log("Running in Desktop Environment! Found following properties/methods:",window.plutoDesktop);const K_=({value:e,suggest_new_file:t,button_label:i,placeholder:n,on_submit:r,on_desktop_submit:o,client:s})=>{const[a,l]=oe(!0),[c,O]=oe(""),h=le(""),u=le(null),d=le(null),f=()=>{const e=d.current;null!=e&&(null!=t&&0===e.state.doc.length&&(I_(e,t.base,!1),g()),window.dispatchEvent(new CustomEvent("collapse_cell_selection",{})))};const p=()=>{const e=d.current;if(null!=e){if(!L_){if(e.state.doc.toString()===h.current)return f(),!0}return(async e=>{await e()})((async()=>{try{L_&&o?await o((await(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),r=n.find((e=>Z_("#file-"+e.filename)===Z_(t.hash)));return null!=r?{type:"url",path_or_url:r.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}}})(c)).path_or_url):await r(e.state.doc.toString()),e.dom.blur()}catch(t){I_(e,h.current,!0),e.dom.blur()}})),!0}},g=()=>{const e=d.current;if(null==e)return;let t=e.state.selection.main;return t.from===t.to&&e.state.doc.length===t.to?G_(D_).run(e):void 0};return ae((()=>{const i=window.matchMedia("(prefers-color-scheme: dark)").matches,r=()=>(p(),!0);d.current=new ah({state:yr.create({doc:"",extensions:[Ph(),ah.domEventHandlers({focus:(e,i)=>(setTimeout((()=>{t?f():0===i.state.doc.length&&g()}),0),!0),blur:(e,t)=>{setTimeout((()=>{t.hasFocus||I_(t,h.current,!0)}),200)}}),ah.updateListener.of((e=>{e.docChanged&&l(0===e.state.doc.length)})),ah.theme({"&":{fontSize:"inherit"},".cm-scroller":{fontFamily:"inherit",overflowY:"hidden",overflowX:"auto"}},{dark:i}),Zg(),j_({activateOnTyping:!0,override:[F_({suggest_new_file:t,client:s})],defaultKeymap:!1,maxRenderedOptions:512,optionClass:e=>e.type??""}),ah.updateListener.of((e=>{e.transactions.forEach((t=>{null!=t.annotation(pg.pickedCompletion)&&(e.view.dispatch({effects:ah.scrollIntoView(e.state.doc.length),selection:Rn.cursor(e.state.doc.length)}),g())}))})),ph.of([{key:"Enter",run:e=>G_(z_).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=>(G_(B_).run(t),t.dispatch({changes:{from:0,to:t.state.doc.length,insert:h.current},selection:Rn.cursor(e.length),effects:ah.scrollIntoView(h.current.length)}),document.activeElement.blur(),!0),preventDefault:!0},{key:"Tab",run:e=>G_(z_).run(e)?(g(),!0):g()}]),ph.of(M_),Gh(n),W_]})});const o=d.current;L_||u.current.insertBefore(o.dom,u.current.firstElementChild)}),[]),ae((()=>{if(h.current!=e){if(null==d.current)return;I_(d.current,e,!0),h.current=e}})),L_?_e`
+ {O(e.target.value)}} + /> +
+ +
+
`:_e` + + + + `},F_=({client:e,suggest_new_file:t})=>i=>{i.state.selection.main.to;const n=i.state.doc.toString();return e.send("completepath",{query:n}).then((e=>{const i=n.split("/").pop().split("\\").pop(),r=e.message.results,o=Bi(n,e.message.start),s=Bi(n,e.message.stop);if(r.length>=1&&r[0]==i)return null;let a=r.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;r.includes(t)||a.push({label:t+" (new)",apply:t,type:"file new",boost:-99});break}}return{options:a,from:o,to:s}}))},H_=e=>e?Object.entries(e).reduce(((e,[t,i])=>i?t+" "+e:e),""):null;let J_=z(),eS=z(null),tS=z(null);class iS extends Set{constructor(e){super(),this.callback=e}delete(e){let t=super.delete(e);return t&&0===this.size&&this.callback(),t}}const nS=()=>"visible"===document.visibilityState?Promise.resolve():new Promise((e=>{const t=()=>{nS().then(e),document.removeEventListener("visibilitychange",t)};document.addEventListener("visibilitychange",t)})),rS=({any_code_differs:e,last_update_time:t,last_hot_reload_time:i,connected:n})=>{let r=he(J_);const[o,s]=oe(""),[a,l]=oe(""),c=le(null),O=le(null);se((()=>(clearTimeout(null==c?void 0:c.current),e?s("ask_to_save"):Date.now()-t<1e3?(s("saved"),c.current=setTimeout((()=>{s("")}),1e3)):s(""),()=>clearTimeout(null==c?void 0:c.current))),[e]);const[h,u]=oe(!1);return se((()=>{n&&setTimeout((()=>u(!0)),1e3)}),[n]),se((()=>{if(console.log("Hottt",i,h),h)return l("reloaded_from_file"),console.log("set state"),nS().then((()=>{O.current=setTimeout((()=>{l(""),console.log("reset state")}),8e3)})),()=>clearTimeout(null==O?void 0:O.current)}),[i]),_e` + ${"ask_to_save"===o?_e` +
+ +
+ `:"saved"===o||"saving"===o?_e` +
+ Saved +
+ `:"reloaded_from_file"===a?_e` +
+ File change detected, notebook updated +
+ `:null} +
`};var oS={};t(oS),e(oS,"default",(()=>tx));var{entries:sS,setPrototypeOf:aS,isFrozen:lS,getPrototypeOf:cS,getOwnPropertyDescriptor:OS}=Object,{freeze:hS,seal:uS,create:dS}=Object,{apply:fS,construct:pS}=typeof Reflect<"u"&&Reflect;fS||(fS=function(e,t,i){return e.apply(t,i)}),hS||(hS=function(e){return e}),uS||(uS=function(e){return e}),pS||(pS=function(e,t){return new e(...t)});var gS,mS=PS(Array.prototype.forEach),bS=PS(Array.prototype.pop),$S=PS(Array.prototype.push),QS=PS(String.prototype.toLowerCase),vS=PS(String.prototype.toString),yS=PS(String.prototype.match),wS=PS(String.prototype.replace),_S=PS(String.prototype.indexOf),SS=PS(String.prototype.trim),xS=PS(RegExp.prototype.test),XS=(gS=TypeError,function(){for(var e=arguments.length,t=new Array(e),i=0;i1?i-1:0),r=1;r/gm),zS=uS(/\${[\w\W]*}/gm),BS=uS(/^data-[\-\w.\u00B7-\uFFFF]/),GS=uS(/^aria-[\-\w]+$/),IS=uS(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i),LS=uS(/^(?:\w+script|data):/i),KS=uS(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g),FS=uS(/^html$/i),HS=Object.freeze({__proto__:null,MUSTACHE_EXPR:MS,ERB_EXPR:DS,TMPLIT_EXPR:zS,DATA_ATTR:BS,ARIA_ATTR:GS,IS_ALLOWED_URI:IS,IS_SCRIPT_OR_DATA:LS,ATTR_WHITESPACE:KS,DOCTYPE_NAME:FS}),JS=()=>typeof window>"u"?null:window,ex=function(e,t){if("object"!=typeof e||"function"!=typeof e.createPolicy)return null;let i=null,n="data-tt-policy-suffix";t&&t.hasAttribute(n)&&(i=t.getAttribute(n));let r="dompurify"+(i?"#"+i:"");try{return e.createPolicy(r,{createHTML:e=>e,createScriptURL:e=>e})}catch{return console.warn("TrustedTypes policy "+r+" could not be created."),null}};var tx=function e(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:JS(),i=t=>e(t);if(i.version="3.0.3",i.removed=[],!t||!t.document||9!==t.document.nodeType)return i.isSupported=!1,i;let n=t.document,r=n.currentScript,{document:o}=t,{DocumentFragment:s,HTMLTemplateElement:a,Node:l,Element:c,NodeFilter:O,NamedNodeMap:h=t.NamedNodeMap||t.MozNamedAttrMap,HTMLFormElement:u,DOMParser:d,trustedTypes:f}=t,p=c.prototype,g=RS(p,"cloneNode"),m=RS(p,"nextSibling"),b=RS(p,"childNodes"),$=RS(p,"parentNode");if("function"==typeof a){let e=o.createElement("template");e.content&&e.content.ownerDocument&&(o=e.content.ownerDocument)}let Q,v="",{implementation:y,createNodeIterator:w,createDocumentFragment:_,getElementsByTagName:S}=o,{importNode:x}=n,X={};i.isSupported="function"==typeof sS&&"function"==typeof $&&y&&void 0!==y.createHTMLDocument;let P,k,{MUSTACHE_EXPR:T,ERB_EXPR:R,TMPLIT_EXPR:Y,DATA_ATTR:A,ARIA_ATTR:V,IS_SCRIPT_OR_DATA:Z,ATTR_WHITESPACE:E}=HS,{IS_ALLOWED_URI:C}=HS,N=null,q=kS({},[...YS,...AS,...VS,...ES,...NS]),U=null,W=kS({},[...qS,...US,...WS,...jS]),j=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}})),M=null,D=null,z=!0,B=!0,G=!1,I=!0,L=!1,K=!1,F=!1,H=!1,J=!1,ee=!1,te=!1,ie=!0,ne=!1,re="user-content-",oe=!0,se=!1,ae={},le=null,ce=kS({},["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"]),Oe=null,he=kS({},["audio","video","img","source","image","track"]),ue=null,de=kS({},["alt","class","for","id","label","name","pattern","placeholder","role","summary","title","value","style","xmlns"]),fe="http://www.w3.org/1998/Math/MathML",pe="http://www.w3.org/2000/svg",ge="http://www.w3.org/1999/xhtml",me=ge,be=!1,$e=null,Qe=kS({},[fe,pe,ge],vS),ve=["application/xhtml+xml","text/html"],ye="text/html",we=null,_e=o.createElement("form"),Se=function(e){return e instanceof RegExp||e instanceof Function},xe=function(e){if(!we||we!==e){if((!e||"object"!=typeof e)&&(e={}),e=TS(e),P=P=-1===ve.indexOf(e.PARSER_MEDIA_TYPE)?ye:e.PARSER_MEDIA_TYPE,k="application/xhtml+xml"===P?vS:QS,N="ALLOWED_TAGS"in e?kS({},e.ALLOWED_TAGS,k):q,U="ALLOWED_ATTR"in e?kS({},e.ALLOWED_ATTR,k):W,$e="ALLOWED_NAMESPACES"in e?kS({},e.ALLOWED_NAMESPACES,vS):Qe,ue="ADD_URI_SAFE_ATTR"in e?kS(TS(de),e.ADD_URI_SAFE_ATTR,k):de,Oe="ADD_DATA_URI_TAGS"in e?kS(TS(he),e.ADD_DATA_URI_TAGS,k):he,le="FORBID_CONTENTS"in e?kS({},e.FORBID_CONTENTS,k):ce,M="FORBID_TAGS"in e?kS({},e.FORBID_TAGS,k):{},D="FORBID_ATTR"in e?kS({},e.FORBID_ATTR,k):{},ae="USE_PROFILES"in e&&e.USE_PROFILES,z=!1!==e.ALLOW_ARIA_ATTR,B=!1!==e.ALLOW_DATA_ATTR,G=e.ALLOW_UNKNOWN_PROTOCOLS||!1,I=!1!==e.ALLOW_SELF_CLOSE_IN_ATTR,L=e.SAFE_FOR_TEMPLATES||!1,K=e.WHOLE_DOCUMENT||!1,J=e.RETURN_DOM||!1,ee=e.RETURN_DOM_FRAGMENT||!1,te=e.RETURN_TRUSTED_TYPE||!1,H=e.FORCE_BODY||!1,ie=!1!==e.SANITIZE_DOM,ne=e.SANITIZE_NAMED_PROPS||!1,oe=!1!==e.KEEP_CONTENT,se=e.IN_PLACE||!1,C=e.ALLOWED_URI_REGEXP||IS,me=e.NAMESPACE||ge,j=e.CUSTOM_ELEMENT_HANDLING||{},e.CUSTOM_ELEMENT_HANDLING&&Se(e.CUSTOM_ELEMENT_HANDLING.tagNameCheck)&&(j.tagNameCheck=e.CUSTOM_ELEMENT_HANDLING.tagNameCheck),e.CUSTOM_ELEMENT_HANDLING&&Se(e.CUSTOM_ELEMENT_HANDLING.attributeNameCheck)&&(j.attributeNameCheck=e.CUSTOM_ELEMENT_HANDLING.attributeNameCheck),e.CUSTOM_ELEMENT_HANDLING&&"boolean"==typeof e.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements&&(j.allowCustomizedBuiltInElements=e.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements),L&&(B=!1),ee&&(J=!0),ae&&(N=kS({},[...NS]),U=[],!0===ae.html&&(kS(N,YS),kS(U,qS)),!0===ae.svg&&(kS(N,AS),kS(U,US),kS(U,jS)),!0===ae.svgFilters&&(kS(N,VS),kS(U,US),kS(U,jS)),!0===ae.mathMl&&(kS(N,ES),kS(U,WS),kS(U,jS))),e.ADD_TAGS&&(N===q&&(N=TS(N)),kS(N,e.ADD_TAGS,k)),e.ADD_ATTR&&(U===W&&(U=TS(U)),kS(U,e.ADD_ATTR,k)),e.ADD_URI_SAFE_ATTR&&kS(ue,e.ADD_URI_SAFE_ATTR,k),e.FORBID_CONTENTS&&(le===ce&&(le=TS(le)),kS(le,e.FORBID_CONTENTS,k)),oe&&(N["#text"]=!0),K&&kS(N,["html","head","body"]),N.table&&(kS(N,["tbody"]),delete M.tbody),e.TRUSTED_TYPES_POLICY){if("function"!=typeof e.TRUSTED_TYPES_POLICY.createHTML)throw XS('TRUSTED_TYPES_POLICY configuration option must provide a "createHTML" hook.');if("function"!=typeof e.TRUSTED_TYPES_POLICY.createScriptURL)throw XS('TRUSTED_TYPES_POLICY configuration option must provide a "createScriptURL" hook.');Q=e.TRUSTED_TYPES_POLICY,v=Q.createHTML("")}else void 0===Q&&(Q=ex(f,r)),null!==Q&&"string"==typeof v&&(v=Q.createHTML(""));hS&&hS(e),we=e}},Xe=kS({},["mi","mo","mn","ms","mtext"]),Pe=kS({},["foreignobject","desc","title","annotation-xml"]),ke=kS({},["title","style","font","a","script"]),Te=kS({},AS);kS(Te,VS),kS(Te,ZS);let Re=kS({},ES);kS(Re,CS);let Ye=function(e){let t=$(e);(!t||!t.tagName)&&(t={namespaceURI:me,tagName:"template"});let i=QS(e.tagName),n=QS(t.tagName);return!!$e[e.namespaceURI]&&(e.namespaceURI===pe?t.namespaceURI===ge?"svg"===i:t.namespaceURI===fe?"svg"===i&&("annotation-xml"===n||Xe[n]):!!Te[i]:e.namespaceURI===fe?t.namespaceURI===ge?"math"===i:t.namespaceURI===pe?"math"===i&&Pe[n]:!!Re[i]:e.namespaceURI===ge?!(t.namespaceURI===pe&&!Pe[n]||t.namespaceURI===fe&&!Xe[n])&&(!Re[i]&&(ke[i]||!Te[i])):!("application/xhtml+xml"!==P||!$e[e.namespaceURI]))},Ae=function(e){$S(i.removed,{element:e});try{e.parentNode.removeChild(e)}catch{e.remove()}},Ve=function(e,t){try{$S(i.removed,{attribute:t.getAttributeNode(e),from:t})}catch{$S(i.removed,{attribute:null,from:t})}if(t.removeAttribute(e),"is"===e&&!U[e])if(J||ee)try{Ae(t)}catch{}else try{t.setAttribute(e,"")}catch{}},Ze=function(e){let t,i;if(H)e=""+e;else{let t=yS(e,/^[\r\n\t ]+/);i=t&&t[0]}"application/xhtml+xml"===P&&me===ge&&(e=''+e+"");let n=Q?Q.createHTML(e):e;if(me===ge)try{t=(new d).parseFromString(n,P)}catch{}if(!t||!t.documentElement){t=y.createDocument(me,"template",null);try{t.documentElement.innerHTML=be?v:n}catch{}}let r=t.body||t.documentElement;return e&&i&&r.insertBefore(o.createTextNode(i),r.childNodes[0]||null),me===ge?S.call(t,K?"html":"body")[0]:K?t.documentElement:r},Ee=function(e){return w.call(e.ownerDocument||e,e,O.SHOW_ELEMENT|O.SHOW_COMMENT|O.SHOW_TEXT,null,!1)},Ce=function(e){return e instanceof u&&("string"!=typeof e.nodeName||"string"!=typeof e.textContent||"function"!=typeof e.removeChild||!(e.attributes instanceof h)||"function"!=typeof e.removeAttribute||"function"!=typeof e.setAttribute||"string"!=typeof e.namespaceURI||"function"!=typeof e.insertBefore||"function"!=typeof e.hasChildNodes)},Ne=function(e){return"object"==typeof l?e instanceof l:e&&"object"==typeof e&&"number"==typeof e.nodeType&&"string"==typeof e.nodeName},qe=function(e,t,n){X[e]&&mS(X[e],(e=>{e.call(i,t,n,we)}))},Ue=function(e){let t;if(qe("beforeSanitizeElements",e,null),Ce(e))return Ae(e),!0;let n=k(e.nodeName);if(qe("uponSanitizeElement",e,{tagName:n,allowedTags:N}),e.hasChildNodes()&&!Ne(e.firstElementChild)&&(!Ne(e.content)||!Ne(e.content.firstElementChild))&&xS(/<[/\w]/g,e.innerHTML)&&xS(/<[/\w]/g,e.textContent))return Ae(e),!0;if(!N[n]||M[n]){if(!M[n]&&je(n)&&(j.tagNameCheck instanceof RegExp&&xS(j.tagNameCheck,n)||j.tagNameCheck instanceof Function&&j.tagNameCheck(n)))return!1;if(oe&&!le[n]){let t=$(e)||e.parentNode,i=b(e)||e.childNodes;if(i&&t){for(let n=i.length-1;n>=0;--n)t.insertBefore(g(i[n],!0),m(e))}}return Ae(e),!0}return e instanceof c&&!Ye(e)||("noscript"===n||"noembed"===n)&&xS(/<\/no(script|embed)/i,e.innerHTML)?(Ae(e),!0):(L&&3===e.nodeType&&(t=e.textContent,t=wS(t,T," "),t=wS(t,R," "),t=wS(t,Y," "),e.textContent!==t&&($S(i.removed,{element:e.cloneNode()}),e.textContent=t)),qe("afterSanitizeElements",e,null),!1)},We=function(e,t,i){if(ie&&("id"===t||"name"===t)&&(i in o||i in _e))return!1;if((!B||D[t]||!xS(A,t))&&(!z||!xS(V,t)))if(!U[t]||D[t]){if(!(je(e)&&(j.tagNameCheck instanceof RegExp&&xS(j.tagNameCheck,e)||j.tagNameCheck instanceof Function&&j.tagNameCheck(e))&&(j.attributeNameCheck instanceof RegExp&&xS(j.attributeNameCheck,t)||j.attributeNameCheck instanceof Function&&j.attributeNameCheck(t))||"is"===t&&j.allowCustomizedBuiltInElements&&(j.tagNameCheck instanceof RegExp&&xS(j.tagNameCheck,i)||j.tagNameCheck instanceof Function&&j.tagNameCheck(i))))return!1}else if(!ue[t]&&!xS(C,wS(i,E,""))&&("src"!==t&&"xlink:href"!==t&&"href"!==t||"script"===e||0!==_S(i,"data:")||!Oe[e])&&(!G||xS(Z,wS(i,E,"")))&&i)return!1;return!0},je=function(e){return e.indexOf("-")>0},Me=function(e){let t,n,r,o;qe("beforeSanitizeAttributes",e,null);let{attributes:s}=e;if(!s)return;let a={attrName:"",attrValue:"",keepAttr:!0,allowedAttributes:U};for(o=s.length;o--;){t=s[o];let{name:l,namespaceURI:c}=t;if(n="value"===l?t.value:SS(t.value),r=k(l),a.attrName=r,a.attrValue=n,a.keepAttr=!0,a.forceKeepAttr=void 0,qe("uponSanitizeAttribute",e,a),n=a.attrValue,a.forceKeepAttr||(Ve(l,e),!a.keepAttr))continue;if(!I&&xS(/\/>/i,n)){Ve(l,e);continue}L&&(n=wS(n,T," "),n=wS(n,R," "),n=wS(n,Y," "));let O=k(e.nodeName);if(We(O,r,n)){if(ne&&("id"===r||"name"===r)&&(Ve(l,e),n=re+n),Q&&"object"==typeof f&&"function"==typeof f.getAttributeType&&!c)switch(f.getAttributeType(O,r)){case"TrustedHTML":n=Q.createHTML(n);break;case"TrustedScriptURL":n=Q.createScriptURL(n)}try{c?e.setAttributeNS(c,l,n):e.setAttribute(l,n),bS(i.removed)}catch{}}}qe("afterSanitizeAttributes",e,null)},De=function e(t){let i,n=Ee(t);for(qe("beforeSanitizeShadowDOM",t,null);i=n.nextNode();)qe("uponSanitizeShadowNode",i,null),!Ue(i)&&(i.content instanceof s&&e(i.content),Me(i));qe("afterSanitizeShadowDOM",t,null)};return i.sanitize=function(e){let t,r,o,a,c=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(be=!e,be&&(e="\x3c!--\x3e"),"string"!=typeof e&&!Ne(e)){if("function"!=typeof e.toString)throw XS("toString is not a function");if("string"!=typeof(e=e.toString()))throw XS("dirty is not a string, aborting")}if(!i.isSupported)return e;if(F||xe(c),i.removed=[],"string"==typeof e&&(se=!1),se){if(e.nodeName){let t=k(e.nodeName);if(!N[t]||M[t])throw XS("root node is forbidden and cannot be sanitized in-place")}}else if(e instanceof l)t=Ze("\x3c!----\x3e"),r=t.ownerDocument.importNode(e,!0),1===r.nodeType&&"BODY"===r.nodeName||"HTML"===r.nodeName?t=r:t.appendChild(r);else{if(!J&&!L&&!K&&-1===e.indexOf("<"))return Q&&te?Q.createHTML(e):e;if(t=Ze(e),!t)return J?null:te?v:""}t&&H&&Ae(t.firstChild);let O=Ee(se?e:t);for(;o=O.nextNode();)Ue(o)||(o.content instanceof s&&De(o.content),Me(o));if(se)return e;if(J){if(ee)for(a=_.call(t.ownerDocument);t.firstChild;)a.appendChild(t.firstChild);else a=t;return(U.shadowroot||U.shadowrootmod)&&(a=x.call(n,a,!0)),a}let h=K?t.outerHTML:t.innerHTML;return K&&N["!doctype"]&&t.ownerDocument&&t.ownerDocument.doctype&&t.ownerDocument.doctype.name&&xS(FS,t.ownerDocument.doctype.name)&&(h="\n"+h),L&&(h=wS(h,T," "),h=wS(h,R," "),h=wS(h,Y," ")),Q&&te?Q.createHTML(h):h},i.setConfig=function(e){xe(e),F=!0},i.clearConfig=function(){we=null,F=!1},i.isValidAttribute=function(e,t,i){we||xe({});let n=k(e),r=k(t);return We(n,r,i)},i.addHook=function(e,t){"function"==typeof t&&(X[e]=X[e]||[],$S(X[e],t))},i.removeHook=function(e){if(X[e])return bS(X[e])},i.removeHooks=function(e){X[e]&&(X[e]=[])},i.removeAllHooks=function(){X={}},i}(),ix=tx,nx={};t(nx),e(nx,"default",(()=>rx.default));var rx={};e(rx,"default",(()=>Qx),(e=>Qx=e));var ox=Object.create,sx=Object.defineProperty,ax=Object.getOwnPropertyDescriptor,lx=Object.getOwnPropertyNames,cx=Object.getPrototypeOf,Ox=Object.prototype.hasOwnProperty,hx=(e,t,i,n)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let r of lx(t))!Ox.call(e,r)&&r!==i&&sx(e,r,{get:()=>t[r],enumerable:!(n=ax(t,r))||n.enumerable});return e},ux=(e,t,i)=>(i=null!=e?ox(cx(e)):{},hx(!t&&e&&e.__esModule?i:sx(i,"default",{value:e,enumerable:!0}),e)),dx=((e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports))(((e,t)=>{var i=Symbol("baseMap"),n=class{constructor(e){this.value=e}};function r(e){if(!Array.isArray(e))throw new TypeError("The keys parameter must be an array")}function o({[i]:e},t,n){for(let i of t){if(!e.has(i)){if(!n)return;e.set(i,new WeakMap)}e=e.get(i)}return e}t.exports=class extends WeakMap{constructor(){super(),this[i]=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,i]of e)this.set(t,i)}}set(e,t){return r(e),o(this,e,!0).set(n,t),this}get(e){r(e);let t=o(this,e);return t?t.get(n):void 0}has(e){r(e);let t=o(this,e);return!!t&&t.has(n)}delete(e){r(e);let t=o(this,e);return!!t&&t.delete(n)}get[Symbol.toStringTag](){return"ManyKeysWeakMap"}}})),fx={};((e,t)=>{for(var i in t)sx(e,i,{get:t[i],enumerable:!0})})(fx,{default:()=>Qx});var px=ux(dx());((e,t,i)=>{hx(e,t,"default"),i&&hx(i,t,"default")})(fx,ux(dx()));var gx,mx,{default:bx,...$x}=px,Qx=void 0!==bx?bx:$x;gx=nx,mx=rx,Object.keys(mx).forEach((function(e){"default"===e||"__esModule"===e||gx.hasOwnProperty(e)||Object.defineProperty(gx,e,{enumerable:!0,get:function(){return mx[e]}})}));let vx=e=>wg().language.parser.parse(e).topNode.firstChild;const yx=!1;let wx=(e,t=(e=>e),i=new Map)=>(...n)=>{let r=t(...n),o=i.get(r);if(null!=o)return o;{let t=e(...n);if(null==t)throw new Error("Memoized function returned undefined");return i.set(r,t),t}},_x=(e,t=((...e)=>e))=>wx(e,t,new rx.default),Sx=e=>wx(e,(e=>e),new WeakMap),xx=function*(e){if(e.firstChild())try{do{yield e}while(e.nextSibling())}finally{e.parent()}},Xx=function*(e){if(e.firstChild){let t=e.firstChild;do{yield t}while(t=t.nextSibling)}},Px=(e,t,i,n=!1)=>{if(n){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 r=t.pattern;if("function"!=typeof r)throw new Error(`Unknown pattern "${r}"`);let o={};n&&(o={...i},console.groupCollapsed(`Matching against pattern: ${t.pattern.name}()`));let s=null;try{s=r(e,i,n)}finally{n&&console.groupEnd()}if(n)if(s){if(console.log("✅ because the pattern was happy! All hail the pattern!"),!Xt.isEqual(i,o)){let e=Xt.omit(i,Object.keys(o));console.log(" WE EVEN GOT NEW MATCHES SAY WHAAAAAAT:",e)}}else console.log("❌ because... well, you should ask the pattern that!");return s}if(!("node"in t))throw console.log("template:",t),new Error("waaaah");{let{node:r,children:o}=t;if(n&&console.log(`Matching against node: ${t.node.name}`),!e)return"end"===r.name?(n&&console.log("✅ No node left to match, but it was the end anyway"),!0):(n&&console.log("❌ because no cursor left to match against"),!1);if(e.type.isError)return n&&console.log("✅ because ⚠"),!0;if(e.name!==r.name)return n&&console.log(`❌ because name mismatch "${e.name}" !== "${r.name}"`),!1;if(!e.firstChild()){if(0!==t.children.length){n&&console.log("Haystack node is empty, but template has children... lets see");for(let e of t.children)if(!Px(null,e,i,n))return n&&console.log("❌ because child template wasn't okay with having no children",e),!1;return n&&console.log("✅ All template children we're fine with having no children to check on"),!0}return n&&console.log("✅ Template also has no children, yayyy"),!0}try{let r=!1;for(let t of o){if(r){if(n&&console.log("Haystack is empty, but there are more children in template... lets see"),!Px(null,t,i,n))return n&&console.log("❌ template child did not accept null for an answer",t,e.toString()),!1;n&&console.log("👌🏽 This template child was fine with null");continue}for(;("Comment"===e.name||"BlockComment"===e.name)&&e.nextSibling(););if(!Px(e,t,i,n))return n&&console.log("❌ because a child mismatch",t,e.toString()),!1;r=!e.nextSibling()}if(n&&!r){let i=[];do{i.push(e.node)}while(e.nextSibling());for(let t of i)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?",i,t)}return n&&console.log("✅ because all children match"),!0}finally{e.parent()}}}finally{n&&console.groupEnd()}};class kx{constructor(e,t){let i=[],n=[];i.push(e[0]);for(let[r,o]of Xt.zip(e.slice(1),t))if(o instanceof kx){i[i.length-1]+=o.template[0];for(let[e,t]of Xt.zip(o.template.slice(1),o.substitutions))n.push(t),i.push(e);i[i.length-1]+=r}else n.push(o),i.push(r);this.template=i,this.substitutions=n}}let Tx=(e,t)=>{for(let i of t)if(e.from===i.from&&e.to===i.to){i.used=!0;let t=i.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(Xx(e)).map((e=>Tx(e,t))),node:e}},Rx=function*(e){try{if(e instanceof kx){let t="",i=[];for(let[n,r]of Xt.zip(e.template,e.substitutions))if(t+=n,r){let e=Rx(r),n=Dx(e.next());i.push({from:t.length,to:t.length+n.length,generator:e}),t+=n}let n=yield t,r=i.map((e=>({from:e.from+n.from,to:e.to+n.from,generator:e.generator,used:!1})));yx;let o=Tx(n.node,r),s=r.filter((e=>!e.used)).map((e=>({text:t.slice(e.from,e.to),from:e.from,to:e.to})));if(s.length>0)throw new Error(`Some substitutions not applied, this means it couldn't be matched to a AST position: ${JSON.stringify(s)}`);return o}if("function"==typeof e)return yield*e();throw console.log("julia_code_object:",e),new Error("Unknown substition type")}finally{}},Yx=_x(((e,...t)=>new kx(e,t))),Ax=new WeakMap,Vx=(e,...t)=>{let i=Ax.get(e);if(null!=i){let{input:e,result:t}=i;return t}{let i=new kx(e,t);return Ax.set(e,{input:t,result:i}),i}},Zx=Sx((e=>{let t=Rx(e),i=Dx(t.next()),n=vx(i),r=zx(t.next({from:0,to:i.length,name:n.name,node:n}));return{template_description:r,match(e,t=!1){if("node"in r&&r.node.name!==e.name)return;if(e.type.isError)return null;"cursor"in e&&(e=e.cursor());let i={};t&&console.groupCollapsed(`Starting a match at ${e.name}`);try{return Px(e,r,i,t)?i:null}finally{t&&console.groupEnd()}}}})),Ex=Sx((e=>{let t=Rx(e),i=Dx(t.next());return t.return(),i})),Cx=(Sx((e=>vx(Ex(e)))),Sx((e=>Hi.of([Ex(e)]))),e=>{let t={},i=wx((i=>Sx((n=>e(i,n===t?void 0:n)))));return(e,n=t)=>i(e)(n)});function*Nx(){return yield"expression",{pattern:function(e,t,i=!1){return e?!e.type.is("keyword")||(i&&console.log("❌ Keywords are not allowed!"),!1):(i&&console.log("❌ I want anything!! YOU GIVE ME NULL???"),!1)}}}const qx={any:Nx,many:Cx(((e,t=Nx)=>function*(){let i=Rx(t),n=yield Dx(i.next()),r=null,o=null;return n.node.firstChild&&n.node.from===n.node.firstChild.from&&n.node.to===n.node.firstChild.to?(r=n.node,o=zx(i.next({...n,node:n.node.firstChild}))):o=zx(i.next(n)),{narrowed_node:r,sub_template:o,pattern:function(t,i,n=!1){if(!t)return n&&console.log("✅ Nothing to see here... I'm fine with that - many"),!0;if(r){if(t.name!==r.name)return n&&console.log("❌ Tried to go in, but she wasn't my type - many"),t.prevSibling(),!0;t.firstChild()}try{let s=[];for(;;){if(t.type.isError)return t.prevSibling(),n&&console.log("✋ I don't do errors - many"),!0;let e={};if(!Px(t,o,e,n)){t.prevSibling();break}if(s.push({node:t.node,match:e}),!t.nextSibling())break}return null!=e&&(i[e]=s),!0}finally{r&&t.parent()}}}})),maybe:Sx((e=>function*(){let t=yield*Rx(e);return{sub_template:t,pattern:function(e,i,n=!1){if(!e)return!0;if(e.type.isError)return!0;return!1===Px(e,t,i,n)&&e.prevSibling(),!0}}})),anything_that_fits:Sx((e=>function*(){return yield*Rx(e),{pattern:function(e,t,i=!1){return!0}}})),something_with_the_same_type_as:Sx((e=>function*(){let t=Rx(e),i=Dx(t.next()),n=yield i;return t.return(),{pattern:function(e,t,i=!1){return null!=e&&n.name===e.name}}})),as:Cx(((e,t=Nx)=>function*(){let i=yield*Rx(t);return{sub_template:i,pattern:function(t,n,r=!1){let o=Px(t,i,n,r);return!0===o&&(n[e]=null==t?void 0:t.node),null!=t&&o}}})),Identifier:function*(){return yield"identifier",{pattern:function(e,t,i=!1){return null!=e&&"Identifier"===jx(e)}}},Number:function*(){return yield"69",{pattern:function(e,t,i=!1){return null!=e&&"Number"===jx(e)}}},String:function*(){return yield'"A113"',{pattern:function(e,t,i=!1){return null!=e&&("StringWithoutInterpolation"===jx(e)||"TripleStringWithoutInterpolation"===jx(e))}}}};let Ux=_x(((e,t)=>{let i=Rx(e),n=Dx(i.next()),r=vx(n),o=null;if(o=t.match(r)){let{content:e}=o,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:",o),new Error("No content match?");let n=zx(i.next({name:e.name,node:e,from:r.from,to:r.to}));return{possible_parents:t,template_description:n,match(e,i=!1){if(e.type.isError)return i&&console.log(`❌ Short circuiting because haystack(${e.name}) is an error`),!1;"cursor"in e&&(e=e.cursor());let r=0;for(let n of t){if(e.type!==n)break;{let t=e.from,o=e.to;if(e.firstChild()){if(e.from!==t||e.to!==o){e.parent(),i&&console.log(`❌ Was matching possible parent (${n}), 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?Wx(e.firstChild):e,jx=e=>{let t=e.from,i=e.to;if(e.firstChild())try{if(e.from===t&&e.to===i)return jx(e)}finally{e.parent()}return e.name},Mx=e=>t=>{let i=Zx(e(qx.as("content",t)));return Ux(e(t),i)};let Dx=e=>{if(e.done)throw new Error("Expected `yield`-d value, but got `return`");return e.value},zx=e=>{if(e.done)return e.value;throw new Error("Expected `yield`-d value, but got `return`")},Bx=(e,t)=>{if(e===t)return e;let i=[...e.usages,...t.usages],n=new Map(e.definitions);for(let[e,i]of t.definitions)n.set(e,i);return{usages:i,definitions:n,locals:[...e.locals,...t.locals]}},Gx=function*(e){for(let t of xx(e))if("InterpolationExpression"===t.name)yield e;else if("QuoteExpression"===t.name||"QuoteStatement"===t.name)for(let e of Gx(t))yield*Gx(e);else yield*Gx(t)},Ix=e=>{let t=Mx(e);return function(e,i=!1){return null==e?(e,...i)=>t(Vx(e,...i)):function(n,...r){return t(Vx(n,...r)).match(e,i)}}},Lx=Ix((e=>Yx`[i for i in i ${e}]`)),Kx=Ix((e=>Yx`${e} = nothing`)),Fx=Ix((e=>Yx`function f(${e}) end`)),Hx=Ix((e=>Yx`f(${e})`)),Jx=Ix((e=>Yx`f(; ${e})`)),eX=(e,t,i,n=!1)=>{let r=null;if(r=Hx(e)`; ${qx.many("named_args")}`){let{named_args:e=[]}=r;for(let{node:r}of e)i=eX(r,t,i,n);return i}if(r=Fx(e)`${qx.Identifier}`)return cX(i,t,e);if(r=Fx(e)`${qx.as("subject")}...`)return tX(r.subject,t,i,null,n);if(r=Fx(e)`${qx.as("name")} = ${qx.as("value")}`){let{name:e,value:o}=r;return i=tX(e,t,i,o.to,n),i=OX(o.cursor(),t,i,n)}if((r=Fx(e)`${qx.as("name")}::${qx.as("type")}`)??(r=Fx(e)`${qx.as("name")}:`)??(r=Fx(e)`::${qx.as("type")}`)){let{name:e,type:o}=r;return e&&(i=tX(e,t,i,o.to,n)),o&&(i=OX(o.cursor(),t,i,n)),i}return i=tX(e,t,i),n&&console.warn("UNKNOWN FUNCTION DEFINITION ARGUMENT:",e.toString()),i},tX=(e,t,i,n=null,r=!1)=>{let o=null;r&&console.group("Explorering pattern:",e.toString());try{if(o=Kx(e)`${qx.Identifier}`)return r&&console.log("It's an identifier, adding it to the scope"),cX(i,t,e,n);if(o=Kx(e)`${qx.as("object")}::${qx.as("type")}`){let{object:e,type:n}=o;return i=OX(n.cursor(),t,i,r),i=cX(i,t,e)}if(o=Kx(e)`${qx.as("subject")}...`)return tX(o.subject,t,i,n,r);if(o=Fx(e)`${qx.as("name")} = ${qx.as("value")}`){let{name:e,value:n}=o;return i=tX(e,t,i,n.from,r),i=OX(n.cursor(),t,i,r)}if(o=Kx(e)`(; ${qx.many("named_tuples")})`){let{named_tuples:e}=o;for(let o of e)i=tX(o.node.cursor(),t,i,n,r);return i}if((o=Kx(e)`${qx.as("first")}, ${qx.many("rest")}`)??(o=Kx(e)`(${qx.as("first")}, ${qx.many("rest")})`)){for(let{node:e}of[{node:o.first},...o.rest??[]])i=tX(e.cursor(),t,i,n,r);return i}if(o=nX(e)`${qx.as("prefix")}${qx.as("string",qx.String)}`){let{prefix:n,string:s}=o;if("var"===t.sliceString(n.from,n.to)){let n=t.sliceString(s.from+1,s.to-1);0!==n.length&&i.definitions.set(n,{from:e.from,to:e.to,valid_from:e.to})}else i=OX("cursor"in e?e.cursor():e,t,i,r);return i}if(o=Kx(e)`${qx.as("object")}[${qx.as("property")}]`){let{object:e,property:n}=o;return i=OX(e.cursor(),t,i,r),n&&(i=OX(n.cursor(),t,i,r)),i}if(o=Kx(e)`${qx.as("object")}.${qx.as("property")}`){let{object:e,property:n}=o;return i=OX(e.cursor(),t,i,r)}return r&&console.warn("UNKNOWN PATTERN:",e.toString(),t.sliceString(e.from,e.to)),i}finally{r&&console.groupEnd()}},iX=function(e,t,i,n=!1){let r=null;if("Definition"!==e.name||!e.firstChild()){if("Identifier"===e.name)return{inner:cX(i,t,e),outer:cX(sX(),t,e)};if(r=nX(e)`${qx.as("subject")}{ ${qx.many("parameters")} }`){let{subject:e,parameters:n}=r,o=sX();if(e){let n=iX(e.cursor(),t,i);o=n.outer,i=n.inner}for(let{node:e}of n){let{inner:n}=iX(e.cursor(),t,i);i=n}return{inner:i,outer:o}}if(r=nX(e)`${qx.as("subject")} <: ${qx.maybe(qx.as("type"))}`){let{subject:e,type:n}=r,o=sX();return e&&({outer:o,inner:i}=iX(e.cursor(),t,i)),n&&(i=OX(n.cursor(),t,i)),{inner:i,outer:o}}return n&&console.warn(`Unknown thing in definition: "${t.sliceString(e.from,e.to)}", "${e.toString()}"`),{inner:i,outer:sX()}}try{return iX(e,t,i)}finally{e.parent()}},nX=(rX=Zx,function(e,t=!1){return null==e?(e,...t)=>rX(Vx(e,...t)):function(i,...n){return rX(Vx(i,...n)).match(e,t)}});var rX;let oX=(e,t,i,n=!1)=>{let r=null,o=Ix((e=>Yx`${e} x y z`));if(r=o(e)`${qx.as("macro",Vx`@${qx.any}`)}`){let{macro:e}=r,n=t.sliceString(e.from,e.to);return i.usages.push({usage:e,definition:i.definitions.get(n)??null,name:n}),i}if(r=o(e)`${qx.as("object")}.@${qx.as("macro")}`){let{object:e}=r,n=t.sliceString(e.from,e.to);return i.usages.push({usage:e,definition:i.definitions.get(n)??null,name:n}),i}if(r=o(e)`@${qx.as("object")}.${qx.as("macro")}`){let{object:e}=r,n=t.sliceString(e.from,e.to);return i.usages.push({usage:e,definition:i.definitions.get(n)??null,name:n}),i}return n&&console.warn("Mwep mweeeep",e.toString()),i},sX=()=>({usages:[],definitions:new Map,locals:[]}),aX=e=>({usages:[],definitions:new Map(e.definitions),locals:[]}),lX=(e,t,i)=>({usages:[...t.usages,...e.usages],definitions:t.definitions,locals:[]}),cX=(e,t,i,n=null)=>(n=null===n?i.to:n,e.definitions.set(t.sliceString(i.from,i.to),{from:i.from,to:i.to,valid_from:n}),e),OX=(e,t,i={usages:[],definitions:new Map,locals:[]},n=!1)=>{"cursor"in e&&(e=e.cursor());let r=null;if(n){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:",i)}finally{console.groupEnd()}r=e.node}try{let r=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 r of xx(e))i=OX(r,t,i,n);return i}if("Identifier"===e.name||"MacroIdentifier"===e.name){let n=t.sliceString(e.from,e.to);return i.usages.push({name:n,usage:{from:e.from,to:e.to},definition:i.definitions.get(n)??null}),i}if(r=nX(e)`:${qx.any}`)return i;if(r=nX(e)`${qx.Number}`)return i;if(r=nX(e)`${qx.String}`)return i;if(r=nX(e)`${qx.as("object")}.${qx.as("property")}`){let{object:e,property:o}=r;return e&&(i=OX(e.cursor(),t,i,n)),i}if(r=nX(e)`${qx.as("assignee")} = ${qx.maybe(qx.as("value"))}`){let{assignee:e,value:o}=r;return o&&(i=OX(o.cursor(),t,i,n)),e&&(i=tX(e.cursor(),t,i,(null==o?void 0:o.to)??null,n)),i}if(r=nX(e)` + ${qx.as("macro",qx.anything_that_fits(Vx`@macro`))}(${qx.many("args")}) ${qx.maybe(Vx`do ${qx.maybe(qx.many("do_args"))} + ${qx.many("do_expressions")} + end`)}} + `){let{macro:o,args:s=[],do_args:a,do_expressions:l}=r;o&&oX(o.cursor(),t,i,n);for(let{node:e}of s)if(r=Hx(e)`${qx.as("name")} = ${qx.as("value")}`){let{name:e,value:o}=r;o&&(i=OX(o.cursor(),t,i,n))}else i=OX(e.cursor(),t,i,n);if(a&&l){let r=aX(i),o=a.firstChild;if("Identifier"===o.name)r=cX(r,t,o);else if("ArgumentList"===o.name)for(let e of Xx(o))r=eX(e,t,r);else if("BareTupleExpression"===o.name)for(let e of Xx(o))r=eX(e,t,r);else n&&console.warn("Unrecognized do args",o.toString());for(let{node:e}of l)r=OX(e.cursor(),t,r,n);return lX(r,i,e.to)}return i}if(r=nX(e)`${qx.as("macro",qx.anything_that_fits(Vx`@macro`))} ${qx.many("args")}`){let{macro:e,args:o=[]}=r;e&&oX(e.cursor(),t,i,n);for(let{node:e}of o)i=OX(e.cursor(),t,i,n);return i}if((r=nX(e)` + struct ${qx.as("defined_as")} + ${qx.many("expressions")} + end + `)??(r=nX(e)` + mutable struct ${qx.as("defined_as")} + ${qx.many("expressions")} + end + `)){let{defined_as:o,expressions:s=[]}=r;o=Wx(o);let a=aX(i),l=sX();o&&({inner:a,outer:l}=iX(o.cursor(),t,a));for(let{node:i}of s)if("Identifier"===e.name);else if(r=nX(i)`${qx.as("subject")}::${qx.as("type")}`){let{subject:e,type:i}=r;a=OX(i.cursor(),t,a,n)}else if(r=nX(i)`${qx.as("assignee")} = ${qx.as("value")}`){let{assignee:e,value:i}=r;if(r=nX(e)`${qx.as("subject")}::${qx.as("type")}`){let{subject:e,type:i}=r;a=OX(i.cursor(),t,a,n)}a=OX(i.cursor(),t,a,n)}return i=lX(a,i,e.to),i=Bx(i,l)}if(r=nX(e)`abstract type ${qx.as("name")} end`){let{name:e}=r;if(e){let{outer:n}=iX(e.cursor(),t,i);i=Bx(i,n)}return i}if((r=nX(e)`quote ${qx.many("body")} end`)??(r=nX(e)`:(${qx.many("body")})`)){for(let r of function*(e){if("QuoteExpression"!==e.name&&"QuoteStatement"!==e.name)throw new Error("Expected QuotedExpression or QuoteStatement");yield*Gx(e)}(e))i=OX(r,t,i,n);return i}if(r=nX(e)` + module ${qx.as("name")} + ${qx.many("expressions")} + end + `){let{name:e,expressions:n=[]}=r;e&&(i=cX(i,t,e));let o=sX();for(let{node:e}of n)o=OX(e.cursor(),t,o);i=Bx(i,{usages:Array.from(o.usages).filter((e=>null!=e.definition)),definitions:new Map,locals:[]});for(let{node:e}of n)i=OX(e.cursor(),t,i);return i}if(r=nX(e)`${qx.as("prefix")}${qx.as("string",qx.String)}`){let{prefix:n,string:o}=r,s=t.sliceString(n.from,n.to);if("var"===s){let n=t.sliceString(o.from+1,o.to-1);return 0!==n.length&&i.usages.push({name:n,usage:{from:e.from,to:e.to},definition:i.definitions.get(n)??null}),i}{let e=`@${s}_str`;i.usages.push({name:e,usage:{from:n.from,to:n.to},definition:i.definitions.get(e)??null})}return i}if(r=nX(e)`${qx.Number}${qx.as("unit")}`)return OX(r.unit.cursor(),t,i,n);if((r=nX(e)`import ${qx.any}: ${qx.many("specifiers")}`)??(r=nX(e)`using ${qx.any}: ${qx.many("specifiers")}`)){let{specifiers:e=[]}=r,o=Ix((e=>Yx`import X: ${e}`));for(let{node:s}of e)if(r=o(s)`${qx.as("name")} as ${qx.as("alias")}`){let{alias:e}=r;i=cX(i,t,e)}else if(r=o(s)`${qx.as("name",qx.Identifier)}`){let{name:e}=r;i=cX(i,t,e)}else(r=o(s)`@${qx.any}`)?i=cX(i,t,s):n&&console.warn("Hmmmm, I don't know what to do with this selected import specifier:",s.toString());return i}if(r=nX(e)`import ${qx.many("specifiers")}`){let{specifiers:e=[]}=r,o=Ix((e=>Yx`import ${e}`));for(let{node:s}of e)if(r=o(s)`${qx.any} as ${qx.as("alias")}`){let{alias:e}=r;i=cX(i,t,e)}else if(r=o(s)`${qx.as("package")}.${qx.as("name",qx.Identifier)}`)i=cX(i,t,r.name);else if(r=o(s)`.${qx.as("scoped")}`){let e=null;for(;e=o(r.scoped)`.${qx.as("scoped")}`;)r=e;i=cX(i,t,r.scoped)}else(r=o(s)`${qx.as("name",qx.Identifier)}`)?i=cX(i,t,r.name):n&&console.warn("Hmmm, I don't know what to do with this import specifier:",s);return i}if(r=nX(e)`using ${qx.many()}`)return i;if(r=nX(e)` + for ${qx.many("bindings",qx.something_with_the_same_type_as(Vx`x in y`))}; + ${qx.many("expressions")} + end + `){let o=Mx((e=>Yx`for ${e}; x end`)),s=e=>(...t)=>o(Vx(...t)).match(e),{bindings:a,expressions:l}=r,c=aX(i);for(let{node:e}of a){let i=null;if((i=s(e)`${qx.as("name")} in ${qx.as("range")}`)??(i=s(e)`${qx.as("name")} ∈ ${qx.as("range")}`)??(i=s(e)`${qx.as("name")} = ${qx.as("range")}`)){let{name:e,range:r}=i;r&&(c=OX(r.cursor(),t,c,n)),e&&(c=tX(e,t,c,(null==r?void 0:r.to)??null,n))}else n&&console.warn("Unrecognized for loop binding",e.toString())}for(let{node:e}of l)c=OX(e.cursor(),t,c,n);return lX(c,i,e.to)}if((r=nX(e)` + ${qx.as("callee")}(${qx.many("args")}) ${qx.maybe(Vx`do ${qx.maybe(qx.many("do_args"))} + ${qx.many("do_expressions")} + end`)} + `)??(r=nX(e)` + ${qx.as("callee")}.(${qx.many("args")}) + `)){let{callee:o,args:s=[],do_args:a=[],do_expressions:l=[]}=r;i=OX(o.cursor(),t,i,n);for(let{node:r}of s){let o=null;if(o=Hx(r)`; ${qx.many("named_args")}`){let{named_args:e=[]}=o;for(let{node:r}of e){let e=null;if(e=Jx(r)`${qx.as("name")} = ${qx.as("value")}`){let{name:r,value:o}=e;i=OX(o.cursor(),t,i,n)}else i=OX(r.cursor(),t,i,n)}}else if(o=Hx(r)`${qx.as("name")} = ${qx.as("value")}`){let{name:e,value:r}=o;r&&(i=OX(r.cursor(),t,i,n))}else{if(o=Hx(r)`${qx.as("result")} ${qx.many("clauses",qx.anything_that_fits(Vx`for x = y`))}`){let{result:r,clauses:s}=o,a=aX(i);for(let{node:e}of s){let i=null;if((i=Lx(e)`for ${qx.as("variable")} = ${qx.maybe(qx.as("value"))}`)??(i=Lx(e)`for ${qx.as("variable")} in ${qx.maybe(qx.as("value"))}`)??(i=Lx(e)`for ${qx.as("variable")} ∈ ${qx.maybe(qx.as("value"))}`)??(i=Lx(e)`for ${qx.as("variable")}`)){let{variable:e,value:r}=i;r&&(a=OX(r.cursor(),t,a,n)),e&&(a=tX(e,t,a))}else if(i=Lx(e)`if ${qx.maybe(qx.as("if"))}`){let{if:e}=i;e&&(a=OX(e.cursor(),t,a,n))}else n&&console.log("Hmmm, can't parse for binding",e)}return a=OX(r.cursor(),t,a,n),lX(a,i,e.to)}i=OX(r.cursor(),t,i,n)}}let c=aX(i);for(let{node:e}of a)c=eX(e,t,c);for(let{node:e}of l)c=OX(e.cursor(),t,c,n);return lX(c,i,e.to)}if(r=nX(e)`(${qx.many("tuple_elements")},)`){let{tuple_elements:o=[]}=r,s=Ix((e=>Yx`(${e},)`)),a=o.map((({node:t})=>null!=s(e)`${qx.Identifier} = ${qx.any}`));if(a.every((e=>!0===e))||a.every((e=>!1===e)))for(let{node:r}of o){let o=null;if(o=s(e)`${qx.as("name")} = ${qx.as("value")}`){let{name:e,value:r}=o;r&&(i=OX(r.cursor(),t,i,n))}else i=OX(r.cursor(),t,i,n)}else for(let{node:r}of o){let o=null;if(o=s(e)`${qx.as("name")} = ${qx.as("value")}`){let{name:e,value:r}=o;r&&(i=OX(r.cursor(),t,i,n)),e&&(i=cX(i,t,e,(null==r?void 0:r.to)??null))}else i=OX(r.cursor(),t,i,n)}return i}if((r=nX(e)`(${qx.many("args")}) -> ${qx.many("body")}`)??(r=nX(e)`${qx.as("arg")} -> ${qx.many("body")}`)??(r=nX(e)`${qx.as("name")}(${qx.many("args")})::${qx.as("return_type")} = ${qx.many("body")}`)??(r=nX(e)`${qx.as("name")}(${qx.many("args")}) = ${qx.many("body")}`)??(r=nX(e)`${qx.as("name")}(${qx.many("args")}) = ${qx.many("body",qx.anything_that_fits(Vx`x, y`))}`)??(r=nX(e)` + function ${qx.as("name")}(${qx.many("args")})::${qx.as("return_type")} where ${qx.as("type_param")} + ${qx.many("body")} + end + `)??(r=nX(e)` + function ${qx.as("name")}(${qx.many("args")}) where ${qx.as("type_param")} + ${qx.many("body")} + end + `)??(r=nX(e)` + function ${qx.as("name")}(${qx.many("args")})::${qx.as("return_type")} + ${qx.many("body")} + end + `)??(r=nX(e)` + function ${qx.as("name")}(${qx.many("args")}) + ${qx.many("body")} + end + `)??(r=nX(e)` + function ${qx.as("name",qx.Identifier)} end + `)??(r=nX(e)`macro ${qx.as("macro_name")} end`)??(r=nX(e)` + macro ${qx.as("macro_name")}(${qx.many("args")}) + ${qx.many("body")} + end + `)){let{name:o,macro_name:s,arg:a,args:l=[],return_type:c,type_param:O,body:h=[]}=r;a&&l.push({node:a}),o?i=cX(i,t,o):s&&i.definitions.set(`@${t.sliceString(s.from,s.to)}`,{from:s.from,to:s.to,valid_from:s.to});let u=aX(i);if(O){let e=Ix((e=>Yx`function X() where ${e} end`)),i=Ix((e=>Yx`function X() where {${e}} end`)),r=[{node:O}],o=e(O)`{${qx.many("type_params")}}`;o&&(r=o.type_params);for(let{node:e}of r){let r=null;if(r=i(e)`${qx.as("defined",qx.Identifier)} <: ${qx.as("parent_type")}`){let{defined:e,parent_type:i}=r;u=OX(i,t,u,n),u=cX(u,t,e)}else if(r=i(e)`${qx.as("defined",qx.Identifier)}`){let{defined:e}=r;u=cX(u,t,e)}else n&&console.warn("Can't handle type param:",e)}}c&&(u=OX(Wx(c).cursor(),t,u,n));for(let{node:e}of l)u=eX(e.cursor(),t,u,n);for(let{node:e}of h)u=OX(e.cursor(),t,u,n);return lX(u,i,e.to)}if(r=nX(e)` + let ${qx.many("assignments",Vx`${qx.as("assignee")} = ${qx.as("value")}`)} + ${qx.many("body",qx.any)} + end + `){let{assignments:o=[],body:s=[]}=r,a=aX(i);for(let{match:{assignee:e,value:r}}of o)e&&(a=tX(e,t,a,(null==r?void 0:r.to)??null,n)),r&&(i=OX(r.cursor(),t,i,n));for(let{node:e}of s)a=OX(e.cursor(),t,a,n);return lX(a,i,e.to)}if((r=nX(e)`[ + ${qx.as("result")} + ${qx.many("clauses",qx.anything_that_fits(Vx`for x = y`))} + ]`)??(r=nX(e)`(${qx.as("result")} ${qx.many("clauses",qx.anything_that_fits(Vx`for x = y`))})`)){let{result:o,clauses:s}=r,a=aX(i);for(let{node:e}of s){let i=null;if((i=Lx(e)`for ${qx.as("variable")} = ${qx.maybe(qx.as("value"))}`)??(i=Lx(e)`for ${qx.as("variable")} in ${qx.maybe(qx.as("value"))}`)??(i=Lx(e)`for ${qx.as("variable")} ∈ ${qx.maybe(qx.as("value"))}`)??(i=Lx(e)`for ${qx.as("variable")}`)){let{variable:e,value:r}=i;r&&(a=OX(r.cursor(),t,a,n)),e&&(a=tX(e,t,a))}else if(i=Lx(e)`if ${qx.maybe(qx.as("if"))}`){let{if:e}=i;e&&(a=OX(e.cursor(),t,a,n))}else n&&console.warn("Hmmm, can't parse for binding",e)}return a=OX(o.cursor(),t,a,n),lX(a,i,e.to)}n&&(console.groupCollapsed("Cycling through all children of",e.name),console.log("text:",t.sliceString(e.from,e.to)),console.groupEnd());for(let r of xx(e))i=OX(r,t,i,n);return i}finally{n&&console.groupEnd()}},hX=Wn.define({create(e){try{let t=md(e).cursor();return OX(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(md(t.state)!=md(t.startState)){let e=md(t.state).cursor();return OX(e,t.state.doc)}return e}catch(e){return console.error("Something went wrong while parsing variables...",e),{usages:[],definitions:new Map,locals:[]}}}}),uX=e=>"SubscriptExpression"===e.name||"FieldExpression"===e.name?(e.firstChild(),uX(e)):"Identifier"===e.name?(e.firstChild(),e.node):null,dX=["Identifier","FieldExpression","SubscriptExpression","MacroFieldExpression","MacroIdentifier","Operator","Definition","ParameterizedIdentifier"],fX=["import","export","try","catch","finally","quote","do","struct","mutable","module","baremodule","if","let"],pX=e=>{if(fX.includes(e.name))return!0;if(dX.includes(e.name)){if(e.firstChild()){do{if("Number"!==e.name&&"TypeArgumentList"!==e.name&&"FieldName"!==e.name&&"MacroName"!==e.name&&"MacroFieldName"!==e.name&&!pX(e))return!1}while(e.nextSibling());return e.parent(),!0}return!0}return!1},gX=(e,t=!1)=>{let i=e.selection.main,n=e.field(hX);if(i.from!==i.to)return e.doc.sliceString(i.from,i.to).trim();{let r=e.doc.lineAt(i.from).text;if("?"===r[0])return r.slice(1);let o=md(e).cursor();t&&console.log("Full tree:",o.toString()),o.moveTo(i.to,-1);let s=0;do{t&&console.group(`Iteration #${s}`);try{if(t&&console.log("cursor",o.toString()),s>100){console.group("Infinite loop while checking docs"),console.log("Selection:",i,e.doc.sliceString(i.from,i.to).trim()),console.log("Current node:",o.name,e.doc.sliceString(o.from,o.to).trim()),console.groupEnd();break}s+=1;let r=o.node.cursor(),a=[];for(;r.parent();)a.push(r.name);let l=o.node.parent;if(null==l)break;t&&console.log("parents:",a);let c=a.indexOf("StructDefinition");if(-1!==c)if(a.includes("AssignmentExpression")&&a.indexOf("AssignmentExpression")=o.to)return e.doc.sliceString(t.from,t.to)}}if("AbstractDefinition"===o.name)return"abstract type";if("CallExpression"===o.name)return o.firstChild(),pX(o)?e.doc.sliceString(o.from,o.to):void 0;if(("Operator"===o.name||"⚠"===o.name||"Identifier"===o.name)&&"QuoteExpression"===l.name&&"FieldExpression"===l.parent.name)return e.sliceDoc(l.parent.from,l.parent.to);if("ParameterizedIdentifier"===o.name)return o.firstChild(),pX(o)?e.doc.sliceString(o.from,o.to):void 0;if("Identifier"===o.name&&"Prefix"===l.name)continue;if("PrefixedString"===o.name){return o.firstChild(),`${e.doc.sliceString(o.from,o.to)}"`}if("Identifier"===o.name&&"TypedExpression"===l.name)return o.parent(),o.lastChild(),pX(o)?e.doc.sliceString(o.from,o.to):void 0;if("TypedExpression"===o.name)return o.lastChild(),pX(o)?e.doc.sliceString(o.from,o.to):void 0;if("SpreadExpression"===o.name)return"...";if(l.to===o.to&&dX.includes(o.name)&&dX.includes(l.name))continue;if("Identifier"===o.name&&"NamedField"===l.name&&l.lastChild.from!=o.from&&l.lastChild.to!=o.to)continue;if("AssignmentExpression"===o.name){let t=o.node.firstChild.to,i=o.node.lastChild.from;return e.doc.sliceString(t,i).trim()}if("ArgumentList"===o.name)continue;if("Identifier"===o.name&&"ArgumentList"===l.name&&("FunctionAssignmentExpression"===l.parent.parent.name||"FunctionDefinition"===l.parent.name))continue;if("Identifier"===o.name&&"Symbol"===l.name)continue;if("FunctionDefinition"===o.name)return o.firstChild(),o.nextSibling(),pX(o)?e.doc.sliceString(o.from,o.to):void 0;if("FunctionAssignmentExpression"===o.name)return o.firstChild(),pX(o)?e.doc.sliceString(o.from,o.to):void 0;if("Identifier"===o.name&&"MacroIdentifier"===l.name)continue;if("MacroExpression"===o.name)return o.firstChild(),e.doc.sliceString(o.from,o.to);if("BinaryExpression"===o.name){let t=o.node.firstChild.to,i=o.node.lastChild.from;return e.doc.sliceString(t,i).trim()}if("TernaryExpression"===o.name)return"??:";if(dX.includes(o.name)||fX.includes(o.name)){if(!pX(o))return void console.log("NOT DOCS SEARCHABLE");let t=uX(o.node.cursor);if(null==t)return e.doc.sliceString(o.from,o.to);let i=n.usages.find((e=>e.usage.from===t.from&&e.usage.to===t.to));if(null==(null==i?void 0:i.definition))return e.doc.sliceString(o.from,o.to)}if("FunctionDefinition"===l.name)return;if("AssignmentExpression"===l.name)return}finally{t&&console.groupEnd()}}while(o.parent())}},mX=(e,{scopestate:t,global_definitions:i})=>Xl.set(bX(t.usages.map((({definition:e,usage:t,name:n})=>null==e?i[n]?Xl.mark({tagName:"a",attributes:{title:`${Li}-Click to jump to the definition of ${n}.`,"data-pluto-variable":n,href:`#${n}`}}).range(t.from,t.to):null:Xl.mark({tagName:"a",attributes:{title:`${Li}-Click to jump to the definition of ${n}.`,"data-cell-variable":n,"data-cell-variable-from":`${e.from}`,"data-cell-variable-to":`${e.to}`,href:"#"}}).range(t.from,t.to)))),!0);const bX=e=>e.filter((e=>null!=e)),$X=Vn.define({combine:e=>e[0],compare:Xt.isEqual}),QX=Fl.fromClass(class{constructor(e){let t=e.state.facet($X);this.decorations=mX(e.state,{scopestate:e.state.field(hX),global_definitions:t})}update(e){let t=e.state.facet($X);(e.docChanged||e.viewportChanged||t!==e.startState.facet($X))&&(this.decorations=mX(e.state,{scopestate:e.state.field(hX),global_definitions:t}))}},{decorations:e=>e.decorations,eventHandlers:{click:(e,t)=>{if(e.target instanceof Element){let n=e.target.closest("[data-pluto-variable]");if(n){var i;let r=n.getAttribute("data-pluto-variable");if(null==r)return!1;if(!Ki(e)&&!t.state.readOnly)return!1;e.preventDefault();let o=`[id='${encodeURI(r)}']`;null===(i=document.querySelector(o))||void 0===i||i.scrollIntoView({behavior:"smooth",block:"center"});let s=t.state.facet($X);if(s[r])return window.dispatchEvent(new CustomEvent("cell_focus",{detail:{cell_id:s[r],line:0,definition_of:r}})),!0}let r=e.target.closest("[data-cell-variable]");if(r){let i=r.getAttribute("data-cell-variable"),n=Number(r.getAttribute("data-cell-variable-from")),o=Number(r.getAttribute("data-cell-variable-to"));return null!=i&&null!=n&&null!=o&&(!(!Ki(e)&&!t.state.readOnly)&&(e.preventDefault(),t.dispatch({scrollIntoView:!0,selection:{anchor:n,head:o}}),t.focus(),!0))}}}}}),vX=ky.parser,yX=Wy.parser.configure(lQ({htmlParser:vX})),wX=Zw.language.parser,_X=function(e={}){let t=e.dialect||Vw;return new Xd(t.language,[Aw(e),Rw(t,!!e.upperCaseKeywords)])}({dialect:Zw}),SX=c_.parser,xX=["md","mermaid","cm","markdown","mdx","mdl","markdownliteral"].flatMap((e=>[e,`@${e}`])),XX=new Set(["TripleString","String","CommandString","TripleStringWithoutInterpolation","StringWithoutInterpolation","CommandStringWithoutInterpolation"]),PX=yo(((e,t)=>{var i,n,r;if(!XX.has(e.type.name))return null;const o="TripleString"===e.name||"TripleStringWithoutInterpolation"===e.name?3:1,s=e.from+o,a=Math.min(e.to-o,t.length);if(s>=a)return null;const l=(null===(i=e.node)||void 0===i?void 0:i.prevSibling)||(null===(n=e.node)||void 0===n||null===(r=n.parent)||void 0===r?void 0:r.prevSibling);if(null==l||"MacroIdentifier"!==l.name&&"Prefix"!==l.name)return null;const c="MacroIdentifier"===l.name,O=t.read(l.from,l.to);let h=null;if("@htl"===O||"html"===O)h=vX;else if(xX.includes(O))h=yX;else if("@javascript"===O||"@js"===O||"js"===O||"javascript"===O)h=Iv.parser;else if("py"===O||"pyr"===O||"python"===O||"@python"===O)h=SX;else{if("sql"!==O)return null;h=wX}let u=[];if(null!=e.node.firstChild){let t=s,i=e.node.firstChild.cursor();do{t!==i.from&&u.push({from:t,to:i.from}),t=i.to}while(i.nextSibling());te.flatMap((({from:e,to:i})=>{const n=t.read(e,i),r=[];let o=e;for(let{index:t}of n.matchAll(/\\\$/g)){let i=e+t;o!==i&&r.push({from:o,to:i}),o=i+1}return o!==i&&r.push({from:o,to:i}),r})))(u,t)),[...xX].includes(O)?{parser:h,overlay:[{from:s,to:a}]}:{parser:h,overlay:u}})),kX=e=>{const t=wg(e);return t.language.parser=t.language.parser.configure({wrap:PX}),t};let TX=({focus_on_open:e,desired_doc_query:t,on_update_doc_query:i,notebook:n,sanitize_html:r=!0})=>{let o=he(J_),s=le(null),[a,l]=oe({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}),c=e=>l(xt((t=>e(t))));se((()=>{a.loading||(null==t||/[^\s]/.test(t))&&a.searched_query!==t&&O(t)}),[t,a.loading,a.searched_query]),ae((()=>{e&&s.current&&(s.current.focus({preventScroll:!0}),s.current.select())}),[e,s.current]);let O=e=>{c((t=>{t.loading=!0,t.searched_query=e})),Promise.race([kt.Promises.delay(2e3,!1),o.send("docs",{query:e.replace(/^\?/,"")},{notebook_id:n.notebook_id}).then((t=>"⌛"!==t.message.status&&("👍"===t.message.status?(c((i=>{i.shown_query=e,i.body=t.message.doc})),!0):void 0)))]).then((()=>{c((e=>{e.loading=!1}))}))},h=ce((()=>_e`<${JR} body=${YX(a.body)} sanitize_html=${r} sanitize_html_message=${!1} />`),[a.body,r]),u=!1===a.loading&&""!==a.searched_query&&a.searched_query!==a.shown_query;return _e` +
+ i(e.target.value)} + value=${t} + type="search" + > + +
+
null!=e&&RX(e,i)}> +

${a.shown_query}

+ ${h} +
+ `};const RX=(e,t)=>{for(let t of e.querySelectorAll("code:not([class])"))eY(t,"julia");for(let i of e.querySelectorAll("a")){const e=i.getAttribute("href");if(null!=e&&e.startsWith("@ref")){const n=e.length>4?e.substr(5):i.textContent;i.onclick=e=>{t(n),e.preventDefault()}}}},YX=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,""),AX=({runtime:e,running:t,queued:i,code_differs:n,on_run:r,on_interrupt:o,set_cell_disabled:s,depends_on_disabled_cells:a,running_disabled:l,on_jump:c})=>{const O=r,h=ZX(t),u=null==h?null:1e6*h,d=(he(J_),t||i?"interrupt":l?"save":a&&!n?"jump":"run");return _e` + + + ${VX(t?u??e:e)} + + `},VX=e=>{if(null==e)return"---";let t=e;const i=["n","μ","m",""];let n=0;for(;n=1e3;)n+=1,t/=1e3;return t.toFixed(e<100||t>=100?0:1)+" "+i[n]+"s"},ZX=e=>{const[t,i]=oe(0),[n,r]=oe(0);return se((()=>{let t;if(e){const e=+new Date;r(e),i(e),t=setInterval((()=>i(+new Date)),50)}return()=>{t&&clearInterval(t)}}),[e]),e?t-n:void 0},EX=(e,t=5)=>{const[i,n]=oe(e),r=ce((()=>Xt.debounce(n,1e3*t)),[n]);return se((()=>(e?(n(!0),r.cancel()):r(!1),()=>{})),[e]),i},CX=({total:e,done:t,busy:i})=>(e=Math.max(1,e),_e` +
=8&&e<48,big:e>=48})} + data-total=${e} + > + ${[...Array(e)].map(((e,n)=>_e`
=t&&n
`))} +
+ `);var NX=AnsiUp=window.AnsiUp;const qX=({value:e})=>{const t=le(null);return se((()=>{if(!t.current)return;t.current.innerHTML=(new NX).ansi_to_html(e);const i=t.current.parentElement;i&&(i.scrollTop=1e5)}),[t.current,e]),e?_e`
`:null};let UX=({status:e})=>{const t=Object.values(e.subtasks).every(LX),[i,n]=oe(!1);se((()=>{if(i&&t){console.log("all done");let t=null,i=setTimeout((()=>{n(!1);let i=HX(e);t=new Notification("Pluto: notebook ready",{tag:"notebook ready",body:`✓ All ${i} steps completed`,lang:"en-US",dir:"ltr",icon:PV}),t.onclick=e=>{parent.focus(),window.focus(),null==t||t.close()}}),3e3);const r=()=>{"visible"===document.visibilityState&&(null==t||t.close())};return document.addEventListener("visibilitychange",r),document.body.addEventListener("click",r),()=>{null==t||t.close(),clearTimeout(i),document.removeEventListener("visibilitychange",r),document.body.removeEventListener("click",r)}}}),[t]);const r=lP(!t,2500)||i;return _e` +
+ +
+ `},WX=({status:e,notebook:t,backend_launch_logs:i,my_clock_is_ahead_by:n})=>_e` +
+ <${BX} + status_tree=${e} + path=${[]} + my_clock_is_ahead_by=${n} + nbpkg=${t.nbpkg} + backend_launch_logs=${i} + /> + <${UX} status=${e} /> +
+ `;const jX="\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)),MX=["saving"],DX={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"},zX=e=>1e9*e,BX=({status_tree:e,path:t,my_clock_is_ahead_by:i,nbpkg:n,backend_launch_logs:r})=>{var o;if(null==e)return null;const s=t.reduce(((e,t)=>e.subtasks[t]),e);if(!s)return null;const[a,l]=oe(t.length<1),c=t.length>0&&KX(s),O=c&&LX(s),h=c&&!O,u=s.started_at??0,d=s.finished_at??0,f=(ZX(h)??0)/1e3,p=Date.now()/1e3,g=Math.max(f,p-u-("local"===s.timing?0:i));se((()=>{if(h){let e=setTimeout((()=>{l(!0)}),Math.max(100,500-200*t.length));return()=>clearTimeout(e)}}),[h]),tP((([e])=>{if(!e&&O){let e=setTimeout((()=>{l(!1)}),1800-200*t.length);return()=>clearTimeout(e)}}),[O]);const m=a?Object.values(s.subtasks).every((e=>GX(e.name)))&&Object.values(s.subtasks).length>0?(()=>{let e=Object.values(s.subtasks),t=e.reduce(((e,t)=>e+(LX(t)?1:0)),0),i=e.reduce(((e,t)=>e+(FX(t)?1:0)),0),n=e.length;return _e`<${CX} busy=${i} done=${t} total=${n} />`})():Object.entries(s.subtasks).sort(((e,t)=>IX(e[1],t[1]))).map((([o,s])=>MX.includes(o)?null:_e`<${BX} + key=${o} + status_tree=${e} + my_clock_is_ahead_by=${i} + path=${[...t,o]} + nbpkg=${n} + backend_launch_logs=${r} + />`)):null;let b=null;if(c){let e=JX(s),t=HX(s);e>1&&(b=_e`${" "}(${t}/${e})`)}return 0===t.length?m:_e`0})} + > +
{l(!a)}} + > + + ${(e=>{const t=DX[e];return null!=t?t:GX(e)?`Step ${e}`:e})(s.name)}${b} + ${O?VX(zX(d-u)):h?VX(zX(g)):null} +
+ ${m} + ${a&&"pkg"===s.name?_e`<${qX} value=${null==n||null===(o=n.terminal_outputs)||void 0===o?void 0:o.nbpkg_sync} />`:a&&"backend_launch"===s.name?_e`<${qX} value=${r} />`:void 0} +
`},GX=e=>/^\d+$/.test(e),IX=(e,t)=>{const i=jX.indexOf(e.name),n=jX.indexOf(t.name);if(-1===i&&-1===n)return null!=e.started_at||null!=t.started_at?(e.started_at??1/0)-(t.started_at??1/0):GX(e.name)&&GX(t.name)?parseInt(e.name)-parseInt(t.name):e.name.localeCompare(t.name);{let e=e=>-1===e?1/0:e;return e(i)-e(n)}},LX=e=>null!=e.finished_at,KX=e=>null!=e.started_at,FX=e=>KX(e)&&!LX(e),HX=e=>Object.values(e.subtasks).reduce(((e,t)=>e+HX(t)),LX(e)?1:0),JX=e=>Object.values(e.subtasks).reduce(((e,t)=>e+JX(t)),1),eP=(e,t,i,n={})=>({name:e,subtasks:n,timing:"local",started_at:ce((()=>t||i?Date.now()/1e3:null),[t||i]),finished_at:ce((()=>i?Date.now()/1e3:null),[i])}),tP=(e,t)=>{const i=le(t);se((()=>{let n=e(i.current);return i.current=t,n}),t)},iP={wait_for_user:0,requesting:.4,created:.6,responded:.7,notebook_running:.9,ready:1},nP=e=>e.endsWith("/")?e:e+"/",rP=e=>fetch(`https://stats.plutojl.org/count?p=/${e}&s=${screen.width},${screen.height},${devicePixelRatio}#skip_sw`,{cache:"no-cache"}).catch((()=>{})),oP=async({setStatePromise:e,connect:t,launch_params:i})=>{try{rP("binder-start"),await e(xt((e=>{e.backend_launch_phase=iP.requesting,e.disable_ui=!1,e.notebook.status_tree=null})));const{binder_session_url:n,binder_session_token:r}=await((e,{on_log:t})=>new Promise(((i,n)=>{console.log("Starting binder connection to",e);try{let r=new EventSource(e);r.onerror=t=>{console.error("Binder error: Lost connection to "+e,t),r.close(),n(t)};let o=null,s="",a=e=>{console.log("Binder: ",e,` at ${(new Date).toLocaleTimeString()}`),s=`${s}${e}\n`,t(s)};r.onmessage=t=>{let s=JSON.parse(t.data);switch(s.phase&&s.phase!==o&&(o=s.phase.toLowerCase(),a(`\n\n⏱️ Binder subphase: ${o}\n`)),s.message&&a(s.message.replace("] ","]\n")),s.phase){case"failed":console.error("Binder error: Failed to build",e,s),r.close(),n(new Error(s));break;case"ready":r.close(),i({binder_session_url:nP(s.url)+"pluto/",binder_session_token:s.token})}}}catch(e){console.error(e),n("Failed to open event source the mybinder.org. This probably means that the URL is invalid.")}})))(i.binder_url.replace("mybinder.org/v2/","mybinder.org/build/"),{on_log:t=>e(xt((e=>{e.backend_launch_logs=t})))}),o=e=>xi(e,{token:r});console.log("Binder URL:",o(n)),window.shutdown_binder=()=>{fetch(o(new URL("../api/shutdown",n)),{method:"POST"})},await e(xt((e=>{e.backend_launch_phase=iP.created,e.binder_session_url=n,e.binder_session_token=r}))),await fetch(o(n)),await e(xt((e=>{e.backend_launch_phase=iP.responded})));let s=async()=>{const e=o(xi(new URL("notebookupload",n),{name:new URLSearchParams(window.location.search).get("name"),execution_allowed:"true"}));return console.log("downloading locally and uploading ",e,i.notebookfile),fetch(e,{method:"POST",body:await(await fetch(new Request(i.notebookfile,{integrity:i.notebookfile_integrity}))).arrayBuffer()})},a=async(e,t)=>{const i=xi(new URL("open",n),{[e]:t});return console.log(`open ${e}:`,i),fetch(o(i),{method:"POST"})},l=(e,t)=>()=>a(e,t),c=i.notebookfile.startsWith("data:")?[s]:[l("path",i.notebookfile),l("url",new URL(i.notebookfile,window.location.href).href),s],O=new Response;for(let e of c)if(O=await e(),O.ok)break;if(!O.ok){let e=await O.blob();return void(window.location.href=URL.createObjectURL(e))}const h=await O.text(),u=o(xi(new URL("edit",n),{id:h}));console.info("notebook_id:",h),await e(xt((e=>{e.notebook.notebook_id=h,e.backend_launch_phase=iP.notebook_running,e.refresh_target=u}))),console.log("Connecting WebSocket");const d=t(o(new URL("channels",Ai(n))));await Xi(d,2e4).catch((e=>{console.error("Failed to establish connection within 20 seconds. Navigating to the edit URL directly.",e),window.parent.location.href=u}))}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.")}},sP=e=>window.dispatchEvent(new CustomEvent("open_bottom_right_panel",{detail:e}));let aP=({desired_doc_query:e,on_update_doc_query:t,notebook:i,connected:n,backend_launch_phase:r,backend_launch_logs:o,sanitize_html:s=!0})=>{let a=le();const l=le(!1),[c,O]=oe(null),h=null==c;se((()=>{let e=e=>{console.log(e.detail),l.current=!1,O(e.detail),"none"===window.getComputedStyle(a.current).display&&alert("This browser window is too small to show docs.\n\nMake the window bigger, or try zooming out.")};return window.addEventListener("open_bottom_right_panel",e),()=>window.removeEventListener("open_bottom_right_panel",e)}),[]);const u=cP(i,r),[d,f]=ce((()=>null==u?[0,0]:[JX(u)-1,HX(u)-(LX(u)?1:0)]),[u]),p=f{let t=he(J_);const[i,n]=oe(0);return se((()=>{if(e){let e=async()=>{let e=()=>t.send("current_time").then((e=>e.message.time)),i=()=>Date.now()/1e3;for(let t=0;t<16;t++)await e();let r=await i(),o=await e(),s=await e(),a=(r+await i())/2-(o+s)/2;isNaN(a)||n(a)};e();let i=setInterval(e,6e4);return()=>clearInterval(i)}}),[e]),i})({connected:n});return _e` + + `};const lP=(e,t)=>{const[i,n]=oe(!1);return se((()=>{if(e){let e=setTimeout((()=>{n(!0)}),t);return()=>clearTimeout(e)}n(!1)}),[e]),i},cP=(e,t)=>{var i;const n=OP(t);return null==t?e.status_tree:{name:"notebook",started_at:0,finished_at:null,subtasks:{...null===(i=e.status_tree)||void 0===i?void 0:i.subtasks,backend_launch:n}}},OP=e=>{let t=e??-1;const i=Object.fromEntries(["requesting","created","responded","notebook_running"].map((e=>{let i=iP[e],n=`backend_${e}`;return[n,eP(n,t>=i,t>i)]})));return eP("backend_launch",null!=e&&e>iP.wait_for_user,e===iP.ready,i)};let{autocompletion:hP,completionKeymap:uP,completionStatus:dP,acceptCompletion:fP}=pg;const pP=(e,t)=>e.state.field(gP).active.find((e=>e.source==t));let gP=hP()[0];const mP=Or.define(),bP=Wn.define({create:()=>!1,update(e,t){var i,n;for(let e of t.effects)if(e.is(mP))return!0;return(null==(null===(i=t.startState.field(gP,!1))||void 0===i?void 0:i.open)||null!=(null===(n=t.state.field(gP,!1))||void 0===n?void 0:n.open))&&((null==t.startState.field(gP,!1).open||t.startState.field(gP,!1)===t.state.field(gP,!1))&&e)}});const $P=[{key:"Tab",run:e=>{if(fP(e))return!0;if(e.state.readOnly)return!1;let t=e.state.selection.main,i=e.state.sliceDoc(t.from-1,t.from);return!!t.empty&&(!/^(\t| |\n|\=|\)|)$/.test(i)&&(e.dispatch({effects:mP.of(10)}),pg.startCompletion(e)))}},{key:"?",run:e=>{var t;return!!((null===(t=e.state.field(gP,!1))||void 0===t?void 0:t.open)??!1)&&(sP("docs"),!0)}},{key:".",run:e=>(fP(e),!1)}];let QP=e=>ah.updateListener.of((t=>{let i=t.state.field(gP,!1),n=null==i?void 0:i.open;if(null==n)return;let r=n.options[n.selected],o=r.completion.apply??r.completion.label;if("string"!=typeof o)return;const s=pP(t.view,r.source);if(!(null==s?void 0:s.from))return;const a=s.from,l=Math.min(s.to,t.state.doc.length);let c=t.state.update({changes:{from:a,to:l,insert:o}}),O=gX(c.state);null!=O&&e(O)}));let vP=e=>async t=>{let i=t.state.sliceDoc(0,t.pos),n=await e({text:i});if(!n)return null;let{start:r,stop:o,results:s}=n,a=!function(e){const t=md(e.state).resolve(e.pos);return null!=t&&("TripleString"===t.name||"String"===t.name)}(t);return{from:r,to:o,filter:!1,options:s.map((([e,t,i,n,r,o])=>({label:e,apply:o&&a?o:e,detail:o??void 0})))}},yP=e=>/^[@a-zA-Z_][a-zA-Z0-9!_]*\"?$/.test(e)?null:":"===e?`:(${e})`:`:${e}`;const wP=function*(e,t,i){let n=0;for(let[r,{valid_from:o}]of e.entries())!t.has(r)&&o{const t=vP(e),i=(e=>async t=>{let i=t.state.sliceDoc(0,t.pos),n=(e=>e.matchBefore(/\.\:[^\s"'`()\[\].]*/))(t);n&&(i=i.slice(0,n.from+1)+i.slice(n.from+2));let r=await e({text:i});if(!r)return null;let{start:o,stop:s,results:a}=r;n&&(s+=1);const l=t.state.field(hX).definitions,c=new Set;let O="."===i.slice(0,o).slice(-1);return{from:o,to:s,options:[...a.map((([e,t,i,n,r],o)=>{let s=O?yP(e)??e:e;return l.has(e)&&c.add(e),{label:e,apply:s,type:H_({c_notexported:!i,[`c_${t}`]:null!=t,[`completion_${r}`]:null!=r,c_from_notebook:n})??void 0,boost:50-o/a.length}})),...a.filter((([e])=>O&&null!=yP(e))).map((([e,t,i],n)=>{let r=yP(e)??"";return{label:r,apply:r,type:(i?"":"c_notexported ")+(null==t?"":"c_"+t),boost:-99-n/a.length,is_not_exported:!i}})),...Array.from(wP(l,c,t.pos))]}})(e);return e=>{let n=(e=>e.matchBefore(/\\[^\s"'.`]*/))(e)||(e=>e.matchBefore(/~\//))(e);return null===n?i(e):t(e)}},SP=async e=>{const t=await pg.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 xP=({request_autocomplete:e,on_update_doc_query:t})=>{let i=null,n=null;return[bP,hP({activateOnTyping:!1,override:[_P((async t=>{if(Xt.isEqual(t,i)){let e=await n;if(null!=e)return e}return i=t,n=e(t),await n})),SP],defaultKeymap:!1,maxRenderedOptions:512,optionClass:e=>e.type??""}),ah.updateListener.of((e=>{let t=e.state.field(gP,!1),i=e.state.field(bP,!1);null!=(null==t?void 0:t.open)&&i&&"active"===dP(e.state)&&1===t.open.options.length&&((e,t)=>{let i=t.completion.apply||t.completion.label,n=pP(e,t.source);(null==n?void 0:n.from)&&("string"==typeof i?e.dispatch({changes:{from:n.from,to:n.to,insert:i},selection:{anchor:n.from+i.length},userEvent:"input.complete"}):i(e,t.completion,n.from,n.to))})(e.view,t.open.options[0])})),ah.updateListener.of((e=>{for(let i of e.transactions){var t;let n=i.annotation(pg.pickedCompletion);n&&"string"==typeof n.apply&&n.apply.endsWith("/")&&(null===(t=n.type)||void 0===t?void 0:t.match(/(^| )completion_path( |$)/))&&pg.startCompletion(e.view)}})),QP(t),ph.of($P),ph.of(uP)]};const XP=e=>null==e?[null]:Object.entries(e).flat(),PP=({nbpkg:e,package_name:t,available_versions:i,is_disable_pkg:n})=>{let r="error",o="error",s=_e`error`,a=!1;const l=(null==e?void 0:e.installed_versions[t])??null,c=(null==e?void 0:e.waiting_for_permission)??!1,O=!c&&(((null==e?void 0:e.busy_packages)??[]).includes(t)||!((null==e?void 0:e.instantiated)??1));if(n){r="disable_pkg",o=`${t} disables Pluto's built-in package manager.`,s=_e`${t} disables Pluto's built-in package manager.`}else null!=l||Xt.isEqual(i,["stdlib"])?null==l||"stdlib"===l?(r="installed",o=`${t} is part of Julia's pre-installed 'standard library'.`,s=_e`${t} is part of Julia's pre-installed standard library.`):c?(r="will_be_installed",o=`${t} (v${Xt.last(i)}) will be installed when you run this notebook.`,s=_e`
${t} v${Xt.last(i)}
+ will be installed when you run this notebook.`):O?(r="busy",o=`${t} (v${l}) is installing...`,s=_e`
${t} v${l}
+ is installing...`):(r="installed",o=`${t} (v${l}) is installed in the notebook.`,s=_e`
${t} v${l}
+ is installed in the notebook.`,u=i,a=!("stdlib"===(h=l)||!Xt.isArray(u))&&Xt.last(u)!==h):null!=i&&Xt.isArray(i)&&(0===i.length?(r="not_found",o=`The package "${t}" could not be found in the registry. Did you make a typo?`,s=_e`The package "${t}" could not be found in the registry. +
Did you make a typo?
`):(r="will_be_installed",o=`${t} (v${Xt.last(i)}) will be installed in the notebook when you run this cell.`,s=_e`
${t} v${Xt.last(i)}
+ will be installed in the notebook when you run this cell.`));var h,u;return{status:r,hint:s,hint_raw:o,available_versions:i,chosen_version:l,busy:O,offer_update:a}},kP=({package_name:e,pluto_actions:t,notebook_id:i,nbpkg:n})=>{const[r,o]=oe(null);se((()=>{(t.get_avaible_versions({package_name:e,notebook_id:i})??Promise.resolve([])).then((e=>{o(e)}))}),[e]);const{status:s,hint_raw:a}=PP({nbpkg:n,package_name:e,is_disable_pkg:!1,available_versions:r});return _e` + + + + `},TP=({package_name:e})=>{const{hint_raw:t}=PP({nbpkg:null,package_name:e,is_disable_pkg:!0,available_versions:null});return _e` + + + + `};class RP extends Sl{constructor(e){super(),this.element=e}eq(e){return!1}toDOM(){let e=document.createElement("span");return j(this.element,e),e}updateDOM(e){return j(this.element,e),!0}}const YP=["Pkg.activate","Pkg.API.activate","Pkg.develop","Pkg.API.develop","Pkg.add","Pkg.API.add","quickactivate","@quickactivate"];function AP(e,{pluto_actions:t,notebook_id:i,nbpkg:n}){let r=new Set,o=e.visibleRanges.flatMap((({from:o,to:s})=>{let a=function({doc:e,tree:t,from:i,to:n}){let r=0,o=[];return function({tree:e,enter:t,leave:i,from:n=0,to:r=e.length}){let o=e.cursor();for(;;){let e=!1;if(o.from<=r&&o.to>=n&&(o.type.isAnonymous||!1!==t(o))){if(o.firstChild())continue;o.type.isAnonymous||(e=!0)}for(;e&&i&&i(o),e=o.type.isAnonymous,!o.nextSibling();){if(!o.parent())return;e=!0}}}({tree:t,from:i,to:n,enter:t=>{if("QuoteExpression"!==t.name&&"QuoteStatement"!==t.name||r++,"InterpolationExpression"===t.name&&r--,0!==r)return;if("CallExpression"===t.name||"MacroExpression"===t.name){let i=t.node.firstChild,n=e.sliceString(i.from,i.to);return void(YP.includes(n)&&o.push({type:"package_disabler",name:n,from:t.to,to:t.to}))}let i=Mx((e=>Yx`import A, ${e}`)),n=e=>{let t=null;return(t=i(Vx`${qx.as("package")}.${qx.any}`).match(e))?n(t.package):(t=i(Vx`.${qx.maybe(qx.any)}`).match(e))?null:(t=i(Vx`${qx.Identifier}`).match(e))?e:void console.warn("Unknown nested import specifier: "+e.toString())},s=null;if((s=Zx(Vx`import ${qx.as("specifier")}: ${qx.many()}`).match(t))??(s=Zx(Vx`import ${qx.as("specifier")}, ${qx.many("specifiers")}`).match(t))??(s=Zx(Vx`using ${qx.as("specifier")}: ${qx.many()}`).match(t))??(s=Zx(Vx`using ${qx.as("specifier")}, ${qx.many("specifiers")}`).match(t))){let{specifier:r,specifiers:a=[]}=s;r&&(a=[{node:r},...a]);for(let{node:t}of a){t=Wx(t);let r=null;if(r=i(Vx`${qx.as("package")} as ${qx.maybe(qx.any)}`).match(t)){let t=n(r.package);t&&o.push({type:"package",name:e.sliceString(t.from,t.to),from:t.to,to:t.to})}else if(r=i(Vx`${qx.as("package")}.${qx.any}`).match(t)){let t=n(r.package);t&&o.push({type:"package",name:e.sliceString(t.from,t.to),from:t.to,to:t.to})}else if(r=i(Vx`.${qx.as("scoped")}`).match(t));else if(r=i(Vx`${qx.as("package")}`).match(t)){let t=n(r.package);t&&o.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(s=null,s=Zx(Vx`using ${qx.as("specifier")}, ${qx.many("specifiers")}`).match(t)){let{specifier:t}=s;t&&("\n"!==e.sliceString(t.to,t.to+1)&&""!==e.sliceString(t.to,t.to+1)||o.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||r--,"InterpolationExpression"===e.name&&r++}}),o}({doc:e.state.doc,tree:md(e.state),from:o,to:s});return a.map((e=>{if("package"===e.type){let{name:o}=e;if("Base"!==o&&"Core"!==o&&!r.has(o)){return r.add(o),Xl.widget({widget:new RP(_e` + <${kP} + key=${o} + package_name=${o} + pluto_actions=${t} + notebook_id=${i} + nbpkg=${n} + /> + `),side:1}).range(e.to)}}else{if("package_disabler"===e.type){return Xl.widget({widget:new RP(_e` <${TP} package_name=${e.name} /> `),side:1}).range(e.to)}if("implicit_using"===e.type&&"HypertextLiteral"===e.name){return Xl.widget({widget:new RP(_e` +
+ : @htl, @htl_str +
+
`),side:1}).range(e.to)}}}))})).filter((e=>null!=e));return Xl.set(o,!0)}const VP=Vn.define({combine:e=>e[0],compare:Xt.isEqual}),ZP=({pluto_actions:e,notebook_id_ref:t})=>Fl.fromClass(class{update_decos(i){const n=AP(i,{pluto_actions:e,notebook_id:t.current,nbpkg:i.state.facet(VP)});this.decorations=n}constructor(e){this.update_decos(e)}update(e){(e.docChanged||e.viewportChanged||e.state.facet(VP)!==e.startState.facet(VP))&&this.update_decos(e.view)}},{decorations:e=>e.decorations}),EP=Or.define({}),CP=Wn.define({create:()=>({defaultCharacterWidth:null,measuredSpaceWidth:null,measuredTabWidth:null}),update(e,t){for(let e of t.effects)if(e.is(EP))return e.value;return e}});let NP=ah.updateListener.of((e=>{let t=e.view.defaultCharacterWidth,{defaultCharacterWidth:i,measuredSpaceWidth:n}=e.view.state.field(CP,!1);if(i!==t){let i,n;e.view.dispatch({effects:[EP.of({defaultCharacterWidth:t,measuredSpaceWidth:i,measuredTabWidth:n})]})}})),qP=Wn.define({create:()=>Xl.none,update(e,t){let i=t.startState.field(CP,!1),n=i.measuredSpaceWidth??i.defaultCharacterWidth,{measuredSpaceWidth:r,defaultCharacterWidth:o}=t.state.field(CP,!1),s=r??o;if(null==s)return Xl.none;if(!t.docChanged&&e!==Xl.none&&n===s)return e;let a=[];for(let e of Xt.range(0,t.state.doc.lines)){let i=t.state.doc.line(e+1);if(0===i.length)continue;let n=0;for(let e of i.text){if("\t"!==e)break;n++}const r=Math.min(n,12),o=4*r*s,l=Xl.line({attributes:{style:`--indented: ${o}px;`,class:"awesome-wrapping-plugin-the-line"}});if(a.push(l.range(i.from,i.from)),0!==r&&a.push(Xl.mark({class:"awesome-wrapping-plugin-the-tabs"}).range(i.from,i.from+r)),n>r)for(let e of Xt.range(r,n))a.push(Xl.replace({widget:new RP(_e``),block:!1}).range(i.from+e,i.from+e+1))}return Xl.set(a)},provide:e=>ah.decorations.from(e)}),UP=Xl.mark({class:"indentation-so-dont-break"}),WP=(Wn.define({create:()=>Xl.none,update(e,t){let i=[];for(const e of t.newDoc)for(const t of e.matchAll(/[^ \t]+([ \t]|$)+/g))null!=t.index&&0!==t.index&&i.push(UP.range(0+t.index,0+t.index+t[0].length));return Xl.set(i,!0)},provide:e=>ah.decorations.from(e)}),[CP,NP,qP]),jP=pg.autocompletion()[0],MP=ah.domEventHandlers({keydown:(e,t)=>{var i;let n=t.state.selection.main;if(!n.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 r=(null===(i=t.state.field(jP,!1))||void 0===i?void 0:i.open)??!1;return"ArrowUp"!==e.key||r?"ArrowDown"!==e.key||r?"ArrowLeft"===e.key&&e.repeat?!!t.moveByChar(n,!1).eq(n):"ArrowRight"===e.key?!!t.moveByChar(n,!0).eq(n):void 0:!!t.moveVertically(t.state.selection.main,!0).eq(n):!!t.moveVertically(t.state.selection.main,!1).eq(n)}}),DP=({focus_on_neighbor:e})=>(({focus_on_neighbor:e})=>ph.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 i=t.state.selection.main;return!!i.empty&&!!t.moveByChar(i,!1).eq(i)&&(e({cell_delta:-1,line:1/0,character:1/0}),!0)}},{key:"ArrowUp",run:t=>{let i=t.state.selection.main;return!!i.empty&&!!t.moveVertically(i,!1).eq(i)&&(e({cell_delta:-1,line:1/0,character:1/0}),!0)}},{key:"ArrowRight",run:t=>{let i=t.state.selection.main;return!!i.empty&&!!t.moveByChar(i,!0).eq(i)&&(e({cell_delta:1,line:0,character:0}),!0)}},{key:"ArrowDown",run:t=>{let i=t.state.selection.main;return!!i.empty&&!!t.moveVertically(i,!0).eq(i)&&(e({cell_delta:1,line:0,character:0}),!0)}}]))({focus_on_neighbor:e}),zP=({pluto_actions:e,cell_id:t})=>ah.domEventHandlers({paste:(i,n)=>{if(!n.hasFocus)return console.log("CodeMirror, why are you registring this paste? You aren't focused!"),!0;i.stopPropagation();const r=i.clipboardData.getData("text/plain"),o=Mi(r);return null!=o&&(0===n.state.selection.main.from&&n.state.selection.main.to===n.state.doc.length?(e.add_deserialized_cells(r,t,o),e.confirm_delete_multiple("This Should Never Be Visible",[t]),!0):(n.state.selection.main.to===n.state.doc.length||0===n.state.selection.main.from)&&(e.add_deserialized_cells(r,t,o),!0))}});function BP(e){var t,i,n;let r=e.parent.firstChild,o=e.parent.lastChild;if(!("end"===o.name))return null;let s=null===(t=e.parent.getChild("CatchClause"))||void 0===t?void 0:t.firstChild,a=null===(i=e.parent.getChild("TryElseClause"))||void 0===i?void 0:i.firstChild,l=null===(n=e.parent.getChild("FinallyClause"))||void 0===n?void 0:n.firstChild;return[{from:r.from,to:r.to},s&&{from:s.from,to:s.to},a&&{from:a.from,to:a.to},l&&{from:l.from,to:l.to},{from:o.from,to:o.to}].filter((e=>null!=e))}const GP=ah.baseTheme({".cm-matchingBracket":{backgroundColor:"#328c8252"},".cm-nonmatchingBracket":{backgroundColor:"#bb555544"}}),IP="()[]{}",LP=Vn.define({combine:e=>wr(e,{afterCursor:!0,brackets:IP,maxScanDistance:1e4})}),KP=Xl.mark({class:"cm-matchingBracket"}),FP=(Xl.mark({class:"cm-nonmatchingBracket"}),[Wn.define({create:()=>Xl.none,update(e,t){if(!t.docChanged&&!t.selection)return e;let i=[],n=t.state.facet(LP);for(let e of t.state.selection.ranges){if(!e.empty)continue;let r=JP(t.state,e.head,-1,n)||e.head>0&&JP(t.state,e.head-1,1,n)||n.afterCursor&&(JP(t.state,e.head,1,n)||e.headah.decorations.from(e)}),GP]);function HP(e={}){return[LP.of(e),FP]}function JP(e,t,i,n={}){let r=n.maxScanDistance||1e4,o=n.brackets||IP,s=md(e),a=s.resolveInner(t,i),l=function(e){var t,i;if("end"===e.name&&(e="IfStatement"===e.parent.name?null===(t=e.parent)||void 0===t||null===(i=t.firstChild)||void 0===i?void 0:i.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"),i=e.parent.lastChild;return"end"===i.name&&t?[{from:e.from,to:t.to},{from:i.from,to:i.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,i="end"===t.name,n=e.parent.getChild("type");return i&&n?[{from:e.from,to:n.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 i=e.parent.firstChild,n=e.parent.lastChild;if("end"!==n.name)return null;if(t&&"try"===i.name)return BP(e);let r=[];r.push({from:i.from,to:i.to});for(let t of e.parent.getChildren("ElseifClause")){let e=t.firstChild;r.push({from:e.from,to:e.to})}for(let t of e.parent.getChildren("ElseClause")){let e=t.firstChild;r.push({from:e.from,to:e.to})}return r.push({from:n.from,to:n.to}),r}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?BP(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}(a);return l||function(e,t,i,n,r,o,s){let a=i<0?e.sliceDoc(t-1,t):e.sliceDoc(t,t+1),l=s.indexOf(a);if(l<0||l%2==0!=i>0)return null;let c={from:i<0?t-1:t,to:i>0?t+1:t},O=e.doc.iterRange(t,i>0?e.doc.length:0),h=0;for(let e=0;!O.next().done&&e<=o;){let o=O.value;i<0&&(e+=o.length);let a=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||n.resolve(a+e,1).type!=r))if(t%2==0==i>0)h++;else{if(1==h)return t>>1==l>>1?[c,{from:a+e,to:a+e+1}]:null;h--}}i>0&&(e+=o.length)}return O.done?[c]:null}(e,t,i,s,a.type,r,o)}const ek=Xl.line({attributes:{class:"cm-highlighted-line"}}),tk=Xl.mark({attributes:{class:"cm-highlighted-range"}});const ik=Vn.define({combine:e=>e[0],compare:(e,t)=>e===t}),nk=Vn.define({combine:e=>e[0],compare:(e,t)=>e===t}),rk=()=>Fl.fromClass(class{updateDecos(e){this.decorations=function(e){let t=e.state.facet(ik);if(null==t||null==t||t<0||t>e.state.doc.lines)return Xl.set([]);let i=e.state.doc.line(t);return Xl.set([ek.range(i.from,i.from)])}(e)}constructor(e){this.decorations=Xl.set([]),this.updateDecos(e)}update(e){(e.docChanged||e.state.facet(ik)!==e.startState.facet(ik))&&this.updateDecos(e.view)}},{decorations:e=>e.decorations}),ok=()=>Fl.fromClass(class{updateDecos(e){this.decorations=function(e){let t=e.state.facet(nk);if(null==t)return Xl.set([]);let{from:i,to:n}=t;return i<0||i==n?Xl.set([]):Xl.set([tk.range(i,n)])}(e)}constructor(e){this.decorations=Xl.set([]),this.updateDecos(e)}update(e){(e.docChanged||e.state.facet(nk)!==e.startState.facet(nk))&&this.updateDecos(e.view)}},{decorations:e=>e.decorations});function sk(e,t){return({state:i,dispatch:n})=>{if(i.readOnly)return!1;let r=e(t,i.selection.ranges,i);return!!r&&(n(i.update(r)),!0)}}const ak=sk(uk,0),lk=(sk(uk,1),sk(uk,2),sk(hk,0)),ck=(sk(hk,1),sk(hk,2),[{key:"Mod-/",run:e=>{let t=Ok(e.state);return t.line?ak(e):!!t.block&&lk(e)}},{key:"Alt-A",run:lk}]);function Ok(e,t=e.selection.main.head){let i=e.languageDataAt("commentTokens",t);return i.length?i[0]:{}}function hk(e,t,i){let n=t.map((e=>Ok(i,e.from).block));if(!n.every((e=>e)))return null;let r=t.map(((e,t)=>function(e,{open:t,close:i},n,r){let o,s,a=e.sliceDoc(n-50,n),l=e.sliceDoc(r,r+50),c=/\s*$/.exec(a)[0].length,O=/^\s*/.exec(l)[0].length,h=a.length-c;if(a.slice(h-t.length,h)==t&&l.slice(O,O+i.length)==i)return{open:{pos:n-c,margin:c&&1},close:{pos:r+O,margin:O&&1}};r-n<=100?o=s=e.sliceDoc(n,r):(o=e.sliceDoc(n,n+50),s=e.sliceDoc(r-50,r));let u=/^\s*/.exec(o)[0].length,d=/\s*$/.exec(s)[0].length,f=s.length-d-i.length;return o.slice(u,u+t.length)==t&&s.slice(f,f+i.length)==i?{open:{pos:n+u+t.length,margin:/\s/.test(o.charAt(u+t.length))?1:0},close:{pos:r-d-i.length,margin:/\s/.test(s.charAt(f-1))?1:0}}:null}(i,n[t],e.from,e.to)));if(2!=e&&!r.every((e=>e))){let e=0;return i.changeByRange((t=>{let{open:i,close:o}=n[e++];if(r[e])return{range:t};let s=i.length+1;return{changes:[{from:t.from,insert:i+" "},{from:t.to,insert:" "+o}],range:Rn.range(t.anchor+s,t.head+s)}}))}if(1!=e&&r.some((e=>e))){let e=[];for(let t,i=0;ir&&(e==o||o>a.from)){r=a.from;let e=s??Ok(i,t).line;if(!e)continue;let o=/^\s*/.exec(a.text)[0].length,c=o==a.length,O=a.text.slice(o,o+e.length)==e?o:-1;oe.comment<0&&(!e.empty||e.single)))){let e=[];for(let{line:t,token:i,indent:r,empty:o,single:s}of n)!s&&o||e.push({from:t.from+r,insert:i+" "});let t=i.changes(e);return{changes:t,selection:i.selection.map(t,1)}}if(1!=e&&n.some((e=>e.comment>=0))){let e=[];for(let{line:t,comment:i,token:r}of n)if(i>=0){let n=t.from+i,o=n+r.length;" "==t.text[o-t.from]&&o++,e.push({from:n,to:o})}return{changes:e}}return null}let dk={key:"Mod-d",run:({state:e,dispatch:t})=>{if(e.selection.main.empty){var i,n;let r=["Identifier","FieldName"],o=md(e).cursorAt(e.selection.main.from,-1),s=md(e).cursorAt(e.selection.main.from,1);for(let e of r){let i=o.name===e?o:s.name===e?s:null;if(i)return t({selection:{anchor:i.from,head:i.to}}),!0}let a=e.doc.lineAt(e.selection.main.from),l=e.selection.main.from-a.from,c=a.text.slice(0,l),O=a.text.slice(l),h=(null===(i=c.match(/(\w+)$/))||void 0===i?void 0:i[0])??"",u=(null===(n=O.match(/^(\w+)/))||void 0===n?void 0:n[0])??"";t({selection:{anchor:e.selection.main.from-h.length,head:e.selection.main.from+u.length}})}else bb({state:e,dispatch:t});return!1},shift:({state:e,dispatch:t})=>{if(1===e.selection.ranges.length)return!1;let i=e.selection.ranges.at(e.selection.mainIndex-1),n=e.selection.ranges.filter((e=>e!==i)),r=n.indexOf(e.selection.main),o=(s=n,a=e.selection.mainIndex-1,s.slice(a,a+1)[0]);var s,a;return t({selection:Rn.create(n,r),effects:null==o?[]:ah.scrollIntoView(o.from)}),!0},preventDefault:!0};const fk="true"===window.localStorage.getItem("ENABLE_CM_MIXED_PARSER");fk&&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=()=>{window.localStorage.setItem("ENABLE_CM_MIXED_PARSER",String(!fk)),window.location.reload()};const pk=df.define([{tag:cd.propertyName,color:"var(--cm-property-color)"},{tag:cd.unit,color:"var(--cm-tag-color)"},{tag:cd.literal,color:"var(--cm-builtin-color)",fontWeight:700},{tag:cd.macroName,color:"var(--cm-macro-color)",fontWeight:700},{tag:cd.special(cd.brace),color:"var(--cm-macro-color)",fontWeight:700},{tag:cd.standard(cd.variableName),color:"var(--cm-builtin-color)",fontWeight:700},{tag:cd.bool,color:"var(--cm-builtin-color)",fontWeight:700},{tag:cd.keyword,color:"var(--cm-keyword-color)"},{tag:cd.comment,color:"var(--cm-comment-color)",fontStyle:"italic"},{tag:cd.atom,color:"var(--cm-atom-color)"},{tag:cd.number,color:"var(--cm-number-color)"},{tag:cd.keyword,color:"var(--cm-keyword-color)"},{tag:cd.string,color:"var(--cm-string-color)"},{tag:cd.variableName,color:"var(--cm-var-color)",fontWeight:700},{tag:cd.typeName,color:"var(--cm-type-color)",fontStyle:"italic"},{tag:cd.typeOperator,color:"var(--cm-type-color)",fontStyle:"italic"},{tag:cd.bracket,color:"var(--cm-bracket-color)"},{tag:cd.brace,color:"var(--cm-bracket-color)"},{tag:cd.tagName,color:"var(--cm-tag-color)"},{tag:cd.link,color:"var(--cm-link-color)"},{tag:cd.invalid,color:"var(--cm-error-color)",background:"var(--cm-error-bg-color)"}],{all:{color:"var(--cm-editor-text-color)"},scope:wg().language}),gk=df.define([{tag:cd.propertyName,color:"var(--cm-property-color)"},{tag:cd.unit,color:"var(--cm-tag-color)"},{tag:cd.literal,color:"var(--cm-builtin-color)",fontWeight:700},{tag:cd.macroName,color:"var(--cm-macro-color)",fontWeight:700},{tag:cd.standard(cd.variableName),color:"var(--cm-builtin-color)",fontWeight:700},{tag:cd.bool,color:"var(--cm-builtin-color)",fontWeight:700},{tag:cd.keyword,color:"var(--cm-keyword-color)"},{tag:cd.atom,color:"var(--cm-atom-color)"},{tag:cd.number,color:"var(--cm-number-color)"},{tag:cd.keyword,color:"var(--cm-keyword-color)"},{tag:cd.string,color:"var(--cm-string-color)"},{tag:cd.variableName,color:"var(--cm-var-color)",fontWeight:700},{tag:cd.typeName,color:"var(--cm-type-color)",fontStyle:"italic"},{tag:cd.typeOperator,color:"var(--cm-type-color)",fontStyle:"italic"},{tag:cd.bracket,color:"var(--cm-bracket-color)"},{tag:cd.brace,color:"var(--cm-bracket-color)"},{tag:cd.tagName,color:"var(--cm-tag-color)"},{tag:cd.link,color:"var(--cm-link-color)"},{tag:cd.invalid,color:"var(--cm-error-color)",background:"var(--cm-error-bg-color)"},{tag:cd.comment,color:"var(--cm-comment-color)",fontStyle:"italic",filter:"none"}],{scope:Iv,all:{color:"var(--cm-editor-text-color)",filter:"contrast(0.5)"}}),mk=df.define([{tag:cd.propertyName,color:"var(--cm-property-color)"},{tag:cd.unit,color:"var(--cm-tag-color)"},{tag:cd.literal,color:"var(--cm-builtin-color)",fontWeight:700},{tag:cd.macroName,color:"var(--cm-macro-color)",fontWeight:700},{tag:cd.standard(cd.variableName),color:"var(--cm-builtin-color)",fontWeight:700},{tag:cd.bool,color:"var(--cm-builtin-color)",fontWeight:700},{tag:cd.keyword,color:"var(--cm-keyword-color)"},{tag:cd.comment,color:"var(--cm-comment-color)",fontStyle:"italic"},{tag:cd.atom,color:"var(--cm-atom-color)"},{tag:cd.number,color:"var(--cm-number-color)"},{tag:cd.keyword,color:"var(--cm-keyword-color)"},{tag:cd.string,color:"var(--cm-string-color)"},{tag:cd.variableName,color:"var(--cm-var-color)",fontWeight:700},{tag:cd.typeName,color:"var(--cm-type-color)",fontStyle:"italic"},{tag:cd.typeOperator,color:"var(--cm-type-color)",fontStyle:"italic"},{tag:cd.bracket,color:"var(--cm-bracket-color)"},{tag:cd.brace,color:"var(--cm-bracket-color)"},{tag:cd.tagName,color:"var(--cm-tag-color)"},{tag:cd.link,color:"var(--cm-link-color)"},{tag:cd.invalid,color:"var(--cm-error-color)",background:"var(--cm-error-bg-color)"}],{scope:c_,all:{color:"var(--cm-editor-text-color)",filter:"contrast(0.5)"}}),bk=df.define([{tag:cd.propertyName,color:"var(--cm-css-accent-color)",fontWeight:700},{tag:cd.variableName,color:"var(--cm-css-accent-color)",fontWeight:700},{tag:cd.definitionOperator,color:"var(--cm-css-color)"},{tag:cd.keyword,color:"var(--cm-css-color)"},{tag:cd.modifier,color:"var(--cm-css-accent-color)"},{tag:cd.punctuation,opacity:.5},{tag:cd.literal,color:"var(--cm-css-color)"},{tag:cd.tagName,color:"var(--cm-css-color)",fontWeight:700},{tag:cd.className,color:"var(--cm-css-why-doesnt-codemirror-highlight-all-the-text-aaa)"},{tag:cd.constant(cd.className),color:"var(--cm-css-why-doesnt-codemirror-highlight-all-the-text-aaa)"},{tag:cd.comment,color:"var(--cm-comment-color)",fontStyle:"italic"}],{scope:xv,all:{color:"var(--cm-css-color)"}}),$k=df.define([{tag:cd.tagName,color:"var(--cm-html-accent-color)",fontWeight:600},{tag:cd.attributeName,color:"var(--cm-html-accent-color)",fontWeight:600},{tag:cd.attributeValue,color:"var(--cm-html-accent-color)"},{tag:cd.angleBracket,color:"var(--cm-html-accent-color)",fontWeight:600,opacity:.7},{tag:cd.content,color:"var(--cm-html-color)",fontWeight:400},{tag:cd.documentMeta,color:"var(--cm-html-accent-color)"},{tag:cd.comment,color:"var(--cm-comment-color)",fontStyle:"italic"}],{scope:ky,all:{color:"var(--cm-html-color)"}}),Qk=df.define([{tag:cd.content,color:"var(--cm-md-color)"},{tag:cd.quote,color:"var(--cm-md-color)"},{tag:cd.link,textDecoration:"underline"},{tag:cd.url,color:"var(--cm-md-color)",textDecoration:"none"},{tag:cd.emphasis,fontStyle:"italic"},{tag:cd.strong,fontWeight:"bolder"},{tag:cd.heading,color:"var(--cm-md-color)",fontWeight:700},{tag:cd.comment,color:"var(--cm-comment-color)",fontStyle:"italic"},{tag:cd.processingInstruction,color:"var(--cm-md-accent-color) !important",opacity:"0.5"},{tag:cd.monospace,color:"var(--cm-md-accent-color)"}],{scope:Wy,all:{color:"var(--cm-md-color)"}}),vk=e=>e.state.doc.toString(),yk=(e,t)=>e.dispatch({changes:{from:0,to:e.state.doc.length,insert:t}}),wk=(e,t,i,n)=>e.dispatch({changes:{from:i,to:n,insert:t}});let _k=(e,t)=>{let i=le(new Ln),n=le(i.current.of(t));return ae((()=>{var n,r;null===(n=e.current)||void 0===n||null===(r=n.dispatch)||void 0===r||r.call(n,{effects:i.current.reconfigure(t)})}),[t]),n.current},Sk=(e,{line:t,ch:i})=>{let n=e.line(Xt.clamp(t+1,1,e.lines)),r=Xt.clamp(i,0,n.length);return n.from+r};const xk=({local_code:e,remote_code:t,disable_input:i,focus_after_creation:n,cm_forced_focus:r,set_cm_forced_focus:o,show_input:s,on_submit:a,on_delete:l,on_add_after:c,on_change:O,on_update_doc_query:h,on_focus_neighbor:u,on_line_heights:d,nbpkg:f,cell_id:p,notebook_id:g,any_logs:m,show_logs:b,set_show_logs:$,set_cell_disabled:Q,cm_highlighted_line:v,cm_highlighted_range:y,metadata:w,global_definition_locations:_,cm_diagnostics:S})=>{let x=he(J_);const{disabled:X,skip_as_script:P}=w;let[k,T]=oe(null);if(k){const e=k;throw T(null),e}const R=le(g);R.current=g;const Y=le(null),A=le(null),V=le(null);let Z=_k(Y,VP.of(f)),E=_k(Y,$X.of(_)),C=_k(Y,ik.of(v)),N=_k(Y,nk.of(y)),q=_k(Y,yr.readOnly.of(i)),U=_k(Y,ce((()=>ah.updateListener.of((e=>{e.docChanged&&O(e.state.doc.toString())}))),[O]));return ae((()=>{if(null==A.current)return;const t=e=>((async e=>{await e()})((async()=>{await c();e.state.doc.toString()!==V.current&&a()})),!0);let i=pg.completionKeymap.find((e=>"Enter"===e.key));const r=()=>{const e=Y.current,t=vk(e),i=t.trim(),n=t.length-t.trimStart().length;if(console.table({value:t,trimmed:i,offset:n}),i.startsWith('md"')&&i.endsWith('"')){let t,r;if(i.startsWith('md"""')&&i.endsWith('"""')?(t=5,r=i.length-3):(t=3,r=i.length-1),t>=r||""==i.substring(t,r).trim())yk(e,"");else{for(;/\s/.test(i[t]);)++t;for(;/\s/.test(i[r-1]);)--r;wk(e,"",r+n,e.state.doc.length),wk(e,"",0,t+n)}}else{let t='md"""\n',i='\n"""',n=e.state.selection.main;e.dispatch({changes:[{from:0,to:0,insert:t},{from:e.state.doc.length,to:e.state.doc.length,insert:i}],selection:0===n.from?{anchor:n.from+t.length,head:n.to+t.length}:void 0})}return!0},s=e=>!e.state.facet(yr.readOnly)&&(0===e.state.doc.length&&(u(p,1),l(),!0)),O=e=>!e.state.facet(yr.readOnly)&&(0===e.state.doc.length&&(u(p,-1,1/0,1/0),l(),!0)),f=[{key:"Shift-Enter",run:()=>(a(),!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==i||null===(t=i.run)||void 0===t?void 0:t.call(i,e))return!0;let n=e.state.selection.main;return n.empty?(e.dispatch({changes:{from:n.from,to:n.to,insert:"\t"},selection:Rn.cursor(n.from+1)}),!0):Bm(e)},shift:Gm},{key:"Ctrl-m",mac:"Cmd-m",run:r},{key:"Ctrl-m",run:r},{key:"Ctrl-M",run:r},{key:"Delete",run:s},{key:"Ctrl-Delete",run:s},{key:"Backspace",run:O},{key:"Ctrl-Backspace",run:O},dk];let g=!1;const m=ah.updateListener.of((e=>{if(e.view.hasFocus&&(e.docChanged||e.selectionSet)){let t=e.state;try{let e=gX(t,g);null!=e&&h(e)}finally{}}})),b=window.matchMedia("(prefers-color-scheme: dark)").matches,$=Y.current=new ah({state:yr.create({doc:e,extensions:[ah.theme({},{dark:b}),Z,C,N,E,q,rk(),ok(),MP,ZP({pluto_actions:x,notebook_id_ref:R}),hX,mf(pk),mf($k),mf(Qk),mf(gk),mf(mk),mf(bk),Eu(),jh(),Zg(),Ph(),yr.allowMultipleSelections.of(!0),ah.clickAddsSelectionRange.of((e=>e.altKey&&!e.shiftKey)),yr.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:n}=e.newSelection.main,r=i.lineAt(n);if(n>r.from+200)return e;let o=i.sliceString(r.from,n);if(!t.some((e=>e.test(o))))return e;let{state:s}=e,a=-1,l=[];for(let{head:e}of s.selection.ranges){let t=s.doc.lineAt(e);if(t.from==a)continue;a=t.from;let i=Ad(s,t.from);if(null==i)continue;let n=/^\s*/.exec(t.text)[0],r=Yd(s,i);n!=r&&l.push({from:t.from,to:t.from+n.length,insert:r})}return l.length?[e,{changes:l,sequential:!0}]:e})),yr.languageData.of(((e,t,i)=>[{closeBrackets:{brackets:["(","[","{"]}}])),Kp(),Fh({eventFilter:e=>e.altKey&&e.shiftKey&&0==e.button}),ub(),HP(),m,W_,ah.domEventHandlers({blur:(e,t)=>{document.activeElement===t.contentDOM||(setTimeout((()=>{t.dispatch({selection:{anchor:t.state.selection.main.head},scrollIntoView:!1}),t.contentDOM.blur()}),0),o(null))}}),zP({pluto_actions:x,cell_id:p}),ah.updateListener.of((e=>{e.docChanged&&e.state.doc.length>0&&"?"===e.state.sliceDoc(0,1)&&sP("docs")})),yr.tabSize.of(4),Td.of("\t"),...fk?[kX(),Ky({defaultCodeLanguage:kX()}),Ty(),iy(),new Xd(c_,[c_.data.of({autocomplete:r_}),c_.data.of({autocomplete:a_})]),_X]:[wg()],QX,xP({request_autocomplete:async({text:e})=>{let t=await Xi(x.send("complete",{query:e},{notebook_id:R.current}),5e3).catch(console.warn);if(!t)return null;let{message:i}=t;return{start:Bi(e,i.start),stop:Bi(e,i.stop),results:i.results}},on_update_doc_query:h}),ph.of(f),ph.of(ck),DP({focus_on_neighbor:({cell_delta:e,line:t,character:i})=>u(p,e,t,i)}),ph.of([...ng,...Km,...Fg,...of]),Gh("Enter cell code..."),ah.lineWrapping,WP,ah.updateListener.of((e=>{e.docChanged&&e.view.dispatch(b_(e.state,[]))})),U,ah.exceptionSink.of((e=>{T(e),console.error("EditorView exception!",e)}))]}),parent:A.current});$.dom.CodeMirror={getValue:()=>vk($),setValue:e=>yk($,e)},n&&setTimeout((()=>{let e=Y.current;null!=e&&(e.dom.scrollIntoView({behavior:"smooth",block:"nearest"}),e.dispatch({selection:{anchor:e.state.doc.length,head:e.state.doc.length}}),e.focus())}));const Q=A.current.querySelector("div.cm-content");if(Q){const e=new ResizeObserver((()=>{const e=Q.children,t=Xt.map(e,(e=>e.offsetTop)),i=[...t.slice(1).map(((e,i)=>e-t[i])),15];d(i)}));return e.observe(Q),()=>{e.unobserve(Q)}}}),[]),se((()=>{if(null==Y.current)return;const e=Y.current,t=S;e.dispatch(b_(e.state,t))}),[S]),se((()=>{if(null==Y.current)return;const e=vk(Y.current)??"";null==V.current&&""===t&&""!==e||(V.current=t,e!==t&&yk(Y.current,t))}),[t]),se((()=>{const e=Y.current;if(null!=e)if(null==r)e.dispatch({selection:{anchor:e.state.selection.main.head,head:e.state.selection.main.head}});else{let i={anchor:Sk(e.state.doc,r[0]),head:Sk(e.state.doc,r[1])};if(null===(t=r[2])||void 0===t?void 0:t.definition_of){var t;let n=e.state.field(hX),o=null==n?void 0:n.definitions.get(null===(t=r[2])||void 0===t?void 0:t.definition_of);o&&(i={anchor:o.from,head:o.to})}e.dom.scrollIntoView({behavior:"smooth",block:"nearest"}),e.focus(),e.dispatch({scrollIntoView:!0,selection:i,effects:[ah.scrollIntoView(Rn.range(i.anchor,i.head),{yMargin:80}),q_.of(!0)]})}}),[r]),_e` + + <${Xk} + on_delete=${l} + cell_id=${p} + run_cell=${a} + skip_as_script=${P} + running_disabled=${X} + any_logs=${m} + show_logs=${b} + set_show_logs=${$} + set_cell_disabled=${Q} + /> + + `},Xk=({on_delete:e,cell_id:t,run_cell:i,skip_as_script:n,running_disabled:r,any_logs:o,show_logs:s,set_show_logs:a,set_cell_disabled:l})=>{const c=le(null);let O=he(J_);const[h,u]=oe(!1);return _e` `},Pk=({frame:e,cell_id:t})=>{const i=e.file.indexOf("#==#");if(-1!=i){const n=e.file.substr(i+4,36),r=_e`{window.dispatchEvent(new CustomEvent("cell_focus",{detail:{cell_id:n,line:e.line-1}})),t.preventDefault()}} + > + ${n==t?"Local":"Other"}: ${e.line} + `;return _e`${r}`}return _e`${e.file}:${e.line}`},kk=({frame:e})=>{const t=e.call.indexOf("(");return-1!=t?_e`${e.call.substr(0,t)}${e.call.substr(t)}`:_e`${e.call}`},Tk=e=>e.flatMap(((t,i)=>i===e.length-1?[t]:i===e.length-2?[t," and "]:[t,", "])),Rk=({cell_id:e,diagnostics:t})=>(se((()=>(window.dispatchEvent(new CustomEvent("cell_diagnostics",{detail:{cell_id:e,diagnostics:t}})),()=>window.dispatchEvent(new CustomEvent("cell_diagnostics",{detail:{cell_id:e,diagnostics:[]}})))),[t]),_e` + +

Syntax error

+
+
    + ${t.map((({message:t,from:i,to:n,line:r})=>_e`
  1. window.dispatchEvent(new CustomEvent("cell_highlight_range",{detail:{cell_id:e,from:i,to:n}}))} + onmouseleave=${()=>window.dispatchEvent(new CustomEvent("cell_highlight_range",{detail:{cell_id:e,from:null,to:null}}))} + > + ${t}@ + <${Pk} frame=${{file:"#==#"+e,line:r}} cell_id=${e} /> +
  2. `))} +
+
+
+ `),Yk=({msg:e,stacktrace:t,cell_id:i})=>{var n;let r=he(J_);const o={pattern:/.?/,display:e=>e.split("\n").map((e=>_e`

${e}

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

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

`;return _e`

Multiple expressions in one cell.

+

How would you like to fix it?

+
    +
  • ${o}
  • +
  • ${t}
  • +
`}return _e`

Multiple expressions in one cell.

+

${t}

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

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=>_e`

${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=>_e`${e}`));return _e`

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

`}return _e`

${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=>_e`{const n=document.querySelector(`pluto-cell:not([id='${i}']) span[id='${encodeURI(e)}']`);t.preventDefault(),null==n||n.scrollIntoView()}}>${e}`));return _e`

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

`}return _e`

${e}

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

${e}

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

Another cell defining ${Tk(l)} contains errors.

`},show_stacktrace:()=>{const e=Ak(r.get_notebook(),i);return 0===Object.keys(e).length}},o],a=s.find((({pattern:t})=>t.test(e)))??o;return _e` +
${a.display(e)}
+ ${0!=t.length&&((null===(n=a.show_stacktrace)||void 0===n?void 0:n.call(a))??1)?_e`
+
    + ${t.map((e=>_e`
  1. + <${kk} frame=${e} /> + @ + <${Pk} frame=${e} cell_id=${i} /> + ${e.inlined?_e`[inlined]`:null} +
  2. `))} +
+
`:null} +
`},Ak=(e,t,i=[])=>{var n;let r={};if(null!=e&&(null==e||null===(o=e.cell_results)||void 0===o||null===(n=o[t])||void 0===n?void 0:n.errored)){var o;Object.keys(null===(o=e.cell_dependencies[t])||void 0===o?void 0:o.upstream_cells_map).forEach((n=>{if(!i.includes(n)){var o;i.push(n);(null===(o=e.cell_dependencies[t])||void 0===o?void 0:o.upstream_cells_map[n]).forEach((o=>{let s=Ak(e,o,i)??{};r={...r,...s},0===Object.keys(s).length&&e.cell_results[o].errored&&o!==t&&(r[n]=o)}))}}))}return r},Vk=({mime:e,body:t,cell_id:i,persist_js_state:n,sanitize_html:r=!0})=>{switch(e){case"image/png":case"image/jpg":case"image/jpeg":case"image/gif":case"image/bmp":case"image/svg+xml":return _e`<${DR} mime=${e} body=${t} />`;case"text/plain":return _e`
${t}
`;case"application/vnd.pluto.tree+object":return _e`<${Nk} cell_id=${i} body=${t} persist_js_state=${n} sanitize_html=${r} />`;default:return zR({mime:e,body:t,cell_id:i,persist_js_state:n,sanitize_html:r,last_run_timestamp:null})}},Zk=({on_click_more:e})=>{const[t,i]=oe(!1);return _e`{t||!1!==e()&&i(!0)}} + >more`},Ek=({prefix:e,prefix_short:t})=>_e`${e}${t}`,Ck=({pluto_actions:e,cell_id:t,node_ref:i,objectid:n,dim:r})=>{(e??i.current.closest("pluto-cell")._internal_pluto_actions).reshow_cell(t??i.current.closest("pluto-cell").id,n,r)},Nk=({mime:e,body:t,cell_id:i,persist_js_state:n,sanitize_html:r=!0})=>{let o=he(J_);const s=le(null),a=e=>_e`<${Vk} cell_id=${i} mime=${e[1]} body=${e[0]} persist_js_state=${n} sanitize_html=${r} />`,l=_e`<${Zk} on_click_more=${()=>{if(null==s.current||null!=s.current.closest("pluto-tree.collapsed"))return!1;Ck({pluto_actions:o,cell_id:i,node_ref:s,objectid:t.objectid,dim:1})}} />`;let c=null;switch(t.type){case"Pair":const e=t.key_value;return _e`${a(e[0])}${a(e[1])}`;case"circular":return _e`circular reference`;case"Array":case"Set":case"Tuple":c=_e`${Ek(t)}${t.elements.map((e=>"more"===e?l:_e`${"Set"===t.type?"":_e`${e[0]}`}${a(e[1])}`))}`;break;case"Dict":c=_e`${Ek(t)}${t.elements.map((e=>"more"===e?l:_e`${a(e[0])}${a(e[1])}`))}`;break;case"NamedTuple":c=_e`${Ek(t)}${t.elements.map((e=>"more"===e?l:_e`${e[0]}${a(e[1])}`))}`;break;case"struct":c=_e`${Ek(t)}${t.elements.map((e=>_e`${e[0]}${a(e[1])}`))}`}return _e``},qk=({colspan:e=999})=>_e` + + +
(This table has no columns)
+ + +`,Uk=({colspan:e=999})=>_e` + +
+
+ (This table has no rows) +
+ +`,Wk=({mime:e,body:t,cell_id:i,persist_js_state:n})=>{var r,o,s,a,l;let c=he(J_);const O=le(null),h=e=>_e`<${Zk} + on_click_more=${()=>{Ck({pluto_actions:c,cell_id:i,node_ref:O,objectid:t.objectid,dim:e})}} + />`,u=3+((null==t||null===(r=t.schema)||void 0===r||null===(o=r.names)||void 0===o?void 0:o.length)??1),d=0===((null==t||null===(s=t.schema)||void 0===s||null===(a=s.names)||void 0===a?void 0:a.length)??0)?_e`<${qk} colspan=${u} />`:_e` + + ${["",...t.schema.names].map((e=>_e`${"more"===e?h(2):e}`))} + + + ${["",...t.schema.types].map((e=>_e`${"more"===e?null:e}`))} + + `,f=_e` + ${0!==((null===(l=t.rows)||void 0===l?void 0:l.length)??0)?t.rows.map((e=>_e` + ${"more"===e?_e`${h(1)}`:_e`${e[0]} + ${e[1].map((e=>{return _e`${"more"===e?null:(t=e,_e`<${Vk} cell_id=${i} mime=${t[1]} body=${t[0]} persist_js_state=${n} />`)}`;var t}))}`} + `)):_e`<${Uk} colspan=${u} />`} + `;return _e` + ${d}${f} +
`};function jk(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 Mk(e){switch(e.type){case"button":case"submit":case"checkbox":return"click";case"file":return"change";default:return"input"}}const Dk=(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 i of Array.from(e.options))i.selected=t.includes(i.value);return}e.value!==t&&(e.value=t)}else e.value=t},zk=(e,t)=>{e.forEach((e=>{let i=e.getAttribute("def");if(null!=i&&null!=e.firstElementChild&&null!=t[i]){let n=t[i].value;try{Dk(e.firstElementChild,n)}catch(t){console.error("Error while setting input value",e.firstElementChild,"to value",n,": ",t)}}}))},Bk=(e,t,i,n)=>{let r=!1;n.then((()=>{r=!0})),e.forEach((async e=>{const n=e.getAttribute("def"),o=e.firstElementChild;if(null!=n&&null!=o){var s;const e=jk(o);const a=Object.keys(i).includes(n)&&Xt.isEqual(null===(s=i[n])||void 0===s?void 0:s.value,e)?null:t(n,e).catch(console.error);let l=!1;for(let e of function(e){return kt.Generators.observe((function(t){var i=Mk(e),n=jk(e);function r(){t(jk(e))}return e.addEventListener(i,r),void 0!==n&&t(n),function(){e.removeEventListener(i,r)}}))}(o)){if(r)break;if(!1===l){l=!0;continue}const i=await Gk(await e);await a,await t(n,i).catch(console.error)}}}))},Gk=async e=>e instanceof FileList?Promise.all(Array.from(e).map((e=>Gk(e)))):e instanceof File?await new Promise((t=>{const i=new FileReader;i.onload=()=>t({name:e.name,type:e.type,data:new Uint8Array(i.result)}),i.onerror=()=>t({name:e.name,type:e.type,data:null}),i.readAsArrayBuffer(e)})):e;function Ik(e){this.getChildContext=()=>e.context;const{context:t,children:i,...n}=e;return D(i,n)}function Lk(){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=Q(Ik,{...this._props,context:t},eT(this,this._vdomComponent)),(this.hasAttribute("hydrate")?M:j)(this._vdom,this._root)}}function Kk(e){return e.replace(/-(\w)/g,((e,t)=>t?t.toUpperCase():""))}function Fk(e,t,i){if(!this._vdom)return;i=null==i?void 0:i;const n={};n[e]=i,n[Kk(e)]=i,this._vdom=D(this._vdom,n),j(this._vdom,this._root)}function Hk(){const e=setTimeout((()=>{j(this._vdom=null,this._root)}),500);this.on_connect=()=>clearTimeout(e)}function Jk(e,t){return Q("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 eT(e,t){if(3===e.nodeType)return e.data;if(1!==e.nodeType)return null;let i=[],n={},r=0,o=e.attributes,s=e.childNodes;for(r=o.length;r--;)"slot"!==o[r].name&&(n[o[r].name]=o[r].value,n[Kk(o[r].name)]=o[r].value);for(r=s.length;r--;){const e=eT(s[r],null),t=s[r].slot;t?n[t]=Q(Jk,{name:t},e):i[r]=e}const a=t?Q(Jk,null,i):i;return Q(t||e.nodeName.toLowerCase(),n,a)} +/*! + Highlight.js v11.4.0 (git: 2d0e7c1094) + (c) 2006-2022 Ivan Sagalaev and other contributors + License: BSD-3-Clause + */var tT={exports:{}};function iT(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 i=e[t];"object"!=typeof i||Object.isFrozen(i)||iT(i)})),e}tT.exports=iT,tT.exports.default=iT;var nT=tT.exports;class rT{constructor(e){void 0===e.data&&(e.data={}),this.data=e.data,this.isMatchIgnored=!1}ignoreMatch(){this.isMatchIgnored=!0}}function oT(e){return e.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'")}function sT(e,...t){const i=Object.create(null);for(const t in e)i[t]=e[t];return t.forEach((e=>{for(const t in e)i[t]=e[t]})),i}const aT=e=>!!e.kind;class lT{constructor(e,t){this.buffer="",this.classPrefix=t.classPrefix,e.walk(this)}addText(e){this.buffer+=oT(e)}openNode(e){if(!aT(e))return;let t=e.kind;t=e.sublanguage?"language-"+t:((e,{prefix:t})=>{if(e.includes(".")){const i=e.split(".");return[`${t}${i.shift()}`,...i.map(((e,t)=>`${e}${"_".repeat(t+1)}`))].join(" ")}return`${t}${e}`})(t,{prefix:this.classPrefix}),this.span(t)}closeNode(e){aT(e)&&(this.buffer+="")}value(){return this.buffer}span(e){this.buffer+=``}}class cT{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=>{cT._collapse(e)})))}}class OT extends cT{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 i=e.root;i.kind=t,i.sublanguage=!0,this.add(i)}toHTML(){return new lT(this,this.options).value()}finalize(){return!0}}function hT(e){return e?"string"==typeof e?e:e.source:null}function uT(e){return pT("(?=",e,")")}function dT(e){return pT("(?:",e,")*")}function fT(e){return pT("(?:",e,")?")}function pT(...e){return e.map((e=>hT(e))).join("")}function gT(...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=>hT(e))).join("|")+")"}function mT(e){return RegExp(e.toString()+"|").exec("").length-1}const bT=/\[(?:[^\\\]]|\\.)*\]|\(\??|\\([1-9][0-9]*)|\\./;function $T(e,{joinWith:t}){let i=0;return e.map((e=>{i+=1;const t=i;let n=hT(e),r="";for(;n.length>0;){const e=bT.exec(n);if(!e){r+=n;break}r+=n.substring(0,e.index),n=n.substring(e.index+e[0].length),"\\"===e[0][0]&&e[1]?r+="\\"+(Number(e[1])+t):(r+=e[0],"("===e[0]&&i++)}return r})).map((e=>`(${e})`)).join(t)}const QT="(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)",vT={begin:"\\\\[\\s\\S]",relevance:0},yT={scope:"string",begin:"'",end:"'",illegal:"\\n",contains:[vT]},wT={scope:"string",begin:'"',end:'"',illegal:"\\n",contains:[vT]},_T=(e,t,i={})=>{const n=sT({scope:"comment",begin:e,end:t,contains:[]},i);n.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 r=gT("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 n.contains.push({begin:pT(/[ ]+/,"(",r,/[.]?[:]?([.][ ]|[ ])/,"){3}")}),n},ST=_T("//","$"),xT=_T("/\\*","\\*/"),XT=_T("#","$");var PT=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:QT,BINARY_NUMBER_RE:"\\b(0b[01]+)",RE_STARTERS_RE:"!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~",SHEBANG:(e={})=>{const t=/^#![ ]*\//;return e.binary&&(e.begin=pT(t,/.*\b/,e.binary,/\b.*/)),sT({scope:"meta",begin:t,end:/$/,relevance:0,"on:begin":(e,t)=>{0!==e.index&&t.ignoreMatch()}},e)},BACKSLASH_ESCAPE:vT,APOS_STRING_MODE:yT,QUOTE_STRING_MODE:wT,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:_T,C_LINE_COMMENT_MODE:ST,C_BLOCK_COMMENT_MODE:xT,HASH_COMMENT_MODE:XT,NUMBER_MODE:{scope:"number",begin:"\\b\\d+(\\.\\d+)?",relevance:0},C_NUMBER_MODE:{scope:"number",begin:QT,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:[vT,{begin:/\[/,end:/\]/,relevance:0,contains:[vT]}]}]},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 kT(e,t){"."===e.input[e.index-1]&&t.ignoreMatch()}function TT(e,t){void 0!==e.className&&(e.scope=e.className,delete e.className)}function RT(e,t){t&&e.beginKeywords&&(e.begin="\\b("+e.beginKeywords.split(" ").join("|")+")(?!\\.)(?=\\b|\\s)",e.__beforeBegin=kT,e.keywords=e.keywords||e.beginKeywords,delete e.beginKeywords,void 0===e.relevance&&(e.relevance=0))}function YT(e,t){Array.isArray(e.illegal)&&(e.illegal=gT(...e.illegal))}function AT(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 VT(e,t){void 0===e.relevance&&(e.relevance=1)}const ZT=(e,t)=>{if(!e.beforeMatch)return;if(e.starts)throw Error("beforeMatch cannot be used with starts");const i=Object.assign({},e);Object.keys(e).forEach((t=>{delete e[t]})),e.keywords=i.keywords,e.begin=pT(i.beforeMatch,uT(i.begin)),e.starts={relevance:0,contains:[Object.assign(i,{endsParent:!0})]},e.relevance=0,delete i.beforeMatch},ET=["of","and","for","in","not","or","if","then","parent","list","value"];function CT(e,t,i="keyword"){const n=Object.create(null);function r(e,i){t&&(i=i.map((e=>e.toLowerCase()))),i.forEach((t=>{const i=t.split("|");n[i[0]]=[e,NT(i[0],i[1])]}))}return"string"==typeof e?r(i,e.split(" ")):Array.isArray(e)?r(i,e):Object.keys(e).forEach((i=>{Object.assign(n,CT(e[i],t,i))})),n}function NT(e,t){return t?Number(t):(e=>ET.includes(e.toLowerCase()))(e)?0:1}const qT={},UT=e=>{console.error(e)},WT=(e,...t)=>{console.log("WARN: "+e,...t)},jT=(e,t)=>{qT[`${e}/${t}`]||(console.log(`Deprecated as of ${e}. ${t}`),qT[`${e}/${t}`]=!0)},MT=Error();function DT(e,t,{key:i}){let n=0;const r=e[i],o={},s={};for(let e=1;e<=t.length;e++)s[e+n]=r[e],o[e+n]=!0,n+=mT(t[e-1]);e[i]=s,e[i]._emit=o,e[i]._multi=!0}function zT(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 UT("skip, excludeBegin, returnBegin not compatible with beginScope: {}"),MT;if("object"!=typeof e.beginScope||null===e.beginScope)throw UT("beginScope must be object"),MT;DT(e,e.begin,{key:"beginScope"}),e.begin=$T(e.begin,{joinWith:""})}})(e),(e=>{if(Array.isArray(e.end)){if(e.skip||e.excludeEnd||e.returnEnd)throw UT("skip, excludeEnd, returnEnd not compatible with endScope: {}"),MT;if("object"!=typeof e.endScope||null===e.endScope)throw UT("endScope must be object"),MT;DT(e,e.end,{key:"endScope"}),e.end=$T(e.end,{joinWith:""})}})(e)}function BT(e){function t(t,i){return RegExp(hT(t),"m"+(e.case_insensitive?"i":"")+(e.unicodeRegex?"u":"")+(i?"g":""))}class i{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+=mT(e)+1}compile(){0===this.regexes.length&&(this.exec=()=>null);const e=this.regexes.map((e=>e[1]));this.matcherRe=t($T(e,{joinWith:"|"}),!0),this.lastIndex=0}exec(e){this.matcherRe.lastIndex=this.lastIndex;const t=this.matcherRe.exec(e);if(!t)return null;const i=t.findIndex(((e,t)=>t>0&&void 0!==e)),n=this.matchIndexes[i];return t.splice(0,i),Object.assign(t,n)}}class n{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 i;return this.rules.slice(e).forEach((([e,i])=>t.addRule(e,i))),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 i=t.exec(e);if(this.resumingScanAtSamePosition())if(i&&i.index===this.lastIndex);else{const t=this.getMatcher(0);t.lastIndex=this.lastIndex+1,i=t.exec(e)}return i&&(this.regexIndex+=i.position+1,this.regexIndex===this.count&&this.considerAll()),i}}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=sT(e.classNameAliases||{}),function i(r,o){const s=r;if(r.isCompiled)return s;[TT,AT,zT,ZT].forEach((e=>e(r,o))),e.compilerExtensions.forEach((e=>e(r,o))),r.__beforeBegin=null,[RT,YT,VT].forEach((e=>e(r,o))),r.isCompiled=!0;let a=null;return"object"==typeof r.keywords&&r.keywords.$pattern&&(r.keywords=Object.assign({},r.keywords),a=r.keywords.$pattern,delete r.keywords.$pattern),a=a||/\w+/,r.keywords&&(r.keywords=CT(r.keywords,e.case_insensitive)),s.keywordPatternRe=t(a,!0),o&&(r.begin||(r.begin=/\B|\b/),s.beginRe=t(s.begin),r.end||r.endsWithParent||(r.end=/\B|\b/),r.end&&(s.endRe=t(s.end)),s.terminatorEnd=hT(s.end)||"",r.endsWithParent&&o.terminatorEnd&&(s.terminatorEnd+=(r.end?"|":"")+o.terminatorEnd)),r.illegal&&(s.illegalRe=t(r.illegal)),r.contains||(r.contains=[]),r.contains=[].concat(...r.contains.map((e=>(e=>(e.variants&&!e.cachedVariants&&(e.cachedVariants=e.variants.map((t=>sT(e,{variants:null},t)))),e.cachedVariants?e.cachedVariants:GT(e)?sT(e,{starts:e.starts?sT(e.starts):null}):Object.isFrozen(e)?sT(e):e))("self"===e?r:e)))),r.contains.forEach((e=>{i(e,s)})),r.starts&&i(r.starts,o),s.matcher=(e=>{const t=new n;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})(s),s}(e)}function GT(e){return!!e&&(e.endsWithParent||GT(e.starts))}class IT extends Error{constructor(e,t){super(e),this.name="HTMLInjectionError",this.html=t}}const LT=oT,KT=sT,FT=Symbol("nomatch");var HT=(e=>{const t=Object.create(null),i=Object.create(null),n=[];let r=!0;const o="Could not find the language '{}', did you forget to load/include a language module?",s={disableAutodetect:!0,name:"Plain text",contains:[]};let a={ignoreUnescapedHTML:!1,throwUnescapedHTML:!1,noHighlightRe:/^(no-?highlight)$/i,languageDetectRe:/\blang(?:uage)?-([\w-]+)\b/i,classPrefix:"hljs-",cssSelector:"pre code",languages:null,__emitter:OT};function l(e){return a.noHighlightRe.test(e)}function c(e,t,i){let n="",r="";"object"==typeof t?(n=e,i=t.ignoreIllegals,r=t.language):(jT("10.7.0","highlight(lang, code, ...args) has been deprecated."),jT("10.7.0","Please use highlight(code, options) instead.\nhttps://github.com/highlightjs/highlight.js/issues/2277"),r=e,n=t),void 0===i&&(i=!0);const o={code:n,language:r};b("before:highlight",o);const s=o.result?o.result:O(o.language,o.code,i);return s.code=o.code,b("after:highlight",s),s}function O(e,i,n,s){const l=Object.create(null);function c(){if(!_.keywords)return void x.addText(X);let e=0;_.keywordPatternRe.lastIndex=0;let t=_.keywordPatternRe.exec(X),i="";for(;t;){i+=X.substring(e,t.index);const r=v.case_insensitive?t[0].toLowerCase():t[0],o=(n=r,_.keywords[n]);if(o){const[e,n]=o;if(x.addText(i),i="",l[r]=(l[r]||0)+1,l[r]<=7&&(P+=n),e.startsWith("_"))i+=t[0];else{const i=v.classNameAliases[e]||e;x.addKeyword(t[0],i)}}else i+=t[0];e=_.keywordPatternRe.lastIndex,t=_.keywordPatternRe.exec(X)}var n;i+=X.substr(e),x.addText(i)}function u(){null!=_.subLanguage?(()=>{if(""===X)return;let e=null;if("string"==typeof _.subLanguage){if(!t[_.subLanguage])return void x.addText(X);e=O(_.subLanguage,X,!0,S[_.subLanguage]),S[_.subLanguage]=e._top}else e=h(X,_.subLanguage.length?_.subLanguage:null);_.relevance>0&&(P+=e.relevance),x.addSublanguage(e._emitter,e.language)})():c(),X=""}function d(e,t){let i=1;for(;void 0!==t[i];){if(!e._emit[i]){i++;continue}const n=v.classNameAliases[e[i]]||e[i],r=t[i];n?x.addKeyword(r,n):(X=r,c(),X=""),i++}}function f(e,t){return e.scope&&"string"==typeof e.scope&&x.openNode(v.classNameAliases[e.scope]||e.scope),e.beginScope&&(e.beginScope._wrap?(x.addKeyword(X,v.classNameAliases[e.beginScope._wrap]||e.beginScope._wrap),X=""):e.beginScope._multi&&(d(e.beginScope,t),X="")),_=Object.create(e,{parent:{value:_}}),_}function g(e,t,i){let n=((e,t)=>{const i=e&&e.exec(t);return i&&0===i.index})(e.endRe,i);if(n){if(e["on:end"]){const i=new rT(e);e["on:end"](t,i),i.isMatchIgnored&&(n=!1)}if(n){for(;e.endsParent&&e.parent;)e=e.parent;return e}}if(e.endsWithParent)return g(e.parent,t,i)}function m(e){return 0===_.matcher.regexIndex?(X+=e[0],1):(R=!0,0)}function b(e){const t=e[0],n=i.substr(e.index),r=g(_,e,n);if(!r)return FT;const o=_;_.endScope&&_.endScope._wrap?(u(),x.addKeyword(t,_.endScope._wrap)):_.endScope&&_.endScope._multi?(u(),d(_.endScope,e)):o.skip?X+=t:(o.returnEnd||o.excludeEnd||(X+=t),u(),o.excludeEnd&&(X=t));do{_.scope&&x.closeNode(),_.skip||_.subLanguage||(P+=_.relevance),_=_.parent}while(_!==r.parent);return r.starts&&f(r.starts,e),o.returnEnd?0:t.length}let $={};function Q(t,o){const s=o&&o[0];if(X+=t,null==s)return u(),0;if("begin"===$.type&&"end"===o.type&&$.index===o.index&&""===s){if(X+=i.slice(o.index,o.index+1),!r){const t=Error(`0 width match regex (${e})`);throw t.languageName=e,t.badRule=$.rule,t}return 1}if($=o,"begin"===o.type)return(e=>{const t=e[0],i=e.rule,n=new rT(i),r=[i.__beforeBegin,i["on:begin"]];for(const i of r)if(i&&(i(e,n),n.isMatchIgnored))return m(t);return i.skip?X+=t:(i.excludeBegin&&(X+=t),u(),i.returnBegin||i.excludeBegin||(X=t)),f(i,e),i.returnBegin?0:t.length})(o);if("illegal"===o.type&&!n){const e=Error('Illegal lexeme "'+s+'" for mode "'+(_.scope||"")+'"');throw e.mode=_,e}if("end"===o.type){const e=b(o);if(e!==FT)return e}if("illegal"===o.type&&""===s)return 1;if(T>1e5&&T>3*o.index)throw Error("potential infinite loop, way more iterations than matches");return X+=s,s.length}const v=p(e);if(!v)throw UT(o.replace("{}",e)),Error('Unknown language: "'+e+'"');const y=BT(v);let w="",_=s||y;const S={},x=new a.__emitter(a);(()=>{const e=[];for(let t=_;t!==v;t=t.parent)t.scope&&e.unshift(t.scope);e.forEach((e=>x.openNode(e)))})();let X="",P=0,k=0,T=0,R=!1;try{for(_.matcher.considerAll();;){T++,R?R=!1:_.matcher.considerAll(),_.matcher.lastIndex=k;const e=_.matcher.exec(i);if(!e)break;const t=Q(i.substring(k,e.index),e);k=e.index+t}return Q(i.substr(k)),x.closeAllNodes(),x.finalize(),w=x.toHTML(),{language:e,value:w,relevance:P,illegal:!1,_emitter:x,_top:_}}catch(t){if(t.message&&t.message.includes("Illegal"))return{language:e,value:LT(i),illegal:!0,relevance:0,_illegalBy:{message:t.message,index:k,context:i.slice(k-100,k+100),mode:t.mode,resultSoFar:w},_emitter:x};if(r)return{language:e,value:LT(i),illegal:!1,relevance:0,errorRaised:t,_emitter:x,_top:_};throw t}}function h(e,i){i=i||a.languages||Object.keys(t);const n=(e=>{const t={value:LT(e),illegal:!1,relevance:0,_top:s,_emitter:new a.__emitter(a)};return t._emitter.addText(e),t})(e),r=i.filter(p).filter(m).map((t=>O(t,e,!1)));r.unshift(n);const o=r.sort(((e,t)=>{if(e.relevance!==t.relevance)return t.relevance-e.relevance;if(e.language&&t.language){if(p(e.language).supersetOf===t.language)return 1;if(p(t.language).supersetOf===e.language)return-1}return 0})),[l,c]=o,h=l;return h.secondBest=c,h}function u(e){let t=null;const n=(e=>{let t=e.className+" ";t+=e.parentNode?e.parentNode.className:"";const i=a.languageDetectRe.exec(t);if(i){const t=p(i[1]);return t||(WT(o.replace("{}",i[1])),WT("Falling back to no-highlight mode for this block.",e)),t?i[1]:"no-highlight"}return t.split(/\s+/).find((e=>l(e)||p(e)))})(e);if(l(n))return;if(b("before:highlightElement",{el:e,language:n}),e.children.length>0&&(a.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)),a.throwUnescapedHTML))throw new IT("One of your code blocks includes unescaped HTML.",e.innerHTML);t=e;const r=t.textContent,s=n?c(r,{language:n,ignoreIllegals:!0}):h(r);e.innerHTML=s.value,((e,t,n)=>{const r=t&&i[t]||n;e.classList.add("hljs"),e.classList.add("language-"+r)})(e,n,s.language),e.result={language:s.language,re:s.relevance,relevance:s.relevance},s.secondBest&&(e.secondBest={language:s.secondBest.language,relevance:s.secondBest.relevance}),b("after:highlightElement",{el:e,result:s,text:r})}let d=!1;function f(){"loading"!==document.readyState?document.querySelectorAll(a.cssSelector).forEach(u):d=!0}function p(e){return e=(e||"").toLowerCase(),t[e]||t[i[e]]}function g(e,{languageName:t}){"string"==typeof e&&(e=[e]),e.forEach((e=>{i[e.toLowerCase()]=t}))}function m(e){const t=p(e);return t&&!t.disableAutodetect}function b(e,t){const i=e;n.forEach((e=>{e[i]&&e[i](t)}))}"undefined"!=typeof window&&window.addEventListener&&window.addEventListener("DOMContentLoaded",(()=>{d&&f()}),!1),Object.assign(e,{highlight:c,highlightAuto:h,highlightAll:f,highlightElement:u,highlightBlock:e=>(jT("10.7.0","highlightBlock will be removed entirely in v12.0"),jT("10.7.0","Please use highlightElement now."),u(e)),configure:e=>{a=KT(a,e)},initHighlighting:()=>{f(),jT("10.6.0","initHighlighting() deprecated. Use highlightAll() now.")},initHighlightingOnLoad:()=>{f(),jT("10.6.0","initHighlightingOnLoad() deprecated. Use highlightAll() now.")},registerLanguage:(i,n)=>{let o=null;try{o=n(e)}catch(e){if(UT("Language definition for '{}' could not be registered.".replace("{}",i)),!r)throw e;UT(e),o=s}o.name||(o.name=i),t[i]=o,o.rawDefinition=n.bind(null,e),o.aliases&&g(o.aliases,{languageName:i})},unregisterLanguage:e=>{delete t[e];for(const t of Object.keys(i))i[t]===e&&delete i[t]},listLanguages:()=>Object.keys(t),getLanguage:p,registerAliases:g,autoDetection:m,inherit:KT,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),n.push(e)}}),e.debugMode=()=>{r=!1},e.safeMode=()=>{r=!0},e.versionString="11.4.0",e.regex={concat:pT,lookahead:uT,either:gT,optional:fT,anyNumberOfTimes:dT};for(const e in PT)"object"==typeof PT[e]&&nT(PT[e]);return Object.assign(e,PT),e})({});const JT=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_-]*/}}),eR=["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"],tR=["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"],iR=["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"],nR=["after","backdrop","before","cue","cue-region","first-letter","first-line","grammar-error","marker","part","placeholder","selection","slotted","spelling-error"],rR=["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(),oR=iR.concat(nR);var sR={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 aR(e,t,i){return-1===i?"":e.replace(t,(n=>aR(e,t,i-1)))}const lR="[A-Za-z$_][0-9A-Za-z$_]*",cR=["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"],OR=["true","false","null","undefined","NaN","Infinity"],hR=["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"],uR=["Error","EvalError","InternalError","RangeError","ReferenceError","SyntaxError","TypeError","URIError"],dR=["setInterval","setTimeout","clearInterval","clearTimeout","require","exports","eval","isFinite","isNaN","parseFloat","parseInt","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","escape","unescape"],fR=["arguments","this","super","console","window","document","localStorage","module","global"],pR=[].concat(dR,hR,uR);function gR(e){const t=e.regex,i=lR,n={begin:/<[A-Za-z0-9\\._:-]+/,end:/\/[A-Za-z0-9\\._:-]+>|\/>/,isTrulyOpeningTag:(e,t)=>{const i=e[0].length+e.index,n=e.input[i];if("<"===n||","===n)return void t.ignoreMatch();let r;">"===n&&(((e,{after:t})=>{const i="",S={match:[/const|var|let/,/\s+/,i,/\s*/,/=\s*/,/(async\s*)?/,t.lookahead(_)],keywords:"async",className:{1:"keyword",3:"title.function"},contains:[g]};return{name:"Javascript",aliases:["js","jsx","mjs","cjs"],keywords:r,exports:{PARAMS_CONTAINS:p,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,O,h,u,a,b,{className:"attr",begin:i+t.lookahead(":"),relevance:0},S,{begin:"("+e.RE_STARTERS_RE+"|\\b(case|return|throw)\\b)\\s*",keywords:"return throw case",relevance:0,contains:[u,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:r,contains:p}]}]},{begin:/,/,relevance:0},{match:/\s+/,relevance:0},{variants:[{begin:"<>",end:""},{match:/<[A-Za-z0-9\\._:-]+\s*\/>/},{begin:n.begin,"on:begin":n.isTrulyOpeningTag,end:n.end}],subLanguage:"xml",contains:[{begin:n.begin,end:n.end,skip:!0,contains:["self"]}]}]},$,{beginKeywords:"while if switch catch for"},{begin:"\\b(?!function)"+e.UNDERSCORE_IDENT_RE+"\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)\\s*\\{",returnBegin:!0,label:"func.def",contains:[g,e.inherit(e.TITLE_MODE,{begin:i,className:"title.function"})]},{match:/\.\.\./,relevance:0},y,{match:"\\$"+i,relevance:0},{match:[/\bconstructor(?=\s*\()/],className:{1:"title.function"},contains:[g]},Q,{relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/,className:"variable.constant"},m,w,{match:/\$[(.]/}]}}const mR=e=>pT(/\b/,e,/\w$/.test(e)?/\b/:/\B/),bR=["Protocol","Type"].map(mR),$R=["init","self"].map(mR),QR=["Any","Self"],vR=["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"],yR=["false","nil","true"],wR=["assignment","associativity","higherThan","left","lowerThan","none","right"],_R=["#colorLiteral","#column","#dsohandle","#else","#elseif","#endif","#error","#file","#fileID","#fileLiteral","#filePath","#function","#if","#imageLiteral","#keyPath","#line","#selector","#sourceLocation","#warn_unqualified_access","#warning"],SR=["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"],xR=gT(/[/=\-+!*%<>&|^~?]/,/[\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]/),XR=gT(xR,/[\u0300-\u036F]/,/[\u1DC0-\u1DFF]/,/[\u20D0-\u20FF]/,/[\uFE00-\uFE0F]/,/[\uFE20-\uFE2F]/),PR=pT(xR,XR,"*"),kR=gT(/[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]/),TR=gT(kR,/\d/,/[\u0300-\u036F\u1DC0-\u1DFF\u20D0-\u20FF\uFE20-\uFE2F]/),RR=pT(kR,TR,"*"),YR=pT(/[A-Z]/,TR,"*"),AR=["autoclosure",pT(/convention\(/,gT("swift","block","c"),/\)/),"discardableResult","dynamicCallable","dynamicMemberLookup","escaping","frozen","GKInspectable","IBAction","IBDesignable","IBInspectable","IBOutlet","IBSegueAction","inlinable","main","nonobjc","NSApplicationMain","NSCopying","NSManaged",pT(/objc\(/,RR,/\)/),"objc","objcMembers","propertyWrapper","requires_stored_property_inits","resultBuilder","testable","UIApplicationMain","unknown","usableFromInline"],VR=["iOS","iOSApplicationExtension","macOS","macOSApplicationExtension","macCatalyst","macCatalystApplicationExtension","watchOS","watchOSApplicationExtension","tvOS","tvOSApplicationExtension","swift"];var ZR=Object.freeze({__proto__:null,grmr_bash:e=>{const t=e.regex,i={},n={begin:/\$\{/,end:/\}/,contains:["self",{begin:/:-/,contains:[i]}]};Object.assign(i,{className:"variable",variants:[{begin:t.concat(/\$[\w\d#@][\w\d_]*/,"(?![\\w\\d])(?![$])")},n]});const r={className:"subst",begin:/\$\(/,end:/\)/,contains:[e.BACKSLASH_ESCAPE]},o={begin:/<<-?\s*(?=\w+)/,starts:{contains:[e.END_SAME_AS_BEGIN({begin:/(\w+)/,end:/(\w+)/,className:"string"})]}},s={className:"string",begin:/"/,end:/"/,contains:[e.BACKSLASH_ESCAPE,i,r]};r.contains.push(s);const a={begin:/\$\(\(/,end:/\)\)/,contains:[{begin:/\d+#[0-9a-f]+/,className:"number"},e.NUMBER_MODE,i]},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,a,e.HASH_COMMENT_MODE,o,{match:/(\/[a-z._-]+)+/},s,{className:"",begin:/\\"/},{className:"string",begin:/'/,end:/'/},i]}},grmr_c:e=>{const t=e.regex,i=e.COMMENT("//","$",{contains:[{begin:/\\\n/}]}),n="[a-zA-Z_]\\w*::",r="(decltype\\(auto\\)|"+t.optional(n)+"[a-zA-Z_]\\w*"+t.optional("<[^<>]+>")+")",o={className:"type",variants:[{begin:"\\b[a-z\\d_]*_t\\b"},{match:/\batomic_[a-z]{3,6}\b/}]},s={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})"/})]},a={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(s,{className:"string"}),{className:"string",begin:/<.*?>/},i,e.C_BLOCK_COMMENT_MODE]},c={className:"title",begin:t.optional(n)+e.IDENT_RE,relevance:0},O=t.optional(n)+e.IDENT_RE+"\\s*\\(",h={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"},u=[l,o,i,e.C_BLOCK_COMMENT_MODE,a,s],d={variants:[{begin:/=/,end:/;/},{begin:/\(/,end:/\)/},{beginKeywords:"new throw return else",end:/;/}],keywords:h,contains:u.concat([{begin:/\(/,end:/\)/,keywords:h,contains:u.concat(["self"]),relevance:0}]),relevance:0},f={begin:"("+r+"[\\*&\\s]+)+"+O,returnBegin:!0,end:/[{;=]/,excludeEnd:!0,keywords:h,illegal:/[^\w\s\*&:<>.]/,contains:[{begin:"decltype\\(auto\\)",keywords:h,relevance:0},{begin:O,returnBegin:!0,contains:[e.inherit(c,{className:"title.function"})],relevance:0},{relevance:0,match:/,/},{className:"params",begin:/\(/,end:/\)/,keywords:h,relevance:0,contains:[i,e.C_BLOCK_COMMENT_MODE,s,a,o,{begin:/\(/,end:/\)/,keywords:h,relevance:0,contains:["self",i,e.C_BLOCK_COMMENT_MODE,s,a,o]}]},o,i,e.C_BLOCK_COMMENT_MODE,l]};return{name:"C",aliases:["h"],keywords:h,disableAutodetect:!0,illegal:"=]/,contains:[{beginKeywords:"final class struct"},e.TITLE_MODE]}]),exports:{preprocessor:l,strings:s,keywords:h}}},grmr_cpp:e=>{const t=e.regex,i=e.COMMENT("//","$",{contains:[{begin:/\\\n/}]}),n="[a-zA-Z_]\\w*::",r="(?!struct)(decltype\\(auto\\)|"+t.optional(n)+"[a-zA-Z_]\\w*"+t.optional("<[^<>]+>")+")",o={className:"type",begin:"\\b[a-z\\d_]*_t\\b"},s={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})"/})]},a={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(s,{className:"string"}),{className:"string",begin:/<.*?>/},i,e.C_BLOCK_COMMENT_MODE]},c={className:"title",begin:t.optional(n)+e.IDENT_RE,relevance:0},O=t.optional(n)+e.IDENT_RE+"\\s*\\(",h={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"]},u={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*\(/))},d=[u,l,o,i,e.C_BLOCK_COMMENT_MODE,a,s],f={variants:[{begin:/=/,end:/;/},{begin:/\(/,end:/\)/},{beginKeywords:"new throw return else",end:/;/}],keywords:h,contains:d.concat([{begin:/\(/,end:/\)/,keywords:h,contains:d.concat(["self"]),relevance:0}]),relevance:0},p={className:"function",begin:"("+r+"[\\*&\\s]+)+"+O,returnBegin:!0,end:/[{;=]/,excludeEnd:!0,keywords:h,illegal:/[^\w\s\*&:<>.]/,contains:[{begin:"decltype\\(auto\\)",keywords:h,relevance:0},{begin:O,returnBegin:!0,contains:[c],relevance:0},{begin:/::/,relevance:0},{begin:/:/,endsWithParent:!0,contains:[s,a]},{relevance:0,match:/,/},{className:"params",begin:/\(/,end:/\)/,keywords:h,relevance:0,contains:[i,e.C_BLOCK_COMMENT_MODE,s,a,o,{begin:/\(/,end:/\)/,keywords:h,relevance:0,contains:["self",i,e.C_BLOCK_COMMENT_MODE,s,a,o]}]},o,i,e.C_BLOCK_COMMENT_MODE,l]};return{name:"C++",aliases:["cc","c++","h++","hpp","hh","hxx","cxx"],keywords:h,illegal:"",keywords:h,contains:["self",o]},{begin:e.IDENT_RE+"::",keywords:h},{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"]},i=e.inherit(e.TITLE_MODE,{begin:"[a-zA-Z](\\.?\\w)*"}),n={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},r={className:"string",begin:'@"',end:'"',contains:[{begin:'""'}]},o=e.inherit(r,{illegal:/\n/}),s={className:"subst",begin:/\{/,end:/\}/,keywords:t},a=e.inherit(s,{illegal:/\n/}),l={className:"string",begin:/\$"/,end:'"',illegal:/\n/,contains:[{begin:/\{\{/},{begin:/\}\}/},e.BACKSLASH_ESCAPE,a]},c={className:"string",begin:/\$@"/,end:'"',contains:[{begin:/\{\{/},{begin:/\}\}/},{begin:'""'},s]},O=e.inherit(c,{illegal:/\n/,contains:[{begin:/\{\{/},{begin:/\}\}/},{begin:'""'},a]});s.contains=[c,l,r,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,n,e.C_BLOCK_COMMENT_MODE],a.contains=[O,l,o,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,n,e.inherit(e.C_BLOCK_COMMENT_MODE,{illegal:/\n/})];const h={variants:[c,l,r,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},u={begin:"<",end:">",contains:[{beginKeywords:"in out"},i]},d=e.IDENT_RE+"(<"+e.IDENT_RE+"(\\s*,\\s*"+e.IDENT_RE+")*>)?(\\[\\])?",f={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"}},h,n,{beginKeywords:"class interface",relevance:0,end:/[{;=]/,illegal:/[^\s:,]/,contains:[{beginKeywords:"where class"},i,u,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{beginKeywords:"namespace",relevance:0,end:/[{;=]/,illegal:/[^\s:]/,contains:[i,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{beginKeywords:"record",relevance:0,end:/[{;=]/,illegal:/[^\s:]/,contains:[i,u,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:"("+d+"\\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,u],relevance:0},{match:/\(\)/},{className:"params",begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:t,relevance:0,contains:[h,n,e.C_BLOCK_COMMENT_MODE]},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},f]}},grmr_css:e=>{const t=e.regex,i=JT(e),n=[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE];return{name:"CSS",case_insensitive:!0,illegal:/[=|'\$]/,keywords:{keyframePosition:"from to"},classNameAliases:{keyframePosition:"selector-tag"},contains:[i.BLOCK_COMMENT,{begin:/-(webkit|moz|ms|o)-(?=[a-z])/},i.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},i.ATTRIBUTE_SELECTOR_MODE,{className:"selector-pseudo",variants:[{begin:":("+iR.join("|")+")"},{begin:":(:)?("+nR.join("|")+")"}]},i.CSS_VARIABLE,{className:"attribute",begin:"\\b("+rR.join("|")+")\\b"},{begin:/:/,end:/[;}{]/,contains:[i.BLOCK_COMMENT,i.HEXCOLOR,i.IMPORTANT,i.CSS_NUMBER_MODE,...n,{begin:/(url|data-uri)\(/,end:/\)/,relevance:0,keywords:{built_in:"url data-uri"},contains:[{className:"string",begin:/[^)]/,endsWithParent:!0,excludeEnd:!0}]},i.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:tR.join(" ")},contains:[{begin:/[a-z-]+(?=:)/,className:"attribute"},...n,i.CSS_NUMBER_MODE]}]},{className:"selector-tag",begin:"\\b("+eR.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,i={className:"number",relevance:0,variants:[{begin:/([+-]+)?[\d]+_[\d_]+/},{begin:e.NUMBER_RE}]},n=e.COMMENT();n.variants=[{begin:/;/,end:/$/},{begin:/#/,end:/$/}];const r={className:"variable",variants:[{begin:/\$[\w\d"][\w\d_]*/},{begin:/\$\{(.*?)\}/}]},o={className:"literal",begin:/\bon|off|true|false|yes|no\b/},s={className:"string",contains:[e.BACKSLASH_ESCAPE],variants:[{begin:"'''",end:"'''",relevance:10},{begin:'"""',end:'"""',relevance:10},{begin:'"',end:'"'},{begin:"'",end:"'"}]},a={begin:/\[/,end:/\]/,contains:[n,o,r,s,i,"self"],relevance:0},l=t.either(/[A-Za-z0-9_-]+/,/"(\\"|[^"])*"/,/'[^']*'/);return{name:"TOML, also INI",aliases:["toml"],case_insensitive:!0,illegal:/\S/,contains:[n,{className:"section",begin:/\[+/,end:/\]+/},{begin:t.concat(l,"(\\s*\\.\\s*",l,")*",t.lookahead(/\s*=\s*[^#\s]/)),className:"attr",starts:{end:/$/,contains:[n,a,o,r,s,i]}}]}},grmr_java:e=>{e.regex;const t="[À-ʸa-zA-Z_$][À-ʸa-zA-Z_$0-9]*",i=t+aR("(?:<"+t+"~~~(?:\\s*,\\s*"+t+"~~~)*>)?",/~~~/g,2),n={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"]},r={className:"meta",begin:"@"+t,contains:[{begin:/\(/,end:/\)/,contains:["self"]}]},o={className:"params",begin:/\(/,end:/\)/,keywords:n,relevance:0,contains:[e.C_BLOCK_COMMENT_MODE],endsParent:!0};return{name:"Java",aliases:["jsp"],keywords:n,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:[o,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{beginKeywords:"new throw return else",relevance:0},{begin:["(?:"+i+"\\s+)",e.UNDERSCORE_IDENT_RE,/\s*(?=\()/],className:{2:"title.function"},keywords:n,contains:[{className:"params",begin:/\(/,end:/\)/,keywords:n,relevance:0,contains:[r,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,sR,e.C_BLOCK_COMMENT_MODE]},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},sR,r]}},grmr_javascript:gR,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"},i={className:"symbol",begin:e.UNDERSCORE_IDENT_RE+"@"},n={className:"subst",begin:/\$\{/,end:/\}/,contains:[e.C_NUMBER_MODE]},r={className:"variable",begin:"\\$"+e.UNDERSCORE_IDENT_RE},o={className:"string",variants:[{begin:'"""',end:'"""(?=[^"])',contains:[r,n]},{begin:"'",end:"'",illegal:/\n/,contains:[e.BACKSLASH_ESCAPE]},{begin:'"',end:'"',illegal:/\n/,contains:[e.BACKSLASH_ESCAPE,r,n]}]};n.contains.push(o);const s={className:"meta",begin:"@(?:file|property|field|get|set|receiver|param|setparam|delegate)\\s*:(?:\\s*"+e.UNDERSCORE_IDENT_RE+")?"},a={className:"meta",begin:"@"+e.UNDERSCORE_IDENT_RE,contains:[{begin:/\(/,end:/\)/,contains:[e.inherit(o,{className:"string"})]}]},l=sR,c=e.COMMENT("/\\*","\\*/",{contains:[e.C_BLOCK_COMMENT_MODE]}),O={variants:[{className:"type",begin:e.UNDERSCORE_IDENT_RE},{begin:/\(/,end:/\)/,contains:[]}]},h=O;return h.variants[1].contains=[O],O.variants[1].contains=[h],{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+/}]}},i,s,a,{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:[O,e.C_LINE_COMMENT_MODE,c],relevance:0},e.C_LINE_COMMENT_MODE,c,s,a,o,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},s,a]},o,{className:"meta",begin:"^#!/usr/bin/env",end:"$",illegal:"\n"},l]}},grmr_less:e=>{const t=JT(e),i=oR,n="([\\w-]+|@\\{[\\w-]+\\})",r=[],o=[],s=e=>({className:"string",begin:"~?"+e+".*?"+e}),a=(e,t,i)=>({className:e,begin:t,relevance:i}),l={$pattern:/[a-z-]+/,keyword:"and or not only",attribute:tR.join(" ")},c={begin:"\\(",end:"\\)",contains:o,keywords:l,relevance:0};o.push(e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,s("'"),s('"'),t.CSS_NUMBER_MODE,{begin:"(url|data-uri)\\(",starts:{className:"string",end:"[\\)\\n]",excludeEnd:!0}},t.HEXCOLOR,c,a("variable","@@?[\\w-]+",10),a("variable","@\\{[\\w-]+\\}"),a("built_in","~?`[^`]*?`"),{className:"attribute",begin:"[\\w-]+\\s*:",end:":",returnBegin:!0,excludeEnd:!0},t.IMPORTANT);const O=o.concat({begin:/\{/,end:/\}/,contains:r}),h={beginKeywords:"when",endsWithParent:!0,contains:[{beginKeywords:"and not"}].concat(o)},u={begin:n+"\\s*:",returnBegin:!0,end:/[;}]/,relevance:0,contains:[{begin:/-(webkit|moz|ms|o)-/},t.CSS_VARIABLE,{className:"attribute",begin:"\\b("+rR.join("|")+")\\b",end:/(?=:)/,starts:{endsWithParent:!0,illegal:"[<=$]",relevance:0,contains:o}}]},d={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:o,relevance:0}},f={className:"variable",variants:[{begin:"@[\\w-]+\\s*:",relevance:15},{begin:"@[\\w-]+"}],starts:{end:"[;}]",returnEnd:!0,contains:O}},p={variants:[{begin:"[\\.#:&\\[>]",end:"[;{}]"},{begin:n,end:/\{/}],returnBegin:!0,returnEnd:!0,illegal:"[<='$\"]",relevance:0,contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,h,a("keyword","all\\b"),a("variable","@\\{[\\w-]+\\}"),{begin:"\\b("+eR.join("|")+")\\b",className:"selector-tag"},t.CSS_NUMBER_MODE,a("selector-tag",n,0),a("selector-id","#"+n),a("selector-class","\\."+n,0),a("selector-tag","&",0),t.ATTRIBUTE_SELECTOR_MODE,{className:"selector-pseudo",begin:":("+iR.join("|")+")"},{className:"selector-pseudo",begin:":(:)?("+nR.join("|")+")"},{begin:/\(/,end:/\)/,relevance:0,contains:O},{begin:"!important"},t.FUNCTION_DISPATCH]},g={begin:`[\\w-]+:(:)?(${i.join("|")})`,returnBegin:!0,contains:[p]};return r.push(e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,d,f,g,u,p),{name:"Less",case_insensitive:!0,illegal:"[=>'/<($\"]",contains:r}},grmr_lua:e=>{const t="\\[=*\\[",i="\\]=*\\]",n={begin:t,end:i,contains:["self"]},r=[e.COMMENT("--(?!\\[=*\\[)","$"),e.COMMENT("--\\[=*\\[",i,{contains:[n],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:r.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:r}].concat(r)},e.C_NUMBER_MODE,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,{className:"string",begin:t,end:i,contains:[n],relevance:5}])}},grmr_makefile:e=>{const t={className:"variable",variants:[{begin:"\\$\\("+e.UNDERSCORE_IDENT_RE+"\\)",contains:[e.BACKSLASH_ESCAPE]},{begin:/\$[@%{const t=e.regex,i=t.concat(/[A-Z_]/,t.optional(/[A-Z0-9_.-]*:/),/[A-Z0-9_.-]*/),n={className:"symbol",begin:/&[a-z]+;|&#[0-9]+;|&#x[a-f0-9]+;/},r={begin:/\s/,contains:[{className:"keyword",begin:/#?[a-z_][a-z1-9_-]+/,illegal:/\n/}]},o=e.inherit(r,{begin:/\(/,end:/\)/}),s=e.inherit(e.APOS_STRING_MODE,{className:"string"}),a=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:[r,a,s,o,{begin:/\[/,end:/\]/,contains:[{className:"meta",begin://,contains:[r,o,a,s]}]}]},e.COMMENT(//,{relevance:10}),{begin://,relevance:10},n,{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:i,relevance:0,starts:l}]},{className:"tag",begin:t.concat(/<\//,t.lookahead(t.concat(i,/>/))),contains:[{className:"name",begin:i,relevance:0},{begin:/>/,relevance:0,endsParent:!0}]}]}},grmr_markdown:e=>{const t={begin:/<\/?[A-Za-z_]/,end:">",subLanguage:"xml",relevance:0},i={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}]},n={className:"strong",contains:[],variants:[{begin:/_{2}/,end:/_{2}/},{begin:/\*{2}/,end:/\*{2}/}]},r={className:"emphasis",contains:[],variants:[{begin:/\*(?!\*)/,end:/\*/},{begin:/_(?!_)/,end:/_/,relevance:0}]};n.contains.push(r),r.contains.push(n);let o=[t,i];return n.contains=n.contains.concat(o),r.contains=r.contains.concat(o),o=o.concat(n,r),{name:"Markdown",aliases:["md","mkdown","mkd"],contains:[{className:"section",variants:[{begin:"^#{1,6}",end:"$",contains:o},{begin:"(?=^.+?\\n[=-]{2,}$)",contains:[{begin:"^[=-]*$"},{begin:"^",end:"\\n",contains:o}]}]},t,{className:"bullet",begin:"^[ \t]*([*+-]|(\\d+\\.))(?=\\s+)",end:"\\s+",excludeEnd:!0},n,r,{className:"quote",begin:"^>\\s+",contains:o,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:"$"},i,{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_]*/,i={$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:"("+i.keyword.join("|")+")\\b",end:/(\{|$)/,excludeEnd:!0,keywords:i,contains:[e.UNDERSCORE_TITLE_MODE]},{begin:"\\."+e.UNDERSCORE_IDENT_RE,relevance:0}]}},grmr_perl:e=>{const t=e.regex,i=/[dualxmsipngr]{0,12}/,n={$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"},r={className:"subst",begin:"[$@]\\{",end:"\\}",keywords:n},o={begin:/->\{/,end:/\}/},s={variants:[{begin:/\$\d/},{begin:t.concat(/[$%@](\^\w\b|#\w+(::\w+)*|\{\w+\}|\w+(::\w*)*)/,"(?![A-Za-z])(?![@$%])")},{begin:/[$%@][^\s\w{]/,relevance:0}]},a=[e.BACKSLASH_ESCAPE,r,s],l=[/!/,/\//,/\|/,/\?/,/'/,/"/,/#/],c=(e,n,r="\\1")=>{const o="\\1"===r?r:t.concat(r,n);return t.concat(t.concat("(?:",e,")"),n,/(?:\\.|[^\\\/])*?/,o,/(?:\\.|[^\\\/])*?/,r,i)},O=(e,n,r)=>t.concat(t.concat("(?:",e,")"),n,/(?:\\.|[^\\\/])*?/,r,i),h=[s,e.HASH_COMMENT_MODE,e.COMMENT(/^=\w/,/=cut/,{endsWithParent:!0}),o,{className:"string",contains:a,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:O("(?:m|qr)?",/\//,/\//)},{begin:O("m|qr",t.either(...l,{capture:!0}),/\1/)},{begin:O("m|qr",/\(/,/\)/)},{begin:O("m|qr",/\[/,/\]/)},{begin:O("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 r.contains=h,o.contains=h,{name:"Perl",aliases:["pl","pm"],keywords:n,contains:h}},grmr_php:e=>{const t=e.regex,i="[a-zA-Z0-9_-ÿ]*(?![A-Za-z0-9])(?![$]))",n=t.concat("([a-zA-Z_\\x7f-\\xff]",i),r=t.concat("([A-Z]",i),o={scope:"variable",match:"\\$+"+n},s={scope:"subst",variants:[{begin:/\$\w+/},{begin:/\{\$/,end:/\}/}]},a=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(s)}),a,e.END_SAME_AS_BEGIN({begin:/<<<[ \t]*(\w+)\n/,end:/[ \t]*(\w+)\b/,contains:e.QUOTE_STRING_MODE.contains.concat(s)})]},O={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},h=["__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"],u=["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"],d={keyword:h,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:u},f=e=>e.map((e=>e.replace(/\|\d+$/,""))),p={variants:[{match:[/new/,t.concat(l,"+"),t.concat("(?!",f(u).join("\\b|"),"\\b)"),t.concat(/\\?/,n),t.concat(l,"*",/\(/)],scope:{1:"keyword",4:"title.class"}}]},g={relevance:0,match:[/\b/,t.concat("(?!fn\\b|function\\b|",f(h).join("\\b|"),"|",f(u).join("\\b|"),"\\b)"),n,t.concat(l,"*"),t.lookahead(/(?=\()/)],scope:{3:"title.function.invoke"}},m=t.concat(n,"\\b(?!\\()"),b={variants:[{match:[t.concat(/::/,t.lookahead(/(?!class\b)/)),m],scope:{2:"variable.constant"}},{match:[/::/,/class/],scope:{2:"variable.language"}},{match:[r,t.concat("::",t.lookahead(/(?!class\b)/))],scope:{1:"title.class"}},{match:[r,/::/,/class/],scope:{1:"title.class",3:"variable.language"}}]};return{case_insensitive:!1,keywords:d,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/},o,g,b,{match:[/const/,/\s/,n,/\s*=/],scope:{1:"keyword",3:"variable.constant"}},p,{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:d,contains:["self",o,b,e.C_BLOCK_COMMENT_MODE,c,O]}]},{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,O]}},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,i=/[\p{XID_Start}_]\p{XID_Continue}*/u,n=["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"],r={$pattern:/[A-Za-z]\w+|__\w+__/,keyword:n,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"]},o={className:"meta",begin:/^(>>>|\.\.\.) /},s={className:"subst",begin:/\{/,end:/\}/,keywords:r,illegal:/#/},a={begin:/\{\{/,relevance:0},l={className:"string",contains:[e.BACKSLASH_ESCAPE],variants:[{begin:/([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?'''/,end:/'''/,contains:[e.BACKSLASH_ESCAPE,o],relevance:10},{begin:/([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?"""/,end:/"""/,contains:[e.BACKSLASH_ESCAPE,o],relevance:10},{begin:/([fF][rR]|[rR][fF]|[fF])'''/,end:/'''/,contains:[e.BACKSLASH_ESCAPE,o,a,s]},{begin:/([fF][rR]|[rR][fF]|[fF])"""/,end:/"""/,contains:[e.BACKSLASH_ESCAPE,o,a,s]},{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,a,s]},{begin:/([fF][rR]|[rR][fF]|[fF])"/,end:/"/,contains:[e.BACKSLASH_ESCAPE,a,s]},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},c="[0-9](_?[0-9])*",O=`(\\b(${c}))?\\.(${c})|\\b(${c})\\.`,h="\\b|"+n.join("|"),u={className:"number",relevance:0,variants:[{begin:`(\\b(${c})|(${O}))[eE][+-]?(${c})[jJ]?(?=${h})`},{begin:`(${O})[jJ]?`},{begin:`\\b([1-9](_?[0-9])*|0+(_?0)*)[lLjJ]?(?=${h})`},{begin:`\\b0[bB](_?[01])+[lL]?(?=${h})`},{begin:`\\b0[oO](_?[0-7])+[lL]?(?=${h})`},{begin:`\\b0[xX](_?[0-9a-fA-F])+[lL]?(?=${h})`},{begin:`\\b(${c})[jJ](?=${h})`}]},d={className:"comment",begin:t.lookahead(/# type:/),end:/$/,keywords:r,contains:[{begin:/# type:/},{begin:/#/,end:/\b\B/,endsWithParent:!0}]},f={className:"params",variants:[{className:"",begin:/\(\s*\)/,skip:!0},{begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:r,contains:["self",o,u,l,e.HASH_COMMENT_MODE]}]};return s.contains=[l,u,o],{name:"Python",aliases:["py","gyp","ipython"],unicodeRegex:!0,keywords:r,illegal:/(<\/|->|\?)|=>/,contains:[o,u,{begin:/\bself\b/},{beginKeywords:"if",relevance:0},l,d,e.HASH_COMMENT_MODE,{match:[/\bdef/,/\s+/,i],scope:{1:"keyword",3:"title.function"},contains:[f]},{variants:[{match:[/\bclass/,/\s+/,i,/\s*/,/\(\s*/,i,/\s*\)/]},{match:[/\bclass/,/\s+/,i]}],scope:{1:"keyword",3:"title.class",6:"title.class.inherited"}},{className:"meta",begin:/^[\t ]*@/,end:/(?=#)|$/,contains:[u,f,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,i=/(?:(?:[a-zA-Z]|\.[._a-zA-Z])[._a-zA-Z0-9]*)|\.(?!\d)/,n=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]?/),r=/[=!<>:]=|\|\||&&|:::?|<-|<<-|->>|->|\|>|[-+*\/?!$&|:<=>@^~]|\*\*/,o=t.either(/[()]/,/[{}]/,/\[\[/,/[[\]]/,/\\/,/,/);return{name:"R",keywords:{$pattern:i,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:i},{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:[r,n]},{scope:{1:"operator",2:"number"},match:[/%[^%]*%/,n]},{scope:{1:"punctuation",2:"number"},match:[o,n]},{scope:{2:"number"},match:[/[^a-zA-Z0-9._]|^/,n]}]},{scope:{3:"operator"},match:[i,/\s+/,/<-/,/\s+/]},{scope:"operator",relevance:0,variants:[{match:r},{match:/%[^%]*%/}]},{scope:"punctuation",relevance:0,match:o},{begin:"`",end:"`",contains:[{begin:/\\./}]}]}},grmr_ruby:e=>{const t=e.regex,i="([a-zA-Z_]\\w*[!?=]?|[-+~]@|<<|>>|=~|===?|<=>|[<>]=?|\\*\\*|[-/+%^&*~`|]|\\[\\]=?)",n={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"},r={className:"doctag",begin:"@[A-Za-z]+"},o={begin:"#<",end:">"},s=[e.COMMENT("#","$",{contains:[r]}),e.COMMENT("^=begin","^=end",{contains:[r],relevance:10}),e.COMMENT("^__END__","\\n$")],a={className:"subst",begin:/#\{/,end:/\}/,keywords:n},l={className:"string",contains:[e.BACKSLASH_ESCAPE,a],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,a]})]}]},c="[0-9](_?[0-9])*",O={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"}]},h={className:"params",begin:"\\(",end:"\\)",endsParent:!0,keywords:n},u=[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(s)},{className:"function",begin:t.concat(/def\s+/,t.lookahead(i+"\\s*(\\(|;|$)")),relevance:0,keywords:"def",end:"$|;",contains:[e.inherit(e.TITLE_MODE,{begin:i}),h].concat(s)},{begin:e.IDENT_RE+"::"},{className:"symbol",begin:e.UNDERSCORE_IDENT_RE+"(!|\\?)?:",relevance:0},{className:"symbol",begin:":(?!\\s)",contains:[l,{begin:i}],relevance:0},O,{className:"variable",begin:"(\\$\\W)|((\\$|@@?)(\\w+))(?=[^@$?])(?![A-Za-z])(?![@$?'])"},{className:"params",begin:/\|/,end:/\|/,relevance:0,keywords:n},{begin:"("+e.RE_STARTERS_RE+"|unless)\\s*",keywords:"unless",contains:[{className:"regexp",contains:[e.BACKSLASH_ESCAPE,a],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(o,s),relevance:0}].concat(o,s);a.contains=u,h.contains=u;const d=[{begin:/^\s*=>/,starts:{end:"$",contains:u}},{className:"meta",begin:"^([>?]>|[\\w#]+\\(\\w+\\):\\d+:\\d+>|(\\w+-)?\\d+\\.\\d+\\.\\d+(p\\d+)?[^\\d][^>]+>)(?=[ ])",starts:{end:"$",contains:u}}];return s.unshift(o),{name:"Ruby",aliases:["rb","gemspec","podspec","thor","irb"],keywords:n,illegal:/\/\*/,contains:[e.SHEBANG({binary:"ruby"})].concat(d).concat(s).concat(u)}},grmr_rust:e=>{const t=e.regex,i={className:"title.function.invoke",relevance:0,begin:t.concat(/\b/,/(?!let\b)/,e.IDENT_RE,t.lookahead(/\s*\(/))},n="([ui](8|16|32|64|128|size)|f(32|64))?",r=["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:r},illegal:""},i]}},grmr_scss:e=>{const t=JT(e),i=nR,n=iR,r="@[a-z-]+",o={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("+eR.join("|")+")\\b",relevance:0},{className:"selector-pseudo",begin:":("+n.join("|")+")"},{className:"selector-pseudo",begin:":(:)?("+i.join("|")+")"},o,{begin:/\(/,end:/\)/,contains:[t.CSS_NUMBER_MODE]},t.CSS_VARIABLE,{className:"attribute",begin:"\\b("+rR.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,o,t.HEXCOLOR,t.CSS_NUMBER_MODE,e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,t.IMPORTANT]},{begin:"@(page|font-face)",keywords:{$pattern:r,keyword:"@page @font-face"}},{begin:"@",end:"[{;]",returnBegin:!0,keywords:{$pattern:/[a-z-]+/,keyword:"and or not only",attribute:tR.join(" ")},contains:[{begin:r,className:"keyword"},{begin:/[a-z-]+(?=:)/,className:"attribute"},o,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,i=e.COMMENT("--","$"),n=["true","false","unknown"],r=["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"],o=["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"],s=["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"],a=o,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=>!o.includes(e))),c={begin:t.concat(/\b/,t.either(...a),/\s*\(/),relevance:0,keywords:{built_in:a}};return{name:"SQL",case_insensitive:!0,illegal:/[{}]|<\//,keywords:{$pattern:/\b[\w\.]+/,keyword:((e,{exceptions:t,when:i}={})=>{const n=i;return t=t||[],e.map((e=>e.match(/\|\d+$/)||t.includes(e)?e:n(e)?e+"|0":e))})(l,{when:e=>e.length<3}),literal:n,type:r,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(...s),relevance:0,keywords:{$pattern:/[\w\.]+/,keyword:l.concat(s),literal:n,type:r}},{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,i,{className:"operator",begin:/[-+*/=%^~]|&&?|\|\|?|!=?|<(?:=>?|<|>)?|>[>=]?/,relevance:0}]}},grmr_swift:e=>{const t={match:/\s+/,relevance:0},i=e.COMMENT("/\\*","\\*/",{contains:["self"]}),n=[e.C_LINE_COMMENT_MODE,i],r={match:[/\./,gT(...bR,...$R)],className:{2:"keyword"}},o={match:pT(/\./,gT(...vR)),relevance:0},s=vR.filter((e=>"string"==typeof e)).concat(["_|0"]),a={variants:[{className:"keyword",match:gT(...vR.filter((e=>"string"!=typeof e)).concat(QR).map(mR),...$R)}]},l={$pattern:gT(/\b\w+/,/#\w+/),keyword:s.concat(_R),literal:yR},c=[r,o,a],O=[{match:pT(/\./,gT(...SR)),relevance:0},{className:"built_in",match:pT(/\b/,gT(...SR),/(?=\()/)}],h={match:/->/,relevance:0},u=[h,{className:"operator",relevance:0,variants:[{match:PR},{match:`\\.(\\.|${XR})+`}]}],d="([0-9a-fA-F]_*)+",f={className:"number",relevance:0,variants:[{match:"\\b(([0-9]_*)+)(\\.(([0-9]_*)+))?([eE][+-]?(([0-9]_*)+))?\\b"},{match:`\\b0x(${d})(\\.(${d}))?([pP][+-]?(([0-9]_*)+))?\\b`},{match:/\b0o([0-7]_*)+\b/},{match:/\b0b([01]_*)+\b/}]},p=(e="")=>({className:"subst",variants:[{match:pT(/\\/,e,/[0\\tnr"']/)},{match:pT(/\\/,e,/u\{[0-9a-fA-F]{1,8}\}/)}]}),g=(e="")=>({className:"subst",match:pT(/\\/,e,/[\t ]*(?:[\r\n]|\r\n)/)}),m=(e="")=>({className:"subst",label:"interpol",begin:pT(/\\/,e,/\(/),end:/\)/}),b=(e="")=>({begin:pT(e,/"""/),end:pT(/"""/,e),contains:[p(e),g(e),m(e)]}),$=(e="")=>({begin:pT(e,/"/),end:pT(/"/,e),contains:[p(e),m(e)]}),Q={className:"string",variants:[b(),b("#"),b("##"),b("###"),$(),$("#"),$("##"),$("###")]},v={match:pT(/`/,RR,/`/)},y=[v,{className:"variable",match:/\$\d+/},{className:"variable",match:`\\$${TR}+`}],w=[{match:/(@|#(un)?)available/,className:"keyword",starts:{contains:[{begin:/\(/,end:/\)/,keywords:VR,contains:[...u,f,Q]}]}},{className:"keyword",match:pT(/@/,gT(...AR))},{className:"meta",match:pT(/@/,RR)}],_={match:uT(/\b[A-Z]/),relevance:0,contains:[{className:"type",match:pT(/(AV|CA|CF|CG|CI|CL|CM|CN|CT|MK|MP|MTK|MTL|NS|SCN|SK|UI|WK|XC)/,TR,"+")},{className:"type",match:YR,relevance:0},{match:/[?!]+/,relevance:0},{match:/\.\.\./,relevance:0},{match:pT(/\s+&\s+/,uT(YR)),relevance:0}]},S={begin://,keywords:l,contains:[...n,...c,...w,h,_]};_.contains.push(S);const x={begin:/\(/,end:/\)/,relevance:0,keywords:l,contains:["self",{match:pT(RR,/\s*:/),keywords:"_|0",relevance:0},...n,...c,...O,...u,f,Q,...y,...w,_]},X={begin://,contains:[...n,_]},P={begin:/\(/,end:/\)/,keywords:l,contains:[{begin:gT(uT(pT(RR,/\s*:/)),uT(pT(RR,/\s+/,RR,/\s*:/))),end:/:/,relevance:0,contains:[{className:"keyword",match:/\b_\b/},{className:"params",match:RR}]},...n,...c,...u,f,Q,...w,_,x],endsParent:!0,illegal:/["']/},k={match:[/func/,/\s+/,gT(v.match,RR,PR)],className:{1:"keyword",3:"title.function"},contains:[X,P,t],illegal:[/\[/,/%/]},T={match:[/\b(?:subscript|init[?!]?)/,/\s*(?=[<(])/],className:{1:"keyword"},contains:[X,P,t],illegal:/\[|%/},R={match:[/operator/,/\s+/,PR],className:{1:"keyword",3:"title"}},Y={begin:[/precedencegroup/,/\s+/,YR],className:{1:"keyword",3:"title"},contains:[_],keywords:[...wR,...yR],end:/}/};for(const e of Q.variants){const t=e.contains.find((e=>"interpol"===e.label));t.keywords=l;const i=[...c,...O,...u,f,Q,...y];t.contains=[...i,{begin:/\(/,end:/\)/,contains:["self",...i]}]}return{name:"Swift",keywords:l,contains:[...n,k,T,{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]},R,Y,{beginKeywords:"import",end:/$/,contains:[...n],relevance:0},...c,...O,...u,f,Q,...y,...w,_,x]}},grmr_typescript:e=>{const t=gR(e),i=["any","void","number","boolean","string","object","never","enum"],n={beginKeywords:"namespace",end:/\{/,excludeEnd:!0,contains:[t.exports.CLASS_REFERENCE]},r={beginKeywords:"interface",end:/\{/,excludeEnd:!0,keywords:{keyword:"interface extends",built_in:i},contains:[t.exports.CLASS_REFERENCE]},o={$pattern:lR,keyword:cR.concat(["type","namespace","typedef","interface","public","private","protected","implements","declare","abstract","readonly"]),literal:OR,built_in:pR.concat(i),"variable.language":fR},s={className:"meta",begin:"@[A-Za-z$_][0-9A-Za-z$_]*"},a=(e,t,i)=>{const n=e.contains.findIndex((e=>e.label===t));if(-1===n)throw Error("can not find mode to replace");e.contains.splice(n,1,i)};return Object.assign(t.keywords,o),t.exports.PARAMS_CONTAINS.push(s),t.contains=t.contains.concat([s,n,r]),a(t,"shebang",e.SHEBANG()),a(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,i=/\d{1,2}\/\d{1,2}\/\d{4}/,n=/\d{4}-\d{1,2}-\d{1,2}/,r=/(\d|1[012])(:\d+){0,2} *(AM|PM)/,o=/\d{1,2}(:\d{1,2}){1,2}/,s={className:"literal",variants:[{begin:t.concat(/# */,t.either(n,i),/ *#/)},{begin:t.concat(/# */,o,/ *#/)},{begin:t.concat(/# */,r,/ *#/)},{begin:t.concat(/# */,t.either(n,i),/ +/,t.either(r,o),/ *#/)}]},a=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:/""/}]},s,{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+:/},a,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",i="[\\w#;/?:@&=+$,.~*'()[\\]]+",n={className:"string",relevance:0,variants:[{begin:/'/,end:/'/},{begin:/"/,end:/"/},{begin:/\S+/}],contains:[e.BACKSLASH_ESCAPE,{className:"template-variable",variants:[{begin:/\{\{/,end:/\}\}/},{begin:/%\{/,end:/\}/}]}]},r=e.inherit(n,{variants:[{begin:/'/,end:/'/},{begin:/"/,end:/"/},{begin:/[^\s,{}[\]]+/}]}),o={end:",",endsWithParent:!0,excludeEnd:!0,keywords:t,relevance:0},s={begin:/\{/,end:/\}/,contains:[o],illegal:"\\n",relevance:0},a={begin:"\\[",end:"\\]",contains:[o],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+!"+i},{className:"type",begin:"!<"+i+">"},{className:"type",begin:"!"+i},{className:"type",begin:"!!"+i},{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},s,a,n],c=[...l];return c.pop(),c.push(r),o.contains=c,{name:"YAML",case_insensitive:!0,aliases:["yml"],contains:l}}});const ER=HT;for(const e of Object.keys(ZR)){const t=e.replace("grmr_","").replace("_","-");ER.registerLanguage(t,ZR[e])} +/*! `julia` grammar compiled for Highlight.js 11.4.0 */var CR=e=>{var t="[A-Za-z_\\u00A1-\\uFFFF][A-Za-z_0-9\\u00A1-\\uFFFF]*",i={$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"]},n={keywords:i,illegal:/<\//},r={className:"subst",begin:/\$\(/,end:/\)/,keywords:i},o={className:"variable",begin:"\\$"+t},s={className:"string",contains:[e.BACKSLASH_ESCAPE,r,o],variants:[{begin:/\w*"""/,end:/"""\w*/,relevance:10},{begin:/\w*"/,end:/"\w*/}]},a={className:"string",contains:[e.BACKSLASH_ESCAPE,r,o],begin:"`",end:"`"},l={className:"meta",begin:"@"+t};return n.name="Julia",n.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]+)'/},s,a,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:/<:/}],r.contains=n.contains,n},NR=CR,qR=e=>({name:"Julia REPL",contains:[{className:"meta",begin:/^julia>/,relevance:10,starts:{end:/^(?![ ]{6})/,subLanguage:"julia"}}],aliases:["jldoctest"]});ER.registerLanguage("julia",NR),ER.registerLanguage("julia-repl",qR),window.hljs=ER;var UR=ER;const WR=({process_waiting_for_permission:e,risky_file_source:t,restart:i,warn_about_untrusted_code:n})=>_e` +
+ ${e?_e`
+
+ Safe preview + + +
+
`:null} + `,jR=()=>_e`
+ ${"Code not executed in "}Safe preview +
`;class MR extends _{constructor(){super(),this.state={},this.old_height=0,this.resize_observer=new ResizeObserver((e=>{const t=this.base.offsetHeight;if(document.body.querySelector("pluto-cell:focus-within")){var i;const e=document.body.querySelectorAll("pluto-cell:focus-within ~ pluto-cell > pluto-output");"SUMMARY"===(null===(i=document.activeElement)||void 0===i?void 0:i.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}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 _e` + + ${i=this.props.rootassignee,i&&i.startsWith("const ")?_e`const ${i.slice(6)}`:i} + <${zR} ...${this.props} /> + + `;var i}}let DR=({body:e,mime:t})=>{let i=le();return ae((()=>{let n=URL.createObjectURL(new Blob([e],{type:t}));return i.current.onload=i.current.onerror=()=>{i.current&&(i.current.style.display=null)},""===i.current.src&&(i.current.style.display="none"),i.current.type=t,i.current.src=n,()=>URL.revokeObjectURL(n)}),[e,t]),_e``};const zR=({mime:e,body:t,cell_id:i,persist_js_state:n=!1,last_run_timestamp:r,sanitize_html:o=!0})=>{switch(o="false"!==o&&!1!==o,n="true"===n||!0===n,e){case"image/png":case"image/jpg":case"image/jpeg":case"image/gif":case"image/bmp":case"image/svg+xml":return _e`
<${DR} mime=${e} body=${t} />
`;case"text/html":return t.startsWith("`:_e`<${JR} + cell_id=${i} + body=${t} + persist_js_state=${n} + last_run_timestamp=${r} + sanitize_html=${o} + />`;case"application/vnd.pluto.tree+object":return _e`
+ <${Nk} cell_id=${i} body=${t} persist_js_state=${n} sanitize_html=${o} /> +
`;case"application/vnd.pluto.table+object":return _e`<${Wk} cell_id=${i} body=${t} persist_js_state=${n} sanitize_html=${o} />`;case"application/vnd.pluto.parseerror+object":return _e`
<${Rk} cell_id=${i} ...${t} />
`;case"application/vnd.pluto.stacktrace+object":return _e`
<${Yk} cell_id=${i} ...${t} />
`;case"application/vnd.pluto.divelement+object":return(({cell_id:e,style:t,classname:i,children:n,persist_js_state:r=!1,sanitize_html:o=!0})=>_e`
${n.map((t=>_e`<${Vk} cell_id=${e} mime=${t[1]} body=${t[0]} persist_js_state=${r} sanitize_html=${o} />`))}
`)({cell_id:i,...t,persist_js_state:n,sanitize_html:o});case"text/plain":return t?_e`
+
${t}
+
`:_e`
`;case null:case void 0:case"":return _e``;default:return _e`
🛑
`}};!function(e,t,i,n){function r(){const t=Reflect.construct(HTMLElement,[],r);return t._vdomComponent=e,t._root=n&&n.shadow?t.attachShadow({mode:"open"}):t,t}r.prototype=Object.create(HTMLElement.prototype),r.prototype.constructor=r,r.prototype.connectedCallback=Lk,r.prototype.attributeChangedCallback=Fk,r.prototype.disconnectedCallback=Hk,i=i||e.observedAttributes||Object.keys(e.propTypes||{}),r.observedAttributes=i,i.forEach((e=>{Object.defineProperty(r.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,r)}(zR,"pluto-display",["mime","body","cell_id","persist_js_state","last_run_timestamp","sanitize_html"]);let BR=({body:e})=>{let t=le();return ae((()=>{let i=URL.createObjectURL(new Blob([e],{type:"text/html"}));return t.current.src=i,FR((async()=>{await new Promise((e=>t.current.addEventListener("load",(()=>e(null)))));let e=t.current.contentWindow.document,i=document.querySelector("#iframe-resizer-content-window-script"),n=e.createElement("script");n.src=i.src,n.crossOrigin="anonymous",e.head.appendChild(n),new Promise((e=>n.addEventListener("load",(()=>e(null))))),window.iFrameResize({checkOrigin:!1},t.current)})),()=>URL.revokeObjectURL(i)}),[e]),_e``},GR=async({environment:e,code:t})=>{const i=`"use strict"; return (async () => {${t}})()`;let{this:n,...r}=e,o=Object.keys(r),s=Object.values(r);return await Function(...o,i).bind(n)(...s)},IR=0,LR=async(e,t)=>{let i=document.createElement("script");for(let t of e.attributes)i.attributes.setNamedItem(t.cloneNode(!0));const n=`____FUNCTION_TO_RUN_INSIDE_SCRIPT_${IR}`;i.textContent=`{\n window.${n}.result = window.${n}.function_to_run(window.${n}.currentScript)\n }`,window[n]={function_to_run:t,currentScript:i,result:null};const r=e.parentNode;if(null==r)throw"Failed to execute script it has no parent in DOM.";r.replaceChild(i,e);let o=await window[n].result;return window[n]={function_to_run:t,result:null},{node:i,result:o}};const KR=e=>e instanceof Element&&e.nodeType===Node.ELEMENT_NODE;let FR=e=>e(),HR=e=>{try{const t=e.getAttribute("shadowroot"),i=e.parentElement.attachShadow({mode:t});i.appendChild(e.content),e.remove();return Array.from(i.querySelectorAll("script, template[shadowroot]")).flatMap((e=>"SCRIPT"===e.nodeName?[e]:"TEMPLATE"===e.nodeName?HR(e):void 0))}catch(t){return console.error("Couldn't attach declarative shadow dom to",e,"because of",t),[]}},JR=({body:e,className:t="",persist_js_state:i=!1,last_run_timestamp:n,sanitize_html:r=!0,sanitize_html_message:o=!0})=>{let s=he(J_),a=he(eS),l=he(tS),c=le(new Map),O=le((()=>{})),h=le(null);return ae((()=>{h.current&&a&&zk(h.current.querySelectorAll("bond"),a)}),[e,i,s,a,r]),ae((()=>{const t=h.current;if(null==t)return;let n=new Promise((e=>{O.current=()=>{e(null)}}));document.createElement("p-dumpster").append(...t.childNodes);let u=r?ix.sanitize(e,{FORBID_TAGS:["style"],ADD_ATTR:["target"]}):e;if(t.innerHTML=u,o&&u!==e){const i=new DOMParser,n=i.parseFromString(e,"text/html");if(i.parseFromString(u,"text/html").documentElement.innerHTML!==n.documentElement.innerHTML){console.info("HTML sanitized",{body:e,html_content_to_set:u});let i=document.createElement("div");i.innerHTML='
\nScripts and styles not rendered in Safe preview\n
',t.prepend(i)}}if(r)return;const d=[...Array.from(t.querySelectorAll("template[shadowroot]")).flatMap((e=>HR(e))),...Array.from(t.querySelectorAll("script"))];return FR((async()=>{try{var e;if(null==l||l.add(t),c.current=await(async({root_node:e,script_nodes:t,previous_results_map:i,invalidation:n,pluto_actions:r})=>{let o=new Map;for(let e of t)if(null!=e.src&&""!==e.src);else{let t=e.id,n=t?i.get(t):null;KR(n)&&(null===(a=e.parentElement)||void 0===a||a.insertBefore(n,e))}for(let l of t){if(IR+=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,O=c?i.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.42556901.js b/frontend-dist/firebase-app.42556901.js new file mode 100644 index 0000000000..24e12ac5f5 --- /dev/null +++ b/frontend-dist/firebase-app.42556901.js @@ -0,0 +1,213 @@ +(()=>{function e(e,t,n,i){Object.defineProperty(e,t,{get:n,set:i,enumerable:!0,configurable:!0})}("undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{}).parcelRequire94c2.register("dN8oq",(function(t,n){e(t.exports,"FirebaseError",(()=>r)),e(t.exports,"_DEFAULT_ENTRY_NAME",(()=>O)),e(t.exports,"_apps",(()=>C)),e(t.exports,"_components",(()=>D)),e(t.exports,"_addComponent",(()=>A)),e(t.exports,"_addOrOverwriteComponent",(()=>N)),e(t.exports,"_registerComponent",(()=>R)),e(t.exports,"_getProvider",(()=>S)),e(t.exports,"_removeServiceInstance",(()=>$)),e(t.exports,"_clearComponents",(()=>j)),e(t.exports,"SDK_VERSION",(()=>k)),e(t.exports,"initializeApp",(()=>z)),e(t.exports,"getApp",(()=>T)),e(t.exports,"getApps",(()=>P)),e(t.exports,"deleteApp",(()=>x)),e(t.exports,"registerVersion",(()=>M)),e(t.exports,"onLog",(()=>U)),e(t.exports,"setLogLevel",(()=>B)); +/** + * @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. + */ +class i{constructor(){this.reject=()=>{},this.resolve=()=>{},this.promise=new Promise(((e,t)=>{this.resolve=e,this.reject=t}))}wrapCallback(e){return(t,n)=>{t?this.reject(t):this.resolve(n),"function"==typeof e&&(this.promise.catch((()=>{})),1===e.length?e(t):e(t,n))}}} +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */class r extends Error{constructor(e,t,n){super(t),this.code=e,this.customData=n,this.name="FirebaseError",Object.setPrototypeOf(this,r.prototype),Error.captureStackTrace&&Error.captureStackTrace(this,s.prototype.create)}}class s{constructor(e,t,n){this.service=e,this.serviceName=t,this.errors=n}create(e,...t){const n=t[0]||{},i=`${this.service}/${e}`,s=this.errors[e],a=s?function(e,t){return e.replace(o,((e,n)=>{const i=t[n];return null!=i?String(i):`<${n}?>`}))}(s,n):"Error",c=`${this.serviceName}: ${a} (${i}).`;return new r(i,c,n)}}const o=/\{\$([^}]+)}/g;function a(e,t){if(e===t)return!0;const n=Object.keys(e),i=Object.keys(t);for(const r of n){if(!i.includes(r))return!1;const n=e[r],s=t[r];if(c(n)&&c(s)){if(!a(n,s))return!1}else if(n!==s)return!1}for(const e of i)if(!n.includes(e))return!1;return!0}function c(e){return null!==e&&"object"==typeof e}class l{constructor(e,t,n){this.name=e,this.instanceFactory=t,this.type=n,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 p="[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 h{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 i;if(this.instancesDeferred.set(t,e),this.isInitialized(t)||this.shouldAutoInitialize())try{const n=this.getOrInitializeService({instanceIdentifier:t});n&&e.resolve(n)}catch(e){}}return this.instancesDeferred.get(t).promise}getImmediate(e){var t;const n=this.normalizeInstanceIdentifier(null==e?void 0:e.identifier),i=null!==(t=null==e?void 0:e.optional)&&void 0!==t&&t;if(!this.isInitialized(n)&&!this.shouldAutoInitialize()){if(i)return null;throw Error(`Service ${this.name} is not available`)}try{return this.getOrInitializeService({instanceIdentifier:n})}catch(e){if(i)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:p})}catch(e){}for(const[e,t]of this.instancesDeferred.entries()){const n=this.normalizeInstanceIdentifier(e);try{const e=this.getOrInitializeService({instanceIdentifier:n});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,n=this.normalizeInstanceIdentifier(e.instanceIdentifier);if(this.isInitialized(n))throw Error(`${this.name}(${n}) has already been initialized`);if(!this.isComponentSet())throw Error(`Component ${this.name} has not been registered yet`);const i=this.getOrInitializeService({instanceIdentifier:n,options:t});for(const[e,t]of this.instancesDeferred.entries()){n===this.normalizeInstanceIdentifier(e)&&t.resolve(i)}return i}onInit(e,t){var n;const i=this.normalizeInstanceIdentifier(t),r=null!==(n=this.onInitCallbacks.get(i))&&void 0!==n?n:new Set;r.add(e),this.onInitCallbacks.set(i,r);const s=this.instances.get(i);return s&&e(s,i),()=>{r.delete(e)}}invokeOnInitCallbacks(e,t){const n=this.onInitCallbacks.get(t);if(n)for(const i of n)try{i(e,t)}catch(e){}}getOrInitializeService({instanceIdentifier:e,options:t={}}){let n=this.instances.get(e);if(!n&&this.component&&(n=this.component.instanceFactory(this.container,{instanceIdentifier:(i=e,i===p?void 0:i),options:t}),this.instances.set(e,n),this.instancesOptions.set(e,t),this.invokeOnInitCallbacks(n,e),this.component.onInstanceCreated))try{this.component.onInstanceCreated(this.container,e,n)}catch(e){}var i;return n||null}normalizeInstanceIdentifier(e="[DEFAULT]"){return this.component?this.component.multipleInstances?e:p:e}shouldAutoInitialize(){return!!this.component&&"EXPLICIT"!==this.component.instantiationMode}}class f{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 h(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 u,m;(m=u||(u={}))[m.DEBUG=0]="DEBUG",m[m.VERBOSE=1]="VERBOSE",m[m.INFO=2]="INFO",m[m.WARN=3]="WARN",m[m.ERROR=4]="ERROR",m[m.SILENT=5]="SILENT";const g={debug:u.DEBUG,verbose:u.VERBOSE,info:u.INFO,warn:u.WARN,error:u.ERROR,silent:u.SILENT},b=u.INFO,v={[u.DEBUG]:"log",[u.VERBOSE]:"log",[u.INFO]:"info",[u.WARN]:"warn",[u.ERROR]:"error"},I=(e,t,...n)=>{if(t{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 E="https://www.gstatic.com/firebasejs/9.3.0/firebase-app.js",y="0.7.6",_=new class{constructor(e){this.name=e,this._logLevel=b,this._logHandler=I,this._userLogHandler=null,d.push(this)}get logLevel(){return this._logLevel}set logLevel(e){if(!(e in u))throw new TypeError(`Invalid value "${e}" assigned to \`logLevel\``);this._logLevel=e}setLogLevel(e){this._logLevel="string"==typeof e?g[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,u.DEBUG,...e),this._logHandler(this,u.DEBUG,...e)}log(...e){this._userLogHandler&&this._userLogHandler(this,u.VERBOSE,...e),this._logHandler(this,u.VERBOSE,...e)}info(...e){this._userLogHandler&&this._userLogHandler(this,u.INFO,...e),this._logHandler(this,u.INFO,...e)}warn(...e){this._userLogHandler&&this._userLogHandler(this,u.WARN,...e),this._logHandler(this,u.WARN,...e)}error(...e){this._userLogHandler&&this._userLogHandler(this,u.ERROR,...e),this._logHandler(this,u.ERROR,...e)}}("https://www.gstatic.com/firebasejs/9.3.0/firebase-app.js"),O="[DEFAULT]",L={[E]:"fire-core","https://www.gstatic.com/firebasejs/9.3.0/firebase-app.js-compat":"fire-core-compat","@firebase/analytics":"fire-analytics","@firebase/analytics-compat":"fire-analytics-compat","https://www.gstatic.com/firebasejs/9.3.0/firebase-app.js-check":"fire-app-check","https://www.gstatic.com/firebasejs/9.3.0/firebase-app.js-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"},C=new Map,D=new Map;function A(e,t){try{e.container.addComponent(t)}catch(n){_.debug(`Component ${t.name} failed to register with FirebaseApp ${e.name}`,n)}}function N(e,t){e.container.addOrOverwriteComponent(t)}function R(e){const t=e.name;if(D.has(t))return _.debug(`There were multiple attempts to register component ${t}.`),!1;D.set(t,e);for(const t of C.values())A(t,e);return!0}function S(e,t){return e.container.getProvider(t)}function $(e,t,n=O){S(e,t).clearInstance(n)}function j(){D.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 H=new s("app","Firebase",{"no-app":"No Firebase App '{$appName}' has been created - call Firebase App.initializeApp()","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","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."}); +/** + * @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 F{constructor(e,t,n){this._isDeleted=!1,this._options=Object.assign({},e),this._config=Object.assign({},t),this._name=t.name,this._automaticDataCollectionEnabled=t.automaticDataCollectionEnabled,this._container=n,this.container.addComponent(new l("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 H.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 k="9.3.0";function z(e,t={}){if("object"!=typeof t){t={name:t}}const n=Object.assign({name:O,automaticDataCollectionEnabled:!1},t),i=n.name;if("string"!=typeof i||!i)throw H.create("bad-app-name",{appName:String(i)});const r=C.get(i);if(r){if(a(e,r.options)&&a(n,r.config))return r;throw H.create("duplicate-app",{appName:i})}const s=new f(i);for(const e of D.values())s.addComponent(e);const o=new F(e,n,s);return C.set(i,o),o}function T(e=O){const t=C.get(e);if(!t)throw H.create("no-app",{appName:e});return t}function P(){return Array.from(C.values())}async function x(e){const t=e.name;C.has(t)&&(C.delete(t),await Promise.all(e.container.getProviders().map((e=>e.delete()))),e.isDeleted=!0)}function M(e,t,n){var i;let r=null!==(i=L[e])&&void 0!==i?i:e;n&&(r+=`-${n}`);const s=r.match(/\s|\//),o=t.match(/\s|\//);if(s||o){const e=[`Unable to register library "${r}" with version "${t}":`];return s&&e.push(`library name "${r}" contains illegal characters (whitespace or "/")`),s&&o&&e.push("and"),o&&e.push(`version name "${t}" contains illegal characters (whitespace or "/")`),void _.warn(e.join(" "))}R(new l(`${r}-version`,(()=>({library:r,version:t})),"VERSION"))}function U(e,t){if(null!==e&&"function"!=typeof e)throw H.create("invalid-log-argument");!function(e,t){for(const n of d){let i=null;t&&t.level&&(i=g[t.level]),n.userLogHandler=null===e?null:(t,n,...r)=>{const s=r.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(" ");n>=(null!=i?i:t.logLevel)&&e({level:u[n].toLowerCase(),message:s,args:r,type:t.name})}}}(e,t)}function B(e){var t;t=e,d.forEach((e=>{e.setLogLevel(t)}))} +/** + * @license + * Copyright 2019 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */var V;V="",R(new l("platform-logger",(e=>new w(e)),"PRIVATE")),M(E,y,V),M(E,y,"esm2017"),M("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. + */ +M("firebase","9.3.0","cdn")}))})(); \ No newline at end of file diff --git a/frontend-dist/firebase-app.bead1f66.js b/frontend-dist/firebase-app.bead1f66.js new file mode 100644 index 0000000000..81f08f63da --- /dev/null +++ b/frontend-dist/firebase-app.bead1f66.js @@ -0,0 +1,213 @@ +function e(e,t,n,i){Object.defineProperty(e,t,{get:n,set:i,enumerable:!0,configurable:!0})}("undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{}).parcelRequire94c2.register("aFiVA",(function(t,n){e(t.exports,"FirebaseError",(()=>r)),e(t.exports,"_DEFAULT_ENTRY_NAME",(()=>O)),e(t.exports,"_apps",(()=>C)),e(t.exports,"_components",(()=>D)),e(t.exports,"_addComponent",(()=>A)),e(t.exports,"_addOrOverwriteComponent",(()=>R)),e(t.exports,"_registerComponent",(()=>N)),e(t.exports,"_getProvider",(()=>S)),e(t.exports,"_removeServiceInstance",(()=>$)),e(t.exports,"_clearComponents",(()=>j)),e(t.exports,"SDK_VERSION",(()=>k)),e(t.exports,"initializeApp",(()=>z)),e(t.exports,"getApp",(()=>T)),e(t.exports,"getApps",(()=>P)),e(t.exports,"deleteApp",(()=>x)),e(t.exports,"registerVersion",(()=>M)),e(t.exports,"onLog",(()=>U)),e(t.exports,"setLogLevel",(()=>B)); +/** + * @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. + */ +class i{constructor(){this.reject=()=>{},this.resolve=()=>{},this.promise=new Promise(((e,t)=>{this.resolve=e,this.reject=t}))}wrapCallback(e){return(t,n)=>{t?this.reject(t):this.resolve(n),"function"==typeof e&&(this.promise.catch((()=>{})),1===e.length?e(t):e(t,n))}}} +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */class r extends Error{constructor(e,t,n){super(t),this.code=e,this.customData=n,this.name="FirebaseError",Object.setPrototypeOf(this,r.prototype),Error.captureStackTrace&&Error.captureStackTrace(this,s.prototype.create)}}class s{constructor(e,t,n){this.service=e,this.serviceName=t,this.errors=n}create(e,...t){const n=t[0]||{},i=`${this.service}/${e}`,s=this.errors[e],a=s?function(e,t){return e.replace(o,((e,n)=>{const i=t[n];return null!=i?String(i):`<${n}?>`}))}(s,n):"Error",c=`${this.serviceName}: ${a} (${i}).`;return new r(i,c,n)}}const o=/\{\$([^}]+)}/g;function a(e,t){if(e===t)return!0;const n=Object.keys(e),i=Object.keys(t);for(const r of n){if(!i.includes(r))return!1;const n=e[r],s=t[r];if(c(n)&&c(s)){if(!a(n,s))return!1}else if(n!==s)return!1}for(const e of i)if(!n.includes(e))return!1;return!0}function c(e){return null!==e&&"object"==typeof e}class l{constructor(e,t,n){this.name=e,this.instanceFactory=t,this.type=n,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 p="[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 h{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 i;if(this.instancesDeferred.set(t,e),this.isInitialized(t)||this.shouldAutoInitialize())try{const n=this.getOrInitializeService({instanceIdentifier:t});n&&e.resolve(n)}catch(e){}}return this.instancesDeferred.get(t).promise}getImmediate(e){var t;const n=this.normalizeInstanceIdentifier(null==e?void 0:e.identifier),i=null!==(t=null==e?void 0:e.optional)&&void 0!==t&&t;if(!this.isInitialized(n)&&!this.shouldAutoInitialize()){if(i)return null;throw Error(`Service ${this.name} is not available`)}try{return this.getOrInitializeService({instanceIdentifier:n})}catch(e){if(i)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:p})}catch(e){}for(const[e,t]of this.instancesDeferred.entries()){const n=this.normalizeInstanceIdentifier(e);try{const e=this.getOrInitializeService({instanceIdentifier:n});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,n=this.normalizeInstanceIdentifier(e.instanceIdentifier);if(this.isInitialized(n))throw Error(`${this.name}(${n}) has already been initialized`);if(!this.isComponentSet())throw Error(`Component ${this.name} has not been registered yet`);const i=this.getOrInitializeService({instanceIdentifier:n,options:t});for(const[e,t]of this.instancesDeferred.entries()){n===this.normalizeInstanceIdentifier(e)&&t.resolve(i)}return i}onInit(e,t){var n;const i=this.normalizeInstanceIdentifier(t),r=null!==(n=this.onInitCallbacks.get(i))&&void 0!==n?n:new Set;r.add(e),this.onInitCallbacks.set(i,r);const s=this.instances.get(i);return s&&e(s,i),()=>{r.delete(e)}}invokeOnInitCallbacks(e,t){const n=this.onInitCallbacks.get(t);if(n)for(const i of n)try{i(e,t)}catch(e){}}getOrInitializeService({instanceIdentifier:e,options:t={}}){let n=this.instances.get(e);if(!n&&this.component&&(n=this.component.instanceFactory(this.container,{instanceIdentifier:(i=e,i===p?void 0:i),options:t}),this.instances.set(e,n),this.instancesOptions.set(e,t),this.invokeOnInitCallbacks(n,e),this.component.onInstanceCreated))try{this.component.onInstanceCreated(this.container,e,n)}catch(e){}var i;return n||null}normalizeInstanceIdentifier(e="[DEFAULT]"){return this.component?this.component.multipleInstances?e:p:e}shouldAutoInitialize(){return!!this.component&&"EXPLICIT"!==this.component.instantiationMode}}class f{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 h(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 u,m;(m=u||(u={}))[m.DEBUG=0]="DEBUG",m[m.VERBOSE=1]="VERBOSE",m[m.INFO=2]="INFO",m[m.WARN=3]="WARN",m[m.ERROR=4]="ERROR",m[m.SILENT=5]="SILENT";const g={debug:u.DEBUG,verbose:u.VERBOSE,info:u.INFO,warn:u.WARN,error:u.ERROR,silent:u.SILENT},b=u.INFO,v={[u.DEBUG]:"log",[u.VERBOSE]:"log",[u.INFO]:"info",[u.WARN]:"warn",[u.ERROR]:"error"},I=(e,t,...n)=>{if(t{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 E="https://www.gstatic.com/firebasejs/9.3.0/firebase-app.js",y="0.7.6",_=new class{constructor(e){this.name=e,this._logLevel=b,this._logHandler=I,this._userLogHandler=null,d.push(this)}get logLevel(){return this._logLevel}set logLevel(e){if(!(e in u))throw new TypeError(`Invalid value "${e}" assigned to \`logLevel\``);this._logLevel=e}setLogLevel(e){this._logLevel="string"==typeof e?g[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,u.DEBUG,...e),this._logHandler(this,u.DEBUG,...e)}log(...e){this._userLogHandler&&this._userLogHandler(this,u.VERBOSE,...e),this._logHandler(this,u.VERBOSE,...e)}info(...e){this._userLogHandler&&this._userLogHandler(this,u.INFO,...e),this._logHandler(this,u.INFO,...e)}warn(...e){this._userLogHandler&&this._userLogHandler(this,u.WARN,...e),this._logHandler(this,u.WARN,...e)}error(...e){this._userLogHandler&&this._userLogHandler(this,u.ERROR,...e),this._logHandler(this,u.ERROR,...e)}}("https://www.gstatic.com/firebasejs/9.3.0/firebase-app.js"),O="[DEFAULT]",L={[E]:"fire-core","https://www.gstatic.com/firebasejs/9.3.0/firebase-app.js-compat":"fire-core-compat","@firebase/analytics":"fire-analytics","@firebase/analytics-compat":"fire-analytics-compat","https://www.gstatic.com/firebasejs/9.3.0/firebase-app.js-check":"fire-app-check","https://www.gstatic.com/firebasejs/9.3.0/firebase-app.js-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"},C=new Map,D=new Map;function A(e,t){try{e.container.addComponent(t)}catch(n){_.debug(`Component ${t.name} failed to register with FirebaseApp ${e.name}`,n)}}function R(e,t){e.container.addOrOverwriteComponent(t)}function N(e){const t=e.name;if(D.has(t))return _.debug(`There were multiple attempts to register component ${t}.`),!1;D.set(t,e);for(const t of C.values())A(t,e);return!0}function S(e,t){return e.container.getProvider(t)}function $(e,t,n=O){S(e,t).clearInstance(n)}function j(){D.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 F=new s("app","Firebase",{"no-app":"No Firebase App '{$appName}' has been created - call Firebase App.initializeApp()","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","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."}); +/** + * @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 H{constructor(e,t,n){this._isDeleted=!1,this._options=Object.assign({},e),this._config=Object.assign({},t),this._name=t.name,this._automaticDataCollectionEnabled=t.automaticDataCollectionEnabled,this._container=n,this.container.addComponent(new l("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 F.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 k="9.3.0";function z(e,t={}){if("object"!=typeof t){t={name:t}}const n=Object.assign({name:O,automaticDataCollectionEnabled:!1},t),i=n.name;if("string"!=typeof i||!i)throw F.create("bad-app-name",{appName:String(i)});const r=C.get(i);if(r){if(a(e,r.options)&&a(n,r.config))return r;throw F.create("duplicate-app",{appName:i})}const s=new f(i);for(const e of D.values())s.addComponent(e);const o=new H(e,n,s);return C.set(i,o),o}function T(e=O){const t=C.get(e);if(!t)throw F.create("no-app",{appName:e});return t}function P(){return Array.from(C.values())}async function x(e){const t=e.name;C.has(t)&&(C.delete(t),await Promise.all(e.container.getProviders().map((e=>e.delete()))),e.isDeleted=!0)}function M(e,t,n){var i;let r=null!==(i=L[e])&&void 0!==i?i:e;n&&(r+=`-${n}`);const s=r.match(/\s|\//),o=t.match(/\s|\//);if(s||o){const e=[`Unable to register library "${r}" with version "${t}":`];return s&&e.push(`library name "${r}" contains illegal characters (whitespace or "/")`),s&&o&&e.push("and"),o&&e.push(`version name "${t}" contains illegal characters (whitespace or "/")`),void _.warn(e.join(" "))}N(new l(`${r}-version`,(()=>({library:r,version:t})),"VERSION"))}function U(e,t){if(null!==e&&"function"!=typeof e)throw F.create("invalid-log-argument");!function(e,t){for(const n of d){let i=null;t&&t.level&&(i=g[t.level]),n.userLogHandler=null===e?null:(t,n,...r)=>{const s=r.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(" ");n>=(null!=i?i:t.logLevel)&&e({level:u[n].toLowerCase(),message:s,args:r,type:t.name})}}}(e,t)}function B(e){var t;t=e,d.forEach((e=>{e.setLogLevel(t)}))} +/** + * @license + * Copyright 2019 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */var V;V="",N(new l("platform-logger",(e=>new w(e)),"PRIVATE")),M(E,y,V),M(E,y,"esm2017"),M("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. + */ +M("firebase","9.3.0","cdn")})); \ No newline at end of file diff --git a/frontend-dist/firebase-firestore.460b9b58.js b/frontend-dist/firebase-firestore.460b9b58.js new file mode 100644 index 0000000000..da4afed70a --- /dev/null +++ b/frontend-dist/firebase-firestore.460b9b58.js @@ -0,0 +1,2039 @@ +var t="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{};function e(t,e,n,s){Object.defineProperty(t,e,{get:n,set:s,enumerable:!0,configurable:!0})}var n=t.parcelRequire94c2;n.register("2rOxx",(function(s,r){e(s.exports,"setLogLevel",(()=>Ps)),e(s.exports,"_logWarn",(()=>qs)),e(s.exports,"_debugAssert",(()=>$s)),e(s.exports,"FirestoreError",(()=>zs)),e(s.exports,"_EmptyCredentialsProvider",(()=>Ys)),e(s.exports,"Timestamp",(()=>ar)),e(s.exports,"_FieldPath",(()=>mr)),e(s.exports,"_isBase64Available",(()=>yr)),e(s.exports,"_DocumentKey",(()=>xr)),e(s.exports,"_DatabaseId",(()=>$l)),e(s.exports,"_validateIsNotUsedTogether",(()=>zl)),e(s.exports,"_cast",(()=>Xl)),e(s.exports,"connectFirestoreEmulator",(()=>ed)),e(s.exports,"DocumentReference",(()=>nd)),e(s.exports,"CollectionReference",(()=>rd)),e(s.exports,"Query",(()=>sd)),e(s.exports,"collection",(()=>id)),e(s.exports,"collectionGroup",(()=>od)),e(s.exports,"doc",(()=>ad)),e(s.exports,"refEqual",(()=>cd)),e(s.exports,"queryEqual",(()=>ud)),e(s.exports,"LoadBundleTask",(()=>dd)),e(s.exports,"CACHE_SIZE_UNLIMITED",(()=>fd)),e(s.exports,"Firestore",(()=>gd)),e(s.exports,"initializeFirestore",(()=>md)),e(s.exports,"getFirestore",(()=>pd)),e(s.exports,"ensureFirestoreConfigured",(()=>yd)),e(s.exports,"enableIndexedDbPersistence",(()=>vd)),e(s.exports,"enableMultiTabIndexedDbPersistence",(()=>bd)),e(s.exports,"clearIndexedDbPersistence",(()=>Ed)),e(s.exports,"waitForPendingWrites",(()=>Id)),e(s.exports,"enableNetwork",(()=>Sd)),e(s.exports,"disableNetwork",(()=>_d)),e(s.exports,"terminate",(()=>Nd)),e(s.exports,"loadBundle",(()=>Ad)),e(s.exports,"namedQuery",(()=>Dd)),e(s.exports,"FieldPath",(()=>Cd)),e(s.exports,"documentId",(()=>kd)),e(s.exports,"Bytes",(()=>Rd)),e(s.exports,"FieldValue",(()=>Ld)),e(s.exports,"GeoPoint",(()=>Od)),e(s.exports,"SnapshotMetadata",(()=>lf)),e(s.exports,"DocumentSnapshot",(()=>df)),e(s.exports,"QueryDocumentSnapshot",(()=>ff)),e(s.exports,"QuerySnapshot",(()=>gf)),e(s.exports,"snapshotEqual",(()=>pf)),e(s.exports,"QueryConstraint",(()=>wf)),e(s.exports,"query",(()=>vf)),e(s.exports,"where",(()=>Tf)),e(s.exports,"orderBy",(()=>If)),e(s.exports,"limit",(()=>_f)),e(s.exports,"limitToLast",(()=>Nf)),e(s.exports,"startAt",(()=>Df)),e(s.exports,"startAfter",(()=>xf)),e(s.exports,"endBefore",(()=>kf)),e(s.exports,"endAt",(()=>Rf)),e(s.exports,"AbstractUserDataWriter",(()=>Pf)),e(s.exports,"WriteBatch",(()=>qf)),e(s.exports,"getDoc",(()=>jf)),e(s.exports,"getDocFromCache",(()=>$f)),e(s.exports,"getDocFromServer",(()=>Gf)),e(s.exports,"getDocs",(()=>Hf)),e(s.exports,"getDocsFromCache",(()=>zf)),e(s.exports,"getDocsFromServer",(()=>Qf)),e(s.exports,"setDoc",(()=>Wf)),e(s.exports,"executeWrite",(()=>eg)),e(s.exports,"updateDoc",(()=>Yf)),e(s.exports,"deleteDoc",(()=>Xf)),e(s.exports,"addDoc",(()=>Jf)),e(s.exports,"onSnapshot",(()=>Zf)),e(s.exports,"onSnapshotsInSync",(()=>tg)),e(s.exports,"Transaction",(()=>sg)),e(s.exports,"runTransaction",(()=>rg)),e(s.exports,"deleteField",(()=>ig)),e(s.exports,"serverTimestamp",(()=>og)),e(s.exports,"arrayUnion",(()=>ag)),e(s.exports,"arrayRemove",(()=>cg)),e(s.exports,"increment",(()=>ug)),e(s.exports,"writeBatch",(()=>hg));var i=n("aFiVA"),o=n("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 a=function(t){const e=[];let n=0;for(let s=0;s>6|192,e[n++]=63&r|128):55296==(64512&r)&&s+1>18|240,e[n++]=r>>12&63|128,e[n++]=r>>6&63|128,e[n++]=63&r|128):(e[n++]=r>>12|224,e[n++]=r>>6&63|128,e[n++]=63&r|128)}return e},c={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_,s=[];for(let e=0;e>2,h=(3&r)<<4|o>>4;let l=(15&o)<<2|c>>6,d=63&c;a||(d=64,i||(l=64)),s.push(n[u],n[h],n[l],n[d])}return s.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,s=0;for(;n191&&r<224){const i=t[n++];e[s++]=String.fromCharCode((31&r)<<6|63&i)}else if(r>239&&r<365){const i=((7&r)<<18|(63&t[n++])<<12|(63&t[n++])<<6|63&t[n++])-65536;e[s++]=String.fromCharCode(55296+(i>>10)),e[s++]=String.fromCharCode(56320+(1023&i))}else{const i=t[n++],o=t[n++];e[s++]=String.fromCharCode((15&r)<<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_,s=[];for(let e=0;e>4;if(s.push(c),64!==o){const t=i<<4&240|o>>2;if(s.push(t),64!==a){const t=o<<6&192|a;s.push(t)}}}return s},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)}}},u=function(t){return function(t){const e=a(t);return c.encodeByteArray(e,!0)}(t).replace(/\./g,"")}; +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +function h(){return"undefined"!=typeof navigator&&"string"==typeof navigator.userAgent?navigator.userAgent:""}function l(){return!function(){try{return"[object process]"===Object.prototype.toString.call(t.process)}catch(t){return!1}}()&&navigator.userAgent.includes("Safari")&&!navigator.userAgent.includes("Chrome")}function d(t,e){if(t===e)return!0;const n=Object.keys(t),s=Object.keys(e);for(const r of n){if(!s.includes(r))return!1;const n=t[r],i=e[r];if(f(n)&&f(i)){if(!d(n,i))return!1}else if(n!==i)return!1}for(const t of s)if(!n.includes(t))return!1;return!0}function f(t){return null!==t&&"object"==typeof 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. + */function g(t){return t&&t._delegate?t._delegate:t}class m{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}} +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */var p,y;(y=p||(p={}))[y.DEBUG=0]="DEBUG",y[y.VERBOSE=1]="VERBOSE",y[y.INFO=2]="INFO",y[y.WARN=3]="WARN",y[y.ERROR=4]="ERROR",y[y.SILENT=5]="SILENT";const w={debug:p.DEBUG,verbose:p.VERBOSE,info:p.INFO,warn:p.WARN,error:p.ERROR,silent:p.SILENT},v=p.INFO,b={[p.DEBUG]:"log",[p.VERBOSE]:"log",[p.INFO]:"info",[p.WARN]:"warn",[p.ERROR]:"error"},T=(t,e,...n)=>{if(e>>0),C=0;function k(t,e,n){return t.call.apply(t.bind,arguments)}function R(t,e,n){if(!t)throw Error();if(2e?1:0}t:{var z=_.navigator;if(z){var Q=z.userAgent;if(Q){K=Q;break t}}K=""}function W(t,e,n){for(const s in t)e.call(n,t[s],s,t)}function Y(t){const e={};for(const n in t)e[n]=t[n];return e}var X="constructor hasOwnProperty isPrototypeOf propertyIsEnumerable toLocaleString toString valueOf".split(" ");function J(t,e){let n,s;for(let e=1;eparseFloat(ut)){tt=String(lt);break t}}tt=ut}var dt,ft={};function gt(){return function(t){var e=ft;return Object.prototype.hasOwnProperty.call(e,9)?e[9]:e[9]=t(9)}((function(){let t=0;const e=$(String(tt)).split("."),n=$("9").split("."),s=Math.max(e.length,n.length);for(let o=0;0==t&&o>>0);function Ut(t){return"function"==typeof t?t:(t[Vt]||(t[Vt]=function(e){return t.handleEvent(e)}),t[Vt])}function qt(){F.call(this),this.i=new _t(this),this.P=this,this.I=null}function Bt(t,e){var n,s=t.I;if(s)for(n=[];s;s=s.I)n.push(s);if(t=t.P,s=e.type||e,"string"==typeof e)e=new wt(e,t);else if(e instanceof wt)e.target=e.target||t;else{var r=e;J(e=new wt(s,t),r)}if(r=!0,n)for(var i=n.length-1;0<=i;i--){var o=e.g=n[i];r=jt(o,s,!0,e)&&r}if(r=jt(o=e.g=t,s,!0,e)&&r,r=jt(o,s,!1,e)&&r,n)for(i=0;inew zt),(t=>t.reset()));class zt{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 Qt(t){_.setTimeout((()=>{throw t}),0)}function Wt(t,e){Gt||function(){var t=_.Promise.resolve(void 0);Gt=function(){t.then(Jt)}}(),Yt||(Gt(),Yt=!0),Xt.add(t,e)}var Yt=!1,Xt=new class{constructor(){this.h=this.g=null}add(t,e){const n=Ht.get();n.set(t,e),this.h?this.h.next=n:this.g=n,this.h=n}};function Jt(){for(var t;t=$t();){try{t.h.call(t.g)}catch(t){Qt(t)}var e=Ht;e.j(t),100>e.h&&(e.h++,t.next=e.g,e.g=t)}Yt=!1}function Zt(t,e){qt.call(this),this.h=t||1,this.g=e||_,this.j=L(this.kb,this),this.l=Date.now()}function te(t){t.da=!1,t.S&&(t.g.clearTimeout(t.S),t.S=null)}function ee(t,e,n){if("function"==typeof t)n&&(t=L(t,n));else{if(!t||"function"!=typeof t.handleEvent)throw Error("Invalid listener argument");t=L(t.handleEvent,t)}return 2147483647{t.g=null,t.i&&(t.i=!1,ne(t))}),t.j);const e=t.h;t.h=null,t.m.apply(null,e)}M(Zt,qt),(E=Zt.prototype).da=!1,E.S=null,E.kb=function(){if(this.da){var t=Date.now()-this.l;0s.length)){var r=s[1];if(Array.isArray(r)&&!(1>r.length)){var i=r[0];if("noop"!=i&&"stop"!=i&&"close"!=i)for(var o=1;oe.length?Le:(e=e.substr(s,n),t.C=s+n,e))}function Ue(t){t.Y=Date.now()+t.P,qe(t,t.P)}function qe(t,e){if(null!=t.B)throw Error("WatchDog timer not null");t.B=we(L(t.eb,t),e)}function Be(t){t.B&&(_.clearTimeout(t.B),t.B=null)}function je(t){0==t.l.G||t.I||ds(t.l,t)}function Ke(t){Be(t);var e=t.L;e&&"function"==typeof e.na&&e.na(),t.L=null,te(t.W),ae(t.V),t.g&&(e=t.g,t.g=null,e.abort(),e.na())}function $e(t,e){try{var n=t.l;if(0!=n.G&&(n.g==t||In(n.i,t)))if(n.I=t.N,!t.J&&In(n.i,t)&&3==n.G){try{var s=n.Ca.g.parse(e)}catch(t){s=null}if(Array.isArray(s)&&3==s.length){var r=s;if(0==r[0]){t:if(!n.u){if(n.g){if(!(n.g.F+3e3r[2]&&n.N&&0==n.A&&!n.v&&(n.v=we(L(n.ab,n),6e3));if(1>=En(n.i)&&n.ka){try{n.ka()}catch(t){}n.ka=void 0}}else gs(n,11)}else if((t.J||n.g==t)&&ls(n),!j(e))for(r=n.Ca.g.parse(e),e=0;eh)&&(3!=h||it||this.g&&(this.h.h||this.g.ga()||Wn(this.g)))){this.I||4!=h||7==e||ge(8==e||0>=l?3:2),Be(this);var n=this.g.ba();this.N=n;e:if(Fe(this)){var s=Wn(this.g);t="";var r=s.length,i=4==Qn(this.g);if(!this.h.i){if("undefined"==typeof TextDecoder){Ke(this),je(this);var o="";break e}this.h.i=new _.TextDecoder}for(e=0;ee)throw Error("Bad port number "+e);t.m=e}else t.m=null}function en(t,e,n){e instanceof fn?(t.h=e,function(t,e){e&&!t.j&&(gn(t),t.i=null,t.g.forEach((function(t,e){var n=e.toLowerCase();e!=n&&(mn(this,e),yn(this,n,t))}),t)),t.j=e}(t.h,t.g)):(n||(e=on(e,ln)),t.h=new fn(e,t.g))}function nn(t,e,n){t.h.set(e,n)}function sn(t){return nn(t,"zx",Math.floor(2147483648*Math.random()).toString(36)+Math.abs(Math.floor(2147483648*Math.random())^Date.now()).toString(36)),t}function rn(t,e){return t?e?decodeURI(t.replace(/%25/g,"%2525")):decodeURIComponent(t):""}function on(t,e,n){return"string"==typeof t?(t=encodeURI(t).replace(e,an),n&&(t=t.replace(/%25([0-9a-fA-F]{2})/g,"%$1")),t):null}function an(t){return"%"+((t=t.charCodeAt(0))>>4&15).toString(16)+(15&t).toString(16)}Ye.prototype.toString=function(){var t=[],e=this.j;e&&t.push(on(e,cn,!0),":");var n=this.i;return(n||"file"==e)&&(t.push("//"),(e=this.s)&&t.push(on(e,cn,!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.i&&"/"!=n.charAt(0)&&t.push("/"),t.push(on(n,"/"==n.charAt(0)?hn:un,!0))),(n=this.h.toString())&&t.push("?",n),(n=this.o)&&t.push("#",on(n,dn)),t.join("")};var cn=/[#\/\?@]/g,un=/[#\?:]/g,hn=/[#\?]/g,ln=/[#\?@]/g,dn=/#/g;function fn(t,e){this.h=this.g=null,this.i=t||null,this.j=!!e}function gn(t){t.g||(t.g=new He,t.h=0,t.i&&function(t,e){if(t){t=t.split("&");for(var n=0;n2*t.i&&ze(t)))}function pn(t,e){return gn(t),e=wn(t,e),Qe(t.g.h,e)}function yn(t,e,n){mn(t,e),0=t.j}function En(t){return t.h?1:t.g?t.g.size:0}function In(t,e){return t.h?t.h==e:!!t.g&&t.g.has(e)}function Sn(t,e){t.g?t.g.add(e):t.h=e}function _n(t,e){t.h&&t.h==e?t.h=null:t.g&&t.g.has(e)&&t.g.delete(e)}function Nn(t){if(null!=t.h)return t.i.concat(t.h.D);if(null!=t.g&&0!==t.g.size){let e=t.i;for(const n of t.g.values())e=e.concat(n.D);return e}return B(t.i)}function An(){}function Dn(){this.g=new An}function xn(t,e,n){const s=n||"";try{Ge(t,(function(t,n){let r=t;D(t)&&(r=Kt(t)),e.push(s+n+"="+encodeURIComponent(r))}))}catch(t){throw e.push(s+"type="+encodeURIComponent("_badmap")),t}}function Cn(t,e,n,s,r){try{e.onload=null,e.onerror=null,e.onabort=null,e.ontimeout=null,r(s)}catch(t){}}function kn(t){this.l=t.$b||null,this.j=t.ib||!1}function Rn(t,e){qt.call(this),this.D=t,this.u=e,this.m=void 0,this.readyState=Ln,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}vn.prototype.cancel=function(){if(this.i=Nn(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()}},An.prototype.stringify=function(t){return _.JSON.stringify(t,void 0)},An.prototype.parse=function(t){return _.JSON.parse(t,void 0)},M(kn,Te),kn.prototype.g=function(){return new Rn(this.l,this.j)},kn.prototype.i=function(t){return function(){return t}}({}),M(Rn,qt);var Ln=0;function On(t){t.j.read().then(t.Sa.bind(t)).catch(t.ha.bind(t))}function Mn(t){t.readyState=4,t.l=null,t.j=null,t.A=null,Fn(t)}function Fn(t){t.onreadystatechange&&t.onreadystatechange.call(t)}(E=Rn.prototype).open=function(t,e){if(this.readyState!=Ln)throw this.abort(),Error("Error reopening a connection");this.C=t,this.B=e,this.readyState=1,Fn(this)},E.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.D||_).fetch(new Request(this.B,e)).then(this.Va.bind(this),this.ha.bind(this))},E.abort=function(){this.response=this.responseText="",this.v=new Headers,this.status=0,this.j&&this.j.cancel("Request was aborted."),1<=this.readyState&&this.g&&4!=this.readyState&&(this.g=!1,Mn(this)),this.readyState=Ln},E.Va=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,Fn(this)),this.g&&(this.readyState=3,Fn(this),this.g)))if("arraybuffer"===this.responseType)t.arrayBuffer().then(this.Ta.bind(this),this.ha.bind(this));else if(void 0!==_.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;On(this)}else t.text().then(this.Ua.bind(this),this.ha.bind(this))},E.Sa=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?Mn(this):Fn(this),3==this.readyState&&On(this)}},E.Ua=function(t){this.g&&(this.response=this.responseText=t,Mn(this))},E.Ta=function(t){this.g&&(this.response=t,Mn(this))},E.ha=function(){this.g&&Mn(this)},E.setRequestHeader=function(t,e){this.v.append(t,e)},E.getResponseHeader=function(t){return this.h&&this.h.get(t.toLowerCase())||""},E.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(Rn.prototype,"withCredentials",{get:function(){return"include"===this.m},set:function(t){this.m=t?"include":"same-origin"}});var Pn=_.JSON.parse;function Vn(t){qt.call(this),this.headers=new He,this.u=t||null,this.h=!1,this.C=this.g=null,this.H="",this.m=0,this.j="",this.l=this.F=this.v=this.D=!1,this.B=0,this.A=null,this.J=Un,this.K=this.L=!1}M(Vn,qt);var Un="",qn=/^https?$/i,Bn=["POST","PUT"];function jn(t){return"content-type"==t.toLowerCase()}function Kn(t,e){t.h=!1,t.g&&(t.l=!0,t.g.abort(),t.l=!1),t.j=e,t.m=5,$n(t),Hn(t)}function $n(t){t.D||(t.D=!0,Bt(t,"complete"),Bt(t,"error"))}function Gn(t){if(t.h&&void 0!==S&&(!t.C[1]||4!=Qn(t)||2!=t.ba()))if(t.v&&4==Qn(t))ee(t.Fa,0,t);else if(Bt(t,"readystatechange"),4==Qn(t)){t.h=!1;try{const a=t.ba();t:switch(a){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 s;if(s=0===a){var r=String(t.H).match(We)[1]||null;if(!r&&_.self&&_.self.location){var i=_.self.location.protocol;r=i.substr(0,i.length-1)}s=!qn.test(r?r.toLowerCase():"")}n=s}if(n)Bt(t,"complete"),Bt(t,"success");else{t.m=6;try{var o=2n)e=Math.max(0,r[o].h-100),i=!1;else try{xn(a,t,"req"+n+"_")}catch(t){s&&s(a)}}if(i){s=t.join("&");break t}}}return t=t.l.splice(0,n),e.D=t,s}function as(t){t.g||t.u||(t.Y=1,Wt(t.Ga,t),t.A=0)}function cs(t){return!(t.g||t.u||3<=t.A)&&(t.Y++,t.u=we(L(t.Ga,t),fs(t,t.A)),t.A++,!0)}function us(t){null!=t.B&&(_.clearTimeout(t.B),t.B=null)}function hs(t){t.g=new xe(t,t.h,"rpc",t.Y),null===t.o&&(t.g.H=t.s),t.g.O=0;var e=Xe(t.oa);nn(e,"RID","rpc"),nn(e,"SID",t.J),nn(e,"CI",t.N?"0":"1"),nn(e,"AID",t.U),is(t,e),nn(e,"TYPE","xmlhttp"),t.o&&t.s&&Yn(e,t.o,t.s),t.K&&t.g.setTimeout(t.K);var n=t.g;t=t.la,n.K=1,n.v=sn(Xe(e)),n.s=null,n.U=!0,Me(n,t)}function ls(t){null!=t.v&&(_.clearTimeout(t.v),t.v=null)}function ds(t,e){var n=null;if(t.g==e){ls(t),us(t),t.g=null;var s=2}else{if(!In(t.i,e))return;n=e.D,_n(t.i,e),s=1}if(t.I=e.N,0!=t.G)if(e.i)if(1==s){n=e.s?e.s.length:0,e=Date.now()-e.F;var r=t.C;Bt(s=de(),new ye(s,n,e,r)),ss(t)}else as(t);else if(3==(r=e.o)||0==r&&0=t.i.j-(t.m?1:0)||(t.m?(t.l=e.D.concat(t.l),0):1==t.G||2==t.G||t.C>=(t.Xa?0:t.Ya)||(t.m=we(L(t.Ha,t,e),fs(t,t.C)),t.C++,0)))}(t,e)||2==s&&cs(t)))switch(n&&0e?null:"string"==typeof t?t.charAt(e):t[e]}(r.T()),n=_.FormData&&t instanceof _.FormData,!(0<=V(Bn,e))||s||n||r.set("Content-Type","application/x-www-form-urlencoded;charset=utf-8"),r.forEach((function(t,e){this.g.setRequestHeader(e,t)}),this),this.J&&(this.g.responseType=this.J),"withCredentials"in this.g&&this.g.withCredentials!==this.L&&(this.g.withCredentials=this.L);try{zn(this),0=this.O)){var t=2*this.O;this.h.info("BP detection timer enabled: "+t),this.B=we(L(this.bb,this),t)}},E.bb=function(){this.B&&(this.B=null,this.h.info("BP detection timeout reached."),this.h.info("Buffering proxy detected and switch to long-polling!"),this.N=!1,this.L=!0,pe(10),ts(this),hs(this))},E.ab=function(){null!=this.v&&(this.v=null,ts(this),cs(this),pe(19))},E.jb=function(t){t?(this.h.info("Successfully pinged google.com"),pe(2)):(this.h.info("Failed to ping google.com"),pe(1))},(E=ws.prototype).xa=function(){},E.wa=function(){},E.va=function(){},E.ua=function(){},E.Oa=function(){},vs.prototype.g=function(t,e){return new bs(t,e)},M(bs,qt),bs.prototype.m=function(){this.g.j=this.j,this.A&&(this.g.H=!0);var t=this.g,e=this.l,n=this.h||void 0;t.Wa&&(t.h.info("Origin Trials enabled."),Wt(L(t.hb,t,e))),pe(0),t.W=e,t.aa=n||{},t.N=t.X,t.F=ps(t,null,t.W),ss(t)},bs.prototype.close=function(){Zn(this.g)},bs.prototype.u=function(t){if("string"==typeof t){var e={};e.__data__=t,ns(this.g,e)}else this.v?((e={}).__data__=Kt(t),ns(this.g,e)):ns(this.g,t)},bs.prototype.M=function(){this.g.j=null,delete this.j,Zn(this.g),delete this.g,bs.Z.M.call(this)},M(Ts,Ne),M(Es,Ae),M(Is,ws),Is.prototype.xa=function(){Bt(this.g,"a")},Is.prototype.wa=function(t){Bt(this.g,new Ts(t))},Is.prototype.va=function(t){Bt(this.g,new Es(t))},Is.prototype.ua=function(){Bt(this.g,"b")},vs.prototype.createWebChannel=vs.prototype.g,bs.prototype.send=bs.prototype.u,bs.prototype.open=bs.prototype.m,bs.prototype.close=bs.prototype.close,ve.NO_ERROR=0,ve.TIMEOUT=8,ve.HTTP_ERROR=6,be.COMPLETE="complete",Ie.EventType=_e,_e.OPEN="a",_e.CLOSE="b",_e.ERROR="c",_e.MESSAGE="d",qt.prototype.listen=qt.prototype.N,Vn.prototype.listenOnce=Vn.prototype.O,Vn.prototype.getLastError=Vn.prototype.La,Vn.prototype.getLastErrorCode=Vn.prototype.Da,Vn.prototype.getStatus=Vn.prototype.ba,Vn.prototype.getResponseJson=Vn.prototype.Qa,Vn.prototype.getResponseText=Vn.prototype.ga,Vn.prototype.send=Vn.prototype.ea;var Ss=ve,_s=be,Ns=he,As=10,Ds=11,xs=kn,Cs=Ie,ks=Vn;const Rs="@firebase/firestore"; +/** + * @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 Ls{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}}Ls.UNAUTHENTICATED=new Ls(null),Ls.GOOGLE_CREDENTIALS=new Ls("google-credentials-uid"),Ls.FIRST_PARTY=new Ls("first-party-uid"),Ls.MOCK_USER=new Ls("mock-user"); +/** + * @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. + */ +let Os="9.3.0"; +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */const Ms=new class{constructor(t){this.name=t,this._logLevel=v,this._logHandler=T,this._userLogHandler=null}get logLevel(){return this._logLevel}set logLevel(t){if(!(t in p))throw new TypeError(`Invalid value "${t}" assigned to \`logLevel\``);this._logLevel=t}setLogLevel(t){this._logLevel="string"==typeof t?w[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,p.DEBUG,...t),this._logHandler(this,p.DEBUG,...t)}log(...t){this._userLogHandler&&this._userLogHandler(this,p.VERBOSE,...t),this._logHandler(this,p.VERBOSE,...t)}info(...t){this._userLogHandler&&this._userLogHandler(this,p.INFO,...t),this._logHandler(this,p.INFO,...t)}warn(...t){this._userLogHandler&&this._userLogHandler(this,p.WARN,...t),this._logHandler(this,p.WARN,...t)}error(...t){this._userLogHandler&&this._userLogHandler(this,p.ERROR,...t),this._logHandler(this,p.ERROR,...t)}}("@firebase/firestore");function Fs(){return Ms.logLevel}function Ps(t){Ms.setLogLevel(t)}function Vs(t,...e){if(Ms.logLevel<=p.DEBUG){const n=e.map(Bs);Ms.debug(`Firestore (${Os}): ${t}`,...n)}}function Us(t,...e){if(Ms.logLevel<=p.ERROR){const n=e.map(Bs);Ms.error(`Firestore (${Os}): ${t}`,...n)}}function qs(t,...e){if(Ms.logLevel<=p.WARN){const n=e.map(Bs);Ms.warn(`Firestore (${Os}): ${t}`,...n)}}function Bs(t){if("string"==typeof t)return t;try{return e=t,JSON.stringify(e)}catch(e){return t} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */var e} +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */function js(t="Unexpected state"){const e=`FIRESTORE (${Os}) INTERNAL ASSERTION FAILED: `+t;throw Us(e),new Error(e)}function Ks(t,e){t||js()}function $s(t,e){t||js()}function Gs(t,e){return t} +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */const Hs={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 zs extends Error{constructor(t,e){super(e),this.code=t,this.message=e,this.name="FirebaseError",this.toString=()=>`${this.name}: [code=${this.code}]: ${this.message}`}} +/** + * @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 Qs{constructor(){this.promise=new Promise(((t,e)=>{this.resolve=t,this.reject=e}))}} +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */class Ws{constructor(t,e){this.user=e,this.type="OAuth",this.authHeaders={},this.authHeaders.Authorization=`Bearer ${t}`}}class Ys{getToken(){return Promise.resolve(null)}invalidateToken(){}start(t,e){t.enqueueRetryable((()=>e(Ls.UNAUTHENTICATED)))}shutdown(){}}class Xs{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 Js{constructor(t){this.t=t,this.currentUser=Ls.UNAUTHENTICATED,this.i=0,this.forceRefresh=!1,this.auth=null}start(t,e){let n=this.i;const s=t=>this.i!==n?(n=this.i,e(t)):Promise.resolve();let r=new Qs;this.o=()=>{this.i++,this.currentUser=this.u(),r.resolve(),r=new Qs,t.enqueueRetryable((()=>s(this.currentUser)))};const i=()=>{const e=r;t.enqueueRetryable((async()=>{await e.promise,await s(this.currentUser)}))},o=t=>{Vs("FirebaseCredentialsProvider","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):(Vs("FirebaseCredentialsProvider","Auth not yet detected"),r.resolve(),r=new Qs)}}),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?(Vs("FirebaseCredentialsProvider","getToken aborted due to token change."),this.getToken()):e?(Ks("string"==typeof e.accessToken),new Ws(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 Ks(null===t||"string"==typeof t),new Ls(t)}}class Zs{constructor(t,e,n){this.h=t,this.l=e,this.m=n,this.type="FirstParty",this.user=Ls.FIRST_PARTY}get authHeaders(){const t={"X-Goog-AuthUser":this.l},e=this.h.auth.getAuthHeaderValueForFirstParty([]);return e&&(t.Authorization=e),this.m&&(t["X-Goog-Iam-Authorization-Token"]=this.m),t}}class tr{constructor(t,e,n){this.h=t,this.l=e,this.m=n}getToken(){return Promise.resolve(new Zs(this.h,this.l,this.m))}start(t,e){t.enqueueRetryable((()=>e(Ls.FIRST_PARTY)))}shutdown(){}invalidateToken(){}} +/** + * @license + * Copyright 2018 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */class er{constructor(t,e){this.previousValue=t,e&&(e.sequenceNumberHandler=t=>this.g(t),this.p=t=>e.writeSequenceNumber(t))}g(t){return this.previousValue=Math.max(t,this.previousValue),this.previousValue}next(){const t=++this.previousValue;return this.p&&this.p(t),t}} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */function nr(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 ir(t,e,n){return t.length===e.length&&t.every(((t,s)=>n(t,e[s])))}function or(t){return t+"\0"} +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */class ar{constructor(t,e){if(this.seconds=t,this.nanoseconds=e,e<0)throw new zs(Hs.INVALID_ARGUMENT,"Timestamp nanoseconds out of range: "+e);if(e>=1e9)throw new zs(Hs.INVALID_ARGUMENT,"Timestamp nanoseconds out of range: "+e);if(t<-62135596800)throw new zs(Hs.INVALID_ARGUMENT,"Timestamp seconds out of range: "+t);if(t>=253402300800)throw new zs(Hs.INVALID_ARGUMENT,"Timestamp seconds out of range: "+t)}static now(){return ar.fromMillis(Date.now())}static fromDate(t){return ar.fromMillis(t.getTime())}static fromMillis(t){const e=Math.floor(t/1e3),n=Math.floor(1e6*(t-1e3*e));return new ar(e,n)}toDate(){return new Date(this.toMillis())}toMillis(){return 1e3*this.seconds+this.nanoseconds/1e6}_compareTo(t){return this.seconds===t.seconds?rr(this.nanoseconds,t.nanoseconds):rr(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")}} +/** + * @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 cr{constructor(t){this.timestamp=t}static fromTimestamp(t){return new cr(t)}static min(){return new cr(new ar(0,0))}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}} +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */function ur(t){let e=0;for(const n in t)Object.prototype.hasOwnProperty.call(t,n)&&e++;return e}function hr(t,e){for(const n in t)Object.prototype.hasOwnProperty.call(t,n)&&e(n,t[n])}function lr(t){for(const e in t)if(Object.prototype.hasOwnProperty.call(t,e))return!1;return!0} +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */class dr{constructor(t,e,n){void 0===e?e=0:e>t.length&&js(),void 0===n?n=t.length-e:n>t.length-e&&js(),this.segments=t,this.offset=e,this.len=n}get length(){return this.len}isEqual(t){return 0===dr.comparator(this,t)}child(t){const e=this.segments.slice(this.offset,this.limit());return t instanceof dr?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.lengthr)return 1}return t.lengthe.length?1:0}}class fr extends dr{construct(t,e,n){return new fr(t,e,n)}canonicalString(){return this.toArray().join("/")}toString(){return this.canonicalString()}static fromString(...t){const e=[];for(const n of t){if(n.indexOf("//")>=0)throw new zs(Hs.INVALID_ARGUMENT,`Invalid segment (${n}). Paths must not contain // in them.`);e.push(...n.split("/").filter((t=>t.length>0)))}return new fr(e)}static emptyPath(){return new fr([])}}const gr=/^[_a-zA-Z][_a-zA-Z0-9]*$/;class mr extends dr{construct(t,e,n){return new mr(t,e,n)}static isValidIdentifier(t){return gr.test(t)}canonicalString(){return this.toArray().map((t=>(t=t.replace(/\\/g,"\\\\").replace(/`/g,"\\`"),mr.isValidIdentifier(t)||(t="`"+t+"`"),t))).join(".")}toString(){return this.canonicalString()}isKeyField(){return 1===this.length&&"__name__"===this.get(0)}static keyField(){return new mr(["__name__"])}static fromServerFormat(t){const e=[];let n="",s=0;const r=()=>{if(0===n.length)throw new zs(Hs.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(;st.isEqual(e)))}} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */function yr(){return"undefined"!=typeof atob} +/** + * @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. + */class wr{constructor(t){this.binaryString=t}static fromBase64String(t){const e=atob(t);return new wr(e)}static fromUint8Array(t){const e=function(t){let e="";for(let n=0;n=Number.MIN_SAFE_INTEGER} +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */class xr{constructor(t){this.path=t}static fromPath(t){return new xr(fr.fromString(t))}static fromName(t){return new xr(fr.fromString(t).popFirst(5))}hasCollectionId(t){return this.path.length>=2&&this.path.get(this.path.length-2)===t}isEqual(t){return null!==t&&0===fr.comparator(this.path,t.path)}toString(){return this.path.toString()}static comparator(t,e){return fr.comparator(t.path,e.path)}static isDocumentKey(t){return t.length%2==0}static fromSegments(t){return new xr(new fr(t.slice()))}} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */function Cr(t){return"nullValue"in t?0:"booleanValue"in t?1:"integerValue"in t||"doubleValue"in t?2:"timestampValue"in t?3:"stringValue"in t?5:"bytesValue"in t?6:"referenceValue"in t?7:"geoPointValue"in t?8:"arrayValue"in t?9:"mapValue"in t?Ir(t)?4:10:js()}function kr(t,e){const n=Cr(t);if(n!==Cr(e))return!1;switch(n){case 0:return!0;case 1:return t.booleanValue===e.booleanValue;case 4:return _r(t).isEqual(_r(e));case 3:return function(t,e){if("string"==typeof t.timestampValue&&"string"==typeof e.timestampValue&&t.timestampValue.length===e.timestampValue.length)return t.timestampValue===e.timestampValue;const n=br(t.timestampValue),s=br(e.timestampValue);return n.seconds===s.seconds&&n.nanos===s.nanos}(t,e);case 5:return t.stringValue===e.stringValue;case 6:return function(t,e){return Er(t.bytesValue).isEqual(Er(e.bytesValue))}(t,e);case 7:return t.referenceValue===e.referenceValue;case 8:return function(t,e){return Tr(t.geoPointValue.latitude)===Tr(e.geoPointValue.latitude)&&Tr(t.geoPointValue.longitude)===Tr(e.geoPointValue.longitude)}(t,e);case 2:return function(t,e){if("integerValue"in t&&"integerValue"in e)return Tr(t.integerValue)===Tr(e.integerValue);if("doubleValue"in t&&"doubleValue"in e){const n=Tr(t.doubleValue),s=Tr(e.doubleValue);return n===s?Ar(n)===Ar(s):isNaN(n)&&isNaN(s)}return!1}(t,e);case 9:return ir(t.arrayValue.values||[],e.arrayValue.values||[],kr);case 10:return function(t,e){const n=t.mapValue.fields||{},s=e.mapValue.fields||{};if(ur(n)!==ur(s))return!1;for(const t in n)if(n.hasOwnProperty(t)&&(void 0===s[t]||!kr(n[t],s[t])))return!1;return!0}(t,e);default:return js()}}function Rr(t,e){return void 0!==(t.values||[]).find((t=>kr(t,e)))}function Lr(t,e){const n=Cr(t),s=Cr(e);if(n!==s)return rr(n,s);switch(n){case 0:return 0;case 1:return rr(t.booleanValue,e.booleanValue);case 2:return function(t,e){const n=Tr(t.integerValue||t.doubleValue),s=Tr(e.integerValue||e.doubleValue);return ns?1:n===s?0:isNaN(n)?isNaN(s)?0:-1:1}(t,e);case 3:return Or(t.timestampValue,e.timestampValue);case 4:return Or(_r(t),_r(e));case 5:return rr(t.stringValue,e.stringValue);case 6:return function(t,e){const n=Er(t),s=Er(e);return n.compareTo(s)}(t.bytesValue,e.bytesValue);case 7:return function(t,e){const n=t.split("/"),s=e.split("/");for(let t=0;te.mapValue.fields[t]=Kr(n))),e}if(t.arrayValue){const e={arrayValue:{values:[]}};for(let n=0;n<(t.arrayValue.values||[]).length;++n)e.arrayValue.values[n]=Kr(t.arrayValue.values[n]);return e}return Object.assign({},t)} +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */class $r{constructor(t){this.value=t}static empty(){return new $r({mapValue:{}})}field(t){if(t.isEmpty())return this.value;{let e=this.value;for(let n=0;n{if(!e.isImmediateParentOf(r)){const t=this.getFieldsMap(e);this.applyChanges(t,n,s),n={},s=[],e=r.popLast()}t?n[r.lastSegment()]=Kr(t):s.push(r.lastSegment())}));const r=this.getFieldsMap(e);this.applyChanges(r,n,s)}delete(t){const e=this.field(t.popLast());jr(e)&&e.mapValue.fields&&delete e.mapValue.fields[t.lastSegment()]}isEqual(t){return kr(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 $r(Kr(this.value))}}function Gr(t){const e=[];return hr(t.fields,((t,n)=>{const s=new mr([t]);if(jr(n)){const t=Gr(n.mapValue).fields;if(0===t.length)e.push(s);else for(const n of t)e.push(s.child(n))}else e.push(s)})),new pr(e) +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */}class Hr{constructor(t,e,n,s,r){this.key=t,this.documentType=e,this.version=n,this.data=s,this.documentState=r}static newInvalidDocument(t){return new Hr(t,0,cr.min(),$r.empty(),0)}static newFoundDocument(t,e,n){return new Hr(t,1,e,n,0)}static newNoDocument(t,e){return new Hr(t,2,e,$r.empty(),0)}static newUnknownDocument(t,e){return new Hr(t,3,e,$r.empty(),2)}convertToFoundDocument(t,e){return this.version=t,this.documentType=1,this.data=e,this.documentState=0,this}convertToNoDocument(t){return this.version=t,this.documentType=2,this.data=$r.empty(),this.documentState=0,this}convertToUnknownDocument(t){return this.version=t,this.documentType=3,this.data=$r.empty(),this.documentState=2,this}setHasCommittedMutations(){return this.documentState=2,this}setHasLocalMutations(){return this.documentState=1,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 Hr&&this.key.isEqual(t.key)&&this.version.isEqual(t.version)&&this.documentType===t.documentType&&this.documentState===t.documentState&&this.data.isEqual(t.data)}clone(){return new Hr(this.key,this.documentType,this.version,this.data.clone(),this.documentState)}toString(){return`Document(${this.key}, ${this.version}, ${JSON.stringify(this.data.value)}, {documentType: ${this.documentType}}), {documentState: ${this.documentState}})`}} +/** + * @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 zr{constructor(t,e=null,n=[],s=[],r=null,i=null,o=null){this.path=t,this.collectionGroup=e,this.orderBy=n,this.filters=s,this.limit=r,this.startAt=i,this.endAt=o,this.A=null}}function Qr(t,e=null,n=[],s=[],r=null,i=null,o=null){return new zr(t,e,n,s,r,i,o)}function Wr(t){const e=Gs(t);if(null===e.A){let t=e.path.canonicalString();null!==e.collectionGroup&&(t+="|cg:"+e.collectionGroup),t+="|f:",t+=e.filters.map((t=>function(t){return t.field.canonicalString()+t.op.toString()+Mr(t.value)}(t))).join(","),t+="|ob:",t+=e.orderBy.map((t=>function(t){return t.field.canonicalString()+t.dir}(t))).join(","),Nr(e.limit)||(t+="|l:",t+=e.limit),e.startAt&&(t+="|lb:",t+=ci(e.startAt)),e.endAt&&(t+="|ub:",t+=ci(e.endAt)),e.A=t}return e.A}function Yr(t,e){if(t.limit!==e.limit)return!1;if(t.orderBy.length!==e.orderBy.length)return!1;for(let n=0;n":return t>0;case">=":return t>=0;default:return js()}}v(){return["<","<=",">",">=","!=","not-in"].indexOf(this.op)>=0}}class Zr extends Jr{constructor(t,e,n){super(t,e,n),this.key=xr.fromName(n.referenceValue)}matches(t){const e=xr.comparator(t.key,this.key);return this.P(e)}}class ti extends Jr{constructor(t,e){super(t,"in",e),this.keys=ni("in",e)}matches(t){return this.keys.some((e=>e.isEqual(t.key)))}}class ei extends Jr{constructor(t,e){super(t,"not-in",e),this.keys=ni("not-in",e)}matches(t){return!this.keys.some((e=>e.isEqual(t.key)))}}function ni(t,e){var n;return((null===(n=e.arrayValue)||void 0===n?void 0:n.values)||[]).map((t=>xr.fromName(t.referenceValue)))}class si extends Jr{constructor(t,e){super(t,"array-contains",e)}matches(t){const e=t.data.field(this.field);return Ur(e)&&Rr(e.arrayValue,this.value)}}class ri extends Jr{constructor(t,e){super(t,"in",e)}matches(t){const e=t.data.field(this.field);return null!==e&&Rr(this.value.arrayValue,e)}}class ii extends Jr{constructor(t,e){super(t,"not-in",e)}matches(t){if(Rr(this.value.arrayValue,{nullValue:"NULL_VALUE"}))return!1;const e=t.data.field(this.field);return null!==e&&!Rr(this.value.arrayValue,e)}}class oi extends Jr{constructor(t,e){super(t,"array-contains-any",e)}matches(t){const e=t.data.field(this.field);return!(!Ur(e)||!e.arrayValue.values)&&e.arrayValue.values.some((t=>Rr(this.value.arrayValue,t)))}}class ai{constructor(t,e){this.position=t,this.before=e}}function ci(t){return`${t.before?"b":"a"}:${t.position.map((t=>Mr(t))).join(",")}`}class ui{constructor(t,e="asc"){this.field=t,this.dir=e}}function hi(t,e){return t.dir===e.dir&&t.field.isEqual(e.field)}function li(t,e,n){let s=0;for(let r=0;r0?t.explicitOrderBy[0].field:null}function vi(t){for(const e of t.filters)if(e.v())return e.field;return null}function bi(t){return null!==t.collectionGroup}function Ti(t){const e=Gs(t);if(null===e.V){e.V=[];const t=vi(e),n=wi(e);if(null!==t&&null===n)t.isKeyField()||e.V.push(new ui(t)),e.V.push(new ui(mr.keyField(),"asc"));else{let t=!1;for(const n of e.explicitOrderBy)e.V.push(n),n.field.isKeyField()&&(t=!0);if(!t){const t=e.explicitOrderBy.length>0?e.explicitOrderBy[e.explicitOrderBy.length-1].dir:"asc";e.V.push(new ui(mr.keyField(),t))}}}return e.V}function Ei(t){const e=Gs(t);if(!e.S)if("F"===e.limitType)e.S=Qr(e.path,e.collectionGroup,Ti(e),e.filters,e.limit,e.startAt,e.endAt);else{const t=[];for(const n of Ti(e)){const e="desc"===n.dir?"asc":"desc";t.push(new ui(n.field,e))}const n=e.endAt?new ai(e.endAt.position,!e.endAt.before):null,s=e.startAt?new ai(e.startAt.position,!e.startAt.before):null;e.S=Qr(e.path,e.collectionGroup,t,e.filters,e.limit,n,s)}return e.S}function Ii(t,e,n){return new fi(t.path,t.collectionGroup,t.explicitOrderBy.slice(),t.filters.slice(),e,n,t.startAt,t.endAt)}function Si(t,e){return Yr(Ei(t),Ei(e))&&t.limitType===e.limitType}function _i(t){return`${Wr(Ei(t))}|lt:${t.limitType}`}function Ni(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=>{var e;return`${(e=t).field.canonicalString()} ${e.op} ${Mr(e.value)}`})).join(", ")}]`),Nr(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: "+ci(t.startAt)),t.endAt&&(e+=", endAt: "+ci(t.endAt)),`Target(${e})`}(Ei(t))}; limitType=${t.limitType})`}function Ai(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):xr.isDocumentKey(t.path)?t.path.isEqual(n):t.path.isImmediateParentOf(n)}(t,e)&&function(t,e){for(const n of t.explicitOrderBy)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&&!li(t.startAt,Ti(t),e))&&(!t.endAt||!li(t.endAt,Ti(t),e))}(t,e)}function Di(t){return(e,n)=>{let s=!1;for(const r of Ti(t)){const t=xi(r,e,n);if(0!==t)return t;s=s||r.field.isKeyField()}return 0}}function xi(t,e,n){const s=t.field.isKeyField()?xr.comparator(e.key,n.key):function(t,e,n){const s=e.data.field(t),r=n.data.field(t);return null!==s&&null!==r?Lr(s,r):js()}(t.field,e,n);switch(t.dir){case"asc":return s;case"desc":return-1*s;default:return 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. + */function Ci(t,e){if(t.D){if(isNaN(e))return{doubleValue:"NaN"};if(e===1/0)return{doubleValue:"Infinity"};if(e===-1/0)return{doubleValue:"-Infinity"}}return{doubleValue:Ar(e)?"-0":e}}function ki(t){return{integerValue:""+t}}function Ri(t,e){return Dr(e)?ki(e):Ci(t,e)} +/** + * @license + * Copyright 2018 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */class Li{constructor(){this._=void 0}}function Oi(t,e,n){return t instanceof Pi?function(t,e){const n={fields:{__type__:{stringValue:"server_timestamp"},__local_write_time__:{timestampValue:{seconds:t.seconds,nanos:t.nanoseconds}}}};return e&&(n.fields.__previous_value__=e),{mapValue:n}}(n,e):t instanceof Vi?Ui(t,e):t instanceof qi?Bi(t,e):function(t,e){const n=Fi(t,e),s=Ki(n)+Ki(t.C);return Vr(n)&&Vr(t.C)?ki(s):Ci(t.N,s)}(t,e)}function Mi(t,e,n){return t instanceof Vi?Ui(t,e):t instanceof qi?Bi(t,e):n}function Fi(t,e){var n;return t instanceof ji?Vr(n=e)||function(t){return!!t&&"doubleValue"in t}(n)?e:{integerValue:0}:null}class Pi extends Li{}class Vi extends Li{constructor(t){super(),this.elements=t}}function Ui(t,e){const n=$i(e);for(const e of t.elements)n.some((t=>kr(t,e)))||n.push(e);return{arrayValue:{values:n}}}class qi extends Li{constructor(t){super(),this.elements=t}}function Bi(t,e){let n=$i(e);for(const e of t.elements)n=n.filter((t=>!kr(t,e)));return{arrayValue:{values:n}}}class ji extends Li{constructor(t,e){super(),this.N=t,this.C=e}}function Ki(t){return Tr(t.integerValue||t.doubleValue)}function $i(t){return Ur(t)&&t.arrayValue.values?t.arrayValue.values.slice():[]} +/** + * @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 Gi{constructor(t,e){this.field=t,this.transform=e}}class Hi{constructor(t,e){this.version=t,this.transformResults=e}}class zi{constructor(t,e){this.updateTime=t,this.exists=e}static none(){return new zi}static exists(t){return new zi(void 0,t)}static updateTime(t){return new zi(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 Qi(t,e){return void 0!==t.updateTime?e.isFoundDocument()&&e.version.isEqual(t.updateTime):void 0===t.exists||t.exists===e.isFoundDocument()}class Wi{}function Yi(t,e,n){t instanceof eo?function(t,e,n){const s=t.value.clone(),r=ro(t.fieldTransforms,e,n.transformResults);s.setAll(r),e.convertToFoundDocument(n.version,s).setHasCommittedMutations()}(t,e,n):t instanceof no?function(t,e,n){if(!Qi(t.precondition,e))return void e.convertToUnknownDocument(n.version);const s=ro(t.fieldTransforms,e,n.transformResults),r=e.data;r.setAll(so(t)),r.setAll(s),e.convertToFoundDocument(n.version,r).setHasCommittedMutations()}(t,e,n):function(t,e,n){e.convertToNoDocument(n.version).setHasCommittedMutations()}(0,e,n)}function Xi(t,e,n){t instanceof eo?function(t,e,n){if(!Qi(t.precondition,e))return;const s=t.value.clone(),r=io(t.fieldTransforms,n,e);s.setAll(r),e.convertToFoundDocument(to(e),s).setHasLocalMutations()}(t,e,n):t instanceof no?function(t,e,n){if(!Qi(t.precondition,e))return;const s=io(t.fieldTransforms,n,e),r=e.data;r.setAll(so(t)),r.setAll(s),e.convertToFoundDocument(to(e),r).setHasLocalMutations()}(t,e,n):function(t,e){Qi(t.precondition,e)&&e.convertToNoDocument(cr.min())}(t,e)}function Ji(t,e){let n=null;for(const s of t.fieldTransforms){const t=e.data.field(s.field),r=Fi(s.transform,t||null);null!=r&&(null==n&&(n=$r.empty()),n.set(s.field,r))}return n||null}function Zi(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)&&ir(t,e,((t,e)=>function(t,e){return t.field.isEqual(e.field)&&function(t,e){return t instanceof Vi&&e instanceof Vi||t instanceof qi&&e instanceof qi?ir(t.elements,e.elements,kr):t instanceof ji&&e instanceof ji?kr(t.C,e.C):t instanceof Pi&&e instanceof Pi}(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))}function to(t){return t.isFoundDocument()?t.version:cr.min()}class eo extends Wi{constructor(t,e,n,s=[]){super(),this.key=t,this.value=e,this.precondition=n,this.fieldTransforms=s,this.type=0}}class no extends Wi{constructor(t,e,n,s,r=[]){super(),this.key=t,this.data=e,this.fieldMask=n,this.precondition=s,this.fieldTransforms=r,this.type=1}}function so(t){const e=new Map;return t.fieldMask.fields.forEach((n=>{if(!n.isEmpty()){const s=t.data.field(n);e.set(n,s)}})),e}function ro(t,e,n){const s=new Map;Ks(t.length===n.length);for(let r=0;r0&&(e=e.right)}return null}indexOf(t){let e=0,n=this.root;for(;!n.isEmpty();){const s=this.comparator(t,n.key);if(0===s)return e+n.left.size;s<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 mo(this.root,null,this.comparator,!1)}getIteratorFrom(t){return new mo(this.root,t,this.comparator,!1)}getReverseIterator(){return new mo(this.root,null,this.comparator,!0)}getReverseIteratorFrom(t){return new mo(this.root,t,this.comparator,!0)}}class mo{constructor(t,e,n,s){this.isReverse=s,this.nodeStack=[];let r=1;for(;!t.isEmpty();)if(r=e?n(t.key,e):1,s&&(r*=-1),r<0)t=this.isReverse?t.left:t.right;else{if(0===r){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 po{constructor(t,e,n,s,r){this.key=t,this.value=e,this.color=null!=n?n:po.RED,this.left=null!=s?s:po.EMPTY,this.right=null!=r?r:po.EMPTY,this.size=this.left.size+1+this.right.size}copy(t,e,n,s,r){return new po(null!=t?t:this.key,null!=e?e:this.value,null!=n?n:this.color,null!=s?s:this.left,null!=r?r: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 s=this;const r=n(t,s.key);return s=r<0?s.copy(null,null,null,s.left.insert(t,e,n),null):0===r?s.copy(null,e,null,null,null):s.copy(null,null,null,null,s.right.insert(t,e,n)),s.fixUp()}removeMin(){if(this.left.isEmpty())return po.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,s=this;if(e(t,s.key)<0)s.left.isEmpty()||s.left.isRed()||s.left.left.isRed()||(s=s.moveRedLeft()),s=s.copy(null,null,null,s.left.remove(t,e),null);else{if(s.left.isRed()&&(s=s.rotateRight()),s.right.isEmpty()||s.right.isRed()||s.right.left.isRed()||(s=s.moveRedRight()),0===e(t,s.key)){if(s.right.isEmpty())return po.EMPTY;n=s.right.min(),s=s.copy(n.key,n.value,null,null,s.right.removeMin())}s=s.copy(null,null,null,null,s.right.remove(t,e))}return s.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,po.RED,null,this.right.left);return this.right.copy(null,null,this.color,t,null)}rotateRight(){const t=this.copy(null,null,po.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 js();if(this.right.isRed())throw js();const t=this.left.check();if(t!==this.right.check())throw js();return t+(this.isRed()?0:1)}}po.EMPTY=null,po.RED=!0,po.BLACK=!1,po.EMPTY=new class{constructor(){this.size=0}get key(){throw js()}get value(){throw js()}get color(){throw js()}get left(){throw js()}get right(){throw js()}copy(t,e,n,s,r){return this}insert(t,e,n){return new po(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}}; +/** + * @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 yo{constructor(t){this.comparator=t,this.data=new go(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 s=n.getNext();if(this.comparator(s.key,t[1])>=0)return;e(s.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 wo(this.data.getIterator())}getIteratorFrom(t){return new wo(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 yo))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,s=n.getNext().key;if(0!==this.comparator(t,s))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 yo(this.comparator);return e.data=t,e}}class wo{constructor(t){this.iter=t}getNext(){return this.iter.getNext().key}hasNext(){return this.iter.hasNext()}} +/** + * @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 vo=new go(xr.comparator);function bo(){return vo}const To=new go(xr.comparator);function Eo(){return To}const Io=new go(xr.comparator);function So(){return Io}const _o=new yo(xr.comparator);function No(...t){let e=_o;for(const n of t)e=e.add(n);return e}const Ao=new yo(rr);function Do(){return Ao} +/** + * @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 xo{constructor(t,e,n,s,r){this.snapshotVersion=t,this.targetChanges=e,this.targetMismatches=n,this.documentUpdates=s,this.resolvedLimboDocuments=r}static createSynthesizedRemoteEventForCurrentChange(t,e){const n=new Map;return n.set(t,Co.createSynthesizedTargetChangeForCurrentChange(t,e)),new xo(cr.min(),n,Do(),bo(),No())}}class Co{constructor(t,e,n,s,r){this.resumeToken=t,this.current=e,this.addedDocuments=n,this.modifiedDocuments=s,this.removedDocuments=r}static createSynthesizedTargetChangeForCurrentChange(t,e){return new Co(wr.EMPTY_BYTE_STRING,e,No(),No(),No())}} +/** + * @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 ko{constructor(t,e,n,s){this.k=t,this.removedTargetIds=e,this.key=n,this.$=s}}class Ro{constructor(t,e){this.targetId=t,this.O=e}}class Lo{constructor(t,e,n=wr.EMPTY_BYTE_STRING,s=null){this.state=t,this.targetIds=e,this.resumeToken=n,this.cause=s}}class Oo{constructor(){this.F=0,this.M=Po(),this.L=wr.EMPTY_BYTE_STRING,this.B=!1,this.U=!0}get current(){return this.B}get resumeToken(){return this.L}get q(){return 0!==this.F}get K(){return this.U}j(t){t.approximateByteSize()>0&&(this.U=!0,this.L=t)}W(){let t=No(),e=No(),n=No();return this.M.forEach(((s,r)=>{switch(r){case 0:t=t.add(s);break;case 2:e=e.add(s);break;case 1:n=n.add(s);break;default:js()}})),new Co(this.L,this.B,t,e,n)}G(){this.U=!1,this.M=Po()}H(t,e){this.U=!0,this.M=this.M.insert(t,e)}J(t){this.U=!0,this.M=this.M.remove(t)}Y(){this.F+=1}X(){this.F-=1}Z(){this.U=!0,this.B=!0}}class Mo{constructor(t){this.tt=t,this.et=new Map,this.nt=bo(),this.st=Fo(),this.it=new yo(rr)}rt(t){for(const e of t.k)t.$&&t.$.isFoundDocument()?this.ot(e,t.$):this.ct(e,t.key,t.$);for(const e of t.removedTargetIds)this.ct(e,t.key,t.$)}at(t){this.forEachTarget(t,(e=>{const n=this.ut(e);switch(t.state){case 0:this.ht(e)&&n.j(t.resumeToken);break;case 1:n.X(),n.q||n.G(),n.j(t.resumeToken);break;case 2:n.X(),n.q||this.removeTarget(e);break;case 3:this.ht(e)&&(n.Z(),n.j(t.resumeToken));break;case 4:this.ht(e)&&(this.lt(e),n.j(t.resumeToken));break;default:js()}}))}forEachTarget(t,e){t.targetIds.length>0?t.targetIds.forEach(e):this.et.forEach(((t,n)=>{this.ht(n)&&e(n)}))}ft(t){const e=t.targetId,n=t.O.count,s=this.dt(e);if(s){const t=s.target;if(Xr(t))if(0===n){const n=new xr(t.path);this.ct(e,n,Hr.newNoDocument(n,cr.min()))}else Ks(1===n);else this.wt(e)!==n&&(this.lt(e),this.it=this.it.add(e))}}_t(t){const e=new Map;this.et.forEach(((n,s)=>{const r=this.dt(s);if(r){if(n.current&&Xr(r.target)){const e=new xr(r.target.path);null!==this.nt.get(e)||this.gt(s,e)||this.ct(s,e,Hr.newNoDocument(e,t))}n.K&&(e.set(s,n.W()),n.G())}}));let n=No();this.st.forEach(((t,e)=>{let s=!0;e.forEachWhile((t=>{const e=this.dt(t);return!e||2===e.purpose||(s=!1,!1)})),s&&(n=n.add(t))}));const s=new xo(t,e,this.it,this.nt,n);return this.nt=bo(),this.st=Fo(),this.it=new yo(rr),s}ot(t,e){if(!this.ht(t))return;const n=this.gt(t,e.key)?2:0;this.ut(t).H(e.key,n),this.nt=this.nt.insert(e.key,e),this.st=this.st.insert(e.key,this.yt(e.key).add(t))}ct(t,e,n){if(!this.ht(t))return;const s=this.ut(t);this.gt(t,e)?s.H(e,1):s.J(e),this.st=this.st.insert(e,this.yt(e).delete(t)),n&&(this.nt=this.nt.insert(e,n))}removeTarget(t){this.et.delete(t)}wt(t){const e=this.ut(t).W();return this.tt.getRemoteKeysForTarget(t).size+e.addedDocuments.size-e.removedDocuments.size}Y(t){this.ut(t).Y()}ut(t){let e=this.et.get(t);return e||(e=new Oo,this.et.set(t,e)),e}yt(t){let e=this.st.get(t);return e||(e=new yo(rr),this.st=this.st.insert(t,e)),e}ht(t){const e=null!==this.dt(t);return e||Vs("WatchChangeAggregator","Detected inactive target",t),e}dt(t){const e=this.et.get(t);return e&&e.q?null:this.tt.Tt(t)}lt(t){this.et.set(t,new Oo),this.tt.getRemoteKeysForTarget(t).forEach((e=>{this.ct(t,e,null)}))}gt(t,e){return this.tt.getRemoteKeysForTarget(t).has(e)}}function Fo(){return new go(xr.comparator)}function Po(){return new go(xr.comparator)} +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */const Vo={asc:"ASCENDING",desc:"DESCENDING"},Uo={"<":"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"};class qo{constructor(t,e){this.databaseId=t,this.D=e}}function Bo(t,e){return t.D?`${new Date(1e3*e.seconds).toISOString().replace(/\.\d*/,"").replace("Z","")}.${("000000000"+e.nanoseconds).slice(-9)}Z`:{seconds:""+e.seconds,nanos:e.nanoseconds}}function jo(t,e){return t.D?e.toBase64():e.toUint8Array()}function Ko(t,e){return Bo(t,e.toTimestamp())}function $o(t){return Ks(!!t),cr.fromTimestamp(function(t){const e=br(t);return new ar(e.seconds,e.nanos)}(t))}function Go(t,e){return function(t){return new fr(["projects",t.projectId,"databases",t.database])}(t).child("documents").child(e).canonicalString()}function Ho(t){const e=fr.fromString(t);return Ks(pa(e)),e}function zo(t,e){return Go(t.databaseId,e.path)}function Qo(t,e){const n=Ho(e);if(n.get(1)!==t.databaseId.projectId)throw new zs(Hs.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 zs(Hs.INVALID_ARGUMENT,"Tried to deserialize key from different database: "+n.get(3)+" vs "+t.databaseId.database);return new xr(Jo(n))}function Wo(t,e){return Go(t.databaseId,e)}function Yo(t){const e=Ho(t);return 4===e.length?fr.emptyPath():Jo(e)}function Xo(t){return new fr(["projects",t.databaseId.projectId,"databases",t.databaseId.database]).canonicalString()}function Jo(t){return Ks(t.length>4&&"documents"===t.get(4)),t.popFirst(5)}function Zo(t,e,n){return{name:zo(t,e),fields:n.value.mapValue.fields}}function ta(t,e,n){const s=Qo(t,e.name),r=$o(e.updateTime),i=new $r({mapValue:{fields:e.fields}}),o=Hr.newFoundDocument(s,r,i);return n&&o.setHasCommittedMutations(),n?o.setHasCommittedMutations():o}function ea(t,e){let n;if(e instanceof eo)n={update:Zo(t,e.key,e.value)};else if(e instanceof oo)n={delete:zo(t,e.key)};else if(e instanceof no)n={update:Zo(t,e.key,e.data),updateMask:ma(e.fieldMask)};else{if(!(e instanceof ao))return js();n={verify:zo(t,e.key)}}return e.fieldTransforms.length>0&&(n.updateTransforms=e.fieldTransforms.map((t=>function(t,e){const n=e.transform;if(n instanceof Pi)return{fieldPath:e.field.canonicalString(),setToServerValue:"REQUEST_TIME"};if(n instanceof Vi)return{fieldPath:e.field.canonicalString(),appendMissingElements:{values:n.elements}};if(n instanceof qi)return{fieldPath:e.field.canonicalString(),removeAllFromArray:{values:n.elements}};if(n instanceof ji)return{fieldPath:e.field.canonicalString(),increment:n.C};throw js()}(0,t)))),e.precondition.isNone||(n.currentDocument=function(t,e){return void 0!==e.updateTime?{updateTime:Ko(t,e.updateTime)}:void 0!==e.exists?{exists:e.exists}:js()}(t,e.precondition)),n}function na(t,e){const n=e.currentDocument?function(t){return void 0!==t.updateTime?zi.updateTime($o(t.updateTime)):void 0!==t.exists?zi.exists(t.exists):zi.none()}(e.currentDocument):zi.none(),s=e.updateTransforms?e.updateTransforms.map((e=>function(t,e){let n=null;if("setToServerValue"in e)Ks("REQUEST_TIME"===e.setToServerValue),n=new Pi;else if("appendMissingElements"in e){const t=e.appendMissingElements.values||[];n=new Vi(t)}else if("removeAllFromArray"in e){const t=e.removeAllFromArray.values||[];n=new qi(t)}else"increment"in e?n=new ji(t,e.increment):js();const s=mr.fromServerFormat(e.fieldPath);return new Gi(s,n)}(t,e))):[];if(e.update){e.update.name;const r=Qo(t,e.update.name),i=new $r({mapValue:{fields:e.update.fields}});if(e.updateMask){const t=function(t){const e=t.fieldPaths||[];return new pr(e.map((t=>mr.fromServerFormat(t))))}(e.updateMask);return new no(r,i,t,n,s)}return new eo(r,i,n,s)}if(e.delete){const s=Qo(t,e.delete);return new oo(s,n)}if(e.verify){const s=Qo(t,e.verify);return new ao(s,n)}return js()}function sa(t,e){return{documents:[Wo(t,e.path)]}}function ra(t,e){const n={structuredQuery:{}},s=e.path;null!==e.collectionGroup?(n.parent=Wo(t,s),n.structuredQuery.from=[{collectionId:e.collectionGroup,allDescendants:!0}]):(n.parent=Wo(t,s.popLast()),n.structuredQuery.from=[{collectionId:s.lastSegment()}]);const r=function(t){if(0===t.length)return;const e=t.map((t=>function(t){if("=="===t.op){if(Br(t.value))return{unaryFilter:{field:la(t.field),op:"IS_NAN"}};if(qr(t.value))return{unaryFilter:{field:la(t.field),op:"IS_NULL"}}}else if("!="===t.op){if(Br(t.value))return{unaryFilter:{field:la(t.field),op:"IS_NOT_NAN"}};if(qr(t.value))return{unaryFilter:{field:la(t.field),op:"IS_NOT_NULL"}}}return{fieldFilter:{field:la(t.field),op:ha(t.op),value:t.value}}}(t)));return 1===e.length?e[0]:{compositeFilter:{op:"AND",filters:e}}}(e.filters);r&&(n.structuredQuery.where=r);const i=function(t){if(0!==t.length)return t.map((t=>function(t){return{field:la(t.field),direction:ua(t.dir)}}(t)))}(e.orderBy);i&&(n.structuredQuery.orderBy=i);const o=function(t,e){return t.D||Nr(e)?e:{value:e}}(t,e.limit);return null!==o&&(n.structuredQuery.limit=o),e.startAt&&(n.structuredQuery.startAt=aa(e.startAt)),e.endAt&&(n.structuredQuery.endAt=aa(e.endAt)),n}function ia(t){let e=Yo(t.parent);const n=t.structuredQuery,s=n.from?n.from.length:0;let r=null;if(s>0){Ks(1===s);const t=n.from[0];t.allDescendants?r=t.collectionId:e=e.child(t.collectionId)}let i=[];n.where&&(i=oa(n.where));let o=[];n.orderBy&&(o=n.orderBy.map((t=>function(t){return new ui(da(t.field),function(t){switch(t){case"ASCENDING":return"asc";case"DESCENDING":return"desc";default:return}}(t.direction))}(t))));let a=null;n.limit&&(a=function(t){let e;return e="object"==typeof t?t.value:t,Nr(e)?null:e}(n.limit));let c=null;n.startAt&&(c=ca(n.startAt));let u=null;return n.endAt&&(u=ca(n.endAt)),gi(e,r,o,i,a,"F",c,u)}function oa(t){return t?void 0!==t.unaryFilter?[ga(t)]:void 0!==t.fieldFilter?[fa(t)]:void 0!==t.compositeFilter?t.compositeFilter.filters.map((t=>oa(t))).reduce(((t,e)=>t.concat(e))):js():[]}function aa(t){return{before:t.before,values:t.position}}function ca(t){const e=!!t.before,n=t.values||[];return new ai(n,e)}function ua(t){return Vo[t]}function ha(t){return Uo[t]}function la(t){return{fieldPath:t.canonicalString()}}function da(t){return mr.fromServerFormat(t.fieldPath)}function fa(t){return Jr.create(da(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 js()}}(t.fieldFilter.op),t.fieldFilter.value)}function ga(t){switch(t.unaryFilter.op){case"IS_NAN":const e=da(t.unaryFilter.field);return Jr.create(e,"==",{doubleValue:NaN});case"IS_NULL":const n=da(t.unaryFilter.field);return Jr.create(n,"==",{nullValue:"NULL_VALUE"});case"IS_NOT_NAN":const s=da(t.unaryFilter.field);return Jr.create(s,"!=",{doubleValue:NaN});case"IS_NOT_NULL":const r=da(t.unaryFilter.field);return Jr.create(r,"!=",{nullValue:"NULL_VALUE"});default:return js()}}function ma(t){const e=[];return t.fields.forEach((t=>e.push(t.canonicalString()))),{fieldPaths:e}}function pa(t){return t.length>=4&&"projects"===t.get(0)&&"databases"===t.get(2)} +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */function ya(t){let e="";for(let n=0;n0&&(e=va(e)),e=wa(t.get(n),e);return va(e)}function wa(t,e){let n=e;const s=t.length;for(let e=0;e=2),2===e)return Ks(""===t.charAt(0)&&""===t.charAt(1)),fr.emptyPath();const n=e-2,s=[];let r="";for(let i=0;in)&&js(),t.charAt(e+1)){case"":const n=t.substring(i,e);let o;0===r.length?o=n:(r+=n,o=r,r=""),s.push(o);break;case"":r+=t.substring(i,e),r+="\0";break;case"":r+=t.substring(i,e+1);break;default:js()}i=e+2}return new fr(s)} +/** + * @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 Ta{constructor(t,e){this.seconds=t,this.nanoseconds=e}}class Ea{constructor(t,e,n){this.ownerId=t,this.allowTabSynchronization=e,this.leaseTimestampMs=n}}Ea.store="owner",Ea.key="owner";class Ia{constructor(t,e,n){this.userId=t,this.lastAcknowledgedBatchId=e,this.lastStreamToken=n}}Ia.store="mutationQueues",Ia.keyPath="userId";class Sa{constructor(t,e,n,s,r){this.userId=t,this.batchId=e,this.localWriteTimeMs=n,this.baseMutations=s,this.mutations=r}}Sa.store="mutations",Sa.keyPath="batchId",Sa.userMutationsIndex="userMutationsIndex",Sa.userMutationsKeyPath=["userId","batchId"];class _a{constructor(){}static prefixForUser(t){return[t]}static prefixForPath(t,e){return[t,ya(e)]}static key(t,e,n){return[t,ya(e),n]}}_a.store="documentMutations",_a.PLACEHOLDER=new _a;class Na{constructor(t,e){this.path=t,this.readTime=e}}class Aa{constructor(t,e){this.path=t,this.version=e}}class Da{constructor(t,e,n,s,r,i){this.unknownDocument=t,this.noDocument=e,this.document=n,this.hasCommittedMutations=s,this.readTime=r,this.parentPath=i}}Da.store="remoteDocuments",Da.readTimeIndex="readTimeIndex",Da.readTimeIndexPath="readTime",Da.collectionReadTimeIndex="collectionReadTimeIndex",Da.collectionReadTimeIndexPath=["parentPath","readTime"];class xa{constructor(t){this.byteSize=t}}xa.store="remoteDocumentGlobal",xa.key="remoteDocumentGlobalKey";class Ca{constructor(t,e,n,s,r,i,o){this.targetId=t,this.canonicalId=e,this.readTime=n,this.resumeToken=s,this.lastListenSequenceNumber=r,this.lastLimboFreeSnapshotVersion=i,this.query=o}}Ca.store="targets",Ca.keyPath="targetId",Ca.queryTargetsIndexName="queryTargetsIndex",Ca.queryTargetsKeyPath=["canonicalId","targetId"];class ka{constructor(t,e,n){this.targetId=t,this.path=e,this.sequenceNumber=n}}ka.store="targetDocuments",ka.keyPath=["targetId","path"],ka.documentTargetsIndex="documentTargetsIndex",ka.documentTargetsKeyPath=["path","targetId"];class Ra{constructor(t,e,n,s){this.highestTargetId=t,this.highestListenSequenceNumber=e,this.lastRemoteSnapshotVersion=n,this.targetCount=s}}Ra.key="targetGlobalKey",Ra.store="targetGlobal";class La{constructor(t,e){this.collectionId=t,this.parent=e}}La.store="collectionParents",La.keyPath=["collectionId","parent"];class Oa{constructor(t,e,n,s){this.clientId=t,this.updateTimeMs=e,this.networkEnabled=n,this.inForeground=s}}Oa.store="clientMetadata",Oa.keyPath="clientId";class Ma{constructor(t,e,n){this.bundleId=t,this.createTime=e,this.version=n}}Ma.store="bundles",Ma.keyPath="bundleId";class Fa{constructor(t,e,n){this.name=t,this.readTime=e,this.bundledQuery=n}}Fa.store="namedQueries",Fa.keyPath="name";const Pa=[Ia.store,Sa.store,_a.store,Da.store,Ca.store,Ea.store,Ra.store,ka.store,Oa.store,xa.store,La.store,Ma.store,Fa.store],Va="The current tab is not in the required state to perform this operation. It might be necessary to refresh the browser tab.";class Ua{constructor(){this.onCommittedListeners=[]}addOnCommittedListener(t){this.onCommittedListeners.push(t)}raiseOnCommittedEvent(){this.onCommittedListeners.forEach((t=>t()))}} +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */class qa{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&&js(),this.callbackAttached=!0,this.isDone?this.error?this.wrapFailure(e,this.error):this.wrapSuccess(t,this.result):new qa(((n,s)=>{this.nextCallback=e=>{this.wrapSuccess(t,e).next(n,s)},this.catchCallback=t=>{this.wrapFailure(e,t).next(n,s)}}))}toPromise(){return new Promise(((t,e)=>{this.next(t,e)}))}wrapUserFunction(t){try{const e=t();return e instanceof qa?e:qa.resolve(e)}catch(t){return qa.reject(t)}}wrapSuccess(t,e){return t?this.wrapUserFunction((()=>t(e))):qa.resolve(e)}wrapFailure(t,e){return t?this.wrapUserFunction((()=>t(e))):qa.reject(e)}static resolve(t){return new qa(((e,n)=>{e(t)}))}static reject(t){return new qa(((e,n)=>{n(t)}))}static waitFor(t){return new qa(((e,n)=>{let s=0,r=0,i=!1;t.forEach((t=>{++s,t.next((()=>{++r,i&&r===s&&e()}),(t=>n(t)))})),i=!0,r===s&&e()}))}static or(t){let e=qa.resolve(!1);for(const n of t)e=e.next((t=>t?qa.resolve(t):n()));return e}static forEach(t,e){const n=[];return t.forEach(((t,s)=>{n.push(e.call(this,t,s))})),this.waitFor(n)}} +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */class Ba{constructor(t,e){this.action=t,this.transaction=e,this.aborted=!1,this.Et=new Qs,this.transaction.oncomplete=()=>{this.Et.resolve()},this.transaction.onabort=()=>{e.error?this.Et.reject(new $a(t,e.error)):this.Et.resolve()},this.transaction.onerror=e=>{const n=Wa(e.target.error);this.Et.reject(new $a(t,n))}}static open(t,e,n,s){try{return new Ba(e,t.transaction(s,n))}catch(t){throw new $a(e,t)}}get It(){return this.Et.promise}abort(t){t&&this.Et.reject(t),this.aborted||(Vs("SimpleDb","Aborting transaction:",t?t.message:"Client-initiated abort"),this.aborted=!0,this.transaction.abort())}store(t){const e=this.transaction.objectStore(t);return new Ha(e)}}class ja{constructor(t,e,n){this.name=t,this.version=e,this.At=n,12.2===ja.Rt(h())&&Us("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 Vs("SimpleDb","Removing database:",t),za(window.indexedDB.deleteDatabase(t)).toPromise()}static bt(){if("object"!=typeof indexedDB)return!1;if(ja.Pt())return!0;const t=h(),e=ja.Rt(t),n=00||t.indexOf("Trident/")>0||t.indexOf("Edge/")>0||n||r)}static Pt(){var t;return void 0!==o&&"YES"===(void 0===(t={})?void 0:t.Vt)}static St(t,e){return t.store(e)}static Rt(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 vt(t){const e=t.match(/Android ([\d.]+)/i),n=e?e[1].split(".").slice(0,2).join("."):"-1";return Number(n)}async Dt(t){return this.db||(Vs("SimpleDb","Opening database:",this.name),this.db=await new Promise(((e,n)=>{const s=indexedDB.open(this.name,this.version);s.onsuccess=t=>{const n=t.target.result;e(n)},s.onblocked=()=>{n(new $a(t,"Cannot upgrade IndexedDB schema while another tab is open. Close all tabs that access Firestore and reload this page to proceed."))},s.onerror=e=>{const s=e.target.error;"VersionError"===s.name?n(new zs(Hs.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"===s.name?n(new zs(Hs.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: "+s)):n(new $a(t,s))},s.onupgradeneeded=t=>{Vs("SimpleDb",'Database "'+this.name+'" requires upgrade from version:',t.oldVersion);const e=t.target.result;this.At.Ct(e,s.transaction,t.oldVersion,this.version).next((()=>{Vs("SimpleDb","Database upgrade to version "+this.version+" complete")}))}}))),this.Nt&&(this.db.onversionchange=t=>this.Nt(t)),this.db}xt(t){this.Nt=t,this.db&&(this.db.onversionchange=e=>t(e))}async runTransaction(t,e,n,s){const r="readonly"===e;let i=0;for(;;){++i;try{this.db=await this.Dt(t);const e=Ba.open(this.db,t,r?"readonly":"readwrite",n),i=s(e).catch((t=>(e.abort(t),qa.reject(t)))).toPromise();return i.catch((()=>{})),await e.It,i}catch(t){const e="FirebaseError"!==t.name&&i<3;if(Vs("SimpleDb","Transaction failed with error:",t.message,"Retrying:",e),this.close(),!e)return Promise.reject(t)}}}close(){this.db&&this.db.close(),this.db=void 0}}class Ka{constructor(t){this.kt=t,this.$t=!1,this.Ot=null}get isDone(){return this.$t}get Ft(){return this.Ot}set cursor(t){this.kt=t}done(){this.$t=!0}Mt(t){this.Ot=t}delete(){return za(this.kt.delete())}}class $a extends zs{constructor(t,e){super(Hs.UNAVAILABLE,`IndexedDB transaction '${t}' failed: ${e}`),this.name="IndexedDbTransactionError"}}function Ga(t){return"IndexedDbTransactionError"===t.name}class Ha{constructor(t){this.store=t}put(t,e){let n;return void 0!==e?(Vs("SimpleDb","PUT",this.store.name,t,e),n=this.store.put(e,t)):(Vs("SimpleDb","PUT",this.store.name,"",t),n=this.store.put(t)),za(n)}add(t){return Vs("SimpleDb","ADD",this.store.name,t,t),za(this.store.add(t))}get(t){return za(this.store.get(t)).next((e=>(void 0===e&&(e=null),Vs("SimpleDb","GET",this.store.name,t,e),e)))}delete(t){return Vs("SimpleDb","DELETE",this.store.name,t),za(this.store.delete(t))}count(){return Vs("SimpleDb","COUNT",this.store.name),za(this.store.count())}Lt(t,e){const n=this.cursor(this.options(t,e)),s=[];return this.Bt(n,((t,e)=>{s.push(e)})).next((()=>s))}Ut(t,e){Vs("SimpleDb","DELETE ALL",this.store.name);const n=this.options(t,e);n.qt=!1;const s=this.cursor(n);return this.Bt(s,((t,e,n)=>n.delete()))}Kt(t,e){let n;e?n=t:(n={},e=t);const s=this.cursor(n);return this.Bt(s,e)}jt(t){const e=this.cursor({});return new qa(((n,s)=>{e.onerror=t=>{const e=Wa(t.target.error);s(e)},e.onsuccess=e=>{const s=e.target.result;s?t(s.primaryKey,s.value).next((t=>{t?s.continue():n()})):n()}}))}Bt(t,e){const n=[];return new qa(((s,r)=>{t.onerror=t=>{r(t.target.error)},t.onsuccess=t=>{const r=t.target.result;if(!r)return void s();const i=new Ka(r),o=e(r.primaryKey,r.value,i);if(o instanceof qa){const t=o.catch((t=>(i.done(),qa.reject(t))));n.push(t)}i.isDone?s():null===i.Ft?r.continue():r.continue(i.Ft)}})).next((()=>qa.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.qt?n.openKeyCursor(t.range,e):n.openCursor(t.range,e)}return this.store.openCursor(t.range,e)}}function za(t){return new qa(((e,n)=>{t.onsuccess=t=>{const n=t.target.result;e(n)},t.onerror=t=>{const e=Wa(t.target.error);n(e)}}))}let Qa=!1;function Wa(t){const e=ja.Rt(h());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 zs("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 Qa||(Qa=!0,setTimeout((()=>{throw t}),0)),t}}return t} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */class Ya extends Ua{constructor(t,e){super(),this.Qt=t,this.currentSequenceNumber=e}}function Xa(t,e){const n=Gs(t);return ja.St(n.Qt,e)} +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */class Ja{constructor(t,e,n,s){this.batchId=t,this.localWriteTime=e,this.baseMutations=n,this.mutations=s}applyToRemoteDocument(t,e){const n=e.mutationResults;for(let e=0;e{const n=t.get(e.key),s=n;this.applyToLocalView(s),n.isValidDocument()||s.convertToNoDocument(cr.min())}))}keys(){return this.mutations.reduce(((t,e)=>t.add(e.key)),No())}isEqual(t){return this.batchId===t.batchId&&ir(this.mutations,t.mutations,((t,e)=>Zi(t,e)))&&ir(this.baseMutations,t.baseMutations,((t,e)=>Zi(t,e)))}}class Za{constructor(t,e,n,s){this.batch=t,this.commitVersion=e,this.mutationResults=n,this.docVersions=s}static from(t,e,n){Ks(t.mutations.length===n.length);let s=So();const r=t.mutations;for(let t=0;tna(t.Wt,e)));for(let t=0;tna(t.Wt,e))),r=ar.fromMillis(e.localWriteTimeMs);return new Ja(e.batchId,r,n,s)}function uc(t){const e=ac(t.readTime),n=void 0!==t.lastLimboFreeSnapshotVersion?ac(t.lastLimboFreeSnapshotVersion):cr.min();let s;var r;return void 0!==t.query.documents?(Ks(1===(r=t.query).documents.length),s=Ei(mi(Yo(r.documents[0])))):s=function(t){return Ei(ia(t))}(t.query),new tc(s,t.targetId,0,t.lastListenSequenceNumber,e,n,wr.fromBase64String(t.resumeToken))}function hc(t,e){const n=oc(e.snapshotVersion),s=oc(e.lastLimboFreeSnapshotVersion);let r;r=Xr(e.target)?sa(t.Wt,e.target):ra(t.Wt,e.target);const i=e.resumeToken.toBase64();return new Ca(e.targetId,Wr(e.target),n,i,e.sequenceNumber,s,r)}function lc(t){const e=ia({parent:t.parent,structuredQuery:t.structuredQuery});return"LAST"===t.limitType?Ii(e,e.limit,"L"):e} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */class dc{getBundleMetadata(t,e){return fc(t).get(e).next((t=>{if(t)return{id:(e=t).bundleId,createTime:ac(e.createTime),version:e.version};var e}))}saveBundleMetadata(t,e){var n;return fc(t).put({bundleId:(n=e).id,createTime:oc($o(n.createTime)),version:n.version})}getNamedQuery(t,e){return gc(t).get(e).next((t=>{if(t)return{name:(e=t).name,query:lc(e.bundledQuery),readTime:ac(e.readTime)};var e}))}saveNamedQuery(t,e){return gc(t).put(function(t){return{name:t.name,readTime:oc($o(t.readTime)),bundledQuery:t.bundledQuery}}(e))}}function fc(t){return Xa(t,Ma.store)}function gc(t){return Xa(t,Fa.store)} +/** + * @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 mc{constructor(){this.Gt=new pc}addToCollectionParentIndex(t,e){return this.Gt.add(e),qa.resolve()}getCollectionParents(t,e){return qa.resolve(this.Gt.getEntries(e))}}class pc{constructor(){this.index={}}add(t){const e=t.lastSegment(),n=t.popLast(),s=this.index[e]||new yo(fr.comparator),r=!s.has(n);return this.index[e]=s.add(n),r}has(t){const e=t.lastSegment(),n=t.popLast(),s=this.index[e];return s&&s.has(n)}getEntries(t){return(this.index[t]||new yo(fr.comparator)).toArray()}} +/** + * @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 yc{constructor(){this.zt=new pc}addToCollectionParentIndex(t,e){if(!this.zt.has(e)){const n=e.lastSegment(),s=e.popLast();t.addOnCommittedListener((()=>{this.zt.add(e)}));const r={collectionId:n,parent:ya(s)};return wc(t).put(r)}return qa.resolve()}getCollectionParents(t,e){const n=[],s=IDBKeyRange.bound([e,""],[or(e),""],!1,!0);return wc(t).Lt(s).next((t=>{for(const s of t){if(s.collectionId!==e)break;n.push(ba(s.parent))}return n}))}}function wc(t){return Xa(t,La.store)} +/** + * @license + * Copyright 2018 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */const vc={didRun:!1,sequenceNumbersCollected:0,targetsRemoved:0,documentsRemoved:0};class bc{constructor(t,e,n){this.cacheSizeCollectionThreshold=t,this.percentileToCollect=e,this.maximumSequenceNumbersToCollect=n}static withCacheSize(t){return new bc(t,bc.DEFAULT_COLLECTION_PERCENTILE,bc.DEFAULT_MAX_SEQUENCE_NUMBERS_TO_COLLECT)}} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */function Tc(t,e,n){const s=t.store(Sa.store),r=t.store(_a.store),i=[],o=IDBKeyRange.only(n.batchId);let a=0;const c=s.Kt({range:o},((t,e,n)=>(a++,n.delete())));i.push(c.next((()=>{Ks(1===a)})));const u=[];for(const t of n.mutations){const s=_a.key(e,t.key.path,n.batchId);i.push(r.delete(s)),u.push(t.key)}return qa.waitFor(i).next((()=>u))}function Ec(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 js();e=t.noDocument}return JSON.stringify(e).length} +/** + * @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. + */bc.DEFAULT_COLLECTION_PERCENTILE=10,bc.DEFAULT_MAX_SEQUENCE_NUMBERS_TO_COLLECT=1e3,bc.DEFAULT=new bc(41943040,bc.DEFAULT_COLLECTION_PERCENTILE,bc.DEFAULT_MAX_SEQUENCE_NUMBERS_TO_COLLECT),bc.DISABLED=new bc(-1,0,0);class Ic{constructor(t,e,n,s){this.userId=t,this.N=e,this.Ht=n,this.referenceDelegate=s,this.Jt={}}static Yt(t,e,n,s){Ks(""!==t.uid);const r=t.isAuthenticated()?t.uid:"";return new Ic(r,e,n,s)}checkEmpty(t){let e=!0;const n=IDBKeyRange.bound([this.userId,Number.NEGATIVE_INFINITY],[this.userId,Number.POSITIVE_INFINITY]);return _c(t).Kt({index:Sa.userMutationsIndex,range:n},((t,n,s)=>{e=!1,s.done()})).next((()=>e))}addMutationBatch(t,e,n,s){const r=Nc(t),i=_c(t);return i.add({}).next((o=>{Ks("number"==typeof o);const a=new Ja(o,e,n,s),c=function(t,e,n){const s=n.baseMutations.map((e=>ea(t.Wt,e))),r=n.mutations.map((e=>ea(t.Wt,e)));return new Sa(e,n.batchId,n.localWriteTime.toMillis(),s,r)}(this.N,this.userId,a),u=[];let h=new yo(((t,e)=>rr(t.canonicalString(),e.canonicalString())));for(const t of s){const e=_a.key(this.userId,t.key.path,o);h=h.add(t.key.path.popLast()),u.push(i.put(c)),u.push(r.put(e,_a.PLACEHOLDER))}return h.forEach((e=>{u.push(this.Ht.addToCollectionParentIndex(t,e))})),t.addOnCommittedListener((()=>{this.Jt[o]=a.keys()})),qa.waitFor(u).next((()=>a))}))}lookupMutationBatch(t,e){return _c(t).get(e).next((t=>t?(Ks(t.userId===this.userId),cc(this.N,t)):null))}Xt(t,e){return this.Jt[e]?qa.resolve(this.Jt[e]):this.lookupMutationBatch(t,e).next((t=>{if(t){const n=t.keys();return this.Jt[e]=n,n}return null}))}getNextMutationBatchAfterBatchId(t,e){const n=e+1,s=IDBKeyRange.lowerBound([this.userId,n]);let r=null;return _c(t).Kt({index:Sa.userMutationsIndex,range:s},((t,e,s)=>{e.userId===this.userId&&(Ks(e.batchId>=n),r=cc(this.N,e)),s.done()})).next((()=>r))}getHighestUnacknowledgedBatchId(t){const e=IDBKeyRange.upperBound([this.userId,Number.POSITIVE_INFINITY]);let n=-1;return _c(t).Kt({index:Sa.userMutationsIndex,range:e,reverse:!0},((t,e,s)=>{n=e.batchId,s.done()})).next((()=>n))}getAllMutationBatches(t){const e=IDBKeyRange.bound([this.userId,-1],[this.userId,Number.POSITIVE_INFINITY]);return _c(t).Lt(Sa.userMutationsIndex,e).next((t=>t.map((t=>cc(this.N,t)))))}getAllMutationBatchesAffectingDocumentKey(t,e){const n=_a.prefixForPath(this.userId,e.path),s=IDBKeyRange.lowerBound(n),r=[];return Nc(t).Kt({range:s},((n,s,i)=>{const[o,a,c]=n,u=ba(a);if(o===this.userId&&e.path.isEqual(u))return _c(t).get(c).next((t=>{if(!t)throw js();Ks(t.userId===this.userId),r.push(cc(this.N,t))}));i.done()})).next((()=>r))}getAllMutationBatchesAffectingDocumentKeys(t,e){let n=new yo(rr);const s=[];return e.forEach((e=>{const r=_a.prefixForPath(this.userId,e.path),i=IDBKeyRange.lowerBound(r),o=Nc(t).Kt({range:i},((t,s,r)=>{const[i,o,a]=t,c=ba(o);i===this.userId&&e.path.isEqual(c)?n=n.add(a):r.done()}));s.push(o)})),qa.waitFor(s).next((()=>this.Zt(t,n)))}getAllMutationBatchesAffectingQuery(t,e){const n=e.path,s=n.length+1,r=_a.prefixForPath(this.userId,n),i=IDBKeyRange.lowerBound(r);let o=new yo(rr);return Nc(t).Kt({range:i},((t,e,r)=>{const[i,a,c]=t,u=ba(a);i===this.userId&&n.isPrefixOf(u)?u.length===s&&(o=o.add(c)):r.done()})).next((()=>this.Zt(t,o)))}Zt(t,e){const n=[],s=[];return e.forEach((e=>{s.push(_c(t).get(e).next((t=>{if(null===t)throw js();Ks(t.userId===this.userId),n.push(cc(this.N,t))})))})),qa.waitFor(s).next((()=>n))}removeMutationBatch(t,e){return Tc(t.Qt,this.userId,e).next((n=>(t.addOnCommittedListener((()=>{this.te(e.batchId)})),qa.forEach(n,(e=>this.referenceDelegate.markPotentiallyOrphaned(t,e))))))}te(t){delete this.Jt[t]}performConsistencyCheck(t){return this.checkEmpty(t).next((e=>{if(!e)return qa.resolve();const n=IDBKeyRange.lowerBound(_a.prefixForUser(this.userId)),s=[];return Nc(t).Kt({range:n},((t,e,n)=>{if(t[0]===this.userId){const e=ba(t[1]);s.push(e)}else n.done()})).next((()=>{Ks(0===s.length)}))}))}containsKey(t,e){return Sc(t,this.userId,e)}ee(t){return Ac(t).get(this.userId).next((t=>t||new Ia(this.userId,-1,"")))}}function Sc(t,e,n){const s=_a.prefixForPath(e,n.path),r=s[1],i=IDBKeyRange.lowerBound(s);let o=!1;return Nc(t).Kt({range:i,qt:!0},((t,n,s)=>{const[i,a,c]=t;i===e&&a===r&&(o=!0),s.done()})).next((()=>o))}function _c(t){return Xa(t,Sa.store)}function Nc(t){return Xa(t,_a.store)}function Ac(t){return Xa(t,Ia.store)} +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */class Dc{constructor(t){this.ne=t}next(){return this.ne+=2,this.ne}static se(){return new Dc(0)}static ie(){return new Dc(-1)}} +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */class xc{constructor(t,e){this.referenceDelegate=t,this.N=e}allocateTargetId(t){return this.re(t).next((e=>{const n=new Dc(e.highestTargetId);return e.highestTargetId=n.next(),this.oe(t,e).next((()=>e.highestTargetId))}))}getLastRemoteSnapshotVersion(t){return this.re(t).next((t=>cr.fromTimestamp(new ar(t.lastRemoteSnapshotVersion.seconds,t.lastRemoteSnapshotVersion.nanoseconds))))}getHighestSequenceNumber(t){return this.re(t).next((t=>t.highestListenSequenceNumber))}setTargetsMetadata(t,e,n){return this.re(t).next((s=>(s.highestListenSequenceNumber=e,n&&(s.lastRemoteSnapshotVersion=n.toTimestamp()),e>s.highestListenSequenceNumber&&(s.highestListenSequenceNumber=e),this.oe(t,s))))}addTargetData(t,e){return this.ce(t,e).next((()=>this.re(t).next((n=>(n.targetCount+=1,this.ae(e,n),this.oe(t,n))))))}updateTargetData(t,e){return this.ce(t,e)}removeTargetData(t,e){return this.removeMatchingKeysForTargetId(t,e.targetId).next((()=>Cc(t).delete(e.targetId))).next((()=>this.re(t))).next((e=>(Ks(e.targetCount>0),e.targetCount-=1,this.oe(t,e))))}removeTargets(t,e,n){let s=0;const r=[];return Cc(t).Kt(((i,o)=>{const a=uc(o);a.sequenceNumber<=e&&null===n.get(a.targetId)&&(s++,r.push(this.removeTargetData(t,a)))})).next((()=>qa.waitFor(r))).next((()=>s))}forEachTarget(t,e){return Cc(t).Kt(((t,n)=>{const s=uc(n);e(s)}))}re(t){return kc(t).get(Ra.key).next((t=>(Ks(null!==t),t)))}oe(t,e){return kc(t).put(Ra.key,e)}ce(t,e){return Cc(t).put(hc(this.N,e))}ae(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.re(t).next((t=>t.targetCount))}getTargetData(t,e){const n=Wr(e),s=IDBKeyRange.bound([n,Number.NEGATIVE_INFINITY],[n,Number.POSITIVE_INFINITY]);let r=null;return Cc(t).Kt({range:s,index:Ca.queryTargetsIndexName},((t,n,s)=>{const i=uc(n);Yr(e,i.target)&&(r=i,s.done())})).next((()=>r))}addMatchingKeys(t,e,n){const s=[],r=Rc(t);return e.forEach((e=>{const i=ya(e.path);s.push(r.put(new ka(n,i))),s.push(this.referenceDelegate.addReference(t,n,e))})),qa.waitFor(s)}removeMatchingKeys(t,e,n){const s=Rc(t);return qa.forEach(e,(e=>{const r=ya(e.path);return qa.waitFor([s.delete([n,r]),this.referenceDelegate.removeReference(t,n,e)])}))}removeMatchingKeysForTargetId(t,e){const n=Rc(t),s=IDBKeyRange.bound([e],[e+1],!1,!0);return n.delete(s)}getMatchingKeysForTargetId(t,e){const n=IDBKeyRange.bound([e],[e+1],!1,!0),s=Rc(t);let r=No();return s.Kt({range:n,qt:!0},((t,e,n)=>{const s=ba(t[1]),i=new xr(s);r=r.add(i)})).next((()=>r))}containsKey(t,e){const n=ya(e.path),s=IDBKeyRange.bound([n],[or(n)],!1,!0);let r=0;return Rc(t).Kt({index:ka.documentTargetsIndex,qt:!0,range:s},(([t,e],n,s)=>{0!==t&&(r++,s.done())})).next((()=>r>0))}Tt(t,e){return Cc(t).get(e).next((t=>t?uc(t):null))}}function Cc(t){return Xa(t,Ca.store)}function kc(t){return Xa(t,Ra.store)}function Rc(t){return Xa(t,ka.store)} +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */async function Lc(t){if(t.code!==Hs.FAILED_PRECONDITION||t.message!==Va)throw t;Vs("LocalStore","Unexpectedly lost primary lease")} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */function Oc([t,e],[n,s]){const r=rr(t,n);return 0===r?rr(e,s):r}class Mc{constructor(t){this.ue=t,this.buffer=new yo(Oc),this.he=0}le(){return++this.he}fe(t){const e=[t,this.le()];if(this.buffer.size{this.we=null,this.de=!0;try{await t.collectGarbage(this.garbageCollector)}catch(t){Ga(t)?Vs("LruGarbageCollector","Ignoring IndexedDB error during garbage collection: ",t):await Lc(t)}await this._e(t)}))}}class Pc{constructor(t,e){this.me=t,this.params=e}calculateTargetCount(t,e){return this.me.ge(t).next((t=>Math.floor(e/100*t)))}nthSequenceNumber(t,e){if(0===e)return qa.resolve(er.T);const n=new Mc(e);return this.me.forEachTarget(t,(t=>n.fe(t.sequenceNumber))).next((()=>this.me.ye(t,(t=>n.fe(t))))).next((()=>n.maxValue))}removeTargets(t,e,n){return this.me.removeTargets(t,e,n)}removeOrphanedDocuments(t,e){return this.me.removeOrphanedDocuments(t,e)}collect(t,e){return-1===this.params.cacheSizeCollectionThreshold?(Vs("LruGarbageCollector","Garbage collection skipped; disabled"),qa.resolve(vc)):this.getCacheSize(t).next((n=>n(e>this.params.maximumSequenceNumbersToCollect?(Vs("LruGarbageCollector",`Capping sequence numbers to collect down to the maximum of ${this.params.maximumSequenceNumbersToCollect} from ${e}`),s=this.params.maximumSequenceNumbersToCollect):s=e,i=Date.now(),this.nthSequenceNumber(t,s)))).next((s=>(n=s,o=Date.now(),this.removeTargets(t,n,e)))).next((e=>(r=e,a=Date.now(),this.removeOrphanedDocuments(t,n)))).next((t=>(c=Date.now(),Fs()<=p.DEBUG&&Vs("LruGarbageCollector",`LRU Garbage Collection\n\tCounted targets in ${i-u}ms\n\tDetermined least recently used ${s} in `+(o-i)+"ms\n"+`\tRemoved ${r} targets in `+(a-o)+"ms\n"+`\tRemoved ${t} documents in `+(c-a)+"ms\n"+`Total Duration: ${c-u}ms`),qa.resolve({didRun:!0,sequenceNumbersCollected:s,targetsRemoved:r,documentsRemoved:t}))))}} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */class Vc{constructor(t,e){this.db=t,this.garbageCollector=function(t,e){return new Pc(t,e)}(this,e)}ge(t){const e=this.Te(t);return this.db.getTargetCache().getTargetCount(t).next((t=>e.next((e=>t+e))))}Te(t){let e=0;return this.ye(t,(t=>{e++})).next((()=>e))}forEachTarget(t,e){return this.db.getTargetCache().forEachTarget(t,e)}ye(t,e){return this.Ee(t,((t,n)=>e(n)))}addReference(t,e,n){return Uc(t,n)}removeReference(t,e,n){return Uc(t,n)}removeTargets(t,e,n){return this.db.getTargetCache().removeTargets(t,e,n)}markPotentiallyOrphaned(t,e){return Uc(t,e)}Ie(t,e){return function(t,e){let n=!1;return Ac(t).jt((s=>Sc(t,s,e).next((t=>(t&&(n=!0),qa.resolve(!t)))))).next((()=>n))}(t,e)}removeOrphanedDocuments(t,e){const n=this.db.getRemoteDocumentCache().newChangeBuffer(),s=[];let r=0;return this.Ee(t,((i,o)=>{if(o<=e){const e=this.Ie(t,i).next((e=>{if(!e)return r++,n.getEntry(t,i).next((()=>(n.removeEntry(i),Rc(t).delete([0,ya(i.path)]))))}));s.push(e)}})).next((()=>qa.waitFor(s))).next((()=>n.apply(t))).next((()=>r))}removeTarget(t,e){const n=e.withSequenceNumber(t.currentSequenceNumber);return this.db.getTargetCache().updateTargetData(t,n)}updateLimboDocument(t,e){return Uc(t,e)}Ee(t,e){const n=Rc(t);let s,r=er.T;return n.Kt({index:ka.documentTargetsIndex},(([t,n],{path:i,sequenceNumber:o})=>{0===t?(r!==er.T&&e(new xr(ba(s)),r),r=o,s=i):r=er.T})).next((()=>{r!==er.T&&e(new xr(ba(s)),r)}))}getCacheSize(t){return this.db.getRemoteDocumentCache().getSize(t)}}function Uc(t,e){return Rc(t).put(function(t,e){return new ka(0,ya(t.path),e)}(e,t.currentSequenceNumber))} +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */class qc{constructor(t,e){this.mapKeyFn=t,this.equalsFn=e,this.inner={}}get(t){const e=this.mapKeyFn(t),n=this.inner[e];if(void 0!==n)for(const[e,s]of n)if(this.equalsFn(e,t))return s}has(t){return void 0!==this.get(t)}set(t,e){const n=this.mapKeyFn(t),s=this.inner[n];if(void 0!==s){for(let n=0;n{for(const[e,s]of n)t(e,s)}))}isEmpty(){return lr(this.inner)}} +/** + * @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 Bc{constructor(){this.changes=new qc((t=>t.toString()),((t,e)=>t.isEqual(e))),this.changesApplied=!1}getReadTime(t){const e=this.changes.get(t);return e?e.readTime:cr.min()}addEntry(t,e){this.assertNotApplied(),this.changes.set(t.key,{document:t,readTime:e})}removeEntry(t,e=null){this.assertNotApplied(),this.changes.set(t,{document:Hr.newInvalidDocument(t),readTime:e})}getEntry(t,e){this.assertNotApplied();const n=this.changes.get(e);return void 0!==n?qa.resolve(n.document):this.getFromCache(t,e)}getEntries(t,e){return this.getAllFromCache(t,e)}apply(t){return this.assertNotApplied(),this.changesApplied=!0,this.applyChanges(t)}assertNotApplied(){}} +/** + * @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 jc{constructor(t,e){this.N=t,this.Ht=e}addEntry(t,e,n){return Gc(t).put(Hc(e),n)}removeEntry(t,e){const n=Gc(t),s=Hc(e);return n.delete(s)}updateMetadata(t,e){return this.getMetadata(t).next((n=>(n.byteSize+=e,this.Ae(t,n))))}getEntry(t,e){return Gc(t).get(Hc(e)).next((t=>this.Re(e,t)))}be(t,e){return Gc(t).get(Hc(e)).next((t=>({document:this.Re(e,t),size:Ec(t)})))}getEntries(t,e){let n=bo();return this.Pe(t,e,((t,e)=>{const s=this.Re(t,e);n=n.insert(t,s)})).next((()=>n))}ve(t,e){let n=bo(),s=new go(xr.comparator);return this.Pe(t,e,((t,e)=>{const r=this.Re(t,e);n=n.insert(t,r),s=s.insert(t,Ec(e))})).next((()=>({documents:n,Ve:s})))}Pe(t,e,n){if(e.isEmpty())return qa.resolve();const s=IDBKeyRange.bound(e.first().path.toArray(),e.last().path.toArray()),r=e.getIterator();let i=r.getNext();return Gc(t).Kt({range:s},((t,e,s)=>{const o=xr.fromSegments(t);for(;i&&xr.comparator(i,o)<0;)n(i,null),i=r.getNext();i&&i.isEqual(o)&&(n(i,e),i=r.hasNext()?r.getNext():null),i?s.Mt(i.path.toArray()):s.done()})).next((()=>{for(;i;)n(i,null),i=r.hasNext()?r.getNext():null}))}getDocumentsMatchingQuery(t,e,n){let s=bo();const r=e.path.length+1,i={};if(n.isEqual(cr.min())){const t=e.path.toArray();i.range=IDBKeyRange.lowerBound(t)}else{const t=e.path.toArray(),s=rc(n);i.range=IDBKeyRange.lowerBound([t,s],!0),i.index=Da.collectionReadTimeIndex}return Gc(t).Kt(i,((t,n,i)=>{if(t.length!==r)return;const o=nc(this.N,n);e.path.isPrefixOf(o.key.path)?Ai(e,o)&&(s=s.insert(o.key,o)):i.done()})).next((()=>s))}newChangeBuffer(t){return new Kc(this,!!t&&t.trackRemovals)}getSize(t){return this.getMetadata(t).next((t=>t.byteSize))}getMetadata(t){return $c(t).get(xa.key).next((t=>(Ks(!!t),t)))}Ae(t,e){return $c(t).put(xa.key,e)}Re(t,e){if(e){const t=nc(this.N,e);if(!t.isNoDocument()||!t.version.isEqual(cr.min()))return t}return Hr.newInvalidDocument(t)}}class Kc extends Bc{constructor(t,e){super(),this.Se=t,this.trackRemovals=e,this.De=new qc((t=>t.toString()),((t,e)=>t.isEqual(e)))}applyChanges(t){const e=[];let n=0,s=new yo(((t,e)=>rr(t.canonicalString(),e.canonicalString())));return this.changes.forEach(((r,i)=>{const o=this.De.get(r);if(i.document.isValidDocument()){const a=sc(this.Se.N,i.document,this.getReadTime(r));s=s.add(r.path.popLast());const c=Ec(a);n+=c-o,e.push(this.Se.addEntry(t,r,a))}else if(n-=o,this.trackRemovals){const n=sc(this.Se.N,Hr.newNoDocument(r,cr.min()),this.getReadTime(r));e.push(this.Se.addEntry(t,r,n))}else e.push(this.Se.removeEntry(t,r))})),s.forEach((n=>{e.push(this.Se.Ht.addToCollectionParentIndex(t,n))})),e.push(this.Se.updateMetadata(t,n)),qa.waitFor(e)}getFromCache(t,e){return this.Se.be(t,e).next((t=>(this.De.set(e,t.size),t.document)))}getAllFromCache(t,e){return this.Se.ve(t,e).next((({documents:t,Ve:e})=>(e.forEach(((t,e)=>{this.De.set(t,e)})),t)))}}function $c(t){return Xa(t,xa.store)}function Gc(t){return Xa(t,Da.store)}function Hc(t){return t.path.toArray()} +/** + * @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. + */class zc{constructor(t){this.N=t}Ct(t,e,n,s){Ks(n=0&&s<=11);const r=new Ba("createOrUpgrade",e);n<1&&s>=1&&(function(t){t.createObjectStore(Ea.store)}(t),function(t){t.createObjectStore(Ia.store,{keyPath:Ia.keyPath}),t.createObjectStore(Sa.store,{keyPath:Sa.keyPath,autoIncrement:!0}).createIndex(Sa.userMutationsIndex,Sa.userMutationsKeyPath,{unique:!0}),t.createObjectStore(_a.store)}(t),Qc(t),function(t){t.createObjectStore(Da.store)}(t));let i=qa.resolve();return n<3&&s>=3&&(0!==n&&(function(t){t.deleteObjectStore(ka.store),t.deleteObjectStore(Ca.store),t.deleteObjectStore(Ra.store)}(t),Qc(t)),i=i.next((()=>function(t){const e=t.store(Ra.store),n=new Ra(0,0,cr.min().toTimestamp(),0);return e.put(Ra.key,n)}(r)))),n<4&&s>=4&&(0!==n&&(i=i.next((()=>function(t,e){return e.store(Sa.store).Lt().next((n=>{t.deleteObjectStore(Sa.store),t.createObjectStore(Sa.store,{keyPath:Sa.keyPath,autoIncrement:!0}).createIndex(Sa.userMutationsIndex,Sa.userMutationsKeyPath,{unique:!0});const s=e.store(Sa.store),r=n.map((t=>s.put(t)));return qa.waitFor(r)}))}(t,r)))),i=i.next((()=>{!function(t){t.createObjectStore(Oa.store,{keyPath:Oa.keyPath})}(t)}))),n<5&&s>=5&&(i=i.next((()=>this.Ce(r)))),n<6&&s>=6&&(i=i.next((()=>(function(t){t.createObjectStore(xa.store)}(t),this.Ne(r))))),n<7&&s>=7&&(i=i.next((()=>this.xe(r)))),n<8&&s>=8&&(i=i.next((()=>this.ke(t,r)))),n<9&&s>=9&&(i=i.next((()=>{!function(t){t.objectStoreNames.contains("remoteDocumentChanges")&&t.deleteObjectStore("remoteDocumentChanges")}(t),function(t){const e=t.objectStore(Da.store);e.createIndex(Da.readTimeIndex,Da.readTimeIndexPath,{unique:!1}),e.createIndex(Da.collectionReadTimeIndex,Da.collectionReadTimeIndexPath,{unique:!1})}(e)}))),n<10&&s>=10&&(i=i.next((()=>this.$e(r)))),n<11&&s>=11&&(i=i.next((()=>{!function(t){t.createObjectStore(Ma.store,{keyPath:Ma.keyPath})}(t),function(t){t.createObjectStore(Fa.store,{keyPath:Fa.keyPath})}(t)}))),i}Ne(t){let e=0;return t.store(Da.store).Kt(((t,n)=>{e+=Ec(n)})).next((()=>{const n=new xa(e);return t.store(xa.store).put(xa.key,n)}))}Ce(t){const e=t.store(Ia.store),n=t.store(Sa.store);return e.Lt().next((e=>qa.forEach(e,(e=>{const s=IDBKeyRange.bound([e.userId,-1],[e.userId,e.lastAcknowledgedBatchId]);return n.Lt(Sa.userMutationsIndex,s).next((n=>qa.forEach(n,(n=>{Ks(n.userId===e.userId);const s=cc(this.N,n);return Tc(t,e.userId,s).next((()=>{}))}))))}))))}xe(t){const e=t.store(ka.store),n=t.store(Da.store);return t.store(Ra.store).get(Ra.key).next((t=>{const s=[];return n.Kt(((n,r)=>{const i=new fr(n),o=function(t){return[0,ya(t)]}(i);s.push(e.get(o).next((n=>n?qa.resolve():(n=>e.put(new ka(0,ya(n),t.highestListenSequenceNumber)))(i))))})).next((()=>qa.waitFor(s)))}))}ke(t,e){t.createObjectStore(La.store,{keyPath:La.keyPath});const n=e.store(La.store),s=new pc,r=t=>{if(s.add(t)){const e=t.lastSegment(),s=t.popLast();return n.put({collectionId:e,parent:ya(s)})}};return e.store(Da.store).Kt({qt:!0},((t,e)=>{const n=new fr(t);return r(n.popLast())})).next((()=>e.store(_a.store).Kt({qt:!0},(([t,e,n],s)=>{const i=ba(e);return r(i.popLast())}))))}$e(t){const e=t.store(Ca.store);return e.Kt(((t,n)=>{const s=uc(n),r=hc(this.N,s);return e.put(r)}))}}function Qc(t){t.createObjectStore(ka.store,{keyPath:ka.keyPath}).createIndex(ka.documentTargetsIndex,ka.documentTargetsKeyPath,{unique:!0}),t.createObjectStore(Ca.store,{keyPath:Ca.keyPath}).createIndex(Ca.queryTargetsIndexName,Ca.queryTargetsKeyPath,{unique:!0}),t.createObjectStore(Ra.store)}const Wc="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 Yc{constructor(t,e,n,s,r,i,o,a,c,u){if(this.allowTabSynchronization=t,this.persistenceKey=e,this.clientId=n,this.Oe=r,this.window=i,this.document=o,this.Fe=c,this.Me=u,this.Le=null,this.Be=!1,this.isPrimary=!1,this.networkEnabled=!0,this.Ue=null,this.inForeground=!1,this.qe=null,this.Ke=null,this.je=Number.NEGATIVE_INFINITY,this.Qe=t=>Promise.resolve(),!Yc.bt())throw new zs(Hs.UNIMPLEMENTED,"This platform is either missing IndexedDB or is known to have an incomplete implementation. Offline persistence has been disabled.");this.referenceDelegate=new Vc(this,s),this.We=e+"main",this.N=new ec(a),this.Ge=new ja(this.We,11,new zc(this.N)),this.ze=new xc(this.referenceDelegate,this.N),this.Ht=new yc,this.He=function(t,e){return new jc(t,e)}(this.N,this.Ht),this.Je=new dc,this.window&&this.window.localStorage?this.Ye=this.window.localStorage:(this.Ye=null,!1===u&&Us("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.Xe().then((()=>{if(!this.isPrimary&&!this.allowTabSynchronization)throw new zs(Hs.FAILED_PRECONDITION,Wc);return this.Ze(),this.tn(),this.en(),this.runTransaction("getHighestListenSequenceNumber","readonly",(t=>this.ze.getHighestSequenceNumber(t)))})).then((t=>{this.Le=new er(t,this.Fe)})).then((()=>{this.Be=!0})).catch((t=>(this.Ge&&this.Ge.close(),Promise.reject(t))))}nn(t){return this.Qe=async e=>{if(this.started)return t(e)},t(this.isPrimary)}setDatabaseDeletedListener(t){this.Ge.xt((async e=>{null===e.newVersion&&await t()}))}setNetworkEnabled(t){this.networkEnabled!==t&&(this.networkEnabled=t,this.Oe.enqueueAndForget((async()=>{this.started&&await this.Xe()})))}Xe(){return this.runTransaction("updateClientMetadataAndTryBecomePrimary","readwrite",(t=>Jc(t).put(new Oa(this.clientId,Date.now(),this.networkEnabled,this.inForeground)).next((()=>{if(this.isPrimary)return this.sn(t).next((t=>{t||(this.isPrimary=!1,this.Oe.enqueueRetryable((()=>this.Qe(!1))))}))})).next((()=>this.rn(t))).next((e=>this.isPrimary&&!e?this.on(t).next((()=>!1)):!!e&&this.cn(t).next((()=>!0)))))).catch((t=>{if(Ga(t))return Vs("IndexedDbPersistence","Failed to extend owner lease: ",t),this.isPrimary;if(!this.allowTabSynchronization)throw t;return Vs("IndexedDbPersistence","Releasing owner lease after error during lease refresh",t),!1})).then((t=>{this.isPrimary!==t&&this.Oe.enqueueRetryable((()=>this.Qe(t))),this.isPrimary=t}))}sn(t){return Xc(t).get(Ea.key).next((t=>qa.resolve(this.an(t))))}un(t){return Jc(t).delete(this.clientId)}async hn(){if(this.isPrimary&&!this.ln(this.je,18e5)){this.je=Date.now();const t=await this.runTransaction("maybeGarbageCollectMultiClientState","readwrite-primary",(t=>{const e=Xa(t,Oa.store);return e.Lt().next((t=>{const n=this.fn(t,18e5),s=t.filter((t=>-1===n.indexOf(t)));return qa.forEach(s,(t=>e.delete(t.clientId))).next((()=>s))}))})).catch((()=>[]));if(this.Ye)for(const e of t)this.Ye.removeItem(this.dn(e.clientId))}}en(){this.Ke=this.Oe.enqueueAfterDelay("client_metadata_refresh",4e3,(()=>this.Xe().then((()=>this.hn())).then((()=>this.en()))))}an(t){return!!t&&t.ownerId===this.clientId}rn(t){return this.Me?qa.resolve(!0):Xc(t).get(Ea.key).next((e=>{if(null!==e&&this.ln(e.leaseTimestampMs,5e3)&&!this.wn(e.ownerId)){if(this.an(e)&&this.networkEnabled)return!0;if(!this.an(e)){if(!e.allowTabSynchronization)throw new zs(Hs.FAILED_PRECONDITION,Wc);return!1}}return!(!this.networkEnabled||!this.inForeground)||Jc(t).Lt().next((t=>void 0===this.fn(t,5e3).find((t=>{if(this.clientId!==t.clientId){const e=!this.networkEnabled&&t.networkEnabled,n=!this.inForeground&&t.inForeground,s=this.networkEnabled===t.networkEnabled;if(e||n&&s)return!0}return!1}))))})).next((t=>(this.isPrimary!==t&&Vs("IndexedDbPersistence",`Client ${t?"is":"is not"} eligible for a primary lease.`),t)))}async shutdown(){this.Be=!1,this._n(),this.Ke&&(this.Ke.cancel(),this.Ke=null),this.mn(),this.gn(),await this.Ge.runTransaction("shutdown","readwrite",[Ea.store,Oa.store],(t=>{const e=new Ya(t,er.T);return this.on(e).next((()=>this.un(e)))})),this.Ge.close(),this.yn()}fn(t,e){return t.filter((t=>this.ln(t.updateTimeMs,e)&&!this.wn(t.clientId)))}pn(){return this.runTransaction("getActiveClients","readonly",(t=>Jc(t).Lt().next((t=>this.fn(t,18e5).map((t=>t.clientId))))))}get started(){return this.Be}getMutationQueue(t){return Ic.Yt(t,this.N,this.Ht,this.referenceDelegate)}getTargetCache(){return this.ze}getRemoteDocumentCache(){return this.He}getIndexManager(){return this.Ht}getBundleCache(){return this.Je}runTransaction(t,e,n){Vs("IndexedDbPersistence","Starting transaction:",t);const s="readonly"===e?"readonly":"readwrite";let r;return this.Ge.runTransaction(t,s,Pa,(s=>(r=new Ya(s,this.Le?this.Le.next():er.T),"readwrite-primary"===e?this.sn(r).next((t=>!!t||this.rn(r))).next((e=>{if(!e)throw Us(`Failed to obtain primary lease for action '${t}'.`),this.isPrimary=!1,this.Oe.enqueueRetryable((()=>this.Qe(!1))),new zs(Hs.FAILED_PRECONDITION,Va);return n(r)})).next((t=>this.cn(r).next((()=>t)))):this.Tn(r).next((()=>n(r)))))).then((t=>(r.raiseOnCommittedEvent(),t)))}Tn(t){return Xc(t).get(Ea.key).next((t=>{if(null!==t&&this.ln(t.leaseTimestampMs,5e3)&&!this.wn(t.ownerId)&&!this.an(t)&&!(this.Me||this.allowTabSynchronization&&t.allowTabSynchronization))throw new zs(Hs.FAILED_PRECONDITION,Wc)}))}cn(t){const e=new Ea(this.clientId,this.allowTabSynchronization,Date.now());return Xc(t).put(Ea.key,e)}static bt(){return ja.bt()}on(t){const e=Xc(t);return e.get(Ea.key).next((t=>this.an(t)?(Vs("IndexedDbPersistence","Releasing primary lease."),e.delete(Ea.key)):qa.resolve()))}ln(t,e){const n=Date.now();return!(tn&&(Us(`Detected an update time that is in the future: ${t} > ${n}`),1))}Ze(){null!==this.document&&"function"==typeof this.document.addEventListener&&(this.qe=()=>{this.Oe.enqueueAndForget((()=>(this.inForeground="visible"===this.document.visibilityState,this.Xe())))},this.document.addEventListener("visibilitychange",this.qe),this.inForeground="visible"===this.document.visibilityState)}mn(){this.qe&&(this.document.removeEventListener("visibilitychange",this.qe),this.qe=null)}tn(){var t;"function"==typeof(null===(t=this.window)||void 0===t?void 0:t.addEventListener)&&(this.Ue=()=>{this._n(),l()&&navigator.appVersion.match("Version/14")&&this.Oe.enterRestrictedMode(!0),this.Oe.enqueueAndForget((()=>this.shutdown()))},this.window.addEventListener("pagehide",this.Ue))}gn(){this.Ue&&(this.window.removeEventListener("pagehide",this.Ue),this.Ue=null)}wn(t){var e;try{const n=null!==(null===(e=this.Ye)||void 0===e?void 0:e.getItem(this.dn(t)));return Vs("IndexedDbPersistence",`Client '${t}' ${n?"is":"is not"} zombied in LocalStorage`),n}catch(t){return Us("IndexedDbPersistence","Failed to get zombied client id.",t),!1}}_n(){if(this.Ye)try{this.Ye.setItem(this.dn(this.clientId),String(Date.now()))}catch(t){Us("Failed to set zombie client id.",t)}}yn(){if(this.Ye)try{this.Ye.removeItem(this.dn(this.clientId))}catch(t){}}dn(t){return`firestore_zombie_${this.persistenceKey}_${t}`}}function Xc(t){return Xa(t,Ea.store)}function Jc(t){return Xa(t,Oa.store)}function Zc(t,e){let n=t.projectId;return t.isDefaultDatabase||(n+="."+t.database),"firestore/"+e+"/"+n+"/" +/** + * @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. + */}class tu{constructor(t,e){this.progress=t,this.En=e}} +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */class eu{constructor(t,e,n){this.He=t,this.In=e,this.Ht=n}An(t,e){return this.In.getAllMutationBatchesAffectingDocumentKey(t,e).next((n=>this.Rn(t,e,n)))}Rn(t,e,n){return this.He.getEntry(t,e).next((t=>{for(const e of n)e.applyToLocalView(t);return t}))}bn(t,e){t.forEach(((t,n)=>{for(const t of e)t.applyToLocalView(n)}))}Pn(t,e){return this.He.getEntries(t,e).next((e=>this.vn(t,e).next((()=>e))))}vn(t,e){return this.In.getAllMutationBatchesAffectingDocumentKeys(t,e).next((t=>this.bn(e,t)))}getDocumentsMatchingQuery(t,e,n){return function(t){return xr.isDocumentKey(t.path)&&null===t.collectionGroup&&0===t.filters.length}(e)?this.Vn(t,e.path):bi(e)?this.Sn(t,e,n):this.Dn(t,e,n)}Vn(t,e){return this.An(t,new xr(e)).next((t=>{let e=Eo();return t.isFoundDocument()&&(e=e.insert(t.key,t)),e}))}Sn(t,e,n){const s=e.collectionGroup;let r=Eo();return this.Ht.getCollectionParents(t,s).next((i=>qa.forEach(i,(i=>{const o=function(t,e){return new fi(e,null,t.explicitOrderBy.slice(),t.filters.slice(),t.limit,t.limitType,t.startAt,t.endAt)}(e,i.child(s));return this.Dn(t,o,n).next((t=>{t.forEach(((t,e)=>{r=r.insert(t,e)}))}))})).next((()=>r))))}Dn(t,e,n){let s,r;return this.He.getDocumentsMatchingQuery(t,e,n).next((n=>(s=n,this.In.getAllMutationBatchesAffectingQuery(t,e)))).next((e=>(r=e,this.Cn(t,r,s).next((t=>{s=t;for(const t of r)for(const e of t.mutations){const n=e.key;let r=s.get(n);null==r&&(r=Hr.newInvalidDocument(n),s=s.insert(n,r)),Xi(e,r,t.localWriteTime),r.isFoundDocument()||(s=s.remove(n))}}))))).next((()=>(s.forEach(((t,n)=>{Ai(e,n)||(s=s.remove(t))})),s)))}Cn(t,e,n){let s=No();for(const t of e)for(const e of t.mutations)e instanceof no&&null===n.get(e.key)&&(s=s.add(e.key));let r=n;return this.He.getEntries(t,s).next((t=>(t.forEach(((t,e)=>{e.isFoundDocument()&&(r=r.insert(t,e))})),r)))}} +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */class nu{constructor(t,e,n,s){this.targetId=t,this.fromCache=e,this.Nn=n,this.xn=s}static kn(t,e){let n=No(),s=No();for(const t of e.docChanges)switch(t.type){case 0:n=n.add(t.doc.key);break;case 1:s=s.add(t.doc.key)}return new nu(t,e.fromCache,n,s)}} +/** + * @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 su{$n(t){this.On=t}getDocumentsMatchingQuery(t,e,n,s){return function(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())}(e)||n.isEqual(cr.min())?this.Fn(t,e):this.On.Pn(t,s).next((r=>{const i=this.Mn(e,r);return(pi(e)||yi(e))&&this.Ln(e.limitType,i,s,n)?this.Fn(t,e):(Fs()<=p.DEBUG&&Vs("QueryEngine","Re-using previous result from %s to execute query: %s",n.toString(),Ni(e)),this.On.getDocumentsMatchingQuery(t,e,n).next((t=>(i.forEach((e=>{t=t.insert(e.key,e)})),t))))}))}Mn(t,e){let n=new yo(Di(t));return e.forEach(((e,s)=>{Ai(t,s)&&(n=n.add(s))})),n}Ln(t,e,n,s){if(n.size!==e.size)return!0;const r="F"===t?e.last():e.first();return!!r&&(r.hasPendingWrites||r.version.compareTo(s)>0)}Fn(t,e){return Fs()<=p.DEBUG&&Vs("QueryEngine","Using full collection scan to execute query:",Ni(e)),this.On.getDocumentsMatchingQuery(t,e,cr.min())}} +/** + * @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. + */class ru{constructor(t,e,n,s){this.persistence=t,this.Bn=e,this.N=s,this.Un=new go(rr),this.qn=new qc((t=>Wr(t)),Yr),this.Kn=cr.min(),this.In=t.getMutationQueue(n),this.jn=t.getRemoteDocumentCache(),this.ze=t.getTargetCache(),this.Qn=new eu(this.jn,this.In,this.persistence.getIndexManager()),this.Je=t.getBundleCache(),this.Bn.$n(this.Qn)}collectGarbage(t){return this.persistence.runTransaction("Collect garbage","readwrite-primary",(e=>t.collect(e,this.Un)))}}function iu(t,e,n,s){return new ru(t,e,n,s)}async function ou(t,e){const n=Gs(t);let s=n.In,r=n.Qn;const i=await n.persistence.runTransaction("Handle user change","readonly",(t=>{let i;return n.In.getAllMutationBatches(t).next((o=>(i=o,s=n.persistence.getMutationQueue(e),r=new eu(n.jn,s,n.persistence.getIndexManager()),s.getAllMutationBatches(t)))).next((e=>{const n=[],s=[];let o=No();for(const t of i){n.push(t.batchId);for(const e of t.mutations)o=o.add(e.key)}for(const t of e){s.push(t.batchId);for(const e of t.mutations)o=o.add(e.key)}return r.Pn(t,o).next((t=>({Wn:t,removedBatchIds:n,addedBatchIds:s})))}))}));return n.In=s,n.Qn=r,n.Bn.$n(n.Qn),i}function au(t){const e=Gs(t);return e.persistence.runTransaction("Get last remote snapshot version","readonly",(t=>e.ze.getLastRemoteSnapshotVersion(t)))}function cu(t,e,n,s,r){let i=No();return n.forEach((t=>i=i.add(t))),e.getEntries(t,i).next((t=>{let i=bo();return n.forEach(((n,o)=>{const a=t.get(n),c=(null==r?void 0:r.get(n))||s;o.isNoDocument()&&o.version.isEqual(cr.min())?(e.removeEntry(n,c),i=i.insert(n,o)):!a.isValidDocument()||o.version.compareTo(a.version)>0||0===o.version.compareTo(a.version)&&a.hasPendingWrites?(e.addEntry(o,c),i=i.insert(n,o)):Vs("LocalStore","Ignoring outdated watch update for ",n,". Current version:",a.version," Watch version:",o.version)})),i}))}function uu(t,e){const n=Gs(t);return n.persistence.runTransaction("Get next mutation batch","readonly",(t=>(void 0===e&&(e=-1),n.In.getNextMutationBatchAfterBatchId(t,e))))}function hu(t,e){const n=Gs(t);return n.persistence.runTransaction("Allocate target","readwrite",(t=>{let s;return n.ze.getTargetData(t,e).next((r=>r?(s=r,qa.resolve(s)):n.ze.allocateTargetId(t).next((r=>(s=new tc(e,r,0,t.currentSequenceNumber),n.ze.addTargetData(t,s).next((()=>s)))))))})).then((t=>{const s=n.Un.get(t.targetId);return(null===s||t.snapshotVersion.compareTo(s.snapshotVersion)>0)&&(n.Un=n.Un.insert(t.targetId,t),n.qn.set(e,t.targetId)),t}))}async function lu(t,e,n){const s=Gs(t),r=s.Un.get(e),i=n?"readwrite":"readwrite-primary";try{n||await s.persistence.runTransaction("Release target",i,(t=>s.persistence.referenceDelegate.removeTarget(t,r)))}catch(t){if(!Ga(t))throw t;Vs("LocalStore",`Failed to update sequence numbers for target ${e}: ${t}`)}s.Un=s.Un.remove(e),s.qn.delete(r.target)}function du(t,e,n){const s=Gs(t);let r=cr.min(),i=No();return s.persistence.runTransaction("Execute query","readonly",(t=>function(t,e,n){const s=Gs(t),r=s.qn.get(n);return void 0!==r?qa.resolve(s.Un.get(r)):s.ze.getTargetData(e,n)}(s,t,Ei(e)).next((e=>{if(e)return r=e.lastLimboFreeSnapshotVersion,s.ze.getMatchingKeysForTargetId(t,e.targetId).next((t=>{i=t}))})).next((()=>s.Bn.getDocumentsMatchingQuery(t,e,n?r:cr.min(),n?i:No()))).next((t=>({documents:t,Gn:i})))))}function fu(t,e){const n=Gs(t),s=Gs(n.ze),r=n.Un.get(e);return r?Promise.resolve(r.target):n.persistence.runTransaction("Get target data","readonly",(t=>s.Tt(t,e).next((t=>t?t.target:null))))}function gu(t){const e=Gs(t);return e.persistence.runTransaction("Get new document changes","readonly",(t=>function(t,e,n){const s=Gs(t);let r=bo(),i=rc(n);const o=Gc(e),a=IDBKeyRange.lowerBound(i,!0);return o.Kt({index:Da.readTimeIndex,range:a},((t,e)=>{const n=nc(s.N,e);r=r.insert(n.key,n),i=e.readTime})).next((()=>({En:r,readTime:ic(i)})))}(e.jn,t,e.Kn))).then((({En:t,readTime:n})=>(e.Kn=n,t)))}async function mu(t,e,n=No()){const s=await hu(t,Ei(lc(e.bundledQuery))),r=Gs(t);return r.persistence.runTransaction("Save named query","readwrite",(t=>{const i=$o(e.readTime);if(s.snapshotVersion.compareTo(i)>=0)return r.Je.saveNamedQuery(t,e);const o=s.withResumeToken(wr.EMPTY_BYTE_STRING,i);return r.Un=r.Un.insert(o.targetId,o),r.ze.updateTargetData(t,o).next((()=>r.ze.removeMatchingKeysForTargetId(t,s.targetId))).next((()=>r.ze.addMatchingKeys(t,n,s.targetId))).next((()=>r.Je.saveNamedQuery(t,e)))}))} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */class pu{constructor(t){this.N=t,this.Yn=new Map,this.Xn=new Map}getBundleMetadata(t,e){return qa.resolve(this.Yn.get(e))}saveBundleMetadata(t,e){var n;return this.Yn.set(e.id,{id:(n=e).id,version:n.version,createTime:$o(n.createTime)}),qa.resolve()}getNamedQuery(t,e){return qa.resolve(this.Xn.get(e))}saveNamedQuery(t,e){return this.Xn.set(e.name,function(t){return{name:t.name,query:lc(t.bundledQuery),readTime:$o(t.readTime)}}(e)),qa.resolve()}} +/** + * @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 yu{constructor(){this.Zn=new yo(wu.ts),this.es=new yo(wu.ns)}isEmpty(){return this.Zn.isEmpty()}addReference(t,e){const n=new wu(t,e);this.Zn=this.Zn.add(n),this.es=this.es.add(n)}ss(t,e){t.forEach((t=>this.addReference(t,e)))}removeReference(t,e){this.rs(new wu(t,e))}os(t,e){t.forEach((t=>this.removeReference(t,e)))}cs(t){const e=new xr(new fr([])),n=new wu(e,t),s=new wu(e,t+1),r=[];return this.es.forEachInRange([n,s],(t=>{this.rs(t),r.push(t.key)})),r}us(){this.Zn.forEach((t=>this.rs(t)))}rs(t){this.Zn=this.Zn.delete(t),this.es=this.es.delete(t)}hs(t){const e=new xr(new fr([])),n=new wu(e,t),s=new wu(e,t+1);let r=No();return this.es.forEachInRange([n,s],(t=>{r=r.add(t.key)})),r}containsKey(t){const e=new wu(t,0),n=this.Zn.firstAfterOrEqual(e);return null!==n&&t.isEqual(n.key)}}class wu{constructor(t,e){this.key=t,this.ls=e}static ts(t,e){return xr.comparator(t.key,e.key)||rr(t.ls,e.ls)}static ns(t,e){return rr(t.ls,e.ls)||xr.comparator(t.key,e.key)}} +/** + * @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 vu{constructor(t,e){this.Ht=t,this.referenceDelegate=e,this.In=[],this.fs=1,this.ds=new yo(wu.ts)}checkEmpty(t){return qa.resolve(0===this.In.length)}addMutationBatch(t,e,n,s){const r=this.fs;this.fs++,this.In.length>0&&this.In[this.In.length-1];const i=new Ja(r,e,n,s);this.In.push(i);for(const e of s)this.ds=this.ds.add(new wu(e.key,r)),this.Ht.addToCollectionParentIndex(t,e.key.path.popLast());return qa.resolve(i)}lookupMutationBatch(t,e){return qa.resolve(this.ws(e))}getNextMutationBatchAfterBatchId(t,e){const n=e+1,s=this._s(n),r=s<0?0:s;return qa.resolve(this.In.length>r?this.In[r]:null)}getHighestUnacknowledgedBatchId(){return qa.resolve(0===this.In.length?-1:this.fs-1)}getAllMutationBatches(t){return qa.resolve(this.In.slice())}getAllMutationBatchesAffectingDocumentKey(t,e){const n=new wu(e,0),s=new wu(e,Number.POSITIVE_INFINITY),r=[];return this.ds.forEachInRange([n,s],(t=>{const e=this.ws(t.ls);r.push(e)})),qa.resolve(r)}getAllMutationBatchesAffectingDocumentKeys(t,e){let n=new yo(rr);return e.forEach((t=>{const e=new wu(t,0),s=new wu(t,Number.POSITIVE_INFINITY);this.ds.forEachInRange([e,s],(t=>{n=n.add(t.ls)}))})),qa.resolve(this.gs(n))}getAllMutationBatchesAffectingQuery(t,e){const n=e.path,s=n.length+1;let r=n;xr.isDocumentKey(r)||(r=r.child(""));const i=new wu(new xr(r),0);let o=new yo(rr);return this.ds.forEachWhile((t=>{const e=t.key.path;return!!n.isPrefixOf(e)&&(e.length===s&&(o=o.add(t.ls)),!0)}),i),qa.resolve(this.gs(o))}gs(t){const e=[];return t.forEach((t=>{const n=this.ws(t);null!==n&&e.push(n)})),e}removeMutationBatch(t,e){Ks(0===this.ys(e.batchId,"removed")),this.In.shift();let n=this.ds;return qa.forEach(e.mutations,(s=>{const r=new wu(s.key,e.batchId);return n=n.delete(r),this.referenceDelegate.markPotentiallyOrphaned(t,s.key)})).next((()=>{this.ds=n}))}te(t){}containsKey(t,e){const n=new wu(e,0),s=this.ds.firstAfterOrEqual(n);return qa.resolve(e.isEqual(s&&s.key))}performConsistencyCheck(t){return this.In.length,qa.resolve()}ys(t,e){return this._s(t)}_s(t){return 0===this.In.length?0:t-this.In[0].batchId}ws(t){const e=this._s(t);return e<0||e>=this.In.length?null:this.In[e]}} +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */class bu{constructor(t,e){this.Ht=t,this.ps=e,this.docs=new go(xr.comparator),this.size=0}addEntry(t,e,n){const s=e.key,r=this.docs.get(s),i=r?r.size:0,o=this.ps(e);return this.docs=this.docs.insert(s,{document:e.clone(),size:o,readTime:n}),this.size+=o-i,this.Ht.addToCollectionParentIndex(t,s.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 qa.resolve(n?n.document.clone():Hr.newInvalidDocument(e))}getEntries(t,e){let n=bo();return e.forEach((t=>{const e=this.docs.get(t);n=n.insert(t,e?e.document.clone():Hr.newInvalidDocument(t))})),qa.resolve(n)}getDocumentsMatchingQuery(t,e,n){let s=bo();const r=new xr(e.path.child("")),i=this.docs.getIteratorFrom(r);for(;i.hasNext();){const{key:t,value:{document:r,readTime:o}}=i.getNext();if(!e.path.isPrefixOf(t.path))break;o.compareTo(n)<=0||Ai(e,r)&&(s=s.insert(r.key,r.clone()))}return qa.resolve(s)}Ts(t,e){return qa.forEach(this.docs,(t=>e(t)))}newChangeBuffer(t){return new Tu(this)}getSize(t){return qa.resolve(this.size)}}class Tu extends Bc{constructor(t){super(),this.Se=t}applyChanges(t){const e=[];return this.changes.forEach(((n,s)=>{s.document.isValidDocument()?e.push(this.Se.addEntry(t,s.document,this.getReadTime(n))):this.Se.removeEntry(n)})),qa.waitFor(e)}getFromCache(t,e){return this.Se.getEntry(t,e)}getAllFromCache(t,e){return this.Se.getEntries(t,e)}} +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */class Eu{constructor(t){this.persistence=t,this.Es=new qc((t=>Wr(t)),Yr),this.lastRemoteSnapshotVersion=cr.min(),this.highestTargetId=0,this.Is=0,this.As=new yu,this.targetCount=0,this.Rs=Dc.se()}forEachTarget(t,e){return this.Es.forEach(((t,n)=>e(n))),qa.resolve()}getLastRemoteSnapshotVersion(t){return qa.resolve(this.lastRemoteSnapshotVersion)}getHighestSequenceNumber(t){return qa.resolve(this.Is)}allocateTargetId(t){return this.highestTargetId=this.Rs.next(),qa.resolve(this.highestTargetId)}setTargetsMetadata(t,e,n){return n&&(this.lastRemoteSnapshotVersion=n),e>this.Is&&(this.Is=e),qa.resolve()}ce(t){this.Es.set(t.target,t);const e=t.targetId;e>this.highestTargetId&&(this.Rs=new Dc(e),this.highestTargetId=e),t.sequenceNumber>this.Is&&(this.Is=t.sequenceNumber)}addTargetData(t,e){return this.ce(e),this.targetCount+=1,qa.resolve()}updateTargetData(t,e){return this.ce(e),qa.resolve()}removeTargetData(t,e){return this.Es.delete(e.target),this.As.cs(e.targetId),this.targetCount-=1,qa.resolve()}removeTargets(t,e,n){let s=0;const r=[];return this.Es.forEach(((i,o)=>{o.sequenceNumber<=e&&null===n.get(o.targetId)&&(this.Es.delete(i),r.push(this.removeMatchingKeysForTargetId(t,o.targetId)),s++)})),qa.waitFor(r).next((()=>s))}getTargetCount(t){return qa.resolve(this.targetCount)}getTargetData(t,e){const n=this.Es.get(e)||null;return qa.resolve(n)}addMatchingKeys(t,e,n){return this.As.ss(e,n),qa.resolve()}removeMatchingKeys(t,e,n){this.As.os(e,n);const s=this.persistence.referenceDelegate,r=[];return s&&e.forEach((e=>{r.push(s.markPotentiallyOrphaned(t,e))})),qa.waitFor(r)}removeMatchingKeysForTargetId(t,e){return this.As.cs(e),qa.resolve()}getMatchingKeysForTargetId(t,e){const n=this.As.hs(e);return qa.resolve(n)}containsKey(t,e){return qa.resolve(this.As.containsKey(e))}} +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */class Iu{constructor(t,e){this.bs={},this.Le=new er(0),this.Be=!1,this.Be=!0,this.referenceDelegate=t(this),this.ze=new Eu(this),this.Ht=new mc,this.He=function(t,e){return new bu(t,e)}(this.Ht,(t=>this.referenceDelegate.Ps(t))),this.N=new ec(e),this.Je=new pu(this.N)}start(){return Promise.resolve()}shutdown(){return this.Be=!1,Promise.resolve()}get started(){return this.Be}setDatabaseDeletedListener(){}setNetworkEnabled(){}getIndexManager(){return this.Ht}getMutationQueue(t){let e=this.bs[t.toKey()];return e||(e=new vu(this.Ht,this.referenceDelegate),this.bs[t.toKey()]=e),e}getTargetCache(){return this.ze}getRemoteDocumentCache(){return this.He}getBundleCache(){return this.Je}runTransaction(t,e,n){Vs("MemoryPersistence","Starting transaction:",t);const s=new Su(this.Le.next());return this.referenceDelegate.vs(),n(s).next((t=>this.referenceDelegate.Vs(s).next((()=>t)))).toPromise().then((t=>(s.raiseOnCommittedEvent(),t)))}Ss(t,e){return qa.or(Object.values(this.bs).map((n=>()=>n.containsKey(t,e))))}}class Su extends Ua{constructor(t){super(),this.currentSequenceNumber=t}}class _u{constructor(t){this.persistence=t,this.Ds=new yu,this.Cs=null}static Ns(t){return new _u(t)}get xs(){if(this.Cs)return this.Cs;throw js()}addReference(t,e,n){return this.Ds.addReference(n,e),this.xs.delete(n.toString()),qa.resolve()}removeReference(t,e,n){return this.Ds.removeReference(n,e),this.xs.add(n.toString()),qa.resolve()}markPotentiallyOrphaned(t,e){return this.xs.add(e.toString()),qa.resolve()}removeTarget(t,e){this.Ds.cs(e.targetId).forEach((t=>this.xs.add(t.toString())));const n=this.persistence.getTargetCache();return n.getMatchingKeysForTargetId(t,e.targetId).next((t=>{t.forEach((t=>this.xs.add(t.toString())))})).next((()=>n.removeTargetData(t,e)))}vs(){this.Cs=new Set}Vs(t){const e=this.persistence.getRemoteDocumentCache().newChangeBuffer();return qa.forEach(this.xs,(n=>{const s=xr.fromPath(n);return this.ks(t,s).next((t=>{t||e.removeEntry(s)}))})).next((()=>(this.Cs=null,e.apply(t))))}updateLimboDocument(t,e){return this.ks(t,e).next((t=>{t?this.xs.delete(e.toString()):this.xs.add(e.toString())}))}Ps(t){return 0}ks(t,e){return qa.or([()=>qa.resolve(this.Ds.containsKey(e)),()=>this.persistence.getTargetCache().containsKey(t,e),()=>this.persistence.Ss(t,e)])}} +/** + * @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. + */function Nu(t,e){return`firestore_clients_${t}_${e}`}function Au(t,e,n){let s=`firestore_mutations_${t}_${n}`;return e.isAuthenticated()&&(s+=`_${e.uid}`),s}function Du(t,e){return`firestore_targets_${t}_${e}`}class xu{constructor(t,e,n,s){this.user=t,this.batchId=e,this.state=n,this.error=s}static $s(t,e,n){const s=JSON.parse(n);let r,i="object"==typeof s&&-1!==["pending","acknowledged","rejected"].indexOf(s.state)&&(void 0===s.error||"object"==typeof s.error);return i&&s.error&&(i="string"==typeof s.error.message&&"string"==typeof s.error.code,i&&(r=new zs(s.error.code,s.error.message))),i?new xu(t,e,s.state,r):(Us("SharedClientState",`Failed to parse mutation state for ID '${e}': ${n}`),null)}Os(){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 Cu{constructor(t,e,n){this.targetId=t,this.state=e,this.error=n}static $s(t,e){const n=JSON.parse(e);let s,r="object"==typeof n&&-1!==["not-current","current","rejected"].indexOf(n.state)&&(void 0===n.error||"object"==typeof n.error);return r&&n.error&&(r="string"==typeof n.error.message&&"string"==typeof n.error.code,r&&(s=new zs(n.error.code,n.error.message))),r?new Cu(t,n.state,s):(Us("SharedClientState",`Failed to parse target state for ID '${t}': ${e}`),null)}Os(){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 ku{constructor(t,e){this.clientId=t,this.activeTargetIds=e}static $s(t,e){const n=JSON.parse(e);let s="object"==typeof n&&n.activeTargetIds instanceof Array,r=Do();for(let t=0;s&&tthis.shutdown())),this.started=!0}writeSequenceNumber(t){this.setItem(this.Qs,JSON.stringify(t))}getAllActiveQueryTargets(){return this.ti(this.qs)}isActiveQueryTarget(t){let e=!1;return this.qs.forEach(((n,s)=>{s.activeTargetIds.has(t)&&(e=!0)})),e}addPendingMutation(t){this.ei(t,"pending")}updateMutationState(t,e,n){this.ei(t,e,n),this.ni(t)}addLocalQueryTarget(t){let e="not-current";if(this.isActiveQueryTarget(t)){const n=this.storage.getItem(Du(this.persistenceKey,t));if(n){const s=Cu.$s(t,n);s&&(e=s.state)}}return this.si.Fs(t),this.Ys(),e}removeLocalQueryTarget(t){this.si.Ms(t),this.Ys()}isLocalQueryTarget(t){return this.si.activeTargetIds.has(t)}clearQueryState(t){this.removeItem(Du(this.persistenceKey,t))}updateQueryState(t,e,n){this.ii(t,e,n)}handleUserChange(t,e,n){e.forEach((t=>{this.ni(t)})),this.currentUser=t,n.forEach((t=>{this.addPendingMutation(t)}))}setOnlineState(t){this.ri(t)}notifyBundleLoaded(){this.oi()}shutdown(){this.started&&(this.window.removeEventListener("storage",this.Bs),this.removeItem(this.js),this.started=!1)}getItem(t){const e=this.storage.getItem(t);return Vs("SharedClientState","READ",t,e),e}setItem(t,e){Vs("SharedClientState","SET",t,e),this.storage.setItem(t,e)}removeItem(t){Vs("SharedClientState","REMOVE",t),this.storage.removeItem(t)}Us(t){const e=t;if(e.storageArea===this.storage){if(Vs("SharedClientState","EVENT",e.key,e.newValue),e.key===this.js)return void Us("Received WebStorage notification for local change. Another client might have garbage-collected our state");this.Oe.enqueueRetryable((async()=>{if(this.started){if(null!==e.key)if(this.Ws.test(e.key)){if(null==e.newValue){const t=this.ci(e.key);return this.ai(t,null)}{const t=this.ui(e.key,e.newValue);if(t)return this.ai(t.clientId,t)}}else if(this.Gs.test(e.key)){if(null!==e.newValue){const t=this.hi(e.key,e.newValue);if(t)return this.li(t)}}else if(this.zs.test(e.key)){if(null!==e.newValue){const t=this.fi(e.key,e.newValue);if(t)return this.di(t)}}else if(e.key===this.Hs){if(null!==e.newValue){const t=this.Xs(e.newValue);if(t)return this.Zs(t)}}else if(e.key===this.Qs){const t=function(t){let e=er.T;if(null!=t)try{const n=JSON.parse(t);Ks("number"==typeof n),e=n}catch(t){Us("SharedClientState","Failed to read sequence number from WebStorage",t)}return e}(e.newValue);t!==er.T&&this.sequenceNumberHandler(t)}else if(e.key===this.Js)return this.syncEngine.wi()}else this.Ks.push(e)}))}}get si(){return this.qs.get(this.Ls)}Ys(){this.setItem(this.js,this.si.Os())}ei(t,e,n){const s=new xu(this.currentUser,t,e,n),r=Au(this.persistenceKey,this.currentUser,t);this.setItem(r,s.Os())}ni(t){const e=Au(this.persistenceKey,this.currentUser,t);this.removeItem(e)}ri(t){const e={clientId:this.Ls,onlineState:t};this.storage.setItem(this.Hs,JSON.stringify(e))}ii(t,e,n){const s=Du(this.persistenceKey,t),r=new Cu(t,e,n);this.setItem(s,r.Os())}oi(){this.setItem(this.Js,"value-not-used")}ci(t){const e=this.Ws.exec(t);return e?e[1]:null}ui(t,e){const n=this.ci(t);return ku.$s(n,e)}hi(t,e){const n=this.Gs.exec(t),s=Number(n[1]),r=void 0!==n[2]?n[2]:null;return xu.$s(new Ls(r),s,e)}fi(t,e){const n=this.zs.exec(t),s=Number(n[1]);return Cu.$s(s,e)}Xs(t){return Ru.$s(t)}async li(t){if(t.user.uid===this.currentUser.uid)return this.syncEngine._i(t.batchId,t.state,t.error);Vs("SharedClientState",`Ignoring mutation for non-active user ${t.user.uid}`)}di(t){return this.syncEngine.mi(t.targetId,t.state,t.error)}ai(t,e){const n=e?this.qs.insert(t,e):this.qs.remove(t),s=this.ti(this.qs),r=this.ti(n),i=[],o=[];return r.forEach((t=>{s.has(t)||i.push(t)})),s.forEach((t=>{r.has(t)||o.push(t)})),this.syncEngine.gi(i,o).then((()=>{this.qs=n}))}Zs(t){this.qs.get(t.clientId)&&this.onlineStateHandler(t.onlineState)}ti(t){let e=Do();return t.forEach(((t,n)=>{e=e.unionWith(n.activeTargetIds)})),e}}class Mu{constructor(){this.yi=new Lu,this.pi={},this.onlineStateHandler=null,this.sequenceNumberHandler=null}addPendingMutation(t){}updateMutationState(t,e,n){}addLocalQueryTarget(t){return this.yi.Fs(t),this.pi[t]||"not-current"}updateQueryState(t,e,n){this.pi[t]=e}removeLocalQueryTarget(t){this.yi.Ms(t)}isLocalQueryTarget(t){return this.yi.activeTargetIds.has(t)}clearQueryState(t){delete this.pi[t]}getAllActiveQueryTargets(){return this.yi.activeTargetIds}isActiveQueryTarget(t){return this.yi.activeTargetIds.has(t)}start(){return this.yi=new Lu,Promise.resolve()}handleUserChange(t,e,n){}setOnlineState(t){}shutdown(){}writeSequenceNumber(t){}notifyBundleLoaded(){}} +/** + * @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 Fu{Ti(t){}shutdown(){}} +/** + * @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 Pu{constructor(){this.Ei=()=>this.Ii(),this.Ai=()=>this.Ri(),this.bi=[],this.Pi()}Ti(t){this.bi.push(t)}shutdown(){window.removeEventListener("online",this.Ei),window.removeEventListener("offline",this.Ai)}Pi(){window.addEventListener("online",this.Ei),window.addEventListener("offline",this.Ai)}Ii(){Vs("ConnectivityMonitor","Network connectivity changed: AVAILABLE");for(const t of this.bi)t(0)}Ri(){Vs("ConnectivityMonitor","Network connectivity changed: UNAVAILABLE");for(const t of this.bi)t(1)}static bt(){return"undefined"!=typeof window&&void 0!==window.addEventListener&&void 0!==window.removeEventListener}} +/** + * @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. + */const Vu={BatchGetDocuments:"batchGet",Commit:"commit",RunQuery:"runQuery"}; +/** + * @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 Uu{constructor(t){this.vi=t.vi,this.Vi=t.Vi}Si(t){this.Di=t}Ci(t){this.Ni=t}onMessage(t){this.xi=t}close(){this.Vi()}send(t){this.vi(t)}ki(){this.Di()}$i(t){this.Ni(t)}Oi(t){this.xi(t)}} +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */class qu extends class{constructor(t){this.databaseInfo=t,this.databaseId=t.databaseId;const e=t.ssl?"https":"http";this.Fi=e+"://"+t.host,this.Mi="projects/"+this.databaseId.projectId+"/databases/"+this.databaseId.database+"/documents"}Li(t,e,n,s){const r=this.Bi(t,e);Vs("RestConnection","Sending: ",r,n);const i={};return this.Ui(i,s),this.qi(t,r,i,n).then((t=>(Vs("RestConnection","Received: ",t),t)),(e=>{throw qs("RestConnection",`${t} failed with error: `,e,"url: ",r,"request:",n),e}))}Ki(t,e,n,s){return this.Li(t,e,n,s)}Ui(t,e){if(t["X-Goog-Api-Client"]="gl-js/ fire/"+Os,t["Content-Type"]="text/plain",this.databaseInfo.appId&&(t["X-Firebase-GMPID"]=this.databaseInfo.appId),e)for(const n in e.authHeaders)e.authHeaders.hasOwnProperty(n)&&(t[n]=e.authHeaders[n])}Bi(t,e){const n=Vu[t];return`${this.Fi}/v1/${e}:${n}`}}{constructor(t){super(t),this.forceLongPolling=t.forceLongPolling,this.autoDetectLongPolling=t.autoDetectLongPolling,this.useFetchStreams=t.useFetchStreams}qi(t,e,n,s){return new Promise(((r,i)=>{const o=new ks;o.listenOnce(_s.COMPLETE,(()=>{try{switch(o.getLastErrorCode()){case Ss.NO_ERROR:const e=o.getResponseJson();Vs("Connection","XHR received:",JSON.stringify(e)),r(e);break;case Ss.TIMEOUT:Vs("Connection",'RPC "'+t+'" timed out'),i(new zs(Hs.DEADLINE_EXCEEDED,"Request time out"));break;case Ss.HTTP_ERROR:const n=o.getStatus();if(Vs("Connection",'RPC "'+t+'" failed with status:',n,"response text:",o.getResponseText()),n>0){const t=o.getResponseJson().error;if(t&&t.status&&t.message){const e=function(t){const e=t.toLowerCase().replace(/_/g,"-");return Object.values(Hs).indexOf(e)>=0?e:Hs.UNKNOWN}(t.status);i(new zs(e,t.message))}else i(new zs(Hs.UNKNOWN,"Server responded with status "+o.getStatus()))}else i(new zs(Hs.UNAVAILABLE,"Connection failed."));break;default:js()}}finally{Vs("Connection",'RPC "'+t+'" completed.')}}));const a=JSON.stringify(s);o.send(e,"POST",a,n,15)}))}ji(t,e){const n=[this.Fi,"/","google.firestore.v1.Firestore","/",t,"/channel"],s=new vs,r=de(),i={httpSessionIdParam:"gsessionid",initMessageHeaders:{},messageUrlParams:{database:`projects/${this.databaseId.projectId}/databases/${this.databaseId.database}`},sendRawJson:!0,supportsCrossDomainXhr:!0,internalChannelParams:{forwardChannelRequestTimeoutMs:6e5},forceLongPolling:this.forceLongPolling,detectBufferingProxy:this.autoDetectLongPolling};this.useFetchStreams&&(i.xmlHttpFactory=new xs({})),this.Ui(i.initMessageHeaders,e),"undefined"!=typeof window&&(window.cordova||window.phonegap||window.PhoneGap)&&/ios|iphone|ipod|ipad|android|blackberry|iemobile/i.test(h())||"object"==typeof navigator&&"ReactNative"===navigator.product||h().indexOf("Electron/")>=0||function(){const t=h();return t.indexOf("MSIE ")>=0||t.indexOf("Trident/")>=0}()||h().indexOf("MSAppHost/")>=0||function(){const t="object"==typeof chrome?chrome.runtime:"object"==typeof browser?browser.runtime:void 0;return"object"==typeof t&&void 0!==t.id}()||(i.httpHeadersOverwriteParam="$httpHeaders");const o=n.join("");Vs("Connection","Creating WebChannel: "+o,i);const a=s.createWebChannel(o,i);let c=!1,u=!1;const l=new Uu({vi:t=>{u?Vs("Connection","Not sending because WebChannel is closed:",t):(c||(Vs("Connection","Opening WebChannel transport."),a.open(),c=!0),Vs("Connection","WebChannel sending:",t),a.send(t))},Vi:()=>a.close()}),d=(t,e,n)=>{t.listen(e,(t=>{try{n(t)}catch(t){setTimeout((()=>{throw t}),0)}}))};return d(a,Cs.EventType.OPEN,(()=>{u||Vs("Connection","WebChannel transport opened.")})),d(a,Cs.EventType.CLOSE,(()=>{u||(u=!0,Vs("Connection","WebChannel transport closed"),l.$i())})),d(a,Cs.EventType.ERROR,(t=>{u||(u=!0,qs("Connection","WebChannel transport errored:",t),l.$i(new zs(Hs.UNAVAILABLE,"The operation could not be completed")))})),d(a,Cs.EventType.MESSAGE,(t=>{var e;if(!u){const n=t.data[0];Ks(!!n);const s=n,r=s.error||(null===(e=s[0])||void 0===e?void 0:e.error);if(r){Vs("Connection","WebChannel received error:",r);const t=r.status;let e=function(t){const e=uo[t];if(void 0!==e)return fo(e)}(t),n=r.message;void 0===e&&(e=Hs.INTERNAL,n="Unknown error status: "+t+" with message "+r.message),u=!0,l.$i(new zs(e,n)),a.close()}else Vs("Connection","WebChannel received:",n),l.Oi(n)}})),d(r,Ns.STAT_EVENT,(t=>{t.stat===As?Vs("Connection","Detected buffering proxy"):t.stat===Ds&&Vs("Connection","Detected no buffering proxy")})),setTimeout((()=>{l.ki()}),0),l}} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */function Bu(){return"undefined"!=typeof window?window:null}function ju(){return"undefined"!=typeof document?document:null} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */function Ku(t){return new qo(t,!0)}class $u{constructor(t,e,n=1e3,s=1.5,r=6e4){this.Oe=t,this.timerId=e,this.Qi=n,this.Wi=s,this.Gi=r,this.zi=0,this.Hi=null,this.Ji=Date.now(),this.reset()}reset(){this.zi=0}Yi(){this.zi=this.Gi}Xi(t){this.cancel();const e=Math.floor(this.zi+this.Zi()),n=Math.max(0,Date.now()-this.Ji),s=Math.max(0,e-n);s>0&&Vs("ExponentialBackoff",`Backing off for ${s} ms (base delay: ${this.zi} ms, delay with jitter: ${e} ms, last attempt: ${n} ms ago)`),this.Hi=this.Oe.enqueueAfterDelay(this.timerId,s,(()=>(this.Ji=Date.now(),t()))),this.zi*=this.Wi,this.zithis.Gi&&(this.zi=this.Gi)}tr(){null!==this.Hi&&(this.Hi.skipDelay(),this.Hi=null)}cancel(){null!==this.Hi&&(this.Hi.cancel(),this.Hi=null)}Zi(){return(Math.random()-.5)*this.zi}} +/** + * @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 Gu{constructor(t,e,n,s,r,i,o){this.Oe=t,this.er=n,this.nr=s,this.sr=r,this.credentialsProvider=i,this.listener=o,this.state=0,this.ir=0,this.rr=null,this.cr=null,this.stream=null,this.ar=new $u(t,e)}ur(){return 1===this.state||5===this.state||this.hr()}hr(){return 2===this.state||3===this.state}start(){4!==this.state?this.auth():this.lr()}async stop(){this.ur()&&await this.close(0)}dr(){this.state=0,this.ar.reset()}wr(){this.hr()&&null===this.rr&&(this.rr=this.Oe.enqueueAfterDelay(this.er,6e4,(()=>this._r())))}mr(t){this.gr(),this.stream.send(t)}async _r(){if(this.hr())return this.close(0)}gr(){this.rr&&(this.rr.cancel(),this.rr=null)}yr(){this.cr&&(this.cr.cancel(),this.cr=null)}async close(t,e){this.gr(),this.yr(),this.ar.cancel(),this.ir++,4!==t?this.ar.reset():e&&e.code===Hs.RESOURCE_EXHAUSTED?(Us(e.toString()),Us("Using maximum backoff delay to prevent overloading the backend."),this.ar.Yi()):e&&e.code===Hs.UNAUTHENTICATED&&3!==this.state&&this.credentialsProvider.invalidateToken(),null!==this.stream&&(this.pr(),this.stream.close(),this.stream=null),this.state=t,await this.listener.Ci(e)}pr(){}auth(){this.state=1;const t=this.Tr(this.ir),e=this.ir;this.credentialsProvider.getToken().then((t=>{this.ir===e&&this.Er(t)}),(e=>{t((()=>{const t=new zs(Hs.UNKNOWN,"Fetching auth token failed: "+e.message);return this.Ir(t)}))}))}Er(t){const e=this.Tr(this.ir);this.stream=this.Ar(t),this.stream.Si((()=>{e((()=>(this.state=2,this.cr=this.Oe.enqueueAfterDelay(this.nr,1e4,(()=>(this.hr()&&(this.state=3),Promise.resolve()))),this.listener.Si())))})),this.stream.Ci((t=>{e((()=>this.Ir(t)))})),this.stream.onMessage((t=>{e((()=>this.onMessage(t)))}))}lr(){this.state=5,this.ar.Xi((async()=>{this.state=0,this.start()}))}Ir(t){return Vs("PersistentStream",`close with error: ${t}`),this.stream=null,this.close(4,t)}Tr(t){return e=>{this.Oe.enqueueAndForget((()=>this.ir===t?e():(Vs("PersistentStream","stream callback skipped by getCloseGuardedDispatcher."),Promise.resolve())))}}}class Hu extends Gu{constructor(t,e,n,s,r){super(t,"listen_stream_connection_backoff","listen_stream_idle","health_check_timeout",e,n,r),this.N=s}Ar(t){return this.sr.ji("Listen",t)}onMessage(t){this.ar.reset();const e=function(t,e){let n;if("targetChange"in e){e.targetChange;const s=function(t){return"NO_CHANGE"===t?0:"ADD"===t?1:"REMOVE"===t?2:"CURRENT"===t?3:"RESET"===t?4:js()}(e.targetChange.targetChangeType||"NO_CHANGE"),r=e.targetChange.targetIds||[],i=function(t,e){return t.D?(Ks(void 0===e||"string"==typeof e),wr.fromBase64String(e||"")):(Ks(void 0===e||e instanceof Uint8Array),wr.fromUint8Array(e||new Uint8Array))}(t,e.targetChange.resumeToken),o=e.targetChange.cause,a=o&&function(t){const e=void 0===t.code?Hs.UNKNOWN:fo(t.code);return new zs(e,t.message||"")}(o);n=new Lo(s,r,i,a||null)}else if("documentChange"in e){e.documentChange;const s=e.documentChange;s.document,s.document.name,s.document.updateTime;const r=Qo(t,s.document.name),i=$o(s.document.updateTime),o=new $r({mapValue:{fields:s.document.fields}}),a=Hr.newFoundDocument(r,i,o),c=s.targetIds||[],u=s.removedTargetIds||[];n=new ko(c,u,a.key,a)}else if("documentDelete"in e){e.documentDelete;const s=e.documentDelete;s.document;const r=Qo(t,s.document),i=s.readTime?$o(s.readTime):cr.min(),o=Hr.newNoDocument(r,i),a=s.removedTargetIds||[];n=new ko([],a,o.key,o)}else if("documentRemove"in e){e.documentRemove;const s=e.documentRemove;s.document;const r=Qo(t,s.document),i=s.removedTargetIds||[];n=new ko([],i,r,null)}else{if(!("filter"in e))return js();{e.filter;const t=e.filter;t.targetId;const s=t.count||0,r=new co(s),i=t.targetId;n=new Ro(i,r)}}return n}(this.N,t),n=function(t){if(!("targetChange"in t))return cr.min();const e=t.targetChange;return e.targetIds&&e.targetIds.length?cr.min():e.readTime?$o(e.readTime):cr.min()}(t);return this.listener.Rr(e,n)}br(t){const e={};e.database=Xo(this.N),e.addTarget=function(t,e){let n;const s=e.target;return n=Xr(s)?{documents:sa(t,s)}:{query:ra(t,s)},n.targetId=e.targetId,e.resumeToken.approximateByteSize()>0?n.resumeToken=jo(t,e.resumeToken):e.snapshotVersion.compareTo(cr.min())>0&&(n.readTime=Bo(t,e.snapshotVersion.toTimestamp())),n}(this.N,t);const n=function(t,e){const n=function(t,e){switch(e){case 0:return null;case 1:return"existence-filter-mismatch";case 2:return"limbo-document";default:return js()}}(0,e.purpose);return null==n?null:{"goog-listen-tags":n}}(this.N,t);n&&(e.labels=n),this.mr(e)}Pr(t){const e={};e.database=Xo(this.N),e.removeTarget=t,this.mr(e)}}class zu extends Gu{constructor(t,e,n,s,r){super(t,"write_stream_connection_backoff","write_stream_idle","health_check_timeout",e,n,r),this.N=s,this.vr=!1}get Vr(){return this.vr}start(){this.vr=!1,this.lastStreamToken=void 0,super.start()}pr(){this.vr&&this.Sr([])}Ar(t){return this.sr.ji("Write",t)}onMessage(t){if(Ks(!!t.streamToken),this.lastStreamToken=t.streamToken,this.vr){this.ar.reset();const e=function(t,e){return t&&t.length>0?(Ks(void 0!==e),t.map((t=>function(t,e){let n=t.updateTime?$o(t.updateTime):$o(e);return n.isEqual(cr.min())&&(n=$o(e)),new Hi(n,t.transformResults||[])}(t,e)))):[]}(t.writeResults,t.commitTime),n=$o(t.commitTime);return this.listener.Dr(n,e)}return Ks(!t.writeResults||0===t.writeResults.length),this.vr=!0,this.listener.Cr()}Nr(){const t={};t.database=Xo(this.N),this.mr(t)}Sr(t){const e={streamToken:this.lastStreamToken,writes:t.map((t=>ea(this.N,t)))};this.mr(e)}} +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */class Qu extends class{}{constructor(t,e,n){super(),this.credentials=t,this.sr=e,this.N=n,this.kr=!1}$r(){if(this.kr)throw new zs(Hs.FAILED_PRECONDITION,"The client has already been terminated.")}Li(t,e,n){return this.$r(),this.credentials.getToken().then((s=>this.sr.Li(t,e,n,s))).catch((t=>{throw"FirebaseError"===t.name?(t.code===Hs.UNAUTHENTICATED&&this.credentials.invalidateToken(),t):new zs(Hs.UNKNOWN,t.toString())}))}Ki(t,e,n){return this.$r(),this.credentials.getToken().then((s=>this.sr.Ki(t,e,n,s))).catch((t=>{throw"FirebaseError"===t.name?(t.code===Hs.UNAUTHENTICATED&&this.credentials.invalidateToken(),t):new zs(Hs.UNKNOWN,t.toString())}))}terminate(){this.kr=!0}}class Wu{constructor(t,e){this.asyncQueue=t,this.onlineStateHandler=e,this.state="Unknown",this.Or=0,this.Fr=null,this.Mr=!0}Lr(){0===this.Or&&(this.Br("Unknown"),this.Fr=this.asyncQueue.enqueueAfterDelay("online_state_timeout",1e4,(()=>(this.Fr=null,this.Ur("Backend didn't respond within 10 seconds."),this.Br("Offline"),Promise.resolve()))))}qr(t){"Online"===this.state?this.Br("Unknown"):(this.Or++,this.Or>=1&&(this.Kr(),this.Ur(`Connection failed 1 times. Most recent error: ${t.toString()}`),this.Br("Offline")))}set(t){this.Kr(),this.Or=0,"Online"===t&&(this.Mr=!1),this.Br(t)}Br(t){t!==this.state&&(this.state=t,this.onlineStateHandler(t))}Ur(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.Mr?(Us(e),this.Mr=!1):Vs("OnlineStateTracker",e)}Kr(){null!==this.Fr&&(this.Fr.cancel(),this.Fr=null)}} +/** + * @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 Yu{constructor(t,e,n,s,r){this.localStore=t,this.datastore=e,this.asyncQueue=n,this.remoteSyncer={},this.jr=[],this.Qr=new Map,this.Wr=new Set,this.Gr=[],this.zr=r,this.zr.Ti((t=>{n.enqueueAndForget((async()=>{ih(this)&&(Vs("RemoteStore","Restarting streams for network reachability change."),await async function(t){const e=Gs(t);e.Wr.add(4),await Ju(e),e.Hr.set("Unknown"),e.Wr.delete(4),await Xu(e)}(this))}))})),this.Hr=new Wu(n,s)}}async function Xu(t){if(ih(t))for(const e of t.Gr)await e(!0)}async function Ju(t){for(const e of t.Gr)await e(!1)}function Zu(t,e){const n=Gs(t);n.Qr.has(e.targetId)||(n.Qr.set(e.targetId,e),rh(n)?sh(n):Eh(n).hr()&&eh(n,e))}function th(t,e){const n=Gs(t),s=Eh(n);n.Qr.delete(e),s.hr()&&nh(n,e),0===n.Qr.size&&(s.hr()?s.wr():ih(n)&&n.Hr.set("Unknown"))}function eh(t,e){t.Jr.Y(e.targetId),Eh(t).br(e)}function nh(t,e){t.Jr.Y(e),Eh(t).Pr(e)}function sh(t){t.Jr=new Mo({getRemoteKeysForTarget:e=>t.remoteSyncer.getRemoteKeysForTarget(e),Tt:e=>t.Qr.get(e)||null}),Eh(t).start(),t.Hr.Lr()}function rh(t){return ih(t)&&!Eh(t).ur()&&t.Qr.size>0}function ih(t){return 0===Gs(t).Wr.size}function oh(t){t.Jr=void 0}async function ah(t){t.Qr.forEach(((e,n)=>{eh(t,e)}))}async function ch(t,e){oh(t),rh(t)?(t.Hr.qr(e),sh(t)):t.Hr.set("Unknown")}async function uh(t,e,n){if(t.Hr.set("Online"),e instanceof Lo&&2===e.state&&e.cause)try{await async function(t,e){const n=e.cause;for(const s of e.targetIds)t.Qr.has(s)&&(await t.remoteSyncer.rejectListen(s,n),t.Qr.delete(s),t.Jr.removeTarget(s))}(t,e)}catch(n){Vs("RemoteStore","Failed to remove targets %s: %s ",e.targetIds.join(","),n),await hh(t,n)}else if(e instanceof ko?t.Jr.rt(e):e instanceof Ro?t.Jr.ft(e):t.Jr.at(e),!n.isEqual(cr.min()))try{const e=await au(t.localStore);n.compareTo(e)>=0&&await function(t,e){const n=t.Jr._t(e);return n.targetChanges.forEach(((n,s)=>{if(n.resumeToken.approximateByteSize()>0){const r=t.Qr.get(s);r&&t.Qr.set(s,r.withResumeToken(n.resumeToken,e))}})),n.targetMismatches.forEach((e=>{const n=t.Qr.get(e);if(!n)return;t.Qr.set(e,n.withResumeToken(wr.EMPTY_BYTE_STRING,n.snapshotVersion)),nh(t,e);const s=new tc(n.target,e,1,n.sequenceNumber);eh(t,s)})),t.remoteSyncer.applyRemoteEvent(n)}(t,n)}catch(e){Vs("RemoteStore","Failed to raise snapshot:",e),await hh(t,e)}}async function hh(t,e,n){if(!Ga(e))throw e;t.Wr.add(1),await Ju(t),t.Hr.set("Offline"),n||(n=()=>au(t.localStore)),t.asyncQueue.enqueueRetryable((async()=>{Vs("RemoteStore","Retrying IndexedDB access"),await n(),t.Wr.delete(1),await Xu(t)}))}function lh(t,e){return e().catch((n=>hh(t,n,e)))}async function dh(t){const e=Gs(t),n=Ih(e);let s=e.jr.length>0?e.jr[e.jr.length-1].batchId:-1;for(;fh(e);)try{const t=await uu(e.localStore,s);if(null===t){0===e.jr.length&&n.wr();break}s=t.batchId,gh(e,t)}catch(t){await hh(e,t)}mh(e)&&ph(e)}function fh(t){return ih(t)&&t.jr.length<10}function gh(t,e){t.jr.push(e);const n=Ih(t);n.hr()&&n.Vr&&n.Sr(e.mutations)}function mh(t){return ih(t)&&!Ih(t).ur()&&t.jr.length>0}function ph(t){Ih(t).start()}async function yh(t){Ih(t).Nr()}async function wh(t){const e=Ih(t);for(const n of t.jr)e.Sr(n.mutations)}async function vh(t,e,n){const s=t.jr.shift(),r=Za.from(s,e,n);await lh(t,(()=>t.remoteSyncer.applySuccessfulWrite(r))),await dh(t)}async function bh(t,e){e&&Ih(t).Vr&&await async function(t,e){if(lo(n=e.code)&&n!==Hs.ABORTED){const n=t.jr.shift();Ih(t).dr(),await lh(t,(()=>t.remoteSyncer.rejectFailedWrite(n.batchId,e))),await dh(t)}var n}(t,e),mh(t)&&ph(t)}async function Th(t,e){const n=Gs(t);e?(n.Wr.delete(2),await Xu(n)):e||(n.Wr.add(2),await Ju(n),n.Hr.set("Unknown"))}function Eh(t){return t.Yr||(t.Yr=function(t,e,n){const s=Gs(t);return s.$r(),new Hu(e,s.sr,s.credentials,s.N,n)}(t.datastore,t.asyncQueue,{Si:ah.bind(null,t),Ci:ch.bind(null,t),Rr:uh.bind(null,t)}),t.Gr.push((async e=>{e?(t.Yr.dr(),rh(t)?sh(t):t.Hr.set("Unknown")):(await t.Yr.stop(),oh(t))}))),t.Yr}function Ih(t){return t.Xr||(t.Xr=function(t,e,n){const s=Gs(t);return s.$r(),new zu(e,s.sr,s.credentials,s.N,n)}(t.datastore,t.asyncQueue,{Si:yh.bind(null,t),Ci:bh.bind(null,t),Cr:wh.bind(null,t),Dr:vh.bind(null,t)}),t.Gr.push((async e=>{e?(t.Xr.dr(),await dh(t)):(await t.Xr.stop(),t.jr.length>0&&(Vs("RemoteStore",`Stopping write stream with ${t.jr.length} pending writes`),t.jr=[]))}))),t.Xr +/** + * @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 Sh{constructor(t,e,n,s,r){this.asyncQueue=t,this.timerId=e,this.targetTimeMs=n,this.op=s,this.removalCallback=r,this.deferred=new Qs,this.then=this.deferred.promise.then.bind(this.deferred.promise),this.deferred.promise.catch((t=>{}))}static createAndSchedule(t,e,n,s,r){const i=Date.now()+n,o=new Sh(t,e,i,s,r);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 zs(Hs.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 _h(t,e){if(Us("AsyncQueue",`${e}: ${t}`),Ga(t))return new zs(Hs.UNAVAILABLE,`${e}: ${t}`);throw t} +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */class Nh{constructor(t){this.comparator=t?(e,n)=>t(e,n)||xr.comparator(e.key,n.key):(t,e)=>xr.comparator(t.key,e.key),this.keyedMap=Eo(),this.sortedSet=new go(this.comparator)}static emptySet(t){return new Nh(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 Nh))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,s=n.getNext().key;if(!t.isEqual(s))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 Nh;return n.comparator=this.comparator,n.keyedMap=t,n.sortedSet=e,n}} +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */class Ah{constructor(){this.Zr=new go(xr.comparator)}track(t){const e=t.doc.key,n=this.Zr.get(e);n?0!==t.type&&3===n.type?this.Zr=this.Zr.insert(e,t):3===t.type&&1!==n.type?this.Zr=this.Zr.insert(e,{type:n.type,doc:t.doc}):2===t.type&&2===n.type?this.Zr=this.Zr.insert(e,{type:2,doc:t.doc}):2===t.type&&0===n.type?this.Zr=this.Zr.insert(e,{type:0,doc:t.doc}):1===t.type&&0===n.type?this.Zr=this.Zr.remove(e):1===t.type&&2===n.type?this.Zr=this.Zr.insert(e,{type:1,doc:n.doc}):0===t.type&&1===n.type?this.Zr=this.Zr.insert(e,{type:2,doc:t.doc}):js():this.Zr=this.Zr.insert(e,t)}eo(){const t=[];return this.Zr.inorderTraversal(((e,n)=>{t.push(n)})),t}}class Dh{constructor(t,e,n,s,r,i,o,a){this.query=t,this.docs=e,this.oldDocs=n,this.docChanges=s,this.mutatedKeys=r,this.fromCache=i,this.syncStateChanged=o,this.excludesMetadataChanges=a}static fromInitialDocuments(t,e,n,s){const r=[];return e.forEach((t=>{r.push({type:0,doc:t})})),new Dh(t,e,Nh.emptySet(e),r,n,s,!0,!1)}get hasPendingWrites(){return!this.mutatedKeys.isEmpty()}isEqual(t){if(!(this.fromCache===t.fromCache&&this.syncStateChanged===t.syncStateChanged&&this.mutatedKeys.isEqual(t.mutatedKeys)&&Si(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;t_i(t)),Si),this.onlineState="Unknown",this.so=new Set}}async function kh(t,e){const n=Gs(t),s=e.query;let r=!1,i=n.queries.get(s);if(i||(r=!0,i=new xh),r)try{i.no=await n.onListen(s)}catch(t){const n=_h(t,`Initialization of query '${Ni(e.query)}' failed`);return void e.onError(n)}n.queries.set(s,i),i.listeners.push(e),e.io(n.onlineState),i.no&&e.ro(i.no)&&Mh(n)}async function Rh(t,e){const n=Gs(t),s=e.query;let r=!1;const i=n.queries.get(s);if(i){const t=i.listeners.indexOf(e);t>=0&&(i.listeners.splice(t,1),r=0===i.listeners.length)}if(r)return n.queries.delete(s),n.onUnlisten(s)}function Lh(t,e){const n=Gs(t);let s=!1;for(const t of e){const e=t.query,r=n.queries.get(e);if(r){for(const e of r.listeners)e.ro(t)&&(s=!0);r.no=t}}s&&Mh(n)}function Oh(t,e,n){const s=Gs(t),r=s.queries.get(e);if(r)for(const t of r.listeners)t.onError(n);s.queries.delete(e)}function Mh(t){t.so.forEach((t=>{t.next()}))}class Fh{constructor(t,e,n){this.query=t,this.oo=e,this.co=!1,this.ao=null,this.onlineState="Unknown",this.options=n||{}}ro(t){if(!this.options.includeMetadataChanges){const e=[];for(const n of t.docChanges)3!==n.type&&e.push(n);t=new Dh(t.query,t.docs,t.oldDocs,e,t.mutatedKeys,t.fromCache,t.syncStateChanged,!0)}let e=!1;return this.co?this.uo(t)&&(this.oo.next(t),e=!0):this.ho(t,this.onlineState)&&(this.lo(t),e=!0),this.ao=t,e}onError(t){this.oo.error(t)}io(t){this.onlineState=t;let e=!1;return this.ao&&!this.co&&this.ho(this.ao,t)&&(this.lo(this.ao),e=!0),e}ho(t,e){if(!t.fromCache)return!0;const n="Offline"!==e;return!(this.options.fo&&n||t.docs.isEmpty()&&"Offline"!==e)}uo(t){if(t.docChanges.length>0)return!0;const e=this.ao&&this.ao.hasPendingWrites!==t.hasPendingWrites;return!(!t.syncStateChanged&&!e)&&!0===this.options.includeMetadataChanges}lo(t){t=Dh.fromInitialDocuments(t.query,t.docs,t.mutatedKeys,t.fromCache),this.co=!0,this.oo.next(t)}} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */class Ph{constructor(t,e){this.payload=t,this.byteLength=e}wo(){return"metadata"in this.payload}} +/** + * @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. + */class Vh{constructor(t){this.N=t}zn(t){return Qo(this.N,t)}Hn(t){return t.metadata.exists?ta(this.N,t.document,!1):Hr.newNoDocument(this.zn(t.metadata.name),this.Jn(t.metadata.readTime))}Jn(t){return $o(t)}}class Uh{constructor(t,e,n){this._o=t,this.localStore=e,this.N=n,this.queries=[],this.documents=[],this.progress=qh(t)}mo(t){this.progress.bytesLoaded+=t.byteLength;let e=this.progress.documentsLoaded;return t.payload.namedQuery?this.queries.push(t.payload.namedQuery):t.payload.documentMetadata?(this.documents.push({metadata:t.payload.documentMetadata}),t.payload.documentMetadata.exists||++e):t.payload.document&&(this.documents[this.documents.length-1].document=t.payload.document,++e),e!==this.progress.documentsLoaded?(this.progress.documentsLoaded=e,Object.assign({},this.progress)):null}yo(t){const e=new Map,n=new Vh(this.N);for(const s of t)if(s.metadata.queries){const t=n.zn(s.metadata.name);for(const n of s.metadata.queries){const s=(e.get(n)||No()).add(t);e.set(n,s)}}return e}async complete(){const t=await async function(t,e,n,s){const r=Gs(t);let i=No(),o=bo(),a=So();for(const t of n){const n=e.zn(t.metadata.name);t.document&&(i=i.add(n)),o=o.insert(n,e.Hn(t)),a=a.insert(n,e.Jn(t.metadata.readTime))}const c=r.jn.newChangeBuffer({trackRemovals:!0}),u=await hu(r,function(t){return Ei(mi(fr.fromString(`__bundle__/docs/${t}`)))}(s));return r.persistence.runTransaction("Apply bundle documents","readwrite",(t=>cu(t,c,o,cr.min(),a).next((e=>(c.apply(t),e))).next((e=>r.ze.removeMatchingKeysForTargetId(t,u.targetId).next((()=>r.ze.addMatchingKeys(t,i,u.targetId))).next((()=>r.Qn.vn(t,e))).next((()=>e))))))}(this.localStore,new Vh(this.N),this.documents,this._o.id),e=this.yo(this.documents);for(const t of this.queries)await mu(this.localStore,t,e.get(t.name));return this.progress.taskState="Success",new tu(Object.assign({},this.progress),t)}}function qh(t){return{taskState:"Running",documentsLoaded:0,bytesLoaded:0,totalDocuments:t.totalDocuments,totalBytes:t.totalBytes}} +/** + * @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 Bh{constructor(t){this.key=t}}class jh{constructor(t){this.key=t}}class Kh{constructor(t,e){this.query=t,this.po=e,this.To=null,this.current=!1,this.Eo=No(),this.mutatedKeys=No(),this.Io=Di(t),this.Ao=new Nh(this.Io)}get Ro(){return this.po}bo(t,e){const n=e?e.Po:new Ah,s=e?e.Ao:this.Ao;let r=e?e.mutatedKeys:this.mutatedKeys,i=s,o=!1;const a=pi(this.query)&&s.size===this.query.limit?s.last():null,c=yi(this.query)&&s.size===this.query.limit?s.first():null;if(t.inorderTraversal(((t,e)=>{const u=s.get(t),h=Ai(this.query,e)?e:null,l=!!u&&this.mutatedKeys.has(u.key),d=!!h&&(h.hasLocalMutations||this.mutatedKeys.has(h.key)&&h.hasCommittedMutations);let f=!1;u&&h?u.data.isEqual(h.data)?l!==d&&(n.track({type:3,doc:h}),f=!0):this.vo(u,h)||(n.track({type:2,doc:h}),f=!0,(a&&this.Io(h,a)>0||c&&this.Io(h,c)<0)&&(o=!0)):!u&&h?(n.track({type:0,doc:h}),f=!0):u&&!h&&(n.track({type:1,doc:u}),f=!0,(a||c)&&(o=!0)),f&&(h?(i=i.add(h),r=d?r.add(t):r.delete(t)):(i=i.delete(t),r=r.delete(t)))})),pi(this.query)||yi(this.query))for(;i.size>this.query.limit;){const t=pi(this.query)?i.last():i.first();i=i.delete(t.key),r=r.delete(t.key),n.track({type:1,doc:t})}return{Ao:i,Po:n,Ln:o,mutatedKeys:r}}vo(t,e){return t.hasLocalMutations&&e.hasCommittedMutations&&!e.hasLocalMutations}applyChanges(t,e,n){const s=this.Ao;this.Ao=t.Ao,this.mutatedKeys=t.mutatedKeys;const r=t.Po.eo();r.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 js()}};return n(t)-n(e)}(t.type,e.type)||this.Io(t.doc,e.doc))),this.Vo(n);const i=e?this.So():[],o=0===this.Eo.size&&this.current?1:0,a=o!==this.To;return this.To=o,0!==r.length||a?{snapshot:new Dh(this.query,t.Ao,s,r,t.mutatedKeys,0===o,a,!1),Do:i}:{Do:i}}io(t){return this.current&&"Offline"===t?(this.current=!1,this.applyChanges({Ao:this.Ao,Po:new Ah,mutatedKeys:this.mutatedKeys,Ln:!1},!1)):{Do:[]}}Co(t){return!this.po.has(t)&&!!this.Ao.has(t)&&!this.Ao.get(t).hasLocalMutations}Vo(t){t&&(t.addedDocuments.forEach((t=>this.po=this.po.add(t))),t.modifiedDocuments.forEach((t=>{})),t.removedDocuments.forEach((t=>this.po=this.po.delete(t))),this.current=t.current)}So(){if(!this.current)return[];const t=this.Eo;this.Eo=No(),this.Ao.forEach((t=>{this.Co(t.key)&&(this.Eo=this.Eo.add(t.key))}));const e=[];return t.forEach((t=>{this.Eo.has(t)||e.push(new jh(t))})),this.Eo.forEach((n=>{t.has(n)||e.push(new Bh(n))})),e}No(t){this.po=t.Gn,this.Eo=No();const e=this.bo(t.documents);return this.applyChanges(e,!0)}xo(){return Dh.fromInitialDocuments(this.query,this.Ao,this.mutatedKeys,0===this.To)}}class $h{constructor(t,e,n){this.query=t,this.targetId=e,this.view=n}}class Gh{constructor(t){this.key=t,this.ko=!1}}class Hh{constructor(t,e,n,s,r,i){this.localStore=t,this.remoteStore=e,this.eventManager=n,this.sharedClientState=s,this.currentUser=r,this.maxConcurrentLimboResolutions=i,this.$o={},this.Oo=new qc((t=>_i(t)),Si),this.Fo=new Map,this.Mo=new Set,this.Lo=new go(xr.comparator),this.Bo=new Map,this.Uo=new yu,this.qo={},this.Ko=new Map,this.jo=Dc.ie(),this.onlineState="Unknown",this.Qo=void 0}get isPrimaryClient(){return!0===this.Qo}}async function zh(t,e){const n=vl(t);let s,r;const i=n.Oo.get(e);if(i)s=i.targetId,n.sharedClientState.addLocalQueryTarget(s),r=i.view.xo();else{const t=await hu(n.localStore,Ei(e)),i=n.sharedClientState.addLocalQueryTarget(t.targetId);s=t.targetId,r=await Qh(n,e,s,"current"===i),n.isPrimaryClient&&Zu(n.remoteStore,t)}return r}async function Qh(t,e,n,s){t.Wo=(e,n,s)=>async function(t,e,n,s){let r=e.view.bo(n);r.Ln&&(r=await du(t.localStore,e.query,!1).then((({documents:t})=>e.view.bo(t,r))));const i=s&&s.targetChanges.get(e.targetId),o=e.view.applyChanges(r,t.isPrimaryClient,i);return il(t,e.targetId,o.Do),o.snapshot}(t,e,n,s);const r=await du(t.localStore,e,!0),i=new Kh(e,r.Gn),o=i.bo(r.documents),a=Co.createSynthesizedTargetChangeForCurrentChange(n,s&&"Offline"!==t.onlineState),c=i.applyChanges(o,t.isPrimaryClient,a);il(t,n,c.Do);const u=new $h(e,n,i);return t.Oo.set(e,u),t.Fo.has(n)?t.Fo.get(n).push(e):t.Fo.set(n,[e]),c.snapshot}async function Wh(t,e){const n=Gs(t),s=n.Oo.get(e),r=n.Fo.get(s.targetId);if(r.length>1)return n.Fo.set(s.targetId,r.filter((t=>!Si(t,e)))),void n.Oo.delete(e);n.isPrimaryClient?(n.sharedClientState.removeLocalQueryTarget(s.targetId),n.sharedClientState.isActiveQueryTarget(s.targetId)||await lu(n.localStore,s.targetId,!1).then((()=>{n.sharedClientState.clearQueryState(s.targetId),th(n.remoteStore,s.targetId),sl(n,s.targetId)})).catch(Lc)):(sl(n,s.targetId),await lu(n.localStore,s.targetId,!0))}async function Yh(t,e){const n=Gs(t);try{const t=await function(t,e){const n=Gs(t),s=e.snapshotVersion;let r=n.Un;return n.persistence.runTransaction("Apply remote event","readwrite-primary",(t=>{const i=n.jn.newChangeBuffer({trackRemovals:!0});r=n.Un;const o=[];e.targetChanges.forEach(((e,i)=>{const a=r.get(i);if(!a)return;o.push(n.ze.removeMatchingKeys(t,e.removedDocuments,i).next((()=>n.ze.addMatchingKeys(t,e.addedDocuments,i))));const c=e.resumeToken;if(c.approximateByteSize()>0){const u=a.withResumeToken(c,s).withSequenceNumber(t.currentSequenceNumber);r=r.insert(i,u),function(t,e,n){return Ks(e.resumeToken.approximateByteSize()>0),0===t.resumeToken.approximateByteSize()||e.snapshotVersion.toMicroseconds()-t.snapshotVersion.toMicroseconds()>=3e8||n.addedDocuments.size+n.modifiedDocuments.size+n.removedDocuments.size>0}(a,u,e)&&o.push(n.ze.updateTargetData(t,u))}}));let a=bo();if(e.documentUpdates.forEach(((s,r)=>{e.resolvedLimboDocuments.has(s)&&o.push(n.persistence.referenceDelegate.updateLimboDocument(t,s))})),o.push(cu(t,i,e.documentUpdates,s,void 0).next((t=>{a=t}))),!s.isEqual(cr.min())){const e=n.ze.getLastRemoteSnapshotVersion(t).next((e=>n.ze.setTargetsMetadata(t,t.currentSequenceNumber,s)));o.push(e)}return qa.waitFor(o).next((()=>i.apply(t))).next((()=>n.Qn.vn(t,a))).next((()=>a))})).then((t=>(n.Un=r,t)))}(n.localStore,e);e.targetChanges.forEach(((t,e)=>{const s=n.Bo.get(e);s&&(Ks(t.addedDocuments.size+t.modifiedDocuments.size+t.removedDocuments.size<=1),t.addedDocuments.size>0?s.ko=!0:t.modifiedDocuments.size>0?Ks(s.ko):t.removedDocuments.size>0&&(Ks(s.ko),s.ko=!1))})),await cl(n,t,e)}catch(t){await Lc(t)}}function Xh(t,e,n){const s=Gs(t);if(s.isPrimaryClient&&0===n||!s.isPrimaryClient&&1===n){const t=[];s.Oo.forEach(((n,s)=>{const r=s.view.io(e);r.snapshot&&t.push(r.snapshot)})),function(t,e){const n=Gs(t);n.onlineState=e;let s=!1;n.queries.forEach(((t,n)=>{for(const t of n.listeners)t.io(e)&&(s=!0)})),s&&Mh(n)}(s.eventManager,e),t.length&&s.$o.Rr(t),s.onlineState=e,s.isPrimaryClient&&s.sharedClientState.setOnlineState(e)}}async function Jh(t,e,n){const s=Gs(t);s.sharedClientState.updateQueryState(e,"rejected",n);const r=s.Bo.get(e),i=r&&r.key;if(i){let t=new go(xr.comparator);t=t.insert(i,Hr.newNoDocument(i,cr.min()));const n=No().add(i),r=new xo(cr.min(),new Map,new yo(rr),t,n);await Yh(s,r),s.Lo=s.Lo.remove(i),s.Bo.delete(e),al(s)}else await lu(s.localStore,e,!1).then((()=>sl(s,e,n))).catch(Lc)}async function Zh(t,e){const n=Gs(t),s=e.batch.batchId;try{const t=await function(t,e){const n=Gs(t);return n.persistence.runTransaction("Acknowledge batch","readwrite-primary",(t=>{const s=e.batch.keys(),r=n.jn.newChangeBuffer({trackRemovals:!0});return function(t,e,n,s){const r=n.batch,i=r.keys();let o=qa.resolve();return i.forEach((t=>{o=o.next((()=>s.getEntry(e,t))).next((e=>{const i=n.docVersions.get(t);Ks(null!==i),e.version.compareTo(i)<0&&(r.applyToRemoteDocument(e,n),e.isValidDocument()&&s.addEntry(e,n.commitVersion))}))})),o.next((()=>t.In.removeMutationBatch(e,r)))}(n,t,e,r).next((()=>r.apply(t))).next((()=>n.In.performConsistencyCheck(t))).next((()=>n.Qn.Pn(t,s)))}))}(n.localStore,e);nl(n,s,null),el(n,s),n.sharedClientState.updateMutationState(s,"acknowledged"),await cl(n,t)}catch(t){await Lc(t)}}async function tl(t,e,n){const s=Gs(t);try{const t=await function(t,e){const n=Gs(t);return n.persistence.runTransaction("Reject batch","readwrite-primary",(t=>{let s;return n.In.lookupMutationBatch(t,e).next((e=>(Ks(null!==e),s=e.keys(),n.In.removeMutationBatch(t,e)))).next((()=>n.In.performConsistencyCheck(t))).next((()=>n.Qn.Pn(t,s)))}))}(s.localStore,e);nl(s,e,n),el(s,e),s.sharedClientState.updateMutationState(e,"rejected",n),await cl(s,t)}catch(t){await Lc(t)}}function el(t,e){(t.Ko.get(e)||[]).forEach((t=>{t.resolve()})),t.Ko.delete(e)}function nl(t,e,n){const s=Gs(t);let r=s.qo[s.currentUser.toKey()];if(r){const t=r.get(e);t&&(n?t.reject(n):t.resolve(),r=r.remove(e)),s.qo[s.currentUser.toKey()]=r}}function sl(t,e,n=null){t.sharedClientState.removeLocalQueryTarget(e);for(const s of t.Fo.get(e))t.Oo.delete(s),n&&t.$o.Go(s,n);t.Fo.delete(e),t.isPrimaryClient&&t.Uo.cs(e).forEach((e=>{t.Uo.containsKey(e)||rl(t,e)}))}function rl(t,e){t.Mo.delete(e.path.canonicalString());const n=t.Lo.get(e);null!==n&&(th(t.remoteStore,n),t.Lo=t.Lo.remove(e),t.Bo.delete(n),al(t))}function il(t,e,n){for(const s of n)s instanceof Bh?(t.Uo.addReference(s.key,e),ol(t,s)):s instanceof jh?(Vs("SyncEngine","Document no longer in limbo: "+s.key),t.Uo.removeReference(s.key,e),t.Uo.containsKey(s.key)||rl(t,s.key)):js()}function ol(t,e){const n=e.key,s=n.path.canonicalString();t.Lo.get(n)||t.Mo.has(s)||(Vs("SyncEngine","New document in limbo: "+n),t.Mo.add(s),al(t))}function al(t){for(;t.Mo.size>0&&t.Lo.size{o.push(s.Wo(a,e,n).then((t=>{if(t){s.isPrimaryClient&&s.sharedClientState.updateQueryState(a.targetId,t.fromCache?"not-current":"current"),r.push(t);const e=nu.kn(a.targetId,t);i.push(e)}})))})),await Promise.all(o),s.$o.Rr(r),await async function(t,e){const n=Gs(t);try{await n.persistence.runTransaction("notifyLocalViewChanges","readwrite",(t=>qa.forEach(e,(e=>qa.forEach(e.Nn,(s=>n.persistence.referenceDelegate.addReference(t,e.targetId,s))).next((()=>qa.forEach(e.xn,(s=>n.persistence.referenceDelegate.removeReference(t,e.targetId,s)))))))))}catch(t){if(!Ga(t))throw t;Vs("LocalStore","Failed to update sequence numbers: "+t)}for(const t of e){const e=t.targetId;if(!t.fromCache){const t=n.Un.get(e),s=t.snapshotVersion,r=t.withLastLimboFreeSnapshotVersion(s);n.Un=n.Un.insert(e,r)}}}(s.localStore,i))}async function ul(t,e){const n=Gs(t);if(!n.currentUser.isEqual(e)){Vs("SyncEngine","User change. New user:",e.toKey());const t=await ou(n.localStore,e);n.currentUser=e,function(t,e){t.Ko.forEach((t=>{t.forEach((t=>{t.reject(new zs(Hs.CANCELLED,"'waitForPendingWrites' promise is rejected due to a user change."))}))})),t.Ko.clear()}(n),n.sharedClientState.handleUserChange(e,t.removedBatchIds,t.addedBatchIds),await cl(n,t.Wn)}}function hl(t,e){const n=Gs(t),s=n.Bo.get(e);if(s&&s.ko)return No().add(s.key);{let t=No();const s=n.Fo.get(e);if(!s)return t;for(const e of s){const s=n.Oo.get(e);t=t.unionWith(s.view.Ro)}return t}}async function ll(t,e){const n=Gs(t),s=await du(n.localStore,e.query,!0),r=e.view.No(s);return n.isPrimaryClient&&il(n,e.targetId,r.Do),r}async function dl(t){const e=Gs(t);return gu(e.localStore).then((t=>cl(e,t)))}async function fl(t,e,n,s){const r=Gs(t),i=await function(t,e){const n=Gs(t),s=Gs(n.In);return n.persistence.runTransaction("Lookup mutation documents","readonly",(t=>s.Xt(t,e).next((e=>e?n.Qn.Pn(t,e):qa.resolve(null)))))}(r.localStore,e);null!==i?("pending"===n?await dh(r.remoteStore):"acknowledged"===n||"rejected"===n?(nl(r,e,s||null),el(r,e),function(t,e){Gs(Gs(t).In).te(e)}(r.localStore,e)):js(),await cl(r,i)):Vs("SyncEngine","Cannot apply mutation batch with id: "+e)}async function gl(t,e,n){const s=Gs(t),r=[],i=[];for(const t of e){let e;const n=s.Fo.get(t);if(n&&0!==n.length){e=await hu(s.localStore,Ei(n[0]));for(const t of n){const e=s.Oo.get(t),n=await ll(s,e);n.snapshot&&i.push(n.snapshot)}}else{const n=await fu(s.localStore,t);e=await hu(s.localStore,n),await Qh(s,ml(n),t,!1)}r.push(e)}return s.$o.Rr(i),r}function ml(t){return gi(t.path,t.collectionGroup,t.orderBy,t.filters,t.limit,"F",t.startAt,t.endAt)}function pl(t){const e=Gs(t);return Gs(Gs(e.localStore).persistence).pn()}async function yl(t,e,n,s){const r=Gs(t);if(r.Qo)Vs("SyncEngine","Ignoring unexpected query state notification.");else if(r.Fo.has(e))switch(n){case"current":case"not-current":{const t=await gu(r.localStore),s=xo.createSynthesizedRemoteEventForCurrentChange(e,"current"===n);await cl(r,t,s);break}case"rejected":await lu(r.localStore,e,!0),sl(r,e,s);break;default:js()}}async function wl(t,e,n){const s=vl(t);if(s.Qo){for(const t of e){if(s.Fo.has(t)){Vs("SyncEngine","Adding an already active target "+t);continue}const e=await fu(s.localStore,t),n=await hu(s.localStore,e);await Qh(s,ml(e),n.targetId,!1),Zu(s.remoteStore,n)}for(const t of n)s.Fo.has(t)&&await lu(s.localStore,t,!1).then((()=>{th(s.remoteStore,t),sl(s,t)})).catch(Lc)}}function vl(t){const e=Gs(t);return e.remoteStore.remoteSyncer.applyRemoteEvent=Yh.bind(null,e),e.remoteStore.remoteSyncer.getRemoteKeysForTarget=hl.bind(null,e),e.remoteStore.remoteSyncer.rejectListen=Jh.bind(null,e),e.$o.Rr=Lh.bind(null,e.eventManager),e.$o.Go=Oh.bind(null,e.eventManager),e}function bl(t){const e=Gs(t);return e.remoteStore.remoteSyncer.applySuccessfulWrite=Zh.bind(null,e),e.remoteStore.remoteSyncer.rejectFailedWrite=tl.bind(null,e),e}class Tl{constructor(){this.synchronizeTabs=!1}async initialize(t){this.N=Ku(t.databaseInfo.databaseId),this.sharedClientState=this.Ho(t),this.persistence=this.Jo(t),await this.persistence.start(),this.gcScheduler=this.Yo(t),this.localStore=this.Xo(t)}Yo(t){return null}Xo(t){return iu(this.persistence,new su,t.initialUser,this.N)}Jo(t){return new Iu(_u.Ns,this.N)}Ho(t){return new Mu}async terminate(){this.gcScheduler&&this.gcScheduler.stop(),await this.sharedClientState.shutdown(),await this.persistence.shutdown()}}class El extends Tl{constructor(t,e,n){super(),this.Zo=t,this.cacheSizeBytes=e,this.forceOwnership=n,this.synchronizeTabs=!1}async initialize(t){await super.initialize(t),await async function(t){const e=Gs(t);return e.persistence.runTransaction("Synchronize last document change read time","readonly",(t=>function(t){const e=Gc(t);let n=cr.min();return e.Kt({index:Da.readTimeIndex,reverse:!0},((t,e,s)=>{e.readTime&&(n=ic(e.readTime)),s.done()})).next((()=>n))}(t))).then((t=>{e.Kn=t}))}(this.localStore),await this.Zo.initialize(this,t),await bl(this.Zo.syncEngine),await dh(this.Zo.remoteStore),await this.persistence.nn((()=>(this.gcScheduler&&!this.gcScheduler.started&&this.gcScheduler.start(this.localStore),Promise.resolve())))}Xo(t){return iu(this.persistence,new su,t.initialUser,this.N)}Yo(t){const e=this.persistence.referenceDelegate.garbageCollector;return new Fc(e,t.asyncQueue)}Jo(t){const e=Zc(t.databaseInfo.databaseId,t.databaseInfo.persistenceKey),n=void 0!==this.cacheSizeBytes?bc.withCacheSize(this.cacheSizeBytes):bc.DEFAULT;return new Yc(this.synchronizeTabs,e,t.clientId,n,t.asyncQueue,Bu(),ju(),this.N,this.sharedClientState,!!this.forceOwnership)}Ho(t){return new Mu}}class Il extends El{constructor(t,e){super(t,e,!1),this.Zo=t,this.cacheSizeBytes=e,this.synchronizeTabs=!0}async initialize(t){await super.initialize(t);const e=this.Zo.syncEngine;this.sharedClientState instanceof Ou&&(this.sharedClientState.syncEngine={_i:fl.bind(null,e),mi:yl.bind(null,e),gi:wl.bind(null,e),pn:pl.bind(null,e),wi:dl.bind(null,e)},await this.sharedClientState.start()),await this.persistence.nn((async t=>{await async function(t,e){const n=Gs(t);if(vl(n),bl(n),!0===e&&!0!==n.Qo){const t=n.sharedClientState.getAllActiveQueryTargets(),e=await gl(n,t.toArray());n.Qo=!0,await Th(n.remoteStore,!0);for(const t of e)Zu(n.remoteStore,t)}else if(!1===e&&!1!==n.Qo){const t=[];let e=Promise.resolve();n.Fo.forEach(((s,r)=>{n.sharedClientState.isLocalQueryTarget(r)?t.push(r):e=e.then((()=>(sl(n,r),lu(n.localStore,r,!0)))),th(n.remoteStore,r)})),await e,await gl(n,t),function(t){const e=Gs(t);e.Bo.forEach(((t,n)=>{th(e.remoteStore,n)})),e.Uo.us(),e.Bo=new Map,e.Lo=new go(xr.comparator)}(n),n.Qo=!1,await Th(n.remoteStore,!1)}}(this.Zo.syncEngine,t),this.gcScheduler&&(t&&!this.gcScheduler.started?this.gcScheduler.start(this.localStore):t||this.gcScheduler.stop())}))}Ho(t){const e=Bu();if(!Ou.bt(e))throw new zs(Hs.UNIMPLEMENTED,"IndexedDB persistence is only available on platforms that support LocalStorage.");const n=Zc(t.databaseInfo.databaseId,t.databaseInfo.persistenceKey);return new Ou(e,t.asyncQueue,n,t.clientId,t.initialUser)}}class Sl{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=>Xh(this.syncEngine,t,1),this.remoteStore.remoteSyncer.handleCredentialChange=ul.bind(null,this.syncEngine),await Th(this.remoteStore,this.syncEngine.isPrimaryClient))}createEventManager(t){return new Ch}createDatastore(t){const e=Ku(t.databaseInfo.databaseId),n=(s=t.databaseInfo,new qu(s));var s;return function(t,e,n){return new Qu(t,e,n)}(t.credentials,n,e)}createRemoteStore(t){var e,n,s,r,i;return e=this.localStore,n=this.datastore,s=t.asyncQueue,r=t=>Xh(this.syncEngine,t,0),i=Pu.bt()?new Pu:new Fu,new Yu(e,n,s,r,i)}createSyncEngine(t,e){return function(t,e,n,s,r,i,o){const a=new Hh(t,e,n,s,r,i);return o&&(a.Qo=!0),a}(this.localStore,this.remoteStore,this.eventManager,this.sharedClientState,t.initialUser,t.maxConcurrentLimboResolutions,e)}terminate(){return async function(t){const e=Gs(t);Vs("RemoteStore","RemoteStore shutting down."),e.Wr.add(5),await Ju(e),e.zr.shutdown(),e.Hr.set("Unknown")}(this.remoteStore)}} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */function _l(t,e=10240){let n=0;return{async read(){if(n{this.muted||t(e)}),0)}} +/** + * @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. + */class Al{constructor(t,e){this.nc=t,this.N=e,this.metadata=new Qs,this.buffer=new Uint8Array,this.sc=new TextDecoder("utf-8"),this.ic().then((t=>{t&&t.wo()?this.metadata.resolve(t.payload.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.payload)}`))}),(t=>this.metadata.reject(t)))}close(){return this.nc.cancel()}async getMetadata(){return this.metadata.promise}async zo(){return await this.getMetadata(),this.ic()}async ic(){const t=await this.rc();if(null===t)return null;const e=this.sc.decode(t),n=Number(e);isNaN(n)&&this.oc(`length string (${e}) is not valid number`);const s=await this.cc(n);return new Ph(JSON.parse(s),t.length+n)}ac(){return this.buffer.findIndex((t=>t==="{".charCodeAt(0)))}async rc(){for(;this.ac()<0&&!await this.uc(););if(0===this.buffer.length)return null;const t=this.ac();t<0&&this.oc("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 cc(t){for(;this.buffer.length0)throw new zs(Hs.INVALID_ARGUMENT,"Firestore transactions require all reads to be executed before all writes.");const e=await async function(t,e){const n=Gs(t),s=Xo(n.N)+"/documents",r={documents:e.map((t=>zo(n.N,t)))},i=await n.Ki("BatchGetDocuments",s,r),o=new Map;i.forEach((t=>{const e=function(t,e){return"found"in e?function(t,e){Ks(!!e.found),e.found.name,e.found.updateTime;const n=Qo(t,e.found.name),s=$o(e.found.updateTime),r=new $r({mapValue:{fields:e.found.fields}});return Hr.newFoundDocument(n,s,r)}(t,e):"missing"in e?function(t,e){Ks(!!e.missing),Ks(!!e.readTime);const n=Qo(t,e.missing),s=$o(e.readTime);return Hr.newNoDocument(n,s)}(t,e):js()}(n.N,t);o.set(e.key.toString(),e)}));const a=[];return e.forEach((t=>{const e=o.get(t.toString());Ks(!!e),a.push(e)})),a}(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.lastWriteError=t}this.writtenDocs.add(t.toString())}delete(t){this.write(new oo(t,this.precondition(t))),this.writtenDocs.add(t.toString())}async commit(){if(this.ensureCommitNotCalled(),this.lastWriteError)throw this.lastWriteError;const t=this.readVersions;this.mutations.forEach((e=>{t.delete(e.key.toString())})),t.forEach(((t,e)=>{const n=xr.fromPath(e);this.mutations.push(new ao(n,this.precondition(n)))})),await async function(t,e){const n=Gs(t),s=Xo(n.N)+"/documents",r={writes:e.map((t=>ea(n.N,t)))};await n.Li("Commit",s,r)}(this.datastore,this.mutations),this.committed=!0}recordVersion(t){let e;if(t.isFoundDocument())e=t.version;else{if(!t.isNoDocument())throw js();e=cr.min()}const n=this.readVersions.get(t.key.toString());if(n){if(!e.isEqual(n))throw new zs(Hs.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?zi.updateTime(e):zi.none()}preconditionForUpdate(t){const e=this.readVersions.get(t.toString());if(!this.writtenDocs.has(t.toString())&&e){if(e.isEqual(cr.min()))throw new zs(Hs.INVALID_ARGUMENT,"Can't update a document that doesn't exist.");return zi.updateTime(e)}return zi.exists(!0)}write(t){this.ensureCommitNotCalled(),this.mutations.push(t)}ensureCommitNotCalled(){}} +/** + * @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 xl{constructor(t,e,n,s){this.asyncQueue=t,this.datastore=e,this.updateFunction=n,this.deferred=s,this.hc=5,this.ar=new $u(this.asyncQueue,"transaction_retry")}run(){this.hc-=1,this.lc()}lc(){this.ar.Xi((async()=>{const t=new Dl(this.datastore),e=this.fc(t);e&&e.then((e=>{this.asyncQueue.enqueueAndForget((()=>t.commit().then((()=>{this.deferred.resolve(e)})).catch((t=>{this.dc(t)}))))})).catch((t=>{this.dc(t)}))}))}fc(t){try{const e=this.updateFunction(t);return!Nr(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}}dc(t){this.hc>0&&this.wc(t)?(this.hc-=1,this.asyncQueue.enqueueAndForget((()=>(this.lc(),Promise.resolve())))):this.deferred.reject(t)}wc(t){if("FirebaseError"===t.name){const e=t.code;return"aborted"===e||"failed-precondition"===e||!lo(e)}return!1}} +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */class Cl{constructor(t,e,n){this.credentials=t,this.asyncQueue=e,this.databaseInfo=n,this.user=Ls.UNAUTHENTICATED,this.clientId=sr.I(),this.credentialListener=()=>Promise.resolve(),this.credentials.start(e,(async t=>{Vs("FirestoreClient","Received user=",t.uid),await this.credentialListener(t),this.user=t}))}async getConfiguration(){return{asyncQueue:this.asyncQueue,databaseInfo:this.databaseInfo,clientId:this.clientId,credentials:this.credentials,initialUser:this.user,maxConcurrentLimboResolutions:100}}setCredentialChangeListener(t){this.credentialListener=t}verifyNotTerminated(){if(this.asyncQueue.isShuttingDown)throw new zs(Hs.FAILED_PRECONDITION,"The client has already been terminated.")}terminate(){this.asyncQueue.enterRestrictedMode();const t=new Qs;return this.asyncQueue.enqueueAndForgetEvenWhileRestricted((async()=>{try{this.onlineComponents&&await this.onlineComponents.terminate(),this.offlineComponents&&await this.offlineComponents.terminate(),this.credentials.shutdown(),t.resolve()}catch(e){const n=_h(e,"Failed to shutdown persistence");t.reject(n)}})),t.promise}}async function kl(t,e){t.asyncQueue.verifyOperationInProgress(),Vs("FirestoreClient","Initializing OfflineComponentProvider");const n=await t.getConfiguration();await e.initialize(n);let s=n.initialUser;t.setCredentialChangeListener((async t=>{s.isEqual(t)||(await ou(e.localStore,t),s=t)})),e.persistence.setDatabaseDeletedListener((()=>t.terminate())),t.offlineComponents=e}async function Rl(t,e){t.asyncQueue.verifyOperationInProgress();const n=await Ll(t);Vs("FirestoreClient","Initializing OnlineComponentProvider");const s=await t.getConfiguration();await e.initialize(n,s),t.setCredentialChangeListener((t=>async function(t,e){const n=Gs(t);n.asyncQueue.verifyOperationInProgress(),Vs("RemoteStore","RemoteStore received new credentials");const s=ih(n);n.Wr.add(3),await Ju(n),s&&n.Hr.set("Unknown"),await n.remoteSyncer.handleCredentialChange(e),n.Wr.delete(3),await Xu(n)}(e.remoteStore,t))),t.onlineComponents=e}async function Ll(t){return t.offlineComponents||(Vs("FirestoreClient","Using default OfflineComponentProvider"),await kl(t,new Tl)),t.offlineComponents}async function Ol(t){return t.onlineComponents||(Vs("FirestoreClient","Using default OnlineComponentProvider"),await Rl(t,new Sl)),t.onlineComponents}function Ml(t){return Ll(t).then((t=>t.persistence))}function Fl(t){return Ll(t).then((t=>t.localStore))}function Pl(t){return Ol(t).then((t=>t.remoteStore))}function Vl(t){return Ol(t).then((t=>t.syncEngine))}async function Ul(t){const e=await Ol(t),n=e.eventManager;return n.onListen=zh.bind(null,e.syncEngine),n.onUnlisten=Wh.bind(null,e.syncEngine),n}function ql(t,e,n={}){const s=new Qs;return t.asyncQueue.enqueueAndForget((async()=>function(t,e,n,s,r){const i=new Nl({next:i=>{e.enqueueAndForget((()=>Rh(t,o)));const a=i.docs.has(n);!a&&i.fromCache?r.reject(new zs(Hs.UNAVAILABLE,"Failed to get document because the client is offline.")):a&&i.fromCache&&s&&"server"===s.source?r.reject(new zs(Hs.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.)')):r.resolve(i)},error:t=>r.reject(t)}),o=new Fh(mi(n.path),i,{includeMetadataChanges:!0,fo:!0});return kh(t,o)}(await Ul(t),t.asyncQueue,e,n,s))),s.promise}function Bl(t,e,n={}){const s=new Qs;return t.asyncQueue.enqueueAndForget((async()=>function(t,e,n,s,r){const i=new Nl({next:n=>{e.enqueueAndForget((()=>Rh(t,o))),n.fromCache&&"server"===s.source?r.reject(new zs(Hs.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.)')):r.resolve(n)},error:t=>r.reject(t)}),o=new Fh(n,i,{includeMetadataChanges:!0,fo:!0});return kh(t,o)}(await Ul(t),t.asyncQueue,e,n,s))),s.promise}function jl(t,e,n,s){const r=function(t,e){let n;return n="string"==typeof t?(new TextEncoder).encode(t):t,function(t,e){return new Al(t,e)}(function(t,e){if(t instanceof Uint8Array)return _l(t,e);if(t instanceof ArrayBuffer)return _l(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,Ku(e));t.asyncQueue.enqueueAndForget((async()=>{!function(t,e,n){const s=Gs(t);(async function(t,e,n){try{const s=await e.getMetadata();if(await function(t,e){const n=Gs(t),s=$o(e.createTime);return n.persistence.runTransaction("hasNewerBundle","readonly",(t=>n.Je.getBundleMetadata(t,e.id))).then((t=>!!t&&t.createTime.compareTo(s)>=0))}(t.localStore,s))return await e.close(),void n._completeWith(function(t){return{taskState:"Success",documentsLoaded:t.totalDocuments,bytesLoaded:t.totalBytes,totalDocuments:t.totalDocuments,totalBytes:t.totalBytes}}(s));n._updateProgress(qh(s));const r=new Uh(s,t.localStore,e.N);let i=await e.zo();for(;i;){const t=await r.mo(i);t&&n._updateProgress(t),i=await e.zo()}const o=await r.complete();await cl(t,o.En,void 0),await function(t,e){const n=Gs(t);return n.persistence.runTransaction("Save bundle","readwrite",(t=>n.Je.saveBundleMetadata(t,e)))}(t.localStore,s),n._completeWith(o.progress)}catch(t){qs("SyncEngine",`Loading bundle failed with ${t}`),n._failWith(t)}})(s,e,n).then((()=>{s.sharedClientState.notifyBundleLoaded()}))}(await Vl(t),r,s)}))}class Kl{constructor(t,e,n,s,r,i,o,a){this.databaseId=t,this.appId=e,this.persistenceKey=n,this.host=s,this.ssl=r,this.forceLongPolling=i,this.autoDetectLongPolling=o,this.useFetchStreams=a}}class $l{constructor(t,e){this.projectId=t,this.database=e||"(default)"}get isDefaultDatabase(){return"(default)"===this.database}isEqual(t){return t instanceof $l&&t.projectId===this.projectId&&t.database===this.database}} +/** + * @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. + */const Gl=new Map; +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */function Hl(t,e,n){if(!n)throw new zs(Hs.INVALID_ARGUMENT,`Function ${t}() cannot be called with an empty ${e}.`)}function zl(t,e,n,s){if(!0===e&&!0===s)throw new zs(Hs.INVALID_ARGUMENT,`${t} and ${n} cannot be used together.`)}function Ql(t){if(!xr.isDocumentKey(t))throw new zs(Hs.INVALID_ARGUMENT,`Invalid document reference. Document references must have an even number of segments, but ${t} has ${t.length}.`)}function Wl(t){if(xr.isDocumentKey(t))throw new zs(Hs.INVALID_ARGUMENT,`Invalid collection reference. Collection references must have an odd number of segments, but ${t} has ${t.length}.`)}function Yl(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":js()}function Xl(t,e){if("_delegate"in t&&(t=t._delegate),!(t instanceof e)){if(e.name===t.constructor.name)throw new zs(Hs.INVALID_ARGUMENT,"Type does not match the expected instance. Did you pass a reference from a different Firestore SDK?");{const n=Yl(t);throw new zs(Hs.INVALID_ARGUMENT,`Expected type '${e.name}', but it was: ${n}`)}}return t}function Jl(t,e){if(e<=0)throw new zs(Hs.INVALID_ARGUMENT,`Function ${t}() requires a positive number, but it was: ${e}.`)} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */class Zl{constructor(t){var e;if(void 0===t.host){if(void 0!==t.ssl)throw new zs(Hs.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,void 0===t.cacheSizeBytes)this.cacheSizeBytes=41943040;else{if(-1!==t.cacheSizeBytes&&t.cacheSizeBytes<1048576)throw new zs(Hs.INVALID_ARGUMENT,"cacheSizeBytes must be at least 1048576");this.cacheSizeBytes=t.cacheSizeBytes}this.experimentalForceLongPolling=!!t.experimentalForceLongPolling,this.experimentalAutoDetectLongPolling=!!t.experimentalAutoDetectLongPolling,this.useFetchStreams=!!t.useFetchStreams,zl("experimentalForceLongPolling",t.experimentalForceLongPolling,"experimentalAutoDetectLongPolling",t.experimentalAutoDetectLongPolling)}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&&this.ignoreUndefinedProperties===t.ignoreUndefinedProperties&&this.useFetchStreams===t.useFetchStreams}} +/** + * @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. + */class td{constructor(t,e){this._credentials=e,this.type="firestore-lite",this._persistenceKey="(lite)",this._settings=new Zl({}),this._settingsFrozen=!1,t instanceof $l?this._databaseId=t:(this._app=t,this._databaseId=function(t){if(!Object.prototype.hasOwnProperty.apply(t.options,["projectId"]))throw new zs(Hs.INVALID_ARGUMENT,'"projectId" not provided in firebase.initializeApp.');return new $l(t.options.projectId)}(t))}get app(){if(!this._app)throw new zs(Hs.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 zs(Hs.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 Zl(t),void 0!==t.credentials&&(this._credentials=function(t){if(!t)return new Ys;switch(t.type){case"gapi":const e=t.client;return Ks(!("object"!=typeof e||null===e||!e.auth||!e.auth.getAuthHeaderValueForFirstParty)),new tr(e,t.sessionIndex||"0",t.iamToken||null);case"provider":return t.client;default:throw new zs(Hs.INVALID_ARGUMENT,"makeCredentialsProvider 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=Gl.get(t);e&&(Vs("ComponentProvider","Removing Datastore"),Gl.delete(t),e.terminate())}(this),Promise.resolve()}}function ed(t,e,n,s={}){var r;const i=(t=Xl(t,td))._getSettings();if("firestore.googleapis.com"!==i.host&&i.host!==e&&qs("Host has been set in both settings() and useEmulator(), emulator host will be used"),t._setSettings(Object.assign(Object.assign({},i),{host:`${e}:${n}`,ssl:!1})),s.mockUserToken){let e,n;if("string"==typeof s.mockUserToken)e=s.mockUserToken,n=Ls.MOCK_USER;else{e= +/** + * @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. + */ +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",s=t.iat||0,r=t.sub||t.user_id;if(!r)throw new Error("mockUserToken must contain 'sub' or 'user_id' field!");const i=Object.assign({iss:`https://securetoken.google.com/${n}`,aud:n,iat:s,exp:s+3600,auth_time:s,sub:r,user_id:r,firebase:{sign_in_provider:"custom",identities:{}}},t);return[u(JSON.stringify({alg:"none",type:"JWT"})),u(JSON.stringify(i)),""].join(".")}(s.mockUserToken,null===(r=t._app)||void 0===r?void 0:r.options.projectId);const i=s.mockUserToken.sub||s.mockUserToken.user_id;if(!i)throw new zs(Hs.INVALID_ARGUMENT,"mockUserToken must contain 'sub' or 'user_id' field!");n=new Ls(i)}t._credentials=new Xs(new Ws(e,n))}} +/** + * @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. + */class nd{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 rd(this.firestore,this.converter,this._key.path.popLast())}withConverter(t){return new nd(this.firestore,t,this._key)}}class sd{constructor(t,e,n){this.converter=e,this._query=n,this.type="query",this.firestore=t}withConverter(t){return new sd(this.firestore,t,this._query)}}class rd extends sd{constructor(t,e,n){super(t,e,mi(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 nd(this.firestore,null,new xr(t))}withConverter(t){return new rd(this.firestore,t,this._path)}}function id(t,e,...n){if(t=g(t),Hl("collection","path",e),t instanceof td){const s=fr.fromString(e,...n);return Wl(s),new rd(t,null,s)}{if(!(t instanceof nd||t instanceof rd))throw new zs(Hs.INVALID_ARGUMENT,"Expected first argument to collection() to be a CollectionReference, a DocumentReference or FirebaseFirestore");const s=t._path.child(fr.fromString(e,...n));return Wl(s),new rd(t.firestore,null,s)}}function od(t,e){if(t=Xl(t,td),Hl("collectionGroup","collection id",e),e.indexOf("/")>=0)throw new zs(Hs.INVALID_ARGUMENT,`Invalid collection ID '${e}' passed to function collectionGroup(). Collection IDs must not contain '/'.`);return new sd(t,null,function(t){return new fi(fr.emptyPath(),t)}(e))}function ad(t,e,...n){if(t=g(t),1===arguments.length&&(e=sr.I()),Hl("doc","path",e),t instanceof td){const s=fr.fromString(e,...n);return Ql(s),new nd(t,null,new xr(s))}{if(!(t instanceof nd||t instanceof rd))throw new zs(Hs.INVALID_ARGUMENT,"Expected first argument to collection() to be a CollectionReference, a DocumentReference or FirebaseFirestore");const s=t._path.child(fr.fromString(e,...n));return Ql(s),new nd(t.firestore,t instanceof rd?t.converter:null,new xr(s))}}function cd(t,e){return t=g(t),e=g(e),(t instanceof nd||t instanceof rd)&&(e instanceof nd||e instanceof rd)&&t.firestore===e.firestore&&t.path===e.path&&t.converter===e.converter}function ud(t,e){return t=g(t),e=g(e),t instanceof sd&&e instanceof sd&&t.firestore===e.firestore&&Si(t._query,e._query)&&t.converter===e.converter +/** + * @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. + */}class hd{constructor(){this._c=Promise.resolve(),this.mc=[],this.gc=!1,this.yc=[],this.Tc=null,this.Ec=!1,this.Ic=!1,this.Ac=[],this.ar=new $u(this,"async_queue_retry"),this.Rc=()=>{const t=ju();t&&Vs("AsyncQueue","Visibility state changed to "+t.visibilityState),this.ar.tr()};const t=ju();t&&"function"==typeof t.addEventListener&&t.addEventListener("visibilitychange",this.Rc)}get isShuttingDown(){return this.gc}enqueueAndForget(t){this.enqueue(t)}enqueueAndForgetEvenWhileRestricted(t){this.bc(),this.Pc(t)}enterRestrictedMode(t){if(!this.gc){this.gc=!0,this.Ic=t||!1;const e=ju();e&&"function"==typeof e.removeEventListener&&e.removeEventListener("visibilitychange",this.Rc)}}enqueue(t){if(this.bc(),this.gc)return new Promise((()=>{}));const e=new Qs;return this.Pc((()=>this.gc&&this.Ic?Promise.resolve():(t().then(e.resolve,e.reject),e.promise))).then((()=>e.promise))}enqueueRetryable(t){this.enqueueAndForget((()=>(this.mc.push(t),this.vc())))}async vc(){if(0!==this.mc.length){try{await this.mc[0](),this.mc.shift(),this.ar.reset()}catch(t){if(!Ga(t))throw t;Vs("AsyncQueue","Operation failed with retryable error: "+t)}this.mc.length>0&&this.ar.Xi((()=>this.vc()))}}Pc(t){const e=this._c.then((()=>(this.Ec=!0,t().catch((t=>{this.Tc=t,this.Ec=!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 Us("INTERNAL UNHANDLED ERROR: ",e),t})).then((t=>(this.Ec=!1,t))))));return this._c=e,e}enqueueAfterDelay(t,e,n){this.bc(),this.Ac.indexOf(t)>-1&&(e=0);const s=Sh.createAndSchedule(this,t,e,n,(t=>this.Vc(t)));return this.yc.push(s),s}bc(){this.Tc&&js()}verifyOperationInProgress(){}async Sc(){let t;do{t=this._c,await t}while(t!==this._c)}Dc(t){for(const e of this.yc)if(e.timerId===t)return!0;return!1}Cc(t){return this.Sc().then((()=>{this.yc.sort(((t,e)=>t.targetTimeMs-e.targetTimeMs));for(const e of this.yc)if(e.skipDelay(),"all"!==t&&e.timerId===t)break;return this.Sc()}))}Nc(t){this.Ac.push(t)}Vc(t){const e=this.yc.indexOf(t);this.yc.splice(e,1)}}function ld(t){return function(t,e){if("object"!=typeof t||null===t)return!1;const n=t;for(const t of["next","error","complete"])if(t in n&&"function"==typeof n[t])return!0;return!1}(t)}class dd{constructor(){this._progressObserver={},this._taskCompletionResolver=new Qs,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)}} +/** + * @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. + */const fd=-1;class gd extends td{constructor(t,e){super(t,e),this.type="firestore",this._queue=new hd,this._persistenceKey="name"in t?t.name:"[DEFAULT]"}_terminate(){return this._firestoreClient||wd(this),this._firestoreClient.terminate()}}function md(t,e){const n=i._getProvider(t,"firestore");if(n.isInitialized()){const t=n.getImmediate();if(d(n.getOptions(),e))return t;throw new zs(Hs.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&&-1!==e.cacheSizeBytes&&e.cacheSizeBytes<1048576)throw new zs(Hs.INVALID_ARGUMENT,"cacheSizeBytes must be at least 1048576");return n.initialize({options:e})}function pd(t=i.getApp()){return i._getProvider(t,"firestore").getImmediate()}function yd(t){return t._firestoreClient||wd(t),t._firestoreClient.verifyNotTerminated(),t._firestoreClient}function wd(t){var e;const n=t._freezeSettings(),s=function(t,e,n,s){return new Kl(t,e,n,s.host,s.ssl,s.experimentalForceLongPolling,s.experimentalAutoDetectLongPolling,s.useFetchStreams)}(t._databaseId,(null===(e=t._app)||void 0===e?void 0:e.options.appId)||"",t._persistenceKey,n);t._firestoreClient=new Cl(t._credentials,t._queue,s)}function vd(t,e){xd(t=Xl(t,gd));const n=yd(t),s=t._freezeSettings(),r=new Sl;return Td(n,r,new El(r,s.cacheSizeBytes,null==e?void 0:e.forceOwnership))}function bd(t){xd(t=Xl(t,gd));const e=yd(t),n=t._freezeSettings(),s=new Sl;return Td(e,s,new Il(s,n.cacheSizeBytes))}function Td(t,e,n){const s=new Qs;return t.asyncQueue.enqueue((async()=>{try{await kl(t,n),await Rl(t,e),s.resolve()}catch(t){if(!function(t){return"FirebaseError"===t.name?t.code===Hs.FAILED_PRECONDITION||t.code===Hs.UNIMPLEMENTED:!("undefined"!=typeof DOMException&&t instanceof DOMException)||(22===t.code||20===t.code||11===t.code)}(t))throw t;console.warn("Error enabling offline persistence. Falling back to persistence disabled: "+t),s.reject(t)}})).then((()=>s.promise))}function Ed(t){if(t._initialized&&!t._terminated)throw new zs(Hs.FAILED_PRECONDITION,"Persistence can only be cleared before a Firestore instance is initialized or after it is terminated.");const e=new Qs;return t._queue.enqueueAndForgetEvenWhileRestricted((async()=>{try{await async function(t){if(!ja.bt())return Promise.resolve();const e=t+"main";await ja.delete(e)}(Zc(t._databaseId,t._persistenceKey)),e.resolve()}catch(t){e.reject(t)}})),e.promise}function Id(t){return function(t){const e=new Qs;return t.asyncQueue.enqueueAndForget((async()=>async function(t,e){const n=Gs(t);ih(n.remoteStore)||Vs("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=Gs(t);return e.persistence.runTransaction("Get highest unacknowledged batch id","readonly",(t=>e.In.getHighestUnacknowledgedBatchId(t)))}(n.localStore);if(-1===t)return void e.resolve();const s=n.Ko.get(t)||[];s.push(e),n.Ko.set(t,s)}catch(t){const n=_h(t,"Initialization of waitForPendingWrites() operation failed");e.reject(n)}}(await Vl(t),e))),e.promise}(yd(t=Xl(t,gd)))}function Sd(t){return function(t){return t.asyncQueue.enqueue((async()=>{const e=await Ml(t),n=await Pl(t);return e.setNetworkEnabled(!0),function(t){const e=Gs(t);return e.Wr.delete(0),Xu(e)}(n)}))}(yd(t=Xl(t,gd)))}function _d(t){return function(t){return t.asyncQueue.enqueue((async()=>{const e=await Ml(t),n=await Pl(t);return e.setNetworkEnabled(!1),async function(t){const e=Gs(t);e.Wr.add(0),await Ju(e),e.Hr.set("Offline")}(n)}))}(yd(t=Xl(t,gd)))}function Nd(t){return i._removeServiceInstance(t.app,"firestore"),t._delete()}function Ad(t,e){const n=yd(t=Xl(t,gd)),s=new dd;return jl(n,t._databaseId,e,s),s}function Dd(t,e){return function(t,e){return t.asyncQueue.enqueue((async()=>function(t,e){const n=Gs(t);return n.persistence.runTransaction("Get named query","readonly",(t=>n.Je.getNamedQuery(t,e)))}(await Fl(t),e)))}(yd(t=Xl(t,gd)),e).then((e=>e?new sd(t,null,e.query):null))}function xd(t){if(t._initialized||t._terminated)throw new zs(Hs.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.")} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */class Cd{constructor(...t){for(let e=0;e90)throw new zs(Hs.INVALID_ARGUMENT,"Latitude must be a number between -90 and 90, but was: "+t);if(!isFinite(e)||e<-180||e>180)throw new zs(Hs.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 rr(this._lat,t._lat)||rr(this._long,t._long)}} +/** + * @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 Md=/^__.*__$/;class Fd{constructor(t,e,n){this.data=t,this.fieldMask=e,this.fieldTransforms=n}toMutation(t,e){return null!==this.fieldMask?new no(t,this.data,this.fieldMask,e,this.fieldTransforms):new eo(t,this.data,e,this.fieldTransforms)}}class Pd{constructor(t,e,n){this.data=t,this.fieldMask=e,this.fieldTransforms=n}toMutation(t,e){return new no(t,this.data,this.fieldMask,e,this.fieldTransforms)}}function Vd(t){switch(t){case 0:case 2:case 1:return!0;case 3:case 4:return!1;default:throw js()}}class Ud{constructor(t,e,n,s,r,i){this.settings=t,this.databaseId=e,this.N=n,this.ignoreUndefinedProperties=s,void 0===r&&this.xc(),this.fieldTransforms=r||[],this.fieldMask=i||[]}get path(){return this.settings.path}get kc(){return this.settings.kc}$c(t){return new Ud(Object.assign(Object.assign({},this.settings),t),this.databaseId,this.N,this.ignoreUndefinedProperties,this.fieldTransforms,this.fieldMask)}Oc(t){var e;const n=null===(e=this.path)||void 0===e?void 0:e.child(t),s=this.$c({path:n,Fc:!1});return s.Mc(t),s}Lc(t){var e;const n=null===(e=this.path)||void 0===e?void 0:e.child(t),s=this.$c({path:n,Fc:!1});return s.xc(),s}Bc(t){return this.$c({path:void 0,Fc:!0})}Uc(t){return of(t,this.settings.methodName,this.settings.qc||!1,this.path,this.settings.Kc)}contains(t){return void 0!==this.fieldMask.find((e=>t.isPrefixOf(e)))||void 0!==this.fieldTransforms.find((e=>t.isPrefixOf(e.field)))}xc(){if(this.path)for(let t=0;tc.covers(t.field)))}else c=null,u=o.fieldTransforms;return new Fd(new $r(a),c,u)}class Kd extends Ld{_toFieldTransform(t){if(2!==t.kc)throw 1===t.kc?t.Uc(`${this._methodName}() can only appear at the top level of your update data`):t.Uc(`${this._methodName}() cannot be used with set() unless you pass {merge:true}`);return t.fieldMask.push(t.path),null}isEqual(t){return t instanceof Kd}}function $d(t,e,n){return new Ud({kc:3,Kc:e.settings.Kc,methodName:t._methodName,Fc:n},e.databaseId,e.N,e.ignoreUndefinedProperties)}class Gd extends Ld{_toFieldTransform(t){return new Gi(t.path,new Pi)}isEqual(t){return t instanceof Gd}}class Hd extends Ld{constructor(t,e){super(t),this.Qc=e}_toFieldTransform(t){const e=$d(this,t,!0),n=this.Qc.map((t=>Jd(t,e))),s=new Vi(n);return new Gi(t.path,s)}isEqual(t){return this===t}}class zd extends Ld{constructor(t,e){super(t),this.Qc=e}_toFieldTransform(t){const e=$d(this,t,!0),n=this.Qc.map((t=>Jd(t,e))),s=new qi(n);return new Gi(t.path,s)}isEqual(t){return this===t}}class Qd extends Ld{constructor(t,e){super(t),this.Wc=e}_toFieldTransform(t){const e=new ji(t.N,Ri(t.N,this.Wc));return new Gi(t.path,e)}isEqual(t){return this===t}}function Wd(t,e,n,s){const r=t.jc(1,e,n);ef("Data must be an object, but it was:",r,s);const i=[],o=$r.empty();hr(s,((t,s)=>{const a=rf(e,t,n);s=g(s);const c=r.Lc(a);if(s instanceof Kd)i.push(a);else{const t=Jd(s,c);null!=t&&(i.push(a),o.set(a,t))}}));const a=new pr(i);return new Pd(o,a,r.fieldTransforms)}function Yd(t,e,n,s,r,i){const o=t.jc(1,e,n),a=[nf(e,s,n)],c=[r];if(i.length%2!=0)throw new zs(Hs.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(!af(u,a[t])){const e=a[t];let n=c[t];n=g(n);const s=o.Lc(e);if(n instanceof Kd)u.push(e);else{const t=Jd(n,s);null!=t&&(u.push(e),h.set(e,t))}}const l=new pr(u);return new Pd(h,l,o.fieldTransforms)}function Xd(t,e,n,s=!1){return Jd(n,t.jc(s?4:3,e))}function Jd(t,e){if(tf(t=g(t)))return ef("Unsupported field value:",e,t),Zd(t,e);if(t instanceof Ld)return function(t,e){if(!Vd(e.kc))throw e.Uc(`${t._methodName}() can only be used with update() and set()`);if(!e.path)throw e.Uc(`${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.Fc&&4!==e.kc)throw e.Uc("Nested arrays are not supported");return function(t,e){const n=[];let s=0;for(const r of t){let t=Jd(r,e.Bc(s));null==t&&(t={nullValue:"NULL_VALUE"}),n.push(t),s++}return{arrayValue:{values:n}}}(t,e)}return function(t,e){if(null===(t=g(t)))return{nullValue:"NULL_VALUE"};if("number"==typeof t)return Ri(e.N,t);if("boolean"==typeof t)return{booleanValue:t};if("string"==typeof t)return{stringValue:t};if(t instanceof Date){const n=ar.fromDate(t);return{timestampValue:Bo(e.N,n)}}if(t instanceof ar){const n=new ar(t.seconds,1e3*Math.floor(t.nanoseconds/1e3));return{timestampValue:Bo(e.N,n)}}if(t instanceof Od)return{geoPointValue:{latitude:t.latitude,longitude:t.longitude}};if(t instanceof Rd)return{bytesValue:jo(e.N,t._byteString)};if(t instanceof nd){const n=e.databaseId,s=t.firestore._databaseId;if(!s.isEqual(n))throw e.Uc(`Document reference is for database ${s.projectId}/${s.database} but should be for database ${n.projectId}/${n.database}`);return{referenceValue:Go(t.firestore._databaseId||e.databaseId,t._key.path)}}throw e.Uc(`Unsupported field value: ${Yl(t)}`)}(t,e)}function Zd(t,e){const n={};return lr(t)?e.path&&e.path.length>0&&e.fieldMask.push(e.path):hr(t,((t,s)=>{const r=Jd(s,e.Oc(t));null!=r&&(n[t]=r)})),{mapValue:{fields:n}}}function tf(t){return!("object"!=typeof t||null===t||t instanceof Array||t instanceof Date||t instanceof ar||t instanceof Od||t instanceof Rd||t instanceof nd||t instanceof Ld)}function ef(t,e,n){if(!tf(n)||!function(t){return"object"==typeof t&&null!==t&&(Object.getPrototypeOf(t)===Object.prototype||null===Object.getPrototypeOf(t))}(n)){const s=Yl(n);throw"an object"===s?e.Uc(t+" a custom object"):e.Uc(t+" "+s)}}function nf(t,e,n){if((e=g(e))instanceof Cd)return e._internalPath;if("string"==typeof e)return rf(t,e);throw of("Field path arguments must be of type string or FieldPath.",t,!1,void 0,n)}const sf=new RegExp("[~\\*/\\[\\]]");function rf(t,e,n){if(e.search(sf)>=0)throw of(`Invalid field path (${e}). Paths must not contain '~', '*', '/', '[', or ']'`,t,!1,void 0,n);try{return new Cd(...e.split("."))._internalPath}catch(s){throw of(`Invalid field path (${e}). Paths must not be empty, begin with '.', end with '.', or contain '..'`,t,!1,void 0,n)}}function of(t,e,n,s,r){const i=s&&!s.isEmpty(),o=void 0!==r;let a=`Function ${e}() called with invalid data`;n&&(a+=" (via `toFirestore()`)"),a+=". ";let c="";return(i||o)&&(c+=" (found",i&&(c+=` in field ${s}`),o&&(c+=` in document ${r}`),c+=")"),new zs(Hs.INVALID_ARGUMENT,a+t+c)}function af(t,e){return t.some((t=>t.isEqual(e)))} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */class cf{constructor(t,e,n,s,r){this._firestore=t,this._userDataWriter=e,this._key=n,this._document=s,this._converter=r}get id(){return this._key.path.lastSegment()}get ref(){return new nd(this._firestore,this._converter,this._key)}exists(){return null!==this._document}data(){if(this._document){if(this._converter){const t=new uf(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(hf("DocumentSnapshot.get",t));if(null!==e)return this._userDataWriter.convertValue(e)}}}class uf extends cf{data(){return super.data()}}function hf(t,e){return"string"==typeof e?rf(t,e):e instanceof Cd?e._internalPath:e._delegate._internalPath} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */class lf{constructor(t,e){this.hasPendingWrites=t,this.fromCache=e}isEqual(t){return this.hasPendingWrites===t.hasPendingWrites&&this.fromCache===t.fromCache}}class df extends cf{constructor(t,e,n,s,r,i){super(t,e,n,s,i),this._firestore=t,this._firestoreImpl=t,this.metadata=r}exists(){return super.exists()}data(t={}){if(this._document){if(this._converter){const e=new ff(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(hf("DocumentSnapshot.get",t));if(null!==n)return this._userDataWriter.convertValue(n,e.serverTimestamps)}}}class ff extends df{data(t={}){return super.data(t)}}class gf{constructor(t,e,n,s){this._firestore=t,this._userDataWriter=e,this._snapshot=s,this.metadata=new lf(s.hasPendingWrites,s.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 ff(this._firestore,this._userDataWriter,n.key,n,new lf(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 zs(Hs.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=>({type:"added",doc:new ff(t._firestore,t._userDataWriter,n.doc.key,n.doc,new lf(t._snapshot.mutatedKeys.has(n.doc.key),t._snapshot.fromCache),t.query.converter),oldIndex:-1,newIndex:e++})))}{let n=t._snapshot.oldDocs;return t._snapshot.docChanges.filter((t=>e||3!==t.type)).map((e=>{const s=new ff(t._firestore,t._userDataWriter,e.doc.key,e.doc,new lf(t._snapshot.mutatedKeys.has(e.doc.key),t._snapshot.fromCache),t.query.converter);let r=-1,i=-1;return 0!==e.type&&(r=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:mf(e.type),doc:s,oldIndex:r,newIndex:i}}))}}(this,e),this._cachedChangesIncludeMetadataChanges=e),this._cachedChanges}}function mf(t){switch(t){case 0:return"added";case 2:case 3:return"modified";case 1:return"removed";default:return js()}}function pf(t,e){return t instanceof df&&e instanceof df?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 gf&&e instanceof gf&&t._firestore===e._firestore&&ud(t.query,e.query)&&t.metadata.isEqual(e.metadata)&&t._snapshot.isEqual(e._snapshot)} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */function yf(t){if(yi(t)&&0===t.explicitOrderBy.length)throw new zs(Hs.UNIMPLEMENTED,"limitToLast() queries require specifying at least one orderBy() clause")}class wf{}function vf(t,...e){for(const n of e)t=n._apply(t);return t}class bf extends wf{constructor(t,e,n){super(),this.Gc=t,this.zc=e,this.Hc=n,this.type="where"}_apply(t){const e=Bd(t.firestore),n=function(t,e,n,s,r,i,o){let a;if(r.isKeyField()){if("array-contains"===i||"array-contains-any"===i)throw new zs(Hs.INVALID_ARGUMENT,`Invalid Query. You can't perform '${i}' queries on FieldPath.documentId().`);if("in"===i||"not-in"===i){Mf(o,i);const e=[];for(const n of o)e.push(Of(s,t,n));a={arrayValue:{values:e}}}else a=Of(s,t,o)}else"in"!==i&&"not-in"!==i&&"array-contains-any"!==i||Mf(o,i),a=Xd(n,"where",o,"in"===i||"not-in"===i);const c=Jr.create(r,i,a);return function(t,e){if(e.v()){const n=vi(t);if(null!==n&&!n.isEqual(e.field))throw new zs(Hs.INVALID_ARGUMENT,`Invalid query. All where filters with an inequality (<, <=, !=, not-in, >, or >=) must be on the same field. But you have inequality filters on '${n.toString()}' and '${e.field.toString()}'`);const s=wi(t);null!==s&&Ff(t,e.field,s)}const n=function(t,e){for(const n of t.filters)if(e.indexOf(n.op)>=0)return n.op;return null}(t,function(t){switch(t){case"!=":return["!=","not-in"];case"array-contains":return["array-contains","array-contains-any","not-in"];case"in":return["array-contains-any","in","not-in"];case"array-contains-any":return["array-contains","array-contains-any","in","not-in"];case"not-in":return["array-contains","array-contains-any","in","not-in","!="];default:return[]}}(e.op));if(null!==n)throw n===e.op?new zs(Hs.INVALID_ARGUMENT,`Invalid query. You cannot use more than one '${e.op.toString()}' filter.`):new zs(Hs.INVALID_ARGUMENT,`Invalid query. You cannot use '${e.op.toString()}' filters with '${n.toString()}' filters.`)}(t,c),c}(t._query,0,e,t.firestore._databaseId,this.Gc,this.zc,this.Hc);return new sd(t.firestore,t.converter,function(t,e){const n=t.filters.concat([e]);return new fi(t.path,t.collectionGroup,t.explicitOrderBy.slice(),n,t.limit,t.limitType,t.startAt,t.endAt)}(t._query,n))}}function Tf(t,e,n){const s=e,r=hf("where",t);return new bf(r,s,n)}class Ef extends wf{constructor(t,e){super(),this.Gc=t,this.Jc=e,this.type="orderBy"}_apply(t){const e=function(t,e,n){if(null!==t.startAt)throw new zs(Hs.INVALID_ARGUMENT,"Invalid query. You must not call startAt() or startAfter() before calling orderBy().");if(null!==t.endAt)throw new zs(Hs.INVALID_ARGUMENT,"Invalid query. You must not call endAt() or endBefore() before calling orderBy().");const s=new ui(e,n);return function(t,e){if(null===wi(t)){const n=vi(t);null!==n&&Ff(t,n,e.field)}}(t,s),s}(t._query,this.Gc,this.Jc);return new sd(t.firestore,t.converter,function(t,e){const n=t.explicitOrderBy.concat([e]);return new fi(t.path,t.collectionGroup,n,t.filters.slice(),t.limit,t.limitType,t.startAt,t.endAt)}(t._query,e))}}function If(t,e="asc"){const n=e,s=hf("orderBy",t);return new Ef(s,n)}class Sf extends wf{constructor(t,e,n){super(),this.type=t,this.Yc=e,this.Xc=n}_apply(t){return new sd(t.firestore,t.converter,Ii(t._query,this.Yc,this.Xc))}}function _f(t){return Jl("limit",t),new Sf("limit",t,"F")}function Nf(t){return Jl("limitToLast",t),new Sf("limitToLast",t,"L")}class Af extends wf{constructor(t,e,n){super(),this.type=t,this.Zc=e,this.ta=n}_apply(t){const e=Lf(t,this.type,this.Zc,this.ta);return new sd(t.firestore,t.converter,function(t,e){return new fi(t.path,t.collectionGroup,t.explicitOrderBy.slice(),t.filters.slice(),t.limit,t.limitType,e,t.endAt)}(t._query,e))}}function Df(...t){return new Af("startAt",t,!0)}function xf(...t){return new Af("startAfter",t,!1)}class Cf extends wf{constructor(t,e,n){super(),this.type=t,this.Zc=e,this.ta=n}_apply(t){const e=Lf(t,this.type,this.Zc,this.ta);return new sd(t.firestore,t.converter,function(t,e){return new fi(t.path,t.collectionGroup,t.explicitOrderBy.slice(),t.filters.slice(),t.limit,t.limitType,t.startAt,e)}(t._query,e))}}function kf(...t){return new Cf("endBefore",t,!0)}function Rf(...t){return new Cf("endAt",t,!1)}function Lf(t,e,n,s){if(n[0]=g(n[0]),n[0]instanceof cf)return function(t,e,n,s,r){if(!s)throw new zs(Hs.NOT_FOUND,`Can't use a DocumentSnapshot that doesn't exist for ${n}().`);const i=[];for(const n of Ti(t))if(n.field.isKeyField())i.push(Pr(e,s.key));else{const t=s.data.field(n.field);if(Ir(t))throw new zs(Hs.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 zs(Hs.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 ai(i,r)}(t._query,t.firestore._databaseId,e,n[0]._document,s);{const r=Bd(t.firestore);return function(t,e,n,s,r,i){const o=t.explicitOrderBy;if(r.length>o.length)throw new zs(Hs.INVALID_ARGUMENT,`Too many arguments provided to ${s}(). The number of arguments must be less than or equal to the number of orderBy() clauses`);const a=[];for(let i=0;i10)throw new zs(Hs.INVALID_ARGUMENT,`Invalid Query. '${e.toString()}' filters support a maximum of 10 elements in the value array.`)}function Ff(t,e,n){if(!n.isEqual(e))throw new zs(Hs.INVALID_ARGUMENT,`Invalid query. You have a where filter with an inequality (<, <=, !=, not-in, >, or >=) on field '${e.toString()}' and so you must also use '${e.toString()}' as your first argument to orderBy(), but your first orderBy() is on field '${n.toString()}' instead.`)} +/** + * @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. + */class Pf{convertValue(t,e="none"){switch(Cr(t)){case 0:return null;case 1:return t.booleanValue;case 2:return Tr(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(Er(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 js()}}convertObject(t,e){const n={};return hr(t.fields,((t,s)=>{n[t]=this.convertValue(s,e)})),n}convertGeoPoint(t){return new Od(Tr(t.latitude),Tr(t.longitude))}convertArray(t,e){return(t.values||[]).map((t=>this.convertValue(t,e)))}convertServerTimestamp(t,e){switch(e){case"previous":const n=Sr(t);return null==n?null:this.convertValue(n,e);case"estimate":return this.convertTimestamp(_r(t));default:return null}}convertTimestamp(t){const e=br(t);return new ar(e.seconds,e.nanos)}convertDocumentKey(t,e){const n=fr.fromString(t);Ks(pa(n));const s=new $l(n.get(1),n.get(3)),r=new xr(n.popFirst(5));return s.isEqual(e)||Us(`Document ${r} contains a document reference within a different database (${s.projectId}/${s.database}) which is not supported. It will be treated as a reference in the current database (${e.projectId}/${e.database}) instead.`),r}} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */function Vf(t,e,n){let s;return s=t?n&&(n.merge||n.mergeFields)?t.toFirestore(e,n):t.toFirestore(e):e,s}class Uf extends Pf{constructor(t){super(),this.firestore=t}convertBytes(t){return new Rd(t)}convertReference(t){const e=this.convertDocumentKey(t,this.firestore._databaseId);return new nd(this.firestore,null,e)}} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */class qf{constructor(t,e){this._firestore=t,this._commitHandler=e,this._mutations=[],this._committed=!1,this._dataReader=Bd(t)}set(t,e,n){this._verifyNotCommitted();const s=Bf(t,this._firestore),r=Vf(s.converter,e,n),i=jd(this._dataReader,"WriteBatch.set",s._key,r,null!==s.converter,n);return this._mutations.push(i.toMutation(s._key,zi.none())),this}update(t,e,n,...s){this._verifyNotCommitted();const r=Bf(t,this._firestore);let i;return i="string"==typeof(e=g(e))||e instanceof Cd?Yd(this._dataReader,"WriteBatch.update",r._key,e,n,s):Wd(this._dataReader,"WriteBatch.update",r._key,e),this._mutations.push(i.toMutation(r._key,zi.exists(!0))),this}delete(t){this._verifyNotCommitted();const e=Bf(t,this._firestore);return this._mutations=this._mutations.concat(new oo(e._key,zi.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 zs(Hs.FAILED_PRECONDITION,"A write batch can no longer be used after commit() has been called.")}}function Bf(t,e){if((t=g(t)).firestore!==e)throw new zs(Hs.INVALID_ARGUMENT,"Provided document reference is from a different Firestore instance.");return t} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */function jf(t){t=Xl(t,nd);const e=Xl(t.firestore,gd);return ql(yd(e),t._key).then((n=>ng(e,t,n)))}class Kf extends Pf{constructor(t){super(),this.firestore=t}convertBytes(t){return new Rd(t)}convertReference(t){const e=this.convertDocumentKey(t,this.firestore._databaseId);return new nd(this.firestore,null,e)}}function $f(t){t=Xl(t,nd);const e=Xl(t.firestore,gd),n=yd(e),s=new Kf(e);return function(t,e){const n=new Qs;return t.asyncQueue.enqueueAndForget((async()=>async function(t,e,n){try{const s=await function(t,e){const n=Gs(t);return n.persistence.runTransaction("read document","readonly",(t=>n.Qn.An(t,e)))}(t,e);s.isFoundDocument()?n.resolve(s):s.isNoDocument()?n.resolve(null):n.reject(new zs(Hs.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 s=_h(t,`Failed to get document '${e} from cache`);n.reject(s)}}(await Fl(t),e,n))),n.promise}(n,t._key).then((n=>new df(e,s,t._key,n,new lf(null!==n&&n.hasLocalMutations,!0),t.converter)))}function Gf(t){t=Xl(t,nd);const e=Xl(t.firestore,gd);return ql(yd(e),t._key,{source:"server"}).then((n=>ng(e,t,n)))}function Hf(t){t=Xl(t,sd);const e=Xl(t.firestore,gd),n=yd(e),s=new Kf(e);return yf(t._query),Bl(n,t._query).then((n=>new gf(e,s,t,n)))}function zf(t){t=Xl(t,sd);const e=Xl(t.firestore,gd),n=yd(e),s=new Kf(e);return function(t,e){const n=new Qs;return t.asyncQueue.enqueueAndForget((async()=>async function(t,e,n){try{const s=await du(t,e,!0),r=new Kh(e,s.Gn),i=r.bo(s.documents),o=r.applyChanges(i,!1);n.resolve(o.snapshot)}catch(t){const s=_h(t,`Failed to execute query '${e} against cache`);n.reject(s)}}(await Fl(t),e,n))),n.promise}(n,t._query).then((n=>new gf(e,s,t,n)))}function Qf(t){t=Xl(t,sd);const e=Xl(t.firestore,gd),n=yd(e),s=new Kf(e);return Bl(n,t._query,{source:"server"}).then((n=>new gf(e,s,t,n)))}function Wf(t,e,n){t=Xl(t,nd);const s=Xl(t.firestore,gd),r=Vf(t.converter,e,n);return eg(s,[jd(Bd(s),"setDoc",t._key,r,null!==t.converter,n).toMutation(t._key,zi.none())])}function Yf(t,e,n,...s){t=Xl(t,nd);const r=Xl(t.firestore,gd),i=Bd(r);let o;return o="string"==typeof(e=g(e))||e instanceof Cd?Yd(i,"updateDoc",t._key,e,n,s):Wd(i,"updateDoc",t._key,e),eg(r,[o.toMutation(t._key,zi.exists(!0))])}function Xf(t){return eg(Xl(t.firestore,gd),[new oo(t._key,zi.none())])}function Jf(t,e){const n=Xl(t.firestore,gd),s=ad(t),r=Vf(t.converter,e);return eg(n,[jd(Bd(t.firestore),"addDoc",s._key,r,null!==t.converter,{}).toMutation(s._key,zi.exists(!1))]).then((()=>s))}function Zf(t,...e){var n,s,r;t=g(t);let i={includeMetadataChanges:!1},o=0;"object"!=typeof e[o]||ld(e[o])||(i=e[o],o++);const a={includeMetadataChanges:i.includeMetadataChanges};if(ld(e[o])){const t=e[o];e[o]=null===(n=t.next)||void 0===n?void 0:n.bind(t),e[o+1]=null===(s=t.error)||void 0===s?void 0:s.bind(t),e[o+2]=null===(r=t.complete)||void 0===r?void 0:r.bind(t)}let c,u,h;if(t instanceof nd)u=Xl(t.firestore,gd),h=mi(t._key.path),c={next:n=>{e[o]&&e[o](ng(u,t,n))},error:e[o+1],complete:e[o+2]};else{const n=Xl(t,sd);u=Xl(n.firestore,gd),h=n._query;const s=new Kf(u);c={next:t=>{e[o]&&e[o](new gf(u,s,n,t))},error:e[o+1],complete:e[o+2]},yf(t._query)}return function(t,e,n,s){const r=new Nl(s),i=new Fh(e,r,n);return t.asyncQueue.enqueueAndForget((async()=>kh(await Ul(t),i))),()=>{r.ec(),t.asyncQueue.enqueueAndForget((async()=>Rh(await Ul(t),i)))}}(yd(u),h,a,c)}function tg(t,e){return function(t,e){const n=new Nl(e);return t.asyncQueue.enqueueAndForget((async()=>function(t,e){Gs(t).so.add(e),e.next()}(await Ul(t),n))),()=>{n.ec(),t.asyncQueue.enqueueAndForget((async()=>function(t,e){Gs(t).so.delete(e)}(await Ul(t),n)))}}(yd(t=Xl(t,gd)),ld(e)?e:{next:e})}function eg(t,e){return function(t,e){const n=new Qs;return t.asyncQueue.enqueueAndForget((async()=>async function(t,e,n){const s=bl(t);try{const t=await function(t,e){const n=Gs(t),s=ar.now(),r=e.reduce(((t,e)=>t.add(e.key)),No());let i;return n.persistence.runTransaction("Locally write mutations","readwrite",(t=>n.Qn.Pn(t,r).next((r=>{i=r;const o=[];for(const t of e){const e=Ji(t,i.get(t.key));null!=e&&o.push(new no(t.key,e,Gr(e.value.mapValue),zi.exists(!0)))}return n.In.addMutationBatch(t,s,o,e)})))).then((t=>(t.applyToLocalDocumentSet(i),{batchId:t.batchId,changes:i})))}(s.localStore,e);s.sharedClientState.addPendingMutation(t.batchId),function(t,e,n){let s=t.qo[t.currentUser.toKey()];s||(s=new go(rr)),s=s.insert(e,n),t.qo[t.currentUser.toKey()]=s}(s,t.batchId,n),await cl(s,t.changes),await dh(s.remoteStore)}catch(t){const e=_h(t,"Failed to persist write");n.reject(e)}}(await Vl(t),e,n))),n.promise}(yd(t),e)}function ng(t,e,n){const s=n.docs.get(e._key),r=new Kf(t);return new df(t,r,e._key,s,new lf(n.hasPendingWrites,n.fromCache),e.converter)} +/** + * @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. + */class sg extends class{constructor(t,e){this._firestore=t,this._transaction=e,this._dataReader=Bd(t)}get(t){const e=Bf(t,this._firestore),n=new Uf(this._firestore);return this._transaction.lookup([e._key]).then((t=>{if(!t||1!==t.length)return js();const s=t[0];if(s.isFoundDocument())return new cf(this._firestore,n,s.key,s,e.converter);if(s.isNoDocument())return new cf(this._firestore,n,e._key,null,e.converter);throw js()}))}set(t,e,n){const s=Bf(t,this._firestore),r=Vf(s.converter,e,n),i=jd(this._dataReader,"Transaction.set",s._key,r,null!==s.converter,n);return this._transaction.set(s._key,i),this}update(t,e,n,...s){const r=Bf(t,this._firestore);let i;return i="string"==typeof(e=g(e))||e instanceof Cd?Yd(this._dataReader,"Transaction.update",r._key,e,n,s):Wd(this._dataReader,"Transaction.update",r._key,e),this._transaction.update(r._key,i),this}delete(t){const e=Bf(t,this._firestore);return this._transaction.delete(e._key),this}}{constructor(t,e){super(t,e),this._firestore=t}get(t){const e=Bf(t,this._firestore),n=new Kf(this._firestore);return super.get(t).then((t=>new df(this._firestore,n,e._key,t._document,new lf(!1,!1),e.converter)))}}function rg(t,e){return function(t,e){const n=new Qs;return t.asyncQueue.enqueueAndForget((async()=>{const s=await function(t){return Ol(t).then((t=>t.datastore))}(t);new xl(t.asyncQueue,s,e,n).run()})),n.promise}(yd(t=Xl(t,gd)),(n=>e(new sg(t,n))))} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */function ig(){return new Kd("deleteField")}function og(){return new Gd("serverTimestamp")}function ag(...t){return new Hd("arrayUnion",t)}function cg(...t){return new zd("arrayRemove",t)}function ug(t){return new Qd("increment",t)} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */function hg(t){return yd(t=Xl(t,gd)),new qf(t,(e=>eg(t,e)))}!function(t,e=!0){!function(t){Os=t}(i.SDK_VERSION),i._registerComponent(new m("firestore",((t,{options:n})=>{const s=t.getProvider("app").getImmediate(),r=new gd(s,new Js(t.getProvider("auth-internal")));return n=Object.assign({useFetchStreams:e},n),r._setSettings(n),r}),"PUBLIC")),i.registerVersion(Rs,"3.2.1",t),i.registerVersion(Rs,"3.2.1","esm2017")}()})); \ No newline at end of file diff --git a/frontend-dist/firebase-firestore.fc4ff51d.js b/frontend-dist/firebase-firestore.fc4ff51d.js new file mode 100644 index 0000000000..f507c81654 --- /dev/null +++ b/frontend-dist/firebase-firestore.fc4ff51d.js @@ -0,0 +1,2039 @@ +(()=>{var t="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{};function e(t,e,n,s){Object.defineProperty(t,e,{get:n,set:s,enumerable:!0,configurable:!0})}var n=t.parcelRequire94c2;n.register("4Odpp",(function(s,r){e(s.exports,"setLogLevel",(()=>Ps)),e(s.exports,"_logWarn",(()=>qs)),e(s.exports,"_debugAssert",(()=>$s)),e(s.exports,"FirestoreError",(()=>zs)),e(s.exports,"_EmptyCredentialsProvider",(()=>Ys)),e(s.exports,"Timestamp",(()=>ar)),e(s.exports,"_FieldPath",(()=>mr)),e(s.exports,"_isBase64Available",(()=>yr)),e(s.exports,"_DocumentKey",(()=>xr)),e(s.exports,"_DatabaseId",(()=>$l)),e(s.exports,"_validateIsNotUsedTogether",(()=>zl)),e(s.exports,"_cast",(()=>Xl)),e(s.exports,"connectFirestoreEmulator",(()=>ed)),e(s.exports,"DocumentReference",(()=>nd)),e(s.exports,"CollectionReference",(()=>rd)),e(s.exports,"Query",(()=>sd)),e(s.exports,"collection",(()=>id)),e(s.exports,"collectionGroup",(()=>od)),e(s.exports,"doc",(()=>ad)),e(s.exports,"refEqual",(()=>cd)),e(s.exports,"queryEqual",(()=>ud)),e(s.exports,"LoadBundleTask",(()=>dd)),e(s.exports,"CACHE_SIZE_UNLIMITED",(()=>fd)),e(s.exports,"Firestore",(()=>gd)),e(s.exports,"initializeFirestore",(()=>md)),e(s.exports,"getFirestore",(()=>pd)),e(s.exports,"ensureFirestoreConfigured",(()=>yd)),e(s.exports,"enableIndexedDbPersistence",(()=>vd)),e(s.exports,"enableMultiTabIndexedDbPersistence",(()=>bd)),e(s.exports,"clearIndexedDbPersistence",(()=>Ed)),e(s.exports,"waitForPendingWrites",(()=>Id)),e(s.exports,"enableNetwork",(()=>Sd)),e(s.exports,"disableNetwork",(()=>_d)),e(s.exports,"terminate",(()=>Nd)),e(s.exports,"loadBundle",(()=>Ad)),e(s.exports,"namedQuery",(()=>Dd)),e(s.exports,"FieldPath",(()=>Cd)),e(s.exports,"documentId",(()=>kd)),e(s.exports,"Bytes",(()=>Rd)),e(s.exports,"FieldValue",(()=>Ld)),e(s.exports,"GeoPoint",(()=>Od)),e(s.exports,"SnapshotMetadata",(()=>lf)),e(s.exports,"DocumentSnapshot",(()=>df)),e(s.exports,"QueryDocumentSnapshot",(()=>ff)),e(s.exports,"QuerySnapshot",(()=>gf)),e(s.exports,"snapshotEqual",(()=>pf)),e(s.exports,"QueryConstraint",(()=>wf)),e(s.exports,"query",(()=>vf)),e(s.exports,"where",(()=>Tf)),e(s.exports,"orderBy",(()=>If)),e(s.exports,"limit",(()=>_f)),e(s.exports,"limitToLast",(()=>Nf)),e(s.exports,"startAt",(()=>Df)),e(s.exports,"startAfter",(()=>xf)),e(s.exports,"endBefore",(()=>kf)),e(s.exports,"endAt",(()=>Rf)),e(s.exports,"AbstractUserDataWriter",(()=>Pf)),e(s.exports,"WriteBatch",(()=>qf)),e(s.exports,"getDoc",(()=>jf)),e(s.exports,"getDocFromCache",(()=>$f)),e(s.exports,"getDocFromServer",(()=>Gf)),e(s.exports,"getDocs",(()=>Hf)),e(s.exports,"getDocsFromCache",(()=>zf)),e(s.exports,"getDocsFromServer",(()=>Qf)),e(s.exports,"setDoc",(()=>Wf)),e(s.exports,"executeWrite",(()=>eg)),e(s.exports,"updateDoc",(()=>Yf)),e(s.exports,"deleteDoc",(()=>Xf)),e(s.exports,"addDoc",(()=>Jf)),e(s.exports,"onSnapshot",(()=>Zf)),e(s.exports,"onSnapshotsInSync",(()=>tg)),e(s.exports,"Transaction",(()=>sg)),e(s.exports,"runTransaction",(()=>rg)),e(s.exports,"deleteField",(()=>ig)),e(s.exports,"serverTimestamp",(()=>og)),e(s.exports,"arrayUnion",(()=>ag)),e(s.exports,"arrayRemove",(()=>cg)),e(s.exports,"increment",(()=>ug)),e(s.exports,"writeBatch",(()=>hg));var i=n("dN8oq"),o=n("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 a=function(t){const e=[];let n=0;for(let s=0;s>6|192,e[n++]=63&r|128):55296==(64512&r)&&s+1>18|240,e[n++]=r>>12&63|128,e[n++]=r>>6&63|128,e[n++]=63&r|128):(e[n++]=r>>12|224,e[n++]=r>>6&63|128,e[n++]=63&r|128)}return e},c={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_,s=[];for(let e=0;e>2,h=(3&r)<<4|o>>4;let l=(15&o)<<2|c>>6,d=63&c;a||(d=64,i||(l=64)),s.push(n[u],n[h],n[l],n[d])}return s.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,s=0;for(;n191&&r<224){const i=t[n++];e[s++]=String.fromCharCode((31&r)<<6|63&i)}else if(r>239&&r<365){const i=((7&r)<<18|(63&t[n++])<<12|(63&t[n++])<<6|63&t[n++])-65536;e[s++]=String.fromCharCode(55296+(i>>10)),e[s++]=String.fromCharCode(56320+(1023&i))}else{const i=t[n++],o=t[n++];e[s++]=String.fromCharCode((15&r)<<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_,s=[];for(let e=0;e>4;if(s.push(c),64!==o){const t=i<<4&240|o>>2;if(s.push(t),64!==a){const t=o<<6&192|a;s.push(t)}}}return s},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)}}},u=function(t){return function(t){const e=a(t);return c.encodeByteArray(e,!0)}(t).replace(/\./g,"")}; +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +function h(){return"undefined"!=typeof navigator&&"string"==typeof navigator.userAgent?navigator.userAgent:""}function l(){return!function(){try{return"[object process]"===Object.prototype.toString.call(t.process)}catch(t){return!1}}()&&navigator.userAgent.includes("Safari")&&!navigator.userAgent.includes("Chrome")}function d(t,e){if(t===e)return!0;const n=Object.keys(t),s=Object.keys(e);for(const r of n){if(!s.includes(r))return!1;const n=t[r],i=e[r];if(f(n)&&f(i)){if(!d(n,i))return!1}else if(n!==i)return!1}for(const t of s)if(!n.includes(t))return!1;return!0}function f(t){return null!==t&&"object"==typeof 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. + */function g(t){return t&&t._delegate?t._delegate:t}class m{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}} +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */var p,y;(y=p||(p={}))[y.DEBUG=0]="DEBUG",y[y.VERBOSE=1]="VERBOSE",y[y.INFO=2]="INFO",y[y.WARN=3]="WARN",y[y.ERROR=4]="ERROR",y[y.SILENT=5]="SILENT";const w={debug:p.DEBUG,verbose:p.VERBOSE,info:p.INFO,warn:p.WARN,error:p.ERROR,silent:p.SILENT},v=p.INFO,b={[p.DEBUG]:"log",[p.VERBOSE]:"log",[p.INFO]:"info",[p.WARN]:"warn",[p.ERROR]:"error"},T=(t,e,...n)=>{if(e>>0),C=0;function k(t,e,n){return t.call.apply(t.bind,arguments)}function R(t,e,n){if(!t)throw Error();if(2e?1:0}t:{var z=_.navigator;if(z){var Q=z.userAgent;if(Q){K=Q;break t}}K=""}function W(t,e,n){for(const s in t)e.call(n,t[s],s,t)}function Y(t){const e={};for(const n in t)e[n]=t[n];return e}var X="constructor hasOwnProperty isPrototypeOf propertyIsEnumerable toLocaleString toString valueOf".split(" ");function J(t,e){let n,s;for(let e=1;eparseFloat(ut)){tt=String(lt);break t}}tt=ut}var dt,ft={};function gt(){return function(t){var e=ft;return Object.prototype.hasOwnProperty.call(e,9)?e[9]:e[9]=t(9)}((function(){let t=0;const e=$(String(tt)).split("."),n=$("9").split("."),s=Math.max(e.length,n.length);for(let o=0;0==t&&o>>0);function Ut(t){return"function"==typeof t?t:(t[Vt]||(t[Vt]=function(e){return t.handleEvent(e)}),t[Vt])}function qt(){F.call(this),this.i=new _t(this),this.P=this,this.I=null}function Bt(t,e){var n,s=t.I;if(s)for(n=[];s;s=s.I)n.push(s);if(t=t.P,s=e.type||e,"string"==typeof e)e=new wt(e,t);else if(e instanceof wt)e.target=e.target||t;else{var r=e;J(e=new wt(s,t),r)}if(r=!0,n)for(var i=n.length-1;0<=i;i--){var o=e.g=n[i];r=jt(o,s,!0,e)&&r}if(r=jt(o=e.g=t,s,!0,e)&&r,r=jt(o,s,!1,e)&&r,n)for(i=0;inew zt),(t=>t.reset()));class zt{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 Qt(t){_.setTimeout((()=>{throw t}),0)}function Wt(t,e){Gt||function(){var t=_.Promise.resolve(void 0);Gt=function(){t.then(Jt)}}(),Yt||(Gt(),Yt=!0),Xt.add(t,e)}var Yt=!1,Xt=new class{constructor(){this.h=this.g=null}add(t,e){const n=Ht.get();n.set(t,e),this.h?this.h.next=n:this.g=n,this.h=n}};function Jt(){for(var t;t=$t();){try{t.h.call(t.g)}catch(t){Qt(t)}var e=Ht;e.j(t),100>e.h&&(e.h++,t.next=e.g,e.g=t)}Yt=!1}function Zt(t,e){qt.call(this),this.h=t||1,this.g=e||_,this.j=L(this.kb,this),this.l=Date.now()}function te(t){t.da=!1,t.S&&(t.g.clearTimeout(t.S),t.S=null)}function ee(t,e,n){if("function"==typeof t)n&&(t=L(t,n));else{if(!t||"function"!=typeof t.handleEvent)throw Error("Invalid listener argument");t=L(t.handleEvent,t)}return 2147483647{t.g=null,t.i&&(t.i=!1,ne(t))}),t.j);const e=t.h;t.h=null,t.m.apply(null,e)}M(Zt,qt),(E=Zt.prototype).da=!1,E.S=null,E.kb=function(){if(this.da){var t=Date.now()-this.l;0s.length)){var r=s[1];if(Array.isArray(r)&&!(1>r.length)){var i=r[0];if("noop"!=i&&"stop"!=i&&"close"!=i)for(var o=1;oe.length?Le:(e=e.substr(s,n),t.C=s+n,e))}function Ue(t){t.Y=Date.now()+t.P,qe(t,t.P)}function qe(t,e){if(null!=t.B)throw Error("WatchDog timer not null");t.B=we(L(t.eb,t),e)}function Be(t){t.B&&(_.clearTimeout(t.B),t.B=null)}function je(t){0==t.l.G||t.I||ds(t.l,t)}function Ke(t){Be(t);var e=t.L;e&&"function"==typeof e.na&&e.na(),t.L=null,te(t.W),ae(t.V),t.g&&(e=t.g,t.g=null,e.abort(),e.na())}function $e(t,e){try{var n=t.l;if(0!=n.G&&(n.g==t||In(n.i,t)))if(n.I=t.N,!t.J&&In(n.i,t)&&3==n.G){try{var s=n.Ca.g.parse(e)}catch(t){s=null}if(Array.isArray(s)&&3==s.length){var r=s;if(0==r[0]){t:if(!n.u){if(n.g){if(!(n.g.F+3e3r[2]&&n.N&&0==n.A&&!n.v&&(n.v=we(L(n.ab,n),6e3));if(1>=En(n.i)&&n.ka){try{n.ka()}catch(t){}n.ka=void 0}}else gs(n,11)}else if((t.J||n.g==t)&&ls(n),!j(e))for(r=n.Ca.g.parse(e),e=0;eh)&&(3!=h||it||this.g&&(this.h.h||this.g.ga()||Wn(this.g)))){this.I||4!=h||7==e||ge(8==e||0>=l?3:2),Be(this);var n=this.g.ba();this.N=n;e:if(Fe(this)){var s=Wn(this.g);t="";var r=s.length,i=4==Qn(this.g);if(!this.h.i){if("undefined"==typeof TextDecoder){Ke(this),je(this);var o="";break e}this.h.i=new _.TextDecoder}for(e=0;ee)throw Error("Bad port number "+e);t.m=e}else t.m=null}function en(t,e,n){e instanceof fn?(t.h=e,function(t,e){e&&!t.j&&(gn(t),t.i=null,t.g.forEach((function(t,e){var n=e.toLowerCase();e!=n&&(mn(this,e),yn(this,n,t))}),t)),t.j=e}(t.h,t.g)):(n||(e=on(e,ln)),t.h=new fn(e,t.g))}function nn(t,e,n){t.h.set(e,n)}function sn(t){return nn(t,"zx",Math.floor(2147483648*Math.random()).toString(36)+Math.abs(Math.floor(2147483648*Math.random())^Date.now()).toString(36)),t}function rn(t,e){return t?e?decodeURI(t.replace(/%25/g,"%2525")):decodeURIComponent(t):""}function on(t,e,n){return"string"==typeof t?(t=encodeURI(t).replace(e,an),n&&(t=t.replace(/%25([0-9a-fA-F]{2})/g,"%$1")),t):null}function an(t){return"%"+((t=t.charCodeAt(0))>>4&15).toString(16)+(15&t).toString(16)}Ye.prototype.toString=function(){var t=[],e=this.j;e&&t.push(on(e,cn,!0),":");var n=this.i;return(n||"file"==e)&&(t.push("//"),(e=this.s)&&t.push(on(e,cn,!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.i&&"/"!=n.charAt(0)&&t.push("/"),t.push(on(n,"/"==n.charAt(0)?hn:un,!0))),(n=this.h.toString())&&t.push("?",n),(n=this.o)&&t.push("#",on(n,dn)),t.join("")};var cn=/[#\/\?@]/g,un=/[#\?:]/g,hn=/[#\?]/g,ln=/[#\?@]/g,dn=/#/g;function fn(t,e){this.h=this.g=null,this.i=t||null,this.j=!!e}function gn(t){t.g||(t.g=new He,t.h=0,t.i&&function(t,e){if(t){t=t.split("&");for(var n=0;n2*t.i&&ze(t)))}function pn(t,e){return gn(t),e=wn(t,e),Qe(t.g.h,e)}function yn(t,e,n){mn(t,e),0=t.j}function En(t){return t.h?1:t.g?t.g.size:0}function In(t,e){return t.h?t.h==e:!!t.g&&t.g.has(e)}function Sn(t,e){t.g?t.g.add(e):t.h=e}function _n(t,e){t.h&&t.h==e?t.h=null:t.g&&t.g.has(e)&&t.g.delete(e)}function Nn(t){if(null!=t.h)return t.i.concat(t.h.D);if(null!=t.g&&0!==t.g.size){let e=t.i;for(const n of t.g.values())e=e.concat(n.D);return e}return B(t.i)}function An(){}function Dn(){this.g=new An}function xn(t,e,n){const s=n||"";try{Ge(t,(function(t,n){let r=t;D(t)&&(r=Kt(t)),e.push(s+n+"="+encodeURIComponent(r))}))}catch(t){throw e.push(s+"type="+encodeURIComponent("_badmap")),t}}function Cn(t,e,n,s,r){try{e.onload=null,e.onerror=null,e.onabort=null,e.ontimeout=null,r(s)}catch(t){}}function kn(t){this.l=t.$b||null,this.j=t.ib||!1}function Rn(t,e){qt.call(this),this.D=t,this.u=e,this.m=void 0,this.readyState=Ln,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}vn.prototype.cancel=function(){if(this.i=Nn(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()}},An.prototype.stringify=function(t){return _.JSON.stringify(t,void 0)},An.prototype.parse=function(t){return _.JSON.parse(t,void 0)},M(kn,Te),kn.prototype.g=function(){return new Rn(this.l,this.j)},kn.prototype.i=function(t){return function(){return t}}({}),M(Rn,qt);var Ln=0;function On(t){t.j.read().then(t.Sa.bind(t)).catch(t.ha.bind(t))}function Mn(t){t.readyState=4,t.l=null,t.j=null,t.A=null,Fn(t)}function Fn(t){t.onreadystatechange&&t.onreadystatechange.call(t)}(E=Rn.prototype).open=function(t,e){if(this.readyState!=Ln)throw this.abort(),Error("Error reopening a connection");this.C=t,this.B=e,this.readyState=1,Fn(this)},E.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.D||_).fetch(new Request(this.B,e)).then(this.Va.bind(this),this.ha.bind(this))},E.abort=function(){this.response=this.responseText="",this.v=new Headers,this.status=0,this.j&&this.j.cancel("Request was aborted."),1<=this.readyState&&this.g&&4!=this.readyState&&(this.g=!1,Mn(this)),this.readyState=Ln},E.Va=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,Fn(this)),this.g&&(this.readyState=3,Fn(this),this.g)))if("arraybuffer"===this.responseType)t.arrayBuffer().then(this.Ta.bind(this),this.ha.bind(this));else if(void 0!==_.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;On(this)}else t.text().then(this.Ua.bind(this),this.ha.bind(this))},E.Sa=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?Mn(this):Fn(this),3==this.readyState&&On(this)}},E.Ua=function(t){this.g&&(this.response=this.responseText=t,Mn(this))},E.Ta=function(t){this.g&&(this.response=t,Mn(this))},E.ha=function(){this.g&&Mn(this)},E.setRequestHeader=function(t,e){this.v.append(t,e)},E.getResponseHeader=function(t){return this.h&&this.h.get(t.toLowerCase())||""},E.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(Rn.prototype,"withCredentials",{get:function(){return"include"===this.m},set:function(t){this.m=t?"include":"same-origin"}});var Pn=_.JSON.parse;function Vn(t){qt.call(this),this.headers=new He,this.u=t||null,this.h=!1,this.C=this.g=null,this.H="",this.m=0,this.j="",this.l=this.F=this.v=this.D=!1,this.B=0,this.A=null,this.J=Un,this.K=this.L=!1}M(Vn,qt);var Un="",qn=/^https?$/i,Bn=["POST","PUT"];function jn(t){return"content-type"==t.toLowerCase()}function Kn(t,e){t.h=!1,t.g&&(t.l=!0,t.g.abort(),t.l=!1),t.j=e,t.m=5,$n(t),Hn(t)}function $n(t){t.D||(t.D=!0,Bt(t,"complete"),Bt(t,"error"))}function Gn(t){if(t.h&&void 0!==S&&(!t.C[1]||4!=Qn(t)||2!=t.ba()))if(t.v&&4==Qn(t))ee(t.Fa,0,t);else if(Bt(t,"readystatechange"),4==Qn(t)){t.h=!1;try{const a=t.ba();t:switch(a){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 s;if(s=0===a){var r=String(t.H).match(We)[1]||null;if(!r&&_.self&&_.self.location){var i=_.self.location.protocol;r=i.substr(0,i.length-1)}s=!qn.test(r?r.toLowerCase():"")}n=s}if(n)Bt(t,"complete"),Bt(t,"success");else{t.m=6;try{var o=2n)e=Math.max(0,r[o].h-100),i=!1;else try{xn(a,t,"req"+n+"_")}catch(t){s&&s(a)}}if(i){s=t.join("&");break t}}}return t=t.l.splice(0,n),e.D=t,s}function as(t){t.g||t.u||(t.Y=1,Wt(t.Ga,t),t.A=0)}function cs(t){return!(t.g||t.u||3<=t.A)&&(t.Y++,t.u=we(L(t.Ga,t),fs(t,t.A)),t.A++,!0)}function us(t){null!=t.B&&(_.clearTimeout(t.B),t.B=null)}function hs(t){t.g=new xe(t,t.h,"rpc",t.Y),null===t.o&&(t.g.H=t.s),t.g.O=0;var e=Xe(t.oa);nn(e,"RID","rpc"),nn(e,"SID",t.J),nn(e,"CI",t.N?"0":"1"),nn(e,"AID",t.U),is(t,e),nn(e,"TYPE","xmlhttp"),t.o&&t.s&&Yn(e,t.o,t.s),t.K&&t.g.setTimeout(t.K);var n=t.g;t=t.la,n.K=1,n.v=sn(Xe(e)),n.s=null,n.U=!0,Me(n,t)}function ls(t){null!=t.v&&(_.clearTimeout(t.v),t.v=null)}function ds(t,e){var n=null;if(t.g==e){ls(t),us(t),t.g=null;var s=2}else{if(!In(t.i,e))return;n=e.D,_n(t.i,e),s=1}if(t.I=e.N,0!=t.G)if(e.i)if(1==s){n=e.s?e.s.length:0,e=Date.now()-e.F;var r=t.C;Bt(s=de(),new ye(s,n,e,r)),ss(t)}else as(t);else if(3==(r=e.o)||0==r&&0=t.i.j-(t.m?1:0)||(t.m?(t.l=e.D.concat(t.l),0):1==t.G||2==t.G||t.C>=(t.Xa?0:t.Ya)||(t.m=we(L(t.Ha,t,e),fs(t,t.C)),t.C++,0)))}(t,e)||2==s&&cs(t)))switch(n&&0e?null:"string"==typeof t?t.charAt(e):t[e]}(r.T()),n=_.FormData&&t instanceof _.FormData,!(0<=V(Bn,e))||s||n||r.set("Content-Type","application/x-www-form-urlencoded;charset=utf-8"),r.forEach((function(t,e){this.g.setRequestHeader(e,t)}),this),this.J&&(this.g.responseType=this.J),"withCredentials"in this.g&&this.g.withCredentials!==this.L&&(this.g.withCredentials=this.L);try{zn(this),0=this.O)){var t=2*this.O;this.h.info("BP detection timer enabled: "+t),this.B=we(L(this.bb,this),t)}},E.bb=function(){this.B&&(this.B=null,this.h.info("BP detection timeout reached."),this.h.info("Buffering proxy detected and switch to long-polling!"),this.N=!1,this.L=!0,pe(10),ts(this),hs(this))},E.ab=function(){null!=this.v&&(this.v=null,ts(this),cs(this),pe(19))},E.jb=function(t){t?(this.h.info("Successfully pinged google.com"),pe(2)):(this.h.info("Failed to ping google.com"),pe(1))},(E=ws.prototype).xa=function(){},E.wa=function(){},E.va=function(){},E.ua=function(){},E.Oa=function(){},vs.prototype.g=function(t,e){return new bs(t,e)},M(bs,qt),bs.prototype.m=function(){this.g.j=this.j,this.A&&(this.g.H=!0);var t=this.g,e=this.l,n=this.h||void 0;t.Wa&&(t.h.info("Origin Trials enabled."),Wt(L(t.hb,t,e))),pe(0),t.W=e,t.aa=n||{},t.N=t.X,t.F=ps(t,null,t.W),ss(t)},bs.prototype.close=function(){Zn(this.g)},bs.prototype.u=function(t){if("string"==typeof t){var e={};e.__data__=t,ns(this.g,e)}else this.v?((e={}).__data__=Kt(t),ns(this.g,e)):ns(this.g,t)},bs.prototype.M=function(){this.g.j=null,delete this.j,Zn(this.g),delete this.g,bs.Z.M.call(this)},M(Ts,Ne),M(Es,Ae),M(Is,ws),Is.prototype.xa=function(){Bt(this.g,"a")},Is.prototype.wa=function(t){Bt(this.g,new Ts(t))},Is.prototype.va=function(t){Bt(this.g,new Es(t))},Is.prototype.ua=function(){Bt(this.g,"b")},vs.prototype.createWebChannel=vs.prototype.g,bs.prototype.send=bs.prototype.u,bs.prototype.open=bs.prototype.m,bs.prototype.close=bs.prototype.close,ve.NO_ERROR=0,ve.TIMEOUT=8,ve.HTTP_ERROR=6,be.COMPLETE="complete",Ie.EventType=_e,_e.OPEN="a",_e.CLOSE="b",_e.ERROR="c",_e.MESSAGE="d",qt.prototype.listen=qt.prototype.N,Vn.prototype.listenOnce=Vn.prototype.O,Vn.prototype.getLastError=Vn.prototype.La,Vn.prototype.getLastErrorCode=Vn.prototype.Da,Vn.prototype.getStatus=Vn.prototype.ba,Vn.prototype.getResponseJson=Vn.prototype.Qa,Vn.prototype.getResponseText=Vn.prototype.ga,Vn.prototype.send=Vn.prototype.ea;var Ss=ve,_s=be,Ns=he,As=10,Ds=11,xs=kn,Cs=Ie,ks=Vn;const Rs="@firebase/firestore"; +/** + * @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 Ls{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}}Ls.UNAUTHENTICATED=new Ls(null),Ls.GOOGLE_CREDENTIALS=new Ls("google-credentials-uid"),Ls.FIRST_PARTY=new Ls("first-party-uid"),Ls.MOCK_USER=new Ls("mock-user"); +/** + * @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. + */ +let Os="9.3.0"; +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */const Ms=new class{constructor(t){this.name=t,this._logLevel=v,this._logHandler=T,this._userLogHandler=null}get logLevel(){return this._logLevel}set logLevel(t){if(!(t in p))throw new TypeError(`Invalid value "${t}" assigned to \`logLevel\``);this._logLevel=t}setLogLevel(t){this._logLevel="string"==typeof t?w[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,p.DEBUG,...t),this._logHandler(this,p.DEBUG,...t)}log(...t){this._userLogHandler&&this._userLogHandler(this,p.VERBOSE,...t),this._logHandler(this,p.VERBOSE,...t)}info(...t){this._userLogHandler&&this._userLogHandler(this,p.INFO,...t),this._logHandler(this,p.INFO,...t)}warn(...t){this._userLogHandler&&this._userLogHandler(this,p.WARN,...t),this._logHandler(this,p.WARN,...t)}error(...t){this._userLogHandler&&this._userLogHandler(this,p.ERROR,...t),this._logHandler(this,p.ERROR,...t)}}("@firebase/firestore");function Fs(){return Ms.logLevel}function Ps(t){Ms.setLogLevel(t)}function Vs(t,...e){if(Ms.logLevel<=p.DEBUG){const n=e.map(Bs);Ms.debug(`Firestore (${Os}): ${t}`,...n)}}function Us(t,...e){if(Ms.logLevel<=p.ERROR){const n=e.map(Bs);Ms.error(`Firestore (${Os}): ${t}`,...n)}}function qs(t,...e){if(Ms.logLevel<=p.WARN){const n=e.map(Bs);Ms.warn(`Firestore (${Os}): ${t}`,...n)}}function Bs(t){if("string"==typeof t)return t;try{return e=t,JSON.stringify(e)}catch(e){return t} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */var e} +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */function js(t="Unexpected state"){const e=`FIRESTORE (${Os}) INTERNAL ASSERTION FAILED: `+t;throw Us(e),new Error(e)}function Ks(t,e){t||js()}function $s(t,e){t||js()}function Gs(t,e){return t} +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */const Hs={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 zs extends Error{constructor(t,e){super(e),this.code=t,this.message=e,this.name="FirebaseError",this.toString=()=>`${this.name}: [code=${this.code}]: ${this.message}`}} +/** + * @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 Qs{constructor(){this.promise=new Promise(((t,e)=>{this.resolve=t,this.reject=e}))}} +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */class Ws{constructor(t,e){this.user=e,this.type="OAuth",this.authHeaders={},this.authHeaders.Authorization=`Bearer ${t}`}}class Ys{getToken(){return Promise.resolve(null)}invalidateToken(){}start(t,e){t.enqueueRetryable((()=>e(Ls.UNAUTHENTICATED)))}shutdown(){}}class Xs{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 Js{constructor(t){this.t=t,this.currentUser=Ls.UNAUTHENTICATED,this.i=0,this.forceRefresh=!1,this.auth=null}start(t,e){let n=this.i;const s=t=>this.i!==n?(n=this.i,e(t)):Promise.resolve();let r=new Qs;this.o=()=>{this.i++,this.currentUser=this.u(),r.resolve(),r=new Qs,t.enqueueRetryable((()=>s(this.currentUser)))};const i=()=>{const e=r;t.enqueueRetryable((async()=>{await e.promise,await s(this.currentUser)}))},o=t=>{Vs("FirebaseCredentialsProvider","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):(Vs("FirebaseCredentialsProvider","Auth not yet detected"),r.resolve(),r=new Qs)}}),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?(Vs("FirebaseCredentialsProvider","getToken aborted due to token change."),this.getToken()):e?(Ks("string"==typeof e.accessToken),new Ws(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 Ks(null===t||"string"==typeof t),new Ls(t)}}class Zs{constructor(t,e,n){this.h=t,this.l=e,this.m=n,this.type="FirstParty",this.user=Ls.FIRST_PARTY}get authHeaders(){const t={"X-Goog-AuthUser":this.l},e=this.h.auth.getAuthHeaderValueForFirstParty([]);return e&&(t.Authorization=e),this.m&&(t["X-Goog-Iam-Authorization-Token"]=this.m),t}}class tr{constructor(t,e,n){this.h=t,this.l=e,this.m=n}getToken(){return Promise.resolve(new Zs(this.h,this.l,this.m))}start(t,e){t.enqueueRetryable((()=>e(Ls.FIRST_PARTY)))}shutdown(){}invalidateToken(){}} +/** + * @license + * Copyright 2018 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */class er{constructor(t,e){this.previousValue=t,e&&(e.sequenceNumberHandler=t=>this.g(t),this.p=t=>e.writeSequenceNumber(t))}g(t){return this.previousValue=Math.max(t,this.previousValue),this.previousValue}next(){const t=++this.previousValue;return this.p&&this.p(t),t}} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */function nr(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 ir(t,e,n){return t.length===e.length&&t.every(((t,s)=>n(t,e[s])))}function or(t){return t+"\0"} +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */class ar{constructor(t,e){if(this.seconds=t,this.nanoseconds=e,e<0)throw new zs(Hs.INVALID_ARGUMENT,"Timestamp nanoseconds out of range: "+e);if(e>=1e9)throw new zs(Hs.INVALID_ARGUMENT,"Timestamp nanoseconds out of range: "+e);if(t<-62135596800)throw new zs(Hs.INVALID_ARGUMENT,"Timestamp seconds out of range: "+t);if(t>=253402300800)throw new zs(Hs.INVALID_ARGUMENT,"Timestamp seconds out of range: "+t)}static now(){return ar.fromMillis(Date.now())}static fromDate(t){return ar.fromMillis(t.getTime())}static fromMillis(t){const e=Math.floor(t/1e3),n=Math.floor(1e6*(t-1e3*e));return new ar(e,n)}toDate(){return new Date(this.toMillis())}toMillis(){return 1e3*this.seconds+this.nanoseconds/1e6}_compareTo(t){return this.seconds===t.seconds?rr(this.nanoseconds,t.nanoseconds):rr(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")}} +/** + * @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 cr{constructor(t){this.timestamp=t}static fromTimestamp(t){return new cr(t)}static min(){return new cr(new ar(0,0))}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}} +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */function ur(t){let e=0;for(const n in t)Object.prototype.hasOwnProperty.call(t,n)&&e++;return e}function hr(t,e){for(const n in t)Object.prototype.hasOwnProperty.call(t,n)&&e(n,t[n])}function lr(t){for(const e in t)if(Object.prototype.hasOwnProperty.call(t,e))return!1;return!0} +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */class dr{constructor(t,e,n){void 0===e?e=0:e>t.length&&js(),void 0===n?n=t.length-e:n>t.length-e&&js(),this.segments=t,this.offset=e,this.len=n}get length(){return this.len}isEqual(t){return 0===dr.comparator(this,t)}child(t){const e=this.segments.slice(this.offset,this.limit());return t instanceof dr?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.lengthr)return 1}return t.lengthe.length?1:0}}class fr extends dr{construct(t,e,n){return new fr(t,e,n)}canonicalString(){return this.toArray().join("/")}toString(){return this.canonicalString()}static fromString(...t){const e=[];for(const n of t){if(n.indexOf("//")>=0)throw new zs(Hs.INVALID_ARGUMENT,`Invalid segment (${n}). Paths must not contain // in them.`);e.push(...n.split("/").filter((t=>t.length>0)))}return new fr(e)}static emptyPath(){return new fr([])}}const gr=/^[_a-zA-Z][_a-zA-Z0-9]*$/;class mr extends dr{construct(t,e,n){return new mr(t,e,n)}static isValidIdentifier(t){return gr.test(t)}canonicalString(){return this.toArray().map((t=>(t=t.replace(/\\/g,"\\\\").replace(/`/g,"\\`"),mr.isValidIdentifier(t)||(t="`"+t+"`"),t))).join(".")}toString(){return this.canonicalString()}isKeyField(){return 1===this.length&&"__name__"===this.get(0)}static keyField(){return new mr(["__name__"])}static fromServerFormat(t){const e=[];let n="",s=0;const r=()=>{if(0===n.length)throw new zs(Hs.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(;st.isEqual(e)))}} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */function yr(){return"undefined"!=typeof atob} +/** + * @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. + */class wr{constructor(t){this.binaryString=t}static fromBase64String(t){const e=atob(t);return new wr(e)}static fromUint8Array(t){const e=function(t){let e="";for(let n=0;n=Number.MIN_SAFE_INTEGER} +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */class xr{constructor(t){this.path=t}static fromPath(t){return new xr(fr.fromString(t))}static fromName(t){return new xr(fr.fromString(t).popFirst(5))}hasCollectionId(t){return this.path.length>=2&&this.path.get(this.path.length-2)===t}isEqual(t){return null!==t&&0===fr.comparator(this.path,t.path)}toString(){return this.path.toString()}static comparator(t,e){return fr.comparator(t.path,e.path)}static isDocumentKey(t){return t.length%2==0}static fromSegments(t){return new xr(new fr(t.slice()))}} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */function Cr(t){return"nullValue"in t?0:"booleanValue"in t?1:"integerValue"in t||"doubleValue"in t?2:"timestampValue"in t?3:"stringValue"in t?5:"bytesValue"in t?6:"referenceValue"in t?7:"geoPointValue"in t?8:"arrayValue"in t?9:"mapValue"in t?Ir(t)?4:10:js()}function kr(t,e){const n=Cr(t);if(n!==Cr(e))return!1;switch(n){case 0:return!0;case 1:return t.booleanValue===e.booleanValue;case 4:return _r(t).isEqual(_r(e));case 3:return function(t,e){if("string"==typeof t.timestampValue&&"string"==typeof e.timestampValue&&t.timestampValue.length===e.timestampValue.length)return t.timestampValue===e.timestampValue;const n=br(t.timestampValue),s=br(e.timestampValue);return n.seconds===s.seconds&&n.nanos===s.nanos}(t,e);case 5:return t.stringValue===e.stringValue;case 6:return function(t,e){return Er(t.bytesValue).isEqual(Er(e.bytesValue))}(t,e);case 7:return t.referenceValue===e.referenceValue;case 8:return function(t,e){return Tr(t.geoPointValue.latitude)===Tr(e.geoPointValue.latitude)&&Tr(t.geoPointValue.longitude)===Tr(e.geoPointValue.longitude)}(t,e);case 2:return function(t,e){if("integerValue"in t&&"integerValue"in e)return Tr(t.integerValue)===Tr(e.integerValue);if("doubleValue"in t&&"doubleValue"in e){const n=Tr(t.doubleValue),s=Tr(e.doubleValue);return n===s?Ar(n)===Ar(s):isNaN(n)&&isNaN(s)}return!1}(t,e);case 9:return ir(t.arrayValue.values||[],e.arrayValue.values||[],kr);case 10:return function(t,e){const n=t.mapValue.fields||{},s=e.mapValue.fields||{};if(ur(n)!==ur(s))return!1;for(const t in n)if(n.hasOwnProperty(t)&&(void 0===s[t]||!kr(n[t],s[t])))return!1;return!0}(t,e);default:return js()}}function Rr(t,e){return void 0!==(t.values||[]).find((t=>kr(t,e)))}function Lr(t,e){const n=Cr(t),s=Cr(e);if(n!==s)return rr(n,s);switch(n){case 0:return 0;case 1:return rr(t.booleanValue,e.booleanValue);case 2:return function(t,e){const n=Tr(t.integerValue||t.doubleValue),s=Tr(e.integerValue||e.doubleValue);return ns?1:n===s?0:isNaN(n)?isNaN(s)?0:-1:1}(t,e);case 3:return Or(t.timestampValue,e.timestampValue);case 4:return Or(_r(t),_r(e));case 5:return rr(t.stringValue,e.stringValue);case 6:return function(t,e){const n=Er(t),s=Er(e);return n.compareTo(s)}(t.bytesValue,e.bytesValue);case 7:return function(t,e){const n=t.split("/"),s=e.split("/");for(let t=0;te.mapValue.fields[t]=Kr(n))),e}if(t.arrayValue){const e={arrayValue:{values:[]}};for(let n=0;n<(t.arrayValue.values||[]).length;++n)e.arrayValue.values[n]=Kr(t.arrayValue.values[n]);return e}return Object.assign({},t)} +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */class $r{constructor(t){this.value=t}static empty(){return new $r({mapValue:{}})}field(t){if(t.isEmpty())return this.value;{let e=this.value;for(let n=0;n{if(!e.isImmediateParentOf(r)){const t=this.getFieldsMap(e);this.applyChanges(t,n,s),n={},s=[],e=r.popLast()}t?n[r.lastSegment()]=Kr(t):s.push(r.lastSegment())}));const r=this.getFieldsMap(e);this.applyChanges(r,n,s)}delete(t){const e=this.field(t.popLast());jr(e)&&e.mapValue.fields&&delete e.mapValue.fields[t.lastSegment()]}isEqual(t){return kr(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 $r(Kr(this.value))}}function Gr(t){const e=[];return hr(t.fields,((t,n)=>{const s=new mr([t]);if(jr(n)){const t=Gr(n.mapValue).fields;if(0===t.length)e.push(s);else for(const n of t)e.push(s.child(n))}else e.push(s)})),new pr(e) +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */}class Hr{constructor(t,e,n,s,r){this.key=t,this.documentType=e,this.version=n,this.data=s,this.documentState=r}static newInvalidDocument(t){return new Hr(t,0,cr.min(),$r.empty(),0)}static newFoundDocument(t,e,n){return new Hr(t,1,e,n,0)}static newNoDocument(t,e){return new Hr(t,2,e,$r.empty(),0)}static newUnknownDocument(t,e){return new Hr(t,3,e,$r.empty(),2)}convertToFoundDocument(t,e){return this.version=t,this.documentType=1,this.data=e,this.documentState=0,this}convertToNoDocument(t){return this.version=t,this.documentType=2,this.data=$r.empty(),this.documentState=0,this}convertToUnknownDocument(t){return this.version=t,this.documentType=3,this.data=$r.empty(),this.documentState=2,this}setHasCommittedMutations(){return this.documentState=2,this}setHasLocalMutations(){return this.documentState=1,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 Hr&&this.key.isEqual(t.key)&&this.version.isEqual(t.version)&&this.documentType===t.documentType&&this.documentState===t.documentState&&this.data.isEqual(t.data)}clone(){return new Hr(this.key,this.documentType,this.version,this.data.clone(),this.documentState)}toString(){return`Document(${this.key}, ${this.version}, ${JSON.stringify(this.data.value)}, {documentType: ${this.documentType}}), {documentState: ${this.documentState}})`}} +/** + * @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 zr{constructor(t,e=null,n=[],s=[],r=null,i=null,o=null){this.path=t,this.collectionGroup=e,this.orderBy=n,this.filters=s,this.limit=r,this.startAt=i,this.endAt=o,this.A=null}}function Qr(t,e=null,n=[],s=[],r=null,i=null,o=null){return new zr(t,e,n,s,r,i,o)}function Wr(t){const e=Gs(t);if(null===e.A){let t=e.path.canonicalString();null!==e.collectionGroup&&(t+="|cg:"+e.collectionGroup),t+="|f:",t+=e.filters.map((t=>function(t){return t.field.canonicalString()+t.op.toString()+Mr(t.value)}(t))).join(","),t+="|ob:",t+=e.orderBy.map((t=>function(t){return t.field.canonicalString()+t.dir}(t))).join(","),Nr(e.limit)||(t+="|l:",t+=e.limit),e.startAt&&(t+="|lb:",t+=ci(e.startAt)),e.endAt&&(t+="|ub:",t+=ci(e.endAt)),e.A=t}return e.A}function Yr(t,e){if(t.limit!==e.limit)return!1;if(t.orderBy.length!==e.orderBy.length)return!1;for(let n=0;n":return t>0;case">=":return t>=0;default:return js()}}v(){return["<","<=",">",">=","!=","not-in"].indexOf(this.op)>=0}}class Zr extends Jr{constructor(t,e,n){super(t,e,n),this.key=xr.fromName(n.referenceValue)}matches(t){const e=xr.comparator(t.key,this.key);return this.P(e)}}class ti extends Jr{constructor(t,e){super(t,"in",e),this.keys=ni("in",e)}matches(t){return this.keys.some((e=>e.isEqual(t.key)))}}class ei extends Jr{constructor(t,e){super(t,"not-in",e),this.keys=ni("not-in",e)}matches(t){return!this.keys.some((e=>e.isEqual(t.key)))}}function ni(t,e){var n;return((null===(n=e.arrayValue)||void 0===n?void 0:n.values)||[]).map((t=>xr.fromName(t.referenceValue)))}class si extends Jr{constructor(t,e){super(t,"array-contains",e)}matches(t){const e=t.data.field(this.field);return Ur(e)&&Rr(e.arrayValue,this.value)}}class ri extends Jr{constructor(t,e){super(t,"in",e)}matches(t){const e=t.data.field(this.field);return null!==e&&Rr(this.value.arrayValue,e)}}class ii extends Jr{constructor(t,e){super(t,"not-in",e)}matches(t){if(Rr(this.value.arrayValue,{nullValue:"NULL_VALUE"}))return!1;const e=t.data.field(this.field);return null!==e&&!Rr(this.value.arrayValue,e)}}class oi extends Jr{constructor(t,e){super(t,"array-contains-any",e)}matches(t){const e=t.data.field(this.field);return!(!Ur(e)||!e.arrayValue.values)&&e.arrayValue.values.some((t=>Rr(this.value.arrayValue,t)))}}class ai{constructor(t,e){this.position=t,this.before=e}}function ci(t){return`${t.before?"b":"a"}:${t.position.map((t=>Mr(t))).join(",")}`}class ui{constructor(t,e="asc"){this.field=t,this.dir=e}}function hi(t,e){return t.dir===e.dir&&t.field.isEqual(e.field)}function li(t,e,n){let s=0;for(let r=0;r0?t.explicitOrderBy[0].field:null}function vi(t){for(const e of t.filters)if(e.v())return e.field;return null}function bi(t){return null!==t.collectionGroup}function Ti(t){const e=Gs(t);if(null===e.V){e.V=[];const t=vi(e),n=wi(e);if(null!==t&&null===n)t.isKeyField()||e.V.push(new ui(t)),e.V.push(new ui(mr.keyField(),"asc"));else{let t=!1;for(const n of e.explicitOrderBy)e.V.push(n),n.field.isKeyField()&&(t=!0);if(!t){const t=e.explicitOrderBy.length>0?e.explicitOrderBy[e.explicitOrderBy.length-1].dir:"asc";e.V.push(new ui(mr.keyField(),t))}}}return e.V}function Ei(t){const e=Gs(t);if(!e.S)if("F"===e.limitType)e.S=Qr(e.path,e.collectionGroup,Ti(e),e.filters,e.limit,e.startAt,e.endAt);else{const t=[];for(const n of Ti(e)){const e="desc"===n.dir?"asc":"desc";t.push(new ui(n.field,e))}const n=e.endAt?new ai(e.endAt.position,!e.endAt.before):null,s=e.startAt?new ai(e.startAt.position,!e.startAt.before):null;e.S=Qr(e.path,e.collectionGroup,t,e.filters,e.limit,n,s)}return e.S}function Ii(t,e,n){return new fi(t.path,t.collectionGroup,t.explicitOrderBy.slice(),t.filters.slice(),e,n,t.startAt,t.endAt)}function Si(t,e){return Yr(Ei(t),Ei(e))&&t.limitType===e.limitType}function _i(t){return`${Wr(Ei(t))}|lt:${t.limitType}`}function Ni(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=>{var e;return`${(e=t).field.canonicalString()} ${e.op} ${Mr(e.value)}`})).join(", ")}]`),Nr(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: "+ci(t.startAt)),t.endAt&&(e+=", endAt: "+ci(t.endAt)),`Target(${e})`}(Ei(t))}; limitType=${t.limitType})`}function Ai(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):xr.isDocumentKey(t.path)?t.path.isEqual(n):t.path.isImmediateParentOf(n)}(t,e)&&function(t,e){for(const n of t.explicitOrderBy)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&&!li(t.startAt,Ti(t),e))&&(!t.endAt||!li(t.endAt,Ti(t),e))}(t,e)}function Di(t){return(e,n)=>{let s=!1;for(const r of Ti(t)){const t=xi(r,e,n);if(0!==t)return t;s=s||r.field.isKeyField()}return 0}}function xi(t,e,n){const s=t.field.isKeyField()?xr.comparator(e.key,n.key):function(t,e,n){const s=e.data.field(t),r=n.data.field(t);return null!==s&&null!==r?Lr(s,r):js()}(t.field,e,n);switch(t.dir){case"asc":return s;case"desc":return-1*s;default:return 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. + */function Ci(t,e){if(t.D){if(isNaN(e))return{doubleValue:"NaN"};if(e===1/0)return{doubleValue:"Infinity"};if(e===-1/0)return{doubleValue:"-Infinity"}}return{doubleValue:Ar(e)?"-0":e}}function ki(t){return{integerValue:""+t}}function Ri(t,e){return Dr(e)?ki(e):Ci(t,e)} +/** + * @license + * Copyright 2018 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */class Li{constructor(){this._=void 0}}function Oi(t,e,n){return t instanceof Pi?function(t,e){const n={fields:{__type__:{stringValue:"server_timestamp"},__local_write_time__:{timestampValue:{seconds:t.seconds,nanos:t.nanoseconds}}}};return e&&(n.fields.__previous_value__=e),{mapValue:n}}(n,e):t instanceof Vi?Ui(t,e):t instanceof qi?Bi(t,e):function(t,e){const n=Fi(t,e),s=Ki(n)+Ki(t.C);return Vr(n)&&Vr(t.C)?ki(s):Ci(t.N,s)}(t,e)}function Mi(t,e,n){return t instanceof Vi?Ui(t,e):t instanceof qi?Bi(t,e):n}function Fi(t,e){var n;return t instanceof ji?Vr(n=e)||function(t){return!!t&&"doubleValue"in t}(n)?e:{integerValue:0}:null}class Pi extends Li{}class Vi extends Li{constructor(t){super(),this.elements=t}}function Ui(t,e){const n=$i(e);for(const e of t.elements)n.some((t=>kr(t,e)))||n.push(e);return{arrayValue:{values:n}}}class qi extends Li{constructor(t){super(),this.elements=t}}function Bi(t,e){let n=$i(e);for(const e of t.elements)n=n.filter((t=>!kr(t,e)));return{arrayValue:{values:n}}}class ji extends Li{constructor(t,e){super(),this.N=t,this.C=e}}function Ki(t){return Tr(t.integerValue||t.doubleValue)}function $i(t){return Ur(t)&&t.arrayValue.values?t.arrayValue.values.slice():[]} +/** + * @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 Gi{constructor(t,e){this.field=t,this.transform=e}}class Hi{constructor(t,e){this.version=t,this.transformResults=e}}class zi{constructor(t,e){this.updateTime=t,this.exists=e}static none(){return new zi}static exists(t){return new zi(void 0,t)}static updateTime(t){return new zi(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 Qi(t,e){return void 0!==t.updateTime?e.isFoundDocument()&&e.version.isEqual(t.updateTime):void 0===t.exists||t.exists===e.isFoundDocument()}class Wi{}function Yi(t,e,n){t instanceof eo?function(t,e,n){const s=t.value.clone(),r=ro(t.fieldTransforms,e,n.transformResults);s.setAll(r),e.convertToFoundDocument(n.version,s).setHasCommittedMutations()}(t,e,n):t instanceof no?function(t,e,n){if(!Qi(t.precondition,e))return void e.convertToUnknownDocument(n.version);const s=ro(t.fieldTransforms,e,n.transformResults),r=e.data;r.setAll(so(t)),r.setAll(s),e.convertToFoundDocument(n.version,r).setHasCommittedMutations()}(t,e,n):function(t,e,n){e.convertToNoDocument(n.version).setHasCommittedMutations()}(0,e,n)}function Xi(t,e,n){t instanceof eo?function(t,e,n){if(!Qi(t.precondition,e))return;const s=t.value.clone(),r=io(t.fieldTransforms,n,e);s.setAll(r),e.convertToFoundDocument(to(e),s).setHasLocalMutations()}(t,e,n):t instanceof no?function(t,e,n){if(!Qi(t.precondition,e))return;const s=io(t.fieldTransforms,n,e),r=e.data;r.setAll(so(t)),r.setAll(s),e.convertToFoundDocument(to(e),r).setHasLocalMutations()}(t,e,n):function(t,e){Qi(t.precondition,e)&&e.convertToNoDocument(cr.min())}(t,e)}function Ji(t,e){let n=null;for(const s of t.fieldTransforms){const t=e.data.field(s.field),r=Fi(s.transform,t||null);null!=r&&(null==n&&(n=$r.empty()),n.set(s.field,r))}return n||null}function Zi(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)&&ir(t,e,((t,e)=>function(t,e){return t.field.isEqual(e.field)&&function(t,e){return t instanceof Vi&&e instanceof Vi||t instanceof qi&&e instanceof qi?ir(t.elements,e.elements,kr):t instanceof ji&&e instanceof ji?kr(t.C,e.C):t instanceof Pi&&e instanceof Pi}(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))}function to(t){return t.isFoundDocument()?t.version:cr.min()}class eo extends Wi{constructor(t,e,n,s=[]){super(),this.key=t,this.value=e,this.precondition=n,this.fieldTransforms=s,this.type=0}}class no extends Wi{constructor(t,e,n,s,r=[]){super(),this.key=t,this.data=e,this.fieldMask=n,this.precondition=s,this.fieldTransforms=r,this.type=1}}function so(t){const e=new Map;return t.fieldMask.fields.forEach((n=>{if(!n.isEmpty()){const s=t.data.field(n);e.set(n,s)}})),e}function ro(t,e,n){const s=new Map;Ks(t.length===n.length);for(let r=0;r0&&(e=e.right)}return null}indexOf(t){let e=0,n=this.root;for(;!n.isEmpty();){const s=this.comparator(t,n.key);if(0===s)return e+n.left.size;s<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 mo(this.root,null,this.comparator,!1)}getIteratorFrom(t){return new mo(this.root,t,this.comparator,!1)}getReverseIterator(){return new mo(this.root,null,this.comparator,!0)}getReverseIteratorFrom(t){return new mo(this.root,t,this.comparator,!0)}}class mo{constructor(t,e,n,s){this.isReverse=s,this.nodeStack=[];let r=1;for(;!t.isEmpty();)if(r=e?n(t.key,e):1,s&&(r*=-1),r<0)t=this.isReverse?t.left:t.right;else{if(0===r){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 po{constructor(t,e,n,s,r){this.key=t,this.value=e,this.color=null!=n?n:po.RED,this.left=null!=s?s:po.EMPTY,this.right=null!=r?r:po.EMPTY,this.size=this.left.size+1+this.right.size}copy(t,e,n,s,r){return new po(null!=t?t:this.key,null!=e?e:this.value,null!=n?n:this.color,null!=s?s:this.left,null!=r?r: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 s=this;const r=n(t,s.key);return s=r<0?s.copy(null,null,null,s.left.insert(t,e,n),null):0===r?s.copy(null,e,null,null,null):s.copy(null,null,null,null,s.right.insert(t,e,n)),s.fixUp()}removeMin(){if(this.left.isEmpty())return po.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,s=this;if(e(t,s.key)<0)s.left.isEmpty()||s.left.isRed()||s.left.left.isRed()||(s=s.moveRedLeft()),s=s.copy(null,null,null,s.left.remove(t,e),null);else{if(s.left.isRed()&&(s=s.rotateRight()),s.right.isEmpty()||s.right.isRed()||s.right.left.isRed()||(s=s.moveRedRight()),0===e(t,s.key)){if(s.right.isEmpty())return po.EMPTY;n=s.right.min(),s=s.copy(n.key,n.value,null,null,s.right.removeMin())}s=s.copy(null,null,null,null,s.right.remove(t,e))}return s.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,po.RED,null,this.right.left);return this.right.copy(null,null,this.color,t,null)}rotateRight(){const t=this.copy(null,null,po.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 js();if(this.right.isRed())throw js();const t=this.left.check();if(t!==this.right.check())throw js();return t+(this.isRed()?0:1)}}po.EMPTY=null,po.RED=!0,po.BLACK=!1,po.EMPTY=new class{constructor(){this.size=0}get key(){throw js()}get value(){throw js()}get color(){throw js()}get left(){throw js()}get right(){throw js()}copy(t,e,n,s,r){return this}insert(t,e,n){return new po(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}}; +/** + * @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 yo{constructor(t){this.comparator=t,this.data=new go(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 s=n.getNext();if(this.comparator(s.key,t[1])>=0)return;e(s.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 wo(this.data.getIterator())}getIteratorFrom(t){return new wo(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 yo))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,s=n.getNext().key;if(0!==this.comparator(t,s))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 yo(this.comparator);return e.data=t,e}}class wo{constructor(t){this.iter=t}getNext(){return this.iter.getNext().key}hasNext(){return this.iter.hasNext()}} +/** + * @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 vo=new go(xr.comparator);function bo(){return vo}const To=new go(xr.comparator);function Eo(){return To}const Io=new go(xr.comparator);function So(){return Io}const _o=new yo(xr.comparator);function No(...t){let e=_o;for(const n of t)e=e.add(n);return e}const Ao=new yo(rr);function Do(){return Ao} +/** + * @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 xo{constructor(t,e,n,s,r){this.snapshotVersion=t,this.targetChanges=e,this.targetMismatches=n,this.documentUpdates=s,this.resolvedLimboDocuments=r}static createSynthesizedRemoteEventForCurrentChange(t,e){const n=new Map;return n.set(t,Co.createSynthesizedTargetChangeForCurrentChange(t,e)),new xo(cr.min(),n,Do(),bo(),No())}}class Co{constructor(t,e,n,s,r){this.resumeToken=t,this.current=e,this.addedDocuments=n,this.modifiedDocuments=s,this.removedDocuments=r}static createSynthesizedTargetChangeForCurrentChange(t,e){return new Co(wr.EMPTY_BYTE_STRING,e,No(),No(),No())}} +/** + * @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 ko{constructor(t,e,n,s){this.k=t,this.removedTargetIds=e,this.key=n,this.$=s}}class Ro{constructor(t,e){this.targetId=t,this.O=e}}class Lo{constructor(t,e,n=wr.EMPTY_BYTE_STRING,s=null){this.state=t,this.targetIds=e,this.resumeToken=n,this.cause=s}}class Oo{constructor(){this.F=0,this.M=Po(),this.L=wr.EMPTY_BYTE_STRING,this.B=!1,this.U=!0}get current(){return this.B}get resumeToken(){return this.L}get q(){return 0!==this.F}get K(){return this.U}j(t){t.approximateByteSize()>0&&(this.U=!0,this.L=t)}W(){let t=No(),e=No(),n=No();return this.M.forEach(((s,r)=>{switch(r){case 0:t=t.add(s);break;case 2:e=e.add(s);break;case 1:n=n.add(s);break;default:js()}})),new Co(this.L,this.B,t,e,n)}G(){this.U=!1,this.M=Po()}H(t,e){this.U=!0,this.M=this.M.insert(t,e)}J(t){this.U=!0,this.M=this.M.remove(t)}Y(){this.F+=1}X(){this.F-=1}Z(){this.U=!0,this.B=!0}}class Mo{constructor(t){this.tt=t,this.et=new Map,this.nt=bo(),this.st=Fo(),this.it=new yo(rr)}rt(t){for(const e of t.k)t.$&&t.$.isFoundDocument()?this.ot(e,t.$):this.ct(e,t.key,t.$);for(const e of t.removedTargetIds)this.ct(e,t.key,t.$)}at(t){this.forEachTarget(t,(e=>{const n=this.ut(e);switch(t.state){case 0:this.ht(e)&&n.j(t.resumeToken);break;case 1:n.X(),n.q||n.G(),n.j(t.resumeToken);break;case 2:n.X(),n.q||this.removeTarget(e);break;case 3:this.ht(e)&&(n.Z(),n.j(t.resumeToken));break;case 4:this.ht(e)&&(this.lt(e),n.j(t.resumeToken));break;default:js()}}))}forEachTarget(t,e){t.targetIds.length>0?t.targetIds.forEach(e):this.et.forEach(((t,n)=>{this.ht(n)&&e(n)}))}ft(t){const e=t.targetId,n=t.O.count,s=this.dt(e);if(s){const t=s.target;if(Xr(t))if(0===n){const n=new xr(t.path);this.ct(e,n,Hr.newNoDocument(n,cr.min()))}else Ks(1===n);else this.wt(e)!==n&&(this.lt(e),this.it=this.it.add(e))}}_t(t){const e=new Map;this.et.forEach(((n,s)=>{const r=this.dt(s);if(r){if(n.current&&Xr(r.target)){const e=new xr(r.target.path);null!==this.nt.get(e)||this.gt(s,e)||this.ct(s,e,Hr.newNoDocument(e,t))}n.K&&(e.set(s,n.W()),n.G())}}));let n=No();this.st.forEach(((t,e)=>{let s=!0;e.forEachWhile((t=>{const e=this.dt(t);return!e||2===e.purpose||(s=!1,!1)})),s&&(n=n.add(t))}));const s=new xo(t,e,this.it,this.nt,n);return this.nt=bo(),this.st=Fo(),this.it=new yo(rr),s}ot(t,e){if(!this.ht(t))return;const n=this.gt(t,e.key)?2:0;this.ut(t).H(e.key,n),this.nt=this.nt.insert(e.key,e),this.st=this.st.insert(e.key,this.yt(e.key).add(t))}ct(t,e,n){if(!this.ht(t))return;const s=this.ut(t);this.gt(t,e)?s.H(e,1):s.J(e),this.st=this.st.insert(e,this.yt(e).delete(t)),n&&(this.nt=this.nt.insert(e,n))}removeTarget(t){this.et.delete(t)}wt(t){const e=this.ut(t).W();return this.tt.getRemoteKeysForTarget(t).size+e.addedDocuments.size-e.removedDocuments.size}Y(t){this.ut(t).Y()}ut(t){let e=this.et.get(t);return e||(e=new Oo,this.et.set(t,e)),e}yt(t){let e=this.st.get(t);return e||(e=new yo(rr),this.st=this.st.insert(t,e)),e}ht(t){const e=null!==this.dt(t);return e||Vs("WatchChangeAggregator","Detected inactive target",t),e}dt(t){const e=this.et.get(t);return e&&e.q?null:this.tt.Tt(t)}lt(t){this.et.set(t,new Oo),this.tt.getRemoteKeysForTarget(t).forEach((e=>{this.ct(t,e,null)}))}gt(t,e){return this.tt.getRemoteKeysForTarget(t).has(e)}}function Fo(){return new go(xr.comparator)}function Po(){return new go(xr.comparator)} +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */const Vo={asc:"ASCENDING",desc:"DESCENDING"},Uo={"<":"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"};class qo{constructor(t,e){this.databaseId=t,this.D=e}}function Bo(t,e){return t.D?`${new Date(1e3*e.seconds).toISOString().replace(/\.\d*/,"").replace("Z","")}.${("000000000"+e.nanoseconds).slice(-9)}Z`:{seconds:""+e.seconds,nanos:e.nanoseconds}}function jo(t,e){return t.D?e.toBase64():e.toUint8Array()}function Ko(t,e){return Bo(t,e.toTimestamp())}function $o(t){return Ks(!!t),cr.fromTimestamp(function(t){const e=br(t);return new ar(e.seconds,e.nanos)}(t))}function Go(t,e){return function(t){return new fr(["projects",t.projectId,"databases",t.database])}(t).child("documents").child(e).canonicalString()}function Ho(t){const e=fr.fromString(t);return Ks(pa(e)),e}function zo(t,e){return Go(t.databaseId,e.path)}function Qo(t,e){const n=Ho(e);if(n.get(1)!==t.databaseId.projectId)throw new zs(Hs.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 zs(Hs.INVALID_ARGUMENT,"Tried to deserialize key from different database: "+n.get(3)+" vs "+t.databaseId.database);return new xr(Jo(n))}function Wo(t,e){return Go(t.databaseId,e)}function Yo(t){const e=Ho(t);return 4===e.length?fr.emptyPath():Jo(e)}function Xo(t){return new fr(["projects",t.databaseId.projectId,"databases",t.databaseId.database]).canonicalString()}function Jo(t){return Ks(t.length>4&&"documents"===t.get(4)),t.popFirst(5)}function Zo(t,e,n){return{name:zo(t,e),fields:n.value.mapValue.fields}}function ta(t,e,n){const s=Qo(t,e.name),r=$o(e.updateTime),i=new $r({mapValue:{fields:e.fields}}),o=Hr.newFoundDocument(s,r,i);return n&&o.setHasCommittedMutations(),n?o.setHasCommittedMutations():o}function ea(t,e){let n;if(e instanceof eo)n={update:Zo(t,e.key,e.value)};else if(e instanceof oo)n={delete:zo(t,e.key)};else if(e instanceof no)n={update:Zo(t,e.key,e.data),updateMask:ma(e.fieldMask)};else{if(!(e instanceof ao))return js();n={verify:zo(t,e.key)}}return e.fieldTransforms.length>0&&(n.updateTransforms=e.fieldTransforms.map((t=>function(t,e){const n=e.transform;if(n instanceof Pi)return{fieldPath:e.field.canonicalString(),setToServerValue:"REQUEST_TIME"};if(n instanceof Vi)return{fieldPath:e.field.canonicalString(),appendMissingElements:{values:n.elements}};if(n instanceof qi)return{fieldPath:e.field.canonicalString(),removeAllFromArray:{values:n.elements}};if(n instanceof ji)return{fieldPath:e.field.canonicalString(),increment:n.C};throw js()}(0,t)))),e.precondition.isNone||(n.currentDocument=function(t,e){return void 0!==e.updateTime?{updateTime:Ko(t,e.updateTime)}:void 0!==e.exists?{exists:e.exists}:js()}(t,e.precondition)),n}function na(t,e){const n=e.currentDocument?function(t){return void 0!==t.updateTime?zi.updateTime($o(t.updateTime)):void 0!==t.exists?zi.exists(t.exists):zi.none()}(e.currentDocument):zi.none(),s=e.updateTransforms?e.updateTransforms.map((e=>function(t,e){let n=null;if("setToServerValue"in e)Ks("REQUEST_TIME"===e.setToServerValue),n=new Pi;else if("appendMissingElements"in e){const t=e.appendMissingElements.values||[];n=new Vi(t)}else if("removeAllFromArray"in e){const t=e.removeAllFromArray.values||[];n=new qi(t)}else"increment"in e?n=new ji(t,e.increment):js();const s=mr.fromServerFormat(e.fieldPath);return new Gi(s,n)}(t,e))):[];if(e.update){e.update.name;const r=Qo(t,e.update.name),i=new $r({mapValue:{fields:e.update.fields}});if(e.updateMask){const t=function(t){const e=t.fieldPaths||[];return new pr(e.map((t=>mr.fromServerFormat(t))))}(e.updateMask);return new no(r,i,t,n,s)}return new eo(r,i,n,s)}if(e.delete){const s=Qo(t,e.delete);return new oo(s,n)}if(e.verify){const s=Qo(t,e.verify);return new ao(s,n)}return js()}function sa(t,e){return{documents:[Wo(t,e.path)]}}function ra(t,e){const n={structuredQuery:{}},s=e.path;null!==e.collectionGroup?(n.parent=Wo(t,s),n.structuredQuery.from=[{collectionId:e.collectionGroup,allDescendants:!0}]):(n.parent=Wo(t,s.popLast()),n.structuredQuery.from=[{collectionId:s.lastSegment()}]);const r=function(t){if(0===t.length)return;const e=t.map((t=>function(t){if("=="===t.op){if(Br(t.value))return{unaryFilter:{field:la(t.field),op:"IS_NAN"}};if(qr(t.value))return{unaryFilter:{field:la(t.field),op:"IS_NULL"}}}else if("!="===t.op){if(Br(t.value))return{unaryFilter:{field:la(t.field),op:"IS_NOT_NAN"}};if(qr(t.value))return{unaryFilter:{field:la(t.field),op:"IS_NOT_NULL"}}}return{fieldFilter:{field:la(t.field),op:ha(t.op),value:t.value}}}(t)));return 1===e.length?e[0]:{compositeFilter:{op:"AND",filters:e}}}(e.filters);r&&(n.structuredQuery.where=r);const i=function(t){if(0!==t.length)return t.map((t=>function(t){return{field:la(t.field),direction:ua(t.dir)}}(t)))}(e.orderBy);i&&(n.structuredQuery.orderBy=i);const o=function(t,e){return t.D||Nr(e)?e:{value:e}}(t,e.limit);return null!==o&&(n.structuredQuery.limit=o),e.startAt&&(n.structuredQuery.startAt=aa(e.startAt)),e.endAt&&(n.structuredQuery.endAt=aa(e.endAt)),n}function ia(t){let e=Yo(t.parent);const n=t.structuredQuery,s=n.from?n.from.length:0;let r=null;if(s>0){Ks(1===s);const t=n.from[0];t.allDescendants?r=t.collectionId:e=e.child(t.collectionId)}let i=[];n.where&&(i=oa(n.where));let o=[];n.orderBy&&(o=n.orderBy.map((t=>function(t){return new ui(da(t.field),function(t){switch(t){case"ASCENDING":return"asc";case"DESCENDING":return"desc";default:return}}(t.direction))}(t))));let a=null;n.limit&&(a=function(t){let e;return e="object"==typeof t?t.value:t,Nr(e)?null:e}(n.limit));let c=null;n.startAt&&(c=ca(n.startAt));let u=null;return n.endAt&&(u=ca(n.endAt)),gi(e,r,o,i,a,"F",c,u)}function oa(t){return t?void 0!==t.unaryFilter?[ga(t)]:void 0!==t.fieldFilter?[fa(t)]:void 0!==t.compositeFilter?t.compositeFilter.filters.map((t=>oa(t))).reduce(((t,e)=>t.concat(e))):js():[]}function aa(t){return{before:t.before,values:t.position}}function ca(t){const e=!!t.before,n=t.values||[];return new ai(n,e)}function ua(t){return Vo[t]}function ha(t){return Uo[t]}function la(t){return{fieldPath:t.canonicalString()}}function da(t){return mr.fromServerFormat(t.fieldPath)}function fa(t){return Jr.create(da(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 js()}}(t.fieldFilter.op),t.fieldFilter.value)}function ga(t){switch(t.unaryFilter.op){case"IS_NAN":const e=da(t.unaryFilter.field);return Jr.create(e,"==",{doubleValue:NaN});case"IS_NULL":const n=da(t.unaryFilter.field);return Jr.create(n,"==",{nullValue:"NULL_VALUE"});case"IS_NOT_NAN":const s=da(t.unaryFilter.field);return Jr.create(s,"!=",{doubleValue:NaN});case"IS_NOT_NULL":const r=da(t.unaryFilter.field);return Jr.create(r,"!=",{nullValue:"NULL_VALUE"});default:return js()}}function ma(t){const e=[];return t.fields.forEach((t=>e.push(t.canonicalString()))),{fieldPaths:e}}function pa(t){return t.length>=4&&"projects"===t.get(0)&&"databases"===t.get(2)} +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */function ya(t){let e="";for(let n=0;n0&&(e=va(e)),e=wa(t.get(n),e);return va(e)}function wa(t,e){let n=e;const s=t.length;for(let e=0;e=2),2===e)return Ks(""===t.charAt(0)&&""===t.charAt(1)),fr.emptyPath();const n=e-2,s=[];let r="";for(let i=0;in)&&js(),t.charAt(e+1)){case"":const n=t.substring(i,e);let o;0===r.length?o=n:(r+=n,o=r,r=""),s.push(o);break;case"":r+=t.substring(i,e),r+="\0";break;case"":r+=t.substring(i,e+1);break;default:js()}i=e+2}return new fr(s)} +/** + * @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 Ta{constructor(t,e){this.seconds=t,this.nanoseconds=e}}class Ea{constructor(t,e,n){this.ownerId=t,this.allowTabSynchronization=e,this.leaseTimestampMs=n}}Ea.store="owner",Ea.key="owner";class Ia{constructor(t,e,n){this.userId=t,this.lastAcknowledgedBatchId=e,this.lastStreamToken=n}}Ia.store="mutationQueues",Ia.keyPath="userId";class Sa{constructor(t,e,n,s,r){this.userId=t,this.batchId=e,this.localWriteTimeMs=n,this.baseMutations=s,this.mutations=r}}Sa.store="mutations",Sa.keyPath="batchId",Sa.userMutationsIndex="userMutationsIndex",Sa.userMutationsKeyPath=["userId","batchId"];class _a{constructor(){}static prefixForUser(t){return[t]}static prefixForPath(t,e){return[t,ya(e)]}static key(t,e,n){return[t,ya(e),n]}}_a.store="documentMutations",_a.PLACEHOLDER=new _a;class Na{constructor(t,e){this.path=t,this.readTime=e}}class Aa{constructor(t,e){this.path=t,this.version=e}}class Da{constructor(t,e,n,s,r,i){this.unknownDocument=t,this.noDocument=e,this.document=n,this.hasCommittedMutations=s,this.readTime=r,this.parentPath=i}}Da.store="remoteDocuments",Da.readTimeIndex="readTimeIndex",Da.readTimeIndexPath="readTime",Da.collectionReadTimeIndex="collectionReadTimeIndex",Da.collectionReadTimeIndexPath=["parentPath","readTime"];class xa{constructor(t){this.byteSize=t}}xa.store="remoteDocumentGlobal",xa.key="remoteDocumentGlobalKey";class Ca{constructor(t,e,n,s,r,i,o){this.targetId=t,this.canonicalId=e,this.readTime=n,this.resumeToken=s,this.lastListenSequenceNumber=r,this.lastLimboFreeSnapshotVersion=i,this.query=o}}Ca.store="targets",Ca.keyPath="targetId",Ca.queryTargetsIndexName="queryTargetsIndex",Ca.queryTargetsKeyPath=["canonicalId","targetId"];class ka{constructor(t,e,n){this.targetId=t,this.path=e,this.sequenceNumber=n}}ka.store="targetDocuments",ka.keyPath=["targetId","path"],ka.documentTargetsIndex="documentTargetsIndex",ka.documentTargetsKeyPath=["path","targetId"];class Ra{constructor(t,e,n,s){this.highestTargetId=t,this.highestListenSequenceNumber=e,this.lastRemoteSnapshotVersion=n,this.targetCount=s}}Ra.key="targetGlobalKey",Ra.store="targetGlobal";class La{constructor(t,e){this.collectionId=t,this.parent=e}}La.store="collectionParents",La.keyPath=["collectionId","parent"];class Oa{constructor(t,e,n,s){this.clientId=t,this.updateTimeMs=e,this.networkEnabled=n,this.inForeground=s}}Oa.store="clientMetadata",Oa.keyPath="clientId";class Ma{constructor(t,e,n){this.bundleId=t,this.createTime=e,this.version=n}}Ma.store="bundles",Ma.keyPath="bundleId";class Fa{constructor(t,e,n){this.name=t,this.readTime=e,this.bundledQuery=n}}Fa.store="namedQueries",Fa.keyPath="name";const Pa=[Ia.store,Sa.store,_a.store,Da.store,Ca.store,Ea.store,Ra.store,ka.store,Oa.store,xa.store,La.store,Ma.store,Fa.store],Va="The current tab is not in the required state to perform this operation. It might be necessary to refresh the browser tab.";class Ua{constructor(){this.onCommittedListeners=[]}addOnCommittedListener(t){this.onCommittedListeners.push(t)}raiseOnCommittedEvent(){this.onCommittedListeners.forEach((t=>t()))}} +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */class qa{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&&js(),this.callbackAttached=!0,this.isDone?this.error?this.wrapFailure(e,this.error):this.wrapSuccess(t,this.result):new qa(((n,s)=>{this.nextCallback=e=>{this.wrapSuccess(t,e).next(n,s)},this.catchCallback=t=>{this.wrapFailure(e,t).next(n,s)}}))}toPromise(){return new Promise(((t,e)=>{this.next(t,e)}))}wrapUserFunction(t){try{const e=t();return e instanceof qa?e:qa.resolve(e)}catch(t){return qa.reject(t)}}wrapSuccess(t,e){return t?this.wrapUserFunction((()=>t(e))):qa.resolve(e)}wrapFailure(t,e){return t?this.wrapUserFunction((()=>t(e))):qa.reject(e)}static resolve(t){return new qa(((e,n)=>{e(t)}))}static reject(t){return new qa(((e,n)=>{n(t)}))}static waitFor(t){return new qa(((e,n)=>{let s=0,r=0,i=!1;t.forEach((t=>{++s,t.next((()=>{++r,i&&r===s&&e()}),(t=>n(t)))})),i=!0,r===s&&e()}))}static or(t){let e=qa.resolve(!1);for(const n of t)e=e.next((t=>t?qa.resolve(t):n()));return e}static forEach(t,e){const n=[];return t.forEach(((t,s)=>{n.push(e.call(this,t,s))})),this.waitFor(n)}} +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */class Ba{constructor(t,e){this.action=t,this.transaction=e,this.aborted=!1,this.Et=new Qs,this.transaction.oncomplete=()=>{this.Et.resolve()},this.transaction.onabort=()=>{e.error?this.Et.reject(new $a(t,e.error)):this.Et.resolve()},this.transaction.onerror=e=>{const n=Wa(e.target.error);this.Et.reject(new $a(t,n))}}static open(t,e,n,s){try{return new Ba(e,t.transaction(s,n))}catch(t){throw new $a(e,t)}}get It(){return this.Et.promise}abort(t){t&&this.Et.reject(t),this.aborted||(Vs("SimpleDb","Aborting transaction:",t?t.message:"Client-initiated abort"),this.aborted=!0,this.transaction.abort())}store(t){const e=this.transaction.objectStore(t);return new Ha(e)}}class ja{constructor(t,e,n){this.name=t,this.version=e,this.At=n,12.2===ja.Rt(h())&&Us("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 Vs("SimpleDb","Removing database:",t),za(window.indexedDB.deleteDatabase(t)).toPromise()}static bt(){if("object"!=typeof indexedDB)return!1;if(ja.Pt())return!0;const t=h(),e=ja.Rt(t),n=00||t.indexOf("Trident/")>0||t.indexOf("Edge/")>0||n||r)}static Pt(){var t;return void 0!==o&&"YES"===(void 0===(t={})?void 0:t.Vt)}static St(t,e){return t.store(e)}static Rt(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 vt(t){const e=t.match(/Android ([\d.]+)/i),n=e?e[1].split(".").slice(0,2).join("."):"-1";return Number(n)}async Dt(t){return this.db||(Vs("SimpleDb","Opening database:",this.name),this.db=await new Promise(((e,n)=>{const s=indexedDB.open(this.name,this.version);s.onsuccess=t=>{const n=t.target.result;e(n)},s.onblocked=()=>{n(new $a(t,"Cannot upgrade IndexedDB schema while another tab is open. Close all tabs that access Firestore and reload this page to proceed."))},s.onerror=e=>{const s=e.target.error;"VersionError"===s.name?n(new zs(Hs.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"===s.name?n(new zs(Hs.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: "+s)):n(new $a(t,s))},s.onupgradeneeded=t=>{Vs("SimpleDb",'Database "'+this.name+'" requires upgrade from version:',t.oldVersion);const e=t.target.result;this.At.Ct(e,s.transaction,t.oldVersion,this.version).next((()=>{Vs("SimpleDb","Database upgrade to version "+this.version+" complete")}))}}))),this.Nt&&(this.db.onversionchange=t=>this.Nt(t)),this.db}xt(t){this.Nt=t,this.db&&(this.db.onversionchange=e=>t(e))}async runTransaction(t,e,n,s){const r="readonly"===e;let i=0;for(;;){++i;try{this.db=await this.Dt(t);const e=Ba.open(this.db,t,r?"readonly":"readwrite",n),i=s(e).catch((t=>(e.abort(t),qa.reject(t)))).toPromise();return i.catch((()=>{})),await e.It,i}catch(t){const e="FirebaseError"!==t.name&&i<3;if(Vs("SimpleDb","Transaction failed with error:",t.message,"Retrying:",e),this.close(),!e)return Promise.reject(t)}}}close(){this.db&&this.db.close(),this.db=void 0}}class Ka{constructor(t){this.kt=t,this.$t=!1,this.Ot=null}get isDone(){return this.$t}get Ft(){return this.Ot}set cursor(t){this.kt=t}done(){this.$t=!0}Mt(t){this.Ot=t}delete(){return za(this.kt.delete())}}class $a extends zs{constructor(t,e){super(Hs.UNAVAILABLE,`IndexedDB transaction '${t}' failed: ${e}`),this.name="IndexedDbTransactionError"}}function Ga(t){return"IndexedDbTransactionError"===t.name}class Ha{constructor(t){this.store=t}put(t,e){let n;return void 0!==e?(Vs("SimpleDb","PUT",this.store.name,t,e),n=this.store.put(e,t)):(Vs("SimpleDb","PUT",this.store.name,"",t),n=this.store.put(t)),za(n)}add(t){return Vs("SimpleDb","ADD",this.store.name,t,t),za(this.store.add(t))}get(t){return za(this.store.get(t)).next((e=>(void 0===e&&(e=null),Vs("SimpleDb","GET",this.store.name,t,e),e)))}delete(t){return Vs("SimpleDb","DELETE",this.store.name,t),za(this.store.delete(t))}count(){return Vs("SimpleDb","COUNT",this.store.name),za(this.store.count())}Lt(t,e){const n=this.cursor(this.options(t,e)),s=[];return this.Bt(n,((t,e)=>{s.push(e)})).next((()=>s))}Ut(t,e){Vs("SimpleDb","DELETE ALL",this.store.name);const n=this.options(t,e);n.qt=!1;const s=this.cursor(n);return this.Bt(s,((t,e,n)=>n.delete()))}Kt(t,e){let n;e?n=t:(n={},e=t);const s=this.cursor(n);return this.Bt(s,e)}jt(t){const e=this.cursor({});return new qa(((n,s)=>{e.onerror=t=>{const e=Wa(t.target.error);s(e)},e.onsuccess=e=>{const s=e.target.result;s?t(s.primaryKey,s.value).next((t=>{t?s.continue():n()})):n()}}))}Bt(t,e){const n=[];return new qa(((s,r)=>{t.onerror=t=>{r(t.target.error)},t.onsuccess=t=>{const r=t.target.result;if(!r)return void s();const i=new Ka(r),o=e(r.primaryKey,r.value,i);if(o instanceof qa){const t=o.catch((t=>(i.done(),qa.reject(t))));n.push(t)}i.isDone?s():null===i.Ft?r.continue():r.continue(i.Ft)}})).next((()=>qa.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.qt?n.openKeyCursor(t.range,e):n.openCursor(t.range,e)}return this.store.openCursor(t.range,e)}}function za(t){return new qa(((e,n)=>{t.onsuccess=t=>{const n=t.target.result;e(n)},t.onerror=t=>{const e=Wa(t.target.error);n(e)}}))}let Qa=!1;function Wa(t){const e=ja.Rt(h());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 zs("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 Qa||(Qa=!0,setTimeout((()=>{throw t}),0)),t}}return t} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */class Ya extends Ua{constructor(t,e){super(),this.Qt=t,this.currentSequenceNumber=e}}function Xa(t,e){const n=Gs(t);return ja.St(n.Qt,e)} +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */class Ja{constructor(t,e,n,s){this.batchId=t,this.localWriteTime=e,this.baseMutations=n,this.mutations=s}applyToRemoteDocument(t,e){const n=e.mutationResults;for(let e=0;e{const n=t.get(e.key),s=n;this.applyToLocalView(s),n.isValidDocument()||s.convertToNoDocument(cr.min())}))}keys(){return this.mutations.reduce(((t,e)=>t.add(e.key)),No())}isEqual(t){return this.batchId===t.batchId&&ir(this.mutations,t.mutations,((t,e)=>Zi(t,e)))&&ir(this.baseMutations,t.baseMutations,((t,e)=>Zi(t,e)))}}class Za{constructor(t,e,n,s){this.batch=t,this.commitVersion=e,this.mutationResults=n,this.docVersions=s}static from(t,e,n){Ks(t.mutations.length===n.length);let s=So();const r=t.mutations;for(let t=0;tna(t.Wt,e)));for(let t=0;tna(t.Wt,e))),r=ar.fromMillis(e.localWriteTimeMs);return new Ja(e.batchId,r,n,s)}function uc(t){const e=ac(t.readTime),n=void 0!==t.lastLimboFreeSnapshotVersion?ac(t.lastLimboFreeSnapshotVersion):cr.min();let s;var r;return void 0!==t.query.documents?(Ks(1===(r=t.query).documents.length),s=Ei(mi(Yo(r.documents[0])))):s=function(t){return Ei(ia(t))}(t.query),new tc(s,t.targetId,0,t.lastListenSequenceNumber,e,n,wr.fromBase64String(t.resumeToken))}function hc(t,e){const n=oc(e.snapshotVersion),s=oc(e.lastLimboFreeSnapshotVersion);let r;r=Xr(e.target)?sa(t.Wt,e.target):ra(t.Wt,e.target);const i=e.resumeToken.toBase64();return new Ca(e.targetId,Wr(e.target),n,i,e.sequenceNumber,s,r)}function lc(t){const e=ia({parent:t.parent,structuredQuery:t.structuredQuery});return"LAST"===t.limitType?Ii(e,e.limit,"L"):e} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */class dc{getBundleMetadata(t,e){return fc(t).get(e).next((t=>{if(t)return{id:(e=t).bundleId,createTime:ac(e.createTime),version:e.version};var e}))}saveBundleMetadata(t,e){var n;return fc(t).put({bundleId:(n=e).id,createTime:oc($o(n.createTime)),version:n.version})}getNamedQuery(t,e){return gc(t).get(e).next((t=>{if(t)return{name:(e=t).name,query:lc(e.bundledQuery),readTime:ac(e.readTime)};var e}))}saveNamedQuery(t,e){return gc(t).put(function(t){return{name:t.name,readTime:oc($o(t.readTime)),bundledQuery:t.bundledQuery}}(e))}}function fc(t){return Xa(t,Ma.store)}function gc(t){return Xa(t,Fa.store)} +/** + * @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 mc{constructor(){this.Gt=new pc}addToCollectionParentIndex(t,e){return this.Gt.add(e),qa.resolve()}getCollectionParents(t,e){return qa.resolve(this.Gt.getEntries(e))}}class pc{constructor(){this.index={}}add(t){const e=t.lastSegment(),n=t.popLast(),s=this.index[e]||new yo(fr.comparator),r=!s.has(n);return this.index[e]=s.add(n),r}has(t){const e=t.lastSegment(),n=t.popLast(),s=this.index[e];return s&&s.has(n)}getEntries(t){return(this.index[t]||new yo(fr.comparator)).toArray()}} +/** + * @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 yc{constructor(){this.zt=new pc}addToCollectionParentIndex(t,e){if(!this.zt.has(e)){const n=e.lastSegment(),s=e.popLast();t.addOnCommittedListener((()=>{this.zt.add(e)}));const r={collectionId:n,parent:ya(s)};return wc(t).put(r)}return qa.resolve()}getCollectionParents(t,e){const n=[],s=IDBKeyRange.bound([e,""],[or(e),""],!1,!0);return wc(t).Lt(s).next((t=>{for(const s of t){if(s.collectionId!==e)break;n.push(ba(s.parent))}return n}))}}function wc(t){return Xa(t,La.store)} +/** + * @license + * Copyright 2018 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */const vc={didRun:!1,sequenceNumbersCollected:0,targetsRemoved:0,documentsRemoved:0};class bc{constructor(t,e,n){this.cacheSizeCollectionThreshold=t,this.percentileToCollect=e,this.maximumSequenceNumbersToCollect=n}static withCacheSize(t){return new bc(t,bc.DEFAULT_COLLECTION_PERCENTILE,bc.DEFAULT_MAX_SEQUENCE_NUMBERS_TO_COLLECT)}} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */function Tc(t,e,n){const s=t.store(Sa.store),r=t.store(_a.store),i=[],o=IDBKeyRange.only(n.batchId);let a=0;const c=s.Kt({range:o},((t,e,n)=>(a++,n.delete())));i.push(c.next((()=>{Ks(1===a)})));const u=[];for(const t of n.mutations){const s=_a.key(e,t.key.path,n.batchId);i.push(r.delete(s)),u.push(t.key)}return qa.waitFor(i).next((()=>u))}function Ec(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 js();e=t.noDocument}return JSON.stringify(e).length} +/** + * @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. + */bc.DEFAULT_COLLECTION_PERCENTILE=10,bc.DEFAULT_MAX_SEQUENCE_NUMBERS_TO_COLLECT=1e3,bc.DEFAULT=new bc(41943040,bc.DEFAULT_COLLECTION_PERCENTILE,bc.DEFAULT_MAX_SEQUENCE_NUMBERS_TO_COLLECT),bc.DISABLED=new bc(-1,0,0);class Ic{constructor(t,e,n,s){this.userId=t,this.N=e,this.Ht=n,this.referenceDelegate=s,this.Jt={}}static Yt(t,e,n,s){Ks(""!==t.uid);const r=t.isAuthenticated()?t.uid:"";return new Ic(r,e,n,s)}checkEmpty(t){let e=!0;const n=IDBKeyRange.bound([this.userId,Number.NEGATIVE_INFINITY],[this.userId,Number.POSITIVE_INFINITY]);return _c(t).Kt({index:Sa.userMutationsIndex,range:n},((t,n,s)=>{e=!1,s.done()})).next((()=>e))}addMutationBatch(t,e,n,s){const r=Nc(t),i=_c(t);return i.add({}).next((o=>{Ks("number"==typeof o);const a=new Ja(o,e,n,s),c=function(t,e,n){const s=n.baseMutations.map((e=>ea(t.Wt,e))),r=n.mutations.map((e=>ea(t.Wt,e)));return new Sa(e,n.batchId,n.localWriteTime.toMillis(),s,r)}(this.N,this.userId,a),u=[];let h=new yo(((t,e)=>rr(t.canonicalString(),e.canonicalString())));for(const t of s){const e=_a.key(this.userId,t.key.path,o);h=h.add(t.key.path.popLast()),u.push(i.put(c)),u.push(r.put(e,_a.PLACEHOLDER))}return h.forEach((e=>{u.push(this.Ht.addToCollectionParentIndex(t,e))})),t.addOnCommittedListener((()=>{this.Jt[o]=a.keys()})),qa.waitFor(u).next((()=>a))}))}lookupMutationBatch(t,e){return _c(t).get(e).next((t=>t?(Ks(t.userId===this.userId),cc(this.N,t)):null))}Xt(t,e){return this.Jt[e]?qa.resolve(this.Jt[e]):this.lookupMutationBatch(t,e).next((t=>{if(t){const n=t.keys();return this.Jt[e]=n,n}return null}))}getNextMutationBatchAfterBatchId(t,e){const n=e+1,s=IDBKeyRange.lowerBound([this.userId,n]);let r=null;return _c(t).Kt({index:Sa.userMutationsIndex,range:s},((t,e,s)=>{e.userId===this.userId&&(Ks(e.batchId>=n),r=cc(this.N,e)),s.done()})).next((()=>r))}getHighestUnacknowledgedBatchId(t){const e=IDBKeyRange.upperBound([this.userId,Number.POSITIVE_INFINITY]);let n=-1;return _c(t).Kt({index:Sa.userMutationsIndex,range:e,reverse:!0},((t,e,s)=>{n=e.batchId,s.done()})).next((()=>n))}getAllMutationBatches(t){const e=IDBKeyRange.bound([this.userId,-1],[this.userId,Number.POSITIVE_INFINITY]);return _c(t).Lt(Sa.userMutationsIndex,e).next((t=>t.map((t=>cc(this.N,t)))))}getAllMutationBatchesAffectingDocumentKey(t,e){const n=_a.prefixForPath(this.userId,e.path),s=IDBKeyRange.lowerBound(n),r=[];return Nc(t).Kt({range:s},((n,s,i)=>{const[o,a,c]=n,u=ba(a);if(o===this.userId&&e.path.isEqual(u))return _c(t).get(c).next((t=>{if(!t)throw js();Ks(t.userId===this.userId),r.push(cc(this.N,t))}));i.done()})).next((()=>r))}getAllMutationBatchesAffectingDocumentKeys(t,e){let n=new yo(rr);const s=[];return e.forEach((e=>{const r=_a.prefixForPath(this.userId,e.path),i=IDBKeyRange.lowerBound(r),o=Nc(t).Kt({range:i},((t,s,r)=>{const[i,o,a]=t,c=ba(o);i===this.userId&&e.path.isEqual(c)?n=n.add(a):r.done()}));s.push(o)})),qa.waitFor(s).next((()=>this.Zt(t,n)))}getAllMutationBatchesAffectingQuery(t,e){const n=e.path,s=n.length+1,r=_a.prefixForPath(this.userId,n),i=IDBKeyRange.lowerBound(r);let o=new yo(rr);return Nc(t).Kt({range:i},((t,e,r)=>{const[i,a,c]=t,u=ba(a);i===this.userId&&n.isPrefixOf(u)?u.length===s&&(o=o.add(c)):r.done()})).next((()=>this.Zt(t,o)))}Zt(t,e){const n=[],s=[];return e.forEach((e=>{s.push(_c(t).get(e).next((t=>{if(null===t)throw js();Ks(t.userId===this.userId),n.push(cc(this.N,t))})))})),qa.waitFor(s).next((()=>n))}removeMutationBatch(t,e){return Tc(t.Qt,this.userId,e).next((n=>(t.addOnCommittedListener((()=>{this.te(e.batchId)})),qa.forEach(n,(e=>this.referenceDelegate.markPotentiallyOrphaned(t,e))))))}te(t){delete this.Jt[t]}performConsistencyCheck(t){return this.checkEmpty(t).next((e=>{if(!e)return qa.resolve();const n=IDBKeyRange.lowerBound(_a.prefixForUser(this.userId)),s=[];return Nc(t).Kt({range:n},((t,e,n)=>{if(t[0]===this.userId){const e=ba(t[1]);s.push(e)}else n.done()})).next((()=>{Ks(0===s.length)}))}))}containsKey(t,e){return Sc(t,this.userId,e)}ee(t){return Ac(t).get(this.userId).next((t=>t||new Ia(this.userId,-1,"")))}}function Sc(t,e,n){const s=_a.prefixForPath(e,n.path),r=s[1],i=IDBKeyRange.lowerBound(s);let o=!1;return Nc(t).Kt({range:i,qt:!0},((t,n,s)=>{const[i,a,c]=t;i===e&&a===r&&(o=!0),s.done()})).next((()=>o))}function _c(t){return Xa(t,Sa.store)}function Nc(t){return Xa(t,_a.store)}function Ac(t){return Xa(t,Ia.store)} +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */class Dc{constructor(t){this.ne=t}next(){return this.ne+=2,this.ne}static se(){return new Dc(0)}static ie(){return new Dc(-1)}} +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */class xc{constructor(t,e){this.referenceDelegate=t,this.N=e}allocateTargetId(t){return this.re(t).next((e=>{const n=new Dc(e.highestTargetId);return e.highestTargetId=n.next(),this.oe(t,e).next((()=>e.highestTargetId))}))}getLastRemoteSnapshotVersion(t){return this.re(t).next((t=>cr.fromTimestamp(new ar(t.lastRemoteSnapshotVersion.seconds,t.lastRemoteSnapshotVersion.nanoseconds))))}getHighestSequenceNumber(t){return this.re(t).next((t=>t.highestListenSequenceNumber))}setTargetsMetadata(t,e,n){return this.re(t).next((s=>(s.highestListenSequenceNumber=e,n&&(s.lastRemoteSnapshotVersion=n.toTimestamp()),e>s.highestListenSequenceNumber&&(s.highestListenSequenceNumber=e),this.oe(t,s))))}addTargetData(t,e){return this.ce(t,e).next((()=>this.re(t).next((n=>(n.targetCount+=1,this.ae(e,n),this.oe(t,n))))))}updateTargetData(t,e){return this.ce(t,e)}removeTargetData(t,e){return this.removeMatchingKeysForTargetId(t,e.targetId).next((()=>Cc(t).delete(e.targetId))).next((()=>this.re(t))).next((e=>(Ks(e.targetCount>0),e.targetCount-=1,this.oe(t,e))))}removeTargets(t,e,n){let s=0;const r=[];return Cc(t).Kt(((i,o)=>{const a=uc(o);a.sequenceNumber<=e&&null===n.get(a.targetId)&&(s++,r.push(this.removeTargetData(t,a)))})).next((()=>qa.waitFor(r))).next((()=>s))}forEachTarget(t,e){return Cc(t).Kt(((t,n)=>{const s=uc(n);e(s)}))}re(t){return kc(t).get(Ra.key).next((t=>(Ks(null!==t),t)))}oe(t,e){return kc(t).put(Ra.key,e)}ce(t,e){return Cc(t).put(hc(this.N,e))}ae(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.re(t).next((t=>t.targetCount))}getTargetData(t,e){const n=Wr(e),s=IDBKeyRange.bound([n,Number.NEGATIVE_INFINITY],[n,Number.POSITIVE_INFINITY]);let r=null;return Cc(t).Kt({range:s,index:Ca.queryTargetsIndexName},((t,n,s)=>{const i=uc(n);Yr(e,i.target)&&(r=i,s.done())})).next((()=>r))}addMatchingKeys(t,e,n){const s=[],r=Rc(t);return e.forEach((e=>{const i=ya(e.path);s.push(r.put(new ka(n,i))),s.push(this.referenceDelegate.addReference(t,n,e))})),qa.waitFor(s)}removeMatchingKeys(t,e,n){const s=Rc(t);return qa.forEach(e,(e=>{const r=ya(e.path);return qa.waitFor([s.delete([n,r]),this.referenceDelegate.removeReference(t,n,e)])}))}removeMatchingKeysForTargetId(t,e){const n=Rc(t),s=IDBKeyRange.bound([e],[e+1],!1,!0);return n.delete(s)}getMatchingKeysForTargetId(t,e){const n=IDBKeyRange.bound([e],[e+1],!1,!0),s=Rc(t);let r=No();return s.Kt({range:n,qt:!0},((t,e,n)=>{const s=ba(t[1]),i=new xr(s);r=r.add(i)})).next((()=>r))}containsKey(t,e){const n=ya(e.path),s=IDBKeyRange.bound([n],[or(n)],!1,!0);let r=0;return Rc(t).Kt({index:ka.documentTargetsIndex,qt:!0,range:s},(([t,e],n,s)=>{0!==t&&(r++,s.done())})).next((()=>r>0))}Tt(t,e){return Cc(t).get(e).next((t=>t?uc(t):null))}}function Cc(t){return Xa(t,Ca.store)}function kc(t){return Xa(t,Ra.store)}function Rc(t){return Xa(t,ka.store)} +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */async function Lc(t){if(t.code!==Hs.FAILED_PRECONDITION||t.message!==Va)throw t;Vs("LocalStore","Unexpectedly lost primary lease")} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */function Oc([t,e],[n,s]){const r=rr(t,n);return 0===r?rr(e,s):r}class Mc{constructor(t){this.ue=t,this.buffer=new yo(Oc),this.he=0}le(){return++this.he}fe(t){const e=[t,this.le()];if(this.buffer.size{this.we=null,this.de=!0;try{await t.collectGarbage(this.garbageCollector)}catch(t){Ga(t)?Vs("LruGarbageCollector","Ignoring IndexedDB error during garbage collection: ",t):await Lc(t)}await this._e(t)}))}}class Pc{constructor(t,e){this.me=t,this.params=e}calculateTargetCount(t,e){return this.me.ge(t).next((t=>Math.floor(e/100*t)))}nthSequenceNumber(t,e){if(0===e)return qa.resolve(er.T);const n=new Mc(e);return this.me.forEachTarget(t,(t=>n.fe(t.sequenceNumber))).next((()=>this.me.ye(t,(t=>n.fe(t))))).next((()=>n.maxValue))}removeTargets(t,e,n){return this.me.removeTargets(t,e,n)}removeOrphanedDocuments(t,e){return this.me.removeOrphanedDocuments(t,e)}collect(t,e){return-1===this.params.cacheSizeCollectionThreshold?(Vs("LruGarbageCollector","Garbage collection skipped; disabled"),qa.resolve(vc)):this.getCacheSize(t).next((n=>n(e>this.params.maximumSequenceNumbersToCollect?(Vs("LruGarbageCollector",`Capping sequence numbers to collect down to the maximum of ${this.params.maximumSequenceNumbersToCollect} from ${e}`),s=this.params.maximumSequenceNumbersToCollect):s=e,i=Date.now(),this.nthSequenceNumber(t,s)))).next((s=>(n=s,o=Date.now(),this.removeTargets(t,n,e)))).next((e=>(r=e,a=Date.now(),this.removeOrphanedDocuments(t,n)))).next((t=>(c=Date.now(),Fs()<=p.DEBUG&&Vs("LruGarbageCollector",`LRU Garbage Collection\n\tCounted targets in ${i-u}ms\n\tDetermined least recently used ${s} in `+(o-i)+"ms\n"+`\tRemoved ${r} targets in `+(a-o)+"ms\n"+`\tRemoved ${t} documents in `+(c-a)+"ms\n"+`Total Duration: ${c-u}ms`),qa.resolve({didRun:!0,sequenceNumbersCollected:s,targetsRemoved:r,documentsRemoved:t}))))}} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */class Vc{constructor(t,e){this.db=t,this.garbageCollector=function(t,e){return new Pc(t,e)}(this,e)}ge(t){const e=this.Te(t);return this.db.getTargetCache().getTargetCount(t).next((t=>e.next((e=>t+e))))}Te(t){let e=0;return this.ye(t,(t=>{e++})).next((()=>e))}forEachTarget(t,e){return this.db.getTargetCache().forEachTarget(t,e)}ye(t,e){return this.Ee(t,((t,n)=>e(n)))}addReference(t,e,n){return Uc(t,n)}removeReference(t,e,n){return Uc(t,n)}removeTargets(t,e,n){return this.db.getTargetCache().removeTargets(t,e,n)}markPotentiallyOrphaned(t,e){return Uc(t,e)}Ie(t,e){return function(t,e){let n=!1;return Ac(t).jt((s=>Sc(t,s,e).next((t=>(t&&(n=!0),qa.resolve(!t)))))).next((()=>n))}(t,e)}removeOrphanedDocuments(t,e){const n=this.db.getRemoteDocumentCache().newChangeBuffer(),s=[];let r=0;return this.Ee(t,((i,o)=>{if(o<=e){const e=this.Ie(t,i).next((e=>{if(!e)return r++,n.getEntry(t,i).next((()=>(n.removeEntry(i),Rc(t).delete([0,ya(i.path)]))))}));s.push(e)}})).next((()=>qa.waitFor(s))).next((()=>n.apply(t))).next((()=>r))}removeTarget(t,e){const n=e.withSequenceNumber(t.currentSequenceNumber);return this.db.getTargetCache().updateTargetData(t,n)}updateLimboDocument(t,e){return Uc(t,e)}Ee(t,e){const n=Rc(t);let s,r=er.T;return n.Kt({index:ka.documentTargetsIndex},(([t,n],{path:i,sequenceNumber:o})=>{0===t?(r!==er.T&&e(new xr(ba(s)),r),r=o,s=i):r=er.T})).next((()=>{r!==er.T&&e(new xr(ba(s)),r)}))}getCacheSize(t){return this.db.getRemoteDocumentCache().getSize(t)}}function Uc(t,e){return Rc(t).put(function(t,e){return new ka(0,ya(t.path),e)}(e,t.currentSequenceNumber))} +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */class qc{constructor(t,e){this.mapKeyFn=t,this.equalsFn=e,this.inner={}}get(t){const e=this.mapKeyFn(t),n=this.inner[e];if(void 0!==n)for(const[e,s]of n)if(this.equalsFn(e,t))return s}has(t){return void 0!==this.get(t)}set(t,e){const n=this.mapKeyFn(t),s=this.inner[n];if(void 0!==s){for(let n=0;n{for(const[e,s]of n)t(e,s)}))}isEmpty(){return lr(this.inner)}} +/** + * @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 Bc{constructor(){this.changes=new qc((t=>t.toString()),((t,e)=>t.isEqual(e))),this.changesApplied=!1}getReadTime(t){const e=this.changes.get(t);return e?e.readTime:cr.min()}addEntry(t,e){this.assertNotApplied(),this.changes.set(t.key,{document:t,readTime:e})}removeEntry(t,e=null){this.assertNotApplied(),this.changes.set(t,{document:Hr.newInvalidDocument(t),readTime:e})}getEntry(t,e){this.assertNotApplied();const n=this.changes.get(e);return void 0!==n?qa.resolve(n.document):this.getFromCache(t,e)}getEntries(t,e){return this.getAllFromCache(t,e)}apply(t){return this.assertNotApplied(),this.changesApplied=!0,this.applyChanges(t)}assertNotApplied(){}} +/** + * @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 jc{constructor(t,e){this.N=t,this.Ht=e}addEntry(t,e,n){return Gc(t).put(Hc(e),n)}removeEntry(t,e){const n=Gc(t),s=Hc(e);return n.delete(s)}updateMetadata(t,e){return this.getMetadata(t).next((n=>(n.byteSize+=e,this.Ae(t,n))))}getEntry(t,e){return Gc(t).get(Hc(e)).next((t=>this.Re(e,t)))}be(t,e){return Gc(t).get(Hc(e)).next((t=>({document:this.Re(e,t),size:Ec(t)})))}getEntries(t,e){let n=bo();return this.Pe(t,e,((t,e)=>{const s=this.Re(t,e);n=n.insert(t,s)})).next((()=>n))}ve(t,e){let n=bo(),s=new go(xr.comparator);return this.Pe(t,e,((t,e)=>{const r=this.Re(t,e);n=n.insert(t,r),s=s.insert(t,Ec(e))})).next((()=>({documents:n,Ve:s})))}Pe(t,e,n){if(e.isEmpty())return qa.resolve();const s=IDBKeyRange.bound(e.first().path.toArray(),e.last().path.toArray()),r=e.getIterator();let i=r.getNext();return Gc(t).Kt({range:s},((t,e,s)=>{const o=xr.fromSegments(t);for(;i&&xr.comparator(i,o)<0;)n(i,null),i=r.getNext();i&&i.isEqual(o)&&(n(i,e),i=r.hasNext()?r.getNext():null),i?s.Mt(i.path.toArray()):s.done()})).next((()=>{for(;i;)n(i,null),i=r.hasNext()?r.getNext():null}))}getDocumentsMatchingQuery(t,e,n){let s=bo();const r=e.path.length+1,i={};if(n.isEqual(cr.min())){const t=e.path.toArray();i.range=IDBKeyRange.lowerBound(t)}else{const t=e.path.toArray(),s=rc(n);i.range=IDBKeyRange.lowerBound([t,s],!0),i.index=Da.collectionReadTimeIndex}return Gc(t).Kt(i,((t,n,i)=>{if(t.length!==r)return;const o=nc(this.N,n);e.path.isPrefixOf(o.key.path)?Ai(e,o)&&(s=s.insert(o.key,o)):i.done()})).next((()=>s))}newChangeBuffer(t){return new Kc(this,!!t&&t.trackRemovals)}getSize(t){return this.getMetadata(t).next((t=>t.byteSize))}getMetadata(t){return $c(t).get(xa.key).next((t=>(Ks(!!t),t)))}Ae(t,e){return $c(t).put(xa.key,e)}Re(t,e){if(e){const t=nc(this.N,e);if(!t.isNoDocument()||!t.version.isEqual(cr.min()))return t}return Hr.newInvalidDocument(t)}}class Kc extends Bc{constructor(t,e){super(),this.Se=t,this.trackRemovals=e,this.De=new qc((t=>t.toString()),((t,e)=>t.isEqual(e)))}applyChanges(t){const e=[];let n=0,s=new yo(((t,e)=>rr(t.canonicalString(),e.canonicalString())));return this.changes.forEach(((r,i)=>{const o=this.De.get(r);if(i.document.isValidDocument()){const a=sc(this.Se.N,i.document,this.getReadTime(r));s=s.add(r.path.popLast());const c=Ec(a);n+=c-o,e.push(this.Se.addEntry(t,r,a))}else if(n-=o,this.trackRemovals){const n=sc(this.Se.N,Hr.newNoDocument(r,cr.min()),this.getReadTime(r));e.push(this.Se.addEntry(t,r,n))}else e.push(this.Se.removeEntry(t,r))})),s.forEach((n=>{e.push(this.Se.Ht.addToCollectionParentIndex(t,n))})),e.push(this.Se.updateMetadata(t,n)),qa.waitFor(e)}getFromCache(t,e){return this.Se.be(t,e).next((t=>(this.De.set(e,t.size),t.document)))}getAllFromCache(t,e){return this.Se.ve(t,e).next((({documents:t,Ve:e})=>(e.forEach(((t,e)=>{this.De.set(t,e)})),t)))}}function $c(t){return Xa(t,xa.store)}function Gc(t){return Xa(t,Da.store)}function Hc(t){return t.path.toArray()} +/** + * @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. + */class zc{constructor(t){this.N=t}Ct(t,e,n,s){Ks(n=0&&s<=11);const r=new Ba("createOrUpgrade",e);n<1&&s>=1&&(function(t){t.createObjectStore(Ea.store)}(t),function(t){t.createObjectStore(Ia.store,{keyPath:Ia.keyPath}),t.createObjectStore(Sa.store,{keyPath:Sa.keyPath,autoIncrement:!0}).createIndex(Sa.userMutationsIndex,Sa.userMutationsKeyPath,{unique:!0}),t.createObjectStore(_a.store)}(t),Qc(t),function(t){t.createObjectStore(Da.store)}(t));let i=qa.resolve();return n<3&&s>=3&&(0!==n&&(function(t){t.deleteObjectStore(ka.store),t.deleteObjectStore(Ca.store),t.deleteObjectStore(Ra.store)}(t),Qc(t)),i=i.next((()=>function(t){const e=t.store(Ra.store),n=new Ra(0,0,cr.min().toTimestamp(),0);return e.put(Ra.key,n)}(r)))),n<4&&s>=4&&(0!==n&&(i=i.next((()=>function(t,e){return e.store(Sa.store).Lt().next((n=>{t.deleteObjectStore(Sa.store),t.createObjectStore(Sa.store,{keyPath:Sa.keyPath,autoIncrement:!0}).createIndex(Sa.userMutationsIndex,Sa.userMutationsKeyPath,{unique:!0});const s=e.store(Sa.store),r=n.map((t=>s.put(t)));return qa.waitFor(r)}))}(t,r)))),i=i.next((()=>{!function(t){t.createObjectStore(Oa.store,{keyPath:Oa.keyPath})}(t)}))),n<5&&s>=5&&(i=i.next((()=>this.Ce(r)))),n<6&&s>=6&&(i=i.next((()=>(function(t){t.createObjectStore(xa.store)}(t),this.Ne(r))))),n<7&&s>=7&&(i=i.next((()=>this.xe(r)))),n<8&&s>=8&&(i=i.next((()=>this.ke(t,r)))),n<9&&s>=9&&(i=i.next((()=>{!function(t){t.objectStoreNames.contains("remoteDocumentChanges")&&t.deleteObjectStore("remoteDocumentChanges")}(t),function(t){const e=t.objectStore(Da.store);e.createIndex(Da.readTimeIndex,Da.readTimeIndexPath,{unique:!1}),e.createIndex(Da.collectionReadTimeIndex,Da.collectionReadTimeIndexPath,{unique:!1})}(e)}))),n<10&&s>=10&&(i=i.next((()=>this.$e(r)))),n<11&&s>=11&&(i=i.next((()=>{!function(t){t.createObjectStore(Ma.store,{keyPath:Ma.keyPath})}(t),function(t){t.createObjectStore(Fa.store,{keyPath:Fa.keyPath})}(t)}))),i}Ne(t){let e=0;return t.store(Da.store).Kt(((t,n)=>{e+=Ec(n)})).next((()=>{const n=new xa(e);return t.store(xa.store).put(xa.key,n)}))}Ce(t){const e=t.store(Ia.store),n=t.store(Sa.store);return e.Lt().next((e=>qa.forEach(e,(e=>{const s=IDBKeyRange.bound([e.userId,-1],[e.userId,e.lastAcknowledgedBatchId]);return n.Lt(Sa.userMutationsIndex,s).next((n=>qa.forEach(n,(n=>{Ks(n.userId===e.userId);const s=cc(this.N,n);return Tc(t,e.userId,s).next((()=>{}))}))))}))))}xe(t){const e=t.store(ka.store),n=t.store(Da.store);return t.store(Ra.store).get(Ra.key).next((t=>{const s=[];return n.Kt(((n,r)=>{const i=new fr(n),o=function(t){return[0,ya(t)]}(i);s.push(e.get(o).next((n=>n?qa.resolve():(n=>e.put(new ka(0,ya(n),t.highestListenSequenceNumber)))(i))))})).next((()=>qa.waitFor(s)))}))}ke(t,e){t.createObjectStore(La.store,{keyPath:La.keyPath});const n=e.store(La.store),s=new pc,r=t=>{if(s.add(t)){const e=t.lastSegment(),s=t.popLast();return n.put({collectionId:e,parent:ya(s)})}};return e.store(Da.store).Kt({qt:!0},((t,e)=>{const n=new fr(t);return r(n.popLast())})).next((()=>e.store(_a.store).Kt({qt:!0},(([t,e,n],s)=>{const i=ba(e);return r(i.popLast())}))))}$e(t){const e=t.store(Ca.store);return e.Kt(((t,n)=>{const s=uc(n),r=hc(this.N,s);return e.put(r)}))}}function Qc(t){t.createObjectStore(ka.store,{keyPath:ka.keyPath}).createIndex(ka.documentTargetsIndex,ka.documentTargetsKeyPath,{unique:!0}),t.createObjectStore(Ca.store,{keyPath:Ca.keyPath}).createIndex(Ca.queryTargetsIndexName,Ca.queryTargetsKeyPath,{unique:!0}),t.createObjectStore(Ra.store)}const Wc="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 Yc{constructor(t,e,n,s,r,i,o,a,c,u){if(this.allowTabSynchronization=t,this.persistenceKey=e,this.clientId=n,this.Oe=r,this.window=i,this.document=o,this.Fe=c,this.Me=u,this.Le=null,this.Be=!1,this.isPrimary=!1,this.networkEnabled=!0,this.Ue=null,this.inForeground=!1,this.qe=null,this.Ke=null,this.je=Number.NEGATIVE_INFINITY,this.Qe=t=>Promise.resolve(),!Yc.bt())throw new zs(Hs.UNIMPLEMENTED,"This platform is either missing IndexedDB or is known to have an incomplete implementation. Offline persistence has been disabled.");this.referenceDelegate=new Vc(this,s),this.We=e+"main",this.N=new ec(a),this.Ge=new ja(this.We,11,new zc(this.N)),this.ze=new xc(this.referenceDelegate,this.N),this.Ht=new yc,this.He=function(t,e){return new jc(t,e)}(this.N,this.Ht),this.Je=new dc,this.window&&this.window.localStorage?this.Ye=this.window.localStorage:(this.Ye=null,!1===u&&Us("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.Xe().then((()=>{if(!this.isPrimary&&!this.allowTabSynchronization)throw new zs(Hs.FAILED_PRECONDITION,Wc);return this.Ze(),this.tn(),this.en(),this.runTransaction("getHighestListenSequenceNumber","readonly",(t=>this.ze.getHighestSequenceNumber(t)))})).then((t=>{this.Le=new er(t,this.Fe)})).then((()=>{this.Be=!0})).catch((t=>(this.Ge&&this.Ge.close(),Promise.reject(t))))}nn(t){return this.Qe=async e=>{if(this.started)return t(e)},t(this.isPrimary)}setDatabaseDeletedListener(t){this.Ge.xt((async e=>{null===e.newVersion&&await t()}))}setNetworkEnabled(t){this.networkEnabled!==t&&(this.networkEnabled=t,this.Oe.enqueueAndForget((async()=>{this.started&&await this.Xe()})))}Xe(){return this.runTransaction("updateClientMetadataAndTryBecomePrimary","readwrite",(t=>Jc(t).put(new Oa(this.clientId,Date.now(),this.networkEnabled,this.inForeground)).next((()=>{if(this.isPrimary)return this.sn(t).next((t=>{t||(this.isPrimary=!1,this.Oe.enqueueRetryable((()=>this.Qe(!1))))}))})).next((()=>this.rn(t))).next((e=>this.isPrimary&&!e?this.on(t).next((()=>!1)):!!e&&this.cn(t).next((()=>!0)))))).catch((t=>{if(Ga(t))return Vs("IndexedDbPersistence","Failed to extend owner lease: ",t),this.isPrimary;if(!this.allowTabSynchronization)throw t;return Vs("IndexedDbPersistence","Releasing owner lease after error during lease refresh",t),!1})).then((t=>{this.isPrimary!==t&&this.Oe.enqueueRetryable((()=>this.Qe(t))),this.isPrimary=t}))}sn(t){return Xc(t).get(Ea.key).next((t=>qa.resolve(this.an(t))))}un(t){return Jc(t).delete(this.clientId)}async hn(){if(this.isPrimary&&!this.ln(this.je,18e5)){this.je=Date.now();const t=await this.runTransaction("maybeGarbageCollectMultiClientState","readwrite-primary",(t=>{const e=Xa(t,Oa.store);return e.Lt().next((t=>{const n=this.fn(t,18e5),s=t.filter((t=>-1===n.indexOf(t)));return qa.forEach(s,(t=>e.delete(t.clientId))).next((()=>s))}))})).catch((()=>[]));if(this.Ye)for(const e of t)this.Ye.removeItem(this.dn(e.clientId))}}en(){this.Ke=this.Oe.enqueueAfterDelay("client_metadata_refresh",4e3,(()=>this.Xe().then((()=>this.hn())).then((()=>this.en()))))}an(t){return!!t&&t.ownerId===this.clientId}rn(t){return this.Me?qa.resolve(!0):Xc(t).get(Ea.key).next((e=>{if(null!==e&&this.ln(e.leaseTimestampMs,5e3)&&!this.wn(e.ownerId)){if(this.an(e)&&this.networkEnabled)return!0;if(!this.an(e)){if(!e.allowTabSynchronization)throw new zs(Hs.FAILED_PRECONDITION,Wc);return!1}}return!(!this.networkEnabled||!this.inForeground)||Jc(t).Lt().next((t=>void 0===this.fn(t,5e3).find((t=>{if(this.clientId!==t.clientId){const e=!this.networkEnabled&&t.networkEnabled,n=!this.inForeground&&t.inForeground,s=this.networkEnabled===t.networkEnabled;if(e||n&&s)return!0}return!1}))))})).next((t=>(this.isPrimary!==t&&Vs("IndexedDbPersistence",`Client ${t?"is":"is not"} eligible for a primary lease.`),t)))}async shutdown(){this.Be=!1,this._n(),this.Ke&&(this.Ke.cancel(),this.Ke=null),this.mn(),this.gn(),await this.Ge.runTransaction("shutdown","readwrite",[Ea.store,Oa.store],(t=>{const e=new Ya(t,er.T);return this.on(e).next((()=>this.un(e)))})),this.Ge.close(),this.yn()}fn(t,e){return t.filter((t=>this.ln(t.updateTimeMs,e)&&!this.wn(t.clientId)))}pn(){return this.runTransaction("getActiveClients","readonly",(t=>Jc(t).Lt().next((t=>this.fn(t,18e5).map((t=>t.clientId))))))}get started(){return this.Be}getMutationQueue(t){return Ic.Yt(t,this.N,this.Ht,this.referenceDelegate)}getTargetCache(){return this.ze}getRemoteDocumentCache(){return this.He}getIndexManager(){return this.Ht}getBundleCache(){return this.Je}runTransaction(t,e,n){Vs("IndexedDbPersistence","Starting transaction:",t);const s="readonly"===e?"readonly":"readwrite";let r;return this.Ge.runTransaction(t,s,Pa,(s=>(r=new Ya(s,this.Le?this.Le.next():er.T),"readwrite-primary"===e?this.sn(r).next((t=>!!t||this.rn(r))).next((e=>{if(!e)throw Us(`Failed to obtain primary lease for action '${t}'.`),this.isPrimary=!1,this.Oe.enqueueRetryable((()=>this.Qe(!1))),new zs(Hs.FAILED_PRECONDITION,Va);return n(r)})).next((t=>this.cn(r).next((()=>t)))):this.Tn(r).next((()=>n(r)))))).then((t=>(r.raiseOnCommittedEvent(),t)))}Tn(t){return Xc(t).get(Ea.key).next((t=>{if(null!==t&&this.ln(t.leaseTimestampMs,5e3)&&!this.wn(t.ownerId)&&!this.an(t)&&!(this.Me||this.allowTabSynchronization&&t.allowTabSynchronization))throw new zs(Hs.FAILED_PRECONDITION,Wc)}))}cn(t){const e=new Ea(this.clientId,this.allowTabSynchronization,Date.now());return Xc(t).put(Ea.key,e)}static bt(){return ja.bt()}on(t){const e=Xc(t);return e.get(Ea.key).next((t=>this.an(t)?(Vs("IndexedDbPersistence","Releasing primary lease."),e.delete(Ea.key)):qa.resolve()))}ln(t,e){const n=Date.now();return!(tn&&(Us(`Detected an update time that is in the future: ${t} > ${n}`),1))}Ze(){null!==this.document&&"function"==typeof this.document.addEventListener&&(this.qe=()=>{this.Oe.enqueueAndForget((()=>(this.inForeground="visible"===this.document.visibilityState,this.Xe())))},this.document.addEventListener("visibilitychange",this.qe),this.inForeground="visible"===this.document.visibilityState)}mn(){this.qe&&(this.document.removeEventListener("visibilitychange",this.qe),this.qe=null)}tn(){var t;"function"==typeof(null===(t=this.window)||void 0===t?void 0:t.addEventListener)&&(this.Ue=()=>{this._n(),l()&&navigator.appVersion.match("Version/14")&&this.Oe.enterRestrictedMode(!0),this.Oe.enqueueAndForget((()=>this.shutdown()))},this.window.addEventListener("pagehide",this.Ue))}gn(){this.Ue&&(this.window.removeEventListener("pagehide",this.Ue),this.Ue=null)}wn(t){var e;try{const n=null!==(null===(e=this.Ye)||void 0===e?void 0:e.getItem(this.dn(t)));return Vs("IndexedDbPersistence",`Client '${t}' ${n?"is":"is not"} zombied in LocalStorage`),n}catch(t){return Us("IndexedDbPersistence","Failed to get zombied client id.",t),!1}}_n(){if(this.Ye)try{this.Ye.setItem(this.dn(this.clientId),String(Date.now()))}catch(t){Us("Failed to set zombie client id.",t)}}yn(){if(this.Ye)try{this.Ye.removeItem(this.dn(this.clientId))}catch(t){}}dn(t){return`firestore_zombie_${this.persistenceKey}_${t}`}}function Xc(t){return Xa(t,Ea.store)}function Jc(t){return Xa(t,Oa.store)}function Zc(t,e){let n=t.projectId;return t.isDefaultDatabase||(n+="."+t.database),"firestore/"+e+"/"+n+"/" +/** + * @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. + */}class tu{constructor(t,e){this.progress=t,this.En=e}} +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */class eu{constructor(t,e,n){this.He=t,this.In=e,this.Ht=n}An(t,e){return this.In.getAllMutationBatchesAffectingDocumentKey(t,e).next((n=>this.Rn(t,e,n)))}Rn(t,e,n){return this.He.getEntry(t,e).next((t=>{for(const e of n)e.applyToLocalView(t);return t}))}bn(t,e){t.forEach(((t,n)=>{for(const t of e)t.applyToLocalView(n)}))}Pn(t,e){return this.He.getEntries(t,e).next((e=>this.vn(t,e).next((()=>e))))}vn(t,e){return this.In.getAllMutationBatchesAffectingDocumentKeys(t,e).next((t=>this.bn(e,t)))}getDocumentsMatchingQuery(t,e,n){return function(t){return xr.isDocumentKey(t.path)&&null===t.collectionGroup&&0===t.filters.length}(e)?this.Vn(t,e.path):bi(e)?this.Sn(t,e,n):this.Dn(t,e,n)}Vn(t,e){return this.An(t,new xr(e)).next((t=>{let e=Eo();return t.isFoundDocument()&&(e=e.insert(t.key,t)),e}))}Sn(t,e,n){const s=e.collectionGroup;let r=Eo();return this.Ht.getCollectionParents(t,s).next((i=>qa.forEach(i,(i=>{const o=function(t,e){return new fi(e,null,t.explicitOrderBy.slice(),t.filters.slice(),t.limit,t.limitType,t.startAt,t.endAt)}(e,i.child(s));return this.Dn(t,o,n).next((t=>{t.forEach(((t,e)=>{r=r.insert(t,e)}))}))})).next((()=>r))))}Dn(t,e,n){let s,r;return this.He.getDocumentsMatchingQuery(t,e,n).next((n=>(s=n,this.In.getAllMutationBatchesAffectingQuery(t,e)))).next((e=>(r=e,this.Cn(t,r,s).next((t=>{s=t;for(const t of r)for(const e of t.mutations){const n=e.key;let r=s.get(n);null==r&&(r=Hr.newInvalidDocument(n),s=s.insert(n,r)),Xi(e,r,t.localWriteTime),r.isFoundDocument()||(s=s.remove(n))}}))))).next((()=>(s.forEach(((t,n)=>{Ai(e,n)||(s=s.remove(t))})),s)))}Cn(t,e,n){let s=No();for(const t of e)for(const e of t.mutations)e instanceof no&&null===n.get(e.key)&&(s=s.add(e.key));let r=n;return this.He.getEntries(t,s).next((t=>(t.forEach(((t,e)=>{e.isFoundDocument()&&(r=r.insert(t,e))})),r)))}} +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */class nu{constructor(t,e,n,s){this.targetId=t,this.fromCache=e,this.Nn=n,this.xn=s}static kn(t,e){let n=No(),s=No();for(const t of e.docChanges)switch(t.type){case 0:n=n.add(t.doc.key);break;case 1:s=s.add(t.doc.key)}return new nu(t,e.fromCache,n,s)}} +/** + * @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 su{$n(t){this.On=t}getDocumentsMatchingQuery(t,e,n,s){return function(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())}(e)||n.isEqual(cr.min())?this.Fn(t,e):this.On.Pn(t,s).next((r=>{const i=this.Mn(e,r);return(pi(e)||yi(e))&&this.Ln(e.limitType,i,s,n)?this.Fn(t,e):(Fs()<=p.DEBUG&&Vs("QueryEngine","Re-using previous result from %s to execute query: %s",n.toString(),Ni(e)),this.On.getDocumentsMatchingQuery(t,e,n).next((t=>(i.forEach((e=>{t=t.insert(e.key,e)})),t))))}))}Mn(t,e){let n=new yo(Di(t));return e.forEach(((e,s)=>{Ai(t,s)&&(n=n.add(s))})),n}Ln(t,e,n,s){if(n.size!==e.size)return!0;const r="F"===t?e.last():e.first();return!!r&&(r.hasPendingWrites||r.version.compareTo(s)>0)}Fn(t,e){return Fs()<=p.DEBUG&&Vs("QueryEngine","Using full collection scan to execute query:",Ni(e)),this.On.getDocumentsMatchingQuery(t,e,cr.min())}} +/** + * @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. + */class ru{constructor(t,e,n,s){this.persistence=t,this.Bn=e,this.N=s,this.Un=new go(rr),this.qn=new qc((t=>Wr(t)),Yr),this.Kn=cr.min(),this.In=t.getMutationQueue(n),this.jn=t.getRemoteDocumentCache(),this.ze=t.getTargetCache(),this.Qn=new eu(this.jn,this.In,this.persistence.getIndexManager()),this.Je=t.getBundleCache(),this.Bn.$n(this.Qn)}collectGarbage(t){return this.persistence.runTransaction("Collect garbage","readwrite-primary",(e=>t.collect(e,this.Un)))}}function iu(t,e,n,s){return new ru(t,e,n,s)}async function ou(t,e){const n=Gs(t);let s=n.In,r=n.Qn;const i=await n.persistence.runTransaction("Handle user change","readonly",(t=>{let i;return n.In.getAllMutationBatches(t).next((o=>(i=o,s=n.persistence.getMutationQueue(e),r=new eu(n.jn,s,n.persistence.getIndexManager()),s.getAllMutationBatches(t)))).next((e=>{const n=[],s=[];let o=No();for(const t of i){n.push(t.batchId);for(const e of t.mutations)o=o.add(e.key)}for(const t of e){s.push(t.batchId);for(const e of t.mutations)o=o.add(e.key)}return r.Pn(t,o).next((t=>({Wn:t,removedBatchIds:n,addedBatchIds:s})))}))}));return n.In=s,n.Qn=r,n.Bn.$n(n.Qn),i}function au(t){const e=Gs(t);return e.persistence.runTransaction("Get last remote snapshot version","readonly",(t=>e.ze.getLastRemoteSnapshotVersion(t)))}function cu(t,e,n,s,r){let i=No();return n.forEach((t=>i=i.add(t))),e.getEntries(t,i).next((t=>{let i=bo();return n.forEach(((n,o)=>{const a=t.get(n),c=(null==r?void 0:r.get(n))||s;o.isNoDocument()&&o.version.isEqual(cr.min())?(e.removeEntry(n,c),i=i.insert(n,o)):!a.isValidDocument()||o.version.compareTo(a.version)>0||0===o.version.compareTo(a.version)&&a.hasPendingWrites?(e.addEntry(o,c),i=i.insert(n,o)):Vs("LocalStore","Ignoring outdated watch update for ",n,". Current version:",a.version," Watch version:",o.version)})),i}))}function uu(t,e){const n=Gs(t);return n.persistence.runTransaction("Get next mutation batch","readonly",(t=>(void 0===e&&(e=-1),n.In.getNextMutationBatchAfterBatchId(t,e))))}function hu(t,e){const n=Gs(t);return n.persistence.runTransaction("Allocate target","readwrite",(t=>{let s;return n.ze.getTargetData(t,e).next((r=>r?(s=r,qa.resolve(s)):n.ze.allocateTargetId(t).next((r=>(s=new tc(e,r,0,t.currentSequenceNumber),n.ze.addTargetData(t,s).next((()=>s)))))))})).then((t=>{const s=n.Un.get(t.targetId);return(null===s||t.snapshotVersion.compareTo(s.snapshotVersion)>0)&&(n.Un=n.Un.insert(t.targetId,t),n.qn.set(e,t.targetId)),t}))}async function lu(t,e,n){const s=Gs(t),r=s.Un.get(e),i=n?"readwrite":"readwrite-primary";try{n||await s.persistence.runTransaction("Release target",i,(t=>s.persistence.referenceDelegate.removeTarget(t,r)))}catch(t){if(!Ga(t))throw t;Vs("LocalStore",`Failed to update sequence numbers for target ${e}: ${t}`)}s.Un=s.Un.remove(e),s.qn.delete(r.target)}function du(t,e,n){const s=Gs(t);let r=cr.min(),i=No();return s.persistence.runTransaction("Execute query","readonly",(t=>function(t,e,n){const s=Gs(t),r=s.qn.get(n);return void 0!==r?qa.resolve(s.Un.get(r)):s.ze.getTargetData(e,n)}(s,t,Ei(e)).next((e=>{if(e)return r=e.lastLimboFreeSnapshotVersion,s.ze.getMatchingKeysForTargetId(t,e.targetId).next((t=>{i=t}))})).next((()=>s.Bn.getDocumentsMatchingQuery(t,e,n?r:cr.min(),n?i:No()))).next((t=>({documents:t,Gn:i})))))}function fu(t,e){const n=Gs(t),s=Gs(n.ze),r=n.Un.get(e);return r?Promise.resolve(r.target):n.persistence.runTransaction("Get target data","readonly",(t=>s.Tt(t,e).next((t=>t?t.target:null))))}function gu(t){const e=Gs(t);return e.persistence.runTransaction("Get new document changes","readonly",(t=>function(t,e,n){const s=Gs(t);let r=bo(),i=rc(n);const o=Gc(e),a=IDBKeyRange.lowerBound(i,!0);return o.Kt({index:Da.readTimeIndex,range:a},((t,e)=>{const n=nc(s.N,e);r=r.insert(n.key,n),i=e.readTime})).next((()=>({En:r,readTime:ic(i)})))}(e.jn,t,e.Kn))).then((({En:t,readTime:n})=>(e.Kn=n,t)))}async function mu(t,e,n=No()){const s=await hu(t,Ei(lc(e.bundledQuery))),r=Gs(t);return r.persistence.runTransaction("Save named query","readwrite",(t=>{const i=$o(e.readTime);if(s.snapshotVersion.compareTo(i)>=0)return r.Je.saveNamedQuery(t,e);const o=s.withResumeToken(wr.EMPTY_BYTE_STRING,i);return r.Un=r.Un.insert(o.targetId,o),r.ze.updateTargetData(t,o).next((()=>r.ze.removeMatchingKeysForTargetId(t,s.targetId))).next((()=>r.ze.addMatchingKeys(t,n,s.targetId))).next((()=>r.Je.saveNamedQuery(t,e)))}))} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */class pu{constructor(t){this.N=t,this.Yn=new Map,this.Xn=new Map}getBundleMetadata(t,e){return qa.resolve(this.Yn.get(e))}saveBundleMetadata(t,e){var n;return this.Yn.set(e.id,{id:(n=e).id,version:n.version,createTime:$o(n.createTime)}),qa.resolve()}getNamedQuery(t,e){return qa.resolve(this.Xn.get(e))}saveNamedQuery(t,e){return this.Xn.set(e.name,function(t){return{name:t.name,query:lc(t.bundledQuery),readTime:$o(t.readTime)}}(e)),qa.resolve()}} +/** + * @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 yu{constructor(){this.Zn=new yo(wu.ts),this.es=new yo(wu.ns)}isEmpty(){return this.Zn.isEmpty()}addReference(t,e){const n=new wu(t,e);this.Zn=this.Zn.add(n),this.es=this.es.add(n)}ss(t,e){t.forEach((t=>this.addReference(t,e)))}removeReference(t,e){this.rs(new wu(t,e))}os(t,e){t.forEach((t=>this.removeReference(t,e)))}cs(t){const e=new xr(new fr([])),n=new wu(e,t),s=new wu(e,t+1),r=[];return this.es.forEachInRange([n,s],(t=>{this.rs(t),r.push(t.key)})),r}us(){this.Zn.forEach((t=>this.rs(t)))}rs(t){this.Zn=this.Zn.delete(t),this.es=this.es.delete(t)}hs(t){const e=new xr(new fr([])),n=new wu(e,t),s=new wu(e,t+1);let r=No();return this.es.forEachInRange([n,s],(t=>{r=r.add(t.key)})),r}containsKey(t){const e=new wu(t,0),n=this.Zn.firstAfterOrEqual(e);return null!==n&&t.isEqual(n.key)}}class wu{constructor(t,e){this.key=t,this.ls=e}static ts(t,e){return xr.comparator(t.key,e.key)||rr(t.ls,e.ls)}static ns(t,e){return rr(t.ls,e.ls)||xr.comparator(t.key,e.key)}} +/** + * @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 vu{constructor(t,e){this.Ht=t,this.referenceDelegate=e,this.In=[],this.fs=1,this.ds=new yo(wu.ts)}checkEmpty(t){return qa.resolve(0===this.In.length)}addMutationBatch(t,e,n,s){const r=this.fs;this.fs++,this.In.length>0&&this.In[this.In.length-1];const i=new Ja(r,e,n,s);this.In.push(i);for(const e of s)this.ds=this.ds.add(new wu(e.key,r)),this.Ht.addToCollectionParentIndex(t,e.key.path.popLast());return qa.resolve(i)}lookupMutationBatch(t,e){return qa.resolve(this.ws(e))}getNextMutationBatchAfterBatchId(t,e){const n=e+1,s=this._s(n),r=s<0?0:s;return qa.resolve(this.In.length>r?this.In[r]:null)}getHighestUnacknowledgedBatchId(){return qa.resolve(0===this.In.length?-1:this.fs-1)}getAllMutationBatches(t){return qa.resolve(this.In.slice())}getAllMutationBatchesAffectingDocumentKey(t,e){const n=new wu(e,0),s=new wu(e,Number.POSITIVE_INFINITY),r=[];return this.ds.forEachInRange([n,s],(t=>{const e=this.ws(t.ls);r.push(e)})),qa.resolve(r)}getAllMutationBatchesAffectingDocumentKeys(t,e){let n=new yo(rr);return e.forEach((t=>{const e=new wu(t,0),s=new wu(t,Number.POSITIVE_INFINITY);this.ds.forEachInRange([e,s],(t=>{n=n.add(t.ls)}))})),qa.resolve(this.gs(n))}getAllMutationBatchesAffectingQuery(t,e){const n=e.path,s=n.length+1;let r=n;xr.isDocumentKey(r)||(r=r.child(""));const i=new wu(new xr(r),0);let o=new yo(rr);return this.ds.forEachWhile((t=>{const e=t.key.path;return!!n.isPrefixOf(e)&&(e.length===s&&(o=o.add(t.ls)),!0)}),i),qa.resolve(this.gs(o))}gs(t){const e=[];return t.forEach((t=>{const n=this.ws(t);null!==n&&e.push(n)})),e}removeMutationBatch(t,e){Ks(0===this.ys(e.batchId,"removed")),this.In.shift();let n=this.ds;return qa.forEach(e.mutations,(s=>{const r=new wu(s.key,e.batchId);return n=n.delete(r),this.referenceDelegate.markPotentiallyOrphaned(t,s.key)})).next((()=>{this.ds=n}))}te(t){}containsKey(t,e){const n=new wu(e,0),s=this.ds.firstAfterOrEqual(n);return qa.resolve(e.isEqual(s&&s.key))}performConsistencyCheck(t){return this.In.length,qa.resolve()}ys(t,e){return this._s(t)}_s(t){return 0===this.In.length?0:t-this.In[0].batchId}ws(t){const e=this._s(t);return e<0||e>=this.In.length?null:this.In[e]}} +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */class bu{constructor(t,e){this.Ht=t,this.ps=e,this.docs=new go(xr.comparator),this.size=0}addEntry(t,e,n){const s=e.key,r=this.docs.get(s),i=r?r.size:0,o=this.ps(e);return this.docs=this.docs.insert(s,{document:e.clone(),size:o,readTime:n}),this.size+=o-i,this.Ht.addToCollectionParentIndex(t,s.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 qa.resolve(n?n.document.clone():Hr.newInvalidDocument(e))}getEntries(t,e){let n=bo();return e.forEach((t=>{const e=this.docs.get(t);n=n.insert(t,e?e.document.clone():Hr.newInvalidDocument(t))})),qa.resolve(n)}getDocumentsMatchingQuery(t,e,n){let s=bo();const r=new xr(e.path.child("")),i=this.docs.getIteratorFrom(r);for(;i.hasNext();){const{key:t,value:{document:r,readTime:o}}=i.getNext();if(!e.path.isPrefixOf(t.path))break;o.compareTo(n)<=0||Ai(e,r)&&(s=s.insert(r.key,r.clone()))}return qa.resolve(s)}Ts(t,e){return qa.forEach(this.docs,(t=>e(t)))}newChangeBuffer(t){return new Tu(this)}getSize(t){return qa.resolve(this.size)}}class Tu extends Bc{constructor(t){super(),this.Se=t}applyChanges(t){const e=[];return this.changes.forEach(((n,s)=>{s.document.isValidDocument()?e.push(this.Se.addEntry(t,s.document,this.getReadTime(n))):this.Se.removeEntry(n)})),qa.waitFor(e)}getFromCache(t,e){return this.Se.getEntry(t,e)}getAllFromCache(t,e){return this.Se.getEntries(t,e)}} +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */class Eu{constructor(t){this.persistence=t,this.Es=new qc((t=>Wr(t)),Yr),this.lastRemoteSnapshotVersion=cr.min(),this.highestTargetId=0,this.Is=0,this.As=new yu,this.targetCount=0,this.Rs=Dc.se()}forEachTarget(t,e){return this.Es.forEach(((t,n)=>e(n))),qa.resolve()}getLastRemoteSnapshotVersion(t){return qa.resolve(this.lastRemoteSnapshotVersion)}getHighestSequenceNumber(t){return qa.resolve(this.Is)}allocateTargetId(t){return this.highestTargetId=this.Rs.next(),qa.resolve(this.highestTargetId)}setTargetsMetadata(t,e,n){return n&&(this.lastRemoteSnapshotVersion=n),e>this.Is&&(this.Is=e),qa.resolve()}ce(t){this.Es.set(t.target,t);const e=t.targetId;e>this.highestTargetId&&(this.Rs=new Dc(e),this.highestTargetId=e),t.sequenceNumber>this.Is&&(this.Is=t.sequenceNumber)}addTargetData(t,e){return this.ce(e),this.targetCount+=1,qa.resolve()}updateTargetData(t,e){return this.ce(e),qa.resolve()}removeTargetData(t,e){return this.Es.delete(e.target),this.As.cs(e.targetId),this.targetCount-=1,qa.resolve()}removeTargets(t,e,n){let s=0;const r=[];return this.Es.forEach(((i,o)=>{o.sequenceNumber<=e&&null===n.get(o.targetId)&&(this.Es.delete(i),r.push(this.removeMatchingKeysForTargetId(t,o.targetId)),s++)})),qa.waitFor(r).next((()=>s))}getTargetCount(t){return qa.resolve(this.targetCount)}getTargetData(t,e){const n=this.Es.get(e)||null;return qa.resolve(n)}addMatchingKeys(t,e,n){return this.As.ss(e,n),qa.resolve()}removeMatchingKeys(t,e,n){this.As.os(e,n);const s=this.persistence.referenceDelegate,r=[];return s&&e.forEach((e=>{r.push(s.markPotentiallyOrphaned(t,e))})),qa.waitFor(r)}removeMatchingKeysForTargetId(t,e){return this.As.cs(e),qa.resolve()}getMatchingKeysForTargetId(t,e){const n=this.As.hs(e);return qa.resolve(n)}containsKey(t,e){return qa.resolve(this.As.containsKey(e))}} +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */class Iu{constructor(t,e){this.bs={},this.Le=new er(0),this.Be=!1,this.Be=!0,this.referenceDelegate=t(this),this.ze=new Eu(this),this.Ht=new mc,this.He=function(t,e){return new bu(t,e)}(this.Ht,(t=>this.referenceDelegate.Ps(t))),this.N=new ec(e),this.Je=new pu(this.N)}start(){return Promise.resolve()}shutdown(){return this.Be=!1,Promise.resolve()}get started(){return this.Be}setDatabaseDeletedListener(){}setNetworkEnabled(){}getIndexManager(){return this.Ht}getMutationQueue(t){let e=this.bs[t.toKey()];return e||(e=new vu(this.Ht,this.referenceDelegate),this.bs[t.toKey()]=e),e}getTargetCache(){return this.ze}getRemoteDocumentCache(){return this.He}getBundleCache(){return this.Je}runTransaction(t,e,n){Vs("MemoryPersistence","Starting transaction:",t);const s=new Su(this.Le.next());return this.referenceDelegate.vs(),n(s).next((t=>this.referenceDelegate.Vs(s).next((()=>t)))).toPromise().then((t=>(s.raiseOnCommittedEvent(),t)))}Ss(t,e){return qa.or(Object.values(this.bs).map((n=>()=>n.containsKey(t,e))))}}class Su extends Ua{constructor(t){super(),this.currentSequenceNumber=t}}class _u{constructor(t){this.persistence=t,this.Ds=new yu,this.Cs=null}static Ns(t){return new _u(t)}get xs(){if(this.Cs)return this.Cs;throw js()}addReference(t,e,n){return this.Ds.addReference(n,e),this.xs.delete(n.toString()),qa.resolve()}removeReference(t,e,n){return this.Ds.removeReference(n,e),this.xs.add(n.toString()),qa.resolve()}markPotentiallyOrphaned(t,e){return this.xs.add(e.toString()),qa.resolve()}removeTarget(t,e){this.Ds.cs(e.targetId).forEach((t=>this.xs.add(t.toString())));const n=this.persistence.getTargetCache();return n.getMatchingKeysForTargetId(t,e.targetId).next((t=>{t.forEach((t=>this.xs.add(t.toString())))})).next((()=>n.removeTargetData(t,e)))}vs(){this.Cs=new Set}Vs(t){const e=this.persistence.getRemoteDocumentCache().newChangeBuffer();return qa.forEach(this.xs,(n=>{const s=xr.fromPath(n);return this.ks(t,s).next((t=>{t||e.removeEntry(s)}))})).next((()=>(this.Cs=null,e.apply(t))))}updateLimboDocument(t,e){return this.ks(t,e).next((t=>{t?this.xs.delete(e.toString()):this.xs.add(e.toString())}))}Ps(t){return 0}ks(t,e){return qa.or([()=>qa.resolve(this.Ds.containsKey(e)),()=>this.persistence.getTargetCache().containsKey(t,e),()=>this.persistence.Ss(t,e)])}} +/** + * @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. + */function Nu(t,e){return`firestore_clients_${t}_${e}`}function Au(t,e,n){let s=`firestore_mutations_${t}_${n}`;return e.isAuthenticated()&&(s+=`_${e.uid}`),s}function Du(t,e){return`firestore_targets_${t}_${e}`}class xu{constructor(t,e,n,s){this.user=t,this.batchId=e,this.state=n,this.error=s}static $s(t,e,n){const s=JSON.parse(n);let r,i="object"==typeof s&&-1!==["pending","acknowledged","rejected"].indexOf(s.state)&&(void 0===s.error||"object"==typeof s.error);return i&&s.error&&(i="string"==typeof s.error.message&&"string"==typeof s.error.code,i&&(r=new zs(s.error.code,s.error.message))),i?new xu(t,e,s.state,r):(Us("SharedClientState",`Failed to parse mutation state for ID '${e}': ${n}`),null)}Os(){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 Cu{constructor(t,e,n){this.targetId=t,this.state=e,this.error=n}static $s(t,e){const n=JSON.parse(e);let s,r="object"==typeof n&&-1!==["not-current","current","rejected"].indexOf(n.state)&&(void 0===n.error||"object"==typeof n.error);return r&&n.error&&(r="string"==typeof n.error.message&&"string"==typeof n.error.code,r&&(s=new zs(n.error.code,n.error.message))),r?new Cu(t,n.state,s):(Us("SharedClientState",`Failed to parse target state for ID '${t}': ${e}`),null)}Os(){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 ku{constructor(t,e){this.clientId=t,this.activeTargetIds=e}static $s(t,e){const n=JSON.parse(e);let s="object"==typeof n&&n.activeTargetIds instanceof Array,r=Do();for(let t=0;s&&tthis.shutdown())),this.started=!0}writeSequenceNumber(t){this.setItem(this.Qs,JSON.stringify(t))}getAllActiveQueryTargets(){return this.ti(this.qs)}isActiveQueryTarget(t){let e=!1;return this.qs.forEach(((n,s)=>{s.activeTargetIds.has(t)&&(e=!0)})),e}addPendingMutation(t){this.ei(t,"pending")}updateMutationState(t,e,n){this.ei(t,e,n),this.ni(t)}addLocalQueryTarget(t){let e="not-current";if(this.isActiveQueryTarget(t)){const n=this.storage.getItem(Du(this.persistenceKey,t));if(n){const s=Cu.$s(t,n);s&&(e=s.state)}}return this.si.Fs(t),this.Ys(),e}removeLocalQueryTarget(t){this.si.Ms(t),this.Ys()}isLocalQueryTarget(t){return this.si.activeTargetIds.has(t)}clearQueryState(t){this.removeItem(Du(this.persistenceKey,t))}updateQueryState(t,e,n){this.ii(t,e,n)}handleUserChange(t,e,n){e.forEach((t=>{this.ni(t)})),this.currentUser=t,n.forEach((t=>{this.addPendingMutation(t)}))}setOnlineState(t){this.ri(t)}notifyBundleLoaded(){this.oi()}shutdown(){this.started&&(this.window.removeEventListener("storage",this.Bs),this.removeItem(this.js),this.started=!1)}getItem(t){const e=this.storage.getItem(t);return Vs("SharedClientState","READ",t,e),e}setItem(t,e){Vs("SharedClientState","SET",t,e),this.storage.setItem(t,e)}removeItem(t){Vs("SharedClientState","REMOVE",t),this.storage.removeItem(t)}Us(t){const e=t;if(e.storageArea===this.storage){if(Vs("SharedClientState","EVENT",e.key,e.newValue),e.key===this.js)return void Us("Received WebStorage notification for local change. Another client might have garbage-collected our state");this.Oe.enqueueRetryable((async()=>{if(this.started){if(null!==e.key)if(this.Ws.test(e.key)){if(null==e.newValue){const t=this.ci(e.key);return this.ai(t,null)}{const t=this.ui(e.key,e.newValue);if(t)return this.ai(t.clientId,t)}}else if(this.Gs.test(e.key)){if(null!==e.newValue){const t=this.hi(e.key,e.newValue);if(t)return this.li(t)}}else if(this.zs.test(e.key)){if(null!==e.newValue){const t=this.fi(e.key,e.newValue);if(t)return this.di(t)}}else if(e.key===this.Hs){if(null!==e.newValue){const t=this.Xs(e.newValue);if(t)return this.Zs(t)}}else if(e.key===this.Qs){const t=function(t){let e=er.T;if(null!=t)try{const n=JSON.parse(t);Ks("number"==typeof n),e=n}catch(t){Us("SharedClientState","Failed to read sequence number from WebStorage",t)}return e}(e.newValue);t!==er.T&&this.sequenceNumberHandler(t)}else if(e.key===this.Js)return this.syncEngine.wi()}else this.Ks.push(e)}))}}get si(){return this.qs.get(this.Ls)}Ys(){this.setItem(this.js,this.si.Os())}ei(t,e,n){const s=new xu(this.currentUser,t,e,n),r=Au(this.persistenceKey,this.currentUser,t);this.setItem(r,s.Os())}ni(t){const e=Au(this.persistenceKey,this.currentUser,t);this.removeItem(e)}ri(t){const e={clientId:this.Ls,onlineState:t};this.storage.setItem(this.Hs,JSON.stringify(e))}ii(t,e,n){const s=Du(this.persistenceKey,t),r=new Cu(t,e,n);this.setItem(s,r.Os())}oi(){this.setItem(this.Js,"value-not-used")}ci(t){const e=this.Ws.exec(t);return e?e[1]:null}ui(t,e){const n=this.ci(t);return ku.$s(n,e)}hi(t,e){const n=this.Gs.exec(t),s=Number(n[1]),r=void 0!==n[2]?n[2]:null;return xu.$s(new Ls(r),s,e)}fi(t,e){const n=this.zs.exec(t),s=Number(n[1]);return Cu.$s(s,e)}Xs(t){return Ru.$s(t)}async li(t){if(t.user.uid===this.currentUser.uid)return this.syncEngine._i(t.batchId,t.state,t.error);Vs("SharedClientState",`Ignoring mutation for non-active user ${t.user.uid}`)}di(t){return this.syncEngine.mi(t.targetId,t.state,t.error)}ai(t,e){const n=e?this.qs.insert(t,e):this.qs.remove(t),s=this.ti(this.qs),r=this.ti(n),i=[],o=[];return r.forEach((t=>{s.has(t)||i.push(t)})),s.forEach((t=>{r.has(t)||o.push(t)})),this.syncEngine.gi(i,o).then((()=>{this.qs=n}))}Zs(t){this.qs.get(t.clientId)&&this.onlineStateHandler(t.onlineState)}ti(t){let e=Do();return t.forEach(((t,n)=>{e=e.unionWith(n.activeTargetIds)})),e}}class Mu{constructor(){this.yi=new Lu,this.pi={},this.onlineStateHandler=null,this.sequenceNumberHandler=null}addPendingMutation(t){}updateMutationState(t,e,n){}addLocalQueryTarget(t){return this.yi.Fs(t),this.pi[t]||"not-current"}updateQueryState(t,e,n){this.pi[t]=e}removeLocalQueryTarget(t){this.yi.Ms(t)}isLocalQueryTarget(t){return this.yi.activeTargetIds.has(t)}clearQueryState(t){delete this.pi[t]}getAllActiveQueryTargets(){return this.yi.activeTargetIds}isActiveQueryTarget(t){return this.yi.activeTargetIds.has(t)}start(){return this.yi=new Lu,Promise.resolve()}handleUserChange(t,e,n){}setOnlineState(t){}shutdown(){}writeSequenceNumber(t){}notifyBundleLoaded(){}} +/** + * @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 Fu{Ti(t){}shutdown(){}} +/** + * @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 Pu{constructor(){this.Ei=()=>this.Ii(),this.Ai=()=>this.Ri(),this.bi=[],this.Pi()}Ti(t){this.bi.push(t)}shutdown(){window.removeEventListener("online",this.Ei),window.removeEventListener("offline",this.Ai)}Pi(){window.addEventListener("online",this.Ei),window.addEventListener("offline",this.Ai)}Ii(){Vs("ConnectivityMonitor","Network connectivity changed: AVAILABLE");for(const t of this.bi)t(0)}Ri(){Vs("ConnectivityMonitor","Network connectivity changed: UNAVAILABLE");for(const t of this.bi)t(1)}static bt(){return"undefined"!=typeof window&&void 0!==window.addEventListener&&void 0!==window.removeEventListener}} +/** + * @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. + */const Vu={BatchGetDocuments:"batchGet",Commit:"commit",RunQuery:"runQuery"}; +/** + * @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 Uu{constructor(t){this.vi=t.vi,this.Vi=t.Vi}Si(t){this.Di=t}Ci(t){this.Ni=t}onMessage(t){this.xi=t}close(){this.Vi()}send(t){this.vi(t)}ki(){this.Di()}$i(t){this.Ni(t)}Oi(t){this.xi(t)}} +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */class qu extends class{constructor(t){this.databaseInfo=t,this.databaseId=t.databaseId;const e=t.ssl?"https":"http";this.Fi=e+"://"+t.host,this.Mi="projects/"+this.databaseId.projectId+"/databases/"+this.databaseId.database+"/documents"}Li(t,e,n,s){const r=this.Bi(t,e);Vs("RestConnection","Sending: ",r,n);const i={};return this.Ui(i,s),this.qi(t,r,i,n).then((t=>(Vs("RestConnection","Received: ",t),t)),(e=>{throw qs("RestConnection",`${t} failed with error: `,e,"url: ",r,"request:",n),e}))}Ki(t,e,n,s){return this.Li(t,e,n,s)}Ui(t,e){if(t["X-Goog-Api-Client"]="gl-js/ fire/"+Os,t["Content-Type"]="text/plain",this.databaseInfo.appId&&(t["X-Firebase-GMPID"]=this.databaseInfo.appId),e)for(const n in e.authHeaders)e.authHeaders.hasOwnProperty(n)&&(t[n]=e.authHeaders[n])}Bi(t,e){const n=Vu[t];return`${this.Fi}/v1/${e}:${n}`}}{constructor(t){super(t),this.forceLongPolling=t.forceLongPolling,this.autoDetectLongPolling=t.autoDetectLongPolling,this.useFetchStreams=t.useFetchStreams}qi(t,e,n,s){return new Promise(((r,i)=>{const o=new ks;o.listenOnce(_s.COMPLETE,(()=>{try{switch(o.getLastErrorCode()){case Ss.NO_ERROR:const e=o.getResponseJson();Vs("Connection","XHR received:",JSON.stringify(e)),r(e);break;case Ss.TIMEOUT:Vs("Connection",'RPC "'+t+'" timed out'),i(new zs(Hs.DEADLINE_EXCEEDED,"Request time out"));break;case Ss.HTTP_ERROR:const n=o.getStatus();if(Vs("Connection",'RPC "'+t+'" failed with status:',n,"response text:",o.getResponseText()),n>0){const t=o.getResponseJson().error;if(t&&t.status&&t.message){const e=function(t){const e=t.toLowerCase().replace(/_/g,"-");return Object.values(Hs).indexOf(e)>=0?e:Hs.UNKNOWN}(t.status);i(new zs(e,t.message))}else i(new zs(Hs.UNKNOWN,"Server responded with status "+o.getStatus()))}else i(new zs(Hs.UNAVAILABLE,"Connection failed."));break;default:js()}}finally{Vs("Connection",'RPC "'+t+'" completed.')}}));const a=JSON.stringify(s);o.send(e,"POST",a,n,15)}))}ji(t,e){const n=[this.Fi,"/","google.firestore.v1.Firestore","/",t,"/channel"],s=new vs,r=de(),i={httpSessionIdParam:"gsessionid",initMessageHeaders:{},messageUrlParams:{database:`projects/${this.databaseId.projectId}/databases/${this.databaseId.database}`},sendRawJson:!0,supportsCrossDomainXhr:!0,internalChannelParams:{forwardChannelRequestTimeoutMs:6e5},forceLongPolling:this.forceLongPolling,detectBufferingProxy:this.autoDetectLongPolling};this.useFetchStreams&&(i.xmlHttpFactory=new xs({})),this.Ui(i.initMessageHeaders,e),"undefined"!=typeof window&&(window.cordova||window.phonegap||window.PhoneGap)&&/ios|iphone|ipod|ipad|android|blackberry|iemobile/i.test(h())||"object"==typeof navigator&&"ReactNative"===navigator.product||h().indexOf("Electron/")>=0||function(){const t=h();return t.indexOf("MSIE ")>=0||t.indexOf("Trident/")>=0}()||h().indexOf("MSAppHost/")>=0||function(){const t="object"==typeof chrome?chrome.runtime:"object"==typeof browser?browser.runtime:void 0;return"object"==typeof t&&void 0!==t.id}()||(i.httpHeadersOverwriteParam="$httpHeaders");const o=n.join("");Vs("Connection","Creating WebChannel: "+o,i);const a=s.createWebChannel(o,i);let c=!1,u=!1;const l=new Uu({vi:t=>{u?Vs("Connection","Not sending because WebChannel is closed:",t):(c||(Vs("Connection","Opening WebChannel transport."),a.open(),c=!0),Vs("Connection","WebChannel sending:",t),a.send(t))},Vi:()=>a.close()}),d=(t,e,n)=>{t.listen(e,(t=>{try{n(t)}catch(t){setTimeout((()=>{throw t}),0)}}))};return d(a,Cs.EventType.OPEN,(()=>{u||Vs("Connection","WebChannel transport opened.")})),d(a,Cs.EventType.CLOSE,(()=>{u||(u=!0,Vs("Connection","WebChannel transport closed"),l.$i())})),d(a,Cs.EventType.ERROR,(t=>{u||(u=!0,qs("Connection","WebChannel transport errored:",t),l.$i(new zs(Hs.UNAVAILABLE,"The operation could not be completed")))})),d(a,Cs.EventType.MESSAGE,(t=>{var e;if(!u){const n=t.data[0];Ks(!!n);const s=n,r=s.error||(null===(e=s[0])||void 0===e?void 0:e.error);if(r){Vs("Connection","WebChannel received error:",r);const t=r.status;let e=function(t){const e=uo[t];if(void 0!==e)return fo(e)}(t),n=r.message;void 0===e&&(e=Hs.INTERNAL,n="Unknown error status: "+t+" with message "+r.message),u=!0,l.$i(new zs(e,n)),a.close()}else Vs("Connection","WebChannel received:",n),l.Oi(n)}})),d(r,Ns.STAT_EVENT,(t=>{t.stat===As?Vs("Connection","Detected buffering proxy"):t.stat===Ds&&Vs("Connection","Detected no buffering proxy")})),setTimeout((()=>{l.ki()}),0),l}} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */function Bu(){return"undefined"!=typeof window?window:null}function ju(){return"undefined"!=typeof document?document:null} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */function Ku(t){return new qo(t,!0)}class $u{constructor(t,e,n=1e3,s=1.5,r=6e4){this.Oe=t,this.timerId=e,this.Qi=n,this.Wi=s,this.Gi=r,this.zi=0,this.Hi=null,this.Ji=Date.now(),this.reset()}reset(){this.zi=0}Yi(){this.zi=this.Gi}Xi(t){this.cancel();const e=Math.floor(this.zi+this.Zi()),n=Math.max(0,Date.now()-this.Ji),s=Math.max(0,e-n);s>0&&Vs("ExponentialBackoff",`Backing off for ${s} ms (base delay: ${this.zi} ms, delay with jitter: ${e} ms, last attempt: ${n} ms ago)`),this.Hi=this.Oe.enqueueAfterDelay(this.timerId,s,(()=>(this.Ji=Date.now(),t()))),this.zi*=this.Wi,this.zithis.Gi&&(this.zi=this.Gi)}tr(){null!==this.Hi&&(this.Hi.skipDelay(),this.Hi=null)}cancel(){null!==this.Hi&&(this.Hi.cancel(),this.Hi=null)}Zi(){return(Math.random()-.5)*this.zi}} +/** + * @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 Gu{constructor(t,e,n,s,r,i,o){this.Oe=t,this.er=n,this.nr=s,this.sr=r,this.credentialsProvider=i,this.listener=o,this.state=0,this.ir=0,this.rr=null,this.cr=null,this.stream=null,this.ar=new $u(t,e)}ur(){return 1===this.state||5===this.state||this.hr()}hr(){return 2===this.state||3===this.state}start(){4!==this.state?this.auth():this.lr()}async stop(){this.ur()&&await this.close(0)}dr(){this.state=0,this.ar.reset()}wr(){this.hr()&&null===this.rr&&(this.rr=this.Oe.enqueueAfterDelay(this.er,6e4,(()=>this._r())))}mr(t){this.gr(),this.stream.send(t)}async _r(){if(this.hr())return this.close(0)}gr(){this.rr&&(this.rr.cancel(),this.rr=null)}yr(){this.cr&&(this.cr.cancel(),this.cr=null)}async close(t,e){this.gr(),this.yr(),this.ar.cancel(),this.ir++,4!==t?this.ar.reset():e&&e.code===Hs.RESOURCE_EXHAUSTED?(Us(e.toString()),Us("Using maximum backoff delay to prevent overloading the backend."),this.ar.Yi()):e&&e.code===Hs.UNAUTHENTICATED&&3!==this.state&&this.credentialsProvider.invalidateToken(),null!==this.stream&&(this.pr(),this.stream.close(),this.stream=null),this.state=t,await this.listener.Ci(e)}pr(){}auth(){this.state=1;const t=this.Tr(this.ir),e=this.ir;this.credentialsProvider.getToken().then((t=>{this.ir===e&&this.Er(t)}),(e=>{t((()=>{const t=new zs(Hs.UNKNOWN,"Fetching auth token failed: "+e.message);return this.Ir(t)}))}))}Er(t){const e=this.Tr(this.ir);this.stream=this.Ar(t),this.stream.Si((()=>{e((()=>(this.state=2,this.cr=this.Oe.enqueueAfterDelay(this.nr,1e4,(()=>(this.hr()&&(this.state=3),Promise.resolve()))),this.listener.Si())))})),this.stream.Ci((t=>{e((()=>this.Ir(t)))})),this.stream.onMessage((t=>{e((()=>this.onMessage(t)))}))}lr(){this.state=5,this.ar.Xi((async()=>{this.state=0,this.start()}))}Ir(t){return Vs("PersistentStream",`close with error: ${t}`),this.stream=null,this.close(4,t)}Tr(t){return e=>{this.Oe.enqueueAndForget((()=>this.ir===t?e():(Vs("PersistentStream","stream callback skipped by getCloseGuardedDispatcher."),Promise.resolve())))}}}class Hu extends Gu{constructor(t,e,n,s,r){super(t,"listen_stream_connection_backoff","listen_stream_idle","health_check_timeout",e,n,r),this.N=s}Ar(t){return this.sr.ji("Listen",t)}onMessage(t){this.ar.reset();const e=function(t,e){let n;if("targetChange"in e){e.targetChange;const s=function(t){return"NO_CHANGE"===t?0:"ADD"===t?1:"REMOVE"===t?2:"CURRENT"===t?3:"RESET"===t?4:js()}(e.targetChange.targetChangeType||"NO_CHANGE"),r=e.targetChange.targetIds||[],i=function(t,e){return t.D?(Ks(void 0===e||"string"==typeof e),wr.fromBase64String(e||"")):(Ks(void 0===e||e instanceof Uint8Array),wr.fromUint8Array(e||new Uint8Array))}(t,e.targetChange.resumeToken),o=e.targetChange.cause,a=o&&function(t){const e=void 0===t.code?Hs.UNKNOWN:fo(t.code);return new zs(e,t.message||"")}(o);n=new Lo(s,r,i,a||null)}else if("documentChange"in e){e.documentChange;const s=e.documentChange;s.document,s.document.name,s.document.updateTime;const r=Qo(t,s.document.name),i=$o(s.document.updateTime),o=new $r({mapValue:{fields:s.document.fields}}),a=Hr.newFoundDocument(r,i,o),c=s.targetIds||[],u=s.removedTargetIds||[];n=new ko(c,u,a.key,a)}else if("documentDelete"in e){e.documentDelete;const s=e.documentDelete;s.document;const r=Qo(t,s.document),i=s.readTime?$o(s.readTime):cr.min(),o=Hr.newNoDocument(r,i),a=s.removedTargetIds||[];n=new ko([],a,o.key,o)}else if("documentRemove"in e){e.documentRemove;const s=e.documentRemove;s.document;const r=Qo(t,s.document),i=s.removedTargetIds||[];n=new ko([],i,r,null)}else{if(!("filter"in e))return js();{e.filter;const t=e.filter;t.targetId;const s=t.count||0,r=new co(s),i=t.targetId;n=new Ro(i,r)}}return n}(this.N,t),n=function(t){if(!("targetChange"in t))return cr.min();const e=t.targetChange;return e.targetIds&&e.targetIds.length?cr.min():e.readTime?$o(e.readTime):cr.min()}(t);return this.listener.Rr(e,n)}br(t){const e={};e.database=Xo(this.N),e.addTarget=function(t,e){let n;const s=e.target;return n=Xr(s)?{documents:sa(t,s)}:{query:ra(t,s)},n.targetId=e.targetId,e.resumeToken.approximateByteSize()>0?n.resumeToken=jo(t,e.resumeToken):e.snapshotVersion.compareTo(cr.min())>0&&(n.readTime=Bo(t,e.snapshotVersion.toTimestamp())),n}(this.N,t);const n=function(t,e){const n=function(t,e){switch(e){case 0:return null;case 1:return"existence-filter-mismatch";case 2:return"limbo-document";default:return js()}}(0,e.purpose);return null==n?null:{"goog-listen-tags":n}}(this.N,t);n&&(e.labels=n),this.mr(e)}Pr(t){const e={};e.database=Xo(this.N),e.removeTarget=t,this.mr(e)}}class zu extends Gu{constructor(t,e,n,s,r){super(t,"write_stream_connection_backoff","write_stream_idle","health_check_timeout",e,n,r),this.N=s,this.vr=!1}get Vr(){return this.vr}start(){this.vr=!1,this.lastStreamToken=void 0,super.start()}pr(){this.vr&&this.Sr([])}Ar(t){return this.sr.ji("Write",t)}onMessage(t){if(Ks(!!t.streamToken),this.lastStreamToken=t.streamToken,this.vr){this.ar.reset();const e=function(t,e){return t&&t.length>0?(Ks(void 0!==e),t.map((t=>function(t,e){let n=t.updateTime?$o(t.updateTime):$o(e);return n.isEqual(cr.min())&&(n=$o(e)),new Hi(n,t.transformResults||[])}(t,e)))):[]}(t.writeResults,t.commitTime),n=$o(t.commitTime);return this.listener.Dr(n,e)}return Ks(!t.writeResults||0===t.writeResults.length),this.vr=!0,this.listener.Cr()}Nr(){const t={};t.database=Xo(this.N),this.mr(t)}Sr(t){const e={streamToken:this.lastStreamToken,writes:t.map((t=>ea(this.N,t)))};this.mr(e)}} +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */class Qu extends class{}{constructor(t,e,n){super(),this.credentials=t,this.sr=e,this.N=n,this.kr=!1}$r(){if(this.kr)throw new zs(Hs.FAILED_PRECONDITION,"The client has already been terminated.")}Li(t,e,n){return this.$r(),this.credentials.getToken().then((s=>this.sr.Li(t,e,n,s))).catch((t=>{throw"FirebaseError"===t.name?(t.code===Hs.UNAUTHENTICATED&&this.credentials.invalidateToken(),t):new zs(Hs.UNKNOWN,t.toString())}))}Ki(t,e,n){return this.$r(),this.credentials.getToken().then((s=>this.sr.Ki(t,e,n,s))).catch((t=>{throw"FirebaseError"===t.name?(t.code===Hs.UNAUTHENTICATED&&this.credentials.invalidateToken(),t):new zs(Hs.UNKNOWN,t.toString())}))}terminate(){this.kr=!0}}class Wu{constructor(t,e){this.asyncQueue=t,this.onlineStateHandler=e,this.state="Unknown",this.Or=0,this.Fr=null,this.Mr=!0}Lr(){0===this.Or&&(this.Br("Unknown"),this.Fr=this.asyncQueue.enqueueAfterDelay("online_state_timeout",1e4,(()=>(this.Fr=null,this.Ur("Backend didn't respond within 10 seconds."),this.Br("Offline"),Promise.resolve()))))}qr(t){"Online"===this.state?this.Br("Unknown"):(this.Or++,this.Or>=1&&(this.Kr(),this.Ur(`Connection failed 1 times. Most recent error: ${t.toString()}`),this.Br("Offline")))}set(t){this.Kr(),this.Or=0,"Online"===t&&(this.Mr=!1),this.Br(t)}Br(t){t!==this.state&&(this.state=t,this.onlineStateHandler(t))}Ur(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.Mr?(Us(e),this.Mr=!1):Vs("OnlineStateTracker",e)}Kr(){null!==this.Fr&&(this.Fr.cancel(),this.Fr=null)}} +/** + * @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 Yu{constructor(t,e,n,s,r){this.localStore=t,this.datastore=e,this.asyncQueue=n,this.remoteSyncer={},this.jr=[],this.Qr=new Map,this.Wr=new Set,this.Gr=[],this.zr=r,this.zr.Ti((t=>{n.enqueueAndForget((async()=>{ih(this)&&(Vs("RemoteStore","Restarting streams for network reachability change."),await async function(t){const e=Gs(t);e.Wr.add(4),await Ju(e),e.Hr.set("Unknown"),e.Wr.delete(4),await Xu(e)}(this))}))})),this.Hr=new Wu(n,s)}}async function Xu(t){if(ih(t))for(const e of t.Gr)await e(!0)}async function Ju(t){for(const e of t.Gr)await e(!1)}function Zu(t,e){const n=Gs(t);n.Qr.has(e.targetId)||(n.Qr.set(e.targetId,e),rh(n)?sh(n):Eh(n).hr()&&eh(n,e))}function th(t,e){const n=Gs(t),s=Eh(n);n.Qr.delete(e),s.hr()&&nh(n,e),0===n.Qr.size&&(s.hr()?s.wr():ih(n)&&n.Hr.set("Unknown"))}function eh(t,e){t.Jr.Y(e.targetId),Eh(t).br(e)}function nh(t,e){t.Jr.Y(e),Eh(t).Pr(e)}function sh(t){t.Jr=new Mo({getRemoteKeysForTarget:e=>t.remoteSyncer.getRemoteKeysForTarget(e),Tt:e=>t.Qr.get(e)||null}),Eh(t).start(),t.Hr.Lr()}function rh(t){return ih(t)&&!Eh(t).ur()&&t.Qr.size>0}function ih(t){return 0===Gs(t).Wr.size}function oh(t){t.Jr=void 0}async function ah(t){t.Qr.forEach(((e,n)=>{eh(t,e)}))}async function ch(t,e){oh(t),rh(t)?(t.Hr.qr(e),sh(t)):t.Hr.set("Unknown")}async function uh(t,e,n){if(t.Hr.set("Online"),e instanceof Lo&&2===e.state&&e.cause)try{await async function(t,e){const n=e.cause;for(const s of e.targetIds)t.Qr.has(s)&&(await t.remoteSyncer.rejectListen(s,n),t.Qr.delete(s),t.Jr.removeTarget(s))}(t,e)}catch(n){Vs("RemoteStore","Failed to remove targets %s: %s ",e.targetIds.join(","),n),await hh(t,n)}else if(e instanceof ko?t.Jr.rt(e):e instanceof Ro?t.Jr.ft(e):t.Jr.at(e),!n.isEqual(cr.min()))try{const e=await au(t.localStore);n.compareTo(e)>=0&&await function(t,e){const n=t.Jr._t(e);return n.targetChanges.forEach(((n,s)=>{if(n.resumeToken.approximateByteSize()>0){const r=t.Qr.get(s);r&&t.Qr.set(s,r.withResumeToken(n.resumeToken,e))}})),n.targetMismatches.forEach((e=>{const n=t.Qr.get(e);if(!n)return;t.Qr.set(e,n.withResumeToken(wr.EMPTY_BYTE_STRING,n.snapshotVersion)),nh(t,e);const s=new tc(n.target,e,1,n.sequenceNumber);eh(t,s)})),t.remoteSyncer.applyRemoteEvent(n)}(t,n)}catch(e){Vs("RemoteStore","Failed to raise snapshot:",e),await hh(t,e)}}async function hh(t,e,n){if(!Ga(e))throw e;t.Wr.add(1),await Ju(t),t.Hr.set("Offline"),n||(n=()=>au(t.localStore)),t.asyncQueue.enqueueRetryable((async()=>{Vs("RemoteStore","Retrying IndexedDB access"),await n(),t.Wr.delete(1),await Xu(t)}))}function lh(t,e){return e().catch((n=>hh(t,n,e)))}async function dh(t){const e=Gs(t),n=Ih(e);let s=e.jr.length>0?e.jr[e.jr.length-1].batchId:-1;for(;fh(e);)try{const t=await uu(e.localStore,s);if(null===t){0===e.jr.length&&n.wr();break}s=t.batchId,gh(e,t)}catch(t){await hh(e,t)}mh(e)&&ph(e)}function fh(t){return ih(t)&&t.jr.length<10}function gh(t,e){t.jr.push(e);const n=Ih(t);n.hr()&&n.Vr&&n.Sr(e.mutations)}function mh(t){return ih(t)&&!Ih(t).ur()&&t.jr.length>0}function ph(t){Ih(t).start()}async function yh(t){Ih(t).Nr()}async function wh(t){const e=Ih(t);for(const n of t.jr)e.Sr(n.mutations)}async function vh(t,e,n){const s=t.jr.shift(),r=Za.from(s,e,n);await lh(t,(()=>t.remoteSyncer.applySuccessfulWrite(r))),await dh(t)}async function bh(t,e){e&&Ih(t).Vr&&await async function(t,e){if(lo(n=e.code)&&n!==Hs.ABORTED){const n=t.jr.shift();Ih(t).dr(),await lh(t,(()=>t.remoteSyncer.rejectFailedWrite(n.batchId,e))),await dh(t)}var n}(t,e),mh(t)&&ph(t)}async function Th(t,e){const n=Gs(t);e?(n.Wr.delete(2),await Xu(n)):e||(n.Wr.add(2),await Ju(n),n.Hr.set("Unknown"))}function Eh(t){return t.Yr||(t.Yr=function(t,e,n){const s=Gs(t);return s.$r(),new Hu(e,s.sr,s.credentials,s.N,n)}(t.datastore,t.asyncQueue,{Si:ah.bind(null,t),Ci:ch.bind(null,t),Rr:uh.bind(null,t)}),t.Gr.push((async e=>{e?(t.Yr.dr(),rh(t)?sh(t):t.Hr.set("Unknown")):(await t.Yr.stop(),oh(t))}))),t.Yr}function Ih(t){return t.Xr||(t.Xr=function(t,e,n){const s=Gs(t);return s.$r(),new zu(e,s.sr,s.credentials,s.N,n)}(t.datastore,t.asyncQueue,{Si:yh.bind(null,t),Ci:bh.bind(null,t),Cr:wh.bind(null,t),Dr:vh.bind(null,t)}),t.Gr.push((async e=>{e?(t.Xr.dr(),await dh(t)):(await t.Xr.stop(),t.jr.length>0&&(Vs("RemoteStore",`Stopping write stream with ${t.jr.length} pending writes`),t.jr=[]))}))),t.Xr +/** + * @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 Sh{constructor(t,e,n,s,r){this.asyncQueue=t,this.timerId=e,this.targetTimeMs=n,this.op=s,this.removalCallback=r,this.deferred=new Qs,this.then=this.deferred.promise.then.bind(this.deferred.promise),this.deferred.promise.catch((t=>{}))}static createAndSchedule(t,e,n,s,r){const i=Date.now()+n,o=new Sh(t,e,i,s,r);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 zs(Hs.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 _h(t,e){if(Us("AsyncQueue",`${e}: ${t}`),Ga(t))return new zs(Hs.UNAVAILABLE,`${e}: ${t}`);throw t} +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */class Nh{constructor(t){this.comparator=t?(e,n)=>t(e,n)||xr.comparator(e.key,n.key):(t,e)=>xr.comparator(t.key,e.key),this.keyedMap=Eo(),this.sortedSet=new go(this.comparator)}static emptySet(t){return new Nh(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 Nh))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,s=n.getNext().key;if(!t.isEqual(s))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 Nh;return n.comparator=this.comparator,n.keyedMap=t,n.sortedSet=e,n}} +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */class Ah{constructor(){this.Zr=new go(xr.comparator)}track(t){const e=t.doc.key,n=this.Zr.get(e);n?0!==t.type&&3===n.type?this.Zr=this.Zr.insert(e,t):3===t.type&&1!==n.type?this.Zr=this.Zr.insert(e,{type:n.type,doc:t.doc}):2===t.type&&2===n.type?this.Zr=this.Zr.insert(e,{type:2,doc:t.doc}):2===t.type&&0===n.type?this.Zr=this.Zr.insert(e,{type:0,doc:t.doc}):1===t.type&&0===n.type?this.Zr=this.Zr.remove(e):1===t.type&&2===n.type?this.Zr=this.Zr.insert(e,{type:1,doc:n.doc}):0===t.type&&1===n.type?this.Zr=this.Zr.insert(e,{type:2,doc:t.doc}):js():this.Zr=this.Zr.insert(e,t)}eo(){const t=[];return this.Zr.inorderTraversal(((e,n)=>{t.push(n)})),t}}class Dh{constructor(t,e,n,s,r,i,o,a){this.query=t,this.docs=e,this.oldDocs=n,this.docChanges=s,this.mutatedKeys=r,this.fromCache=i,this.syncStateChanged=o,this.excludesMetadataChanges=a}static fromInitialDocuments(t,e,n,s){const r=[];return e.forEach((t=>{r.push({type:0,doc:t})})),new Dh(t,e,Nh.emptySet(e),r,n,s,!0,!1)}get hasPendingWrites(){return!this.mutatedKeys.isEmpty()}isEqual(t){if(!(this.fromCache===t.fromCache&&this.syncStateChanged===t.syncStateChanged&&this.mutatedKeys.isEqual(t.mutatedKeys)&&Si(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;t_i(t)),Si),this.onlineState="Unknown",this.so=new Set}}async function kh(t,e){const n=Gs(t),s=e.query;let r=!1,i=n.queries.get(s);if(i||(r=!0,i=new xh),r)try{i.no=await n.onListen(s)}catch(t){const n=_h(t,`Initialization of query '${Ni(e.query)}' failed`);return void e.onError(n)}n.queries.set(s,i),i.listeners.push(e),e.io(n.onlineState),i.no&&e.ro(i.no)&&Mh(n)}async function Rh(t,e){const n=Gs(t),s=e.query;let r=!1;const i=n.queries.get(s);if(i){const t=i.listeners.indexOf(e);t>=0&&(i.listeners.splice(t,1),r=0===i.listeners.length)}if(r)return n.queries.delete(s),n.onUnlisten(s)}function Lh(t,e){const n=Gs(t);let s=!1;for(const t of e){const e=t.query,r=n.queries.get(e);if(r){for(const e of r.listeners)e.ro(t)&&(s=!0);r.no=t}}s&&Mh(n)}function Oh(t,e,n){const s=Gs(t),r=s.queries.get(e);if(r)for(const t of r.listeners)t.onError(n);s.queries.delete(e)}function Mh(t){t.so.forEach((t=>{t.next()}))}class Fh{constructor(t,e,n){this.query=t,this.oo=e,this.co=!1,this.ao=null,this.onlineState="Unknown",this.options=n||{}}ro(t){if(!this.options.includeMetadataChanges){const e=[];for(const n of t.docChanges)3!==n.type&&e.push(n);t=new Dh(t.query,t.docs,t.oldDocs,e,t.mutatedKeys,t.fromCache,t.syncStateChanged,!0)}let e=!1;return this.co?this.uo(t)&&(this.oo.next(t),e=!0):this.ho(t,this.onlineState)&&(this.lo(t),e=!0),this.ao=t,e}onError(t){this.oo.error(t)}io(t){this.onlineState=t;let e=!1;return this.ao&&!this.co&&this.ho(this.ao,t)&&(this.lo(this.ao),e=!0),e}ho(t,e){if(!t.fromCache)return!0;const n="Offline"!==e;return!(this.options.fo&&n||t.docs.isEmpty()&&"Offline"!==e)}uo(t){if(t.docChanges.length>0)return!0;const e=this.ao&&this.ao.hasPendingWrites!==t.hasPendingWrites;return!(!t.syncStateChanged&&!e)&&!0===this.options.includeMetadataChanges}lo(t){t=Dh.fromInitialDocuments(t.query,t.docs,t.mutatedKeys,t.fromCache),this.co=!0,this.oo.next(t)}} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */class Ph{constructor(t,e){this.payload=t,this.byteLength=e}wo(){return"metadata"in this.payload}} +/** + * @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. + */class Vh{constructor(t){this.N=t}zn(t){return Qo(this.N,t)}Hn(t){return t.metadata.exists?ta(this.N,t.document,!1):Hr.newNoDocument(this.zn(t.metadata.name),this.Jn(t.metadata.readTime))}Jn(t){return $o(t)}}class Uh{constructor(t,e,n){this._o=t,this.localStore=e,this.N=n,this.queries=[],this.documents=[],this.progress=qh(t)}mo(t){this.progress.bytesLoaded+=t.byteLength;let e=this.progress.documentsLoaded;return t.payload.namedQuery?this.queries.push(t.payload.namedQuery):t.payload.documentMetadata?(this.documents.push({metadata:t.payload.documentMetadata}),t.payload.documentMetadata.exists||++e):t.payload.document&&(this.documents[this.documents.length-1].document=t.payload.document,++e),e!==this.progress.documentsLoaded?(this.progress.documentsLoaded=e,Object.assign({},this.progress)):null}yo(t){const e=new Map,n=new Vh(this.N);for(const s of t)if(s.metadata.queries){const t=n.zn(s.metadata.name);for(const n of s.metadata.queries){const s=(e.get(n)||No()).add(t);e.set(n,s)}}return e}async complete(){const t=await async function(t,e,n,s){const r=Gs(t);let i=No(),o=bo(),a=So();for(const t of n){const n=e.zn(t.metadata.name);t.document&&(i=i.add(n)),o=o.insert(n,e.Hn(t)),a=a.insert(n,e.Jn(t.metadata.readTime))}const c=r.jn.newChangeBuffer({trackRemovals:!0}),u=await hu(r,function(t){return Ei(mi(fr.fromString(`__bundle__/docs/${t}`)))}(s));return r.persistence.runTransaction("Apply bundle documents","readwrite",(t=>cu(t,c,o,cr.min(),a).next((e=>(c.apply(t),e))).next((e=>r.ze.removeMatchingKeysForTargetId(t,u.targetId).next((()=>r.ze.addMatchingKeys(t,i,u.targetId))).next((()=>r.Qn.vn(t,e))).next((()=>e))))))}(this.localStore,new Vh(this.N),this.documents,this._o.id),e=this.yo(this.documents);for(const t of this.queries)await mu(this.localStore,t,e.get(t.name));return this.progress.taskState="Success",new tu(Object.assign({},this.progress),t)}}function qh(t){return{taskState:"Running",documentsLoaded:0,bytesLoaded:0,totalDocuments:t.totalDocuments,totalBytes:t.totalBytes}} +/** + * @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 Bh{constructor(t){this.key=t}}class jh{constructor(t){this.key=t}}class Kh{constructor(t,e){this.query=t,this.po=e,this.To=null,this.current=!1,this.Eo=No(),this.mutatedKeys=No(),this.Io=Di(t),this.Ao=new Nh(this.Io)}get Ro(){return this.po}bo(t,e){const n=e?e.Po:new Ah,s=e?e.Ao:this.Ao;let r=e?e.mutatedKeys:this.mutatedKeys,i=s,o=!1;const a=pi(this.query)&&s.size===this.query.limit?s.last():null,c=yi(this.query)&&s.size===this.query.limit?s.first():null;if(t.inorderTraversal(((t,e)=>{const u=s.get(t),h=Ai(this.query,e)?e:null,l=!!u&&this.mutatedKeys.has(u.key),d=!!h&&(h.hasLocalMutations||this.mutatedKeys.has(h.key)&&h.hasCommittedMutations);let f=!1;u&&h?u.data.isEqual(h.data)?l!==d&&(n.track({type:3,doc:h}),f=!0):this.vo(u,h)||(n.track({type:2,doc:h}),f=!0,(a&&this.Io(h,a)>0||c&&this.Io(h,c)<0)&&(o=!0)):!u&&h?(n.track({type:0,doc:h}),f=!0):u&&!h&&(n.track({type:1,doc:u}),f=!0,(a||c)&&(o=!0)),f&&(h?(i=i.add(h),r=d?r.add(t):r.delete(t)):(i=i.delete(t),r=r.delete(t)))})),pi(this.query)||yi(this.query))for(;i.size>this.query.limit;){const t=pi(this.query)?i.last():i.first();i=i.delete(t.key),r=r.delete(t.key),n.track({type:1,doc:t})}return{Ao:i,Po:n,Ln:o,mutatedKeys:r}}vo(t,e){return t.hasLocalMutations&&e.hasCommittedMutations&&!e.hasLocalMutations}applyChanges(t,e,n){const s=this.Ao;this.Ao=t.Ao,this.mutatedKeys=t.mutatedKeys;const r=t.Po.eo();r.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 js()}};return n(t)-n(e)}(t.type,e.type)||this.Io(t.doc,e.doc))),this.Vo(n);const i=e?this.So():[],o=0===this.Eo.size&&this.current?1:0,a=o!==this.To;return this.To=o,0!==r.length||a?{snapshot:new Dh(this.query,t.Ao,s,r,t.mutatedKeys,0===o,a,!1),Do:i}:{Do:i}}io(t){return this.current&&"Offline"===t?(this.current=!1,this.applyChanges({Ao:this.Ao,Po:new Ah,mutatedKeys:this.mutatedKeys,Ln:!1},!1)):{Do:[]}}Co(t){return!this.po.has(t)&&!!this.Ao.has(t)&&!this.Ao.get(t).hasLocalMutations}Vo(t){t&&(t.addedDocuments.forEach((t=>this.po=this.po.add(t))),t.modifiedDocuments.forEach((t=>{})),t.removedDocuments.forEach((t=>this.po=this.po.delete(t))),this.current=t.current)}So(){if(!this.current)return[];const t=this.Eo;this.Eo=No(),this.Ao.forEach((t=>{this.Co(t.key)&&(this.Eo=this.Eo.add(t.key))}));const e=[];return t.forEach((t=>{this.Eo.has(t)||e.push(new jh(t))})),this.Eo.forEach((n=>{t.has(n)||e.push(new Bh(n))})),e}No(t){this.po=t.Gn,this.Eo=No();const e=this.bo(t.documents);return this.applyChanges(e,!0)}xo(){return Dh.fromInitialDocuments(this.query,this.Ao,this.mutatedKeys,0===this.To)}}class $h{constructor(t,e,n){this.query=t,this.targetId=e,this.view=n}}class Gh{constructor(t){this.key=t,this.ko=!1}}class Hh{constructor(t,e,n,s,r,i){this.localStore=t,this.remoteStore=e,this.eventManager=n,this.sharedClientState=s,this.currentUser=r,this.maxConcurrentLimboResolutions=i,this.$o={},this.Oo=new qc((t=>_i(t)),Si),this.Fo=new Map,this.Mo=new Set,this.Lo=new go(xr.comparator),this.Bo=new Map,this.Uo=new yu,this.qo={},this.Ko=new Map,this.jo=Dc.ie(),this.onlineState="Unknown",this.Qo=void 0}get isPrimaryClient(){return!0===this.Qo}}async function zh(t,e){const n=vl(t);let s,r;const i=n.Oo.get(e);if(i)s=i.targetId,n.sharedClientState.addLocalQueryTarget(s),r=i.view.xo();else{const t=await hu(n.localStore,Ei(e)),i=n.sharedClientState.addLocalQueryTarget(t.targetId);s=t.targetId,r=await Qh(n,e,s,"current"===i),n.isPrimaryClient&&Zu(n.remoteStore,t)}return r}async function Qh(t,e,n,s){t.Wo=(e,n,s)=>async function(t,e,n,s){let r=e.view.bo(n);r.Ln&&(r=await du(t.localStore,e.query,!1).then((({documents:t})=>e.view.bo(t,r))));const i=s&&s.targetChanges.get(e.targetId),o=e.view.applyChanges(r,t.isPrimaryClient,i);return il(t,e.targetId,o.Do),o.snapshot}(t,e,n,s);const r=await du(t.localStore,e,!0),i=new Kh(e,r.Gn),o=i.bo(r.documents),a=Co.createSynthesizedTargetChangeForCurrentChange(n,s&&"Offline"!==t.onlineState),c=i.applyChanges(o,t.isPrimaryClient,a);il(t,n,c.Do);const u=new $h(e,n,i);return t.Oo.set(e,u),t.Fo.has(n)?t.Fo.get(n).push(e):t.Fo.set(n,[e]),c.snapshot}async function Wh(t,e){const n=Gs(t),s=n.Oo.get(e),r=n.Fo.get(s.targetId);if(r.length>1)return n.Fo.set(s.targetId,r.filter((t=>!Si(t,e)))),void n.Oo.delete(e);n.isPrimaryClient?(n.sharedClientState.removeLocalQueryTarget(s.targetId),n.sharedClientState.isActiveQueryTarget(s.targetId)||await lu(n.localStore,s.targetId,!1).then((()=>{n.sharedClientState.clearQueryState(s.targetId),th(n.remoteStore,s.targetId),sl(n,s.targetId)})).catch(Lc)):(sl(n,s.targetId),await lu(n.localStore,s.targetId,!0))}async function Yh(t,e){const n=Gs(t);try{const t=await function(t,e){const n=Gs(t),s=e.snapshotVersion;let r=n.Un;return n.persistence.runTransaction("Apply remote event","readwrite-primary",(t=>{const i=n.jn.newChangeBuffer({trackRemovals:!0});r=n.Un;const o=[];e.targetChanges.forEach(((e,i)=>{const a=r.get(i);if(!a)return;o.push(n.ze.removeMatchingKeys(t,e.removedDocuments,i).next((()=>n.ze.addMatchingKeys(t,e.addedDocuments,i))));const c=e.resumeToken;if(c.approximateByteSize()>0){const u=a.withResumeToken(c,s).withSequenceNumber(t.currentSequenceNumber);r=r.insert(i,u),function(t,e,n){return Ks(e.resumeToken.approximateByteSize()>0),0===t.resumeToken.approximateByteSize()||e.snapshotVersion.toMicroseconds()-t.snapshotVersion.toMicroseconds()>=3e8||n.addedDocuments.size+n.modifiedDocuments.size+n.removedDocuments.size>0}(a,u,e)&&o.push(n.ze.updateTargetData(t,u))}}));let a=bo();if(e.documentUpdates.forEach(((s,r)=>{e.resolvedLimboDocuments.has(s)&&o.push(n.persistence.referenceDelegate.updateLimboDocument(t,s))})),o.push(cu(t,i,e.documentUpdates,s,void 0).next((t=>{a=t}))),!s.isEqual(cr.min())){const e=n.ze.getLastRemoteSnapshotVersion(t).next((e=>n.ze.setTargetsMetadata(t,t.currentSequenceNumber,s)));o.push(e)}return qa.waitFor(o).next((()=>i.apply(t))).next((()=>n.Qn.vn(t,a))).next((()=>a))})).then((t=>(n.Un=r,t)))}(n.localStore,e);e.targetChanges.forEach(((t,e)=>{const s=n.Bo.get(e);s&&(Ks(t.addedDocuments.size+t.modifiedDocuments.size+t.removedDocuments.size<=1),t.addedDocuments.size>0?s.ko=!0:t.modifiedDocuments.size>0?Ks(s.ko):t.removedDocuments.size>0&&(Ks(s.ko),s.ko=!1))})),await cl(n,t,e)}catch(t){await Lc(t)}}function Xh(t,e,n){const s=Gs(t);if(s.isPrimaryClient&&0===n||!s.isPrimaryClient&&1===n){const t=[];s.Oo.forEach(((n,s)=>{const r=s.view.io(e);r.snapshot&&t.push(r.snapshot)})),function(t,e){const n=Gs(t);n.onlineState=e;let s=!1;n.queries.forEach(((t,n)=>{for(const t of n.listeners)t.io(e)&&(s=!0)})),s&&Mh(n)}(s.eventManager,e),t.length&&s.$o.Rr(t),s.onlineState=e,s.isPrimaryClient&&s.sharedClientState.setOnlineState(e)}}async function Jh(t,e,n){const s=Gs(t);s.sharedClientState.updateQueryState(e,"rejected",n);const r=s.Bo.get(e),i=r&&r.key;if(i){let t=new go(xr.comparator);t=t.insert(i,Hr.newNoDocument(i,cr.min()));const n=No().add(i),r=new xo(cr.min(),new Map,new yo(rr),t,n);await Yh(s,r),s.Lo=s.Lo.remove(i),s.Bo.delete(e),al(s)}else await lu(s.localStore,e,!1).then((()=>sl(s,e,n))).catch(Lc)}async function Zh(t,e){const n=Gs(t),s=e.batch.batchId;try{const t=await function(t,e){const n=Gs(t);return n.persistence.runTransaction("Acknowledge batch","readwrite-primary",(t=>{const s=e.batch.keys(),r=n.jn.newChangeBuffer({trackRemovals:!0});return function(t,e,n,s){const r=n.batch,i=r.keys();let o=qa.resolve();return i.forEach((t=>{o=o.next((()=>s.getEntry(e,t))).next((e=>{const i=n.docVersions.get(t);Ks(null!==i),e.version.compareTo(i)<0&&(r.applyToRemoteDocument(e,n),e.isValidDocument()&&s.addEntry(e,n.commitVersion))}))})),o.next((()=>t.In.removeMutationBatch(e,r)))}(n,t,e,r).next((()=>r.apply(t))).next((()=>n.In.performConsistencyCheck(t))).next((()=>n.Qn.Pn(t,s)))}))}(n.localStore,e);nl(n,s,null),el(n,s),n.sharedClientState.updateMutationState(s,"acknowledged"),await cl(n,t)}catch(t){await Lc(t)}}async function tl(t,e,n){const s=Gs(t);try{const t=await function(t,e){const n=Gs(t);return n.persistence.runTransaction("Reject batch","readwrite-primary",(t=>{let s;return n.In.lookupMutationBatch(t,e).next((e=>(Ks(null!==e),s=e.keys(),n.In.removeMutationBatch(t,e)))).next((()=>n.In.performConsistencyCheck(t))).next((()=>n.Qn.Pn(t,s)))}))}(s.localStore,e);nl(s,e,n),el(s,e),s.sharedClientState.updateMutationState(e,"rejected",n),await cl(s,t)}catch(t){await Lc(t)}}function el(t,e){(t.Ko.get(e)||[]).forEach((t=>{t.resolve()})),t.Ko.delete(e)}function nl(t,e,n){const s=Gs(t);let r=s.qo[s.currentUser.toKey()];if(r){const t=r.get(e);t&&(n?t.reject(n):t.resolve(),r=r.remove(e)),s.qo[s.currentUser.toKey()]=r}}function sl(t,e,n=null){t.sharedClientState.removeLocalQueryTarget(e);for(const s of t.Fo.get(e))t.Oo.delete(s),n&&t.$o.Go(s,n);t.Fo.delete(e),t.isPrimaryClient&&t.Uo.cs(e).forEach((e=>{t.Uo.containsKey(e)||rl(t,e)}))}function rl(t,e){t.Mo.delete(e.path.canonicalString());const n=t.Lo.get(e);null!==n&&(th(t.remoteStore,n),t.Lo=t.Lo.remove(e),t.Bo.delete(n),al(t))}function il(t,e,n){for(const s of n)s instanceof Bh?(t.Uo.addReference(s.key,e),ol(t,s)):s instanceof jh?(Vs("SyncEngine","Document no longer in limbo: "+s.key),t.Uo.removeReference(s.key,e),t.Uo.containsKey(s.key)||rl(t,s.key)):js()}function ol(t,e){const n=e.key,s=n.path.canonicalString();t.Lo.get(n)||t.Mo.has(s)||(Vs("SyncEngine","New document in limbo: "+n),t.Mo.add(s),al(t))}function al(t){for(;t.Mo.size>0&&t.Lo.size{o.push(s.Wo(a,e,n).then((t=>{if(t){s.isPrimaryClient&&s.sharedClientState.updateQueryState(a.targetId,t.fromCache?"not-current":"current"),r.push(t);const e=nu.kn(a.targetId,t);i.push(e)}})))})),await Promise.all(o),s.$o.Rr(r),await async function(t,e){const n=Gs(t);try{await n.persistence.runTransaction("notifyLocalViewChanges","readwrite",(t=>qa.forEach(e,(e=>qa.forEach(e.Nn,(s=>n.persistence.referenceDelegate.addReference(t,e.targetId,s))).next((()=>qa.forEach(e.xn,(s=>n.persistence.referenceDelegate.removeReference(t,e.targetId,s)))))))))}catch(t){if(!Ga(t))throw t;Vs("LocalStore","Failed to update sequence numbers: "+t)}for(const t of e){const e=t.targetId;if(!t.fromCache){const t=n.Un.get(e),s=t.snapshotVersion,r=t.withLastLimboFreeSnapshotVersion(s);n.Un=n.Un.insert(e,r)}}}(s.localStore,i))}async function ul(t,e){const n=Gs(t);if(!n.currentUser.isEqual(e)){Vs("SyncEngine","User change. New user:",e.toKey());const t=await ou(n.localStore,e);n.currentUser=e,function(t,e){t.Ko.forEach((t=>{t.forEach((t=>{t.reject(new zs(Hs.CANCELLED,"'waitForPendingWrites' promise is rejected due to a user change."))}))})),t.Ko.clear()}(n),n.sharedClientState.handleUserChange(e,t.removedBatchIds,t.addedBatchIds),await cl(n,t.Wn)}}function hl(t,e){const n=Gs(t),s=n.Bo.get(e);if(s&&s.ko)return No().add(s.key);{let t=No();const s=n.Fo.get(e);if(!s)return t;for(const e of s){const s=n.Oo.get(e);t=t.unionWith(s.view.Ro)}return t}}async function ll(t,e){const n=Gs(t),s=await du(n.localStore,e.query,!0),r=e.view.No(s);return n.isPrimaryClient&&il(n,e.targetId,r.Do),r}async function dl(t){const e=Gs(t);return gu(e.localStore).then((t=>cl(e,t)))}async function fl(t,e,n,s){const r=Gs(t),i=await function(t,e){const n=Gs(t),s=Gs(n.In);return n.persistence.runTransaction("Lookup mutation documents","readonly",(t=>s.Xt(t,e).next((e=>e?n.Qn.Pn(t,e):qa.resolve(null)))))}(r.localStore,e);null!==i?("pending"===n?await dh(r.remoteStore):"acknowledged"===n||"rejected"===n?(nl(r,e,s||null),el(r,e),function(t,e){Gs(Gs(t).In).te(e)}(r.localStore,e)):js(),await cl(r,i)):Vs("SyncEngine","Cannot apply mutation batch with id: "+e)}async function gl(t,e,n){const s=Gs(t),r=[],i=[];for(const t of e){let e;const n=s.Fo.get(t);if(n&&0!==n.length){e=await hu(s.localStore,Ei(n[0]));for(const t of n){const e=s.Oo.get(t),n=await ll(s,e);n.snapshot&&i.push(n.snapshot)}}else{const n=await fu(s.localStore,t);e=await hu(s.localStore,n),await Qh(s,ml(n),t,!1)}r.push(e)}return s.$o.Rr(i),r}function ml(t){return gi(t.path,t.collectionGroup,t.orderBy,t.filters,t.limit,"F",t.startAt,t.endAt)}function pl(t){const e=Gs(t);return Gs(Gs(e.localStore).persistence).pn()}async function yl(t,e,n,s){const r=Gs(t);if(r.Qo)Vs("SyncEngine","Ignoring unexpected query state notification.");else if(r.Fo.has(e))switch(n){case"current":case"not-current":{const t=await gu(r.localStore),s=xo.createSynthesizedRemoteEventForCurrentChange(e,"current"===n);await cl(r,t,s);break}case"rejected":await lu(r.localStore,e,!0),sl(r,e,s);break;default:js()}}async function wl(t,e,n){const s=vl(t);if(s.Qo){for(const t of e){if(s.Fo.has(t)){Vs("SyncEngine","Adding an already active target "+t);continue}const e=await fu(s.localStore,t),n=await hu(s.localStore,e);await Qh(s,ml(e),n.targetId,!1),Zu(s.remoteStore,n)}for(const t of n)s.Fo.has(t)&&await lu(s.localStore,t,!1).then((()=>{th(s.remoteStore,t),sl(s,t)})).catch(Lc)}}function vl(t){const e=Gs(t);return e.remoteStore.remoteSyncer.applyRemoteEvent=Yh.bind(null,e),e.remoteStore.remoteSyncer.getRemoteKeysForTarget=hl.bind(null,e),e.remoteStore.remoteSyncer.rejectListen=Jh.bind(null,e),e.$o.Rr=Lh.bind(null,e.eventManager),e.$o.Go=Oh.bind(null,e.eventManager),e}function bl(t){const e=Gs(t);return e.remoteStore.remoteSyncer.applySuccessfulWrite=Zh.bind(null,e),e.remoteStore.remoteSyncer.rejectFailedWrite=tl.bind(null,e),e}class Tl{constructor(){this.synchronizeTabs=!1}async initialize(t){this.N=Ku(t.databaseInfo.databaseId),this.sharedClientState=this.Ho(t),this.persistence=this.Jo(t),await this.persistence.start(),this.gcScheduler=this.Yo(t),this.localStore=this.Xo(t)}Yo(t){return null}Xo(t){return iu(this.persistence,new su,t.initialUser,this.N)}Jo(t){return new Iu(_u.Ns,this.N)}Ho(t){return new Mu}async terminate(){this.gcScheduler&&this.gcScheduler.stop(),await this.sharedClientState.shutdown(),await this.persistence.shutdown()}}class El extends Tl{constructor(t,e,n){super(),this.Zo=t,this.cacheSizeBytes=e,this.forceOwnership=n,this.synchronizeTabs=!1}async initialize(t){await super.initialize(t),await async function(t){const e=Gs(t);return e.persistence.runTransaction("Synchronize last document change read time","readonly",(t=>function(t){const e=Gc(t);let n=cr.min();return e.Kt({index:Da.readTimeIndex,reverse:!0},((t,e,s)=>{e.readTime&&(n=ic(e.readTime)),s.done()})).next((()=>n))}(t))).then((t=>{e.Kn=t}))}(this.localStore),await this.Zo.initialize(this,t),await bl(this.Zo.syncEngine),await dh(this.Zo.remoteStore),await this.persistence.nn((()=>(this.gcScheduler&&!this.gcScheduler.started&&this.gcScheduler.start(this.localStore),Promise.resolve())))}Xo(t){return iu(this.persistence,new su,t.initialUser,this.N)}Yo(t){const e=this.persistence.referenceDelegate.garbageCollector;return new Fc(e,t.asyncQueue)}Jo(t){const e=Zc(t.databaseInfo.databaseId,t.databaseInfo.persistenceKey),n=void 0!==this.cacheSizeBytes?bc.withCacheSize(this.cacheSizeBytes):bc.DEFAULT;return new Yc(this.synchronizeTabs,e,t.clientId,n,t.asyncQueue,Bu(),ju(),this.N,this.sharedClientState,!!this.forceOwnership)}Ho(t){return new Mu}}class Il extends El{constructor(t,e){super(t,e,!1),this.Zo=t,this.cacheSizeBytes=e,this.synchronizeTabs=!0}async initialize(t){await super.initialize(t);const e=this.Zo.syncEngine;this.sharedClientState instanceof Ou&&(this.sharedClientState.syncEngine={_i:fl.bind(null,e),mi:yl.bind(null,e),gi:wl.bind(null,e),pn:pl.bind(null,e),wi:dl.bind(null,e)},await this.sharedClientState.start()),await this.persistence.nn((async t=>{await async function(t,e){const n=Gs(t);if(vl(n),bl(n),!0===e&&!0!==n.Qo){const t=n.sharedClientState.getAllActiveQueryTargets(),e=await gl(n,t.toArray());n.Qo=!0,await Th(n.remoteStore,!0);for(const t of e)Zu(n.remoteStore,t)}else if(!1===e&&!1!==n.Qo){const t=[];let e=Promise.resolve();n.Fo.forEach(((s,r)=>{n.sharedClientState.isLocalQueryTarget(r)?t.push(r):e=e.then((()=>(sl(n,r),lu(n.localStore,r,!0)))),th(n.remoteStore,r)})),await e,await gl(n,t),function(t){const e=Gs(t);e.Bo.forEach(((t,n)=>{th(e.remoteStore,n)})),e.Uo.us(),e.Bo=new Map,e.Lo=new go(xr.comparator)}(n),n.Qo=!1,await Th(n.remoteStore,!1)}}(this.Zo.syncEngine,t),this.gcScheduler&&(t&&!this.gcScheduler.started?this.gcScheduler.start(this.localStore):t||this.gcScheduler.stop())}))}Ho(t){const e=Bu();if(!Ou.bt(e))throw new zs(Hs.UNIMPLEMENTED,"IndexedDB persistence is only available on platforms that support LocalStorage.");const n=Zc(t.databaseInfo.databaseId,t.databaseInfo.persistenceKey);return new Ou(e,t.asyncQueue,n,t.clientId,t.initialUser)}}class Sl{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=>Xh(this.syncEngine,t,1),this.remoteStore.remoteSyncer.handleCredentialChange=ul.bind(null,this.syncEngine),await Th(this.remoteStore,this.syncEngine.isPrimaryClient))}createEventManager(t){return new Ch}createDatastore(t){const e=Ku(t.databaseInfo.databaseId),n=(s=t.databaseInfo,new qu(s));var s;return function(t,e,n){return new Qu(t,e,n)}(t.credentials,n,e)}createRemoteStore(t){var e,n,s,r,i;return e=this.localStore,n=this.datastore,s=t.asyncQueue,r=t=>Xh(this.syncEngine,t,0),i=Pu.bt()?new Pu:new Fu,new Yu(e,n,s,r,i)}createSyncEngine(t,e){return function(t,e,n,s,r,i,o){const a=new Hh(t,e,n,s,r,i);return o&&(a.Qo=!0),a}(this.localStore,this.remoteStore,this.eventManager,this.sharedClientState,t.initialUser,t.maxConcurrentLimboResolutions,e)}terminate(){return async function(t){const e=Gs(t);Vs("RemoteStore","RemoteStore shutting down."),e.Wr.add(5),await Ju(e),e.zr.shutdown(),e.Hr.set("Unknown")}(this.remoteStore)}} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */function _l(t,e=10240){let n=0;return{async read(){if(n{this.muted||t(e)}),0)}} +/** + * @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. + */class Al{constructor(t,e){this.nc=t,this.N=e,this.metadata=new Qs,this.buffer=new Uint8Array,this.sc=new TextDecoder("utf-8"),this.ic().then((t=>{t&&t.wo()?this.metadata.resolve(t.payload.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.payload)}`))}),(t=>this.metadata.reject(t)))}close(){return this.nc.cancel()}async getMetadata(){return this.metadata.promise}async zo(){return await this.getMetadata(),this.ic()}async ic(){const t=await this.rc();if(null===t)return null;const e=this.sc.decode(t),n=Number(e);isNaN(n)&&this.oc(`length string (${e}) is not valid number`);const s=await this.cc(n);return new Ph(JSON.parse(s),t.length+n)}ac(){return this.buffer.findIndex((t=>t==="{".charCodeAt(0)))}async rc(){for(;this.ac()<0&&!await this.uc(););if(0===this.buffer.length)return null;const t=this.ac();t<0&&this.oc("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 cc(t){for(;this.buffer.length0)throw new zs(Hs.INVALID_ARGUMENT,"Firestore transactions require all reads to be executed before all writes.");const e=await async function(t,e){const n=Gs(t),s=Xo(n.N)+"/documents",r={documents:e.map((t=>zo(n.N,t)))},i=await n.Ki("BatchGetDocuments",s,r),o=new Map;i.forEach((t=>{const e=function(t,e){return"found"in e?function(t,e){Ks(!!e.found),e.found.name,e.found.updateTime;const n=Qo(t,e.found.name),s=$o(e.found.updateTime),r=new $r({mapValue:{fields:e.found.fields}});return Hr.newFoundDocument(n,s,r)}(t,e):"missing"in e?function(t,e){Ks(!!e.missing),Ks(!!e.readTime);const n=Qo(t,e.missing),s=$o(e.readTime);return Hr.newNoDocument(n,s)}(t,e):js()}(n.N,t);o.set(e.key.toString(),e)}));const a=[];return e.forEach((t=>{const e=o.get(t.toString());Ks(!!e),a.push(e)})),a}(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.lastWriteError=t}this.writtenDocs.add(t.toString())}delete(t){this.write(new oo(t,this.precondition(t))),this.writtenDocs.add(t.toString())}async commit(){if(this.ensureCommitNotCalled(),this.lastWriteError)throw this.lastWriteError;const t=this.readVersions;this.mutations.forEach((e=>{t.delete(e.key.toString())})),t.forEach(((t,e)=>{const n=xr.fromPath(e);this.mutations.push(new ao(n,this.precondition(n)))})),await async function(t,e){const n=Gs(t),s=Xo(n.N)+"/documents",r={writes:e.map((t=>ea(n.N,t)))};await n.Li("Commit",s,r)}(this.datastore,this.mutations),this.committed=!0}recordVersion(t){let e;if(t.isFoundDocument())e=t.version;else{if(!t.isNoDocument())throw js();e=cr.min()}const n=this.readVersions.get(t.key.toString());if(n){if(!e.isEqual(n))throw new zs(Hs.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?zi.updateTime(e):zi.none()}preconditionForUpdate(t){const e=this.readVersions.get(t.toString());if(!this.writtenDocs.has(t.toString())&&e){if(e.isEqual(cr.min()))throw new zs(Hs.INVALID_ARGUMENT,"Can't update a document that doesn't exist.");return zi.updateTime(e)}return zi.exists(!0)}write(t){this.ensureCommitNotCalled(),this.mutations.push(t)}ensureCommitNotCalled(){}} +/** + * @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 xl{constructor(t,e,n,s){this.asyncQueue=t,this.datastore=e,this.updateFunction=n,this.deferred=s,this.hc=5,this.ar=new $u(this.asyncQueue,"transaction_retry")}run(){this.hc-=1,this.lc()}lc(){this.ar.Xi((async()=>{const t=new Dl(this.datastore),e=this.fc(t);e&&e.then((e=>{this.asyncQueue.enqueueAndForget((()=>t.commit().then((()=>{this.deferred.resolve(e)})).catch((t=>{this.dc(t)}))))})).catch((t=>{this.dc(t)}))}))}fc(t){try{const e=this.updateFunction(t);return!Nr(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}}dc(t){this.hc>0&&this.wc(t)?(this.hc-=1,this.asyncQueue.enqueueAndForget((()=>(this.lc(),Promise.resolve())))):this.deferred.reject(t)}wc(t){if("FirebaseError"===t.name){const e=t.code;return"aborted"===e||"failed-precondition"===e||!lo(e)}return!1}} +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */class Cl{constructor(t,e,n){this.credentials=t,this.asyncQueue=e,this.databaseInfo=n,this.user=Ls.UNAUTHENTICATED,this.clientId=sr.I(),this.credentialListener=()=>Promise.resolve(),this.credentials.start(e,(async t=>{Vs("FirestoreClient","Received user=",t.uid),await this.credentialListener(t),this.user=t}))}async getConfiguration(){return{asyncQueue:this.asyncQueue,databaseInfo:this.databaseInfo,clientId:this.clientId,credentials:this.credentials,initialUser:this.user,maxConcurrentLimboResolutions:100}}setCredentialChangeListener(t){this.credentialListener=t}verifyNotTerminated(){if(this.asyncQueue.isShuttingDown)throw new zs(Hs.FAILED_PRECONDITION,"The client has already been terminated.")}terminate(){this.asyncQueue.enterRestrictedMode();const t=new Qs;return this.asyncQueue.enqueueAndForgetEvenWhileRestricted((async()=>{try{this.onlineComponents&&await this.onlineComponents.terminate(),this.offlineComponents&&await this.offlineComponents.terminate(),this.credentials.shutdown(),t.resolve()}catch(e){const n=_h(e,"Failed to shutdown persistence");t.reject(n)}})),t.promise}}async function kl(t,e){t.asyncQueue.verifyOperationInProgress(),Vs("FirestoreClient","Initializing OfflineComponentProvider");const n=await t.getConfiguration();await e.initialize(n);let s=n.initialUser;t.setCredentialChangeListener((async t=>{s.isEqual(t)||(await ou(e.localStore,t),s=t)})),e.persistence.setDatabaseDeletedListener((()=>t.terminate())),t.offlineComponents=e}async function Rl(t,e){t.asyncQueue.verifyOperationInProgress();const n=await Ll(t);Vs("FirestoreClient","Initializing OnlineComponentProvider");const s=await t.getConfiguration();await e.initialize(n,s),t.setCredentialChangeListener((t=>async function(t,e){const n=Gs(t);n.asyncQueue.verifyOperationInProgress(),Vs("RemoteStore","RemoteStore received new credentials");const s=ih(n);n.Wr.add(3),await Ju(n),s&&n.Hr.set("Unknown"),await n.remoteSyncer.handleCredentialChange(e),n.Wr.delete(3),await Xu(n)}(e.remoteStore,t))),t.onlineComponents=e}async function Ll(t){return t.offlineComponents||(Vs("FirestoreClient","Using default OfflineComponentProvider"),await kl(t,new Tl)),t.offlineComponents}async function Ol(t){return t.onlineComponents||(Vs("FirestoreClient","Using default OnlineComponentProvider"),await Rl(t,new Sl)),t.onlineComponents}function Ml(t){return Ll(t).then((t=>t.persistence))}function Fl(t){return Ll(t).then((t=>t.localStore))}function Pl(t){return Ol(t).then((t=>t.remoteStore))}function Vl(t){return Ol(t).then((t=>t.syncEngine))}async function Ul(t){const e=await Ol(t),n=e.eventManager;return n.onListen=zh.bind(null,e.syncEngine),n.onUnlisten=Wh.bind(null,e.syncEngine),n}function ql(t,e,n={}){const s=new Qs;return t.asyncQueue.enqueueAndForget((async()=>function(t,e,n,s,r){const i=new Nl({next:i=>{e.enqueueAndForget((()=>Rh(t,o)));const a=i.docs.has(n);!a&&i.fromCache?r.reject(new zs(Hs.UNAVAILABLE,"Failed to get document because the client is offline.")):a&&i.fromCache&&s&&"server"===s.source?r.reject(new zs(Hs.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.)')):r.resolve(i)},error:t=>r.reject(t)}),o=new Fh(mi(n.path),i,{includeMetadataChanges:!0,fo:!0});return kh(t,o)}(await Ul(t),t.asyncQueue,e,n,s))),s.promise}function Bl(t,e,n={}){const s=new Qs;return t.asyncQueue.enqueueAndForget((async()=>function(t,e,n,s,r){const i=new Nl({next:n=>{e.enqueueAndForget((()=>Rh(t,o))),n.fromCache&&"server"===s.source?r.reject(new zs(Hs.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.)')):r.resolve(n)},error:t=>r.reject(t)}),o=new Fh(n,i,{includeMetadataChanges:!0,fo:!0});return kh(t,o)}(await Ul(t),t.asyncQueue,e,n,s))),s.promise}function jl(t,e,n,s){const r=function(t,e){let n;return n="string"==typeof t?(new TextEncoder).encode(t):t,function(t,e){return new Al(t,e)}(function(t,e){if(t instanceof Uint8Array)return _l(t,e);if(t instanceof ArrayBuffer)return _l(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,Ku(e));t.asyncQueue.enqueueAndForget((async()=>{!function(t,e,n){const s=Gs(t);(async function(t,e,n){try{const s=await e.getMetadata();if(await function(t,e){const n=Gs(t),s=$o(e.createTime);return n.persistence.runTransaction("hasNewerBundle","readonly",(t=>n.Je.getBundleMetadata(t,e.id))).then((t=>!!t&&t.createTime.compareTo(s)>=0))}(t.localStore,s))return await e.close(),void n._completeWith(function(t){return{taskState:"Success",documentsLoaded:t.totalDocuments,bytesLoaded:t.totalBytes,totalDocuments:t.totalDocuments,totalBytes:t.totalBytes}}(s));n._updateProgress(qh(s));const r=new Uh(s,t.localStore,e.N);let i=await e.zo();for(;i;){const t=await r.mo(i);t&&n._updateProgress(t),i=await e.zo()}const o=await r.complete();await cl(t,o.En,void 0),await function(t,e){const n=Gs(t);return n.persistence.runTransaction("Save bundle","readwrite",(t=>n.Je.saveBundleMetadata(t,e)))}(t.localStore,s),n._completeWith(o.progress)}catch(t){qs("SyncEngine",`Loading bundle failed with ${t}`),n._failWith(t)}})(s,e,n).then((()=>{s.sharedClientState.notifyBundleLoaded()}))}(await Vl(t),r,s)}))}class Kl{constructor(t,e,n,s,r,i,o,a){this.databaseId=t,this.appId=e,this.persistenceKey=n,this.host=s,this.ssl=r,this.forceLongPolling=i,this.autoDetectLongPolling=o,this.useFetchStreams=a}}class $l{constructor(t,e){this.projectId=t,this.database=e||"(default)"}get isDefaultDatabase(){return"(default)"===this.database}isEqual(t){return t instanceof $l&&t.projectId===this.projectId&&t.database===this.database}} +/** + * @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. + */const Gl=new Map; +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */function Hl(t,e,n){if(!n)throw new zs(Hs.INVALID_ARGUMENT,`Function ${t}() cannot be called with an empty ${e}.`)}function zl(t,e,n,s){if(!0===e&&!0===s)throw new zs(Hs.INVALID_ARGUMENT,`${t} and ${n} cannot be used together.`)}function Ql(t){if(!xr.isDocumentKey(t))throw new zs(Hs.INVALID_ARGUMENT,`Invalid document reference. Document references must have an even number of segments, but ${t} has ${t.length}.`)}function Wl(t){if(xr.isDocumentKey(t))throw new zs(Hs.INVALID_ARGUMENT,`Invalid collection reference. Collection references must have an odd number of segments, but ${t} has ${t.length}.`)}function Yl(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":js()}function Xl(t,e){if("_delegate"in t&&(t=t._delegate),!(t instanceof e)){if(e.name===t.constructor.name)throw new zs(Hs.INVALID_ARGUMENT,"Type does not match the expected instance. Did you pass a reference from a different Firestore SDK?");{const n=Yl(t);throw new zs(Hs.INVALID_ARGUMENT,`Expected type '${e.name}', but it was: ${n}`)}}return t}function Jl(t,e){if(e<=0)throw new zs(Hs.INVALID_ARGUMENT,`Function ${t}() requires a positive number, but it was: ${e}.`)} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */class Zl{constructor(t){var e;if(void 0===t.host){if(void 0!==t.ssl)throw new zs(Hs.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,void 0===t.cacheSizeBytes)this.cacheSizeBytes=41943040;else{if(-1!==t.cacheSizeBytes&&t.cacheSizeBytes<1048576)throw new zs(Hs.INVALID_ARGUMENT,"cacheSizeBytes must be at least 1048576");this.cacheSizeBytes=t.cacheSizeBytes}this.experimentalForceLongPolling=!!t.experimentalForceLongPolling,this.experimentalAutoDetectLongPolling=!!t.experimentalAutoDetectLongPolling,this.useFetchStreams=!!t.useFetchStreams,zl("experimentalForceLongPolling",t.experimentalForceLongPolling,"experimentalAutoDetectLongPolling",t.experimentalAutoDetectLongPolling)}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&&this.ignoreUndefinedProperties===t.ignoreUndefinedProperties&&this.useFetchStreams===t.useFetchStreams}} +/** + * @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. + */class td{constructor(t,e){this._credentials=e,this.type="firestore-lite",this._persistenceKey="(lite)",this._settings=new Zl({}),this._settingsFrozen=!1,t instanceof $l?this._databaseId=t:(this._app=t,this._databaseId=function(t){if(!Object.prototype.hasOwnProperty.apply(t.options,["projectId"]))throw new zs(Hs.INVALID_ARGUMENT,'"projectId" not provided in firebase.initializeApp.');return new $l(t.options.projectId)}(t))}get app(){if(!this._app)throw new zs(Hs.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 zs(Hs.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 Zl(t),void 0!==t.credentials&&(this._credentials=function(t){if(!t)return new Ys;switch(t.type){case"gapi":const e=t.client;return Ks(!("object"!=typeof e||null===e||!e.auth||!e.auth.getAuthHeaderValueForFirstParty)),new tr(e,t.sessionIndex||"0",t.iamToken||null);case"provider":return t.client;default:throw new zs(Hs.INVALID_ARGUMENT,"makeCredentialsProvider 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=Gl.get(t);e&&(Vs("ComponentProvider","Removing Datastore"),Gl.delete(t),e.terminate())}(this),Promise.resolve()}}function ed(t,e,n,s={}){var r;const i=(t=Xl(t,td))._getSettings();if("firestore.googleapis.com"!==i.host&&i.host!==e&&qs("Host has been set in both settings() and useEmulator(), emulator host will be used"),t._setSettings(Object.assign(Object.assign({},i),{host:`${e}:${n}`,ssl:!1})),s.mockUserToken){let e,n;if("string"==typeof s.mockUserToken)e=s.mockUserToken,n=Ls.MOCK_USER;else{e= +/** + * @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. + */ +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",s=t.iat||0,r=t.sub||t.user_id;if(!r)throw new Error("mockUserToken must contain 'sub' or 'user_id' field!");const i=Object.assign({iss:`https://securetoken.google.com/${n}`,aud:n,iat:s,exp:s+3600,auth_time:s,sub:r,user_id:r,firebase:{sign_in_provider:"custom",identities:{}}},t);return[u(JSON.stringify({alg:"none",type:"JWT"})),u(JSON.stringify(i)),""].join(".")}(s.mockUserToken,null===(r=t._app)||void 0===r?void 0:r.options.projectId);const i=s.mockUserToken.sub||s.mockUserToken.user_id;if(!i)throw new zs(Hs.INVALID_ARGUMENT,"mockUserToken must contain 'sub' or 'user_id' field!");n=new Ls(i)}t._credentials=new Xs(new Ws(e,n))}} +/** + * @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. + */class nd{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 rd(this.firestore,this.converter,this._key.path.popLast())}withConverter(t){return new nd(this.firestore,t,this._key)}}class sd{constructor(t,e,n){this.converter=e,this._query=n,this.type="query",this.firestore=t}withConverter(t){return new sd(this.firestore,t,this._query)}}class rd extends sd{constructor(t,e,n){super(t,e,mi(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 nd(this.firestore,null,new xr(t))}withConverter(t){return new rd(this.firestore,t,this._path)}}function id(t,e,...n){if(t=g(t),Hl("collection","path",e),t instanceof td){const s=fr.fromString(e,...n);return Wl(s),new rd(t,null,s)}{if(!(t instanceof nd||t instanceof rd))throw new zs(Hs.INVALID_ARGUMENT,"Expected first argument to collection() to be a CollectionReference, a DocumentReference or FirebaseFirestore");const s=t._path.child(fr.fromString(e,...n));return Wl(s),new rd(t.firestore,null,s)}}function od(t,e){if(t=Xl(t,td),Hl("collectionGroup","collection id",e),e.indexOf("/")>=0)throw new zs(Hs.INVALID_ARGUMENT,`Invalid collection ID '${e}' passed to function collectionGroup(). Collection IDs must not contain '/'.`);return new sd(t,null,function(t){return new fi(fr.emptyPath(),t)}(e))}function ad(t,e,...n){if(t=g(t),1===arguments.length&&(e=sr.I()),Hl("doc","path",e),t instanceof td){const s=fr.fromString(e,...n);return Ql(s),new nd(t,null,new xr(s))}{if(!(t instanceof nd||t instanceof rd))throw new zs(Hs.INVALID_ARGUMENT,"Expected first argument to collection() to be a CollectionReference, a DocumentReference or FirebaseFirestore");const s=t._path.child(fr.fromString(e,...n));return Ql(s),new nd(t.firestore,t instanceof rd?t.converter:null,new xr(s))}}function cd(t,e){return t=g(t),e=g(e),(t instanceof nd||t instanceof rd)&&(e instanceof nd||e instanceof rd)&&t.firestore===e.firestore&&t.path===e.path&&t.converter===e.converter}function ud(t,e){return t=g(t),e=g(e),t instanceof sd&&e instanceof sd&&t.firestore===e.firestore&&Si(t._query,e._query)&&t.converter===e.converter +/** + * @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. + */}class hd{constructor(){this._c=Promise.resolve(),this.mc=[],this.gc=!1,this.yc=[],this.Tc=null,this.Ec=!1,this.Ic=!1,this.Ac=[],this.ar=new $u(this,"async_queue_retry"),this.Rc=()=>{const t=ju();t&&Vs("AsyncQueue","Visibility state changed to "+t.visibilityState),this.ar.tr()};const t=ju();t&&"function"==typeof t.addEventListener&&t.addEventListener("visibilitychange",this.Rc)}get isShuttingDown(){return this.gc}enqueueAndForget(t){this.enqueue(t)}enqueueAndForgetEvenWhileRestricted(t){this.bc(),this.Pc(t)}enterRestrictedMode(t){if(!this.gc){this.gc=!0,this.Ic=t||!1;const e=ju();e&&"function"==typeof e.removeEventListener&&e.removeEventListener("visibilitychange",this.Rc)}}enqueue(t){if(this.bc(),this.gc)return new Promise((()=>{}));const e=new Qs;return this.Pc((()=>this.gc&&this.Ic?Promise.resolve():(t().then(e.resolve,e.reject),e.promise))).then((()=>e.promise))}enqueueRetryable(t){this.enqueueAndForget((()=>(this.mc.push(t),this.vc())))}async vc(){if(0!==this.mc.length){try{await this.mc[0](),this.mc.shift(),this.ar.reset()}catch(t){if(!Ga(t))throw t;Vs("AsyncQueue","Operation failed with retryable error: "+t)}this.mc.length>0&&this.ar.Xi((()=>this.vc()))}}Pc(t){const e=this._c.then((()=>(this.Ec=!0,t().catch((t=>{this.Tc=t,this.Ec=!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 Us("INTERNAL UNHANDLED ERROR: ",e),t})).then((t=>(this.Ec=!1,t))))));return this._c=e,e}enqueueAfterDelay(t,e,n){this.bc(),this.Ac.indexOf(t)>-1&&(e=0);const s=Sh.createAndSchedule(this,t,e,n,(t=>this.Vc(t)));return this.yc.push(s),s}bc(){this.Tc&&js()}verifyOperationInProgress(){}async Sc(){let t;do{t=this._c,await t}while(t!==this._c)}Dc(t){for(const e of this.yc)if(e.timerId===t)return!0;return!1}Cc(t){return this.Sc().then((()=>{this.yc.sort(((t,e)=>t.targetTimeMs-e.targetTimeMs));for(const e of this.yc)if(e.skipDelay(),"all"!==t&&e.timerId===t)break;return this.Sc()}))}Nc(t){this.Ac.push(t)}Vc(t){const e=this.yc.indexOf(t);this.yc.splice(e,1)}}function ld(t){return function(t,e){if("object"!=typeof t||null===t)return!1;const n=t;for(const t of["next","error","complete"])if(t in n&&"function"==typeof n[t])return!0;return!1}(t)}class dd{constructor(){this._progressObserver={},this._taskCompletionResolver=new Qs,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)}} +/** + * @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. + */const fd=-1;class gd extends td{constructor(t,e){super(t,e),this.type="firestore",this._queue=new hd,this._persistenceKey="name"in t?t.name:"[DEFAULT]"}_terminate(){return this._firestoreClient||wd(this),this._firestoreClient.terminate()}}function md(t,e){const n=i._getProvider(t,"firestore");if(n.isInitialized()){const t=n.getImmediate();if(d(n.getOptions(),e))return t;throw new zs(Hs.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&&-1!==e.cacheSizeBytes&&e.cacheSizeBytes<1048576)throw new zs(Hs.INVALID_ARGUMENT,"cacheSizeBytes must be at least 1048576");return n.initialize({options:e})}function pd(t=i.getApp()){return i._getProvider(t,"firestore").getImmediate()}function yd(t){return t._firestoreClient||wd(t),t._firestoreClient.verifyNotTerminated(),t._firestoreClient}function wd(t){var e;const n=t._freezeSettings(),s=function(t,e,n,s){return new Kl(t,e,n,s.host,s.ssl,s.experimentalForceLongPolling,s.experimentalAutoDetectLongPolling,s.useFetchStreams)}(t._databaseId,(null===(e=t._app)||void 0===e?void 0:e.options.appId)||"",t._persistenceKey,n);t._firestoreClient=new Cl(t._credentials,t._queue,s)}function vd(t,e){xd(t=Xl(t,gd));const n=yd(t),s=t._freezeSettings(),r=new Sl;return Td(n,r,new El(r,s.cacheSizeBytes,null==e?void 0:e.forceOwnership))}function bd(t){xd(t=Xl(t,gd));const e=yd(t),n=t._freezeSettings(),s=new Sl;return Td(e,s,new Il(s,n.cacheSizeBytes))}function Td(t,e,n){const s=new Qs;return t.asyncQueue.enqueue((async()=>{try{await kl(t,n),await Rl(t,e),s.resolve()}catch(t){if(!function(t){return"FirebaseError"===t.name?t.code===Hs.FAILED_PRECONDITION||t.code===Hs.UNIMPLEMENTED:!("undefined"!=typeof DOMException&&t instanceof DOMException)||(22===t.code||20===t.code||11===t.code)}(t))throw t;console.warn("Error enabling offline persistence. Falling back to persistence disabled: "+t),s.reject(t)}})).then((()=>s.promise))}function Ed(t){if(t._initialized&&!t._terminated)throw new zs(Hs.FAILED_PRECONDITION,"Persistence can only be cleared before a Firestore instance is initialized or after it is terminated.");const e=new Qs;return t._queue.enqueueAndForgetEvenWhileRestricted((async()=>{try{await async function(t){if(!ja.bt())return Promise.resolve();const e=t+"main";await ja.delete(e)}(Zc(t._databaseId,t._persistenceKey)),e.resolve()}catch(t){e.reject(t)}})),e.promise}function Id(t){return function(t){const e=new Qs;return t.asyncQueue.enqueueAndForget((async()=>async function(t,e){const n=Gs(t);ih(n.remoteStore)||Vs("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=Gs(t);return e.persistence.runTransaction("Get highest unacknowledged batch id","readonly",(t=>e.In.getHighestUnacknowledgedBatchId(t)))}(n.localStore);if(-1===t)return void e.resolve();const s=n.Ko.get(t)||[];s.push(e),n.Ko.set(t,s)}catch(t){const n=_h(t,"Initialization of waitForPendingWrites() operation failed");e.reject(n)}}(await Vl(t),e))),e.promise}(yd(t=Xl(t,gd)))}function Sd(t){return function(t){return t.asyncQueue.enqueue((async()=>{const e=await Ml(t),n=await Pl(t);return e.setNetworkEnabled(!0),function(t){const e=Gs(t);return e.Wr.delete(0),Xu(e)}(n)}))}(yd(t=Xl(t,gd)))}function _d(t){return function(t){return t.asyncQueue.enqueue((async()=>{const e=await Ml(t),n=await Pl(t);return e.setNetworkEnabled(!1),async function(t){const e=Gs(t);e.Wr.add(0),await Ju(e),e.Hr.set("Offline")}(n)}))}(yd(t=Xl(t,gd)))}function Nd(t){return i._removeServiceInstance(t.app,"firestore"),t._delete()}function Ad(t,e){const n=yd(t=Xl(t,gd)),s=new dd;return jl(n,t._databaseId,e,s),s}function Dd(t,e){return function(t,e){return t.asyncQueue.enqueue((async()=>function(t,e){const n=Gs(t);return n.persistence.runTransaction("Get named query","readonly",(t=>n.Je.getNamedQuery(t,e)))}(await Fl(t),e)))}(yd(t=Xl(t,gd)),e).then((e=>e?new sd(t,null,e.query):null))}function xd(t){if(t._initialized||t._terminated)throw new zs(Hs.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.")} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */class Cd{constructor(...t){for(let e=0;e90)throw new zs(Hs.INVALID_ARGUMENT,"Latitude must be a number between -90 and 90, but was: "+t);if(!isFinite(e)||e<-180||e>180)throw new zs(Hs.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 rr(this._lat,t._lat)||rr(this._long,t._long)}} +/** + * @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 Md=/^__.*__$/;class Fd{constructor(t,e,n){this.data=t,this.fieldMask=e,this.fieldTransforms=n}toMutation(t,e){return null!==this.fieldMask?new no(t,this.data,this.fieldMask,e,this.fieldTransforms):new eo(t,this.data,e,this.fieldTransforms)}}class Pd{constructor(t,e,n){this.data=t,this.fieldMask=e,this.fieldTransforms=n}toMutation(t,e){return new no(t,this.data,this.fieldMask,e,this.fieldTransforms)}}function Vd(t){switch(t){case 0:case 2:case 1:return!0;case 3:case 4:return!1;default:throw js()}}class Ud{constructor(t,e,n,s,r,i){this.settings=t,this.databaseId=e,this.N=n,this.ignoreUndefinedProperties=s,void 0===r&&this.xc(),this.fieldTransforms=r||[],this.fieldMask=i||[]}get path(){return this.settings.path}get kc(){return this.settings.kc}$c(t){return new Ud(Object.assign(Object.assign({},this.settings),t),this.databaseId,this.N,this.ignoreUndefinedProperties,this.fieldTransforms,this.fieldMask)}Oc(t){var e;const n=null===(e=this.path)||void 0===e?void 0:e.child(t),s=this.$c({path:n,Fc:!1});return s.Mc(t),s}Lc(t){var e;const n=null===(e=this.path)||void 0===e?void 0:e.child(t),s=this.$c({path:n,Fc:!1});return s.xc(),s}Bc(t){return this.$c({path:void 0,Fc:!0})}Uc(t){return of(t,this.settings.methodName,this.settings.qc||!1,this.path,this.settings.Kc)}contains(t){return void 0!==this.fieldMask.find((e=>t.isPrefixOf(e)))||void 0!==this.fieldTransforms.find((e=>t.isPrefixOf(e.field)))}xc(){if(this.path)for(let t=0;tc.covers(t.field)))}else c=null,u=o.fieldTransforms;return new Fd(new $r(a),c,u)}class Kd extends Ld{_toFieldTransform(t){if(2!==t.kc)throw 1===t.kc?t.Uc(`${this._methodName}() can only appear at the top level of your update data`):t.Uc(`${this._methodName}() cannot be used with set() unless you pass {merge:true}`);return t.fieldMask.push(t.path),null}isEqual(t){return t instanceof Kd}}function $d(t,e,n){return new Ud({kc:3,Kc:e.settings.Kc,methodName:t._methodName,Fc:n},e.databaseId,e.N,e.ignoreUndefinedProperties)}class Gd extends Ld{_toFieldTransform(t){return new Gi(t.path,new Pi)}isEqual(t){return t instanceof Gd}}class Hd extends Ld{constructor(t,e){super(t),this.Qc=e}_toFieldTransform(t){const e=$d(this,t,!0),n=this.Qc.map((t=>Jd(t,e))),s=new Vi(n);return new Gi(t.path,s)}isEqual(t){return this===t}}class zd extends Ld{constructor(t,e){super(t),this.Qc=e}_toFieldTransform(t){const e=$d(this,t,!0),n=this.Qc.map((t=>Jd(t,e))),s=new qi(n);return new Gi(t.path,s)}isEqual(t){return this===t}}class Qd extends Ld{constructor(t,e){super(t),this.Wc=e}_toFieldTransform(t){const e=new ji(t.N,Ri(t.N,this.Wc));return new Gi(t.path,e)}isEqual(t){return this===t}}function Wd(t,e,n,s){const r=t.jc(1,e,n);ef("Data must be an object, but it was:",r,s);const i=[],o=$r.empty();hr(s,((t,s)=>{const a=rf(e,t,n);s=g(s);const c=r.Lc(a);if(s instanceof Kd)i.push(a);else{const t=Jd(s,c);null!=t&&(i.push(a),o.set(a,t))}}));const a=new pr(i);return new Pd(o,a,r.fieldTransforms)}function Yd(t,e,n,s,r,i){const o=t.jc(1,e,n),a=[nf(e,s,n)],c=[r];if(i.length%2!=0)throw new zs(Hs.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(!af(u,a[t])){const e=a[t];let n=c[t];n=g(n);const s=o.Lc(e);if(n instanceof Kd)u.push(e);else{const t=Jd(n,s);null!=t&&(u.push(e),h.set(e,t))}}const l=new pr(u);return new Pd(h,l,o.fieldTransforms)}function Xd(t,e,n,s=!1){return Jd(n,t.jc(s?4:3,e))}function Jd(t,e){if(tf(t=g(t)))return ef("Unsupported field value:",e,t),Zd(t,e);if(t instanceof Ld)return function(t,e){if(!Vd(e.kc))throw e.Uc(`${t._methodName}() can only be used with update() and set()`);if(!e.path)throw e.Uc(`${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.Fc&&4!==e.kc)throw e.Uc("Nested arrays are not supported");return function(t,e){const n=[];let s=0;for(const r of t){let t=Jd(r,e.Bc(s));null==t&&(t={nullValue:"NULL_VALUE"}),n.push(t),s++}return{arrayValue:{values:n}}}(t,e)}return function(t,e){if(null===(t=g(t)))return{nullValue:"NULL_VALUE"};if("number"==typeof t)return Ri(e.N,t);if("boolean"==typeof t)return{booleanValue:t};if("string"==typeof t)return{stringValue:t};if(t instanceof Date){const n=ar.fromDate(t);return{timestampValue:Bo(e.N,n)}}if(t instanceof ar){const n=new ar(t.seconds,1e3*Math.floor(t.nanoseconds/1e3));return{timestampValue:Bo(e.N,n)}}if(t instanceof Od)return{geoPointValue:{latitude:t.latitude,longitude:t.longitude}};if(t instanceof Rd)return{bytesValue:jo(e.N,t._byteString)};if(t instanceof nd){const n=e.databaseId,s=t.firestore._databaseId;if(!s.isEqual(n))throw e.Uc(`Document reference is for database ${s.projectId}/${s.database} but should be for database ${n.projectId}/${n.database}`);return{referenceValue:Go(t.firestore._databaseId||e.databaseId,t._key.path)}}throw e.Uc(`Unsupported field value: ${Yl(t)}`)}(t,e)}function Zd(t,e){const n={};return lr(t)?e.path&&e.path.length>0&&e.fieldMask.push(e.path):hr(t,((t,s)=>{const r=Jd(s,e.Oc(t));null!=r&&(n[t]=r)})),{mapValue:{fields:n}}}function tf(t){return!("object"!=typeof t||null===t||t instanceof Array||t instanceof Date||t instanceof ar||t instanceof Od||t instanceof Rd||t instanceof nd||t instanceof Ld)}function ef(t,e,n){if(!tf(n)||!function(t){return"object"==typeof t&&null!==t&&(Object.getPrototypeOf(t)===Object.prototype||null===Object.getPrototypeOf(t))}(n)){const s=Yl(n);throw"an object"===s?e.Uc(t+" a custom object"):e.Uc(t+" "+s)}}function nf(t,e,n){if((e=g(e))instanceof Cd)return e._internalPath;if("string"==typeof e)return rf(t,e);throw of("Field path arguments must be of type string or FieldPath.",t,!1,void 0,n)}const sf=new RegExp("[~\\*/\\[\\]]");function rf(t,e,n){if(e.search(sf)>=0)throw of(`Invalid field path (${e}). Paths must not contain '~', '*', '/', '[', or ']'`,t,!1,void 0,n);try{return new Cd(...e.split("."))._internalPath}catch(s){throw of(`Invalid field path (${e}). Paths must not be empty, begin with '.', end with '.', or contain '..'`,t,!1,void 0,n)}}function of(t,e,n,s,r){const i=s&&!s.isEmpty(),o=void 0!==r;let a=`Function ${e}() called with invalid data`;n&&(a+=" (via `toFirestore()`)"),a+=". ";let c="";return(i||o)&&(c+=" (found",i&&(c+=` in field ${s}`),o&&(c+=` in document ${r}`),c+=")"),new zs(Hs.INVALID_ARGUMENT,a+t+c)}function af(t,e){return t.some((t=>t.isEqual(e)))} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */class cf{constructor(t,e,n,s,r){this._firestore=t,this._userDataWriter=e,this._key=n,this._document=s,this._converter=r}get id(){return this._key.path.lastSegment()}get ref(){return new nd(this._firestore,this._converter,this._key)}exists(){return null!==this._document}data(){if(this._document){if(this._converter){const t=new uf(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(hf("DocumentSnapshot.get",t));if(null!==e)return this._userDataWriter.convertValue(e)}}}class uf extends cf{data(){return super.data()}}function hf(t,e){return"string"==typeof e?rf(t,e):e instanceof Cd?e._internalPath:e._delegate._internalPath} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */class lf{constructor(t,e){this.hasPendingWrites=t,this.fromCache=e}isEqual(t){return this.hasPendingWrites===t.hasPendingWrites&&this.fromCache===t.fromCache}}class df extends cf{constructor(t,e,n,s,r,i){super(t,e,n,s,i),this._firestore=t,this._firestoreImpl=t,this.metadata=r}exists(){return super.exists()}data(t={}){if(this._document){if(this._converter){const e=new ff(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(hf("DocumentSnapshot.get",t));if(null!==n)return this._userDataWriter.convertValue(n,e.serverTimestamps)}}}class ff extends df{data(t={}){return super.data(t)}}class gf{constructor(t,e,n,s){this._firestore=t,this._userDataWriter=e,this._snapshot=s,this.metadata=new lf(s.hasPendingWrites,s.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 ff(this._firestore,this._userDataWriter,n.key,n,new lf(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 zs(Hs.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=>({type:"added",doc:new ff(t._firestore,t._userDataWriter,n.doc.key,n.doc,new lf(t._snapshot.mutatedKeys.has(n.doc.key),t._snapshot.fromCache),t.query.converter),oldIndex:-1,newIndex:e++})))}{let n=t._snapshot.oldDocs;return t._snapshot.docChanges.filter((t=>e||3!==t.type)).map((e=>{const s=new ff(t._firestore,t._userDataWriter,e.doc.key,e.doc,new lf(t._snapshot.mutatedKeys.has(e.doc.key),t._snapshot.fromCache),t.query.converter);let r=-1,i=-1;return 0!==e.type&&(r=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:mf(e.type),doc:s,oldIndex:r,newIndex:i}}))}}(this,e),this._cachedChangesIncludeMetadataChanges=e),this._cachedChanges}}function mf(t){switch(t){case 0:return"added";case 2:case 3:return"modified";case 1:return"removed";default:return js()}}function pf(t,e){return t instanceof df&&e instanceof df?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 gf&&e instanceof gf&&t._firestore===e._firestore&&ud(t.query,e.query)&&t.metadata.isEqual(e.metadata)&&t._snapshot.isEqual(e._snapshot)} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */function yf(t){if(yi(t)&&0===t.explicitOrderBy.length)throw new zs(Hs.UNIMPLEMENTED,"limitToLast() queries require specifying at least one orderBy() clause")}class wf{}function vf(t,...e){for(const n of e)t=n._apply(t);return t}class bf extends wf{constructor(t,e,n){super(),this.Gc=t,this.zc=e,this.Hc=n,this.type="where"}_apply(t){const e=Bd(t.firestore),n=function(t,e,n,s,r,i,o){let a;if(r.isKeyField()){if("array-contains"===i||"array-contains-any"===i)throw new zs(Hs.INVALID_ARGUMENT,`Invalid Query. You can't perform '${i}' queries on FieldPath.documentId().`);if("in"===i||"not-in"===i){Mf(o,i);const e=[];for(const n of o)e.push(Of(s,t,n));a={arrayValue:{values:e}}}else a=Of(s,t,o)}else"in"!==i&&"not-in"!==i&&"array-contains-any"!==i||Mf(o,i),a=Xd(n,"where",o,"in"===i||"not-in"===i);const c=Jr.create(r,i,a);return function(t,e){if(e.v()){const n=vi(t);if(null!==n&&!n.isEqual(e.field))throw new zs(Hs.INVALID_ARGUMENT,`Invalid query. All where filters with an inequality (<, <=, !=, not-in, >, or >=) must be on the same field. But you have inequality filters on '${n.toString()}' and '${e.field.toString()}'`);const s=wi(t);null!==s&&Ff(t,e.field,s)}const n=function(t,e){for(const n of t.filters)if(e.indexOf(n.op)>=0)return n.op;return null}(t,function(t){switch(t){case"!=":return["!=","not-in"];case"array-contains":return["array-contains","array-contains-any","not-in"];case"in":return["array-contains-any","in","not-in"];case"array-contains-any":return["array-contains","array-contains-any","in","not-in"];case"not-in":return["array-contains","array-contains-any","in","not-in","!="];default:return[]}}(e.op));if(null!==n)throw n===e.op?new zs(Hs.INVALID_ARGUMENT,`Invalid query. You cannot use more than one '${e.op.toString()}' filter.`):new zs(Hs.INVALID_ARGUMENT,`Invalid query. You cannot use '${e.op.toString()}' filters with '${n.toString()}' filters.`)}(t,c),c}(t._query,0,e,t.firestore._databaseId,this.Gc,this.zc,this.Hc);return new sd(t.firestore,t.converter,function(t,e){const n=t.filters.concat([e]);return new fi(t.path,t.collectionGroup,t.explicitOrderBy.slice(),n,t.limit,t.limitType,t.startAt,t.endAt)}(t._query,n))}}function Tf(t,e,n){const s=e,r=hf("where",t);return new bf(r,s,n)}class Ef extends wf{constructor(t,e){super(),this.Gc=t,this.Jc=e,this.type="orderBy"}_apply(t){const e=function(t,e,n){if(null!==t.startAt)throw new zs(Hs.INVALID_ARGUMENT,"Invalid query. You must not call startAt() or startAfter() before calling orderBy().");if(null!==t.endAt)throw new zs(Hs.INVALID_ARGUMENT,"Invalid query. You must not call endAt() or endBefore() before calling orderBy().");const s=new ui(e,n);return function(t,e){if(null===wi(t)){const n=vi(t);null!==n&&Ff(t,n,e.field)}}(t,s),s}(t._query,this.Gc,this.Jc);return new sd(t.firestore,t.converter,function(t,e){const n=t.explicitOrderBy.concat([e]);return new fi(t.path,t.collectionGroup,n,t.filters.slice(),t.limit,t.limitType,t.startAt,t.endAt)}(t._query,e))}}function If(t,e="asc"){const n=e,s=hf("orderBy",t);return new Ef(s,n)}class Sf extends wf{constructor(t,e,n){super(),this.type=t,this.Yc=e,this.Xc=n}_apply(t){return new sd(t.firestore,t.converter,Ii(t._query,this.Yc,this.Xc))}}function _f(t){return Jl("limit",t),new Sf("limit",t,"F")}function Nf(t){return Jl("limitToLast",t),new Sf("limitToLast",t,"L")}class Af extends wf{constructor(t,e,n){super(),this.type=t,this.Zc=e,this.ta=n}_apply(t){const e=Lf(t,this.type,this.Zc,this.ta);return new sd(t.firestore,t.converter,function(t,e){return new fi(t.path,t.collectionGroup,t.explicitOrderBy.slice(),t.filters.slice(),t.limit,t.limitType,e,t.endAt)}(t._query,e))}}function Df(...t){return new Af("startAt",t,!0)}function xf(...t){return new Af("startAfter",t,!1)}class Cf extends wf{constructor(t,e,n){super(),this.type=t,this.Zc=e,this.ta=n}_apply(t){const e=Lf(t,this.type,this.Zc,this.ta);return new sd(t.firestore,t.converter,function(t,e){return new fi(t.path,t.collectionGroup,t.explicitOrderBy.slice(),t.filters.slice(),t.limit,t.limitType,t.startAt,e)}(t._query,e))}}function kf(...t){return new Cf("endBefore",t,!0)}function Rf(...t){return new Cf("endAt",t,!1)}function Lf(t,e,n,s){if(n[0]=g(n[0]),n[0]instanceof cf)return function(t,e,n,s,r){if(!s)throw new zs(Hs.NOT_FOUND,`Can't use a DocumentSnapshot that doesn't exist for ${n}().`);const i=[];for(const n of Ti(t))if(n.field.isKeyField())i.push(Pr(e,s.key));else{const t=s.data.field(n.field);if(Ir(t))throw new zs(Hs.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 zs(Hs.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 ai(i,r)}(t._query,t.firestore._databaseId,e,n[0]._document,s);{const r=Bd(t.firestore);return function(t,e,n,s,r,i){const o=t.explicitOrderBy;if(r.length>o.length)throw new zs(Hs.INVALID_ARGUMENT,`Too many arguments provided to ${s}(). The number of arguments must be less than or equal to the number of orderBy() clauses`);const a=[];for(let i=0;i10)throw new zs(Hs.INVALID_ARGUMENT,`Invalid Query. '${e.toString()}' filters support a maximum of 10 elements in the value array.`)}function Ff(t,e,n){if(!n.isEqual(e))throw new zs(Hs.INVALID_ARGUMENT,`Invalid query. You have a where filter with an inequality (<, <=, !=, not-in, >, or >=) on field '${e.toString()}' and so you must also use '${e.toString()}' as your first argument to orderBy(), but your first orderBy() is on field '${n.toString()}' instead.`)} +/** + * @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. + */class Pf{convertValue(t,e="none"){switch(Cr(t)){case 0:return null;case 1:return t.booleanValue;case 2:return Tr(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(Er(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 js()}}convertObject(t,e){const n={};return hr(t.fields,((t,s)=>{n[t]=this.convertValue(s,e)})),n}convertGeoPoint(t){return new Od(Tr(t.latitude),Tr(t.longitude))}convertArray(t,e){return(t.values||[]).map((t=>this.convertValue(t,e)))}convertServerTimestamp(t,e){switch(e){case"previous":const n=Sr(t);return null==n?null:this.convertValue(n,e);case"estimate":return this.convertTimestamp(_r(t));default:return null}}convertTimestamp(t){const e=br(t);return new ar(e.seconds,e.nanos)}convertDocumentKey(t,e){const n=fr.fromString(t);Ks(pa(n));const s=new $l(n.get(1),n.get(3)),r=new xr(n.popFirst(5));return s.isEqual(e)||Us(`Document ${r} contains a document reference within a different database (${s.projectId}/${s.database}) which is not supported. It will be treated as a reference in the current database (${e.projectId}/${e.database}) instead.`),r}} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */function Vf(t,e,n){let s;return s=t?n&&(n.merge||n.mergeFields)?t.toFirestore(e,n):t.toFirestore(e):e,s}class Uf extends Pf{constructor(t){super(),this.firestore=t}convertBytes(t){return new Rd(t)}convertReference(t){const e=this.convertDocumentKey(t,this.firestore._databaseId);return new nd(this.firestore,null,e)}} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */class qf{constructor(t,e){this._firestore=t,this._commitHandler=e,this._mutations=[],this._committed=!1,this._dataReader=Bd(t)}set(t,e,n){this._verifyNotCommitted();const s=Bf(t,this._firestore),r=Vf(s.converter,e,n),i=jd(this._dataReader,"WriteBatch.set",s._key,r,null!==s.converter,n);return this._mutations.push(i.toMutation(s._key,zi.none())),this}update(t,e,n,...s){this._verifyNotCommitted();const r=Bf(t,this._firestore);let i;return i="string"==typeof(e=g(e))||e instanceof Cd?Yd(this._dataReader,"WriteBatch.update",r._key,e,n,s):Wd(this._dataReader,"WriteBatch.update",r._key,e),this._mutations.push(i.toMutation(r._key,zi.exists(!0))),this}delete(t){this._verifyNotCommitted();const e=Bf(t,this._firestore);return this._mutations=this._mutations.concat(new oo(e._key,zi.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 zs(Hs.FAILED_PRECONDITION,"A write batch can no longer be used after commit() has been called.")}}function Bf(t,e){if((t=g(t)).firestore!==e)throw new zs(Hs.INVALID_ARGUMENT,"Provided document reference is from a different Firestore instance.");return t} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */function jf(t){t=Xl(t,nd);const e=Xl(t.firestore,gd);return ql(yd(e),t._key).then((n=>ng(e,t,n)))}class Kf extends Pf{constructor(t){super(),this.firestore=t}convertBytes(t){return new Rd(t)}convertReference(t){const e=this.convertDocumentKey(t,this.firestore._databaseId);return new nd(this.firestore,null,e)}}function $f(t){t=Xl(t,nd);const e=Xl(t.firestore,gd),n=yd(e),s=new Kf(e);return function(t,e){const n=new Qs;return t.asyncQueue.enqueueAndForget((async()=>async function(t,e,n){try{const s=await function(t,e){const n=Gs(t);return n.persistence.runTransaction("read document","readonly",(t=>n.Qn.An(t,e)))}(t,e);s.isFoundDocument()?n.resolve(s):s.isNoDocument()?n.resolve(null):n.reject(new zs(Hs.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 s=_h(t,`Failed to get document '${e} from cache`);n.reject(s)}}(await Fl(t),e,n))),n.promise}(n,t._key).then((n=>new df(e,s,t._key,n,new lf(null!==n&&n.hasLocalMutations,!0),t.converter)))}function Gf(t){t=Xl(t,nd);const e=Xl(t.firestore,gd);return ql(yd(e),t._key,{source:"server"}).then((n=>ng(e,t,n)))}function Hf(t){t=Xl(t,sd);const e=Xl(t.firestore,gd),n=yd(e),s=new Kf(e);return yf(t._query),Bl(n,t._query).then((n=>new gf(e,s,t,n)))}function zf(t){t=Xl(t,sd);const e=Xl(t.firestore,gd),n=yd(e),s=new Kf(e);return function(t,e){const n=new Qs;return t.asyncQueue.enqueueAndForget((async()=>async function(t,e,n){try{const s=await du(t,e,!0),r=new Kh(e,s.Gn),i=r.bo(s.documents),o=r.applyChanges(i,!1);n.resolve(o.snapshot)}catch(t){const s=_h(t,`Failed to execute query '${e} against cache`);n.reject(s)}}(await Fl(t),e,n))),n.promise}(n,t._query).then((n=>new gf(e,s,t,n)))}function Qf(t){t=Xl(t,sd);const e=Xl(t.firestore,gd),n=yd(e),s=new Kf(e);return Bl(n,t._query,{source:"server"}).then((n=>new gf(e,s,t,n)))}function Wf(t,e,n){t=Xl(t,nd);const s=Xl(t.firestore,gd),r=Vf(t.converter,e,n);return eg(s,[jd(Bd(s),"setDoc",t._key,r,null!==t.converter,n).toMutation(t._key,zi.none())])}function Yf(t,e,n,...s){t=Xl(t,nd);const r=Xl(t.firestore,gd),i=Bd(r);let o;return o="string"==typeof(e=g(e))||e instanceof Cd?Yd(i,"updateDoc",t._key,e,n,s):Wd(i,"updateDoc",t._key,e),eg(r,[o.toMutation(t._key,zi.exists(!0))])}function Xf(t){return eg(Xl(t.firestore,gd),[new oo(t._key,zi.none())])}function Jf(t,e){const n=Xl(t.firestore,gd),s=ad(t),r=Vf(t.converter,e);return eg(n,[jd(Bd(t.firestore),"addDoc",s._key,r,null!==t.converter,{}).toMutation(s._key,zi.exists(!1))]).then((()=>s))}function Zf(t,...e){var n,s,r;t=g(t);let i={includeMetadataChanges:!1},o=0;"object"!=typeof e[o]||ld(e[o])||(i=e[o],o++);const a={includeMetadataChanges:i.includeMetadataChanges};if(ld(e[o])){const t=e[o];e[o]=null===(n=t.next)||void 0===n?void 0:n.bind(t),e[o+1]=null===(s=t.error)||void 0===s?void 0:s.bind(t),e[o+2]=null===(r=t.complete)||void 0===r?void 0:r.bind(t)}let c,u,h;if(t instanceof nd)u=Xl(t.firestore,gd),h=mi(t._key.path),c={next:n=>{e[o]&&e[o](ng(u,t,n))},error:e[o+1],complete:e[o+2]};else{const n=Xl(t,sd);u=Xl(n.firestore,gd),h=n._query;const s=new Kf(u);c={next:t=>{e[o]&&e[o](new gf(u,s,n,t))},error:e[o+1],complete:e[o+2]},yf(t._query)}return function(t,e,n,s){const r=new Nl(s),i=new Fh(e,r,n);return t.asyncQueue.enqueueAndForget((async()=>kh(await Ul(t),i))),()=>{r.ec(),t.asyncQueue.enqueueAndForget((async()=>Rh(await Ul(t),i)))}}(yd(u),h,a,c)}function tg(t,e){return function(t,e){const n=new Nl(e);return t.asyncQueue.enqueueAndForget((async()=>function(t,e){Gs(t).so.add(e),e.next()}(await Ul(t),n))),()=>{n.ec(),t.asyncQueue.enqueueAndForget((async()=>function(t,e){Gs(t).so.delete(e)}(await Ul(t),n)))}}(yd(t=Xl(t,gd)),ld(e)?e:{next:e})}function eg(t,e){return function(t,e){const n=new Qs;return t.asyncQueue.enqueueAndForget((async()=>async function(t,e,n){const s=bl(t);try{const t=await function(t,e){const n=Gs(t),s=ar.now(),r=e.reduce(((t,e)=>t.add(e.key)),No());let i;return n.persistence.runTransaction("Locally write mutations","readwrite",(t=>n.Qn.Pn(t,r).next((r=>{i=r;const o=[];for(const t of e){const e=Ji(t,i.get(t.key));null!=e&&o.push(new no(t.key,e,Gr(e.value.mapValue),zi.exists(!0)))}return n.In.addMutationBatch(t,s,o,e)})))).then((t=>(t.applyToLocalDocumentSet(i),{batchId:t.batchId,changes:i})))}(s.localStore,e);s.sharedClientState.addPendingMutation(t.batchId),function(t,e,n){let s=t.qo[t.currentUser.toKey()];s||(s=new go(rr)),s=s.insert(e,n),t.qo[t.currentUser.toKey()]=s}(s,t.batchId,n),await cl(s,t.changes),await dh(s.remoteStore)}catch(t){const e=_h(t,"Failed to persist write");n.reject(e)}}(await Vl(t),e,n))),n.promise}(yd(t),e)}function ng(t,e,n){const s=n.docs.get(e._key),r=new Kf(t);return new df(t,r,e._key,s,new lf(n.hasPendingWrites,n.fromCache),e.converter)} +/** + * @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. + */class sg extends class{constructor(t,e){this._firestore=t,this._transaction=e,this._dataReader=Bd(t)}get(t){const e=Bf(t,this._firestore),n=new Uf(this._firestore);return this._transaction.lookup([e._key]).then((t=>{if(!t||1!==t.length)return js();const s=t[0];if(s.isFoundDocument())return new cf(this._firestore,n,s.key,s,e.converter);if(s.isNoDocument())return new cf(this._firestore,n,e._key,null,e.converter);throw js()}))}set(t,e,n){const s=Bf(t,this._firestore),r=Vf(s.converter,e,n),i=jd(this._dataReader,"Transaction.set",s._key,r,null!==s.converter,n);return this._transaction.set(s._key,i),this}update(t,e,n,...s){const r=Bf(t,this._firestore);let i;return i="string"==typeof(e=g(e))||e instanceof Cd?Yd(this._dataReader,"Transaction.update",r._key,e,n,s):Wd(this._dataReader,"Transaction.update",r._key,e),this._transaction.update(r._key,i),this}delete(t){const e=Bf(t,this._firestore);return this._transaction.delete(e._key),this}}{constructor(t,e){super(t,e),this._firestore=t}get(t){const e=Bf(t,this._firestore),n=new Kf(this._firestore);return super.get(t).then((t=>new df(this._firestore,n,e._key,t._document,new lf(!1,!1),e.converter)))}}function rg(t,e){return function(t,e){const n=new Qs;return t.asyncQueue.enqueueAndForget((async()=>{const s=await function(t){return Ol(t).then((t=>t.datastore))}(t);new xl(t.asyncQueue,s,e,n).run()})),n.promise}(yd(t=Xl(t,gd)),(n=>e(new sg(t,n))))} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */function ig(){return new Kd("deleteField")}function og(){return new Gd("serverTimestamp")}function ag(...t){return new Hd("arrayUnion",t)}function cg(...t){return new zd("arrayRemove",t)}function ug(t){return new Qd("increment",t)} +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */function hg(t){return yd(t=Xl(t,gd)),new qf(t,(e=>eg(t,e)))}!function(t,e=!0){!function(t){Os=t}(i.SDK_VERSION),i._registerComponent(new m("firestore",((t,{options:n})=>{const s=t.getProvider("app").getImmediate(),r=new gd(s,new Js(t.getProvider("auth-internal")));return n=Object.assign({useFetchStreams:e},n),r._setSettings(n),r}),"PUBLIC")),i.registerVersion(Rs,"3.2.1",t),i.registerVersion(Rs,"3.2.1","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.988eb12f.css b/frontend-dist/index.988eb12f.css new file mode 100644 index 0000000000..9642941eba --- /dev/null +++ b/frontend-dist/index.988eb12f.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,Helvetica,Arial,"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,Helvetica,Arial,"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.d1cf9206.js b/frontend-dist/index.d1cf9206.js new file mode 100644 index 0000000000..7c53a70322 --- /dev/null +++ b/frontend-dist/index.d1cf9206.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");r=n("cNaMA");const h=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)},f=({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=h(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)):h(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=w(await i.text());else{let e=await i.blob();window.location.href=URL.createObjectURL(e)}};return r.useEffect((()=>(document.addEventListener("paste",t),document.addEventListener("drop",t),document.addEventListener("dragstart",t),document.addEventListener("dragover",t),()=>{document.removeEventListener("paste",t),document.removeEventListener("drop",t),document.removeEventListener("dragstart",t),document.removeEventListener("dragover",t)}))),r.html``};var m=n("1xJnC");const _=({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`<${f} on_start_navigation=${a} /> +

${i.text}

+
+ <${p.FilePicker} + key=${i.placeholder} + client=${e} + value="" + on_submit=${async e=>{const t=await m.guess_notebook_location(e);a(t.path_or_url),window.location.href=("path"===t.type?v:g)(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} + />`} +
`},v=(e,t=!1)=>"open?"+new URLSearchParams({path:e}).toString(),g=e=>"open?"+new URLSearchParams({url:e}).toString(),w=e=>"edit?id="+e;var b=n("9Ta4i"),y=(r=n("cNaMA"),r=n("cNaMA"),n("aN0pg")),k=n("dYd4C");const $=e=>({transitioning:!1,entry:void 0,path:e}),P=e=>({transitioning:!1,entry:e,path:e.path}),j=(e,t)=>e.split(/\/|\\/).slice(-t).join("/"),S=(e,t)=>{let o=1;for(const n of t)if(n!==e)for(;j(e,o)===j(n,o);)o++;return j(e,o)},E=({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=>P(e))),o=L(),n=[...b.default.sortBy(t,[e=>b.default.findIndex([...o,...t],(t=>t.path===e.path))]),...b.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 $(o.path);{const e=P(n);return t.push(n),e}})),n=e.filter((e=>!t.includes(e))).map(P);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(S(t.path,u)),c(t.path,{transitioning:!0}))}} + >${S(t.path,u)} +
  • `}));return null==n?r.html` +

    My work

    + + `:r.html`<${n} cl=${y.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($)};b=n("9Ta4i"),r=n("cNaMA");var x=n("h2NGW"),T=n("1Mxs0");const C=[{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:{}}],N=r.html` + +`,A=[{title:"Notebooks",tags:"everything"}],O=e=>(null==e?void 0:e.id)??e.url,R=({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(O))).map((t=>{const o=e.filter((e=>O(e)===t));return D(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(O))??[])).map((e=>o[e])).filter((e=>null!=e));return l&&a?N:r.html` + ${(l?C:s).map((e=>{let o=(null==e?void 0:e.collections)??A;return r.html` + + `}))} + `};x.default(R,"pluto-featured",["sources","direct_html_links"]);const M=(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 b.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"])},D=(e,t=[])=>e.length<=1?Promise.any([...e,...t]):e[0].catch((()=>D(e.slice(1),[...t,e[0]])));var U,F=n("cpCG6"),I={sources:[{url:"https://featured.plutojl.org/pluto_export.json",valid_until:"2024-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===(U=document.head.querySelector("link[rel='pluto-logo-big']"))||void 0===U?void 0:U.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 F.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),v=(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}]:I.sources)),[e]);return null!=f?r.html` + + `:r.html` +
    +

    welcome to

    +
    +
    +
    + <${E} + 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=${v} + /> +
    +
    + + `},G=new URLSearchParams(window.location.search),B={featured_direct_html_links:!!(G.get("featured_direct_html_links")??window.pluto_featured_direct_html_links),featured_sources:window.pluto_featured_sources,featured_source_url:G.get("featured_source_url")??window.pluto_featured_source_url,featured_source_integrity:G.get("featured_source_integrity")??window.pluto_featured_source_integrity,pluto_server_url:G.get("pluto_server_url")??window.pluto_server_url};console.log("Launch parameters: ",B),r.render(r.html`<${c.Welcome} launch_params=${B} />`,document.querySelector("#app")); \ No newline at end of file diff --git a/frontend-dist/index.html b/frontend-dist/index.html new file mode 100644 index 0000000000..d10f1b9757 --- /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..782fe7dc9c --- /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.c256233f.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.82b535be.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.1f4cf2ca.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.30cc7101.js",".parcel-cache/.net/https/www.gstatic.com/firebasejs/9.3.0/firebase-app.js":"./firebase-app.42556901.js",".parcel-cache/.net/https/www.gstatic.com/firebasejs/9.3.0/firebase-firestore.js":"./firebase-firestore.fc4ff51d.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.988eb12f.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.d1cf9206.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