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.149171fb.js b/frontend-dist/editor.149171fb.js new file mode 100644 index 0000000000..d6c721c0fa --- /dev/null +++ b/frontend-dist/editor.149171fb.js @@ -0,0 +1,41 @@ +function e(e,t,i,r){Object.defineProperty(e,t,{get:i,set:r,enumerable:!0,configurable:!0})}var t="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},i={},r={},n=t.parcelRequire94c2;null==n&&((n=function(e){if(e in i)return i[e].exports;if(e in r){var t=r[e];delete r[e];var n={id:e,exports:{}};return i[e]=n,t.call(n.exports,n,n.exports),n.exports}var o=new Error("Cannot find module '"+e+"'");throw o.code="MODULE_NOT_FOUND",o}).register=function(e,t){r[e]=t},t.parcelRequire94c2=n),n.register("cNaMA",(function(t,i){e(t.exports,"html",(()=>o)),e(t.exports,"render",(()=>n("3vOYv").render)),e(t.exports,"Component",(()=>n("3vOYv").Component)),e(t.exports,"useEffect",(()=>n("exxBE").useEffect)),e(t.exports,"useLayoutEffect",(()=>n("exxBE").useLayoutEffect)),e(t.exports,"useState",(()=>n("exxBE").useState)),e(t.exports,"useRef",(()=>n("exxBE").useRef)),e(t.exports,"useMemo",(()=>n("exxBE").useMemo)),e(t.exports,"useCallback",(()=>n("exxBE").useCallback)),e(t.exports,"useErrorBoundary",(()=>n("exxBE").useErrorBoundary)),e(t.exports,"createContext",(()=>n("3vOYv").createContext)),e(t.exports,"createRef",(()=>n("3vOYv").createRef)),e(t.exports,"useContext",(()=>n("exxBE").useContext)),e(t.exports,"h",(()=>n("3vOYv").h)),e(t.exports,"cloneElement",(()=>n("3vOYv").cloneElement)),e(t.exports,"hydrate",(()=>n("3vOYv").hydrate)),n("648C5");var r=n("3vOYv");n("g47wy");n("exxBE");n("4KWiy");const o=n("lNRSt").default.bind(r.h)})),n.register("648C5",(function(t,i){e(t.exports,"h",(()=>n("3vOYv").h)),e(t.exports,"render",(()=>n("3vOYv").render)),e(t.exports,"Component",(()=>n("3vOYv").Component)),e(t.exports,"createContext",(()=>n("3vOYv").createContext)),e(t.exports,"createRef",(()=>n("3vOYv").createRef)),e(t.exports,"cloneElement",(()=>n("3vOYv").cloneElement)),e(t.exports,"hydrate",(()=>n("3vOYv").hydrate)),n("3vOYv")})),n.register("3vOYv",(function(t,i){e(t.exports,"options",(()=>n)),e(t.exports,"createRef",(()=>m)),e(t.exports,"Component",(()=>b)),e(t.exports,"render",(()=>C)),e(t.exports,"hydrate",(()=>U)),e(t.exports,"cloneElement",(()=>N)),e(t.exports,"createContext",(()=>j)),e(t.exports,"h",(()=>Q));var r,n,o,s,O,a,l,h,c={},u=[],f=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i;function d(e,t){for(var i in t)e[i]=t[i];return e}function p(e){var t=e.parentNode;t&&t.removeChild(e)}function Q(e,t,i){var n,o,s,O={};for(s in t)"key"==s?n=t[s]:"ref"==s?o=t[s]:O[s]=t[s];if(arguments.length>2&&(O.children=arguments.length>3?r.call(arguments,2):i),"function"==typeof e&&null!=e.defaultProps)for(s in e.defaultProps)void 0===O[s]&&(O[s]=e.defaultProps[s]);return g(e,O,n,o,null)}function g(e,t,i,r,s){var O={type:e,props:t,key:i,ref:r,__k:null,__:null,__b:0,__e:null,__d:void 0,__c:null,__h:null,constructor:void 0,__v:s??++o};return null==s&&null!=n.vnode&&n.vnode(O),O}function m(){return{current:null}}function $(e){return e.children}function b(e,t){this.props=e,this.context=t}function X(e,t){if(null==t)return e.__?X(e.__,e.__.__k.indexOf(e)+1):null;for(var i;tt&&s.sort(l));v.__r=0}function x(e,t,i,r,n,o,s,O,a,l){var h,f,d,p,Q,m,b,S=r&&r.__k||u,y=S.length;for(i.__k=[],h=0;h0?g(p.type,p.props,p.key,p.ref?p.ref:null,p.__v):p)){if(p.__=i,p.__b=i.__b+1,null===(d=S[h])||d&&p.key==d.key&&p.type===d.type)S[h]=void 0;else for(f=0;f=0;t--)if((i=e.__k[t])&&(r=T(i)))return r;return null}function k(e,t,i){"-"===t[0]?e.setProperty(t,i??""):e[t]=null==i?"":"number"!=typeof i||f.test(t)?i:i+"px"}function Y(e,t,i,r,n){var o;e:if("style"===t)if("string"==typeof i)e.style.cssText=i;else{if("string"==typeof r&&(e.style.cssText=r=""),r)for(t in r)i&&t in i||k(e.style,t,"");if(i)for(t in i)r&&i[t]===r[t]||k(e.style,t,i[t])}else if("o"===t[0]&&"n"===t[1])o=t!==(t=t.replace(/Capture$/,"")),t=t.toLowerCase()in e?t.toLowerCase().slice(2):t.slice(2),e.l||(e.l={}),e.l[t+o]=i,i?r||e.addEventListener(t,o?_:R,o):e.removeEventListener(t,o?_:R,o);else if("dangerouslySetInnerHTML"!==t){if(n)t=t.replace(/xlink(H|:h)/,"h").replace(/sName$/,"s");else if("width"!==t&&"height"!==t&&"href"!==t&&"list"!==t&&"form"!==t&&"tabIndex"!==t&&"download"!==t&&t in e)try{e[t]=i??"";break e}catch{}"function"==typeof i||(null==i||!1===i&&"-"!==t[4]?e.removeAttribute(t):e.setAttribute(t,i))}}function R(e){return this.l[e.type+!1](n.event?n.event(e):e)}function _(e){return this.l[e.type+!0](n.event?n.event(e):e)}function V(e,t,i,o,s,O,a,l,h){var u,f,Q,g,m,S,y,v,P,w,T,k,R,_,V,Z=t.type;if(void 0!==t.constructor)return null;null!=i.__h&&(h=i.__h,l=t.__e=i.__e,t.__h=null,O=[l]),(u=n.__b)&&u(t);try{e:if("function"==typeof Z){if(v=t.props,P=(u=Z.contextType)&&o[u.__c],w=u?P?P.props.value:u.__:o,i.__c?y=(f=t.__c=i.__c).__=f.__E:("prototype"in Z&&Z.prototype.render?t.__c=f=new Z(v,w):(t.__c=f=new b(v,w),f.constructor=Z,f.render=W),P&&P.sub(f),f.props=v,f.state||(f.state={}),f.context=w,f.__n=o,Q=f.__d=!0,f.__h=[],f._sb=[]),null==f.__s&&(f.__s=f.state),null!=Z.getDerivedStateFromProps&&(f.__s==f.state&&(f.__s=d({},f.__s)),d(f.__s,Z.getDerivedStateFromProps(v,f.__s))),g=f.props,m=f.state,f.__v=t,Q)null==Z.getDerivedStateFromProps&&null!=f.componentWillMount&&f.componentWillMount(),null!=f.componentDidMount&&f.__h.push(f.componentDidMount);else{if(null==Z.getDerivedStateFromProps&&v!==g&&null!=f.componentWillReceiveProps&&f.componentWillReceiveProps(v,w),!f.__e&&null!=f.shouldComponentUpdate&&!1===f.shouldComponentUpdate(v,f.__s,w)||t.__v===i.__v){for(t.__v!==i.__v&&(f.props=v,f.state=f.__s,f.__d=!1),f.__e=!1,t.__e=i.__e,t.__k=i.__k,t.__k.forEach((function(e){e&&(e.__=t)})),T=0;T2&&(O.children=arguments.length>3?r.call(arguments,2):i),g(e.type,O,n||e.key,o||e.ref,null)}function j(e,t){var i={__c:t="__cC"+h++,__:e,Consumer:function(e,t){return e.children(t)},Provider:function(e){var i,r;return this.getChildContext||(i=[],(r={})[t]=this,this.getChildContext=function(){return r},this.shouldComponentUpdate=function(e){this.props.value!==e.value&&i.some((function(e){e.__e=!0,y(e)}))},this.sub=function(e){i.push(e);var t=e.componentWillUnmount;e.componentWillUnmount=function(){i.splice(i.indexOf(e),1),t&&t.call(e)}}),e.children}};return i.Provider.__=i.Consumer.contextType=i}r=u.slice,n={__e:function(e,t,i,r){for(var n,o,s;t=t.__;)if((n=t.__c)&&!n.__)try{if((o=n.constructor)&&null!=o.getDerivedStateFromError&&(n.setState(o.getDerivedStateFromError(e)),s=n.__d),null!=n.componentDidCatch&&(n.componentDidCatch(e,r||{}),s=n.__d),s)return n.__E=n}catch(t){e=t}throw e}},o=0,b.prototype.setState=function(e,t){var i;i=null!=this.__s&&this.__s!==this.state?this.__s:this.__s=d({},this.state),"function"==typeof e&&(e=e(d({},i),this.props)),e&&d(i,e),null!=e&&this.__v&&(t&&this._sb.push(t),y(this))},b.prototype.forceUpdate=function(e){this.__v&&(this.__e=!0,e&&this.__h.push(e),y(this))},b.prototype.render=$,s=[],a="function"==typeof Promise?Promise.prototype.then.bind(Promise.resolve()):setTimeout,l=function(e,t){return e.__v.__b-t.__v.__b},v.__r=0,h=0})),n.register("g47wy",(function(t,i){e(t.exports,"useEffect",(()=>n("exxBE").useEffect)),e(t.exports,"useLayoutEffect",(()=>n("exxBE").useLayoutEffect)),e(t.exports,"useState",(()=>n("exxBE").useState)),e(t.exports,"useRef",(()=>n("exxBE").useRef)),e(t.exports,"useMemo",(()=>n("exxBE").useMemo)),e(t.exports,"useCallback",(()=>n("exxBE").useCallback)),e(t.exports,"useErrorBoundary",(()=>n("exxBE").useErrorBoundary)),e(t.exports,"useContext",(()=>n("exxBE").useContext)),n("3vOYv"),n("exxBE")})),n.register("exxBE",(function(t,i){e(t.exports,"useState",(()=>m)),e(t.exports,"useEffect",(()=>$)),e(t.exports,"useLayoutEffect",(()=>b)),e(t.exports,"useRef",(()=>X)),e(t.exports,"useMemo",(()=>S)),e(t.exports,"useCallback",(()=>y)),e(t.exports,"useContext",(()=>v)),e(t.exports,"useErrorBoundary",(()=>x));var r,o,s,O,a=n("3vOYv"),l=0,h=[],c=[],u=a.options.__b,f=a.options.__r,d=a.options.diffed,p=a.options.__c,Q=a.options.unmount;function g(e,t){a.options.__h&&a.options.__h(o,e,l||t),l=0;var i=o.__H||(o.__H={__:[],__h:[]});return e>=i.__.length&&i.__.push({__V:c}),i.__[e]}function m(e){return l=1,function(e,t,i){var n=g(r++,2);if(n.t=e,!n.__c&&(n.__=[i?i(t):_(void 0,t),function(e){var t=n.__N?n.__N[0]:n.__[0],i=n.t(t,e);t!==i&&(n.__N=[i,n.__[1]],n.__c.setState({}))}],n.__c=o,!o.u)){var s=function(e,t,i){if(!n.__c.__H)return!0;var r=n.__c.__H.__.filter((function(e){return e.__c}));if(r.every((function(e){return!e.__N})))return!O||O.call(this,e,t,i);var o=!1;return r.forEach((function(e){if(e.__N){var t=e.__[0];e.__=e.__N,e.__N=void 0,t!==e.__[0]&&(o=!0)}})),!(!o&&n.__c.props===e)&&(!O||O.call(this,e,t,i))};o.u=!0;var O=o.shouldComponentUpdate,a=o.componentWillUpdate;o.componentWillUpdate=function(e,t,i){if(this.__e){var r=O;O=void 0,s(e,t,i),O=r}a&&a.call(this,e,t,i)},o.shouldComponentUpdate=s}return n.__N||n.__}(_,e)}function $(e,t){var i=g(r++,3);!a.options.__s&&R(i.__H,t)&&(i.__=e,i.i=t,o.__H.__h.push(i))}function b(e,t){var i=g(r++,4);!a.options.__s&&R(i.__H,t)&&(i.__=e,i.i=t,o.__h.push(i))}function X(e){return l=5,S((function(){return{current:e}}),[])}function S(e,t){var i=g(r++,7);return R(i.__H,t)?(i.__V=e(),i.i=t,i.__h=e,i.__V):i.__}function y(e,t){return l=8,S((function(){return e}),t)}function v(e){var t=o.context[e.__c],i=g(r++,9);return i.c=e,t?(null==i.__&&(i.__=!0,t.sub(o)),t.props.value):e.__}function x(e){var t=g(r++,10),i=m();return t.__=e,o.componentDidCatch||(o.componentDidCatch=function(e,r){t.__&&t.__(e,r),i[1](e)}),[i[0],function(){i[1](void 0)}]}function P(){for(var e;e=h.shift();)if(e.__P&&e.__H)try{e.__H.__h.forEach(k),e.__H.__h.forEach(Y),e.__H.__h=[]}catch(t){e.__H.__h=[],a.options.__e(t,e.__v)}}a.options.__b=function(e){o=null,u&&u(e)},a.options.__r=function(e){f&&f(e),r=0;var t=(o=e.__c).__H;t&&(s===o?(t.__h=[],o.__h=[],t.__.forEach((function(e){e.__N&&(e.__=e.__N),e.__V=c,e.__N=e.i=void 0}))):(t.__h.forEach(k),t.__h.forEach(Y),t.__h=[])),s=o},a.options.diffed=function(e){d&&d(e);var t=e.__c;t&&t.__H&&(t.__H.__h.length&&(1!==h.push(t)&&O===a.options.requestAnimationFrame||((O=a.options.requestAnimationFrame)||T)(P)),t.__H.__.forEach((function(e){e.i&&(e.__H=e.i),e.__V!==c&&(e.__=e.__V),e.i=void 0,e.__V=c}))),s=o=null},a.options.__c=function(e,t){t.some((function(e){try{e.__h.forEach(k),e.__h=e.__h.filter((function(e){return!e.__||Y(e)}))}catch(i){t.some((function(e){e.__h&&(e.__h=[])})),t=[],a.options.__e(i,e.__v)}})),p&&p(e,t)},a.options.unmount=function(e){Q&&Q(e);var t,i=e.__c;i&&i.__H&&(i.__H.__.forEach((function(e){try{k(e)}catch(e){t=e}})),i.__H=void 0,t&&a.options.__e(t,i.__v))};var w="function"==typeof requestAnimationFrame;function T(e){var t,i=function(){clearTimeout(r),w&&cancelAnimationFrame(t),setTimeout(e)},r=setTimeout(i,100);w&&(t=requestAnimationFrame(i))}function k(e){var t=o,i=e.__c;"function"==typeof i&&(e.__c=void 0,i()),o=t}function Y(e){var t=o;e.__c=e.__(),o=t}function R(e,t){return!e||e.length!==t.length||t.some((function(t,i){return t!==e[i]}))}function _(e,t){return"function"==typeof t?t(e):t}})),n.register("4KWiy",(function(t,i){var r;r=t.exports,Object.defineProperty(r,"__esModule",{value:!0,configurable:!0}),e(t.exports,"default",(()=>n("lNRSt").default));n("lNRSt"),n("lNRSt")})),n.register("lNRSt",(function(t,i){e(t.exports,"default",(()=>o));var r=function(e,t,i,n){var o;t[0]=0;for(var s=1;s=5&&((n||!e&&5===r)&&(s.push(r,0,n,i),r=6),e&&(s.push(r,e,0,i),r=6)),n=""},a=0;a"===t?(r=1,n=""):n=t+n[0]:o?t===o?o="":n+=t:'"'===t||"'"===t?o=t:">"===t?(O(),r=1):r&&("="===t?(r=5,i=n,n=""):"/"===t&&(r<5||">"===e[a][l+1])?(O(),3===r&&(s=s[0]),r=s,(s=s[0]).push(2,0,r),r=0):" "===t||"\t"===t||"\n"===t||"\r"===t?(O(),r=2):n+=t),3===r&&"!--"===n&&(r=4,s=s[0])}return O(),s}(e)),t),arguments,[])).length>1?t:t[0]}})),n.register("eS9BV",(function(e,t){try{null==window.process&&(window.process={}),null==window.process.env&&(window.process.env={}),window.process.env.NODE_ENV="production"}catch(e){console.warn("Couldn't set window.process.env, this might break some things")}})),n.register("9Ta4i",(function(t,i){e(t.exports,"default",(()=>r));var r=window._})),n.register("4zMEb",(function(t,i){e(t.exports,"timeout_promise",(()=>O)),e(t.exports,"ws_address_from_base",(()=>f)),e(t.exports,"create_pluto_connection",(()=>p));var r=n("fUfdR"),o=n("k9crH");n("iYcLY");var s=n("41Mhf");const O=(e,t)=>Promise.race([e,new Promise(((e,i)=>{setTimeout((()=>{i(new Error("Promise timed out."))}),t)}))]),a=()=>crypto.getRandomValues(new Uint32Array(1))[0].toString(36),l=e=>e.readyState==WebSocket.OPEN||e.readyState==WebSocket.CONNECTING,h=e=>{e.onopen=()=>{h(e)},e.onmessage=e.onclose=e.onerror=null;try{e.close(1e3,"byebye")}catch(e){}},c=(e,{on_message:t,on_socket_close:i},r=30)=>new Promise(((n,s)=>{const O=new WebSocket(e);let a=!1;const c=setTimeout((()=>{console.warn("Creating websocket timed out",(new Date).toLocaleTimeString()),h(O),s("Socket timeout")}),1e3*r),u=e=>{const t=o.pack(e);O.send(t)};let f=Promise.resolve();O.onmessage=e=>{f=f.then((async()=>{try{const i=await e.data.arrayBuffer(),r=o.unpack(new Uint8Array(i));try{t(r)}catch(t){console.error("Failed to process message from websocket",t,{message:r}),alert(`Something went wrong! You might need to refresh the page.\n\nPlease open an issue on https://github.com/fonsp/Pluto.jl with this info:\n\nFailed to process update\n${t.message}\n\n${JSON.stringify(e)}`)}}catch(t){console.error("Failed to unpack message from websocket",t,{event:e}),alert(`Something went wrong! You might need to refresh the page.\n\nPlease open an issue on https://github.com/fonsp/Pluto.jl with this info:\n\nFailed to unpack message\n${t}\n\n${JSON.stringify(e)}`)}}))},O.onerror=async e=>{console.error(`Socket did an oopsie - ${e.type}`,(new Date).toLocaleTimeString(),"was open:",a,e),await(e=>new Promise((t=>{l(e)?t(!0):setTimeout((()=>{t(l(e))}),1e3)})))(O)?(console.log("The socket somehow recovered from an error?! Onbegrijpelijk"),console.log(O),console.log(O.readyState)):a?(i(),h(O)):s(e)},O.onclose=async e=>{console.error(`Socket did an oopsie - ${e.type}`,(new Date).toLocaleTimeString(),"was open:",a,e),a?(i(),h(O)):s(e)},O.onopen=()=>{console.log("Socket opened",(new Date).toLocaleTimeString()),clearInterval(c),a=!0,n({socket:O,send:u})},console.log("Waiting for socket to open...",(new Date).toLocaleTimeString())}));const u=e=>{let t=null,i=[],r=null;return async(n,o,s,O)=>{if("update_notebook"===n){if(null!=r&&r!=s.notebook_id)throw new Error("Switched notebook inbetween same-tick updates??? WHAT?!?!");return i=[...i,...o.updates],r=s.notebook_id,null==t&&(t=new Promise((e=>setTimeout(e,0))).then((async()=>{let o=i;return t=null,i=[],r=null,await e(n,{updates:o},s,O)}))),await t}return await e(n,o,s,O)}},f=e=>{const t=new URL("./",e);t.protocol=t.protocol.replace("http","ws");return s.with_query_params(t,{secret:new URL(e).searchParams.get("secret")})},d=()=>f(window.location.href),p=async({on_unrequested_update:e,on_reconnect:t,on_connection_status:i,connect_metadata:n={},ws_address:o=d()})=>{let s=null;const O={send:null,session_options:null,version_info:{julia:"unknown",pluto:"unknown",dismiss_update_notification:!1},notebook_exists:!0,kill:null},l=a(),h=new Map,f=async(t,i={},r={},n=!0)=>{if(null==s)throw new Error("No connection established yet");const o=a(),O={type:t,client_id:l,request_id:o,body:i,...r};let c=(()=>{let e=()=>{},t=()=>{};return{current:new Promise(((i,r)=>{e=i,t=r})),resolve:e,reject:t}})();return h.set(o,(t=>{c.resolve(t),!1===n&&e(t,!0)})),s.send(O),await c.current};O.send=u(f);const p=async()=>{(async()=>{try{const e=new URL(window.location.href),t=await fetch("possible_binder_token_please");if(!t.ok)return;const i=await t.text();""!==i&&e.searchParams.get("token")!==i&&(e.searchParams.set("token",i),history.replaceState({},"",e.toString()))}catch(e){console.warn("Error while setting binder url:",e)}})();try{s=await c(String(o),{on_message:t=>{const i=t.initiator_id==l,r=t.request_id;if(i&&r){const e=h.get(r);if(e)return e(t),void h.delete(r)}e(t,i)},on_socket_close:async()=>{i(!1,!1),console.log("Starting new websocket",(new Date).toLocaleTimeString()),await r.Promises.delay(500),await p(),console.log("Starting state sync",(new Date).toLocaleTimeString());const e=t();console.log(`State sync ${e?"":"not "}successful`,(new Date).toLocaleTimeString()),i(e,!1),e||alert("Connection out of sync 😥\n\nRefresh the page to continue")}}),console.log("Hello?");const a=await f("connect",{},n);if(console.log("Hello!"),O.kill=()=>{s&&s.socket.close()},O.session_options=a.message.options,O.version_info=a.message.version_info,O.notebook_exists=a.message.notebook_exists,console.log("Client object: ",O),null!=n.notebook_id&&!a.message.notebook_exists)return i(!1,!0),{};i(!0,!1);const u=()=>{f("ping",{},{}).then((()=>{setTimeout(u,28e3)})).catch((()=>{}))};return u(),a.message}catch(e){return console.error("connect() failed",e),await r.Promises.delay(5e3),await p()}};return await p(),O}})),n.register("fUfdR",(function(t,i){e(t.exports,"default",(()=>n)),e(t.exports,"observablehq_for_cells",(()=>o)),e(t.exports,"Promises",(()=>s));let r=()=>{let e=new window.observablehq.Library;return{DOM:e.DOM,Files:e.Files,Generators:e.Generators,Promises:e.Promises,now:e.now,svg:e.svg(),html:e.html(),require:e.require()}};const n=r(),o=r();n.DOM,n.Files,n.Generators;let s=n.Promises;n.now,n.svg,n.html,n.require})),n.register("k9crH",(function(t,i){e(t.exports,"pack",(()=>O)),e(t.exports,"unpack",(()=>a));var r=n("e52WV");const o=r.default.createCodec(),s=e=>new Uint8Array(e.buffer,e.byteOffset,e.byteLength);o.addExtPacker(17,Int8Array,s),o.addExtPacker(18,Uint8Array,s),o.addExtPacker(19,Int16Array,s),o.addExtPacker(20,Uint16Array,s),o.addExtPacker(21,Int32Array,s),o.addExtPacker(22,Uint32Array,s),o.addExtPacker(23,Float32Array,s),o.addExtPacker(24,Float64Array,s),o.addExtPacker(18,Uint8ClampedArray,s),o.addExtPacker(18,ArrayBuffer,(e=>new Uint8Array(e))),o.addExtPacker(18,DataView,s),o.addExtPacker(13,Date,(e=>new BigInt64Array([BigInt(+e)]))),o.addExtUnpacker(13,(e=>{if("getBigInt64"in DataView.prototype){let t=new DataView(e.buffer,e.byteOffset,e.byteLength).getBigInt64(0,!0);if(t>Number.MAX_SAFE_INTEGER)throw new Error("Can't read too big number as date (how far in the future is this?!)");return new Date(Number(t))}return new Date(NaN)})),o.addExtUnpacker(17,(e=>new Int8Array(e.buffer))),o.addExtUnpacker(18,(e=>new Uint8Array(e.buffer))),o.addExtUnpacker(19,(e=>new Int16Array(e.buffer))),o.addExtUnpacker(20,(e=>new Uint16Array(e.buffer))),o.addExtUnpacker(21,(e=>new Int32Array(e.buffer))),o.addExtUnpacker(22,(e=>new Uint32Array(e.buffer))),o.addExtUnpacker(23,(e=>new Float32Array(e.buffer))),o.addExtUnpacker(24,(e=>new Float64Array(e.buffer)));const O=e=>r.default.encode(e,{codec:o}),a=e=>r.default.decode(e,{codec:o})})),n.register("e52WV",(function(t,i){e(t.exports,"default",(()=>r));var r=n("8RXlh").default})),n.register("8RXlh",(function(i,r){e(i.exports,"default",(()=>o));const n=function e(t,i,r){function n(s,O){if(!i[s]){if(!t[s]){var a=void 0;if(!O&&a)return a(s,!0);if(o)return o(s,!0);var l=new Error("Cannot find module '"+s+"'");throw l.code="MODULE_NOT_FOUND",l}var h=i[s]={exports:{}};t[s][0].call(h.exports,(function(e){var i=t[s][1][e];return n(i||e)}),h,h.exports,e,t,i,r)}return i[s].exports}for(var o=void 0,s=0;s>>6,i[r++]=128|63&o):o<55296||o>57343?(i[r++]=224|o>>>12,i[r++]=128|o>>>6&63,i[r++]=128|63&o):(o=65536+(o-55296<<10|e.charCodeAt(s++)-56320),i[r++]=240|o>>>18,i[r++]=128|o>>>12&63,i[r++]=128|o>>>6&63,i[r++]=128|63&o);return r-t}function n(e,t,i){var r=this,n=0|t;i||(i=r.length);for(var o="",s=0;n=65536?(s-=65536,o+=String.fromCharCode(55296+(s>>>10),56320+(1023&s))):o+=String.fromCharCode(s));return o}function o(e,t,i,r){var n;i||(i=0),r||0===r||(r=this.length),t||(t=0);var o=r-i;if(e===this&&i=0;n--)e[n+t]=this[n+i];else for(n=0;nthis.buffer.length)throw new Error(Q);return this.offset=i,t}return{bufferish:f,write:e,fetch:a,flush:t,push:h,pull:c,read:l,reserve:i,offset:0}}function s(){function e(){var e=this.start;if(e1?this.bufferish.concat(e):e[0];return e.length=0,t}function r(e){var t=0|e;if(this.buffer){var i=this.buffer.length,r=0|this.offset,n=r+t;if(nthis.minBufferSize)this.flush(),this.push(e);else{var i=this.reserve(t);f.prototype.copy.call(e,this.buffer,i)}}return{bufferish:f,write:O,fetch:e,flush:t,push:h,pull:i,read:l,reserve:r,send:n,maxBufferSize:p,minBufferSize:d,offset:0,start:0}}function O(){throw new Error("method not implemented: write()")}function a(){throw new Error("method not implemented: fetch()")}function l(){return this.buffers&&this.buffers.length?(this.flush(),this.pull()):this.fetch()}function h(e){(this.buffers||(this.buffers=[])).push(e)}function c(){return(this.buffers||(this.buffers=[])).shift()}function u(e){function t(t){for(var i in e)t[i]=e[i];return t}return t}i.FlexDecoder=r,i.FlexEncoder=n;var f=e("./bufferish"),d=2048,p=65536,Q="BUFFER_SHORTAGE";r.mixin=u(o()),r.mixin(r.prototype),n.mixin=u(s()),n.mixin(n.prototype)},{"./bufferish":8}],22:[function(e,t,i){function r(e){function t(e){var t=l(e),r=i[t];if(!r)throw new Error("Invalid type: "+(t?"0x"+t.toString(16):t));return r(e)}var i=h.getReadToken(e);return t}function n(){var e=this.options;return this.decode=r(e),e&&e.preset&&a.setExtUnpackers(this),this}function o(e,t){(this.extUnpackers||(this.extUnpackers=[]))[e]=c.filter(t)}function s(e){function t(t){return new O(t,e)}return(this.extUnpackers||(this.extUnpackers=[]))[e]||t}var O=e("./ext-buffer").ExtBuffer,a=e("./ext-unpacker"),l=e("./read-format").readUint8,h=e("./read-token"),c=e("./codec-base");c.install({addExtUnpacker:o,getExtUnpacker:s,init:n}),i.preset=n.call(c.preset)},{"./codec-base":9,"./ext-buffer":17,"./ext-unpacker":19,"./read-format":23,"./read-token":24}],23:[function(e,t,i){function r(e){var t=T.hasArrayBuffer&&e&&e.binarraybuffer,i=e&&e.int64;return{map:Y&&e&&e.usemap?o:n,array:s,str:O,bin:t?l:a,ext:h,uint8:c,uint16:f,uint32:p,uint64:g(8,i?b:m),int8:u,int16:d,int32:Q,int64:g(8,i?X:$),float32:g(4,S),float64:g(8,y)}}function n(e,t){var i,r={},n=new Array(t),o=new Array(t),s=e.codec.decode;for(i=0;i>>8,n[r]=i}}function l(e){return function(t,i){var r=t.reserve(5),n=t.buffer;n[r++]=e,n[r++]=i>>>24,n[r++]=i>>>16,n[r++]=i>>>8,n[r]=i}}function h(e,t,i,r){return function(n,o){var s=n.reserve(t+1);n.buffer[s++]=e,i.call(n.buffer,o,s,r)}}function c(e,t){new g(this,t,e)}function u(e,t){new m(this,t,e)}function f(e,t){p.write(this,e,t,!1,23,4)}function d(e,t){p.write(this,e,t,!1,52,8)}var p=e("ieee754"),Q=e("int64-buffer"),g=Q.Uint64BE,m=Q.Int64BE,$=e("./write-uint8").uint8,b=e("./bufferish"),X=b.global,S=b.hasBuffer&&"TYPED_ARRAY_SUPPORT"in X&&!X.TYPED_ARRAY_SUPPORT,y=b.hasBuffer&&X.prototype||{};i.getWriteToken=r},{"./bufferish":8,"./write-uint8":28,ieee754:32,"int64-buffer":33}],27:[function(e,t,i){function r(e){function t(e,t){k[t?195:194](e,t)}function i(e,t){var i=0|t;return t!==i?void k[203](e,t):void k[-32<=i&&i<=127?255&i:0<=i?i<=255?204:i<=65535?205:206:-128<=i?208:-32768<=i?209:210](e,i)}function r(e,t){k[207](e,t.toArray())}function o(e,t){k[211](e,t.toArray())}function Q(e){return e<32?1:e<=255?2:e<=65535?3:5}function g(e){return e<32?1:e<=65535?3:5}function m(e){function t(t,i){var r=i.length,n=5+3*r;t.offset=t.reserve(n);var o=t.buffer,s=e(r),O=t.offset+s;r=l.write.call(o,i,O);var a=e(r);if(s!==a){var h=O+a-s,c=O+r;l.copy.call(o,o,h,O,c)}k[1===a?160+r:a<=3?215+a:219](t,r),t.offset+=r}return t}function $(e,t){if(null===t)return X(e,t);if(_(t))return V(e,t);if(n(t))return S(e,t);if(s.isUint64BE(t))return r(e,t);if(O.isInt64BE(t))return o(e,t);var i=e.codec.getExtPacker(t);return i&&(t=i(t)),t instanceof u?x(e,t):void Z(e,t)}function b(e,t){return _(t)?T(e,t):void $(e,t)}function X(e,t){k[192](e,t)}function S(e,t){var i=t.length;k[i<16?144+i:i<=65535?220:221](e,i);for(var r=e.codec.encode,n=0;n=n())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+n().toString(16)+" bytes");return 0|e}function Q(e){return+e!=e&&(e=0),s.alloc(+e)}function g(e,t){if(s.isBuffer(e))return e.length;if("undefined"!=typeof ArrayBuffer&&"function"==typeof ArrayBuffer.isView&&(ArrayBuffer.isView(e)||e instanceof ArrayBuffer))return e.byteLength;"string"!=typeof e&&(e=""+e);var i=e.length;if(0===i)return 0;for(var r=!1;;)switch(t){case"ascii":case"latin1":case"binary":return i;case"utf8":case"utf-8":case void 0:return D(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*i;case"hex":return i>>>1;case"base64":return I(e).length;default:if(r)return D(e).length;t=(""+t).toLowerCase(),r=!0}}function m(e,t,i){var r=!1;if((void 0===t||t<0)&&(t=0),t>this.length)return"";if((void 0===i||i>this.length)&&(i=this.length),i<=0)return"";if((i>>>=0)<=(t>>>=0))return"";for(e||(e="utf8");;)switch(e){case"hex":return V(this,t,i);case"utf8":case"utf-8":return k(this,t,i);case"ascii":return R(this,t,i);case"latin1":case"binary":return _(this,t,i);case"base64":return T(this,t,i);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return Z(this,t,i);default:if(r)throw new TypeError("Unknown encoding: "+e);e=(e+"").toLowerCase(),r=!0}}function $(e,t,i){var r=e[t];e[t]=e[i],e[i]=r}function b(e,t,i,r,n){if(0===e.length)return-1;if("string"==typeof i?(r=i,i=0):i>2147483647?i=2147483647:i<-2147483648&&(i=-2147483648),i=+i,isNaN(i)&&(i=n?0:e.length-1),i<0&&(i=e.length+i),i>=e.length){if(n)return-1;i=e.length-1}else if(i<0){if(!n)return-1;i=0}if("string"==typeof t&&(t=s.from(t,r)),s.isBuffer(t))return 0===t.length?-1:X(e,t,i,r,n);if("number"==typeof t)return t&=255,s.TYPED_ARRAY_SUPPORT&&"function"==typeof Uint8Array.prototype.indexOf?n?Uint8Array.prototype.indexOf.call(e,t,i):Uint8Array.prototype.lastIndexOf.call(e,t,i):X(e,[t],i,r,n);throw new TypeError("val must be string, number or Buffer")}function X(e,t,i,r,n){function o(e,t){return 1===O?e[t]:e.readUInt16BE(t*O)}var s,O=1,a=e.length,l=t.length;if(void 0!==r&&("ucs2"===(r=String(r).toLowerCase())||"ucs-2"===r||"utf16le"===r||"utf-16le"===r)){if(e.length<2||t.length<2)return-1;O=2,a/=2,l/=2,i/=2}if(n){var h=-1;for(s=i;sa&&(i=a-l),s=i;s>=0;s--){for(var c=!0,u=0;un&&(r=n):r=n;var o=t.length;if(o%2!=0)throw new TypeError("Invalid hex string");r>o/2&&(r=o/2);for(var s=0;s239?4:l>223?3:l>191?2:1;if(n+c<=i)switch(c){case 1:l<128&&(h=l);break;case 2:128==(192&(o=e[n+1]))&&(a=(31&l)<<6|63&o)>127&&(h=a);break;case 3:o=e[n+1],s=e[n+2],128==(192&o)&&128==(192&s)&&(a=(15&l)<<12|(63&o)<<6|63&s)>2047&&(a<55296||a>57343)&&(h=a);break;case 4:o=e[n+1],s=e[n+2],O=e[n+3],128==(192&o)&&128==(192&s)&&128==(192&O)&&(a=(15&l)<<18|(63&o)<<12|(63&s)<<6|63&O)>65535&&a<1114112&&(h=a)}null===h?(h=65533,c=1):h>65535&&(h-=65536,r.push(h>>>10&1023|55296),h=56320|1023&h),r.push(h),n+=c}return Y(r)}function Y(e){var t=e.length;if(t<=ee)return String.fromCharCode.apply(String,e);for(var i="",r=0;rr)&&(i=r);for(var n="",o=t;oi)throw new RangeError("Trying to access beyond buffer length")}function q(e,t,i,r,n,o){if(!s.isBuffer(e))throw new TypeError('"buffer" argument must be a Buffer instance');if(t>n||te.length)throw new RangeError("Index out of range")}function W(e,t,i,r){t<0&&(t=65535+t+1);for(var n=0,o=Math.min(e.length-i,2);n>>8*(r?n:1-n)}function C(e,t,i,r){t<0&&(t=4294967295+t+1);for(var n=0,o=Math.min(e.length-i,4);n>>8*(r?n:3-n)&255}function U(e,t,i,r,n,o){if(i+r>e.length)throw new RangeError("Index out of range");if(i<0)throw new RangeError("Index out of range")}function N(e,t,i,r,n){return n||U(e,t,i,4,34028234663852886e22,-34028234663852886e22),H.write(e,t,i,r,23,4),i+4}function j(e,t,i,r,n){return n||U(e,t,i,8,17976931348623157e292,-17976931348623157e292),H.write(e,t,i,r,52,8),i+8}function E(e){if((e=z(e).replace(te,"")).length<2)return"";for(;e.length%4!=0;)e+="=";return e}function z(e){return e.trim?e.trim():e.replace(/^\s+|\s+$/g,"")}function G(e){return e<16?"0"+e.toString(16):e.toString(16)}function D(e,t){t=t||1/0;for(var i,r=e.length,n=null,o=[],s=0;s55295&&i<57344){if(!n){if(i>56319){(t-=3)>-1&&o.push(239,191,189);continue}if(s+1===r){(t-=3)>-1&&o.push(239,191,189);continue}n=i;continue}if(i<56320){(t-=3)>-1&&o.push(239,191,189),n=i;continue}i=65536+(n-55296<<10|i-56320)}else n&&(t-=3)>-1&&o.push(239,191,189);if(n=null,i<128){if((t-=1)<0)break;o.push(i)}else if(i<2048){if((t-=2)<0)break;o.push(i>>6|192,63&i|128)}else if(i<65536){if((t-=3)<0)break;o.push(i>>12|224,i>>6&63|128,63&i|128)}else{if(!(i<1114112))throw new Error("Invalid code point");if((t-=4)<0)break;o.push(i>>18|240,i>>12&63|128,i>>6&63|128,63&i|128)}}return o}function M(e){for(var t=[],i=0;i>8,n=i%256,o.push(n),o.push(r);return o}function I(e){return F.toByteArray(E(e))}function L(e,t,i,r){for(var n=0;n=t.length||n>=e.length);++n)t[n+i]=e[n];return n}function K(e){return e!=e}var F=e("base64-js"),H=e("ieee754"),J=e("isarray");r.Buffer=s,r.SlowBuffer=Q,r.INSPECT_MAX_BYTES=50,s.TYPED_ARRAY_SUPPORT=void 0!==t.TYPED_ARRAY_SUPPORT?t.TYPED_ARRAY_SUPPORT:i(),r.kMaxLength=n(),s.poolSize=8192,s._augment=function(e){return e.__proto__=s.prototype,e},s.from=function(e,t,i){return O(null,e,t,i)},s.TYPED_ARRAY_SUPPORT&&(s.prototype.__proto__=Uint8Array.prototype,s.__proto__=Uint8Array,"undefined"!=typeof Symbol&&Symbol.species&&s[Symbol.species]===s&&Object.defineProperty(s,Symbol.species,{value:null,configurable:!0})),s.alloc=function(e,t,i){return l(null,e,t,i)},s.allocUnsafe=function(e){return h(null,e)},s.allocUnsafeSlow=function(e){return h(null,e)},s.isBuffer=function(e){return!(null==e||!e._isBuffer)},s.compare=function(e,t){if(!s.isBuffer(e)||!s.isBuffer(t))throw new TypeError("Arguments must be Buffers");if(e===t)return 0;for(var i=e.length,r=t.length,n=0,o=Math.min(i,r);n0&&(e=this.toString("hex",0,t).match(/.{2}/g).join(" "),this.length>t&&(e+=" ... ")),""},s.prototype.compare=function(e,t,i,r,n){if(!s.isBuffer(e))throw new TypeError("Argument must be a Buffer");if(void 0===t&&(t=0),void 0===i&&(i=e?e.length:0),void 0===r&&(r=0),void 0===n&&(n=this.length),t<0||i>e.length||r<0||n>this.length)throw new RangeError("out of range index");if(r>=n&&t>=i)return 0;if(r>=n)return-1;if(t>=i)return 1;if(this===e)return 0;for(var o=(n>>>=0)-(r>>>=0),O=(i>>>=0)-(t>>>=0),a=Math.min(o,O),l=this.slice(r,n),h=e.slice(t,i),c=0;cn)&&(i=n),e.length>0&&(i<0||t<0)||t>this.length)throw new RangeError("Attempt to write outside buffer bounds");r||(r="utf8");for(var o=!1;;)switch(r){case"hex":return S(this,e,t,i);case"utf8":case"utf-8":return y(this,e,t,i);case"ascii":return v(this,e,t,i);case"latin1":case"binary":return x(this,e,t,i);case"base64":return P(this,e,t,i);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return w(this,e,t,i);default:if(o)throw new TypeError("Unknown encoding: "+r);r=(""+r).toLowerCase(),o=!0}},s.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};var ee=4096;s.prototype.slice=function(e,t){var i,r=this.length;if((e=~~e)<0?(e+=r)<0&&(e=0):e>r&&(e=r),(t=void 0===t?r:~~t)<0?(t+=r)<0&&(t=0):t>r&&(t=r),t0&&(n*=256);)r+=this[e+--t]*n;return r},s.prototype.readUInt8=function(e,t){return t||A(e,1,this.length),this[e]},s.prototype.readUInt16LE=function(e,t){return t||A(e,2,this.length),this[e]|this[e+1]<<8},s.prototype.readUInt16BE=function(e,t){return t||A(e,2,this.length),this[e]<<8|this[e+1]},s.prototype.readUInt32LE=function(e,t){return t||A(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||A(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||A(e,t,this.length);for(var r=this[e],n=1,o=0;++o=(n*=128)&&(r-=Math.pow(2,8*t)),r},s.prototype.readIntBE=function(e,t,i){e|=0,t|=0,i||A(e,t,this.length);for(var r=t,n=1,o=this[e+--r];r>0&&(n*=256);)o+=this[e+--r]*n;return o>=(n*=128)&&(o-=Math.pow(2,8*t)),o},s.prototype.readInt8=function(e,t){return t||A(e,1,this.length),128&this[e]?-1*(255-this[e]+1):this[e]},s.prototype.readInt16LE=function(e,t){t||A(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||A(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||A(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||A(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||A(e,4,this.length),H.read(this,e,!0,23,4)},s.prototype.readFloatBE=function(e,t){return t||A(e,4,this.length),H.read(this,e,!1,23,4)},s.prototype.readDoubleLE=function(e,t){return t||A(e,8,this.length),H.read(this,e,!0,52,8)},s.prototype.readDoubleBE=function(e,t){return t||A(e,8,this.length),H.read(this,e,!1,52,8)},s.prototype.writeUIntLE=function(e,t,i,r){e=+e,t|=0,i|=0,r||q(this,e,t,i,Math.pow(2,8*i)-1,0);var n=1,o=0;for(this[t]=255&e;++o=0&&(o*=256);)this[t+n]=e/o&255;return t+i},s.prototype.writeUInt8=function(e,t,i){return e=+e,t|=0,i||q(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||q(this,e,t,2,65535,0),s.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):W(this,e,t,!0),t+2},s.prototype.writeUInt16BE=function(e,t,i){return e=+e,t|=0,i||q(this,e,t,2,65535,0),s.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):W(this,e,t,!1),t+2},s.prototype.writeUInt32LE=function(e,t,i){return e=+e,t|=0,i||q(this,e,t,4,4294967295,0),s.TYPED_ARRAY_SUPPORT?(this[t+3]=e>>>24,this[t+2]=e>>>16,this[t+1]=e>>>8,this[t]=255&e):C(this,e,t,!0),t+4},s.prototype.writeUInt32BE=function(e,t,i){return e=+e,t|=0,i||q(this,e,t,4,4294967295,0),s.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):C(this,e,t,!1),t+4},s.prototype.writeIntLE=function(e,t,i,r){if(e=+e,t|=0,!r){var n=Math.pow(2,8*i-1);q(this,e,t,i,n-1,-n)}var o=0,s=1,O=0;for(this[t]=255&e;++o>0)-O&255;return t+i},s.prototype.writeIntBE=function(e,t,i,r){if(e=+e,t|=0,!r){var n=Math.pow(2,8*i-1);q(this,e,t,i,n-1,-n)}var o=i-1,s=1,O=0;for(this[t+o]=255&e;--o>=0&&(s*=256);)e<0&&0===O&&0!==this[t+o+1]&&(O=1),this[t+o]=(e/s>>0)-O&255;return t+i},s.prototype.writeInt8=function(e,t,i){return e=+e,t|=0,i||q(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||q(this,e,t,2,32767,-32768),s.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):W(this,e,t,!0),t+2},s.prototype.writeInt16BE=function(e,t,i){return e=+e,t|=0,i||q(this,e,t,2,32767,-32768),s.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):W(this,e,t,!1),t+2},s.prototype.writeInt32LE=function(e,t,i){return e=+e,t|=0,i||q(this,e,t,4,2147483647,-2147483648),s.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8,this[t+2]=e>>>16,this[t+3]=e>>>24):C(this,e,t,!0),t+4},s.prototype.writeInt32BE=function(e,t,i){return e=+e,t|=0,i||q(this,e,t,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),s.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):C(this,e,t,!1),t+4},s.prototype.writeFloatLE=function(e,t,i){return N(this,e,t,!0,i)},s.prototype.writeFloatBE=function(e,t,i){return N(this,e,t,!1,i)},s.prototype.writeDoubleLE=function(e,t,i){return j(this,e,t,!0,i)},s.prototype.writeDoubleBE=function(e,t,i){return j(this,e,t,!1,i)},s.prototype.copy=function(e,t,i,r){if(i||(i=0),r||0===r||(r=this.length),t>=e.length&&(t=e.length),t||(t=0),r>0&&r=this.length)throw new RangeError("sourceStart out of bounds");if(r<0)throw new RangeError("sourceEnd out of bounds");r>this.length&&(r=this.length),e.length-t=0;--n)e[n+t]=this[n+i];else if(o<1e3||!s.TYPED_ARRAY_SUPPORT)for(n=0;n>>=0,i=void 0===i?this.length:i>>>0,e||(e=0),"number"==typeof e)for(o=t;o0)throw new Error("Invalid string. Length must be a multiple of 4");return"="===e[t-2]?2:"="===e[t-1]?1:0}function n(e){return 3*e.length/4-r(e)}function o(e){var t,i,n,o,s,O,a=e.length;s=r(e),O=new c(3*a/4-s),n=s>0?a-4:a;var l=0;for(t=0,i=0;t>16&255,O[l++]=o>>8&255,O[l++]=255&o;return 2===s?(o=h[e.charCodeAt(t)]<<2|h[e.charCodeAt(t+1)]>>4,O[l++]=255&o):1===s&&(o=h[e.charCodeAt(t)]<<10|h[e.charCodeAt(t+1)]<<4|h[e.charCodeAt(t+2)]>>2,O[l++]=o>>8&255,O[l++]=255&o),O}function s(e){return l[e>>18&63]+l[e>>12&63]+l[e>>6&63]+l[63&e]}function O(e,t,i){for(var r,n=[],o=t;oh?h:a+s));return 1===r?(t=e[i-1],n+=l[t>>2],n+=l[t<<4&63],n+="=="):2===r&&(t=(e[i-2]<<8)+e[i-1],n+=l[t>>10],n+=l[t>>4&63],n+=l[t<<2&63],n+="="),o.push(n),o.join("")}i.byteLength=n,i.toByteArray=o,i.fromByteArray=a;for(var l=[],h=[],c="undefined"!=typeof Uint8Array?Uint8Array:Array,u="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",f=0,d=u.length;f>1,h=-7,c=i?n-1:0,u=i?-1:1,f=e[t+c];for(c+=u,o=f&(1<<-h)-1,f>>=-h,h+=O;h>0;o=256*o+e[t+c],c+=u,h-=8);for(s=o&(1<<-h)-1,o>>=-h,h+=r;h>0;s=256*s+e[t+c],c+=u,h-=8);if(0===o)o=1-l;else{if(o===a)return s?NaN:1/0*(f?-1:1);s+=Math.pow(2,r),o-=l}return(f?-1:1)*s*Math.pow(2,o-r)},i.write=function(e,t,i,r,n,o){var s,O,a,l=8*o-n-1,h=(1<>1,u=23===n?Math.pow(2,-24)-Math.pow(2,-77):0,f=r?0:o-1,d=r?1:-1,p=t<0||0===t&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(O=isNaN(t)?1:0,s=h):(s=Math.floor(Math.log(t)/Math.LN2),t*(a=Math.pow(2,-s))<1&&(s--,a*=2),(t+=s+c>=1?u/a:u*Math.pow(2,1-c))*a>=2&&(s++,a/=2),s+c>=h?(O=0,s=h):s+c>=1?(O=(t*a-1)*Math.pow(2,n),s+=c):(O=t*Math.pow(2,c-1)*Math.pow(2,n),s=0));n>=8;e[i+f]=255&O,f+=d,O/=256,n-=8);for(s=s<0;e[i+f]=255&s,f+=d,s/=256,l-=8);e[i+f-d]|=128*p}},{}],33:[function(e,t,i){(function(e){!function(t){function i(e,i,f){function b(e,t,i,r){return this instanceof b?v(this,e,t,i,r):new b(e,t,i,r)}function y(e){return!(!e||!e[N])}function v(e,t,i,r,n){g&&m&&(t instanceof m&&(t=new g(t)),r instanceof m&&(r=new g(r))),t||i||r||d?(s(t,i)||(n=i,r=t,i=0,t=new(d||Array)(8)),e.buffer=t,e.offset=i|=0,p!==typeof r&&("string"==typeof r?x(t,i,r,n||10):s(r,n)?O(t,i,r,n):"number"==typeof n?(T(t,i+Y,r),T(t,i+R,n)):r>0?q(t,i,r):r<0?W(t,i,r):O(t,i,$,0))):e.buffer=a($,0)}function x(e,t,i,r){var n=0,o=i.length,s=0,O=0;"-"===i[0]&&n++;for(var a=n;n=0))break;O=O*r+l,s=s*r+Math.floor(O/X),O%=X}a&&(s=~s,O?O=X-O:s++),T(e,t+Y,s),T(e,t+R,O)}function P(){var e=this.buffer,t=this.offset,i=k(e,t+Y),r=k(e,t+R);return f||(i|=0),i?i*X+r:r}function w(e){var t=this.buffer,i=this.offset,r=k(t,i+Y),n=k(t,i+R),o="",s=!f&&2147483648&r;for(s&&(r=~r,n=X-n),e=e||10;;){var O=r%e*X+n;if(r=Math.floor(r/e),n=Math.floor(O/e),o=(O%e).toString(e)+o,!r&&!n)break}return s&&(o="-"+o),o}function T(e,t,i){e[t+A]=255&i,i>>=8,e[t+Z]=255&i,i>>=8,e[t+V]=255&i,i>>=8,e[t+_]=255&i}function k(e,t){return e[t+_]*S+(e[t+V]<<16)+(e[t+Z]<<8)+e[t+A]}var Y=i?0:4,R=i?4:0,_=i?0:3,V=i?1:2,Z=i?2:1,A=i?3:0,q=i?l:c,W=i?h:u,C=b.prototype,U="is"+e,N="_"+U;return C.buffer=void 0,C.offset=0,C[N]=!0,C.toNumber=P,C.toString=w,C.toJSON=P,C.toArray=r,Q&&(C.toBuffer=n),g&&(C.toArrayBuffer=o),b[U]=y,t[e]=b,b}function r(e){var t=this.buffer,i=this.offset;return d=null,!1!==e&&0===i&&8===t.length&&b(t)?t:a(t,i)}function n(t){var i=this.buffer,r=this.offset;if(d=Q,!1!==t&&0===r&&8===i.length&&e.isBuffer(i))return i;var n=new Q(8);return O(n,0,i,r),n}function o(e){var t=this.buffer,i=this.offset,r=t.buffer;if(d=g,!1!==e&&0===i&&r instanceof m&&8===r.byteLength)return r;var n=new g(8);return O(n,0,t,i),n.buffer}function s(e,t){var i=e&&e.length;return t|=0,i&&t+8<=i&&"string"!=typeof e[t]}function O(e,t,i,r){t|=0,r|=0;for(var n=0;n<8;n++)e[t++]=255&i[r++]}function a(e,t){return Array.prototype.slice.call(e,t,t+8)}function l(e,t,i){for(var r=t+8;r>t;)e[--r]=255&i,i/=256}function h(e,t,i){var r=t+8;for(i++;r>t;)e[--r]=255&-i^255,i/=256}function c(e,t,i){for(var r=t+8;t{e.onload=()=>{t(e.result)},e.onerror=t=>{e.abort(),i(t)}}));return e.readAsText(this),t}),null==Blob.prototype.arrayBuffer&&(Blob.prototype.arrayBuffer=function(){return new Response(this).arrayBuffer()}),i.polyfill()})),n.register("dLFsX",(function(t,i){e(t.exports,"polyfill",(()=>n("bL2Te").polyfill)),n("bL2Te")})),n.register("bL2Te",(function(t,i){e(t.exports,"polyfill",(()=>G));var r=e=>void 0===e||"auto"===e||"instant"===e||"smooth"===e;function n(e,t){this.scrollLeft=e,this.scrollTop=t}var o=(e,t,i="cannot convert to dictionary.")=>`Failed to execute '${e}' on '${t}': ${i}`,s=(e,t,i)=>o(e,t,`The provided value '${i}' is not a valid enum value of type ScrollBehavior.`),O=(e,t,i)=>{var r;let n=`__SEAMLESS.BACKUP$${t}`;return!e[n]&&e[t]&&!(null!==(r=e[t])&&void 0!==r&&r.__isPolyfill)&&(e[n]=e[t]),e[n]||i},a=e=>{let t=typeof e;return null!==e&&("object"===t||"function"===t)},l=()=>"scrollBehavior"in window.document.documentElement.style,h=e=>{Object.defineProperty(e,"__isPolyfill",{value:!0})},c=(e,t)=>{h(t),[HTMLElement.prototype,SVGElement.prototype,Element.prototype].forEach((i=>{O(i,e),i[e]=t}))},u=e=>e.ownerDocument.scrollingElement||e.ownerDocument.documentElement,f=e=>.5*(1-Math.cos(Math.PI*e));function d(){var e;let t;return t=null!==(e=window.performance)&&void 0!==e&&e.now?()=>window.performance.now():()=>window.Date.now(),d=t,t()}var p=e=>{let t=(d()-e.timeStamp)/(e.duration||500);if(t>1)return e.method(e.targetX,e.targetY),void e.callback();let i=(e.timingFunc||f)(t),r=e.startX+(e.targetX-e.startX)*i,n=e.startY+(e.targetY-e.startY)*i;e.method(r,n),e.rafId=window.requestAnimationFrame((()=>{p(e)}))},Q=e=>isFinite(e)?Number(e):0,g=e=>(t,i,l)=>{let[h,c]=(e=>e.window===e)(t)?[u(t.document.documentElement),"Window"]:[t,"Element"],f=i??{};if(!a(f))throw new TypeError(o(e,c));if(!r(f.behavior))throw new TypeError(s(e,c,f.behavior));"scrollBy"===e&&(f.left=Q(f.left)+h.scrollLeft,f.top=Q(f.top)+h.scrollTop),((e,t,i)=>{var r,o;if(!(e=>{var t;return null!==(t=e.isConnected)&&void 0!==t?t:!(e.ownerDocument&&1&e.ownerDocument.compareDocumentPosition(e))})(e))return;let s=e.scrollLeft,a=e.scrollTop,l=Q(null!==(r=t.left)&&void 0!==r?r:s),h=Q(null!==(o=t.top)&&void 0!==o?o:a);if(l===s&&h===a)return;let c=O(HTMLElement.prototype,"scroll",n),u=O(Object.getPrototypeOf(e),"scroll",c).bind(e);if("smooth"!==t.behavior)return void u(l,h);let f=()=>{window.removeEventListener("wheel",m),window.removeEventListener("touchmove",m)},g=Object.assign(Object.assign({},i),{timeStamp:d(),startX:s,startY:a,targetX:l,targetY:h,rafId:0,method:u,callback:f}),m=()=>{window.cancelAnimationFrame(g.rafId),f()};window.addEventListener("wheel",m,{passive:!0,once:!0}),window.addEventListener("touchmove",m,{passive:!0,once:!0}),p(g)})(h,f,l)},m=g("scroll"),$=g("scrollTo"),b=g("scrollBy"),X=m,S=(e,t)=>i=>{if(l())return;let r={scroll:m,scrollTo:$,scrollBy:b}[e];t(e,(function(){let e=arguments;if(1===arguments.length)return void r(this,e[0],i);let t=e[0],n=e[1];r(this,{left:t,top:n})}))},y=S("scroll",c),v=S("scrollTo",c),x=S("scrollBy",c),P=(e,t)=>{h(t),O(window,e),window[e]=t},w=S("scroll",P),T=S("scrollTo",P),k=S("scrollBy",P),Y=e=>{switch(e){case"horizontal-tb":case"lr":case"lr-tb":case"rl":case"rl-tb":return 0;case"vertical-rl":case"tb":case"tb-rl":return 1;case"vertical-lr":case"tb-lr":return 2;case"sideways-rl":return 3;case"sideways-lr":return 4}return 0},R=(e,t,i,r)=>{let n=0;switch(t||(n^=2),e){case 0:n=n>>1|(1&n)<<1,[i,r]=[r,i];break;case 1:case 3:n^=1;break;case 4:n^=2}return[n,i,r]},_=e=>1==(1&R(Y(e.writingMode),"rtl"!==e.direction,void 0,void 0)[0]),V=(e,t,i,r,n,o,s)=>0!==e?e:ni||n>t&&o=i&&s>=r?2:o>i&&sr?3:null,Z=e=>"visible"!==e&&"clip"!==e,A=(e,t)=>(e.clientHeight{let t=e.parentNode,i=e.parentElement;if(null===i&&null!==t){if(11===t.nodeType)return t.host;if(9===t.nodeType)return(e=>{var t;try{return(null===(t=e.ownerDocument.defaultView)||void 0===t?void 0:t.frameElement)||null}catch{return null}})(e)}return i},W=(e,t,i)=>ei?i:e,C=(e,t,i)=>{switch(e){case 1:return(t+i)/2;case 3:return i;case 2:case 0:return t}},U=(e,t)=>{var i,r,n;let o=null===(i=e.ownerDocument.defaultView)||void 0===i?void 0:i.visualViewport,[s,O,a,l]=e===u(e)?[0,0,null!==(r=null==o?void 0:o.width)&&void 0!==r?r:e.clientWidth,null!==(n=null==o?void 0:o.height)&&void 0!==n?n:e.clientHeight]:[t.left,t.top,e.clientWidth,e.clientHeight],h=s+e.clientLeft,c=O+e.clientTop;return[c,h+a,c+l,h]},N=(e,t)=>{let i=[],r=e.ownerDocument,n=r.defaultView;if(!n)return i;let o=window.getComputedStyle(e),s="rtl"!==o.direction,O=Y(o.writingMode||o.getPropertyValue("-webkit-writing-mode")||o.getPropertyValue("-ms-writing-mode")),[a,l]=((e,t,i)=>{let[r,n,o]=R(t,i,e.block||"start",e.inline||"nearest");return[n,o].map(((e,t)=>{switch(e){case"center":return 1;case"nearest":return 0;default:return"start"===e==!(r>>t&1)?2:3}}))})(t,O,s),[h,c,u,f]=((e,t,i)=>{let{top:r,right:n,bottom:o,left:s}=t,O=(e=>["scroll-margin","scroll-snap-margin"].filter((t=>t in e.documentElement.style))[0])(e.ownerDocument);if(!O)return[r,n,o,s];let a=e=>{let t=i.getPropertyValue(`${O}-${e}`);return parseInt(t,10)||0};return[r-a("top"),n+a("right"),o+a("bottom"),s-a("left")]})(e,e.getBoundingClientRect(),o);for(let o=q(e);null!==o;o=q(o)){if(r!==o.ownerDocument){if(r=o.ownerDocument,n=r.defaultView,!n)break;let{left:e,top:t}=o.getBoundingClientRect();h+=t,c+=e,u+=t,f+=e}let e=n.getComputedStyle(o);if("fixed"===e.position)break;if(!A(o,e))continue;let s=o.getBoundingClientRect(),[O,d,p,Q]=U(o,s),g=V(a,Q,d,o.clientWidth,f,c,c-f),m=V(l,O,p,o.clientHeight,h,u,u-h),$=null===g?0:C(g,f,c)-C(g,Q,d),b=null===m?0:C(m,h,u)-C(m,O,p),X=_(e)?W($,-o.scrollWidth+o.clientWidth-o.scrollLeft,-o.scrollLeft):W($,-o.scrollLeft,o.scrollWidth-o.clientWidth-o.scrollLeft),S=W(b,-o.scrollTop,o.scrollHeight-o.clientHeight-o.scrollTop);i.push([o,{left:o.scrollLeft+X,top:o.scrollTop+S,behavior:t.behavior}]),h=Math.max(h-S,O),c=Math.min(c-X,d),u=Math.min(u-S,p),f=Math.max(f-X,Q)}return i},j=(e,t,i)=>{let n=t||{};if(!r(n.behavior))throw new TypeError(s("scrollIntoView","Element",n.behavior));N(e,n).forEach((([e,t])=>{X(e,t,i)}))};function E(e){j(this,{block:e??1?"start":"end",inline:"nearest"})}var z=e=>{if(l())return;let t=O(window.HTMLElement.prototype,"scrollIntoView",E);c("scrollIntoView",(function(){let i=arguments,r=i[0];1===i.length&&a(r)?j(this,r,e):t.apply(this,i)}))},G=e=>{l()||(y(e),v(e),x(e),z(e),w(e),T(e),k(e))}})),n.register("41Mhf",(function(t,i){e(t.exports,"with_query_params",(()=>r));const r=(e,t)=>{const i="http://delete-me.com/",r=new URL(e,i);return Object.entries(t).forEach((([e,t])=>{null!=t&&r.searchParams.append(e,t)})),r.toString().replace(i,"")};console.assert("https://example.com/?a=b+c"===r("https://example.com/",{a:"b c"})),console.assert("https://example.com/?a=b+c"===r(new URL("https://example.com/"),{a:"b c"})),console.assert("https://example.com/?a=b+c&xx=123"===r(new URL("https://example.com/"),{a:"b c",asdf:null,xx:"123"})),console.assert("index.html?a=b+c"===r("index.html",{a:"b c"})),console.assert("index.html?x=123&a=b+c"===r("index.html?x=123",{a:"b c"})),console.assert("index.html?x=123&a=b+c#asdf"===r("index.html?x=123#asdf",{a:"b c"}))})),n.register("fnbc9",(function(e,t){})),n.register("2ZZ1r",(function(t,i){e(t.exports,"FilePicker",(()=>m)),n("cNaMA");var r=n("exxBE"),o=n("cNaMA"),s=n("2P6PH");n("kjWx8"),n("hiQgq");var O=n("g1ViI"),a=n("1xJnC"),l=n("aTIpG");let{autocompletion:h,completionKeymap:c}=O.autocomplete,u=c.find((e=>"Ctrl-Space"===e.key)),f=c.find((e=>"Enter"===e.key)),d=c.find((e=>"Escape"===e.key));const p=e=>{if(null==e)throw new Error("Unexpected null value");return e},Q=(e,t,i=!0)=>{let r=e.hasFocus;e.dispatch({changes:{from:0,to:e.state.doc.length,insert:t},selection:O.EditorSelection.cursor(t.length),scrollIntoView:i}),r||e.contentDOM.blur()},g=!!window.plutoDesktop;g&&console.log("Running in Desktop Environment! Found following properties/methods:",window.plutoDesktop);const m=({value:e,suggest_new_file:t,button_label:i,placeholder:n,on_submit:s,on_desktop_submit:m,client:b})=>{const[X,S]=r.useState(!0),[y,v]=r.useState(""),x=r.useRef(""),P=r.useRef(null),w=r.useRef(null),T=()=>{const e=w.current;null!=e&&(null!=t&&0===e.state.doc.length&&(Q(e,t.base,!1),Y()),window.dispatchEvent(new CustomEvent("collapse_cell_selection",{})))};const k=()=>{const e=w.current;if(null!=e){if(!g){if(e.state.doc.toString()===x.current)return T(),!0}return(async e=>{await e()})((async()=>{try{g&&m?await m((await a.guess_notebook_location(y)).path_or_url):await s(e.state.doc.toString()),e.dom.blur()}catch(t){Q(e,x.current,!0),e.dom.blur()}})),!0}},Y=()=>{const e=w.current;if(null==e)return;let t=e.state.selection.main;return t.from===t.to&&e.state.doc.length===t.to?p(u).run(e):void 0};return r.useLayoutEffect((()=>{const i=window.matchMedia("(prefers-color-scheme: dark)").matches,r=()=>(k(),!0);w.current=new O.EditorView({state:O.EditorState.create({doc:"",extensions:[O.drawSelection(),O.EditorView.domEventHandlers({focus:(e,i)=>(setTimeout((()=>{t?T():0===i.state.doc.length&&Y()}),0),!0),blur:(e,t)=>{setTimeout((()=>{t.hasFocus||Q(t,x.current,!0)}),200)}}),O.EditorView.updateListener.of((e=>{e.docChanged&&S(0===e.state.doc.length)})),O.EditorView.theme({"&":{fontSize:"inherit"},".cm-scroller":{fontFamily:"inherit",overflowY:"hidden",overflowX:"auto"}},{dark:i}),O.history(),h({activateOnTyping:!0,override:[$({suggest_new_file:t,client:b})],defaultKeymap:!1,maxRenderedOptions:512,optionClass:e=>e.type??""}),O.EditorView.updateListener.of((e=>{e.transactions.forEach((t=>{null!=t.annotation(O.autocomplete.pickedCompletion)&&(e.view.dispatch({effects:O.EditorView.scrollIntoView(e.state.doc.length),selection:O.EditorSelection.cursor(e.state.doc.length)}),Y())}))})),O.keymap.of([{key:"Enter",run:e=>p(f).run(e)},{key:"Enter",run:r},{key:"Ctrl-Enter",mac:"Cmd-Enter",run:r},{key:"Ctrl-Shift-Enter",mac:"Cmd-Shift-Enter",run:r},{key:"Escape",run:t=>(p(d).run(t),t.dispatch({changes:{from:0,to:t.state.doc.length,insert:x.current},selection:O.EditorSelection.cursor(e.length),effects:O.EditorView.scrollIntoView(x.current.length)}),document.activeElement.blur(),!0),preventDefault:!0},{key:"Tab",run:e=>p(f).run(e)?(Y(),!0):Y()}]),O.keymap.of(c),O.placeholder(n),l.tab_help_plugin]})});const o=w.current;g||P.current.insertBefore(o.dom,P.current.firstElementChild)}),[]),r.useLayoutEffect((()=>{if(x.current!=e){if(null==w.current)return;Q(w.current,e,!0),x.current=e}})),g?o.html`
+ {v(e.target.value)}} + /> +
+ +
+
`:o.html` + + + + `},$=({client:e,suggest_new_file:t})=>i=>{i.state.selection.main.to;const r=i.state.doc.toString();return e.send("completepath",{query:r}).then((e=>{const i=r.split("/").pop().split("\\").pop(),n=e.message.results,o=s.utf8index_to_ut16index(r,e.message.start),O=s.utf8index_to_ut16index(r,e.message.stop);if(n.length>=1&&n[0]==i)return null;let a=n.map((e=>{let t=e.endsWith("/")||e.endsWith("\\");return{label:e,type:t?"dir":"file",boost:t?1:0}}));if(null!=t)for(let e=3;e>=0;e--){const t=".jl".substring(0,e);if(i.endsWith(t)){let t=i+".jl".substring(e);if(".jl"==t&&(t="notebook.jl"),3==e)return null;n.includes(t)||a.push({label:t+" (new)",apply:t,type:"file new",boost:-99});break}}return{options:a,from:o,to:O}}))}})),n.register("2P6PH",(function(t,i){e(t.exports,"utf8index_to_ut16index",(()=>o)),e(t.exports,"slice_utf8",(()=>s));const r=new TextEncoder,n=new TextDecoder,o=(e,t)=>n.decode(r.encode(e).slice(0,t)).length,s=(e,t,i)=>{const o=r.encode(e);return n.decode(o.slice(t,i))};console.assert("e é hannes ❤ is a dog"===((e,t,i,o)=>{const s=r.encode(e),O=r.encode(o),a=new Uint8Array(s.length+O.length-(i-t));return a.set(s.slice(0,t),0),a.set(O,t),a.set(s.slice(i),t+O.length),n.decode(a)})("e é 🐶 is a dog",5,9,"hannes ❤")),console.assert("🐶"===s("e é 🐶 is a dog",5,9))})),n.register("kjWx8",(function(t,i){e(t.exports,"is_mac_keyboard",(()=>r)),e(t.exports,"control_name",(()=>n)),e(t.exports,"ctrl_or_cmd_name",(()=>o)),e(t.exports,"alt_or_options_name",(()=>s)),e(t.exports,"and",(()=>O)),e(t.exports,"has_ctrl_or_cmd_pressed",(()=>a)),e(t.exports,"in_textarea_or_input",(()=>l));let r=/Mac/.test(navigator.platform),n=r?"⌃":"Ctrl",o=r?"⌘":"Ctrl",s=r?"⌥":"Alt",O=r?" ":"+",a=e=>e.ctrlKey||r&&e.metaKey,l=()=>{var e,t,i;const r=null!=(null===(e=document.activeElement)||void 0===e?void 0:e.closest("footer")),n=null!=(null===(t=document.activeElement)||void 0===t?void 0:t.closest("header")),o=null!=(null===(i=document.activeElement)||void 0===i?void 0:i.closest(".cm-editor")),{tagName:s}=document.activeElement??{};return"INPUT"===s||"TEXTAREA"===s||r||n||o}})),n.register("hiQgq",(function(t,i){e(t.exports,"setDiagnostics",(()=>n("g1ViI").setDiagnostics)),e(t.exports,"EditorState",(()=>n("g1ViI").EditorState)),e(t.exports,"EditorSelection",(()=>n("g1ViI").EditorSelection)),e(t.exports,"Compartment",(()=>n("g1ViI").Compartment)),e(t.exports,"EditorView",(()=>n("g1ViI").EditorView)),e(t.exports,"placeholder",(()=>n("g1ViI").placeholder)),e(t.exports,"julia_andrey",(()=>n("g1ViI").julia_andrey)),e(t.exports,"keymap",(()=>n("g1ViI").keymap)),e(t.exports,"history",(()=>n("g1ViI").history)),e(t.exports,"historyKeymap",(()=>n("g1ViI").historyKeymap)),e(t.exports,"defaultKeymap",(()=>n("g1ViI").defaultKeymap)),e(t.exports,"indentMore",(()=>n("g1ViI").indentMore)),e(t.exports,"indentLess",(()=>n("g1ViI").indentLess)),e(t.exports,"moveLineUp",(()=>n("g1ViI").moveLineUp)),e(t.exports,"moveLineDown",(()=>n("g1ViI").moveLineDown)),e(t.exports,"tags",(()=>n("g1ViI").tags)),e(t.exports,"HighlightStyle",(()=>n("g1ViI").HighlightStyle)),e(t.exports,"lineNumbers",(()=>n("g1ViI").lineNumbers)),e(t.exports,"highlightSpecialChars",(()=>n("g1ViI").highlightSpecialChars)),e(t.exports,"drawSelection",(()=>n("g1ViI").drawSelection)),e(t.exports,"indentOnInput",(()=>n("g1ViI").indentOnInput)),e(t.exports,"defaultHighlightStyle",(()=>n("g1ViI").defaultHighlightStyle)),e(t.exports,"closeBrackets",(()=>n("g1ViI").closeBrackets)),e(t.exports,"rectangularSelection",(()=>n("g1ViI").rectangularSelection)),e(t.exports,"highlightSelectionMatches",(()=>n("g1ViI").highlightSelectionMatches)),e(t.exports,"closeBracketsKeymap",(()=>n("g1ViI").closeBracketsKeymap)),e(t.exports,"foldKeymap",(()=>n("g1ViI").foldKeymap)),e(t.exports,"syntaxTree",(()=>n("g1ViI").syntaxTree)),e(t.exports,"Decoration",(()=>n("g1ViI").Decoration)),e(t.exports,"ViewPlugin",(()=>n("g1ViI").ViewPlugin)),e(t.exports,"WidgetType",(()=>n("g1ViI").WidgetType)),e(t.exports,"Facet",(()=>n("g1ViI").Facet)),e(t.exports,"StateField",(()=>n("g1ViI").StateField)),e(t.exports,"StateEffect",(()=>n("g1ViI").StateEffect)),e(t.exports,"indentUnit",(()=>n("g1ViI").indentUnit)),e(t.exports,"combineConfig",(()=>n("g1ViI").combineConfig)),e(t.exports,"autocomplete",(()=>n("g1ViI").autocomplete)),e(t.exports,"html",(()=>n("g1ViI").html)),e(t.exports,"htmlLanguage",(()=>n("g1ViI").htmlLanguage)),e(t.exports,"javascriptLanguage",(()=>n("g1ViI").javascriptLanguage)),e(t.exports,"markdown",(()=>n("g1ViI").markdown)),e(t.exports,"markdownLanguage",(()=>n("g1ViI").markdownLanguage)),e(t.exports,"parseCode",(()=>n("g1ViI").parseCode)),e(t.exports,"parseMixed",(()=>n("g1ViI").parseMixed)),e(t.exports,"PostgreSQL",(()=>n("g1ViI").PostgreSQL)),e(t.exports,"pythonLanguage",(()=>n("g1ViI").pythonLanguage)),e(t.exports,"sql",(()=>n("g1ViI").sql)),e(t.exports,"syntaxHighlighting",(()=>n("g1ViI").syntaxHighlighting)),e(t.exports,"javascript",(()=>n("g1ViI").javascript)),e(t.exports,"python",(()=>n("g1ViI").python)),e(t.exports,"Text",(()=>n("g1ViI").Text)),e(t.exports,"cssLanguage",(()=>n("g1ViI").cssLanguage)),e(t.exports,"selectNextOccurrence",(()=>n("g1ViI").selectNextOccurrence));n("g1ViI")})),n.register("g1ViI",(function(t,i){e(t.exports,"Text",(()=>o)),e(t.exports,"EditorSelection",(()=>C)),e(t.exports,"Facet",(()=>j)),e(t.exports,"StateField",(()=>I)),e(t.exports,"Compartment",(()=>ie)),e(t.exports,"StateEffect",(()=>ge)),e(t.exports,"EditorState",(()=>ke)),e(t.exports,"combineConfig",(()=>Ye)),e(t.exports,"parseMixed",(()=>Tt)),e(t.exports,"WidgetType",(()=>Wn)),e(t.exports,"Decoration",(()=>Un)),e(t.exports,"ViewPlugin",(()=>Yo)),e(t.exports,"EditorView",(()=>SO)),e(t.exports,"keymap",(()=>YO)),e(t.exports,"drawSelection",(()=>zO)),e(t.exports,"highlightSpecialChars",(()=>ra)),e(t.exports,"placeholder",(()=>aa)),e(t.exports,"rectangularSelection",(()=>ua)),e(t.exports,"lineNumbers",(()=>Ka)),e(t.exports,"tags",(()=>yl)),e(t.exports,"syntaxTree",(()=>Rl)),e(t.exports,"indentUnit",(()=>Gl)),e(t.exports,"indentOnInput",(()=>nh)),e(t.exports,"foldKeymap",(()=>$h)),e(t.exports,"HighlightStyle",(()=>wh)),e(t.exports,"syntaxHighlighting",(()=>Rh)),e(t.exports,"defaultHighlightStyle",(()=>Vh)),e(t.exports,"closeBrackets",(()=>pu)),e(t.exports,"closeBracketsKeymap",(()=>Su)),e(t.exports,"autocomplete",(()=>Zu)),e(t.exports,"julia_andrey",(()=>Eu)),e(t.exports,"history",(()=>ef)),e(t.exports,"historyKeymap",(()=>gf)),e(t.exports,"moveLineUp",(()=>Od)),e(t.exports,"moveLineDown",(()=>ad)),e(t.exports,"indentMore",(()=>dd)),e(t.exports,"indentLess",(()=>pd)),e(t.exports,"defaultKeymap",(()=>md)),e(t.exports,"highlightSelectionMatches",(()=>Zd)),e(t.exports,"selectNextOccurrence",(()=>Nd)),e(t.exports,"parseCode",(()=>YQ)),e(t.exports,"cssLanguage",(()=>Lg)),e(t.exports,"javascriptLanguage",(()=>gm)),e(t.exports,"javascript",(()=>xm)),e(t.exports,"htmlLanguage",(()=>Hm)),e(t.exports,"html",(()=>Jm)),e(t.exports,"markdownLanguage",(()=>c$)),e(t.exports,"markdown",(()=>X$)),e(t.exports,"sql",(()=>sb)),e(t.exports,"PostgreSQL",(()=>ab)),e(t.exports,"pythonLanguage",(()=>qb)),e(t.exports,"python",(()=>Wb)),e(t.exports,"setDiagnostics",(()=>Mb));var r=n("fnbc9");class o{lineAt(e){if(e<0||e>this.length)throw new RangeError(`Invalid position ${e} in document of length ${this.length}`);return this.lineInner(e,!1,1,0)}line(e){if(e<1||e>this.lines)throw new RangeError(`Invalid line number ${e} in ${this.lines}-line document`);return this.lineInner(e,!0,1,0)}replace(e,t,i){[e,t]=d(this,e,t);let r=[];return this.decompose(0,e,r,2),i.length&&i.decompose(0,i.length,r,3),this.decompose(t,this.length,r,1),O.from(r,this.length-(t-e)+i.length)}append(e){return this.replace(this.length,this.length,e)}slice(e,t=this.length){[e,t]=d(this,e,t);let i=[];return this.decompose(e,t,i,0),O.from(i,t-e)}eq(e){if(e==this)return!0;if(e.length!=this.length||e.lines!=this.lines)return!1;let t=this.scanIdentical(e,1),i=this.length-this.scanIdentical(e,-1),r=new h(this),n=new h(e);for(let e=t,o=t;;){if(r.next(e),n.next(e),e=0,r.lineBreak!=n.lineBreak||r.done!=n.done||r.value!=n.value)return!1;if(o+=r.value.length,r.done||o>=i)return!0}}iter(e=1){return new h(this,e)}iterRange(e,t=this.length){return new c(this,e,t)}iterLines(e,t){let i;if(null==e)i=this.iter();else{null==t&&(t=this.lines+1);let r=this.line(e).from;i=this.iterRange(r,Math.max(r,t==this.lines+1?this.length:t<=1?0:this.line(t-1).to))}return new u(i)}toString(){return this.sliceString(0)}toJSON(){let e=[];return this.flatten(e),e}constructor(){}static of(e){if(0==e.length)throw new RangeError("A document must have at least one line");return 1!=e.length||e[0]?e.length<=32?new s(e):O.from(s.split(e,[])):o.empty}}class s extends o{constructor(e,t=function(e){let t=-1;for(let i of e)t+=i.length+1;return t}(e)){super(),this.text=e,this.length=t}get lines(){return this.text.length}get children(){return null}lineInner(e,t,i,r){for(let n=0;;n++){let o=this.text[n],s=r+o.length;if((t?i:s)>=e)return new f(r,s,i,o);r=s+1,i++}}decompose(e,t,i,r){let n=e<=0&&t>=this.length?this:new s(l(this.text,e,t),Math.min(t,this.length)-Math.max(0,e));if(1&r){let e=i.pop(),t=a(n.text,e.text.slice(),0,n.length);if(t.length<=32)i.push(new s(t,e.length+n.length));else{let e=t.length>>1;i.push(new s(t.slice(0,e)),new s(t.slice(e)))}}else i.push(n)}replace(e,t,i){if(!(i instanceof s))return super.replace(e,t,i);[e,t]=d(this,e,t);let r=a(this.text,a(i.text,l(this.text,0,e)),t),n=this.length+i.length-(t-e);return r.length<=32?new s(r,n):O.from(s.split(r,[]),n)}sliceString(e,t=this.length,i="\n"){[e,t]=d(this,e,t);let r="";for(let n=0,o=0;n<=t&&oe&&o&&(r+=i),en&&(r+=s.slice(Math.max(0,e-n),t-n)),n=O+1}return r}flatten(e){for(let t of this.text)e.push(t)}scanIdentical(){return 0}static split(e,t){let i=[],r=-1;for(let n of e)i.push(n),r+=n.length+1,32==i.length&&(t.push(new s(i,r)),i=[],r=-1);return r>-1&&t.push(new s(i,r)),t}}class O extends o{constructor(e,t){super(),this.children=e,this.length=t,this.lines=0;for(let t of e)this.lines+=t.lines}lineInner(e,t,i,r){for(let n=0;;n++){let o=this.children[n],s=r+o.length,O=i+o.lines-1;if((t?O:s)>=e)return o.lineInner(e,t,i,r);r=s+1,i=O+1}}decompose(e,t,i,r){for(let n=0,o=0;o<=t&&n=o){let n=r&((o<=e?1:0)|(O>=t?2:0));o>=e&&O<=t&&!n?i.push(s):s.decompose(e-o,t-o,i,n)}o=O+1}}replace(e,t,i){if([e,t]=d(this,e,t),i.lines=n&&t<=s){let a=o.replace(e-n,t-n,i),l=this.lines-o.lines+a.lines;if(a.lines>4&&a.lines>l>>6){let n=this.children.slice();return n[r]=a,new O(n,this.length-(t-e)+i.length)}return super.replace(n,s,a)}n=s+1}return super.replace(e,t,i)}sliceString(e,t=this.length,i="\n"){[e,t]=d(this,e,t);let r="";for(let n=0,o=0;ne&&n&&(r+=i),eo&&(r+=s.sliceString(e-o,t-o,i)),o=O+1}return r}flatten(e){for(let t of this.children)t.flatten(e)}scanIdentical(e,t){if(!(e instanceof O))return 0;let i=0,[r,n,o,s]=t>0?[0,0,this.children.length,e.children.length]:[this.children.length-1,e.children.length-1,-1,-1];for(;;r+=t,n+=t){if(r==o||n==s)return i;let O=this.children[r],a=e.children[n];if(O!=a)return i+O.scanIdentical(a,t);i+=O.length+1}}static from(e,t=e.reduce(((e,t)=>e+t.length+1),-1)){let i=0;for(let t of e)i+=t.lines;if(i<32){let i=[];for(let t of e)t.flatten(i);return new s(i,t)}let r=Math.max(32,i>>5),n=r<<1,o=r>>1,a=[],l=0,h=-1,c=[];function u(e){let t;if(e.lines>n&&e instanceof O)for(let t of e.children)u(t);else e.lines>o&&(l>o||!l)?(f(),a.push(e)):e instanceof s&&l&&(t=c[c.length-1])instanceof s&&e.lines+t.lines<=32?(l+=e.lines,h+=e.length+1,c[c.length-1]=new s(t.text.concat(e.text),t.length+1+e.length)):(l+e.lines>r&&f(),l+=e.lines,h+=e.length+1,c.push(e))}function f(){0!=l&&(a.push(1==c.length?c[0]:O.from(c,h)),h=-1,l=c.length=0)}for(let t of e)u(t);return f(),1==a.length?a[0]:new O(a,t)}}function a(e,t,i=0,r=1e9){for(let n=0,o=0,s=!0;o=i&&(a>r&&(O=O.slice(0,r-n)),n0?1:(e instanceof s?e.text.length:e.children.length)<<1]}nextInner(e,t){for(this.done=this.lineBreak=!1;;){let i=this.nodes.length-1,r=this.nodes[i],n=this.offsets[i],o=n>>1,O=r instanceof s?r.text.length:r.children.length;if(o==(t>0?O:0)){if(0==i)return this.done=!0,this.value="",this;t>0&&this.offsets[i-1]++,this.nodes.pop(),this.offsets.pop()}else if((1&n)==(t>0?0:1)){if(this.offsets[i]+=t,0==e)return this.lineBreak=!0,this.value="\n",this;e--}else if(r instanceof s){let n=r.text[o+(t<0?-1:0)];if(this.offsets[i]+=t,n.length>Math.max(0,e))return this.value=0==e?n:t>0?n.slice(e):n.slice(0,n.length-e),this;e-=n.length}else{let n=r.children[o+(t<0?-1:0)];e>n.length?(e-=n.length,this.offsets[i]+=t):(t<0&&this.offsets[i]--,this.nodes.push(n),this.offsets.push(t>0?1:(n instanceof s?n.text.length:n.children.length)<<1))}}}next(e=0){return e<0&&(this.nextInner(-e,-this.dir),e=this.value.length),this.nextInner(e,this.dir)}}class c{constructor(e,t,i){this.value="",this.done=!1,this.cursor=new h(e,t>i?-1:1),this.pos=t>i?e.length:0,this.from=Math.min(t,i),this.to=Math.max(t,i)}nextInner(e,t){if(t<0?this.pos<=this.from:this.pos>=this.to)return this.value="",this.done=!0,this;e+=Math.max(0,t<0?this.pos-this.to:this.from-this.pos);let i=t<0?this.pos-this.from:this.to-this.pos;e>i&&(e=i),i-=e;let{value:r}=this.cursor.next(e);return this.pos+=(r.length+e)*t,this.value=r.length<=i?r:t<0?r.slice(r.length-i):r.slice(0,i),this.done=!this.value,this}next(e=0){return e<0?e=Math.max(e,this.from-this.pos):e>0&&(e=Math.min(e,this.to-this.pos)),this.nextInner(e,this.cursor.dir)}get lineBreak(){return this.cursor.lineBreak&&""!=this.value}}class u{constructor(e){this.inner=e,this.afterBreak=!0,this.value="",this.done=!1}next(e=0){let{done:t,lineBreak:i,value:r}=this.inner.next(e);return t&&this.afterBreak?(this.value="",this.afterBreak=!1):t?(this.done=!0,this.value=""):i?this.afterBreak?this.value="":(this.afterBreak=!0,this.next()):(this.value=r,this.afterBreak=!1),this}get lineBreak(){return!1}}"undefined"!=typeof Symbol&&(o.prototype[Symbol.iterator]=function(){return this.iter()},h.prototype[Symbol.iterator]=c.prototype[Symbol.iterator]=u.prototype[Symbol.iterator]=function(){return this});let f=class{constructor(e,t,i,r){this.from=e,this.to=t,this.number=i,this.text=r}get length(){return this.to-this.from}};function d(e,t,i){return[t=Math.max(0,Math.min(e.length,t)),Math.max(t,Math.min(e.length,i))]}let p="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 p[t-1]<=e;return!1}function g(e){return e>=127462&&e<=127487}function m(e,t,i=!0,r=!0){return(i?$:b)(e,t,r)}function $(e,t,i){if(t==e.length)return t;t&&X(e.charCodeAt(t))&&S(e.charCodeAt(t-1))&&t--;let r=y(e,t);for(t+=x(r);t=0&&g(y(e,r));)i++,r-=2;if(i%2==0)break;t+=2}}}return t}function b(e,t,i){for(;t>0;){let r=$(e,t-2,i);if(r=56320&&e<57344}function S(e){return e>=55296&&e<56320}function y(e,t){let i=e.charCodeAt(t);if(!S(i)||t+1==e.length)return i;let r=e.charCodeAt(t+1);return X(r)?r-56320+(i-55296<<10)+65536:i}function v(e){return e<=65535?String.fromCharCode(e):(e-=65536,String.fromCharCode(55296+(e>>10),56320+(1023&e)))}function x(e){return e<65536?1:2}const P=/\r\n?|\n/;var w,T=((w=T||(T={}))[w.Simple=0]="Simple",w[w.TrackDel=1]="TrackDel",w[w.TrackBefore=2]="TrackBefore",w[w.TrackAfter=3]="TrackAfter",w);class k{constructor(e){this.sections=e}get length(){let e=0;for(let t=0;te)return n+(e-r);n+=s}else{if(i!=T.Simple&&a>=e&&(i==T.TrackDel&&re||i==T.TrackBefore&&re))return null;if(a>e||a==e&&t<0&&!s)return e==r||t<0?n:n+O;n+=O}r=a}if(e>r)throw new RangeError(`Position ${e} is out of range for changeset of length ${r}`);return n}touchesRange(e,t=e){for(let i=0,r=0;i=0&&r<=t&&n>=e)return!(rt)||"cover";r=n}return!1}toString(){let e="";for(let t=0;t=0?":"+r:"")}return e}toJSON(){return this.sections}static fromJSON(e){if(!Array.isArray(e)||e.length%2||e.some((e=>"number"!=typeof e)))throw new RangeError("Invalid JSON representation of ChangeDesc");return new k(e)}static create(e){return new k(e)}}class Y extends k{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 V(this,((t,i,r,n,o)=>e=e.replace(r,r+(i-t),o)),!1),e}mapDesc(e,t=!1){return Z(this,e,t,!0)}invert(e){let t=this.sections.slice(),i=[];for(let r=0,n=0;r=0){t[r]=O,t[r+1]=s;let a=r>>1;for(;i.length0&&_(i,t,n.text),n.forward(e),s+=e}let a=e[o++];for(;s>1].toJSON()))}return e}static of(e,t,i){let r=[],n=[],s=0,O=null;function a(e=!1){if(!e&&!r.length)return;sO||e<0||O>t)throw new RangeError(`Invalid change range ${e} to ${O} (in doc of length ${t})`);let c=h?"string"==typeof h?o.of(h.split(i||P)):h:o.empty,u=c.length;if(e==O&&0==u)return;es&&R(r,e-s,-1),R(r,O-e,u),_(n,r,c),s=O}}(e),a(!O),O}static empty(e){return new Y(e?[e,-1]:[],[])}static fromJSON(e){if(!Array.isArray(e))throw new RangeError("Invalid JSON representation of ChangeSet");let t=[],i=[];for(let r=0;rt&&"string"!=typeof e)))throw new RangeError("Invalid JSON representation of ChangeSet");if(1==n.length)t.push(n[0],0);else{for(;i.length=0&&i<=0&&i==e[n+1]?e[n]+=t:0==t&&0==e[n]?e[n+1]+=i:r?(e[n]+=t,e[n+1]+=i):e.push(t,i)}function _(e,t,i){if(0==i.length)return;let r=t.length-2>>1;if(r>1])),!(i||O==e.sections.length||e.sections[O+1]<0);)a=e.sections[O++],l=e.sections[O++];t(n,h,s,c,u),n=h,s=c}}}function Z(e,t,i,r=!1){let n=[],o=r?[]:null,s=new q(e),O=new q(t);for(let e=-1;;)if(-1==s.ins&&-1==O.ins){let e=Math.min(s.len,O.len);R(n,e,-1),s.forward(e),O.forward(e)}else if(O.ins>=0&&(s.ins<0||e==s.i||0==s.off&&(O.len=0&&e=0)){if(s.done&&O.done)return o?Y.createSet(n,o):k.create(n);throw new Error("Mismatched change set lengths")}{let t=0,i=s.len;for(;i;)if(-1==O.ins){let e=Math.min(i,O.len);t+=e,i-=e,O.forward(e)}else{if(!(0==O.ins&&O.lent||s.ins>=0&&s.len>t)&&(e||r.length>i),o.forward2(t),s.forward(t)}}else R(r,0,s.ins,e),n&&_(n,r,s.text),s.next()}}class q{constructor(e){this.set=e,this.i=0,this.next()}next(){let{sections:e}=this.set;this.i>1;return t>=e.length?o.empty:e[t]}textBit(e){let{inserted:t}=this.set,i=this.i-2>>1;return i>=t.length&&!e?o.empty:t[i].slice(this.off,null==e?void 0:this.off+e)}forward(e){e==this.len?this.next():(this.len-=e,this.off+=e)}forward2(e){-1==this.ins?this.forward(e):e==this.ins?this.next():(this.ins-=e,this.off+=e)}}class W{constructor(e,t,i){this.from=e,this.to=t,this.flags=i}get anchor(){return 32&this.flags?this.to:this.from}get head(){return 32&this.flags?this.from:this.to}get empty(){return this.from==this.to}get assoc(){return 8&this.flags?-1:16&this.flags?1:0}get bidiLevel(){let e=7&this.flags;return 7==e?null:e}get goalColumn(){let e=this.flags>>6;return 16777215==e?void 0:e}map(e,t=-1){let i,r;return this.empty?i=r=e.mapPos(this.from,t):(i=e.mapPos(this.from,1),r=e.mapPos(this.to,-1)),i==this.from&&r==this.to?this:new W(i,r,this.flags)}extend(e,t=e){if(e<=this.anchor&&t>=this.anchor)return C.range(e,t);let i=Math.abs(e-this.anchor)>Math.abs(t-this.anchor)?e:t;return C.range(this.anchor,i)}eq(e,t=!1){return!(this.anchor!=e.anchor||this.head!=e.head||t&&this.empty&&this.assoc!=e.assoc)}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 C.range(e.anchor,e.head)}static create(e,t,i){return new W(e,t,i)}}class C{constructor(e,t){this.ranges=e,this.mainIndex=t}map(e,t=-1){return e.empty?this:C.create(this.ranges.map((i=>i.map(e,t))),this.mainIndex)}eq(e,t=!1){if(this.ranges.length!=e.ranges.length||this.mainIndex!=e.mainIndex)return!1;for(let i=0;ie.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 C(e.ranges.map((e=>W.fromJSON(e))),e.main)}static single(e,t=e){return new C([C.range(e,t)],0)}static create(e,t=0){if(0==e.length)throw new RangeError("A selection needs at least one range");for(let i=0,r=0;re?8:0)|n)}static normalized(e,t=0){let i=e[t];e.sort(((e,t)=>e.from-t.from)),t=e.indexOf(i);for(let i=1;ir.head?C.range(s,o):C.range(o,s))}}return new C(e,t)}}function U(e,t){for(let i of e.ranges)if(i.to>t)throw new RangeError("Selection points outside of document")}let N=0;class j{constructor(e,t,i,r,n){this.combine=e,this.compareInput=t,this.compare=i,this.isStatic=r,this.id=N++,this.default=e([]),this.extensions="function"==typeof n?n(this):n}get reader(){return this}static define(e={}){return new j(e.combine||(e=>e),e.compareInput||((e,t)=>e===t),e.compare||(e.combine?(e,t)=>e===t:E),!!e.static,e.enables)}of(e){return new z([],this,0,e)}compute(e,t){if(this.isStatic)throw new Error("Can't compute a static facet");return new z(e,this,1,t)}computeN(e,t){if(this.isStatic)throw new Error("Can't compute a static facet");return new z(e,this,2,t)}from(e,t){return t||(t=e=>e),this.compute([e],(i=>t(i.field(e))))}}function E(e,t){return e==t||e.length==t.length&&e.every(((e,i)=>e===t[i]))}class z{constructor(e,t,i,r){this.dependencies=e,this.facet=t,this.type=i,this.value=r,this.id=N++}dynamicSlot(e){var t;let i=this.value,r=this.facet.compareInput,n=this.id,o=e[n]>>1,s=2==this.type,O=!1,a=!1,l=[];for(let i of this.dependencies)"doc"==i?O=!0:"selection"==i?a=!0:0==(1&(null!==(t=e[i.id])&&void 0!==t?t:1))&&l.push(e[i.id]);return{create:e=>(e.values[o]=i(e),1),update(e,t){if(O&&t.docChanged||a&&(t.docChanged||t.selection)||D(e,l)){let t=i(e);if(s?!G(t,e.values[o],r):!r(t,e.values[o]))return e.values[o]=t,1}return 0},reconfigure:(e,t)=>{let O,a=t.config.address[n];if(null!=a){let n=se(t,a);if(this.dependencies.every((i=>i instanceof j?t.facet(i)===e.facet(i):!(i instanceof I)||t.field(i,!1)==e.field(i,!1)))||(s?G(O=i(e),n,r):r(O=i(e),n)))return e.values[o]=n,0}else O=i(e);return e.values[o]=O,1}}}}function G(e,t,i){if(e.length!=t.length)return!1;for(let r=0;re[t.id])),n=i.map((e=>e.type)),o=r.filter((e=>!(1&e))),s=e[t.id]>>1;function O(e){let i=[];for(let t=0;te===t),e);return e.provide&&(t.provides=e.provide(t)),t}create(e){let t=e.facet(B).find((e=>e.field==this));return((null==t?void 0:t.create)||this.createF)(e)}slot(e){let t=e[this.id]>>1;return{create:e=>(e.values[t]=this.create(e),1),update:(e,i)=>{let r=e.values[t],n=this.updateF(r,i);return this.compareF(r,n)?0:(e.values[t]=n,1)},reconfigure:(e,i)=>null!=i.config.address[this.id]?(e.values[t]=i.field(this),0):(e.values[t]=this.create(e),1)}}init(e){return[this,B.of({field:this,create:e})]}get extension(){return this}}const L=4,K=3,F=2,H=1;function J(e){return t=>new te(t,e)}const ee={highest:J(0),high:J(H),default:J(F),low:J(K),lowest:J(L)};class te{constructor(e,t){this.inner=e,this.prec=t}}class ie{of(e){return new re(this,e)}reconfigure(e){return ie.reconfigure.of({compartment:this,extension:e})}get(e){return e.config.compartments.get(this)}}class re{constructor(e,t){this.compartment=e,this.inner=t}}class ne{constructor(e,t,i,r,n,o){for(this.base=e,this.compartments=t,this.dynamicSlots=i,this.address=r,this.staticValues=n,this.facets=o,this.statusTemplate=[];this.statusTemplate.length>1]}static resolve(e,t,i){let r=[],n=Object.create(null),o=new Map;for(let i of function(e,t,i){let r=[[],[],[],[],[]],n=new Map;return function e(o,s){let O=n.get(o);if(null!=O){if(O<=s)return;let e=r[O].indexOf(o);e>-1&&r[O].splice(e,1),o instanceof re&&i.delete(o.compartment)}if(n.set(o,s),Array.isArray(o))for(let t of o)e(t,s);else if(o instanceof re){if(i.has(o.compartment))throw new RangeError("Duplicate use of compartment in extensions");let r=t.get(o.compartment)||o.inner;i.set(o.compartment,r),e(r,s)}else if(o instanceof te)e(o.inner,o.prec);else if(o instanceof I)r[s].push(o),o.provides&&e(o.provides,s);else if(o instanceof z)r[s].push(o),o.facet.extensions&&e(o.facet.extensions,F);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,F),r.reduce(((e,t)=>e.concat(t)))}(e,t,o))i instanceof I?r.push(i):(n[i.facet.id]||(n[i.facet.id]=[])).push(i);let s=Object.create(null),O=[],a=[];for(let e of r)s[e.id]=a.length<<1,a.push((t=>e.slot(t)));let l=null==i?void 0:i.config.facets;for(let e in n){let t=n[e],r=t[0].facet,o=l&&l[e]||[];if(t.every((e=>0==e.type)))if(s[r.id]=O.length<<1|1,E(o,t))O.push(i.facet(r));else{let e=r.combine(t.map((e=>e.value)));O.push(i&&r.compare(e,i.facet(r))?i.facet(r):e)}else{for(let e of t)0==e.type?(s[e.id]=O.length<<1|1,O.push(e.value)):(s[e.id]=a.length<<1,a.push((t=>e.dynamicSlot(t))));s[r.id]=a.length<<1,a.push((e=>M(e,r,t)))}}let h=a.map((e=>e(s)));return new ne(e,o,h,s,O,n)}}function oe(e,t){if(1&t)return 2;let i=t>>1,r=e.status[i];if(4==r)throw new Error("Cyclic dependency between fields and/or facets");if(2&r)return r;e.status[i]=4;let n=e.computeSlot(e,e.config.dynamicSlots[i]);return e.status[i]=2|n}function se(e,t){return 1&t?e.config.staticValues[t>>1]:e.values[t>>1]}const Oe=j.define(),ae=j.define({combine:e=>e.some((e=>e)),static:!0}),le=j.define({combine:e=>e.length?e[0]:void 0,static:!0}),he=j.define(),ce=j.define(),ue=j.define(),fe=j.define({combine:e=>!!e.length&&e[0]});class de{constructor(e,t){this.type=e,this.value=t}static define(){return new pe}}class pe{of(e){return new de(this,e)}}class Qe{constructor(e){this.map=e}of(e){return new ge(this,e)}}class ge{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 ge(this.type,t)}is(e){return this.type==e}static define(e={}){return new Qe(e.map||(e=>e))}static mapEffects(e,t){if(!e.length)return e;let i=[];for(let r of e){let e=r.map(t);e&&i.push(e)}return i}}ge.reconfigure=ge.define(),ge.appendConfig=ge.define();class me{constructor(e,t,i,r,n,o){this.startState=e,this.changes=t,this.selection=i,this.effects=r,this.annotations=n,this.scrollIntoView=o,this._doc=null,this._state=null,i&&U(i,t.newLength),n.some((e=>e.type==me.time))||(this.annotations=n.concat(me.time.of(Date.now())))}static create(e,t,i,r,n,o){return new me(e,t,i,r,n,o)}get newDoc(){return this._doc||(this._doc=this.changes.apply(this.startState.doc))}get newSelection(){return this.selection||this.startState.selection.map(this.changes)}get state(){return this._state||this.startState.applyTransaction(this),this._state}annotation(e){for(let t of this.annotations)if(t.type==e)return t.value}get docChanged(){return!this.changes.empty}get reconfigured(){return this.startState.config!=this.state.config}isUserEvent(e){let t=this.annotation(me.userEvent);return!(!t||!(t==e||t.length>e.length&&t.slice(0,e.length)==e&&"."==t[e.length]))}}function $e(e,t){let i=[];for(let r=0,n=0;;){let o,s;if(r=e[r]))o=e[r++],s=e[r++];else{if(!(n=0;n--){let o=i[n](e);o&&Object.keys(o).length&&(r=be(r,Xe(t,o,e.changes.newLength),!0))}return r==e?e:me.create(t,e.changes,e.selection,r.effects,r.annotations,r.scrollIntoView)}(i?function(e){let t=e.startState,i=!0;for(let r of t.facet(he)){let t=r(e);if(!1===t){i=!1;break}Array.isArray(t)&&(i=!0===i?t:$e(i,t))}if(!0!==i){let r,n;if(!1===i)n=e.changes.invertedDesc,r=Y.empty(t.doc.length);else{let t=e.changes.filter(i);r=t.changes,n=t.filtered.mapDesc(t.changes).invertedDesc}e=me.create(t,r,e.selection&&e.selection.map(n),ge.mapEffects(e.effects,n),e.annotations,e.scrollIntoView)}let r=t.facet(ce);for(let i=r.length-1;i>=0;i--){let n=r[i](e);e=n instanceof me?n:Array.isArray(n)&&1==n.length&&n[0]instanceof me?n[0]:Se(t,ve(n),!1)}return e}(n):n)}me.time=de.define(),me.userEvent=de.define(),me.addToHistory=de.define(),me.remote=de.define();const ye=[];function ve(e){return null==e?ye:Array.isArray(e)?e:[e]}var xe=function(e){return e[e.Word=0]="Word",e[e.Space=1]="Space",e[e.Other=2]="Other",e}(xe||(xe={}));const Pe=/[\u00df\u0587\u0590-\u05f4\u0600-\u06ff\u3040-\u309f\u30a0-\u30ff\u3400-\u4db5\u4e00-\u9fcc\uac00-\ud7af]/;let we;try{we=new RegExp("[\\p{Alphabetic}\\p{Number}_]","u")}catch(e){}function Te(e){return t=>{if(!/\S/.test(t))return xe.Space;if(function(e){if(we)return we.test(e);for(let t=0;t"€"&&(i.toUpperCase()!=i.toLowerCase()||Pe.test(i)))return!0}return!1}(t))return xe.Word;for(let i=0;i-1)return xe.Word;return xe.Other}}class ke{constructor(e,t,i,r,n,o){this.config=e,this.doc=t,this.selection=i,this.values=r,this.status=e.statusTemplate.slice(),this.computeSlot=n,o&&(o._state=this);for(let e=0;en.set(t,e))),i=null),n.set(t.value.compartment,t.value.extension)):t.is(ge.reconfigure)?(i=null,r=t.value):t.is(ge.appendConfig)&&(i=null,r=ve(r).concat(t.value));i?t=e.startState.values.slice():(i=ne.resolve(r,n,this),t=new ke(i,this.doc,this.selection,i.dynamicSlots.map((()=>null)),((e,t)=>t.reconfigure(e,this)),null).values);let o=e.startState.facet(ae)?e.newSelection:e.newSelection.asSingle();new ke(i,e.newDoc,o,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:C.cursor(t.from+e.length)})))}changeByRange(e){let t=this.selection,i=e(t.ranges[0]),r=this.changes(i.changes),n=[i.range],o=ve(i.effects);for(let i=1;in.spec.fromJSON(o,e))))}return ke.create({doc:e.doc,selection:C.fromJSON(e.selection),extensions:t.extensions?r.concat([t.extensions]):r})}static create(e={}){let t=ne.resolve(e.extensions||[],new Map),i=e.doc instanceof o?e.doc:o.of((e.doc||"").split(t.staticFacet(ke.lineSeparator)||P)),r=e.selection?e.selection instanceof C?e.selection:C.single(e.selection.anchor,e.selection.head):C.single(0);return U(r,i.length),t.staticFacet(ae)||(r=r.asSingle()),new ke(t,i,r,t.dynamicSlots.map((()=>null)),((e,t)=>t.create(e)),null)}get tabSize(){return this.facet(ke.tabSize)}get lineBreak(){return this.facet(ke.lineSeparator)||"\n"}get readOnly(){return this.facet(fe)}phrase(e,...t){for(let t of this.facet(ke.phrases))if(Object.prototype.hasOwnProperty.call(t,e)){e=t[e];break}return t.length&&(e=e.replace(/\$(\$|\d*)/g,((e,i)=>{if("$"==i)return"$";let r=+(i||1);return!r||r>t.length?e:t[r-1]}))),e}languageDataAt(e,t,i=-1){let r=[];for(let n of this.facet(Oe))for(let o of n(this,t,i))Object.prototype.hasOwnProperty.call(o,e)&&r.push(o[e]);return r}charCategorizer(e){return Te(this.languageDataAt("wordChars",e).join(""))}wordAt(e){let{text:t,from:i,length:r}=this.doc.lineAt(e),n=this.charCategorizer(e),o=e-i,s=e-i;for(;o>0;){let e=m(t,o,!1);if(n(t.slice(e,o))!=xe.Word)break;o=e}for(;se.length?e[0]:4}),ke.lineSeparator=le,ke.readOnly=fe,ke.phrases=j.define({compare(e,t){let i=Object.keys(e),r=Object.keys(t);return i.length==r.length&&i.every((i=>e[i]==t[i]))}}),ke.languageData=Oe,ke.changeFilter=he,ke.transactionFilter=ce,ke.transactionExtender=ue,ie.reconfigure=ge.define();class Re{eq(e){return this==e}range(e,t=e){return _e.create(e,t,this)}}Re.prototype.startSide=Re.prototype.endSide=0,Re.prototype.point=!1,Re.prototype.mapMode=T.TrackDel;let _e=class e{constructor(e,t,i){this.from=e,this.to=t,this.value=i}static create(t,i,r){return new e(t,i,r)}};function Ve(e,t){return e.from-t.from||e.value.startSide-t.value.startSide}class Ze{constructor(e,t,i,r){this.from=e,this.to=t,this.value=i,this.maxPoint=r}get length(){return this.to[this.to.length-1]}findIndex(e,t,i,r=0){let n=i?this.to:this.from;for(let o=r,s=n.length;;){if(o==s)return o;let r=o+s>>1,O=n[r]-e||(i?this.value[r].endSide:this.value[r].startSide)-t;if(r==o)return O>=0?o:s;O>=0?s=r:o=r+1}}between(e,t,i,r){for(let n=this.findIndex(t,-1e9,!0),o=this.findIndex(i,1e9,!1,n);nl||a==l&&h.startSide>0&&h.endSide<=0)continue;(l-a||h.endSide-h.startSide)<0||(o<0&&(o=a),h.point&&(s=Math.max(s,l-a)),i.push(h),r.push(a-o),n.push(l-o))}return{mapped:i.length?new Ze(r,n,i,s):null,pos:o}}}class Ae{constructor(e,t,i,r){this.chunkPos=e,this.chunk=t,this.nextLayer=i,this.maxPoint=r}static create(e,t,i,r){return new Ae(e,t,i,r)}get length(){let e=this.chunk.length-1;return e<0?0:Math.max(this.chunkEnd(e),this.nextLayer.length)}get size(){if(this.isEmpty)return 0;let e=this.nextLayer.size;for(let t of this.chunk)e+=t.value.length;return e}chunkEnd(e){return this.chunkPos[e]+this.chunk[e].length}update(e){let{add:t=[],sort:i=!1,filterFrom:r=0,filterTo:n=this.length}=e,o=e.filter;if(0==t.length&&!o)return this;if(i&&(t=t.slice().sort(Ve)),this.isEmpty)return t.length?Ae.of(t):this;let s=new Ce(this,null,-1).goto(0),O=0,a=[],l=new qe;for(;s.value||O=0){let e=t[O++];l.addInner(e.from,e.to,e.value)||a.push(e)}else 1==s.rangeIndex&&s.chunkIndexthis.chunkEnd(s.chunkIndex)||ns.to||n=n&&e<=n+o.length&&!1===o.between(n,e-n,t-n,i))return}this.nextLayer.between(e,t,i)}}iter(e=0){return Ue.from([this]).goto(e)}get isEmpty(){return this.nextLayer==this}static iter(e,t=0){return Ue.from(e).goto(t)}static compare(e,t,i,r,n=-1){let o=e.filter((e=>e.maxPoint>0||!e.isEmpty&&e.maxPoint>=n)),s=t.filter((e=>e.maxPoint>0||!e.isEmpty&&e.maxPoint>=n)),O=We(o,s,i),a=new je(o,O,n),l=new je(s,O,n);i.iterGaps(((e,t,i)=>Ee(a,e,l,t,i,r))),i.empty&&0==i.length&&Ee(a,0,l,0,0,r)}static eq(e,t,i=0,r){null==r&&(r=999999999);let n=e.filter((e=>!e.isEmpty&&t.indexOf(e)<0)),o=t.filter((t=>!t.isEmpty&&e.indexOf(t)<0));if(n.length!=o.length)return!1;if(!n.length)return!0;let s=We(n,o),O=new je(n,s,0).goto(i),a=new je(o,s,0).goto(i);for(;;){if(O.to!=a.to||!ze(O.active,a.active)||O.point&&(!a.point||!O.point.eq(a.point)))return!1;if(O.to>r)return!0;O.next(),a.next()}}static spans(e,t,i,r,n=-1){let o=new je(e,null,n).goto(t),s=t,O=o.openStart;for(;;){let e=Math.min(o.to,i);if(o.point){let i=o.activeForPoint(o.to),n=o.pointFroms&&(r.span(s,e,o.active,O),O=o.openEnd(e));if(o.to>i)return O+(o.point&&o.to>i?1:0);s=o.to,o.next()}}static of(e,t=!1){let i=new qe;for(let r of e instanceof _e?[e]:t?function(e){if(e.length>1)for(let t=e[0],i=1;i0)return e.slice().sort(Ve);t=r}return e}(e):e)i.add(r.from,r.to,r.value);return i.finish()}static join(e){if(!e.length)return Ae.empty;let t=e[e.length-1];for(let i=e.length-2;i>=0;i--)for(let r=e[i];r!=Ae.empty;r=r.nextLayer)t=new Ae(r.chunkPos,r.chunk,t,Math.max(r.maxPoint,t.maxPoint));return t}}Ae.empty=new Ae([],[],null,-1),Ae.empty.nextLayer=Ae.empty;class qe{finishChunk(e){this.chunks.push(new Ze(this.from,this.to,this.value,this.maxPoint)),this.chunkPos.push(this.chunkStart),this.chunkStart=-1,this.setMaxPoint=Math.max(this.setMaxPoint,this.maxPoint),this.maxPoint=-1,e&&(this.from=[],this.to=[],this.value=[])}constructor(){this.chunks=[],this.chunkPos=[],this.chunkStart=-1,this.last=null,this.lastFrom=-1e9,this.lastTo=-1e9,this.from=[],this.to=[],this.value=[],this.maxPoint=-1,this.setMaxPoint=-1,this.nextLayer=null}add(e,t,i){this.addInner(e,t,i)||(this.nextLayer||(this.nextLayer=new qe)).add(e,t,i)}addInner(e,t,i){let r=e-this.lastTo||i.startSide-this.last.endSide;if(r<=0&&(e-this.lastFrom||i.startSide-this.last.startSide)<0)throw new Error("Ranges must be added sorted by `from` position and `startSide`");return!(r<0||(250==this.from.length&&this.finishChunk(!0),this.chunkStart<0&&(this.chunkStart=e),this.from.push(e-this.chunkStart),this.to.push(t-this.chunkStart),this.last=i,this.lastFrom=e,this.lastTo=t,this.value.push(i),i.point&&(this.maxPoint=Math.max(this.maxPoint,t-e)),0))}addChunk(e,t){if((e-this.lastTo||t.value[0].startSide-this.last.endSide)<0)return!1;this.from.length&&this.finishChunk(!0),this.setMaxPoint=Math.max(this.setMaxPoint,t.maxPoint),this.chunks.push(t),this.chunkPos.push(e);let i=t.value.length-1;return this.last=t.value[i],this.lastFrom=t.from[i]+e,this.lastTo=t.to[i]+e,!0}finish(){return this.finishInner(Ae.empty)}finishInner(e){if(this.from.length&&this.finishChunk(!1),0==this.chunks.length)return e;let t=Ae.create(this.chunkPos,this.chunks,this.nextLayer?this.nextLayer.finishInner(e):e,this.setMaxPoint);return this.from=null,t}}function We(e,t,i){let r=new Map;for(let t of e)for(let e=0;e=this.minPoint)break}}}setRangeIndex(e){if(e==this.layer.chunk[this.chunkIndex].value.length){if(this.chunkIndex++,this.skip)for(;this.chunkIndex=i&&r.push(new Ce(o,t,i,n));return 1==r.length?r[0]:new Ue(r)}get startSide(){return this.value?this.value.startSide:0}goto(e,t=-1e9){for(let i of this.heap)i.goto(e,t);for(let e=this.heap.length>>1;e>=0;e--)Ne(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--)Ne(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(),Ne(this.heap,0)}}}function Ne(e,t){for(let i=e[t];;){let r=1+(t<<1);if(r>=e.length)break;let n=e[r];if(r+1=0&&(n=e[r+1],r++),i.compare(n)<0)break;e[r]=i,e[t]=n,t=r}}class je{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=Ue.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){Ge(this.active,e),Ge(this.activeTo,e),Ge(this.activeRank,e),this.minActive=Me(this.active,this.activeTo)}addActive(e){let t=0,{value:i,to:r,rank:n}=this.cursor;for(;t0;)t++;De(this.active,t,i),De(this.activeTo,t,r),De(this.activeRank,t,n),e&&De(e,t,this.cursor.from),this.minActive=Me(this.active,this.activeTo)}next(){let e=this.to,t=this.point;this.point=null;let i=this.openStart<0?[]:null;for(;;){let r=this.minActive;if(r>-1&&(this.activeTo[r]-this.cursor.from||this.active[r].endSide-this.cursor.startSide)<0){if(this.activeTo[r]>e){this.to=this.activeTo[r],this.endSide=this.active[r].endSide;break}this.removeActive(r),i&&Ge(i,r)}else{if(!this.cursor.value){this.to=this.endSide=1e9;break}if(this.cursor.from>e){this.to=this.cursor.from,this.endSide=this.cursor.startSide;break}{let e=this.cursor.value;if(e.point){if(!(t&&this.cursor.to==this.to&&this.cursor.from=0&&i[t]=0&&!(this.activeRank[i]e||this.activeTo[i]==e&&this.active[i].endSide>=this.point.endSide)&&t.push(this.active[i]);return t.reverse()}openEnd(e){let t=0;for(let i=this.activeTo.length-1;i>=0&&this.activeTo[i]>e;i--)t++;return t}}function Ee(e,t,i,r,n,o){e.goto(t),i.goto(r);let s=r+n,O=r,a=r-t;for(;;){let t=e.to+a-i.to||e.endSide-i.endSide,r=t<0?e.to+a:i.to,n=Math.min(r,s);if(e.point||i.point?e.point&&i.point&&(e.point==i.point||e.point.eq(i.point))&&ze(e.activeForPoint(e.to),i.activeForPoint(i.to))||o.comparePoint(O,n,e.point,i.point):n>O&&!ze(e.active,i.active)&&o.compareRange(O,n,e.active,i.active),r>s)break;O=r,t<=0&&e.next(),t>=0&&i.next()}}function ze(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 Me(e,t){let i=-1,r=1e9;for(let n=0;n=t)return r;if(r==e.length)break;n+=9==e.charCodeAt(r)?i-n%i:1,r=m(e,r)}return!0===r?-1:e.length}const Le=1024;let Ke=0;class Fe{constructor(e,t){this.from=e,this.to=t}}class He{constructor(e={}){this.id=Ke++,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=tt.match(e)),t=>{let i=e(t);return void 0===i?null:[this,i]}}}He.closedBy=new He({deserialize:e=>e.split(" ")}),He.openedBy=new He({deserialize:e=>e.split(" ")}),He.group=new He({deserialize:e=>e.split(" ")}),He.isolate=new He({deserialize:e=>{if(e&&"rtl"!=e&&"ltr"!=e&&"auto"!=e)throw new RangeError("Invalid value for isolate: "+e);return e||"auto"}}),He.contextHash=new He({perNode:!0}),He.lookAhead=new He({perNode:!0}),He.mounted=new He({perNode:!0});class Je{constructor(e,t,i){this.tree=e,this.overlay=t,this.parser=i}static get(e){return e&&e.props&&e.props[He.mounted.id]}}const et=Object.create(null);class tt{constructor(e,t,i,r=0){this.name=e,this.props=t,this.id=i,this.flags=r}static define(e){let t=e.props&&e.props.length?Object.create(null):et,i=(e.top?1:0)|(e.skipped?2:0)|(e.error?4:0)|(null==e.name?8:0),r=new tt(e.name||"",t,e.id,i);if(e.props)for(let i of e.props)if(Array.isArray(i)||(i=i(r)),i){if(i[0].perNode)throw new RangeError("Can't store a per-node prop on a node type");t[i[0].id]=i[1]}return r}prop(e){return this.props[e.id]}get isTop(){return(1&this.flags)>0}get isSkipped(){return(2&this.flags)>0}get isError(){return(4&this.flags)>0}get isAnonymous(){return(8&this.flags)>0}is(e){if("string"==typeof e){if(this.name==e)return!0;let t=this.prop(He.group);return!!t&&t.indexOf(e)>-1}return this.id==e}static match(e){let t=Object.create(null);for(let i in e)for(let r of i.split(" "))t[r]=e[i];return e=>{for(let i=e.prop(He.group),r=-1;r<(i?i.length:0);r++){let n=t[r<0?e.name:i[r]];if(n)return n}}}}tt.none=new tt("",Object.create(null),0,8);class it{constructor(e){this.types=e;for(let t=0;t=t){let s=new ut(o.tree,o.overlay[0].from+e.from,-1,e);(n||(n=[r])).push(ht(s,t,i,!1))}}return n?gt(n):r}(this,e,t)}iterate(e){let{enter:t,leave:i,from:r=0,to:n=this.length}=e,o=e.mode||0,s=(o&ot.IncludeAnonymous)>0;for(let e=this.cursor(o|ot.IncludeAnonymous);;){let o=!1;if(e.from<=n&&e.to>=r&&(!s&&e.type.isAnonymous||!1!==t(e))){if(e.firstChild())continue;o=!0}for(;o&&i&&(s||!e.type.isAnonymous)&&i(e),!e.nextSibling();){if(!e.parent())return;o=!0}}}prop(e){return e.perNode?this.props?this.props[e.id]:void 0:this.type.prop(e)}get propValues(){let e=[];if(this.props)for(let t in this.props)e.push([+t,this.props[t]]);return e}balance(e={}){return this.children.length<=8?this:yt(tt.none,this.children,this.positions,0,this.children.length,0,this.length,((e,t,i)=>new st(this.type,e,t,i,this.propValues)),e.makeTree||((e,t,i)=>new st(tt.none,e,t,i)))}static build(e){return function(e){var t;let{buffer:i,nodeSet:r,maxBufferLength:n=Le,reused:o=[],minRepeatType:s=r.types.length}=e,O=Array.isArray(i)?new Ot(i,i.length):i,a=r.types,l=0,h=0;function c(e,t,i,Q,g,m){let{id:$,start:b,end:X,size:S}=O,y=h;for(;S<0;){if(O.next(),-1==S){let t=o[$];return i.push(t),void Q.push(b-e)}if(-3==S)return void(l=$);if(-4==S)return void(h=$);throw new RangeError(`Unrecognized record size: ${S}`)}let v,x,P=a[$],w=b-e;if(X-b<=n&&(x=function(e,t){let i=O.fork(),r=0,o=0,a=0,l=i.end-n,h={size:0,start:0,skip:0};e:for(let n=i.pos-e;i.pos>n;){let e=i.size;if(i.id==t&&e>=0){h.size=r,h.start=o,h.skip=a,a+=4,r+=4,i.next();continue}let O=i.pos-e;if(e<0||O=s?4:0,u=i.start;for(i.next();i.pos>O;){if(i.size<0){if(-3!=i.size)break e;c+=4}else i.id>=s&&(c+=4);i.next()}o=u,r+=e,a+=c}return(t<0||r==e)&&(h.size=r,h.start=o,h.skip=a),h.size>4?h:void 0}(O.pos-t,g))){let t=new Uint16Array(x.size-x.skip),i=O.pos-x.size,n=t.length;for(;O.pos>i;)n=p(x.start,t,n);v=new at(t,X-x.start,r),w=x.start-e}else{let e=O.pos-S;O.next();let t=[],i=[],r=$>=s?$:-1,o=0,a=X;for(;O.pos>e;)r>=0&&O.id==r&&O.size>=0?(O.end<=a-n&&(f(t,i,b,o,O.end,a,r,y),o=t.length,a=O.end),O.next()):m>2500?u(b,e,t,i):c(b,e,t,i,r,m+1);if(r>=0&&o>0&&o-1&&o>0){let e=function(e){return(t,i,r)=>{let n,o,s=0,O=t.length-1;if(O>=0&&(n=t[O])instanceof st){if(!O&&n.type==e&&n.length==r)return n;(o=n.prop(He.lookAhead))&&(s=i[O]+n.length+o)}return d(e,t,i,r,s)}}(P);v=yt(P,t,i,0,t.length,0,X-b,e,e)}else v=d(P,t,i,X-b,y-X)}i.push(v),Q.push(w)}function u(e,t,i,o){let s=[],a=0,l=-1;for(;O.pos>t;){let{id:e,start:t,end:i,size:r}=O;if(r>4)O.next();else{if(l>-1&&t=0;e-=3)t[i++]=s[e],t[i++]=s[e+1]-n,t[i++]=s[e+2]-n,t[i++]=i;i.push(new at(t,s[2]-n,r)),o.push(n-e)}}function f(e,t,i,n,o,s,O,a){let l=[],h=[];for(;e.length>n;)l.push(e.pop()),h.push(t.pop()+i-o);e.push(d(r.types[O],l,h,s-o,a-s)),t.push(o-i)}function d(e,t,i,r,n=0,o){if(l){let e=[He.contextHash,l];o=o?[e].concat(o):[e]}if(n>25){let e=[He.lookAhead,n];o=o?[e].concat(o):[e]}return new st(e,t,i,r,o)}function p(e,t,i){let{id:r,start:n,end:o,size:a}=O;if(O.next(),a>=0&&r4){let r=O.pos-(a-4);for(;O.pos>r;)i=p(e,t,i)}t[--i]=s,t[--i]=o-e,t[--i]=n-e,t[--i]=r}else-3==a?l=r:-4==a&&(h=r);return i}let Q=[],g=[];for(;O.pos>0;)c(e.start||0,e.bufferStart||0,Q,g,-1,0);let m=null!==(t=e.length)&&void 0!==t?t:Q.length?g[0]+Q[0].length:0;return new st(a[e.topID],Q.reverse(),g.reverse(),m)}(e)}}st.empty=new st(tt.none,[],[],0);class Ot{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 Ot(this.buffer,this.index)}}class at{constructor(e,t,i){this.buffer=e,this.length=t,this.set=i}get type(){return tt.none}toString(){let e=[];for(let t=0;t0));O=o[O+3]);return s}slice(e,t,i){let r=this.buffer,n=new Uint16Array(t-e),o=0;for(let s=e,O=0;s=t&&it;case 1:return i<=t&&r>t;case 2:return r>t;case 4:return!0}}function ht(e,t,i,r){for(var n;e.from==e.to||(i<1?e.from>=t:e.from>t)||(i>-1?e.to<=t:e.to0?s.length:-1;e!=a;e+=t){let a=s[e],l=O[e]+o.from;if(lt(r,i,l,l+a.length))if(a instanceof at){if(n&ot.ExcludeBuffers)continue;let s=a.findChild(0,a.buffer.length,t,i-l,r);if(s>-1)return new Qt(new pt(o,a,e,l),null,s)}else if(n&ot.IncludeAnonymous||!a.type.isAnonymous||bt(a)){let s;if(!(n&ot.IgnoreMounts)&&(s=Je.get(a))&&!s.overlay)return new ut(s.tree,l,e,o);let O=new ut(a,l,e,o);return n&ot.IncludeAnonymous||!O.type.isAnonymous?O:O.nextChild(t<0?a.children.length-1:0,t,i,r)}}if(n&ot.IncludeAnonymous||!o.type.isAnonymous)return null;if(e=o.index>=0?o.index+t:t<0?-1:o._parent._tree.children.length,o=o._parent,!o)return null}}get firstChild(){return this.nextChild(0,1,0,4)}get lastChild(){return this.nextChild(this._tree.children.length-1,-1,0,4)}childAfter(e){return this.nextChild(0,1,e,2)}childBefore(e){return this.nextChild(this._tree.children.length-1,-1,e,-2)}enter(e,t,i=0){let r;if(!(i&ot.IgnoreOverlays)&&(r=Je.get(this._tree))&&r.overlay){let i=e-this.from;for(let{from:e,to:n}of r.overlay)if((t>0?e<=i:e=i:n>i))return new ut(r.tree,r.overlay[0].from+this.from,-1,this)}return this.nextChild(0,1,e,t,i)}nextSignificantParent(){let e=this;for(;e.type.isAnonymous&&e._parent;)e=e._parent;return e}get parent(){return this._parent?this._parent.nextSignificantParent():null}get nextSibling(){return this._parent&&this.index>=0?this._parent.nextChild(this.index+1,1,0,4):null}get prevSibling(){return this._parent&&this.index>=0?this._parent.nextChild(this.index-1,-1,0,4):null}get tree(){return this._tree}toTree(){return this._tree}toString(){return this._tree.toString()}}function ft(e,t,i,r){let n=e.cursor(),o=[];if(!n.firstChild())return o;if(null!=i)for(let e=!1;!e;)if(e=n.type.is(i),!n.nextSibling())return o;for(;;){if(null!=r&&n.type.is(r))return o;if(n.type.is(t)&&o.push(n.node),!n.nextSibling())return null==r?o:[]}}function dt(e,t,i=t.length-1){for(let r=e.parent;i>=0;r=r.parent){if(!r)return!1;if(!r.type.isAnonymous){if(t[i]&&t[i]!=r.name)return!1;i--}}return!0}class pt{constructor(e,t,i,r){this.parent=e,this.buffer=t,this.index=i,this.start=r}}class Qt extends ct{get name(){return this.type.name}get from(){return this.context.start+this.context.buffer.buffer[this.index+1]}get to(){return this.context.start+this.context.buffer.buffer[this.index+2]}constructor(e,t,i){super(),this.context=e,this._parent=t,this.index=i,this.type=e.buffer.set.types[e.buffer.buffer[i]]}child(e,t,i){let{buffer:r}=this.context,n=r.findChild(this.index+4,r.buffer[this.index+3],e,t-this.context.start,i);return n<0?null:new Qt(this.context,this,n)}get firstChild(){return this.child(1,0,4)}get lastChild(){return this.child(-1,0,4)}childAfter(e){return this.child(1,e,2)}childBefore(e){return this.child(-1,e,-2)}enter(e,t,i=0){if(i&ot.ExcludeBuffers)return null;let{buffer:r}=this.context,n=r.findChild(this.index+4,r.buffer[this.index+3],t>0?1:-1,e-this.context.start,t);return n<0?null:new Qt(this.context,this,n)}get parent(){return this._parent||this.context.parent.nextSignificantParent()}externalSibling(e){return this._parent?null:this.context.parent.nextChild(this.context.index+e,e,0,4)}get nextSibling(){let{buffer:e}=this.context,t=e.buffer[this.index+3];return t<(this._parent?e.buffer[this._parent.index+3]:e.buffer.length)?new Qt(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 Qt(this.context,this._parent,e.findChild(t,this.index,-1,0,4))}get tree(){return null}toTree(){let e=[],t=[],{buffer:i}=this.context,r=this.index+4,n=i.buffer[this.index+3];if(n>r){let o=i.buffer[this.index+1];e.push(i.slice(r,n,o)),t.push(0)}return new st(this.type,e,t,this.to-this.from)}toString(){return this.context.buffer.childString(this.index)}}function gt(e){if(!e.length)return null;let t=0,i=e[0];for(let r=1;ri.from||n.to0){if(this.index-1)for(let r=t+e,n=e<0?-1:i._tree.children.length;r!=n;r+=e){let e=i._tree.children[r];if(this.mode&ot.IncludeAnonymous||e instanceof at||!e.type.isAnonymous||bt(e))return!1}return!0}move(e,t){if(t&&this.enterChild(e,0,4))return!0;for(;;){if(this.sibling(e))return!0;if(this.atLastNode(e)||!this.parent())return!1}}next(e=!0){return this.move(1,e)}prev(e=!0){return this.move(-1,e)}moveTo(e,t=0){for(;(this.from==this.to||(t<1?this.from>=e:this.from>e)||(t>-1?this.to<=e:this.to=0;){for(let o=e;o;o=o._parent)if(o.index==r){if(r==this.index)return o;t=o,i=n+1;break e}r=this.stack[--n]}for(let e=i;e=0;n--){if(n<0)return dt(this.node,e,r);let o=i[t.buffer[this.stack[n]]];if(!o.isAnonymous){if(e[r]&&e[r]!=o.name)return!1;r--}}return!0}}function bt(e){return e.children.some((e=>e instanceof at||!e.type.isAnonymous||bt(e)))}const Xt=new WeakMap;function St(e,t){if(!e.isAnonymous||t instanceof at||t.type!=e)return 1;let i=Xt.get(t);if(null==i){i=1;for(let r of t.children){if(r.type!=e||!(r instanceof st)){i=1;break}i+=St(e,r)}Xt.set(t,i)}return i}function yt(e,t,i,r,n,o,s,O,a){let l=0;for(let i=r;i=h)break;d+=t}if(l==n+1){if(d>h){let e=i[n];t(e.children,e.positions,0,e.children.length,r[n]+O);continue}c.push(i[n])}else{let t=r[l-1]+i[l-1].length-f;c.push(yt(e,i,r,n,l,f,t,null,a))}u.push(f+O-o)}}(t,i,r,n,0),(O||a)(c,u,s)}class vt{constructor(){this.map=new WeakMap}setBuffer(e,t,i){let r=this.map.get(e);r||this.map.set(e,r=new Map),r.set(t,i)}getBuffer(e,t){let i=this.map.get(e);return i&&i.get(t)}set(e,t){e instanceof Qt?this.setBuffer(e.context.buffer,e.index,t):e instanceof ut&&this.map.set(e.tree,t)}get(e){return e instanceof Qt?this.getBuffer(e.context.buffer,e.index):e instanceof ut?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 xt{constructor(e,t,i,r,n=!1,o=!1){this.from=e,this.to=t,this.tree=i,this.offset=r,this.open=(n?1:0)|(o?2:0)}get openStart(){return(1&this.open)>0}get openEnd(){return(2&this.open)>0}static addTree(e,t=[],i=!1){let r=[new xt(0,e.length,e,0,!1,i)];for(let i of t)i.to>e.length&&r.push(i);return r}static applyChanges(e,t,i=128){if(!t.length)return e;let r=[],n=1,o=e.length?e[0]:null;for(let s=0,O=0,a=0;;s++){let l=s=i)for(;o&&o.from=t.from||h<=t.to||a){let e=Math.max(t.from,O)-a,i=Math.min(t.to,h)-a;t=e>=i?null:new xt(e,i,t.tree,t.offset+a,s>0,!!l)}if(t&&r.push(t),o.to>h)break;o=nnew Fe(e.from,e.to))):[new Fe(0,0)]:[new Fe(0,e.length)],this.createParse(e,t||[],i)}parse(e,t,i){let r=this.startParse(e,t,i);for(;;){let e=r.advance();if(e)return e}}}class wt{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 Tt(e){return(t,i,r,n)=>new Vt(t,e,i,r,n)}class kt{constructor(e,t,i,r,n){this.parser=e,this.parse=t,this.overlay=i,this.target=r,this.from=n}}function Yt(e){if(!e.length||e.some((e=>e.from>=e.to)))throw new RangeError("Invalid inner parse ranges given: "+JSON.stringify(e))}class Rt{constructor(e,t,i,r,n,o,s){this.parser=e,this.predicate=t,this.mounts=i,this.index=r,this.start=n,this.target=o,this.prev=s,this.depth=0,this.ranges=[]}}const _t=new He({perNode:!0});class Vt{constructor(e,t,i,r,n){this.nest=t,this.input=i,this.fragments=r,this.ranges=n,this.inner=[],this.innerDone=0,this.baseTree=null,this.stoppedAt=null,this.baseParse=e}advance(){if(this.baseParse){let e=this.baseParse.advance();if(!e)return null;if(this.baseParse=null,this.baseTree=e,this.startInner(),null!=this.stoppedAt)for(let e of this.inner)e.parse.stopAt(this.stoppedAt)}if(this.innerDone==this.inner.length){let e=this.baseTree;return null!=this.stoppedAt&&(e=new st(e.type,e.children,e.positions,e.length,e.propValues.concat([[_t,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[He.mounted.id]=new Je(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;t=this.stoppedAt)O=!1;else if(e.hasNode(r)){if(t){let e=t.mounts.find((e=>e.frag.from<=r.from&&e.frag.to>=r.to&&e.mount.overlay));if(e)for(let i of e.mount.overlay){let n=i.from+e.pos,o=i.to+e.pos;n>=r.from&&o<=r.to&&!t.ranges.some((e=>e.fromn))&&t.ranges.push({from:n,to:o})}}O=!1}else if(i&&(o=Zt(i.ranges,r.from,r.to)))O=2!=o;else if(!r.type.isAnonymous&&(n=this.nest(r,this.input))&&(r.fromnew Fe(e.from-r.from,e.to-r.from))):null,r.tree,e.length?e[0].from:r.from)),n.overlay?e.length&&(i={ranges:e,depth:0,prev:i}):O=!1}}else t&&(s=t.predicate(r))&&(!0===s&&(s=new Fe(r.from,r.to)),s.fromnew Fe(e.from-t.start,e.to-t.start))),t.target,e[0].from))),t=t.prev}i&&!--i.depth&&(i=i.prev)}}}}function Zt(e,t,i){for(let r of e){if(r.from>=i)break;if(r.to>t)return r.from<=t&&r.to>=i?2:1}return 0}function At(e,t,i,r,n,o){if(t=e&&t.enter(i,1,ot.IgnoreOverlays|ot.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 st))break;t=t.children[0]}return!1}}let Ct=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(_t))&&void 0!==t?t:i.to,this.inner=new Wt(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(_t))&&void 0!==e?e:t.to,this.inner=new Wt(t.tree,-t.offset)}}findMounts(e,t){var i;let r=[];if(this.inner){this.inner.cursor.moveTo(e,1);for(let e=this.inner.cursor.node;e;e=e.parent){let n=null===(i=e.tree)||void 0===i?void 0:i.prop(He.mounted);if(n&&n.parser==t)for(let t=this.fragI;t=e.to)break;i.tree==this.curFrag.tree&&r.push({frag:i,pos:e.from-i.offset,mount:n})}}}return r}};function Ut(e,t){let i=null,r=t;for(let n=1,o=0;n=O)break;e.to<=s||(i||(r=i=t.slice()),e.fromO&&i.splice(o+1,0,new Fe(O,e.to))):e.to>O?i[o--]=new Fe(O,e.to):i.splice(o--,1))}}return r}function Nt(e,t,i,r){let n=0,o=0,s=!1,O=!1,a=-1e9,l=[];for(;;){let h=n==e.length?1e9:s?e[n].to:e[n].from,c=o==t.length?1e9:O?t[o].to:t[o].from;if(s!=O){let e=Math.max(a,i),t=Math.min(h,c,r);enew Fe(e.from+r,e.to+r))),O,a);for(let t=0,r=O;;t++){let O=t==s.length,l=O?a:s[t].from;if(l>r&&i.push(new xt(r,l,n.tree,-e,o.from>=r||o.openStart,o.to<=l||o.openEnd)),O)break;r=s[t].to}}else i.push(new xt(O,a,n.tree,-e,o.from>=e||o.openStart,o.to<=s||o.openEnd))}return i}class Et{constructor(e,t,i,r,n,o,s,O,a,l=0,h){this.p=e,this.stack=t,this.state=i,this.reducePos=r,this.pos=n,this.score=o,this.buffer=s,this.bufferBase=O,this.curContext=a,this.lookAhead=l,this.parent=h}toString(){return`[${this.stack.filter(((e,t)=>t%3==0)).concat(this.state)}]@${this.pos}${this.score?"!"+this.score:""}`}static start(e,t,i=0){let r=e.parser.context;return new Et(e,[],t,i,i,0,[],0,r?new zt(r,r.start):null,0,null)}get context(){return this.curContext?this.curContext.context:null}pushState(e,t){this.stack.push(this.state,t,this.bufferBase+this.buffer.length),this.state=e}reduce(e){var t;let i=e>>19,r=65535&e,{parser:n}=this.p,o=n.dynamicPrecedence(r);if(o&&(this.score+=o),0==i)return this.pushState(n.getGoto(this.state,r,!0),this.reducePos),r=2e3&&!(null===(t=this.p.parser.nodeSet.types[r])||void 0===t?void 0:t.isAnonymous)&&(O==this.p.lastBigReductionStart?(this.p.bigReductionCount++,this.p.lastBigReductionSize=a):this.p.lastBigReductionSizes;)this.stack.pop();this.reduceContext(r,O)}storeNode(e,t,i,r=4,n=!1){if(0==e&&(!this.stack.length||this.stack[this.stack.length-1]0&&0==e.buffer[r-4]&&e.buffer[r-1]>-1){if(t==i)return;if(e.buffer[r-2]>=t)return void(e.buffer[r-2]=i)}}if(n&&this.pos!=i){let n=this.buffer.length;if(n>0&&0!=this.buffer[n-4])for(;n>0&&this.buffer[n-2]>i;)this.buffer[n]=this.buffer[n-4],this.buffer[n+1]=this.buffer[n-3],this.buffer[n+2]=this.buffer[n-2],this.buffer[n+3]=this.buffer[n-1],n-=4,r>4&&(r-=4);this.buffer[n]=e,this.buffer[n+1]=t,this.buffer[n+2]=i,this.buffer[n+3]=r}else this.buffer.push(e,t,i,r)}shift(e,t,i,r){if(131072&e)this.pushState(65535&e,this.pos);else if(0==(262144&e)){let n=e,{parser:o}=this.p;(r>this.pos||t<=o.maxNode)&&(this.pos=r,o.stateFlag(n,1)||(this.reducePos=r)),this.pushState(n,i),this.shiftContext(t,i),t<=o.maxNode&&this.buffer.push(t,i,r,4)}else this.pos=r,this.shiftContext(t,i),t<=this.p.parser.maxNode&&this.buffer.push(t,i,r,4)}apply(e,t,i,r){65536&e?this.reduce(e):this.shift(e,t,i,r)}useNode(e,t){let i=this.p.reused.length-1;(i<0||this.p.reused[i]!=e)&&(this.p.reused.push(e),i++);let r=this.pos;this.reducePos=this.pos=r+e.length,this.pushState(t,r),this.buffer.push(i,r,this.reducePos,-1),this.curContext&&this.updateContext(this.curContext.tracker.reuse(this.curContext.context,e,this,this.p.stream.reset(this.pos-e.length)))}split(){let e=this,t=e.buffer.length;for(;t>0&&e.buffer[t-2]>e.reducePos;)t-=4;let i=e.buffer.slice(t),r=e.bufferBase+t;for(;e&&r==e.bufferBase;)e=e.parent;return new Et(this.p,this.stack.slice(),this.state,this.reducePos,this.pos,this.score,i,r,this.curContext,this.lookAhead,e)}recoverByDelete(e,t){let i=e<=this.p.parser.maxNode;i&&this.storeNode(e,this.pos,t,4),this.storeNode(0,this.pos,t,i?8:4),this.pos=this.reducePos=t,this.score-=190}canShift(e){for(let t=new Gt(this);;){let i=this.p.parser.stateSlot(t.state,4)||this.p.parser.hasAction(t.state,e);if(0==i)return!1;if(0==(65536&i))return!0;t.reduce(i)}}recoverByInsert(e){if(this.stack.length>=300)return[];let t=this.p.parser.nextStates(this.state);if(t.length>8||this.stack.length>=120){let i=[];for(let r,n=0;n1&t&&e==r))||i.push(t[e],r)}t=i}let i=[];for(let e=0;e>19,r=65535&t,n=this.stack.length-3*i;if(n<0||e.getGoto(this.stack[n],r,!1)<0){let e=this.findForcedReduction();if(null==e)return!1;t=e}this.storeNode(0,this.pos,this.pos,4,!0),this.score-=100}return this.reducePos=this.pos,this.reduce(t),!0}findForcedReduction(){let{parser:e}=this.p,t=[],i=(r,n)=>{if(!t.includes(r))return t.push(r),e.allActions(r,(t=>{if(393216&t);else if(65536&t){let i=(t>>19)-n;if(i>1){let r=65535&t,n=this.stack.length-3*i;if(n>=0&&e.getGoto(this.stack[n],r,!1)>=0)return i<<19|65536|r}}else{let e=i(t,n+1);if(null!=e)return e}}))};return i(this.state,0)}forceAll(){for(;!this.p.parser.stateFlag(this.state,2);)if(!this.forceReduce()){this.storeNode(0,this.pos,this.pos,4,!0);break}return this}get deadEnd(){if(3!=this.stack.length)return!1;let{parser:e}=this.p;return 65535==e.data[e.stateSlot(this.state,1)]&&!e.stateSlot(this.state,4)}restart(){this.storeNode(0,this.pos,this.pos,4,!0),this.state=this.stack[0],this.stack.length=0}sameState(e){if(this.state!=e.state||this.stack.length!=e.stack.length)return!1;for(let t=0;tthis.lookAhead&&(this.emitLookAhead(),this.lookAhead=e)}close(){this.curContext&&this.curContext.tracker.strict&&this.emitContext(),this.lookAhead>0&&this.emitLookAhead()}}class zt{constructor(e,t){this.tracker=e,this.context=t,this.hash=e.strict?e.hash(t):0}}class Gt{constructor(e){this.start=e,this.state=e.state,this.stack=e.stack,this.base=this.stack.length}reduce(e){let t=65535&e,i=e>>19;0==i?(this.stack==this.start.stack&&(this.stack=this.stack.slice()),this.stack.push(this.state,0,0),this.base+=3):this.base-=3*(i-1);let r=this.start.p.parser.getGoto(this.stack[this.base-3],t,!0);this.state=r}}class Dt{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 Dt(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 Dt(this.stack,this.pos,this.index)}}function Mt(e,t=Uint16Array){if("string"!=typeof e)return e;let i=null;for(let r=0,n=0;r=92&&t--,t>=34&&t--;let n=t-32;if(n>=46&&(n-=46,i=!0),o+=n,i)break;o*=46}i?i[n++]=o:i=new t(o)}return i}class Bt{constructor(){this.start=-1,this.value=-1,this.end=-1,this.extended=-1,this.lookAhead=0,this.mask=0,this.context=0}}const It=new Bt;class Lt{constructor(e,t){this.input=e,this.ranges=t,this.chunk="",this.chunkOff=0,this.chunk2="",this.chunk2Pos=0,this.next=-1,this.token=It,this.rangeIndex=0,this.pos=this.chunkPos=t[0].from,this.range=t[0],this.end=t[t.length-1].to,this.readNext()}resolveOffset(e,t){let i=this.range,r=this.rangeIndex,n=this.pos+e;for(;ni.to:n>=i.to;){if(r==this.ranges.length-1)return null;let e=this.ranges[++r];n+=e.from-i.to,i=e}return n}clipPos(e){if(e>=this.range.from&&ee)return Math.max(e,t.from);return this.end}peek(e){let t,i,r=this.chunkOff+e;if(r>=0&&r=this.chunk2Pos&&tr.to&&(this.chunk2=this.chunk2.slice(0,r.to-t)),i=this.chunk2.charCodeAt(0)}}return t>=this.token.lookAhead&&(this.token.lookAhead=t+1),i}acceptToken(e,t=0){let i=t?this.resolveOffset(t,-1):this.pos;if(null==i||i=this.chunk2Pos&&this.posthis.range.to?e.slice(0,this.range.to-this.pos):e,this.chunkPos=this.pos,this.chunkOff=0}}readNext(){return this.chunkOff>=this.chunk.length&&(this.getChunk(),this.chunkOff==this.chunk.length)?this.next=-1:this.next=this.chunk.charCodeAt(this.chunkOff)}advance(e=1){for(this.chunkOff+=e;this.pos+e>=this.range.to;){if(this.rangeIndex==this.ranges.length-1)return this.setDone();e-=this.range.to-this.pos,this.range=this.ranges[++this.rangeIndex],this.pos=this.range.from}return this.pos+=e,this.pos>=this.token.lookAhead&&(this.token.lookAhead=this.pos+1),this.readNext()}setDone(){return this.pos=this.chunkPos=this.end,this.range=this.ranges[this.rangeIndex=this.ranges.length-1],this.chunk="",this.next=-1}reset(e,t){if(t?(this.token=t,t.start=e,t.lookAhead=e+1,t.value=t.extended=-1):this.token=It,this.pos!=e){if(this.pos=e,e==this.end)return this.setDone(),this;for(;e=this.range.to;)this.range=this.ranges[++this.rangeIndex];e>=this.chunkPos&&e=this.chunkPos&&t<=this.chunkPos+this.chunk.length)return this.chunk.slice(e-this.chunkPos,t-this.chunkPos);if(e>=this.chunk2Pos&&t<=this.chunk2Pos+this.chunk2.length)return this.chunk2.slice(e-this.chunk2Pos,t-this.chunk2Pos);if(e>=this.range.from&&t<=this.range.to)return this.input.read(e,t);let i="";for(let r of this.ranges){if(r.from>=t)break;r.to>e&&(i+=this.input.read(Math.max(r.from,e),Math.min(r.to,t)))}return i}}class Kt{constructor(e,t){this.data=e,this.id=t}token(e,t){let{parser:i}=t.p;Jt(this.data,e,t,this.id,i.data,i.tokenPrecTable)}}Kt.prototype.contextual=Kt.prototype.fallback=Kt.prototype.extend=!1;class Ft{constructor(e,t,i){this.precTable=t,this.elseToken=i,this.data="string"==typeof e?Mt(e):e}token(e,t){let i=e.pos,r=0;for(;;){let i=e.next<0,n=e.resolveOffset(1,1);if(Jt(this.data,e,t,0,this.data,this.precTable),e.token.value>-1)break;if(null==this.elseToken)return;if(i||r++,null==n)break;e.reset(n,e.token)}r&&(e.reset(i,e.token),e.acceptToken(this.elseToken,r))}}Ft.prototype.contextual=Kt.prototype.fallback=Kt.prototype.extend=!1;class Ht{constructor(e,t={}){this.token=e,this.contextual=!!t.contextual,this.fallback=!!t.fallback,this.extend=!!t.extend}}function Jt(e,t,i,r,n,o){let s=0,O=1<0){let i=e[r];if(a.allows(i)&&(-1==t.token.value||t.token.value==i||ti(i,t.token.value,n,o))){t.acceptToken(i);break}}let r=t.next,l=0,h=e[s+2];if(!(t.next<0&&h>l&&65535==e[i+3*h-3]&&65535==e[i+3*h-3])){for(;l>1,o=i+n+(n<<1),O=e[o],a=e[o+1]||65536;if(r=a)){s=e[o+2],t.advance();continue e}l=n+1}}break}s=e[i+3*h-1]}}function ei(e,t,i){for(let r,n=t;65535!=(r=e[n]);n++)if(r==i)return n-t;return-1}function ti(e,t,i,r){let n=ei(i,r,t);return n<0||ei(i,r,e)t)&&!r.type.isError)return i<0?Math.max(0,Math.min(r.to-1,t-25)):Math.min(e.length,Math.max(r.from+1,t+25));if(i<0?r.prevSibling():r.nextSibling())break;if(!r.parent())return i<0?0:e.length}}class oi{constructor(e,t){this.stream=t,this.tokens=[],this.mainToken=null,this.actions=[],this.tokens=e.tokenizers.map((e=>new Bt))}getActions(e){let t=0,i=null,{parser:r}=e.p,{tokenizers:n}=r,o=r.stateSlot(e.state,3),s=e.curContext?e.curContext.hash:0,O=0;for(let r=0;rl.end+25&&(O=Math.max(l.lookAhead,O)),0!=l.value)){let r=t;if(l.extended>-1&&(t=this.addActions(e,l.extended,l.end,t)),t=this.addActions(e,l.value,l.end,t),!a.extend&&(i=l,t>r))break}}for(;this.actions.length>t;)this.actions.pop();return O&&e.setLookAhead(O),i||e.pos!=this.stream.end||(i=new Bt,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 Bt,{pos:i,p:r}=e;return t.start=i,t.end=Math.min(i+1,r.stream.end),t.value=i==r.stream.end?r.parser.eofTerm:0,t}updateCachedToken(e,t,i){let r=this.stream.clipPos(i.pos);if(t.token(this.stream.reset(r,e),i),e.value>-1){let{parser:t}=i.p;for(let r=0;r=0&&i.p.parser.dialect.allows(n>>1)){0==(1&n)?e.value=n>>1:e.extended=n>>1;break}}}else e.value=0,e.end=this.stream.clipPos(r+1)}putAction(e,t,i,r){for(let t=0;t4*e.bufferLength?new class{constructor(e,t){this.fragments=e,this.nodeSet=t,this.i=0,this.fragment=null,this.safeFrom=-1,this.safeTo=-1,this.trees=[],this.start=[],this.index=[],this.nextFragment()}nextFragment(){let e=this.fragment=this.i==this.fragments.length?null:this.fragments[this.i++];if(e){for(this.safeFrom=e.openStart?ni(e.tree,e.from+e.offset,1)-e.offset:e.from,this.safeTo=e.openEnd?ni(e.tree,e.to+e.offset,-1)-e.offset:e.to;this.trees.length;)this.trees.pop(),this.start.pop(),this.index.pop();this.trees.push(e.tree),this.start.push(-e.offset),this.index.push(0),this.nextStart=this.safeFrom}else this.nextStart=1e9}nodeAt(e){if(ee)return this.nextStart=o,null;if(n instanceof st){if(o==e){if(o=Math.max(this.safeFrom,e)&&(this.trees.push(n),this.start.push(o),this.index.push(0))}else this.index[t]++,this.nextStart=o+n.length}}}(i,e.nodeSet):null}get parsedPos(){return this.minStackPos}advance(){let e,t,i=this.stacks,r=this.minStackPos,n=this.stacks=[];if(this.bigReductionCount>300&&1==i.length){let[e]=i;for(;e.forceReduce()&&e.stack.length&&e.stack[e.stack.length-2]>=this.lastBigReductionStart;);this.bigReductionCount=this.lastBigReductionSize=0}for(let o=0;or)n.push(s);else{if(this.advanceStack(s,n,i))continue;{e||(e=[],t=[]),e.push(s);let i=this.tokens.getMainToken(s);t.push(i.value,i.end)}}break}}if(!n.length){let t=e&&function(e){let t=null;for(let i of e){let e=i.p.stoppedAt;(i.pos==i.p.stream.end||null!=e&&i.pos>e)&&i.p.parser.stateFlag(i.state,2)&&(!t||t.scorethis.stoppedAt?e[0]:this.runRecovery(e,t,n);if(i)return ii&&console.log("Force-finish "+this.stackID(i)),this.stackToTree(i.forceAll())}if(this.recovering){let e=1==this.recovering?1:3*this.recovering;if(n.length>e)for(n.sort(((e,t)=>t.score-e.score));n.length>e;)n.pop();n.some((e=>e.reducePos>r))&&this.recovering--}else if(n.length>1){e:for(let e=0;e500&&r.buffer.length>500){if(!((t.score-r.score||t.buffer.length-r.buffer.length)>0)){n.splice(e--,1);continue e}n.splice(i--,1)}}}n.length>12&&n.splice(12,n.length-12)}this.minStackPos=n[0].pos;for(let e=1;e ":"";if(null!=this.stoppedAt&&r>this.stoppedAt)return e.forceReduce()?e:null;if(this.fragments){let t=e.curContext&&e.curContext.tracker.strict,i=t?e.curContext.hash:0;for(let s=this.fragments.nodeAt(r);s;){let r=this.parser.nodeSet.types[s.type.id]==s.type?n.getGoto(e.state,s.type.id):-1;if(r>-1&&s.length&&(!t||(s.prop(He.contextHash)||0)==i))return e.useNode(s,r),ii&&console.log(o+this.stackID(e)+` (via reuse of ${n.getName(s.type.id)})`),!0;if(!(s instanceof st)||0==s.children.length||s.positions[0]>0)break;let O=s.children[0];if(!(O instanceof st&&0==s.positions[0]))break;s=O}}let s=n.stateSlot(e.state,4);if(s>0)return e.reduce(s),ii&&console.log(o+this.stackID(e)+` (via always-reduce ${n.getName(65535&s)})`),!0;if(e.stack.length>=9e3)for(;e.stack.length>6e3&&e.forceReduce(););let O=this.tokens.getActions(e);for(let s=0;sr?t.push(u):i.push(u)}return!1}advanceFully(e,t){let i=e.pos;for(;;){if(!this.advanceStack(e,null,null))return!1;if(e.pos>i)return Oi(e,t),!0}}runRecovery(e,t,i){let r=null,n=!1;for(let o=0;o ":"";if(s.deadEnd){if(n)continue;if(n=!0,s.restart(),ii&&console.log(l+this.stackID(s)+" (restarted)"),this.advanceFully(s,i))continue}let h=s.split(),c=l;for(let e=0;h.forceReduce()&&e<10&&(ii&&console.log(c+this.stackID(h)+" (via force-reduce)"),!this.advanceFully(h,i));e++)ii&&(c=this.stackID(h)+" -> ");for(let e of s.recoverByInsert(O))ii&&console.log(l+this.stackID(e)+" (via recover-insert)"),this.advanceFully(e,i);this.stream.end>s.pos?(a==s.pos&&(a++,O=0),s.recoverByDelete(O,a),ii&&console.log(l+this.stackID(s)+` (via recover-delete ${this.parser.getName(O)})`),Oi(s,i)):(!r||r.scoree;class hi{constructor(e){this.start=e.start,this.shift=e.shift||li,this.reduce=e.reduce||li,this.reuse=e.reuse||li,this.hash=e.hash||(()=>0),this.strict=!1!==e.strict}}class ci extends Pt{constructor(e){if(super(),this.wrappers=[],14!=e.version)throw new RangeError(`Parser version (${e.version}) doesn't match runtime version (14)`);let t=e.nodeNames.split(" ");this.minRepeatTerm=t.length;for(let i=0;ie.topRules[t][1])),r=[];for(let e=0;e=0)n(r,e,t[i++]);else{let o=t[i+-r];for(let s=-r;s>0;s--)n(t[i++],e,o);i++}}}this.nodeSet=new it(t.map(((t,n)=>tt.define({name:n>=this.minRepeatTerm?void 0:t,id:n,props:r[n],top:i.indexOf(n)>-1,error:0==n,skipped:e.skippedNodes&&e.skippedNodes.indexOf(n)>-1})))),e.propSources&&(this.nodeSet=this.nodeSet.extend(...e.propSources)),this.strict=!1,this.bufferLength=Le;let o=Mt(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 Kt(o,e):e)),this.topRules=e.topRules,this.dialects=e.dialects||{},this.dynamicPrecedences=e.dynamicPrecedences||null,this.tokenPrecTable=e.tokenPrec,this.termNames=e.termNames||null,this.maxNode=this.nodeSet.types.length-1,this.dialect=this.parseDialect(),this.top=this.topRules[Object.keys(this.topRules)[0]]}createParse(e,t,i){let r=new si(this,e,t,i);for(let n of this.wrappers)r=n(r,e,t,i);return r}getGoto(e,t,i=!1){let r=this.goto;if(t>=r[0])return-1;for(let n=r[t+1];;){let t=r[n++],o=1&t,s=r[n++];if(o&&i)return s;for(let i=n+(t>>1);n0}validAction(e,t){return!!this.allActions(e,(e=>e==t||null))}allActions(e,t){let i=this.stateSlot(e,4),r=i?t(i):void 0;for(let i=this.stateSlot(e,1);null==r;i+=3){if(65535==this.data[i]){if(1!=this.data[i+1])break;i=ui(this.data,i+2)}r=t(ui(this.data,i+1))}return r}nextStates(e){let t=[];for(let i=this.stateSlot(e,1);;i+=3){if(65535==this.data[i]){if(1!=this.data[i+1])break;i=ui(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(ci.prototype),this);if(e.props&&(t.nodeSet=this.nodeSet.extend(...e.props)),e.top){let i=this.topRules[e.top];if(!i)throw new RangeError(`Invalid top rule name ${e.top}`);t.top=i}return e.tokenizers&&(t.tokenizers=this.tokenizers.map((t=>{let i=e.tokenizers.find((e=>e.from==t));return i?i.to:t}))),e.specializers&&(t.specializers=this.specializers.slice(),t.specializerSpecs=this.specializerSpecs.map(((i,r)=>{let n=e.specializers.find((e=>e.from==i.external));if(!n)return i;let o=Object.assign(Object.assign({},i),{external:n.to});return t.specializers[r]=fi(o),o}))),e.contextTracker&&(t.context=e.contextTracker),e.dialect&&(t.dialect=this.parseDialect(e.dialect)),null!=e.strict&&(t.strict=e.strict),e.wrap&&(t.wrappers=t.wrappers.concat(e.wrap)),null!=e.bufferLength&&(t.bufferLength=e.bufferLength),t}hasWrappers(){return this.wrappers.length>0}getName(e){return this.termNames?this.termNames[e]:String(e<=this.maxNode&&this.nodeSet.types[e].name||e)}get eofTerm(){return this.maxNode+1}get topNode(){return this.nodeSet.types[this.top[1]]}dynamicPrecedence(e){let t=this.dynamicPrecedences;return null==t?0:t[e]||0}parseDialect(e){let t=Object.keys(this.dialects),i=t.map((()=>!1));if(e)for(let r of e.split(" ")){let e=t.indexOf(r);e>=0&&(i[e]=!0)}let r=null;for(let e=0;ee.external(i,r)<<1|t}return e.get}const di=".".codePointAt(0),pi="\\".codePointAt(0),Qi="`".codePointAt(0),gi="$".codePointAt(0),mi="#".codePointAt(0),$i="=".codePointAt(0),bi="(".codePointAt(0),Xi="{".codePointAt(0),Si="[".codePointAt(0),yi=":".codePointAt(0),vi='"'.codePointAt(0),xi="'".codePointAt(0),Pi="\n".codePointAt(0),wi="A".codePointAt(0),Ti="Z".codePointAt(0),ki="a".codePointAt(0),Yi="z".codePointAt(0),Ri="0".codePointAt(0),_i="9".codePointAt(0),Vi="_".codePointAt(0),Zi="!".codePointAt(0),Ai=/^\p{Lu}/u,qi=/^\p{Ll}/u,Wi=/^\p{Lt}/u,Ci=/^\p{Lm}/u,Ui=/^\p{Lo}/u,Ni=/^\p{Me}/u,ji=/^\p{Mn}/u,Ei=/^\p{Mc}/u,zi=/^\p{Nd}/u,Gi=/^\p{Nl}/u,Di=/^\p{No}/u,Mi=/^\p{Pc}/u,Bi=/^\p{Sc}/u,Ii=/^\p{Sk}/u,Li=/^\p{So}/u,Ki=/^\p{Emoji}/u,Fi=new Ht(((e,t)=>{e.peek(0)===Pi&&t.canShift(256)&&e.acceptToken(256,1)}));function Hi(e,t){return Ai.test(e)||qi.test(e)||Wi.test(e)||Ci.test(e)||Ui.test(e)||Gi.test(e)||Bi.test(e)||Ki.test(e)||Li.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 Ji(e,t){let i=e.peek(t);if(i>=wi&&i<=Ti||i>=ki&&i<=Yi||i==Vi)return 1;if(i<161||i>1114111)return 0;{let r=er(e,t);return Hi(r,i)?r.length:0}}function er(e,t){let i=1,r=e.peek(t),n=String.fromCodePoint(r);for(;;){let o=e.peek(t+i);if(!(55296<=r&&r<=56319&&56320<=o&&o<=57343))break;n+=String.fromCodePoint(o),r=o,i+=1}return n}const tr=e=>new Ht(((t,i)=>{let r=!0,n=0,o=1;for(;;){let e=t.peek(n);if(-1===e)break;if(r){if(r=!1,o=Ji(t,n),0===o)break}else if(e>=wi&&e<=Ti||e>=ki&&e<=Yi||e>=Ri&&e<=_i||e==Vi||e==Zi);else{if(e<161||e>1114111)break;{let i=er(t,n);if(o=i.length,Hi(i,e));else if(!(ji.test(i)||Ei.test(i)||zi.test(i)||Mi.test(i)||Ii.test(i)||Ni.test(i)||Di.test(i)||e>=8242&&e<=8247||8279==e))break}}n+=o,o=1}0!==n&&t.acceptToken(e,n)})),ir=tr(1),rr=tr(257),nr=(e,t)=>{let i=e.peek(t),r=e.peek(t+1);return i===gi&&(0!==Ji(e,t+1)||r==bi)},or=({till:e,term:t})=>new Ht(((i,r)=>{let n=0,o=!1;for(;;){let r=i.peek(n);if(-1===r)break;if(o)o=!1;else if(r===pi)o=!0;else if(nr(i,n)||e(i,n))return void(n>0&&i.acceptToken(t,n));n+=1}})),sr=({till:e,term:t})=>new Ht(((i,r)=>{let n=0,o=!1;for(;;){let r=i.peek(n);if(-1===r)break;if(o)o=!1;else if(r===pi)o=!0;else if(e(i,n))return void(n>0&&i.acceptToken(t,n));n+=1}})),Or=(e,t)=>e.peek(t)===vi&&e.peek(t+1)===vi&&e.peek(t+2)===vi,ar=(e,t)=>e.peek(t)===vi,lr=(e,t)=>e.peek(t)===Qi,hr=or({term:258,till:Or}),cr=or({term:259,till:ar}),ur=or({term:260,till:lr}),fr=sr({term:261,till:Or}),dr=sr({term:262,till:ar}),pr=sr({term:263,till:lr}),Qr=(e,t)=>e.peek(t)===mi&&e.peek(t+1)===$i,gr=(e,t)=>e.peek(t)===$i&&e.peek(t+1)===mi,mr=new Ht(((e,t)=>{if(Qr(e,0)){let t=1,i=2;for(;-1!==e.peek(i);)if(gr(e,i)){if(t-=1,0===t)return void e.acceptToken(2,i+2);i+=2}else Qr(e,i)?(t+=1,i+=2):i+=1;e.acceptToken(2,i)}})),$r=(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},br=new Ht(((e,t)=>{e.peek(0)!==bi||$r(e,-1)||!t.canShift(247)?e.peek(0)!==yi||$r(e,-1)||!t.canShift(248)?e.peek(0)!==Xi||$r(e,-1)||!t.canShift(249)?e.peek(0)!==Si||$r(e,-1)||!t.canShift(250)?e.peek(0)!==xi||$r(e,-1)||!t.canShift(251)?e.peek(0)!==vi||$r(e,-1)||!t.canShift(252)?e.peek(0)!==Qi||$r(e,-1)||!t.canShift(253)?e.peek(0)!==di||$r(e,-1)||!t.canShift(254)?$r(e,-1)||$r(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}),Xr={__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},Sr=ci.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:[br,Fi,rr,ir,mr,hr,cr,ur,fr,dr,pr,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=>Xr[e]||-1}],tokenPrec:53216}),yr="undefined"==typeof Symbol?"__ͼ":Symbol.for("ͼ"),vr="undefined"==typeof Symbol?"__styleSet"+Math.floor(1e8*Math.random()):Symbol("styleSet"),xr="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:{};class Pr{constructor(e,t){this.rules=[];let{finish:i}=t||{};function r(e){return/^@/.test(e)?[e]:e.split(/,\s*/)}function n(e,t,o,s){let O=[],a=/^@(\w+)\b/.exec(e[0]),l=a&&"keyframes"==a[1];if(a&&null==t)return o.push(e[0]+";");for(let i in t){let s=t[i];if(/&/.test(i))n(i.split(/,\s*/).map((t=>e.map((e=>t.replace(/&/,e))))).reduce(((e,t)=>e.concat(t))),s,o);else if(s&&"object"==typeof s){if(!a)throw new RangeError("The value of a property ("+i+") should be a primitive value.");n(r(i),s,O,l)}else null!=s&&O.push(i.replace(/_.*/,"").replace(/[A-Z]/g,(e=>"-"+e.toLowerCase()))+": "+s+";")}(O.length||l)&&o.push((!i||a||s?e:e.map(i)).join(", ")+" {"+O.join(" ")+"}")}for(let t in e)n(r(t),e[t],this.rules)}getRules(){return this.rules.join("\n")}static newName(){let e=xr[yr]||1;return xr[yr]=e+1,"ͼ"+e.toString(36)}static mount(e,t,i){let r=e[vr],n=i&&i.nonce;r?n&&r.setNonce(n):r=new Tr(e,n),r.mount(Array.isArray(t)?t:[t])}}let wr=new Map;class Tr{constructor(e,t){let i=e.ownerDocument||e,r=i.defaultView;if(!e.head&&e.adoptedStyleSheets&&r.CSSStyleSheet){let t=wr.get(i);if(t)return e.adoptedStyleSheets=[t.sheet,...e.adoptedStyleSheets],e[vr]=t;this.sheet=new r.CSSStyleSheet,e.adoptedStyleSheets=[this.sheet,...e.adoptedStyleSheets],wr.set(i,this)}else{this.styleTag=i.createElement("style"),t&&this.styleTag.setAttribute("nonce",t);let r=e.head||e;r.insertBefore(this.styleTag,r.firstChild)}this.modules=[],e[vr]=this}mount(e){let t=this.sheet,i=0,r=0;for(let n=0;n-1&&(this.modules.splice(s,1),r--,s=-1),-1==s){if(this.modules.splice(r++,0,o),t)for(let e=0;e",191:"?",192:"~",219:"{",220:"|",221:"}",222:'"'},Rr="undefined"!=typeof navigator&&/Mac/.test(navigator.platform),_r="undefined"!=typeof navigator&&/MSIE \d|Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(navigator.userAgent),Vr=0;Vr<10;Vr++)kr[48+Vr]=kr[96+Vr]=String(Vr);for(Vr=1;Vr<=24;Vr++)kr[Vr+111]="F"+Vr;for(Vr=65;Vr<=90;Vr++)kr[Vr]=String.fromCharCode(Vr+32),Yr[Vr]=String.fromCharCode(Vr);for(var Zr in kr)Yr.hasOwnProperty(Zr)||(Yr[Zr]=kr[Zr]);function Ar(e){let t;return t=11==e.nodeType?e.getSelection?e:e.ownerDocument:e,t.getSelection()}function qr(e,t){return!!t&&(e==t||e.contains(1!=t.nodeType?t.parentNode:t))}function Wr(e,t){if(!t.anchorNode)return!1;try{return qr(e,t.anchorNode)}catch(e){return!1}}function Cr(e){return 3==e.nodeType?Fr(e,0,e.nodeValue.length).getClientRects():1==e.nodeType?e.getClientRects():[]}function Ur(e,t,i,r){return!!i&&(Er(e,t,i,r,-1)||Er(e,t,i,r,1))}function Nr(e){for(var t=0;;t++)if(!(e=e.previousSibling))return t}function jr(e){return 1==e.nodeType&&/^(DIV|P|LI|UL|OL|BLOCKQUOTE|DD|DT|H\d|SECTION|PRE)$/.test(e.nodeName)}function Er(e,t,i,r,n){for(;;){if(e==i&&t==r)return!0;if(t==(n<0?0:zr(e))){if("DIV"==e.nodeName)return!1;let i=e.parentNode;if(!i||1!=i.nodeType)return!1;t=Nr(e)+(n<0?0:1),e=i}else{if(1!=e.nodeType)return!1;if(1==(e=e.childNodes[t+(n<0?-1:0)]).nodeType&&"false"==e.contentEditable)return!1;t=n<0?zr(e):0}}}function zr(e){return 3==e.nodeType?e.nodeValue.length:e.childNodes.length}function Gr(e,t){let i=t?e.left:e.right;return{left:i,right:i,top:e.top,bottom:e.bottom}}function Dr(e){let t=e.visualViewport;return t?{left:0,right:t.width,top:0,bottom:t.height}:{left:0,right:e.innerWidth,top:0,bottom:e.innerHeight}}function Mr(e,t){let i=t.width/e.offsetWidth,r=t.height/e.offsetHeight;return(i>.995&&i<1.005||!isFinite(i)||Math.abs(t.width-e.offsetWidth)<1)&&(i=1),(r>.995&&r<1.005||!isFinite(r)||Math.abs(t.height-e.offsetHeight)<1)&&(r=1),{scaleX:i,scaleY:r}}class Br{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?zr(t):0),i,Math.min(e.focusOffset,i?zr(i):0))}set(e,t,i,r){this.anchorNode=e,this.anchorOffset=t,this.focusNode=i,this.focusOffset=r}}let Ir,Lr=null;function Kr(e){if(e.setActive)return e.setActive();if(Lr)return e.focus(Lr);let t=[];for(let i=e;i&&(t.push(i,i.scrollTop,i.scrollLeft),i!=i.ownerDocument);i=i.parentNode);if(e.focus(null==Lr?{get preventScroll(){return Lr={preventScroll:!0},!0}}:void 0),!Lr){Lr=!1;for(let e=0;eMath.max(1,e.scrollHeight-e.clientHeight-4)}function tn(e,t){for(let i=e,r=t;;){if(3==i.nodeType&&r>0)return{node:i,offset:r};if(1==i.nodeType&&r>0){if("false"==i.contentEditable)return null;i=i.childNodes[r-1],r=zr(i)}else{if(!i.parentNode||jr(i))return null;r=Nr(i),i=i.parentNode}}}function rn(e,t){for(let i=e,r=t;;){if(3==i.nodeType&&rt)return i.domBoundsAround(e,t,a);if(h>=e&&-1==r&&(r=O,n=a),a>t&&i.dom.parentNode==this.dom){o=O,s=l;break}l=h,a=h+i.breakAfter}return{from:n,to:s<0?i+this.length:s,startDOM:(r?this.children[r-1].dom.nextSibling:null)||this.dom.firstChild,endDOM:o=0?this.children[o].dom:null}}markDirty(e=!1){this.flags|=2,this.markParentsDirty(e)}markParentsDirty(e){for(let t=this.parent;t;t=t.parent){if(e&&(t.flags|=2),1&t.flags)return;t.flags|=1,e=!1}}setParent(e){this.parent!=e&&(this.parent=e,7&this.flags&&this.markParentsDirty(!0))}setDOM(e){this.dom!=e&&(this.dom&&(this.dom.cmView=null),this.dom=e,e.cmView=this)}get rootView(){for(let e=this;;){let t=e.parent;if(!t)return e;e=t}}replaceChildren(e,t,i=on){this.markDirty();for(let r=e;rthis.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 ln(e,t,i,r,n,o,s,O,a){let{children:l}=e,h=l.length?l[t]:null,c=o.length?o[o.length-1]:null,u=c?c.breakAfter:s;if(!(t==r&&h&&!s&&!u&&o.length<2&&h.merge(i,n,o.length?c:null,0==i,O,a))){if(r0&&(!s&&o.length&&h.merge(i,h.length,o[0],!1,O,0)?h.breakAfter=o.shift().breakAfter:(i2);var Sn={mac:Xn||/Mac/.test(cn.platform),windows:/Win/.test(cn.platform),linux:/Linux|X11/.test(cn.platform),ie:Qn,ie_version:dn?un.documentMode||6:pn?+pn[1]:fn?+fn[1]:0,gecko:gn,gecko_version:gn?+(/Firefox\/(\d+)/.exec(cn.userAgent)||[0,0])[1]:0,chrome:!!mn,chrome_version:mn?+mn[1]:0,ios:Xn,android:/Android\b/.test(cn.userAgent),webkit:$n,safari:bn,webkit_version:$n?+(/\bAppleWebKit\/(\d+)/.exec(navigator.userAgent)||[0,0])[1]:0,tabSize:null!=un.documentElement.style.tabSize?"tab-size":"-moz-tab-size"};class yn extends sn{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 yn)||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 yn(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 nn(this.dom,e)}domBoundsAround(e,t,i){return{from:i,to:i+this.length,startDOM:this.dom,endDOM:this.dom.nextSibling}}coordsAt(e,t){return function(e,t,i){let r=e.nodeValue.length;t>r&&(t=r);let n=t,o=t,s=0;0==t&&i<0||t==r&&i>=0?Sn.chrome||Sn.gecko||(t?(n--,s=1):o=0)?0:O.length-1];return Sn.safari&&!s&&0==a.width&&(a=Array.prototype.find.call(O,(e=>e.width))||a),s?Gr(a,s<0):a||null}(this.dom,e,t)}}class vn extends sn{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(Jr(e),this.mark.class&&(e.className=this.mark.class),this.mark.attrs)for(let t in this.mark.attrs)e.setAttribute(t,this.mark.attrs[t]);return e}canReuseDOM(e){return super.canReuseDOM(e)&&!(8&(this.flags|e.flags))}reuseDOM(e){e.nodeName==this.mark.tagName.toUpperCase()&&(this.setDOM(e),this.flags|=6)}sync(e,t){this.dom?4&this.flags&&this.setAttrs(this.dom):this.setDOM(this.setAttrs(document.createElement(this.mark.tagName))),super.sync(e,t)}merge(e,t,i,r,n,o){return!(i&&(!(i instanceof vn&&i.mark.eq(this.mark))||e&&n<=0||te&&t.push(i=e&&(r=n),i=s,n++}let o=this.length-e;return this.length=e,r>-1&&(this.children.length=r,this.markDirty()),new vn(this.mark,t,o)}domAtPos(e){return wn(this,e)}coordsAt(e,t){return kn(this,e,t)}}class xn extends sn{static create(e,t,i){return new xn(e,t,i)}constructor(e,t,i){super(),this.widget=e,this.length=t,this.side=i,this.prevWidget=null}split(e){let t=xn.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.widget.editable||(this.dom.contentEditable="false"))}getSide(){return this.side}merge(e,t,i,r,n,o){return!(i&&(!(i instanceof xn&&this.widget.compare(i.widget))||e>0&&n<=0||t0)?nn.before(this.dom):nn.after(this.dom,e==this.length)}domBoundsAround(){return null}coordsAt(e,t){let i=this.widget.coordsAt(this.dom,e,t);if(i)return i;let r=this.dom.getClientRects(),n=null;if(!r.length)return null;let o=this.side?this.side<0:e>0;for(let t=o?r.length-1:0;n=r[t],!(e>0?0==t:t==r.length-1||n.top0?nn.before(this.dom):nn.after(this.dom)}localPosFromDOM(){return 0}domBoundsAround(){return null}coordsAt(e){return this.dom.getBoundingClientRect()}get overrideDOMText(){return o.empty}get isHidden(){return!0}}function wn(e,t){let i=e.dom,{children:r}=e,n=0;for(let e=0;ne&&t0;e--){let t=r[e-1];if(t.dom.parentNode==i)return t.domAtPos(t.length)}for(let e=n;e0&&t instanceof vn&&n.length&&(r=n[n.length-1])instanceof vn&&r.mark.eq(t.mark)?Tn(r,t.children[0],i-1):(n.push(t),t.setParent(e)),e.length+=t.length}function kn(e,t,i){let r=null,n=-1,o=null,s=-1;!function e(t,O){for(let a=0,l=0;a=O&&(h.children.length?e(h,O-l):(!o||o.isHidden&&i>0)&&(c>O||l==c&&h.getSide()>0)?(o=h,s=O-l):(l-1?1:0)!=n.length-(i&&n.indexOf(i)>-1?1:0))return!1;for(let o of r)if(o!=i&&(-1==n.indexOf(o)||e[o]!==t[o]))return!1;return!0}function Vn(e,t,i){let r=!1;if(t)for(let n in t)i&&n in i||(r=!0,"style"==n?e.style.cssText="":e.removeAttribute(n));if(i)for(let n in i)t&&t[n]==i[n]||(r=!0,"style"==n?e.style.cssText=i[n]:e.setAttribute(n,i[n]));return r}function Zn(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){_n(this.attrs,e)||(this.dom&&(this.prevAttrs=this.attrs,this.markDirty()),this.attrs=e)}append(e,t){Tn(this,e,t)}addLineDeco(e){let t=e.spec.attributes,i=e.spec.class;t&&(this.attrs=Yn(t,this.attrs||{})),i&&(this.attrs=Yn({class:i},this.attrs||{}))}domAtPos(e){return wn(this,e)}reuseDOM(e){"DIV"==e.nodeName&&(this.setDOM(e),this.flags|=6)}sync(e,t){var i;this.dom?4&this.flags&&(Jr(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&&(Vn(this.dom,this.prevAttrs,this.attrs),this.dom.classList.add("cm-line"),this.prevAttrs=void 0),super.sync(e,t);let r=this.dom.lastChild;for(;r&&sn.get(r)instanceof vn;)r=r.lastChild;if(!(r&&this.length&&("BR"==r.nodeName||0!=(null===(i=sn.get(r))||void 0===i?void 0:i.isEditable)||Sn.ios&&this.children.some((e=>e instanceof yn))))){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 yn)||/[^ -~]/.test(i.text))return null;let r=Cr(i.dom);if(1!=r.length)return null;t+=r[0].width,e=r[0].height}return t?{lineHeight:this.dom.getBoundingClientRect().height,charWidth:t/this.length,textHeight:e}:null}coordsAt(e,t){let i=kn(this,e,t);if(!this.children.length&&i&&this.parent){let{heightOracle:e}=this.parent.view.viewState,t=i.bottom-i.top;if(Math.abs(t-e.lineHeight)<2&&e.textHeight=t){if(n instanceof An)return n;if(o>t)break}r=o+n.breakAfter}return null}}class qn extends sn{constructor(e,t,i){super(),this.widget=e,this.length=t,this.deco=i,this.breakAfter=0,this.prevWidget=null}merge(e,t,i,r,n,o){return!(i&&(!(i instanceof qn&&this.widget.compare(i.widget))||e>0&&n<=0||t0)}}class Wn{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}get editable(){return!1}destroy(e){}}var Cn=function(e){return e[e.Text=0]="Text",e[e.WidgetBefore=1]="WidgetBefore",e[e.WidgetAfter=2]="WidgetAfter",e[e.WidgetRange=3]="WidgetRange",e}(Cn||(Cn={}));class Un extends Re{constructor(e,t,i,r){super(),this.startSide=e,this.endSide=t,this.widget=i,this.spec=r}get heightRelevant(){return!1}static mark(e){return new Nn(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 En(e,t,t,i,e.widget||null,!1)}static replace(e){let t,i,r=!!e.block;if(e.isBlockGap)t=-5e8,i=4e8;else{let{start:n,end:o}=zn(e,r);t=(n?r?-3e8:-1:5e8)-1,i=1+(o?r?2e8:1:-6e8)}return new En(e,t,i,r,e.widget||null,!0)}static line(e){return new jn(e)}static set(e,t=!1){return Ae.of(e,t)}hasHeight(){return!!this.widget&&this.widget.estimatedHeight>-1}}Un.none=Ae.empty;class Nn extends Un{constructor(e){let{start:t,end:i}=zn(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 Nn&&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))&&_n(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)}}Nn.prototype.point=!1;class jn extends Un{constructor(e){super(-2e8,-2e8,null,e)}eq(e){return e instanceof jn&&this.spec.class==e.spec.class&&_n(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)}}jn.prototype.mapMode=T.TrackBefore,jn.prototype.point=!0;class En extends Un{constructor(e,t,i,r,n,o){super(t,i,n,e),this.block=r,this.isReplace=o,this.mapMode=r?t<=0?T.TrackBefore:T.TrackAfter:T.TrackDel}get type(){return this.startSide!=this.endSide?Cn.WidgetRange:this.startSide<=0?Cn.WidgetBefore:Cn.WidgetAfter}get heightRelevant(){return this.block||!!this.widget&&(this.widget.estimatedHeight>=5||this.widget.lineBreaks>0)}eq(e){return e instanceof En&&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 zn(e,t=!1){let{inclusiveStart:i,inclusiveEnd:r}=e;return null==i&&(i=e.inclusive),null==r&&(r=e.inclusive),{start:null!=i?i:t,end:null!=r?r:t}}function Gn(e,t,i,r=0){let n=i.length-1;n>=0&&i[n]+r>=e?i[n]=Math.max(i[n],t):i.push(e,t)}En.prototype.point=!0;class Dn{constructor(e,t,i,r){this.doc=e,this.pos=t,this.end=i,this.disallowBlockEffectsFor=r,this.content=[],this.curLine=null,this.breakAtStart=0,this.pendingBuffer=0,this.bufferMarks=[],this.atCursorPos=!0,this.openStart=-1,this.openEnd=-1,this.text="",this.textOff=0,this.cursor=e.iter(),this.skip=t}posCovered(){if(0==this.content.length)return!this.breakAtStart&&this.doc.lineAt(this.pos).from!=this.pos;let e=this.content[this.content.length-1];return!(e.breakAfter||e instanceof qn&&e.deco.endSide<0)}getLine(){return this.curLine||(this.content.push(this.curLine=new An),this.atCursorPos=!0),this.curLine}flushBuffer(e=this.bufferMarks){this.pendingBuffer&&(this.curLine.append(Mn(new Pn(-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 qn||this.getLine()}buildText(e,t,i){for(;e>0;){if(this.textOff==this.text.length){let{value:t,lineBreak:i,done:r}=this.cursor.next(this.skip);if(this.skip=0,r)throw new Error("Ran out of text content when drawing inline views");if(i){this.posCovered()||this.getLine(),this.content.length?this.content[this.content.length-1].breakAfter=1:this.breakAtStart=1,this.flushBuffer(),this.curLine=null,this.atCursorPos=!0,e--;continue}this.text=t,this.textOff=0}let r=Math.min(this.text.length-this.textOff,e,512);this.flushBuffer(t.slice(t.length-i)),this.getLine().append(Mn(new yn(this.text.slice(this.textOff,this.textOff+r)),t),i),this.atCursorPos=!0,this.textOff+=r,e-=r,i=0}}span(e,t,i,r){this.buildText(t-e,i,r),this.pos=t,this.openStart<0&&(this.openStart=r)}point(e,t,i,r,n,o){if(this.disallowBlockEffectsFor[o]&&i instanceof En){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 En)if(i.block)i.startSide>0&&!this.posCovered()&&this.getLine(),this.addBlockWidget(new qn(i.widget||Bn.block,s,i));else{let o=xn.create(i.widget||Bn.inline,s,s?0:i.startSide),O=this.atCursorPos&&!o.isEditable&&n<=r.length&&(e0),a=!o.isEditable&&(er.length||i.startSide<=0),l=this.getLine();2!=this.pendingBuffer||O||o.isEditable||(this.pendingBuffer=0),this.flushBuffer(r),O&&(l.append(Mn(new Pn(1),r),n),n=r.length+Math.max(0,n-r.length)),l.append(Mn(o,r),n),this.atCursorPos=a,this.pendingBuffer=a?er.length?1:2:0,this.pendingBuffer&&(this.bufferMarks=r.slice())}else this.doc.lineAt(this.pos).from==this.pos&&this.getLine().addLineDeco(i);s&&(this.textOff+s<=this.text.length?this.textOff+=s:(this.skip+=s-(this.text.length-this.textOff),this.text="",this.textOff=0),this.pos=t),this.openStart<0&&(this.openStart=n)}static build(e,t,i,r,n){let o=new Dn(e,t,i,n);return o.openEnd=Ae.spans(r,t,i,o),o.openStart<0&&(o.openStart=o.openEnd),o.finish(o.openEnd),o}}function Mn(e,t){for(let i of t)e=new vn(i,[e],e.length);return e}class Bn extends Wn{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}}Bn.inline=new Bn("span"),Bn.block=new Bn("div");var In=function(e){return e[e.LTR=0]="LTR",e[e.RTL=1]="RTL",e}(In||(In={}));const Ln=In.LTR,Kn=In.RTL;function Fn(e){let t=[];for(let i=0;i=t){if(s.level==i)return o;(n<0||(0!=r?r<0?s.fromt:e[n].level>s.level))&&(n=o)}}if(n<0)throw new RangeError("Index out of range");return n}}function oo(e,t){if(e.length!=t.length)return!1;for(let i=0;ia&&s.push(new no(a,d.from,u)),ao(e,d.direction==Ln!=!(u%2)?r+1:r,n,d.inner,d.from,d.to,s),a=d.to),f=d.to}else{if(f==i||(t?so[f]!=O:so[f]==O))break;f++}c?Oo(e,a,f,r+1,n,c,s):at;){let i=!0,h=!1;if(!l||a>o[l-1].to){let e=so[a-1];e!=O&&(i=!1,h=16==e)}let c=i||1!=O?null:[],u=i?r:r+1,f=a;e:for(;;)if(l&&f==o[l-1].to){if(h)break e;let d=o[--l];if(!i)for(let e=d.from,i=l;;){if(e==t)break e;if(!i||o[i-1].to!=e){if(so[e-1]==O)break e;break}e=o[--i].from}c?c.push(d):(d.to=0;e-=3)if(to[e+1]==-i){let t=to[e+2],i=2&t?n:4&t?1&t?o:n:0;i&&(so[s]=so[to[e]]=i),O=e;break}}else{if(189==to.length)break;to[O++]=s,to[O++]=t,to[O++]=a}else if(2==(r=so[s])||1==r){let e=r==n;a=e?0:1;for(let t=O-3;t>=0;t-=3){let i=to[t+2];if(2&i)break;if(e)to[t+2]|=2;else{if(4&i)break;to[t+2]|=4}}}}}(e,n,o,r,O),function(e,t,i,r){for(let n=0,o=r;n<=i.length;n++){let s=n?i[n-1].to:e,O=na;)t==o&&(t=i[--r].from,o=r?i[r-1].to:e),so[--t]=h;a=s}else o=s,a++}}}(n,o,r,O),Oo(e,n,o,t,i,r,s)}function lo(e){return[new no(0,e,0)]}let ho="";function co(e,t,i,r,n){var o;let s=r.head-e.from,O=no.find(t,s,null!==(o=r.bidiLevel)&&void 0!==o?o:-1,r.assoc),a=t[O],l=a.side(n,i);if(s==l){let e=O+=n?1:-1;if(e<0||e>=t.length)return null;a=t[O=e],s=a.side(!n,i),l=a.side(n,i)}let h=m(e.text,s,a.forward(n,i));(ha.to)&&(h=l),ho=e.text.slice(Math.min(s,h),Math.max(s,h));let c=O==(n?t.length-1:0)?null:t[O+(n?1:-1)];return c&&h==l&&c.level+(n?0:1)e.some((e=>e))}),So=j.define({combine:e=>e.some((e=>e))}),yo=j.define();class vo{constructor(e,t="nearest",i="nearest",r=5,n=5,o=!1){this.range=e,this.y=t,this.x=i,this.yMargin=r,this.xMargin=n,this.isSnapshot=o}map(e){return e.empty?this:new vo(this.range.map(e),this.y,this.x,this.yMargin,this.xMargin,this.isSnapshot)}clip(e){return this.range.to<=e.doc.length?this:new vo(C.cursor(e.doc.length),this.y,this.x,this.yMargin,this.xMargin,this.isSnapshot)}}const xo=ge.define({map:(e,t)=>e.map(t)});function Po(e,t,i){let r=e.facet(go);r.length?r[0](t):window.onerror?window.onerror(String(t),i,void 0,void 0,t):i?console.error(i+":",t):console.error(t)}const wo=j.define({combine:e=>!e.length||e[0]});let To=0;const ko=j.define();class Yo{constructor(e,t,i,r,n){this.id=e,this.create=t,this.domEventHandlers=i,this.domEventObservers=r,this.extension=n(this)}static define(e,t){const{eventHandlers:i,eventObservers:r,provide:n,decorations:o}=t||{};return new Yo(To++,e,i,r,(e=>{let t=[ko.of(e)];return o&&t.push(Zo.of((t=>{let i=t.plugin(e);return i?o(i):Un.none}))),n&&t.push(n(e)),t}))}static fromClass(e,t){return Yo.define((t=>new e(t)),t)}}class Ro{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(Po(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){Po(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){Po(e.state,t,"CodeMirror plugin crashed")}}deactivate(){this.spec=this.value=null}}const _o=j.define(),Vo=j.define(),Zo=j.define(),Ao=j.define(),qo=j.define(),Wo=j.define();function Co(e,t){let i=e.state.facet(Wo);if(!i.length)return i;let r=i.map((t=>t instanceof Function?t(e):t)),n=[];return Ae.spans(r,t.from,t.to,{point(){},span(e,i,r,o){let s=e-t.from,O=i-t.from,a=n;for(let e=r.length-1;e>=0;e--,o--){let i,n=r[e].spec.bidiIsolate;if(null==n&&(n=uo(t.text,s,O)),o>0&&a.length&&(i=a[a.length-1]).to==s&&i.direction==n)i.to=O,a=i.inner;else{let e={from:s,to:O,direction:n,inner:[]};a.push(e),a=e.inner}}}}),n}const Uo=j.define();function No(e){let t=0,i=0,r=0,n=0;for(let o of e.state.facet(Uo)){let s=o(e);s&&(null!=s.left&&(t=Math.max(t,s.left)),null!=s.right&&(i=Math.max(i,s.right)),null!=s.top&&(r=Math.max(r,s.top)),null!=s.bottom&&(n=Math.max(n,s.bottom)))}return{left:t,right:i,top:r,bottom:n}}const jo=j.define();class Eo{constructor(e,t,i,r){this.fromA=e,this.toA=t,this.fromB=i,this.toB=r}join(e){return new Eo(Math.min(this.fromA,e.fromA),Math.max(this.toA,e.toA),Math.min(this.fromB,e.fromB),Math.max(this.toB,e.toB))}addToSet(e){let t=e.length,i=this;for(;t>0;t--){let r=e[t-1];if(!(r.fromA>i.toA)){if(r.toAl)break;n+=2}if(!O)return i;new Eo(O.fromA,O.toA,O.fromB,O.toB).addToSet(i),o=O.toA,s=O.toB}}}class zo{constructor(e,t,i){this.view=e,this.state=t,this.transactions=i,this.flags=0,this.startState=e.state,this.changes=Y.empty(this.startState.doc.length);for(let e of i)this.changes=this.changes.compose(e.changes);let r=[];this.changes.iterChangedRanges(((e,t,i,n)=>r.push(new Eo(e,t,i,n)))),this.changedRanges=r}static create(e,t,i){return new zo(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}}class Go extends sn{get length(){return this.view.state.doc.length}constructor(e){super(),this.view=e,this.decorations=[],this.dynamicDecorationMap=[!1],this.domChanged=null,this.hasComposition=null,this.markedForComposition=new Set,this.compositionBarrier=Un.none,this.lastCompositionAfterCursor=!1,this.minWidth=0,this.minWidthFrom=0,this.minWidthTo=0,this.impreciseAnchor=null,this.impreciseHead=null,this.forceSelection=!1,this.lastUpdate=Date.now(),this.setDOM(e.contentDOM),this.children=[new An],this.children[0].setParent(this),this.updateDeco(),this.updateInner([new Eo(0,0,0,e.state.doc.length)],0,null)}update(e){var t;let i=e.changedRanges;this.minWidth>0&&i.length&&(i.every((({fromA:e,toA:t})=>tthis.minWidthTo))?(this.minWidthFrom=e.changes.mapPos(this.minWidthFrom,1),this.minWidthTo=e.changes.mapPos(this.minWidthTo,1)):this.minWidth=this.minWidthFrom=this.minWidthTo=0);let r=-1;this.view.inputState.composing>=0&&((null===(t=this.domChanged)||void 0===t?void 0:t.newSel)?r=this.domChanged.newSel.head:function(e,t){let i=!1;return t&&e.iterChangedRanges(((e,r)=>{et.from&&(i=!0)})),i}(e.changes,this.hasComposition)||e.selectionSet||(r=e.state.selection.main.head));let n=r>-1?function(e,t,i){let r=Bo(e,i);if(!r)return null;let{node:n,from:o,to:s}=r,O=n.nodeValue;if(/[\n\r]/.test(O))return null;if(e.state.doc.sliceString(r.from,r.to)!=O)return null;let a=t.invertedDesc,l=new Eo(a.mapPos(o),a.mapPos(s),o,s),h=[];for(let t=n.parentNode;;t=t.parentNode){let i=sn.get(t);if(i instanceof vn)h.push({node:t,deco:i.mark});else{if(i instanceof An||"DIV"==t.nodeName&&t.parentNode==e.contentDOM)return{range:l,text:n,marks:h,line:t};if(t==e.contentDOM)return null;h.push({node:t,deco:new Nn({inclusive:!0,attributes:Zn(t),tagName:t.tagName.toLowerCase()})})}}}(this.view,e.changes,r):null;if(this.domChanged=null,this.hasComposition){this.markedForComposition.clear();let{from:t,to:r}=this.hasComposition;i=new Eo(t,r,e.changes.mapPos(t,-1),e.changes.mapPos(r,1)).addToSet(i.slice())}this.hasComposition=n?{from:n.range.fromB,to:n.range.toB}:null,(Sn.ie||Sn.chrome)&&!n&&e&&e.state.doc.lines!=e.startState.doc.lines&&(this.forceSelection=!0);let o=function(e,t,i){let r=new class{constructor(){this.changes=[]}compareRange(e,t){Gn(e,t,this.changes)}comparePoint(e,t){Gn(e,t,this.changes)}};return Ae.compare(e,t,i,r),r.changes}(this.decorations,this.updateDeco(),e.changes);return i=Eo.extendWithRanges(i,o),!!(7&this.flags||0!=i.length)&&(this.updateInner(i,e.startState.doc.length,n),e.transactions.length&&(this.lastUpdate=Date.now()),!0)}updateInner(e,t,i){this.view.viewState.mustMeasureContent=!0,this.updateChildren(e,t,i);let{observer:r}=this.view;r.ignore((()=>{this.dom.style.height=this.view.viewState.contentHeight/this.view.scaleY+"px",this.dom.style.flexBasis=this.minWidth?this.minWidth+"px":"";let e=Sn.chrome||Sn.ios?{node:r.selectionRange.focusNode,written:!1}:void 0;this.sync(this.view,e),this.flags&=-8,e&&(e.written||r.selectionRange.focusNode!=e.node)&&(this.forceSelection=!0),this.dom.style.height=""})),this.markedForComposition.forEach((e=>e.flags&=-9));let n=[];if(this.view.viewport.from||this.view.viewport.to=0?r[e]:null;if(!t)break;let o,s,O,a,{fromA:l,toA:h,fromB:c,toB:u}=t;if(i&&i.range.fromBc){let e=Dn.build(this.view.state.doc,c,i.range.fromB,this.decorations,this.dynamicDecorationMap),t=Dn.build(this.view.state.doc,i.range.toB,u,this.decorations,this.dynamicDecorationMap);s=e.breakAtStart,O=e.openStart,a=t.openEnd;let r=this.compositionView(i);t.breakAtStart?r.breakAfter=1:t.content.length&&r.merge(r.length,r.length,t.content[0],!1,t.openStart,0)&&(r.breakAfter=t.content[0].breakAfter,t.content.shift()),e.content.length&&r.merge(0,0,e.content[e.content.length-1],!0,0,e.openEnd)&&e.content.pop(),o=e.content.concat(r).concat(t.content)}else({content:o,breakAtStart:s,openStart:O,openEnd:a}=Dn.build(this.view.state.doc,c,u,this.decorations,this.dynamicDecorationMap));let{i:f,off:d}=n.findPos(h,1),{i:p,off:Q}=n.findPos(l,-1);ln(this,p,Q,f,d,o,s,O,a)}i&&this.fixCompositionDOM(i)}compositionView(e){let t=new yn(e.text.nodeValue);t.flags|=8;for(let{deco:i}of e.marks)t=new vn(i,[t],t.length);let i=new An;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=sn.get(e);i&&i!=t&&(i.dom=null),t.setDOM(e)},i=this.childPos(e.range.fromB,1),r=this.children[i.i];t(e.line,r);for(let n=e.marks.length-1;n>=-1;n--)i=r.childPos(i.off,1),r=r.children[i.i],t(n>=0?e.marks[n].node:e.text,r)}updateSelection(e=!1,t=!1){!e&&this.view.observer.selectionRange.focusNode||this.view.observer.readSelectionRange();let i=this.view.root.activeElement,r=i==this.dom,n=!r&&Wr(this.dom,this.view.observer.selectionRange)&&!(i&&this.dom.contains(i));if(!(r||t||n))return;let o=this.forceSelection;this.forceSelection=!1;let s=this.view.state.selection.main,O=this.moveToLine(this.domAtPos(s.anchor)),a=s.empty?O:this.moveToLine(this.domAtPos(s.head));if(Sn.gecko&&s.empty&&!this.hasComposition&&function(e){return 1==e.node.nodeType&&e.node.firstChild&&(0==e.offset||"false"==e.node.childNodes[e.offset-1].contentEditable)&&(e.offset==e.node.childNodes.length||"false"==e.node.childNodes[e.offset].contentEditable)}(O)){let e=document.createTextNode("");this.view.observer.ignore((()=>O.node.insertBefore(e,O.node.childNodes[O.offset]||null))),O=a=new nn(e,0),o=!0}let l=this.view.observer.selectionRange;!o&&l.focusNode&&(Ur(O.node,O.offset,l.anchorNode,l.anchorOffset)&&Ur(a.node,a.offset,l.focusNode,l.focusOffset)||this.suppressWidgetCursorChange(l,s))||(this.view.observer.ignore((()=>{Sn.android&&Sn.chrome&&this.dom.contains(l.focusNode)&&function(e,t){for(let i=e;i&&i!=t;i=i.assignedSlot||i.parentNode)if(1==i.nodeType&&"false"==i.contentEditable)return!0;return!1}(l.focusNode,this.dom)&&(this.dom.blur(),this.dom.focus({preventScroll:!0}));let e=Ar(this.view.root);if(e)if(s.empty){if(Sn.gecko){let e=function(e,t){return 1!=e.nodeType?0:(t&&"false"==e.childNodes[t-1].contentEditable?1:0)|(ts.head&&([O,a]=[a,O]),t.setEnd(a.node,a.offset),t.setStart(O.node,O.offset),e.removeAllRanges(),e.addRange(t)}n&&this.view.root.activeElement==this.dom&&(this.dom.blur(),i&&i.focus())})),this.view.observer.setSelectionRange(O,a)),this.impreciseAnchor=O.precise?null:new nn(l.anchorNode,l.anchorOffset),this.impreciseHead=a.precise?null:new nn(l.focusNode,l.focusOffset)}suppressWidgetCursorChange(e,t){return this.hasComposition&&t.empty&&!this.compositionBarrier.size&&Ur(e.focusNode,e.focusOffset,e.anchorNode,e.anchorOffset)&&this.posFromDOM(e.focusNode,e.focusOffset)==t.head}enforceCursorAssoc(){if(this.hasComposition)return;let{view:e}=this,t=e.state.selection.main,i=Ar(e.root),{anchorNode:r,anchorOffset:n}=e.observer.selectionRange;if(!(i&&t.empty&&t.assoc&&i.modify))return;let o=An.find(this,t.head);if(!o)return;let s=o.posAtStart;if(t.head==s||t.head==s+o.length)return;let O=this.coordsAt(t.head,-1),a=this.coordsAt(t.head,1);if(!O||!a||O.bottom>a.top)return;let l=this.domAtPos(t.head+t.assoc);i.collapse(l.node,l.offset),i.modify("move",t.assoc<0?"forward":"backward","lineboundary"),e.observer.readSelectionRange();let h=e.observer.selectionRange;e.docView.posFromDOM(h.anchorNode,h.anchorOffset)!=t.from&&i.collapse(r,n)}moveToLine(e){let t,i=this.dom;if(e.node!=i)return e;for(let r=e.offset;!t&&r=0;r--){let e=sn.get(i.childNodes[r]);e instanceof An&&(t=e.domAtPos(e.length))}return t?new nn(t.node,t.offset,!0):e}nearest(e){for(let t=e;t;){let e=sn.get(t);if(e&&e.rootView==this)return e;t=t.parentNode}return null}posFromDOM(e,t){let i=this.nearest(e);if(!i)throw new RangeError("Trying to find position for a DOM position outside of the document");return i.localPosFromDOM(e,t)+i.posAtStart}domAtPos(e){let{i:t,off:i}=this.childCursor().findPos(e,-1);for(;t=0;o--){let s=this.children[o],O=n-s.breakAfter,a=O-s.length;if(Oe||s.covers(1))&&(!i||s instanceof An&&!(i instanceof An&&t>=0))&&(i=s,r=a),n=a}return i?i.coordsAt(e-r,t):null}coordsForChar(e){let{i:t,off:i}=this.childPos(e,1),r=this.children[t];if(!(r instanceof An))return null;for(;r.children.length;){let{i:e,off:t}=r.childPos(i,1);for(;;e++){if(e==r.children.length)return null;if((r=r.children[e]).length)break}i=t}if(!(r instanceof yn))return null;let n=m(r.text,i);if(n==i)return null;let o=Fr(r.dom,i,n).getClientRects();for(let e=0;eMath.max(this.view.scrollDOM.clientWidth,this.minWidth)+1,s=-1,O=this.view.textDirection==In.LTR;for(let e=0,a=0;ar)break;if(e>=i){let i=l.dom.getBoundingClientRect();if(t.push(i.height),o){let t=l.dom.lastChild,r=t?Cr(t):[];if(r.length){let t=r[r.length-1],o=O?t.right-i.left:i.right-t.left;o>s&&(s=o,this.minWidth=n,this.minWidthFrom=e,this.minWidthTo=h)}}}e=h+l.breakAfter}return t}textDirectionAt(e){let{i:t}=this.childPos(e,1);return"rtl"==getComputedStyle(this.children[t].dom).direction?In.RTL:In.LTR}measureTextSize(){for(let e of this.children)if(e instanceof An){let t=e.measureTextSize();if(t)return t}let e,t,i,r=document.createElement("div");return r.className="cm-line",r.style.width="99999px",r.style.position="absolute",r.textContent="abc def ghi jkl mno pqr stu",this.view.observer.ignore((()=>{this.dom.appendChild(r);let n=Cr(r.firstChild)[0];e=r.getBoundingClientRect().height,t=n?n.width/27:7,i=n?n.height:e,r.remove()})),{lineHeight:e,charWidth:t,textHeight:i}}childCursor(e=this.length){let t=this.children.length;return t&&(e-=this.children[--t].length),new an(this.children,e,t)}computeBlockGapDeco(){let e=[],t=this.view.viewState;for(let i=0,r=0;;r++){let n=r==t.viewports.length?null:t.viewports[r],o=n?n.from-1:this.length;if(o>i){let r=(t.lineBlockAt(o).bottom-t.lineBlockAt(i).top)/this.view.scaleY;e.push(Un.replace({widget:new Mo(r),block:!0,inclusive:!0,isBlockGap:!0}).range(i,o))}if(!n)break;i=n.to+1}return Un.set(e)}updateDeco(){let e=1,t=this.view.state.facet(Zo).map((t=>(this.dynamicDecorationMap[e++]="function"==typeof t)?t(this.view):t)),i=!1,r=this.view.state.facet(Ao).map(((e,t)=>{let r="function"==typeof e;return r&&(i=!0),r?e(this.view):e}));for(r.length&&(this.dynamicDecorationMap[e++]=i,t.push(Ae.join(r))),this.decorations=[this.compositionBarrier,...t,this.computeBlockGapDeco(),this.view.viewState.lineGapDeco];e{n.point?i=!1:n.endSide<0&&ti.anchor?-1:1);if(!r)return;!i.empty&&(t=this.coordsAt(i.anchor,i.anchor>i.head?-1:1))&&(r={left:Math.min(r.left,t.left),top:Math.min(r.top,t.top),right:Math.max(r.right,t.right),bottom:Math.max(r.bottom,t.bottom)});let n=No(this.view),o={left:r.left-n.left,top:r.top-n.top,right:r.right+n.right,bottom:r.bottom+n.bottom},{offsetWidth:s,offsetHeight:O}=this.view.scrollDOM;!function(e,t,i,r,n,o,s,O){let a=e.ownerDocument,l=a.defaultView||window;for(let h=e,c=!1;h&&!c;)if(1==h.nodeType){let e,u=h==a.body,f=1,d=1;if(u)e=Dr(l);else{if(/^(fixed|sticky)$/.test(getComputedStyle(h).position)&&(c=!0),h.scrollHeight<=h.clientHeight&&h.scrollWidth<=h.clientWidth){h=h.assignedSlot||h.parentNode;continue}let t=h.getBoundingClientRect();({scaleX:f,scaleY:d}=Mr(h,t)),e={left:t.left,right:t.left+h.clientWidth*f,top:t.top,bottom:t.top+h.clientHeight*d}}let p=0,Q=0;if("nearest"==n)t.top0&&t.bottom>e.bottom+Q&&(Q=t.bottom-e.bottom+Q+s)):t.bottom>e.bottom&&(Q=t.bottom-e.bottom+s,i<0&&t.top-Q0&&t.right>e.right+p&&(p=t.right-e.right+p+o)):t.right>e.right&&(p=t.right-e.right+o,i<0&&t.lefte?t.left-e:Math.max(0,e-t.right)}function Lo(e,t){return t.top>e?t.top-e:Math.max(0,e-t.bottom)}function Ko(e,t){return e.topt.top+1}function Fo(e,t){return te.bottom?{top:e.top,left:e.left,right:e.right,bottom:t}:e}function Jo(e,t,i){let r,n,o,s,O,a,l,h,c=!1;for(let u=e.firstChild;u;u=u.nextSibling){let e=Cr(u);for(let f=0;fQ||s==Q&&o>p){r=u,n=d,o=p,s=Q;let O=Q?i0?f0)}0==p?i>d.bottom&&(!l||l.bottomd.top)&&(a=u,h=d):l&&Ko(l,d)?l=Ho(l,d.bottom):h&&Ko(h,d)&&(h=Fo(h,d.top))}}if(l&&l.bottom>=i?(r=O,n=l):h&&h.top<=i&&(r=a,n=h),!r)return{node:e,offset:0};let u=Math.max(n.left,Math.min(n.right,t));return 3==r.nodeType?es(r,u,i):c&&"false"!=r.contentEditable?Jo(r,u,i):{node:e,offset:Array.prototype.indexOf.call(e.childNodes,r)+(t>=(n.left+n.right)/2?1:0)}}function es(e,t,i){let r=e.nodeValue.length,n=-1,o=1e9,s=0;for(let O=0;Oi?l.top-i:i-l.bottom)-1;if(l.left-1<=t&&l.right+1>=t&&h=(l.left+l.right)/2,r=i;if((Sn.chrome||Sn.gecko)&&Fr(e,O).getBoundingClientRect().left==l.right&&(r=!i),h<=0)return{node:e,offset:O+(r?1:0)};n=O+(r?1:0),o=h}}}return{node:e,offset:n>-1?n:s>0?e.nodeValue.length:0}}function ts(e,t,i,r=-1){var n,o;let s,O=e.contentDOM.getBoundingClientRect(),a=O.top+e.viewState.paddingTop,{docHeight:l}=e.viewState,{x:h,y:c}=t,u=c-a;if(u<0)return 0;if(u>l)return e.state.doc.length;for(let t=e.viewState.heightOracle.textHeight/2,n=!1;s=e.elementAtHeight(u),s.type!=Cn.Text;)for(;u=r>0?s.bottom+t:s.top-t,!(u>=0&&u<=l);){if(n)return i?null:0;n=!0,r=-r}c=a+u;let f=s.from;if(fe.viewport.to)return e.viewport.to==e.state.doc.length?e.state.doc.length:i?null:is(e,O,s,h,c);let d=e.dom.ownerDocument,p=e.root.elementFromPoint?e.root:d,Q=p.elementFromPoint(h,c);Q&&!e.contentDOM.contains(Q)&&(Q=null),Q||(h=Math.max(O.left+1,Math.min(O.right-1,h)),Q=p.elementFromPoint(h,c),Q&&!e.contentDOM.contains(Q)&&(Q=null));let g,m=-1;if(Q&&0!=(null===(n=e.docView.nearest(Q))||void 0===n?void 0:n.isEditable))if(d.caretPositionFromPoint){let e=d.caretPositionFromPoint(h,c);e&&({offsetNode:g,offset:m}=e)}else if(d.caretRangeFromPoint){let t=d.caretRangeFromPoint(h,c);t&&(({startContainer:g,startOffset:m}=t),(!e.contentDOM.contains(g)||Sn.safari&&function(e,t,i){let r;if(3!=e.nodeType||t!=(r=e.nodeValue.length))return!1;for(let t=e.nextSibling;t;t=t.nextSibling)if(1!=t.nodeType||"BR"!=t.nodeName)return!1;return Fr(e,r-1,r).getBoundingClientRect().left>i}(g,m,h)||Sn.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():Fr(e,0,Math.max(e.nodeValue.length,1)).getBoundingClientRect()).left>5}(g,m,h))&&(g=void 0))}if(!g||!e.docView.dom.contains(g)){let t=An.find(e.docView,f);if(!t)return u>s.top+s.height/2?s.to:s.from;({node:g,offset:m}=Jo(t.dom,h,c))}let $=e.docView.nearest(g);if(!$)return null;if($.isWidget&&1==(null===(o=$.dom)||void 0===o?void 0:o.nodeType)){let e=$.dom.getBoundingClientRect();return t.y1.5*e.defaultLineHeight){let t=e.viewState.heightOracle.textHeight;o+=Math.floor((n-i.top-.5*(e.defaultLineHeight-t))/t)*e.viewState.heightOracle.lineLength}let s=e.state.sliceDoc(i.from,i.to);return i.from+Ie(s,o,e.state.tabSize)}function rs(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==Cn.Text))return e;return i}function ns(e,t,i,r){let n=e.state.doc.lineAt(t.head),o=e.bidiSpans(n),s=e.textDirectionAt(n.from);for(let O=t,a=null;;){let t=co(n,o,s,O,i),l=ho;if(!t){if(n.number==(i?e.state.doc.lines:1))return O;l="\n",n=e.state.doc.line(n.number+(i?1:-1)),o=e.bidiSpans(n),t=e.visualLineSide(n,!i)}if(a){if(!a(l))return O}else{if(!r)return t;a=r(l)}O=t}}function os(e,t,i){for(;;){let r=0;for(let n of e)n.between(t-1,t+1,((e,n,o)=>{if(t>e&&tt(e))),i.from,t.head>i.from?-1:1);return r==i.from?i:C.cursor(r,rnull)),Sn.gecko&&function(e){Vs.has(e)||(Vs.add(e),e.addEventListener("copy",(()=>{})),e.addEventListener("cut",(()=>{})))}(e.contentDOM.ownerDocument)}handleEvent(e){(function(e,t){if(!t.bubbles)return!0;if(t.defaultPrevented)return!1;for(let i,r=t.target;r!=e.contentDOM;r=r.parentNode)if(!r||11==r.nodeType||(i=sn.get(r))&&i.ignoreEvent(t))return!1;return!0})(this.view,e)&&!this.ignoreDuringComposition(e)&&("keydown"==e.type&&this.keydown(e)||this.runHandlers(e.type,e))}runHandlers(e,t){let i=this.handlers[e];if(i){for(let e of i.observers)e(this.view,t);for(let e of i.handlers){if(t.defaultPrevented)break;if(e(this.view,t)){t.preventDefault();break}}}}ensureHandlers(e){let t=function(e){let t=Object.create(null);function i(e){return t[e]||(t[e]={observers:[],handlers:[]})}for(let t of e){let e=t.spec;if(e&&e.domEventHandlers)for(let r in e.domEventHandlers){let n=e.domEventHandlers[r];n&&i(r).handlers.push(as(t.value,n))}if(e&&e.domEventObservers)for(let r in e.domEventObservers){let n=e.domEventObservers[r];n&&i(r).observers.push(as(t.value,n))}}for(let e in ds)i(e).handlers.push(ds[e]);for(let e in ps)i(e).observers.push(ps[e]);return t}(e),i=this.handlers,r=this.view.contentDOM;for(let e in t)if("scroll"!=e){let n=!t[e].handlers.length,o=i[e];o&&n!=!o.handlers.length&&(r.removeEventListener(e,this.handleEvent),o=null),o||r.addEventListener(e,this.handleEvent,{passive:n})}for(let e in i)"scroll"==e||t[e]||r.removeEventListener(e,this.handleEvent);this.handlers=t}keydown(e){if(this.lastKeyCode=e.keyCode,this.lastKeyTime=Date.now(),9==e.keyCode&&Date.now()t.keyCode==e.keyCode)))&&!e.ctrlKey||hs.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(e){let t=this.pendingIOSKey;return!!t&&!("Enter"==t.key&&e&&e.from0||!!(Sn.safari&&!Sn.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),this.draggedContent&&e.docChanged&&(this.draggedContent=this.draggedContent.map(e.changes)),e.transactions.length&&(this.lastKeyCode=this.lastSelectionTime=0)}destroy(){this.mouseSelection&&this.mouseSelection.destroy()}}function as(e,t){return(i,r)=>{try{return t.call(e,r,i)}catch(e){Po(i.state,e)}}}const ls=[{key:"Backspace",keyCode:8,inputType:"deleteContentBackward"},{key:"Enter",keyCode:13,inputType:"insertParagraph"},{key:"Enter",keyCode:13,inputType:"insertLineBreak"},{key:"Delete",keyCode:46,inputType:"deleteContentForward"}],hs="dthko",cs=[16,17,18,20,91,92,224,225];function us(e){return.7*Math.max(0,e)+8}class fs{constructor(e,t,i,r){this.view=e,this.startEvent=t,this.style=i,this.mustSelect=r,this.scrollSpeed={x:0,y:0},this.scrolling=-1,this.lastEvent=t,this.scrollParent=function(e){let t=e.ownerDocument;for(let i=e.parentNode;i&&i!=t.body;)if(1==i.nodeType){if(i.scrollHeight>i.clientHeight||i.scrollWidth>i.clientWidth)return i;i=i.assignedSlot||i.parentNode}else{if(11!=i.nodeType)break;i=i.host}return null}(e.contentDOM),this.atoms=e.state.facet(qo).map((t=>t(e)));let n=e.contentDOM.ownerDocument;n.addEventListener("mousemove",this.move=this.move.bind(this)),n.addEventListener("mouseup",this.up=this.up.bind(this)),this.extend=t.shiftKey,this.multiple=e.state.facet(ke.allowMultipleSelections)&&function(e,t){let i=e.state.facet(fo);return i.length?i[0](t):Sn.mac?t.metaKey:t.ctrlKey}(e,t),this.dragging=!(!function(e,t){let{main:i}=e.state.selection;if(i.empty)return!1;let r=Ar(e.root);if(!r||0==r.rangeCount)return!0;let n=r.getRangeAt(0).getClientRects();for(let e=0;e=t.clientX&&i.top<=t.clientY&&i.bottom>=t.clientY)return!0}return!1}(e,t)||1!=ws(t))&&null}start(e){!1===this.dragging&&this.select(e)}move(e){var t;if(0==e.buttons)return this.destroy();if(this.dragging||null==this.dragging&&function(e,t){return Math.max(Math.abs(e.clientX-t.clientX),Math.abs(e.clientY-t.clientY))}(this.startEvent,e)<10)return;this.select(this.lastEvent=e);let i=0,r=0,n=(null===(t=this.scrollParent)||void 0===t?void 0:t.getBoundingClientRect())||{left:0,top:0,right:this.view.win.innerWidth,bottom:this.view.win.innerHeight},o=No(this.view);e.clientX-o.left<=n.left+6?i=-us(n.left-e.clientX):e.clientX+o.right>=n.right-6&&(i=us(e.clientX-n.right)),e.clientY-o.top<=n.top+6?r=-us(n.top-e.clientY):e.clientY+o.bottom>=n.bottom-6&&(r=us(e.clientY-n.bottom)),this.setScrollSpeed(i,r)}up(e){null==this.dragging&&this.select(this.lastEvent),this.dragging||e.preventDefault(),this.destroy()}destroy(){this.setScrollSpeed(0,0);let e=this.view.contentDOM.ownerDocument;e.removeEventListener("mousemove",this.move),e.removeEventListener("mouseup",this.up),this.view.inputState.mouseSelection=this.view.inputState.draggedContent=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 ds=Object.create(null),ps=Object.create(null),Qs=Sn.ie&&Sn.ie_version<15||Sn.ios&&Sn.webkit_version<604;function gs(e,t){let i,{state:r}=e,n=1,o=r.toText(t),s=o.lines==r.selection.ranges.length;if(null!=ks&&r.selection.ranges.every((e=>e.empty))&&ks==o.toString()){let e=-1;i=r.changeByRange((i=>{let O=r.doc.lineAt(i.from);if(O.from==e)return{range:i};e=O.from;let a=r.toText((s?o.line(n++).text:t)+r.lineBreak);return{changes:{from:O.from,insert:a},range:C.cursor(i.from+a.length)}}))}else i=s?r.changeByRange((e=>{let t=o.line(n++);return{changes:{from:e.from,to:e.to,insert:t.text},range:C.cursor(e.from+t.length)}})):r.replaceSelection(o);e.dispatch(i,{userEvent:"input.paste",scrollIntoView:!0})}function ms(e,t,i,r){if(1==r)return C.cursor(t,i);if(2==r)return function(e,t,i=1){let r=e.charCategorizer(t),n=e.doc.lineAt(t),o=t-n.from;if(0==n.length)return C.cursor(t);0==o?i=1:o==n.length&&(i=-1);let s=o,O=o;i<0?s=m(n.text,o,!1):O=m(n.text,o);let a=r(n.text.slice(s,O));for(;s>0;){let e=m(n.text,s,!1);if(r(n.text.slice(e,s))!=a)break;s=e}for(;O{e.inputState.lastScrollTop=e.scrollDOM.scrollTop,e.inputState.lastScrollLeft=e.scrollDOM.scrollLeft},ds.keydown=(e,t)=>(e.inputState.setSelectionOrigin("select"),27==t.keyCode&&(e.inputState.lastEscPress=Date.now()),!1),ps.touchstart=(e,t)=>{e.inputState.lastTouchTime=Date.now(),e.inputState.setSelectionOrigin("select.pointer")},ps.touchmove=e=>{e.inputState.setSelectionOrigin("select.pointer")},ds.mousedown=(e,t)=>{if(e.observer.flush(),e.inputState.lastTouchTime>Date.now()-2e3)return!1;let i=null;for(let r of e.state.facet(Qo))if(i=r(e,t),i)break;if(i||0!=t.button||(i=function(e,t){let i=Ss(e,t),r=ws(t),n=e.state.selection;return{update(e){e.docChanged&&(i.pos=e.changes.mapPos(i.pos),n=n.map(e.changes))},get(t,o,s){let O,a=Ss(e,t),l=ms(e,a.pos,a.bias,r);if(i.pos!=a.pos&&!o){let t=ms(e,i.pos,i.bias,r),n=Math.min(t.from,l.from),o=Math.max(t.to,l.to);l=n1&&(O=function(e,t){for(let i=0;i=t)return C.create(e.ranges.slice(0,i).concat(e.ranges.slice(i+1)),e.mainIndex==i?0:e.mainIndex-(e.mainIndex>i?1:0))}return null}(n,a.pos))?O:s?n.addRange(l):C.create([l])}}}(e,t)),i){let r=!e.hasFocus;e.inputState.startMouseSelection(new fs(e,t,i,r)),r&&e.observer.ignore((()=>Kr(e.contentDOM)));let n=e.inputState.mouseSelection;if(n)return n.start(t),!1===n.dragging}return!1};let $s=(e,t)=>e>=t.top&&e<=t.bottom,bs=(e,t,i)=>$s(t,i)&&e>=i.left&&e<=i.right;function Xs(e,t,i,r){let n=An.find(e.docView,t);if(!n)return 1;let o=t-n.posAtStart;if(0==o)return 1;if(o==n.length)return-1;let s=n.coordsAt(o,-1);if(s&&bs(i,r,s))return-1;let O=n.coordsAt(o,1);return O&&bs(i,r,O)?1:s&&$s(r,s)?-1:1}function Ss(e,t){let i=e.posAtCoords({x:t.clientX,y:t.clientY},!1);return{pos:i,bias:Xs(e,i,t.clientX,t.clientY)}}const ys=Sn.ie&&Sn.ie_version<=11;let vs=null,xs=0,Ps=0;function ws(e){if(!ys)return e.detail;let t=vs,i=Ps;return vs=e,Ps=Date.now(),xs=!t||i>Date.now()-400&&Math.abs(t.clientX-e.clientX)<2&&Math.abs(t.clientY-e.clientY)<2?(xs+1)%3:1}function Ts(e,t,i,r){if(!i)return;let n=e.posAtCoords({x:t.clientX,y:t.clientY},!1),{draggedContent:o}=e.inputState,s=r&&o&&function(e,t){let i=e.state.facet(po);return i.length?i[0](t):Sn.mac?!t.altKey:!t.ctrlKey}(e,t)?{from:o.from,to:o.to}:null,O={from:n,insert:i},a=e.state.changes(s?[s,O]:O);e.focus(),e.dispatch({changes:a,selection:{anchor:a.mapPos(n,-1),head:a.mapPos(n,1)},userEvent:s?"move.drop":"input.drop"}),e.inputState.draggedContent=null}ds.dragstart=(e,t)=>{let{selection:{main:i}}=e.state;if(t.target.draggable){let r=e.docView.nearest(t.target);if(r&&r.isWidget){let e=r.posAtStart,t=e+r.length;(e>=i.to||t<=i.from)&&(i=C.range(e,t))}}let{inputState:r}=e;return r.mouseSelection&&(r.mouseSelection.dragging=!0),r.draggedContent=i,t.dataTransfer&&(t.dataTransfer.setData("Text",e.state.sliceDoc(i.from,i.to)),t.dataTransfer.effectAllowed="copyMove"),!1},ds.dragend=e=>(e.inputState.draggedContent=null,!1),ds.drop=(e,t)=>{if(!t.dataTransfer)return!1;if(e.state.readOnly)return!0;let i=t.dataTransfer.files;if(i&&i.length){let r=Array(i.length),n=0,o=()=>{++n==i.length&&Ts(e,t,r.filter((e=>null!=e)).join(e.state.lineBreak),!1)};for(let e=0;e{/[\x00-\x08\x0e-\x1f]{2}/.test(t.result)||(r[e]=t.result),o()},t.readAsText(i[e])}return!0}{let i=t.dataTransfer.getData("Text");if(i)return Ts(e,t,i,!0),!0}return!1},ds.paste=(e,t)=>{if(e.state.readOnly)return!0;e.observer.flush();let i=Qs?null:t.clipboardData;return i?(gs(e,i.getData("text/plain")||i.getData("text/uri-list")),!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(),gs(e,i.value)}),50)}(e),!1)};let ks=null;ds.copy=ds.cut=(e,t)=>{let{text:i,ranges:r,linewise:n}=function(e){let t=[],i=[],r=!1;for(let r of e.selection.ranges)r.empty||(t.push(e.sliceDoc(r.from,r.to)),i.push(r));if(!t.length){let n=-1;for(let{from:r}of e.selection.ranges){let o=e.doc.lineAt(r);o.number>n&&(t.push(o.text),i.push({from:o.from,to:Math.min(e.doc.length,o.to+1)})),n=o.number}r=!0}return{text:t.join(e.lineBreak),ranges:i,linewise:r}}(e.state);if(!i&&!n)return!1;ks=n?i:null,"cut"!=t.type||e.state.readOnly||e.dispatch({changes:r,scrollIntoView:!0,userEvent:"delete.cut"});let o=Qs?null:t.clipboardData;return o?(o.clearData(),o.setData("text/plain",i),!0):(function(e,t){let i=e.dom.parentNode;if(!i)return;let r=i.appendChild(document.createElement("textarea"));r.style.cssText="position: fixed; left: -10000px; top: 10px",r.value=t,r.focus(),r.selectionEnd=t.length,r.selectionStart=0,setTimeout((()=>{r.remove(),e.focus()}),50)}(e,i),!1)};const Ys=de.define();function Rs(e,t){let i=[];for(let r of e.facet(bo)){let n=r(e,t);n&&i.push(n)}return i?e.update({effects:i,annotations:Ys.of(!0)}):null}function _s(e){setTimeout((()=>{let t=e.hasFocus;if(t!=e.inputState.notifiedFocused){let i=Rs(e.state,t);i?e.dispatch(i):e.update([])}}),10)}ps.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),_s(e)},ps.blur=e=>{e.observer.clearSelectionRange(),_s(e)},ps.compositionstart=ps.compositionupdate=e=>{null==e.inputState.compositionFirstChange&&(e.inputState.compositionFirstChange=!0),e.inputState.composing<0&&(e.inputState.composing=0,e.docView.maybeCreateCompositionBarrier()&&(e.update([]),e.docView.clearCompositionBarrier()))},ps.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,Sn.chrome&&Sn.android?e.observer.flushSoon():e.inputState.compositionPendingChange?Promise.resolve().then((()=>e.observer.flush())):setTimeout((()=>{e.inputState.composing<0&&e.docView.hasComposition&&e.update([])}),50)},ps.contextmenu=e=>{e.inputState.lastContextMenu=Date.now()},ds.beforeinput=(e,t)=>{var i;let r;if(Sn.chrome&&Sn.android&&(r=ls.find((e=>e.inputType==t.inputType)))&&(e.observer.delayAndroidKey(r.key,r.keyCode),"Backspace"==r.key||"Delete"==r.key)){let t=(null===(i=window.visualViewport)||void 0===i?void 0:i.height)||0;setTimeout((()=>{var i;((null===(i=window.visualViewport)||void 0===i?void 0:i.height)||0)>t+10&&e.hasFocus&&(e.contentDOM.blur(),e.focus())}),100)}return Sn.ios&&"deleteContentForward"==t.inputType&&e.observer.flushSoon(),Sn.safari&&"insertText"==t.inputType&&e.inputState.composing>=0&&setTimeout((()=>ps.compositionend(e,t)),20),!1};const Vs=new Set;const Zs=["pre-wrap","normal","pre-line","break-spaces"];class As{constructor(e){this.lineWrapping=e,this.doc=o.empty,this.heightSamples={},this.lineHeight=14,this.charWidth=7,this.textHeight=14,this.lineLength=30,this.heightChanged=!1}heightForGap(e,t){let i=this.doc.lineAt(t).number-this.doc.lineAt(e).number+1;return this.lineWrapping&&(i+=Math.max(0,Math.ceil((t-e-i*this.lineLength*.5)/this.lineLength))),this.lineHeight*i}heightForLine(e){return this.lineWrapping?(1+Math.max(0,Math.ceil((e-this.lineLength)/(this.lineLength-5))))*this.lineHeight:this.lineHeight}setDoc(e){return this.doc=e,this}mustRefreshForWrapping(e){return Zs.indexOf(e)>-1!=this.lineWrapping}mustRefreshForHeights(e){let t=!1;for(let i=0;i-1,O=Math.round(t)!=Math.round(this.lineHeight)||this.lineWrapping!=s;if(this.lineWrapping=s,this.lineHeight=t,this.charWidth=i,this.textHeight=r,this.lineLength=n,O){this.heightSamples={};for(let e=0;e0}set outdated(e){this.flags=(e?2:0)|-3&this.flags}setHeight(e,t){this.height!=t&&(Math.abs(this.height-t)>.001&&(e.heightChanged=!0),this.height=t)}replace(e,t,i){return Us.of(i)}decomposeLeft(e,t){t.push(this)}decomposeRight(e,t){t.push(this)}applyChanges(e,t,i,r){let n=this,o=i.doc;for(let s=r.length-1;s>=0;s--){let{fromA:O,toA:a,fromB:l,toB:h}=r[s],c=n.lineAt(O,Cs.ByPosNoHeight,i.setDoc(t),0,0),u=c.to>=a?c:n.lineAt(a,Cs.ByPosNoHeight,i,0,0);for(h+=u.to-a,a=u.to;s>0&&c.from<=r[s-1].toA;)O=r[s-1].fromA,l=r[s-1].fromB,s--,O2*n){let n=e[t-1];n.break?e.splice(--t,1,n.left,null,n.right):e.splice(--t,1,n.left,n.right),i+=1+n.break,r-=n.size}else{if(!(n>2*r))break;{let t=e[i];t.break?e.splice(i,1,t.left,null,t.right):e.splice(i,1,t.left,t.right),i+=2+t.break,n-=t.size}}else if(r=n&&o(this.blockAt(0,i,r,n))}updateHeight(e,t=0,i=!1,r){return r&&r.from<=t&&r.more&&this.setHeight(e,r.heights[r.index++]),this.outdated=!1,this}toString(){return`block(${this.length})`}}class js extends Ns{constructor(e,t){super(e,t,null),this.collapsed=0,this.widgetHeight=0,this.breaks=0}blockAt(e,t,i,r){return new Ws(r,this.length,i,this.height,this.breaks)}replace(e,t,i){let r=i[0];return 1==i.length&&(r instanceof js||r instanceof Es&&4&r.flags)&&Math.abs(this.length-r.length)<10?(r instanceof Es?r=new js(r.length,this.height):r.height=this.height,this.outdated||(r.outdated=!1),r):Us.of(i)}updateHeight(e,t=0,i=!1,r){return r&&r.from<=t&&r.more?this.setHeight(e,r.heights[r.index++]):(i||this.outdated)&&this.setHeight(e,Math.max(this.widgetHeight,e.heightForLine(this.length-this.collapsed))+this.breaks*e.lineHeight),this.outdated=!1,this}toString(){return`line(${this.length}${this.collapsed?-this.collapsed:""}${this.widgetHeight?":"+this.widgetHeight:""})`}}class Es extends Us{constructor(e){super(e,0)}heightMetrics(e,t){let i,r=e.doc.lineAt(t).number,n=e.doc.lineAt(t+this.length).number,o=n-r+1,s=0;if(e.lineWrapping){let t=Math.min(this.height,e.lineHeight*o);i=t/o,this.length>o+1&&(s=(this.height-t)/(this.length-o-1))}else i=this.height/o;return{firstLine:r,lastLine:n,perLine:i,perChar:s}}blockAt(e,t,i,r){let{firstLine:n,lastLine:o,perLine:s,perChar:O}=this.heightMetrics(t,r);if(t.lineWrapping){let n=r+(e0){let e=i[i.length-1];e instanceof Es?i[i.length-1]=new Es(e.length+r):i.push(null,new Es(r-1))}if(e>0){let t=i[0];t instanceof Es?i[0]=new Es(e+t.length):i.unshift(new Es(e-1),null)}return Us.of(i)}decomposeLeft(e,t){t.push(new Es(e-1),null)}decomposeRight(e,t){t.push(null,new Es(this.length-e-1))}updateHeight(e,t=0,i=!1,r){let n=t+this.length;if(r&&r.from<=t+this.length&&r.more){let i=[],o=Math.max(t,r.from),s=-1;for(r.from>t&&i.push(new Es(r.from-t-1).updateHeight(e,t));o<=n&&r.more;){let t=e.doc.lineAt(o).length;i.length&&i.push(null);let n=r.heights[r.index++];-1==s?s=n:Math.abs(n-s)>=.001&&(s=-2);let O=new js(t,n);O.outdated=!1,i.push(O),o+=t+1}o<=n&&i.push(null,new Es(n-o).updateHeight(e,o));let O=Us.of(i);return(s<0||Math.abs(O.height-this.height)>=.001||Math.abs(s-this.heightMetrics(e,t).perLine)>=.001)&&(e.heightChanged=!0),O}return(i||this.outdated)&&(this.setHeight(e,e.heightForGap(t,t+this.length)),this.outdated=!1),this}toString(){return`gap(${this.length})`}}class zs extends Us{constructor(e,t,i){super(e.length+t+i.length,e.height+i.height,t|(e.outdated||i.outdated?2:0)),this.left=e,this.right=i,this.size=e.size+i.size}get break(){return 1&this.flags}blockAt(e,t,i,r){let n=i+this.left.height;return es))return a;let l=t==Cs.ByPosNoHeight?Cs.ByPosNoHeight:Cs.ByPos;return O?a.join(this.right.lineAt(s,l,i,o,s)):this.left.lineAt(s,l,i,r,n).join(a)}forEachLine(e,t,i,r,n,o){let s=r+this.left.height,O=n+this.left.length+this.break;if(this.break)e=O&&this.right.forEachLine(e,t,i,s,O,o);else{let a=this.lineAt(O,Cs.ByPos,i,r,n);e=e&&a.from<=t&&o(a),t>a.to&&this.right.forEachLine(a.to+1,t,i,s,O,o)}}replace(e,t,i){let r=this.left.length+this.break;if(tthis.left.length)return this.balanced(this.left,this.right.replace(e-r,t-r,i));let n=[];e>0&&this.decomposeLeft(e,n);let o=n.length;for(let e of i)n.push(e);if(e>0&&Gs(n,o-1),t=i&&t.push(null)),e>i&&this.right.decomposeLeft(e-i,t)}decomposeRight(e,t){let i=this.left.length,r=i+this.break;if(e>=r)return this.right.decomposeRight(e-r,t);e2*t.size||t.size>2*e.size?Us.of(this.break?[e,null,t]:[e,t]):(this.left=e,this.right=t,this.height=e.height+t.height,this.outdated=e.outdated||t.outdated,this.size=e.size+t.size,this.length=e.length+this.break+t.length,this)}updateHeight(e,t=0,i=!1,r){let{left:n,right:o}=this,s=t+n.length+this.break,O=null;return r&&r.from<=t+n.length&&r.more?O=n=n.updateHeight(e,t,i,r):n.updateHeight(e,t,i),r&&r.from<=s+o.length&&r.more?O=o=o.updateHeight(e,s,i,r):o.updateHeight(e,s,i),O?this.balanced(n,o):(this.height=this.left.height+this.right.height,this.outdated=!1,this)}toString(){return this.left+(this.break?" ":"-")+this.right}}function Gs(e,t){let i,r;null==e[t]&&(i=e[t-1])instanceof Es&&(r=e[t+1])instanceof Es&&e.splice(t-1,3,new Es(i.length+1+r.length))}class Ds{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 js?i.length+=e-this.pos:(e>this.pos||!this.isCovered)&&this.nodes.push(new js(e-this.pos,-1)),this.writtenTo=e,t>e&&(this.nodes.push(null),this.writtenTo++,this.lineStart=-1)}this.pos=t}point(e,t,i){if(e=5)&&this.addLineDeco(r,n,o)}else t>e&&this.span(e,t);this.lineEnd>-1&&this.lineEnd-1)return;let{from:e,to:t}=this.oracle.doc.lineAt(this.pos);this.lineStart=e,this.lineEnd=t,this.writtenToe&&this.nodes.push(new js(this.pos-e,-1)),this.writtenTo=this.pos}blankContent(e,t){let i=new Es(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 js)return e;let t=new js(0,-1);return this.nodes.push(t),t}addBlock(e){this.enterLine();let t=e.deco;t&&t.startSide>0&&!this.isCovered&&this.ensureLine(),this.nodes.push(e),this.writtenTo=this.pos=this.pos+e.length,t&&t.endSide>0&&(this.covering=e)}addLineDeco(e,t,i){let r=this.ensureLine();r.length+=i,r.collapsed+=i,r.widgetHeight=Math.max(r.widgetHeight,e),r.breaks+=t,this.writtenTo=this.pos=this.pos+i}finish(e){let t=0==this.nodes.length?null:this.nodes[this.nodes.length-1];!(this.lineStart>-1)||t instanceof js||this.isCovered?(this.writtenToi.clientHeight||i.scrollWidth>i.clientWidth)&&"visible"!=r.overflow){let r=i.getBoundingClientRect();o=Math.max(o,r.left),s=Math.min(s,r.right),O=Math.max(O,r.top),a=t==e.parentNode?r.bottom:Math.min(a,r.bottom)}t="absolute"==r.position||"fixed"==r.position?i.offsetParent:i.parentNode}else{if(11!=t.nodeType)break;t=t.host}return{left:o-i.left,right:Math.max(o,s)-i.left,top:O-(i.top+t),bottom:Math.max(O,a)-(i.top+t)}}function Is(e,t){let i=e.getBoundingClientRect();return{left:0,right:i.right-i.left,top:t,bottom:i.bottom-(i.top+t)}}class Ls{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 As(t),this.stateDeco=e.facet(Zo).filter((e=>"function"!=typeof e)),this.heightMap=Us.empty().applyChanges(this.stateDeco,o.empty,this.heightOracle.setDoc(e.doc),[new Eo(0,0,0,e.doc.length)]),this.viewport=this.getViewport(0,null),this.updateViewportLines(),this.updateForViewport(),this.lineGaps=this.ensureLineGaps([]),this.lineGapDeco=Un.set(this.lineGaps.map((e=>e.draw(this,!1)))),this.computeVisibleRanges()}updateForViewport(){let e=[this.viewport],{main:t}=this.state.selection;for(let i=0;i<=1;i++){let r=i?t.head:t.anchor;if(!e.some((({from:e,to:t})=>r>=e&&r<=t))){let{from:t,to:i}=this.lineBlockAt(r);e.push(new Hs(t,i))}}this.viewports=e.sort(((e,t)=>e.from-t.from)),this.scaler=this.heightMap.height<=7e6?iO:new rO(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:nO(e,this.scaler))}))}update(e,t=null){this.state=e.state;let i=this.stateDeco;this.stateDeco=this.state.facet(Zo).filter((e=>"function"!=typeof e));let r=e.changedRanges,n=Eo.extendWithRanges(r,function(e,t,i){let r=new Ms;return Ae.compare(e,t,i,r,0),r.changes}(i,this.stateDeco,e?e.changes:Y.empty(this.state.doc.length))),o=this.heightMap.height,s=this.scrolledToBottom?null:this.scrollAnchorAt(this.scrollTop);this.heightMap=this.heightMap.applyChanges(this.stateDeco,e.startState.doc,this.heightOracle.setDoc(this.state.doc),n),this.heightMap.height!=o&&(e.flags|=2),s?(this.scrollAnchorPos=e.changes.mapPos(s.from,-1),this.scrollAnchorHeight=s.top):(this.scrollAnchorPos=-1,this.scrollAnchorHeight=this.heightMap.height);let O=n.length?this.mapViewport(this.viewport,e.changes):this.viewport;(t&&(t.range.headO.to)||!this.viewportIsAppropriate(O))&&(O=this.getViewport(0,t));let a=!e.changes.empty||2&e.flags||O.from!=this.viewport.from||O.to!=this.viewport.to;this.viewport=O,this.updateForViewport(),a&&this.updateViewportLines(),(this.lineGaps.length||this.viewport.to-this.viewport.from>4e3)&&this.updateLineGaps(this.ensureLineGaps(this.mapLineGaps(this.lineGaps,e.changes))),e.flags|=this.computeVisibleRanges(),t&&(this.scrollTarget=t),!this.mustEnforceCursorAssoc&&e.selectionSet&&e.view.lineWrapping&&e.state.selection.main.empty&&e.state.selection.main.assoc&&!e.state.facet(So)&&(this.mustEnforceCursorAssoc=!0)}measure(e){let t=e.contentDOM,i=window.getComputedStyle(t),r=this.heightOracle,n=i.whiteSpace;this.defaultTextDirection="rtl"==i.direction?In.RTL:In.LTR;let s=this.heightOracle.mustRefreshForWrapping(n),O=t.getBoundingClientRect(),a=s||this.mustMeasureContent||this.contentDOMHeight!=O.height;this.contentDOMHeight=O.height,this.mustMeasureContent=!1;let l=0,h=0;if(O.width&&O.height){let{scaleX:e,scaleY:i}=Mr(t,O);(e>.005&&Math.abs(this.scaleX-e)>.005||i>.005&&Math.abs(this.scaleY-i)>.005)&&(this.scaleX=e,this.scaleY=i,l|=8,s=a=!0)}let c=(parseInt(i.paddingTop)||0)*this.scaleY,u=(parseInt(i.paddingBottom)||0)*this.scaleY;this.paddingTop==c&&this.paddingBottom==u||(this.paddingTop=c,this.paddingBottom=u,l|=10),this.editorWidth!=e.scrollDOM.clientWidth&&(r.lineWrapping&&(a=!0),this.editorWidth=e.scrollDOM.clientWidth,l|=8);let f=e.scrollDOM.scrollTop*this.scaleY;this.scrollTop!=f&&(this.scrollAnchorHeight=-1,this.scrollTop=f),this.scrolledToBottom=en(e.scrollDOM);let d=(this.printing?Is:Bs)(t,this.paddingTop),p=d.top-this.pixelViewport.top,Q=d.bottom-this.pixelViewport.bottom;this.pixelViewport=d;let g=this.pixelViewport.bottom>this.pixelViewport.top&&this.pixelViewport.right>this.pixelViewport.left;if(g!=this.inView&&(this.inView=g,g&&(a=!0)),!this.inView&&!this.scrollTarget)return 0;let m=O.width;if(this.contentDOMWidth==m&&this.editorHeight==e.scrollDOM.clientHeight||(this.contentDOMWidth=O.width,this.editorHeight=e.scrollDOM.clientHeight,l|=8),a){let t=e.docView.measureVisibleLineHeights(this.viewport);if(r.mustRefreshForHeights(t)&&(s=!0),s||r.lineWrapping&&Math.abs(m-this.contentDOMWidth)>r.charWidth){let{lineHeight:i,charWidth:o,textHeight:O}=e.docView.measureTextSize();s=i>0&&r.refresh(n,i,o,O,m/o,t),s&&(e.docView.minWidth=0,l|=8)}p>0&&Q>0?h=Math.max(p,Q):p<0&&Q<0&&(h=Math.min(p,Q)),r.heightChanged=!1;for(let i of this.viewports){let n=i.from==this.viewport.from?t:e.docView.measureVisibleLineHeights(i);this.heightMap=(s?Us.empty().applyChanges(this.stateDeco,o.empty,this.heightOracle,[new Eo(0,0,0,e.state.doc.length)]):this.heightMap).updateHeight(r,0,s,new qs(i.from,n))}r.heightChanged&&(l|=2)}let $=!this.viewportIsAppropriate(this.viewport,h)||this.scrollTarget&&(this.scrollTarget.range.headthis.viewport.to);return $&&(this.viewport=this.getViewport(h,this.scrollTarget)),this.updateForViewport(),(2&l||$)&&this.updateViewportLines(),(this.lineGaps.length||this.viewport.to-this.viewport.from>4e3)&&this.updateLineGaps(this.ensureLineGaps(s?[]:this.lineGaps,e)),l|=this.computeVisibleRanges(),this.mustEnforceCursorAssoc&&(this.mustEnforceCursorAssoc=!1,e.docView.enforceCursorAssoc()),l}get visibleTop(){return this.scaler.fromDOM(this.pixelViewport.top)}get visibleBottom(){return this.scaler.fromDOM(this.pixelViewport.bottom)}getViewport(e,t){let i=.5-Math.max(-.5,Math.min(.5,e/1e3/2)),r=this.heightMap,n=this.heightOracle,{visibleTop:o,visibleBottom:s}=this,O=new Hs(r.lineAt(o-1e3*i,Cs.ByHeight,n,0,0).from,r.lineAt(s+1e3*(1-i),Cs.ByHeight,n,0,0).to);if(t){let{head:e}=t.range;if(eO.to){let i,o=Math.min(this.editorHeight,this.pixelViewport.bottom-this.pixelViewport.top),s=r.lineAt(e,Cs.ByPos,n,0,0);i="center"==t.y?(s.top+s.bottom)/2-o/2:"start"==t.y||"nearest"==t.y&&e=s+Math.max(10,Math.min(i,250)))&&r>o-2e3&&n>1,o=r<<1;if(this.defaultTextDirection!=In.LTR&&!i)return[];let s=[],O=(r,o,a,l)=>{if(o-rr&&ee.from>=a.from&&e.to<=a.to&&Math.abs(e.from-r)e.fromt))));if(!u){if(oe.from<=o&&e.to>=o))){let e=t.moveToLineBoundary(C.cursor(o),!1,!0).head;e>r&&(o=e)}u=new Ls(r,o,this.gapSize(a,r,o,l))}s.push(u)};for(let e of this.viewportLines){if(e.lengthe.from&&O(e.from,n,e,t),se.draw(this,this.heightOracle.lineWrapping)))))}computeVisibleRanges(){let e=this.stateDeco;this.lineGaps.length&&(e=e.concat(this.lineGapDeco));let t=[];Ae.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))||nO(this.heightMap.lineAt(e,Cs.ByPos,this.heightOracle,0,0),this.scaler)}lineBlockAtHeight(e){return nO(this.heightMap.lineAt(this.scaler.fromDOM(e),Cs.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 nO(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 Hs{constructor(e,t){this.from=e,this.to=t}}function Js(e,t,i){let r=[],n=e,o=0;return Ae.spans(i,e,t,{span(){},point(e,t){e>n&&(r.push({from:n,to:e}),o+=e-n),n=t}},20),n=1)return t[t.length-1].to;let r=Math.floor(e*i);for(let e=0;;e++){let{from:i,to:n}=t[e],o=n-i;if(r<=o)return i+r;r-=o}}function tO(e,t){let i=0;for(let{from:r,to:n}of e.ranges){if(t<=n){i+=t-r;break}i+=n-r}return i/e.total}const iO={toDOM:e=>e,fromDOM:e=>e,scale:1};class rO{constructor(e,t,i){let r=0,n=0,o=0;this.viewports=i.map((({from:i,to:n})=>{let o=t.lineAt(i,Cs.ByPos,e,0,0).top,s=t.lineAt(n,Cs.ByPos,e,0,0).bottom;return r+=s-o,{from:i,to:n,top:o,bottom:s,domTop:0,domBottom:0}})),this.scale=(7e6-r)/(t.height-r);for(let e of this.viewports)e.domTop=o+(e.top-n)*this.scale,o=e.domBottom=e.domTop+(e.bottom-e.top),n=e.bottom}toDOM(e){for(let t=0,i=0,r=0;;t++){let n=tnO(e,t))):e._content)}const oO=j.define({combine:e=>e.join(" ")}),sO=j.define({combine:e=>e.indexOf(!0)>-1}),OO=Pr.newName(),aO=Pr.newName(),lO=Pr.newName(),hO={"&light":"."+aO,"&dark":"."+lO};function cO(e,t,i){return new Pr(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 uO=cO("."+OO,{"&":{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"},".cm-iso":{unicodeBidi:"isolate"},".cm-announced":{position:"fixed",top:"-10000px"},"@media print":{".cm-announced":{display:"none"}},"&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"}},hO);class fO{constructor(e,t){this.points=e,this.text="",this.lineSeparator=t.facet(ke.lineSeparator)}append(e){this.text+=e}lineBreak(){this.text+="￿"}readRange(e,t){if(!e)return this;let i=e.parentNode;for(let r=e;;){this.findPointBefore(i,r);let e=this.text.length;this.readNode(r);let n=r.nextSibling;if(n==t)break;let o=sn.get(r),s=sn.get(n);(o&&s?o.breakAfter:(o?o.breakAfter:jr(r))||jr(n)&&("BR"!=r.nodeName||r.cmIgnore)&&this.text.length>e)&&this.lineBreak(),r=n}return this.findPointBefore(i,t),this}readTextNode(e){let t=e.nodeValue;for(let i of this.points)i.node==e&&(i.pos=this.text.length+Math.min(i.offset,t.length));for(let i=0,r=this.lineSeparator?null:/\r\n?|\n/g;;){let n,o=-1,s=1;if(this.lineSeparator?(o=t.indexOf(this.lineSeparator,i),s=this.lineSeparator.length):(n=r.exec(t))&&(o=n.index,s=n[0].length),this.append(t.slice(i,o<0?t.length:o)),o<0)break;if(this.lineBreak(),s>1)for(let t of this.points)t.node==e&&t.pos>this.text.length&&(t.pos-=s-1);i=o+s}}readNode(e){if(e.cmIgnore)return;let t=sn.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+(dO(e,i.node,i.offset)?t:0))}}function dO(e,t,i){for(;;){if(!t||i-1)this.newSel=null;else if(t>-1&&(this.bounds=e.docView.domBoundsAround(t,i,0))){let t=n||o?[]:function(e){let t=[];if(e.root.activeElement!=e.contentDOM)return t;let{anchorNode:i,anchorOffset:r,focusNode:n,focusOffset:o}=e.observer.selectionRange;return i&&(t.push(new pO(i,r)),n==i&&o==r||t.push(new pO(n,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,r=2==e.length?e[1].pos:i;return i>-1&&r>-1?C.single(i+t,r+t):null}(t,this.bounds.from)}else{let t=e.observer.selectionRange,i=n&&n.node==t.focusNode&&n.offset==t.focusOffset||!qr(e.contentDOM,t.focusNode)?e.state.selection.main.head:e.docView.posFromDOM(t.focusNode,t.focusOffset),r=o&&o.node==t.anchorNode&&o.offset==t.anchorOffset||!qr(e.contentDOM,t.anchorNode)?e.state.selection.main.anchor:e.docView.posFromDOM(t.anchorNode,t.anchorOffset),s=e.viewport;if((Sn.ios||Sn.chrome)&&e.state.selection.main.empty&&i!=r&&(s.from>0||s.toDate.now()-100?e.inputState.lastKeyCode:-1;if(t.bounds){let{from:r,to:O}=t.bounds,a=n.from,l=null;(8===s||Sn.android&&t.text.length0&&O>0&&e.charCodeAt(s-1)==t.charCodeAt(O-1);)s--,O--;"end"==r&&(i-=s+Math.max(0,o-Math.min(s,O))-o);s=s?o-i:0,O=o+(O-s),s=o):O=O?o-i:0,s=o+(s-O),O=o);return{from:o,toA:s,toB:O}}(e.state.doc.sliceString(r,O,"￿"),t.text,a-r,l);h&&(Sn.chrome&&13==s&&h.toB==h.from+2&&"￿￿"==t.text.slice(h.from,h.toB)&&h.toB--,i={from:r+h.from,to:r+h.toA,insert:o.of(t.text.slice(h.from,h.toB).split("￿"))})}else r&&(!e.hasFocus&&e.state.facet(wo)||r.main.eq(n))&&(r=null);if(!i&&!r)return!1;if(!i&&t.typeOver&&!n.empty&&r&&r.main.empty?i={from:n.from,to:n.to,insert:e.state.doc.slice(n.from,n.to)}:i&&i.from>=n.from&&i.to<=n.to&&(i.from!=n.from||i.to!=n.to)&&n.to-n.from-(i.to-i.from)<=4?i={from:n.from,to:n.to,insert:e.state.doc.slice(n.from,i.from).append(i.insert).append(e.state.doc.slice(i.to,n.to))}:(Sn.mac||Sn.android)&&i&&i.from==i.to&&i.from==n.head-1&&/^\. ?$/.test(i.insert.toString())&&"off"==e.contentDOM.getAttribute("autocorrect")?(r&&2==i.insert.length&&(r=C.single(r.main.anchor-1,r.main.head-1)),i={from:n.from,to:n.to,insert:o.of([" "])}):Sn.chrome&&i&&i.from==i.to&&i.from==n.head&&"\n "==i.insert.toString()&&e.lineWrapping&&(r&&(r=C.single(r.main.anchor-1,r.main.head-1)),i={from:n.from,to:n.to,insert:o.of([" "])}),i){if(Sn.ios&&e.inputState.flushIOSKey(i))return!0;if(Sn.android&&(i.to==n.to&&(i.from==n.from||i.from==n.from-1&&" "==e.state.sliceDoc(i.from,n.from))&&1==i.insert.length&&2==i.insert.lines&&Hr(e.contentDOM,"Enter",13)||(i.from==n.from-1&&i.to==n.to&&0==i.insert.length||8==s&&i.insert.lengthn.head)&&Hr(e.contentDOM,"Backspace",8)||i.from==n.from&&i.to==n.to+1&&0==i.insert.length&&Hr(e.contentDOM,"Delete",46)))return!0;let t,o=i.insert.toString();e.inputState.composing>=0&&e.inputState.composing++;let O=()=>t||(t=function(e,t,i){let r,n=e.state,o=n.selection.main;if(t.from>=o.from&&t.to<=o.to&&t.to-t.from>=(o.to-o.from)/3&&(!i||i.main.empty&&i.main.from==t.from+t.insert.length)&&e.inputState.composing<0){let i=o.fromt.to?n.sliceDoc(t.to,o.to):"";r=n.replaceSelection(e.state.toText(i+t.insert.sliceString(0,void 0,e.state.lineBreak)+s))}else{let s=n.changes(t),O=i&&i.main.to<=s.newLength?i.main:void 0;if(n.selection.ranges.length>1&&e.inputState.composing>=0&&t.to<=o.to&&t.to>=o.to-10){let a,l=e.state.sliceDoc(t.from,t.to),h=i&&Bo(e,i.main.head);if(h){let e=t.insert.length-(t.to-t.from);a={from:h.from,to:h.to-e}}else a=e.state.doc.lineAt(o.head);let c=o.to-t.to,u=o.to-o.from;r=n.changeByRange((i=>{if(i.from==o.from&&i.to==o.to)return{changes:s,range:O||i.map(s)};let r=i.to-c,h=r-l.length;if(i.to-i.from!=u||e.state.sliceDoc(h,r)!=l||i.to>=a.from&&i.from<=a.to)return{range:i};let f=n.changes({from:h,to:r,insert:t.insert}),d=i.to-o.to;return{changes:f,range:O?C.range(Math.max(0,O.anchor+d),Math.max(0,O.head+d)):i.map(f)}}))}else r={changes:s,selection:O&&n.selection.replaceRange(O)}}let s="input.type";return(e.composing||e.inputState.compositionPendingChange&&e.inputState.compositionEndedAt>Date.now()-50)&&(e.inputState.compositionPendingChange=!1,s+=".compose",e.inputState.compositionFirstChange&&(s+=".start",e.inputState.compositionFirstChange=!1)),n.update(r,{userEvent:s,scrollIntoView:!0})}(e,i,r));return e.state.facet($o).some((t=>t(e,i.from,i.to,o,O)))||e.dispatch(O()),!0}if(r&&!r.main.eq(n)){let t=!1,i="select";return e.inputState.lastSelectionTime>Date.now()-50&&("select"==e.inputState.lastSelectionOrigin&&(t=!0),i=e.inputState.lastSelectionOrigin),e.dispatch({selection:r,scrollIntoView:t,userEvent:i}),!0}return!1}const mO={childList:!0,characterData:!0,subtree:!0,attributes:!0,characterDataOldValue:!0},$O=Sn.ie&&Sn.ie_version<=11;class bO{constructor(e){this.view=e,this.active=!1,this.selectionRange=new Br,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.intersecting=!1,this.gapIntersection=null,this.gaps=[],this.printQuery=null,this.parentCheck=-1,this.dom=e.contentDOM,this.observer=new MutationObserver((t=>{for(let e of t)this.queue.push(e);(Sn.ie&&Sn.ie_version<=11||Sn.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()})),$O&&(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),window.matchMedia&&(this.printQuery=window.matchMedia("print")),"function"==typeof ResizeObserver&&(this.resizeScroll=new ResizeObserver((()=>{var e;(null===(e=this.view.docView)||void 0===e?void 0:e.lastUpdate){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(e){("change"!=e.type||e.matches)&&(this.view.viewState.printing=!0,this.view.measure(),setTimeout((()=>{this.view.viewState.printing=!1,this.view.requestMeasure()}),500))}updateGaps(e){if(this.gapIntersection&&(e.length!=this.gaps.length||this.gaps.some(((t,i)=>t!=e[i])))){this.gapIntersection.disconnect();for(let t of e)this.gapIntersection.observe(t);this.gaps=e}}onSelectionChange(e){let t=this.selectionChanged;if(!this.readSelectionRange()||this.delayedAndroidKey)return;let{view:i}=this,r=this.selectionRange;if(i.state.facet(wo)?i.root.activeElement!=this.dom:!Wr(i.dom,r))return;let n=r.anchorNode&&i.docView.nearest(r.anchorNode);n&&n.ignoreEvent(e)?t||(this.selectionChanged=!1):(Sn.ie&&Sn.ie_version<=11||Sn.android&&Sn.chrome)&&!i.state.selection.main.empty&&r.focusNode&&Ur(r.focusNode,r.focusOffset,r.anchorNode,r.anchorOffset)?this.flushSoon():this.flush(!1)}readSelectionRange(){let{view:e}=this,t=Sn.safari&&11==e.root.nodeType&&function(e){let t=e.activeElement;for(;t&&t.shadowRoot;)t=t.shadowRoot.activeElement;return t}(this.dom.ownerDocument)==this.dom&&function(e){let t=null;function i(e){e.preventDefault(),e.stopImmediatePropagation(),t=e.getTargetRanges()[0]}if(e.contentDOM.addEventListener("beforeinput",i,!0),e.dom.ownerDocument.execCommand("indent"),e.contentDOM.removeEventListener("beforeinput",i,!0),!t)return null;let r=t.startContainer,n=t.startOffset,o=t.endContainer,s=t.endOffset,O=e.docView.domAtPos(e.state.selection.main.anchor);return Ur(O.node,O.offset,o,s)&&([r,n,o,s]=[o,s,r,n]),{anchorNode:r,anchorOffset:n,focusNode:o,focusOffset:s}}(this.view)||Ar(e.root);if(!t||this.selectionRange.eq(t))return!1;let i=Wr(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&&Hr(this.dom,e.key,e.keyCode))};this.flushingAndroidKey=this.view.win.requestAnimationFrame(e)}this.delayedAndroidKey&&"Enter"!=e||(this.delayedAndroidKey={key:e,keyCode:t,force:this.lastChange{this.delayedFlush=-1,this.flush()})))}forceFlush(){this.delayedFlush>=0&&(this.view.win.cancelAnimationFrame(this.delayedFlush),this.delayedFlush=-1),this.flush()}pendingRecords(){for(let e of this.observer.takeRecords())this.queue.push(e);return this.queue}processRecords(){let e=this.pendingRecords();e.length&&(this.queue=[]);let t=-1,i=-1,r=!1;for(let n of e){let e=this.readMutation(n);e&&(e.typeOver&&(r=!0),-1==t?({from:t,to:i}=e):(t=Math.min(e.from,t),i=Math.max(e.to,i)))}return{from:t,to:i,typeOver:r}}readChange(){let{from:e,to:t,typeOver:i}=this.processRecords(),r=this.selectionChanged&&Wr(this.dom,this.selectionRange);if(e<0&&!r)return null;e>-1&&(this.lastChange=Date.now()),this.view.inputState.lastFocusTime=0,this.selectionChanged=!1;let n=new QO(this.view,e,t,i);return this.view.docView.domChanged={newSel:n.newSel?n.newSel.main:null},n}flush(e=!0){if(this.delayedFlush>=0||this.delayedAndroidKey)return!1;e&&this.readSelectionRange();let t=this.readChange();if(!t)return this.view.requestMeasure(),!1;let i=this.view.state,r=gO(this.view,t);return this.view.state==i&&this.view.update([]),r}readMutation(e){let t=this.view.docView.nearest(e.target);if(!t||t.ignoreMutation(e))return null;if(t.markDirty("attributes"==e.type),"attributes"==e.type&&(t.flags|=4),"childList"==e.type){let i=XO(t,e.previousSibling||e.target.previousSibling,-1),r=XO(t,e.nextSibling||e.target.nextSibling,1);return{from:i?t.posAfter(i):t.posAtStart,to:r?t.posBefore(r):t.posAtEnd,typeOver:!1}}return"characterData"==e.type?{from:t.posAtStart,to:t.posAtEnd,typeOver:e.target.nodeValue==e.oldValue}:null}setWindow(e){e!=this.win&&(this.removeWindowListeners(this.win),this.win=e,this.addWindowListeners(this.win))}addWindowListeners(e){e.addEventListener("resize",this.onResize),this.printQuery?this.printQuery.addEventListener("change",this.onPrint):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),this.printQuery?this.printQuery.removeEventListener("change",this.onPrint):e.removeEventListener("beforeprint",this.onPrint),e.document.removeEventListener("selectionchange",this.onSelectionChange)}destroy(){var e,t,i;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();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 XO(e,t,i){for(;t;){let r=sn.get(t);if(r&&r.parent==e)return r;let n=t.parentNode;t=n!=e.dom?n:i>0?t.nextSibling:t.previousSibling}return null}class SO{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.className="cm-announced",this.announceDOM.setAttribute("aria-live","polite"),this.dom=document.createElement("div"),this.dom.appendChild(this.announceDOM),this.dom.appendChild(this.scrollDOM),e.parent&&e.parent.appendChild(this.dom);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 Fs(e.state||ke.create(e)),e.scrollTo&&e.scrollTo.is(xo)&&(this.viewState.scrollTarget=e.scrollTo.value.clip(this.viewState.state)),this.plugins=this.state.facet(ko).map((e=>new Ro(e)));for(let e of this.plugins)e.update(this);this.observer=new bO(this),this.inputState=new Os(this),this.inputState.ensureHandlers(this.plugins),this.docView=new Go(this),this.mountStyles(),this.updateAttrs(),this.updateState=0,this.requestMeasure()}dispatch(...e){let t=1==e.length&&e[0]instanceof me?e:1==e.length&&Array.isArray(e[0])?e[0]:[this.state.update(...e)];this.dispatchTransactions(t,this)}update(e){if(0!=this.updateState)throw new Error("Calls to EditorView.update are not allowed while an update is in progress");let t,i=!1,r=!1,n=this.state;for(let t of e){if(t.startState!=n)throw new RangeError("Trying to update state with a transaction that doesn't start from the previous state.");n=t.state}if(this.destroyed)return void(this.viewState.state=n);let o=this.hasFocus,s=0,O=null;e.some((e=>e.annotation(Ys)))?(this.inputState.notifiedFocused=o,s=1):o!=this.inputState.notifiedFocused&&(this.inputState.notifiedFocused=o,O=Rs(n,o),O||(s=1));let a=this.observer.delayedAndroidKey,l=null;if(a?(this.observer.clearDelayedAndroidKey(),l=this.observer.readChange(),(l&&!this.state.doc.eq(n.doc)||!this.state.selection.eq(n.selection))&&(l=null)):this.observer.clear(),n.facet(ke.phrases)!=this.state.facet(ke.phrases))return this.setState(n);t=zo.create(this,n,e),t.flags|=s;let h=this.viewState.scrollTarget;try{this.updateState=2;for(let t of e){if(h&&(h=h.map(t.changes)),t.scrollIntoView){let{main:e}=t.state.selection;h=new vo(e.empty?e:C.cursor(e.head,e.head>e.anchor?-1:1))}for(let e of t.effects)e.is(xo)&&(h=e.value.clip(this.state))}this.viewState.update(t,h),this.bidiCache=xO.update(this.bidiCache,t.changes),t.empty||(this.updatePlugins(t),this.inputState.update(t)),i=this.docView.update(t),this.state.facet(jo)!=this.styleModules&&this.mountStyles(),r=this.updateAttrs(),this.showAnnouncements(e),this.docView.updateSelection(i,e.some((e=>e.isUserEvent("select.pointer"))))}finally{this.updateState=0}if(t.startState.facet(oO)!=t.state.facet(oO)&&(this.viewState.mustMeasureContent=!0),(i||r||h||this.viewState.mustEnforceCursorAssoc||this.viewState.mustMeasureContent)&&this.requestMeasure(),i&&this.docViewUpdate(),!t.empty)for(let e of this.state.facet(mo))try{e(t)}catch(e){Po(this.state,e,"update listener")}(O||l)&&Promise.resolve().then((()=>{O&&this.state==O.startState&&this.dispatch(O),l&&!gO(this,l)&&a.force&&Hr(this.contentDOM,a.key,a.keyCode)}))}setState(e){if(0!=this.updateState)throw new Error("Calls to EditorView.setState are not allowed while an update is in progress");if(this.destroyed)return void(this.viewState.state=e);this.updateState=2;let t=this.hasFocus;try{for(let e of this.plugins)e.destroy(this);this.viewState=new Fs(e),this.plugins=e.facet(ko).map((e=>new Ro(e))),this.pluginMap.clear();for(let e of this.plugins)e.update(this);this.docView.destroy(),this.docView=new Go(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(ko),i=e.state.facet(ko);if(t!=i){let r=[];for(let n of i){let i=t.indexOf(n);if(i<0)r.push(new Ro(n));else{let t=this.plugins[i];t.mustUpdate=e,r.push(t)}}for(let t of this.plugins)t.mustUpdate!=e&&t.destroy(this);this.plugins=r,this.pluginMap.clear()}else for(let t of this.plugins)t.mustUpdate=e;for(let e=0;e-1&&this.win.cancelAnimationFrame(this.measureScheduled),this.observer.delayedAndroidKey)return this.measureScheduled=-1,void this.requestMeasure();this.measureScheduled=0,e&&this.observer.forceFlush();let t=null,i=this.scrollDOM,r=i.scrollTop*this.scaleY,{scrollAnchorPos:n,scrollAnchorHeight:o}=this.viewState;Math.abs(r-this.viewState.scrollTop)>1&&(o=-1),this.viewState.scrollAnchorHeight=-1;try{for(let e=0;;e++){if(o<0)if(en(i))n=-1,o=this.viewState.heightMap.height;else{let e=this.viewState.scrollAnchorAt(r);n=e.from,o=e.top}this.updateState=1;let s=this.viewState.measure(this);if(!s&&!this.measureRequests.length&&null==this.viewState.scrollTarget)break;if(e>5){console.warn(this.measureRequests.length?"Measure loop restarted more than 5 times":"Viewport failed to stabilize");break}let O=[];4&s||([this.measureRequests,O]=[O,this.measureRequests]);let a=O.map((e=>{try{return e.read(this)}catch(e){return Po(this.state,e),vO}})),l=zo.create(this,this.state,[]),h=!1;l.flags|=s,t?t.flags|=s:t=l,this.updateState=2,l.empty||(this.updatePlugins(l),this.inputState.update(l),this.updateAttrs(),h=this.docView.update(l),h&&this.docViewUpdate());for(let e=0;e1||e<-1){r+=e,i.scrollTop=r/this.scaleY,o=-1;continue}}}break}}}finally{this.updateState=0,this.measureScheduled=-1}if(t&&!t.empty)for(let e of this.state.facet(mo))e(t)}get themeClasses(){return OO+" "+(this.state.facet(sO)?lO:aO)+" "+this.state.facet(oO)}updateAttrs(){let e=PO(this,_o,{class:"cm-editor"+(this.hasFocus?" cm-focused ":" ")+this.themeClasses}),t={spellcheck:"false",autocorrect:"off",autocapitalize:"off",translate:"no",contenteditable:this.state.facet(wo)?"true":"false",class:"cm-content",style:`${Sn.tabSize}: ${this.state.tabSize}`,role:"textbox","aria-multiline":"true"};this.state.readOnly&&(t["aria-readonly"]="true"),PO(this,Vo,t);let i=this.observer.ignore((()=>{let i=Vn(this.contentDOM,this.contentAttrs,t),r=Vn(this.dom,this.editorAttrs,e);return i||r}));return this.editorAttrs=e,this.contentAttrs=t,i}showAnnouncements(e){let t=!0;for(let i of e)for(let e of i.effects)e.is(SO.announce)&&(t&&(this.announceDOM.textContent=""),t=!1,this.announceDOM.appendChild(document.createElement("div")).textContent=e.value)}mountStyles(){this.styleModules=this.state.facet(jo);let e=this.state.facet(SO.cspNonce);Pr.mount(this.root,this.styleModules.concat(uO).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 ss(this,e,ns(this,e,t,i))}moveByGroup(e,t){return ss(this,e,ns(this,e,t,(t=>function(e,t,i){let r=e.state.charCategorizer(t),n=r(i);return e=>{let t=r(e);return n==xe.Space&&(n=t),n==t}}(this,e.head,t))))}visualLineSide(e,t){let i=this.bidiSpans(e),r=this.textDirectionAt(e.from),n=i[t?i.length-1:0];return C.cursor(n.side(t,r)+e.from,n.forward(!t,r)?1:-1)}moveToLineBoundary(e,t,i=!0){return function(e,t,i,r){let n=rs(e,t.head),o=r&&n.type==Cn.Text&&(e.lineWrapping||n.widgetLineBreaks)?e.coordsAtPos(t.assoc<0&&t.head>n.from?t.head-1:t.head):null;if(o){let t=e.dom.getBoundingClientRect(),r=e.textDirectionAt(n.from),s=e.posAtCoords({x:i==(r==In.LTR)?t.right-1:t.left+1,y:(o.top+o.bottom)/2});if(null!=s)return C.cursor(s,i?-1:1)}return C.cursor(i?n.to:n.from,i?-1:1)}(this,e,t,i)}moveVertically(e,t,i){return ss(this,e,function(e,t,i,r){let n=t.head,o=i?1:-1;if(n==(i?e.state.doc.length:0))return C.cursor(n,t.assoc);let s,O=t.goalColumn,a=e.contentDOM.getBoundingClientRect(),l=e.coordsAtPos(n,t.assoc||-1),h=e.documentTop;if(l)null==O&&(O=l.left-a.left),s=o<0?l.top:l.bottom;else{let t=e.viewState.lineBlockAt(n);null==O&&(O=Math.min(a.right-a.left,e.defaultCharacterWidth*(n-t.from))),s=(o<0?t.top:t.bottom)+h}let c=a.left+O,u=null!=r?r:e.viewState.heightOracle.textHeight>>1;for(let t=0;;t+=10){let i=s+(u+t)*o,r=ts(e,{x:c,y:i},!1,o);if(ia.bottom||(o<0?rn)){let t=e.docView.coordsForChar(r),n=!t||i0)}coordsForChar(e){return this.readMeasured(),this.docView.coordsForChar(e)}get defaultCharacterWidth(){return this.viewState.heightOracle.charWidth}get defaultLineHeight(){return this.viewState.heightOracle.lineHeight}get textDirection(){return this.viewState.defaultTextDirection}textDirectionAt(e){return!this.state.facet(Xo)||ethis.viewport.to?this.textDirection:(this.readMeasured(),this.docView.textDirectionAt(e))}get lineWrapping(){return this.viewState.heightOracle.lineWrapping}bidiSpans(e){if(e.length>yO)return lo(e.length);let t,i=this.textDirectionAt(e.from);for(let r of this.bidiCache)if(r.from==e.from&&r.dir==i&&(r.fresh||oo(r.isolates,t=Co(this,e))))return r.order;t||(t=Co(this,e));let r=function(e,t,i){if(!e)return[new no(0,0,t==Kn?1:0)];if(t==Ln&&!i.length&&!ro.test(e))return lo(e.length);if(i.length)for(;e.length>so.length;)so[so.length]=256;let r=[],n=t==Ln?0:1;return ao(e,n,n,i,0,e.length,r),r}(e.text,i,t);return this.bidiCache.push(new xO(e.from,e.to,i,t,!0,r)),r}get hasFocus(){var e;return(this.dom.ownerDocument.hasFocus()||Sn.safari&&(null===(e=this.inputState)||void 0===e?void 0:e.lastContextMenu)>Date.now()-3e4)&&this.root.activeElement==this.contentDOM}focus(){this.observer.ignore((()=>{Kr(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.docView.destroy(),this.dom.remove(),this.observer.destroy(),this.measureScheduled>-1&&this.win.cancelAnimationFrame(this.measureScheduled),this.destroyed=!0}static scrollIntoView(e,t={}){return xo.of(new vo("number"==typeof e?C.cursor(e):e,t.y,t.x,t.yMargin,t.xMargin))}scrollSnapshot(){let{scrollTop:e,scrollLeft:t}=this.scrollDOM,i=this.viewState.scrollAnchorAt(e);return xo.of(new vo(C.cursor(i.from),"start","start",i.top-e,t,!0))}static domEventHandlers(e){return Yo.define((()=>({})),{eventHandlers:e})}static domEventObservers(e){return Yo.define((()=>({})),{eventObservers:e})}static theme(e,t){let i=Pr.newName(),r=[oO.of(i),jo.of(cO(`.${i}`,e))];return t&&t.dark&&r.push(sO.of(!0)),r}static baseTheme(e){return ee.lowest(jo.of(cO("."+OO,e,hO)))}static findFromDOM(e){var t;let i=e.querySelector(".cm-content"),r=i&&sn.get(i)||sn.get(e);return(null===(t=null==r?void 0:r.rootView)||void 0===t?void 0:t.view)||null}}SO.styleModule=jo,SO.inputHandler=$o,SO.scrollHandler=yo,SO.focusChangeEffect=bo,SO.perLineTextDirection=Xo,SO.exceptionSink=go,SO.updateListener=mo,SO.editable=wo,SO.mouseSelectionStyle=Qo,SO.dragMovesSelection=po,SO.clickAddsSelectionRange=fo,SO.decorations=Zo,SO.outerDecorations=Ao,SO.atomicRanges=qo,SO.bidiIsolatedRanges=Wo,SO.scrollMargins=Uo,SO.darkTheme=sO,SO.cspNonce=j.define({combine:e=>e.length?e[0]:""}),SO.contentAttributes=Vo,SO.editorAttributes=_o,SO.lineWrapping=SO.contentAttributes.of({class:"cm-lineWrapping"}),SO.announce=ge.define();const yO=4096,vO={};class xO{constructor(e,t,i,r,n,o){this.from=e,this.to=t,this.dir=i,this.isolates=r,this.fresh=n,this.order=o}static update(e,t){if(t.empty&&!e.some((e=>e.fresh)))return e;let i=[],r=e.length?e[e.length-1].dir:In.LTR;for(let n=Math.max(0,e.length-10);n=0;n--){let t=r[n],o="function"==typeof t?t(e):t;o&&Yn(o,i)}return i}const wO=Sn.mac?"mac":Sn.windows?"win":Sn.linux?"linux":"key";function TO(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 kO=ee.default(SO.domEventHandlers({keydown:(e,t)=>ZO(_O(t.state),e,t,"editor")})),YO=j.define({enables:kO}),RO=new WeakMap;function _O(e){let t=e.facet(YO),i=RO.get(t);return i||RO.set(t,i=function(e,t=wO){let i=Object.create(null),r=Object.create(null),n=(e,t)=>{let i=r[e];if(null==i)r[e]=t;else if(i!=t)throw new Error("Key binding "+e+" is used both as a regular binding and as a multi-stroke prefix")},o=(e,r,o,s,O)=>{var a,l;let h=i[e]||(i[e]=Object.create(null)),c=r.split(/ (?!$)/).map((e=>function(e,t){const i=e.split(/-(?!$)/);let r,n,o,s,O=i[i.length-1];"Space"==O&&(O=" ");for(let e=0;e{let r=VO={view:t,prefix:i,scope:e};return setTimeout((()=>{VO==r&&(VO=null)}),4e3),!0}]})}let u=c.join(" ");n(u,!1);let f=h[u]||(h[u]={preventDefault:!1,stopPropagation:!1,run:(null===(l=null===(a=h._any)||void 0===a?void 0:a.run)||void 0===l?void 0:l.slice())||[]});o&&f.run.push(o),s&&(f.preventDefault=!0),O&&(f.stopPropagation=!0)};for(let r of e){let e=r.scope?r.scope.split(" "):["editor"];if(r.any)for(let t of e){let e=i[t]||(i[t]=Object.create(null));e._any||(e._any={preventDefault:!1,stopPropagation:!1,run:[]});for(let t in e)e[t].run.push(r.any)}let n=r[t]||r.key;if(n)for(let t of e)o(t,n,r.run,r.preventDefault,r.stopPropagation),r.shift&&o(t,"Shift-"+n,r.shift,r.preventDefault,r.stopPropagation)}return i}(t.reduce(((e,t)=>e.concat(t)),[]))),i}let VO=null;function ZO(e,t,i,r){let n=function(e){var t=!(Rr&&e.metaKey&&e.shiftKey&&!e.ctrlKey&&!e.altKey||_r&&e.shiftKey&&e.key&&1==e.key.length||"Unidentified"==e.key)&&e.key||(e.shiftKey?Yr:kr)[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=x(y(n,0))==n.length&&" "!=n,s="",O=!1,a=!1,l=!1;VO&&VO.view==i&&VO.scope==r&&(s=VO.prefix+" ",cs.indexOf(t.keyCode)<0&&(a=!0,VO=null));let h,c,u=new Set,f=e=>{if(e){for(let r of e.run)if(!u.has(r)&&(u.add(r),r(i,t)))return e.stopPropagation&&(l=!0),!0;e.preventDefault&&(e.stopPropagation&&(l=!0),a=!0)}return!1},d=e[r];return d&&(f(d[s+TO(n,t,!o)])?O=!0:o&&(t.altKey||t.metaKey||t.ctrlKey)&&!(Sn.windows&&t.ctrlKey&&t.altKey)&&(h=kr[t.keyCode])&&h!=n?(f(d[s+TO(h,t,!0)])||t.shiftKey&&(c=Yr[t.keyCode])!=n&&c!=h&&f(d[s+TO(c,t,!1)]))&&(O=!0):o&&t.shiftKey&&f(d[s+TO(n,t,!0)])&&(O=!0),!O&&f(d._any)&&(O=!0)),a&&(O=!0),O&&l&&t.stopPropagation(),O}class AO{constructor(e,t,i,r,n){this.className=e,this.left=t,this.top=i,this.width=r,this.height=n}draw(){let e=document.createElement("div");return e.className=this.className,this.adjust(e),e}update(e,t){return t.className==this.className&&(this.adjust(e),!0)}adjust(e){e.style.left=this.left+"px",e.style.top=this.top+"px",null!=this.width&&(e.style.width=this.width+"px"),e.style.height=this.height+"px"}eq(e){return this.left==e.left&&this.top==e.top&&this.width==e.width&&this.height==e.height&&this.className==e.className}static forRange(e,t,i){if(i.empty){let r=e.coordsAtPos(i.head,i.assoc||1);if(!r)return[];let n=qO(e);return[new AO(t,r.left-n.left,r.top-n.top,null,r.bottom-r.top)]}return function(e,t,i){if(i.to<=e.viewport.from||i.from>=e.viewport.to)return[];let r=Math.max(i.from,e.viewport.from),n=Math.min(i.to,e.viewport.to),o=e.textDirection==In.LTR,s=e.contentDOM,O=s.getBoundingClientRect(),a=qO(e),l=s.querySelector(".cm-line"),h=l&&window.getComputedStyle(l),c=O.left+(h?parseInt(h.paddingLeft)+Math.min(0,parseInt(h.textIndent)):0),u=O.right-(h?parseInt(h.paddingRight):0),f=rs(e,r),d=rs(e,n),p=f.type==Cn.Text?f:null,Q=d.type==Cn.Text?d:null;if(p&&(e.lineWrapping||f.widgetLineBreaks)&&(p=WO(e,r,p)),Q&&(e.lineWrapping||d.widgetLineBreaks)&&(Q=WO(e,n,Q)),p&&Q&&p.from==Q.from)return m($(i.from,i.to,p));{let t=p?$(i.from,null,p):b(f,!1),r=Q?$(null,i.to,Q):b(d,!0),n=[];return(p||f).to<(Q||d).from-(p&&Q?1:0)||f.widgetLineBreaks>1&&t.bottom+e.defaultLineHeight/2l&&r.from=o)break;O>n&&a(Math.max(e,n),null==t&&e<=l,Math.min(O,o),null==i&&O>=h,s.dir)}if(n=r.to+1,n>=o)break}return 0==O.length&&a(l,null==t,h,null==i,e.textDirection),{top:n,bottom:s,horizontal:O}}function b(e,t){let i=O.top+(t?e.top:e.bottom);return{top:i,bottom:i,horizontal:[]}}}(e,t,i)}}function qO(e){let t=e.scrollDOM.getBoundingClientRect();return{left:(e.textDirection==In.LTR?t.left:t.right-e.scrollDOM.clientWidth*e.scaleX)-e.scrollDOM.scrollLeft*e.scaleX,top:t.top-e.scrollDOM.scrollTop*e.scaleY}}function WO(e,t,i){let r=C.cursor(t);return{from:Math.max(i.from,e.moveToLineBoundary(r,!1,!0).from),to:Math.min(i.to,e.moveToLineBoundary(r,!0,!0).from),type:Cn.Text}}class CO{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(UO)!=e.state.facet(UO)&&this.setOrder(e.state),(this.layer.update(e,this.dom)||e.geometryChanged)&&(this.scale(),e.view.requestMeasure(this.measureReq))}docViewUpdate(e){!1!==this.layer.updateOnDocViewUpdate&&e.requestMeasure(this.measureReq)}setOrder(e){let t=0,i=e.facet(UO);for(;t!function(e,t){return e.constructor==t.constructor&&e.eq(t)}(e,this.drawn[t])))){let t=this.dom.firstChild,i=0;for(let r of e)r.update&&t&&r.constructor&&this.drawn[i].constructor&&r.update(t,this.drawn[i])?(t=t.nextSibling,i++):this.dom.insertBefore(r.draw(),t);for(;t;){let e=t.nextSibling;t.remove(),t=e}this.drawn=e}}destroy(){this.layer.destroy&&this.layer.destroy(this.dom,this.view),this.dom.remove()}}const UO=j.define();function NO(e){return[Yo.define((t=>new CO(t,e))),UO.of(e)]}const jO=!Sn.ios,EO=j.define({combine:e=>Ye(e,{cursorBlinkRate:1200,drawRangeCursor:!0},{cursorBlinkRate:(e,t)=>Math.min(e,t),drawRangeCursor:(e,t)=>e||t})});function zO(e={}){return[EO.of(e),DO,BO,LO,So.of(!0)]}function GO(e){return e.startState.facet(EO)!=e.state.facet(EO)}const DO=NO({above:!0,markers(e){let{state:t}=e,i=t.facet(EO),r=[];for(let n of t.selection.ranges){let o=n==t.selection.main;if(n.empty?!o||jO:i.drawRangeCursor){let t=o?"cm-cursor cm-cursor-primary":"cm-cursor cm-cursor-secondary",i=n.empty?n:C.cursor(n.head,n.head>n.anchor?-1:1);for(let n of AO.forRange(e,t,i))r.push(n)}}return r},update(e,t){e.transactions.some((e=>e.selection))&&(t.style.animationName="cm-blink"==t.style.animationName?"cm-blink2":"cm-blink");let i=GO(e);return i&&MO(e.state,t),e.docChanged||e.selectionSet||i},mount(e,t){MO(t.state,e)},class:"cm-cursorLayer"});function MO(e,t){t.style.animationDuration=e.facet(EO).cursorBlinkRate+"ms"}const BO=NO({above:!1,markers:e=>e.state.selection.ranges.map((t=>t.empty?[]:AO.forRange(e,"cm-selectionBackground",t))).reduce(((e,t)=>e.concat(t))),update:(e,t)=>e.docChanged||e.selectionSet||e.viewportChanged||GO(e),class:"cm-selectionLayer"}),IO={".cm-line":{"& ::selection":{backgroundColor:"transparent !important"},"&::selection":{backgroundColor:"transparent !important"}}};jO&&(IO[".cm-line"].caretColor="transparent !important",IO[".cm-content"]={caretColor:"transparent !important"});const LO=ee.highest(SO.theme(IO));function KO(e,t,i,r,n){t.lastIndex=0;for(let o,s=e.iterRange(i,r),O=i;!s.next().done;O+=s.value.length)if(!s.lineBreak)for(;o=t.exec(s.value);)n(O+o.index,o)}class FO{constructor(e){const{regexp:t,decoration:i,decorate:r,boundary:n,maxLength:o=1e3}=e;if(!t.global)throw new RangeError("The regular expression given to MatchDecorator should have its 'g' flag set");if(this.regexp=t,r)this.addMatch=(e,t,i,n)=>r(n,i,i+e[0].length,e,t);else if("function"==typeof i)this.addMatch=(e,t,r,n)=>{let o=i(e,t,r);o&&n(r,r+e[0].length,o)};else{if(!i)throw new RangeError("Either 'decorate' or 'decoration' should be provided to MatchDecorator");this.addMatch=(e,t,r,n)=>n(r,r+e[0].length,i)}this.boundary=n,this.maxLength=o}createDeco(e){let t=new qe,i=t.add.bind(t);for(let{from:t,to:r}of function(e,t){let i=e.visibleRanges;if(1==i.length&&i[0].from==e.viewport.from&&i[0].to==e.viewport.to)return i;let r=[];for(let{from:n,to:o}of i)n=Math.max(e.state.doc.lineAt(n).from,n-t),o=Math.min(e.state.doc.lineAt(o).to,o+t),r.length&&r[r.length-1].to>=n?r[r.length-1].to=o:r.push({from:n,to:o});return r}(e,this.maxLength))KO(e.state.doc,this.regexp,t,r,((t,r)=>this.addMatch(r,e,t,i)));return t.finish()}updateDeco(e,t){let i=1e9,r=-1;return e.docChanged&&e.changes.iterChanges(((t,n,o,s)=>{s>e.view.viewport.from&&o1e3?this.createDeco(e.view):r>-1?this.updateRange(e.view,t.map(e.changes),i,r):t}updateRange(e,t,i,r){for(let n of e.visibleRanges){let o=Math.max(n.from,i),s=Math.min(n.to,r);if(s>o){let i=e.state.doc.lineAt(o),r=i.toi.from;o--)if(this.boundary.test(i.text[o-1-i.from])){O=o;break}for(;sh.push(i.range(e,t));if(i==r)for(this.regexp.lastIndex=O-i.from;(l=this.regexp.exec(i.text))&&l.indexthis.addMatch(i,e,t,c)));t=t.update({filterFrom:O,filterTo:a,filter:(e,t)=>ea,add:h})}}return t}}const HO=null!=/x/.unicode?"gu":"g",JO=new RegExp("[\0-\b\n--Ÿ­؜​‎‏\u2028\u2029‭‮⁦⁧⁩\ufeff-]",HO),ea={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 ta=null;const ia=j.define({combine(e){let t=Ye(e,{render:null,specialChars:JO,addSpecialChars:null});return(t.replaceTabs=!function(){var e;if(null==ta&&"undefined"!=typeof document&&document.body){let t=document.body.style;ta=null!=(null!==(e=t.tabSize)&&void 0!==e?e:t.MozTabSize)}return ta||!1}())&&(t.specialChars=new RegExp("\t|"+t.specialChars.source,HO)),t.addSpecialChars&&(t.specialChars=new RegExp(t.specialChars.source+"|"+t.addSpecialChars.source,HO)),t}});function ra(e={}){return[ia.of(e),na||(na=Yo.fromClass(class{constructor(e){this.view=e,this.decorations=Un.none,this.decorationCache=Object.create(null),this.decorator=this.makeDecorator(e.state.facet(ia)),this.decorations=this.decorator.createDeco(e)}makeDecorator(e){return new FO({regexp:e.specialChars,decoration:(t,i,r)=>{let{doc:n}=i.state,o=y(t[0],0);if(9==o){let e=n.lineAt(r),t=i.state.tabSize,o=Be(e.text,t,r-e.from);return Un.replace({widget:new sa((t-o%t)*this.view.defaultCharacterWidth/this.view.scaleX)})}return this.decorationCache[o]||(this.decorationCache[o]=Un.replace({widget:new oa(e,o)}))},boundary:e.replaceTabs?void 0:/[^]/})}update(e){let t=e.state.facet(ia);e.startState.facet(ia)!=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 na=null;class oa extends Wn{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")+" "+(ea[this.code]||"0x"+this.code.toString(16)),r=this.options.render&&this.options.render(this.code,i,t);if(r)return r;let n=document.createElement("span");return n.textContent=t,n.title=i,n.setAttribute("aria-label",i),n.className="cm-specialChar",n}ignoreEvent(){return!1}}class sa extends Wn{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 Oa extends Wn{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?Cr(e.firstChild):[];if(!t.length)return null;let i=window.getComputedStyle(e.parentNode),r=Gr(t[0],"rtl"!=i.direction),n=parseInt(i.lineHeight);return r.bottom-r.top>1.5*n?{left:r.left,right:r.right,top:r.top,bottom:r.top+n}:r}ignoreEvent(){return!1}}function aa(e){return Yo.fromClass(class{constructor(t){this.view=t,this.placeholder=e?Un.set([Un.widget({widget:new Oa(e),side:1}).range(0)]):Un.none}get decorations(){return this.view.state.doc.length?Un.none:this.placeholder}},{decorations:e=>e.decorations})}const la=2e3;function ha(e,t){let i=e.posAtCoords({x:t.clientX,y:t.clientY},!1),r=e.state.doc.lineAt(i),n=i-r.from,o=n>la?-1:n==r.length?function(e,t){let i=e.coordsAtPos(e.viewport.from);return i?Math.round(Math.abs((i.left-t)/e.defaultCharacterWidth)):-1}(e,t.clientX):Be(r.text,e.state.tabSize,i-r.from);return{line:r.number,col:o,off:n}}function ca(e,t){let i=ha(e,t),r=e.state.selection;return i?{update(e){if(e.docChanged){let t=e.changes.mapPos(e.startState.doc.line(i.line).from),n=e.state.doc.lineAt(t);i={line:n.number,col:i.col,off:Math.min(i.off,n.length)},r=r.map(e.changes)}},get(t,n,o){let s=ha(e,t);if(!s)return r;let O=function(e,t,i){let r=Math.min(t.line,i.line),n=Math.max(t.line,i.line),o=[];if(t.off>la||i.off>la||t.col<0||i.col<0){let s=Math.min(t.off,i.off),O=Math.max(t.off,i.off);for(let t=r;t<=n;t++){let i=e.doc.line(t);i.length<=O&&o.push(C.range(i.from+s,i.to+O))}}else{let s=Math.min(t.col,i.col),O=Math.max(t.col,i.col);for(let t=r;t<=n;t++){let i=e.doc.line(t),r=Ie(i.text,s,e.tabSize,!0);if(r<0)o.push(C.cursor(i.to));else{let t=Ie(i.text,O,e.tabSize);o.push(C.range(i.from+r,i.from+t))}}}return o}(e.state,i,s);return O.length?o?C.create(O.concat(r.ranges)):C.create(O):r}}:null}function ua(e){let t=(null==e?void 0:e.eventFilter)||(e=>e.altKey&&0==e.button);return SO.mouseSelectionStyle.of(((e,i)=>t(i)?ca(e,i):null))}const fa="-10000px";class da{constructor(e,t,i,r){this.facet=t,this.createTooltipView=i,this.removeTooltipView=r,this.input=e.state.facet(t),this.tooltips=this.input.filter((e=>e));let n=null;this.tooltipViews=this.tooltips.map((e=>n=i(e,n)))}update(e,t){var i;let r=e.state.facet(this.facet),n=r.filter((e=>e));if(r===this.input){for(let t of this.tooltipViews)t.update&&t.update(e);return!1}let o=[],s=t?[]:null;for(let i=0;it[i]=e)),t.length=s.length),this.input=r,this.tooltips=n,this.tooltipViews=o,!0}}function pa(e){let{win:t}=e;return{top:0,left:0,bottom:t.innerHeight,right:t.innerWidth}}const Qa=j.define({combine:e=>{var t,i,r;return{position:Sn.ios?"absolute":(null===(t=e.find((e=>e.position)))||void 0===t?void 0:t.position)||"fixed",parent:(null===(i=e.find((e=>e.parent)))||void 0===i?void 0:i.parent)||null,tooltipSpace:(null===(r=e.find((e=>e.tooltipSpace)))||void 0===r?void 0:r.tooltipSpace)||pa}}}),ga=new WeakMap,ma=Yo.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(Qa);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.resizeObserver="function"==typeof ResizeObserver?new ResizeObserver((()=>this.measureSoon())):null,this.manager=new da(e,Xa,((e,t)=>this.createTooltip(e,t)),(e=>{this.resizeObserver&&this.resizeObserver.unobserve(e.dom),e.dom.remove()})),this.above=this.manager.tooltips.map((e=>!!e.above)),this.intersectionObserver="function"==typeof IntersectionObserver?new IntersectionObserver((e=>{Date.now()>this.lastTransaction-50&&e.length>0&&e[e.length-1].intersectionRatio<1&&this.measureSoon()}),{threshold:[1]}):null,this.observeIntersection(),e.win.addEventListener("resize",this.measureSoon=this.measureSoon.bind(this)),this.maybeMeasure()}createContainer(){this.parent?(this.container=document.createElement("div"),this.container.style.position="relative",this.container.className=this.view.themeClasses,this.parent.appendChild(this.container)):this.container=this.view.dom}observeIntersection(){if(this.intersectionObserver){this.intersectionObserver.disconnect();for(let e of this.manager.tooltipViews)this.intersectionObserver.observe(e.dom)}}measureSoon(){this.measureTimeout<0&&(this.measureTimeout=setTimeout((()=>{this.measureTimeout=-1,this.maybeMeasure()}),50))}update(e){e.transactions.length&&(this.lastTransaction=Date.now());let t=this.manager.update(e,this.above);t&&this.observeIntersection();let i=t||e.geometryChanged,r=e.state.facet(Qa);if(r.position!=this.position&&!this.madeAbsolute){this.position=r.position;for(let e of this.manager.tooltipViews)e.dom.style.position=this.position;i=!0}if(r.parent!=this.parent){this.parent&&this.container.remove(),this.parent=r.parent,this.createContainer();for(let e of this.manager.tooltipViews)this.container.appendChild(e.dom);i=!0}else this.parent&&this.view.themeClasses!=this.classes&&(this.classes=this.container.className=this.view.themeClasses);i&&this.maybeMeasure()}createTooltip(e,t){let i=e.create(this.view),r=t?t.dom:null;if(i.dom.classList.add("cm-tooltip"),e.arrow&&!i.dom.querySelector(".cm-tooltip > .cm-tooltip-arrow")){let e=document.createElement("div");e.className="cm-tooltip-arrow",i.dom.insertBefore(e,r)}return i.dom.style.position=this.position,i.dom.style.top=fa,i.dom.style.left="0px",this.container.insertBefore(i.dom,r),i.mount&&i.mount(this.view),this.resizeObserver&&this.resizeObserver.observe(i.dom),i}destroy(){var e,t,i;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.resizeObserver)||void 0===t||t.disconnect(),null===(i=this.intersectionObserver)||void 0===i||i.disconnect(),clearTimeout(this.measureTimeout)}readMeasure(){let e=this.view.dom.getBoundingClientRect(),t=1,i=1,r=!1;if("fixed"==this.position&&this.manager.tooltipViews.length){let{dom:e}=this.manager.tooltipViews[0];if(Sn.gecko)r=e.offsetParent!=this.container.ownerDocument.body;else if(e.style.top==fa&&"0px"==e.style.left){let t=e.getBoundingClientRect();r=Math.abs(t.top+1e4)>1||Math.abs(t.left)>1}}if(r||"absolute"==this.position)if(this.parent){let e=this.parent.getBoundingClientRect();e.width&&e.height&&(t=e.width/this.parent.offsetWidth,i=e.height/this.parent.offsetHeight)}else({scaleX:t,scaleY:i}=this.view.viewState);return{editor:e,parent:this.parent?this.container.getBoundingClientRect():e,pos:this.manager.tooltips.map(((e,t)=>{let i=this.manager.tooltipViews[t];return i.getCoords?i.getCoords(e.pos):this.view.coordsAtPos(e.pos)})),size:this.manager.tooltipViews.map((({dom:e})=>e.getBoundingClientRect())),space:this.view.state.facet(Qa).tooltipSpace(this.view),scaleX:t,scaleY:i,makeAbsolute:r}}writeMeasure(e){var t;if(e.makeAbsolute){this.madeAbsolute=!0,this.position="absolute";for(let e of this.manager.tooltipViews)e.dom.style.position="absolute"}let{editor:i,space:r,scaleX:n,scaleY:o}=e,s=[];for(let O=0;O=Math.min(i.bottom,r.bottom)||c.rightMath.min(i.right,r.right)+.1){h.style.top=fa;continue}let f=a.arrow?l.dom.querySelector(".cm-tooltip-arrow"):null,d=f?7:0,p=u.right-u.left,Q=null!==(t=ga.get(l))&&void 0!==t?t:u.bottom-u.top,g=l.offset||ba,m=this.view.textDirection==In.LTR,$=u.width>r.right-r.left?m?r.left:r.right-u.width:m?Math.min(c.left-(f?14:0)+g.x,r.right-p):Math.max(r.left,c.left-p+(f?14:0)-g.x),b=this.above[O];!a.strictSide&&(b?c.top-(u.bottom-u.top)-g.yr.bottom)&&b==r.bottom-c.bottom>c.top-r.top&&(b=this.above[O]=!b);let X=(b?c.top-r.top:r.bottom-c.bottom)-d;if(X$&&e.topS&&(S=b?e.top-Q-2-d:e.bottom+d+2);if("absolute"==this.position?(h.style.top=(S-e.parent.top)/o+"px",h.style.left=($-e.parent.left)/n+"px"):(h.style.top=S/o+"px",h.style.left=$/n+"px"),f){let e=c.left+(m?g.x:-g.x)-($+14-7);f.style.left=e/n+"px"}!0!==l.overlap&&s.push({left:$,top:S,right:y,bottom:S+Q}),h.classList.toggle("cm-tooltip-above",b),h.classList.toggle("cm-tooltip-below",!b),l.positioned&&l.positioned(e.space)}}maybeMeasure(){if(this.manager.tooltips.length&&(this.view.inView&&this.view.requestMeasure(this.measureReq),this.inView!=this.view.inView&&(this.inView=this.view.inView,!this.inView)))for(let e of this.manager.tooltipViews)e.dom.style.top=fa}},{eventObservers:{scroll(){this.maybeMeasure()}}}),$a=SO.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"}}}),ba={x:0,y:0},Xa=j.define({enables:[ma,$a]}),Sa=j.define({combine:e=>e.reduce(((e,t)=>e.concat(t)),[])});class ya{static create(e){return new ya(e)}constructor(e){this.view=e,this.mounted=!1,this.dom=document.createElement("div"),this.dom.classList.add("cm-tooltip-hover"),this.manager=new da(e,Sa,((e,t)=>this.createHostedView(e,t)),(e=>e.dom.remove()))}createHostedView(e,t){let i=e.create(this.view);return i.dom.classList.add("cm-tooltip-section"),this.dom.insertBefore(i.dom,t?t.dom.nextSibling:this.dom.firstChild),this.mounted&&i.mount&&i.mount(this.view),i}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)}passProp(e){let t;for(let i of this.manager.tooltipViews){let r=i[e];if(void 0!==r)if(void 0===t)t=r;else if(t!==r)return}return t}get offset(){return this.passProp("offset")}get getCoords(){return this.passProp("getCoords")}get overlap(){return this.passProp("overlap")}get resize(){return this.passProp("resize")}}const va=Xa.compute([Sa],(e=>{let t=e.facet(Sa);return 0===t.length?null:{pos:Math.min(...t.map((e=>e.pos))),end:Math.max(...t.map((e=>{var t;return null!==(t=e.end)&&void 0!==t?t:e.pos}))),create:ya.create,above:t[0].above,arrow:t.some((e=>e.arrow))}}));class xa{constructor(e,t,i,r,n){this.view=e,this.source=t,this.field=i,this.setHover=r,this.hoverTime=n,this.hoverTimeout=-1,this.restartTimeout=-1,this.pending=null,this.lastMove={x:0,y:0,target:e.dom,time:0},this.checkHover=this.checkHover.bind(this),e.dom.addEventListener("mouseleave",this.mouseleave=this.mouseleave.bind(this)),e.dom.addEventListener("mousemove",this.mousemove=this.mousemove.bind(this))}update(){this.pending&&(this.pending=null,clearTimeout(this.restartTimeout),this.restartTimeout=setTimeout((()=>this.startHover()),20))}get active(){return this.view.state.field(this.field)}checkHover(){if(this.hoverTimeout=-1,this.active.length)return;let e=Date.now()-this.lastMove.time;ei.bottom||t.xi.right+e.defaultCharacterWidth)return;let o=e.bidiSpans(e.state.doc.lineAt(r)).find((e=>e.from<=r&&e.to>=r)),s=o&&o.dir==In.RTL?-1:1;n=t.x{this.pending==t&&(this.pending=null,!i||Array.isArray(i)&&!i.length||e.dispatch({effects:this.setHover.of(Array.isArray(i)?i:[i])}))}),(t=>Po(e.state,t,"hover tooltip")))}else!o||Array.isArray(o)&&!o.length||e.dispatch({effects:this.setHover.of(Array.isArray(o)?o:[o])})}get tooltip(){let e=this.view.plugin(ma),t=e?e.manager.tooltips.findIndex((e=>e.create==ya.create)):-1;return t>-1?e.manager.tooltipViews[t]:null}mousemove(e){var t,i;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{active:r,tooltip:n}=this;if(r.length&&n&&!function(e,t){let i=e.getBoundingClientRect();return t.clientX>=i.left-4&&t.clientX<=i.right+4&&t.clientY>=i.top-4&&t.clientY<=i.bottom+4}(n.dom,e)||this.pending){let{pos:n}=r[0]||this.pending,o=null!==(i=null===(t=r[0])||void 0===t?void 0:t.end)&&void 0!==i?i:n;(n==o?this.view.posAtCoords(this.lastMove)==n:function(e,t,i,r,n,o){let s=e.scrollDOM.getBoundingClientRect(),O=e.documentTop+e.documentPadding.top+e.contentHeight;if(s.left>r||s.rightn||Math.min(s.bottom,O)=t&&a<=i}(this.view,n,o,e.clientX,e.clientY))||(this.view.dispatch({effects:this.setHover.of([])}),this.pending=null)}}mouseleave(e){clearTimeout(this.hoverTimeout),this.hoverTimeout=-1;let{active:t}=this;if(t.length){let{tooltip:t}=this;t&&t.dom.contains(e.relatedTarget)?this.watchTooltipLeave(t.dom):this.view.dispatch({effects:this.setHover.of([])})}}watchTooltipLeave(e){let t=i=>{e.removeEventListener("mouseleave",t),this.active.length&&!this.view.dom.contains(i.relatedTarget)&&this.view.dispatch({effects:this.setHover.of([])})};e.addEventListener("mouseleave",t)}destroy(){clearTimeout(this.hoverTimeout),this.view.dom.removeEventListener("mouseleave",this.mouseleave),this.view.dom.removeEventListener("mousemove",this.mousemove)}}function Pa(e,t){let i=e.plugin(ma);if(!i)return null;let r=i.manager.tooltips.indexOf(t);return r<0?null:i.manager.tooltipViews[r]}const wa=ge.define(),Ta=j.define({combine(e){let t,i;for(let r of e)t=t||r.topContainer,i=i||r.bottomContainer;return{topContainer:t,bottomContainer:i}}});function ka(e,t){let i=e.plugin(Ya),r=i?i.specs.indexOf(t):-1;return r>-1?i.panels[r]:null}const Ya=Yo.fromClass(class{constructor(e){this.input=e.state.facet(Va),this.specs=this.input.filter((e=>e)),this.panels=this.specs.map((t=>t(e)));let t=e.state.facet(Ta);this.top=new Ra(e,!0,t.topContainer),this.bottom=new Ra(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(Ta);this.top.container!=t.topContainer&&(this.top.sync([]),this.top=new Ra(e.view,!0,t.topContainer)),this.bottom.container!=t.bottomContainer&&(this.bottom.sync([]),this.bottom=new Ra(e.view,!1,t.bottomContainer)),this.top.syncClasses(),this.bottom.syncClasses();let i=e.state.facet(Va);if(i!=this.input){let t=i.filter((e=>e)),r=[],n=[],o=[],s=[];for(let i of t){let t,O=this.specs.indexOf(i);O<0?(t=i(e.view),s.push(t)):(t=this.panels[O],t.update&&t.update(e)),r.push(t),(t.top?n:o).push(t)}this.specs=t,this.panels=r,this.top.sync(n),this.bottom.sync(o);for(let e of s)e.dom.classList.add("cm-panel"),e.mount&&e.mount()}else for(let t of this.panels)t.update&&t.update(e)}destroy(){this.top.sync([]),this.bottom.sync([])}},{provide:e=>SO.scrollMargins.of((t=>{let i=t.plugin(e);return i&&{top:i.top.scrollMargin(),bottom:i.bottom.scrollMargin()}}))});class Ra{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=_a(e);e=e.nextSibling}else this.dom.insertBefore(t.dom,e);for(;e;)e=_a(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 _a(e){let t=e.nextSibling;return e.remove(),t}const Va=j.define({enables:Ya});class Za extends Re{compare(e){return this==e||this.constructor==e.constructor&&this.eq(e)}eq(e){return!1}destroy(e){}}Za.prototype.elementClass="",Za.prototype.toDOM=void 0,Za.prototype.mapMode=T.TrackBefore,Za.prototype.startSide=Za.prototype.endSide=-1,Za.prototype.point=!0;const Aa=j.define(),qa=j.define();const Wa=j.define({combine:e=>e.some((e=>e))});function Ca(e){let t=[Ua];return e&&!1===e.fixed&&t.push(Wa.of(!0)),t}const Ua=Yo.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(qa).map((t=>new za(e,t)));for(let e of this.gutters)this.dom.appendChild(e.dom);this.fixed=!e.state.facet(Wa),this.fixed&&(this.dom.style.position="sticky"),this.syncGutters(!1),e.scrollDOM.insertBefore(this.dom,e.contentDOM)}update(e){if(this.updateGutters(e)){let t=this.prevViewport,i=e.view.viewport,r=Math.min(t.to,i.to)-Math.max(t.from,i.from);this.syncGutters(r<.8*(i.to-i.from))}e.geometryChanged&&(this.dom.style.minHeight=this.view.contentHeight/this.view.scaleY+"px"),this.view.state.facet(Wa)!=!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=Ae.iter(this.view.state.facet(Aa),this.view.viewport.from),r=[],n=this.gutters.map((e=>new Ea(e,this.view.viewport,-this.view.documentPadding.top)));for(let e of this.view.viewportLineBlocks)if(r.length&&(r=[]),Array.isArray(e.type)){let t=!0;for(let o of e.type)if(o.type==Cn.Text&&t){ja(i,r,o.from);for(let e of n)e.line(this.view,o,r);t=!1}else if(o.widget)for(let e of n)e.widget(this.view,o)}else if(e.type==Cn.Text){ja(i,r,e.from);for(let t of n)t.line(this.view,e,r)}else if(e.widget)for(let t of n)t.widget(this.view,e);for(let e of n)e.finish();e&&this.view.scrollDOM.insertBefore(this.dom,t)}updateGutters(e){let t=e.startState.facet(qa),i=e.state.facet(qa),r=e.docChanged||e.heightChanged||e.viewportChanged||!Ae.eq(e.startState.facet(Aa),e.state.facet(Aa),e.view.viewport.from,e.view.viewport.to);if(t==i)for(let t of this.gutters)t.update(e)&&(r=!0);else{r=!0;let n=[];for(let r of i){let i=t.indexOf(r);i<0?n.push(new za(this.view,r)):(this.gutters[i].update(e),n.push(this.gutters[i]))}for(let e of this.gutters)e.dom.remove(),n.indexOf(e)<0&&e.destroy();for(let e of n)this.dom.appendChild(e.dom);this.gutters=n}return r}destroy(){for(let e of this.gutters)e.destroy();this.dom.remove()}},{provide:e=>SO.scrollMargins.of((t=>{let i=t.plugin(e);return i&&0!=i.gutters.length&&i.fixed?t.textDirection==In.LTR?{left:i.dom.offsetWidth*t.scaleX}:{right:i.dom.offsetWidth*t.scaleX}:null}))});function Na(e){return Array.isArray(e)?e:[e]}function ja(e,t,i){for(;e.value&&e.from<=i;)e.from==i&&t.push(e.value),e.next()}class Ea{constructor(e,t,i){this.gutter=e,this.height=i,this.i=0,this.cursor=Ae.iter(e.markers,t.from)}addElement(e,t,i){let{gutter:r}=this,n=(t.top-this.height)/e.scaleY,o=t.height/e.scaleY;if(this.i==r.elements.length){let t=new Ga(e,o,n,i);r.elements.push(t),r.dom.appendChild(t.dom)}else r.elements[this.i].update(e,o,n,i);this.height=t.bottom,this.i++}line(e,t,i){let r=[];ja(this.cursor,r,t.from),i.length&&(r=r.concat(i));let n=this.gutter.config.lineMarker(e,t,r);n&&r.unshift(n);let o=this.gutter;(0!=r.length||o.config.renderEmptyElements)&&this.addElement(e,t,r)}widget(e,t){let i=this.gutter.config.widgetMarker(e,t.widget,t);i&&this.addElement(e,t,[i])}finish(){let e=this.gutter;for(;e.elements.length>this.i;){let t=e.elements.pop();e.dom.removeChild(t.dom),t.destroy()}}}class za{constructor(e,t){this.view=e,this.config=t,this.elements=[],this.spacer=null,this.dom=document.createElement("div"),this.dom.className="cm-gutter"+(this.config.class?" "+this.config.class:"");for(let i in t.domEventHandlers)this.dom.addEventListener(i,(r=>{let n,o=r.target;if(o!=this.dom&&this.dom.contains(o)){for(;o.parentNode!=this.dom;)o=o.parentNode;let e=o.getBoundingClientRect();n=(e.top+e.bottom)/2}else n=r.clientY;let s=e.lineBlockAtHeight(n-e.documentTop);t.domEventHandlers[i](e,s,r)&&r.preventDefault()}));this.markers=Na(t.markers(e)),t.initialSpacer&&(this.spacer=new Ga(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=Na(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!Ae.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 Ga{constructor(e,t,i,r){this.height=-1,this.above=0,this.markers=[],this.dom=document.createElement("div"),this.dom.className="cm-gutterElement",this.update(e,t,i,r)}update(e,t,i,r){this.height!=t&&(this.height=t,this.dom.style.height=t+"px"),this.above!=i&&(this.dom.style.marginTop=(this.above=i)?i+"px":""),function(e,t){if(e.length!=t.length)return!1;for(let i=0;iYe(e,{formatNumber:String,domEventHandlers:{}},{domEventHandlers(e,t){let i=Object.assign({},e);for(let e in t){let r=i[e],n=t[e];i[e]=r?(e,t,i)=>r(e,t,i)||n(e,t,i):n}return i}})});class Ba extends Za{constructor(e){super(),this.number=e}eq(e){return this.number==e.number}toDOM(){return document.createTextNode(this.number)}}function Ia(e,t){return e.state.facet(Ma).formatNumber(t,e.state)}const La=qa.compute([Ma],(e=>({class:"cm-lineNumbers",renderEmptyElements:!1,markers:e=>e.state.facet(Da),lineMarker:(e,t,i)=>i.some((e=>e.toDOM))?null:new Ba(Ia(e,e.state.doc.lineAt(t.from).number)),widgetMarker:()=>null,lineMarkerChange:e=>e.startState.facet(Ma)!=e.state.facet(Ma),initialSpacer:e=>new Ba(Ia(e,Fa(e.state.doc.lines))),updateSpacer(e,t){let i=Ia(t.view,Fa(t.view.state.doc.lines));return i==e.number?e:new Ba(i)},domEventHandlers:e.facet(Ma).domEventHandlers})));function Ka(e={}){return[Ma.of(e),Ca(),La]}function Fa(e){let t=9;for(;tt.modified.indexOf(e)>-1?t:tl.get(t.base||t,t.modified.concat(e).sort(((e,t)=>e.id-t.id)))}}let el=0;class tl{constructor(){this.instances=[],this.id=el++}static get(e,t){if(!t.length)return e;let i=t[0].instances.find((i=>i.base==e&&function(e,t){return e.length==t.length&&e.every(((e,i)=>e==t[i]))}(t,i.modified)));if(i)return i;let r=[],n=new Ja(r,e,t);for(let e of t)e.instances.push(n);let o=function(e){let t=[[]];for(let i=0;it.length-e.length))}(t);for(let t of e.set)if(!t.modified.length)for(let e of o)r.push(tl.get(t,e));return n}}function il(e){let t=Object.create(null);for(let i in e){let r=e[i];Array.isArray(r)||(r=[r]);for(let e of i.split(" "))if(e){let i=[],n=2,o=e;for(let t=0;;){if("..."==o&&t>0&&t+3==e.length){n=1;break}let r=/^"(?:[^"\\]|\\.)*?"|[^\/!]+/.exec(o);if(!r)throw new RangeError("Invalid path: "+e);if(i.push("*"==r[0]?"":'"'==r[0][0]?JSON.parse(r[0]):r[0]),t+=r[0].length,t==e.length)break;let s=e[t++];if(t==e.length&&"!"==s){n=0;break}if("/"!=s)throw new RangeError("Invalid path: "+e);o=e.slice(t)}let s=i.length-1,O=i[s];if(!O)throw new RangeError("Invalid path: "+e);let a=new nl(r,n,s>0?i.slice(0,s):null);t[O]=a.sort(t[O])}}return rl.add(t)}const rl=new He;class nl{constructor(e,t,i,r){this.tags=e,this.mode=t,this.context=i,this.next=r}get opaque(){return 0==this.mode}get inherit(){return 1==this.mode}sort(e){return!e||e.depth{let t=n;for(let r of e)for(let e of r.set){let r=i[e.id];if(r){t=t?t+" "+r:r;break}}return t},scope:r}}function sl(e,t,i,r=0,n=e.length){let o=new Ol(r,Array.isArray(t)?t:[t],i);o.highlightRange(e.cursor(),r,n,"",o.highlighters),o.flush(n)}nl.empty=new nl([],2,null);class Ol{constructor(e,t,i){this.at=e,this.highlighters=t,this.span=i,this.class=""}startSpan(e,t){t!=this.class&&(this.flush(e),e>this.at&&(this.at=e),this.class=t)}flush(e){e>this.at&&this.class&&this.span(this.at,e,this.class)}highlightRange(e,t,i,r,n){let{type:o,from:s,to:O}=e;if(s>=i||O<=t)return;o.isTop&&(n=this.highlighters.filter((e=>!e.scope||e.scope(o))));let a=r,l=function(e){let t=e.type.prop(rl);for(;t&&t.context&&!e.matchContext(t.context);)t=t.next;return t||null}(e)||nl.empty,h=function(e,t){let i=null;for(let r of e){let e=r.style(t);e&&(i=i?i+" "+e:e)}return i}(n,l.tags);if(h&&(a&&(a+=" "),a+=h,1==l.mode&&(r+=(r?" ":"")+h)),this.startSpan(Math.max(t,s),a),l.opaque)return;let c=e.tree&&e.tree.prop(He.mounted);if(c&&c.overlay){let o=e.node.enter(c.overlay[0].from+s,1),l=this.highlighters.filter((e=>!e.scope||e.scope(c.tree.type))),h=e.firstChild();for(let u=0,f=s;;u++){let d=u=p)&&e.nextSibling()););if(!d||p>i)break;f=d.to+s,f>t&&(this.highlightRange(o.cursor(),Math.max(t,d.from+s),Math.min(i,f),"",l),this.startSpan(Math.min(i,f),a))}h&&e.parent()}else if(e.firstChild()){c&&(r="");do{if(!(e.to<=t)){if(e.from>=i)break;this.highlightRange(e,t,i,r,n),this.startSpan(Math.min(i,e.to),a)}}while(e.nextSibling());e.parent()}}}const al=Ja.define,ll=al(),hl=al(),cl=al(hl),ul=al(hl),fl=al(),dl=al(fl),pl=al(fl),Ql=al(),gl=al(Ql),ml=al(),$l=al(),bl=al(),Xl=al(bl),Sl=al(),yl={comment:ll,lineComment:al(ll),blockComment:al(ll),docComment:al(ll),name:hl,variableName:al(hl),typeName:cl,tagName:al(cl),propertyName:ul,attributeName:al(ul),className:al(hl),labelName:al(hl),namespace:al(hl),macroName:al(hl),literal:fl,string:dl,docString:al(dl),character:al(dl),attributeValue:al(dl),number:pl,integer:al(pl),float:al(pl),bool:al(fl),regexp:al(fl),escape:al(fl),color:al(fl),url:al(fl),keyword:ml,self:al(ml),null:al(ml),atom:al(ml),unit:al(ml),modifier:al(ml),operatorKeyword:al(ml),controlKeyword:al(ml),definitionKeyword:al(ml),moduleKeyword:al(ml),operator:$l,derefOperator:al($l),arithmeticOperator:al($l),logicOperator:al($l),bitwiseOperator:al($l),compareOperator:al($l),updateOperator:al($l),definitionOperator:al($l),typeOperator:al($l),controlOperator:al($l),punctuation:bl,separator:al(bl),bracket:Xl,angleBracket:al(Xl),squareBracket:al(Xl),paren:al(Xl),brace:al(Xl),content:Ql,heading:gl,heading1:al(gl),heading2:al(gl),heading3:al(gl),heading4:al(gl),heading5:al(gl),heading6:al(gl),contentSeparator:al(Ql),list:al(Ql),quote:al(Ql),emphasis:al(Ql),strong:al(Ql),link:al(Ql),monospace:al(Ql),strikethrough:al(Ql),inserted:al(),deleted:al(),changed:al(),invalid:al(),meta:Sl,documentMeta:al(Sl),annotation:al(Sl),processingInstruction:al(Sl),definition:Ja.defineModifier(),constant:Ja.defineModifier(),function:Ja.defineModifier(),standard:Ja.defineModifier(),local:Ja.defineModifier(),special:Ja.defineModifier()};var vl;ol([{tag:yl.link,class:"tok-link"},{tag:yl.heading,class:"tok-heading"},{tag:yl.emphasis,class:"tok-emphasis"},{tag:yl.strong,class:"tok-strong"},{tag:yl.keyword,class:"tok-keyword"},{tag:yl.atom,class:"tok-atom"},{tag:yl.bool,class:"tok-bool"},{tag:yl.url,class:"tok-url"},{tag:yl.labelName,class:"tok-labelName"},{tag:yl.inserted,class:"tok-inserted"},{tag:yl.deleted,class:"tok-deleted"},{tag:yl.literal,class:"tok-literal"},{tag:yl.string,class:"tok-string"},{tag:yl.number,class:"tok-number"},{tag:[yl.regexp,yl.escape,yl.special(yl.string)],class:"tok-string2"},{tag:yl.variableName,class:"tok-variableName"},{tag:yl.local(yl.variableName),class:"tok-variableName tok-local"},{tag:yl.definition(yl.variableName),class:"tok-variableName tok-definition"},{tag:yl.special(yl.variableName),class:"tok-variableName2"},{tag:yl.definition(yl.propertyName),class:"tok-propertyName tok-definition"},{tag:yl.typeName,class:"tok-typeName"},{tag:yl.namespace,class:"tok-namespace"},{tag:yl.className,class:"tok-className"},{tag:yl.macroName,class:"tok-macroName"},{tag:yl.propertyName,class:"tok-propertyName"},{tag:yl.operator,class:"tok-operator"},{tag:yl.comment,class:"tok-comment"},{tag:yl.meta,class:"tok-meta"},{tag:yl.invalid,class:"tok-invalid"},{tag:yl.punctuation,class:"tok-punctuation"}]);const xl=new He;function Pl(e){return j.define({combine:e?t=>t.concat(e):void 0})}const wl=new He;class Tl{constructor(e,t,i=[],r=""){this.data=e,this.name=r,ke.prototype.hasOwnProperty("tree")||Object.defineProperty(ke.prototype,"tree",{get(){return Rl(this)}}),this.parser=t,this.extension=[Nl.of(this),ke.languageData.of(((e,t,i)=>{let r=kl(e,t,i),n=r.type.prop(xl);if(!n)return[];let o=e.facet(n),s=r.type.prop(wl);if(s){let n=r.resolve(t-r.from,i);for(let t of s)if(t.test(n,e)){let i=e.facet(t.facet);return"replace"==t.type?i:i.concat(o)}}return o}))].concat(i)}isActiveAt(e,t,i=-1){return kl(e,t,i).type.prop(xl)==this.data}findRegions(e){let t=e.facet(Nl);if((null==t?void 0:t.data)==this.data)return[{from:0,to:e.doc.length}];if(!t||!t.allowsNesting)return[];let i=[],r=(e,t)=>{if(e.prop(xl)==this.data)return void i.push({from:t,to:t+e.length});let n=e.prop(He.mounted);if(n){if(n.tree.prop(xl)==this.data){if(n.overlay)for(let e of n.overlay)i.push({from:e.from+t,to:e.to+t});else i.push({from:t,to:t+e.length});return}if(n.overlay){let e=i.length;if(r(n.tree,n.overlay[0].from+t),i.length>e)return}}for(let i=0;ie.isTop?t:void 0))]}),e.name)}configure(e,t){return new Yl(this.data,this.parser.configure(e),t||this.name)}get allowsNesting(){return this.parser.hasWrappers()}}function Rl(e){let t=e.field(Tl.state,!1);return t?t.tree:st.empty}class _l{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 Vl=null;class Zl{constructor(e,t,i=[],r,n,o,s,O){this.parser=e,this.state=t,this.fragments=i,this.tree=r,this.treeLen=n,this.viewport=o,this.skipped=s,this.scheduleOn=O,this.parse=null,this.tempSkipped=[]}static create(e,t,i){return new Zl(e,t,[],st.empty,0,i,[],null)}startParse(){return this.parser.startParse(new _l(this.state.doc),this.fragments)}work(e,t){return null!=t&&t>=this.state.doc.length&&(t=void 0),this.tree!=st.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(xt.addTree(this.tree,this.fragments,!0)),this.parse=null)}withContext(e){let t=Vl;Vl=this;try{return e()}finally{Vl=t}}withoutTempSkipped(e){for(let t;t=this.tempSkipped.pop();)e=Al(e,t.from,t.to);return e}changes(e,t){let{fragments:i,tree:r,treeLen:n,viewport:o,skipped:s}=this;if(this.takeTree(),!e.empty){let t=[];if(e.iterChangedRanges(((e,i,r,n)=>t.push({fromA:e,toA:i,fromB:r,toB:n}))),i=xt.applyChanges(i,t),r=st.empty,n=0,o={from:e.mapPos(o.from,-1),to:e.mapPos(o.to,1)},this.skipped.length){s=[];for(let t of this.skipped){let i=e.mapPos(t.from,1),r=e.mapPos(t.to,-1);ie.from&&(this.fragments=Al(this.fragments,i,r),this.skipped.splice(t--,1))}return!(this.skipped.length>=t||(this.reset(),0))}reset(){this.parse&&(this.takeTree(),this.parse=null)}skipUntilInView(e,t){this.skipped.push({from:e,to:t})}static getSkippingParser(e){return new class extends Pt{createParse(t,i,r){let n=r[0].from,o=r[r.length-1].to;return{parsedPos:n,advance(){let t=Vl;if(t){for(let e of r)t.tempSkipped.push(e);e&&(t.scheduleOn=t.scheduleOn?Promise.all([t.scheduleOn,e]):e)}return this.parsedPos=o,new st(tt.none,[],[],o-n)},stoppedAt:null,stopAt(){}}}}}isDone(e){e=Math.min(e,this.state.doc.length);let t=this.fragments;return this.treeLen>=e&&t.length&&0==t[0].from&&t[0].to>=e}static get(){return Vl}}function Al(e,t,i){return xt.applyChanges(e,[{fromA:t,toA:i,fromB:t,toB:i}])}class ql{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 ql(t)}static init(e){let t=Math.min(3e3,e.doc.length),i=Zl.create(e.facet(Nl).parser,e,{from:0,to:t});return i.work(20,t)||i.takeTree(),new ql(i)}}Tl.state=I.define({create:ql.init,update(e,t){for(let e of t.effects)if(e.is(Tl.setState))return e.value;return t.startState.facet(Nl)!=t.state.facet(Nl)?ql.init(t.state):e.apply(t)}});let Wl=e=>{let t=setTimeout((()=>e()),500);return()=>clearTimeout(t)};"undefined"!=typeof requestIdleCallback&&(Wl=e=>{let t=-1,i=setTimeout((()=>{t=requestIdleCallback(e,{timeout:400})}),100);return()=>t<0?clearTimeout(i):cancelIdleCallback(t)});const Cl="undefined"!=typeof navigator&&(null===(vl=navigator.scheduling)||void 0===vl?void 0:vl.isInputPending)?()=>navigator.scheduling.isInputPending():null,Ul=Yo.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(Tl.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(Tl.state);t.tree==t.context.tree&&t.context.isDone(e.doc.length)||(this.working=Wl(this.work))}work(e){this.working=null;let t=Date.now();if(this.chunkEndr+1e3,O=n.context.work((()=>Cl&&Cl()||Date.now()>o),r+(s?0:1e5));this.chunkBudget-=Date.now()-t,(O||this.chunkBudget<=0)&&(n.context.takeTree(),this.view.dispatch({effects:Tl.setState.of(new ql(n.context))})),this.chunkBudget>0&&(!O||s)&&this.scheduleWork(),this.checkAsyncSchedule(n.context)}checkAsyncSchedule(e){e.scheduleOn&&(this.workScheduled++,e.scheduleOn.then((()=>this.scheduleWork())).catch((e=>Po(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()}}}),Nl=j.define({combine:e=>e.length?e[0]:null,enables:e=>[Tl.state,Ul,SO.contentAttributes.compute([e],(t=>{let i=t.facet(e);return i&&i.name?{"data-language":i.name}:{}}))]});class jl{constructor(e,t=[]){this.language=e,this.support=t,this.extension=[e,t]}}class El{constructor(e,t,i,r,n,o){this.name=e,this.alias=t,this.extensions=i,this.filename=r,this.loadFunc=n,this.support=o,this.loading=null}load(){return this.loading||(this.loading=this.loadFunc().then((e=>this.support=e),(e=>{throw this.loading=null,e})))}static of(e){let{load:t,support:i}=e;if(!t){if(!i)throw new RangeError("Must pass either 'load' or 'support' to LanguageDescription.of");t=()=>Promise.resolve(i)}return new El(e.name,(e.alias||[]).concat(e.name).map((e=>e.toLowerCase())),e.extensions||[],e.filename,t,i)}static matchFilename(e,t){for(let i of e)if(i.filename&&i.filename.test(t))return i;let i=/\.([^.]+)$/.exec(t);if(i)for(let t of e)if(t.extensions.indexOf(i[1])>-1)return t;return null}static matchLanguageName(e,t,i=!0){t=t.toLowerCase();for(let i of e)if(i.alias.some((e=>e==t)))return i;if(i)for(let i of e)for(let e of i.alias){let r=t.indexOf(e);if(r>-1&&(e.length>2||!/\w/.test(t[r-1])&&!/\w/.test(t[r+e.length])))return i}return null}}const zl=j.define(),Gl=j.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 Dl(e){let t=e.facet(Gl);return 9==t.charCodeAt(0)?e.tabSize*t.length:t.length}function Ml(e,t){let i="",r=e.tabSize,n=e.facet(Gl)[0];if("\t"==n){for(;t>=r;)i+="\t",t-=r;n=" "}for(let e=0;e=t?function(e,t,i){let r=t.resolveStack(i),n=r.node.enterUnfinishedNodesBefore(i);if(n!=r.node){let e=[];for(let t=n;t!=r.node;t=t.parent)e.push(t);for(let t=e.length-1;t>=0;t--)r={node:e[t],next:r}}return Kl(r,e,i)}(e,i,t):null}class Il{constructor(e,t={}){this.state=e,this.options=t,this.unit=Dl(e)}lineAt(e,t=1){let i=this.state.doc.lineAt(e),{simulateBreak:r,simulateDoubleBreak:n}=this.options;return null!=r&&r>=i.from&&r<=i.to?n&&r==e?{text:"",from:e}:(t<0?r-1&&(n+=o-this.countColumn(i,i.search(/\S|$/))),n}countColumn(e,t=e.length){return Be(e,this.state.tabSize,t)}lineIndent(e,t=1){let{text:i,from:r}=this.lineAt(e,t),n=this.options.overrideIndentation;if(n){let e=n(r);if(e>-1)return e}return this.countColumn(i,i.search(/\S|$/))}get simulatedBreak(){return this.options.simulateBreak||null}}const Ll=new He;function Kl(e,t,i){for(let r=e;r;r=r.next){let e=Fl(r.node);if(e)return e(Jl.create(t,i,r))}return 0}function Fl(e){let t=e.type.prop(Ll);if(t)return t;let i,r=e.firstChild;if(r&&(i=r.type.prop(He.closedBy))){let t=e.lastChild,r=t&&i.indexOf(t.name)>-1;return e=>ih(e,!0,1,void 0,r&&!function(e){return e.pos==e.options.simulateBreak&&e.options.simulateDoubleBreak}(e)?t.from:void 0)}return null==e.parent?Hl:null}function Hl(){return 0}class Jl extends Il{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 Jl(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(eh(i,e))break;t=this.state.doc.lineAt(i.from)}return this.lineIndent(t.from)}continue(){return Kl(this.context.next,this.base,this.pos)}}function eh(e,t){for(let i=t;i;i=i.parent)if(e==i)return!0;return!1}function th({closing:e,align:t=!0,units:i=1}){return r=>ih(r,t,i,e)}function ih(e,t,i,r,n){let o=e.textAfter,s=o.match(/^\s*/)[0].length,O=r&&o.slice(s,s+r.length)==r||n==e.pos+s,a=t?function(e){let t=e.node,i=t.childAfter(t.from),r=t.lastChild;if(!i)return null;let n=e.options.simulateBreak,o=e.state.doc.lineAt(i.from),s=null==n||n<=o.from?o.to:Math.min(o.to,n);for(let e=i.to;;){let n=t.childAfter(e);if(!n||n==r)return null;if(!n.type.isSkipped)return n.from{let r=e&&e.test(i.textAfter);return i.baseIndent+(r?0:t*i.unit)}}function nh(){return ke.transactionFilter.of((e=>{if(!e.docChanged||!e.isUserEvent("input.type")&&!e.isUserEvent("input.complete"))return e;let t=e.startState.languageDataAt("indentOnInput",e.startState.selection.main.head);if(!t.length)return e;let i=e.newDoc,{head:r}=e.newSelection.main,n=i.lineAt(r);if(r>n.from+200)return e;let o=i.sliceString(n.from,r);if(!t.some((e=>e.test(o))))return e;let{state:s}=e,O=-1,a=[];for(let{head:e}of s.selection.ranges){let t=s.doc.lineAt(e);if(t.from==O)continue;O=t.from;let i=Bl(s,t.from);if(null==i)continue;let r=/^\s*/.exec(t.text)[0],n=Ml(s,i);r!=n&&a.push({from:t.from,to:t.from+r.length,insert:n})}return a.length?[e,{changes:a,sequential:!0}]:e}))}const oh=j.define(),sh=new He;function Oh(e){let t=e.firstChild,i=e.lastChild;return t&&t.toi)continue;if(n&&s.from=t&&r.to>i&&(n=r)}}return n}(e,t,i)}function hh(e,t){let i=t.mapPos(e.from,1),r=t.mapPos(e.to,-1);return i>=r?void 0:{from:i,to:r}}const ch=ge.define({map:hh}),uh=ge.define({map:hh});function fh(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 dh=I.define({create:()=>Un.none,update(e,t){e=e.map(t.changes);for(let i of t.effects)if(i.is(ch)&&!Qh(e,i.value.from,i.value.to)){let{preparePlaceholder:r}=t.state.facet(Xh),n=r?Un.replace({widget:new xh(r(t.state,i.value))}):vh;e=e.update({add:[n.range(i.value.from,i.value.to)]})}else i.is(uh)&&(e=e.update({filter:(e,t)=>i.value.from!=e||i.value.to!=t,filterFrom:i.value.from,filterTo:i.value.to}));if(t.selection){let i=!1,{head:r}=t.selection.main;e.between(r,r,((e,t)=>{er&&(i=!0)})),i&&(e=e.update({filterFrom:r,filterTo:r,filter:(e,t)=>t<=r||e>=r}))}return e},provide:e=>SO.decorations.from(e),toJSON(e,t){let i=[];return e.between(0,t.doc.length,((e,t)=>{i.push(e,t)})),i},fromJSON(e){if(!Array.isArray(e)||e.length%2)throw new RangeError("Invalid JSON for fold state");let t=[];for(let i=0;i{(!n||n.from>e)&&(n={from:e,to:t})})),n}function Qh(e,t,i){let r=!1;return e.between(t,t,((e,n)=>{e==t&&n==i&&(r=!0)})),r}function gh(e,t){return e.field(dh,!1)?t:t.concat(ge.appendConfig.of(Sh()))}function mh(e,t,i=!0){let r=e.state.doc.lineAt(t.from).number,n=e.state.doc.lineAt(t.to).number;return SO.announce.of(`${e.state.phrase(i?"Folded lines":"Unfolded lines")} ${r} ${e.state.phrase("to")} ${n}.`)}const $h=[{key:"Ctrl-Shift-[",mac:"Cmd-Alt-[",run:e=>{for(let t of fh(e)){let i=lh(e.state,t.from,t.to);if(i)return e.dispatch({effects:gh(e.state,[ch.of(i),mh(e,i)])}),!0}return!1}},{key:"Ctrl-Shift-]",mac:"Cmd-Alt-]",run:e=>{if(!e.state.field(dh,!1))return!1;let t=[];for(let i of fh(e)){let r=ph(e.state,i.from,i.to);r&&t.push(uh.of(r),mh(e,r,!1))}return t.length&&e.dispatch({effects:t}),t.length>0}},{key:"Ctrl-Alt-[",run:e=>{let{state:t}=e,i=[];for(let r=0;r{let t=e.state.field(dh,!1);if(!t||!t.size)return!1;let i=[];return t.between(0,e.state.doc.length,((e,t)=>{i.push(uh.of({from:e,to:t}))})),e.dispatch({effects:i}),!0}}],bh={placeholderDOM:null,preparePlaceholder:null,placeholderText:"…"},Xh=j.define({combine:e=>Ye(e,bh)});function Sh(e){let t=[dh,Ph];return e&&t.push(Xh.of(e)),t}function yh(e,t){let{state:i}=e,r=i.facet(Xh),n=t=>{let i=e.lineBlockAt(e.posAtDOM(t.target)),r=ph(e.state,i.from,i.to);r&&e.dispatch({effects:uh.of(r)}),t.preventDefault()};if(r.placeholderDOM)return r.placeholderDOM(e,n,t);let o=document.createElement("span");return o.textContent=r.placeholderText,o.setAttribute("aria-label",i.phrase("folded code")),o.title=i.phrase("unfold"),o.className="cm-foldPlaceholder",o.onclick=n,o}const vh=Un.replace({widget:new class extends Wn{toDOM(e){return yh(e,null)}}});class xh extends Wn{constructor(e){super(),this.value=e}eq(e){return this.value==e.value}toDOM(e){return yh(e,this.value)}}const Ph=SO.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 wh{constructor(e,t){let i;function r(e){let t=Pr.newName();return(i||(i=Object.create(null)))["."+t]=e,t}this.specs=e;const n="string"==typeof t.all?t.all:t.all?r(t.all):void 0,o=t.scope;this.scope=o instanceof Tl?e=>e.prop(xl)==o.data:o?e=>e==o:void 0,this.style=ol(e.map((e=>({tag:e.tag,class:e.class||r(Object.assign({},e,{tag:null}))}))),{all:n}).style,this.module=i?new Pr(i):null,this.themeType=t.themeType}static define(e,t){return new wh(e,t||{})}}const Th=j.define(),kh=j.define({combine:e=>e.length?[e[0]]:null});function Yh(e){let t=e.facet(Th);return t.length?t:e.facet(kh)}function Rh(e,t){let i,r=[_h];return e instanceof wh&&(e.module&&r.push(SO.styleModule.of(e.module)),i=e.themeType),(null==t?void 0:t.fallback)?r.push(kh.of(e)):i?r.push(Th.computeN([SO.darkTheme],(t=>t.facet(SO.darkTheme)==("dark"==i)?[e]:[]))):r.push(Th.of(e)),r}const _h=ee.high(Yo.fromClass(class{constructor(e){this.markCache=Object.create(null),this.tree=Rl(e.state),this.decorations=this.buildDeco(e,Yh(e.state)),this.decoratedTo=e.viewport.to}update(e){let t=Rl(e.state),i=Yh(e.state),r=i!=Yh(e.startState),{viewport:n}=e.view,o=e.changes.mapPos(this.decoratedTo,1);t.length=n.to?(this.decorations=this.decorations.map(e.changes),this.decoratedTo=o):(t!=this.tree||e.viewportChanged||r)&&(this.tree=t,this.decorations=this.buildDeco(e.view,i),this.decoratedTo=n.to)}buildDeco(e,t){if(!t||!this.tree.length)return Un.none;let i=new qe;for(let{from:r,to:n}of e.visibleRanges)sl(this.tree,t,((e,t,r)=>{i.add(e,t,this.markCache[r]||(this.markCache[r]=Un.mark({class:r})))}),r,n);return i.finish()}},{decorations:e=>e.decorations})),Vh=wh.define([{tag:yl.meta,color:"#404740"},{tag:yl.link,textDecoration:"underline"},{tag:yl.heading,textDecoration:"underline",fontWeight:"bold"},{tag:yl.emphasis,fontStyle:"italic"},{tag:yl.strong,fontWeight:"bold"},{tag:yl.strikethrough,textDecoration:"line-through"},{tag:yl.keyword,color:"#708"},{tag:[yl.atom,yl.bool,yl.url,yl.contentSeparator,yl.labelName],color:"#219"},{tag:[yl.literal,yl.inserted],color:"#164"},{tag:[yl.string,yl.deleted],color:"#a11"},{tag:[yl.regexp,yl.escape,yl.special(yl.string)],color:"#e40"},{tag:yl.definition(yl.variableName),color:"#00f"},{tag:yl.local(yl.variableName),color:"#30a"},{tag:[yl.typeName,yl.namespace],color:"#085"},{tag:yl.className,color:"#167"},{tag:[yl.special(yl.variableName),yl.macroName],color:"#256"},{tag:yl.definition(yl.propertyName),color:"#00c"},{tag:yl.comment,color:"#940"},{tag:yl.invalid,color:"#f00"}]),Zh=(SO.baseTheme({"&.cm-focused .cm-matchingBracket":{backgroundColor:"#328c8252"},"&.cm-focused .cm-nonmatchingBracket":{backgroundColor:"#bb555544"}}),"()[]{}"),Ah=j.define({combine:e=>Ye(e,{afterCursor:!0,brackets:Zh,maxScanDistance:1e4,renderMatch:Ch})}),qh=Un.mark({class:"cm-matchingBracket"}),Wh=Un.mark({class:"cm-nonmatchingBracket"});function Ch(e){let t=[],i=e.matched?qh:Wh;return t.push(i.range(e.start.from,e.start.to)),e.end&&t.push(i.range(e.end.from,e.end.to)),t}I.define({create:()=>Un.none,update(e,t){if(!t.docChanged&&!t.selection)return e;let i=[],r=t.state.facet(Ah);for(let e of t.state.selection.ranges){if(!e.empty)continue;let n=Eh(t.state,e.head,-1,r)||e.head>0&&Eh(t.state,e.head-1,1,r)||r.afterCursor&&(Eh(t.state,e.head,1,r)||e.headSO.decorations.from(e)});const Uh=new He;function Nh(e,t,i){let r=e.prop(t<0?He.openedBy:He.closedBy);if(r)return r;if(1==e.name.length){let r=i.indexOf(e.name);if(r>-1&&r%2==(t<0?1:0))return[i[r+t]]}return null}function jh(e){let t=e.type.prop(Uh);return t?t(e.node):e}function Eh(e,t,i,r={}){let n=r.maxScanDistance||1e4,o=r.brackets||Zh,s=Rl(e),O=s.resolveInner(t,i);for(let r=O;r;r=r.parent){let n=Nh(r.type,i,o);if(n&&r.from0?t>=s.from&&ts.from&&t<=s.to))return zh(e,t,i,r,s,n,o)}}return function(e,t,i,r,n,o,s){let O=i<0?e.sliceDoc(t-1,t):e.sliceDoc(t,t+1),a=s.indexOf(O);if(a<0||a%2==0!=i>0)return null;let l={from:i<0?t-1:t,to:i>0?t+1:t},h=e.doc.iterRange(t,i>0?e.doc.length:0),c=0;for(let e=0;!h.next().done&&e<=o;){let o=h.value;i<0&&(e+=o.length);let O=t+e*i;for(let e=i>0?0:o.length-1,t=i>0?o.length:-1;e!=t;e+=i){let t=s.indexOf(o[e]);if(!(t<0||r.resolveInner(O+e,1).type!=n))if(t%2==0==i>0)c++;else{if(1==c)return{start:l,end:{from:O+e,to:O+e+1},matched:t>>1==a>>1};c--}}i>0&&(e+=o.length)}return h.done?{start:l,matched:!1}:null}(e,t,i,s,O.type,n,o)}function zh(e,t,i,r,n,o,s){let O=r.parent,a={from:n.from,to:n.to},l=0,h=null==O?void 0:O.cursor();if(h&&(i<0?h.childBefore(r.from):h.childAfter(r.to)))do{if(i<0?h.to<=r.from:h.from>=r.to){if(0==l&&o.indexOf(h.type.name)>-1&&h.from-1||(Mh.push(e),console.warn(t))}function Kh(e,t){let i=[];for(let r of t.split(" ")){let t=[];for(let i of r.split(".")){let r=e[i]||yl[i];r?"function"==typeof r?t.length?t=t.map(r):Lh(i,`Modifier ${i} used at start of tag`):t.length?Lh(i,`Tag ${i} used as modifier`):t=Array.isArray(r)?r:[r]:Lh(i,`Unknown highlighting tag ${i}`)}for(let e of t)i.push(e)}if(!i.length)return 0;let r=t.replace(/ /g,"_"),n=r+" "+i.map((e=>e.id)),o=Bh[n];if(o)return o.id;let s=Bh[n]=tt.define({id:Dh.length,name:r,props:[il({[r]:i})]});return Dh.push(s),s.id}In.RTL,In.LTR;class Fh{constructor(e,t,i){this.state=e,this.pos=t,this.explicit=i,this.abortListeners=[]}tokenBefore(e){let t=Rl(this.state).resolveInner(this.pos,-1);for(;t&&e.indexOf(t.name)<0;)t=t.parent;return t?{from:t.from,to:this.pos,text:this.state.sliceDoc(t.from,this.pos),type:t.type}:null}matchBefore(e){let t=this.state.doc.lineAt(this.pos),i=Math.max(t.from,this.pos-250),r=t.text.slice(i-t.from,this.pos-t.from),n=r.search(rc(e,!1));return n<0?null:{from:i+n,to:this.pos,text:r.slice(n)}}get aborted(){return null==this.abortListeners}addEventListener(e,t){"abort"==e&&this.abortListeners&&this.abortListeners.push(t)}}function Hh(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 Jh(e){let t=e.map((e=>"string"==typeof e?{label:e}:e)),[i,r]=t.every((e=>/^\w+$/.test(e.label)))?[/\w*$/,/\w+$/]:function(e){let t=Object.create(null),i=Object.create(null);for(let{label:r}of e){t[r[0]]=!0;for(let e=1;e{let n=e.matchBefore(r);return n||e.explicit?{from:n?n.from:e.pos,options:t,validFor:i}:null}}function ec(e,t){return i=>{for(let t=Rl(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 tc{constructor(e,t,i,r){this.completion=e,this.source=t,this.match=i,this.score=r}}function ic(e){return e.selection.main.from}function rc(e,t){var i;let{source:r}=e,n=t&&"^"!=r[0],o="$"!=r[r.length-1];return n||o?new RegExp(`${n?"^":""}(?:${r})${o?"$":""}`,null!==(i=e.flags)&&void 0!==i?i:e.ignoreCase?"i":""):e}const nc=de.define();function oc(e,t,i,r){let{main:n}=e.selection,o=i-n.from,s=r-n.from;return Object.assign(Object.assign({},e.changeByRange((O=>O!=n&&i!=r&&e.sliceDoc(O.from+o,O.from+s)!=e.sliceDoc(i,r)?{range:O}:{changes:{from:O.from+o,to:r==n.from?O.to:O.from+s,insert:t},range:C.cursor(O.from+o+t.length)}))),{scrollIntoView:!0,userEvent:"input.complete"})}const sc=new WeakMap;function Oc(e){if(!Array.isArray(e))return e;let t=sc.get(e);return t||sc.set(e,t=Jh(e)),t}const ac=ge.define(),lc=ge.define();class hc{constructor(e){this.pattern=e,this.chars=[],this.folded=[],this.any=[],this.precise=[],this.byWord=[],this.score=0,this.matched=[];for(let t=0;t=48&&a<=57||a>=97&&a<=122?2:a>=65&&a<=90?1:0:(m=v(a))!=m.toLowerCase()?1:m!=m.toUpperCase()?2:0;(!r||1==$&&p||0==g&&0!=$)&&(t[h]==a||i[h]==a&&(c=!0)?o[h++]=r:o.length&&(Q=!1)),g=$,r+=x(a)}return h==O&&0==o[0]&&Q?this.result((c?-200:0)-100,o,e):u==O&&0==f?this.ret(-200-e.length+(d==e.length?0:-100),[0,d]):s>-1?this.ret(-700-e.length,[s,s+this.pattern.length]):u==O?this.ret(-900-e.length,[f,d]):h==O?this.result((c?-200:0)-100-700+(Q?0:-1100),o,e):2==t.length?null:this.result((r[0]?-700:0)-200-1100,r,e)}result(e,t,i){let r=[],n=0;for(let e of t){let t=e+(this.astral?x(y(i,e)):1);n&&r[n-1]==e?r[n-1]=t:(r[n++]=e,r[n++]=t)}return this.ret(e-i.length,r)}}class cc{constructor(e){this.pattern=e,this.matched=[],this.score=0,this.folded=e.toLowerCase()}match(e){if(e.lengthYe(e,{activateOnTyping:!0,activateOnTypingDelay:100,selectOnOpen:!0,override:null,closeOnBlur:!0,maxRenderedOptions:100,defaultKeymap:!0,tooltipClass:()=>"",optionClass:()=>"",aboveCursor:!1,icons:!0,addToOptions:[],positionInfo:dc,filterStrict:!1,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=>fc(e(i),t(i)),optionClass:(e,t)=>i=>fc(e(i),t(i)),addToOptions:(e,t)=>e.concat(t),filterStrict:(e,t)=>e||t})});function fc(e,t){return e?t?e+" "+t:e:t}function dc(e,t,i,r,n,o){let s,O,a=e.textDirection==In.RTL,l=a,h=!1,c="top",u=t.left-n.left,f=n.right-t.right,d=r.right-r.left,p=r.bottom-r.top;if(l&&u=p||e>t.top?s=i.bottom-t.top:(c="bottom",s=t.bottom-i.top)}return{style:`${c}: ${s/((t.bottom-t.top)/o.offsetHeight)}px; max-width: ${O/((t.right-t.left)/o.offsetWidth)}px`,class:"cm-completionInfo-"+(h?a?"left-narrow":"right-narrow":l?"left":"right")}}function pc(e,t,i){if(e<=i)return{from:0,to:e};if(t<0&&(t=0),t<=e>>1){let e=Math.floor(t/i);return{from:e*i,to:(e+1)*i}}let r=Math.floor((e-t)/i);return{from:e-(r+1)*i,to:e-r*i}}class Qc{constructor(e,t,i){this.view=e,this.stateField=t,this.applyCompletion=i,this.info=null,this.infoDestroy=null,this.placeInfoReq={read:()=>this.measureInfo(),write:e=>this.placeInfo(e),key:this},this.space=null,this.currentClass="";let r=e.state.field(t),{options:n,selected:o}=r.open,s=e.state.facet(uc);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,r){let n=document.createElement("span");n.className="cm-completionLabel";let o=e.displayLabel||e.label,s=0;for(let e=0;es&&n.appendChild(document.createTextNode(o.slice(s,t)));let O=n.appendChild(document.createElement("span"));O.appendChild(document.createTextNode(o.slice(t,i))),O.className="cm-completionMatchedText",s=i}return se.position-t.position)).map((e=>e.render))}(s),this.optionClass=s.optionClass,this.tooltipClass=s.tooltipClass,this.range=pc(n.length,o,s.maxRenderedOptions),this.dom=document.createElement("div"),this.dom.className="cm-tooltip-autocomplete",this.updateTooltipClass(e.state),this.dom.addEventListener("mousedown",(i=>{let{options:r}=e.state.field(t).open;for(let t,n=i.target;n&&n!=this.dom;n=n.parentNode)if("LI"==n.nodeName&&(t=/-(\d+)$/.exec(n.id))&&+t[1]{let i=e.state.field(this.stateField,!1);i&&i.tooltip&&e.state.facet(uc).closeOnBlur&&t.relatedTarget!=e.contentDOM&&e.dispatch({effects:lc.of(null)})})),this.showOptions(n,r.id)}mount(){this.updateSel()}showOptions(e,t){this.list&&this.list.remove(),this.list=this.dom.appendChild(this.createListBox(e,t,this.range)),this.list.addEventListener("scroll",(()=>{this.info&&this.view.requestMeasure(this.placeInfoReq)}))}update(e){var t;let i=e.state.field(this.stateField),r=e.startState.field(this.stateField);if(this.updateTooltipClass(e.state),i!=r){let{options:n,selected:o,disabled:s}=i.open;r.open&&r.open.options==n||(this.range=pc(n.length,o,e.state.facet(uc).maxRenderedOptions),this.showOptions(n,i.id)),this.updateSel(),s!=(null===(t=r.open)||void 0===t?void 0:t.disabled)&&this.dom.classList.toggle("cm-tooltip-autocomplete-disabled",!!s)}}updateTooltipClass(e){let t=this.tooltipClass(e);if(t!=this.currentClass){for(let e of this.currentClass.split(" "))e&&this.dom.classList.remove(e);for(let e of t.split(" "))e&&this.dom.classList.add(e);this.currentClass=t}}positioned(e){this.space=e,this.info&&this.view.requestMeasure(this.placeInfoReq)}updateSel(){let e=this.view.state.field(this.stateField),t=e.open;if((t.selected>-1&&t.selected=this.range.to)&&(this.range=pc(t.options.length,t.selected,this.view.state.facet(uc).maxRenderedOptions),this.showOptions(t.options,e.id)),this.updateSelectedOption(t.selected)){this.destroyInfo();let{completion:i}=t.options[t.selected],{info:r}=i;if(!r)return;let n="string"==typeof r?document.createTextNode(r):r(i);if(!n)return;"then"in n?n.then((t=>{t&&this.view.state.field(this.stateField,!1)==e&&this.addInfoPane(t,i)})).catch((e=>Po(this.view.state,e,"completion info"))):this.addInfoPane(n,i)}}addInfoPane(e,t){this.destroyInfo();let i=this.info=document.createElement("div");if(i.className="cm-tooltip cm-completionInfo",null!=e.nodeType)i.appendChild(e),this.infoDestroy=null;else{let{dom:t,destroy:r}=e;i.appendChild(t),this.infoDestroy=r||null}this.dom.appendChild(i),this.view.requestMeasure(this.placeInfoReq)}updateSelectedOption(e){let t=null;for(let i=this.list.firstChild,r=this.range.from;i;i=i.nextSibling,r++)"LI"==i.nodeName&&i.id?r==e?i.hasAttribute("aria-selected")||(i.setAttribute("aria-selected","true"),t=i):i.hasAttribute("aria-selected")&&i.removeAttribute("aria-selected"):r--;return t&&function(e,t){let i=e.getBoundingClientRect(),r=t.getBoundingClientRect(),n=i.height/e.offsetHeight;r.topi.bottom&&(e.scrollTop+=(r.bottom-i.bottom)/n)}(this.list,t),t}measureInfo(){let e=this.dom.querySelector("[aria-selected]");if(!e||!this.info)return null;let t=this.dom.getBoundingClientRect(),i=this.info.getBoundingClientRect(),r=e.getBoundingClientRect(),n=this.space;if(!n){let e=this.dom.ownerDocument.defaultView||window;n={left:0,top:0,right:e.innerWidth,bottom:e.innerHeight}}return r.top>Math.min(n.bottom,t.bottom)-10||r.bottomi.from||0==i.from)&&(n=e,"string"!=typeof a&&a.header?r.appendChild(a.header(a)):r.appendChild(document.createElement("completion-section")).textContent=e)}const l=r.appendChild(document.createElement("li"));l.id=t+"-"+o,l.setAttribute("role","option");let h=this.optionClass(s);h&&(l.className=h);for(let e of this.optionContent){let t=e(s,this.view.state,this.view,O);t&&l.appendChild(t)}}return i.from&&r.classList.add("cm-completionListIncompleteTop"),i.to=this.options.length?this:new mc(this.options,Xc(t,e),this.tooltip,this.timestamp,e,this.disabled)}static build(e,t,i,r,n){let o=function(e,t){let i=[],r=null,n=e=>{i.push(e);let{section:t}=e.completion;if(t){r||(r=[]);let e="string"==typeof t?t:t.name;r.some((t=>t.name==e))||r.push("string"==typeof t?{name:e}:t)}},o=t.facet(uc);for(let r of e)if(r.hasResult()){let e=r.result.getMatch;if(!1===r.result.filter)for(let t of r.result.options)n(new tc(t,r.source,e?e(t):[],1e9-i.length));else{let i,s=t.sliceDoc(r.from,r.to),O=o.filterStrict?new cc(s):new hc(s);for(let t of r.result.options)if(i=O.match(t.label)){let o=t.displayLabel?e?e(t,i.matched):[]:i.matched;n(new tc(t,r.source,o,i.score+(t.boost||0)))}}}if(r){let e=Object.create(null),t=0,n=(e,t)=>{var i,r;return(null!==(i=e.rank)&&void 0!==i?i:1e9)-(null!==(r=t.rank)&&void 0!==r?r:1e9)||(e.namet.score-e.score||a(e.completion,t.completion)))){let t=e.completion;!O||O.label!=t.label||O.detail!=t.detail||null!=O.type&&null!=t.type&&O.type!=t.type||O.apply!=t.apply||O.boost!=t.boost?s.push(e):gc(e.completion)>gc(O)&&(s[s.length-1]=e),O=e.completion}return s}(e,t);if(!o.length)return r&&e.some((e=>1==e.state))?new mc(r.options,r.attrs,r.tooltip,r.timestamp,r.selected,!0):null;let s=t.facet(uc).selectOnOpen?0:-1;if(r&&r.selected!=s&&-1!=r.selected){let e=r.options[r.selected].completion;for(let t=0;tt.hasResult()?Math.min(e,t.from):e),1e8),create:Yc,above:n.aboveCursor},r?r.timestamp:Date.now(),s,!1)}map(e){return new mc(this.options,this.attrs,Object.assign(Object.assign({},this.tooltip),{pos:e.mapPos(this.tooltip.pos)}),this.timestamp,this.selected,this.disabled)}}class $c{constructor(e,t,i){this.active=e,this.id=t,this.open=i}static start(){return new $c(Sc,"cm-ac-"+Math.floor(2e6*Math.random()).toString(36),null)}update(e){let{state:t}=e,i=t.facet(uc),r=(i.override||t.languageDataAt("autocomplete",ic(t)).map(Oc)).map((t=>(this.active.find((e=>e.source==t))||new vc(t,this.active.some((e=>0!=e.state))?1:0)).update(e,i)));r.length==this.active.length&&r.every(((e,t)=>e==this.active[t]))&&(r=this.active);let n=this.open;n&&e.docChanged&&(n=n.map(e.changes)),e.selection||r.some((t=>t.hasResult()&&e.changes.touchesRange(t.from,t.to)))||!function(e,t){if(e==t)return!0;for(let i=0,r=0;;){for(;i1==e.state))&&(n=null),!n&&r.every((e=>1!=e.state))&&r.some((e=>e.hasResult()))&&(r=r.map((e=>e.hasResult()?new vc(e.source,0):e)));for(let t of e.effects)t.is(wc)&&(n=n&&n.setSelected(t.value,this.id));return r==this.active&&n==this.open?this:new $c(r,this.id,n)}get tooltip(){return this.open?this.open.tooltip:null}get attrs(){return this.open?this.open.attrs:bc}}const bc={"aria-autocomplete":"list"};function Xc(e,t){let i={"aria-autocomplete":"list","aria-haspopup":"listbox","aria-controls":e};return t>-1&&(i["aria-activedescendant"]=e+"-"+t),i}const Sc=[];function yc(e){return e.isUserEvent("input.type")?"input":e.isUserEvent("delete.backward")?"delete":null}class vc{constructor(e,t,i=-1){this.source=e,this.state=t,this.explicitPos=i}hasResult(){return!1}update(e,t){let i=yc(e),r=this;i?r=r.handleUserEvent(e,i,t):e.docChanged?r=r.handleChange(e):e.selection&&0!=r.state&&(r=new vc(r.source,0));for(let t of e.effects)if(t.is(ac))r=new vc(r.source,1,t.value?ic(e.state):-1);else if(t.is(lc))r=new vc(r.source,0);else if(t.is(Pc))for(let e of t.value)e.source==r.source&&(r=e);return r}handleUserEvent(e,t,i){return"delete"!=t&&i.activateOnTyping?new vc(this.source,1):this.map(e.changes)}handleChange(e){return e.changes.touchesRange(ic(e.startState))?new vc(this.source,0):this.map(e.changes)}map(e){return e.empty||this.explicitPos<0?this:new vc(this.source,this.state,e.mapPos(this.explicitPos))}}class xc extends vc{constructor(e,t,i,r,n){super(e,2,t),this.result=i,this.from=r,this.to=n}hasResult(){return!0}handleUserEvent(e,t,i){var r;let n=this.result;n.map&&!e.changes.empty&&(n=n.map(n,e.changes));let o=e.changes.mapPos(this.from),s=e.changes.mapPos(this.to,1),O=ic(e.state);if((this.explicitPos<0?O<=o:Os||!n||"delete"==t&&ic(e.startState)==this.from)return new vc(this.source,"input"==t&&i.activateOnTyping?1:0);let a=this.explicitPos<0?-1:e.changes.mapPos(this.explicitPos);return function(e,t,i,r){if(!e)return!1;let n=t.sliceDoc(i,r);return"function"==typeof e?e(n,i,r,t):rc(e,!0).test(n)}(n.validFor,e.state,o,s)?new xc(this.source,a,n,o,s):n.update&&(n=n.update(n,o,s,new Fh(e.state,O,a>=0)))?new xc(this.source,a,n,n.from,null!==(r=n.to)&&void 0!==r?r:ic(e.state)):new vc(this.source,1,a)}handleChange(e){return e.changes.touchesRange(this.from,this.to)?new vc(this.source,0):this.map(e.changes)}map(e){return e.empty?this:(this.result.map?this.result.map(this.result,e):this.result)?new xc(this.source,this.explicitPos<0?-1:e.mapPos(this.explicitPos),this.result,e.mapPos(this.from),e.mapPos(this.to,1)):new vc(this.source,0)}}const Pc=ge.define({map:(e,t)=>e.map((e=>e.map(t)))}),wc=ge.define(),Tc=I.define({create:()=>$c.start(),update:(e,t)=>e.update(t),provide:e=>[Xa.from(e,(e=>e.tooltip)),SO.contentAttributes.from(e,(e=>e.attrs))]});function kc(e,t){const i=t.completion.apply||t.completion.label;let r=e.state.field(Tc).active.find((e=>e.source==t.source));return r instanceof xc&&("string"==typeof i?e.dispatch(Object.assign(Object.assign({},oc(e.state,i,r.from,r.to)),{annotations:nc.of(t.completion)})):i(e,t.completion,r.from,r.to),!0)}const Yc=function(e,t){return i=>new Qc(i,e,t)}(Tc,kc);function Rc(e,t="option"){return i=>{let r=i.state.field(Tc,!1);if(!r||!r.open||r.open.disabled||Date.now()-r.open.timestamp-1?r.open.selected+o*(e?1:-1):e?0:s-1;return O<0?O="page"==t?0:s-1:O>=s&&(O="page"==t?s-1:0),i.dispatch({effects:wc.of(O)}),!0}}const _c=e=>{let t=e.state.field(Tc,!1);return!(e.state.readOnly||!t||!t.open||t.open.selected<0||t.open.disabled||Date.now()-t.open.timestamp!!e.state.field(Tc,!1)&&(e.dispatch({effects:ac.of(!0)}),!0),Zc=e=>{let t=e.state.field(Tc,!1);return!(!t||!t.active.some((e=>0!=e.state))||(e.dispatch({effects:lc.of(null)}),0))};class Ac{constructor(e,t){this.active=e,this.context=t,this.time=Date.now(),this.updates=[],this.done=void 0}}const qc=Yo.fromClass(class{constructor(e){this.view=e,this.debounceUpdate=-1,this.running=[],this.debounceAccept=-1,this.pendingStart=!1,this.composing=0;for(let t of e.state.field(Tc).active)1==t.state&&this.startQuery(t)}update(e){let t=e.state.field(Tc);if(!e.selectionSet&&!e.docChanged&&e.startState.field(Tc)==t)return;let i=e.transactions.some((e=>(e.selection||e.docChanged)&&!yc(e)));for(let t=0;t50&&Date.now()-r.time>1e3){for(let e of r.context.abortListeners)try{e()}catch(e){Po(this.view.state,e)}r.context.abortListeners=null,this.running.splice(t--,1)}else r.updates.push(...e.transactions)}this.debounceUpdate>-1&&clearTimeout(this.debounceUpdate),e.transactions.some((e=>e.effects.some((e=>e.is(ac)))))&&(this.pendingStart=!0);let r=this.pendingStart?50:e.state.facet(uc).activateOnTypingDelay;if(this.debounceUpdate=t.active.some((e=>1==e.state&&!this.running.some((t=>t.active.source==e.source))))?setTimeout((()=>this.startUpdate()),r):-1,0!=this.composing)for(let t of e.transactions)"input"==yc(t)?this.composing=2:2==this.composing&&t.selection&&(this.composing=3)}startUpdate(){this.debounceUpdate=-1,this.pendingStart=!1;let{state:e}=this.view,t=e.field(Tc);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=ic(t),r=new Fh(t,i,e.explicitPos==i),n=new Ac(e,r);this.running.push(n),Promise.resolve(e.source(r)).then((e=>{n.context.aborted||(n.done=e||null,this.scheduleAccept())}),(e=>{this.view.dispatch({effects:lc.of(null)}),Po(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(uc).updateSyncTime))}accept(){var e;this.debounceAccept>-1&&clearTimeout(this.debounceAccept),this.debounceAccept=-1;let t=[],i=this.view.state.facet(uc);for(let r=0;re.source==n.active.source));if(o&&1==o.state)if(null==n.done){let e=new vc(n.active.source,0);for(let t of n.updates)e=e.update(t,i);1!=e.state&&t.push(e)}else this.startQuery(o)}t.length&&this.view.dispatch({effects:Pc.of(t)})}},{eventHandlers:{blur(e){let t=this.view.state.field(Tc,!1);if(t&&t.tooltip&&this.view.state.facet(uc).closeOnBlur){let i=t.open&&Pa(this.view,t.open.tooltip);i&&i.dom.contains(e.relatedTarget)||setTimeout((()=>this.view.dispatch({effects:lc.of(null)})),10)}},compositionstart(){this.composing=1},compositionend(){3==this.composing&&setTimeout((()=>this.view.dispatch({effects:ac.of(!1)})),20),this.composing=0}}}),Wc="object"==typeof navigator&&/Win/.test(navigator.platform),Cc=ee.highest(SO.domEventHandlers({keydown(e,t){let i=t.state.field(Tc,!1);if(!i||!i.open||i.open.disabled||i.open.selected<0||e.key.length>1||e.ctrlKey&&(!Wc||!e.altKey)||e.metaKey)return!1;let r=i.open.options[i.open.selected],n=i.active.find((e=>e.source==r.source)),o=r.completion.commitCharacters||n.result.commitCharacters;return o&&o.indexOf(e.key)>-1&&kc(t,r),!1}})),Uc=SO.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 Nc{constructor(e,t,i,r){this.field=e,this.line=t,this.from=i,this.to=r}}class jc{constructor(e,t,i){this.field=e,this.from=t,this.to=i}map(e){let t=e.mapPos(this.from,-1,T.TrackDel),i=e.mapPos(this.to,1,T.TrackDel);return null==t||null==i?null:new jc(this.field,t,i)}}class Ec{constructor(e,t){this.lines=e,this.fieldPositions=t}instantiate(e,t){let i=[],r=[t],n=e.doc.lineAt(t),o=/^\s*/.exec(n.text)[0];for(let n of this.lines){if(i.length){let i=o,s=/^\t*/.exec(n)[0].length;for(let t=0;tnew jc(e.field,r[e.line]+e.from,r[e.line]+e.to)));return{text:i,ranges:s}}static parse(e){let t,i=[],r=[],n=[];for(let o of e.split(/\r\n?|\n/)){for(;t=/[#$]\{(?:(\d+)(?::([^}]*))?|([^}]*))\}/.exec(o);){let e=t[1]?+t[1]:null,s=t[2]||t[3]||"",O=-1;for(let t=0;t=O&&e.field++}n.push(new Nc(O,r.length,t.index,t.index+s.length)),o=o.slice(0,t.index)+s+o.slice(t.index+t[0].length)}for(let e;e=/\\([{}])/.exec(o);){o=o.slice(0,e.index)+e[1]+o.slice(e.index+e[0].length);for(let t of n)t.line==r.length&&t.from>e.index&&(t.from--,t.to--)}r.push(o)}return new Ec(r,n)}}let zc=Un.widget({widget:new class extends Wn{toDOM(){let e=document.createElement("span");return e.className="cm-snippetFieldPosition",e}ignoreEvent(){return!1}}}),Gc=Un.mark({class:"cm-snippetField"});class Dc{constructor(e,t){this.ranges=e,this.active=t,this.deco=Un.set(e.map((e=>(e.from==e.to?zc:Gc).range(e.from,e.to))))}map(e){let t=[];for(let i of this.ranges){let r=i.map(e);if(!r)return null;t.push(r)}return new Dc(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 Mc=ge.define({map:(e,t)=>e&&e.map(t)}),Bc=ge.define(),Ic=I.define({create:()=>null,update(e,t){for(let i of t.effects){if(i.is(Mc))return i.value;if(i.is(Bc)&&e)return new Dc(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=>SO.decorations.from(e,(e=>e?e.deco:Un.none))});function Lc(e,t){return C.create(e.filter((e=>e.field==t)).map((e=>C.range(e.from,e.to))))}function Kc(e){let t=Ec.parse(e);return(e,i,r,n)=>{let{text:s,ranges:O}=t.instantiate(e.state,r),a={changes:{from:r,to:n,insert:o.of(s)},scrollIntoView:!0,annotations:i?[nc.of(i),me.userEvent.of("input.complete")]:void 0};if(O.length&&(a.selection=Lc(O,0)),O.some((e=>e.field>0))){let t=new Dc(O,0),i=a.effects=[Mc.of(t)];void 0===e.state.field(Ic,!1)&&i.push(ge.appendConfig.of([Ic,ru,ou,Uc]))}e.dispatch(e.state.update(a))}}function Fc(e){return({state:t,dispatch:i})=>{let r=t.field(Ic,!1);if(!r||e<0&&0==r.active)return!1;let n=r.active+e,o=e>0&&!r.ranges.some((t=>t.field==n+e));return i(t.update({selection:Lc(r.ranges,n),effects:Mc.of(o?null:new Dc(r.ranges,n)),scrollIntoView:!0})),!0}}const Hc=({state:e,dispatch:t})=>!!e.field(Ic,!1)&&(t(e.update({effects:Mc.of(null)})),!0),Jc=Fc(1),eu=Fc(-1);const tu=[{key:"Tab",run:Jc,shift:eu},{key:"Escape",run:Hc}],iu=j.define({combine:e=>e.length?e[0]:tu}),ru=ee.highest(YO.compute([iu],(e=>e.facet(iu))));function nu(e,t){return Object.assign(Object.assign({},t),{apply:Kc(e)})}const ou=SO.domEventHandlers({mousedown(e,t){let i,r=t.state.field(Ic,!1);if(!r||null==(i=t.posAtCoords({x:e.clientX,y:e.clientY})))return!1;let n=r.ranges.find((e=>e.from<=i&&e.to>=i));return!(!n||n.field==r.active||(t.dispatch({selection:Lc(r.ranges,n.field),effects:Mc.of(r.ranges.some((e=>e.field>n.field))?new Dc(r.ranges,n.field):null),scrollIntoView:!0}),0))}});function su(e,t){return new RegExp(t(e.source),e.unicode?"u":"")}const Ou=Object.create(null);function au(e){return Ou[e]||(Ou[e]=new WeakMap)}function lu(e,t,i,r,n){for(let o=e.iterLines(),s=0;!o.next().done;){let e,{value:O}=o;for(t.lastIndex=0;e=t.exec(O);)if(!r[e[0]]&&s+e.index!=n&&(i.push({type:"text",label:e[0]}),r[e[0]]=!0,i.length>=2e3))return;s+=O.length+1}}function hu(e,t,i,r,n){let o=e.length>=1e3,s=o&&t.get(e);if(s)return s;let O=[],a=Object.create(null);if(e.children){let o=0;for(let s of e.children){if(s.length>=1e3)for(let e of hu(s,t,i,r-o,n-o))a[e.label]||(a[e.label]=!0,O.push(e));else lu(s,i,O,a,n-o);o+=s.length+1}}else lu(e,i,O,a,n);return o&&O.length<2e3&&t.set(e,O),O}const cu={brackets:["(","[","{","'",'"'],before:")]}:;>",stringPrefixes:[]},uu=ge.define({map(e,t){let i=t.mapPos(e,-1,T.TrackAfter);return null==i?void 0:i}}),fu=new class extends Re{};fu.startSide=1,fu.endSide=-1;const du=I.define({create:()=>Ae.empty,update(e,t){if(e=e.map(t.changes),t.selection){let i=t.state.doc.lineAt(t.selection.main.head);e=e.update({filter:e=>e>=i.from&&e<=i.to})}for(let i of t.effects)i.is(uu)&&(e=e.update({add:[fu.range(i.value,i.value+1)]}));return e}});function pu(){return[bu,du]}const Qu="()[]{}<>";function gu(e){for(let t=0;t{if(($u?e.composing:e.compositionStarted)||e.state.readOnly)return!1;let n=e.state.selection.main;if(r.length>2||2==r.length&&1==x(y(r,0))||t!=n.from||i!=n.to)return!1;let o=yu(e.state,r);return!!o&&(e.dispatch(o),!0)})),Xu=({state:e,dispatch:t})=>{if(e.readOnly)return!1;let i=mu(e,e.selection.main.head).brackets||cu.brackets,r=null,n=e.changeByRange((t=>{if(t.empty){let r=function(e,t){let i=e.sliceString(t-2,t);return x(y(i,0))==i.length?i:i.slice(1)}(e.doc,t.head);for(let n of i)if(n==r&&xu(e.doc,t.head)==gu(y(n,0)))return{changes:{from:t.head-n.length,to:t.head+n.length},range:C.cursor(t.head-n.length)}}return{range:r=t}}));return r||t(e.update(n,{scrollIntoView:!0,userEvent:"delete.backward"})),!r},Su=[{key:"Backspace",run:Xu}];function yu(e,t){let i=mu(e,e.selection.main.head),r=i.brackets||cu.brackets;for(let n of r){let o=gu(y(n,0));if(t==n)return o==n?Tu(e,n,r.indexOf(n+n+n)>-1,i):Pu(e,n,o,i.before||cu.before);if(t==o&&vu(e,e.selection.main.from))return wu(e,n,o)}return null}function vu(e,t){let i=!1;return e.field(du).between(0,e.doc.length,(e=>{e==t&&(i=!0)})),i}function xu(e,t){let i=e.sliceString(t,t+2);return i.slice(0,x(y(i,0)))}function Pu(e,t,i,r){let n=null,o=e.changeByRange((o=>{if(!o.empty)return{changes:[{insert:t,from:o.from},{insert:i,from:o.to}],effects:uu.of(o.to+t.length),range:C.range(o.anchor+t.length,o.head+t.length)};let s=xu(e.doc,o.head);return!s||/\s/.test(s)||r.indexOf(s)>-1?{changes:{insert:t+i,from:o.head},effects:uu.of(o.head+t.length),range:C.cursor(o.head+t.length)}:{range:n=o}}));return n?null:e.update(o,{scrollIntoView:!0,userEvent:"input.type"})}function wu(e,t,i){let r=null,n=e.changeByRange((t=>t.empty&&xu(e.doc,t.head)==i?{changes:{from:t.head,to:t.head+i.length,insert:i},range:C.cursor(t.head+i.length)}:r={range:t}));return r?null:e.update(n,{scrollIntoView:!0,userEvent:"input.type"})}function Tu(e,t,i,r){let n=r.stringPrefixes||cu.stringPrefixes,o=null,s=e.changeByRange((r=>{if(!r.empty)return{changes:[{insert:t,from:r.from},{insert:t,from:r.to}],effects:uu.of(r.to+t.length),range:C.range(r.anchor+t.length,r.head+t.length)};let s,O=r.head,a=xu(e.doc,O);if(a==t){if(ku(e,O))return{changes:{insert:t+t,from:O},effects:uu.of(O+t.length),range:C.cursor(O+t.length)};if(vu(e,O)){let r=i&&e.sliceDoc(O,O+3*t.length)==t+t+t?t+t+t:t;return{changes:{from:O,to:O+r.length,insert:r},range:C.cursor(O+r.length)}}}else{if(i&&e.sliceDoc(O-2*t.length,O)==t+t&&(s=Yu(e,O-2*t.length,n))>-1&&ku(e,s))return{changes:{insert:t+t+t+t,from:O},effects:uu.of(O+t.length),range:C.cursor(O+t.length)};if(e.charCategorizer(O)(a)!=xe.Word&&Yu(e,O,n)>-1&&!function(e,t,i,r){let n=Rl(e).resolveInner(t,-1),o=r.reduce(((e,t)=>Math.max(e,t.length)),0);for(let s=0;s<5;s++){let s=e.sliceDoc(n.from,Math.min(n.to,n.from+i.length+o)),O=s.indexOf(i);if(!O||O>-1&&r.indexOf(s.slice(0,O))>-1){let t=n.firstChild;for(;t&&t.from==n.from&&t.to-t.from>i.length+O;){if(e.sliceDoc(t.to-i.length,t.to)==i)return!1;t=t.firstChild}return!0}let a=n.to==t&&n.parent;if(!a)break;n=a}return!1}(e,O,t,n))return{changes:{insert:t+t,from:O},effects:uu.of(O+t.length),range:C.cursor(O+t.length)}}return{range:o=r}}));return o?null:e.update(s,{scrollIntoView:!0,userEvent:"input.type"})}function ku(e,t){let i=Rl(e).resolveInner(t+1);return i.parent&&i.from==t}function Yu(e,t,i){let r=e.charCategorizer(t);if(r(e.sliceDoc(t-1,t))!=xe.Word)return t;for(let n of i){let i=t-n.length;if(e.sliceDoc(i,t)==n&&r(e.sliceDoc(i-1,i))!=xe.Word)return i}return-1}const Ru=[{key:"Ctrl-Space",run:Vc},{key:"Escape",run:Zc},{key:"ArrowDown",run:Rc(!0)},{key:"ArrowUp",run:Rc(!1)},{key:"PageDown",run:Rc(!0,"page")},{key:"PageUp",run:Rc(!1,"page")},{key:"Enter",run:_c}],_u=ee.highest(YO.computeN([uc],(e=>e.facet(uc).defaultKeymap?[Ru]:[])));const Vu=new WeakMap;var Zu=Object.freeze({__proto__:null,CompletionContext:Fh,acceptCompletion:_c,autocompletion:function(e={}){return[Cc,Tc,uc.of(e),qc,_u,Uc]},clearSnippet:Hc,closeBrackets:pu,closeBracketsKeymap:Su,closeCompletion:Zc,completeAnyWord:e=>{let t=e.state.languageDataAt("wordChars",e.pos).join(""),i=function(e){let t=e.replace(/[\]\-\\]/g,"\\$&");try{return new RegExp(`[\\p{Alphabetic}\\p{Number}_${t}]+`,"ug")}catch(e){return new RegExp(`[w${t}]`,"g")}}(t),r=e.matchBefore(su(i,(e=>e+"$")));if(!r&&!e.explicit)return null;let n=r?r.from:e.pos;return{from:n,options:hu(e.state.doc,au(t),i,5e4,n),validFor:su(i,(e=>"^"+e))}},completeFromList:Jh,completionKeymap:Ru,completionStatus:function(e){let t=e.field(Tc,!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(Tc,!1))||void 0===t?void 0:t.open;if(!i||i.disabled)return[];let r=Vu.get(i.options);return r||Vu.set(i.options,r=i.options.map((e=>e.completion))),r},deleteBracketPair:Xu,hasNextSnippetField:function(e){let t=e.field(Ic,!1);return!(!t||!t.ranges.some((e=>e.field==t.active+1)))},hasPrevSnippetField:function(e){let t=e.field(Ic,!1);return!!(t&&t.active>0)},ifIn:function(e,t){return i=>{for(let r=Rl(i.state).resolveInner(i.pos,-1);r;r=r.parent){if(e.indexOf(r.name)>-1)return t(i);if(r.type.isTop)break}return null}},ifNotIn:ec,insertBracket:yu,insertCompletionText:oc,moveCompletionSelection:Rc,nextSnippetField:Jc,pickedCompletion:nc,prevSnippetField:eu,selectedCompletion:function(e){var t;let i=null===(t=e.field(Tc,!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(Tc,!1))||void 0===t?void 0:t.open;return i&&!i.disabled&&i.selected>=0?i.selected:null},setSelectedCompletion:function(e){return wc.of(e)},snippet:Kc,snippetCompletion:nu,snippetKeymap:iu,startCompletion:Vc});function Au({closing:e,units:t=1}){return i=>function(e,t,i){let r=e.textAfter,n=r.match(/^\s*/)[0].length,o=!1;switch(i.length){case 1:o=r.slice(n,n+i[0].length)===i[0];break;case 2:o=r.slice(n,n+i[0].length)===i[0]||r.slice(n,n+i[1].length)===i[1];break;case 3:o=r.slice(n,n+i[0].length)===i[0]||r.slice(n,n+i[1].length)===i[1]||r.slice(n,n+i[2].length)===i[2];break;default:o=i.some((e=>r.slice(n,n+e.length)===e))}return e.baseIndent+(o?0:e.unit*t)}(i,t,e)}function qu(e){return e.baseIndent}let Wu=function(){let e={indents:{VariableDeclaration:rh(),AssignmentExpression:rh()},keywords:[]};for(let t of Sr.nodeSet.types){let i,r=t.prop(He.group);"keyword"===(null!=r?r[0]:null)&&e.keywords.push(t);let n=t.prop(He.closedBy);i=n?Au({closing:n}):qu,e.indents[t.name]=i}return e}(),Cu=il({String:yl.string,TripleString:yl.string,CommandString:yl.string,StringWithoutInterpolation:yl.string,TripleStringWithoutInterpolation:yl.string,CommandStringWithoutInterpolation:yl.string,"String/$ TripleString/$ CommandString/$":yl.special(yl.brace),"String/( TripleString/( CommandString/(":yl.special(yl.brace),"String/) TripleString/) CommandString/)":yl.special(yl.brace),Comment:yl.lineComment,BlockComment:yl.comment,"mutable struct StructDefinition/end":yl.definitionKeyword,"primitive type PrimitiveDefinition/end":yl.definitionKeyword,"const local global":yl.definitionKeyword,"ForStatement/for ForBinding/in ForStatement/end":yl.controlKeyword,"WhileStatement/while WhileStatement/end":yl.controlKeyword,"IfClause/if IfClause/elseif ElseClause/else IfStatement/end":yl.controlKeyword,"default break return":yl.controlKeyword,"TryStatement/try CatchClause/catch TryElseClause/else FinallyClause/finally TryStatement/end":yl.controlKeyword,"( )":yl.paren,"[ ]":yl.paren,"{ }":yl.paren,[Wu.keywords.map((e=>e.name)).join(" ")]:yl.keyword,BooleanLiteral:yl.bool,Number:yl.number,"Coefficient/PrefixedString!":yl.unit,"Type! TypeParameters!":yl.typeName,"StructDefinition/Identifier StructDefinition/AssignmentExpression/Identifier StructDefinition/TypedExpression/Identifier StructDefinition/AssignmentExpression/TypedExpression/Identifier":yl.definition(yl.propertyName),":: <:":yl.typeOperator,Identifier:yl.variableName,"MacroIdentifier! MacroFieldExpression!":yl.macroName,"MacroDefinition/Definition!":yl.definition(yl.macroName),"FieldName!":yl.propertyName,FieldExpression:yl.propertyName,"FieldExpression .":yl.derefOperator,"Symbol!":yl.atom}),Uu=Yl.define({parser:Sr.configure({props:[Cu,Ll.add(Object.assign(Object.assign({},Wu.indents),{ModuleDefinition:qu,BareModuleDefinition:qu,VariableDeclaration:rh(),AssignmentExpression:rh()}))]}),languageData:{commentTokens:{line:"#"},indentOnInput:/^\s*(\]|\}|\)|end|else|elseif|catch|finally)$/,closeBrackets:{brackets:["(","[","{","'",'"',"`"]}}});const Nu=Uu.data.of({autocomplete:Jh(Wu.keywords.map((e=>({label:e.name,type:"keyword"}))))});let ju={enableKeywordCompletion:!1};function Eu(e=ju){let t=[];return(e=Object.assign(Object.assign({},ju),e)).enableKeywordCompletion&&t.push(Nu),new jl(Uu,t)}function zu(e,t){return({state:i,dispatch:r})=>{if(i.readOnly)return!1;let n=e(t,i);return!!n&&(r(i.update(n)),!0)}}const Gu=zu((function(e,t,i=t.selection.ranges){let r=[],n=-1;for(let{from:e,to:o}of i){let i=r.length,s=1e9,O=Bu(t,e).line;if(O){for(let i=e;i<=o;){let a=t.doc.lineAt(i);if(a.from>n&&(e==o||o>a.from)){n=a.from;let e=/^\s*/.exec(a.text)[0].length,t=e==a.length,i=a.text.slice(e,e+O.length)==O?e:-1;ee.comment<0&&(!e.empty||e.single)))){let e=[];for(let{line:t,token:i,indent:n,empty:o,single:s}of r)!s&&o||e.push({from:t.from+n,insert:i+" "});let i=t.changes(e);return{changes:i,selection:t.selection.map(i,1)}}if(1!=e&&r.some((e=>e.comment>=0))){let e=[];for(let{line:t,comment:i,token:n}of r)if(i>=0){let r=t.from+i,o=r+n.length;" "==t.text[o-t.from]&&o++,e.push({from:r,to:o})}return{changes:e}}return null}),0),Du=zu(Iu,0),Mu=zu(((e,t)=>Iu(e,t,function(e){let t=[];for(let i of e.selection.ranges){let r=e.doc.lineAt(i.from),n=i.to<=r.to?r:e.doc.lineAt(i.to),o=t.length-1;o>=0&&t[o].to>r.from?t[o].to=n.to:t.push({from:r.from+/^\s*/.exec(r.text)[0].length,to:n.to})}return t}(t))),0);function Bu(e,t){let i=e.languageDataAt("commentTokens",t);return i.length?i[0]:{}}function Iu(e,t,i=t.selection.ranges){let r=i.map((e=>Bu(t,e.from).block));if(!r.every((e=>e)))return null;let n=i.map(((e,i)=>function(e,{open:t,close:i},r,n){let o,s,O=e.sliceDoc(r-50,r),a=e.sliceDoc(n,n+50),l=/\s*$/.exec(O)[0].length,h=/^\s*/.exec(a)[0].length,c=O.length-l;if(O.slice(c-t.length,c)==t&&a.slice(h,h+i.length)==i)return{open:{pos:r-l,margin:l&&1},close:{pos:n+h,margin:h&&1}};n-r<=100?o=s=e.sliceDoc(r,n):(o=e.sliceDoc(r,r+50),s=e.sliceDoc(n-50,n));let u=/^\s*/.exec(o)[0].length,f=/\s*$/.exec(s)[0].length,d=s.length-f-i.length;return o.slice(u,u+t.length)==t&&s.slice(d,d+i.length)==i?{open:{pos:r+u+t.length,margin:/\s/.test(o.charAt(u+t.length))?1:0},close:{pos:n-f-i.length,margin:/\s/.test(s.charAt(d-1))?1:0}}:null}(t,r[i],e.from,e.to)));if(2!=e&&!n.every((e=>e)))return{changes:t.changes(i.map(((e,t)=>n[t]?[]:[{from:e.from,insert:r[t].open+" "},{from:e.to,insert:" "+r[t].close}])))};if(1!=e&&n.some((e=>e))){let e=[];for(let t,i=0;iYe(e,{minDepth:100,newGroupDelay:500,joinToEvent:(e,t)=>t},{minDepth:Math.max,newGroupDelay:Math.min,joinToEvent:(e,t)=>(i,r)=>e(i,r)||t(i,r)})}),Ju=I.define({create:()=>Qf.empty,update(e,t){let i=t.state.facet(Hu),r=t.annotation(Lu);if(r){let n=Of.fromTransaction(t,r.selection),o=r.side,s=0==o?e.undone:e.done;return s=n?af(s,s.length,i.minDepth,n):cf(s,t.startState.selection),new Qf(0==o?r.rest:s,0==o?s:r.rest)}let n=t.annotation(Ku);if("full"!=n&&"before"!=n||(e=e.isolate()),!1===t.annotation(me.addToHistory))return t.changes.empty?e:e.addMapping(t.changes.desc);let o=Of.fromTransaction(t),s=t.annotation(me.time),O=t.annotation(me.userEvent);return o?e=e.addChanges(o,s,O,i,t):t.selection&&(e=e.addSelection(t.startState.selection,s,O,i.newGroupDelay)),"full"!=n&&"after"!=n||(e=e.isolate()),e},toJSON:e=>({done:e.done.map((e=>e.toJSON())),undone:e.undone.map((e=>e.toJSON()))}),fromJSON:e=>new Qf(e.done.map(Of.fromJSON),e.undone.map(Of.fromJSON))});function ef(e={}){return[Ju,Hu.of(e),SO.domEventHandlers({beforeinput(e,t){let i="historyUndo"==e.inputType?rf:"historyRedo"==e.inputType?nf:null;return!!i&&(e.preventDefault(),i(t))}})]}function tf(e,t){return function({state:i,dispatch:r}){if(!t&&i.readOnly)return!1;let n=i.field(Ju,!1);if(!n)return!1;let o=n.pop(e,i,t);return!!o&&(r(o),!0)}}const rf=tf(0,!1),nf=tf(1,!1),of=tf(0,!0),sf=tf(1,!0);class Of{constructor(e,t,i,r,n){this.changes=e,this.effects=t,this.mapped=i,this.startSelection=r,this.selectionsAfter=n}setSelAfter(e){return new Of(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 Of(e.changes&&Y.fromJSON(e.changes),[],e.mapped&&k.fromJSON(e.mapped),e.startSelection&&C.fromJSON(e.startSelection),e.selectionsAfter.map(C.fromJSON))}static fromTransaction(e,t){let i=hf;for(let t of e.startState.facet(Fu)){let r=t(e);r.length&&(i=i.concat(r))}return!i.length&&e.changes.empty?null:new Of(e.changes.invert(e.startState.doc),i,void 0,t||e.startState.selection,hf)}static selection(e){return new Of(void 0,hf,void 0,void 0,e)}}function af(e,t,i,r){let n=t+1>i+20?t-i-1:0,o=e.slice(n,t);return o.push(r),o}function lf(e,t){return e.length?t.length?e.concat(t):e:t}const hf=[];function cf(e,t){if(e.length){let i=e[e.length-1],r=i.selectionsAfter.slice(Math.max(0,i.selectionsAfter.length-200));return r.length&&r[r.length-1].eq(t)?e:(r.push(t),af(e,e.length-1,1e9,i.setSelAfter(r)))}return[Of.selection([t])]}function uf(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 ff(e,t){if(!e.length)return e;let i=e.length,r=hf;for(;i;){let n=df(e[i-1],t,r);if(n.changes&&!n.changes.empty||n.effects.length){let t=e.slice(0,i);return t[i-1]=n,t}t=n.mapped,i--,r=n.selectionsAfter}return r.length?[Of.selection(r)]:hf}function df(e,t,i){let r=lf(e.selectionsAfter.length?e.selectionsAfter.map((e=>e.map(t))):hf,i);if(!e.changes)return Of.selection(r);let n=e.changes.map(t),o=t.mapDesc(e.changes,!0),s=e.mapped?e.mapped.composeDesc(o):o;return new Of(n,ge.mapEffects(e.effects,t),s,e.startSelection.map(o),r)}const pf=/^(input\.type|delete)($|\.)/;class Qf{constructor(e,t,i=0,r){this.done=e,this.undone=t,this.prevTime=i,this.prevUserEvent=r}isolate(){return this.prevTime?new Qf(this.done,this.undone):this}addChanges(e,t,i,r,n){let o=this.done,s=o[o.length-1];return o=s&&s.changes&&!s.changes.empty&&e.changes&&(!i||pf.test(i))&&(!s.selectionsAfter.length&&t-this.prevTimei.push(e,t))),t.iterChangedRanges(((e,t,n,o)=>{for(let e=0;e=t&&n<=s&&(r=!0)}})),r}(s.changes,e.changes))||"input.type.compose"==i)?af(o,o.length-1,r.minDepth,new Of(e.changes.compose(s.changes),lf(e.effects,s.effects),s.mapped,s.startSelection,hf)):af(o,o.length,r.minDepth,e),new Qf(o,hf,t,i)}addSelection(e,t,i,r){let n=this.done.length?this.done[this.done.length-1].selectionsAfter:hf;return n.length>0&&t-this.prevTimee.empty!=t.ranges[i].empty)).length}(n[n.length-1],e)?this:new Qf(cf(this.done,e),this.undone,t,i)}addMapping(e){return new Qf(ff(this.done,e),ff(this.undone,e),this.prevTime,this.prevUserEvent)}pop(e,t,i){let r=0==e?this.done:this.undone;if(0==r.length)return null;let n=r[r.length-1],o=n.selectionsAfter[0]||t.selection;if(i&&n.selectionsAfter.length)return t.update({selection:n.selectionsAfter[n.selectionsAfter.length-1],annotations:Lu.of({side:e,rest:uf(r),selection:o}),userEvent:0==e?"select.undo":"select.redo",scrollIntoView:!0});if(n.changes){let i=1==r.length?hf:r.slice(0,r.length-1);return n.mapped&&(i=ff(i,n.mapped)),t.update({changes:n.changes,selection:n.startSelection,effects:n.effects,annotations:Lu.of({side:e,rest:i,selection:o}),filter:!1,userEvent:0==e?"undo":"redo",scrollIntoView:!0})}return null}}Qf.empty=new Qf(hf,hf);const gf=[{key:"Mod-z",run:rf,preventDefault:!0},{key:"Mod-y",mac:"Mod-Shift-z",run:nf,preventDefault:!0},{linux:"Ctrl-Shift-z",run:nf,preventDefault:!0},{key:"Mod-u",run:of,preventDefault:!0},{key:"Alt-u",mac:"Mod-Shift-u",run:sf,preventDefault:!0}];function mf(e,t){return C.create(e.ranges.map(t),e.mainIndex)}function $f(e,t){return e.update({selection:t,scrollIntoView:!0,userEvent:"select"})}function bf({state:e,dispatch:t},i){let r=mf(e.selection,i);return!r.eq(e.selection,!0)&&(t($f(e,r)),!0)}function Xf(e,t){return C.cursor(t?e.to:e.from)}function Sf(e,t){return bf(e,(i=>i.empty?e.moveByChar(i,t):Xf(i,t)))}function yf(e){return e.textDirectionAt(e.state.selection.main.head)==In.LTR}const vf=e=>Sf(e,!yf(e)),xf=e=>Sf(e,yf(e));function Pf(e,t){return bf(e,(i=>i.empty?e.moveByGroup(i,t):Xf(i,t)))}function wf(e,t,i){if(t.type.prop(i))return!0;let r=t.to-t.from;return r&&(r>2||/[^\s,.;:]/.test(e.sliceDoc(t.from,t.to)))||t.firstChild}function Tf(e,t,i){let r,n,o=Rl(e).resolveInner(t.head),s=i?He.closedBy:He.openedBy;for(let r=t.head;;){let t=i?o.childAfter(r):o.childBefore(r);if(!t)break;wf(e,t,s)?o=t:r=i?t.to:t.from}return n=o.type.prop(s)&&(r=i?Eh(e,o.from,1):Eh(e,o.to,-1))&&r.matched?i?r.end.to:r.end.from:i?o.to:o.from,C.cursor(n,i?-1:1)}function kf(e,t){return bf(e,(i=>{if(!i.empty)return Xf(i,t);let r=e.moveVertically(i,t);return r.head!=i.head?r:e.moveToLineBoundary(i,t)}))}const Yf=e=>kf(e,!1),Rf=e=>kf(e,!0);function _f(e){let t,i=e.scrollDOM.clientHeighti.empty?e.moveVertically(i,t,r.height):Xf(i,t)));if(o.eq(n.selection))return!1;if(r.selfScroll){let t=e.coordsAtPos(n.selection.main.head),s=e.scrollDOM.getBoundingClientRect(),O=s.top+r.marginTop,a=s.bottom-r.marginBottom;t&&t.top>O&&t.bottomVf(e,!1),Af=e=>Vf(e,!0);function qf(e,t,i){let r=e.lineBlockAt(t.head),n=e.moveToLineBoundary(t,i);if(n.head==t.head&&n.head!=(i?r.to:r.from)&&(n=e.moveToLineBoundary(t,i,!1)),!i&&n.head==r.from&&r.length){let i=/^\s*/.exec(e.state.sliceDoc(r.from,Math.min(r.from+100,r.to)))[0].length;i&&t.head!=r.from+i&&(n=C.cursor(r.from+i))}return n}function Wf(e,t){let i=mf(e.state.selection,(e=>{let i=t(e);return C.range(e.anchor,i.head,i.goalColumn,i.bidiLevel||void 0)}));return!i.eq(e.state.selection)&&(e.dispatch($f(e.state,i)),!0)}function Cf(e,t){return Wf(e,(i=>e.moveByChar(i,t)))}const Uf=e=>Cf(e,!yf(e)),Nf=e=>Cf(e,yf(e));function jf(e,t){return Wf(e,(i=>e.moveByGroup(i,t)))}function Ef(e,t){return Wf(e,(i=>e.moveVertically(i,t)))}const zf=e=>Ef(e,!1),Gf=e=>Ef(e,!0);function Df(e,t){return Wf(e,(i=>e.moveVertically(i,t,_f(e).height)))}const Mf=e=>Df(e,!1),Bf=e=>Df(e,!0),If=({state:e,dispatch:t})=>(t($f(e,{anchor:0})),!0),Lf=({state:e,dispatch:t})=>(t($f(e,{anchor:e.doc.length})),!0),Kf=({state:e,dispatch:t})=>(t($f(e,{anchor:e.selection.main.anchor,head:0})),!0),Ff=({state:e,dispatch:t})=>(t($f(e,{anchor:e.selection.main.anchor,head:e.doc.length})),!0);function Hf(e,t){if(e.state.readOnly)return!1;let i="delete.selection",{state:r}=e,n=r.changeByRange((r=>{let{from:n,to:o}=r;if(n==o){let s=t(r);sn&&(i="delete.forward",s=Jf(e,s,!0)),n=Math.min(n,s),o=Math.max(o,s)}else n=Jf(e,n,!1),o=Jf(e,o,!0);return n==o?{range:r}:{changes:{from:n,to:o},range:C.cursor(n,nt(e))))r.between(t,t,((e,r)=>{et&&(t=i?r:e)}));return t}const ed=(e,t)=>Hf(e,(i=>{let r,n,o=i.from,{state:s}=e,O=s.doc.lineAt(o);if(!t&&o>O.from&&oed(e,!1),id=e=>ed(e,!0),rd=(e,t)=>Hf(e,(i=>{let r=i.head,{state:n}=e,o=n.doc.lineAt(r),s=n.charCategorizer(r);for(let e=null;;){if(r==(t?o.to:o.from)){r==i.head&&o.number!=(t?n.doc.lines:1)&&(r+=t?1:-1);break}let O=m(o.text,r-o.from,t)+o.from,a=o.text.slice(Math.min(r,O)-o.from,Math.max(r,O)-o.from),l=s(a);if(null!=e&&l!=e)break;" "==a&&r==i.head||(e=l),r=O}return r})),nd=e=>rd(e,!1);function od(e){let t=[],i=-1;for(let r of e.selection.ranges){let n=e.doc.lineAt(r.from),o=e.doc.lineAt(r.to);if(r.empty||r.to!=o.from||(o=e.doc.lineAt(r.to-1)),i>=n.number){let e=t[t.length-1];e.to=o.to,e.ranges.push(r)}else t.push({from:n.from,to:o.to,ranges:[r]});i=o.number+1}return t}function sd(e,t,i){if(e.readOnly)return!1;let r=[],n=[];for(let t of od(e)){if(i?t.to==e.doc.length:0==t.from)continue;let o=e.doc.lineAt(i?t.to+1:t.from-1),s=o.length+1;if(i){r.push({from:t.to,to:o.to},{from:t.from,insert:o.text+e.lineBreak});for(let i of t.ranges)n.push(C.range(Math.min(e.doc.length,i.anchor+s),Math.min(e.doc.length,i.head+s)))}else{r.push({from:o.from,to:t.from},{from:t.to,insert:e.lineBreak+o.text});for(let e of t.ranges)n.push(C.range(e.anchor-s,e.head-s))}}return!!r.length&&(t(e.update({changes:r,scrollIntoView:!0,selection:C.create(n,e.selection.mainIndex),userEvent:"move.line"})),!0)}const Od=({state:e,dispatch:t})=>sd(e,t,!1),ad=({state:e,dispatch:t})=>sd(e,t,!0);function ld(e,t,i){if(e.readOnly)return!1;let r=[];for(let t of od(e))i?r.push({from:t.from,insert:e.doc.slice(t.from,t.to)+e.lineBreak}):r.push({from:t.to,insert:e.lineBreak+e.doc.slice(t.from,t.to)});return t(e.update({changes:r,scrollIntoView:!0,userEvent:"input.copyline"})),!0}const hd=ud(!1),cd=ud(!0);function ud(e){return({state:t,dispatch:i})=>{if(t.readOnly)return!1;let r=t.changeByRange((i=>{let{from:r,to:n}=i,s=t.doc.lineAt(r),O=!e&&r==n&&function(e,t){if(/\(\)|\[\]|\{\}/.test(e.sliceDoc(t-1,t+1)))return{from:t,to:t};let i,r=Rl(e).resolveInner(t),n=r.childBefore(t),o=r.childAfter(t);return n&&o&&n.to<=t&&o.from>=t&&(i=n.type.prop(He.closedBy))&&i.indexOf(o.name)>-1&&e.doc.lineAt(n.to).from==e.doc.lineAt(o.from).from&&!/\S/.test(e.sliceDoc(n.to,o.from))?{from:n.to,to:o.from}:null}(t,r);e&&(r=n=(n<=s.to?s:t.doc.lineAt(n)).to);let a=new Il(t,{simulateBreak:r,simulateDoubleBreak:!!O}),l=Bl(a,r);for(null==l&&(l=Be(/^\s*/.exec(t.doc.lineAt(r).text)[0],t.tabSize));ns.from&&r{let n=[];for(let o=r.from;o<=r.to;){let s=e.doc.lineAt(o);s.number>i&&(r.empty||r.to>s.from)&&(t(s,n,r),i=s.number),o=s.to+1}let o=e.changes(n);return{changes:n,range:C.range(o.mapPos(r.anchor,1),o.mapPos(r.head,1))}}))}const dd=({state:e,dispatch:t})=>!e.readOnly&&(t(e.update(fd(e,((t,i)=>{i.push({from:t.from,insert:e.facet(Gl)})})),{userEvent:"input.indent"})),!0),pd=({state:e,dispatch:t})=>!e.readOnly&&(t(e.update(fd(e,((t,i)=>{let r=/^\s*/.exec(t.text)[0];if(!r)return;let n=Be(r,e.tabSize),o=0,s=Ml(e,Math.max(0,n-Dl(e)));for(;obf(e,(t=>C.cursor(e.lineBlockAt(t.head).from,1))),shift:e=>Wf(e,(t=>C.cursor(e.lineBlockAt(t.head).from)))},{key:"Ctrl-e",run:e=>bf(e,(t=>C.cursor(e.lineBlockAt(t.head).to,-1))),shift:e=>Wf(e,(t=>C.cursor(e.lineBlockAt(t.head).to)))},{key:"Ctrl-d",run:id},{key:"Ctrl-h",run:td},{key:"Ctrl-k",run:e=>Hf(e,(t=>{let i=e.lineBlockAt(t.head).to;return t.head{if(e.readOnly)return!1;let i=e.changeByRange((e=>({changes:{from:e.from,to:e.to,insert:o.of(["",""])},range:C.cursor(e.from)})));return t(e.update(i,{scrollIntoView:!0,userEvent:"input"})),!0}},{key:"Ctrl-t",run:({state:e,dispatch:t})=>{if(e.readOnly)return!1;let i=e.changeByRange((t=>{if(!t.empty||0==t.from||t.from==e.doc.length)return{range:t};let i=t.from,r=e.doc.lineAt(i),n=i==r.from?i-1:m(r.text,i-r.from,!1)+r.from,o=i==r.to?i+1:m(r.text,i-r.from,!0)+r.from;return{changes:{from:n,to:o,insert:e.doc.slice(i,o).append(e.doc.slice(n,i))},range:C.cursor(o)}}));return!i.changes.empty&&(t(e.update(i,{scrollIntoView:!0,userEvent:"move.character"})),!0)}},{key:"Ctrl-v",run:Af}],gd=[{key:"ArrowLeft",run:vf,shift:Uf,preventDefault:!0},{key:"Mod-ArrowLeft",mac:"Alt-ArrowLeft",run:e=>Pf(e,!yf(e)),shift:e=>jf(e,!yf(e)),preventDefault:!0},{mac:"Cmd-ArrowLeft",run:e=>bf(e,(t=>qf(e,t,!yf(e)))),shift:e=>Wf(e,(t=>qf(e,t,!yf(e)))),preventDefault:!0},{key:"ArrowRight",run:xf,shift:Nf,preventDefault:!0},{key:"Mod-ArrowRight",mac:"Alt-ArrowRight",run:e=>Pf(e,yf(e)),shift:e=>jf(e,yf(e)),preventDefault:!0},{mac:"Cmd-ArrowRight",run:e=>bf(e,(t=>qf(e,t,yf(e)))),shift:e=>Wf(e,(t=>qf(e,t,yf(e)))),preventDefault:!0},{key:"ArrowUp",run:Yf,shift:zf,preventDefault:!0},{mac:"Cmd-ArrowUp",run:If,shift:Kf},{mac:"Ctrl-ArrowUp",run:Zf,shift:Mf},{key:"ArrowDown",run:Rf,shift:Gf,preventDefault:!0},{mac:"Cmd-ArrowDown",run:Lf,shift:Ff},{mac:"Ctrl-ArrowDown",run:Af,shift:Bf},{key:"PageUp",run:Zf,shift:Mf},{key:"PageDown",run:Af,shift:Bf},{key:"Home",run:e=>bf(e,(t=>qf(e,t,!1))),shift:e=>Wf(e,(t=>qf(e,t,!1))),preventDefault:!0},{key:"Mod-Home",run:If,shift:Kf},{key:"End",run:e=>bf(e,(t=>qf(e,t,!0))),shift:e=>Wf(e,(t=>qf(e,t,!0))),preventDefault:!0},{key:"Mod-End",run:Lf,shift:Ff},{key:"Enter",run:hd},{key:"Mod-a",run:({state:e,dispatch:t})=>(t(e.update({selection:{anchor:0,head:e.doc.length},userEvent:"select"})),!0)},{key:"Backspace",run:td,shift:td},{key:"Delete",run:id},{key:"Mod-Backspace",mac:"Alt-Backspace",run:nd},{key:"Mod-Delete",mac:"Alt-Delete",run:e=>rd(e,!0)},{mac:"Mod-Backspace",run:e=>Hf(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=>Hf(e,(t=>{let i=e.moveToLineBoundary(t,!0).head;return t.head({mac:e.key,run:e.run,shift:e.shift})))),md=[{key:"Alt-ArrowLeft",mac:"Ctrl-ArrowLeft",run:e=>bf(e,(t=>Tf(e.state,t,!yf(e)))),shift:e=>Wf(e,(t=>Tf(e.state,t,!yf(e))))},{key:"Alt-ArrowRight",mac:"Ctrl-ArrowRight",run:e=>bf(e,(t=>Tf(e.state,t,yf(e)))),shift:e=>Wf(e,(t=>Tf(e.state,t,yf(e))))},{key:"Alt-ArrowUp",run:Od},{key:"Shift-Alt-ArrowUp",run:({state:e,dispatch:t})=>ld(e,t,!1)},{key:"Alt-ArrowDown",run:ad},{key:"Shift-Alt-ArrowDown",run:({state:e,dispatch:t})=>ld(e,t,!0)},{key:"Escape",run:({state:e,dispatch:t})=>{let i=e.selection,r=null;return i.ranges.length>1?r=C.create([i.main]):i.main.empty||(r=C.create([C.cursor(i.main.head)])),!!r&&(t($f(e,r)),!0)}},{key:"Mod-Enter",run:cd},{key:"Alt-l",mac:"Ctrl-l",run:({state:e,dispatch:t})=>{let i=od(e).map((({from:t,to:i})=>C.range(t,Math.min(i+1,e.doc.length))));return t(e.update({selection:C.create(i),userEvent:"select"})),!0}},{key:"Mod-i",run:({state:e,dispatch:t})=>{let i=mf(e.selection,(t=>{var i;for(let r=Rl(e).resolveStack(t.from,1);r;r=r.next){let{node:e}=r;if((e.from=t.to||e.to>t.to&&e.from<=t.from)&&(null===(i=e.parent)||void 0===i?void 0:i.parent))return C.range(e.to,e.from)}return t}));return t($f(e,i)),!0},preventDefault:!0},{key:"Mod-[",run:pd},{key:"Mod-]",run:dd},{key:"Mod-Alt-\\",run:({state:e,dispatch:t})=>{if(e.readOnly)return!1;let i=Object.create(null),r=new Il(e,{overrideIndentation:e=>{let t=i[e];return null==t?-1:t}}),n=fd(e,((t,n,o)=>{let s=Bl(r,t.from);if(null==s)return;/\S/.test(t.text)||(s=0);let O=/^\s*/.exec(t.text)[0],a=Ml(e,s);(O!=a||o.from{if(e.state.readOnly)return!1;let{state:t}=e,i=t.changes(od(t).map((({from:e,to:i})=>(e>0?e--:ie.moveVertically(t,!0))).map(i);return e.dispatch({changes:i,selection:r,scrollIntoView:!0,userEvent:"delete.line"}),!0}},{key:"Shift-Mod-\\",run:({state:e,dispatch:t})=>function(e,t,i){let r=!1,n=mf(e.selection,(t=>{let n=Eh(e,t.head,-1)||Eh(e,t.head,1)||t.head>0&&Eh(e,t.head-1,1)||t.head{let{state:t}=e,i=t.doc.lineAt(t.selection.main.from),r=Bu(e.state,i.from);return r.line?Gu(e):!!r.block&&Mu(e)}},{key:"Alt-A",run:Du}].concat(gd);function $d(){var e=arguments[0];"string"==typeof e&&(e=document.createElement(e));var t=1,i=arguments[1];if(i&&"object"==typeof i&&null==i.nodeType&&!Array.isArray(i)){for(var r in i)if(Object.prototype.hasOwnProperty.call(i,r)){var n=i[r];"string"==typeof n?e.setAttribute(r,n):null!=n&&(e[r]=n)}t++}for(;te.normalize("NFKD"):e=>e;class Sd{constructor(e,t,i=0,r=e.length,n,o){this.test=o,this.value={from:0,to:0},this.done=!1,this.matches=[],this.buffer="",this.bufferPos=0,this.iter=e.iterRange(i,r),this.bufferStart=i,this.normalize=n?e=>n(Xd(e)):Xd,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 y(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=v(e),i=this.bufferStart+this.bufferPos;this.bufferPos+=x(e);let r=this.normalize(t);for(let e=0,n=i;;e++){let o=r.charCodeAt(e),s=this.match(o,n,this.bufferPos+this.bufferStart);if(e==r.length-1){if(s)return this.value=s,this;break}n==i&&ethis.to&&(this.curLine=this.curLine.slice(0,this.to-this.curLineStart)),this.iter.next())}nextLine(){this.curLineStart=this.curLineStart+this.curLine.length+1,this.curLineStart>this.to?this.curLine="":this.getLine(0)}next(){for(let e=this.matchPos-this.curLineStart;;){this.re.lastIndex=e;let t=this.matchPos<=this.to&&this.re.exec(this.curLine);if(t){let i=this.curLineStart+t.index,r=i+t[0].length;if(this.matchPos=kd(this.text,r+(i==r?1:0)),i==this.curLineStart+this.curLine.length&&this.nextLine(),(ithis.value.to)&&(!this.test||this.test(i,r,t)))return this.value={from:i,to:r,match:t},this;e=this.matchPos-this.curLineStart}else{if(!(this.curLineStart+this.curLine.length=i||r.to<=t){let r=new wd(t,e.sliceString(t,i));return Pd.set(e,r),r}if(r.from==t&&r.to==i)return r;let{text:n,from:o}=r;return o>t&&(n=e.sliceString(t,o)+n,o=t),r.to=this.to?this.to:this.text.lineAt(e).to}next(){for(;;){let e=this.re.lastIndex=this.matchPos-this.flat.from,t=this.re.exec(this.flat.text);if(t&&!t[0]&&t.index==e&&(this.re.lastIndex=e+1,t=this.re.exec(this.flat.text)),t){let e=this.flat.from+t.index,i=e+t[0].length;if((this.flat.to>=this.to||t.index+t[0].length<=this.flat.text.length-10)&&(!this.test||this.test(e,i,t)))return this.value={from:e,to:i,match:t},this.matchPos=kd(this.text,i+(e==i?1:0)),this}if(this.flat.to==this.to)return this.done=!0,this;this.flat=wd.get(this.text,this.flat.from,this.chunkEnd(this.flat.from+2*this.flat.text.length))}}}function kd(e,t){if(t>=e.length)return t;let i,r=e.lineAt(t);for(;t=56320&&i<57344;)t++;return t}function Yd(e){let t=$d("input",{class:"cm-textfield",name:"line",value:String(e.state.doc.lineAt(e.state.selection.main.head).number)});function i(){let i=/^([+-])?(\d+)?(:\d+)?(%)?$/.exec(t.value);if(!i)return;let{state:r}=e,n=r.doc.lineAt(r.selection.main.head),[,o,s,O,a]=i,l=O?+O.slice(1):0,h=s?+s:n.number;if(s&&a){let e=h/100;o&&(e=e*("-"==o?-1:1)+n.number/r.doc.lines),h=Math.round(r.doc.lines*e)}else s&&o&&(h=h*("-"==o?-1:1)+n.number);let c=r.doc.line(Math.max(1,Math.min(r.doc.lines,h))),u=C.cursor(c.from+Math.max(0,Math.min(l,c.length)));e.dispatch({effects:[Rd.of(!1),SO.scrollIntoView(u.from,{y:"center"})],selection:u}),e.focus()}return{dom:$d("form",{class:"cm-gotoLine",onkeydown:t=>{27==t.keyCode?(t.preventDefault(),e.dispatch({effects:Rd.of(!1)}),e.focus()):13==t.keyCode&&(t.preventDefault(),i())},onsubmit:e=>{e.preventDefault(),i()}},$d("label",e.state.phrase("Go to line"),": ",t)," ",$d("button",{class:"cm-button",type:"submit"},e.state.phrase("go")))}}"undefined"!=typeof Symbol&&(xd.prototype[Symbol.iterator]=Td.prototype[Symbol.iterator]=function(){return this});const Rd=ge.define(),_d=(I.define({create:()=>!0,update(e,t){for(let i of t.effects)i.is(Rd)&&(e=i.value);return e},provide:e=>Va.from(e,(e=>e?Yd:null))}),SO.baseTheme({".cm-panel.cm-gotoLine":{padding:"2px 6px 4px","& label":{fontSize:"80%"}}}),{highlightWordAroundCursor:!1,minSelectionLength:1,maxMatches:100,wholeWords:!1}),Vd=j.define({combine:e=>Ye(e,_d,{highlightWordAroundCursor:(e,t)=>e||t,minSelectionLength:Math.min,maxMatches:Math.min})});function Zd(e){let t=[Ud,Cd];return e&&t.push(Vd.of(e)),t}const Ad=Un.mark({class:"cm-selectionMatch"}),qd=Un.mark({class:"cm-selectionMatch cm-selectionMatch-main"});function Wd(e,t,i,r){return!(0!=i&&e(t.sliceDoc(i-1,i))==xe.Word||r!=t.doc.length&&e(t.sliceDoc(r,r+1))==xe.Word)}const Cd=Yo.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(Vd),{state:i}=e,r=i.selection;if(r.ranges.length>1)return Un.none;let n,o=r.main,s=null;if(o.empty){if(!t.highlightWordAroundCursor)return Un.none;let e=i.wordAt(o.head);if(!e)return Un.none;s=i.charCategorizer(o.head),n=i.sliceDoc(e.from,e.to)}else{let e=o.to-o.from;if(e200)return Un.none;if(t.wholeWords){if(n=i.sliceDoc(o.from,o.to),s=i.charCategorizer(o.head),!Wd(s,i,o.from,o.to)||!function(e,t,i,r){return e(t.sliceDoc(i,i+1))==xe.Word&&e(t.sliceDoc(r-1,r))==xe.Word}(s,i,o.from,o.to))return Un.none}else if(n=i.sliceDoc(o.from,o.to),!n)return Un.none}let O=[];for(let r of e.visibleRanges){let e=new Sd(i.doc,n,r.from,r.to);for(;!e.next().done;){let{from:r,to:n}=e.value;if((!s||Wd(s,i,r,n))&&(o.empty&&r<=o.from&&n>=o.to?O.push(qd.range(r,n)):(r>=o.to||n<=o.from)&&O.push(Ad.range(r,n)),O.length>t.maxMatches))return Un.none}}return Un.set(O)}},{decorations:e=>e.decorations}),Ud=SO.baseTheme({".cm-selectionMatch":{backgroundColor:"#99ff7780"},".cm-searchMatch .cm-selectionMatch":{backgroundColor:"transparent"}});const Nd=({state:e,dispatch:t})=>{let{ranges:i}=e.selection;if(i.some((e=>e.from===e.to)))return(({state:e,dispatch:t})=>{let{selection:i}=e,r=C.create(i.ranges.map((t=>e.wordAt(t.head)||C.cursor(t.head))),i.mainIndex);return!r.eq(i)&&(t(e.update({selection:r})),!0)})({state:e,dispatch:t});let r=e.sliceDoc(i[0].from,i[0].to);if(e.selection.ranges.some((t=>e.sliceDoc(t.from,t.to)!=r)))return!1;let n=function(e,t){let{main:i,ranges:r}=e.selection,n=e.wordAt(i.head),o=n&&n.from==i.from&&n.to==i.to;for(let i=!1,n=new Sd(e.doc,t,r[r.length-1].to);;){if(n.next(),!n.done){if(i&&r.some((e=>e.from==n.value.from)))continue;if(o){let t=e.wordAt(n.value.from);if(!t||t.from!=n.value.from||t.to!=n.value.to)continue}return n.value}if(i)return null;n=new Sd(e.doc,t,0,Math.max(0,r[r.length-1].from-1)),i=!0}}(e,r);return!!n&&(t(e.update({selection:e.selection.addRange(C.range(n.from,n.to),!1),effects:SO.scrollIntoView(n.to)})),!0)},jd=j.define({combine:e=>Ye(e,{top:!1,caseSensitive:!1,literal:!1,regexp:!1,wholeWord:!1,createPanel:e=>new Qp(e),scrollToMatch:e=>SO.scrollIntoView(e)})});class Ed{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,vd),!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 Kd(this):new Dd(this)}getCursor(e,t=0,i){let r=e.doc?e:ke.create({doc:e});return null==i&&(i=r.doc.length),this.regexp?Md(this,r,t,i):Gd(this,r,t,i)}}class zd{constructor(e){this.spec=e}}function Gd(e,t,i,r){return new Sd(t.doc,e.unquoted,i,r,e.caseSensitive?void 0:e=>e.toLowerCase(),e.wholeWord?function(e,t){return(i,r,n,o)=>((o>i||o+n.length=t)return null;r.push(i.value)}return r}highlight(e,t,i,r){let n=Gd(this.spec,e,Math.max(0,t-this.spec.unquoted.length),Math.min(i+this.spec.unquoted.length,e.doc.length));for(;!n.next().done;)r(n.value.from,n.value.to)}}function Md(e,t,i,r){return new xd(t.doc,e.search,{ignoreCase:!e.caseSensitive,test:e.wholeWord?Ld(t.charCategorizer(t.selection.main.head)):void 0},i,r)}function Bd(e,t){return e.slice(m(e,t,!1),t)}function Id(e,t){return e.slice(t,m(e,t))}function Ld(e){return(t,i,r)=>!r[0].length||(e(Bd(r.input,r.index))!=xe.Word||e(Id(r.input,r.index))!=xe.Word)&&(e(Id(r.input,r.index+r[0].length))!=xe.Word||e(Bd(r.input,r.index+r[0].length))!=xe.Word)}class Kd extends zd{nextMatch(e,t,i){let r=Md(this.spec,e,i,e.doc.length).next();return r.done&&(r=Md(this.spec,e,0,t).next()),r.done?null:r.value}prevMatchInRange(e,t,i){for(let r=1;;r++){let n=Math.max(t,i-1e4*r),o=Md(this.spec,e,n,i),s=null;for(;!o.next().done;)s=o.value;if(s&&(n==t||s.from>n+10))return s;if(n==t)return null}}prevMatch(e,t,i){return this.prevMatchInRange(e,0,t)||this.prevMatchInRange(e,i,e.doc.length)}getReplacement(e){return this.spec.unquote(this.spec.replace).replace(/\$([$&\d+])/g,((t,i)=>"$"==i?"$":"&"==i?e.match[0]:"0"!=i&&+i=t)return null;r.push(i.value)}return r}highlight(e,t,i,r){let n=Md(this.spec,e,Math.max(0,t-250),Math.min(i+250,e.doc.length));for(;!n.next().done;)r(n.value.from,n.value.to)}}const Fd=ge.define(),Hd=ge.define(),Jd=I.define({create:e=>new ep(cp(e).create(),null),update(e,t){for(let i of t.effects)i.is(Fd)?e=new ep(i.value.create(),e.panel):i.is(Hd)&&(e=new ep(e.query,i.value?hp:null));return e},provide:e=>Va.from(e,(e=>e.panel))});class ep{constructor(e,t){this.query=e,this.panel=t}}const tp=Un.mark({class:"cm-searchMatch"}),ip=Un.mark({class:"cm-searchMatch cm-searchMatch-selected"}),rp=Yo.fromClass(class{constructor(e){this.view=e,this.decorations=this.highlight(e.state.field(Jd))}update(e){let t=e.state.field(Jd);(t!=e.startState.field(Jd)||e.docChanged||e.selectionSet||e.viewportChanged)&&(this.decorations=this.highlight(t))}highlight({query:e,panel:t}){if(!t||!e.spec.valid)return Un.none;let{view:i}=this,r=new qe;for(let t=0,n=i.visibleRanges,o=n.length;tn[t+1].from-500;)O=n[++t].to;e.highlight(i.state,s,O,((e,t)=>{let n=i.state.selection.ranges.some((i=>i.from==e&&i.to==t));r.add(e,t,n?ip:tp)}))}return r.finish()}},{decorations:e=>e.decorations});function np(e){return t=>{let i=t.state.field(Jd,!1);return i&&i.query.spec.valid?e(t,i):dp(t)}}const op=np(((e,{query:t})=>{let{to:i}=e.state.selection.main,r=t.nextMatch(e.state,i,i);if(!r)return!1;let n=C.single(r.from,r.to),o=e.state.facet(jd);return e.dispatch({selection:n,effects:[$p(e,r),o.scrollToMatch(n.main,e)],userEvent:"select.search"}),fp(e),!0})),sp=np(((e,{query:t})=>{let{state:i}=e,{from:r}=i.selection.main,n=t.prevMatch(i,r,r);if(!n)return!1;let o=C.single(n.from,n.to),s=e.state.facet(jd);return e.dispatch({selection:o,effects:[$p(e,n),s.scrollToMatch(o.main,e)],userEvent:"select.search"}),fp(e),!0})),Op=np(((e,{query:t})=>{let i=t.matchAll(e.state,1e3);return!(!i||!i.length||(e.dispatch({selection:C.create(i.map((e=>C.range(e.from,e.to)))),userEvent:"select.search.matches"}),0))})),ap=np(((e,{query:t})=>{let{state:i}=e,{from:r,to:n}=i.selection.main;if(i.readOnly)return!1;let o=t.nextMatch(i,r,r);if(!o)return!1;let s,O,a=[],l=[];if(o.from==r&&o.to==n&&(O=i.toText(t.getReplacement(o)),a.push({from:o.from,to:o.to,insert:O}),o=t.nextMatch(i,o.from,o.to),l.push(SO.announce.of(i.phrase("replaced match on line $",i.doc.lineAt(r).number)+"."))),o){let t=0==a.length||a[0].from>=o.to?0:o.to-o.from-O.length;s=C.single(o.from-t,o.to-t),l.push($p(e,o)),l.push(i.facet(jd).scrollToMatch(s.main,e))}return e.dispatch({changes:a,selection:s,effects:l,userEvent:"input.replace"}),!0})),lp=np(((e,{query:t})=>{if(e.state.readOnly)return!1;let i=t.matchAll(e.state,1e9).map((e=>{let{from:i,to:r}=e;return{from:i,to:r,insert:t.getReplacement(e)}}));if(!i.length)return!1;let r=e.state.phrase("replaced $ matches",i.length)+".";return e.dispatch({changes:i,effects:SO.announce.of(r),userEvent:"input.replace.all"}),!0}));function hp(e){return e.state.facet(jd).createPanel(e)}function cp(e,t){var i,r,n,o,s;let O=e.selection.main,a=O.empty||O.to>O.from+100?"":e.sliceDoc(O.from,O.to);if(t&&!a)return t;let l=e.facet(jd);return new Ed({search:(null!==(i=null==t?void 0:t.literal)&&void 0!==i?i:l.literal)?a:a.replace(/\n/g,"\\n"),caseSensitive:null!==(r=null==t?void 0:t.caseSensitive)&&void 0!==r?r:l.caseSensitive,literal:null!==(n=null==t?void 0:t.literal)&&void 0!==n?n:l.literal,regexp:null!==(o=null==t?void 0:t.regexp)&&void 0!==o?o:l.regexp,wholeWord:null!==(s=null==t?void 0:t.wholeWord)&&void 0!==s?s:l.wholeWord})}function up(e){let t=ka(e,hp);return t&&t.dom.querySelector("[main-field]")}function fp(e){let t=up(e);t&&t==e.root.activeElement&&t.select()}const dp=e=>{let t=e.state.field(Jd,!1);if(t&&t.panel){let i=up(e);if(i&&i!=e.root.activeElement){let r=cp(e.state,t.query.spec);r.valid&&e.dispatch({effects:Fd.of(r)}),i.focus(),i.select()}}else e.dispatch({effects:[Hd.of(!0),t?Fd.of(cp(e.state,t.query.spec)):ge.appendConfig.of(Xp)]});return!0},pp=e=>{let t=e.state.field(Jd,!1);if(!t||!t.panel)return!1;let i=ka(e,hp);return i&&i.dom.contains(e.root.activeElement)&&e.focus(),e.dispatch({effects:Hd.of(!1)}),!0};class Qp{constructor(e){this.view=e;let t=this.query=e.state.field(Jd).query.spec;function i(e,t,i){return $d("button",{class:"cm-button",name:e,onclick:t,type:"button"},i)}this.commit=this.commit.bind(this),this.searchField=$d("input",{value:t.search,placeholder:gp(e,"Find"),"aria-label":gp(e,"Find"),class:"cm-textfield",name:"search",form:"","main-field":"true",onchange:this.commit,onkeyup:this.commit}),this.replaceField=$d("input",{value:t.replace,placeholder:gp(e,"Replace"),"aria-label":gp(e,"Replace"),class:"cm-textfield",name:"replace",form:"",onchange:this.commit,onkeyup:this.commit}),this.caseField=$d("input",{type:"checkbox",name:"case",form:"",checked:t.caseSensitive,onchange:this.commit}),this.reField=$d("input",{type:"checkbox",name:"re",form:"",checked:t.regexp,onchange:this.commit}),this.wordField=$d("input",{type:"checkbox",name:"word",form:"",checked:t.wholeWord,onchange:this.commit}),this.dom=$d("div",{onkeydown:e=>this.keydown(e),class:"cm-search"},[this.searchField,i("next",(()=>op(e)),[gp(e,"next")]),i("prev",(()=>sp(e)),[gp(e,"previous")]),i("select",(()=>Op(e)),[gp(e,"all")]),$d("label",null,[this.caseField,gp(e,"match case")]),$d("label",null,[this.reField,gp(e,"regexp")]),$d("label",null,[this.wordField,gp(e,"by word")]),...e.state.readOnly?[]:[$d("br"),this.replaceField,i("replace",(()=>ap(e)),[gp(e,"replace")]),i("replaceAll",(()=>lp(e)),[gp(e,"replace all")])],$d("button",{name:"close",onclick:()=>pp(e),"aria-label":gp(e,"close"),type:"button"},["×"])])}commit(){let e=new Ed({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:Fd.of(e)}))}keydown(e){!function(e,t,i){return ZO(_O(e.state),t,e,i)}(this.view,e,"search-panel")?13==e.keyCode&&e.target==this.searchField?(e.preventDefault(),(e.shiftKey?sp:op)(this.view)):13==e.keyCode&&e.target==this.replaceField&&(e.preventDefault(),ap(this.view)):e.preventDefault()}update(e){for(let t of e.transactions)for(let e of t.effects)e.is(Fd)&&!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(jd).top}}function gp(e,t){return e.state.phrase(t)}const mp=/[\s\.,:;?!]/;function $p(e,{from:t,to:i}){let r=e.state.doc.lineAt(t),n=e.state.doc.lineAt(i).to,o=Math.max(r.from,t-30),s=Math.min(n,i+30),O=e.state.sliceDoc(o,s);if(o!=r.from)for(let e=0;e<30;e++)if(!mp.test(O[e+1])&&mp.test(O[e])){O=O.slice(e);break}if(s!=n)for(let e=O.length-1;e>O.length-30;e--)if(!mp.test(O[e-1])&&mp.test(O[e])){O=O.slice(0,e);break}return SO.announce.of(`${e.state.phrase("current match")}. ${O} ${e.state.phrase("on line")} ${r.number}.`)}const bp=SO.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"}}),Xp=[Jd,ee.low(rp),bp];class Sp{static create(e,t,i,r,n){return new Sp(e,t,i,r+(r<<8)+e+(t<<4)|0,n,[],[])}constructor(e,t,i,r,n,o,s){this.type=e,this.value=t,this.from=i,this.hash=r,this.end=n,this.children=o,this.positions=s,this.hashProp=[[He.contextHash,r]]}addChild(e,t){e.prop(He.contextHash)!=this.hash&&(e=new st(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 st(e.types[this.type],this.children,this.positions,t-this.from).balance({makeTree:(e,t,i)=>new st(tt.none,e,t,i,this.hashProp)})}}var yp;!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.Autolink=33]="Autolink",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",e[e.URL=44]="URL"}(yp||(yp={}));class vp{constructor(e,t){this.start=e,this.content=t,this.marks=[],this.parsers=[]}}class xp{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 kp(this.text,e)}reset(e){for(this.text=e,this.baseIndent=this.basePos=this.pos=this.indent=0,this.forwardInner(),this.depth=1;this.markers.length;)this.markers.pop()}moveBase(e){this.basePos=e,this.baseIndent=this.countIndent(e,this.pos,this.indent)}moveBaseColumn(e){this.baseIndent=e,this.basePos=this.findColumn(e)}addMarker(e){this.markers.push(e)}countIndent(e,t=0,i=0){for(let r=t;r=t.stack[i.depth+1].value+i.baseIndent)return!0;if(i.indent>=i.baseIndent+4)return!1;let r=(e.type==yp.OrderedList?qp:Ap)(i,t,!1);return r>0&&(e.type!=yp.BulletList||Vp(i,t,!1)<0)&&i.text.charCodeAt(i.pos+r-1)==e.value}const wp={[yp.Blockquote]:(e,t,i)=>62==i.next&&(i.markers.push(hQ(yp.QuoteMark,t.lineStart+i.pos,t.lineStart+i.pos+1)),i.moveBase(i.pos+(Tp(i.text.charCodeAt(i.pos+1))?2:1)),e.end=t.lineStart+i.text.length,!0),[yp.ListItem]:(e,t,i)=>!(i.indent-1||(i.moveBaseColumn(i.baseIndent+e.value),0)),[yp.OrderedList]:Pp,[yp.BulletList]:Pp,[yp.Document]:()=>!0};function Tp(e){return 32==e||9==e||10==e||13==e}function kp(e,t=0){for(;ti&&Tp(e.charCodeAt(t-1));)t--;return t}function Rp(e){if(96!=e.next&&126!=e.next)return-1;let t=e.pos+1;for(;t-1&&e.depth==t.stack.length||r<3?-1:1}function Zp(e,t){for(let i=e.stack.length-1;i>=0;i--)if(e.stack[i].type==t)return!0;return!1}function Ap(e,t,i){return 45!=e.next&&43!=e.next&&42!=e.next||e.pos!=e.text.length-1&&!Tp(e.text.charCodeAt(e.pos+1))||!(!i||Zp(t,yp.BulletList)||e.skipSpace(e.pos+2)=48&&n<=57;){if(r++,r==e.text.length)return-1;n=e.text.charCodeAt(r)}return r==e.pos||r>e.pos+9||46!=n&&41!=n||re.pos+1||49!=e.next)?-1:r+1-e.pos}function Wp(e){if(35!=e.next)return-1;let t=e.pos+1;for(;t6?-1:i}function Cp(e){if(45!=e.next&&61!=e.next||e.indent>=e.baseIndent+4)return-1;let t=e.pos+1;for(;t/,jp=/\?>/,Ep=[[/^<(?:script|pre|style)(?:\s|>|$)/i,/<\/(?:script|pre|style)>/i],[/^\s*/i.exec(r);if(o)return e.append(hQ(yp.Comment,i,i+1+o[0].length));let s=/^\?[^]*?\?>/.exec(r);if(s)return e.append(hQ(yp.ProcessingInstruction,i,i+1+s[0].length));let O=/^(?:![A-Z][^]*?>|!\[CDATA\[[^]*?\]\]>|\/\s*[a-zA-Z][\w-]*\s*>|\s*[a-zA-Z][\w-]*(\s+[a-zA-Z:_][\w-.:]*(?:\s*=\s*(?:[^\s"'=<>`]+|'[^']*'|"[^"]*"))?)*\s*(\/\s*)?>)/.exec(r);return O?e.append(hQ(yp.HTMLTag,i,i+1+O[0].length)):-1},Emphasis(e,t,i){if(95!=t&&42!=t)return-1;let r=i+1;for(;e.char(r)==t;)r++;let n=e.slice(i-1,i),o=e.slice(r,r+1),s=QQ.test(n),O=QQ.test(o),a=/\s|^$/.test(n),l=/\s|^$/.test(o),h=!l&&(!O||a||s),c=!a&&(!s||l||O),u=h&&(42==t||!c||s),f=c&&(42==t||!h||O);return e.append(new pQ(95==t?cQ:uQ,i,r,(u?1:0)|(f?2:0)))},HardBreak(e,t,i){if(92==t&&10==e.char(i+1))return e.append(hQ(yp.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(hQ(yp.HardBreak,i,t+1))}return-1},Link:(e,t,i)=>91==t?e.append(new pQ(fQ,i,i+1,1)):-1,Image:(e,t,i)=>33==t&&91==e.char(i+1)?e.append(new pQ(dQ,i,i+2,1)):-1,LinkEnd(e,t,i){if(93!=t)return-1;for(let t=e.parts.length-1;t>=0;t--){let r=e.parts[t];if(r instanceof pQ&&(r.type==fQ||r.type==dQ)){if(!r.side||e.skipSpace(r.to)==i&&!/[(\[]/.test(e.slice(i+1,i+2)))return e.parts[t]=null,-1;let n=e.takeContent(t),o=e.parts[t]=mQ(e,n,r.type==fQ?yp.Link:yp.Image,r.from,i+1);if(r.type==fQ)for(let i=0;it?hQ(yp.URL,t+i,n+i):n==e.length&&null}}function bQ(e,t,i){let r=e.charCodeAt(t);if(39!=r&&34!=r&&40!=r)return!1;let n=40==r?41:r;for(let r=t+1,o=!1;r=this.end?-1:this.text.charCodeAt(e-this.offset)}get end(){return this.offset+this.text.length}slice(e,t){return this.text.slice(e-this.offset,t-this.offset)}append(e){return this.parts.push(e),e.to}addDelimiter(e,t,i,r,n){return this.append(new pQ(e,t,i,(r?1:0)|(n?2:0)))}addElement(e){return this.append(e)}resolveMarkers(e){for(let t=e;t=e;s--){let e=this.parts[s];if(e instanceof pQ&&1&e.side&&e.type==i.type&&!(n&&(1&i.side||2&e.side)&&(e.to-e.from+o)%3==0&&((e.to-e.from)%3||o%3))){r=e;break}}if(!r)continue;let O=i.type.resolve,a=[],l=r.from,h=i.to;if(n){let e=Math.min(2,r.to-r.from,o);l=r.to-e,h=i.from+e,O=1==e?"Emphasis":"StrongEmphasis"}r.type.mark&&a.push(this.elt(r.type.mark,l,r.to));for(let e=s+1;e=0;t--){let i=this.parts[t];if(i instanceof pQ&&i.type==e)return t}return null}takeContent(e){let t=this.resolveMarkers(e);return this.parts.length=e,t}skipSpace(e){return kp(this.text,e-this.offset)+this.offset}elt(e,t,i,r){return"string"==typeof e?hQ(this.parser.getNodeType(e),t,i,r):new lQ(e,t)}}function yQ(e,t){if(!t.length)return e;if(!e.length)return t;let i=e.slice(),r=0;for(let e of t){for(;r(e?e-1:0))return!1;if(this.fragmentEnd<0){let e=this.fragment.to;for(;e>0&&"\n"!=this.input.read(e-1,e);)e--;this.fragmentEnd=e?e-1:0}let i=this.cursor;i||(i=this.cursor=this.fragment.tree.cursor(),i.firstChild());let r=e+this.fragment.offset;for(;i.to<=r;)if(!i.parent())return!1;for(;;){if(i.from>=r)return this.fragment.from<=t;if(!i.childAfter(r))return!1}}matches(e){let t=this.cursor.tree;return t&&t.prop(He.contextHash)==e}takeNodes(e){let t=this.cursor,i=this.fragment.offset,r=this.fragmentEnd-(this.fragment.openEnd?1:0),n=e.absoluteLineStart,o=n,s=e.block.children.length,O=o,a=s;for(;;){if(t.to-i>r){if(t.type.isAnonymous&&t.firstChild())continue;break}let n=PQ(t.from-i,e.ranges);if(t.to-i<=e.ranges[e.rangeI].to)e.addNode(t.tree,n);else{let i=new st(e.parser.nodeSet.types[yp.Paragraph],[],[],0,e.block.hashProp);e.reusePlaceholders.set(i,t.tree),e.addNode(i,n)}if(t.type.is("Block")&&(vQ.indexOf(t.type.id)<0?(o=t.to-i,s=e.block.children.length):(o=O,s=a,O=t.to-i,a=e.block.children.length)),!t.nextSibling())break}for(;e.block.children.length>s;)e.block.children.pop(),e.block.positions.pop();return o-n}}function PQ(e,t){let i=e;for(let r=1;rMp[e])),Object.keys(Mp).map((e=>Kp[e])),Object.keys(Mp),Fp,wp,Object.keys(gQ).map((e=>gQ[e])),Object.keys(gQ),[]);function kQ(e,t,i){let r=[];for(let n=e.firstChild,o=t;;n=n.nextSibling){let e=n?n.from:i;if(e>o&&r.push({from:o,to:e}),!n)break;o=n.to}return r}function YQ(e){let{codeParser:t,htmlParser:i}=e,r=Tt(((e,r)=>{let n=e.type.id;if(!t||n!=yp.CodeBlock&&n!=yp.FencedCode){if(i&&(n==yp.HTMLBlock||n==yp.HTMLTag))return{parser:i,overlay:kQ(e.node,e.from,e.to)}}else{let i="";if(n==yp.FencedCode){let t=e.node.getChild(yp.CodeInfo);t&&(i=r.read(t.from,t.to))}let o=t(i);if(o)return{parser:o,overlay:e=>e.type.id==yp.CodeText}}return null}));return{wrap:r}}const RQ={resolve:"Strikethrough",mark:"StrikethroughMark"},_Q={defineNodes:[{name:"Strikethrough",style:{"Strikethrough/...":yl.strikethrough}},{name:"StrikethroughMark",style:yl.processingInstruction}],parseInline:[{name:"Strikethrough",parse(e,t,i){if(126!=t||126!=e.char(i+1)||126==e.char(i+2))return-1;let r=e.slice(i-1,i),n=e.slice(i+2,i+3),o=/\s|^$/.test(r),s=/\s|^$/.test(n),O=QQ.test(r),a=QQ.test(n);return e.addDelimiter(RQ,i,i+2,!s&&(!a||o||O),!o&&(!O||s||a))},after:"Emphasis"}]};function VQ(e,t,i=0,r,n=0){let o=0,s=!0,O=-1,a=-1,l=!1,h=()=>{r.push(e.elt("TableCell",n+O,n+a,e.parser.parseInline(t.slice(O,a),n+O)))};for(let c=i;c-1)&&o++,s=!1,r&&(O>-1&&h(),r.push(e.elt("TableDelimiter",c+n,c+n+1))),O=a=-1),l=!l&&92==i}return O>-1&&(o++,r&&h()),o}function ZQ(e,t){for(let i=t;iZQ(t.content,0)?new qQ:null,endLeaf(e,t,i){if(i.parsers.some((e=>e instanceof qQ))||!ZQ(t.text,t.basePos))return!1;let r=e.scanLine(e.absoluteLineEnd+1).text;return AQ.test(r)&&VQ(e,t.text,t.basePos)==VQ(e,r,t.basePos)},before:"SetextHeading"}]};class CQ{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 UQ={defineNodes:[{name:"Task",block:!0,style:yl.list},{name:"TaskMarker",style:yl.atom}],parseBlock:[{name:"TaskList",leaf:(e,t)=>/^\[[ xX]\][ \t]/.test(t.content)&&"ListItem"==e.parentType().name?new CQ:null,after:"SetextHeading"}]},NQ=/(www\.)|(https?:\/\/)|([\w.+-]+@)|(mailto:|xmpp:)/gy,jQ=/[\w-]+(\.[\w-]+)+(\/[^\s<]*)?/gy,EQ=/[\w-]+\.[\w-]+($|\/)/,zQ=/[\w.+-]+@[\w-]+(\.[\w.-]+)+/gy,GQ=/\/[a-zA-Z\d@.]+/gy;function DQ(e,t,i,r){let n=0;for(let o=t;o-1)return-1;let r=t+i[0].length;for(;;){let i,n=e[r-1];if(/[?!.,:*_~]/.test(n)||")"==n&&DQ(e,t,r,")")>DQ(e,t,r,"("))r--;else{if(";"!=n||!(i=/&(?:#\d+|#x[a-f\d]+|\w+);$/.exec(e.slice(t,r))))break;r=t+i.index}}return r}(e.text,r+n[0].length):n[3]?o=MQ(e.text,r):(o=MQ(e.text,r+n[0].length),o>-1&&"xmpp:"==n[0]&&(GQ.lastIndex=o,n=GQ.exec(e.text),n&&(o=n.index+n[0].length))),o<0?-1:(e.addElement(e.elt("URL",i,o+e.offset)),o+e.offset)):-1}}]},IQ=[WQ,UQ,_Q,BQ];function LQ(e,t,i){return(r,n,o)=>{if(n!=e||r.char(o+1)==e)return-1;let s=[r.elt(i,o,o+1)];for(let n=o+1;n=65&&e<=90||95==e||e>=97&&e<=122||e>=161}function rg(e){return 9==e||10==e||13==e||32==e}let ng=null,og=null,sg=0;function Og(e,t){let i=e.pos+t;if(sg==i&&og==e)return ng;let r=e.peek(t);for(;rg(r);)r=e.peek(++t);let n="";for(;ig(r);)n+=String.fromCharCode(r),r=e.peek(++t);return og=e,sg=i,ng=n?n.toLowerCase():r==ag||r==lg?void 0:null}const ag=63,lg=33;function hg(e,t){this.name=e,this.parent=t,this.hash=t?t.hash:0;for(let t=0;tcg.indexOf(t)>-1?new hg(Og(r,1)||"",e):e,reduce:(e,t)=>20==t&&e?e.parent:e,reuse(e,t,i,r){let n=t.type.id;return 6==n||36==n?new hg(Og(r,1)||"",e):e},hash:e=>e?e.hash:0,strict:!1}),fg=new Ht(((e,t)=>{if(60!=e.next)return void(e.next<0&&t.context&&e.acceptToken(57));e.advance();let i=47==e.next;i&&e.advance();let r=Og(e,0);if(void 0===r)return;if(!r)return e.acceptToken(i?14:6);let n=t.context?t.context.name:null;if(i){if(r==n)return e.acceptToken(11);if(n&&eg[n])return e.acceptToken(57,-2);if(t.dialectEnabled(0))return e.acceptToken(12);for(let e=t.context;e;e=e.parent)if(e.name==r)return;e.acceptToken(13)}else{if("script"==r)return e.acceptToken(7);if("style"==r)return e.acceptToken(8);if("textarea"==r)return e.acceptToken(9);if(JQ.hasOwnProperty(r))return e.acceptToken(10);n&&tg[n]&&tg[n][r]?e.acceptToken(57,-1):e.acceptToken(6)}}),{contextual:!0}),dg=new Ht((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 pg=new Ht(((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 Qg(e,t,i){let r=2+e.length;return new Ht((n=>{for(let o=0,s=0,O=0;;O++){if(n.next<0){O&&n.acceptToken(t);break}if(0==o&&60==n.next||1==o&&47==n.next||o>=2&&os?n.acceptToken(t,-s):n.acceptToken(i,-(s-2));break}if((10==n.next||13==n.next)&&O){n.acceptToken(t,1);break}o=s=0}else s++;n.advance()}}))}const gg=Qg("script",54,1),mg=Qg("style",55,2),$g=Qg("textarea",56,3),bg=il({"Text RawText":yl.content,"StartTag StartCloseTag SelfClosingEndTag EndTag":yl.angleBracket,TagName:yl.tagName,"MismatchedCloseTag/TagName":[yl.tagName,yl.invalid],AttributeName:yl.attributeName,"AttributeValue UnquotedAttributeValue":yl.attributeValue,Is:yl.definitionOperator,"EntityReference CharacterReference":yl.character,Comment:yl.blockComment,ProcessingInst:yl.processingInstruction,DoctypeDecl:yl.documentMeta}),Xg=ci.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:ug,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:[bg],skippedNodes:[0],repeatNodeCount:9,tokenData:"!]tw8twx7Sx!P8t!P!Q5u!Q!]8t!]!^/^!^!a7S!a#S8t#S#T;{#T#s8t#s$f5u$f;'S8t;'S;=`>V<%l?Ah8t?Ah?BY5u?BY?Mn8t?MnO5u!Z5zbkWOX5uXZ7SZ[5u[^7S^p5uqr5urs7Sst+Ptw5uwx7Sx!]5u!]!^7w!^!a7S!a#S5u#S#T7S#T;'S5u;'S;=`8n<%lO5u!R7VVOp7Sqs7St!]7S!]!^7l!^;'S7S;'S;=`7q<%lO7S!R7qOa!R!R7tP;=`<%l7S!Z8OYkWa!ROX+PZ[+P^p+Pqr+Psw+Px!^+P!a#S+P#T;'S+P;'S;=`+t<%lO+P!Z8qP;=`<%l5u!_8{ihSkWOX5uXZ7SZ[5u[^7S^p5uqr8trs7Sst/^tw8twx7Sx!P8t!P!Q5u!Q!]8t!]!^:j!^!a7S!a#S8t#S#T;{#T#s8t#s$f5u$f;'S8t;'S;=`>V<%l?Ah8t?Ah?BY5u?BY?Mn8t?MnO5u!_:sbhSkWa!ROX+PZ[+P^p+Pqr/^sw/^x!P/^!P!Q+P!Q!^/^!a#S/^#S#T0m#T#s/^#s$f+P$f;'S/^;'S;=`1e<%l?Ah/^?Ah?BY+P?BY?Mn/^?MnO+P!VP<%l?Ah;{?Ah?BY7S?BY?Mn;{?MnO7S!V=dXhSa!Rqr0msw0mx!P0m!Q!^0m!a#s0m$f;'S0m;'S;=`1_<%l?Ah0m?BY?Mn0m!V>SP;=`<%l;{!_>YP;=`<%l8t!_>dhhSkWOX@OXZAYZ[@O[^AY^p@OqrBwrsAYswBwwxAYx!PBw!P!Q@O!Q!]Bw!]!^/^!^!aAY!a#SBw#S#TE{#T#sBw#s$f@O$f;'SBw;'S;=`HS<%l?AhBw?Ah?BY@O?BY?MnBw?MnO@O!Z@TakWOX@OXZAYZ[@O[^AY^p@Oqr@OrsAYsw@OwxAYx!]@O!]!^Az!^!aAY!a#S@O#S#TAY#T;'S@O;'S;=`Bq<%lO@O!RA]UOpAYq!]AY!]!^Ao!^;'SAY;'S;=`At<%lOAY!RAtOb!R!RAwP;=`<%lAY!ZBRYkWb!ROX+PZ[+P^p+Pqr+Psw+Px!^+P!a#S+P#T;'S+P;'S;=`+t<%lO+P!ZBtP;=`<%l@O!_COhhSkWOX@OXZAYZ[@O[^AY^p@OqrBwrsAYswBwwxAYx!PBw!P!Q@O!Q!]Bw!]!^Dj!^!aAY!a#SBw#S#TE{#T#sBw#s$f@O$f;'SBw;'S;=`HS<%l?AhBw?Ah?BY@O?BY?MnBw?MnO@O!_DsbhSkWb!ROX+PZ[+P^p+Pqr/^sw/^x!P/^!P!Q+P!Q!^/^!a#S/^#S#T0m#T#s/^#s$f+P$f;'S/^;'S;=`1e<%l?Ah/^?Ah?BY+P?BY?Mn/^?MnO+P!VFQbhSOpAYqrE{rsAYswE{wxAYx!PE{!P!QAY!Q!]E{!]!^GY!^!aAY!a#sE{#s$fAY$f;'SE{;'S;=`G|<%l?AhE{?Ah?BYAY?BY?MnE{?MnOAY!VGaXhSb!Rqr0msw0mx!P0m!Q!^0m!a#s0m$f;'S0m;'S;=`1_<%l?Ah0m?BY?Mn0m!VHPP;=`<%lE{!_HVP;=`<%lBw!ZHcW!bx`P!a`Or(trs'ksv(tw!^(t!^!_)e!_;'S(t;'S;=`*P<%lO(t!aIYlhS`PkW!a`!cpOX$qXZ&XZ[$q[^&X^p$qpq&Xqr-_rs&}sv-_vw/^wx(tx}-_}!OKQ!O!P-_!P!Q$q!Q!^-_!^!_*V!_!a&X!a#S-_#S#T1k#T#s-_#s$f$q$f;'S-_;'S;=`3X<%l?Ah-_?Ah?BY$q?BY?Mn-_?MnO$q!aK_khS`PkW!a`!cpOX$qXZ&XZ[$q[^&X^p$qpq&Xqr-_rs&}sv-_vw/^wx(tx!P-_!P!Q$q!Q!^-_!^!_*V!_!`&X!`!aMS!a#S-_#S#T1k#T#s-_#s$f$q$f;'S-_;'S;=`3X<%l?Ah-_?Ah?BY$q?BY?Mn-_?MnO$q!TM_X`P!a`!cp!eQOr&Xrs&}sv&Xwx(tx!^&X!^!_*V!_;'S&X;'S;=`*y<%lO&X!aNZ!ZhSfQ`PkW!a`!cpOX$qXZ&XZ[$q[^&X^p$qpq&Xqr-_rs&}sv-_vw/^wx(tx}-_}!OMz!O!PMz!P!Q$q!Q![Mz![!]Mz!]!^-_!^!_*V!_!a&X!a!c-_!c!}Mz!}#R-_#R#SMz#S#T1k#T#oMz#o#s-_#s$f$q$f$}-_$}%OMz%O%W-_%W%oMz%o%p-_%p&aMz&a&b-_&b1pMz1p4UMz4U4dMz4d4e-_4e$ISMz$IS$I`-_$I`$IbMz$Ib$Je-_$Je$JgMz$Jg$Kh-_$Kh%#tMz%#t&/x-_&/x&EtMz&Et&FV-_&FV;'SMz;'S;:j!#|;:j;=`3X<%l?&r-_?&r?AhMz?Ah?BY$q?BY?MnMz?MnO$q!a!$PP;=`<%lMz!R!$ZY!a`!cpOq*Vqr!$yrs(Vsv*Vwx)ex!a*V!a!b!4t!b;'S*V;'S;=`*s<%lO*V!R!%Q]!a`!cpOr*Vrs(Vsv*Vwx)ex}*V}!O!%y!O!f*V!f!g!']!g#W*V#W#X!0`#X;'S*V;'S;=`*s<%lO*V!R!&QX!a`!cpOr*Vrs(Vsv*Vwx)ex}*V}!O!&m!O;'S*V;'S;=`*s<%lO*V!R!&vV!a`!cp!dPOr*Vrs(Vsv*Vwx)ex;'S*V;'S;=`*s<%lO*V!R!'dX!a`!cpOr*Vrs(Vsv*Vwx)ex!q*V!q!r!(P!r;'S*V;'S;=`*s<%lO*V!R!(WX!a`!cpOr*Vrs(Vsv*Vwx)ex!e*V!e!f!(s!f;'S*V;'S;=`*s<%lO*V!R!(zX!a`!cpOr*Vrs(Vsv*Vwx)ex!v*V!v!w!)g!w;'S*V;'S;=`*s<%lO*V!R!)nX!a`!cpOr*Vrs(Vsv*Vwx)ex!{*V!{!|!*Z!|;'S*V;'S;=`*s<%lO*V!R!*bX!a`!cpOr*Vrs(Vsv*Vwx)ex!r*V!r!s!*}!s;'S*V;'S;=`*s<%lO*V!R!+UX!a`!cpOr*Vrs(Vsv*Vwx)ex!g*V!g!h!+q!h;'S*V;'S;=`*s<%lO*V!R!+xY!a`!cpOr!+qrs!,hsv!+qvw!-Swx!.[x!`!+q!`!a!/j!a;'S!+q;'S;=`!0Y<%lO!+qq!,mV!cpOv!,hvx!-Sx!`!,h!`!a!-q!a;'S!,h;'S;=`!.U<%lO!,hP!-VTO!`!-S!`!a!-f!a;'S!-S;'S;=`!-k<%lO!-SP!-kO{PP!-nP;=`<%l!-Sq!-xS!cp{POv(Vx;'S(V;'S;=`(h<%lO(Vq!.XP;=`<%l!,ha!.aX!a`Or!.[rs!-Ssv!.[vw!-Sw!`!.[!`!a!.|!a;'S!.[;'S;=`!/d<%lO!.[a!/TT!a`{POr)esv)ew;'S)e;'S;=`)y<%lO)ea!/gP;=`<%l!.[!R!/sV!a`!cp{POr*Vrs(Vsv*Vwx)ex;'S*V;'S;=`*s<%lO*V!R!0]P;=`<%l!+q!R!0gX!a`!cpOr*Vrs(Vsv*Vwx)ex#c*V#c#d!1S#d;'S*V;'S;=`*s<%lO*V!R!1ZX!a`!cpOr*Vrs(Vsv*Vwx)ex#V*V#V#W!1v#W;'S*V;'S;=`*s<%lO*V!R!1}X!a`!cpOr*Vrs(Vsv*Vwx)ex#h*V#h#i!2j#i;'S*V;'S;=`*s<%lO*V!R!2qX!a`!cpOr*Vrs(Vsv*Vwx)ex#m*V#m#n!3^#n;'S*V;'S;=`*s<%lO*V!R!3eX!a`!cpOr*Vrs(Vsv*Vwx)ex#d*V#d#e!4Q#e;'S*V;'S;=`*s<%lO*V!R!4XX!a`!cpOr*Vrs(Vsv*Vwx)ex#X*V#X#Y!+q#Y;'S*V;'S;=`*s<%lO*V!R!4{Y!a`!cpOr!4trs!5ksv!4tvw!6Vwx!8]x!a!4t!a!b!:]!b;'S!4t;'S;=`!;r<%lO!4tq!5pV!cpOv!5kvx!6Vx!a!5k!a!b!7W!b;'S!5k;'S;=`!8V<%lO!5kP!6YTO!a!6V!a!b!6i!b;'S!6V;'S;=`!7Q<%lO!6VP!6lTO!`!6V!`!a!6{!a;'S!6V;'S;=`!7Q<%lO!6VP!7QOxPP!7TP;=`<%l!6Vq!7]V!cpOv!5kvx!6Vx!`!5k!`!a!7r!a;'S!5k;'S;=`!8V<%lO!5kq!7yS!cpxPOv(Vx;'S(V;'S;=`(h<%lO(Vq!8YP;=`<%l!5ka!8bX!a`Or!8]rs!6Vsv!8]vw!6Vw!a!8]!a!b!8}!b;'S!8];'S;=`!:V<%lO!8]a!9SX!a`Or!8]rs!6Vsv!8]vw!6Vw!`!8]!`!a!9o!a;'S!8];'S;=`!:V<%lO!8]a!9vT!a`xPOr)esv)ew;'S)e;'S;=`)y<%lO)ea!:YP;=`<%l!8]!R!:dY!a`!cpOr!4trs!5ksv!4tvw!6Vwx!8]x!`!4t!`!a!;S!a;'S!4t;'S;=`!;r<%lO!4t!R!;]V!a`!cpxPOr*Vrs(Vsv*Vwx)ex;'S*V;'S;=`*s<%lO*V!R!;uP;=`<%l!4t!V!{let O=e.type.id;if(28==O)return vg(e,t,i);if(31==O)return vg(e,t,r);if(34==O)return vg(e,t,n);if(20==O&&o.length){let i,r=e.node,n=r.firstChild,s=n&&yg(n,t);if(s)for(let e of o)if(e.tag==s&&(!e.attrs||e.attrs(i||(i=Sg(r,t))))){let t=r.lastChild;return{parser:e.parser,overlay:[{from:n.to,to:37==t.type.id?t.from:r.to}]}}}if(s&&23==O){let i,r=e.node;if(i=r.firstChild){let e=s[t.read(i.from,i.to)];if(e)for(let i of e){if(i.tagName&&i.tagName!=yg(r.parent,t))continue;let e=r.lastChild;if(26==e.type.id){let t=e.from+1,r=e.lastChild,n=e.to-(r&&r.isError?0:1);if(n>t)return{parser:i.parser,overlay:[{from:t,to:n}]}}else if(27==e.type.id)return{parser:i.parser,overlay:[{from:e.from,to:e.to}]}}}}return null}))}const Pg=[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 wg(e){return e>=65&&e<=90||e>=97&&e<=122||e>=161}function Tg(e){return e>=48&&e<=57}const kg=new Ht(((e,t)=>{for(let i=!1,r=0,n=0;;n++){let{next:o}=e;if(!(wg(o)||45==o||95==o||i&&Tg(o))){i&&e.acceptToken(40==o?97:2==r&&t.canShift(2)?2:98);break}!i&&(45!=o||n>0)&&(i=!0),r===n&&45==o&&r++,e.advance()}})),Yg=new Ht((e=>{if(Pg.includes(e.peek(-1))){let{next:t}=e;(wg(t)||95==t||35==t||46==t||91==t||58==t||45==t)&&e.acceptToken(96)}})),Rg=new Ht((e=>{if(!Pg.includes(e.peek(-1))){let{next:t}=e;if(37==t&&(e.advance(),e.acceptToken(1)),wg(t)){do{e.advance()}while(wg(e.next));e.acceptToken(1)}}})),_g=il({"AtKeyword import charset namespace keyframes media supports":yl.definitionKeyword,"from to selector":yl.keyword,NamespaceName:yl.namespace,KeyframeName:yl.labelName,KeyframeRangeName:yl.operatorKeyword,TagName:yl.tagName,ClassName:yl.className,PseudoClassName:yl.constant(yl.className),IdName:yl.labelName,"FeatureName PropertyName":yl.propertyName,AttributeName:yl.attributeName,NumberLiteral:yl.number,KeywordQuery:yl.keyword,UnaryQueryOp:yl.operatorKeyword,"CallTag ValueName":yl.atom,VariableName:yl.variableName,Callee:yl.operatorKeyword,Unit:yl.unit,"UniversalSelector NestingSelector":yl.definitionOperator,MatchOp:yl.compareOperator,"ChildOp SiblingOp, LogicOp":yl.logicOperator,BinOp:yl.arithmeticOperator,Important:yl.modifier,Comment:yl.blockComment,ColorLiteral:yl.color,"ParenthesizedContent StringLiteral":yl.string,":":yl.punctuation,"PseudoOp #":yl.derefOperator,"; ,":yl.separator,"( )":yl.paren,"[ ]":yl.squareBracket,"{ }":yl.brace}),Vg={__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},Zg={__proto__:null,"@import":114,"@media":138,"@charset":142,"@namespace":146,"@keyframes":152,"@supports":164},Ag={__proto__:null,not:128,only:128},qg=ci.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:[Yg,Rg,kg,1,2,3,4,new Ft("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=>Vg[e]||-1},{term:56,get:e=>Zg[e]||-1},{term:98,get:e=>Ag[e]||-1}],tokenPrec:1169});let Wg=null;function Cg(){if(!Wg&&"object"==typeof document&&document.body){let{style:e}=document.body,t=[],i=new Set;for(let r in e)"cssText"!=r&&"cssFloat"!=r&&"string"==typeof e[r]&&(/[A-Z]/.test(r)&&(r=r.replace(/[A-Z]/g,(e=>"-"+e.toLowerCase()))),i.has(r)||(t.push(r),i.add(r)));Wg=t.sort().map((e=>({type:"property",label:e})))}return Wg||[]}const Ug=["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}))),Ng=["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})))),jg=["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}))),Eg=/^(\w[\w-]*|-\w[\w-]*|)$/,zg=/^-(-[\w-]*)?$/;const Gg=new vt,Dg=["Declaration"];function Mg(e){for(let t=e;;){if(t.type.isTop)return t;if(!(t=t.parent))return e}}function Bg(e,t,i){if(t.to-t.from>4096){let r=Gg.get(t);if(r)return r;let n=[],o=new Set,s=t.cursor(ot.IncludeAnonymous);if(s.firstChild())do{for(let t of Bg(e,s.node,i))o.has(t.label)||(o.add(t.label),n.push(t))}while(s.nextSibling());return Gg.set(t,n),n}{let r=[],n=new Set;return t.cursor().iterate((t=>{var o;if(i(t)&&t.matchContext(Dg)&&":"==(null===(o=t.node.nextSibling)||void 0===o?void 0:o.name)){let i=e.sliceString(t.from,t.to);n.has(i)||(n.add(i),r.push({label:i,type:"variable"}))}})),r}}const Ig=(e=>t=>{let{state:i,pos:r}=t,n=Rl(i).resolveInner(r,-1),o=n.type.isError&&n.from==n.to-1&&"-"==i.doc.sliceString(n.from,n.to);if("PropertyName"==n.name||(o||"TagName"==n.name)&&/^(Block|Styles)$/.test(n.resolve(n.to).name))return{from:n.from,options:Cg(),validFor:Eg};if("ValueName"==n.name)return{from:n.from,options:Ng,validFor:Eg};if("PseudoClassName"==n.name)return{from:n.from,options:Ug,validFor:Eg};if(e(n)||(t.explicit||o)&&function(e,t){var i;if(("("==e.name||e.type.isError)&&(e=e.parent||e),"ArgList"!=e.name)return!1;let r=null===(i=e.parent)||void 0===i?void 0:i.firstChild;return"Callee"==(null==r?void 0:r.name)&&"var"==t.sliceString(r.from,r.to)}(n,i.doc))return{from:e(n)||o?n.from:r,options:Bg(i.doc,Mg(n),e),validFor:zg};if("TagName"==n.name){for(let{parent:e}=n;e;e=e.parent)if("Block"==e.name)return{from:n.from,options:Cg(),validFor:Eg};return{from:n.from,options:jg,validFor:Eg}}if(!t.explicit)return null;let s=n.resolve(r),O=s.childBefore(r);return O&&":"==O.name&&"PseudoClassSelector"==s.name?{from:r,options:Ug,validFor:Eg}:O&&":"==O.name&&"Declaration"==s.name||"ArgList"==s.name?{from:r,options:Ng,validFor:Eg}:"Block"==s.name||"Styles"==s.name?{from:r,options:Cg(),validFor:Eg}:null})((e=>"VariableName"==e.name)),Lg=Yl.define({name:"css",parser:qg.configure({props:[Ll.add({Declaration:rh()}),sh.add({"Block KeyframeList":Oh})]}),languageData:{commentTokens:{block:{open:"/*",close:"*/"}},indentOnInput:/^\s*\}$/,wordChars:"-"}});const Kg=[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],Fg=new hi({start:!1,shift:(e,t)=>3==t||4==t||307==t?e:308==t,strict:!1}),Hg=new Ht(((e,t)=>{let{next:i}=e;(125==i||-1==i||t.context)&&e.acceptToken(305)}),{contextual:!0,fallback:!0}),Jg=new Ht(((e,t)=>{let i,{next:r}=e;Kg.indexOf(r)>-1||(47!=r||47!=(i=e.peek(1))&&42!=i)&&(125==r||59==r||-1==r||t.context||e.acceptToken(304))}),{contextual:!0}),em=new Ht(((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}),tm=il({"get set async static":yl.modifier,"for while do if else switch try catch finally return throw break continue default case":yl.controlKeyword,"in of await yield void typeof delete instanceof":yl.operatorKeyword,"let var const using function class extends":yl.definitionKeyword,"import export from":yl.moduleKeyword,"with debugger as new":yl.keyword,TemplateString:yl.special(yl.string),super:yl.atom,BooleanLiteral:yl.bool,this:yl.self,null:yl.null,Star:yl.modifier,VariableName:yl.variableName,"CallExpression/VariableName TaggedTemplateExpression/VariableName":yl.function(yl.variableName),VariableDefinition:yl.definition(yl.variableName),Label:yl.labelName,PropertyName:yl.propertyName,PrivatePropertyName:yl.special(yl.propertyName),"CallExpression/MemberExpression/PropertyName":yl.function(yl.propertyName),"FunctionDeclaration/VariableDefinition":yl.function(yl.definition(yl.variableName)),"ClassDeclaration/VariableDefinition":yl.definition(yl.className),PropertyDefinition:yl.definition(yl.propertyName),PrivatePropertyDefinition:yl.definition(yl.special(yl.propertyName)),UpdateOp:yl.updateOperator,"LineComment Hashbang":yl.lineComment,BlockComment:yl.blockComment,Number:yl.number,String:yl.string,Escape:yl.escape,ArithOp:yl.arithmeticOperator,LogicOp:yl.logicOperator,BitOp:yl.bitwiseOperator,CompareOp:yl.compareOperator,RegExp:yl.regexp,Equals:yl.definitionOperator,Arrow:yl.function(yl.punctuation),": Spread":yl.punctuation,"( )":yl.paren,"[ ]":yl.squareBracket,"{ }":yl.brace,"InterpolationStart InterpolationEnd":yl.special(yl.brace),".":yl.derefOperator,", ;":yl.separator,"@":yl.meta,TypeName:yl.typeName,TypeDefinition:yl.definition(yl.typeName),"type enum interface implements namespace module declare":yl.definitionKeyword,"abstract global Privacy readonly override":yl.modifier,"is keyof unique infer":yl.operatorKeyword,JSXAttributeValue:yl.attributeValue,JSXText:yl.content,"JSXStartTag JSXStartCloseTag JSXSelfCloseEndTag JSXEndTag":yl.angleBracket,"JSXIdentifier JSXNameSpacedName":yl.tagName,"JSXAttribute/JSXIdentifier JSXAttribute/JSXNameSpacedName":yl.attributeName,"JSXBuiltin/JSXIdentifier":yl.standard(yl.tagName)}),im={__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},rm={__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},nm={__proto__:null,"<":139},om=ci.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:Fg,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:[tm],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#im[e]||-1},{term:330,get:e=>rm[e]||-1},{term:68,get:e=>nm[e]||-1}],tokenPrec:12827}),sm=[nu("function ${name}(${params}) {\n\t${}\n}",{label:"function",detail:"definition",type:"keyword"}),nu("for (let ${index} = 0; ${index} < ${bound}; ${index}++) {\n\t${}\n}",{label:"for",detail:"loop",type:"keyword"}),nu("for (let ${name} of ${collection}) {\n\t${}\n}",{label:"for",detail:"of loop",type:"keyword"}),nu("do {\n\t${}\n} while (${})",{label:"do",detail:"loop",type:"keyword"}),nu("while (${}) {\n\t${}\n}",{label:"while",detail:"loop",type:"keyword"}),nu("try {\n\t${}\n} catch (${error}) {\n\t${}\n}",{label:"try",detail:"/ catch block",type:"keyword"}),nu("if (${}) {\n\t${}\n}",{label:"if",detail:"block",type:"keyword"}),nu("if (${}) {\n\t${}\n} else {\n\t${}\n}",{label:"if",detail:"/ else block",type:"keyword"}),nu("class ${name} {\n\tconstructor(${params}) {\n\t\t${}\n\t}\n}",{label:"class",detail:"definition",type:"keyword"}),nu('import {${names}} from "${module}"\n${}',{label:"import",detail:"named",type:"keyword"}),nu('import ${name} from "${module}"\n${}',{label:"import",detail:"default",type:"keyword"})],Om=sm.concat([nu("interface ${name} {\n\t${}\n}",{label:"interface",detail:"definition",type:"keyword"}),nu("type ${name} = ${type}",{label:"type",detail:"definition",type:"keyword"}),nu("enum ${name} {\n\t${}\n}",{label:"enum",detail:"definition",type:"keyword"})]),am=new vt,lm=new Set(["Script","Block","FunctionExpression","FunctionDeclaration","ArrowFunction","MethodDeclaration","ForStatement"]);function hm(e){return(t,i)=>{let r=t.node.getChild("VariableDefinition");return r&&i(r,e),!0}}const cm=["FunctionDeclaration"],um={FunctionDeclaration:hm("function"),ClassDeclaration:hm("class"),ClassExpression:()=>!0,EnumDeclaration:hm("constant"),TypeAliasDeclaration:hm("type"),NamespaceDeclaration:hm("namespace"),VariableDefinition(e,t){e.matchContext(cm)||t(e,"variable")},TypeDefinition(e,t){t(e,"type")},__proto__:null};function fm(e,t){let i=am.get(t);if(i)return i;let r=[],n=!0;function o(t,i){let n=e.sliceString(t.from,t.to);r.push({label:n,type:i})}return t.cursor(ot.IncludeAnonymous).iterate((t=>{if(n)n=!1;else if(t.name){let e=um[t.name];if(e&&e(t,o)||lm.has(t.name))return!1}else if(t.to-t.from>8192){for(let i of fm(e,t.node))r.push(i);return!1}})),am.set(t,r),r}const dm=/^[\w$\xa1-\uffff][\w$\d\xa1-\uffff]*$/,pm=["TemplateString","String","RegExp","LineComment","BlockComment","VariableDefinition","TypeDefinition","Label","PropertyDefinition","PropertyName","PrivatePropertyDefinition","PrivatePropertyName",".","?."];function Qm(e){let t=Rl(e.state).resolveInner(e.pos,-1);if(pm.indexOf(t.name)>-1)return null;let i="VariableName"==t.name||t.to-t.from<20&&dm.test(e.state.sliceDoc(t.from,t.to));if(!i&&!e.explicit)return null;let r=[];for(let i=t;i;i=i.parent)lm.has(i.name)&&(r=r.concat(fm(e.state.doc,i)));return{options:r,from:i?t.from:e.pos,validFor:dm}}const gm=Yl.define({name:"javascript",parser:om.configure({props:[Ll.add({IfStatement:rh({except:/^\s*({|else\b)/}),TryStatement:rh({except:/^\s*({|catch\b|finally\b)/}),LabeledStatement:e=>e.baseIndent,SwitchBody:e=>{let t=e.textAfter,i=/^\s*\}/.test(t),r=/^\s*(case|default)\b/.test(t);return e.baseIndent+(i?0:r?1:2)*e.unit},Block:th({closing:"}"}),ArrowFunction:e=>e.baseIndent+e.unit,"TemplateString BlockComment":()=>null,"Statement Property":rh({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}),sh.add({"Block ClassBody SwitchBody EnumBody ObjectExpression ArrayExpression ObjectType":Oh,BlockComment:e=>({from:e.from+2,to:e.to-2})})]}),languageData:{closeBrackets:{brackets:["(","[","{","'",'"',"`"]},commentTokens:{line:"//",block:{open:"/*",close:"*/"}},indentOnInput:/^\s*(?:case |default:|\{|\}|<\/)$/,wordChars:"$"}}),mm={test:e=>/^JSX/.test(e.name),facet:Pl({commentTokens:{block:{open:"{/*",close:"*/}"}}})},$m=gm.configure({dialect:"ts"},"typescript"),bm=gm.configure({dialect:"jsx",props:[wl.add((e=>e.isTop?[mm]:void 0))]}),Xm=gm.configure({dialect:"jsx ts",props:[wl.add((e=>e.isTop?[mm]:void 0))]},"typescript");let Sm=e=>({label:e,type:"keyword"});const ym="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(Sm),vm=ym.concat(["declare","implements","private","protected","public"].map(Sm));function xm(e={}){let t=e.jsx?e.typescript?Xm:bm:e.typescript?$m:gm,i=e.typescript?Om.concat(vm):sm.concat(ym);return new jl(t,[gm.data.of({autocomplete:ec(pm,Jh(i))}),gm.data.of({autocomplete:Qm}),e.jsx?Tm:[]])}function Pm(e,t,i=e.length){for(let r=null==t?void 0:t.firstChild;r;r=r.nextSibling)if("JSXIdentifier"==r.name||"JSXBuiltin"==r.name||"JSXNamespacedName"==r.name||"JSXMemberExpression"==r.name)return e.sliceString(r.from,Math.min(r.to,i));return""}const wm="object"==typeof navigator&&/Android\b/.test(navigator.userAgent),Tm=SO.inputHandler.of(((e,t,i,r,n)=>{if((wm?e.composing:e.compositionStarted)||e.state.readOnly||t!=i||">"!=r&&"/"!=r||!gm.isActiveAt(e.state,t,-1))return!1;let o=n(),{state:s}=o,O=s.changeByRange((e=>{var t;let i,{head:n}=e,o=Rl(s).resolveInner(n-1,-1);if("JSXStartTag"==o.name&&(o=o.parent),s.doc.sliceString(n-1,n)!=r||"JSXAttributeValue"==o.name&&o.to>n);else{if(">"==r&&"JSXFragmentTag"==o.name)return{range:e,changes:{from:n,insert:""}};if("/"==r&&"JSXStartCloseTag"==o.name){let e=o.parent,r=e.parent;if(r&&e.from==n-2&&((i=Pm(s.doc,r.firstChild,n))||"JSXFragmentTag"==(null===(t=r.firstChild)||void 0===t?void 0:t.name))){let e=`${i}>`;return{range:C.cursor(n+e.length,-1),changes:{from:n,insert:e}}}}else if(">"==r){let t=function(e){for(;;){if("JSXOpenTag"==e.name||"JSXSelfClosingTag"==e.name||"JSXFragmentTag"==e.name)return e;if("JSXEscape"==e.name||!e.parent)return null;e=e.parent}}(o);if(t&&"JSXOpenTag"==t.name&&!/^\/?>|^<\//.test(s.doc.sliceString(n,n+2))&&(i=Pm(s.doc,t,n)))return{range:e,changes:{from:n,insert:``}}}}return{range:e}}));return!O.changes.empty&&(e.dispatch([o,s.update(O,{userEvent:"input.complete",scrollIntoView:!0})]),!0)})),km=["_blank","_self","_top","_parent"],Ym=["ascii","utf-8","utf-16","latin1","latin1"],Rm=["get","post","put","delete"],_m=["application/x-www-form-urlencoded","multipart/form-data","text/plain"],Vm=["true","false"],Zm={},Am={a:{attrs:{href:null,ping:null,type:null,media:null,target:km,hreflang:null}},abbr:Zm,address:Zm,area:{attrs:{alt:null,coords:null,href:null,target:null,ping:null,media:null,hreflang:null,type:null,shape:["default","rect","circle","poly"]}},article:Zm,aside:Zm,audio:{attrs:{src:null,mediagroup:null,crossorigin:["anonymous","use-credentials"],preload:["none","metadata","auto"],autoplay:["autoplay"],loop:["loop"],controls:["controls"]}},b:Zm,base:{attrs:{href:null,target:km}},bdi:Zm,bdo:Zm,blockquote:{attrs:{cite:null}},body:Zm,br:Zm,button:{attrs:{form:null,formaction:null,name:null,value:null,autofocus:["autofocus"],disabled:["autofocus"],formenctype:_m,formmethod:Rm,formnovalidate:["novalidate"],formtarget:km,type:["submit","reset","button"]}},canvas:{attrs:{width:null,height:null}},caption:Zm,center:Zm,cite:Zm,code:Zm,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:Zm,del:{attrs:{cite:null,datetime:null}},details:{attrs:{open:["open"]}},dfn:Zm,div:Zm,dl:Zm,dt:Zm,em:Zm,embed:{attrs:{src:null,type:null,width:null,height:null}},eventsource:{attrs:{src:null}},fieldset:{attrs:{disabled:["disabled"],form:null,name:null}},figcaption:Zm,figure:Zm,footer:Zm,form:{attrs:{action:null,name:null,"accept-charset":Ym,autocomplete:["on","off"],enctype:_m,method:Rm,novalidate:["novalidate"],target:km}},h1:Zm,h2:Zm,h3:Zm,h4:Zm,h5:Zm,h6:Zm,head:{children:["title","base","link","style","meta","script","noscript","command"]},header:Zm,hgroup:Zm,hr:Zm,html:{attrs:{manifest:null}},i:Zm,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:_m,formmethod:Rm,formnovalidate:["novalidate"],formtarget:km,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:Zm,keygen:{attrs:{challenge:null,form:null,name:null,autofocus:["autofocus"],disabled:["disabled"],keytype:["RSA"]}},label:{attrs:{for:null,form:null}},legend:Zm,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:Zm,menu:{attrs:{label:null,type:["list","context","toolbar"]}},meta:{attrs:{content:null,charset:Ym,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:Zm,noscript:Zm,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:Zm,param:{attrs:{name:null,value:null}},pre:Zm,progress:{attrs:{value:null,max:null}},q:{attrs:{cite:null}},rp:Zm,rt:Zm,ruby:Zm,samp:Zm,script:{attrs:{type:["text/javascript"],src:null,async:["async"],defer:["defer"],charset:Ym}},section:Zm,select:{attrs:{form:null,name:null,size:null,autofocus:["autofocus"],disabled:["disabled"],multiple:["multiple"]}},slot:{attrs:{name:null}},small:Zm,source:{attrs:{src:null,type:null,media:null}},span:Zm,strong:Zm,style:{attrs:{type:["text/css"],media:null,scoped:null}},sub:Zm,summary:Zm,sup:Zm,table:Zm,tbody:Zm,td:{attrs:{colspan:null,rowspan:null,headers:null}},template:Zm,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:Zm,th:{attrs:{colspan:null,rowspan:null,headers:null,scope:["row","col","rowgroup","colgroup"]}},thead:Zm,time:{attrs:{datetime:null}},title:Zm,tr:Zm,track:{attrs:{src:null,label:null,default:null,kind:["subtitles","captions","descriptions","chapters","metadata"],srclang:null}},ul:{children:["li","script","template","ul","ol"]},var:Zm,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:Zm},qm={accesskey:null,class:null,contenteditable:Vm,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:Vm,autocorrect:Vm,autocapitalize:Vm,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":Vm,"aria-autocomplete":["inline","list","both","none"],"aria-busy":Vm,"aria-checked":["true","false","mixed","undefined"],"aria-controls":null,"aria-describedby":null,"aria-disabled":Vm,"aria-dropeffect":null,"aria-expanded":["true","false","undefined"],"aria-flowto":null,"aria-grabbed":["true","false","undefined"],"aria-haspopup":Vm,"aria-hidden":Vm,"aria-invalid":["true","false","grammar","spelling"],"aria-label":null,"aria-labelledby":null,"aria-level":null,"aria-live":["off","polite","assertive"],"aria-multiline":Vm,"aria-multiselectable":Vm,"aria-owns":null,"aria-posinset":null,"aria-pressed":["true","false","mixed","undefined"],"aria-readonly":Vm,"aria-relevant":null,"aria-required":Vm,"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},Wm="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 Wm)qm[e]=null;class Cm{constructor(e,t){this.tags=Object.assign(Object.assign({},Am),e),this.globalAttrs=Object.assign(Object.assign({},qm),t),this.allTags=Object.keys(this.tags),this.globalAttrNames=Object.keys(this.globalAttrs)}}function Um(e,t,i=e.length){if(!t)return"";let r=t.firstChild,n=r&&r.getChild("TagName");return n?e.sliceString(n.from,Math.min(n.to,i)):""}function Nm(e,t=!1){for(;e;e=e.parent)if("Element"==e.name){if(!t)return e;t=!1}return null}function jm(e,t,i){let r=i.tags[Um(e,Nm(t))];return(null==r?void 0:r.children)||i.allTags}function Em(e,t){let i=[];for(let r=Nm(t);r&&!r.type.isTop;r=Nm(r.parent)){let n=Um(e,r);if(n&&"CloseTag"==r.lastChild.name)break;n&&i.indexOf(n)<0&&("EndTag"==t.name||t.from>=r.firstChild.to)&&i.push(n)}return i}Cm.default=new Cm;const zm=/^[:\-\.\w\u00b7-\uffff]*$/;function Gm(e,t,i,r,n){let o=/\s*>/.test(e.sliceDoc(n,n+5))?"":">",s=Nm(i,!0);return{from:r,to:n,options:jm(e.doc,s,t).map((e=>({label:e,type:"type"}))).concat(Em(e.doc,i).map(((e,t)=>({label:"/"+e,apply:"/"+e+o,type:"type",boost:99-t})))),validFor:/^\/?[:\-\.\w\u00b7-\uffff]*$/}}function Dm(e,t,i,r){let n=/\s*>/.test(e.sliceDoc(r,r+5))?"":">";return{from:i,to:r,options:Em(e.doc,t).map(((e,t)=>({label:e,apply:e+n,type:"type",boost:99-t}))),validFor:zm}}function Mm(e,t){let{state:i,pos:r}=t,n=Rl(i).resolveInner(r,-1),o=n.resolve(r);for(let e,t=r;o==n&&(e=n.childBefore(t));){let i=e.lastChild;if(!i||!i.type.isError||i.from({label:e,type:"property"}))),validFor:zm}}(i,e,n,"AttributeName"==n.name?n.from:r,r):"Is"==n.name||"AttributeValue"==n.name||"UnquotedAttributeValue"==n.name?function(e,t,i,r,n){var o;let s,O=null===(o=i.parent)||void 0===o?void 0:o.getChild("AttributeName"),a=[];if(O){let o=e.sliceDoc(O.from,O.to),l=t.globalAttrs[o];if(!l){let r=Nm(i),n=r?t.tags[Um(e.doc,r)]:null;l=(null==n?void 0:n.attrs)&&n.attrs[o]}if(l){let t=e.sliceDoc(r,n).toLowerCase(),i='"',o='"';/^['"]/.test(t)?(s='"'==t[0]?/^[^"]*$/:/^[^']*$/,i="",o=e.sliceDoc(n,n+1)==t[0]?"":t[0],t=t.slice(1),r++):s=/^[^\s<>='"]*$/;for(let e of l)a.push({label:e,apply:i+e+o,type:"constant"})}}return{from:r,to:n,options:a,validFor:s}}(i,e,n,"Is"==n.name?r:n.from,r):!t.explicit||"Element"!=o.name&&"Text"!=o.name&&"Document"!=o.name?null:function(e,t,i,r){let n=[],o=0;for(let r of jm(e.doc,i,t))n.push({label:"<"+r,type:"type"});for(let t of Em(e.doc,i))n.push({label:"",type:"type",boost:99-o++});return{from:r,to:r,options:n,validFor:/^<\/?[:\-\.\w\u00b7-\uffff]*$/}}(i,e,n,r)}function Bm(e){let{extraTags:t,extraGlobalAttributes:i}=e,r=i||t?new Cm(t,i):Cm.default;return e=>Mm(r,e)}const Im=gm.parser.configure({top:"SingleExpression"}),Lm=[{tag:"script",attrs:e=>"text/typescript"==e.type||"ts"==e.lang,parser:$m.parser},{tag:"script",attrs:e=>"text/babel"==e.type||"text/jsx"==e.type,parser:bm.parser},{tag:"script",attrs:e=>"text/typescript-jsx"==e.type,parser:Xm.parser},{tag:"script",attrs:e=>/^(importmap|speculationrules|application\/(.+\+)?json)$/i.test(e.type),parser:Im},{tag:"script",attrs:e=>!e.type||/^(?:text|application)\/(?:x-)?(?:java|ecma)script$|^module$|^$/i.test(e.type),parser:gm.parser},{tag:"style",attrs:e=>(!e.lang||"css"==e.lang)&&(!e.type||/^(text\/)?(x-)?(stylesheet|css)$/i.test(e.type)),parser:Lg.parser}],Km=[{name:"style",parser:Lg.parser.configure({top:"Styles"})}].concat(Wm.map((e=>({name:e,parser:gm.parser})))),Fm=Yl.define({name:"html",parser:Xg.configure({props:[Ll.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:"-._"}}),Hm=Fm.configure({wrap:xg(Lm,Km)});function Jm(e={}){let t,i="";!1===e.matchClosingTags&&(i="noMatch"),!0===e.selfClosingTags&&(i=(i?i+" ":"")+"selfClosing"),(e.nestedLanguages&&e.nestedLanguages.length||e.nestedAttributes&&e.nestedAttributes.length)&&(t=xg((e.nestedLanguages||[]).concat(Lm),(e.nestedAttributes||[]).concat(Km)));let r=t?Fm.configure({wrap:t,dialect:i}):i?Hm.configure({dialect:i}):Hm;return new jl(r,[Hm.data.of({autocomplete:Bm(e)}),!1!==e.autoCloseTags?t$:[],xm().support,new jl(Lg,Lg.data.of({autocomplete:Ig})).support])}const e$=new Set("area base br col command embed frame hr img input keygen link meta param source track wbr menuitem".split(" ")),t$=SO.inputHandler.of(((e,t,i,r,n)=>{if(e.composing||e.state.readOnly||t!=i||">"!=r&&"/"!=r||!Hm.isActiveAt(e.state,t,-1))return!1;let o=n(),{state:s}=o,O=s.changeByRange((e=>{var t,i,n;let o,O=s.doc.sliceString(e.from-1,e.to)==r,{head:a}=e,l=Rl(s).resolveInner(a-1,-1);if("TagName"!=l.name&&"StartTag"!=l.name||(l=l.parent),O&&">"==r&&"OpenTag"==l.name){if("CloseTag"!=(null===(i=null===(t=l.parent)||void 0===t?void 0:t.lastChild)||void 0===i?void 0:i.name)&&(o=Um(s.doc,l.parent,a))&&!e$.has(o))return{range:e,changes:{from:a,to:a+(">"===s.doc.sliceString(a,a+1)?1:0),insert:``}}}else if(O&&"/"==r&&"IncompleteCloseTag"==l.name){let e=l.parent;if(l.from==a-2&&"CloseTag"!=(null===(n=e.lastChild)||void 0===n?void 0:n.name)&&(o=Um(s.doc,e,a))&&!e$.has(o)){let e=a+(">"===s.doc.sliceString(a,a+1)?1:0),t=`${o}>`;return{range:C.cursor(a+t.length,-1),changes:{from:a,to:e,insert:t}}}}return{range:e}}));return!O.changes.empty&&(e.dispatch([o,s.update(O,{userEvent:"input.complete",scrollIntoView:!0})]),!0)})),i$=Pl({commentTokens:{block:{open:"\x3c!--",close:"--\x3e"}}}),r$=new He,n$=TQ.configure({props:[sh.add((e=>!e.is("Block")||e.is("Document")||null!=o$(e)?void 0:(e,t)=>({from:t.doc.lineAt(e.from).to,to:e.to}))),r$.add(o$),Ll.add({Document:()=>null}),xl.add({Document:i$})]});function o$(e){let t=/^(?:ATX|Setext)Heading(\d)$/.exec(e.name);return t?+t[1]:void 0}function s$(e,t){let i=e;for(;;){let e,r=i.nextSibling;if(!r||null!=(e=o$(r.type))&&e<=t)break;i=r}return i.to}const O$=oh.of(((e,t,i)=>{for(let r=Rl(e).resolveInner(i,-1);r&&!(r.fromi)return{from:i,to:t}}return null}));function a$(e){return new Tl(i$,e,[O$],"markdown")}const l$=a$(n$),h$=n$.configure([IQ,FQ,KQ,HQ,{props:[sh.add({Table:(e,t)=>({from:t.doc.lineAt(e.from).to,to:e.to})})]}]),c$=a$(h$);class u${constructor(e,t,i,r,n,o,s){this.node=e,this.from=t,this.to=i,this.spaceBefore=r,this.spaceAfter=n,this.type=o,this.item=s}blank(e,t=!0){let i=this.spaceBefore+("Blockquote"==this.node.name?">":"");if(null!=e){for(;i.length0;e--)i+=" ";return i+(t?this.spaceAfter:"")}marker(e,t){let i="OrderedList"==this.node.name?String(+d$(this.item,e)[2]+t):"";return this.spaceBefore+i+this.type+this.spaceAfter}}function f$(e,t){let i=[];for(let t=e;t&&"Document"!=t.name;t=t.parent)"ListItem"!=t.name&&"Blockquote"!=t.name&&"FencedCode"!=t.name||i.push(t);let r=[];for(let e=i.length-1;e>=0;e--){let n,o=i[e],s=t.lineAt(o.from),O=o.from-s.from;if("FencedCode"==o.name)r.push(new u$(o,O,O,"","","",null));else if("Blockquote"==o.name&&(n=/^ *>( ?)/.exec(s.text.slice(O))))r.push(new u$(o,O,O+n[0].length,"",n[1],">",null));else if("ListItem"==o.name&&"OrderedList"==o.parent.name&&(n=/^( *)\d+([.)])( *)/.exec(s.text.slice(O)))){let e=n[3],t=n[0].length;e.length>=4&&(e=e.slice(0,e.length-4),t-=4),r.push(new u$(o.parent,O,O+t,n[1],e,n[2],o))}else if("ListItem"==o.name&&"BulletList"==o.parent.name&&(n=/^( *)([-+*])( {1,4}\[[ xX]\])?( +)/.exec(s.text.slice(O)))){let e=n[4],t=n[0].length;e.length>4&&(e=e.slice(0,e.length-4),t-=4);let i=n[2];n[3]&&(i+=n[3].replace(/[xX]/," ")),r.push(new u$(o.parent,O,O+t,n[1],e,i,o))}}return r}function d$(e,t){return/^(\s*)(\d+)(?=[.)])/.exec(t.sliceString(e.from,e.from+10))}function p$(e,t,i,r=0){for(let n=-1,o=e;;){if("ListItem"==o.name){let e=d$(o,t),s=+e[2];if(n>=0){if(s!=n+1)return;i.push({from:o.from+e[1].length,to:o.from+e[0].length,insert:String(n+2+r)})}n=s}let e=o.nextSibling;if(!e)break;o=e}}function Q$(e,t){let i=/^[ \t]*/.exec(e)[0].length;if(!i||"\t"!=t.facet(Gl))return e;let r="";for(let t=Be(e,4,i);t>0;)t>=4?(r+="\t",t-=4):(r+=" ",t--);return r+e.slice(i)}function g$(e){return"QuoteMark"==e.name||"ListMark"==e.name}function m$(e,t,i){let r="";for(let t=0,n=e.length-2;t<=n;t++)r+=e[t].blank(t{let i=Rl(e),{doc:r}=e,n=null,o=e.changeByRange((t=>{if(!t.empty||!c$.isActiveAt(e,t.from))return n={range:t};let o=t.from,s=r.lineAt(o),O=f$(i.resolveInner(o,-1),r);for(;O.length&&O[O.length-1].from>o-s.from;)O.pop();if(!O.length)return n={range:t};let a=O[O.length-1];if(a.to-a.spaceAfter.length>o-s.from)return n={range:t};let l=o>=a.to-a.spaceAfter.length&&!/\S/.test(s.text.slice(a.to));if(a.item&&l){let t=a.node.firstChild,i=a.node.getChild("ListItem","ListItem");if(t.to>=o||i&&i.to0&&!/[^\s>]/.test(r.lineAt(s.from-1).text)){let e,t=O.length>1?O[O.length-2]:null,i="";t&&t.item?(e=s.from+t.from,i=t.marker(r,1)):e=s.from+(t?t.to:0);let n=[{from:e,to:o,insert:i}];return"OrderedList"==a.node.name&&p$(a.item,r,n,-2),t&&"OrderedList"==t.node.name&&p$(t.item,r,n),{range:C.cursor(e+i.length),changes:n}}{let t=m$(O,e,s);return{range:C.cursor(o+t.length+1),changes:{from:s.from,insert:t+e.lineBreak}}}}if("Blockquote"==a.node.name&&l&&s.from){let i=r.lineAt(s.from-1),n=/>\s*$/.exec(i.text);if(n&&n.index==a.from){let r=e.changes([{from:i.from+n.index,to:i.to},{from:s.from+a.from,to:s.to}]);return{range:t.map(r),changes:r}}}let h=[];"OrderedList"==a.node.name&&p$(a.item,r,h);let c=a.item&&a.item.from]*/.exec(s.text)[0].length>=a.to)for(let e=0,t=O.length-1;e<=t;e++)u+=e!=t||c?O[e].blank(es.from&&/\s/.test(s.text.charAt(f-s.from-1));)f--;return u=Q$(u,e),function(e,t){if("OrderedList"!=e.name&&"BulletList"!=e.name)return!1;let i=e.firstChild,r=e.getChild("ListItem","ListItem");if(!r)return!1;let n=t.lineAt(i.to),o=t.lineAt(r.from),s=/^[\s>]*$/.test(n.text);return n.number+(s?0:1){let i=Rl(e),r=null,n=e.changeByRange((t=>{let n=t.from,{doc:o}=e;if(t.empty&&c$.isActiveAt(e,t.from)){let t=o.lineAt(n),r=f$(function(e,t){let i,r=e.resolveInner(t,-1),n=t;for(g$(r)&&(n=r.from,r=r.parent);i=r.childBefore(n);)if(g$(i))n=i.from;else{if("OrderedList"!=i.name&&"BulletList"!=i.name)break;r=i.lastChild,n=r.to}return r}(i,n),o);if(r.length){let i=r[r.length-1],o=i.to-i.spaceAfter.length+(i.spaceAfter?1:0);if(n-t.from>o&&!/\S/.test(t.text.slice(o,n-t.from)))return{range:C.cursor(t.from+o),changes:{from:t.from+o,to:n}};if(n-t.from==o&&(!i.item||t.from<=i.item.from||!/\S/.test(t.text.slice(0,i.to)))){let r=t.from+i.from;if(i.item&&i.node.from{if(i&&e){let t=null;if(i=/\S*/.exec(i)[0],t="function"==typeof e?e(i):El.matchLanguageName(e,i,!0),t instanceof El)return t.support?t.support.language.parser:Zl.getSkippingParser(t.load());if(t)return t.parser}return t?t.parser:null}}(t,s):void 0;O.push(YQ({codeParser:l,htmlParser:b$.language.parser})),r&&a.push(ee.high(YO.of($$)));let h=a$(n.configure(O));return o&&a.push(h.data.of({autocomplete:S$})),new jl(h,a)}function S$(e){let{state:t,pos:i}=e,r=/<[:\-\.\w\u00b7-\uffff]*$/.exec(t.sliceDoc(i-25,i));if(!r)return null;let n=Rl(t).resolveInner(i,-1);for(;n&&!n.type.isTop;){if("CodeBlock"==n.name||"FencedCode"==n.name||"ProcessingInstructionBlock"==n.name||"CommentBlock"==n.name||"Link"==n.name||"Image"==n.name)return null;n=n.parent}return{from:i-r[0].length,to:i,options:v$(),validFor:/^<[:\-\.\w\u00b7-\uffff]*$/}}let y$=null;function v$(){if(y$)return y$;let e=function(e){return Mm(Cm.default,e)}(new Fh(ke.create({extensions:b$}),0,!0));return y$=e?e.options:[]}function x$(e){return e>=65&&e<=90||e>=97&&e<=122||e>=48&&e<=57}function P$(e){return e>=48&&e<=57||e>=97&&e<=102||e>=65&&e<=70}function w$(e,t,i){for(let r=!1;;){if(e.next<0)return;if(e.next==t&&!r)return void e.advance();r=i&&!r&&92==e.next,e.advance()}}function T$(e,t){for(;95==e.next||x$(e.next);)null!=t&&(t+=String.fromCharCode(e.next)),e.advance();return t}function k$(e,t){for(;48==e.next||49==e.next;)e.advance();t&&e.next==t&&e.advance()}function Y$(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 R$(e){for(;!(e.next<0||10==e.next);)e.advance()}function _$(e,t){for(let i=0;i!=&|~^/",specialVar:"?",identifierQuotes:'"',words:Z$(q$,A$)};function C$(e){return new Ht((t=>{var i;let{next:r}=t;if(t.advance(),_$(r,V$)){for(;_$(t.next,V$);)t.advance();t.acceptToken(36)}else if(36==r){let e=T$(t,"");36==t.next&&(t.advance(),function(e,t){e:for(;;){if(e.next<0)return console.log("exit at end",e.pos);if(36==e.next){e.advance();for(let i=0;i1){t.advance(),w$(t,39,e.backslashEscapes),t.acceptToken(3);break}if(!x$(t.next))break;t.advance()}else if(e.plsqlQuotingMechanism&&(113==r||81==r)&&39==t.next&&t.peek(1)>0&&!_$(t.peek(1),V$)){let e=t.peek(1);t.advance(2),function(e,t){let i="[{<(".indexOf(String.fromCharCode(t)),r=i<0?t:"]}>)".charCodeAt(i);for(;;){if(e.next<0)return;if(e.next==r&&39==e.peek(1))return void e.advance(2);e.advance()}}(t,e),t.acceptToken(3)}else if(40==r)t.acceptToken(7);else if(41==r)t.acceptToken(8);else if(123==r)t.acceptToken(9);else if(125==r)t.acceptToken(10);else if(91==r)t.acceptToken(11);else if(93==r)t.acceptToken(12);else if(59==r)t.acceptToken(13);else if(e.unquotedBitLiterals&&48==r&&98==t.next)t.advance(),k$(t),t.acceptToken(22);else if(98!=r&&66!=r||39!=t.next&&34!=t.next){if(48==r&&(120==t.next||88==t.next)||(120==r||88==r)&&39==t.next){let e=39==t.next;for(t.advance();P$(t.next);)t.advance();e&&39==t.next&&t.advance(),t.acceptToken(4)}else if(46==r&&t.next>=48&&t.next<=57)Y$(t,!0),t.acceptToken(4);else if(46==r)t.acceptToken(14);else if(r>=48&&r<=57)Y$(t,!1),t.acceptToken(4);else if(_$(r,e.operatorChars)){for(;_$(t.next,e.operatorChars);)t.advance();t.acceptToken(15)}else if(_$(r,e.specialVar))t.next==r&&t.advance(),function(e){if(39==e.next||34==e.next||96==e.next){let t=e.next;e.advance(),w$(e,t,!1)}else T$(e)}(t),t.acceptToken(17);else if(_$(r,e.identifierQuotes))w$(t,r,!1),t.acceptToken(19);else if(58==r||44==r)t.acceptToken(16);else if(x$(r)){let n=T$(t,String.fromCharCode(r));t.acceptToken(46==t.next||46==t.peek(-n.length-1)?18:null!==(i=e.words[n.toLowerCase()])&&void 0!==i?i:18)}}else{const i=t.next;t.advance(),e.treatBitsAsBytes?(w$(t,i,e.backslashEscapes),t.acceptToken(23)):(k$(t,i),t.acceptToken(22))}else t.advance(),w$(t,39,e.backslashEscapes),t.acceptToken(3);else t.advance(),w$(t,39,!0);else R$(t),t.acceptToken(1)}))}const U$=C$(W$),N$=ci.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,nodeProps:[["isolate",-4,1,2,3,19,""]],skippedNodes:[0,1,2],repeatNodeCount:3,tokenData:"RORO",tokenizers:[0,U$],topRules:{Script:[0,25]},tokenPrec:0});function j$(e){let t=e.cursor().moveTo(e.from,-1);for(;/Comment/.test(t.name);)t.moveTo(t.from,-1);return t.node}function E$(e,t){let i=e.sliceString(t.from,t.to),r=/^([`'"])(.*)\1$/.exec(i);return r?r[2]:i}function z$(e){return e&&("Identifier"==e.name||"QuotedIdentifier"==e.name)}function G$(e,t){if("CompositeIdentifier"==t.name){let i=[];for(let r=t.firstChild;r;r=r.nextSibling)z$(r)&&i.push(E$(e,r));return i}return[E$(e,t)]}function D$(e,t){for(let i=[];;){if(!t||"."!=t.name)return i;let r=j$(t);if(!z$(r))return i;i.unshift(E$(e,r)),t=j$(r)}}function M$(e,t){let i=Rl(e).resolveInner(t,-1),r=function(e,t){let i;for(let e=t;!i;e=e.parent){if(!e)return null;"Statement"==e.name&&(i=e)}let r=null;for(let t=i.firstChild,n=!1,o=null;t;t=t.nextSibling){let i="Keyword"==t.name?e.sliceString(t.from,t.to).toLowerCase():null,s=null;if(n)if("as"==i&&o&&z$(t.nextSibling))s=E$(e,t.nextSibling);else{if(i&&B$.has(i))break;o&&z$(t)&&(s=E$(e,t))}else n="from"==i;s&&(r||(r=Object.create(null)),r[s]=G$(e,o)),o=/Identifier$/.test(t.name)?t:null}return r}(e.doc,i);return"Identifier"==i.name||"QuotedIdentifier"==i.name||"Keyword"==i.name?{from:i.from,quoted:"QuotedIdentifier"==i.name?e.doc.sliceString(i.from,i.from+1):null,parents:D$(e.doc,j$(i)),aliases:r}:"."==i.name?{from:t,quoted:null,parents:D$(e.doc,i),aliases:r}:{from:t,quoted:null,parents:[],empty:!0,aliases:r}}const B$=new Set("where group having order union intersect except all distinct limit offset fetch for".split(" "));function I$(e,t){return e?t.map((t=>Object.assign(Object.assign({},t),{label:t.label[0]==e?t.label:e+t.label+e,apply:void 0}))):t}const L$=/^\w*$/,K$=/^[`'"]?\w*[`'"]?$/;function F$(e){return e.self&&"string"==typeof e.self.label}class H${constructor(e){this.idQuote=e,this.list=[],this.children=void 0}child(e){let t=this.children||(this.children=Object.create(null));return t[e]||(e&&!this.list.some((t=>t.label==e))&&this.list.push(J$(e,"type",this.idQuote)),t[e]=new H$(this.idQuote))}maybeChild(e){return this.children?this.children[e]:null}addCompletion(e){let t=this.list.findIndex((t=>t.label==e.label));t>-1?this.list[t]=e:this.list.push(e)}addCompletions(e){for(let t of e)this.addCompletion("string"==typeof t?J$(t,"property",this.idQuote):t)}addNamespace(e){Array.isArray(e)?this.addCompletions(e):F$(e)?this.addNamespace(e.children):this.addNamespaceObject(e)}addNamespaceObject(e){for(let t of Object.keys(e)){let i=e[t],r=null,n=t.replace(/\\?\./g,(e=>"."==e?"\0":e)).split("\0"),o=this;F$(i)&&(r=i.self,i=i.children);for(let e=0;e({from:e.firstChild.to,to:e.to}),BlockComment:e=>({from:e.from+2,to:e.to-2})}),il({Keyword:yl.keyword,Type:yl.typeName,Builtin:yl.standard(yl.name),Bits:yl.number,Bytes:yl.string,Bool:yl.bool,Null:yl.null,Number:yl.number,String:yl.string,Identifier:yl.name,QuotedIdentifier:yl.special(yl.string),SpecialVar:yl.special(yl.name),LineComment:yl.lineComment,BlockComment:yl.blockComment,Operator:yl.operator,"Semi Punctuation":yl.punctuation,"( )":yl.paren,"{ }":yl.brace,"[ ]":yl.squareBracket})]});class tb{constructor(e,t,i){this.dialect=e,this.language=t,this.spec=i}get extension(){return this.language.extension}static define(e){let t=function(e,t,i,r){let n={};for(let t in W$)n[t]=(e.hasOwnProperty(t)?e:W$)[t];return t&&(n.words=Z$(t,i||"",r)),n}(e,e.keywords,e.types,e.builtin),i=Yl.define({name:"sql",parser:eb.configure({tokenizers:[{from:U$,to:C$(t)}]}),languageData:{commentTokens:{line:"--",block:{open:"/*",close:"*/"}},closeBrackets:{brackets:["(","[","{","'",'"',"`"]}}});return new tb(t,i,e)}}function ib(e,t=!1){return function(e,t){return ec(["QuotedIdentifier","SpecialVar","String","LineComment","BlockComment","."],Jh(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 rb(e,t=!1){return e.language.data.of({autocomplete:ib(e,t)})}function nb(e){return e.schema?function(e,t,i,r,n,o){var s;let O=(null===(s=null==o?void 0:o.spec.identifierQuotes)||void 0===s?void 0:s[0])||'"',a=new H$(O),l=n?a.child(n):null;return a.addNamespace(e),t&&(l||a).addCompletions(t),i&&a.addCompletions(i),l&&a.addCompletions(l.list),r&&a.addCompletions((l||a).child(r).list),e=>{let{parents:t,from:i,quoted:n,empty:o,aliases:s}=M$(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=l;else{if(O!=l||!r)return null;O=O.child(r)}let t=O.maybeChild(e);if(!t)return null;O=t}let h=n&&e.state.sliceDoc(e.pos,e.pos+1)==n,c=O.list;return O==a&&s&&(c=c.concat(Object.keys(s).map((e=>({label:e,type:"constant"}))))),{from:i,to:h?e.pos+1:void 0,options:I$(n,c),validFor:n?K$:L$}}}(e.schema,e.tables,e.schemas,e.defaultTable,e.defaultSchema,e.dialect||Ob):()=>null}function ob(e){return e.schema?(e.dialect||Ob).language.data.of({autocomplete:nb(e)}):[]}function sb(e={}){let t=e.dialect||Ob;return new jl(t.language,[ob(e),rb(t,!!e.upperCaseKeywords)])}const Ob=tb.define({}),ab=tb.define({charSetCasts:!0,doubleDollarQuotedStrings:!0,operatorChars:"+-*/<>=~!@#%^&|`?",specialVar:"",keywords:q$+"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:A$+"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"}),lb=new Set([27,51,52,270,67,133,58,59,251,64,65,74,62,63,154,155,158,115]);function hb(e){return 10==e||13==e}const cb=new Ht(((e,t)=>{let i;if(e.next<0)e.acceptToken(206);else if(t.context.depth<0)hb(e.next)&&e.acceptToken(205,1);else if(((i=e.peek(-1))<0||hb(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 hb(e.next)&&e.acceptToken(203,1)}),{contextual:!0}),ub=new Ht(((e,t)=>{let i=t.context.depth;if(i<0)return;let r=e.peek(-1);if(10==r||13==r){let t=0,r=0;for(;;){if(32==e.next)t++;else{if(9!=e.next)break;t+=8-t%8}e.advance(),r++}t!=i&&10!=e.next&&13!=e.next&&35!=e.next&&(te.depth<0&&lb.has(t)?e.parent:e,shift:(e,t,i,r)=>201==t?new fb(e,function(e){let t=0;for(let i=0;ie.hash}),pb=new Ht((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 Qb(e,t,i,r,n){return new Ht((o=>{let s=o.pos;for(;!(o.next<0);)if(123==o.next){if(123!=o.peek(1)){if(o.pos==s)return void o.acceptToken(r,1);break}o.advance(2)}else if(92==o.next)o.advance(),o.next>=0&&o.advance();else{if(o.next==e&&(1==t||o.peek(1)==e&&o.peek(2)==e)){if(o.pos==s)return void o.acceptToken(n,t);break}o.advance()}o.pos>s&&o.acceptToken(i)}))}const gb=Qb(39,1,207,2,208),mb=Qb(34,1,209,3,210),$b=Qb(39,3,211,4,212),bb=Qb(34,3,213,5,214),Xb=il({'async "*" "**" FormatConversion FormatSpec':yl.modifier,"for while if elif else try except finally return raise break continue with pass assert await yield match case":yl.controlKeyword,"in not and or is del":yl.operatorKeyword,"from def class global nonlocal lambda":yl.definitionKeyword,import:yl.moduleKeyword,"with as print":yl.keyword,Boolean:yl.bool,None:yl.null,VariableName:yl.variableName,"CallExpression/VariableName":yl.function(yl.variableName),"FunctionDefinition/VariableName":yl.function(yl.definition(yl.variableName)),"ClassDefinition/VariableName":yl.definition(yl.className),PropertyName:yl.propertyName,"CallExpression/MemberExpression/PropertyName":yl.function(yl.propertyName),Comment:yl.lineComment,Number:yl.number,String:yl.string,FormatString:yl.special(yl.string),UpdateOp:yl.updateOperator,"ArithOp!":yl.arithmeticOperator,BitOp:yl.bitwiseOperator,CompareOp:yl.compareOperator,AssignOp:yl.definitionOperator,Ellipsis:yl.punctuation,At:yl.meta,"( )":yl.paren,"[ ]":yl.squareBracket,"{ }":yl.brace,".":yl.derefOperator,", ;":yl.separator}),Sb={__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},yb=ci.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:db,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:[Xb],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$Sb[e]||-1}],tokenPrec:7372}),vb=new vt,xb=new Set(["Script","Body","FunctionDefinition","ClassDefinition","LambdaExpression","ForStatement","MatchClause"]);function Pb(e){return(t,i,r)=>{if(r)return!1;let n=t.node.getChild("VariableName");return n&&i(n,e),!0}}const wb={FunctionDefinition:Pb("function"),ClassDefinition:Pb("class"),ForStatement(e,t,i){if(i)for(let i=e.node.firstChild;i;i=i.nextSibling)if("VariableName"==i.name)t(i,"variable");else if("in"==i.name)break},ImportStatement(e,t){var i,r;let{node:n}=e,o="from"==(null===(i=n.firstChild)||void 0===i?void 0:i.name);for(let e=n.getChild("import");e;e=e.nextSibling)"VariableName"==e.name&&"as"!=(null===(r=e.nextSibling)||void 0===r?void 0:r.name)&&t(e,o?"variable":"namespace")},AssignStatement(e,t){for(let i=e.node.firstChild;i;i=i.nextSibling)if("VariableName"==i.name)t(i,"variable");else if(":"==i.name||"AssignOp"==i.name)break},ParamList(e,t){for(let i=null,r=e.node.firstChild;r;r=r.nextSibling)"VariableName"!=r.name||i&&/\*|AssignOp/.test(i.name)||t(r,"variable"),i=r},CapturePattern:Pb("variable"),AsPattern:Pb("variable"),__proto__:null};function Tb(e,t){let i=vb.get(t);if(i)return i;let r=[],n=!0;function o(t,i){let n=e.sliceString(t.from,t.to);r.push({label:n,type:i})}return t.cursor(ot.IncludeAnonymous).iterate((t=>{if(t.name){let e=wb[t.name];if(e&&e(t,o,n)||!n&&xb.has(t.name))return!1;n=!1}else if(t.to-t.from>8192){for(let i of Tb(e,t.node))r.push(i);return!1}})),vb.set(t,r),r}const kb=/^[\w\xa1-\uffff][\w\d\xa1-\uffff]*$/,Yb=["String","FormatString","Comment","PropertyName"];function Rb(e){let t=Rl(e.state).resolveInner(e.pos,-1);if(Yb.indexOf(t.name)>-1)return null;let i="VariableName"==t.name||t.to-t.from<20&&kb.test(e.state.sliceDoc(t.from,t.to));if(!i&&!e.explicit)return null;let r=[];for(let i=t;i;i=i.parent)xb.has(i.name)&&(r=r.concat(Tb(e.state.doc,i)));return{options:r,from:i?t.from:e.pos,validFor:kb}}const _b=["__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"})))),Vb=[nu("def ${name}(${params}):\n\t${}",{label:"def",detail:"function",type:"keyword"}),nu("for ${name} in ${collection}:\n\t${}",{label:"for",detail:"loop",type:"keyword"}),nu("while ${}:\n\t${}",{label:"while",detail:"loop",type:"keyword"}),nu("try:\n\t${}\nexcept ${error}:\n\t${}",{label:"try",detail:"/ except block",type:"keyword"}),nu("if ${}:\n\t\n",{label:"if",detail:"block",type:"keyword"}),nu("if ${}:\n\t${}\nelse:\n\t${}",{label:"if",detail:"/ else block",type:"keyword"}),nu("class ${name}:\n\tdef __init__(self, ${params}):\n\t\t\t${}",{label:"class",detail:"definition",type:"keyword"}),nu("import ${module}",{label:"import",detail:"statement",type:"keyword"}),nu("from ${module} import ${names}",{label:"from",detail:"import",type:"keyword"})],Zb=ec(Yb,Jh(_b.concat(Vb)));function Ab(e,t){let i=e.baseIndentFor(t),r=e.lineAt(e.pos,-1),n=r.from+r.text.length;return/^\s*($|#)/.test(r.text)&&e.node.toi?null:i+e.unit}const qb=Yl.define({name:"python",parser:yb.configure({props:[Ll.add({Body:e=>{var t;return null!==(t=Ab(e,e.node))&&void 0!==t?t:e.continue()},IfStatement:e=>/^\s*(else:|elif )/.test(e.textAfter)?e.baseIndent:e.continue(),"ForStatement WhileStatement":e=>/^\s*else:/.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":th({closing:")"}),"DictionaryExpression DictionaryComprehensionExpression SetExpression SetComprehensionExpression":th({closing:"}"}),"ArrayExpression ArrayComprehensionExpression":th({closing:"]"}),"String FormatString":()=>null,Script:e=>{if(e.pos+/\s*/.exec(e.textAfter)[0].length>=e.node.to){let t=null;for(let i=e.node,r=i.to;i=i.lastChild,i&&i.to==r;)"Body"==i.type.name&&(t=i);if(t){let i=Ab(e,t);if(null!=i)return i}}return e.continue()}}),sh.add({"ArrayExpression DictionaryExpression SetExpression TupleExpression":Oh,Body:(e,t)=>({from:e.from+1,to:e.to-(e.to==t.doc.length?0:1)})})]}),languageData:{closeBrackets:{brackets:["(","[","{","'",'"',"'''",'"""'],stringPrefixes:["f","fr","rf","r","u","b","br","rb","F","FR","RF","R","U","B","BR","RB"]},commentTokens:{line:"#"},indentOnInput:/^\s*([\}\]\)]|else:|elif |except |finally:)$/}});function Wb(){return new jl(qb,[qb.data.of({autocomplete:Rb}),qb.data.of({autocomplete:Zb})])}class Cb{constructor(e,t,i,r){this.origin=e,this.changes=t,this.effects=i,this.clientID=r}}class Ub{constructor(e,t){this.version=e,this.unconfirmed=t}}const Nb=j.define({combine(e){let t=Ye(e,{startVersion:0,clientID:null,sharedEffects:()=>[]},{generatedID:e=>e});return null==t.clientID&&(t.clientID=e.length&&e[0].generatedID||""),t}}),jb=de.define();I.define({create:e=>new Ub(e.facet(Nb).startVersion,[]),update(e,t){let i=t.annotation(jb);if(i)return i;let{sharedEffects:r,clientID:n}=t.startState.facet(Nb),o=r(t);return o.length||!t.changes.empty?new Ub(e.version,e.unconfirmed.concat(new Cb(t,t.changes,o,n))):e}});class Eb{constructor(e,t,i){this.from=e,this.to=t,this.diagnostic=i}}class zb{constructor(e,t,i){this.diagnostics=e,this.panel=t,this.selected=i}static init(e,t,i){let r=e,n=i.facet(eX).markerFilter;n&&(r=n(r,i));let o=Un.set(r.map((e=>e.from==e.to||e.from==e.to-1&&i.doc.lineAt(e.from).to==e.from?Un.widget({widget:new rX(e),diagnostic:e}).range(e.from):Un.mark({attributes:{class:"cm-lintRange cm-lintRange-"+e.severity+(e.markClass?" "+e.markClass:"")},diagnostic:e,inclusive:!0}).range(e.from,e.to))),!0);return new zb(o,t,Gb(o))}}function Gb(e,t=null,i=0){let r=null;return e.between(i,1e9,((e,i,{spec:n})=>{if(!t||n.diagnostic==t)return r=new Eb(e,i,n.diagnostic),!1})),r}function Db(e,t){return e.field(Kb,!1)?t:t.concat(ge.appendConfig.of(aX))}function Mb(e,t){return{effects:Db(e,[Bb.of(t)])}}const Bb=ge.define(),Ib=ge.define(),Lb=ge.define(),Kb=I.define({create:()=>new zb(Un.none,null,null),update(e,t){if(t.docChanged){let i=e.diagnostics.map(t.changes),r=null;if(e.selected){let n=t.changes.mapPos(e.selected.from,1);r=Gb(i,e.selected.diagnostic,n)||Gb(i,null,n)}e=new zb(i,e.panel,r)}for(let i of t.effects)i.is(Bb)?e=zb.init(i.value,e.panel,t.state):i.is(Ib)?e=new zb(e.diagnostics,i.value?oX.open:null,e.selected):i.is(Lb)&&(e=new zb(e.diagnostics,e.panel,i.value));return e},provide:e=>[Va.from(e,(e=>e.panel)),SO.decorations.from(e,(e=>e.diagnostics))]}),Fb=Un.mark({class:"cm-lintRange cm-lintRange-active",inclusive:!0});function Hb(e,t){return $d("ul",{class:"cm-tooltip-lint"},t.map((t=>iX(e,t,!1))))}const Jb=e=>{let t=e.state.field(Kb,!1);return!(!t||!t.panel||(e.dispatch({effects:Ib.of(!1)}),0))},eX=(Yo.fromClass(class{constructor(e){this.view=e,this.timeout=-1,this.set=!0;let{delay:t}=e.state.facet(eX);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(Mb(this.view.state,i))}),(e=>{Po(this.view.state,e)}))}}update(e){let t=e.state.facet(eX);(e.docChanged||t!=e.startState.facet(eX)||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)}}),j.define({combine:e=>Object.assign({sources:e.map((e=>e.source)).filter((e=>null!=e))},Ye(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 tX(e){let t=[];if(e)e:for(let{name:i}of e){for(let e=0;ee.toLowerCase()==r.toLowerCase()))){t.push(r);continue e}}t.push("")}return t}function iX(e,t,i){var r;let n=i?tX(t.actions):[];return $d("li",{class:"cm-diagnostic cm-diagnostic-"+t.severity},$d("span",{class:"cm-diagnosticText"},t.renderMessage?t.renderMessage():t.message),null===(r=t.actions)||void 0===r?void 0:r.map(((i,r)=>{let o=!1,s=r=>{if(r.preventDefault(),o)return;o=!0;let n=Gb(e.state.field(Kb).diagnostics,t);n&&i.apply(e,n.from,n.to)},{name:O}=i,a=n[r]?O.indexOf(n[r]):-1,l=a<0?O:[O.slice(0,a),$d("u",O.slice(a,a+1)),O.slice(a+1)];return $d("button",{type:"button",class:"cm-diagnosticAction",onclick:s,onmousedown:s,"aria-label":` Action: ${O}${a<0?"":` (access key "${n[r]})"`}.`},l)})),t.source&&$d("div",{class:"cm-diagnosticSource"},t.source))}class rX extends Wn{constructor(e){super(),this.diagnostic=e}eq(e){return e.diagnostic==this.diagnostic}toDOM(){return $d("span",{class:"cm-lintPoint cm-lintPoint-"+this.diagnostic.severity})}}class nX{constructor(e,t){this.diagnostic=t,this.id="item_"+Math.floor(4294967295*Math.random()).toString(16),this.dom=iX(e,t,!0),this.dom.id=this.id,this.dom.setAttribute("role","option")}}class oX{constructor(e){this.view=e,this.items=[],this.list=$d("ul",{tabIndex:0,role:"listbox","aria-label":this.view.state.phrase("Diagnostics"),onkeydown:t=>{if(27==t.keyCode)Jb(this.view),this.view.focus();else if(38==t.keyCode||33==t.keyCode)this.moveSelection((this.selectedIndex-1+this.items.length)%this.items.length);else if(40==t.keyCode||34==t.keyCode)this.moveSelection((this.selectedIndex+1)%this.items.length);else if(36==t.keyCode)this.moveSelection(0);else if(35==t.keyCode)this.moveSelection(this.items.length-1);else if(13==t.keyCode)this.view.focus();else{if(!(t.keyCode>=65&&t.keyCode<=90&&this.selectedIndex>=0))return;{let{diagnostic:i}=this.items[this.selectedIndex],r=tX(i.actions);for(let n=0;n{for(let t=0;tJb(this.view)},"×")),this.update()}get selectedIndex(){let e=this.view.state.field(Kb).selected;if(!e)return-1;for(let t=0;t{let O,a=-1;for(let e=i;ei&&(this.items.splice(i,a-i),r=!0)),t&&O.diagnostic==t.diagnostic?O.dom.hasAttribute("aria-selected")||(O.dom.setAttribute("aria-selected","true"),n=O):O.dom.hasAttribute("aria-selected")&&O.dom.removeAttribute("aria-selected"),i++}));i({sel:n.dom.getBoundingClientRect(),panel:this.list.getBoundingClientRect()}),write:({sel:e,panel:t})=>{let i=t.height/this.list.offsetHeight;e.topt.bottom&&(this.list.scrollTop+=(e.bottom-t.bottom)/i)}})):this.selectedIndex<0&&this.list.removeAttribute("aria-activedescendant"),r&&this.sync()}sync(){let e=this.list.firstChild;function t(){let t=e;e=t.nextSibling,t.remove()}for(let i of this.items)if(i.dom.parentNode==this.list){for(;e!=i.dom;)t();e=i.dom.nextSibling}else this.list.insertBefore(i.dom,e);for(;e;)t()}moveSelection(e){if(this.selectedIndex<0)return;let t=Gb(this.view.state.field(Kb).diagnostics,this.items[e].diagnostic);t&&this.view.dispatch({selection:{anchor:t.from,head:t.to},scrollIntoView:!0,effects:Lb.of(t)})}static open(e){return new oX(e)}}function sX(e){return function(e,t='viewBox="0 0 40 40"'){return`url('data:image/svg+xml,${encodeURIComponent(e)}')`}(``,'width="6" height="3"')}const OX=SO.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:sX("#d11")},".cm-lintRange-warning":{backgroundImage:sX("orange")},".cm-lintRange-info":{backgroundImage:sX("#999")},".cm-lintRange-hint":{backgroundImage:sX("#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}}}),aX=[Kb,SO.decorations.compute([Kb],(e=>{let{selected:t,panel:i}=e.field(Kb);return t&&i&&t.from!=t.to?Un.set([Fb.range(t.from,t.to)]):Un.none})),function(e,t={}){let i=ge.define(),r=I.define({create:()=>[],update(e,r){if(e.length&&(t.hideOnChange&&(r.docChanged||r.selection)?e=[]:t.hideOn&&(e=e.filter((e=>!t.hideOn(r,e)))),r.docChanged)){let t=[];for(let i of e){let e=r.changes.mapPos(i.pos,-1,T.TrackDel);if(null!=e){let n=Object.assign(Object.create(null),i);n.pos=e,null!=n.end&&(n.end=r.changes.mapPos(n.end)),t.push(n)}}e=t}for(let t of r.effects)t.is(i)&&(e=t.value),t.is(wa)&&(e=[]);return e},provide:e=>Sa.from(e)});return[r,Yo.define((n=>new xa(n,e,r,i,t.hoverTime||300))),va]}((function(e,t,i){let{diagnostics:r}=e.state.field(Kb),n=[],o=2e8,s=0;r.between(t-(i<0?1:0),t+(i>0?1:0),((e,r,{spec:O})=>{t>=e&&t<=r&&(e==r||(t>e||i>0)&&(t({dom:Hb(e,n)})}:null}),{hideOn:function(e,t){let i=e.startState.doc.lineAt(t.pos);return!(!e.effects.some((e=>e.is(Bb)))&&!e.changes.touchesRange(i.from,i.to))}}),OX]})),n.register("1xJnC",(function(t,i){e(t.exports,"guess_notebook_location",(()=>n));const r=e=>e.toLowerCase().normalize("NFD").replace(/[^a-z1-9]/g,""),n=async e=>{try{const t=new URL(e);if(!["http:","https:","ftp:","ftps:"].includes(t.protocol))throw"Not a web URL";if("gist.github.com"===t.host){console.log("Gist URL detected");const e=t.pathname.substring(1).split("/")[1],i=await(await fetch(`https://api.github.com/gists/${e}`,{headers:{Accept:"application/vnd.github.v3+json"}}).then((e=>e.ok?e:Promise.reject(e)))).json();console.log(i);const n=Object.values(i.files),o=n.find((e=>r("#file-"+e.filename)===r(t.hash)));return null!=o?{type:"url",path_or_url:o.raw_url}:{type:"url",path_or_url:n[0].raw_url}}return"github.com"===t.host&&t.searchParams.set("raw","true"),{type:"url",path_or_url:t.href}}catch(t){return'"'===e[e.length-1]&&'"'===e[0]&&(e=e.slice(1,-1)),{type:"path",path_or_url:e}}}})),n.register("aTIpG",(function(t,i){e(t.exports,"LastFocusWasForcedEffect",(()=>l)),e(t.exports,"tab_help_plugin",(()=>c));var r=n("1gqBQ");n("hiQgq");var o=n("g1ViI");n("9Ta4i");var s=n("cNaMA");const O=o.StateEffect.define(),a=o.StateField.define({create:()=>!1,update(e,t){for(let e of t.effects)if(e.is(O))return e.value;return e}}),l=o.StateEffect.define(),h=o.StateField.define({create:()=>!1,update(e,t){for(let e of t.effects)if(e.is(l))return e.value;return e}}),c=o.ViewPlugin.define((e=>({setready:t=>requestIdleCallback((()=>{e.dispatch({effects:[O.of(t)]})}))})),{provide:e=>[a,h],eventObservers:{focus:function(e,t){this.setready(!0)},blur:function(e,t){this.setready(!1),requestIdleCallback((()=>{t.dispatch({effects:[l.of(!1)]})}))},click:function(e,t){this.setready(!1)},keydown:function(e,t){"Tab"==e.key?!t.state.field(a)||t.state.field(h)||t.state.readOnly||(r.open_pluto_popup({type:"info",source_element:t.dom,body:s.html`Press Esc and then Tab to continue navigation. skkrt!`}),this.setready(!1)):this.setready(!1)}}})})),n.register("1gqBQ",(function(t,i){e(t.exports,"open_pluto_popup",(()=>r));const r=e=>{window.dispatchEvent(new CustomEvent("open pluto popup",{detail:e}))}})),n.register("aN0pg",(function(t,i){e(t.exports,"cl",(()=>r));const r=e=>e?Object.entries(e).reduce(((e,[t,i])=>i?t+" "+e:e),""):null})),n.register("hrGZZ",(function(t,i){e(t.exports,"useEventListener",(()=>o)),n("cNaMA");var r=n("exxBE");const o=(e,t,i,n)=>{let o=r.useCallback(i,n);r.useEffect((()=>{if(null!=e)return e.addEventListener(t,o),()=>e.removeEventListener(t,o)}),[e,t,o])}})),n.register("h2NGW",(function(t,i){e(t.exports,"default",(()=>o)),n("cNaMA");var r=n("3vOYv");function o(e,t,i,r){function n(){const t=Reflect.construct(HTMLElement,[],n);return t._vdomComponent=e,t._root=r&&r.shadow?t.attachShadow({mode:"open"}):t,t}return n.prototype=Object.create(HTMLElement.prototype),n.prototype.constructor=n,n.prototype.connectedCallback=O,n.prototype.attributeChangedCallback=l,n.prototype.disconnectedCallback=h,i=i||e.observedAttributes||Object.keys(e.propTypes||{}),n.observedAttributes=i,i.forEach((e=>{Object.defineProperty(n.prototype,e,{get(){return this._vdom.props[e]},set(t){this._vdom?this.attributeChangedCallback(e,null,t):(this._props||(this._props={}),this._props[e]=t,this.connectedCallback());const i=typeof t;null!=t&&"string"!==i&&"boolean"!==i&&"number"!==i||this.setAttribute(e,t)}})})),customElements.define(t||e.tagName||e.displayName||e.name,n)}function s(e){this.getChildContext=()=>e.context;const{context:t,children:i,...n}=e;return r.cloneElement(i,n)}function O(){if(this.on_connect)this.on_connect();else{const e=new CustomEvent("_preact",{detail:{},bubbles:!0,cancelable:!0});this.dispatchEvent(e);const t=e.detail.context;this._vdom=r.h(s,{...this._props,context:t},u(this,this._vdomComponent)),(this.hasAttribute("hydrate")?r.hydrate:r.render)(this._vdom,this._root)}}function a(e){return e.replace(/-(\w)/g,((e,t)=>t?t.toUpperCase():""))}function l(e,t,i){if(!this._vdom)return;i=null==i?void 0:i;const n={};n[e]=i,n[a(e)]=i,this._vdom=r.cloneElement(this._vdom,n),r.render(this._vdom,this._root)}function h(){const e=setTimeout((()=>{r.render(this._vdom=null,this._root)}),500);this.on_connect=()=>clearTimeout(e)}function c(e,t){return r.h("slot",{...e,ref:e=>{e?(this.ref=e,this._listener||(this._listener=e=>{e.stopPropagation(),e.detail.context=t},e.addEventListener("_preact",this._listener))):this.ref.removeEventListener("_preact",this._listener)}})}function u(e,t){if(3===e.nodeType)return e.data;if(1!==e.nodeType)return null;let i=[],n={},o=0,s=e.attributes,O=e.childNodes;for(o=s.length;o--;)"slot"!==s[o].name&&(n[s[o].name]=s[o].value,n[a(s[o].name)]=s[o].value);for(o=O.length;o--;){const e=u(O[o],null),t=O[o].slot;t?n[t]=r.h(c,{name:t},e):i[o]=e}const l=t?r.h(c,null,i):i;return r.h(t||e.nodeName.toLowerCase(),n,l)}})),n.register("jqrYR",(function(t,i){e(t.exports,"base64_arraybuffer",(()=>o)),e(t.exports,"base64url_arraybuffer",(()=>s)),e(t.exports,"base64url_to_base64",(()=>a)),e(t.exports,"plutohash_arraybuffer",(()=>c)),e(t.exports,"debounced_promises",(()=>u)),e(t.exports,"blob_url_to_data_url",(()=>f));var r=n("is6Z7");const o=async e=>{const t=await new Promise((t=>{const i=new FileReader;i.onload=()=>t(i.result),i.readAsDataURL(new Blob([e]))}));return t.substring(t.indexOf(",")+1)},s=async e=>{let t=await o(e);return O(t)},O=e=>e.replaceAll(/[\+\/\=]/g,(e=>{const t=e.charCodeAt(0);return 43===t?"-":47===t?"_":""})),a=e=>{const t=e.replaceAll(/[-_]/g,(e=>{const t=e.charCodeAt(0);return 45===t?"+":95===t?"/":""}));return t+"=".repeat((4-t.length%4)%4)},l="AAA/AAA+ZMg=",h="AAA_AAA-ZMg";console.assert(O(l)===h),console.assert(a(h)===l),o(new Uint8Array([0,0,63,0,0,62,100,200])).then((e=>console.assert(e===l,e))),s(new Uint8Array([0,0,63,0,0,62,100,200])).then((e=>console.assert(e===h,e)));const c=async e=>{const t=r.sha256.create();t.update(e);const i=t.arrayBuffer();return await s(i)};(async e=>{const t=(new TextEncoder).encode(e);return await c(t)})("Hannes").then((e=>console.assert("OI48wVWerxEEnz5lIj6CPPRB8NOwwba-LkFYTDp4aUU"===e,e)));const u=e=>{let t=!1,i=!1;return async()=>{if(t)i=!0;else{for(t=!0,i=!0;i;)i=!1,await e();t=!1}}},f=async e=>{const t=await(await fetch(e)).blob();return await new Promise((e=>{const i=new FileReader;i.onload=()=>e(i.result),i.readAsDataURL(t)}))}})),n.register("is6Z7",(function(t,i){e(t.exports,"sha256",(()=>b)); +/** + * [js-sha256]{@link https://github.com/emn178/js-sha256} + * + * @version 0.9.0 + * @author Chen, Yi-Cyuan [emn178@gmail.com] + * @copyright Chen, Yi-Cyuan 2014-2017 + * @license MIT + * + * Edited to be a module, so we can `import { sha256 } from "https://cdn.jsdelivr.net/gh/juliapluto/js-sha256@7a98375/src/sha256.mjs"` + * + */ +var r="input is invalid type",n="object"==typeof window,o=n?window:{};o.JS_SHA256_NO_WINDOW&&(n=!1);var s=!o.JS_SHA256_NO_ARRAY_BUFFER&&"undefined"!=typeof ArrayBuffer,O="0123456789abcdef".split(""),a=[-2147483648,8388608,32768,128],l=[24,16,8,0],h=[1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298],c=["hex","array","digest","arrayBuffer"],u=[];!o.JS_SHA256_NO_NODE_JS&&Array.isArray||(Array.isArray=function(e){return"[object Array]"===Object.prototype.toString.call(e)}),!s||!o.JS_SHA256_NO_ARRAY_BUFFER_IS_VIEW&&ArrayBuffer.isView||(ArrayBuffer.isView=function(e){return"object"==typeof e&&e.buffer&&e.buffer.constructor===ArrayBuffer});var f=function(e,t){return function(i){return new g(t,!0).update(i)[e]()}},d=function(e){var t=f("hex",e);t.create=function(){return new g(e)},t.update=function(e){return t.create().update(e)};for(var i=0;i>6,a[h++]=128|63&O):O<55296||O>=57344?(a[h++]=224|O>>12,a[h++]=128|O>>6&63,a[h++]=128|63&O):(O=65536+((1023&O)<<10|1023&e.charCodeAt(++n)),a[h++]=240|O>>18,a[h++]=128|O>>12&63,a[h++]=128|O>>6&63,a[h++]=128|63&O);e=a}else{if("object"!==o)throw new Error(r);if(null===e)throw new Error(r);if(s&&e.constructor===ArrayBuffer)e=new Uint8Array(e);else if(!(Array.isArray(e)||s&&ArrayBuffer.isView(e)))throw new Error(r)}e.length>64&&(e=new g(t,!0).update(e).array());var c=[],u=[];for(n=0;n<64;++n){var f=e[n]||0;c[n]=92^f,u[n]=54^f}g.call(this,t,i),this.update(u),this.oKeyPad=c,this.inner=!0,this.sharedMemory=i}g.prototype.update=function(e){if(!this.finalized){var t,i=typeof e;if("string"!==i){if("object"!==i)throw new Error(r);if(null===e)throw new Error(r);if(s&&e.constructor===ArrayBuffer)e=new Uint8Array(e);else if(!(Array.isArray(e)||s&&ArrayBuffer.isView(e)))throw new Error(r);t=!0}for(var n,o,O=0,a=e.length,h=this.blocks;O>2]|=e[O]<>2]|=n<>2]|=(192|n>>6)<>2]|=(128|63&n)<=57344?(h[o>>2]|=(224|n>>12)<>2]|=(128|n>>6&63)<>2]|=(128|63&n)<>2]|=(240|n>>18)<>2]|=(128|n>>12&63)<>2]|=(128|n>>6&63)<>2]|=(128|63&n)<=64?(this.block=h[16],this.start=o-64,this.hash(),this.hashed=!0):this.start=o}return this.bytes>4294967295&&(this.hBytes+=this.bytes/4294967296<<0,this.bytes=this.bytes%4294967296),this}},g.prototype.finalize=function(){if(!this.finalized){this.finalized=!0;var e=this.blocks,t=this.lastByteIndex;e[16]=this.block,e[t>>2]|=a[3&t],this.block=e[16],t>=56&&(this.hashed||this.hash(),e[0]=this.block,e[16]=e[1]=e[2]=e[3]=e[4]=e[5]=e[6]=e[7]=e[8]=e[9]=e[10]=e[11]=e[12]=e[13]=e[14]=e[15]=0),e[14]=this.hBytes<<3|this.bytes>>>29,e[15]=this.bytes<<3,this.hash()}},g.prototype.hash=function(){var e,t,i,r,n,o,s,O,a,l=this.h0,c=this.h1,u=this.h2,f=this.h3,d=this.h4,p=this.h5,Q=this.h6,g=this.h7,m=this.blocks;for(e=16;e<64;++e)t=((n=m[e-15])>>>7|n<<25)^(n>>>18|n<<14)^n>>>3,i=((n=m[e-2])>>>17|n<<15)^(n>>>19|n<<13)^n>>>10,m[e]=m[e-16]+t+m[e-7]+i<<0;for(a=c&u,e=0;e<64;e+=4)this.first?(this.is224?(o=300032,g=(n=m[0]-1413257819)-150054599<<0,f=n+24177077<<0):(o=704751109,g=(n=m[0]-210244248)-1521486534<<0,f=n+143694565<<0),this.first=!1):(t=(l>>>2|l<<30)^(l>>>13|l<<19)^(l>>>22|l<<10),r=(o=l&c)^l&u^a,g=f+(n=g+(i=(d>>>6|d<<26)^(d>>>11|d<<21)^(d>>>25|d<<7))+(d&p^~d&Q)+h[e]+m[e])<<0,f=n+(t+r)<<0),t=(f>>>2|f<<30)^(f>>>13|f<<19)^(f>>>22|f<<10),r=(s=f&l)^f&c^o,Q=u+(n=Q+(i=(g>>>6|g<<26)^(g>>>11|g<<21)^(g>>>25|g<<7))+(g&d^~g&p)+h[e+1]+m[e+1])<<0,t=((u=n+(t+r)<<0)>>>2|u<<30)^(u>>>13|u<<19)^(u>>>22|u<<10),r=(O=u&f)^u&l^s,p=c+(n=p+(i=(Q>>>6|Q<<26)^(Q>>>11|Q<<21)^(Q>>>25|Q<<7))+(Q&g^~Q&d)+h[e+2]+m[e+2])<<0,t=((c=n+(t+r)<<0)>>>2|c<<30)^(c>>>13|c<<19)^(c>>>22|c<<10),r=(a=c&u)^c&f^O,d=l+(n=d+(i=(p>>>6|p<<26)^(p>>>11|p<<21)^(p>>>25|p<<7))+(p&Q^~p&g)+h[e+3]+m[e+3])<<0,l=n+(t+r)<<0;this.h0=this.h0+l<<0,this.h1=this.h1+c<<0,this.h2=this.h2+u<<0,this.h3=this.h3+f<<0,this.h4=this.h4+d<<0,this.h5=this.h5+p<<0,this.h6=this.h6+Q<<0,this.h7=this.h7+g<<0},g.prototype.hex=function(){this.finalize();var e=this.h0,t=this.h1,i=this.h2,r=this.h3,n=this.h4,o=this.h5,s=this.h6,a=this.h7,l=O[e>>28&15]+O[e>>24&15]+O[e>>20&15]+O[e>>16&15]+O[e>>12&15]+O[e>>8&15]+O[e>>4&15]+O[15&e]+O[t>>28&15]+O[t>>24&15]+O[t>>20&15]+O[t>>16&15]+O[t>>12&15]+O[t>>8&15]+O[t>>4&15]+O[15&t]+O[i>>28&15]+O[i>>24&15]+O[i>>20&15]+O[i>>16&15]+O[i>>12&15]+O[i>>8&15]+O[i>>4&15]+O[15&i]+O[r>>28&15]+O[r>>24&15]+O[r>>20&15]+O[r>>16&15]+O[r>>12&15]+O[r>>8&15]+O[r>>4&15]+O[15&r]+O[n>>28&15]+O[n>>24&15]+O[n>>20&15]+O[n>>16&15]+O[n>>12&15]+O[n>>8&15]+O[n>>4&15]+O[15&n]+O[o>>28&15]+O[o>>24&15]+O[o>>20&15]+O[o>>16&15]+O[o>>12&15]+O[o>>8&15]+O[o>>4&15]+O[15&o]+O[s>>28&15]+O[s>>24&15]+O[s>>20&15]+O[s>>16&15]+O[s>>12&15]+O[s>>8&15]+O[s>>4&15]+O[15&s];return this.is224||(l+=O[a>>28&15]+O[a>>24&15]+O[a>>20&15]+O[a>>16&15]+O[a>>12&15]+O[a>>8&15]+O[a>>4&15]+O[15&a]),l},g.prototype.toString=g.prototype.hex,g.prototype.digest=function(){this.finalize();var e=this.h0,t=this.h1,i=this.h2,r=this.h3,n=this.h4,o=this.h5,s=this.h6,O=this.h7,a=[e>>24&255,e>>16&255,e>>8&255,255&e,t>>24&255,t>>16&255,t>>8&255,255&t,i>>24&255,i>>16&255,i>>8&255,255&i,r>>24&255,r>>16&255,r>>8&255,255&r,n>>24&255,n>>16&255,n>>8&255,255&n,o>>24&255,o>>16&255,o>>8&255,255&o,s>>24&255,s>>16&255,s>>8&255,255&s];return this.is224||a.push(O>>24&255,O>>16&255,O>>8&255,255&O),a},g.prototype.array=g.prototype.digest,g.prototype.arrayBuffer=function(){this.finalize();var e=new ArrayBuffer(this.is224?28:32),t=new DataView(e);return t.setUint32(0,this.h0),t.setUint32(4,this.h1),t.setUint32(8,this.h2),t.setUint32(12,this.h3),t.setUint32(16,this.h4),t.setUint32(20,this.h5),t.setUint32(24,this.h6),this.is224||t.setUint32(28,this.h7),e},m.prototype=new g,m.prototype.finalize=function(){if(g.prototype.finalize.call(this),this.inner){this.inner=!1;var e=this.array();g.call(this,this.is224,this.sharedMemory),this.update(this.oKeyPad),this.update(e),g.prototype.finalize.call(this)}};var $=d();$.sha256=$,$.sha224=d(!0),$.sha256.hmac=Q(),$.sha224.hmac=Q(!0);const b=$;$.sha224})),n.register("1Mxs0",(function(t,i){e(t.exports,"FeaturedCard",(()=>l));var r=n("jqrYR"),o=n("41Mhf"),s=n("9Ta4i"),O=n("cNaMA");const a="data:image/svg+xml;charset=utf8,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%3E%3C/svg%3E",l=({entry:e,source_manifest:t,direct_html_links:i,disable_links:n})=>{var l,c,u,f,d,p;const Q=null===(l=e.frontmatter)||void 0===l?void 0:l.title,{source_url:g}=t??{},m=e=>null==g?s.default.isEmpty(e)?null:e:null==e?null:new URL(e,new URL(g,window.location.href)).href,$=n?"#":i?m(e.html_path):o.with_query_params("edit",{statefile:m(e.statefile_path),notebookfile:m(e.notebookfile_path),notebookfile_integrity:`sha256-${r.base64url_to_base64(e.hash)}`,disable_ui:"true",name:null==Q?null:`sample ${Q}`,pluto_server_url:".",slider_server_url:(null==g?void 0:g.includes("cdn.jsdelivr.net/gh/JuliaPluto/featured"))?null:m(null==t?void 0:t.slider_server_url)}),b=h(e.frontmatter);return O.html` + e+t.charCodeAt(0)),0)%360}deg;`}> + + ${null==(null==b?void 0:b.name)?null:O.html` +
+ + + ${b.name} + ${b.has_coauthors?O.html` and others`:null} + +
+ `} +

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

+

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

+
+ `;var X},h=e=>c(e.author)??c({name:e.author_name,url:e.author_url,image:e.author_image}),c=e=>{if(e instanceof Array){const t=c(e[0]);if(null==t?void 0:t.name){const i=e.length>1;return{...t,has_coauthors:i}}}else{if("string"==typeof e)return{name:e,url:null,image:null};if(e instanceof Object){let{name:t,image:i,url:r}=e;return null!=i||s.default.isEmpty(r)||(i=r+".png?size=48"),{name:t,url:r,image:i}}}return null}})),n.register("cpCG6",(function(t,i){e(t.exports,"get_environment",(()=>r));const r=async e=>{let t;if(window.pluto_injected_environment)t=window.pluto_injected_environment.environment;else{const{default:i}=await import(e.session_options.server.injected_javascript_data_url);t=i}return t}})),n.register("dYd4C",(function(t,i){e(t.exports,"ProcessStatus",(()=>r));const r={ready:"ready",starting:"starting",no_process:"no_process",waiting_to_restart:"waiting_to_restart",waiting_for_permission:"waiting_for_permission"}})); \ No newline at end of file diff --git a/frontend-dist/editor.46fc64e5.css b/frontend-dist/editor.46fc64e5.css new file mode 100644 index 0000000000..89fc670676 --- /dev/null +++ b/frontend-dist/editor.46fc64e5.css @@ -0,0 +1 @@ +dialog{background:#fff;border:solid;color:#000;display:block;height:-moz-fit-content;height:-webkit-fit-content;height:fit-content;left:0;margin:auto;padding:1em;position:absolute;right:0;width:-moz-fit-content;width:-webkit-fit-content;width:fit-content}dialog:not([open]){display:none}dialog+.backdrop{background:rgba(0,0,0,.1)}._dialog_overlay,dialog+.backdrop{bottom:0;left:0;position:fixed;right:0;top:0}dialog.fixed{position:fixed;top:50%;transform:translateY(-50%)}@font-face{font-display:swap;font-family:Roboto Mono;font-style:normal;font-weight:500;src:url(roboto-mono-cyrillic-ext-500-normal.d362a132.woff2) format("woff2"),url(roboto-mono-all-500-normal.cc559149.woff) format("woff");unicode-range:U+0460-052f,U+1c80-1c88,U+20b4,U+2de0-2dff,U+a640-a69f,U+fe2e-fe2f}@font-face{font-display:swap;font-family:Roboto Mono;font-style:normal;font-weight:500;src:url(roboto-mono-cyrillic-500-normal.8ed3add8.woff2) format("woff2"),url(roboto-mono-all-500-normal.cc559149.woff) format("woff");unicode-range:U+0400-045f,U+0490-0491,U+04b0-04b1,U+2116}@font-face{font-display:swap;font-family:Roboto Mono;font-style:normal;font-weight:500;src:url(roboto-mono-greek-500-normal.dd57b097.woff2) format("woff2"),url(roboto-mono-all-500-normal.cc559149.woff) format("woff");unicode-range:U+0370-03ff}@font-face{font-display:swap;font-family:Roboto Mono;font-style:normal;font-weight:500;src:url(roboto-mono-vietnamese-500-normal.1320bb60.woff2) format("woff2"),url(roboto-mono-all-500-normal.cc559149.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01a0-01a1,U+01af-01b0,U+1ea0-1ef9,U+20ab}@font-face{font-display:swap;font-family:Roboto Mono;font-style:normal;font-weight:500;src:url(roboto-mono-latin-ext-500-normal.415f7d14.woff2) format("woff2"),url(roboto-mono-all-500-normal.cc559149.woff) format("woff");unicode-range:U+0100-024f,U+0259,U+1e??,U+2020,U+20a0-20ab,U+20ad-20cf,U+2113,U+2c60-2c7f,U+a720-a7ff}@font-face{font-display:swap;font-family:Roboto Mono;font-style:normal;font-weight:500;src:url(roboto-mono-latin-500-normal.98ad1d4e.woff2) format("woff2"),url(roboto-mono-all-500-normal.cc559149.woff) format("woff");unicode-range:U+00??,U+0131,U+0152-0153,U+02bb-02bc,U+02c6,U+02da,U+02dc,U+2000-206f,U+2074,U+20ac,U+2122,U+2191,U+2193,U+2212,U+2215,U+feff,U+fffd}@font-face{font-display:swap;font-family:Roboto Mono;font-style:normal;font-weight:700;src:url(roboto-mono-cyrillic-ext-700-normal.5c7aabac.woff2) format("woff2"),url(roboto-mono-all-700-normal.393c796d.woff) format("woff");unicode-range:U+0460-052f,U+1c80-1c88,U+20b4,U+2de0-2dff,U+a640-a69f,U+fe2e-fe2f}@font-face{font-display:swap;font-family:Roboto Mono;font-style:normal;font-weight:700;src:url(roboto-mono-cyrillic-700-normal.5e6410cf.woff2) format("woff2"),url(roboto-mono-all-700-normal.393c796d.woff) format("woff");unicode-range:U+0400-045f,U+0490-0491,U+04b0-04b1,U+2116}@font-face{font-display:swap;font-family:Roboto Mono;font-style:normal;font-weight:700;src:url(roboto-mono-greek-700-normal.b101f80c.woff2) format("woff2"),url(roboto-mono-all-700-normal.393c796d.woff) format("woff");unicode-range:U+0370-03ff}@font-face{font-display:swap;font-family:Roboto Mono;font-style:normal;font-weight:700;src:url(roboto-mono-vietnamese-700-normal.edb1435b.woff2) format("woff2"),url(roboto-mono-all-700-normal.393c796d.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01a0-01a1,U+01af-01b0,U+1ea0-1ef9,U+20ab}@font-face{font-display:swap;font-family:Roboto Mono;font-style:normal;font-weight:700;src:url(roboto-mono-latin-ext-700-normal.c497b002.woff2) format("woff2"),url(roboto-mono-all-700-normal.393c796d.woff) format("woff");unicode-range:U+0100-024f,U+0259,U+1e??,U+2020,U+20a0-20ab,U+20ad-20cf,U+2113,U+2c60-2c7f,U+a720-a7ff}@font-face{font-display:swap;font-family:Roboto Mono;font-style:normal;font-weight:700;src:url(roboto-mono-latin-700-normal.447ac127.woff2) format("woff2"),url(roboto-mono-all-700-normal.393c796d.woff) format("woff");unicode-range:U+00??,U+0131,U+0152-0153,U+02bb-02bc,U+02c6,U+02da,U+02dc,U+2000-206f,U+2074,U+20ac,U+2122,U+2191,U+2193,U+2212,U+2215,U+feff,U+fffd}@font-face{font-display:swap;font-family:Alegreya Sans;font-style:normal;font-weight:400;src:url(alegreya-sans-cyrillic-ext-400-normal.5f5cc2ef.woff2) format("woff2"),url(alegreya-sans-all-400-normal.a91dc265.woff) format("woff");unicode-range:U+0460-052f,U+1c80-1c88,U+20b4,U+2de0-2dff,U+a640-a69f,U+fe2e-fe2f}@font-face{font-display:swap;font-family:Alegreya Sans;font-style:normal;font-weight:400;src:url(alegreya-sans-cyrillic-400-normal.ab3d1dcc.woff2) format("woff2"),url(alegreya-sans-all-400-normal.a91dc265.woff) format("woff");unicode-range:U+0400-045f,U+0490-0491,U+04b0-04b1,U+2116}@font-face{font-display:swap;font-family:Alegreya Sans;font-style:normal;font-weight:400;src:url(alegreya-sans-greek-ext-400-normal.b82a0aea.woff2) format("woff2"),url(alegreya-sans-all-400-normal.a91dc265.woff) format("woff");unicode-range:U+1f??}@font-face{font-display:swap;font-family:Alegreya Sans;font-style:normal;font-weight:400;src:url(alegreya-sans-greek-400-normal.4e5a8597.woff2) format("woff2"),url(alegreya-sans-all-400-normal.a91dc265.woff) format("woff");unicode-range:U+0370-03ff}@font-face{font-display:swap;font-family:Alegreya Sans;font-style:normal;font-weight:400;src:url(alegreya-sans-vietnamese-400-normal.bdc8a622.woff2) format("woff2"),url(alegreya-sans-all-400-normal.a91dc265.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01a0-01a1,U+01af-01b0,U+1ea0-1ef9,U+20ab}@font-face{font-display:swap;font-family:Alegreya Sans;font-style:normal;font-weight:400;src:url(alegreya-sans-latin-ext-400-normal.1c1602b0.woff2) format("woff2"),url(alegreya-sans-all-400-normal.a91dc265.woff) format("woff");unicode-range:U+0100-024f,U+0259,U+1e??,U+2020,U+20a0-20ab,U+20ad-20cf,U+2113,U+2c60-2c7f,U+a720-a7ff}@font-face{font-display:swap;font-family:Alegreya Sans;font-style:normal;font-weight:400;src:url(alegreya-sans-latin-400-normal.62b57001.woff2) format("woff2"),url(alegreya-sans-all-400-normal.a91dc265.woff) format("woff");unicode-range:U+00??,U+0131,U+0152-0153,U+02bb-02bc,U+02c6,U+02da,U+02dc,U+2000-206f,U+2074,U+20ac,U+2122,U+2191,U+2193,U+2212,U+2215,U+feff,U+fffd}@font-face{font-display:swap;font-family:Alegreya Sans;font-style:normal;font-weight:500;src:url(alegreya-sans-cyrillic-ext-500-normal.0e6ee102.woff2) format("woff2"),url(alegreya-sans-all-500-normal.5db27a5b.woff) format("woff");unicode-range:U+0460-052f,U+1c80-1c88,U+20b4,U+2de0-2dff,U+a640-a69f,U+fe2e-fe2f}@font-face{font-display:swap;font-family:Alegreya Sans;font-style:normal;font-weight:500;src:url(alegreya-sans-cyrillic-500-normal.8a029e9d.woff2) format("woff2"),url(alegreya-sans-all-500-normal.5db27a5b.woff) format("woff");unicode-range:U+0400-045f,U+0490-0491,U+04b0-04b1,U+2116}@font-face{font-display:swap;font-family:Alegreya Sans;font-style:normal;font-weight:500;src:url(alegreya-sans-greek-ext-500-normal.00f2c6f3.woff2) format("woff2"),url(alegreya-sans-all-500-normal.5db27a5b.woff) format("woff");unicode-range:U+1f??}@font-face{font-display:swap;font-family:Alegreya Sans;font-style:normal;font-weight:500;src:url(alegreya-sans-greek-500-normal.54a6041f.woff2) format("woff2"),url(alegreya-sans-all-500-normal.5db27a5b.woff) format("woff");unicode-range:U+0370-03ff}@font-face{font-display:swap;font-family:Alegreya Sans;font-style:normal;font-weight:500;src:url(alegreya-sans-vietnamese-500-normal.97e250df.woff2) format("woff2"),url(alegreya-sans-all-500-normal.5db27a5b.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01a0-01a1,U+01af-01b0,U+1ea0-1ef9,U+20ab}@font-face{font-display:swap;font-family:Alegreya Sans;font-style:normal;font-weight:500;src:url(alegreya-sans-latin-ext-500-normal.637067c1.woff2) format("woff2"),url(alegreya-sans-all-500-normal.5db27a5b.woff) format("woff");unicode-range:U+0100-024f,U+0259,U+1e??,U+2020,U+20a0-20ab,U+20ad-20cf,U+2113,U+2c60-2c7f,U+a720-a7ff}@font-face{font-display:swap;font-family:Alegreya Sans;font-style:normal;font-weight:500;src:url(alegreya-sans-latin-500-normal.4428c984.woff2) format("woff2"),url(alegreya-sans-all-500-normal.5db27a5b.woff) format("woff");unicode-range:U+00??,U+0131,U+0152-0153,U+02bb-02bc,U+02c6,U+02da,U+02dc,U+2000-206f,U+2074,U+20ac,U+2122,U+2191,U+2193,U+2212,U+2215,U+feff,U+fffd}@font-face{font-display:swap;font-family:Alegreya Sans;font-style:normal;font-weight:700;src:url(alegreya-sans-cyrillic-ext-700-normal.2e02b08f.woff2) format("woff2"),url(alegreya-sans-all-700-normal.29d7dfa9.woff) format("woff");unicode-range:U+0460-052f,U+1c80-1c88,U+20b4,U+2de0-2dff,U+a640-a69f,U+fe2e-fe2f}@font-face{font-display:swap;font-family:Alegreya Sans;font-style:normal;font-weight:700;src:url(alegreya-sans-cyrillic-700-normal.5a5aa5e3.woff2) format("woff2"),url(alegreya-sans-all-700-normal.29d7dfa9.woff) format("woff");unicode-range:U+0400-045f,U+0490-0491,U+04b0-04b1,U+2116}@font-face{font-display:swap;font-family:Alegreya Sans;font-style:normal;font-weight:700;src:url(alegreya-sans-greek-ext-700-normal.ca9ee8e1.woff2) format("woff2"),url(alegreya-sans-all-700-normal.29d7dfa9.woff) format("woff");unicode-range:U+1f??}@font-face{font-display:swap;font-family:Alegreya Sans;font-style:normal;font-weight:700;src:url(alegreya-sans-greek-700-normal.452fc62e.woff2) format("woff2"),url(alegreya-sans-all-700-normal.29d7dfa9.woff) format("woff");unicode-range:U+0370-03ff}@font-face{font-display:swap;font-family:Alegreya Sans;font-style:normal;font-weight:700;src:url(alegreya-sans-vietnamese-700-normal.59390763.woff2) format("woff2"),url(alegreya-sans-all-700-normal.29d7dfa9.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01a0-01a1,U+01af-01b0,U+1ea0-1ef9,U+20ab}@font-face{font-display:swap;font-family:Alegreya Sans;font-style:normal;font-weight:700;src:url(alegreya-sans-latin-ext-700-normal.b5306f41.woff2) format("woff2"),url(alegreya-sans-all-700-normal.29d7dfa9.woff) format("woff");unicode-range:U+0100-024f,U+0259,U+1e??,U+2020,U+20a0-20ab,U+20ad-20cf,U+2113,U+2c60-2c7f,U+a720-a7ff}@font-face{font-display:swap;font-family:Alegreya Sans;font-style:normal;font-weight:700;src:url(alegreya-sans-latin-700-normal.96e2fcc9.woff2) format("woff2"),url(alegreya-sans-all-700-normal.29d7dfa9.woff) format("woff");unicode-range:U+00??,U+0131,U+0152-0153,U+02bb-02bc,U+02c6,U+02da,U+02dc,U+2000-206f,U+2074,U+20ac,U+2122,U+2191,U+2193,U+2212,U+2215,U+feff,U+fffd}@font-face{font-display:swap;font-family:Alegreya Sans;font-style:italic;font-weight:400;src:url(alegreya-sans-cyrillic-ext-400-italic.7c2a4a40.woff2) format("woff2"),url(alegreya-sans-all-400-italic.f87bfe89.woff) format("woff");unicode-range:U+0460-052f,U+1c80-1c88,U+20b4,U+2de0-2dff,U+a640-a69f,U+fe2e-fe2f}@font-face{font-display:swap;font-family:Alegreya Sans;font-style:italic;font-weight:400;src:url(alegreya-sans-cyrillic-400-italic.8c81649c.woff2) format("woff2"),url(alegreya-sans-all-400-italic.f87bfe89.woff) format("woff");unicode-range:U+0400-045f,U+0490-0491,U+04b0-04b1,U+2116}@font-face{font-display:swap;font-family:Alegreya Sans;font-style:italic;font-weight:400;src:url(alegreya-sans-greek-ext-400-italic.550f5118.woff2) format("woff2"),url(alegreya-sans-all-400-italic.f87bfe89.woff) format("woff");unicode-range:U+1f??}@font-face{font-display:swap;font-family:Alegreya Sans;font-style:italic;font-weight:400;src:url(alegreya-sans-greek-400-italic.1b909c63.woff2) format("woff2"),url(alegreya-sans-all-400-italic.f87bfe89.woff) format("woff");unicode-range:U+0370-03ff}@font-face{font-display:swap;font-family:Alegreya Sans;font-style:italic;font-weight:400;src:url(alegreya-sans-vietnamese-400-italic.d08e8dff.woff2) format("woff2"),url(alegreya-sans-all-400-italic.f87bfe89.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01a0-01a1,U+01af-01b0,U+1ea0-1ef9,U+20ab}@font-face{font-display:swap;font-family:Alegreya Sans;font-style:italic;font-weight:400;src:url(alegreya-sans-latin-ext-400-italic.b9ce632b.woff2) format("woff2"),url(alegreya-sans-all-400-italic.f87bfe89.woff) format("woff");unicode-range:U+0100-024f,U+0259,U+1e??,U+2020,U+20a0-20ab,U+20ad-20cf,U+2113,U+2c60-2c7f,U+a720-a7ff}@font-face{font-display:swap;font-family:Alegreya Sans;font-style:italic;font-weight:400;src:url(alegreya-sans-latin-400-italic.ec56f658.woff2) format("woff2"),url(alegreya-sans-all-400-italic.f87bfe89.woff) format("woff");unicode-range:U+00??,U+0131,U+0152-0153,U+02bb-02bc,U+02c6,U+02da,U+02dc,U+2000-206f,U+2074,U+20ac,U+2122,U+2191,U+2193,U+2212,U+2215,U+feff,U+fffd}@font-face{font-display:swap;font-family:Alegreya Sans;font-style:italic;font-weight:500;src:url(alegreya-sans-cyrillic-ext-500-italic.78248b65.woff2) format("woff2"),url(alegreya-sans-all-500-italic.8917c3da.woff) format("woff");unicode-range:U+0460-052f,U+1c80-1c88,U+20b4,U+2de0-2dff,U+a640-a69f,U+fe2e-fe2f}@font-face{font-display:swap;font-family:Alegreya Sans;font-style:italic;font-weight:500;src:url(alegreya-sans-cyrillic-500-italic.a40f95be.woff2) format("woff2"),url(alegreya-sans-all-500-italic.8917c3da.woff) format("woff");unicode-range:U+0400-045f,U+0490-0491,U+04b0-04b1,U+2116}@font-face{font-display:swap;font-family:Alegreya Sans;font-style:italic;font-weight:500;src:url(alegreya-sans-greek-ext-500-italic.8b2e952b.woff2) format("woff2"),url(alegreya-sans-all-500-italic.8917c3da.woff) format("woff");unicode-range:U+1f??}@font-face{font-display:swap;font-family:Alegreya Sans;font-style:italic;font-weight:500;src:url(alegreya-sans-greek-500-italic.19d09eea.woff2) format("woff2"),url(alegreya-sans-all-500-italic.8917c3da.woff) format("woff");unicode-range:U+0370-03ff}@font-face{font-display:swap;font-family:Alegreya Sans;font-style:italic;font-weight:500;src:url(alegreya-sans-vietnamese-500-italic.3ff20df8.woff2) format("woff2"),url(alegreya-sans-all-500-italic.8917c3da.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01a0-01a1,U+01af-01b0,U+1ea0-1ef9,U+20ab}@font-face{font-display:swap;font-family:Alegreya Sans;font-style:italic;font-weight:500;src:url(alegreya-sans-latin-ext-500-italic.d15c8f11.woff2) format("woff2"),url(alegreya-sans-all-500-italic.8917c3da.woff) format("woff");unicode-range:U+0100-024f,U+0259,U+1e??,U+2020,U+20a0-20ab,U+20ad-20cf,U+2113,U+2c60-2c7f,U+a720-a7ff}@font-face{font-display:swap;font-family:Alegreya Sans;font-style:italic;font-weight:500;src:url(alegreya-sans-latin-500-italic.6d8350bf.woff2) format("woff2"),url(alegreya-sans-all-500-italic.8917c3da.woff) format("woff");unicode-range:U+00??,U+0131,U+0152-0153,U+02bb-02bc,U+02c6,U+02da,U+02dc,U+2000-206f,U+2074,U+20ac,U+2122,U+2191,U+2193,U+2212,U+2215,U+feff,U+fffd}@font-face{font-display:swap;font-family:Alegreya Sans;font-style:italic;font-weight:700;src:url(alegreya-sans-cyrillic-ext-700-italic.69b0617e.woff2) format("woff2"),url(alegreya-sans-all-700-italic.a6d70e05.woff) format("woff");unicode-range:U+0460-052f,U+1c80-1c88,U+20b4,U+2de0-2dff,U+a640-a69f,U+fe2e-fe2f}@font-face{font-display:swap;font-family:Alegreya Sans;font-style:italic;font-weight:700;src:url(alegreya-sans-cyrillic-700-italic.c4ef17a2.woff2) format("woff2"),url(alegreya-sans-all-700-italic.a6d70e05.woff) format("woff");unicode-range:U+0400-045f,U+0490-0491,U+04b0-04b1,U+2116}@font-face{font-display:swap;font-family:Alegreya Sans;font-style:italic;font-weight:700;src:url(alegreya-sans-greek-ext-700-italic.a1ccc0c2.woff2) format("woff2"),url(alegreya-sans-all-700-italic.a6d70e05.woff) format("woff");unicode-range:U+1f??}@font-face{font-display:swap;font-family:Alegreya Sans;font-style:italic;font-weight:700;src:url(alegreya-sans-greek-700-italic.5aef27cf.woff2) format("woff2"),url(alegreya-sans-all-700-italic.a6d70e05.woff) format("woff");unicode-range:U+0370-03ff}@font-face{font-display:swap;font-family:Alegreya Sans;font-style:italic;font-weight:700;src:url(alegreya-sans-vietnamese-700-italic.7de0cccc.woff2) format("woff2"),url(alegreya-sans-all-700-italic.a6d70e05.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01a0-01a1,U+01af-01b0,U+1ea0-1ef9,U+20ab}@font-face{font-display:swap;font-family:Alegreya Sans;font-style:italic;font-weight:700;src:url(alegreya-sans-latin-ext-700-italic.733aea09.woff2) format("woff2"),url(alegreya-sans-all-700-italic.a6d70e05.woff) format("woff");unicode-range:U+0100-024f,U+0259,U+1e??,U+2020,U+20a0-20ab,U+20ad-20cf,U+2113,U+2c60-2c7f,U+a720-a7ff}@font-face{font-display:swap;font-family:Alegreya Sans;font-style:italic;font-weight:700;src:url(alegreya-sans-latin-700-italic.abc64c8a.woff2) format("woff2"),url(alegreya-sans-all-700-italic.a6d70e05.woff) format("woff");unicode-range:U+00??,U+0131,U+0152-0153,U+02bb-02bc,U+02c6,U+02da,U+02dc,U+2000-206f,U+2074,U+20ac,U+2122,U+2191,U+2193,U+2212,U+2215,U+feff,U+fffd}@font-face{font-display:swap;font-family:Lato;font-style:normal;font-weight:400;src:url(lato-latin-ext-400-normal.e1ce8ad3.woff2) format("woff2"),url(lato-all-400-normal.a1a68bdf.woff) format("woff");unicode-range:U+0100-024f,U+0259,U+1e??,U+2020,U+20a0-20ab,U+20ad-20cf,U+2113,U+2c60-2c7f,U+a720-a7ff}@font-face{font-display:swap;font-family:Lato;font-style:normal;font-weight:400;src:url(lato-latin-400-normal.77db3602.woff2) format("woff2"),url(lato-all-400-normal.a1a68bdf.woff) format("woff");unicode-range:U+00??,U+0131,U+0152-0153,U+02bb-02bc,U+02c6,U+02da,U+02dc,U+2000-206f,U+2074,U+20ac,U+2122,U+2191,U+2193,U+2212,U+2215,U+feff,U+fffd}@font-face{font-display:swap;font-family:Lato;font-style:italic;font-weight:400;src:url(lato-latin-ext-400-italic.336aaf51.woff2) format("woff2"),url(lato-all-400-italic.c29c8c6c.woff) format("woff");unicode-range:U+0100-024f,U+0259,U+1e??,U+2020,U+20a0-20ab,U+20ad-20cf,U+2113,U+2c60-2c7f,U+a720-a7ff}@font-face{font-display:swap;font-family:Lato;font-style:italic;font-weight:400;src:url(lato-latin-400-italic.6edbc86c.woff2) format("woff2"),url(lato-all-400-italic.c29c8c6c.woff) format("woff");unicode-range:U+00??,U+0131,U+0152-0153,U+02bb-02bc,U+02c6,U+02da,U+02dc,U+2000-206f,U+2074,U+20ac,U+2122,U+2191,U+2193,U+2212,U+2215,U+feff,U+fffd}:root{--pluto-cell-spacing:17px;--pluto-operator-ligatures:none;--julia-mono-font-stack:JuliaMono,Menlo,"Roboto Mono","Lucida Sans Typewriter","Source Code Pro",monospace;--sans-serif-font-stack:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen,Ubuntu,Cantarell,"Open Sans","Helvetica Neue",sans-serif;--lato-ui-font-stack:"Lato",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Cantarell,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol",system-ui,sans-serif;--system-ui-font-stack:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Cantarell,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol",system-ui,sans-serif;color-scheme:light dark}html{font-size:17px}*{box-sizing:border-box}body{background-color:var(--main-bg-color);margin:0;min-height:100vh;overflow-anchor:none;overflow-x:hidden;position:relative}pluto-editor{align-items:center;display:flex;flex:1 1 auto;flex-direction:column;min-width:0}main{flex:1;max-width:731px;padding:0 6px 4rem 25px;width:100%}body:not(.disable_ui) main{padding-bottom:16rem}body:not(.disable_ui){overscroll-behavior:contain}@media screen and (min-width:calc(700px + 25px + 6px)) and (max-width:calc(700px + 25px + 6px + 500px)){body:not(.disable_ui) pluto-editor.fullscreen main{align-self:flex-start;margin-left:0}}@media screen and (min-width:calc(700px + 25px + 6px + 500px)) and (max-width:calc(700px + 25px + 6px + 500px + 500px)){body:not(.disable_ui) pluto-editor.fullscreen main{align-self:flex-end;margin-right:500px}}pluto-notebook{background:var(--main-bg-color);display:block}pluto-output{color:var(--pluto-output-color);font-family:Alegreya Sans,sans-serif;font-size:1em;font-weight:400}pluto-output h1,pluto-output h2,pluto-output h3,pluto-output h4,pluto-output h5,pluto-output h6{font-feature-settings:"lnum","pnum";color:var(--pluto-output-h-color);font-family:Vollkorn,serif;font-weight:600;margin-block-end:0;margin-block-start:1rem}pluto-output h1,pluto-output h2{font-weight:700;margin-block-start:2rem}pluto-output h1:first-child,pluto-output h2:first-child{margin-block-start:calc(2rem - var(--pluto-cell-spacing))}pluto-output h1{border-bottom:3px solid var(--rule-color);font-size:2.2rem;margin-bottom:.5rem}pluto-output h2{border-bottom:2px dotted var(--rule-color);font-size:1.8rem;margin-bottom:.5rem}pluto-output h1:empty,pluto-output h2:empty{border-bottom:none}pluto-output h3{font-size:1.6rem}pluto-output h4{font-size:1.4rem}pluto-output h5{font-size:1.2rem}pluto-output h6{font-size:1rem}pluto-output h3:first-child,pluto-output h4:first-child,pluto-output h5:first-child,pluto-output h6:first-child{margin-block-start:0}pluto-output br,pluto-output p{line-height:1.45em;margin-block-end:var(--pluto-cell-spacing);margin-block-start:0;word-spacing:.053em}pluto-output br{margin-block-end:0}pluto-output p:first-child{margin-block-start:0}b,strong{font-weight:bolder}pluto-output li p+ol,pluto-output li p+ul{margin-block-start:calc(var(--pluto-cell-spacing)*-1)}pluto-output p:last-child{margin-block-end:0}pluto-output img,pluto-output video{max-width:100%}a{color:var(--black);text-decoration-color:var(--a-underline);text-decoration-thickness:2px}a:hover{text-decoration-color:var(--black)}.cm-cursor{border-left:1.2px solid var(--cursor-color)!important}pluto-output code{font-family:var(--julia-mono-font-stack);font-size:.75em;font-variant-ligatures:none}pluto-output code .cm-editor .cm-line{font-family:var(--julia-mono-font-stack)}pluto-output pre>code{font-size:inherit}pluto-output.rich_output code{background-color:var(--pluto-output-bg-color);border-radius:8px;padding:.18em}pluto-output.rich_output pre>code{background-color:transparent;padding:0}pluto-log-dot pre,pluto-output pre{display:inline-block;font-family:var(--julia-mono-font-stack);font-size:.75rem;font-variant-ligatures:none;margin:0;tab-size:4;-moz-tab-size:4;white-space:pre-wrap;word-break:break-all}pluto-display pre{white-space:pre;word-break:normal}pluto-output hr{border:none;border-top:3px solid var(--rule-color);margin-left:0;margin-right:0}pluto-output blockquote{margin-left:1rem;margin-right:1rem}pluto-output.rich_output pre:not(.no-block),pluto-output blockquote{background-color:var(--blockquote-bg);border-radius:15px;color:var(--blockquote-color);display:block;margin-block-end:var(--pluto-cell-spacing);margin-block-start:0;padding:15px}pluto-output.rich_output pre:not(.no-block):last-child,pluto-output blockquote:last-child{margin-block-end:0}pluto-output div.admonition{border-radius:8px;margin-block-end:1em;margin-block-start:1em}pluto-output div.admonition .admonition-title{font-feature-settings:"lnum","pnum";color:var(--admonition-title-color);font-family:Vollkorn,sans-serif;font-weight:600;margin-block-end:0;padding-left:.3em}pluto-output div.admonition .admonition-title~*{margin-block-end:.5em;margin-block-start:.5em;transition:filter .1s linear}pluto-output div.admonition{background:var(--jl-message-color);border:5px solid var(--jl-message-accent-color);padding-left:.5rem;padding-right:.5rem}pluto-output div.admonition .admonition-title{background:var(--jl-message-accent-color);margin:-1px -.55rem}pluto-output div.admonition.hint,pluto-output div.admonition.info,pluto-output div.admonition.note{background:var(--jl-info-color);border:5px solid var(--jl-info-accent-color)}pluto-output div.admonition.hint .admonition-title,pluto-output div.admonition.info .admonition-title,pluto-output div.admonition.note .admonition-title{background:var(--jl-info-accent-color)}pluto-output div.admonition.warning{background:var(--jl-warn-color);border:5px solid var(--jl-warn-accent-color)}pluto-output div.admonition.warning .admonition-title{background:var(--jl-warn-accent-color)}pluto-output div.admonition.danger{background:var(--jl-danger-color);border:5px solid var(--jl-danger-accent-color)}pluto-output div.admonition.danger .admonition-title{background:var(--jl-danger-accent-color)}pluto-output div.admonition.hint .admonition-title~*{filter:blur(.25em)}pluto-output div.admonition.hint:focus-within .admonition-title~*,pluto-output div.admonition.hint:hover .admonition-title~*{filter:blur(0)}pluto-output div.footnote{margin-block-end:1em;margin-block-start:1em}pluto-output div.footnote p.footnote-title:before{content:"["}pluto-output div.footnote p.footnote-title:after{content:"]: "}pluto-output a.footnote,pluto-output div.footnote p.footnote-title{font-family:Roboto Mono,monospace;font-size:.75rem;font-weight:700;letter-spacing:-.05em;margin-block-end:0}pluto-output div.footnote p.footnote-title~*{border-left:5px solid var(--footnote-border-color);margin-block-end:0;margin-left:.1em;padding-bottom:var(--pluto-cell-spacing);padding-left:.4em}pluto-output div.footnote p:last-child{padding-bottom:0}pluto-output.scroll_y{max-height:80vh;max-height:502px;overflow:auto}pluto-output table{border:2px solid var(--table-border-color);border-collapse:collapse;border-left:none;border-right:none;margin:0 auto;margin-block-end:var(--pluto-cell-spacing);margin-block-start:var(--pluto-cell-spacing)}pluto-output table>thead{border-bottom:1px solid var(--table-border-color)}pluto-output table>tbody td{font-family:var(--julia-mono-font-stack);font-size:.75rem;font-variant-ligatures:none}pluto-output table>tbody td code{font-size:.75rem}pluto-output table td,pluto-output table th{padding:.2rem .5rem}pluto-output table>tbody tr:hover{background-color:var(--table-bg-hover-color)}pluto-output table pre{white-space:pre}kbd,pluto-output kbd{border:1px solid var(--kbd-border-color);border-radius:3px;font-family:Space Mono,monospace;font-size:.7rem;letter-spacing:-.7px;padding:0 5px}pluto-output mjx-assistive-mml{height:1px}.raw-html-wrapper>div.markdown{overflow:hidden}pluto-output details{border:1px solid var(--rule-color);border-radius:4px;margin-block-end:var(--pluto-cell-spacing);margin-block-start:0;padding:.5em .5em 0}pluto-output details:first-child{margin-block-start:0}pluto-output details:last-child{margin-block-end:0}pluto-output details summary{background-clip:padding-box;border-radius:3px;cursor:pointer;font-family:var(--system-ui-font-stack);font-weight:700;margin:-.5em -.5em 0;padding:.5em;transition:color .25s ease-in-out,background-color .25s ease-in-out}pluto-output details summary:hover{background-color:var(--blockquote-bg);color:var(--blockquote-color)}pluto-output details[open]{padding:.5em}pluto-output details[open] summary{border-bottom:1px solid var(--rule-color);border-bottom-left-radius:0;border-bottom-right-radius:0;margin-bottom:.5em}header#pluto-nav{background-color:var(--header-bg-color);border-bottom:1px solid var(--header-border-color);font-family:Roboto Mono,monospace;font-size:.75rem;font-weight:400;min-height:60px;transform:translateY(0);transition:background-color .5s ease-in-out,transform .25s cubic-bezier(.18,.89,.49,1.13);width:100%;z-index:60}header#pluto-nav.show_export{position:sticky;top:0;transform:translateY(130px)}dialog#export{background:var(--export-bg-color);border:none;color:var(--export-color);display:block;height:130px;margin:0;max-height:none;max-width:none;overflow:visible;padding:0;position:absolute;top:0;transform:translateY(calc(-100% - 1px));width:100%}dialog#export:before{background:inherit;bottom:100%;content:"";height:100px;left:0;position:absolute;right:0}dialog#export div#container{display:flex;flex-direction:row;margin:0 auto;max-width:1000px;padding-right:10em;position:relative}header dialog#export div#container{overflow-x:hidden}header.show_export dialog#export div#container{overflow-x:auto}a.export_card{background:var(--export-card-bg-color);border:5px solid transparent;box-shadow:0 2px 10px var(--export-card-shadow-color);color:var(--export-card-title-color);margin:20px 5px;text-decoration:none;width:169px}a.export_card,div.export_title{border-radius:8px;flex:0 0 auto;height:90px}div.export_title{font-size:1rem;font-weight:700;margin-top:10px;text-orientation:sideways-right;transform:rotate(180deg);writing-mode:vertical-lr}a.export_card header{font-feature-settings:"lnum","pnum";font-family:Vollkorn,sans;font-size:1rem;margin-block:0}a.export_card section{color:var(--export-card-text-color);font-weight:500;padding:3px}dialog#export .export_small_btns{background:var(--export-bg-color);border-radius:.9em;display:flex;flex-direction:row;padding:.9em;position:absolute;right:.8em;top:0}body.static_preview button.toggle_export{display:none}nav#at_the_top h1{color:var(--nav-h1-text-color);letter-spacing:2px}nav#at_the_top{display:flex;flex-direction:row;flex-wrap:wrap;margin:0 auto;max-width:1000px;min-height:60px;padding-left:20px;padding-right:20px;z-index:100}nav#at_the_top>*{align-self:center;flex:0 0 auto;margin:10px 0}nav#at_the_top>.flex_grow_1{flex-grow:1}nav#at_the_top>.flex_grow_2{flex-grow:2}nav#at_the_top h1{border-bottom:none;display:inline;font-size:1.8rem;font-weight:700}nav#at_the_top img#logo-big,nav#at_the_top img#logo-small{filter:var(--image-filters);height:39px;margin-bottom:-8px}nav#at_the_top img#logo-small{display:none}@media (max-width:800px){nav#at_the_top img#logo-small{display:unset}nav#at_the_top img#logo-big{display:none}}nav#at_the_top>div.desktop_picker,nav#at_the_top>pluto-filepicker{display:flex;flex-direction:row;flex-grow:1;width:210px}nav#at_the_top>div.desktop_picker span,nav#at_the_top>pluto-filepicker .cm-editor{background:none;border:2px solid var(--footer-input-border-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;font-family:inherit;font-size:.8rem;font-style:normal;font-weight:500;height:calc(1rem + 12px);letter-spacing:1px;min-width:10rem}pluto-filepicker .cm-scroller{scrollbar-width:none}pluto-filepicker .cm-scroller::-webkit-scrollbar{display:none}div.desktop_picker button,pluto-filepicker button{cursor:pointer;height:auto}pluto-filepicker button:disabled{cursor:not-allowed}div.desktop_picker span{cursor:pointer;line-height:1.8;overflow-x:hidden;padding:0 5px;text-overflow:ellipsis;vertical-align:middle;white-space:nowrap}.export_small_btns button,button.start_stop_recording,button.toggle_export{background:none;border:none;cursor:pointer;opacity:.5}.export_small_btns button span,button.start_stop_recording span,button.toggle_export span{background-size:25px 25px;content:" "!important;display:block;height:25px;width:25px}nav#at_the_top button.start_stop_recording span{background-image:url(radio-button-on-outline.778acac1.svg)}nav#at_the_top button.start_stop_recording.stop span{background-image:url(stop-circle-outline.6623356d.svg)}nav#at_the_top button.toggle_export span{background-image:url(share-outline.50164ded.svg);filter:var(--image-filters)}dialog#export button.toggle_export span{background-image:url(close-outline.9c22a232.svg);filter:invert(1)}dialog#export button.toggle_frontmatter_edit span{background-image:url(newspaper-outline.e481c39c.svg);filter:invert(1)}dialog#export button.toggle_presentation span{background-image:url(easel-outline.9b064e1f.svg);filter:invert(1)}nav#at_the_top:after{align-self:center;margin-left:auto}.cm-tooltip-autocomplete li.file.new:before{color:#000;content:"👉"}.cm-tooltip-autocomplete li.file:before{color:#000;content:"📄"}.cm-tooltip-autocomplete li.dir:before{color:#000;content:"📁"}@media (any-pointer:fine){nav#at_the_top>div.desktop_picker span,nav#at_the_top>pluto-filepicker .cm-editor{border:2px solid transparent;border-right:none;transition:border .15s ease-in-out}nav#at_the_top>div.desktop_picker button,nav#at_the_top>pluto-filepicker button{opacity:0;transition:opacity .15s ease-in-out}header:focus-within>nav#at_the_top>div.desktop_picker span,header:focus-within>nav#at_the_top>pluto-filepicker .cm-editor,header:hover>nav#at_the_top>div.desktop_picker span,header:hover>nav#at_the_top>pluto-filepicker .cm-editor{border:2px solid var(--footer-input-border-color);border-right:none}header:focus-within>nav#at_the_top>div.desktop_picker button,header:focus-within>nav#at_the_top>pluto-filepicker button,header:hover>nav#at_the_top>div.desktop_picker button,header:hover>nav#at_the_top>pluto-filepicker button{opacity:1}}body.binder header#pluto-nav>nav#at_the_top>pluto-filepicker>*{display:none}body.binder header#pluto-nav>nav#at_the_top>pluto-filepicker>a{display:block;font-family:var(--julia-mono-font-stack);font-size:16px;opacity:.8;text-decoration:none}body.binder.loading header#pluto-nav,body.disconnected header#pluto-nav,body.nbpkg_restart_recommended header#pluto-nav,body.nbpkg_restart_required header#pluto-nav,body.process_dead header#pluto-nav,body.process_waiting_for_permission header#pluto-nav{backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);position:sticky;top:0}body.nbpkg_restart_recommended header#pluto-nav{background-color:var(--restart-recc-header-color)}body.nbpkg_restart_required header#pluto-nav{background-color:var(--restart-req-header-color)}body.process_dead header#pluto-nav{background-color:var(--dead-process-header-color)}body.process_waiting_for_permission header#pluto-nav{background-color:var(--restart-recc-header-color)}body.loading header#pluto-nav{background-color:var(--loading-header-color)}body.disconnected header#pluto-nav{background-color:var(--disconnected-header-color)}body.binder.loading header#pluto-nav{background-color:var(--binder-loading-header-color)}nav#at_the_top>#process_status{background:var(--nav-process-status-bg-color);border-radius:10px;color:var(--nav-process-status-color);font-size:1rem;font-weight:500;margin:5px 5px 5px 1em;padding:5px 10px;z-index:10}nav#at_the_top>#process_status:empty{display:none}.statefile-fetch-progress{--w:min(80vw,300px);left:calc(50vw - var(--w)*.5);position:fixed;top:0;width:var(--w);z-index:300000}loading-bar{animation:move-background 2s ease-in-out infinite;background:linear-gradient(90deg,var(--loading-grad-color-1),var(--loading-grad-color-2),var(--loading-grad-color-1));background-size:100vw 100%;display:block;height:6px;left:0;opacity:0;position:fixed;top:0;transition:width 2s cubic-bezier(.14,.71,0,.99),opacity .2s linear;width:10vw;z-index:12000}loading-bar.slow{transition:width 10s cubic-bezier(.14,.71,0,.99),opacity .5s linear}@media (prefers-reduced-motion){loading-bar{transition:none}}body.binder.loading #binder_spinners{opacity:.25}@keyframes move-background{0%{background-position-x:0}to{background-position-x:100vw}}.outline-frame{box-sizing:border-box;height:100vh;left:0;pointer-events:none;position:fixed;top:0;width:100vw;z-index:1500}body.process_waiting_for_permission .outline-frame.safe-preview{border-bottom:12px solid var(--restart-recc-header-color)}body.recording_waiting_to_start .outline-frame.recording{border:12px solid #be6f6fba}body.is_recording .outline-frame.recording{border:12px solid #dc3535ba}.outline-frame.playback{border:12px solid #357ddcba;box-shadow:inset 0 0 20px 20px #919bff2b;opacity:1;position:absolute;transition:top .3s ease-in-out,opacity .3s ease-in-out}body.is_recording header#pluto-nav,body.recording_waiting_to_start header#pluto-nav{display:none}.outline-frame-actions-container{display:flex;flex-direction:row;flex-wrap:wrap;position:fixed;top:3px;z-index:1501}.outline-frame-actions-container.safe-preview{bottom:4px;top:auto}.outline-frame-actions-container>.overlay-button{border-color:#e86f6c;margin:0 3px}.outline-frame-actions-container>.overlay-button.record-no-audio{border-color:#dcc6c6}.outline-frame-actions-container>.overlay-button.playback{border-color:#c6c6dc}span.pluto-icon.stop-recording-icon:after{background-image:url(stop-circle-outline.6623356d.svg)}span.pluto-icon.microphone-icon:after{background-image:url(mic-outline.e10eafe2.svg)}span.pluto-icon.info-icon:after{background-image:url(information-circle-outline.008b2bb9.svg)}span.pluto-icon.offline-icon:after{background-image:url(cloud-offline-outline.ac2eade9.svg)}span.pluto-icon.mute-icon:after{background-image:url(mic-off-outline.251c22b7.svg)}span.pluto-icon.follow-recording-icon:after{background-image:url(arrow-undo-outline.d8c99108.svg)}div.recording-playback{bottom:16px;position:fixed;width:min(500px,90vw);z-index:1501}div.recording-playback audio{width:100%}.safe-preview-info{background:var(--white);border:3px solid var(--restart-recc-accent-color);border-radius:.8em;color:var(--black);font-family:var(--system-ui-font-stack);font-weight:700;padding:.3em .8em}.safe-preview-info>span{display:flex}.safe-preview-info button{background:none;border:none;cursor:pointer}.safe-preview-output{align-items:baseline;background:var(--restart-recc-header-color);border-radius:.4em;color:var(--helpbox-header-color);display:inline-flex;font-family:var(--system-ui-font-stack);font-size:.8rem;font-weight:700;gap:.3em;margin:.7em 0;opacity:.5;padding:.2em .4em}.raw-html-wrapper.preamble{width:100%}main>preamble{display:flex;height:20px;margin-top:5px;padding-right:5px;pointer-events:none;position:sticky;top:5px;z-index:200}.overlay-button{background:var(--overlay-button-bg);border:3px solid var(--overlay-button-border);border-radius:12px;font-family:Segoe UI Emoji,Roboto Mono,monospace;font-size:.75rem;height:35px;padding:5px 8px;pointer-events:all;white-space:nowrap}.overlay-button,.overlay-button button:not(.asdfdsf){color:var(--overlay-button-color)}main>preamble #saveall-container{margin-left:auto}pluto-editor.fullscreen main>preamble #saveall-container{transform:translateX(max(0px,100vw - 700px - 25px))}@media screen and (min-width:calc(700px + 25px + 6px + 500px)){pluto-editor.fullscreen main>preamble #saveall-container{transform:translateX(500px)}}main>preamble #saveall-container.ask_to_save{border-color:var(--overlay-button-border-save)}main>preamble #saveall-container.saved,main>preamble #saveall-container.saving{border-color:transparent}main>preamble #saveall-container.saved>span,main>preamble #saveall-container.saving>span{opacity:.5}span.pluto-icon:after{background-image:url(sync-circle-outline.65b15d76.svg);background-position-x:right;background-position-y:1px;background-repeat:no-repeat;background-size:1.3em;content:"";display:inline-block;filter:var(--image-filters);height:1.3em;margin-bottom:-.3em;padding-right:1.5em;transform:translateY(-.1em)}.overlay-button span.saved-icon:after,main>preamble span.saved-icon:after{background-image:url(checkmark-outline.4fb8c646.svg);filter:var(--image-filters)}#saveall-container .only-on-hover{display:none}#saveall-container:hover .only-on-hover{display:inline}pluto-cell{display:block;margin-top:var(--pluto-cell-spacing);min-height:25px;position:relative}pluto-output{align-items:baseline;background-color:var(--pluto-output-bg-color);display:block;overflow-x:auto;padding-left:10px;padding-right:10px}.scroll_y{max-height:80vh;overflow-y:auto}pluto-output:focus{outline:none}pluto-output:not(.rich_output){display:flex;flex-wrap:wrap;padding-bottom:3px;padding-top:3px}pluto-output>assignee{font-family:var(--julia-mono-font-stack);font-size:.75rem;font-variant-ligatures:none}pluto-output>assignee:after{content:"\a0=\a0";opacity:.6}.errored pluto-output>assignee,pluto-output>assignee:empty{display:none}pluto-output>div{flex-shrink:0;overflow-y:hidden}pluto-output div.raw-html-wrapper{display:contents}pluto-output:not(.rich_output)>div>pre{display:flex}.bonds_disabled:where(.offer_binder,.offer_local) bond{filter:grayscale(1);opacity:.6}pluto-display,pluto-display>div{display:contents}.isolated-cell>pluto-output{padding:0}.hidden-cell{display:none}pluto-cell.depends_on_disabled_cells>pluto-input .cm-editor,pluto-cell.depends_on_disabled_cells>pluto-logs-container,pluto-cell.depends_on_disabled_cells>pluto-output,pluto-cell.depends_on_disabled_cells>pluto-trafficlight,pluto-cell.running_disabled>pluto-input .cm-editor,pluto-cell.running_disabled>pluto-logs-container,pluto-cell.running_disabled>pluto-output,pluto-cell.running_disabled>pluto-trafficlight{opacity:.3}pluto-cell.running_disabled>pluto-input .cm-editor,pluto-cell.running_disabled>pluto-output{background-color:var(--disabled-cell-bg-color)}pluto-cell.depends_on_skipped_cells .depends_on_skipped_marker,pluto-cell.skip_as_script .skip_as_script_marker{background-color:var(--skip-as-script-background-color);border-radius:0 4px 4px 0;bottom:0;cursor:help;display:block;position:absolute;right:-3px;top:0;width:4px;z-index:20}pluto-cell.depends_on_skipped_cells .depends_on_skipped_marker{background-color:var(--depends-on-skip-as-script-background-color)}pluto-cell.depends_on_skipped_cells pluto-input .cm-editor,pluto-cell.skip_as_script pluto-input .cm-editor{border-bottom-right-radius:0}pluto-cell.selected{background:var(--selected-cell-bg-color);border-radius:0 3px 3px 0}pluto-cell.selected>pluto-input>div.cm-editor,pluto-cell.selected>pluto-output{opacity:.7}main{cursor:vertical-text}pluto-cell{cursor:auto}pluto-output>div{scrollbar-color:transparent transparent;scrollbar-width:thin}pluto-cell:hover>pluto-output>div{scrollbar-color:var(--hover-scrollbar-color-1) var(--hover-scrollbar-color-2)}pluto-output>div::-webkit-scrollbar{background:transparent;height:6px}pluto-output>div::-webkit-scrollbar-thumb{background:transparent}pluto-cell:hover>pluto-output>div::-webkit-scrollbar{background:var(--hover-scrollbar-color-2)}pluto-cell:hover>pluto-output>div::-webkit-scrollbar-thumb{background:var(--hover-scrollbar-color-1)}pluto-input .cm-editor{border:1px solid var(--normal-cell-color);border-bottom-right-radius:4px;border-left:none;min-height:25px;scroll-margin-block:20vh;z-index:20}pluto-input:focus-within .cm-editor{z-index:21}pluto-input .cm-editor .cm-line{transition:background-color .15s ease-in-out}pluto-input .cm-editor .cm-line.cm-highlighted-line,pluto-input .cm-editor span.cm-highlighted-range{background-color:var(--cm-highlighted);border-radius:3px}pluto-cell:not(.show_input)>pluto-input{display:none}pluto-cell.code_differs>pluto-input>.cm-editor{border:1px solid var(--code-differs-cell-color);border-left:none}.overlay-button button,button.floating_back_button,nav#slide_controls>button,pluto-cell>button,pluto-input>button,pluto-runarea>button,pluto-shoulder>button{background:none;border:none;color:var(--ui-button-color);cursor:pointer;font-family:Segoe UI Emoji,Roboto Mono,monospace;font-size:.75rem;margin:0;opacity:50%;padding:1px;position:absolute;z-index:30}.overlay-button button{position:relative}pluto-shoulder{--invisible-border:calc(var(--pluto-cell-spacing)*0.5);--shoulder-width:calc(28px + var(--invisible-border));--border-radius:calc(5px + var(--invisible-border));align-items:flex-start;border:var(--invisible-border) solid transparent;border-radius:var(--border-radius) 0 0 var(--border-radius);border-right:none;bottom:calc(0px - var(--invisible-border));cursor:move;display:flex;flex-direction:row;justify-content:flex-end;left:calc(0px - var(--shoulder-width));position:absolute;top:calc(0px - var(--invisible-border));width:var(--shoulder-width)}pluto-editor.fullscreen pluto-shoulder{--shoulder-width:2000px}pluto-shoulder:hover{background:var(--shoulder-hover-bg-color);background-clip:padding-box}pluto-shoulder>button{flex:0 0 auto;padding:4px 5px 4px 10px;position:sticky;top:0}pluto-cell:focus-within>pluto-shoulder>button{padding-right:9px}pluto-shoulder>button>span:after{background-image:url(eye-outline.6e6e0f7c.svg);filter:var(--image-filters)}pluto-cell.code_folded>pluto-shoulder>button>span:after{background-image:url(eye-off-outline.a37e03db.svg);filter:var(--image-filters)}pluto-trafficlight{--patternHeight:22.62741699797px;background:var(--normal-cell-color);border-bottom-left-radius:4px;border-left-color:var(--normal-cell-color);border-top-left-radius:4px;bottom:0;box-sizing:content-box;left:-4px;margin-right:-1px;overflow:hidden;pointer-events:none;position:absolute;top:0;width:4px}pluto-trafficlight:after{content:"";height:calc(100% + var(--patternHeight)*10);left:0;opacity:0;position:absolute;top:calc(0px - var(--patternHeight)*10);width:100%}pluto-cell.activate_animation pluto-trafficlight:after{animation:scrollbackground 10s linear 0s infinite running}body:not(.___) pluto-cell.code_folded>pluto-trafficlight{background:none}@media screen and (any-pointer:fine){body:not(.disable_ui) pluto-cell:hover>pluto-trafficlight{background:var(--normal-cell-color)}}body:not(.___) pluto-cell:focus-within>pluto-trafficlight{background-clip:padding-box;background-color:var(--normal-cell-color);border-left-style:solid;border-left-width:4px;margin-left:-4px}body:not(.___) pluto-cell.selected>pluto-trafficlight{background:var(--selected-cell-color);background-clip:padding-box;border-left-color:var(--selected-cell-color)}body:not(.___) pluto-cell.code_differs>pluto-trafficlight{background:var(--code-differs-cell-color);background-clip:padding-box;border-left-color:var(--code-differs-cell-color)}body:not(.___) pluto-cell.errored>pluto-trafficlight{background:var(--error-cell-color);background-clip:padding-box;border-left-color:var(--error-cell-color)}body:not(.___) pluto-cell.queued>pluto-trafficlight:after{animation-duration:20s;background:repeating-linear-gradient(-45deg,transparent,transparent 8px,var(--normal-cell-color) 8px,var(--normal-cell-color) 16px);background-clip:padding-box;background-size:4px var(--patternHeight);opacity:.99}body:not(.___) pluto-cell.running>pluto-trafficlight:after{background:repeating-linear-gradient(-45deg,var(--normal-cell-color),var(--normal-cell-color) 8px,var(--dark-normal-cell-color) 8px,var(--dark-normal-cell-color) 16px);background-clip:content-box;background-size:4px var(--patternHeight);opacity:.99}body:not(.___) pluto-cell.queued.errored>pluto-trafficlight:after,body:not(.___) pluto-cell.running.errored>pluto-trafficlight:after{background:repeating-linear-gradient(-45deg,var(--light-error-cell-color),var(--light-error-cell-color) 8px,var(--bright-error-cell-color) 8px,var(--bright-error-cell-color) 16px);background-clip:content-box;background-size:4px var(--patternHeight);opacity:.99}@keyframes scrollbackground{0%{transform:translate(0)}to{transform:translateY(calc(var(--patternHeight)*10))}}pluto-cell>button>span,pluto-input>button>span{pointer-events:none}@media screen and (any-pointer:fine){pluto-cell>button,pluto-cell>pluto-runarea,pluto-input>button,pluto-runarea>button,pluto-shoulder>button{opacity:0;transition:opacity .25s ease-in-out}.export_small_btns button,button.start_stop_recording,button.toggle_export,pluto-cell:focus-within>button,pluto-cell:focus-within>pluto-input>button,pluto-cell:focus-within>pluto-shoulder>button,pluto-cell:hover>button,pluto-cell:hover>pluto-input>button,pluto-cell:hover>pluto-shoulder>button,pluto-cell>pluto-runarea>button{opacity:.6;transition:opacity .25s ease-in-out}.export_small_btns button:hover,.overlay-button button:hover,button.start_stop_recording:hover,button.toggle_export:hover,pluto-cell:hover>pluto-runarea,pluto-cell>button:hover,pluto-cell>pluto-input>button:hover,pluto-cell>pluto-runarea>button:hover,pluto-cell>pluto-shoulder>button:hover{opacity:1;transition:opacity .05s ease-in-out}}@media screen and (pointer:coarse){pluto-cell>button.add_cell,pluto-input>button,pluto-shoulder>button{opacity:.25;transition:opacity .25s ease-in-out}pluto-cell:not(:first-of-type,:last-of-type)>button.add_cell{opacity:.125}pluto-cell:focus-within>button.add_cell,pluto-cell:focus-within>pluto-input>button,pluto-cell:focus-within>pluto-runarea,pluto-cell:focus-within>pluto-shoulder>button{opacity:.6;transition:opacity .25s ease-in-out}pluto-cell>button:focus-within,pluto-cell>pluto-input>button:focus-within,pluto-cell>pluto-input>button:focus-within pluto-cell>pluto-runarea>button:focus-within,pluto-cell>pluto-runarea,pluto-cell>pluto-shoulder>button:focus-within{opacity:1;transition:opacity .05s ease-in-out}}pluto-cell>button>span:after,pluto-input>button>span:after,pluto-runarea>button>span:after,pluto-shoulder>button>span:after{background-size:17px 17px;content:" "!important;display:block;height:17px;width:17px}pluto-cell>button.add_cell{--hit-box-extend:20px;left:-12px;margin-left:calc(var(--hit-box-extend)*-1);margin-right:calc(var(--hit-box-extend)*-1);padding-left:var(--hit-box-extend);padding-right:var(--hit-box-extend)}pluto-cell>button.add_cell.before{margin-top:calc(-9.5px - var(--pluto-cell-spacing)*.5)!important}pluto-cell>button.add_cell.after{bottom:1px;margin-bottom:calc(-10.5px - var(--pluto-cell-spacing)*.5)}pluto-cell>button.add_cell>span:after{background-image:url(add-outline.e3c93c35.svg);filter:var(--image-filters)}pluto-input>.input_context_menu ul{background-color:var(--input-context-menu-bg-color);border:1px solid var(--input-context-menu-border-color);border-radius:6px;display:grid;grid-template-columns:max-content;margin:0;padding:0}pluto-input{display:block;position:relative}pluto-input>div.input_context_menu{left:100%;position:absolute;top:-8px;z-index:1400}@media screen and (min-width:921px){pluto-input>div.input_context_menu{left:calc(100% - 3px)}}@media screen and (max-width:920px){pluto-input>div.input_context_menu{left:unset;right:0;z-index:1401}}pluto-input>.input_context_menu li{align-items:stretch;display:flex;flex-direction:column;list-style:none;margin-block-end:0}pluto-input>.input_context_menu li button{align-items:center;background:none;border:none;border-radius:2px;color:var(--input-context-menu-li-color);cursor:pointer;display:flex;font-family:Roboto Mono,system-ui;font-size:.8rem;height:32px;justify-content:flex-start;letter-spacing:-.02em;margin-block-end:0;padding:8px;position:relative}.input_context_menu li:last-child{border-bottom-left-radius:6px;border-bottom-right-radius:6px}.input_context_menu li:first-child{border-top-left-radius:6px;border-top-right-radius:6px}.input_context_menu li.coming_soon{color:var(--input-context-menu-soon-color)}.input_context_menu li.coming_soon:hover{background-color:var(--input-context-menu-hover-bg-color);cursor:not-allowed}.input_context_menu li:hover{background-color:var(--input-context-menu-hover-bg-color);transition-duration:.2s;transition-property:background-color}.ctx_icon,.icon{--size:17px;background-position:50%;background-size:var(--size) var(--size);height:var(--size);margin-right:calc(var(--size)/3);margin-top:1px;width:var(--size)}.ctx_icon{filter:var(--image-filters)}.ctx_icon.hide_logs,.ctx_icon.show_logs{background-image:url(document-text-outline.8d1e2333.svg)}.ctx_icon.enable_cell{background-image:url(caret-forward-circle-outline.d0bf2b34.svg)}.ctx_icon.disable_cell{background-image:url(ban-outline.c97da9b4.svg);background-repeat:no-repeat;background-size:15px}.ctx_icon.delete{background-image:url(close-circle-outline.4baeedb9.svg)}.ctx_icon.run_as_script{background-image:url(document-lock-outline.69d176a4.svg)}.ctx_icon.skip_as_script{background-image:url(document-text-outline.8d1e2333.svg)}.ctx_icon.copy_output{background-image:url(copy-outline.0f561529.svg)}pluto-input>button.input_context_menu{padding:5px;right:0}pluto-input>.input_context_menu.open{opacity:1}pluto-input>.input_context_menu span.icon:after{background-image:url(ellipsis-horizontal-circle-outline.6279ed30.svg);filter:var(--image-filters)}pkg-status-mark{display:inline-block;height:1em;margin:0 .6em 0 .2em;width:1em}body.nbpkg_disabled pkg-status-mark:not(.disable_pkg){display:none}pkg-status-mark>button{background:none;border:none;cursor:context-menu;margin:0;padding:0;position:relative;top:-.2em}pkg-status-mark>button>span:after{background-image:url(time-outline.7c1877f0.svg);background-size:1.5em;content:" "!important;display:inline-block;filter:var(--image-filters);height:1.5em;opacity:.3;width:1.5em}pkg-status-mark.installed>button>span:after{background-image:url(checkmark-outline.4fb8c646.svg);filter:var(--image-filters)}pkg-status-mark.busy>button>span:after{animation:loadspin 3s ease-in-out infinite;background-image:url(sync-outline.9a1bd27b.svg);filter:var(--image-filters)}pkg-status-mark.not_found>button>span:after{background-image:url(cloud-offline-outline.ac2eade9.svg);filter:var(--image-filters);opacity:.6}pkg-status-mark.will_be_installed>button>span:after{background-image:url(cloud-download-outline.8c1ff9bb.svg);filter:var(--image-filters);opacity:.6}pkg-status-mark.disable_pkg>button>span:after{background-image:url(chatbox-ellipses-outline.4334a3a4.svg);filter:var(--image-filters);opacity:.6}pluto-popup{--max-size:251px;display:block;font-family:var(--system-ui-font-stack);margin-left:.4rem;margin-top:-1rem;opacity:0;overflow-wrap:break-word;pointer-events:none;position:absolute;transform:scale(.2);transform-origin:left;transition:transform .5s ease-in-out,opacity .1s ease-in-out;width:min(90vw,var(--max-size));z-index:1800}pluto-popup.visible{opacity:1;pointer-events:auto;transform:scale(1);transition:transform .2s ease-in-out,opacity .2s ease-in-out}pluto-popup.big{--max-size:25em}pluto-popup>*{background:var(--overlay-button-bg);border:3px solid var(--overlay-button-border);border-radius:10px;color:var(--black);display:block;max-height:80vh;max-width:100%;overflow-y:auto;padding:8px;position:absolute}pluto-popup>div>:first-child{margin-block-start:0}pluto-popup h1{font-size:1.6em}pluto-popup.warn>*{background:var(--pluto-logs-warn-color);border-color:var(--pluto-logs-warn-accent-color)}pluto-popup code.auto_disabled_variable{font-family:var(--julia-mono-font-stack);font-size:.8rem;font-variant-ligatures:none}pluto-popup>pkg-popup{background:var(--pkg-popup-bg);border:3px solid var(--pkg-popup-border-color)}pkg-popup.busy{border:3px solid #aa80bc}pkg-version{font-family:Space Mono,monospace;font-size:.75rem;opacity:.5}pkg-popup .pkg-buttons{display:inline-flex;flex-direction:row;float:right;height:1em}a.stdout-info img,pkg-popup .pkg-buttons img{filter:var(--image-filters)}a.stdout-info,pkg-popup .pkg-buttons>*{background:var(--pkg-popup-buttons-bg-color);border-radius:10px;box-sizing:content-box;display:block;height:17px;margin-left:-4px;padding:4px;z-index:52}pkg-popup .toggle-terminal{right:20px}.pkg-time-estimate{background:var(--pluto-logs-info-color);border-radius:.5em;font-size:.8em;margin:.5em 0;padding:.5em}pkg-terminal{background:var(--pkg-terminal-bg-color);border:3px solid var(--pkg-terminal-border-color);border-radius:6px;color:#fff;cursor:text;display:block;margin-top:6px;padding:3px}pkg-terminal>.scroller{max-height:10rem;overflow-y:auto;padding:4px;width:100%}pkg-terminal pre{font-family:Space Mono,monospace;font-size:.6rem;margin:0;white-space:pre-wrap;word-break:break-all}pkg-terminal .make-me-spin{animation:identifier-spin 1s linear infinite;animation-delay:var(--animation-delay);display:inline-block;transform-origin:50% 59%}pkg-popup pkg-terminal{display:none}pkg-popup.showterminal pkg-terminal{display:block}@keyframes loadspin{0%{transform:rotate(0deg)}25%{transform:rotate(180deg)}50%{transform:rotate(180deg)}75%{transform:rotate(1turn)}to{transform:rotate(1turn)}}pluto-runarea{background-color:var(--pluto-runarea-bg-color);border-bottom-left-radius:5px;border-bottom-right-radius:5px;border-top:none;display:block;height:17px;margin-right:3px;min-width:75px;position:absolute;right:0;z-index:19}pluto-runarea>span{color:var(--pluto-runarea-span-color);display:inline-block;font-family:Roboto Mono,monospace;font-size:.6em;font-style:italic;left:22px;position:absolute;text-align:center;top:1px;width:45px}pluto-runarea>button.runcell{left:1px;top:-1px}pluto-runarea>button.runcell>span:after{background-image:url(caret-forward-circle-outline.d0bf2b34.svg);filter:var(--image-filters)}pluto-runarea.interrupt>button.runcell>span:after{background-image:url(stop-circle-outline.6623356d.svg);filter:var(--image-filters)}pluto-runarea.jump>button.runcell>span:after{background-image:url(arrow-redo-circle-outline.dfa899f4.svg);filter:var(--image-filters)}pluto-runarea.save>button.runcell>span:after{background-image:url(chevron-forward-circle-outline.babf2a99.svg);filter:var(--image-filters)}pluto-cell:not(.show_input)>pluto-runarea{display:none}pluto-cell.code_folded.show_input>pluto-input:not(:focus-within){opacity:.4}pluto-cell.code_differs>pluto-runarea,pluto-cell:focus-within>pluto-runarea{opacity:100%}pluto-cell.code_differs>pluto-runarea>button{animation-duration:4s;animation-iteration-count:infinite;animation-name:👀}@keyframes 👀{0%,80%,to{opacity:50%;transform:scale(1)}90%{opacity:100%;transform:scale(1.2)}}dropruler{background:var(--dropruler-bg-color);display:none;height:4px;left:0;margin-top:calc(-2px - var(--pluto-cell-spacing)*.5);position:absolute;right:0}#helpbox-wrapper{bottom:0;display:none;height:0;position:sticky;width:100%;z-index:50}@media (min-width:500px){#helpbox-wrapper{display:block}}pluto-helpbox{background-color:var(--helpbox-bg-color);border-bottom:none;border-right:none;border-top-left-radius:9px;border-top-right-radius:9px;bottom:0;box-shadow:0 0 11px 0 var(--helpbox-box-shadow-color);color:var(--helpbox-text-color);display:flex;flex-direction:column;height:95vh;height:min(70vh,900px);position:absolute;right:20px;width:calc(100vw - 781px);width:clamp(300px,calc(100vw - 781px),450px)}pluto-helpbox>section{display:flex;flex-direction:column;height:100%;overflow:auto;padding:10px}pluto-helpbox>header{--border-radius:0.4em;background-color:var(--helpbox-header-bg-color);border-top-left-radius:var(--border-radius);border-top-right-radius:var(--border-radius);color:var(--helpbox-header-color);display:flex;font-family:var(--system-ui-font-stack);font-size:.9rem;font-weight:500;gap:.5em;padding:.6em}pluto-helpbox>header>button.helpbox-tab-key>.tabicon{--size:1.1em;background-size:var(--size);display:inline-block;filter:var(--image-filters);height:var(--size);margin-bottom:calc(var(--size)*-.15);margin-right:.6em;width:var(--size)}pluto-helpbox>header>button.helpbox-docs>.tabicon{background-image:url(search.1ca5b3b3.svg)}pluto-helpbox>header>button.helpbox-process>.tabicon{background-image:url(terminal.6b804248.svg);background-image:url(pulse.27a877a7.svg)}pluto-helpbox>header>button.helpbox-tab-key:disabled>.tabicon{opacity:.5}pluto-helpbox .live-docs-searchbox{display:flex;margin:1em}pluto-helpbox .live-docs-searchbox input{background-color:inherit;background:var(--helpbox-search-bg-color);border:none;border:3px solid var(--helpbox-search-border-color);border-radius:.3em;color:inherit;flex-grow:1;font-family:var(--julia-mono-font-stack);font-size:.9rem;margin:auto;padding:.5em}pluto-helpbox .live-docs-searchbox.notfound input{color:var(--helpbox-notfound-search-color)}pluto-helpbox .live-docs-searchbox input:focus{outline:none}button.helpbox-tab-key{background:var(--helpbox-header-tab-bg-color);border:none;border-radius:var(--border-radius);cursor:pointer;font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;overflow:hidden;padding:.5em .6em;text-overflow:ellipsis;white-space:nowrap}button.helpbox-process.busy{outline:6px solid var(--process-busy)}@media (prefers-reduced-motion:no-preference){button.helpbox-process.busy{animation:outline-heartbeat .8s ease-in infinite;animation-direction:alternate}}@keyframes outline-heartbeat{0%{outline-offset:-1px;outline-width:3px}to{outline-offset:0;outline-width:6px}}button.active.helpbox-tab-key{animation:none;outline:3px solid #99afb9}pluto-helpbox>header>button.helpbox-close{background:none;border:15px solid transparent;cursor:pointer;margin:-15px -15px -15px auto}pluto-helpbox>header>button.helpbox-close>span{background-image:url(chevron-down-outline.1efaf1cc.svg);background-size:1em 1em;content:" "!important;display:block;filter:var(--image-filters);height:1em;width:1em}pluto-helpbox.hidden{height:auto;width:auto}pluto-helpbox.hidden>section{display:none}.helpbox-docs{font-family:var(--lato-ui-font-stack);font-size:.9rem;line-height:1.5}.helpbox-docs .cm-line,.helpbox-docs code,.helpbox-docs pre{font-family:Roboto Mono,SFMono-Regular,Menlo,Consolas,Liberation Mono,DejaVu Sans Mono,monospace;font-size:.95em;line-height:normal}.helpbox-docs pre code{font-size:1em}.helpbox-docs code .cm-editor .cm-content,.helpbox-docs pre code.hljs{padding:0}.helpbox-docs img{max-width:100%}.helpbox-docs>section h1,.helpbox-docs>section h2,.helpbox-docs>section h3,.helpbox-docs>section h4,.helpbox-docs>section h5,.helpbox-docs>section h6{border-bottom:none;font-family:inherit;font-size:1rem}.helpbox-docs>section h1{font-size:1.3rem;overflow-wrap:anywhere}.helpbox-docs>section pre{-webkit-overflow-scrolling:touch;word-wrap:normal;background:var(--code-section-bg-color);border:1px solid var(--code-section-border-color);border-radius:4px;overflow-x:auto;padding:.7rem .5rem;white-space:pre}.helpbox-docs>section hr{border:none;border-top:3px solid var(--rule-color)}.pluto-docs-binding{background:var(--docs-binding-bg);border-radius:1em;color:var(--pluto-output-color);margin:.5em;padding:1em}.pluto-docs-binding>span{background:var(--pluto-output-bg-color);border-radius:.4rem;color:var(--black);display:inline-block;font-family:var(--julia-mono-font-stack);font-size:.9rem;font-weight:700;margin-top:-1em;padding:.235rem;transform:translate(-1.2em,-73%)}.pluto-docs-binding h1{font-size:1.4em}.pluto-docs-binding h2{font-size:1.3em}.pluto-docs-binding h3,.pluto-docs-binding h4,.pluto-docs-binding h5,.pluto-docs-binding h6{font-size:1.1em}pl-status{--status-color:var(--process-undefined);--indent:0.7rem;border-left:3px solid transparent;border-radius:.2em;display:flex;flex:0 0 auto;flex-direction:column;font-family:var(--system-ui-font-stack);font-size:.9rem;margin-left:var(--indent);margin-top:.4em;overflow:hidden}pl-status:before{background:pink;bottom:3px;display:inline-block;flex:1 2 auto;height:10px;left:0;right:0;top:3px;width:3px}pl-status.busy{--status-color:var(--process-busy)}pl-status.finished{--status-color:var(--process-finished)}pl-status.failed{--status-color:var(--process-failed)}pl-status.can_open{border-color:#98989854;cursor:auto}pl-status.can_open>div{border-bottom-left-radius:0;border-top-left-radius:0;cursor:pointer}pl-status.can_open.is_open{border-color:var(--status-color)}pl-status[data-depth="0"],pl-status[data-depth="1"]{margin-left:0}pl-status>div{align-items:center;background:var(--process-item-bg);border-radius:.4em;display:flex;flex-direction:row;padding:.2em}pl-status>div>.status-icon{background-color:var(--status-color);border-radius:50%;content:"";display:inline-block;flex:0 0 auto;height:1em;margin:0 .5em;width:1em}pl-status.busy>div>.status-icon{animation:identifier-spin 1.7s linear infinite;border-color:transparent #7ab881 #7ab881 transparent;border-style:solid;border-width:3px}@keyframes identifier-spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.subprogress-counter{font-size:.8em;opacity:.5}pl-status .status-time{font-size:.7rem;font-variant-numeric:tabular-nums;margin-left:auto;opacity:.6;padding-left:.5em;padding-right:.5em}.discrete-progress-bar{align-items:stretch;background:var(--process-item-bg);border-radius:4px;contain:strict;display:flex;flex-direction:row;gap:2px;height:1em;padding:3px}.discrete-progress-bar>div{background:var(--process-undefined);border-radius:2px;flex:1 1 auto}.discrete-progress-bar>div.done{background:var(--process-finished)}.discrete-progress-bar>div.busy{background:var(--process-busy)}.discrete-progress-bar>div.failed{background:var(--process-failed)}.discrete-progress-bar.mid{gap:1px}.discrete-progress-bar.big{gap:0}pl-status pkg-terminal{margin-left:var(--indent)}pluto-helpbox.helpbox-process>section{padding-bottom:3.6rem}.notify-when-done{bottom:.3em;display:flex;font-family:var(--system-ui-font-stack);font-size:.8rem;font-weight:700;justify-content:center;left:0;opacity:0;position:absolute;right:0;transition:opacity .2s;user-select:none}.notify-when-done.visible{opacity:1}.notify-when-done.visible label{cursor:pointer}.notify-when-done label{align-items:center;background:var(--process-notify-bg);border-radius:1000px;box-shadow:0 3px 5px #0000003b;display:flex;padding:.3em .6em}.notify-when-done label:before{background-image:url(notifications-outline.aa91b431.svg);background-size:contain;content:"";display:inline-block;filter:var(--image-filters);height:1em;margin-bottom:-.2em;margin-right:.3em;width:1em}footer{background-color:var(--footer-bg-color);color:var(--footer-color);font-family:Roboto Mono,monospace;font-size:.75rem;min-height:3.5rem;width:100%;z-index:70}footer form{display:flex;flex-wrap:wrap;min-height:1.5rem;opacity:1;transition:opacity 5s}footer form>*{flex:0 0 auto}footer form>a,footer form>label{align-self:center}footer form>a,footer form>label{margin-right:1em}footer a{color:var(--footer-atag-color);font-weight:700;opacity:.6}@media (max-width:650px){footer form>label{display:none}}footer input{background:var(--white);border:2px solid var(--footer-input-border-color);border-radius:3px 0 0 3px;border-right:none;font-family:inherit;font-size:inherit;margin:0;padding:3px}footer button,header#pluto-nav pluto-filepicker button{background:var(--footer-filepicker-focus-color);border:3px solid var(--footer-filepicker-focus-color);border-radius:0 3px 3px 0;color:var(--footer-filepicker-button-color);font-family:inherit;font-size:.75rem;font-weight:600;height:auto;margin:0}footer #info{align-items:center;display:flex;flex-direction:row;justify-content:flex-end;margin:0 auto;max-width:9400px;padding:1rem;text-align:right}nav#undo_delete{background-color:var(--white);border-radius:3px;bottom:0;box-shadow:0 0 10px 2px var(--undo-delete-box-shadow-color);color:var(--black);display:block;font-family:Roboto Mono,monospace;font-size:.75rem;left:0;margin:.75rem;opacity:1;padding:.5rem;position:fixed;transition:box-shadow .2s linear,margin-bottom .2s ease-out,opacity .05s linear;z-index:2000}nav#undo_delete.hidden{box-shadow:0 0 10px -5px var(--undo-delete-box-shadow-color);margin-bottom:0;opacity:0;pointer-events:none}@keyframes shadow-fadeout{0%{box-shadow:0 0 10px 2px var(--undo-delete-box-shadow-color);opacity:1}80%{opacity:1}to{opacity:0}}pluto-logs-container{display:block;margin-right:1.3rem;max-height:50vh;overflow-x:hidden;overflow-y:auto;z-index:25}pluto-logs-container:not(:empty){background:var(--pluto-logs-bg-color);padding:6px}pluto-logs-container>header{font-family:Roboto Mono,monospace;font-size:1.3rem;font-weight:700;opacity:.6;padding:.2em .2em 0}pluto-logs-container pluto-progress-bars pluto-progress:not(:first-child){margin-top:10px}pluto-logs-container pluto-progress-bar{--c:var(--pluto-logs-progress-fill);align-items:center;background:linear-gradient(90deg,var(--c),var(--c));background-repeat:no-repeat;display:grid;padding:.3em .6em;transition:background-size .5s cubic-bezier(.14,.71,0,.99),opacity .2s linear;width:100%}pluto-logs-container pluto-progress-bar.collapsed{height:0}pluto-logs{display:flex;flex-direction:column}pluto-logs:not(:first-child):not(:empty){margin-top:10px}pluto-log-dot{display:flex;flex-direction:column;flex-grow:1;font-family:Roboto Mono,monospace;font-size:.6rem;min-height:18px;min-width:18px;padding:.6em .9em .6em .3em;position:relative}pluto-log-dot-positioner{--bg-color:var(--pluto-logs-info-color);--accent-color:var(--pluto-logs-info-accent-color);--icon-image:unset;background:var(--bg-color);background:linear-gradient(148deg,var(--bg-color),transparent);background-size:200% 100%;border-radius:6px;display:flex;flex-direction:row;margin:2px}pluto-log-dot>pre{color:var(--accent-color)}pluto-log-truncated{display:grid;font-family:var(--system-ui-font-stack);font-style:italic;opacity:.7;padding:.7em;place-items:center}pluto-log-icon:before{background-image:var(--icon-image);background-size:1em;content:"";display:inline-flex;filter:var(--image-filters);height:1em;margin:.3em;width:1em}pluto-log-dot-positioner.Info{--icon-image:url(information-circle-outline.008b2bb9.svg)}pluto-log-dot-positioner.Info pluto-log-icon:before{opacity:.4}pluto-log-dot-positioner.Warn{--bg-color:var(--pluto-logs-warn-color);--accent-color:var(--pluto-logs-warn-accent-color);--icon-image:url(warning-outline.d84ed9e8.svg)}pluto-log-dot-positioner.Error{--bg-color:var(--pluto-logs-danger-color);--accent-color:var(--pluto-logs-danger-accent-color);--icon-image:url(close-circle-outline.4baeedb9.svg)}pluto-log-dot-positioner.Debug{--bg-color:var(--pluto-logs-debug-color);--accent-color:var(--pluto-logs-debug-accent-color);--icon-image:url(information-circle-outline.008b2bb9.svg)}pluto-log-dot-positioner.Stdout{--icon-image:url(terminal-outline.79a23031.svg)}pluto-log-dot-positioner.Stdout pluto-log-icon:before{opacity:.4}pluto-log-dot.Progress{align-items:stretch;align-self:center;background:var(--pluto-logs-progress-bg);border-radius:6px;display:flex;flex:0 1 200px;flex-direction:row;font-size:.7rem;outline:3px solid var(--pluto-logs-progress-border);outline-offset:-2px;overflow:hidden;padding:0}pluto-log-dot.Stdout{--inner:#71624b;--outer:#50483f;background:radial-gradient(var(--inner),var(--inner) 20%,var(--outer));border:6px solid #b7b7b7;border-radius:8px;color:#c0ffab;min-width:18em;text-shadow:1px 1px 2px #0000005e}pluto-log-dot.Stdout:after,pluto-log-dot.Stdout:before{bottom:0;content:" ";display:block;left:0;pointer-events:none;position:absolute;right:0;top:0}pluto-log-dot.Stdout:before{background:linear-gradient(349deg,#000,transparent);opacity:.3}pluto-log-dot.Stdout:after{--crt-spacing:7px;animation:scroll-crt 1s linear infinite;animation-play-state:paused;background:linear-gradient(180deg,#534837,transparent,#1a1a1a);background-repeat:repeat;background-size:100% var(--crt-spacing);opacity:.2}pluto-log-dot.Stdout pre:before{content:" ";float:right;width:24px}a.stdout-info{pointer-events:auto;position:absolute;right:2px;top:2px;z-index:unset}@keyframes scroll-crt{0%{background-position:0 0}to{background-position:0 var(--crt-spacing)}}@media (prefers-reduced-motion:no-preference){pluto-log-dot.Stdout:hover:after{animation-play-state:running}}@media (prefers-contrast:more){pluto-log-dot.Stdout:after{display:none!important}}pluto-log-dot jlerror{background:var(--main-bg-color);border-radius:.5rem;display:block;padding:.6rem}pluto-log-dot jlpair,pluto-log-dot jltree{font-size:.6rem}pluto-log-dot>img{max-width:100px}pluto-log-dot-kwarg{display:flex;flex-direction:row;flex-wrap:wrap}pluto-log-dot-kwarg>*{flex:0 1 auto}pluto-log-dot-kwarg>pluto-key{color:var(--pluto-logs-key-color);margin-right:calc(1em - 30px)}pluto-log-dot-kwarg>pluto-key:after{content:": "}pluto-log-dot-kwarg>pluto-value{margin-left:30px;overflow-x:auto}body.presentation pluto-output h1,body.presentation pluto-output h2{margin-top:100vh}body.presentation pluto-notebook{padding-bottom:100vh}body.presentation #helpbox-wrapper{display:none!important}nav#slide_controls{display:none}body.presentation nav#slide_controls{bottom:0;display:flex;position:fixed;right:0;z-index:100}nav#slide_controls>button{padding:5px;position:static}button.floating_back_button>span:after,nav#slide_controls>button>span:after{background-size:30px 30px;content:" "!important;display:block;height:30px;width:30px}button.floating_back_button>span:after,nav#slide_controls>button.prev>span:after{background-image:url(arrow-back-outline.9ae1bed8.svg);filter:var(--image-filters)}nav#slide_controls>button.next>span:after{background-image:url(arrow-forward-outline.f5f68f5c.svg);filter:var(--image-filters)}button.floating_back_button{display:flex;left:1em;position:fixed;top:1em;z-index:1000}.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-lint{font-family:JuliaMono;font-size:.75rem;z-index:100}.cm-tooltip-autocomplete{box-sizing:content-box;max-height:320px;z-index:100}.cm-tooltip.cm-completionInfo.cm-completionInfo-right:empty{display:none}.cm-editor .cm-tooltip.cm-tooltip-autocomplete>ul>li{border-radius:3px;height:16px;line-height:16px;overflow-y:hidden}pluto-input .cm-editor .cm-tooltip.cm-tooltip-autocomplete>ul>li{height:unset}.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-tooltip.cm-tooltip-autocomplete>ul>li[aria-selected] .cm-completionLabel{border-color:transparent}.cm-editor .cm-tooltip.cm-tooltip-autocomplete>ul>li .cm-completionDetail{float:right;font-family:var(--julia-mono-font-stack);font-size:.8em;font-style:normal;margin-right:.5em}.cm-editor .cm-tooltip.cm-tooltip-autocomplete li.c_notexported{color:var(--cm-editor-li-notexported-color)}.cm-editor .cm-completionIcon{opacity:1;transform:translateY(-1.5px);width:1em}.cm-completionIcon:before{color:transparent;content:"⚫";font-family:var(--julia-mono-font-stack)!important;font-size:.75rem;margin-right:.5em;opacity:1}[data-pluto-variable]{font-weight:inherit}.cm-editor .cm-tooltip.cm-tooltip-autocomplete li.c_from_notebook .cm-completionLabel,[data-pluto-variable],[data-pluto-variable]:hover{font-weight:700;text-decoration:underline;text-decoration-color:var(--cm-clickable-underline);text-decoration-skip-ink:none;text-decoration-thickness:3px}body.disable_ui [data-cell-variable],body.disable_ui [data-pluto-variable]{cursor:pointer}body:not(.disable_ui) [data-ctrl-down=true][data-cell-variable],body:not(.disable_ui) [data-ctrl-down=true][data-pluto-variable]{cursor:pointer;text-decoration-color:#d177e6}body:not(.disable_ui) [data-ctrl-down=true][data-pluto-variable]:hover,body:not(.disable_ui) [data-ctrl-down=true][data-pluto-variable]:hover *{color:transparent!important;text-shadow:0 0 #af5bc3}[data-cell-variable]{text-decoration:none}[data-ctrl-down=true][data-cell-variable]:hover *{color:transparent!important;text-shadow:0 0 #af5bc3}.cm-tooltip.cm-tooltip-autocomplete{background:var(--autocomplete-menu-bg-color);margin-left:-1.5em;padding:0}pluto-input .cm-editor .cm-scroller{overflow-y:hidden}.cm-editor .cm-tooltip-autocomplete .cm-completionLabel,pluto-input .cm-editor .cm-content,pluto-input .cm-editor .cm-scroller{font-family:var(--julia-mono-font-stack)!important;font-size:.75rem;font-variant-ligatures:none}pluto-input .cm-editor .cm-content{padding:2px 0}.cm-editor .cm-scroller>.cm-selectionLayer .cm-selectionBackground{background:var(--cm-selection-background-blurred)}.cm-editor.cm-focused .cm-scroller>.cm-selectionLayer .cm-selectionBackground{background:var(--cm-selection-background)}.cm-editor{background:var(--code-background);color:var(--cm-editor-text-color)}.cm-editor.cm-focused:not(.__){outline:unset}.cm-editor .cm-gutter{min-height:23px;min-width:31px}.cm-editor .cm-gutters{background:transparent;border-right:1px solid transparent}pluto-cell.code_differs .cm-editor .cm-gutters{background-color:var(--cm-code-differs-gutters-color)}.cm-editor .cm-lineNumbers .cm-gutterElement{color:transparent}.cm-editor .cm-lineNumbers .cm-gutterElement:after{color:var(--cm-line-numbers-color);content:"⋅";font-size:.75rem;pointer-events:none;position:absolute;right:3px}.cm-editor .cm-lineNumbers .cm-gutterElement:hover{color:var(--cm-line-numbers-color)}.cm-editor .cm-lineNumbers .cm-gutterElement:hover:after{color:transparent}pluto-cell.errored .cm-editor .cm-lineNumbers .cm-gutterElement{color:var(--cm-line-numbers-color)}pluto-cell.errored .cm-editor .cm-lineNumbers .cm-gutterElement:after{color:transparent}@media print{.cm-editor .cm-lineNumbers .cm-gutterElement{color:var(--cm-line-numbers-color)!important}.cm-editor .cm-lineNumbers .cm-gutterElement:after{color:transparent!important}}.cm-completionIcon-c_Number:before{color:var(--cm-number-color)}.cm-completionIcon-c_String:before,.cm-completionIcon-completion_dict:before,.cm-completionIcon-completion_path:before{color:var(--cm-string-color)}.cm-completionIcon-completion_property:before{color:var(--cm-property-color)}.cm-completionIcon-completion_keyword:before{color:var(--cm-keyword-color)}li.completion_keyword_argument .cm-completionLabel{font-style:italic;font-weight:700}.cm-completionIcon-completion_keyword_argument:before{color:var(--cm-number-color)}.cm-completionIcon-c_Any:before,pluto-output>assignee,pluto-popup code.auto_disabled_variable{color:var(--cm-var-color)!important;font-weight:700}.cm-completionIcon-c_Function:before{color:var(--cm-function-color)}.cm-completionIcon-c_Macro:before{color:var(--cm-macro-color)}.cm-completionIcon-c_Array:before{color:var(--cm-bracket-color)}.cm-completionIcon-c_Module:before,.cm-completionIcon-c_package:before{color:var(--cm-link-color)}.cm-editor .cm-activeLine{background:unset}.cm-selectionMatch{background:none!important;text-shadow:0 0 8px rgba(0,0,0,.5)}@media (prefers-color-scheme:dark){.cm-selectionMatch{background:none!important;text-shadow:0 0 8px hsla(0,0%,100%,.5)}}.cm-editor .cm-matchingBracket,.cm-editor .cm-nonmatchingBracket{background-color:unset;color:unset}pluto-input:focus-within .cm-editor .cm-matchingBracket{background-color:var(--cm-matchingBracket-bg-color);border-radius:2px;color:var(--cm-matchingBracket-color)!important;font-weight:700}.cm-editor .cm-placeholder{color:var(--cm-placeholder-text-color);font-style:italic}.cm-completionMatchedText{text-decoration:unset!important}.awesome-wrapping-plugin-the-line{--correction:0px;margin-left:calc(var(--indented));text-indent:calc(var(--indented)*-1)}.awesome-wrapping-plugin-the-line>*{text-indent:0}.awesome-wrapping-plugin-the-tabs{margin-left:-1px;vertical-align:top;white-space:pre}pluto-cell.hooked_up{--pluto-cell-force-color:#00b9ff7a}pluto-cell.hooked_up pluto-trafficlight{background-color:var(--pluto-cell-force-color)!important}pluto-cell.hooked_up pluto-input .cm-editor{border-color:var(--pluto-cell-force-color);border-width:2px;border-left:none;border-top:none}pluto-cell.hooked_up>pluto-runarea{background-color:var(--pluto-cell-force-color);opacity:1}pluto-cell.hooked_up pluto-runarea>span{color:#0000004f}pluto-cell.hooked_up pluto-output{border-bottom:2px solid;border-right:2px solid;border-color:var(--pluto-cell-force-color);border-top:2px solid;border-top-color:var(--pluto-cell-force-color);border-top-right-radius:4px}.fm-table{display:grid;gap:.3em 1em;grid-template-columns:auto 1fr min-content}.pluto-frontmatter{background:var(--export-bg-color);border-radius:1em;color:var(--export-color);font-family:var(--system-ui-font-stack);padding:1em 1.5em;width:min(31rem,90vw)}.pluto-frontmatter .card-preview{background:var(--white);border-radius:1rem;box-shadow:inset 0 0 15px -4px #00000054;margin:1rem 0;padding:1.2rem 1.1rem}.pluto-frontmatter .card-preview>h2{color:var(--black);margin-block-start:0}.pluto-frontmatter button{background-color:var(--frontmatter-button-bg-color);border:2px solid var(--frontmatter-button-bg-color);border-radius:.5em;cursor:pointer;font-weight:500}.pluto-frontmatter button:hover{border-color:var(--frontmatter-input-border-color)}.pluto-frontmatter input{background-color:var(--frontmatter-input-bg-color);border:2px solid var(--frontmatter-input-border-color);border-radius:.5em;padding:.3em .5em}.pluto-frontmatter rbl-tag-input{color:var(--black)}.pluto-frontmatter label{font-weight:500}.pluto-frontmatter .deletefield{align-self:stretch;background-color:transparent;border-width:0;color:var(--export-color);margin-left:-1em}.pluto-frontmatter .addentry{grid-column:1/3;margin-top:.5em}.pluto-frontmatter fieldset{grid-column:1/4}.pluto-frontmatter .final{display:flex;gap:.5em;justify-content:flex-end;margin-top:2rem} \ No newline at end of file diff --git a/frontend-dist/editor.52bd66ba.css b/frontend-dist/editor.52bd66ba.css new file mode 100644 index 0000000000..f1d61cc1f9 --- /dev/null +++ b/frontend-dist/editor.52bd66ba.css @@ -0,0 +1 @@ +main{cursor:auto;margin-top:20px}#helpbox-wrapper,body header#pluto-nav,footer,pluto-cell>button,pluto-input>button,pluto-runarea,pluto-shoulder,preamble>button{display:none!important}@media print{.edit_or_run,.floating_back_button,.loading-bar,.MJX_HoverRegion,.MJX_LiveRegion,.MJX_ToolTip,.outline-frame,.outline-frame-actions-container,.pluto-frontmatter,nav#undo_delete,pkg-status-mark{display:none!important}main{padding-bottom:0}pluto-input .cm-editor{border-left:1px solid var(--normal-cell-color);border-radius:4px!important}pluto-cell{break-inside:avoid}pluto-cell.code_folded:has(p){break-inside:auto}pluto-output>div>div.markdown>hr,pluto-output>div>div>hr{break-after:page;height:0;margin:0;visibility:hidden}pluto-output h1{break-before:page}pluto-cell:first-of-type pluto-output h1{break-before:avoid}pluto-output :is(.admonition,.pluto-docs-binding,blockquote) h1{break-before:avoid}pluto-output :is(h1,h2,h3,h4){break-after:avoid}}@page{widows:2} \ No newline at end of file diff --git a/frontend-dist/editor.6386bd9d.js b/frontend-dist/editor.6386bd9d.js new file mode 100644 index 0000000000..dd344f6c83 --- /dev/null +++ b/frontend-dist/editor.6386bd9d.js @@ -0,0 +1,8 @@ +/*! iFrame Resizer (iframeSizer.contentWindow.min.js) - v4.2.11 - 2020-06-02 + * Desc: Include this file in any page being loaded into an iframe + * to force the iframe to resize to the content size. + * Requires: iframeResizer.min.js on host page. + * Copyright: (c) 2020 David J. Bradshaw - dave@bradshaw.net + * License: MIT + */ +!function(e){if("undefined"!=typeof window){var t=!0,n=10,o="",i=0,r="",a=null,u="",c=!1,s={resize:1,click:1},d=128,l=!0,f=1,m="bodyOffset",h=m,g=!0,p="",v={},y=32,b=null,w=!1,T="[iFrameSizer]",E=T.length,O="",S={max:1,min:1,bodyScroll:1,documentElementScroll:1},M="child",I=!0,N=window.parent,A="*",C=0,z=!1,k=null,R=16,x=1,L="scroll",F=L,P=window,D=function(){re("onMessage function not defined")},j=function(){},q=function(){},H={height:function(){return re("Custom height calculation function not defined"),document.documentElement.offsetHeight},width:function(){return re("Custom width calculation function not defined"),document.body.scrollWidth}},W={},B=!1;try{var J=Object.create({},{passive:{get:function(){B=!0}}});window.addEventListener("test",ee,J),window.removeEventListener("test",ee,J)}catch(e){}var U,V,K,Q,X,Y,G=Date.now||function(){return(new Date).getTime()},Z={bodyOffset:function(){return document.body.offsetHeight+pe("marginTop")+pe("marginBottom")},offset:function(){return Z.bodyOffset()},bodyScroll:function(){return document.body.scrollHeight},custom:function(){return H.height()},documentElementOffset:function(){return document.documentElement.offsetHeight},documentElementScroll:function(){return document.documentElement.scrollHeight},max:function(){return Math.max.apply(null,ye(Z))},min:function(){return Math.min.apply(null,ye(Z))},grow:function(){return Z.max()},lowestElement:function(){return Math.max(Z.bodyOffset()||Z.documentElementOffset(),ve("bottom",we()))},taggedElement:function(){return be("bottom","data-iframe-height")}},$={bodyScroll:function(){return document.body.scrollWidth},bodyOffset:function(){return document.body.offsetWidth},custom:function(){return H.width()},documentElementScroll:function(){return document.documentElement.scrollWidth},documentElementOffset:function(){return document.documentElement.offsetWidth},scroll:function(){return Math.max($.bodyScroll(),$.documentElementScroll())},max:function(){return Math.max.apply(null,ye($))},min:function(){return Math.min.apply(null,ye($))},rightMostElement:function(){return ve("right",we())},taggedElement:function(){return be("right","data-iframe-width")}},_=(U=Te,X=null,Y=0,function(){var e=G(),t=R-(e-(Y=Y||e));return V=this,K=arguments,t<=0||Rf[g]["max"+e])throw new Error("Value for min"+e+" can not be greater than max"+e)}g in f&&"iFrameResizer"in n?I(g,"Ignored iFrame, already setup."):(l=(l=o)||{},f[g]={firstRun:!0,iframe:n,remoteHost:n.src&&n.src.split("/").slice(0,3).join("/")},function(e){if("object"!=typeof e)throw new TypeError("Options is not an object")}(l),Object.keys(l).forEach((function(e){var n=e.split("Callback");if(2===n.length){var i="on"+n[0].charAt(0).toUpperCase()+n[0].slice(1);this[i]=this[e],delete this[e],I(g,"Deprecated: '"+e+"' has been renamed '"+i+"'. The old method will be removed in the next major version.")}}),l),function(e){for(var n in m)Object.prototype.hasOwnProperty.call(m,n)&&(f[g][n]=Object.prototype.hasOwnProperty.call(e,n)?e[n]:m[n])}(l),f[g]&&(f[g].targetOrigin=!0===f[g].checkOrigin?function(e){return""===e||null!==e.match(/^(about:blank|javascript:|file:\/\/)/)?"*":e}(f[g].remoteHost):"*"),function(){switch(y(g,"IFrame scrolling "+(f[g]&&f[g].scrolling?"enabled":"disabled")+" for "+g),n.style.overflow=!1===(f[g]&&f[g].scrolling)?"hidden":"auto",f[g]&&f[g].scrolling){case"omit":break;case!0:n.scrolling="yes";break;case!1:n.scrolling="no";break;default:n.scrolling=f[g]?f[g].scrolling:"no"}}(),b("Height"),b("Width"),p("maxHeight"),p("minHeight"),p("maxWidth"),p("minWidth"),"number"!=typeof(f[g]&&f[g].bodyMargin)&&"0"!==(f[g]&&f[g].bodyMargin)||(f[g].bodyMarginV1=f[g].bodyMargin,f[g].bodyMargin=f[g].bodyMargin+"px"),s=S(g),(c=h())&&(d=c,n.parentNode&&new d((function(e){e.forEach((function(e){Array.prototype.slice.call(e.removedNodes).forEach((function(e){e===n&&z(n)}))}))})).observe(n.parentNode,{childList:!0})),w(n,"load",(function(){N("iFrame.onload",s,n,e,!0),function(){var e=f[g]&&f[g].firstRun,i=f[g]&&f[g].heightCalculationMethod in u;!e&&i&&E({iframe:n,height:0,width:0,type:"init"})}()})),N("init",s,n,e,!0),f[g]&&(f[g].iframe.iFrameResizer={close:z.bind(null,f[g].iframe),removeListeners:k.bind(null,f[g].iframe),resize:N.bind(null,"Window resize","resize",f[g].iframe),moveToAnchor:function(e){N("Move to anchor","moveToAnchor:"+e,f[g].iframe,g)},sendMessage:function(e){N("Send Message","message:"+(e=JSON.stringify(e)),f[g].iframe,g)}}))}function j(e,n){null===l&&(l=setTimeout((function(){l=null,e()}),n))}function P(){"hidden"!==document.visibilityState&&(y("document","Trigger event: Visiblity change"),j((function(){A("Tab Visable","resize")}),16))}function A(e,n){Object.keys(f).forEach((function(i){!function(e){return f[e]&&"parent"===f[e].resizeFrom&&f[e].autoResize&&!f[e].firstRun}(i)||N(e,n,f[i].iframe,i)}))}function B(){function n(e,n){n&&(function(){if(!n.tagName)throw new TypeError("Object is not a valid DOM element");if("IFRAME"!==n.tagName.toUpperCase())throw new TypeError("Expected `},Il=async({environment:e,code:t})=>{const n=`"use strict"; return (async () => {${t}})()`;let{this:o,...a}=e,r=Object.keys(a),i=Object.values(a);return await Function(...r,n).bind(o)(...i)},Pl=0,jl=async(e,t)=>{let n=document.createElement("script");for(let t of e.attributes)n.attributes.setNamedItem(t.cloneNode(!0));const o=`____FUNCTION_TO_RUN_INSIDE_SCRIPT_${Pl}`;n.textContent=`{\n window.${o}.result = window.${o}.function_to_run(window.${o}.currentScript)\n }`,window[o]={function_to_run:t,currentScript:n,result:null};const a=e.parentNode;if(null==a)throw"Failed to execute script it has no parent in DOM.";a.replaceChild(n,e);let r=await window[o].result;return window[o]={function_to_run:t,result:null},{node:n,result:r}};const Bl=e=>e instanceof Element&&e.nodeType===Node.ELEMENT_NODE;let Ul=e=>e(),Fl=e=>{try{const t=e.getAttribute("shadowroot"),n=e.parentElement.attachShadow({mode:t});n.appendChild(e.content),e.remove();return Array.from(n.querySelectorAll("script, template[shadowroot]")).flatMap((e=>"SCRIPT"===e.nodeName?[e]:"TEMPLATE"===e.nodeName?Fl(e):void 0))}catch(t){return console.error("Couldn't attach declarative shadow dom to",e,"because of",t),[]}},zl=({body:e,className:t="",persist_js_state:n=!1,last_run_timestamp:o,sanitize_html:a=!0,sanitize_html_message:r=!0})=>{let l=i.useContext(ye),s=i.useContext(we),c=i.useContext(ke),d=i.useRef(new Map),u=i.useRef((()=>{})),p=i.useRef(null);return i.useLayoutEffect((()=>{p.current&&s&&Fr(p.current.querySelectorAll("bond"),s)}),[e,n,l,s,a]),i.useLayoutEffect((()=>{const t=p.current;if(null==t)return;let o=new Promise((e=>{u.current=()=>{e(null)}}));document.createElement("p-dumpster").append(...t.childNodes);let m=a?$t.sanitize(e,{FORBID_TAGS:["style"],ADD_ATTR:["target"]}):e;if(t.innerHTML=m,r&&m!==e){const n=new DOMParser,o=n.parseFromString(e,"text/html");if(n.parseFromString(m,"text/html").documentElement.innerHTML!==o.documentElement.innerHTML){console.info("HTML sanitized",{body:e,html_content_to_set:m});let n=document.createElement("div");n.innerHTML='
\nScripts and styles not rendered in Safe preview\n
',t.prepend(n)}}if(a)return;const g=[...Array.from(t.querySelectorAll("template[shadowroot]")).flatMap((e=>Fl(e))),...Array.from(t.querySelectorAll("script"))];return Ul((async()=>{try{var e;if(null==c||c.add(t),d.current=await(async({root_node:e,script_nodes:t,previous_results_map:n,invalidation:o,pluto_actions:a})=>{let r=new Map;for(let e of t)if(null!=e.src&&""!==e.src);else{let t=e.id,o=t?n.get(t):null;Bl(o)&&(null===(l=e.parentElement)||void 0===l||l.insertBefore(o,e))}for(let s of t){if(Pl+=1,null!=s.src&&""!==s.src){let e=Array.from(document.head.querySelectorAll("script")).find((e=>e.src===s.src));null==e&&(e=document.createElement("script"),e.referrerPolicy=s.referrerPolicy,e.crossOrigin=s.crossOrigin,e.integrity=s.integrity,e.noModule=s.noModule,e.nonce=s.nonce,e.type=s.type,e.src=s.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=s.innerText,c=s.id,d=c?n.get(c):null;if("module"===s.type&&console.warn("We don't (yet) fully support
\ No newline at end of file diff --git a/frontend-dist/ellipsis-horizontal-circle-outline.6279ed30.svg b/frontend-dist/ellipsis-horizontal-circle-outline.6279ed30.svg new file mode 100644 index 0000000000..4b8d05ea8e --- /dev/null +++ b/frontend-dist/ellipsis-horizontal-circle-outline.6279ed30.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend-dist/ellipsis-horizontal-outline.abb6e818.svg b/frontend-dist/ellipsis-horizontal-outline.abb6e818.svg new file mode 100644 index 0000000000..bf94f28aca --- /dev/null +++ b/frontend-dist/ellipsis-horizontal-outline.abb6e818.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend-dist/ellipsis-horizontal.c9a6cc29.svg b/frontend-dist/ellipsis-horizontal.c9a6cc29.svg new file mode 100644 index 0000000000..5df322580b --- /dev/null +++ b/frontend-dist/ellipsis-horizontal.c9a6cc29.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend-dist/ellipsis-vertical.a30e7430.svg b/frontend-dist/ellipsis-vertical.a30e7430.svg new file mode 100644 index 0000000000..27f793a2cb --- /dev/null +++ b/frontend-dist/ellipsis-vertical.a30e7430.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend-dist/error.jl.html b/frontend-dist/error.jl.html new file mode 100644 index 0000000000..7c839e6848 --- /dev/null +++ b/frontend-dist/error.jl.html @@ -0,0 +1 @@ +$TITLE$STYLE

$TITLE

$ADVICE


Go back


$BODYTITLE

$BODY
\ No newline at end of file diff --git a/frontend-dist/eye-off-outline.a37e03db.svg b/frontend-dist/eye-off-outline.a37e03db.svg new file mode 100644 index 0000000000..4a7e915939 --- /dev/null +++ b/frontend-dist/eye-off-outline.a37e03db.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend-dist/eye-outline.6e6e0f7c.svg b/frontend-dist/eye-outline.6e6e0f7c.svg new file mode 100644 index 0000000000..6901ef405b --- /dev/null +++ b/frontend-dist/eye-outline.6e6e0f7c.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend-dist/favicon-16x16.347d2855.png b/frontend-dist/favicon-16x16.347d2855.png new file mode 100644 index 0000000000..bd77b08001 Binary files /dev/null and b/frontend-dist/favicon-16x16.347d2855.png differ diff --git a/frontend-dist/favicon-32x32.8789add4.png b/frontend-dist/favicon-32x32.8789add4.png new file mode 100644 index 0000000000..96580877eb Binary files /dev/null and b/frontend-dist/favicon-32x32.8789add4.png differ diff --git a/frontend-dist/favicon-96x96.48689391.png b/frontend-dist/favicon-96x96.48689391.png new file mode 100644 index 0000000000..1d5d57d5b2 Binary files /dev/null and b/frontend-dist/favicon-96x96.48689391.png differ diff --git a/frontend-dist/favicon_unsaturated.d1387b25.svg b/frontend-dist/favicon_unsaturated.d1387b25.svg new file mode 100644 index 0000000000..ccc316f314 --- /dev/null +++ b/frontend-dist/favicon_unsaturated.d1387b25.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend-dist/firebase-app.15ba8989.js b/frontend-dist/firebase-app.15ba8989.js new file mode 100644 index 0000000000..3fd269f442 --- /dev/null +++ b/frontend-dist/firebase-app.15ba8989.js @@ -0,0 +1,279 @@ +var e="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{};function t(e,t,r,n){Object.defineProperty(e,t,{get:r,set:n,enumerable:!0,configurable:!0})}var r=e.parcelRequire94c2;r.register("8WRsO",(function(n,a){t(n.exports,"FirebaseError",(()=>g)),t(n.exports,"_DEFAULT_ENTRY_NAME",(()=>X)),t(n.exports,"_apps",(()=>Q)),t(n.exports,"_components",(()=>ee)),t(n.exports,"_addComponent",(()=>te)),t(n.exports,"_addOrOverwriteComponent",(()=>re)),t(n.exports,"_registerComponent",(()=>ne)),t(n.exports,"_getProvider",(()=>ae)),t(n.exports,"_removeServiceInstance",(()=>ie)),t(n.exports,"_clearComponents",(()=>se)),t(n.exports,"SDK_VERSION",(()=>he)),t(n.exports,"initializeApp",(()=>le)),t(n.exports,"getApp",(()=>de)),t(n.exports,"getApps",(()=>ue)),t(n.exports,"deleteApp",(()=>fe)),t(n.exports,"registerVersion",(()=>pe)),t(n.exports,"onLog",(()=>ge)),t(n.exports,"setLogLevel",(()=>me));var i=r("fnbc9"); +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */const s=function(e){const t=[];let r=0;for(let n=0;n>6|192,t[r++]=63&a|128):55296==(64512&a)&&n+1>18|240,t[r++]=a>>12&63|128,t[r++]=a>>6&63|128,t[r++]=63&a|128):(t[r++]=a>>12|224,t[r++]=a>>6&63|128,t[r++]=63&a|128)}return t},o={byteToCharMap_:null,charToByteMap_:null,byteToCharMapWebSafe_:null,charToByteMapWebSafe_:null,ENCODED_VALS_BASE:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",get ENCODED_VALS(){return this.ENCODED_VALS_BASE+"+/="},get ENCODED_VALS_WEBSAFE(){return this.ENCODED_VALS_BASE+"-_."},HAS_NATIVE_SUPPORT:"function"==typeof atob,encodeByteArray(e,t){if(!Array.isArray(e))throw Error("encodeByteArray takes an array as a parameter");this.init_();const r=t?this.byteToCharMapWebSafe_:this.byteToCharMap_,n=[];for(let t=0;t>2,l=(3&a)<<4|s>>4;let d=(15&s)<<2|c>>6,u=63&c;o||(u=64,i||(d=64)),n.push(r[h],r[l],r[d],r[u])}return n.join("")},encodeString(e,t){return this.HAS_NATIVE_SUPPORT&&!t?btoa(e):this.encodeByteArray(s(e),t)},decodeString(e,t){return this.HAS_NATIVE_SUPPORT&&!t?atob(e):function(e){const t=[];let r=0,n=0;for(;r191&&a<224){const i=e[r++];t[n++]=String.fromCharCode((31&a)<<6|63&i)}else if(a>239&&a<365){const i=((7&a)<<18|(63&e[r++])<<12|(63&e[r++])<<6|63&e[r++])-65536;t[n++]=String.fromCharCode(55296+(i>>10)),t[n++]=String.fromCharCode(56320+(1023&i))}else{const i=e[r++],s=e[r++];t[n++]=String.fromCharCode((15&a)<<12|(63&i)<<6|63&s)}}return t.join("")}(this.decodeStringToByteArray(e,t))},decodeStringToByteArray(e,t){this.init_();const r=t?this.charToByteMapWebSafe_:this.charToByteMap_,n=[];for(let t=0;t>4;if(n.push(h),64!==s){const e=i<<4&240|s>>2;if(n.push(e),64!==o){const e=s<<6&192|o;n.push(e)}}}return n},init_(){if(!this.byteToCharMap_){this.byteToCharMap_={},this.charToByteMap_={},this.byteToCharMapWebSafe_={},this.charToByteMapWebSafe_={};for(let e=0;e=this.ENCODED_VALS_BASE.length&&(this.charToByteMap_[this.ENCODED_VALS_WEBSAFE.charAt(e)]=e,this.charToByteMapWebSafe_[this.ENCODED_VALS.charAt(e)]=e)}}};class c extends Error{constructor(){super(...arguments),this.name="DecodeBase64StringError"}}const h=function(e){return function(e){const t=s(e);return o.encodeByteArray(t,!0)}(e).replace(/\./g,"")}; +/** + * @license + * Copyright 2022 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +const l=()=> +/** + * @license + * Copyright 2022 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +function(){if("undefined"!=typeof self)return self;if("undefined"!=typeof window)return window;if(void 0!==e)return e;throw new Error("Unable to locate global object.")}().__FIREBASE_DEFAULTS__,d=()=>{if("undefined"==typeof document)return;let e;try{e=document.cookie.match(/__FIREBASE_DEFAULTS__=([^;]+)/)}catch(e){return}const t=e&&function(e){try{return o.decodeString(e,!0)}catch(e){console.error("base64Decode failed: ",e)}return null}(e[1]);return t&&JSON.parse(t)},u=()=>{try{return l()||(()=>{if(void 0===i||void 0===i.env)return})()||d()}catch(e){return void console.info(`Unable to get __FIREBASE_DEFAULTS__ due to: ${e}`)}},f=()=>{var e;return null===(e=u())||void 0===e?void 0:e.config}; +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class p{constructor(){this.reject=()=>{},this.resolve=()=>{},this.promise=new Promise(((e,t)=>{this.resolve=e,this.reject=t}))}wrapCallback(e){return(t,r)=>{t?this.reject(t):this.resolve(r),"function"==typeof e&&(this.promise.catch((()=>{})),1===e.length?e(t):e(t,r))}}}class g extends Error{constructor(e,t,r){super(t),this.code=e,this.customData=r,this.name="FirebaseError",Object.setPrototypeOf(this,g.prototype),Error.captureStackTrace&&Error.captureStackTrace(this,m.prototype.create)}}class m{constructor(e,t,r){this.service=e,this.serviceName=t,this.errors=r}create(e,...t){const r=t[0]||{},n=`${this.service}/${e}`,a=this.errors[e],i=a?function(e,t){return e.replace(b,((e,r)=>{const n=t[r];return null!=n?String(n):`<${r}?>`}))}(a,r):"Error",s=`${this.serviceName}: ${i} (${n}).`;return new g(n,s,r)}}const b=/\{\$([^}]+)}/g;function v(e,t){if(e===t)return!0;const r=Object.keys(e),n=Object.keys(t);for(const a of r){if(!n.includes(a))return!1;const r=e[a],i=t[a];if(E(r)&&E(i)){if(!v(r,i))return!1}else if(r!==i)return!1}for(const e of n)if(!r.includes(e))return!1;return!0}function E(e){return null!==e&&"object"==typeof e}class _{constructor(e,t,r){this.name=e,this.instanceFactory=t,this.type=r,this.multipleInstances=!1,this.serviceProps={},this.instantiationMode="LAZY",this.onInstanceCreated=null}setInstantiationMode(e){return this.instantiationMode=e,this}setMultipleInstances(e){return this.multipleInstances=e,this}setServiceProps(e){return this.serviceProps=e,this}setInstanceCreatedCallback(e){return this.onInstanceCreated=e,this}} +/** + * @license + * Copyright 2019 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */const y="[DEFAULT]"; +/** + * @license + * Copyright 2019 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */class w{constructor(e,t){this.name=e,this.container=t,this.component=null,this.instances=new Map,this.instancesDeferred=new Map,this.instancesOptions=new Map,this.onInitCallbacks=new Map}get(e){const t=this.normalizeInstanceIdentifier(e);if(!this.instancesDeferred.has(t)){const e=new p;if(this.instancesDeferred.set(t,e),this.isInitialized(t)||this.shouldAutoInitialize())try{const r=this.getOrInitializeService({instanceIdentifier:t});r&&e.resolve(r)}catch(e){}}return this.instancesDeferred.get(t).promise}getImmediate(e){var t;const r=this.normalizeInstanceIdentifier(null==e?void 0:e.identifier),n=null!==(t=null==e?void 0:e.optional)&&void 0!==t&&t;if(!this.isInitialized(r)&&!this.shouldAutoInitialize()){if(n)return null;throw Error(`Service ${this.name} is not available`)}try{return this.getOrInitializeService({instanceIdentifier:r})}catch(e){if(n)return null;throw e}}getComponent(){return this.component}setComponent(e){if(e.name!==this.name)throw Error(`Mismatching Component ${e.name} for Provider ${this.name}.`);if(this.component)throw Error(`Component for ${this.name} has already been provided`);if(this.component=e,this.shouldAutoInitialize()){if(function(e){return"EAGER"===e.instantiationMode} +/** + * @license + * Copyright 2019 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */(e))try{this.getOrInitializeService({instanceIdentifier:y})}catch(e){}for(const[e,t]of this.instancesDeferred.entries()){const r=this.normalizeInstanceIdentifier(e);try{const e=this.getOrInitializeService({instanceIdentifier:r});t.resolve(e)}catch(e){}}}}clearInstance(e="[DEFAULT]"){this.instancesDeferred.delete(e),this.instancesOptions.delete(e),this.instances.delete(e)}async delete(){const e=Array.from(this.instances.values());await Promise.all([...e.filter((e=>"INTERNAL"in e)).map((e=>e.INTERNAL.delete())),...e.filter((e=>"_delete"in e)).map((e=>e._delete()))])}isComponentSet(){return null!=this.component}isInitialized(e="[DEFAULT]"){return this.instances.has(e)}getOptions(e="[DEFAULT]"){return this.instancesOptions.get(e)||{}}initialize(e={}){const{options:t={}}=e,r=this.normalizeInstanceIdentifier(e.instanceIdentifier);if(this.isInitialized(r))throw Error(`${this.name}(${r}) has already been initialized`);if(!this.isComponentSet())throw Error(`Component ${this.name} has not been registered yet`);const n=this.getOrInitializeService({instanceIdentifier:r,options:t});for(const[e,t]of this.instancesDeferred.entries()){r===this.normalizeInstanceIdentifier(e)&&t.resolve(n)}return n}onInit(e,t){var r;const n=this.normalizeInstanceIdentifier(t),a=null!==(r=this.onInitCallbacks.get(n))&&void 0!==r?r:new Set;a.add(e),this.onInitCallbacks.set(n,a);const i=this.instances.get(n);return i&&e(i,n),()=>{a.delete(e)}}invokeOnInitCallbacks(e,t){const r=this.onInitCallbacks.get(t);if(r)for(const n of r)try{n(e,t)}catch(e){}}getOrInitializeService({instanceIdentifier:e,options:t={}}){let r=this.instances.get(e);if(!r&&this.component&&(r=this.component.instanceFactory(this.container,{instanceIdentifier:(n=e,n===y?void 0:n),options:t}),this.instances.set(e,r),this.instancesOptions.set(e,t),this.invokeOnInitCallbacks(r,e),this.component.onInstanceCreated))try{this.component.onInstanceCreated(this.container,e,r)}catch(e){}var n;return r||null}normalizeInstanceIdentifier(e="[DEFAULT]"){return this.component?this.component.multipleInstances?e:y:e}shouldAutoInitialize(){return!!this.component&&"EXPLICIT"!==this.component.instantiationMode}}class I{constructor(e){this.name=e,this.providers=new Map}addComponent(e){const t=this.getProvider(e.name);if(t.isComponentSet())throw new Error(`Component ${e.name} has already been registered with ${this.name}`);t.setComponent(e)}addOrOverwriteComponent(e){this.getProvider(e.name).isComponentSet()&&this.providers.delete(e.name),this.addComponent(e)}getProvider(e){if(this.providers.has(e))return this.providers.get(e);const t=new w(e,this);return this.providers.set(e,t),t}getProviders(){return Array.from(this.providers.values())}} +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */const D=[];var S,C;(C=S||(S={}))[C.DEBUG=0]="DEBUG",C[C.VERBOSE=1]="VERBOSE",C[C.INFO=2]="INFO",C[C.WARN=3]="WARN",C[C.ERROR=4]="ERROR",C[C.SILENT=5]="SILENT";const A={debug:S.DEBUG,verbose:S.VERBOSE,info:S.INFO,warn:S.WARN,error:S.ERROR,silent:S.SILENT},O=S.INFO,L={[S.DEBUG]:"log",[S.VERBOSE]:"log",[S.INFO]:"info",[S.WARN]:"warn",[S.ERROR]:"error"},B=(e,t,...r)=>{if(t(e[t]=r,!0),has:(e,t)=>e instanceof IDBTransaction&&("done"===t||"store"===t)||t in e};function k(e){return e!==IDBDatabase.prototype.transaction||"objectStoreNames"in IDBTransaction.prototype?(N||(N=[IDBCursor.prototype.advance,IDBCursor.prototype.continue,IDBCursor.prototype.continuePrimaryKey])).includes(e)?function(...t){return e.apply(V(this),t),F(M.get(this))}:function(...t){return F(e.apply(V(this),t))}:function(t,...r){const n=e.call(V(this),t,...r);return P.set(n,t.sort?t.sort():[t]),F(n)}}function j(e){return"function"==typeof e?k(e):(e instanceof IDBTransaction&&function(e){if(R.has(e))return;const t=new Promise(((t,r)=>{const n=()=>{e.removeEventListener("complete",a),e.removeEventListener("error",i),e.removeEventListener("abort",i)},a=()=>{t(),n()},i=()=>{r(e.error||new DOMException("AbortError","AbortError")),n()};e.addEventListener("complete",a),e.addEventListener("error",i),e.addEventListener("abort",i)}));R.set(e,t)}(e),t=e,(T||(T=[IDBDatabase,IDBObjectStore,IDBIndex,IDBCursor,IDBTransaction])).some((e=>t instanceof e))?new Proxy(e,H):e);var t}function F(e){if(e instanceof IDBRequest)return function(e){const t=new Promise(((t,r)=>{const n=()=>{e.removeEventListener("success",a),e.removeEventListener("error",i)},a=()=>{t(F(e.result)),n()},i=()=>{r(e.error),n()};e.addEventListener("success",a),e.addEventListener("error",i)}));return t.then((t=>{t instanceof IDBCursor&&M.set(t,e)})).catch((()=>{})),$.set(t,e),t}(e);if(x.has(e))return x.get(e);const t=j(e);return t!==e&&(x.set(e,t),$.set(t,e)),t}const V=e=>$.get(e);const U=["get","getKey","getAll","getAllKeys","count"],z=["put","add","delete","clear"],W=new Map;function G(e,t){if(!(e instanceof IDBDatabase)||t in e||"string"!=typeof t)return;if(W.get(t))return W.get(t);const r=t.replace(/FromIndex$/,""),n=t!==r,a=z.includes(r);if(!(r in(n?IDBIndex:IDBObjectStore).prototype)||!a&&!U.includes(r))return;const i=async function(e,...t){const i=this.transaction(e,a?"readwrite":"readonly");let s=i.store;return n&&(s=s.index(t.shift())),(await Promise.all([s[r](...t),a&&i.done]))[0]};return W.set(t,i),i}H=(e=>({...e,get:(t,r,n)=>G(t,r)||e.get(t,r,n),has:(t,r)=>!!G(t,r)||e.has(t,r)}))(H); +/** + * @license + * Copyright 2019 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class J{constructor(e){this.container=e}getPlatformInfoString(){return this.container.getProviders().map((e=>{if(function(e){const t=e.getComponent();return"VERSION"===(null==t?void 0:t.type)}(e)){const t=e.getImmediate();return`${t.library}/${t.version}`}return null})).filter((e=>e)).join(" ")}}const K="https://www.gstatic.com/firebasejs/10.8.0/firebase-app.js",q="0.9.27",Y=new class{constructor(e){this.name=e,this._logLevel=O,this._logHandler=B,this._userLogHandler=null,D.push(this)}get logLevel(){return this._logLevel}set logLevel(e){if(!(e in S))throw new TypeError(`Invalid value "${e}" assigned to \`logLevel\``);this._logLevel=e}setLogLevel(e){this._logLevel="string"==typeof e?A[e]:e}get logHandler(){return this._logHandler}set logHandler(e){if("function"!=typeof e)throw new TypeError("Value assigned to `logHandler` must be a function");this._logHandler=e}get userLogHandler(){return this._userLogHandler}set userLogHandler(e){this._userLogHandler=e}debug(...e){this._userLogHandler&&this._userLogHandler(this,S.DEBUG,...e),this._logHandler(this,S.DEBUG,...e)}log(...e){this._userLogHandler&&this._userLogHandler(this,S.VERBOSE,...e),this._logHandler(this,S.VERBOSE,...e)}info(...e){this._userLogHandler&&this._userLogHandler(this,S.INFO,...e),this._logHandler(this,S.INFO,...e)}warn(...e){this._userLogHandler&&this._userLogHandler(this,S.WARN,...e),this._logHandler(this,S.WARN,...e)}error(...e){this._userLogHandler&&this._userLogHandler(this,S.ERROR,...e),this._logHandler(this,S.ERROR,...e)}}("https://www.gstatic.com/firebasejs/10.8.0/firebase-app.js"),X="[DEFAULT]",Z={[K]:"fire-core","@firebase/app-compat":"fire-core-compat","@firebase/analytics":"fire-analytics","@firebase/analytics-compat":"fire-analytics-compat","@firebase/app-check":"fire-app-check","@firebase/app-check-compat":"fire-app-check-compat","@firebase/auth":"fire-auth","@firebase/auth-compat":"fire-auth-compat","@firebase/database":"fire-rtdb","@firebase/database-compat":"fire-rtdb-compat","@firebase/functions":"fire-fn","@firebase/functions-compat":"fire-fn-compat","@firebase/installations":"fire-iid","@firebase/installations-compat":"fire-iid-compat","@firebase/messaging":"fire-fcm","@firebase/messaging-compat":"fire-fcm-compat","@firebase/performance":"fire-perf","@firebase/performance-compat":"fire-perf-compat","@firebase/remote-config":"fire-rc","@firebase/remote-config-compat":"fire-rc-compat","@firebase/storage":"fire-gcs","@firebase/storage-compat":"fire-gcs-compat","@firebase/firestore":"fire-fst","@firebase/firestore-compat":"fire-fst-compat","fire-js":"fire-js",firebase:"fire-js-all"},Q=new Map,ee=new Map;function te(e,t){try{e.container.addComponent(t)}catch(r){Y.debug(`Component ${t.name} failed to register with FirebaseApp ${e.name}`,r)}}function re(e,t){e.container.addOrOverwriteComponent(t)}function ne(e){const t=e.name;if(ee.has(t))return Y.debug(`There were multiple attempts to register component ${t}.`),!1;ee.set(t,e);for(const t of Q.values())te(t,e);return!0}function ae(e,t){const r=e.container.getProvider("heartbeat").getImmediate({optional:!0});return r&&r.triggerHeartbeat(),e.container.getProvider(t)}function ie(e,t,r=X){ae(e,t).clearInstance(r)}function se(){ee.clear()} +/** + * @license + * Copyright 2019 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */const oe=new m("app","Firebase",{"no-app":"No Firebase App '{$appName}' has been created - call initializeApp() first","bad-app-name":"Illegal App name: '{$appName}","duplicate-app":"Firebase App named '{$appName}' already exists with different options or config","app-deleted":"Firebase App named '{$appName}' already deleted","no-options":"Need to provide options, when not being deployed to hosting via source.","invalid-app-argument":"firebase.{$appName}() takes either no argument or a Firebase App instance.","invalid-log-argument":"First argument to `onLog` must be null or a function.","idb-open":"Error thrown when opening IndexedDB. Original error: {$originalErrorMessage}.","idb-get":"Error thrown when reading from IndexedDB. Original error: {$originalErrorMessage}.","idb-set":"Error thrown when writing to IndexedDB. Original error: {$originalErrorMessage}.","idb-delete":"Error thrown when deleting from IndexedDB. Original error: {$originalErrorMessage}."}); +/** + * @license + * Copyright 2019 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class ce{constructor(e,t,r){this._isDeleted=!1,this._options=Object.assign({},e),this._config=Object.assign({},t),this._name=t.name,this._automaticDataCollectionEnabled=t.automaticDataCollectionEnabled,this._container=r,this.container.addComponent(new _("app",(()=>this),"PUBLIC"))}get automaticDataCollectionEnabled(){return this.checkDestroyed(),this._automaticDataCollectionEnabled}set automaticDataCollectionEnabled(e){this.checkDestroyed(),this._automaticDataCollectionEnabled=e}get name(){return this.checkDestroyed(),this._name}get options(){return this.checkDestroyed(),this._options}get config(){return this.checkDestroyed(),this._config}get container(){return this._container}get isDeleted(){return this._isDeleted}set isDeleted(e){this._isDeleted=e}checkDestroyed(){if(this.isDeleted)throw oe.create("app-deleted",{appName:this._name})}} +/** + * @license + * Copyright 2019 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */const he="10.8.0";function le(e,t={}){let r=e;if("object"!=typeof t){t={name:t}}const n=Object.assign({name:X,automaticDataCollectionEnabled:!1},t),a=n.name;if("string"!=typeof a||!a)throw oe.create("bad-app-name",{appName:String(a)});if(r||(r=f()),!r)throw oe.create("no-options");const i=Q.get(a);if(i){if(v(r,i.options)&&v(n,i.config))return i;throw oe.create("duplicate-app",{appName:a})}const s=new I(a);for(const e of ee.values())s.addComponent(e);const o=new ce(r,n,s);return Q.set(a,o),o}function de(e=X){const t=Q.get(e);if(!t&&e===X&&f())return le();if(!t)throw oe.create("no-app",{appName:e});return t}function ue(){return Array.from(Q.values())}async function fe(e){const t=e.name;Q.has(t)&&(Q.delete(t),await Promise.all(e.container.getProviders().map((e=>e.delete()))),e.isDeleted=!0)}function pe(e,t,r){var n;let a=null!==(n=Z[e])&&void 0!==n?n:e;r&&(a+=`-${r}`);const i=a.match(/\s|\//),s=t.match(/\s|\//);if(i||s){const e=[`Unable to register library "${a}" with version "${t}":`];return i&&e.push(`library name "${a}" contains illegal characters (whitespace or "/")`),i&&s&&e.push("and"),s&&e.push(`version name "${t}" contains illegal characters (whitespace or "/")`),void Y.warn(e.join(" "))}ne(new _(`${a}-version`,(()=>({library:a,version:t})),"VERSION"))}function ge(e,t){if(null!==e&&"function"!=typeof e)throw oe.create("invalid-log-argument");!function(e,t){for(const r of D){let n=null;t&&t.level&&(n=A[t.level]),r.userLogHandler=null===e?null:(t,r,...a)=>{const i=a.map((e=>{if(null==e)return null;if("string"==typeof e)return e;if("number"==typeof e||"boolean"==typeof e)return e.toString();if(e instanceof Error)return e.message;try{return JSON.stringify(e)}catch(e){return null}})).filter((e=>e)).join(" ");r>=(null!=n?n:t.logLevel)&&e({level:S[r].toLowerCase(),message:i,args:a,type:t.name})}}}(e,t)}function me(e){var t;t=e,D.forEach((e=>{e.setLogLevel(t)}))} +/** + * @license + * Copyright 2021 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */const be="firebase-heartbeat-store";let ve=null;function Ee(){return ve||(ve=function(e,t,{blocked:r,upgrade:n,blocking:a,terminated:i}={}){const s=indexedDB.open(e,t),o=F(s);return n&&s.addEventListener("upgradeneeded",(e=>{n(F(s.result),e.oldVersion,e.newVersion,F(s.transaction),e)})),r&&s.addEventListener("blocked",(e=>r(e.oldVersion,e.newVersion,e))),o.then((e=>{i&&e.addEventListener("close",(()=>i())),a&&e.addEventListener("versionchange",(e=>a(e.oldVersion,e.newVersion,e)))})).catch((()=>{})),o}("firebase-heartbeat-database",1,{upgrade:(e,t)=>{if(0===t)try{e.createObjectStore(be)}catch(e){console.warn(e)}}}).catch((e=>{throw oe.create("idb-open",{originalErrorMessage:e.message})}))),ve}async function _e(e,t){try{const r=(await Ee()).transaction(be,"readwrite"),n=r.objectStore(be);await n.put(t,ye(e)),await r.done}catch(e){if(e instanceof g)Y.warn(e.message);else{const t=oe.create("idb-set",{originalErrorMessage:null==e?void 0:e.message});Y.warn(t.message)}}}function ye(e){return`${e.name}!${e.options.appId}`} +/** + * @license + * Copyright 2021 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */class we{constructor(e){this.container=e,this._heartbeatsCache=null;const t=this.container.getProvider("app").getImmediate();this._storage=new De(t),this._heartbeatsCachePromise=this._storage.read().then((e=>(this._heartbeatsCache=e,e)))}async triggerHeartbeat(){var e,t;const r=this.container.getProvider("platform-logger").getImmediate().getPlatformInfoString(),n=Ie();if((null!=(null===(e=this._heartbeatsCache)||void 0===e?void 0:e.heartbeats)||(this._heartbeatsCache=await this._heartbeatsCachePromise,null!=(null===(t=this._heartbeatsCache)||void 0===t?void 0:t.heartbeats)))&&this._heartbeatsCache.lastSentHeartbeatDate!==n&&!this._heartbeatsCache.heartbeats.some((e=>e.date===n)))return this._heartbeatsCache.heartbeats.push({date:n,agent:r}),this._heartbeatsCache.heartbeats=this._heartbeatsCache.heartbeats.filter((e=>{const t=new Date(e.date).valueOf();return Date.now()-t<=2592e6})),this._storage.overwrite(this._heartbeatsCache)}async getHeartbeatsHeader(){var e;if(null===this._heartbeatsCache&&await this._heartbeatsCachePromise,null==(null===(e=this._heartbeatsCache)||void 0===e?void 0:e.heartbeats)||0===this._heartbeatsCache.heartbeats.length)return"";const t=Ie(),{heartbeatsToSend:r,unsentEntries:n}=function(e,t=1024){const r=[];let n=e.slice();for(const a of e){const e=r.find((e=>e.agent===a.agent));if(e){if(e.dates.push(a.date),Se(r)>t){e.dates.pop();break}}else if(r.push({agent:a.agent,dates:[a.date]}),Se(r)>t){r.pop();break}n=n.slice(1)}return{heartbeatsToSend:r,unsentEntries:n}}(this._heartbeatsCache.heartbeats),a=h(JSON.stringify({version:2,heartbeats:r}));return this._heartbeatsCache.lastSentHeartbeatDate=t,n.length>0?(this._heartbeatsCache.heartbeats=n,await this._storage.overwrite(this._heartbeatsCache)):(this._heartbeatsCache.heartbeats=[],this._storage.overwrite(this._heartbeatsCache)),a}}function Ie(){return(new Date).toISOString().substring(0,10)}class De{constructor(e){this.app=e,this._canUseIndexedDBPromise=this.runIndexedDBEnvironmentCheck()}async runIndexedDBEnvironmentCheck(){return!!function(){try{return"object"==typeof indexedDB}catch(e){return!1}}()&&new Promise(((e,t)=>{try{let r=!0;const n="validate-browser-context-for-indexeddb-analytics-module",a=self.indexedDB.open(n);a.onsuccess=()=>{a.result.close(),r||self.indexedDB.deleteDatabase(n),e(!0)},a.onupgradeneeded=()=>{r=!1},a.onerror=()=>{var e;t((null===(e=a.error)||void 0===e?void 0:e.message)||"")}}catch(e){t(e)}})).then((()=>!0)).catch((()=>!1))}async read(){if(await this._canUseIndexedDBPromise){const e=await async function(e){try{const t=(await Ee()).transaction(be),r=await t.objectStore(be).get(ye(e));return await t.done,r}catch(e){if(e instanceof g)Y.warn(e.message);else{const t=oe.create("idb-get",{originalErrorMessage:null==e?void 0:e.message});Y.warn(t.message)}}}(this.app);return(null==e?void 0:e.heartbeats)?e:{heartbeats:[]}}return{heartbeats:[]}}async overwrite(e){var t;if(await this._canUseIndexedDBPromise){const r=await this.read();return _e(this.app,{lastSentHeartbeatDate:null!==(t=e.lastSentHeartbeatDate)&&void 0!==t?t:r.lastSentHeartbeatDate,heartbeats:e.heartbeats})}}async add(e){var t;if(await this._canUseIndexedDBPromise){const r=await this.read();return _e(this.app,{lastSentHeartbeatDate:null!==(t=e.lastSentHeartbeatDate)&&void 0!==t?t:r.lastSentHeartbeatDate,heartbeats:[...r.heartbeats,...e.heartbeats]})}}}function Se(e){return h(JSON.stringify({version:2,heartbeats:e})).length} +/** + * @license + * Copyright 2019 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */var Ce;Ce="",ne(new _("platform-logger",(e=>new J(e)),"PRIVATE")),ne(new _("heartbeat",(e=>new we(e)),"PRIVATE")),pe(K,q,Ce),pe(K,q,"esm2017"),pe("fire-js",""); +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +pe("firebase","10.8.0","cdn")})); \ No newline at end of file diff --git a/frontend-dist/firebase-app.a89bd3ee.js b/frontend-dist/firebase-app.a89bd3ee.js new file mode 100644 index 0000000000..73417e0895 --- /dev/null +++ b/frontend-dist/firebase-app.a89bd3ee.js @@ -0,0 +1,279 @@ +(()=>{var e="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{};function t(e,t,r,n){Object.defineProperty(e,t,{get:r,set:n,enumerable:!0,configurable:!0})}var r=e.parcelRequire94c2;r.register("1wlTY",(function(n,a){t(n.exports,"FirebaseError",(()=>g)),t(n.exports,"_DEFAULT_ENTRY_NAME",(()=>X)),t(n.exports,"_apps",(()=>Q)),t(n.exports,"_components",(()=>ee)),t(n.exports,"_addComponent",(()=>te)),t(n.exports,"_addOrOverwriteComponent",(()=>re)),t(n.exports,"_registerComponent",(()=>ne)),t(n.exports,"_getProvider",(()=>ae)),t(n.exports,"_removeServiceInstance",(()=>ie)),t(n.exports,"_clearComponents",(()=>se)),t(n.exports,"SDK_VERSION",(()=>he)),t(n.exports,"initializeApp",(()=>le)),t(n.exports,"getApp",(()=>de)),t(n.exports,"getApps",(()=>ue)),t(n.exports,"deleteApp",(()=>fe)),t(n.exports,"registerVersion",(()=>pe)),t(n.exports,"onLog",(()=>ge)),t(n.exports,"setLogLevel",(()=>me));var i=r("6kwV5"); +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */const s=function(e){const t=[];let r=0;for(let n=0;n>6|192,t[r++]=63&a|128):55296==(64512&a)&&n+1>18|240,t[r++]=a>>12&63|128,t[r++]=a>>6&63|128,t[r++]=63&a|128):(t[r++]=a>>12|224,t[r++]=a>>6&63|128,t[r++]=63&a|128)}return t},o={byteToCharMap_:null,charToByteMap_:null,byteToCharMapWebSafe_:null,charToByteMapWebSafe_:null,ENCODED_VALS_BASE:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",get ENCODED_VALS(){return this.ENCODED_VALS_BASE+"+/="},get ENCODED_VALS_WEBSAFE(){return this.ENCODED_VALS_BASE+"-_."},HAS_NATIVE_SUPPORT:"function"==typeof atob,encodeByteArray(e,t){if(!Array.isArray(e))throw Error("encodeByteArray takes an array as a parameter");this.init_();const r=t?this.byteToCharMapWebSafe_:this.byteToCharMap_,n=[];for(let t=0;t>2,l=(3&a)<<4|s>>4;let d=(15&s)<<2|c>>6,u=63&c;o||(u=64,i||(d=64)),n.push(r[h],r[l],r[d],r[u])}return n.join("")},encodeString(e,t){return this.HAS_NATIVE_SUPPORT&&!t?btoa(e):this.encodeByteArray(s(e),t)},decodeString(e,t){return this.HAS_NATIVE_SUPPORT&&!t?atob(e):function(e){const t=[];let r=0,n=0;for(;r191&&a<224){const i=e[r++];t[n++]=String.fromCharCode((31&a)<<6|63&i)}else if(a>239&&a<365){const i=((7&a)<<18|(63&e[r++])<<12|(63&e[r++])<<6|63&e[r++])-65536;t[n++]=String.fromCharCode(55296+(i>>10)),t[n++]=String.fromCharCode(56320+(1023&i))}else{const i=e[r++],s=e[r++];t[n++]=String.fromCharCode((15&a)<<12|(63&i)<<6|63&s)}}return t.join("")}(this.decodeStringToByteArray(e,t))},decodeStringToByteArray(e,t){this.init_();const r=t?this.charToByteMapWebSafe_:this.charToByteMap_,n=[];for(let t=0;t>4;if(n.push(h),64!==s){const e=i<<4&240|s>>2;if(n.push(e),64!==o){const e=s<<6&192|o;n.push(e)}}}return n},init_(){if(!this.byteToCharMap_){this.byteToCharMap_={},this.charToByteMap_={},this.byteToCharMapWebSafe_={},this.charToByteMapWebSafe_={};for(let e=0;e=this.ENCODED_VALS_BASE.length&&(this.charToByteMap_[this.ENCODED_VALS_WEBSAFE.charAt(e)]=e,this.charToByteMapWebSafe_[this.ENCODED_VALS.charAt(e)]=e)}}};class c extends Error{constructor(){super(...arguments),this.name="DecodeBase64StringError"}}const h=function(e){return function(e){const t=s(e);return o.encodeByteArray(t,!0)}(e).replace(/\./g,"")}; +/** + * @license + * Copyright 2022 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +const l=()=> +/** + * @license + * Copyright 2022 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +function(){if("undefined"!=typeof self)return self;if("undefined"!=typeof window)return window;if(void 0!==e)return e;throw new Error("Unable to locate global object.")}().__FIREBASE_DEFAULTS__,d=()=>{if("undefined"==typeof document)return;let e;try{e=document.cookie.match(/__FIREBASE_DEFAULTS__=([^;]+)/)}catch(e){return}const t=e&&function(e){try{return o.decodeString(e,!0)}catch(e){console.error("base64Decode failed: ",e)}return null}(e[1]);return t&&JSON.parse(t)},u=()=>{try{return l()||(()=>{if(void 0===i||void 0===i.env)return})()||d()}catch(e){return void console.info(`Unable to get __FIREBASE_DEFAULTS__ due to: ${e}`)}},f=()=>{var e;return null===(e=u())||void 0===e?void 0:e.config}; +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class p{constructor(){this.reject=()=>{},this.resolve=()=>{},this.promise=new Promise(((e,t)=>{this.resolve=e,this.reject=t}))}wrapCallback(e){return(t,r)=>{t?this.reject(t):this.resolve(r),"function"==typeof e&&(this.promise.catch((()=>{})),1===e.length?e(t):e(t,r))}}}class g extends Error{constructor(e,t,r){super(t),this.code=e,this.customData=r,this.name="FirebaseError",Object.setPrototypeOf(this,g.prototype),Error.captureStackTrace&&Error.captureStackTrace(this,m.prototype.create)}}class m{constructor(e,t,r){this.service=e,this.serviceName=t,this.errors=r}create(e,...t){const r=t[0]||{},n=`${this.service}/${e}`,a=this.errors[e],i=a?function(e,t){return e.replace(b,((e,r)=>{const n=t[r];return null!=n?String(n):`<${r}?>`}))}(a,r):"Error",s=`${this.serviceName}: ${i} (${n}).`;return new g(n,s,r)}}const b=/\{\$([^}]+)}/g;function v(e,t){if(e===t)return!0;const r=Object.keys(e),n=Object.keys(t);for(const a of r){if(!n.includes(a))return!1;const r=e[a],i=t[a];if(E(r)&&E(i)){if(!v(r,i))return!1}else if(r!==i)return!1}for(const e of n)if(!r.includes(e))return!1;return!0}function E(e){return null!==e&&"object"==typeof e}class _{constructor(e,t,r){this.name=e,this.instanceFactory=t,this.type=r,this.multipleInstances=!1,this.serviceProps={},this.instantiationMode="LAZY",this.onInstanceCreated=null}setInstantiationMode(e){return this.instantiationMode=e,this}setMultipleInstances(e){return this.multipleInstances=e,this}setServiceProps(e){return this.serviceProps=e,this}setInstanceCreatedCallback(e){return this.onInstanceCreated=e,this}} +/** + * @license + * Copyright 2019 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */const w="[DEFAULT]"; +/** + * @license + * Copyright 2019 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */class y{constructor(e,t){this.name=e,this.container=t,this.component=null,this.instances=new Map,this.instancesDeferred=new Map,this.instancesOptions=new Map,this.onInitCallbacks=new Map}get(e){const t=this.normalizeInstanceIdentifier(e);if(!this.instancesDeferred.has(t)){const e=new p;if(this.instancesDeferred.set(t,e),this.isInitialized(t)||this.shouldAutoInitialize())try{const r=this.getOrInitializeService({instanceIdentifier:t});r&&e.resolve(r)}catch(e){}}return this.instancesDeferred.get(t).promise}getImmediate(e){var t;const r=this.normalizeInstanceIdentifier(null==e?void 0:e.identifier),n=null!==(t=null==e?void 0:e.optional)&&void 0!==t&&t;if(!this.isInitialized(r)&&!this.shouldAutoInitialize()){if(n)return null;throw Error(`Service ${this.name} is not available`)}try{return this.getOrInitializeService({instanceIdentifier:r})}catch(e){if(n)return null;throw e}}getComponent(){return this.component}setComponent(e){if(e.name!==this.name)throw Error(`Mismatching Component ${e.name} for Provider ${this.name}.`);if(this.component)throw Error(`Component for ${this.name} has already been provided`);if(this.component=e,this.shouldAutoInitialize()){if(function(e){return"EAGER"===e.instantiationMode} +/** + * @license + * Copyright 2019 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */(e))try{this.getOrInitializeService({instanceIdentifier:w})}catch(e){}for(const[e,t]of this.instancesDeferred.entries()){const r=this.normalizeInstanceIdentifier(e);try{const e=this.getOrInitializeService({instanceIdentifier:r});t.resolve(e)}catch(e){}}}}clearInstance(e="[DEFAULT]"){this.instancesDeferred.delete(e),this.instancesOptions.delete(e),this.instances.delete(e)}async delete(){const e=Array.from(this.instances.values());await Promise.all([...e.filter((e=>"INTERNAL"in e)).map((e=>e.INTERNAL.delete())),...e.filter((e=>"_delete"in e)).map((e=>e._delete()))])}isComponentSet(){return null!=this.component}isInitialized(e="[DEFAULT]"){return this.instances.has(e)}getOptions(e="[DEFAULT]"){return this.instancesOptions.get(e)||{}}initialize(e={}){const{options:t={}}=e,r=this.normalizeInstanceIdentifier(e.instanceIdentifier);if(this.isInitialized(r))throw Error(`${this.name}(${r}) has already been initialized`);if(!this.isComponentSet())throw Error(`Component ${this.name} has not been registered yet`);const n=this.getOrInitializeService({instanceIdentifier:r,options:t});for(const[e,t]of this.instancesDeferred.entries()){r===this.normalizeInstanceIdentifier(e)&&t.resolve(n)}return n}onInit(e,t){var r;const n=this.normalizeInstanceIdentifier(t),a=null!==(r=this.onInitCallbacks.get(n))&&void 0!==r?r:new Set;a.add(e),this.onInitCallbacks.set(n,a);const i=this.instances.get(n);return i&&e(i,n),()=>{a.delete(e)}}invokeOnInitCallbacks(e,t){const r=this.onInitCallbacks.get(t);if(r)for(const n of r)try{n(e,t)}catch(e){}}getOrInitializeService({instanceIdentifier:e,options:t={}}){let r=this.instances.get(e);if(!r&&this.component&&(r=this.component.instanceFactory(this.container,{instanceIdentifier:(n=e,n===w?void 0:n),options:t}),this.instances.set(e,r),this.instancesOptions.set(e,t),this.invokeOnInitCallbacks(r,e),this.component.onInstanceCreated))try{this.component.onInstanceCreated(this.container,e,r)}catch(e){}var n;return r||null}normalizeInstanceIdentifier(e="[DEFAULT]"){return this.component?this.component.multipleInstances?e:w:e}shouldAutoInitialize(){return!!this.component&&"EXPLICIT"!==this.component.instantiationMode}}class I{constructor(e){this.name=e,this.providers=new Map}addComponent(e){const t=this.getProvider(e.name);if(t.isComponentSet())throw new Error(`Component ${e.name} has already been registered with ${this.name}`);t.setComponent(e)}addOrOverwriteComponent(e){this.getProvider(e.name).isComponentSet()&&this.providers.delete(e.name),this.addComponent(e)}getProvider(e){if(this.providers.has(e))return this.providers.get(e);const t=new y(e,this);return this.providers.set(e,t),t}getProviders(){return Array.from(this.providers.values())}} +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */const D=[];var S,C;(C=S||(S={}))[C.DEBUG=0]="DEBUG",C[C.VERBOSE=1]="VERBOSE",C[C.INFO=2]="INFO",C[C.WARN=3]="WARN",C[C.ERROR=4]="ERROR",C[C.SILENT=5]="SILENT";const A={debug:S.DEBUG,verbose:S.VERBOSE,info:S.INFO,warn:S.WARN,error:S.ERROR,silent:S.SILENT},O=S.INFO,L={[S.DEBUG]:"log",[S.VERBOSE]:"log",[S.INFO]:"info",[S.WARN]:"warn",[S.ERROR]:"error"},B=(e,t,...r)=>{if(t(e[t]=r,!0),has:(e,t)=>e instanceof IDBTransaction&&("done"===t||"store"===t)||t in e};function k(e){return e!==IDBDatabase.prototype.transaction||"objectStoreNames"in IDBTransaction.prototype?(N||(N=[IDBCursor.prototype.advance,IDBCursor.prototype.continue,IDBCursor.prototype.continuePrimaryKey])).includes(e)?function(...t){return e.apply(V(this),t),F(M.get(this))}:function(...t){return F(e.apply(V(this),t))}:function(t,...r){const n=e.call(V(this),t,...r);return P.set(n,t.sort?t.sort():[t]),F(n)}}function j(e){return"function"==typeof e?k(e):(e instanceof IDBTransaction&&function(e){if(R.has(e))return;const t=new Promise(((t,r)=>{const n=()=>{e.removeEventListener("complete",a),e.removeEventListener("error",i),e.removeEventListener("abort",i)},a=()=>{t(),n()},i=()=>{r(e.error||new DOMException("AbortError","AbortError")),n()};e.addEventListener("complete",a),e.addEventListener("error",i),e.addEventListener("abort",i)}));R.set(e,t)}(e),t=e,(T||(T=[IDBDatabase,IDBObjectStore,IDBIndex,IDBCursor,IDBTransaction])).some((e=>t instanceof e))?new Proxy(e,H):e);var t}function F(e){if(e instanceof IDBRequest)return function(e){const t=new Promise(((t,r)=>{const n=()=>{e.removeEventListener("success",a),e.removeEventListener("error",i)},a=()=>{t(F(e.result)),n()},i=()=>{r(e.error),n()};e.addEventListener("success",a),e.addEventListener("error",i)}));return t.then((t=>{t instanceof IDBCursor&&M.set(t,e)})).catch((()=>{})),$.set(t,e),t}(e);if(x.has(e))return x.get(e);const t=j(e);return t!==e&&(x.set(e,t),$.set(t,e)),t}const V=e=>$.get(e);const U=["get","getKey","getAll","getAllKeys","count"],z=["put","add","delete","clear"],W=new Map;function G(e,t){if(!(e instanceof IDBDatabase)||t in e||"string"!=typeof t)return;if(W.get(t))return W.get(t);const r=t.replace(/FromIndex$/,""),n=t!==r,a=z.includes(r);if(!(r in(n?IDBIndex:IDBObjectStore).prototype)||!a&&!U.includes(r))return;const i=async function(e,...t){const i=this.transaction(e,a?"readwrite":"readonly");let s=i.store;return n&&(s=s.index(t.shift())),(await Promise.all([s[r](...t),a&&i.done]))[0]};return W.set(t,i),i}H=(e=>({...e,get:(t,r,n)=>G(t,r)||e.get(t,r,n),has:(t,r)=>!!G(t,r)||e.has(t,r)}))(H); +/** + * @license + * Copyright 2019 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class J{constructor(e){this.container=e}getPlatformInfoString(){return this.container.getProviders().map((e=>{if(function(e){const t=e.getComponent();return"VERSION"===(null==t?void 0:t.type)}(e)){const t=e.getImmediate();return`${t.library}/${t.version}`}return null})).filter((e=>e)).join(" ")}}const K="https://www.gstatic.com/firebasejs/10.8.0/firebase-app.js",Y="0.9.27",q=new class{constructor(e){this.name=e,this._logLevel=O,this._logHandler=B,this._userLogHandler=null,D.push(this)}get logLevel(){return this._logLevel}set logLevel(e){if(!(e in S))throw new TypeError(`Invalid value "${e}" assigned to \`logLevel\``);this._logLevel=e}setLogLevel(e){this._logLevel="string"==typeof e?A[e]:e}get logHandler(){return this._logHandler}set logHandler(e){if("function"!=typeof e)throw new TypeError("Value assigned to `logHandler` must be a function");this._logHandler=e}get userLogHandler(){return this._userLogHandler}set userLogHandler(e){this._userLogHandler=e}debug(...e){this._userLogHandler&&this._userLogHandler(this,S.DEBUG,...e),this._logHandler(this,S.DEBUG,...e)}log(...e){this._userLogHandler&&this._userLogHandler(this,S.VERBOSE,...e),this._logHandler(this,S.VERBOSE,...e)}info(...e){this._userLogHandler&&this._userLogHandler(this,S.INFO,...e),this._logHandler(this,S.INFO,...e)}warn(...e){this._userLogHandler&&this._userLogHandler(this,S.WARN,...e),this._logHandler(this,S.WARN,...e)}error(...e){this._userLogHandler&&this._userLogHandler(this,S.ERROR,...e),this._logHandler(this,S.ERROR,...e)}}("https://www.gstatic.com/firebasejs/10.8.0/firebase-app.js"),X="[DEFAULT]",Z={[K]:"fire-core","@firebase/app-compat":"fire-core-compat","@firebase/analytics":"fire-analytics","@firebase/analytics-compat":"fire-analytics-compat","@firebase/app-check":"fire-app-check","@firebase/app-check-compat":"fire-app-check-compat","@firebase/auth":"fire-auth","@firebase/auth-compat":"fire-auth-compat","@firebase/database":"fire-rtdb","@firebase/database-compat":"fire-rtdb-compat","@firebase/functions":"fire-fn","@firebase/functions-compat":"fire-fn-compat","@firebase/installations":"fire-iid","@firebase/installations-compat":"fire-iid-compat","@firebase/messaging":"fire-fcm","@firebase/messaging-compat":"fire-fcm-compat","@firebase/performance":"fire-perf","@firebase/performance-compat":"fire-perf-compat","@firebase/remote-config":"fire-rc","@firebase/remote-config-compat":"fire-rc-compat","@firebase/storage":"fire-gcs","@firebase/storage-compat":"fire-gcs-compat","@firebase/firestore":"fire-fst","@firebase/firestore-compat":"fire-fst-compat","fire-js":"fire-js",firebase:"fire-js-all"},Q=new Map,ee=new Map;function te(e,t){try{e.container.addComponent(t)}catch(r){q.debug(`Component ${t.name} failed to register with FirebaseApp ${e.name}`,r)}}function re(e,t){e.container.addOrOverwriteComponent(t)}function ne(e){const t=e.name;if(ee.has(t))return q.debug(`There were multiple attempts to register component ${t}.`),!1;ee.set(t,e);for(const t of Q.values())te(t,e);return!0}function ae(e,t){const r=e.container.getProvider("heartbeat").getImmediate({optional:!0});return r&&r.triggerHeartbeat(),e.container.getProvider(t)}function ie(e,t,r=X){ae(e,t).clearInstance(r)}function se(){ee.clear()} +/** + * @license + * Copyright 2019 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */const oe=new m("app","Firebase",{"no-app":"No Firebase App '{$appName}' has been created - call initializeApp() first","bad-app-name":"Illegal App name: '{$appName}","duplicate-app":"Firebase App named '{$appName}' already exists with different options or config","app-deleted":"Firebase App named '{$appName}' already deleted","no-options":"Need to provide options, when not being deployed to hosting via source.","invalid-app-argument":"firebase.{$appName}() takes either no argument or a Firebase App instance.","invalid-log-argument":"First argument to `onLog` must be null or a function.","idb-open":"Error thrown when opening IndexedDB. Original error: {$originalErrorMessage}.","idb-get":"Error thrown when reading from IndexedDB. Original error: {$originalErrorMessage}.","idb-set":"Error thrown when writing to IndexedDB. Original error: {$originalErrorMessage}.","idb-delete":"Error thrown when deleting from IndexedDB. Original error: {$originalErrorMessage}."}); +/** + * @license + * Copyright 2019 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class ce{constructor(e,t,r){this._isDeleted=!1,this._options=Object.assign({},e),this._config=Object.assign({},t),this._name=t.name,this._automaticDataCollectionEnabled=t.automaticDataCollectionEnabled,this._container=r,this.container.addComponent(new _("app",(()=>this),"PUBLIC"))}get automaticDataCollectionEnabled(){return this.checkDestroyed(),this._automaticDataCollectionEnabled}set automaticDataCollectionEnabled(e){this.checkDestroyed(),this._automaticDataCollectionEnabled=e}get name(){return this.checkDestroyed(),this._name}get options(){return this.checkDestroyed(),this._options}get config(){return this.checkDestroyed(),this._config}get container(){return this._container}get isDeleted(){return this._isDeleted}set isDeleted(e){this._isDeleted=e}checkDestroyed(){if(this.isDeleted)throw oe.create("app-deleted",{appName:this._name})}} +/** + * @license + * Copyright 2019 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */const he="10.8.0";function le(e,t={}){let r=e;if("object"!=typeof t){t={name:t}}const n=Object.assign({name:X,automaticDataCollectionEnabled:!1},t),a=n.name;if("string"!=typeof a||!a)throw oe.create("bad-app-name",{appName:String(a)});if(r||(r=f()),!r)throw oe.create("no-options");const i=Q.get(a);if(i){if(v(r,i.options)&&v(n,i.config))return i;throw oe.create("duplicate-app",{appName:a})}const s=new I(a);for(const e of ee.values())s.addComponent(e);const o=new ce(r,n,s);return Q.set(a,o),o}function de(e=X){const t=Q.get(e);if(!t&&e===X&&f())return le();if(!t)throw oe.create("no-app",{appName:e});return t}function ue(){return Array.from(Q.values())}async function fe(e){const t=e.name;Q.has(t)&&(Q.delete(t),await Promise.all(e.container.getProviders().map((e=>e.delete()))),e.isDeleted=!0)}function pe(e,t,r){var n;let a=null!==(n=Z[e])&&void 0!==n?n:e;r&&(a+=`-${r}`);const i=a.match(/\s|\//),s=t.match(/\s|\//);if(i||s){const e=[`Unable to register library "${a}" with version "${t}":`];return i&&e.push(`library name "${a}" contains illegal characters (whitespace or "/")`),i&&s&&e.push("and"),s&&e.push(`version name "${t}" contains illegal characters (whitespace or "/")`),void q.warn(e.join(" "))}ne(new _(`${a}-version`,(()=>({library:a,version:t})),"VERSION"))}function ge(e,t){if(null!==e&&"function"!=typeof e)throw oe.create("invalid-log-argument");!function(e,t){for(const r of D){let n=null;t&&t.level&&(n=A[t.level]),r.userLogHandler=null===e?null:(t,r,...a)=>{const i=a.map((e=>{if(null==e)return null;if("string"==typeof e)return e;if("number"==typeof e||"boolean"==typeof e)return e.toString();if(e instanceof Error)return e.message;try{return JSON.stringify(e)}catch(e){return null}})).filter((e=>e)).join(" ");r>=(null!=n?n:t.logLevel)&&e({level:S[r].toLowerCase(),message:i,args:a,type:t.name})}}}(e,t)}function me(e){var t;t=e,D.forEach((e=>{e.setLogLevel(t)}))} +/** + * @license + * Copyright 2021 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */const be="firebase-heartbeat-store";let ve=null;function Ee(){return ve||(ve=function(e,t,{blocked:r,upgrade:n,blocking:a,terminated:i}={}){const s=indexedDB.open(e,t),o=F(s);return n&&s.addEventListener("upgradeneeded",(e=>{n(F(s.result),e.oldVersion,e.newVersion,F(s.transaction),e)})),r&&s.addEventListener("blocked",(e=>r(e.oldVersion,e.newVersion,e))),o.then((e=>{i&&e.addEventListener("close",(()=>i())),a&&e.addEventListener("versionchange",(e=>a(e.oldVersion,e.newVersion,e)))})).catch((()=>{})),o}("firebase-heartbeat-database",1,{upgrade:(e,t)=>{if(0===t)try{e.createObjectStore(be)}catch(e){console.warn(e)}}}).catch((e=>{throw oe.create("idb-open",{originalErrorMessage:e.message})}))),ve}async function _e(e,t){try{const r=(await Ee()).transaction(be,"readwrite"),n=r.objectStore(be);await n.put(t,we(e)),await r.done}catch(e){if(e instanceof g)q.warn(e.message);else{const t=oe.create("idb-set",{originalErrorMessage:null==e?void 0:e.message});q.warn(t.message)}}}function we(e){return`${e.name}!${e.options.appId}`} +/** + * @license + * Copyright 2021 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */class ye{constructor(e){this.container=e,this._heartbeatsCache=null;const t=this.container.getProvider("app").getImmediate();this._storage=new De(t),this._heartbeatsCachePromise=this._storage.read().then((e=>(this._heartbeatsCache=e,e)))}async triggerHeartbeat(){var e,t;const r=this.container.getProvider("platform-logger").getImmediate().getPlatformInfoString(),n=Ie();if((null!=(null===(e=this._heartbeatsCache)||void 0===e?void 0:e.heartbeats)||(this._heartbeatsCache=await this._heartbeatsCachePromise,null!=(null===(t=this._heartbeatsCache)||void 0===t?void 0:t.heartbeats)))&&this._heartbeatsCache.lastSentHeartbeatDate!==n&&!this._heartbeatsCache.heartbeats.some((e=>e.date===n)))return this._heartbeatsCache.heartbeats.push({date:n,agent:r}),this._heartbeatsCache.heartbeats=this._heartbeatsCache.heartbeats.filter((e=>{const t=new Date(e.date).valueOf();return Date.now()-t<=2592e6})),this._storage.overwrite(this._heartbeatsCache)}async getHeartbeatsHeader(){var e;if(null===this._heartbeatsCache&&await this._heartbeatsCachePromise,null==(null===(e=this._heartbeatsCache)||void 0===e?void 0:e.heartbeats)||0===this._heartbeatsCache.heartbeats.length)return"";const t=Ie(),{heartbeatsToSend:r,unsentEntries:n}=function(e,t=1024){const r=[];let n=e.slice();for(const a of e){const e=r.find((e=>e.agent===a.agent));if(e){if(e.dates.push(a.date),Se(r)>t){e.dates.pop();break}}else if(r.push({agent:a.agent,dates:[a.date]}),Se(r)>t){r.pop();break}n=n.slice(1)}return{heartbeatsToSend:r,unsentEntries:n}}(this._heartbeatsCache.heartbeats),a=h(JSON.stringify({version:2,heartbeats:r}));return this._heartbeatsCache.lastSentHeartbeatDate=t,n.length>0?(this._heartbeatsCache.heartbeats=n,await this._storage.overwrite(this._heartbeatsCache)):(this._heartbeatsCache.heartbeats=[],this._storage.overwrite(this._heartbeatsCache)),a}}function Ie(){return(new Date).toISOString().substring(0,10)}class De{constructor(e){this.app=e,this._canUseIndexedDBPromise=this.runIndexedDBEnvironmentCheck()}async runIndexedDBEnvironmentCheck(){return!!function(){try{return"object"==typeof indexedDB}catch(e){return!1}}()&&new Promise(((e,t)=>{try{let r=!0;const n="validate-browser-context-for-indexeddb-analytics-module",a=self.indexedDB.open(n);a.onsuccess=()=>{a.result.close(),r||self.indexedDB.deleteDatabase(n),e(!0)},a.onupgradeneeded=()=>{r=!1},a.onerror=()=>{var e;t((null===(e=a.error)||void 0===e?void 0:e.message)||"")}}catch(e){t(e)}})).then((()=>!0)).catch((()=>!1))}async read(){if(await this._canUseIndexedDBPromise){const e=await async function(e){try{const t=(await Ee()).transaction(be),r=await t.objectStore(be).get(we(e));return await t.done,r}catch(e){if(e instanceof g)q.warn(e.message);else{const t=oe.create("idb-get",{originalErrorMessage:null==e?void 0:e.message});q.warn(t.message)}}}(this.app);return(null==e?void 0:e.heartbeats)?e:{heartbeats:[]}}return{heartbeats:[]}}async overwrite(e){var t;if(await this._canUseIndexedDBPromise){const r=await this.read();return _e(this.app,{lastSentHeartbeatDate:null!==(t=e.lastSentHeartbeatDate)&&void 0!==t?t:r.lastSentHeartbeatDate,heartbeats:e.heartbeats})}}async add(e){var t;if(await this._canUseIndexedDBPromise){const r=await this.read();return _e(this.app,{lastSentHeartbeatDate:null!==(t=e.lastSentHeartbeatDate)&&void 0!==t?t:r.lastSentHeartbeatDate,heartbeats:[...r.heartbeats,...e.heartbeats]})}}}function Se(e){return h(JSON.stringify({version:2,heartbeats:e})).length} +/** + * @license + * Copyright 2019 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */var Ce;Ce="",ne(new _("platform-logger",(e=>new J(e)),"PRIVATE")),ne(new _("heartbeat",(e=>new ye(e)),"PRIVATE")),pe(K,Y,Ce),pe(K,Y,"esm2017"),pe("fire-js",""); +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +pe("firebase","10.8.0","cdn")}))})(); \ No newline at end of file diff --git a/frontend-dist/firebase-firestore.2ef1e41a.js b/frontend-dist/firebase-firestore.2ef1e41a.js new file mode 100644 index 0000000000..3f4b19e8ca --- /dev/null +++ b/frontend-dist/firebase-firestore.2ef1e41a.js @@ -0,0 +1 @@ +(()=>{var t="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{};function e(t,e,n,r){Object.defineProperty(t,e,{get:n,set:r,enumerable:!0,configurable:!0})}var n=t.parcelRequire94c2;n.register("4yuRh",(function(r,s){e(r.exports,"setLogLevel",(()=>Gr)),e(r.exports,"_logWarn",(()=>$r)),e(r.exports,"_debugAssert",(()=>Yr)),e(r.exports,"FirestoreError",(()=>Zr)),e(r.exports,"_EmptyAuthCredentialsProvider",(()=>ns)),e(r.exports,"_EmptyAppCheckTokenProvider",(()=>cs)),e(r.exports,"_AutoId",(()=>hs)),e(r.exports,"Timestamp",(()=>ms)),e(r.exports,"_FieldPath",(()=>bs)),e(r.exports,"_DocumentKey",(()=>_s)),e(r.exports,"_isBase64Available",(()=>Vi)),e(r.exports,"_ByteString",(()=>qi)),e(r.exports,"_DatabaseId",(()=>Hi)),e(r.exports,"_validateIsNotUsedTogether",(()=>$f)),e(r.exports,"_cast",(()=>Yf)),e(r.exports,"connectFirestoreEmulator",(()=>tg)),e(r.exports,"Query",(()=>eg)),e(r.exports,"DocumentReference",(()=>ng)),e(r.exports,"CollectionReference",(()=>rg)),e(r.exports,"collection",(()=>sg)),e(r.exports,"collectionGroup",(()=>ig)),e(r.exports,"doc",(()=>og)),e(r.exports,"refEqual",(()=>ag)),e(r.exports,"queryEqual",(()=>ug)),e(r.exports,"LoadBundleTask",(()=>hg)),e(r.exports,"CACHE_SIZE_UNLIMITED",(()=>dg)),e(r.exports,"Firestore",(()=>fg)),e(r.exports,"initializeFirestore",(()=>gg)),e(r.exports,"getFirestore",(()=>mg)),e(r.exports,"ensureFirestoreConfigured",(()=>pg)),e(r.exports,"enableIndexedDbPersistence",(()=>wg)),e(r.exports,"enableMultiTabIndexedDbPersistence",(()=>vg)),e(r.exports,"clearIndexedDbPersistence",(()=>_g)),e(r.exports,"waitForPendingWrites",(()=>Ig)),e(r.exports,"enableNetwork",(()=>Eg)),e(r.exports,"disableNetwork",(()=>Tg)),e(r.exports,"terminate",(()=>Sg)),e(r.exports,"loadBundle",(()=>xg)),e(r.exports,"namedQuery",(()=>Cg)),e(r.exports,"AggregateField",(()=>Ag)),e(r.exports,"AggregateQuerySnapshot",(()=>Ng)),e(r.exports,"Bytes",(()=>kg)),e(r.exports,"FieldPath",(()=>Rg)),e(r.exports,"documentId",(()=>Mg)),e(r.exports,"FieldValue",(()=>Lg)),e(r.exports,"GeoPoint",(()=>Og)),e(r.exports,"QueryConstraint",(()=>fm)),e(r.exports,"query",(()=>gm)),e(r.exports,"QueryCompositeFilterConstraint",(()=>ym)),e(r.exports,"QueryFieldFilterConstraint",(()=>mm)),e(r.exports,"where",(()=>pm)),e(r.exports,"or",(()=>wm)),e(r.exports,"and",(()=>vm)),e(r.exports,"QueryOrderByConstraint",(()=>bm)),e(r.exports,"orderBy",(()=>_m)),e(r.exports,"QueryLimitConstraint",(()=>Im)),e(r.exports,"limit",(()=>Em)),e(r.exports,"limitToLast",(()=>Tm)),e(r.exports,"QueryStartAtConstraint",(()=>Sm)),e(r.exports,"startAt",(()=>xm)),e(r.exports,"startAfter",(()=>Cm)),e(r.exports,"QueryEndAtConstraint",(()=>Dm)),e(r.exports,"endBefore",(()=>Am)),e(r.exports,"endAt",(()=>Nm)),e(r.exports,"AbstractUserDataWriter",(()=>Pm)),e(r.exports,"sum",(()=>qm)),e(r.exports,"average",(()=>Bm)),e(r.exports,"count",(()=>Um)),e(r.exports,"aggregateFieldEqual",(()=>zm)),e(r.exports,"aggregateQuerySnapshotEqual",(()=>Gm)),e(r.exports,"SnapshotMetadata",(()=>jm)),e(r.exports,"DocumentSnapshot",(()=>Km)),e(r.exports,"QueryDocumentSnapshot",(()=>$m)),e(r.exports,"QuerySnapshot",(()=>Qm)),e(r.exports,"snapshotEqual",(()=>Wm)),e(r.exports,"getDoc",(()=>Ym)),e(r.exports,"getDocFromCache",(()=>Jm)),e(r.exports,"getDocFromServer",(()=>Zm)),e(r.exports,"getDocs",(()=>tp)),e(r.exports,"getDocsFromCache",(()=>ep)),e(r.exports,"getDocsFromServer",(()=>np)),e(r.exports,"setDoc",(()=>rp)),e(r.exports,"executeWrite",(()=>cp)),e(r.exports,"updateDoc",(()=>sp)),e(r.exports,"deleteDoc",(()=>ip)),e(r.exports,"addDoc",(()=>op)),e(r.exports,"onSnapshot",(()=>ap)),e(r.exports,"onSnapshotsInSync",(()=>up)),e(r.exports,"getCountFromServer",(()=>hp)),e(r.exports,"getAggregateFromServer",(()=>dp)),e(r.exports,"persistentSingleTabManager",(()=>Ep)),e(r.exports,"memoryEagerGarbageCollector",(()=>yp)),e(r.exports,"memoryLruGarbageCollector",(()=>wp)),e(r.exports,"memoryLocalCache",(()=>vp)),e(r.exports,"persistentLocalCache",(()=>bp)),e(r.exports,"persistentMultipleTabManager",(()=>Tp)),e(r.exports,"WriteBatch",(()=>xp)),e(r.exports,"Transaction",(()=>Dp)),e(r.exports,"runTransaction",(()=>Ap)),e(r.exports,"deleteField",(()=>Np)),e(r.exports,"serverTimestamp",(()=>kp)),e(r.exports,"arrayUnion",(()=>Rp)),e(r.exports,"arrayRemove",(()=>Mp)),e(r.exports,"increment",(()=>Lp)),e(r.exports,"writeBatch",(()=>Op)),e(r.exports,"setIndexConfiguration",(()=>Pp)),e(r.exports,"PersistentCacheIndexManager",(()=>Vp)),e(r.exports,"getPersistentCacheIndexManager",(()=>qp)),e(r.exports,"enablePersistentCacheIndexAutoCreation",(()=>Bp)),e(r.exports,"disablePersistentCacheIndexAutoCreation",(()=>Up)),e(r.exports,"deleteAllPersistentCacheIndexes",(()=>zp)),e(r.exports,"_TestingHooks",(()=>Kp));var i=n("1wlTY"),o=n("6kwV5");const a=function(t){const e=[];let n=0;for(let r=0;r>6|192,e[n++]=63&s|128):55296==(64512&s)&&r+1>18|240,e[n++]=s>>12&63|128,e[n++]=s>>6&63|128,e[n++]=63&s|128):(e[n++]=s>>12|224,e[n++]=s>>6&63|128,e[n++]=63&s|128)}return e},u={byteToCharMap_:null,charToByteMap_:null,byteToCharMapWebSafe_:null,charToByteMapWebSafe_:null,ENCODED_VALS_BASE:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",get ENCODED_VALS(){return this.ENCODED_VALS_BASE+"+/="},get ENCODED_VALS_WEBSAFE(){return this.ENCODED_VALS_BASE+"-_."},HAS_NATIVE_SUPPORT:"function"==typeof atob,encodeByteArray(t,e){if(!Array.isArray(t))throw Error("encodeByteArray takes an array as a parameter");this.init_();const n=e?this.byteToCharMapWebSafe_:this.byteToCharMap_,r=[];for(let e=0;e>2,l=(3&s)<<4|o>>4;let h=(15&o)<<2|u>>6,d=63&u;a||(d=64,i||(h=64)),r.push(n[c],n[l],n[h],n[d])}return r.join("")},encodeString(t,e){return this.HAS_NATIVE_SUPPORT&&!e?btoa(t):this.encodeByteArray(a(t),e)},decodeString(t,e){return this.HAS_NATIVE_SUPPORT&&!e?atob(t):function(t){const e=[];let n=0,r=0;for(;n191&&s<224){const i=t[n++];e[r++]=String.fromCharCode((31&s)<<6|63&i)}else if(s>239&&s<365){const i=((7&s)<<18|(63&t[n++])<<12|(63&t[n++])<<6|63&t[n++])-65536;e[r++]=String.fromCharCode(55296+(i>>10)),e[r++]=String.fromCharCode(56320+(1023&i))}else{const i=t[n++],o=t[n++];e[r++]=String.fromCharCode((15&s)<<12|(63&i)<<6|63&o)}}return e.join("")}(this.decodeStringToByteArray(t,e))},decodeStringToByteArray(t,e){this.init_();const n=e?this.charToByteMapWebSafe_:this.charToByteMap_,r=[];for(let e=0;e>4;if(r.push(u),64!==o){const t=i<<4&240|o>>2;if(r.push(t),64!==a){const t=o<<6&192|a;r.push(t)}}}return r},init_(){if(!this.byteToCharMap_){this.byteToCharMap_={},this.charToByteMap_={},this.byteToCharMapWebSafe_={},this.charToByteMapWebSafe_={};for(let t=0;t=this.ENCODED_VALS_BASE.length&&(this.charToByteMap_[this.ENCODED_VALS_WEBSAFE.charAt(t)]=t,this.charToByteMapWebSafe_[this.ENCODED_VALS.charAt(t)]=t)}}};class c extends Error{constructor(){super(...arguments),this.name="DecodeBase64StringError"}}const l=function(t){return function(t){const e=a(t);return u.encodeByteArray(e,!0)}(t).replace(/\./g,"")},h=()=>{try{return function(){if("undefined"!=typeof self)return self;if("undefined"!=typeof window)return window;if(void 0!==t)return t;throw new Error("Unable to locate global object.")}().__FIREBASE_DEFAULTS__||(()=>{if(void 0===o||void 0===o.env)return})()||(()=>{if("undefined"==typeof document)return;let t;try{t=document.cookie.match(/__FIREBASE_DEFAULTS__=([^;]+)/)}catch(t){return}const e=t&&function(t){try{return u.decodeString(t,!0)}catch(t){console.error("base64Decode failed: ",t)}return null}(t[1]);return e&&JSON.parse(e)})()}catch(t){return void console.info(`Unable to get __FIREBASE_DEFAULTS__ due to: ${t}`)}};function d(){return"undefined"!=typeof navigator&&"string"==typeof navigator.userAgent?navigator.userAgent:""}function f(){return!function(){var e;const n=null===(e=h())||void 0===e?void 0:e.forceEnvironment;if("node"===n)return!0;if("browser"===n)return!1;try{return"[object process]"===Object.prototype.toString.call(t.process)}catch(t){return!1}}()&&!!navigator.userAgent&&navigator.userAgent.includes("Safari")&&!navigator.userAgent.includes("Chrome")}class g extends Error{constructor(t,e,n){super(e),this.code=t,this.customData=n,this.name="FirebaseError",Object.setPrototypeOf(this,g.prototype),Error.captureStackTrace&&Error.captureStackTrace(this,m.prototype.create)}}class m{constructor(t,e,n){this.service=t,this.serviceName=e,this.errors=n}create(t,...e){const n=e[0]||{},r=`${this.service}/${t}`,s=this.errors[t],i=s?function(t,e){return t.replace(p,((t,n)=>{const r=e[n];return null!=r?String(r):`<${n}?>`}))}(s,n):"Error",o=`${this.serviceName}: ${i} (${r}).`;return new g(r,o,n)}}const p=/\{\$([^}]+)}/g;function y(t,e){if(t===e)return!0;const n=Object.keys(t),r=Object.keys(e);for(const s of n){if(!r.includes(s))return!1;const n=t[s],i=e[s];if(w(n)&&w(i)){if(!y(n,i))return!1}else if(n!==i)return!1}for(const t of r)if(!n.includes(t))return!1;return!0}function w(t){return null!==t&&"object"==typeof t}function v(t){return t&&t._delegate?t._delegate:t}class b{constructor(t,e,n){this.name=t,this.instanceFactory=e,this.type=n,this.multipleInstances=!1,this.serviceProps={},this.instantiationMode="LAZY",this.onInstanceCreated=null}setInstantiationMode(t){return this.instantiationMode=t,this}setMultipleInstances(t){return this.multipleInstances=t,this}setServiceProps(t){return this.serviceProps=t,this}setInstanceCreatedCallback(t){return this.onInstanceCreated=t,this}}var _,I;(I=_||(_={}))[I.DEBUG=0]="DEBUG",I[I.VERBOSE=1]="VERBOSE",I[I.INFO=2]="INFO",I[I.WARN=3]="WARN",I[I.ERROR=4]="ERROR",I[I.SILENT=5]="SILENT";const E={debug:_.DEBUG,verbose:_.VERBOSE,info:_.INFO,warn:_.WARN,error:_.ERROR,silent:_.SILENT},T=_.INFO,S={[_.DEBUG]:"log",[_.VERBOSE]:"log",[_.INFO]:"info",[_.WARN]:"warn",[_.ERROR]:"error"},x=(t,e,...n)=>{if(e{};N.addEventListener("test",t,e),N.removeEventListener("test",t,e)}catch(t){}return t}();function j(t){return/^[\s\xa0]*$/.test(t)}function K(){var t=N.navigator;return t&&(t=t.userAgent)?t:""}function $(t){return-1!=K().indexOf(t)}function Q(t){return Q[" "](t),t}Q[" "]=function(){};var H,W,Y,X=$("Opera"),J=$("Trident")||$("MSIE"),Z=$("Edge"),tt=Z||J,et=$("Gecko")&&!(-1!=K().toLowerCase().indexOf("webkit")&&!$("Edge"))&&!($("Trident")||$("MSIE"))&&!$("Edge"),nt=-1!=K().toLowerCase().indexOf("webkit")&&!$("Edge");function rt(){var t=N.document;return t?t.documentMode:void 0}t:{var st="",it=(W=K(),et?/rv:([^\);]+)(\)|;)/.exec(W):Z?/Edge\/([\d\.]+)/.exec(W):J?/\b(?:MSIE|rv)[: ]([^\);]+)(\)|;)/.exec(W):nt?/WebKit\/(\S+)/.exec(W):X?/(?:Version)[ \/]?(\S+)/.exec(W):void 0);if(it&&(st=it?it[1]:""),J){var ot=rt();if(null!=ot&&ot>parseFloat(st)){H=String(ot);break t}}H=st}N.document&&J?Y=rt()||parseInt(H,10)||void 0:Y=void 0;var at=Y;function ut(t,e){if(z.call(this,t?t.type:""),this.relatedTarget=this.g=this.target=null,this.button=this.screenY=this.screenX=this.clientY=this.clientX=0,this.key="",this.metaKey=this.shiftKey=this.altKey=this.ctrlKey=!1,this.state=null,this.pointerId=0,this.pointerType="",this.i=null,t){var n=this.type=t.type,r=t.changedTouches&&t.changedTouches.length?t.changedTouches[0]:null;if(this.target=t.target||t.srcElement,this.g=e,e=t.relatedTarget){if(et){t:{try{Q(e.nodeName);var s=!0;break t}catch(t){}s=!1}s||(e=null)}}else"mouseover"==n?e=t.fromElement:"mouseout"==n&&(e=t.toElement);this.relatedTarget=e,r?(this.clientX=void 0!==r.clientX?r.clientX:r.pageX,this.clientY=void 0!==r.clientY?r.clientY:r.pageY,this.screenX=r.screenX||0,this.screenY=r.screenY||0):(this.clientX=void 0!==t.clientX?t.clientX:t.pageX,this.clientY=void 0!==t.clientY?t.clientY:t.pageY,this.screenX=t.screenX||0,this.screenY=t.screenY||0),this.button=t.button,this.key=t.key||"",this.ctrlKey=t.ctrlKey,this.altKey=t.altKey,this.shiftKey=t.shiftKey,this.metaKey=t.metaKey,this.pointerId=t.pointerId||0,this.pointerType="string"==typeof t.pointerType?t.pointerType:ct[t.pointerType]||"",this.state=t.state,this.i=t,t.defaultPrevented&&ut.$.h.call(this)}}F(ut,z);var ct={2:"touch",3:"pen",4:"mouse"};ut.prototype.h=function(){ut.$.h.call(this);var t=this.i;t.preventDefault?t.preventDefault():t.returnValue=!1};var lt="closure_listenable_"+(1e6*Math.random()|0),ht=0;function dt(t,e,n,r,s){this.listener=t,this.proxy=null,this.src=e,this.type=n,this.capture=!!r,this.la=s,this.key=++ht,this.fa=this.ia=!1}function ft(t){t.fa=!0,t.listener=null,t.proxy=null,t.src=null,t.la=null}function gt(t,e,n){for(const r in t)e.call(n,t[r],r,t)}function mt(t){const e={};for(const n in t)e[n]=t[n];return e}const pt="constructor hasOwnProperty isPrototypeOf propertyIsEnumerable toLocaleString toString valueOf".split(" ");function yt(t,e){let n,r;for(let e=1;e>>0);function Rt(t){return"function"==typeof t?t:(t[kt]||(t[kt]=function(e){return t.handleEvent(e)}),t[kt])}function Mt(){V.call(this),this.i=new wt(this),this.S=this,this.J=null}function Lt(t,e){var n,r=t.J;if(r)for(n=[];r;r=r.J)n.push(r);if(t=t.S,r=e.type||e,"string"==typeof e)e=new z(e,t);else if(e instanceof z)e.target=e.target||t;else{var s=e;yt(e=new z(r,t),s)}if(s=!0,n)for(var i=n.length-1;0<=i;i--){var o=e.g=n[i];s=Ot(o,r,!0,e)&&s}if(s=Ot(o=e.g=t,r,!0,e)&&s,s=Ot(o,r,!1,e)&&s,n)for(i=0;inew qt),(t=>t.reset()));class qt{constructor(){this.next=this.g=this.h=null}set(t,e){this.h=t,this.g=e,this.next=null}reset(){this.next=this.g=this.h=null}}function Bt(t){var e=1;t=t.split(":");const n=[];for(;0{throw t}),0)}let zt,Gt=!1,jt=new class{constructor(){this.h=this.g=null}add(t,e){const n=Vt.get();n.set(t,e),this.h?this.h.next=n:this.g=n,this.h=n}},Kt=()=>{const t=N.Promise.resolve(void 0);zt=()=>{t.then($t)}};var $t=()=>{for(var t;t=Ft();){try{t.h.call(t.g)}catch(t){Ut(t)}var e=Vt;e.j(t),100>e.h&&(e.h++,t.next=e.g,e.g=t)}Gt=!1};function Qt(t,e){Mt.call(this),this.h=t||1,this.g=e||N,this.j=O(this.qb,this),this.l=Date.now()}function Ht(t){t.ga=!1,t.T&&(t.g.clearTimeout(t.T),t.T=null)}function Wt(t,e,n){if("function"==typeof t)n&&(t=O(t,n));else{if(!t||"function"!=typeof t.handleEvent)throw Error("Invalid listener argument");t=O(t.handleEvent,t)}return 2147483647{t.g=null,t.i&&(t.i=!1,Yt(t))}),t.j);const e=t.h;t.h=null,t.m.apply(null,e)}F(Qt,Mt),(C=Qt.prototype).ga=!1,C.T=null,C.qb=function(){if(this.ga){var t=Date.now()-this.l;0r.length)){var s=r[1];if(Array.isArray(s)&&!(1>s.length)){var i=s[0];if("noop"!=i&&"stop"!=i&&"close"!=i)for(var o=1;oe.length?Ce:(e=e.slice(r,r+n),t.o=r+n,e))}function Me(t){t.Y=Date.now()+t.P,Le(t,t.P)}function Le(t,e){if(null!=t.C)throw Error("WatchDog timer not null");t.C=de(O(t.lb,t),e)}function Oe(t){t.C&&(N.clearTimeout(t.C),t.C=null)}function Pe(t){0==t.l.H||t.J||tr(t.l,t)}function Fe(t){Oe(t);var e=t.M;e&&"function"==typeof e.sa&&e.sa(),t.M=null,Ht(t.V),ee(t.U),t.g&&(e=t.g,t.g=null,e.abort(),e.sa())}function Ve(t,e){try{var n=t.l;if(0!=n.H&&(n.g==t||fn(n.i,t)))if(!t.K&&fn(n.i,t)&&3==n.H){try{var r=n.Ja.g.parse(e)}catch(t){r=null}if(Array.isArray(r)&&3==r.length){var s=r;if(0==s[0]){t:if(!n.u){if(n.g){if(!(n.g.G+3e3s[2]&&n.G&&0==n.A&&!n.v&&(n.v=de(O(n.ib,n),6e3));if(1>=dn(n.i)&&n.oa){try{n.oa()}catch(t){}n.oa=void 0}}else nr(n,11)}else if((t.K||n.g==t)&&Zn(n),!j(e))for(s=n.Ja.g.parse(e),e=0;el)&&(3!=l||tt||this.g&&(this.h.h||this.g.ja()||Fn(this.g)))){this.J||4!=l||7==e||ue(),Oe(this);var n=this.g.da();this.ca=n;e:if(Ne(this)){var r=Fn(this.g);t="";var s=r.length,i=4==Pn(this.g);if(!this.h.i){if("undefined"==typeof TextDecoder){Fe(this),Pe(this);var o="";break e}this.h.i=new N.TextDecoder}for(e=0;ee)throw Error("Bad port number "+e);t.m=e}else t.m=null}function Ke(t,e,n){e instanceof nn?(t.i=e,function(t,e){e&&!t.j&&(rn(t),t.i=null,t.g.forEach((function(t,e){var n=e.toLowerCase();e!=n&&(sn(this,e),an(this,n,t))}),t)),t.j=e}(t.i,t.h)):(n||(e=We(e,tn)),t.i=new nn(e,t.h))}function $e(t,e,n){t.i.set(e,n)}function Qe(t){return $e(t,"zx",Math.floor(2147483648*Math.random()).toString(36)+Math.abs(Math.floor(2147483648*Math.random())^Date.now()).toString(36)),t}function He(t,e){return t?e?decodeURI(t.replace(/%25/g,"%2525")):decodeURIComponent(t):""}function We(t,e,n){return"string"==typeof t?(t=encodeURI(t).replace(e,Ye),n&&(t=t.replace(/%25([0-9a-fA-F]{2})/g,"%$1")),t):null}function Ye(t){return"%"+((t=t.charCodeAt(0))>>4&15).toString(16)+(15&t).toString(16)}Ue.prototype.toString=function(){var t=[],e=this.j;e&&t.push(We(e,Xe,!0),":");var n=this.g;return(n||"file"==e)&&(t.push("//"),(e=this.s)&&t.push(We(e,Xe,!0),"@"),t.push(encodeURIComponent(String(n)).replace(/%25([0-9a-fA-F]{2})/g,"%$1")),null!=(n=this.m)&&t.push(":",String(n))),(n=this.l)&&(this.g&&"/"!=n.charAt(0)&&t.push("/"),t.push(We(n,"/"==n.charAt(0)?Ze:Je,!0))),(n=this.i.toString())&&t.push("?",n),(n=this.o)&&t.push("#",We(n,en)),t.join("")};var Xe=/[#\/\?@]/g,Je=/[#\?:]/g,Ze=/[#\?]/g,tn=/[#\?@]/g,en=/#/g;function nn(t,e){this.h=this.g=null,this.i=t||null,this.j=!!e}function rn(t){t.g||(t.g=new Map,t.h=0,t.i&&function(t,e){if(t){t=t.split("&");for(var n=0;n=t.j}function dn(t){return t.h?1:t.g?t.g.size:0}function fn(t,e){return t.h?t.h==e:!!t.g&&t.g.has(e)}function gn(t,e){t.g?t.g.add(e):t.h=e}function mn(t,e){t.h&&t.h==e?t.h=null:t.g&&t.g.has(e)&&t.g.delete(e)}function pn(t){if(null!=t.h)return t.i.concat(t.h.F);if(null!=t.g&&0!==t.g.size){let e=t.i;for(const n of t.g.values())e=e.concat(n.F);return e}return B(t.i)}function yn(){this.g=new class{stringify(t){return N.JSON.stringify(t,void 0)}parse(t){return N.JSON.parse(t,void 0)}}}function wn(t,e,n){const r=n||"";try{qe(t,(function(t,n){let s=t;R(t)&&(s=Pt(t)),e.push(r+n+"="+encodeURIComponent(s))}))}catch(t){throw e.push(r+"type="+encodeURIComponent("_badmap")),t}}function vn(t,e,n,r,s){try{e.onload=null,e.onerror=null,e.onabort=null,e.ontimeout=null,s(r)}catch(t){}}function bn(t){this.l=t.ec||null,this.j=t.ob||!1}function _n(t,e){Mt.call(this),this.F=t,this.u=e,this.m=void 0,this.readyState=In,this.status=0,this.responseType=this.responseText=this.response=this.statusText="",this.onreadystatechange=null,this.v=new Headers,this.h=null,this.C="GET",this.B="",this.g=!1,this.A=this.j=this.l=null}cn.prototype.cancel=function(){if(this.i=pn(this),this.h)this.h.cancel(),this.h=null;else if(this.g&&0!==this.g.size){for(const t of this.g.values())t.cancel();this.g.clear()}},F(bn,me),bn.prototype.g=function(){return new _n(this.l,this.j)},bn.prototype.i=function(t){return function(){return t}}({}),F(_n,Mt);var In=0;function En(t){t.j.read().then(t.Xa.bind(t)).catch(t.ka.bind(t))}function Tn(t){t.readyState=4,t.l=null,t.j=null,t.A=null,Sn(t)}function Sn(t){t.onreadystatechange&&t.onreadystatechange.call(t)}(C=_n.prototype).open=function(t,e){if(this.readyState!=In)throw this.abort(),Error("Error reopening a connection");this.C=t,this.B=e,this.readyState=1,Sn(this)},C.send=function(t){if(1!=this.readyState)throw this.abort(),Error("need to call open() first. ");this.g=!0;const e={headers:this.v,method:this.C,credentials:this.m,cache:void 0};t&&(e.body=t),(this.F||N).fetch(new Request(this.B,e)).then(this.$a.bind(this),this.ka.bind(this))},C.abort=function(){this.response=this.responseText="",this.v=new Headers,this.status=0,this.j&&this.j.cancel("Request was aborted.").catch((()=>{})),1<=this.readyState&&this.g&&4!=this.readyState&&(this.g=!1,Tn(this)),this.readyState=In},C.$a=function(t){if(this.g&&(this.l=t,this.h||(this.status=this.l.status,this.statusText=this.l.statusText,this.h=t.headers,this.readyState=2,Sn(this)),this.g&&(this.readyState=3,Sn(this),this.g)))if("arraybuffer"===this.responseType)t.arrayBuffer().then(this.Ya.bind(this),this.ka.bind(this));else if(void 0!==N.ReadableStream&&"body"in t){if(this.j=t.body.getReader(),this.u){if(this.responseType)throw Error('responseType must be empty for "streamBinaryChunks" mode responses.');this.response=[]}else this.response=this.responseText="",this.A=new TextDecoder;En(this)}else t.text().then(this.Za.bind(this),this.ka.bind(this))},C.Xa=function(t){if(this.g){if(this.u&&t.value)this.response.push(t.value);else if(!this.u){var e=t.value?t.value:new Uint8Array(0);(e=this.A.decode(e,{stream:!t.done}))&&(this.response=this.responseText+=e)}t.done?Tn(this):Sn(this),3==this.readyState&&En(this)}},C.Za=function(t){this.g&&(this.response=this.responseText=t,Tn(this))},C.Ya=function(t){this.g&&(this.response=t,Tn(this))},C.ka=function(){this.g&&Tn(this)},C.setRequestHeader=function(t,e){this.v.append(t,e)},C.getResponseHeader=function(t){return this.h&&this.h.get(t.toLowerCase())||""},C.getAllResponseHeaders=function(){if(!this.h)return"";const t=[],e=this.h.entries();for(var n=e.next();!n.done;)n=n.value,t.push(n[0]+": "+n[1]),n=e.next();return t.join("\r\n")},Object.defineProperty(_n.prototype,"withCredentials",{get:function(){return"include"===this.m},set:function(t){this.m=t?"include":"same-origin"}});var xn=N.JSON.parse;function Cn(t){Mt.call(this),this.headers=new Map,this.u=t||null,this.h=!1,this.C=this.g=null,this.I="",this.m=0,this.j="",this.l=this.G=this.v=this.F=!1,this.B=0,this.A=null,this.K=Dn,this.L=this.M=!1}F(Cn,Mt);var Dn="",An=/^https?$/i,Nn=["POST","PUT"];function kn(t,e){t.h=!1,t.g&&(t.l=!0,t.g.abort(),t.l=!1),t.j=e,t.m=5,Rn(t),Ln(t)}function Rn(t){t.F||(t.F=!0,Lt(t,"complete"),Lt(t,"error"))}function Mn(t){if(t.h&&void 0!==A&&(!t.C[1]||4!=Pn(t)||2!=t.da()))if(t.v&&4==Pn(t))Wt(t.La,0,t);else if(Lt(t,"readystatechange"),4==Pn(t)){t.h=!1;try{const o=t.da();t:switch(o){case 200:case 201:case 202:case 204:case 206:case 304:case 1223:var e=!0;break t;default:e=!1}var n;if(!(n=e)){var r;if(r=0===o){var s=String(t.I).match(Be)[1]||null;!s&&N.self&&N.self.location&&(s=N.self.location.protocol.slice(0,-1)),r=!An.test(s?s.toLowerCase():"")}n=r}if(n)Lt(t,"complete"),Lt(t,"success");else{t.m=6;try{var i=2{}:null;t.g=null,t.C=null,e||Lt(t,"ready");try{n.onreadystatechange=r}catch(t){}}}function On(t){t.g&&t.L&&(t.g.ontimeout=null),t.A&&(N.clearTimeout(t.A),t.A=null)}function Pn(t){return t.g?t.g.readyState:0}function Fn(t){try{if(!t.g)return null;if("response"in t.g)return t.g.response;switch(t.K){case Dn:case"text":return t.g.responseText;case"arraybuffer":if("mozResponseArrayBuffer"in t.g)return t.g.mozResponseArrayBuffer}return null}catch(t){return null}}function Vn(t){let e="";return gt(t,(function(t,n){e+=n,e+=":",e+=t,e+="\r\n"})),e}function qn(t,e,n){t:{for(r in n){var r=!1;break t}r=!0}r||(n=Vn(n),"string"==typeof t?null!=n&&encodeURIComponent(String(n)):$e(t,e,n))}function Bn(t,e,n){return n&&n.internalChannelParams&&n.internalChannelParams[t]||e}function Un(t){this.Ga=0,this.j=[],this.l=new ne,this.pa=this.wa=this.I=this.Y=this.g=this.Da=this.F=this.na=this.o=this.U=this.s=null,this.fb=this.W=0,this.cb=Bn("failFast",!1,t),this.G=this.v=this.u=this.m=this.h=null,this.aa=!0,this.Fa=this.V=-1,this.ba=this.A=this.C=0,this.ab=Bn("baseRetryDelayMs",5e3,t),this.hb=Bn("retryDelaySeedMs",1e4,t),this.eb=Bn("forwardChannelMaxRetries",2,t),this.xa=Bn("forwardChannelRequestTimeoutMs",2e4,t),this.va=t&&t.xmlHttpFactory||void 0,this.Ha=t&&t.useFetchStreams||!1,this.L=void 0,this.J=t&&t.supportsCrossDomainXhr||!1,this.K="",this.i=new cn(t&&t.concurrentRequestLimit),this.Ja=new yn,this.P=t&&t.fastHandshake||!1,this.O=t&&t.encodeInitMessageHeaders||!1,this.P&&this.O&&(this.O=!1),this.bb=t&&t.bc||!1,t&&t.Ea&&this.l.Ea(),t&&t.forceLongPolling&&(this.aa=!1),this.ca=!this.P&&this.aa&&t&&t.detectBufferingProxy||!1,this.qa=void 0,t&&t.longPollingTimeout&&0n)e=Math.max(0,s[o].g-100),i=!1;else try{wn(a,t,"req"+n+"_")}catch(t){r&&r(a)}}if(i){r=t.join("&");break t}}}return t=t.j.splice(0,n),e.F=t,r}function Wn(t){if(!t.g&&!t.u){t.ba=1;var e=t.Ma;zt||Kt(),Gt||(zt(),Gt=!0),jt.add(e,t),t.A=0}}function Yn(t){return!(t.g||t.u||3<=t.A||(t.ba++,t.u=de(O(t.Ma,t),er(t,t.A)),t.A++,0))}function Xn(t){null!=t.B&&(N.clearTimeout(t.B),t.B=null)}function Jn(t){t.g=new Ee(t,t.l,"rpc",t.ba),null===t.o&&(t.g.I=t.s),t.g.O=0;var e=ze(t.wa);$e(e,"RID","rpc"),$e(e,"SID",t.K),$e(e,"AID",t.V),$e(e,"CI",t.G?"0":"1"),!t.G&&t.qa&&$e(e,"TO",t.qa),$e(e,"TYPE","xmlhttp"),Qn(t,e),t.o&&t.s&&qn(e,t.o,t.s),t.L&&t.g.setTimeout(t.L);var n=t.g;t=t.pa,n.L=1,n.A=Qe(ze(e)),n.u=null,n.S=!0,Ae(n,t)}function Zn(t){null!=t.v&&(N.clearTimeout(t.v),t.v=null)}function tr(t,e){var n=null;if(t.g==e){Zn(t),Xn(t),t.g=null;var r=2}else{if(!fn(t.i,e))return;n=e.F,mn(t.i,e),r=1}if(0!=t.H)if(e.i)if(1==r){n=e.u?e.u.length:0,e=Date.now()-e.G;var s=t.C;Lt(r=oe(),new he(r,n)),Kn(t)}else Wn(t);else if(3==(s=e.s)||0==s&&0=t.i.j-(t.m?1:0)||(t.m?(t.j=e.F.concat(t.j),0):1==t.H||2==t.H||t.C>=(t.cb?0:t.eb)||(t.m=de(O(t.Na,t,e),er(t,t.C)),t.C++,0)))}(t,e)||2==r&&Yn(t)))switch(n&&0s;++s)r[s]=e.charCodeAt(n++)|e.charCodeAt(n++)<<8|e.charCodeAt(n++)<<16|e.charCodeAt(n++)<<24;else for(s=0;16>s;++s)r[s]=e[n++]|e[n++]<<8|e[n++]<<16|e[n++]<<24;e=t.g[0],n=t.g[1],s=t.g[2];var i=t.g[3],o=e+(i^n&(s^i))+r[0]+3614090360&4294967295;o=(n=(s=(i=(e=(n=(s=(i=(e=(n=(s=(i=(e=(n=(s=(i=(e=(n=(s=(i=(e=(n=(s=(i=(e=(n=(s=(i=(e=(n=(s=(i=(e=(n=(s=(i=(e=(n=(s=(i=(e=(n=(s=(i=(e=(n=(s=(i=(e=(n=(s=(i=(e=(n=(s=(i=(e=(n=(s=(i=(e=n+(o<<7&4294967295|o>>>25))+((o=i+(s^e&(n^s))+r[1]+3905402710&4294967295)<<12&4294967295|o>>>20))+((o=s+(n^i&(e^n))+r[2]+606105819&4294967295)<<17&4294967295|o>>>15))+((o=n+(e^s&(i^e))+r[3]+3250441966&4294967295)<<22&4294967295|o>>>10))+((o=e+(i^n&(s^i))+r[4]+4118548399&4294967295)<<7&4294967295|o>>>25))+((o=i+(s^e&(n^s))+r[5]+1200080426&4294967295)<<12&4294967295|o>>>20))+((o=s+(n^i&(e^n))+r[6]+2821735955&4294967295)<<17&4294967295|o>>>15))+((o=n+(e^s&(i^e))+r[7]+4249261313&4294967295)<<22&4294967295|o>>>10))+((o=e+(i^n&(s^i))+r[8]+1770035416&4294967295)<<7&4294967295|o>>>25))+((o=i+(s^e&(n^s))+r[9]+2336552879&4294967295)<<12&4294967295|o>>>20))+((o=s+(n^i&(e^n))+r[10]+4294925233&4294967295)<<17&4294967295|o>>>15))+((o=n+(e^s&(i^e))+r[11]+2304563134&4294967295)<<22&4294967295|o>>>10))+((o=e+(i^n&(s^i))+r[12]+1804603682&4294967295)<<7&4294967295|o>>>25))+((o=i+(s^e&(n^s))+r[13]+4254626195&4294967295)<<12&4294967295|o>>>20))+((o=s+(n^i&(e^n))+r[14]+2792965006&4294967295)<<17&4294967295|o>>>15))+((o=n+(e^s&(i^e))+r[15]+1236535329&4294967295)<<22&4294967295|o>>>10))+((o=e+(s^i&(n^s))+r[1]+4129170786&4294967295)<<5&4294967295|o>>>27))+((o=i+(n^s&(e^n))+r[6]+3225465664&4294967295)<<9&4294967295|o>>>23))+((o=s+(e^n&(i^e))+r[11]+643717713&4294967295)<<14&4294967295|o>>>18))+((o=n+(i^e&(s^i))+r[0]+3921069994&4294967295)<<20&4294967295|o>>>12))+((o=e+(s^i&(n^s))+r[5]+3593408605&4294967295)<<5&4294967295|o>>>27))+((o=i+(n^s&(e^n))+r[10]+38016083&4294967295)<<9&4294967295|o>>>23))+((o=s+(e^n&(i^e))+r[15]+3634488961&4294967295)<<14&4294967295|o>>>18))+((o=n+(i^e&(s^i))+r[4]+3889429448&4294967295)<<20&4294967295|o>>>12))+((o=e+(s^i&(n^s))+r[9]+568446438&4294967295)<<5&4294967295|o>>>27))+((o=i+(n^s&(e^n))+r[14]+3275163606&4294967295)<<9&4294967295|o>>>23))+((o=s+(e^n&(i^e))+r[3]+4107603335&4294967295)<<14&4294967295|o>>>18))+((o=n+(i^e&(s^i))+r[8]+1163531501&4294967295)<<20&4294967295|o>>>12))+((o=e+(s^i&(n^s))+r[13]+2850285829&4294967295)<<5&4294967295|o>>>27))+((o=i+(n^s&(e^n))+r[2]+4243563512&4294967295)<<9&4294967295|o>>>23))+((o=s+(e^n&(i^e))+r[7]+1735328473&4294967295)<<14&4294967295|o>>>18))+((o=n+(i^e&(s^i))+r[12]+2368359562&4294967295)<<20&4294967295|o>>>12))+((o=e+(n^s^i)+r[5]+4294588738&4294967295)<<4&4294967295|o>>>28))+((o=i+(e^n^s)+r[8]+2272392833&4294967295)<<11&4294967295|o>>>21))+((o=s+(i^e^n)+r[11]+1839030562&4294967295)<<16&4294967295|o>>>16))+((o=n+(s^i^e)+r[14]+4259657740&4294967295)<<23&4294967295|o>>>9))+((o=e+(n^s^i)+r[1]+2763975236&4294967295)<<4&4294967295|o>>>28))+((o=i+(e^n^s)+r[4]+1272893353&4294967295)<<11&4294967295|o>>>21))+((o=s+(i^e^n)+r[7]+4139469664&4294967295)<<16&4294967295|o>>>16))+((o=n+(s^i^e)+r[10]+3200236656&4294967295)<<23&4294967295|o>>>9))+((o=e+(n^s^i)+r[13]+681279174&4294967295)<<4&4294967295|o>>>28))+((o=i+(e^n^s)+r[0]+3936430074&4294967295)<<11&4294967295|o>>>21))+((o=s+(i^e^n)+r[3]+3572445317&4294967295)<<16&4294967295|o>>>16))+((o=n+(s^i^e)+r[6]+76029189&4294967295)<<23&4294967295|o>>>9))+((o=e+(n^s^i)+r[9]+3654602809&4294967295)<<4&4294967295|o>>>28))+((o=i+(e^n^s)+r[12]+3873151461&4294967295)<<11&4294967295|o>>>21))+((o=s+(i^e^n)+r[15]+530742520&4294967295)<<16&4294967295|o>>>16))+((o=n+(s^i^e)+r[2]+3299628645&4294967295)<<23&4294967295|o>>>9))+((o=e+(s^(n|~i))+r[0]+4096336452&4294967295)<<6&4294967295|o>>>26))+((o=i+(n^(e|~s))+r[7]+1126891415&4294967295)<<10&4294967295|o>>>22))+((o=s+(e^(i|~n))+r[14]+2878612391&4294967295)<<15&4294967295|o>>>17))+((o=n+(i^(s|~e))+r[5]+4237533241&4294967295)<<21&4294967295|o>>>11))+((o=e+(s^(n|~i))+r[12]+1700485571&4294967295)<<6&4294967295|o>>>26))+((o=i+(n^(e|~s))+r[3]+2399980690&4294967295)<<10&4294967295|o>>>22))+((o=s+(e^(i|~n))+r[10]+4293915773&4294967295)<<15&4294967295|o>>>17))+((o=n+(i^(s|~e))+r[1]+2240044497&4294967295)<<21&4294967295|o>>>11))+((o=e+(s^(n|~i))+r[8]+1873313359&4294967295)<<6&4294967295|o>>>26))+((o=i+(n^(e|~s))+r[15]+4264355552&4294967295)<<10&4294967295|o>>>22))+((o=s+(e^(i|~n))+r[6]+2734768916&4294967295)<<15&4294967295|o>>>17))+((o=n+(i^(s|~e))+r[13]+1309151649&4294967295)<<21&4294967295|o>>>11))+((i=(e=n+((o=e+(s^(n|~i))+r[4]+4149444226&4294967295)<<6&4294967295|o>>>26))+((o=i+(n^(e|~s))+r[11]+3174756917&4294967295)<<10&4294967295|o>>>22))^((s=i+((o=s+(e^(i|~n))+r[2]+718787259&4294967295)<<15&4294967295|o>>>17))|~e))+r[9]+3951481745&4294967295,t.g[0]=t.g[0]+e&4294967295,t.g[1]=t.g[1]+(s+(o<<21&4294967295|o>>>11))&4294967295,t.g[2]=t.g[2]+s&4294967295,t.g[3]=t.g[3]+i&4294967295}function gr(t,e){this.h=e;for(var n=[],r=!0,s=t.length-1;0<=s;s--){var i=0|t[s];r&&i==e||(n[s]=i,r=!1)}this.g=n}(C=Cn.prototype).Oa=function(t){this.M=t},C.ha=function(t,e,n,r){if(this.g)throw Error("[goog.net.XhrIo] Object is active with another request="+this.I+"; newUri="+t);e=e?e.toUpperCase():"GET",this.I=t,this.j="",this.m=0,this.F=!1,this.h=!0,this.g=this.u?this.u.g():we.g(),this.C=this.u?pe(this.u):pe(we),this.g.onreadystatechange=O(this.La,this);try{this.G=!0,this.g.open(e,String(t),!0),this.G=!1}catch(t){return void kn(this,t)}if(t=n||"",n=new Map(this.headers),r)if(Object.getPrototypeOf(r)===Object.prototype)for(var s in r)n.set(s,r[s]);else{if("function"!=typeof r.keys||"function"!=typeof r.get)throw Error("Unknown input type for opt_headers: "+String(r));for(const t of r.keys())n.set(t,r.get(t))}r=Array.from(n.keys()).find((t=>"content-type"==t.toLowerCase())),s=N.FormData&&t instanceof N.FormData,!(0<=q(Nn,e))||r||s||n.set("Content-Type","application/x-www-form-urlencoded;charset=utf-8");for(const[t,e]of n)this.g.setRequestHeader(t,e);this.K&&(this.g.responseType=this.K),"withCredentials"in this.g&&this.g.withCredentials!==this.M&&(this.g.withCredentials=this.M);try{On(this),0=this.S)){var t=2*this.S;this.l.info("BP detection timer enabled: "+t),this.B=de(O(this.jb,this),t)}},C.jb=function(){this.B&&(this.B=null,this.l.info("BP detection timeout reached."),this.l.info("Buffering proxy detected and switch to long-polling!"),this.G=!1,this.M=!0,le(10),Gn(this),Jn(this))},C.ib=function(){null!=this.v&&(this.v=null,Gn(this),Yn(this),le(19))},C.pb=function(t){t?(this.l.info("Successfully pinged google.com"),le(2)):(this.l.info("Failed to ping google.com"),le(1))},C.isActive=function(){return!!this.h&&this.h.isActive(this)},(C=or.prototype).Ba=function(){},C.Aa=function(){},C.za=function(){},C.ya=function(){},C.isActive=function(){return!0},C.Va=function(){},ar.prototype.g=function(t,e){return new ur(t,e)},F(ur,Mt),ur.prototype.m=function(){this.g.h=this.j,this.A&&(this.g.J=!0);var t=this.g,e=this.l,n=this.h||void 0;le(0),t.Y=e,t.na=n||{},t.G=t.aa,t.I=sr(t,null,t.Y),Kn(t)},ur.prototype.close=function(){zn(this.g)},ur.prototype.u=function(t){var e=this.g;if("string"==typeof t){var n={};n.__data__=t,t=n}else this.v&&((n={}).__data__=Pt(t),t=n);e.j.push(new class{constructor(t,e){this.g=t,this.map=e}}(e.fb++,t)),3==e.H&&Kn(e)},ur.prototype.N=function(){this.g.h=null,delete this.j,zn(this.g),delete this.g,ur.$.N.call(this)},F(cr,be),F(lr,_e),F(hr,or),hr.prototype.Ba=function(){Lt(this.g,"a")},hr.prototype.Aa=function(t){Lt(this.g,new cr(t))},hr.prototype.za=function(t){Lt(this.g,new lr)},hr.prototype.ya=function(){Lt(this.g,"b")},F(dr,(function(){this.blockSize=-1})),dr.prototype.reset=function(){this.g[0]=1732584193,this.g[1]=4023233417,this.g[2]=2562383102,this.g[3]=271733878,this.i=this.h=0},dr.prototype.j=function(t,e){void 0===e&&(e=t.length);for(var n=e-this.blockSize,r=this.m,s=this.h,i=0;ithis.h?this.blockSize:2*this.blockSize)-this.h);t[0]=128;for(var e=1;ee;++e)for(var r=0;32>r;r+=8)t[n++]=this.g[e]>>>r&255;return t};var mr={};function pr(t){return-128<=t&&128>t?function(t,e){var n=mr;return Object.prototype.hasOwnProperty.call(n,t)?n[t]:n[t]=e(t)}(t,(function(t){return new gr([0|t],0>t?-1:0)})):new gr([0|t],0>t?-1:0)}function yr(t){if(isNaN(t)||!isFinite(t))return vr;if(0>t)return Tr(yr(-t));for(var e=[],n=1,r=0;t>=n;r++)e[r]=t/n|0,n*=wr;return new gr(e,0)}var wr=4294967296,vr=pr(0),br=pr(1),_r=pr(16777216);function Ir(t){if(0!=t.h)return!1;for(var e=0;e>>16,t[e]&=65535,e++}function Cr(t,e){this.g=t,this.h=e}function Dr(t,e){if(Ir(e))throw Error("division by zero");if(Ir(t))return new Cr(vr,vr);if(Er(t))return e=Dr(Tr(t),e),new Cr(Tr(e.g),Tr(e.h));if(Er(e))return e=Dr(t,Tr(e)),new Cr(Tr(e.g),e.h);if(30=r.X(t);)n=Ar(n),r=Ar(r);var s=Nr(n,1),i=Nr(r,1);for(r=Nr(r,2),n=Nr(n,2);!Ir(r);){var o=i.add(r);0>=o.X(t)&&(s=s.add(n),i=o),r=Nr(r,1),n=Nr(n,1)}return e=Sr(t,s.R(e)),new Cr(s,e)}for(s=vr;0<=t.X(e);){for(n=Math.max(1,Math.floor(t.ea()/e.ea())),r=48>=(r=Math.ceil(Math.log(n)/Math.LN2))?1:Math.pow(2,r-48),o=(i=yr(n)).R(e);Er(o)||0>>31;return new gr(n,t.h)}function Nr(t,e){var n=e>>5;e%=32;for(var r=t.g.length-n,s=[],i=0;i>>e|t.D(i+n+1)<<32-e:t.D(i+n);return new gr(s,t.h)}(C=gr.prototype).ea=function(){if(Er(this))return-Tr(this).ea();for(var t=0,e=1,n=0;n(t=t||10)||36>>0).toString(t);if(Ir(n=s))return i+r;for(;6>i.length;)i="0"+i;r=i+r}},C.D=function(t){return 0>t?0:t>>16)+(this.D(s)>>>16)+(t.D(s)>>>16);r=o>>>16,i&=65535,o&=65535,n[s]=o<<16|i}return new gr(n,-2147483648&n[n.length-1]?-1:0)},C.R=function(t){if(Ir(this)||Ir(t))return vr;if(Er(this))return Er(t)?Tr(this).R(Tr(t)):Tr(Tr(this).R(t));if(Er(t))return Tr(this.R(Tr(t)));if(0>this.X(_r)&&0>t.X(_r))return yr(this.ea()*t.ea());for(var e=this.g.length+t.g.length,n=[],r=0;r<2*e;r++)n[r]=0;for(r=0;r>>16,o=65535&this.D(r),a=t.D(s)>>>16,u=65535&t.D(s);n[2*r+2*s]+=o*u,xr(n,2*r+2*s),n[2*r+2*s+1]+=i*u,xr(n,2*r+2*s+1),n[2*r+2*s+1]+=o*a,xr(n,2*r+2*s+1),n[2*r+2*s+2]+=i*a,xr(n,2*r+2*s+2)}for(r=0;r(n=n||10)||36o?(o=yr(Math.pow(n,o)),s=s.R(o).add(yr(a))):s=(s=s.R(r)).add(yr(a))}return s};var kr=fe,Rr=ge,Mr=se,Lr=ye,Or=Cn,Pr=dr,Fr=gr;const Vr="@firebase/firestore";class qr{constructor(t){this.uid=t}isAuthenticated(){return null!=this.uid}toKey(){return this.isAuthenticated()?"uid:"+this.uid:"anonymous-user"}isEqual(t){return t.uid===this.uid}}qr.UNAUTHENTICATED=new qr(null),qr.GOOGLE_CREDENTIALS=new qr("google-credentials-uid"),qr.FIRST_PARTY=new qr("first-party-uid"),qr.MOCK_USER=new qr("mock-user");let Br="10.8.0";const Ur=new class{constructor(t){this.name=t,this._logLevel=T,this._logHandler=x,this._userLogHandler=null}get logLevel(){return this._logLevel}set logLevel(t){if(!(t in _))throw new TypeError(`Invalid value "${t}" assigned to \`logLevel\``);this._logLevel=t}setLogLevel(t){this._logLevel="string"==typeof t?E[t]:t}get logHandler(){return this._logHandler}set logHandler(t){if("function"!=typeof t)throw new TypeError("Value assigned to `logHandler` must be a function");this._logHandler=t}get userLogHandler(){return this._userLogHandler}set userLogHandler(t){this._userLogHandler=t}debug(...t){this._userLogHandler&&this._userLogHandler(this,_.DEBUG,...t),this._logHandler(this,_.DEBUG,...t)}log(...t){this._userLogHandler&&this._userLogHandler(this,_.VERBOSE,...t),this._logHandler(this,_.VERBOSE,...t)}info(...t){this._userLogHandler&&this._userLogHandler(this,_.INFO,...t),this._logHandler(this,_.INFO,...t)}warn(...t){this._userLogHandler&&this._userLogHandler(this,_.WARN,...t),this._logHandler(this,_.WARN,...t)}error(...t){this._userLogHandler&&this._userLogHandler(this,_.ERROR,...t),this._logHandler(this,_.ERROR,...t)}}("@firebase/firestore");function zr(){return Ur.logLevel}function Gr(t){Ur.setLogLevel(t)}function jr(t,...e){if(Ur.logLevel<=_.DEBUG){const n=e.map(Qr);Ur.debug(`Firestore (${Br}): ${t}`,...n)}}function Kr(t,...e){if(Ur.logLevel<=_.ERROR){const n=e.map(Qr);Ur.error(`Firestore (${Br}): ${t}`,...n)}}function $r(t,...e){if(Ur.logLevel<=_.WARN){const n=e.map(Qr);Ur.warn(`Firestore (${Br}): ${t}`,...n)}}function Qr(t){if("string"==typeof t)return t;try{return function(t){return JSON.stringify(t)}(t)}catch(e){return t}}function Hr(t="Unexpected state"){const e=`FIRESTORE (${Br}) INTERNAL ASSERTION FAILED: `+t;throw Kr(e),new Error(e)}function Wr(t,e){t||Hr()}function Yr(t,e){t||Hr()}function Xr(t,e){return t}const Jr={OK:"ok",CANCELLED:"cancelled",UNKNOWN:"unknown",INVALID_ARGUMENT:"invalid-argument",DEADLINE_EXCEEDED:"deadline-exceeded",NOT_FOUND:"not-found",ALREADY_EXISTS:"already-exists",PERMISSION_DENIED:"permission-denied",UNAUTHENTICATED:"unauthenticated",RESOURCE_EXHAUSTED:"resource-exhausted",FAILED_PRECONDITION:"failed-precondition",ABORTED:"aborted",OUT_OF_RANGE:"out-of-range",UNIMPLEMENTED:"unimplemented",INTERNAL:"internal",UNAVAILABLE:"unavailable",DATA_LOSS:"data-loss"};class Zr extends g{constructor(t,e){super(t,e),this.code=t,this.message=e,this.toString=()=>`${this.name}: [code=${this.code}]: ${this.message}`}}class ts{constructor(){this.promise=new Promise(((t,e)=>{this.resolve=t,this.reject=e}))}}class es{constructor(t,e){this.user=e,this.type="OAuth",this.headers=new Map,this.headers.set("Authorization",`Bearer ${t}`)}}class ns{getToken(){return Promise.resolve(null)}invalidateToken(){}start(t,e){t.enqueueRetryable((()=>e(qr.UNAUTHENTICATED)))}shutdown(){}}class rs{constructor(t){this.token=t,this.changeListener=null}getToken(){return Promise.resolve(this.token)}invalidateToken(){}start(t,e){this.changeListener=e,t.enqueueRetryable((()=>e(this.token.user)))}shutdown(){this.changeListener=null}}class ss{constructor(t){this.t=t,this.currentUser=qr.UNAUTHENTICATED,this.i=0,this.forceRefresh=!1,this.auth=null}start(t,e){let n=this.i;const r=t=>this.i!==n?(n=this.i,e(t)):Promise.resolve();let s=new ts;this.o=()=>{this.i++,this.currentUser=this.u(),s.resolve(),s=new ts,t.enqueueRetryable((()=>r(this.currentUser)))};const i=()=>{const e=s;t.enqueueRetryable((async()=>{await e.promise,await r(this.currentUser)}))},o=t=>{jr("FirebaseAuthCredentialsProvider","Auth detected"),this.auth=t,this.auth.addAuthTokenListener(this.o),i()};this.t.onInit((t=>o(t))),setTimeout((()=>{if(!this.auth){const t=this.t.getImmediate({optional:!0});t?o(t):(jr("FirebaseAuthCredentialsProvider","Auth not yet detected"),s.resolve(),s=new ts)}}),0),i()}getToken(){const t=this.i,e=this.forceRefresh;return this.forceRefresh=!1,this.auth?this.auth.getToken(e).then((e=>this.i!==t?(jr("FirebaseAuthCredentialsProvider","getToken aborted due to token change."),this.getToken()):e?(Wr("string"==typeof e.accessToken),new es(e.accessToken,this.currentUser)):null)):Promise.resolve(null)}invalidateToken(){this.forceRefresh=!0}shutdown(){this.auth&&this.auth.removeAuthTokenListener(this.o)}u(){const t=this.auth&&this.auth.getUid();return Wr(null===t||"string"==typeof t),new qr(t)}}class is{constructor(t,e,n){this.l=t,this.h=e,this.P=n,this.type="FirstParty",this.user=qr.FIRST_PARTY,this.I=new Map}T(){return this.P?this.P():null}get headers(){this.I.set("X-Goog-AuthUser",this.l);const t=this.T();return t&&this.I.set("Authorization",t),this.h&&this.I.set("X-Goog-Iam-Authorization-Token",this.h),this.I}}class os{constructor(t,e,n){this.l=t,this.h=e,this.P=n}getToken(){return Promise.resolve(new is(this.l,this.h,this.P))}start(t,e){t.enqueueRetryable((()=>e(qr.FIRST_PARTY)))}shutdown(){}invalidateToken(){}}class as{constructor(t){this.value=t,this.type="AppCheck",this.headers=new Map,t&&t.length>0&&this.headers.set("x-firebase-appcheck",this.value)}}class us{constructor(t){this.A=t,this.forceRefresh=!1,this.appCheck=null,this.R=null}start(t,e){const n=t=>{null!=t.error&&jr("FirebaseAppCheckTokenProvider",`Error getting App Check token; using placeholder token instead. Error: ${t.error.message}`);const n=t.token!==this.R;return this.R=t.token,jr("FirebaseAppCheckTokenProvider",`Received ${n?"new":"existing"} token.`),n?e(t.token):Promise.resolve()};this.o=e=>{t.enqueueRetryable((()=>n(e)))};const r=t=>{jr("FirebaseAppCheckTokenProvider","AppCheck detected"),this.appCheck=t,this.appCheck.addTokenListener(this.o)};this.A.onInit((t=>r(t))),setTimeout((()=>{if(!this.appCheck){const t=this.A.getImmediate({optional:!0});t?r(t):jr("FirebaseAppCheckTokenProvider","AppCheck not yet detected")}}),0)}getToken(){const t=this.forceRefresh;return this.forceRefresh=!1,this.appCheck?this.appCheck.getToken(t).then((t=>t?(Wr("string"==typeof t.token),this.R=t.token,new as(t.token)):null)):Promise.resolve(null)}invalidateToken(){this.forceRefresh=!0}shutdown(){this.appCheck&&this.appCheck.removeTokenListener(this.o)}}class cs{getToken(){return Promise.resolve(new as(""))}invalidateToken(){}start(t,e){}shutdown(){}}function ls(t){const e="undefined"!=typeof self&&(self.crypto||self.msCrypto),n=new Uint8Array(t);if(e&&"function"==typeof e.getRandomValues)e.getRandomValues(n);else for(let e=0;ee?1:0}function fs(t,e,n){return t.length===e.length&&t.every(((t,r)=>n(t,e[r])))}function gs(t){return t+"\0"}class ms{constructor(t,e){if(this.seconds=t,this.nanoseconds=e,e<0)throw new Zr(Jr.INVALID_ARGUMENT,"Timestamp nanoseconds out of range: "+e);if(e>=1e9)throw new Zr(Jr.INVALID_ARGUMENT,"Timestamp nanoseconds out of range: "+e);if(t<-62135596800)throw new Zr(Jr.INVALID_ARGUMENT,"Timestamp seconds out of range: "+t);if(t>=253402300800)throw new Zr(Jr.INVALID_ARGUMENT,"Timestamp seconds out of range: "+t)}static now(){return ms.fromMillis(Date.now())}static fromDate(t){return ms.fromMillis(t.getTime())}static fromMillis(t){const e=Math.floor(t/1e3),n=Math.floor(1e6*(t-1e3*e));return new ms(e,n)}toDate(){return new Date(this.toMillis())}toMillis(){return 1e3*this.seconds+this.nanoseconds/1e6}_compareTo(t){return this.seconds===t.seconds?ds(this.nanoseconds,t.nanoseconds):ds(this.seconds,t.seconds)}isEqual(t){return t.seconds===this.seconds&&t.nanoseconds===this.nanoseconds}toString(){return"Timestamp(seconds="+this.seconds+", nanoseconds="+this.nanoseconds+")"}toJSON(){return{seconds:this.seconds,nanoseconds:this.nanoseconds}}valueOf(){const t=this.seconds- -62135596800;return String(t).padStart(12,"0")+"."+String(this.nanoseconds).padStart(9,"0")}}class ps{constructor(t){this.timestamp=t}static fromTimestamp(t){return new ps(t)}static min(){return new ps(new ms(0,0))}static max(){return new ps(new ms(253402300799,999999999))}compareTo(t){return this.timestamp._compareTo(t.timestamp)}isEqual(t){return this.timestamp.isEqual(t.timestamp)}toMicroseconds(){return 1e6*this.timestamp.seconds+this.timestamp.nanoseconds/1e3}toString(){return"SnapshotVersion("+this.timestamp.toString()+")"}toTimestamp(){return this.timestamp}}class ys{constructor(t,e,n){void 0===e?e=0:e>t.length&&Hr(),void 0===n?n=t.length-e:n>t.length-e&&Hr(),this.segments=t,this.offset=e,this.len=n}get length(){return this.len}isEqual(t){return 0===ys.comparator(this,t)}child(t){const e=this.segments.slice(this.offset,this.limit());return t instanceof ys?t.forEach((t=>{e.push(t)})):e.push(t),this.construct(e)}limit(){return this.offset+this.length}popFirst(t){return t=void 0===t?1:t,this.construct(this.segments,this.offset+t,this.length-t)}popLast(){return this.construct(this.segments,this.offset,this.length-1)}firstSegment(){return this.segments[this.offset]}lastSegment(){return this.get(this.length-1)}get(t){return this.segments[this.offset+t]}isEmpty(){return 0===this.length}isPrefixOf(t){if(t.lengths)return 1}return t.lengthe.length?1:0}}class ws extends ys{construct(t,e,n){return new ws(t,e,n)}canonicalString(){return this.toArray().join("/")}toString(){return this.canonicalString()}toUriEncodedString(){return this.toArray().map(encodeURIComponent).join("/")}static fromString(...t){const e=[];for(const n of t){if(n.indexOf("//")>=0)throw new Zr(Jr.INVALID_ARGUMENT,`Invalid segment (${n}). Paths must not contain // in them.`);e.push(...n.split("/").filter((t=>t.length>0)))}return new ws(e)}static emptyPath(){return new ws([])}}const vs=/^[_a-zA-Z][_a-zA-Z0-9]*$/;class bs extends ys{construct(t,e,n){return new bs(t,e,n)}static isValidIdentifier(t){return vs.test(t)}canonicalString(){return this.toArray().map((t=>(t=t.replace(/\\/g,"\\\\").replace(/`/g,"\\`"),bs.isValidIdentifier(t)||(t="`"+t+"`"),t))).join(".")}toString(){return this.canonicalString()}isKeyField(){return 1===this.length&&"__name__"===this.get(0)}static keyField(){return new bs(["__name__"])}static fromServerFormat(t){const e=[];let n="",r=0;const s=()=>{if(0===n.length)throw new Zr(Jr.INVALID_ARGUMENT,`Invalid field path (${t}). Paths must not be empty, begin with '.', end with '.', or contain '..'`);e.push(n),n=""};let i=!1;for(;r=2&&this.path.get(this.path.length-2)===t}getCollectionGroup(){return this.path.get(this.path.length-2)}getCollectionPath(){return this.path.popLast()}isEqual(t){return null!==t&&0===ws.comparator(this.path,t.path)}toString(){return this.path.toString()}static comparator(t,e){return ws.comparator(t.path,e.path)}static isDocumentKey(t){return t.length%2==0}static fromSegments(t){return new _s(new ws(t.slice()))}}class Is{constructor(t,e,n,r){this.indexId=t,this.collectionGroup=e,this.fields=n,this.indexState=r}}function Es(t){return t.fields.find((t=>2===t.kind))}function Ts(t){return t.fields.filter((t=>2!==t.kind))}function Ss(t,e){let n=ds(t.collectionGroup,e.collectionGroup);if(0!==n)return n;for(let r=0;rt()))}}async function Os(t){if(t.code!==Jr.FAILED_PRECONDITION||t.message!==Ms)throw t;jr("LocalStore","Unexpectedly lost primary lease")}class Ps{constructor(t){this.nextCallback=null,this.catchCallback=null,this.result=void 0,this.error=void 0,this.isDone=!1,this.callbackAttached=!1,t((t=>{this.isDone=!0,this.result=t,this.nextCallback&&this.nextCallback(t)}),(t=>{this.isDone=!0,this.error=t,this.catchCallback&&this.catchCallback(t)}))}catch(t){return this.next(void 0,t)}next(t,e){return this.callbackAttached&&Hr(),this.callbackAttached=!0,this.isDone?this.error?this.wrapFailure(e,this.error):this.wrapSuccess(t,this.result):new Ps(((n,r)=>{this.nextCallback=e=>{this.wrapSuccess(t,e).next(n,r)},this.catchCallback=t=>{this.wrapFailure(e,t).next(n,r)}}))}toPromise(){return new Promise(((t,e)=>{this.next(t,e)}))}wrapUserFunction(t){try{const e=t();return e instanceof Ps?e:Ps.resolve(e)}catch(t){return Ps.reject(t)}}wrapSuccess(t,e){return t?this.wrapUserFunction((()=>t(e))):Ps.resolve(e)}wrapFailure(t,e){return t?this.wrapUserFunction((()=>t(e))):Ps.reject(e)}static resolve(t){return new Ps(((e,n)=>{e(t)}))}static reject(t){return new Ps(((e,n)=>{n(t)}))}static waitFor(t){return new Ps(((e,n)=>{let r=0,s=0,i=!1;t.forEach((t=>{++r,t.next((()=>{++s,i&&s===r&&e()}),(t=>n(t)))})),i=!0,s===r&&e()}))}static or(t){let e=Ps.resolve(!1);for(const n of t)e=e.next((t=>t?Ps.resolve(t):n()));return e}static forEach(t,e){const n=[];return t.forEach(((t,r)=>{n.push(e.call(this,t,r))})),this.waitFor(n)}static mapArray(t,e){return new Ps(((n,r)=>{const s=t.length,i=new Array(s);let o=0;for(let a=0;a{i[u]=t,++o,o===s&&n(i)}),(t=>r(t)))}}))}static doWhile(t,e){return new Ps(((n,r)=>{const s=()=>{!0===t()?e().next((()=>{s()}),r):n()};s()}))}}class Fs{constructor(t,e){this.action=t,this.transaction=e,this.aborted=!1,this.V=new ts,this.transaction.oncomplete=()=>{this.V.resolve()},this.transaction.onabort=()=>{e.error?this.V.reject(new Bs(t,e.error)):this.V.resolve()},this.transaction.onerror=e=>{const n=Ks(e.target.error);this.V.reject(new Bs(t,n))}}static open(t,e,n,r){try{return new Fs(e,t.transaction(r,n))}catch(t){throw new Bs(e,t)}}get m(){return this.V.promise}abort(t){t&&this.V.reject(t),this.aborted||(jr("SimpleDb","Aborting transaction:",t?t.message:"Client-initiated abort"),this.aborted=!0,this.transaction.abort())}g(){const t=this.transaction;this.aborted||"function"!=typeof t.commit||t.commit()}store(t){const e=this.transaction.objectStore(t);return new zs(e)}}class Vs{constructor(t,e,n){this.name=t,this.version=e,this.p=n,12.2===Vs.S(d())&&Kr("Firestore persistence suffers from a bug in iOS 12.2 Safari that may cause your app to stop working. See https://stackoverflow.com/q/56496296/110915 for details and a potential workaround.")}static delete(t){return jr("SimpleDb","Removing database:",t),Gs(window.indexedDB.deleteDatabase(t)).toPromise()}static D(){if(!function(){try{return"object"==typeof indexedDB}catch(t){return!1}}())return!1;if(Vs.C())return!0;const t=d(),e=Vs.S(t),n=00||t.indexOf("Trident/")>0||t.indexOf("Edge/")>0||n||s)}static C(){var t;return void 0!==o&&"YES"===(null===(t=o.__PRIVATE_env)||void 0===t?void 0:t.F)}static M(t,e){return t.store(e)}static S(t){const e=t.match(/i(?:phone|pad|pod) os ([\d_]+)/i),n=e?e[1].split("_").slice(0,2).join("."):"-1";return Number(n)}static v(t){const e=t.match(/Android ([\d.]+)/i),n=e?e[1].split(".").slice(0,2).join("."):"-1";return Number(n)}async O(t){return this.db||(jr("SimpleDb","Opening database:",this.name),this.db=await new Promise(((e,n)=>{const r=indexedDB.open(this.name,this.version);r.onsuccess=t=>{const n=t.target.result;e(n)},r.onblocked=()=>{n(new Bs(t,"Cannot upgrade IndexedDB schema while another tab is open. Close all tabs that access Firestore and reload this page to proceed."))},r.onerror=e=>{const r=e.target.error;"VersionError"===r.name?n(new Zr(Jr.FAILED_PRECONDITION,"A newer version of the Firestore SDK was previously used and so the persisted data is not compatible with the version of the SDK you are now using. The SDK will operate with persistence disabled. If you need persistence, please re-upgrade to a newer version of the SDK or else clear the persisted IndexedDB data for your app to start fresh.")):"InvalidStateError"===r.name?n(new Zr(Jr.FAILED_PRECONDITION,"Unable to open an IndexedDB connection. This could be due to running in a private browsing session on a browser whose private browsing sessions do not support IndexedDB: "+r)):n(new Bs(t,r))},r.onupgradeneeded=t=>{jr("SimpleDb",'Database "'+this.name+'" requires upgrade from version:',t.oldVersion);const e=t.target.result;this.p.N(e,r.transaction,t.oldVersion,this.version).next((()=>{jr("SimpleDb","Database upgrade to version "+this.version+" complete")}))}}))),this.B&&(this.db.onversionchange=t=>this.B(t)),this.db}L(t){this.B=t,this.db&&(this.db.onversionchange=e=>t(e))}async runTransaction(t,e,n,r){const s="readonly"===e;let i=0;for(;;){++i;try{this.db=await this.O(t);const e=Fs.open(this.db,t,s?"readonly":"readwrite",n),i=r(e).next((t=>(e.g(),t))).catch((t=>(e.abort(t),Ps.reject(t)))).toPromise();return i.catch((()=>{})),await e.m,i}catch(t){const e=t,n="FirebaseError"!==e.name&&i<3;if(jr("SimpleDb","Transaction failed with error:",e.message,"Retrying:",n),this.close(),!n)return Promise.reject(e)}}}close(){this.db&&this.db.close(),this.db=void 0}}class qs{constructor(t){this.k=t,this.q=!1,this.K=null}get isDone(){return this.q}get $(){return this.K}set cursor(t){this.k=t}done(){this.q=!0}U(t){this.K=t}delete(){return Gs(this.k.delete())}}class Bs extends Zr{constructor(t,e){super(Jr.UNAVAILABLE,`IndexedDB transaction '${t}' failed: ${e}`),this.name="IndexedDbTransactionError"}}function Us(t){return"IndexedDbTransactionError"===t.name}class zs{constructor(t){this.store=t}put(t,e){let n;return void 0!==e?(jr("SimpleDb","PUT",this.store.name,t,e),n=this.store.put(e,t)):(jr("SimpleDb","PUT",this.store.name,"",t),n=this.store.put(t)),Gs(n)}add(t){return jr("SimpleDb","ADD",this.store.name,t,t),Gs(this.store.add(t))}get(t){return Gs(this.store.get(t)).next((e=>(void 0===e&&(e=null),jr("SimpleDb","GET",this.store.name,t,e),e)))}delete(t){return jr("SimpleDb","DELETE",this.store.name,t),Gs(this.store.delete(t))}count(){return jr("SimpleDb","COUNT",this.store.name),Gs(this.store.count())}W(t,e){const n=this.options(t,e),r=n.index?this.store.index(n.index):this.store;if("function"==typeof r.getAll){const t=r.getAll(n.range);return new Ps(((e,n)=>{t.onerror=t=>{n(t.target.error)},t.onsuccess=t=>{e(t.target.result)}}))}{const t=this.cursor(n),e=[];return this.G(t,((t,n)=>{e.push(n)})).next((()=>e))}}j(t,e){const n=this.store.getAll(t,null===e?void 0:e);return new Ps(((t,e)=>{n.onerror=t=>{e(t.target.error)},n.onsuccess=e=>{t(e.target.result)}}))}H(t,e){jr("SimpleDb","DELETE ALL",this.store.name);const n=this.options(t,e);n.J=!1;const r=this.cursor(n);return this.G(r,((t,e,n)=>n.delete()))}Y(t,e){let n;e?n=t:(n={},e=t);const r=this.cursor(n);return this.G(r,e)}Z(t){const e=this.cursor({});return new Ps(((n,r)=>{e.onerror=t=>{const e=Ks(t.target.error);r(e)},e.onsuccess=e=>{const r=e.target.result;r?t(r.primaryKey,r.value).next((t=>{t?r.continue():n()})):n()}}))}G(t,e){const n=[];return new Ps(((r,s)=>{t.onerror=t=>{s(t.target.error)},t.onsuccess=t=>{const s=t.target.result;if(!s)return void r();const i=new qs(s),o=e(s.primaryKey,s.value,i);if(o instanceof Ps){const t=o.catch((t=>(i.done(),Ps.reject(t))));n.push(t)}i.isDone?r():null===i.$?s.continue():s.continue(i.$)}})).next((()=>Ps.waitFor(n)))}options(t,e){let n;return void 0!==t&&("string"==typeof t?n=t:e=t),{index:n,range:e}}cursor(t){let e="next";if(t.reverse&&(e="prev"),t.index){const n=this.store.index(t.index);return t.J?n.openKeyCursor(t.range,e):n.openCursor(t.range,e)}return this.store.openCursor(t.range,e)}}function Gs(t){return new Ps(((e,n)=>{t.onsuccess=t=>{const n=t.target.result;e(n)},t.onerror=t=>{const e=Ks(t.target.error);n(e)}}))}let js=!1;function Ks(t){const e=Vs.S(d());if(e>=12.2&&e<13){const e="An internal error was encountered in the Indexed Database server";if(t.message.indexOf(e)>=0){const t=new Zr("internal",`IOS_INDEXEDDB_BUG1: IndexedDb has thrown '${e}'. This is likely due to an unavoidable bug in iOS. See https://stackoverflow.com/q/56496296/110915 for details and a potential workaround.`);return js||(js=!0,setTimeout((()=>{throw t}),0)),t}}return t}class $s{constructor(t,e){this.asyncQueue=t,this.X=e,this.task=null}start(){this.ee(15e3)}stop(){this.task&&(this.task.cancel(),this.task=null)}get started(){return null!==this.task}ee(t){jr("IndexBackfiller",`Scheduled in ${t}ms`),this.task=this.asyncQueue.enqueueAfterDelay("index_backfill",t,(async()=>{this.task=null;try{jr("IndexBackfiller",`Documents written: ${await this.X.te()}`)}catch(t){Us(t)?jr("IndexBackfiller","Ignoring IndexedDB error during index backfill: ",t):await Os(t)}await this.ee(6e4)}))}}class Qs{constructor(t,e){this.localStore=t,this.persistence=e}async te(t=50){return this.persistence.runTransaction("Backfill Indexes","readwrite-primary",(e=>this.ne(e,t)))}ne(t,e){const n=new Set;let r=e,s=!0;return Ps.doWhile((()=>!0===s&&r>0),(()=>this.localStore.indexManager.getNextCollectionGroupToUpdate(t).next((e=>{if(null!==e&&!n.has(e))return jr("IndexBackfiller",`Processing collection: ${e}`),this.re(t,e,r).next((t=>{r-=t,n.add(e)}));s=!1})))).next((()=>e-r))}re(t,e,n){return this.localStore.indexManager.getMinOffsetFromCollectionGroup(t,e).next((r=>this.localStore.localDocuments.getNextDocuments(t,e,r,n).next((n=>{const s=n.changes;return this.localStore.indexManager.updateIndexEntries(t,s).next((()=>this.ie(r,n))).next((n=>(jr("IndexBackfiller",`Updating offset: ${n}`),this.localStore.indexManager.updateCollectionGroup(t,e,n)))).next((()=>s.size))}))))}ie(t,e){let n=t;return e.changes.forEach(((t,e)=>{const r=Ns(e);Rs(r,n)>0&&(n=r)})),new ks(n.readTime,n.documentKey,Math.max(e.batchId,t.largestBatchId))}}class Hs{constructor(t,e){this.previousValue=t,e&&(e.sequenceNumberHandler=t=>this.se(t),this.oe=t=>e.writeSequenceNumber(t))}se(t){return this.previousValue=Math.max(t,this.previousValue),this.previousValue}next(){const t=++this.previousValue;return this.oe&&this.oe(t),t}}function Ws(t){return null==t}function Ys(t){return 0===t&&1/t==-1/0}function Xs(t){return"number"==typeof t&&Number.isInteger(t)&&!Ys(t)&&t<=Number.MAX_SAFE_INTEGER&&t>=Number.MIN_SAFE_INTEGER}function Js(t){let e="";for(let n=0;n0&&(e=ti(e)),e=Zs(t.get(n),e);return ti(e)}function Zs(t,e){let n=e;const r=t.length;for(let e=0;e=2),2===e)return Wr(""===t.charAt(0)&&""===t.charAt(1)),ws.emptyPath();const n=e-2,r=[];let s="";for(let i=0;in)&&Hr(),t.charAt(e+1)){case"":const n=t.substring(i,e);let o;0===s.length?o=n:(s+=n,o=s,s=""),r.push(o);break;case"":s+=t.substring(i,e),s+="\0";break;case"":s+=t.substring(i,e+1);break;default:Hr()}i=e+2}return new ws(r)}Hs._e=-1;const ni=["userId","batchId"];function ri(t,e){return[t,Js(e)]}function si(t,e,n){return[t,Js(e),n]}const ii={},oi=["prefixPath","collectionGroup","readTime","documentId"],ai=["prefixPath","collectionGroup","documentId"],ui=["collectionGroup","readTime","prefixPath","documentId"],ci=["canonicalId","targetId"],li=["targetId","path"],hi=["path","targetId"],di=["collectionId","parent"],fi=["indexId","uid"],gi=["uid","sequenceNumber"],mi=["indexId","uid","arrayValue","directionalValue","orderedDocumentKey","documentKey"],pi=["indexId","uid","orderedDocumentKey"],yi=["userId","collectionPath","documentId"],wi=["userId","collectionPath","largestBatchId"],vi=["userId","collectionGroup","largestBatchId"],bi=["mutationQueues","mutations","documentMutations","remoteDocuments","targets","owner","targetGlobal","targetDocuments","clientMetadata","remoteDocumentGlobal","collectionParents","bundles","namedQueries"],_i=[...bi,"documentOverlays"],Ii=["mutationQueues","mutations","documentMutations","remoteDocumentsV14","targets","owner","targetGlobal","targetDocuments","clientMetadata","remoteDocumentGlobal","collectionParents","bundles","namedQueries","documentOverlays"],Ei=Ii,Ti=[...Ei,"indexConfiguration","indexState","indexEntries"];class Si extends Ls{constructor(t,e){super(),this.ae=t,this.currentSequenceNumber=e}}function xi(t,e){const n=Xr(t);return Vs.M(n.ae,e)}function Ci(t){let e=0;for(const n in t)Object.prototype.hasOwnProperty.call(t,n)&&e++;return e}function Di(t,e){for(const n in t)Object.prototype.hasOwnProperty.call(t,n)&&e(n,t[n])}function Ai(t){for(const e in t)if(Object.prototype.hasOwnProperty.call(t,e))return!1;return!0}class Ni{constructor(t,e){this.comparator=t,this.root=e||Ri.EMPTY}insert(t,e){return new Ni(this.comparator,this.root.insert(t,e,this.comparator).copy(null,null,Ri.BLACK,null,null))}remove(t){return new Ni(this.comparator,this.root.remove(t,this.comparator).copy(null,null,Ri.BLACK,null,null))}get(t){let e=this.root;for(;!e.isEmpty();){const n=this.comparator(t,e.key);if(0===n)return e.value;n<0?e=e.left:n>0&&(e=e.right)}return null}indexOf(t){let e=0,n=this.root;for(;!n.isEmpty();){const r=this.comparator(t,n.key);if(0===r)return e+n.left.size;r<0?n=n.left:(e+=n.left.size+1,n=n.right)}return-1}isEmpty(){return this.root.isEmpty()}get size(){return this.root.size}minKey(){return this.root.minKey()}maxKey(){return this.root.maxKey()}inorderTraversal(t){return this.root.inorderTraversal(t)}forEach(t){this.inorderTraversal(((e,n)=>(t(e,n),!1)))}toString(){const t=[];return this.inorderTraversal(((e,n)=>(t.push(`${e}:${n}`),!1))),`{${t.join(", ")}}`}reverseTraversal(t){return this.root.reverseTraversal(t)}getIterator(){return new ki(this.root,null,this.comparator,!1)}getIteratorFrom(t){return new ki(this.root,t,this.comparator,!1)}getReverseIterator(){return new ki(this.root,null,this.comparator,!0)}getReverseIteratorFrom(t){return new ki(this.root,t,this.comparator,!0)}}class ki{constructor(t,e,n,r){this.isReverse=r,this.nodeStack=[];let s=1;for(;!t.isEmpty();)if(s=e?n(t.key,e):1,e&&r&&(s*=-1),s<0)t=this.isReverse?t.left:t.right;else{if(0===s){this.nodeStack.push(t);break}this.nodeStack.push(t),t=this.isReverse?t.right:t.left}}getNext(){let t=this.nodeStack.pop();const e={key:t.key,value:t.value};if(this.isReverse)for(t=t.left;!t.isEmpty();)this.nodeStack.push(t),t=t.right;else for(t=t.right;!t.isEmpty();)this.nodeStack.push(t),t=t.left;return e}hasNext(){return this.nodeStack.length>0}peek(){if(0===this.nodeStack.length)return null;const t=this.nodeStack[this.nodeStack.length-1];return{key:t.key,value:t.value}}}class Ri{constructor(t,e,n,r,s){this.key=t,this.value=e,this.color=null!=n?n:Ri.RED,this.left=null!=r?r:Ri.EMPTY,this.right=null!=s?s:Ri.EMPTY,this.size=this.left.size+1+this.right.size}copy(t,e,n,r,s){return new Ri(null!=t?t:this.key,null!=e?e:this.value,null!=n?n:this.color,null!=r?r:this.left,null!=s?s:this.right)}isEmpty(){return!1}inorderTraversal(t){return this.left.inorderTraversal(t)||t(this.key,this.value)||this.right.inorderTraversal(t)}reverseTraversal(t){return this.right.reverseTraversal(t)||t(this.key,this.value)||this.left.reverseTraversal(t)}min(){return this.left.isEmpty()?this:this.left.min()}minKey(){return this.min().key}maxKey(){return this.right.isEmpty()?this.key:this.right.maxKey()}insert(t,e,n){let r=this;const s=n(t,r.key);return r=s<0?r.copy(null,null,null,r.left.insert(t,e,n),null):0===s?r.copy(null,e,null,null,null):r.copy(null,null,null,null,r.right.insert(t,e,n)),r.fixUp()}removeMin(){if(this.left.isEmpty())return Ri.EMPTY;let t=this;return t.left.isRed()||t.left.left.isRed()||(t=t.moveRedLeft()),t=t.copy(null,null,null,t.left.removeMin(),null),t.fixUp()}remove(t,e){let n,r=this;if(e(t,r.key)<0)r.left.isEmpty()||r.left.isRed()||r.left.left.isRed()||(r=r.moveRedLeft()),r=r.copy(null,null,null,r.left.remove(t,e),null);else{if(r.left.isRed()&&(r=r.rotateRight()),r.right.isEmpty()||r.right.isRed()||r.right.left.isRed()||(r=r.moveRedRight()),0===e(t,r.key)){if(r.right.isEmpty())return Ri.EMPTY;n=r.right.min(),r=r.copy(n.key,n.value,null,null,r.right.removeMin())}r=r.copy(null,null,null,null,r.right.remove(t,e))}return r.fixUp()}isRed(){return this.color}fixUp(){let t=this;return t.right.isRed()&&!t.left.isRed()&&(t=t.rotateLeft()),t.left.isRed()&&t.left.left.isRed()&&(t=t.rotateRight()),t.left.isRed()&&t.right.isRed()&&(t=t.colorFlip()),t}moveRedLeft(){let t=this.colorFlip();return t.right.left.isRed()&&(t=t.copy(null,null,null,null,t.right.rotateRight()),t=t.rotateLeft(),t=t.colorFlip()),t}moveRedRight(){let t=this.colorFlip();return t.left.left.isRed()&&(t=t.rotateRight(),t=t.colorFlip()),t}rotateLeft(){const t=this.copy(null,null,Ri.RED,null,this.right.left);return this.right.copy(null,null,this.color,t,null)}rotateRight(){const t=this.copy(null,null,Ri.RED,this.left.right,null);return this.left.copy(null,null,this.color,null,t)}colorFlip(){const t=this.left.copy(null,null,!this.left.color,null,null),e=this.right.copy(null,null,!this.right.color,null,null);return this.copy(null,null,!this.color,t,e)}checkMaxDepth(){const t=this.check();return Math.pow(2,t)<=this.size+1}check(){if(this.isRed()&&this.left.isRed())throw Hr();if(this.right.isRed())throw Hr();const t=this.left.check();if(t!==this.right.check())throw Hr();return t+(this.isRed()?0:1)}}Ri.EMPTY=null,Ri.RED=!0,Ri.BLACK=!1,Ri.EMPTY=new class{constructor(){this.size=0}get key(){throw Hr()}get value(){throw Hr()}get color(){throw Hr()}get left(){throw Hr()}get right(){throw Hr()}copy(t,e,n,r,s){return this}insert(t,e,n){return new Ri(t,e)}remove(t,e){return this}isEmpty(){return!0}inorderTraversal(t){return!1}reverseTraversal(t){return!1}minKey(){return null}maxKey(){return null}isRed(){return!1}checkMaxDepth(){return!0}check(){return 0}};class Mi{constructor(t){this.comparator=t,this.data=new Ni(this.comparator)}has(t){return null!==this.data.get(t)}first(){return this.data.minKey()}last(){return this.data.maxKey()}get size(){return this.data.size}indexOf(t){return this.data.indexOf(t)}forEach(t){this.data.inorderTraversal(((e,n)=>(t(e),!1)))}forEachInRange(t,e){const n=this.data.getIteratorFrom(t[0]);for(;n.hasNext();){const r=n.getNext();if(this.comparator(r.key,t[1])>=0)return;e(r.key)}}forEachWhile(t,e){let n;for(n=void 0!==e?this.data.getIteratorFrom(e):this.data.getIterator();n.hasNext();)if(!t(n.getNext().key))return}firstAfterOrEqual(t){const e=this.data.getIteratorFrom(t);return e.hasNext()?e.getNext().key:null}getIterator(){return new Li(this.data.getIterator())}getIteratorFrom(t){return new Li(this.data.getIteratorFrom(t))}add(t){return this.copy(this.data.remove(t).insert(t,!0))}delete(t){return this.has(t)?this.copy(this.data.remove(t)):this}isEmpty(){return this.data.isEmpty()}unionWith(t){let e=this;return e.size{e=e.add(t)})),e}isEqual(t){if(!(t instanceof Mi))return!1;if(this.size!==t.size)return!1;const e=this.data.getIterator(),n=t.data.getIterator();for(;e.hasNext();){const t=e.getNext().key,r=n.getNext().key;if(0!==this.comparator(t,r))return!1}return!0}toArray(){const t=[];return this.forEach((e=>{t.push(e)})),t}toString(){const t=[];return this.forEach((e=>t.push(e))),"SortedSet("+t.toString()+")"}copy(t){const e=new Mi(this.comparator);return e.data=t,e}}class Li{constructor(t){this.iter=t}getNext(){return this.iter.getNext().key}hasNext(){return this.iter.hasNext()}}function Oi(t){return t.hasNext()?t.getNext():void 0}class Pi{constructor(t){this.fields=t,t.sort(bs.comparator)}static empty(){return new Pi([])}unionWith(t){let e=new Mi(bs.comparator);for(const t of this.fields)e=e.add(t);for(const n of t)e=e.add(n);return new Pi(e.toArray())}covers(t){for(const e of this.fields)if(e.isPrefixOf(t))return!0;return!1}isEqual(t){return fs(this.fields,t.fields,((t,e)=>t.isEqual(e)))}}class Fi extends Error{constructor(){super(...arguments),this.name="Base64DecodeError"}}function Vi(){return"undefined"!=typeof atob}class qi{constructor(t){this.binaryString=t}static fromBase64String(t){const e=function(t){try{return atob(t)}catch(t){throw"undefined"!=typeof DOMException&&t instanceof DOMException?new Fi("Invalid base64 string: "+t):t}}(t);return new qi(e)}static fromUint8Array(t){const e=function(t){let e="";for(let n=0;ntJi(t,e)))}function to(t,e){if(t===e)return 0;const n=Xi(t),r=Xi(e);if(n!==r)return ds(n,r);switch(n){case 0:case 9007199254740991:return 0;case 1:return ds(t.booleanValue,e.booleanValue);case 2:return function(t,e){const n=zi(t.integerValue||t.doubleValue),r=zi(e.integerValue||e.doubleValue);return nr?1:n===r?0:isNaN(n)?isNaN(r)?0:-1:1}(t,e);case 3:return eo(t.timestampValue,e.timestampValue);case 4:return eo($i(t),$i(e));case 5:return ds(t.stringValue,e.stringValue);case 6:return function(t,e){const n=Gi(t),r=Gi(e);return n.compareTo(r)}(t.bytesValue,e.bytesValue);case 7:return function(t,e){const n=t.split("/"),r=e.split("/");for(let t=0;tt+so(e)),0)}(t.arrayValue);case 10:return function(t){let e=0;return Di(t.fields,((t,n)=>{e+=t.length+so(n)})),e}(t.mapValue);default:throw Hr()}}function io(t,e){return{referenceValue:`projects/${t.projectId}/databases/${t.database}/documents/${e.path.canonicalString()}`}}function oo(t){return!!t&&"integerValue"in t}function ao(t){return!!t&&"arrayValue"in t}function uo(t){return!!t&&"nullValue"in t}function co(t){return!!t&&"doubleValue"in t&&isNaN(Number(t.doubleValue))}function lo(t){return!!t&&"mapValue"in t}function ho(t){if(t.geoPointValue)return{geoPointValue:Object.assign({},t.geoPointValue)};if(t.timestampValue&&"object"==typeof t.timestampValue)return{timestampValue:Object.assign({},t.timestampValue)};if(t.mapValue){const e={mapValue:{fields:{}}};return Di(t.mapValue.fields,((t,n)=>e.mapValue.fields[t]=ho(n))),e}if(t.arrayValue){const e={arrayValue:{values:[]}};for(let n=0;n<(t.arrayValue.values||[]).length;++n)e.arrayValue.values[n]=ho(t.arrayValue.values[n]);return e}return Object.assign({},t)}function fo(t){return"__max__"===(((t.mapValue||{}).fields||{}).__type__||{}).stringValue}function go(t){return"nullValue"in t?Yi:"booleanValue"in t?{booleanValue:!1}:"integerValue"in t||"doubleValue"in t?{doubleValue:NaN}:"timestampValue"in t?{timestampValue:{seconds:Number.MIN_SAFE_INTEGER}}:"stringValue"in t?{stringValue:""}:"bytesValue"in t?{bytesValue:""}:"referenceValue"in t?io(Hi.empty(),_s.empty()):"geoPointValue"in t?{geoPointValue:{latitude:-90,longitude:-180}}:"arrayValue"in t?{arrayValue:{}}:"mapValue"in t?{mapValue:{}}:Hr()}function mo(t){return"nullValue"in t?{booleanValue:!1}:"booleanValue"in t?{doubleValue:NaN}:"integerValue"in t||"doubleValue"in t?{timestampValue:{seconds:Number.MIN_SAFE_INTEGER}}:"timestampValue"in t?{stringValue:""}:"stringValue"in t?{bytesValue:""}:"bytesValue"in t?io(Hi.empty(),_s.empty()):"referenceValue"in t?{geoPointValue:{latitude:-90,longitude:-180}}:"geoPointValue"in t?{arrayValue:{}}:"arrayValue"in t?{mapValue:{}}:"mapValue"in t?Wi:Hr()}function po(t,e){const n=to(t.value,e.value);return 0!==n?n:t.inclusive&&!e.inclusive?-1:!t.inclusive&&e.inclusive?1:0}function yo(t,e){const n=to(t.value,e.value);return 0!==n?n:t.inclusive&&!e.inclusive?1:!t.inclusive&&e.inclusive?-1:0}class wo{constructor(t){this.value=t}static empty(){return new wo({mapValue:{}})}field(t){if(t.isEmpty())return this.value;{let e=this.value;for(let n=0;n{if(!e.isImmediateParentOf(s)){const t=this.getFieldsMap(e);this.applyChanges(t,n,r),n={},r=[],e=s.popLast()}t?n[s.lastSegment()]=ho(t):r.push(s.lastSegment())}));const s=this.getFieldsMap(e);this.applyChanges(s,n,r)}delete(t){const e=this.field(t.popLast());lo(e)&&e.mapValue.fields&&delete e.mapValue.fields[t.lastSegment()]}isEqual(t){return Ji(this.value,t.value)}getFieldsMap(t){let e=this.value;e.mapValue.fields||(e.mapValue={fields:{}});for(let n=0;nt[e]=n));for(const e of n)delete t[e]}clone(){return new wo(ho(this.value))}}function vo(t){const e=[];return Di(t.fields,((t,n)=>{const r=new bs([t]);if(lo(n)){const t=vo(n.mapValue).fields;if(0===t.length)e.push(r);else for(const n of t)e.push(r.child(n))}else e.push(r)})),new Pi(e)}class bo{constructor(t,e,n,r,s,i,o){this.key=t,this.documentType=e,this.version=n,this.readTime=r,this.createTime=s,this.data=i,this.documentState=o}static newInvalidDocument(t){return new bo(t,0,ps.min(),ps.min(),ps.min(),wo.empty(),0)}static newFoundDocument(t,e,n,r){return new bo(t,1,e,ps.min(),n,r,0)}static newNoDocument(t,e){return new bo(t,2,e,ps.min(),ps.min(),wo.empty(),0)}static newUnknownDocument(t,e){return new bo(t,3,e,ps.min(),ps.min(),wo.empty(),2)}convertToFoundDocument(t,e){return!this.createTime.isEqual(ps.min())||2!==this.documentType&&0!==this.documentType||(this.createTime=t),this.version=t,this.documentType=1,this.data=e,this.documentState=0,this}convertToNoDocument(t){return this.version=t,this.documentType=2,this.data=wo.empty(),this.documentState=0,this}convertToUnknownDocument(t){return this.version=t,this.documentType=3,this.data=wo.empty(),this.documentState=2,this}setHasCommittedMutations(){return this.documentState=2,this}setHasLocalMutations(){return this.documentState=1,this.version=ps.min(),this}setReadTime(t){return this.readTime=t,this}get hasLocalMutations(){return 1===this.documentState}get hasCommittedMutations(){return 2===this.documentState}get hasPendingWrites(){return this.hasLocalMutations||this.hasCommittedMutations}isValidDocument(){return 0!==this.documentType}isFoundDocument(){return 1===this.documentType}isNoDocument(){return 2===this.documentType}isUnknownDocument(){return 3===this.documentType}isEqual(t){return t instanceof bo&&this.key.isEqual(t.key)&&this.version.isEqual(t.version)&&this.documentType===t.documentType&&this.documentState===t.documentState&&this.data.isEqual(t.data)}mutableCopy(){return new bo(this.key,this.documentType,this.version,this.readTime,this.createTime,this.data.clone(),this.documentState)}toString(){return`Document(${this.key}, ${this.version}, ${JSON.stringify(this.data.value)}, {createTime: ${this.createTime}}), {documentType: ${this.documentType}}), {documentState: ${this.documentState}})`}}class _o{constructor(t,e){this.position=t,this.inclusive=e}}function Io(t,e,n){let r=0;for(let s=0;s":return t>0;case">=":return t>=0;default:return Hr()}}isInequality(){return["<","<=",">",">=","!=","not-in"].indexOf(this.op)>=0}getFlattenedFilters(){return[this]}getFilters(){return[this]}}class Do extends xo{constructor(t,e){super(),this.filters=t,this.op=e,this.ue=null}static create(t,e){return new Do(t,e)}matches(t){return Ao(this)?void 0===this.filters.find((e=>!e.matches(t))):void 0!==this.filters.find((e=>e.matches(t)))}getFlattenedFilters(){return null!==this.ue||(this.ue=this.filters.reduce(((t,e)=>t.concat(e.getFlattenedFilters())),[])),this.ue}getFilters(){return Object.assign([],this.filters)}}function Ao(t){return"and"===t.op}function No(t){return"or"===t.op}function ko(t){return Ro(t)&&Ao(t)}function Ro(t){for(const e of t.filters)if(e instanceof Do)return!1;return!0}function Mo(t){if(t instanceof Co)return t.field.canonicalString()+t.op.toString()+no(t.value);if(ko(t))return t.filters.map((t=>Mo(t))).join(",");{const e=t.filters.map((t=>Mo(t))).join(",");return`${t.op}(${e})`}}function Lo(t,e){return t instanceof Co?function(t,e){return e instanceof Co&&t.op===e.op&&t.field.isEqual(e.field)&&Ji(t.value,e.value)}(t,e):t instanceof Do?function(t,e){return e instanceof Do&&t.op===e.op&&t.filters.length===e.filters.length&&t.filters.reduce(((t,n,r)=>t&&Lo(n,e.filters[r])),!0)}(t,e):void Hr()}function Oo(t,e){const n=t.filters.concat(e);return Do.create(n,t.op)}function Po(t){return t instanceof Co?function(t){return`${t.field.canonicalString()} ${t.op} ${no(t.value)}`}(t):t instanceof Do?function(t){return t.op.toString()+" {"+t.getFilters().map(Po).join(" ,")+"}"}(t):"Filter"}class Fo extends Co{constructor(t,e,n){super(t,e,n),this.key=_s.fromName(n.referenceValue)}matches(t){const e=_s.comparator(t.key,this.key);return this.matchesComparison(e)}}class Vo extends Co{constructor(t,e){super(t,"in",e),this.keys=Bo("in",e)}matches(t){return this.keys.some((e=>e.isEqual(t.key)))}}class qo extends Co{constructor(t,e){super(t,"not-in",e),this.keys=Bo("not-in",e)}matches(t){return!this.keys.some((e=>e.isEqual(t.key)))}}function Bo(t,e){var n;return((null===(n=e.arrayValue)||void 0===n?void 0:n.values)||[]).map((t=>_s.fromName(t.referenceValue)))}class Uo extends Co{constructor(t,e){super(t,"array-contains",e)}matches(t){const e=t.data.field(this.field);return ao(e)&&Zi(e.arrayValue,this.value)}}class zo extends Co{constructor(t,e){super(t,"in",e)}matches(t){const e=t.data.field(this.field);return null!==e&&Zi(this.value.arrayValue,e)}}class Go extends Co{constructor(t,e){super(t,"not-in",e)}matches(t){if(Zi(this.value.arrayValue,{nullValue:"NULL_VALUE"}))return!1;const e=t.data.field(this.field);return null!==e&&!Zi(this.value.arrayValue,e)}}class jo extends Co{constructor(t,e){super(t,"array-contains-any",e)}matches(t){const e=t.data.field(this.field);return!(!ao(e)||!e.arrayValue.values)&&e.arrayValue.values.some((t=>Zi(this.value.arrayValue,t)))}}class Ko{constructor(t,e=null,n=[],r=[],s=null,i=null,o=null){this.path=t,this.collectionGroup=e,this.orderBy=n,this.filters=r,this.limit=s,this.startAt=i,this.endAt=o,this.ce=null}}function $o(t,e=null,n=[],r=[],s=null,i=null,o=null){return new Ko(t,e,n,r,s,i,o)}function Qo(t){const e=Xr(t);if(null===e.ce){let t=e.path.canonicalString();null!==e.collectionGroup&&(t+="|cg:"+e.collectionGroup),t+="|f:",t+=e.filters.map((t=>Mo(t))).join(","),t+="|ob:",t+=e.orderBy.map((t=>function(t){return t.field.canonicalString()+t.dir}(t))).join(","),Ws(e.limit)||(t+="|l:",t+=e.limit),e.startAt&&(t+="|lb:",t+=e.startAt.inclusive?"b:":"a:",t+=e.startAt.position.map((t=>no(t))).join(",")),e.endAt&&(t+="|ub:",t+=e.endAt.inclusive?"a:":"b:",t+=e.endAt.position.map((t=>no(t))).join(",")),e.ce=t}return e.ce}function Ho(t,e){if(t.limit!==e.limit)return!1;if(t.orderBy.length!==e.orderBy.length)return!1;for(let n=0;nt instanceof Co&&t.field.isEqual(e)))}function Xo(t,e,n){let r=Yi,s=!0;for(const n of Yo(t,e)){let t=Yi,e=!0;switch(n.op){case"<":case"<=":t=go(n.value);break;case"==":case"in":case">=":t=n.value;break;case">":t=n.value,e=!1;break;case"!=":case"not-in":t=Yi}po({value:r,inclusive:s},{value:t,inclusive:e})<0&&(r=t,s=e)}if(null!==n)for(let i=0;i=":case">":t=mo(n.value),e=!1;break;case"==":case"in":case"<=":t=n.value;break;case"<":t=n.value,e=!1;break;case"!=":case"not-in":t=Wi}yo({value:r,inclusive:s},{value:t,inclusive:e})>0&&(r=t,s=e)}if(null!==n)for(let i=0;i0&&(r=t,s=n.inclusive);break}return{value:r,inclusive:s}}class Zo{constructor(t,e=null,n=[],r=[],s=null,i="F",o=null,a=null){this.path=t,this.collectionGroup=e,this.explicitOrderBy=n,this.filters=r,this.limit=s,this.limitType=i,this.startAt=o,this.endAt=a,this.le=null,this.he=null,this.Pe=null,this.startAt,this.endAt}}function ta(t,e,n,r,s,i,o,a){return new Zo(t,e,n,r,s,i,o,a)}function ea(t){return new Zo(t)}function na(t){return 0===t.filters.length&&null===t.limit&&null==t.startAt&&null==t.endAt&&(0===t.explicitOrderBy.length||1===t.explicitOrderBy.length&&t.explicitOrderBy[0].field.isKeyField())}function ra(t){return null!==t.collectionGroup}function sa(t){const e=Xr(t);if(null===e.le){e.le=[];const t=new Set;for(const n of e.explicitOrderBy)e.le.push(n),t.add(n.field.canonicalString());const n=e.explicitOrderBy.length>0?e.explicitOrderBy[e.explicitOrderBy.length-1].dir:"asc",r=function(t){let e=new Mi(bs.comparator);return t.filters.forEach((t=>{t.getFlattenedFilters().forEach((t=>{t.isInequality()&&(e=e.add(t.field))}))})),e}(e);r.forEach((r=>{t.has(r.canonicalString())||r.isKeyField()||e.le.push(new To(r,n))})),t.has(bs.keyField().canonicalString())||e.le.push(new To(bs.keyField(),n))}return e.le}function ia(t){const e=Xr(t);return e.he||(e.he=oa(e,sa(t))),e.he}function oa(t,e){if("F"===t.limitType)return $o(t.path,t.collectionGroup,e,t.filters,t.limit,t.startAt,t.endAt);{e=e.map((t=>{const e="desc"===t.dir?"asc":"desc";return new To(t.field,e)}));const n=t.endAt?new _o(t.endAt.position,t.endAt.inclusive):null,r=t.startAt?new _o(t.startAt.position,t.startAt.inclusive):null;return $o(t.path,t.collectionGroup,e,t.filters,t.limit,n,r)}}function aa(t,e){const n=t.filters.concat([e]);return new Zo(t.path,t.collectionGroup,t.explicitOrderBy.slice(),n,t.limit,t.limitType,t.startAt,t.endAt)}function ua(t,e,n){return new Zo(t.path,t.collectionGroup,t.explicitOrderBy.slice(),t.filters.slice(),e,n,t.startAt,t.endAt)}function ca(t,e){return Ho(ia(t),ia(e))&&t.limitType===e.limitType}function la(t){return`${Qo(ia(t))}|lt:${t.limitType}`}function ha(t){return`Query(target=${function(t){let e=t.path.canonicalString();return null!==t.collectionGroup&&(e+=" collectionGroup="+t.collectionGroup),t.filters.length>0&&(e+=`, filters: [${t.filters.map((t=>Po(t))).join(", ")}]`),Ws(t.limit)||(e+=", limit: "+t.limit),t.orderBy.length>0&&(e+=`, orderBy: [${t.orderBy.map((t=>function(t){return`${t.field.canonicalString()} (${t.dir})`}(t))).join(", ")}]`),t.startAt&&(e+=", startAt: ",e+=t.startAt.inclusive?"b:":"a:",e+=t.startAt.position.map((t=>no(t))).join(",")),t.endAt&&(e+=", endAt: ",e+=t.endAt.inclusive?"a:":"b:",e+=t.endAt.position.map((t=>no(t))).join(",")),`Target(${e})`}(ia(t))}; limitType=${t.limitType})`}function da(t,e){return e.isFoundDocument()&&function(t,e){const n=e.key.path;return null!==t.collectionGroup?e.key.hasCollectionId(t.collectionGroup)&&t.path.isPrefixOf(n):_s.isDocumentKey(t.path)?t.path.isEqual(n):t.path.isImmediateParentOf(n)}(t,e)&&function(t,e){for(const n of sa(t))if(!n.field.isKeyField()&&null===e.data.field(n.field))return!1;return!0}(t,e)&&function(t,e){for(const n of t.filters)if(!n.matches(e))return!1;return!0}(t,e)&&function(t,e){return!(t.startAt&&!function(t,e,n){const r=Io(t,e,n);return t.inclusive?r<=0:r<0}(t.startAt,sa(t),e)||t.endAt&&!function(t,e,n){const r=Io(t,e,n);return t.inclusive?r>=0:r>0}(t.endAt,sa(t),e))}(t,e)}function fa(t){return t.collectionGroup||(t.path.length%2==1?t.path.lastSegment():t.path.get(t.path.length-2))}function ga(t){return(e,n)=>{let r=!1;for(const s of sa(t)){const t=ma(s,e,n);if(0!==t)return t;r=r||s.field.isKeyField()}return 0}}function ma(t,e,n){const r=t.field.isKeyField()?_s.comparator(e.key,n.key):function(t,e,n){const r=e.data.field(t),s=n.data.field(t);return null!==r&&null!==s?to(r,s):Hr()}(t.field,e,n);switch(t.dir){case"asc":return r;case"desc":return-1*r;default:return Hr()}}class pa{constructor(t,e){this.mapKeyFn=t,this.equalsFn=e,this.inner={},this.innerSize=0}get(t){const e=this.mapKeyFn(t),n=this.inner[e];if(void 0!==n)for(const[e,r]of n)if(this.equalsFn(e,t))return r}has(t){return void 0!==this.get(t)}set(t,e){const n=this.mapKeyFn(t),r=this.inner[n];if(void 0===r)return this.inner[n]=[[t,e]],void this.innerSize++;for(let n=0;n{for(const[e,r]of n)t(e,r)}))}isEmpty(){return Ai(this.inner)}size(){return this.innerSize}}const ya=new Ni(_s.comparator);function wa(){return ya}const va=new Ni(_s.comparator);function ba(...t){let e=va;for(const n of t)e=e.insert(n.key,n);return e}function _a(t){let e=va;return t.forEach(((t,n)=>e=e.insert(t,n.overlayedDocument))),e}function Ia(){return Ta()}function Ea(){return Ta()}function Ta(){return new pa((t=>t.toString()),((t,e)=>t.isEqual(e)))}const Sa=new Ni(_s.comparator),xa=new Mi(_s.comparator);function Ca(...t){let e=xa;for(const n of t)e=e.add(n);return e}const Da=new Mi(ds);function Aa(){return Da}function Na(t,e){if(t.useProto3Json){if(isNaN(e))return{doubleValue:"NaN"};if(e===1/0)return{doubleValue:"Infinity"};if(e===-1/0)return{doubleValue:"-Infinity"}}return{doubleValue:Ys(e)?"-0":e}}function ka(t){return{integerValue:""+t}}function Ra(t,e){return Xs(e)?ka(e):Na(t,e)}class Ma{constructor(){this._=void 0}}function La(t,e,n){return t instanceof Fa?function(t,e){const n={fields:{__type__:{stringValue:"server_timestamp"},__local_write_time__:{timestampValue:{seconds:t.seconds,nanos:t.nanoseconds}}}};return e&&ji(e)&&(e=Ki(e)),e&&(n.fields.__previous_value__=e),{mapValue:n}}(n,e):t instanceof Va?qa(t,e):t instanceof Ba?Ua(t,e):function(t,e){const n=Pa(t,e),r=Ga(n)+Ga(t.Ie);return oo(n)&&oo(t.Ie)?ka(r):Na(t.serializer,r)}(t,e)}function Oa(t,e,n){return t instanceof Va?qa(t,e):t instanceof Ba?Ua(t,e):n}function Pa(t,e){return t instanceof za?function(t){return oo(t)||function(t){return!!t&&"doubleValue"in t}(t)}(e)?e:{integerValue:0}:null}class Fa extends Ma{}class Va extends Ma{constructor(t){super(),this.elements=t}}function qa(t,e){const n=ja(e);for(const e of t.elements)n.some((t=>Ji(t,e)))||n.push(e);return{arrayValue:{values:n}}}class Ba extends Ma{constructor(t){super(),this.elements=t}}function Ua(t,e){let n=ja(e);for(const e of t.elements)n=n.filter((t=>!Ji(t,e)));return{arrayValue:{values:n}}}class za extends Ma{constructor(t,e){super(),this.serializer=t,this.Ie=e}}function Ga(t){return zi(t.integerValue||t.doubleValue)}function ja(t){return ao(t)&&t.arrayValue.values?t.arrayValue.values.slice():[]}class Ka{constructor(t,e){this.field=t,this.transform=e}}class $a{constructor(t,e){this.version=t,this.transformResults=e}}class Qa{constructor(t,e){this.updateTime=t,this.exists=e}static none(){return new Qa}static exists(t){return new Qa(void 0,t)}static updateTime(t){return new Qa(t)}get isNone(){return void 0===this.updateTime&&void 0===this.exists}isEqual(t){return this.exists===t.exists&&(this.updateTime?!!t.updateTime&&this.updateTime.isEqual(t.updateTime):!t.updateTime)}}function Ha(t,e){return void 0!==t.updateTime?e.isFoundDocument()&&e.version.isEqual(t.updateTime):void 0===t.exists||t.exists===e.isFoundDocument()}class Wa{}function Ya(t,e){if(!t.hasLocalMutations||e&&0===e.fields.length)return null;if(null===e)return t.isNoDocument()?new ou(t.key,Qa.none()):new eu(t.key,t.data,Qa.none());{const n=t.data,r=wo.empty();let s=new Mi(bs.comparator);for(let t of e.fields)if(!s.has(t)){let e=n.field(t);null===e&&t.length>1&&(t=t.popLast(),e=n.field(t)),null===e?r.delete(t):r.set(t,e),s=s.add(t)}return new nu(t.key,r,new Pi(s.toArray()),Qa.none())}}function Xa(t,e,n){t instanceof eu?function(t,e,n){const r=t.value.clone(),s=su(t.fieldTransforms,e,n.transformResults);r.setAll(s),e.convertToFoundDocument(n.version,r).setHasCommittedMutations()}(t,e,n):t instanceof nu?function(t,e,n){if(!Ha(t.precondition,e))return void e.convertToUnknownDocument(n.version);const r=su(t.fieldTransforms,e,n.transformResults),s=e.data;s.setAll(ru(t)),s.setAll(r),e.convertToFoundDocument(n.version,s).setHasCommittedMutations()}(t,e,n):function(t,e,n){e.convertToNoDocument(n.version).setHasCommittedMutations()}(0,e,n)}function Ja(t,e,n,r){return t instanceof eu?function(t,e,n,r){if(!Ha(t.precondition,e))return n;const s=t.value.clone(),i=iu(t.fieldTransforms,r,e);return s.setAll(i),e.convertToFoundDocument(e.version,s).setHasLocalMutations(),null}(t,e,n,r):t instanceof nu?function(t,e,n,r){if(!Ha(t.precondition,e))return n;const s=iu(t.fieldTransforms,r,e),i=e.data;return i.setAll(ru(t)),i.setAll(s),e.convertToFoundDocument(e.version,i).setHasLocalMutations(),null===n?null:n.unionWith(t.fieldMask.fields).unionWith(t.fieldTransforms.map((t=>t.field)))}(t,e,n,r):function(t,e,n){return Ha(t.precondition,e)?(e.convertToNoDocument(e.version).setHasLocalMutations(),null):n}(t,e,n)}function Za(t,e){let n=null;for(const r of t.fieldTransforms){const t=e.data.field(r.field),s=Pa(r.transform,t||null);null!=s&&(null===n&&(n=wo.empty()),n.set(r.field,s))}return n||null}function tu(t,e){return t.type===e.type&&!!t.key.isEqual(e.key)&&!!t.precondition.isEqual(e.precondition)&&!!function(t,e){return void 0===t&&void 0===e||!(!t||!e)&&fs(t,e,((t,e)=>function(t,e){return t.field.isEqual(e.field)&&function(t,e){return t instanceof Va&&e instanceof Va||t instanceof Ba&&e instanceof Ba?fs(t.elements,e.elements,Ji):t instanceof za&&e instanceof za?Ji(t.Ie,e.Ie):t instanceof Fa&&e instanceof Fa}(t.transform,e.transform)}(t,e)))}(t.fieldTransforms,e.fieldTransforms)&&(0===t.type?t.value.isEqual(e.value):1!==t.type||t.data.isEqual(e.data)&&t.fieldMask.isEqual(e.fieldMask))}class eu extends Wa{constructor(t,e,n,r=[]){super(),this.key=t,this.value=e,this.precondition=n,this.fieldTransforms=r,this.type=0}getFieldMask(){return null}}class nu extends Wa{constructor(t,e,n,r,s=[]){super(),this.key=t,this.data=e,this.fieldMask=n,this.precondition=r,this.fieldTransforms=s,this.type=1}getFieldMask(){return this.fieldMask}}function ru(t){const e=new Map;return t.fieldMask.fields.forEach((n=>{if(!n.isEmpty()){const r=t.data.field(n);e.set(n,r)}})),e}function su(t,e,n){const r=new Map;Wr(t.length===n.length);for(let s=0;s{const s=t.get(r.key),i=s.overlayedDocument;let o=this.applyToLocalView(i,s.mutatedFields);o=e.has(r.key)?null:o;const a=Ya(i,o);null!==a&&n.set(r.key,a),i.isValidDocument()||i.convertToNoDocument(ps.min())})),n}keys(){return this.mutations.reduce(((t,e)=>t.add(e.key)),Ca())}isEqual(t){return this.batchId===t.batchId&&fs(this.mutations,t.mutations,((t,e)=>tu(t,e)))&&fs(this.baseMutations,t.baseMutations,((t,e)=>tu(t,e)))}}class cu{constructor(t,e,n,r){this.batch=t,this.commitVersion=e,this.mutationResults=n,this.docVersions=r}static from(t,e,n){Wr(t.mutations.length===n.length);let r=Sa;const s=t.mutations;for(let t=0;t=8)throw new Eu(`Invalid padding: ${e}`);if(n<0)throw new Eu(`Invalid hash count: ${n}`);if(t.length>0&&0===this.hashCount)throw new Eu(`Invalid hash count: ${n}`);if(0===t.length&&0!==e)throw new Eu(`Invalid padding when bitmap length is 0: ${e}`);this.Te=8*t.length-e,this.Ee=Fr.fromNumber(this.Te)}de(t,e,n){let r=t.add(e.multiply(Fr.fromNumber(n)));return 1===r.compare(vu)&&(r=new Fr([r.getBits(0),r.getBits(1)],0)),r.modulo(this.Ee).toNumber()}Ae(t){return 0!=(this.bitmap[Math.floor(t/8)]&1<i.insert(t))),i}insert(t){if(0===this.Te)return;const e=bu(t),[n,r]=_u(e);for(let t=0;t0&&(this.Se=!0,this.ye=t)}ve(){let t=Ca(),e=Ca(),n=Ca();return this.pe.forEach(((r,s)=>{switch(s){case 0:t=t.add(r);break;case 2:e=e.add(r);break;case 1:n=n.add(r);break;default:Hr()}})),new Su(this.ye,this.we,t,e,n)}Fe(){this.Se=!1,this.pe=Ru()}Me(t,e){this.Se=!0,this.pe=this.pe.insert(t,e)}xe(t){this.Se=!0,this.pe=this.pe.remove(t)}Oe(){this.ge+=1}Ne(){this.ge-=1,Wr(this.ge>=0)}Be(){this.Se=!0,this.we=!0}}class Nu{constructor(t){this.Le=t,this.ke=new Map,this.qe=wa(),this.Qe=ku(),this.Ke=new Ni(ds)}$e(t){for(const e of t.Ve)t.me&&t.me.isFoundDocument()?this.Ue(e,t.me):this.We(e,t.key,t.me);for(const e of t.removedTargetIds)this.We(e,t.key,t.me)}Ge(t){this.forEachTarget(t,(e=>{const n=this.ze(e);switch(t.state){case 0:this.je(e)&&n.Ce(t.resumeToken);break;case 1:n.Ne(),n.be||n.Fe(),n.Ce(t.resumeToken);break;case 2:n.Ne(),n.be||this.removeTarget(e);break;case 3:this.je(e)&&(n.Be(),n.Ce(t.resumeToken));break;case 4:this.je(e)&&(this.He(e),n.Ce(t.resumeToken));break;default:Hr()}}))}forEachTarget(t,e){t.targetIds.length>0?t.targetIds.forEach(e):this.ke.forEach(((t,n)=>{this.je(n)&&e(n)}))}Je(t){const e=t.targetId,n=t.fe.count,r=this.Ye(e);if(r){const s=r.target;if(Wo(s))if(0===n){const t=new _s(s.path);this.We(e,t,bo.newNoDocument(t,ps.min()))}else Wr(1===n);else{const r=this.Ze(e);if(r!==n){const n=this.Xe(t),s=n?this.et(n,t,r):1;if(0!==s){this.He(e);const t=2===s?"TargetPurposeExistenceFilterMismatchBloom":"TargetPurposeExistenceFilterMismatch";this.Ke=this.Ke.insert(e,t)}null==yu||yu.tt(function(t,e,n,r,s){var i,o,a,u,c,l;const h={localCacheCount:t,existenceFilterCount:e.count,databaseId:n.database,projectId:n.projectId},d=e.unchangedNames;return d&&(h.bloomFilter={applied:0===s,hashCount:null!==(i=null==d?void 0:d.hashCount)&&void 0!==i?i:0,bitmapLength:null!==(u=null===(a=null===(o=null==d?void 0:d.bits)||void 0===o?void 0:o.bitmap)||void 0===a?void 0:a.length)&&void 0!==u?u:0,padding:null!==(l=null===(c=null==d?void 0:d.bits)||void 0===c?void 0:c.padding)&&void 0!==l?l:0,mightContain:t=>{var e;return null!==(e=null==r?void 0:r.mightContain(t))&&void 0!==e&&e}}),h}(r,t.fe,this.Le.nt(),n,s))}}}}Xe(t){const e=t.fe.unchangedNames;if(!e||!e.bits)return null;const{bits:{bitmap:n="",padding:r=0},hashCount:s=0}=e;let i,o;try{i=Gi(n).toUint8Array()}catch(t){if(t instanceof Fi)return $r("Decoding the base64 bloom filter in existence filter failed ("+t.message+"); ignoring the bloom filter and falling back to full re-query."),null;throw t}try{o=new Iu(i,r,s)}catch(t){return $r(t instanceof Eu?"BloomFilter error: ":"Applying bloom filter failed: ",t),null}return 0===o.Te?null:o}et(t,e,n){return e.fe.count===n-this.rt(t,e.targetId)?0:2}rt(t,e){const n=this.Le.getRemoteKeysForTarget(e);let r=0;return n.forEach((n=>{const s=this.Le.nt(),i=`projects/${s.projectId}/databases/${s.database}/documents/${n.path.canonicalString()}`;t.mightContain(i)||(this.We(e,n,null),r++)})),r}it(t){const e=new Map;this.ke.forEach(((n,r)=>{const s=this.Ye(r);if(s){if(n.current&&Wo(s.target)){const e=new _s(s.target.path);null!==this.qe.get(e)||this.st(r,e)||this.We(r,e,bo.newNoDocument(e,t))}n.De&&(e.set(r,n.ve()),n.Fe())}}));let n=Ca();this.Qe.forEach(((t,e)=>{let r=!0;e.forEachWhile((t=>{const e=this.Ye(t);return!e||"TargetPurposeLimboResolution"===e.purpose||(r=!1,!1)})),r&&(n=n.add(t))})),this.qe.forEach(((e,n)=>n.setReadTime(t)));const r=new Tu(t,e,this.Ke,this.qe,n);return this.qe=wa(),this.Qe=ku(),this.Ke=new Ni(ds),r}Ue(t,e){if(!this.je(t))return;const n=this.st(t,e.key)?2:0;this.ze(t).Me(e.key,n),this.qe=this.qe.insert(e.key,e),this.Qe=this.Qe.insert(e.key,this.ot(e.key).add(t))}We(t,e,n){if(!this.je(t))return;const r=this.ze(t);this.st(t,e)?r.Me(e,1):r.xe(e),this.Qe=this.Qe.insert(e,this.ot(e).delete(t)),n&&(this.qe=this.qe.insert(e,n))}removeTarget(t){this.ke.delete(t)}Ze(t){const e=this.ze(t).ve();return this.Le.getRemoteKeysForTarget(t).size+e.addedDocuments.size-e.removedDocuments.size}Oe(t){this.ze(t).Oe()}ze(t){let e=this.ke.get(t);return e||(e=new Au,this.ke.set(t,e)),e}ot(t){let e=this.Qe.get(t);return e||(e=new Mi(ds),this.Qe=this.Qe.insert(t,e)),e}je(t){const e=null!==this.Ye(t);return e||jr("WatchChangeAggregator","Detected inactive target",t),e}Ye(t){const e=this.ke.get(t);return e&&e.be?null:this.Le._t(t)}He(t){this.ke.set(t,new Au),this.Le.getRemoteKeysForTarget(t).forEach((e=>{this.We(t,e,null)}))}st(t,e){return this.Le.getRemoteKeysForTarget(t).has(e)}}function ku(){return new Ni(_s.comparator)}function Ru(){return new Ni(_s.comparator)}const Mu={asc:"ASCENDING",desc:"DESCENDING"},Lu={"<":"LESS_THAN","<=":"LESS_THAN_OR_EQUAL",">":"GREATER_THAN",">=":"GREATER_THAN_OR_EQUAL","==":"EQUAL","!=":"NOT_EQUAL","array-contains":"ARRAY_CONTAINS",in:"IN","not-in":"NOT_IN","array-contains-any":"ARRAY_CONTAINS_ANY"},Ou={and:"AND",or:"OR"};class Pu{constructor(t,e){this.databaseId=t,this.useProto3Json=e}}function Fu(t,e){return t.useProto3Json||Ws(e)?e:{value:e}}function Vu(t,e){return t.useProto3Json?`${new Date(1e3*e.seconds).toISOString().replace(/\.\d*/,"").replace("Z","")}.${("000000000"+e.nanoseconds).slice(-9)}Z`:{seconds:""+e.seconds,nanos:e.nanoseconds}}function qu(t,e){return t.useProto3Json?e.toBase64():e.toUint8Array()}function Bu(t,e){return Vu(t,e.toTimestamp())}function Uu(t){return Wr(!!t),ps.fromTimestamp(function(t){const e=Ui(t);return new ms(e.seconds,e.nanos)}(t))}function zu(t,e){return Gu(t,e).canonicalString()}function Gu(t,e){const n=function(t){return new ws(["projects",t.projectId,"databases",t.database])}(t).child("documents");return void 0===e?n:n.child(e)}function ju(t){const e=ws.fromString(t);return Wr(dc(e)),e}function Ku(t,e){return zu(t.databaseId,e.path)}function $u(t,e){const n=ju(e);if(n.get(1)!==t.databaseId.projectId)throw new Zr(Jr.INVALID_ARGUMENT,"Tried to deserialize key from different project: "+n.get(1)+" vs "+t.databaseId.projectId);if(n.get(3)!==t.databaseId.database)throw new Zr(Jr.INVALID_ARGUMENT,"Tried to deserialize key from different database: "+n.get(3)+" vs "+t.databaseId.database);return new _s(Yu(n))}function Qu(t,e){return zu(t.databaseId,e)}function Hu(t){const e=ju(t);return 4===e.length?ws.emptyPath():Yu(e)}function Wu(t){return new ws(["projects",t.databaseId.projectId,"databases",t.databaseId.database]).canonicalString()}function Yu(t){return Wr(t.length>4&&"documents"===t.get(4)),t.popFirst(5)}function Xu(t,e,n){return{name:Ku(t,e),fields:n.value.mapValue.fields}}function Ju(t,e,n){const r=$u(t,e.name),s=Uu(e.updateTime),i=e.createTime?Uu(e.createTime):ps.min(),o=new wo({mapValue:{fields:e.fields}}),a=bo.newFoundDocument(r,s,i,o);return n&&a.setHasCommittedMutations(),n?a.setHasCommittedMutations():a}function Zu(t,e){let n;if(e instanceof eu)n={update:Xu(t,e.key,e.value)};else if(e instanceof ou)n={delete:Ku(t,e.key)};else if(e instanceof nu)n={update:Xu(t,e.key,e.data),updateMask:hc(e.fieldMask)};else{if(!(e instanceof au))return Hr();n={verify:Ku(t,e.key)}}return e.fieldTransforms.length>0&&(n.updateTransforms=e.fieldTransforms.map((t=>function(t,e){const n=e.transform;if(n instanceof Fa)return{fieldPath:e.field.canonicalString(),setToServerValue:"REQUEST_TIME"};if(n instanceof Va)return{fieldPath:e.field.canonicalString(),appendMissingElements:{values:n.elements}};if(n instanceof Ba)return{fieldPath:e.field.canonicalString(),removeAllFromArray:{values:n.elements}};if(n instanceof za)return{fieldPath:e.field.canonicalString(),increment:n.Ie};throw Hr()}(0,t)))),e.precondition.isNone||(n.currentDocument=function(t,e){return void 0!==e.updateTime?{updateTime:Bu(t,e.updateTime)}:void 0!==e.exists?{exists:e.exists}:Hr()}(t,e.precondition)),n}function tc(t,e){const n=e.currentDocument?function(t){return void 0!==t.updateTime?Qa.updateTime(Uu(t.updateTime)):void 0!==t.exists?Qa.exists(t.exists):Qa.none()}(e.currentDocument):Qa.none(),r=e.updateTransforms?e.updateTransforms.map((e=>function(t,e){let n=null;if("setToServerValue"in e)Wr("REQUEST_TIME"===e.setToServerValue),n=new Fa;else if("appendMissingElements"in e){const t=e.appendMissingElements.values||[];n=new Va(t)}else if("removeAllFromArray"in e){const t=e.removeAllFromArray.values||[];n=new Ba(t)}else"increment"in e?n=new za(t,e.increment):Hr();const r=bs.fromServerFormat(e.fieldPath);return new Ka(r,n)}(t,e))):[];if(e.update){e.update.name;const s=$u(t,e.update.name),i=new wo({mapValue:{fields:e.update.fields}});if(e.updateMask){const t=function(t){const e=t.fieldPaths||[];return new Pi(e.map((t=>bs.fromServerFormat(t))))}(e.updateMask);return new nu(s,i,t,n,r)}return new eu(s,i,n,r)}if(e.delete){const r=$u(t,e.delete);return new ou(r,n)}if(e.verify){const r=$u(t,e.verify);return new au(r,n)}return Hr()}function ec(t,e){return{documents:[Qu(t,e.path)]}}function nc(t,e){const n={structuredQuery:{}},r=e.path;let s;null!==e.collectionGroup?(s=r,n.structuredQuery.from=[{collectionId:e.collectionGroup,allDescendants:!0}]):(s=r.popLast(),n.structuredQuery.from=[{collectionId:r.lastSegment()}]),n.parent=Qu(t,s);const i=function(t){if(0!==t.length)return lc(Do.create(t,"and"))}(e.filters);i&&(n.structuredQuery.where=i);const o=function(t){if(0!==t.length)return t.map((t=>function(t){return{field:uc(t.field),direction:ic(t.dir)}}(t)))}(e.orderBy);o&&(n.structuredQuery.orderBy=o);const a=Fu(t,e.limit);return null!==a&&(n.structuredQuery.limit=a),e.startAt&&(n.structuredQuery.startAt=function(t){return{before:t.inclusive,values:t.position}}(e.startAt)),e.endAt&&(n.structuredQuery.endAt=function(t){return{before:!t.inclusive,values:t.position}}(e.endAt)),{ut:n,parent:s}}function rc(t){let e=Hu(t.parent);const n=t.structuredQuery,r=n.from?n.from.length:0;let s=null;if(r>0){Wr(1===r);const t=n.from[0];t.allDescendants?s=t.collectionId:e=e.child(t.collectionId)}let i=[];n.where&&(i=function(t){const e=sc(t);return e instanceof Do&&ko(e)?e.getFilters():[e]}(n.where));let o=[];n.orderBy&&(o=function(t){return t.map((t=>function(t){return new To(cc(t.field),function(t){switch(t){case"ASCENDING":return"asc";case"DESCENDING":return"desc";default:return}}(t.direction))}(t)))}(n.orderBy));let a=null;n.limit&&(a=function(t){let e;return e="object"==typeof t?t.value:t,Ws(e)?null:e}(n.limit));let u=null;n.startAt&&(u=function(t){const e=!!t.before,n=t.values||[];return new _o(n,e)}(n.startAt));let c=null;return n.endAt&&(c=function(t){const e=!t.before,n=t.values||[];return new _o(n,e)}(n.endAt)),ta(e,s,o,i,a,"F",u,c)}function sc(t){return void 0!==t.unaryFilter?function(t){switch(t.unaryFilter.op){case"IS_NAN":const e=cc(t.unaryFilter.field);return Co.create(e,"==",{doubleValue:NaN});case"IS_NULL":const n=cc(t.unaryFilter.field);return Co.create(n,"==",{nullValue:"NULL_VALUE"});case"IS_NOT_NAN":const r=cc(t.unaryFilter.field);return Co.create(r,"!=",{doubleValue:NaN});case"IS_NOT_NULL":const s=cc(t.unaryFilter.field);return Co.create(s,"!=",{nullValue:"NULL_VALUE"});default:return Hr()}}(t):void 0!==t.fieldFilter?function(t){return Co.create(cc(t.fieldFilter.field),function(t){switch(t){case"EQUAL":return"==";case"NOT_EQUAL":return"!=";case"GREATER_THAN":return">";case"GREATER_THAN_OR_EQUAL":return">=";case"LESS_THAN":return"<";case"LESS_THAN_OR_EQUAL":return"<=";case"ARRAY_CONTAINS":return"array-contains";case"IN":return"in";case"NOT_IN":return"not-in";case"ARRAY_CONTAINS_ANY":return"array-contains-any";default:return Hr()}}(t.fieldFilter.op),t.fieldFilter.value)}(t):void 0!==t.compositeFilter?function(t){return Do.create(t.compositeFilter.filters.map((t=>sc(t))),function(t){switch(t){case"AND":return"and";case"OR":return"or";default:return Hr()}}(t.compositeFilter.op))}(t):Hr()}function ic(t){return Mu[t]}function oc(t){return Lu[t]}function ac(t){return Ou[t]}function uc(t){return{fieldPath:t.canonicalString()}}function cc(t){return bs.fromServerFormat(t.fieldPath)}function lc(t){return t instanceof Co?function(t){if("=="===t.op){if(co(t.value))return{unaryFilter:{field:uc(t.field),op:"IS_NAN"}};if(uo(t.value))return{unaryFilter:{field:uc(t.field),op:"IS_NULL"}}}else if("!="===t.op){if(co(t.value))return{unaryFilter:{field:uc(t.field),op:"IS_NOT_NAN"}};if(uo(t.value))return{unaryFilter:{field:uc(t.field),op:"IS_NOT_NULL"}}}return{fieldFilter:{field:uc(t.field),op:oc(t.op),value:t.value}}}(t):t instanceof Do?function(t){const e=t.getFilters().map((t=>lc(t)));return 1===e.length?e[0]:{compositeFilter:{op:ac(t.op),filters:e}}}(t):Hr()}function hc(t){const e=[];return t.fields.forEach((t=>e.push(t.canonicalString()))),{fieldPaths:e}}function dc(t){return t.length>=4&&"projects"===t.get(0)&&"databases"===t.get(2)}class fc{constructor(t,e,n,r,s=ps.min(),i=ps.min(),o=qi.EMPTY_BYTE_STRING,a=null){this.target=t,this.targetId=e,this.purpose=n,this.sequenceNumber=r,this.snapshotVersion=s,this.lastLimboFreeSnapshotVersion=i,this.resumeToken=o,this.expectedCount=a}withSequenceNumber(t){return new fc(this.target,this.targetId,this.purpose,t,this.snapshotVersion,this.lastLimboFreeSnapshotVersion,this.resumeToken,this.expectedCount)}withResumeToken(t,e){return new fc(this.target,this.targetId,this.purpose,this.sequenceNumber,e,this.lastLimboFreeSnapshotVersion,t,null)}withExpectedCount(t){return new fc(this.target,this.targetId,this.purpose,this.sequenceNumber,this.snapshotVersion,this.lastLimboFreeSnapshotVersion,this.resumeToken,t)}withLastLimboFreeSnapshotVersion(t){return new fc(this.target,this.targetId,this.purpose,this.sequenceNumber,this.snapshotVersion,t,this.resumeToken,this.expectedCount)}}class gc{constructor(t){this.ct=t}}function mc(t,e){const n=e.key,r={prefixPath:n.getCollectionPath().popLast().toArray(),collectionGroup:n.collectionGroup,documentId:n.path.lastSegment(),readTime:pc(e.readTime),hasCommittedMutations:e.hasCommittedMutations};if(e.isFoundDocument())r.document=function(t,e){return{name:Ku(t,e.key),fields:e.data.value.mapValue.fields,updateTime:Vu(t,e.version.toTimestamp()),createTime:Vu(t,e.createTime.toTimestamp())}}(t.ct,e);else if(e.isNoDocument())r.noDocument={path:n.path.toArray(),readTime:yc(e.version)};else{if(!e.isUnknownDocument())return Hr();r.unknownDocument={path:n.path.toArray(),version:yc(e.version)}}return r}function pc(t){const e=t.toTimestamp();return[e.seconds,e.nanoseconds]}function yc(t){const e=t.toTimestamp();return{seconds:e.seconds,nanoseconds:e.nanoseconds}}function wc(t){const e=new ms(t.seconds,t.nanoseconds);return ps.fromTimestamp(e)}function vc(t,e){const n=(e.baseMutations||[]).map((e=>tc(t.ct,e)));for(let t=0;ttc(t.ct,e))),s=ms.fromMillis(e.localWriteTimeMs);return new uu(e.batchId,s,n,r)}function bc(t){const e=wc(t.readTime),n=void 0!==t.lastLimboFreeSnapshotVersion?wc(t.lastLimboFreeSnapshotVersion):ps.min();let r;return r=function(t){return void 0!==t.documents}(t.query)?function(t){return Wr(1===t.documents.length),ia(ea(Hu(t.documents[0])))}(t.query):function(t){return ia(rc(t))}(t.query),new fc(r,t.targetId,"TargetPurposeListen",t.lastListenSequenceNumber,e,n,qi.fromBase64String(t.resumeToken))}function _c(t,e){const n=yc(e.snapshotVersion),r=yc(e.lastLimboFreeSnapshotVersion);let s;s=Wo(e.target)?ec(t.ct,e.target):nc(t.ct,e.target).ut;const i=e.resumeToken.toBase64();return{targetId:e.targetId,canonicalId:Qo(e.target),readTime:n,resumeToken:i,lastListenSequenceNumber:e.sequenceNumber,lastLimboFreeSnapshotVersion:r,query:s}}function Ic(t){const e=rc({parent:t.parent,structuredQuery:t.structuredQuery});return"LAST"===t.limitType?ua(e,e.limit,"L"):e}function Ec(t,e){return new lu(e.largestBatchId,tc(t.ct,e.overlayMutation))}function Tc(t,e){const n=e.path.lastSegment();return[t,Js(e.path.popLast()),n]}function Sc(t,e,n,r){return{indexId:t,uid:e,sequenceNumber:n,readTime:yc(r.readTime),documentKey:Js(r.documentKey.path),largestBatchId:r.largestBatchId}}class xc{getBundleMetadata(t,e){return Cc(t).get(e).next((t=>{if(t)return function(t){return{id:t.bundleId,createTime:wc(t.createTime),version:t.version}}(t)}))}saveBundleMetadata(t,e){return Cc(t).put(function(t){return{bundleId:t.id,createTime:yc(Uu(t.createTime)),version:t.version}}(e))}getNamedQuery(t,e){return Dc(t).get(e).next((t=>{if(t)return function(t){return{name:t.name,query:Ic(t.bundledQuery),readTime:wc(t.readTime)}}(t)}))}saveNamedQuery(t,e){return Dc(t).put(function(t){return{name:t.name,readTime:yc(Uu(t.readTime)),bundledQuery:t.bundledQuery}}(e))}}function Cc(t){return xi(t,"bundles")}function Dc(t){return xi(t,"namedQueries")}class Ac{constructor(t,e){this.serializer=t,this.userId=e}static lt(t,e){const n=e.uid||"";return new Ac(t,n)}getOverlay(t,e){return Nc(t).get(Tc(this.userId,e)).next((t=>t?Ec(this.serializer,t):null))}getOverlays(t,e){const n=Ia();return Ps.forEach(e,(e=>this.getOverlay(t,e).next((t=>{null!==t&&n.set(e,t)})))).next((()=>n))}saveOverlays(t,e,n){const r=[];return n.forEach(((n,s)=>{const i=new lu(e,s);r.push(this.ht(t,i))})),Ps.waitFor(r)}removeOverlaysForBatchId(t,e,n){const r=new Set;e.forEach((t=>r.add(Js(t.getCollectionPath()))));const s=[];return r.forEach((e=>{const r=IDBKeyRange.bound([this.userId,e,n],[this.userId,e,n+1],!1,!0);s.push(Nc(t).H("collectionPathOverlayIndex",r))})),Ps.waitFor(s)}getOverlaysForCollection(t,e,n){const r=Ia(),s=Js(e),i=IDBKeyRange.bound([this.userId,s,n],[this.userId,s,Number.POSITIVE_INFINITY],!0);return Nc(t).W("collectionPathOverlayIndex",i).next((t=>{for(const e of t){const t=Ec(this.serializer,e);r.set(t.getKey(),t)}return r}))}getOverlaysForCollectionGroup(t,e,n,r){const s=Ia();let i;const o=IDBKeyRange.bound([this.userId,e,n],[this.userId,e,Number.POSITIVE_INFINITY],!0);return Nc(t).Y({index:"collectionGroupOverlayIndex",range:o},((t,e,n)=>{const o=Ec(this.serializer,e);s.size()s))}ht(t,e){return Nc(t).put(function(t,e,n){const[r,s,i]=Tc(e,n.mutation.key);return{userId:e,collectionPath:s,documentId:i,collectionGroup:n.mutation.key.getCollectionGroup(),largestBatchId:n.largestBatchId,overlayMutation:Zu(t.ct,n.mutation)}}(this.serializer,this.userId,e))}}function Nc(t){return xi(t,"documentOverlays")}class kc{constructor(){}Pt(t,e){this.It(t,e),e.Tt()}It(t,e){if("nullValue"in t)this.Et(e,5);else if("booleanValue"in t)this.Et(e,10),e.dt(t.booleanValue?1:0);else if("integerValue"in t)this.Et(e,15),e.dt(zi(t.integerValue));else if("doubleValue"in t){const n=zi(t.doubleValue);isNaN(n)?this.Et(e,13):(this.Et(e,15),Ys(n)?e.dt(0):e.dt(n))}else if("timestampValue"in t){const n=t.timestampValue;this.Et(e,20),"string"==typeof n?e.At(n):(e.At(`${n.seconds||""}`),e.dt(n.nanos||0))}else if("stringValue"in t)this.Rt(t.stringValue,e),this.Vt(e);else if("bytesValue"in t)this.Et(e,30),e.ft(Gi(t.bytesValue)),this.Vt(e);else if("referenceValue"in t)this.gt(t.referenceValue,e);else if("geoPointValue"in t){const n=t.geoPointValue;this.Et(e,45),e.dt(n.latitude||0),e.dt(n.longitude||0)}else"mapValue"in t?fo(t)?this.Et(e,Number.MAX_SAFE_INTEGER):(this.yt(t.mapValue,e),this.Vt(e)):"arrayValue"in t?(this.wt(t.arrayValue,e),this.Vt(e)):Hr()}Rt(t,e){this.Et(e,25),this.St(t,e)}St(t,e){e.At(t)}yt(t,e){const n=t.fields||{};this.Et(e,55);for(const t of Object.keys(n))this.Rt(t,e),this.It(n[t],e)}wt(t,e){const n=t.values||[];this.Et(e,50);for(const t of n)this.It(t,e)}gt(t,e){this.Et(e,37),_s.fromName(t).path.forEach((t=>{this.Et(e,60),this.St(t,e)}))}Et(t,e){t.dt(e)}Vt(t){t.dt(2)}}function Rc(t){if(0===t)return 8;let e=0;return t>>4==0&&(e+=4,t<<=4),t>>6==0&&(e+=2,t<<=2),t>>7==0&&(e+=1),e}function Mc(t){const e=64-function(t){let e=0;for(let n=0;n<8;++n){const r=Rc(255&t[n]);if(e+=r,8!==r)break}return e}(t);return Math.ceil(e/8)}kc.bt=new kc;class Lc{constructor(){this.buffer=new Uint8Array(1024),this.position=0}Dt(t){const e=t[Symbol.iterator]();let n=e.next();for(;!n.done;)this.Ct(n.value),n=e.next();this.vt()}Ft(t){const e=t[Symbol.iterator]();let n=e.next();for(;!n.done;)this.Mt(n.value),n=e.next();this.xt()}Ot(t){for(const e of t){const t=e.charCodeAt(0);if(t<128)this.Ct(t);else if(t<2048)this.Ct(960|t>>>6),this.Ct(128|63&t);else if(e<"\ud800"||"\udbff">>12),this.Ct(128|63&t>>>6),this.Ct(128|63&t);else{const t=e.codePointAt(0);this.Ct(240|t>>>18),this.Ct(128|63&t>>>12),this.Ct(128|63&t>>>6),this.Ct(128|63&t)}}this.vt()}Nt(t){for(const e of t){const t=e.charCodeAt(0);if(t<128)this.Mt(t);else if(t<2048)this.Mt(960|t>>>6),this.Mt(128|63&t);else if(e<"\ud800"||"\udbff">>12),this.Mt(128|63&t>>>6),this.Mt(128|63&t);else{const t=e.codePointAt(0);this.Mt(240|t>>>18),this.Mt(128|63&t>>>12),this.Mt(128|63&t>>>6),this.Mt(128|63&t)}}this.xt()}Bt(t){const e=this.Lt(t),n=Mc(e);this.kt(1+n),this.buffer[this.position++]=255&n;for(let t=e.length-n;tbs.comparator(t.field,e.field))),this.collectionId=null!=t.collectionGroup?t.collectionGroup:t.path.lastSegment(),this.Zt=t.orderBy,this.Xt=[];for(const e of t.filters){const t=e;t.isInequality()?this.Yt=this.Yt.add(t):this.Xt.push(t)}}get en(){return this.Yt.size>1}tn(t){if(Wr(t.collectionGroup===this.collectionId),this.en)return!1;const e=Es(t);if(void 0!==e&&!this.nn(e))return!1;const n=Ts(t);let r=new Set,s=0,i=0;for(;s0){const t=this.Yt.getIterator().getNext();if(!r.has(t.field.canonicalString())){const e=n[s];if(!this.rn(t,e)||!this.sn(this.Zt[i++],e))return!1}++s}for(;s=this.Zt.length||!this.sn(this.Zt[i++],t))return!1}return!0}on(){if(this.en)return null;let t=new Mi(bs.comparator);const e=[];for(const n of this.Xt)if(!n.field.isKeyField())if("array-contains"===n.op||"array-contains-any"===n.op)e.push(new xs(n.field,2));else{if(t.has(n.field))continue;t=t.add(n.field),e.push(new xs(n.field,0))}for(const n of this.Zt)n.field.isKeyField()||t.has(n.field)||(t=t.add(n.field),e.push(new xs(n.field,"asc"===n.dir?0:1)));return new Is(Is.UNKNOWN_ID,this.collectionId,e,Ds.empty())}nn(t){for(const e of this.Xt)if(this.rn(e,t))return!0;return!1}rn(t,e){if(void 0===t||!t.field.isEqual(e.fieldPath))return!1;const n="array-contains"===t.op||"array-contains-any"===t.op;return 2===e.kind===n}sn(t,e){return!!t.field.isEqual(e.fieldPath)&&(0===e.kind&&"asc"===t.dir||1===e.kind&&"desc"===t.dir)}}function zc(t){var e,n;if(Wr(t instanceof Co||t instanceof Do),t instanceof Co){if(t instanceof zo){const r=(null===(n=null===(e=t.value.arrayValue)||void 0===e?void 0:e.values)||void 0===n?void 0:n.map((e=>Co.create(t.field,"==",e))))||[];return Do.create(r,"or")}return t}const r=t.filters.map((t=>zc(t)));return Do.create(r,t.op)}function Gc(t){if(0===t.getFilters().length)return[];const e=Qc(zc(t));return Wr($c(e)),jc(e)||Kc(e)?[e]:e.getFilters()}function jc(t){return t instanceof Co}function Kc(t){return t instanceof Do&&ko(t)}function $c(t){return jc(t)||Kc(t)||function(t){if(t instanceof Do&&No(t)){for(const e of t.getFilters())if(!jc(e)&&!Kc(e))return!1;return!0}return!1}(t)}function Qc(t){if(Wr(t instanceof Co||t instanceof Do),t instanceof Co)return t;if(1===t.filters.length)return Qc(t.filters[0]);const e=t.filters.map((t=>Qc(t)));let n=Do.create(e,t.op);return n=Yc(n),$c(n)?n:(Wr(n instanceof Do),Wr(Ao(n)),Wr(n.filters.length>1),n.filters.reduce(((t,e)=>Hc(t,e))))}function Hc(t,e){let n;return Wr(t instanceof Co||t instanceof Do),Wr(e instanceof Co||e instanceof Do),n=t instanceof Co?e instanceof Co?function(t,e){return Do.create([t,e],"and")}(t,e):Wc(t,e):e instanceof Co?Wc(e,t):function(t,e){if(Wr(t.filters.length>0&&e.filters.length>0),Ao(t)&&Ao(e))return Oo(t,e.getFilters());const n=No(t)?t:e,r=No(t)?e:t,s=n.filters.map((t=>Hc(t,r)));return Do.create(s,"or")}(t,e),Yc(n)}function Wc(t,e){if(Ao(e))return Oo(e,t.getFilters());{const n=e.filters.map((e=>Hc(t,e)));return Do.create(n,"or")}}function Yc(t){if(Wr(t instanceof Co||t instanceof Do),t instanceof Co)return t;const e=t.getFilters();if(1===e.length)return Yc(e[0]);if(Ro(t))return t;const n=e.map((t=>Yc(t))),r=[];return n.forEach((e=>{e instanceof Co?r.push(e):e instanceof Do&&(e.op===t.op?r.push(...e.filters):r.push(e))})),1===r.length?r[0]:Do.create(r,t.op)}class Xc{constructor(){this._n=new Jc}addToCollectionParentIndex(t,e){return this._n.add(e),Ps.resolve()}getCollectionParents(t,e){return Ps.resolve(this._n.getEntries(e))}addFieldIndex(t,e){return Ps.resolve()}deleteFieldIndex(t,e){return Ps.resolve()}deleteAllFieldIndexes(t){return Ps.resolve()}createTargetIndexes(t,e){return Ps.resolve()}getDocumentsMatchingTarget(t,e){return Ps.resolve(null)}getIndexType(t,e){return Ps.resolve(0)}getFieldIndexes(t,e){return Ps.resolve([])}getNextCollectionGroupToUpdate(t){return Ps.resolve(null)}getMinOffset(t,e){return Ps.resolve(ks.min())}getMinOffsetFromCollectionGroup(t,e){return Ps.resolve(ks.min())}updateCollectionGroup(t,e,n){return Ps.resolve()}updateIndexEntries(t,e){return Ps.resolve()}}class Jc{constructor(){this.index={}}add(t){const e=t.lastSegment(),n=t.popLast(),r=this.index[e]||new Mi(ws.comparator),s=!r.has(n);return this.index[e]=r.add(n),s}has(t){const e=t.lastSegment(),n=t.popLast(),r=this.index[e];return r&&r.has(n)}getEntries(t){return(this.index[t]||new Mi(ws.comparator)).toArray()}}const Zc=new Uint8Array(0);class tl{constructor(t,e){this.databaseId=e,this.an=new Jc,this.un=new pa((t=>Qo(t)),((t,e)=>Ho(t,e))),this.uid=t.uid||""}addToCollectionParentIndex(t,e){if(!this.an.has(e)){const n=e.lastSegment(),r=e.popLast();t.addOnCommittedListener((()=>{this.an.add(e)}));const s={collectionId:n,parent:Js(r)};return el(t).put(s)}return Ps.resolve()}getCollectionParents(t,e){const n=[],r=IDBKeyRange.bound([e,""],[gs(e),""],!1,!0);return el(t).W(r).next((t=>{for(const r of t){if(r.collectionId!==e)break;n.push(ei(r.parent))}return n}))}addFieldIndex(t,e){const n=rl(t),r=function(t){return{indexId:t.indexId,collectionGroup:t.collectionGroup,fields:t.fields.map((t=>[t.fieldPath.canonicalString(),t.kind]))}}(e);delete r.indexId;const s=n.add(r);if(e.indexState){const n=sl(t);return s.next((t=>{n.put(Sc(t,this.uid,e.indexState.sequenceNumber,e.indexState.offset))}))}return s.next()}deleteFieldIndex(t,e){const n=rl(t),r=sl(t),s=nl(t);return n.delete(e.indexId).next((()=>r.delete(IDBKeyRange.bound([e.indexId],[e.indexId+1],!1,!0)))).next((()=>s.delete(IDBKeyRange.bound([e.indexId],[e.indexId+1],!1,!0))))}deleteAllFieldIndexes(t){const e=rl(t),n=nl(t),r=sl(t);return e.H().next((()=>n.H())).next((()=>r.H()))}createTargetIndexes(t,e){return Ps.forEach(this.cn(e),(e=>this.getIndexType(t,e).next((n=>{if(0===n||1===n){const n=new Uc(e).on();if(null!=n)return this.addFieldIndex(t,n)}}))))}getDocumentsMatchingTarget(t,e){const n=nl(t);let r=!0;const s=new Map;return Ps.forEach(this.cn(e),(e=>this.ln(t,e).next((t=>{r&&(r=!!t),s.set(e,t)})))).next((()=>{if(r){let t=Ca();const r=[];return Ps.forEach(s,((s,i)=>{jr("IndexedDbIndexManager",`Using index ${function(t){return`id=${t.indexId}|cg=${t.collectionGroup}|f=${t.fields.map((t=>`${t.fieldPath}:${t.kind}`)).join(",")}`}(s)} to execute ${Qo(e)}`);const o=function(t,e){const n=Es(e);if(void 0===n)return null;for(const e of Yo(t,n.fieldPath))switch(e.op){case"array-contains-any":return e.value.arrayValue.values||[];case"array-contains":return[e.value]}return null}(i,s),a=function(t,e){const n=new Map;for(const r of Ts(e))for(const e of Yo(t,r.fieldPath))switch(e.op){case"==":case"in":n.set(r.fieldPath.canonicalString(),e.value);break;case"not-in":case"!=":return n.set(r.fieldPath.canonicalString(),e.value),Array.from(n.values())}return null}(i,s),u=function(t,e){const n=[];let r=!0;for(const s of Ts(e)){const e=0===s.kind?Xo(t,s.fieldPath,t.startAt):Jo(t,s.fieldPath,t.startAt);n.push(e.value),r&&(r=e.inclusive)}return new _o(n,r)}(i,s),c=function(t,e){const n=[];let r=!0;for(const s of Ts(e)){const e=0===s.kind?Jo(t,s.fieldPath,t.endAt):Xo(t,s.fieldPath,t.endAt);n.push(e.value),r&&(r=e.inclusive)}return new _o(n,r)}(i,s),l=this.hn(s,i,u),h=this.hn(s,i,c),d=this.Pn(s,i,a),f=this.In(s.indexId,o,l,u.inclusive,h,c.inclusive,d);return Ps.forEach(f,(s=>n.j(s,e.limit).next((e=>{e.forEach((e=>{const n=_s.fromSegments(e.documentKey);t.has(n)||(t=t.add(n),r.push(n))}))}))))})).next((()=>r))}return Ps.resolve(null)}))}cn(t){let e=this.un.get(t);return e||(e=0===t.filters.length?[t]:Gc(Do.create(t.filters,"and")).map((e=>$o(t.path,t.collectionGroup,t.orderBy,e.getFilters(),t.limit,t.startAt,t.endAt))),this.un.set(t,e),e)}In(t,e,n,r,s,i,o){const a=(null!=e?e.length:1)*Math.max(n.length,s.length),u=a/(null!=e?e.length:1),c=[];for(let l=0;lthis.En(t,a,e,!0)));c.push(...this.createRange(h,d,f))}return c}En(t,e,n,r){const s=new Vc(t,_s.empty(),e,n);return r?s:s.Jt()}dn(t,e,n,r){const s=new Vc(t,_s.empty(),e,n);return r?s.Jt():s}ln(t,e){const n=new Uc(e),r=null!=e.collectionGroup?e.collectionGroup:e.path.lastSegment();return this.getFieldIndexes(t,r).next((t=>{let e=null;for(const r of t)n.tn(r)&&(!e||r.fields.length>e.fields.length)&&(e=r);return e}))}getIndexType(t,e){let n=2;const r=this.cn(e);return Ps.forEach(r,(e=>this.ln(t,e).next((t=>{t?0!==n&&t.fields.lengthfunction(t){return null!==t.limit}(e)&&r.length>1&&2===n?1:n))}An(t,e){const n=new Fc;for(const r of Ts(t)){const t=e.data.field(r.fieldPath);if(null==t)return null;const s=n.Ht(r.kind);kc.bt.Pt(t,s)}return n.Wt()}Tn(t){const e=new Fc;return kc.bt.Pt(t,e.Ht(0)),e.Wt()}Rn(t,e){const n=new Fc;return kc.bt.Pt(io(this.databaseId,e),n.Ht(function(t){const e=Ts(t);return 0===e.length?0:e[e.length-1].kind}(t))),n.Wt()}Pn(t,e,n){if(null===n)return[];let r=[];r.push(new Fc);let s=0;for(const i of Ts(t)){const t=n[s++];for(const n of r)if(this.Vn(e,i.fieldPath)&&ao(t))r=this.mn(r,i,t);else{const e=n.Ht(i.kind);kc.bt.Pt(t,e)}}return this.fn(r)}hn(t,e,n){return this.Pn(t,e,n.position)}fn(t){const e=[];for(let n=0;nt instanceof Co&&t.field.isEqual(e)&&("in"===t.op||"not-in"===t.op)))}getFieldIndexes(t,e){const n=rl(t),r=sl(t);return(e?n.W("collectionGroupIndex",IDBKeyRange.bound(e,e)):n.W()).next((t=>{const e=[];return Ps.forEach(t,(t=>r.get([t.indexId,this.uid]).next((n=>{e.push(function(t,e){const n=e?new Ds(e.sequenceNumber,new ks(wc(e.readTime),new _s(ei(e.documentKey)),e.largestBatchId)):Ds.empty(),r=t.fields.map((([t,e])=>new xs(bs.fromServerFormat(t),e)));return new Is(t.indexId,t.collectionGroup,r,n)}(t,n))})))).next((()=>e))}))}getNextCollectionGroupToUpdate(t){return this.getFieldIndexes(t).next((t=>0===t.length?null:(t.sort(((t,e)=>{const n=t.indexState.sequenceNumber-e.indexState.sequenceNumber;return 0!==n?n:ds(t.collectionGroup,e.collectionGroup)})),t[0].collectionGroup)))}updateCollectionGroup(t,e,n){const r=rl(t),s=sl(t);return this.gn(t).next((t=>r.W("collectionGroupIndex",IDBKeyRange.bound(e,e)).next((e=>Ps.forEach(e,(e=>s.put(Sc(e.indexId,this.uid,t,n))))))))}updateIndexEntries(t,e){const n=new Map;return Ps.forEach(e,((e,r)=>{const s=n.get(e.collectionGroup);return(s?Ps.resolve(s):this.getFieldIndexes(t,e.collectionGroup)).next((s=>(n.set(e.collectionGroup,s),Ps.forEach(s,(n=>this.pn(t,e,n).next((e=>{const s=this.yn(r,n);return e.isEqual(s)?Ps.resolve():this.wn(t,r,n,e,s)})))))))}))}Sn(t,e,n,r){return nl(t).put({indexId:r.indexId,uid:this.uid,arrayValue:r.arrayValue,directionalValue:r.directionalValue,orderedDocumentKey:this.Rn(n,e.key),documentKey:e.key.path.toArray()})}bn(t,e,n,r){return nl(t).delete([r.indexId,this.uid,r.arrayValue,r.directionalValue,this.Rn(n,e.key),e.key.path.toArray()])}pn(t,e,n){const r=nl(t);let s=new Mi(qc);return r.Y({index:"documentKeyIndex",range:IDBKeyRange.only([n.indexId,this.uid,this.Rn(n,e)])},((t,r)=>{s=s.add(new Vc(n.indexId,e,r.arrayValue,r.directionalValue))})).next((()=>s))}yn(t,e){let n=new Mi(qc);const r=this.An(e,t);if(null==r)return n;const s=Es(e);if(null!=s){const i=t.data.field(s.fieldPath);if(ao(i))for(const s of i.arrayValue.values||[])n=n.add(new Vc(e.indexId,t.key,this.Tn(s),r))}else n=n.add(new Vc(e.indexId,t.key,Zc,r));return n}wn(t,e,n,r,s){jr("IndexedDbIndexManager","Updating index entries for document '%s'",e.key);const i=[];return function(t,e,n,r,s){const i=t.getIterator(),o=e.getIterator();let a=Oi(i),u=Oi(o);for(;a||u;){let t=!1,e=!1;if(a&&u){const r=n(a,u);r<0?e=!0:r>0&&(t=!0)}else null!=a?e=!0:t=!0;t?(r(u),u=Oi(o)):e?(s(a),a=Oi(i)):(a=Oi(i),u=Oi(o))}}(r,s,qc,(r=>{i.push(this.Sn(t,e,n,r))}),(r=>{i.push(this.bn(t,e,n,r))})),Ps.waitFor(i)}gn(t){let e=1;return sl(t).Y({index:"sequenceNumberIndex",reverse:!0,range:IDBKeyRange.upperBound([this.uid,Number.MAX_SAFE_INTEGER])},((t,n,r)=>{r.done(),e=n.sequenceNumber+1})).next((()=>e))}createRange(t,e,n){n=n.sort(((t,e)=>qc(t,e))).filter(((t,e,n)=>!e||0!==qc(t,n[e-1])));const r=[];r.push(t);for(const s of n){const n=qc(s,t),i=qc(s,e);if(0===n)r[0]=t.Jt();else if(n>0&&i<0)r.push(s),r.push(s.Jt());else if(i>0)break}r.push(e);const s=[];for(let t=0;t0}getMinOffsetFromCollectionGroup(t,e){return this.getFieldIndexes(t,e).next(il)}getMinOffset(t,e){return Ps.mapArray(this.cn(e),(e=>this.ln(t,e).next((t=>t||Hr())))).next(il)}}function el(t){return xi(t,"collectionParents")}function nl(t){return xi(t,"indexEntries")}function rl(t){return xi(t,"indexConfiguration")}function sl(t){return xi(t,"indexState")}function il(t){Wr(0!==t.length);let e=t[0].indexState.offset,n=e.largestBatchId;for(let r=1;r(a++,n.delete())));i.push(u.next((()=>{Wr(1===a)})));const c=[];for(const t of n.mutations){const r=si(e,t.key.path,n.batchId);i.push(s.delete(r)),c.push(t.key)}return Ps.waitFor(i).next((()=>c))}function cl(t){if(!t)return 0;let e;if(t.document)e=t.document;else if(t.unknownDocument)e=t.unknownDocument;else{if(!t.noDocument)throw Hr();e=t.noDocument}return JSON.stringify(e).length}al.DEFAULT_COLLECTION_PERCENTILE=10,al.DEFAULT_MAX_SEQUENCE_NUMBERS_TO_COLLECT=1e3,al.DEFAULT=new al(41943040,al.DEFAULT_COLLECTION_PERCENTILE,al.DEFAULT_MAX_SEQUENCE_NUMBERS_TO_COLLECT),al.DISABLED=new al(-1,0,0);class ll{constructor(t,e,n,r){this.userId=t,this.serializer=e,this.indexManager=n,this.referenceDelegate=r,this.Cn={}}static lt(t,e,n,r){Wr(""!==t.uid);const s=t.isAuthenticated()?t.uid:"";return new ll(s,e,n,r)}checkEmpty(t){let e=!0;const n=IDBKeyRange.bound([this.userId,Number.NEGATIVE_INFINITY],[this.userId,Number.POSITIVE_INFINITY]);return dl(t).Y({index:"userMutationsIndex",range:n},((t,n,r)=>{e=!1,r.done()})).next((()=>e))}addMutationBatch(t,e,n,r){const s=fl(t),i=dl(t);return i.add({}).next((o=>{Wr("number"==typeof o);const a=new uu(o,e,n,r),u=function(t,e,n){const r=n.baseMutations.map((e=>Zu(t.ct,e))),s=n.mutations.map((e=>Zu(t.ct,e)));return{userId:e,batchId:n.batchId,localWriteTimeMs:n.localWriteTime.toMillis(),baseMutations:r,mutations:s}}(this.serializer,this.userId,a),c=[];let l=new Mi(((t,e)=>ds(t.canonicalString(),e.canonicalString())));for(const t of r){const e=si(this.userId,t.key.path,o);l=l.add(t.key.path.popLast()),c.push(i.put(u)),c.push(s.put(e,ii))}return l.forEach((e=>{c.push(this.indexManager.addToCollectionParentIndex(t,e))})),t.addOnCommittedListener((()=>{this.Cn[o]=a.keys()})),Ps.waitFor(c).next((()=>a))}))}lookupMutationBatch(t,e){return dl(t).get(e).next((t=>t?(Wr(t.userId===this.userId),vc(this.serializer,t)):null))}vn(t,e){return this.Cn[e]?Ps.resolve(this.Cn[e]):this.lookupMutationBatch(t,e).next((t=>{if(t){const n=t.keys();return this.Cn[e]=n,n}return null}))}getNextMutationBatchAfterBatchId(t,e){const n=e+1,r=IDBKeyRange.lowerBound([this.userId,n]);let s=null;return dl(t).Y({index:"userMutationsIndex",range:r},((t,e,r)=>{e.userId===this.userId&&(Wr(e.batchId>=n),s=vc(this.serializer,e)),r.done()})).next((()=>s))}getHighestUnacknowledgedBatchId(t){const e=IDBKeyRange.upperBound([this.userId,Number.POSITIVE_INFINITY]);let n=-1;return dl(t).Y({index:"userMutationsIndex",range:e,reverse:!0},((t,e,r)=>{n=e.batchId,r.done()})).next((()=>n))}getAllMutationBatches(t){const e=IDBKeyRange.bound([this.userId,-1],[this.userId,Number.POSITIVE_INFINITY]);return dl(t).W("userMutationsIndex",e).next((t=>t.map((t=>vc(this.serializer,t)))))}getAllMutationBatchesAffectingDocumentKey(t,e){const n=ri(this.userId,e.path),r=IDBKeyRange.lowerBound(n),s=[];return fl(t).Y({range:r},((n,r,i)=>{const[o,a,u]=n,c=ei(a);if(o===this.userId&&e.path.isEqual(c))return dl(t).get(u).next((t=>{if(!t)throw Hr();Wr(t.userId===this.userId),s.push(vc(this.serializer,t))}));i.done()})).next((()=>s))}getAllMutationBatchesAffectingDocumentKeys(t,e){let n=new Mi(ds);const r=[];return e.forEach((e=>{const s=ri(this.userId,e.path),i=IDBKeyRange.lowerBound(s),o=fl(t).Y({range:i},((t,r,s)=>{const[i,o,a]=t,u=ei(o);i===this.userId&&e.path.isEqual(u)?n=n.add(a):s.done()}));r.push(o)})),Ps.waitFor(r).next((()=>this.Fn(t,n)))}getAllMutationBatchesAffectingQuery(t,e){const n=e.path,r=n.length+1,s=ri(this.userId,n),i=IDBKeyRange.lowerBound(s);let o=new Mi(ds);return fl(t).Y({range:i},((t,e,s)=>{const[i,a,u]=t,c=ei(a);i===this.userId&&n.isPrefixOf(c)?c.length===r&&(o=o.add(u)):s.done()})).next((()=>this.Fn(t,o)))}Fn(t,e){const n=[],r=[];return e.forEach((e=>{r.push(dl(t).get(e).next((t=>{if(null===t)throw Hr();Wr(t.userId===this.userId),n.push(vc(this.serializer,t))})))})),Ps.waitFor(r).next((()=>n))}removeMutationBatch(t,e){return ul(t.ae,this.userId,e).next((n=>(t.addOnCommittedListener((()=>{this.Mn(e.batchId)})),Ps.forEach(n,(e=>this.referenceDelegate.markPotentiallyOrphaned(t,e))))))}Mn(t){delete this.Cn[t]}performConsistencyCheck(t){return this.checkEmpty(t).next((e=>{if(!e)return Ps.resolve();const n=IDBKeyRange.lowerBound(function(t){return[t]}(this.userId)),r=[];return fl(t).Y({range:n},((t,e,n)=>{if(t[0]===this.userId){const e=ei(t[1]);r.push(e)}else n.done()})).next((()=>{Wr(0===r.length)}))}))}containsKey(t,e){return hl(t,this.userId,e)}xn(t){return gl(t).get(this.userId).next((t=>t||{userId:this.userId,lastAcknowledgedBatchId:-1,lastStreamToken:""}))}}function hl(t,e,n){const r=ri(e,n.path),s=r[1],i=IDBKeyRange.lowerBound(r);let o=!1;return fl(t).Y({range:i,J:!0},((t,n,r)=>{const[i,a,u]=t;i===e&&a===s&&(o=!0),r.done()})).next((()=>o))}function dl(t){return xi(t,"mutations")}function fl(t){return xi(t,"documentMutations")}function gl(t){return xi(t,"mutationQueues")}class ml{constructor(t){this.On=t}next(){return this.On+=2,this.On}static Nn(){return new ml(0)}static Bn(){return new ml(-1)}}class pl{constructor(t,e){this.referenceDelegate=t,this.serializer=e}allocateTargetId(t){return this.Ln(t).next((e=>{const n=new ml(e.highestTargetId);return e.highestTargetId=n.next(),this.kn(t,e).next((()=>e.highestTargetId))}))}getLastRemoteSnapshotVersion(t){return this.Ln(t).next((t=>ps.fromTimestamp(new ms(t.lastRemoteSnapshotVersion.seconds,t.lastRemoteSnapshotVersion.nanoseconds))))}getHighestSequenceNumber(t){return this.Ln(t).next((t=>t.highestListenSequenceNumber))}setTargetsMetadata(t,e,n){return this.Ln(t).next((r=>(r.highestListenSequenceNumber=e,n&&(r.lastRemoteSnapshotVersion=n.toTimestamp()),e>r.highestListenSequenceNumber&&(r.highestListenSequenceNumber=e),this.kn(t,r))))}addTargetData(t,e){return this.qn(t,e).next((()=>this.Ln(t).next((n=>(n.targetCount+=1,this.Qn(e,n),this.kn(t,n))))))}updateTargetData(t,e){return this.qn(t,e)}removeTargetData(t,e){return this.removeMatchingKeysForTargetId(t,e.targetId).next((()=>yl(t).delete(e.targetId))).next((()=>this.Ln(t))).next((e=>(Wr(e.targetCount>0),e.targetCount-=1,this.kn(t,e))))}removeTargets(t,e,n){let r=0;const s=[];return yl(t).Y(((i,o)=>{const a=bc(o);a.sequenceNumber<=e&&null===n.get(a.targetId)&&(r++,s.push(this.removeTargetData(t,a)))})).next((()=>Ps.waitFor(s))).next((()=>r))}forEachTarget(t,e){return yl(t).Y(((t,n)=>{const r=bc(n);e(r)}))}Ln(t){return wl(t).get("targetGlobalKey").next((t=>(Wr(null!==t),t)))}kn(t,e){return wl(t).put("targetGlobalKey",e)}qn(t,e){return yl(t).put(_c(this.serializer,e))}Qn(t,e){let n=!1;return t.targetId>e.highestTargetId&&(e.highestTargetId=t.targetId,n=!0),t.sequenceNumber>e.highestListenSequenceNumber&&(e.highestListenSequenceNumber=t.sequenceNumber,n=!0),n}getTargetCount(t){return this.Ln(t).next((t=>t.targetCount))}getTargetData(t,e){const n=Qo(e),r=IDBKeyRange.bound([n,Number.NEGATIVE_INFINITY],[n,Number.POSITIVE_INFINITY]);let s=null;return yl(t).Y({range:r,index:"queryTargetsIndex"},((t,n,r)=>{const i=bc(n);Ho(e,i.target)&&(s=i,r.done())})).next((()=>s))}addMatchingKeys(t,e,n){const r=[],s=vl(t);return e.forEach((e=>{const i=Js(e.path);r.push(s.put({targetId:n,path:i})),r.push(this.referenceDelegate.addReference(t,n,e))})),Ps.waitFor(r)}removeMatchingKeys(t,e,n){const r=vl(t);return Ps.forEach(e,(e=>{const s=Js(e.path);return Ps.waitFor([r.delete([n,s]),this.referenceDelegate.removeReference(t,n,e)])}))}removeMatchingKeysForTargetId(t,e){const n=vl(t),r=IDBKeyRange.bound([e],[e+1],!1,!0);return n.delete(r)}getMatchingKeysForTargetId(t,e){const n=IDBKeyRange.bound([e],[e+1],!1,!0),r=vl(t);let s=Ca();return r.Y({range:n,J:!0},((t,e,n)=>{const r=ei(t[1]),i=new _s(r);s=s.add(i)})).next((()=>s))}containsKey(t,e){const n=Js(e.path),r=IDBKeyRange.bound([n],[gs(n)],!1,!0);let s=0;return vl(t).Y({index:"documentTargetsIndex",J:!0,range:r},(([t,e],n,r)=>{0!==t&&(s++,r.done())})).next((()=>s>0))}_t(t,e){return yl(t).get(e).next((t=>t?bc(t):null))}}function yl(t){return xi(t,"targets")}function wl(t){return xi(t,"targetGlobal")}function vl(t){return xi(t,"targetDocuments")}function bl([t,e],[n,r]){const s=ds(t,n);return 0===s?ds(e,r):s}class _l{constructor(t){this.Kn=t,this.buffer=new Mi(bl),this.$n=0}Un(){return++this.$n}Wn(t){const e=[t,this.Un()];if(this.buffer.size{this.Gn=null;try{await this.localStore.collectGarbage(this.garbageCollector)}catch(t){Us(t)?jr("LruGarbageCollector","Ignoring IndexedDB error during garbage collection: ",t):await Os(t)}await this.zn(3e5)}))}}class El{constructor(t,e){this.jn=t,this.params=e}calculateTargetCount(t,e){return this.jn.Hn(t).next((t=>Math.floor(e/100*t)))}nthSequenceNumber(t,e){if(0===e)return Ps.resolve(Hs._e);const n=new _l(e);return this.jn.forEachTarget(t,(t=>n.Wn(t.sequenceNumber))).next((()=>this.jn.Jn(t,(t=>n.Wn(t))))).next((()=>n.maxValue))}removeTargets(t,e,n){return this.jn.removeTargets(t,e,n)}removeOrphanedDocuments(t,e){return this.jn.removeOrphanedDocuments(t,e)}collect(t,e){return-1===this.params.cacheSizeCollectionThreshold?(jr("LruGarbageCollector","Garbage collection skipped; disabled"),Ps.resolve(ol)):this.getCacheSize(t).next((n=>n(e>this.params.maximumSequenceNumbersToCollect?(jr("LruGarbageCollector",`Capping sequence numbers to collect down to the maximum of ${this.params.maximumSequenceNumbersToCollect} from ${e}`),r=this.params.maximumSequenceNumbersToCollect):r=e,i=Date.now(),this.nthSequenceNumber(t,r)))).next((r=>(n=r,o=Date.now(),this.removeTargets(t,n,e)))).next((e=>(s=e,a=Date.now(),this.removeOrphanedDocuments(t,n)))).next((t=>(u=Date.now(),zr()<=_.DEBUG&&jr("LruGarbageCollector",`LRU Garbage Collection\n\tCounted targets in ${i-c}ms\n\tDetermined least recently used ${r} in `+(o-i)+"ms\n"+`\tRemoved ${s} targets in `+(a-o)+"ms\n"+`\tRemoved ${t} documents in `+(u-a)+"ms\n"+`Total Duration: ${u-c}ms`),Ps.resolve({didRun:!0,sequenceNumbersCollected:r,targetsRemoved:s,documentsRemoved:t}))))}}function Tl(t,e){return new El(t,e)}class Sl{constructor(t,e){this.db=t,this.garbageCollector=Tl(this,e)}Hn(t){const e=this.Zn(t);return this.db.getTargetCache().getTargetCount(t).next((t=>e.next((e=>t+e))))}Zn(t){let e=0;return this.Jn(t,(t=>{e++})).next((()=>e))}forEachTarget(t,e){return this.db.getTargetCache().forEachTarget(t,e)}Jn(t,e){return this.Xn(t,((t,n)=>e(n)))}addReference(t,e,n){return xl(t,n)}removeReference(t,e,n){return xl(t,n)}removeTargets(t,e,n){return this.db.getTargetCache().removeTargets(t,e,n)}markPotentiallyOrphaned(t,e){return xl(t,e)}er(t,e){return function(t,e){let n=!1;return gl(t).Z((r=>hl(t,r,e).next((t=>(t&&(n=!0),Ps.resolve(!t)))))).next((()=>n))}(t,e)}removeOrphanedDocuments(t,e){const n=this.db.getRemoteDocumentCache().newChangeBuffer(),r=[];let s=0;return this.Xn(t,((i,o)=>{if(o<=e){const e=this.er(t,i).next((e=>{if(!e)return s++,n.getEntry(t,i).next((()=>(n.removeEntry(i,ps.min()),vl(t).delete(function(t){return[0,Js(t.path)]}(i)))))}));r.push(e)}})).next((()=>Ps.waitFor(r))).next((()=>n.apply(t))).next((()=>s))}removeTarget(t,e){const n=e.withSequenceNumber(t.currentSequenceNumber);return this.db.getTargetCache().updateTargetData(t,n)}updateLimboDocument(t,e){return xl(t,e)}Xn(t,e){const n=vl(t);let r,s=Hs._e;return n.Y({index:"documentTargetsIndex"},(([t,n],{path:i,sequenceNumber:o})=>{0===t?(s!==Hs._e&&e(new _s(ei(r)),s),s=o,r=i):s=Hs._e})).next((()=>{s!==Hs._e&&e(new _s(ei(r)),s)}))}getCacheSize(t){return this.db.getRemoteDocumentCache().getSize(t)}}function xl(t,e){return vl(t).put(function(t,e){return{targetId:0,path:Js(t.path),sequenceNumber:e}}(e,t.currentSequenceNumber))}class Cl{constructor(){this.changes=new pa((t=>t.toString()),((t,e)=>t.isEqual(e))),this.changesApplied=!1}addEntry(t){this.assertNotApplied(),this.changes.set(t.key,t)}removeEntry(t,e){this.assertNotApplied(),this.changes.set(t,bo.newInvalidDocument(t).setReadTime(e))}getEntry(t,e){this.assertNotApplied();const n=this.changes.get(e);return void 0!==n?Ps.resolve(n):this.getFromCache(t,e)}getEntries(t,e){return this.getAllFromCache(t,e)}apply(t){return this.assertNotApplied(),this.changesApplied=!0,this.applyChanges(t)}assertNotApplied(){}}class Dl{constructor(t){this.serializer=t}setIndexManager(t){this.indexManager=t}addEntry(t,e,n){return Rl(t).put(n)}removeEntry(t,e,n){return Rl(t).delete(function(t,e){const n=t.path.toArray();return[n.slice(0,n.length-2),n[n.length-2],pc(e),n[n.length-1]]}(e,n))}updateMetadata(t,e){return this.getMetadata(t).next((n=>(n.byteSize+=e,this.tr(t,n))))}getEntry(t,e){let n=bo.newInvalidDocument(e);return Rl(t).Y({index:"documentKeyIndex",range:IDBKeyRange.only(Ml(e))},((t,r)=>{n=this.nr(e,r)})).next((()=>n))}rr(t,e){let n={size:0,document:bo.newInvalidDocument(e)};return Rl(t).Y({index:"documentKeyIndex",range:IDBKeyRange.only(Ml(e))},((t,r)=>{n={document:this.nr(e,r),size:cl(r)}})).next((()=>n))}getEntries(t,e){let n=wa();return this.ir(t,e,((t,e)=>{const r=this.nr(t,e);n=n.insert(t,r)})).next((()=>n))}sr(t,e){let n=wa(),r=new Ni(_s.comparator);return this.ir(t,e,((t,e)=>{const s=this.nr(t,e);n=n.insert(t,s),r=r.insert(t,cl(e))})).next((()=>({documents:n,_r:r})))}ir(t,e,n){if(e.isEmpty())return Ps.resolve();let r=new Mi(Ol);e.forEach((t=>r=r.add(t)));const s=IDBKeyRange.bound(Ml(r.first()),Ml(r.last())),i=r.getIterator();let o=i.getNext();return Rl(t).Y({index:"documentKeyIndex",range:s},((t,e,r)=>{const s=_s.fromSegments([...e.prefixPath,e.collectionGroup,e.documentId]);for(;o&&Ol(o,s)<0;)n(o,null),o=i.getNext();o&&o.isEqual(s)&&(n(o,e),o=i.hasNext()?i.getNext():null),o?r.U(Ml(o)):r.done()})).next((()=>{for(;o;)n(o,null),o=i.hasNext()?i.getNext():null}))}getDocumentsMatchingQuery(t,e,n,r,s){const i=e.path,o=[i.popLast().toArray(),i.lastSegment(),pc(n.readTime),n.documentKey.path.isEmpty()?"":n.documentKey.path.lastSegment()],a=[i.popLast().toArray(),i.lastSegment(),[Number.MAX_SAFE_INTEGER,Number.MAX_SAFE_INTEGER],""];return Rl(t).W(IDBKeyRange.bound(o,a,!0)).next((t=>{null==s||s.incrementDocumentReadCount(t.length);let n=wa();for(const s of t){const t=this.nr(_s.fromSegments(s.prefixPath.concat(s.collectionGroup,s.documentId)),s);t.isFoundDocument()&&(da(e,t)||r.has(t.key))&&(n=n.insert(t.key,t))}return n}))}getAllFromCollectionGroup(t,e,n,r){let s=wa();const i=Ll(e,n),o=Ll(e,ks.max());return Rl(t).Y({index:"collectionGroupIndex",range:IDBKeyRange.bound(i,o,!0)},((t,e,n)=>{const i=this.nr(_s.fromSegments(e.prefixPath.concat(e.collectionGroup,e.documentId)),e);s=s.insert(i.key,i),s.size===r&&n.done()})).next((()=>s))}newChangeBuffer(t){return new Nl(this,!!t&&t.trackRemovals)}getSize(t){return this.getMetadata(t).next((t=>t.byteSize))}getMetadata(t){return kl(t).get("remoteDocumentGlobalKey").next((t=>(Wr(!!t),t)))}tr(t,e){return kl(t).put("remoteDocumentGlobalKey",e)}nr(t,e){if(e){const t=function(t,e){let n;if(e.document)n=Ju(t.ct,e.document,!!e.hasCommittedMutations);else if(e.noDocument){const t=_s.fromSegments(e.noDocument.path),r=wc(e.noDocument.readTime);n=bo.newNoDocument(t,r),e.hasCommittedMutations&&n.setHasCommittedMutations()}else{if(!e.unknownDocument)return Hr();{const t=_s.fromSegments(e.unknownDocument.path),r=wc(e.unknownDocument.version);n=bo.newUnknownDocument(t,r)}}return e.readTime&&n.setReadTime(function(t){const e=new ms(t[0],t[1]);return ps.fromTimestamp(e)}(e.readTime)),n}(this.serializer,e);if(!t.isNoDocument()||!t.version.isEqual(ps.min()))return t}return bo.newInvalidDocument(t)}}function Al(t){return new Dl(t)}class Nl extends Cl{constructor(t,e){super(),this.ar=t,this.trackRemovals=e,this.ur=new pa((t=>t.toString()),((t,e)=>t.isEqual(e)))}applyChanges(t){const e=[];let n=0,r=new Mi(((t,e)=>ds(t.canonicalString(),e.canonicalString())));return this.changes.forEach(((s,i)=>{const o=this.ur.get(s);if(e.push(this.ar.removeEntry(t,s,o.readTime)),i.isValidDocument()){const a=mc(this.ar.serializer,i);r=r.add(s.path.popLast());const u=cl(a);n+=u-o.size,e.push(this.ar.addEntry(t,s,a))}else if(n-=o.size,this.trackRemovals){const n=mc(this.ar.serializer,i.convertToNoDocument(ps.min()));e.push(this.ar.addEntry(t,s,n))}})),r.forEach((n=>{e.push(this.ar.indexManager.addToCollectionParentIndex(t,n))})),e.push(this.ar.updateMetadata(t,n)),Ps.waitFor(e)}getFromCache(t,e){return this.ar.rr(t,e).next((t=>(this.ur.set(e,{size:t.size,readTime:t.document.readTime}),t.document)))}getAllFromCache(t,e){return this.ar.sr(t,e).next((({documents:t,_r:e})=>(e.forEach(((e,n)=>{this.ur.set(e,{size:n,readTime:t.get(e).readTime})})),t)))}}function kl(t){return xi(t,"remoteDocumentGlobal")}function Rl(t){return xi(t,"remoteDocumentsV14")}function Ml(t){const e=t.path.toArray();return[e.slice(0,e.length-2),e[e.length-2],e[e.length-1]]}function Ll(t,e){const n=e.documentKey.path.toArray();return[t,pc(e.readTime),n.slice(0,n.length-2),n.length>0?n[n.length-1]:""]}function Ol(t,e){const n=t.path.toArray(),r=e.path.toArray();let s=0;for(let t=0;t(n=r,this.remoteDocumentCache.getEntry(t,e)))).next((t=>(null!==n&&Ja(n.mutation,t,Pi.empty(),ms.now()),t)))}getDocuments(t,e){return this.remoteDocumentCache.getEntries(t,e).next((e=>this.getLocalViewOfDocuments(t,e,Ca()).next((()=>e))))}getLocalViewOfDocuments(t,e,n=Ca()){const r=Ia();return this.populateOverlays(t,r,e).next((()=>this.computeViews(t,e,r,n).next((t=>{let e=ba();return t.forEach(((t,n)=>{e=e.insert(t,n.overlayedDocument)})),e}))))}getOverlayedDocuments(t,e){const n=Ia();return this.populateOverlays(t,n,e).next((()=>this.computeViews(t,e,n,Ca())))}populateOverlays(t,e,n){const r=[];return n.forEach((t=>{e.has(t)||r.push(t)})),this.documentOverlayCache.getOverlays(t,r).next((t=>{t.forEach(((t,n)=>{e.set(t,n)}))}))}computeViews(t,e,n,r){let s=wa();const i=Ta(),o=Ta();return e.forEach(((t,e)=>{const o=n.get(e.key);r.has(e.key)&&(void 0===o||o.mutation instanceof nu)?s=s.insert(e.key,e):void 0!==o?(i.set(e.key,o.mutation.getFieldMask()),Ja(o.mutation,e,o.mutation.getFieldMask(),ms.now())):i.set(e.key,Pi.empty())})),this.recalculateAndSaveOverlays(t,s).next((t=>(t.forEach(((t,e)=>i.set(t,e))),e.forEach(((t,e)=>{var n;return o.set(t,new Pl(e,null!==(n=i.get(t))&&void 0!==n?n:null))})),o)))}recalculateAndSaveOverlays(t,e){const n=Ta();let r=new Ni(((t,e)=>t-e)),s=Ca();return this.mutationQueue.getAllMutationBatchesAffectingDocumentKeys(t,e).next((t=>{for(const s of t)s.keys().forEach((t=>{const i=e.get(t);if(null===i)return;let o=n.get(t)||Pi.empty();o=s.applyToLocalView(i,o),n.set(t,o);const a=(r.get(s.batchId)||Ca()).add(t);r=r.insert(s.batchId,a)}))})).next((()=>{const i=[],o=r.getReverseIterator();for(;o.hasNext();){const r=o.getNext(),a=r.key,u=r.value,c=Ea();u.forEach((t=>{if(!s.has(t)){const r=Ya(e.get(t),n.get(t));null!==r&&c.set(t,r),s=s.add(t)}})),i.push(this.documentOverlayCache.saveOverlays(t,a,c))}return Ps.waitFor(i)})).next((()=>n))}recalculateAndSaveOverlaysForDocumentKeys(t,e){return this.remoteDocumentCache.getEntries(t,e).next((e=>this.recalculateAndSaveOverlays(t,e)))}getDocumentsMatchingQuery(t,e,n,r){return function(t){return _s.isDocumentKey(t.path)&&null===t.collectionGroup&&0===t.filters.length}(e)?this.getDocumentsMatchingDocumentQuery(t,e.path):ra(e)?this.getDocumentsMatchingCollectionGroupQuery(t,e,n,r):this.getDocumentsMatchingCollectionQuery(t,e,n,r)}getNextDocuments(t,e,n,r){return this.remoteDocumentCache.getAllFromCollectionGroup(t,e,n,r).next((s=>{const i=r-s.size>0?this.documentOverlayCache.getOverlaysForCollectionGroup(t,e,n.largestBatchId,r-s.size):Ps.resolve(Ia());let o=-1,a=s;return i.next((e=>Ps.forEach(e,((e,n)=>(o{a=a.insert(e,t)}))))).next((()=>this.populateOverlays(t,e,s))).next((()=>this.computeViews(t,a,e,Ca()))).next((t=>({batchId:o,changes:_a(t)})))))}))}getDocumentsMatchingDocumentQuery(t,e){return this.getDocument(t,new _s(e)).next((t=>{let e=ba();return t.isFoundDocument()&&(e=e.insert(t.key,t)),e}))}getDocumentsMatchingCollectionGroupQuery(t,e,n,r){const s=e.collectionGroup;let i=ba();return this.indexManager.getCollectionParents(t,s).next((o=>Ps.forEach(o,(o=>{const a=function(t,e){return new Zo(e,null,t.explicitOrderBy.slice(),t.filters.slice(),t.limit,t.limitType,t.startAt,t.endAt)}(e,o.child(s));return this.getDocumentsMatchingCollectionQuery(t,a,n,r).next((t=>{t.forEach(((t,e)=>{i=i.insert(t,e)}))}))})).next((()=>i))))}getDocumentsMatchingCollectionQuery(t,e,n,r){let s;return this.documentOverlayCache.getOverlaysForCollection(t,e.path,n.largestBatchId).next((i=>(s=i,this.remoteDocumentCache.getDocumentsMatchingQuery(t,e,n,s,r)))).next((t=>{s.forEach(((e,n)=>{const r=n.getKey();null===t.get(r)&&(t=t.insert(r,bo.newInvalidDocument(r)))}));let n=ba();return t.forEach(((t,r)=>{const i=s.get(t);void 0!==i&&Ja(i.mutation,r,Pi.empty(),ms.now()),da(e,r)&&(n=n.insert(t,r))})),n}))}}class Vl{constructor(t){this.serializer=t,this.cr=new Map,this.lr=new Map}getBundleMetadata(t,e){return Ps.resolve(this.cr.get(e))}saveBundleMetadata(t,e){return this.cr.set(e.id,function(t){return{id:t.id,version:t.version,createTime:Uu(t.createTime)}}(e)),Ps.resolve()}getNamedQuery(t,e){return Ps.resolve(this.lr.get(e))}saveNamedQuery(t,e){return this.lr.set(e.name,function(t){return{name:t.name,query:Ic(t.bundledQuery),readTime:Uu(t.readTime)}}(e)),Ps.resolve()}}class ql{constructor(){this.overlays=new Ni(_s.comparator),this.hr=new Map}getOverlay(t,e){return Ps.resolve(this.overlays.get(e))}getOverlays(t,e){const n=Ia();return Ps.forEach(e,(e=>this.getOverlay(t,e).next((t=>{null!==t&&n.set(e,t)})))).next((()=>n))}saveOverlays(t,e,n){return n.forEach(((n,r)=>{this.ht(t,e,r)})),Ps.resolve()}removeOverlaysForBatchId(t,e,n){const r=this.hr.get(n);return void 0!==r&&(r.forEach((t=>this.overlays=this.overlays.remove(t))),this.hr.delete(n)),Ps.resolve()}getOverlaysForCollection(t,e,n){const r=Ia(),s=e.length+1,i=new _s(e.child("")),o=this.overlays.getIteratorFrom(i);for(;o.hasNext();){const t=o.getNext().value,i=t.getKey();if(!e.isPrefixOf(i.path))break;i.path.length===s&&t.largestBatchId>n&&r.set(t.getKey(),t)}return Ps.resolve(r)}getOverlaysForCollectionGroup(t,e,n,r){let s=new Ni(((t,e)=>t-e));const i=this.overlays.getIterator();for(;i.hasNext();){const t=i.getNext().value;if(t.getKey().getCollectionGroup()===e&&t.largestBatchId>n){let e=s.get(t.largestBatchId);null===e&&(e=Ia(),s=s.insert(t.largestBatchId,e)),e.set(t.getKey(),t)}}const o=Ia(),a=s.getIterator();for(;a.hasNext()&&(a.getNext().value.forEach(((t,e)=>o.set(t,e))),!(o.size()>=r)););return Ps.resolve(o)}ht(t,e,n){const r=this.overlays.get(n.key);if(null!==r){const t=this.hr.get(r.largestBatchId).delete(n.key);this.hr.set(r.largestBatchId,t)}this.overlays=this.overlays.insert(n.key,new lu(e,n));let s=this.hr.get(e);void 0===s&&(s=Ca(),this.hr.set(e,s)),this.hr.set(e,s.add(n.key))}}class Bl{constructor(){this.Pr=new Mi(Ul.Ir),this.Tr=new Mi(Ul.Er)}isEmpty(){return this.Pr.isEmpty()}addReference(t,e){const n=new Ul(t,e);this.Pr=this.Pr.add(n),this.Tr=this.Tr.add(n)}dr(t,e){t.forEach((t=>this.addReference(t,e)))}removeReference(t,e){this.Ar(new Ul(t,e))}Rr(t,e){t.forEach((t=>this.removeReference(t,e)))}Vr(t){const e=new _s(new ws([])),n=new Ul(e,t),r=new Ul(e,t+1),s=[];return this.Tr.forEachInRange([n,r],(t=>{this.Ar(t),s.push(t.key)})),s}mr(){this.Pr.forEach((t=>this.Ar(t)))}Ar(t){this.Pr=this.Pr.delete(t),this.Tr=this.Tr.delete(t)}gr(t){const e=new _s(new ws([])),n=new Ul(e,t),r=new Ul(e,t+1);let s=Ca();return this.Tr.forEachInRange([n,r],(t=>{s=s.add(t.key)})),s}containsKey(t){const e=new Ul(t,0),n=this.Pr.firstAfterOrEqual(e);return null!==n&&t.isEqual(n.key)}}class Ul{constructor(t,e){this.key=t,this.pr=e}static Ir(t,e){return _s.comparator(t.key,e.key)||ds(t.pr,e.pr)}static Er(t,e){return ds(t.pr,e.pr)||_s.comparator(t.key,e.key)}}class zl{constructor(t,e){this.indexManager=t,this.referenceDelegate=e,this.mutationQueue=[],this.yr=1,this.wr=new Mi(Ul.Ir)}checkEmpty(t){return Ps.resolve(0===this.mutationQueue.length)}addMutationBatch(t,e,n,r){const s=this.yr;this.yr++,this.mutationQueue.length>0&&this.mutationQueue[this.mutationQueue.length-1];const i=new uu(s,e,n,r);this.mutationQueue.push(i);for(const e of r)this.wr=this.wr.add(new Ul(e.key,s)),this.indexManager.addToCollectionParentIndex(t,e.key.path.popLast());return Ps.resolve(i)}lookupMutationBatch(t,e){return Ps.resolve(this.Sr(e))}getNextMutationBatchAfterBatchId(t,e){const n=e+1,r=this.br(n),s=r<0?0:r;return Ps.resolve(this.mutationQueue.length>s?this.mutationQueue[s]:null)}getHighestUnacknowledgedBatchId(){return Ps.resolve(0===this.mutationQueue.length?-1:this.yr-1)}getAllMutationBatches(t){return Ps.resolve(this.mutationQueue.slice())}getAllMutationBatchesAffectingDocumentKey(t,e){const n=new Ul(e,0),r=new Ul(e,Number.POSITIVE_INFINITY),s=[];return this.wr.forEachInRange([n,r],(t=>{const e=this.Sr(t.pr);s.push(e)})),Ps.resolve(s)}getAllMutationBatchesAffectingDocumentKeys(t,e){let n=new Mi(ds);return e.forEach((t=>{const e=new Ul(t,0),r=new Ul(t,Number.POSITIVE_INFINITY);this.wr.forEachInRange([e,r],(t=>{n=n.add(t.pr)}))})),Ps.resolve(this.Dr(n))}getAllMutationBatchesAffectingQuery(t,e){const n=e.path,r=n.length+1;let s=n;_s.isDocumentKey(s)||(s=s.child(""));const i=new Ul(new _s(s),0);let o=new Mi(ds);return this.wr.forEachWhile((t=>{const e=t.key.path;return!!n.isPrefixOf(e)&&(e.length===r&&(o=o.add(t.pr)),!0)}),i),Ps.resolve(this.Dr(o))}Dr(t){const e=[];return t.forEach((t=>{const n=this.Sr(t);null!==n&&e.push(n)})),e}removeMutationBatch(t,e){Wr(0===this.Cr(e.batchId,"removed")),this.mutationQueue.shift();let n=this.wr;return Ps.forEach(e.mutations,(r=>{const s=new Ul(r.key,e.batchId);return n=n.delete(s),this.referenceDelegate.markPotentiallyOrphaned(t,r.key)})).next((()=>{this.wr=n}))}Mn(t){}containsKey(t,e){const n=new Ul(e,0),r=this.wr.firstAfterOrEqual(n);return Ps.resolve(e.isEqual(r&&r.key))}performConsistencyCheck(t){return this.mutationQueue.length,Ps.resolve()}Cr(t,e){return this.br(t)}br(t){return 0===this.mutationQueue.length?0:t-this.mutationQueue[0].batchId}Sr(t){const e=this.br(t);return e<0||e>=this.mutationQueue.length?null:this.mutationQueue[e]}}class Gl{constructor(t){this.vr=t,this.docs=new Ni(_s.comparator),this.size=0}setIndexManager(t){this.indexManager=t}addEntry(t,e){const n=e.key,r=this.docs.get(n),s=r?r.size:0,i=this.vr(e);return this.docs=this.docs.insert(n,{document:e.mutableCopy(),size:i}),this.size+=i-s,this.indexManager.addToCollectionParentIndex(t,n.path.popLast())}removeEntry(t){const e=this.docs.get(t);e&&(this.docs=this.docs.remove(t),this.size-=e.size)}getEntry(t,e){const n=this.docs.get(e);return Ps.resolve(n?n.document.mutableCopy():bo.newInvalidDocument(e))}getEntries(t,e){let n=wa();return e.forEach((t=>{const e=this.docs.get(t);n=n.insert(t,e?e.document.mutableCopy():bo.newInvalidDocument(t))})),Ps.resolve(n)}getDocumentsMatchingQuery(t,e,n,r){let s=wa();const i=e.path,o=new _s(i.child("")),a=this.docs.getIteratorFrom(o);for(;a.hasNext();){const{key:t,value:{document:o}}=a.getNext();if(!i.isPrefixOf(t.path))break;t.path.length>i.length+1||Rs(Ns(o),n)<=0||(r.has(o.key)||da(e,o))&&(s=s.insert(o.key,o.mutableCopy()))}return Ps.resolve(s)}getAllFromCollectionGroup(t,e,n,r){Hr()}Fr(t,e){return Ps.forEach(this.docs,(t=>e(t)))}newChangeBuffer(t){return new jl(this)}getSize(t){return Ps.resolve(this.size)}}class jl extends Cl{constructor(t){super(),this.ar=t}applyChanges(t){const e=[];return this.changes.forEach(((n,r)=>{r.isValidDocument()?e.push(this.ar.addEntry(t,r)):this.ar.removeEntry(n)})),Ps.waitFor(e)}getFromCache(t,e){return this.ar.getEntry(t,e)}getAllFromCache(t,e){return this.ar.getEntries(t,e)}}class Kl{constructor(t){this.persistence=t,this.Mr=new pa((t=>Qo(t)),Ho),this.lastRemoteSnapshotVersion=ps.min(),this.highestTargetId=0,this.Or=0,this.Nr=new Bl,this.targetCount=0,this.Br=ml.Nn()}forEachTarget(t,e){return this.Mr.forEach(((t,n)=>e(n))),Ps.resolve()}getLastRemoteSnapshotVersion(t){return Ps.resolve(this.lastRemoteSnapshotVersion)}getHighestSequenceNumber(t){return Ps.resolve(this.Or)}allocateTargetId(t){return this.highestTargetId=this.Br.next(),Ps.resolve(this.highestTargetId)}setTargetsMetadata(t,e,n){return n&&(this.lastRemoteSnapshotVersion=n),e>this.Or&&(this.Or=e),Ps.resolve()}qn(t){this.Mr.set(t.target,t);const e=t.targetId;e>this.highestTargetId&&(this.Br=new ml(e),this.highestTargetId=e),t.sequenceNumber>this.Or&&(this.Or=t.sequenceNumber)}addTargetData(t,e){return this.qn(e),this.targetCount+=1,Ps.resolve()}updateTargetData(t,e){return this.qn(e),Ps.resolve()}removeTargetData(t,e){return this.Mr.delete(e.target),this.Nr.Vr(e.targetId),this.targetCount-=1,Ps.resolve()}removeTargets(t,e,n){let r=0;const s=[];return this.Mr.forEach(((i,o)=>{o.sequenceNumber<=e&&null===n.get(o.targetId)&&(this.Mr.delete(i),s.push(this.removeMatchingKeysForTargetId(t,o.targetId)),r++)})),Ps.waitFor(s).next((()=>r))}getTargetCount(t){return Ps.resolve(this.targetCount)}getTargetData(t,e){const n=this.Mr.get(e)||null;return Ps.resolve(n)}addMatchingKeys(t,e,n){return this.Nr.dr(e,n),Ps.resolve()}removeMatchingKeys(t,e,n){this.Nr.Rr(e,n);const r=this.persistence.referenceDelegate,s=[];return r&&e.forEach((e=>{s.push(r.markPotentiallyOrphaned(t,e))})),Ps.waitFor(s)}removeMatchingKeysForTargetId(t,e){return this.Nr.Vr(e),Ps.resolve()}getMatchingKeysForTargetId(t,e){const n=this.Nr.gr(e);return Ps.resolve(n)}containsKey(t,e){return Ps.resolve(this.Nr.containsKey(e))}}class $l{constructor(t,e){this.Lr={},this.overlays={},this.kr=new Hs(0),this.qr=!1,this.qr=!0,this.referenceDelegate=t(this),this.Qr=new Kl(this),this.indexManager=new Xc,this.remoteDocumentCache=function(t){return new Gl(t)}((t=>this.referenceDelegate.Kr(t))),this.serializer=new gc(e),this.$r=new Vl(this.serializer)}start(){return Promise.resolve()}shutdown(){return this.qr=!1,Promise.resolve()}get started(){return this.qr}setDatabaseDeletedListener(){}setNetworkEnabled(){}getIndexManager(t){return this.indexManager}getDocumentOverlayCache(t){let e=this.overlays[t.toKey()];return e||(e=new ql,this.overlays[t.toKey()]=e),e}getMutationQueue(t,e){let n=this.Lr[t.toKey()];return n||(n=new zl(e,this.referenceDelegate),this.Lr[t.toKey()]=n),n}getTargetCache(){return this.Qr}getRemoteDocumentCache(){return this.remoteDocumentCache}getBundleCache(){return this.$r}runTransaction(t,e,n){jr("MemoryPersistence","Starting transaction:",t);const r=new Ql(this.kr.next());return this.referenceDelegate.Ur(),n(r).next((t=>this.referenceDelegate.Wr(r).next((()=>t)))).toPromise().then((t=>(r.raiseOnCommittedEvent(),t)))}Gr(t,e){return Ps.or(Object.values(this.Lr).map((n=>()=>n.containsKey(t,e))))}}class Ql extends Ls{constructor(t){super(),this.currentSequenceNumber=t}}class Hl{constructor(t){this.persistence=t,this.zr=new Bl,this.jr=null}static Hr(t){return new Hl(t)}get Jr(){if(this.jr)return this.jr;throw Hr()}addReference(t,e,n){return this.zr.addReference(n,e),this.Jr.delete(n.toString()),Ps.resolve()}removeReference(t,e,n){return this.zr.removeReference(n,e),this.Jr.add(n.toString()),Ps.resolve()}markPotentiallyOrphaned(t,e){return this.Jr.add(e.toString()),Ps.resolve()}removeTarget(t,e){this.zr.Vr(e.targetId).forEach((t=>this.Jr.add(t.toString())));const n=this.persistence.getTargetCache();return n.getMatchingKeysForTargetId(t,e.targetId).next((t=>{t.forEach((t=>this.Jr.add(t.toString())))})).next((()=>n.removeTargetData(t,e)))}Ur(){this.jr=new Set}Wr(t){const e=this.persistence.getRemoteDocumentCache().newChangeBuffer();return Ps.forEach(this.Jr,(n=>{const r=_s.fromPath(n);return this.Yr(t,r).next((t=>{t||e.removeEntry(r,ps.min())}))})).next((()=>(this.jr=null,e.apply(t))))}updateLimboDocument(t,e){return this.Yr(t,e).next((t=>{t?this.Jr.delete(e.toString()):this.Jr.add(e.toString())}))}Kr(t){return 0}Yr(t,e){return Ps.or([()=>Ps.resolve(this.zr.containsKey(e)),()=>this.persistence.getTargetCache().containsKey(t,e),()=>this.persistence.Gr(t,e)])}}class Wl{constructor(t,e){this.persistence=t,this.Zr=new pa((t=>Js(t.path)),((t,e)=>t.isEqual(e))),this.garbageCollector=Tl(this,e)}static Hr(t,e){return new Wl(t,e)}Ur(){}Wr(t){return Ps.resolve()}forEachTarget(t,e){return this.persistence.getTargetCache().forEachTarget(t,e)}Hn(t){const e=this.Zn(t);return this.persistence.getTargetCache().getTargetCount(t).next((t=>e.next((e=>t+e))))}Zn(t){let e=0;return this.Jn(t,(t=>{e++})).next((()=>e))}Jn(t,e){return Ps.forEach(this.Zr,((n,r)=>this.er(t,n,r).next((t=>t?Ps.resolve():e(r)))))}removeTargets(t,e,n){return this.persistence.getTargetCache().removeTargets(t,e,n)}removeOrphanedDocuments(t,e){let n=0;const r=this.persistence.getRemoteDocumentCache(),s=r.newChangeBuffer();return r.Fr(t,(r=>this.er(t,r,e).next((t=>{t||(n++,s.removeEntry(r,ps.min()))})))).next((()=>s.apply(t))).next((()=>n))}markPotentiallyOrphaned(t,e){return this.Zr.set(e,t.currentSequenceNumber),Ps.resolve()}removeTarget(t,e){const n=e.withSequenceNumber(t.currentSequenceNumber);return this.persistence.getTargetCache().updateTargetData(t,n)}addReference(t,e,n){return this.Zr.set(n,t.currentSequenceNumber),Ps.resolve()}removeReference(t,e,n){return this.Zr.set(n,t.currentSequenceNumber),Ps.resolve()}updateLimboDocument(t,e){return this.Zr.set(e,t.currentSequenceNumber),Ps.resolve()}Kr(t){let e=t.key.toString().length;return t.isFoundDocument()&&(e+=so(t.data.value)),e}er(t,e,n){return Ps.or([()=>this.persistence.Gr(t,e),()=>this.persistence.getTargetCache().containsKey(t,e),()=>{const t=this.Zr.get(e);return Ps.resolve(void 0!==t&&t>n)}])}getCacheSize(t){return this.persistence.getRemoteDocumentCache().getSize(t)}}class Yl{constructor(t){this.serializer=t}N(t,e,n,r){const s=new Fs("createOrUpgrade",e);n<1&&r>=1&&(function(t){t.createObjectStore("owner")}(t),function(t){t.createObjectStore("mutationQueues",{keyPath:"userId"}),t.createObjectStore("mutations",{keyPath:"batchId",autoIncrement:!0}).createIndex("userMutationsIndex",ni,{unique:!0}),t.createObjectStore("documentMutations")}(t),Xl(t),function(t){t.createObjectStore("remoteDocuments")}(t));let i=Ps.resolve();return n<3&&r>=3&&(0!==n&&(function(t){t.deleteObjectStore("targetDocuments"),t.deleteObjectStore("targets"),t.deleteObjectStore("targetGlobal")}(t),Xl(t)),i=i.next((()=>function(t){const e=t.store("targetGlobal"),n={highestTargetId:0,highestListenSequenceNumber:0,lastRemoteSnapshotVersion:ps.min().toTimestamp(),targetCount:0};return e.put("targetGlobalKey",n)}(s)))),n<4&&r>=4&&(0!==n&&(i=i.next((()=>function(t,e){return e.store("mutations").W().next((n=>{t.deleteObjectStore("mutations"),t.createObjectStore("mutations",{keyPath:"batchId",autoIncrement:!0}).createIndex("userMutationsIndex",ni,{unique:!0});const r=e.store("mutations"),s=n.map((t=>r.put(t)));return Ps.waitFor(s)}))}(t,s)))),i=i.next((()=>{!function(t){t.createObjectStore("clientMetadata",{keyPath:"clientId"})}(t)}))),n<5&&r>=5&&(i=i.next((()=>this.Xr(s)))),n<6&&r>=6&&(i=i.next((()=>(function(t){t.createObjectStore("remoteDocumentGlobal")}(t),this.ei(s))))),n<7&&r>=7&&(i=i.next((()=>this.ti(s)))),n<8&&r>=8&&(i=i.next((()=>this.ni(t,s)))),n<9&&r>=9&&(i=i.next((()=>{!function(t){t.objectStoreNames.contains("remoteDocumentChanges")&&t.deleteObjectStore("remoteDocumentChanges")}(t)}))),n<10&&r>=10&&(i=i.next((()=>this.ri(s)))),n<11&&r>=11&&(i=i.next((()=>{!function(t){t.createObjectStore("bundles",{keyPath:"bundleId"})}(t),function(t){t.createObjectStore("namedQueries",{keyPath:"name"})}(t)}))),n<12&&r>=12&&(i=i.next((()=>{!function(t){const e=t.createObjectStore("documentOverlays",{keyPath:yi});e.createIndex("collectionPathOverlayIndex",wi,{unique:!1}),e.createIndex("collectionGroupOverlayIndex",vi,{unique:!1})}(t)}))),n<13&&r>=13&&(i=i.next((()=>function(t){const e=t.createObjectStore("remoteDocumentsV14",{keyPath:oi});e.createIndex("documentKeyIndex",ai),e.createIndex("collectionGroupIndex",ui)}(t))).next((()=>this.ii(t,s))).next((()=>t.deleteObjectStore("remoteDocuments")))),n<14&&r>=14&&(i=i.next((()=>this.si(t,s)))),n<15&&r>=15&&(i=i.next((()=>function(t){t.createObjectStore("indexConfiguration",{keyPath:"indexId",autoIncrement:!0}).createIndex("collectionGroupIndex","collectionGroup",{unique:!1}),t.createObjectStore("indexState",{keyPath:fi}).createIndex("sequenceNumberIndex",gi,{unique:!1}),t.createObjectStore("indexEntries",{keyPath:mi}).createIndex("documentKeyIndex",pi,{unique:!1})}(t)))),i}ei(t){let e=0;return t.store("remoteDocuments").Y(((t,n)=>{e+=cl(n)})).next((()=>{const n={byteSize:e};return t.store("remoteDocumentGlobal").put("remoteDocumentGlobalKey",n)}))}Xr(t){const e=t.store("mutationQueues"),n=t.store("mutations");return e.W().next((e=>Ps.forEach(e,(e=>{const r=IDBKeyRange.bound([e.userId,-1],[e.userId,e.lastAcknowledgedBatchId]);return n.W("userMutationsIndex",r).next((n=>Ps.forEach(n,(n=>{Wr(n.userId===e.userId);const r=vc(this.serializer,n);return ul(t,e.userId,r).next((()=>{}))}))))}))))}ti(t){const e=t.store("targetDocuments"),n=t.store("remoteDocuments");return t.store("targetGlobal").get("targetGlobalKey").next((t=>{const r=[];return n.Y(((n,s)=>{const i=new ws(n),o=function(t){return[0,Js(t)]}(i);r.push(e.get(o).next((n=>n?Ps.resolve():(n=>e.put({targetId:0,path:Js(n),sequenceNumber:t.highestListenSequenceNumber}))(i))))})).next((()=>Ps.waitFor(r)))}))}ni(t,e){t.createObjectStore("collectionParents",{keyPath:di});const n=e.store("collectionParents"),r=new Jc,s=t=>{if(r.add(t)){const e=t.lastSegment(),r=t.popLast();return n.put({collectionId:e,parent:Js(r)})}};return e.store("remoteDocuments").Y({J:!0},((t,e)=>{const n=new ws(t);return s(n.popLast())})).next((()=>e.store("documentMutations").Y({J:!0},(([t,e,n],r)=>{const i=ei(e);return s(i.popLast())}))))}ri(t){const e=t.store("targets");return e.Y(((t,n)=>{const r=bc(n),s=_c(this.serializer,r);return e.put(s)}))}ii(t,e){const n=e.store("remoteDocuments"),r=[];return n.Y(((t,n)=>{const s=e.store("remoteDocumentsV14"),i=function(t){return t.document?new _s(ws.fromString(t.document.name).popFirst(5)):t.noDocument?_s.fromSegments(t.noDocument.path):t.unknownDocument?_s.fromSegments(t.unknownDocument.path):Hr()}(n).path.toArray(),o={prefixPath:i.slice(0,i.length-2),collectionGroup:i[i.length-2],documentId:i[i.length-1],readTime:n.readTime||[0,0],unknownDocument:n.unknownDocument,noDocument:n.noDocument,document:n.document,hasCommittedMutations:!!n.hasCommittedMutations};r.push(s.put(o))})).next((()=>Ps.waitFor(r)))}si(t,e){const n=e.store("mutations"),r=Al(this.serializer),s=new $l(Hl.Hr,this.serializer.ct);return n.W().next((t=>{const n=new Map;return t.forEach((t=>{var e;let r=null!==(e=n.get(t.userId))&&void 0!==e?e:Ca();vc(this.serializer,t).keys().forEach((t=>r=r.add(t))),n.set(t.userId,r)})),Ps.forEach(n,((t,n)=>{const i=new qr(n),o=Ac.lt(this.serializer,i),a=s.getIndexManager(i),u=ll.lt(i,this.serializer,a,s.referenceDelegate);return new Fl(r,u,o,a).recalculateAndSaveOverlaysForDocumentKeys(new Si(e,Hs._e),t).next()}))}))}}function Xl(t){t.createObjectStore("targetDocuments",{keyPath:li}).createIndex("documentTargetsIndex",hi,{unique:!0}),t.createObjectStore("targets",{keyPath:"targetId"}).createIndex("queryTargetsIndex",ci,{unique:!0}),t.createObjectStore("targetGlobal")}const Jl="Failed to obtain exclusive access to the persistence layer. To allow shared access, multi-tab synchronization has to be enabled in all tabs. If you are using `experimentalForceOwningTab:true`, make sure that only one tab has persistence enabled at any given time.";class Zl{constructor(t,e,n,r,s,i,o,a,u,c,l=15){if(this.allowTabSynchronization=t,this.persistenceKey=e,this.clientId=n,this.oi=s,this.window=i,this.document=o,this._i=u,this.ai=c,this.ui=l,this.kr=null,this.qr=!1,this.isPrimary=!1,this.networkEnabled=!0,this.ci=null,this.inForeground=!1,this.li=null,this.hi=null,this.Pi=Number.NEGATIVE_INFINITY,this.Ii=t=>Promise.resolve(),!Zl.D())throw new Zr(Jr.UNIMPLEMENTED,"This platform is either missing IndexedDB or is known to have an incomplete implementation. Offline persistence has been disabled.");this.referenceDelegate=new Sl(this,r),this.Ti=e+"main",this.serializer=new gc(a),this.Ei=new Vs(this.Ti,this.ui,new Yl(this.serializer)),this.Qr=new pl(this.referenceDelegate,this.serializer),this.remoteDocumentCache=Al(this.serializer),this.$r=new xc,this.window&&this.window.localStorage?this.di=this.window.localStorage:(this.di=null,!1===c&&Kr("IndexedDbPersistence","LocalStorage is unavailable. As a result, persistence may not work reliably. In particular enablePersistence() could fail immediately after refreshing the page."))}start(){return this.Ai().then((()=>{if(!this.isPrimary&&!this.allowTabSynchronization)throw new Zr(Jr.FAILED_PRECONDITION,Jl);return this.Ri(),this.Vi(),this.mi(),this.runTransaction("getHighestListenSequenceNumber","readonly",(t=>this.Qr.getHighestSequenceNumber(t)))})).then((t=>{this.kr=new Hs(t,this._i)})).then((()=>{this.qr=!0})).catch((t=>(this.Ei&&this.Ei.close(),Promise.reject(t))))}fi(t){return this.Ii=async e=>{if(this.started)return t(e)},t(this.isPrimary)}setDatabaseDeletedListener(t){this.Ei.L((async e=>{null===e.newVersion&&await t()}))}setNetworkEnabled(t){this.networkEnabled!==t&&(this.networkEnabled=t,this.oi.enqueueAndForget((async()=>{this.started&&await this.Ai()})))}Ai(){return this.runTransaction("updateClientMetadataAndTryBecomePrimary","readwrite",(t=>eh(t).put({clientId:this.clientId,updateTimeMs:Date.now(),networkEnabled:this.networkEnabled,inForeground:this.inForeground}).next((()=>{if(this.isPrimary)return this.gi(t).next((t=>{t||(this.isPrimary=!1,this.oi.enqueueRetryable((()=>this.Ii(!1))))}))})).next((()=>this.pi(t))).next((e=>this.isPrimary&&!e?this.yi(t).next((()=>!1)):!!e&&this.wi(t).next((()=>!0)))))).catch((t=>{if(Us(t))return jr("IndexedDbPersistence","Failed to extend owner lease: ",t),this.isPrimary;if(!this.allowTabSynchronization)throw t;return jr("IndexedDbPersistence","Releasing owner lease after error during lease refresh",t),!1})).then((t=>{this.isPrimary!==t&&this.oi.enqueueRetryable((()=>this.Ii(t))),this.isPrimary=t}))}gi(t){return th(t).get("owner").next((t=>Ps.resolve(this.Si(t))))}bi(t){return eh(t).delete(this.clientId)}async Di(){if(this.isPrimary&&!this.Ci(this.Pi,18e5)){this.Pi=Date.now();const t=await this.runTransaction("maybeGarbageCollectMultiClientState","readwrite-primary",(t=>{const e=xi(t,"clientMetadata");return e.W().next((t=>{const n=this.vi(t,18e5),r=t.filter((t=>-1===n.indexOf(t)));return Ps.forEach(r,(t=>e.delete(t.clientId))).next((()=>r))}))})).catch((()=>[]));if(this.di)for(const e of t)this.di.removeItem(this.Fi(e.clientId))}}mi(){this.hi=this.oi.enqueueAfterDelay("client_metadata_refresh",4e3,(()=>this.Ai().then((()=>this.Di())).then((()=>this.mi()))))}Si(t){return!!t&&t.ownerId===this.clientId}pi(t){return this.ai?Ps.resolve(!0):th(t).get("owner").next((e=>{if(null!==e&&this.Ci(e.leaseTimestampMs,5e3)&&!this.Mi(e.ownerId)){if(this.Si(e)&&this.networkEnabled)return!0;if(!this.Si(e)){if(!e.allowTabSynchronization)throw new Zr(Jr.FAILED_PRECONDITION,Jl);return!1}}return!(!this.networkEnabled||!this.inForeground)||eh(t).W().next((t=>void 0===this.vi(t,5e3).find((t=>{if(this.clientId!==t.clientId){const e=!this.networkEnabled&&t.networkEnabled,n=!this.inForeground&&t.inForeground,r=this.networkEnabled===t.networkEnabled;if(e||n&&r)return!0}return!1}))))})).next((t=>(this.isPrimary!==t&&jr("IndexedDbPersistence",`Client ${t?"is":"is not"} eligible for a primary lease.`),t)))}async shutdown(){this.qr=!1,this.xi(),this.hi&&(this.hi.cancel(),this.hi=null),this.Oi(),this.Ni(),await this.Ei.runTransaction("shutdown","readwrite",["owner","clientMetadata"],(t=>{const e=new Si(t,Hs._e);return this.yi(e).next((()=>this.bi(e)))})),this.Ei.close(),this.Bi()}vi(t,e){return t.filter((t=>this.Ci(t.updateTimeMs,e)&&!this.Mi(t.clientId)))}Li(){return this.runTransaction("getActiveClients","readonly",(t=>eh(t).W().next((t=>this.vi(t,18e5).map((t=>t.clientId))))))}get started(){return this.qr}getMutationQueue(t,e){return ll.lt(t,this.serializer,e,this.referenceDelegate)}getTargetCache(){return this.Qr}getRemoteDocumentCache(){return this.remoteDocumentCache}getIndexManager(t){return new tl(t,this.serializer.ct.databaseId)}getDocumentOverlayCache(t){return Ac.lt(this.serializer,t)}getBundleCache(){return this.$r}runTransaction(t,e,n){jr("IndexedDbPersistence","Starting transaction:",t);const r="readonly"===e?"readonly":"readwrite",s=function(t){return 15===t?Ti:14===t?Ei:13===t?Ii:12===t?_i:11===t?bi:void Hr()}(this.ui);let i;return this.Ei.runTransaction(t,r,s,(r=>(i=new Si(r,this.kr?this.kr.next():Hs._e),"readwrite-primary"===e?this.gi(i).next((t=>!!t||this.pi(i))).next((e=>{if(!e)throw Kr(`Failed to obtain primary lease for action '${t}'.`),this.isPrimary=!1,this.oi.enqueueRetryable((()=>this.Ii(!1))),new Zr(Jr.FAILED_PRECONDITION,Ms);return n(i)})).next((t=>this.wi(i).next((()=>t)))):this.ki(i).next((()=>n(i)))))).then((t=>(i.raiseOnCommittedEvent(),t)))}ki(t){return th(t).get("owner").next((t=>{if(null!==t&&this.Ci(t.leaseTimestampMs,5e3)&&!this.Mi(t.ownerId)&&!this.Si(t)&&!(this.ai||this.allowTabSynchronization&&t.allowTabSynchronization))throw new Zr(Jr.FAILED_PRECONDITION,Jl)}))}wi(t){const e={ownerId:this.clientId,allowTabSynchronization:this.allowTabSynchronization,leaseTimestampMs:Date.now()};return th(t).put("owner",e)}static D(){return Vs.D()}yi(t){const e=th(t);return e.get("owner").next((t=>this.Si(t)?(jr("IndexedDbPersistence","Releasing primary lease."),e.delete("owner")):Ps.resolve()))}Ci(t,e){const n=Date.now();return!(tn&&(Kr(`Detected an update time that is in the future: ${t} > ${n}`),1))}Ri(){null!==this.document&&"function"==typeof this.document.addEventListener&&(this.li=()=>{this.oi.enqueueAndForget((()=>(this.inForeground="visible"===this.document.visibilityState,this.Ai())))},this.document.addEventListener("visibilitychange",this.li),this.inForeground="visible"===this.document.visibilityState)}Oi(){this.li&&(this.document.removeEventListener("visibilitychange",this.li),this.li=null)}Vi(){var t;"function"==typeof(null===(t=this.window)||void 0===t?void 0:t.addEventListener)&&(this.ci=()=>{this.xi();const t=/(?:Version|Mobile)\/1[456]/;f()&&(navigator.appVersion.match(t)||navigator.userAgent.match(t))&&this.oi.enterRestrictedMode(!0),this.oi.enqueueAndForget((()=>this.shutdown()))},this.window.addEventListener("pagehide",this.ci))}Ni(){this.ci&&(this.window.removeEventListener("pagehide",this.ci),this.ci=null)}Mi(t){var e;try{const n=null!==(null===(e=this.di)||void 0===e?void 0:e.getItem(this.Fi(t)));return jr("IndexedDbPersistence",`Client '${t}' ${n?"is":"is not"} zombied in LocalStorage`),n}catch(t){return Kr("IndexedDbPersistence","Failed to get zombied client id.",t),!1}}xi(){if(this.di)try{this.di.setItem(this.Fi(this.clientId),String(Date.now()))}catch(t){Kr("Failed to set zombie client id.",t)}}Bi(){if(this.di)try{this.di.removeItem(this.Fi(this.clientId))}catch(t){}}Fi(t){return`firestore_zombie_${this.persistenceKey}_${t}`}}function th(t){return xi(t,"owner")}function eh(t){return xi(t,"clientMetadata")}function nh(t,e){let n=t.projectId;return t.isDefaultDatabase||(n+="."+t.database),"firestore/"+e+"/"+n+"/"}class rh{constructor(t,e,n,r){this.targetId=t,this.fromCache=e,this.qi=n,this.Qi=r}static Ki(t,e){let n=Ca(),r=Ca();for(const t of e.docChanges)switch(t.type){case 0:n=n.add(t.doc.key);break;case 1:r=r.add(t.doc.key)}return new rh(t,e.fromCache,n,r)}}class sh{constructor(){this._documentReadCount=0}get documentReadCount(){return this._documentReadCount}incrementDocumentReadCount(t){this._documentReadCount+=t}}class ih{constructor(){this.$i=!1,this.Ui=!1,this.Wi=100,this.Gi=f()?8:Vs.v(d())>0?6:4}initialize(t,e){this.zi=t,this.indexManager=e,this.$i=!0}getDocumentsMatchingQuery(t,e,n,r){const s={result:null};return this.ji(t,e).next((t=>{s.result=t})).next((()=>{if(!s.result)return this.Hi(t,e,r,n).next((t=>{s.result=t}))})).next((()=>{if(s.result)return;const n=new sh;return this.Ji(t,e,n).next((r=>{if(s.result=r,this.Ui)return this.Yi(t,e,n,r.size)}))})).next((()=>s.result))}Yi(t,e,n,r){return n.documentReadCountthis.Gi*r?(zr()<=_.DEBUG&&jr("QueryEngine","The SDK decides to create cache indexes for query:",ha(e),"as using cache indexes may help improve performance."),this.indexManager.createTargetIndexes(t,ia(e))):Ps.resolve())}ji(t,e){if(na(e))return Ps.resolve(null);let n=ia(e);return this.indexManager.getIndexType(t,n).next((r=>0===r?null:(null!==e.limit&&1===r&&(e=ua(e,null,"F"),n=ia(e)),this.indexManager.getDocumentsMatchingTarget(t,n).next((r=>{const s=Ca(...r);return this.zi.getDocuments(t,s).next((r=>this.indexManager.getMinOffset(t,n).next((n=>{const i=this.Zi(e,r);return this.Xi(e,i,s,n.readTime)?this.ji(t,ua(e,null,"F")):this.es(t,i,e,n)}))))})))))}Hi(t,e,n,r){return na(e)||r.isEqual(ps.min())?Ps.resolve(null):this.zi.getDocuments(t,n).next((s=>{const i=this.Zi(e,s);return this.Xi(e,i,n,r)?Ps.resolve(null):(zr()<=_.DEBUG&&jr("QueryEngine","Re-using previous result from %s to execute query: %s",r.toString(),ha(e)),this.es(t,i,e,As(r,-1)).next((t=>t)))}))}Zi(t,e){let n=new Mi(ga(t));return e.forEach(((e,r)=>{da(t,r)&&(n=n.add(r))})),n}Xi(t,e,n,r){if(null===t.limit)return!1;if(n.size!==e.size)return!0;const s="F"===t.limitType?e.last():e.first();return!!s&&(s.hasPendingWrites||s.version.compareTo(r)>0)}Ji(t,e,n){return zr()<=_.DEBUG&&jr("QueryEngine","Using full collection scan to execute query:",ha(e)),this.zi.getDocumentsMatchingQuery(t,e,ks.min(),n)}es(t,e,n,r){return this.zi.getDocumentsMatchingQuery(t,n,r).next((t=>(e.forEach((e=>{t=t.insert(e.key,e)})),t)))}}class oh{constructor(t,e,n,r){this.persistence=t,this.ts=e,this.serializer=r,this.ns=new Ni(ds),this.rs=new pa((t=>Qo(t)),Ho),this.ss=new Map,this.os=t.getRemoteDocumentCache(),this.Qr=t.getTargetCache(),this.$r=t.getBundleCache(),this._s(n)}_s(t){this.documentOverlayCache=this.persistence.getDocumentOverlayCache(t),this.indexManager=this.persistence.getIndexManager(t),this.mutationQueue=this.persistence.getMutationQueue(t,this.indexManager),this.localDocuments=new Fl(this.os,this.mutationQueue,this.documentOverlayCache,this.indexManager),this.os.setIndexManager(this.indexManager),this.ts.initialize(this.localDocuments,this.indexManager)}collectGarbage(t){return this.persistence.runTransaction("Collect garbage","readwrite-primary",(e=>t.collect(e,this.ns)))}}function ah(t,e,n,r){return new oh(t,e,n,r)}async function uh(t,e){const n=Xr(t);return await n.persistence.runTransaction("Handle user change","readonly",(t=>{let r;return n.mutationQueue.getAllMutationBatches(t).next((s=>(r=s,n._s(e),n.mutationQueue.getAllMutationBatches(t)))).next((e=>{const s=[],i=[];let o=Ca();for(const t of r){s.push(t.batchId);for(const e of t.mutations)o=o.add(e.key)}for(const t of e){i.push(t.batchId);for(const e of t.mutations)o=o.add(e.key)}return n.localDocuments.getDocuments(t,o).next((t=>({us:t,removedBatchIds:s,addedBatchIds:i})))}))}))}function ch(t){const e=Xr(t);return e.persistence.runTransaction("Get last remote snapshot version","readonly",(t=>e.Qr.getLastRemoteSnapshotVersion(t)))}function lh(t,e,n){let r=Ca(),s=Ca();return n.forEach((t=>r=r.add(t))),e.getEntries(t,r).next((t=>{let r=wa();return n.forEach(((n,i)=>{const o=t.get(n);i.isFoundDocument()!==o.isFoundDocument()&&(s=s.add(n)),i.isNoDocument()&&i.version.isEqual(ps.min())?(e.removeEntry(n,i.readTime),r=r.insert(n,i)):!o.isValidDocument()||i.version.compareTo(o.version)>0||0===i.version.compareTo(o.version)&&o.hasPendingWrites?(e.addEntry(i),r=r.insert(n,i)):jr("LocalStore","Ignoring outdated watch update for ",n,". Current version:",o.version," Watch version:",i.version)})),{cs:r,ls:s}}))}function hh(t,e){const n=Xr(t);return n.persistence.runTransaction("Get next mutation batch","readonly",(t=>(void 0===e&&(e=-1),n.mutationQueue.getNextMutationBatchAfterBatchId(t,e))))}function dh(t,e){const n=Xr(t);return n.persistence.runTransaction("Allocate target","readwrite",(t=>{let r;return n.Qr.getTargetData(t,e).next((s=>s?(r=s,Ps.resolve(r)):n.Qr.allocateTargetId(t).next((s=>(r=new fc(e,s,"TargetPurposeListen",t.currentSequenceNumber),n.Qr.addTargetData(t,r).next((()=>r)))))))})).then((t=>{const r=n.ns.get(t.targetId);return(null===r||t.snapshotVersion.compareTo(r.snapshotVersion)>0)&&(n.ns=n.ns.insert(t.targetId,t),n.rs.set(e,t.targetId)),t}))}async function fh(t,e,n){const r=Xr(t),s=r.ns.get(e),i=n?"readwrite":"readwrite-primary";try{n||await r.persistence.runTransaction("Release target",i,(t=>r.persistence.referenceDelegate.removeTarget(t,s)))}catch(t){if(!Us(t))throw t;jr("LocalStore",`Failed to update sequence numbers for target ${e}: ${t}`)}r.ns=r.ns.remove(e),r.rs.delete(s.target)}function gh(t,e,n){const r=Xr(t);let s=ps.min(),i=Ca();return r.persistence.runTransaction("Execute query","readwrite",(t=>function(t,e,n){const r=Xr(t),s=r.rs.get(n);return void 0!==s?Ps.resolve(r.ns.get(s)):r.Qr.getTargetData(e,n)}(r,t,ia(e)).next((e=>{if(e)return s=e.lastLimboFreeSnapshotVersion,r.Qr.getMatchingKeysForTargetId(t,e.targetId).next((t=>{i=t}))})).next((()=>r.ts.getDocumentsMatchingQuery(t,e,n?s:ps.min(),n?i:Ca()))).next((t=>(yh(r,fa(e),t),{documents:t,hs:i})))))}function mh(t,e){const n=Xr(t),r=Xr(n.Qr),s=n.ns.get(e);return s?Promise.resolve(s.target):n.persistence.runTransaction("Get target data","readonly",(t=>r._t(t,e).next((t=>t?t.target:null))))}function ph(t,e){const n=Xr(t),r=n.ss.get(e)||ps.min();return n.persistence.runTransaction("Get new document changes","readonly",(t=>n.os.getAllFromCollectionGroup(t,e,As(r,-1),Number.MAX_SAFE_INTEGER))).then((t=>(yh(n,e,t),t)))}function yh(t,e,n){let r=t.ss.get(e)||ps.min();n.forEach(((t,e)=>{e.readTime.compareTo(r)>0&&(r=e.readTime)})),t.ss.set(e,r)}async function wh(t,e,n=Ca()){const r=await dh(t,ia(Ic(e.bundledQuery))),s=Xr(t);return s.persistence.runTransaction("Save named query","readwrite",(t=>{const i=Uu(e.readTime);if(r.snapshotVersion.compareTo(i)>=0)return s.$r.saveNamedQuery(t,e);const o=r.withResumeToken(qi.EMPTY_BYTE_STRING,i);return s.ns=s.ns.insert(o.targetId,o),s.Qr.updateTargetData(t,o).next((()=>s.Qr.removeMatchingKeysForTargetId(t,r.targetId))).next((()=>s.Qr.addMatchingKeys(t,n,r.targetId))).next((()=>s.$r.saveNamedQuery(t,e)))}))}function vh(t,e){return`firestore_clients_${t}_${e}`}function bh(t,e,n){let r=`firestore_mutations_${t}_${n}`;return e.isAuthenticated()&&(r+=`_${e.uid}`),r}function _h(t,e){return`firestore_targets_${t}_${e}`}class Ih{constructor(t,e,n,r){this.user=t,this.batchId=e,this.state=n,this.error=r}static Es(t,e,n){const r=JSON.parse(n);let s,i="object"==typeof r&&-1!==["pending","acknowledged","rejected"].indexOf(r.state)&&(void 0===r.error||"object"==typeof r.error);return i&&r.error&&(i="string"==typeof r.error.message&&"string"==typeof r.error.code,i&&(s=new Zr(r.error.code,r.error.message))),i?new Ih(t,e,r.state,s):(Kr("SharedClientState",`Failed to parse mutation state for ID '${e}': ${n}`),null)}ds(){const t={state:this.state,updateTimeMs:Date.now()};return this.error&&(t.error={code:this.error.code,message:this.error.message}),JSON.stringify(t)}}class Eh{constructor(t,e,n){this.targetId=t,this.state=e,this.error=n}static Es(t,e){const n=JSON.parse(e);let r,s="object"==typeof n&&-1!==["not-current","current","rejected"].indexOf(n.state)&&(void 0===n.error||"object"==typeof n.error);return s&&n.error&&(s="string"==typeof n.error.message&&"string"==typeof n.error.code,s&&(r=new Zr(n.error.code,n.error.message))),s?new Eh(t,n.state,r):(Kr("SharedClientState",`Failed to parse target state for ID '${t}': ${e}`),null)}ds(){const t={state:this.state,updateTimeMs:Date.now()};return this.error&&(t.error={code:this.error.code,message:this.error.message}),JSON.stringify(t)}}class Th{constructor(t,e){this.clientId=t,this.activeTargetIds=e}static Es(t,e){const n=JSON.parse(e);let r="object"==typeof n&&n.activeTargetIds instanceof Array,s=Aa();for(let t=0;r&&tthis.shutdown())),this.started=!0}writeSequenceNumber(t){this.setItem(this.Ss,JSON.stringify(t))}getAllActiveQueryTargets(){return this.Ns(this.ps)}isActiveQueryTarget(t){let e=!1;return this.ps.forEach(((n,r)=>{r.activeTargetIds.has(t)&&(e=!0)})),e}addPendingMutation(t){this.Bs(t,"pending")}updateMutationState(t,e,n){this.Bs(t,e,n),this.Ls(t)}addLocalQueryTarget(t){let e="not-current";if(this.isActiveQueryTarget(t)){const n=this.storage.getItem(_h(this.persistenceKey,t));if(n){const r=Eh.Es(t,n);r&&(e=r.state)}}return this.ks.As(t),this.Ms(),e}removeLocalQueryTarget(t){this.ks.Rs(t),this.Ms()}isLocalQueryTarget(t){return this.ks.activeTargetIds.has(t)}clearQueryState(t){this.removeItem(_h(this.persistenceKey,t))}updateQueryState(t,e,n){this.qs(t,e,n)}handleUserChange(t,e,n){e.forEach((t=>{this.Ls(t)})),this.currentUser=t,n.forEach((t=>{this.addPendingMutation(t)}))}setOnlineState(t){this.Qs(t)}notifyBundleLoaded(t){this.Ks(t)}shutdown(){this.started&&(this.window.removeEventListener("storage",this.fs),this.removeItem(this.ws),this.started=!1)}getItem(t){const e=this.storage.getItem(t);return jr("SharedClientState","READ",t,e),e}setItem(t,e){jr("SharedClientState","SET",t,e),this.storage.setItem(t,e)}removeItem(t){jr("SharedClientState","REMOVE",t),this.storage.removeItem(t)}gs(t){const e=t;if(e.storageArea===this.storage){if(jr("SharedClientState","EVENT",e.key,e.newValue),e.key===this.ws)return void Kr("Received WebStorage notification for local change. Another client might have garbage-collected our state");this.oi.enqueueRetryable((async()=>{if(this.started){if(null!==e.key)if(this.bs.test(e.key)){if(null==e.newValue){const t=this.$s(e.key);return this.Us(t,null)}{const t=this.Ws(e.key,e.newValue);if(t)return this.Us(t.clientId,t)}}else if(this.Ds.test(e.key)){if(null!==e.newValue){const t=this.Gs(e.key,e.newValue);if(t)return this.zs(t)}}else if(this.Cs.test(e.key)){if(null!==e.newValue){const t=this.js(e.key,e.newValue);if(t)return this.Hs(t)}}else if(e.key===this.vs){if(null!==e.newValue){const t=this.xs(e.newValue);if(t)return this.Os(t)}}else if(e.key===this.Ss){const t=function(t){let e=Hs._e;if(null!=t)try{const n=JSON.parse(t);Wr("number"==typeof n),e=n}catch(t){Kr("SharedClientState","Failed to read sequence number from WebStorage",t)}return e}(e.newValue);t!==Hs._e&&this.sequenceNumberHandler(t)}else if(e.key===this.Fs){const t=this.Js(e.newValue);await Promise.all(t.map((t=>this.syncEngine.Ys(t))))}}else this.ys.push(e)}))}}get ks(){return this.ps.get(this.Vs)}Ms(){this.setItem(this.ws,this.ks.ds())}Bs(t,e,n){const r=new Ih(this.currentUser,t,e,n),s=bh(this.persistenceKey,this.currentUser,t);this.setItem(s,r.ds())}Ls(t){const e=bh(this.persistenceKey,this.currentUser,t);this.removeItem(e)}Qs(t){const e={clientId:this.Vs,onlineState:t};this.storage.setItem(this.vs,JSON.stringify(e))}qs(t,e,n){const r=_h(this.persistenceKey,t),s=new Eh(t,e,n);this.setItem(r,s.ds())}Ks(t){const e=JSON.stringify(Array.from(t));this.setItem(this.Fs,e)}$s(t){const e=this.bs.exec(t);return e?e[1]:null}Ws(t,e){const n=this.$s(t);return Th.Es(n,e)}Gs(t,e){const n=this.Ds.exec(t),r=Number(n[1]),s=void 0!==n[2]?n[2]:null;return Ih.Es(new qr(s),r,e)}js(t,e){const n=this.Cs.exec(t),r=Number(n[1]);return Eh.Es(r,e)}xs(t){return Sh.Es(t)}Js(t){return JSON.parse(t)}async zs(t){if(t.user.uid===this.currentUser.uid)return this.syncEngine.Zs(t.batchId,t.state,t.error);jr("SharedClientState",`Ignoring mutation for non-active user ${t.user.uid}`)}Hs(t){return this.syncEngine.Xs(t.targetId,t.state,t.error)}Us(t,e){const n=e?this.ps.insert(t,e):this.ps.remove(t),r=this.Ns(this.ps),s=this.Ns(n),i=[],o=[];return s.forEach((t=>{r.has(t)||i.push(t)})),r.forEach((t=>{s.has(t)||o.push(t)})),this.syncEngine.eo(i,o).then((()=>{this.ps=n}))}Os(t){this.ps.get(t.clientId)&&this.onlineStateHandler(t.onlineState)}Ns(t){let e=Aa();return t.forEach(((t,n)=>{e=e.unionWith(n.activeTargetIds)})),e}}class Dh{constructor(){this.no=new xh,this.ro={},this.onlineStateHandler=null,this.sequenceNumberHandler=null}addPendingMutation(t){}updateMutationState(t,e,n){}addLocalQueryTarget(t){return this.no.As(t),this.ro[t]||"not-current"}updateQueryState(t,e,n){this.ro[t]=e}removeLocalQueryTarget(t){this.no.Rs(t)}isLocalQueryTarget(t){return this.no.activeTargetIds.has(t)}clearQueryState(t){delete this.ro[t]}getAllActiveQueryTargets(){return this.no.activeTargetIds}isActiveQueryTarget(t){return this.no.activeTargetIds.has(t)}start(){return this.no=new xh,Promise.resolve()}handleUserChange(t,e,n){}setOnlineState(t){}shutdown(){}writeSequenceNumber(t){}notifyBundleLoaded(t){}}class Ah{io(t){}shutdown(){}}class Nh{constructor(){this.so=()=>this.oo(),this._o=()=>this.ao(),this.uo=[],this.co()}io(t){this.uo.push(t)}shutdown(){window.removeEventListener("online",this.so),window.removeEventListener("offline",this._o)}co(){window.addEventListener("online",this.so),window.addEventListener("offline",this._o)}oo(){jr("ConnectivityMonitor","Network connectivity changed: AVAILABLE");for(const t of this.uo)t(0)}ao(){jr("ConnectivityMonitor","Network connectivity changed: UNAVAILABLE");for(const t of this.uo)t(1)}static D(){return"undefined"!=typeof window&&void 0!==window.addEventListener&&void 0!==window.removeEventListener}}let kh=null;function Rh(){return null===kh?kh=268435456+Math.round(2147483648*Math.random()):kh++,"0x"+kh.toString(16)}const Mh={BatchGetDocuments:"batchGet",Commit:"commit",RunQuery:"runQuery",RunAggregationQuery:"runAggregationQuery"};class Lh{constructor(t){this.lo=t.lo,this.ho=t.ho}Po(t){this.Io=t}To(t){this.Eo=t}onMessage(t){this.Ao=t}close(){this.ho()}send(t){this.lo(t)}Ro(){this.Io()}Vo(t){this.Eo(t)}mo(t){this.Ao(t)}}const Oh="WebChannelConnection";class Ph extends class{constructor(t){this.databaseInfo=t,this.databaseId=t.databaseId;const e=t.ssl?"https":"http",n=encodeURIComponent(this.databaseId.projectId),r=encodeURIComponent(this.databaseId.database);this.fo=e+"://"+t.host,this.po=`projects/${n}/databases/${r}`,this.yo="(default)"===this.databaseId.database?`project_id=${n}`:`project_id=${n}&database_id=${r}`}get wo(){return!1}So(t,e,n,r,s){const i=Rh(),o=this.bo(t,e.toUriEncodedString());jr("RestConnection",`Sending RPC '${t}' ${i}:`,o,n);const a={"google-cloud-resource-prefix":this.po,"x-goog-request-params":this.yo};return this.Do(a,r,s),this.Co(t,o,a,n).then((e=>(jr("RestConnection",`Received RPC '${t}' ${i}: `,e),e)),(e=>{throw $r("RestConnection",`RPC '${t}' ${i} failed with error: `,e,"url: ",o,"request:",n),e}))}vo(t,e,n,r,s,i){return this.So(t,e,n,r,s)}Do(t,e,n){t["X-Goog-Api-Client"]="gl-js/ fire/"+Br,t["Content-Type"]="text/plain",this.databaseInfo.appId&&(t["X-Firebase-GMPID"]=this.databaseInfo.appId),e&&e.headers.forEach(((e,n)=>t[n]=e)),n&&n.headers.forEach(((e,n)=>t[n]=e))}bo(t,e){const n=Mh[t];return`${this.fo}/v1/${e}:${n}`}terminate(){}}{constructor(t){super(t),this.forceLongPolling=t.forceLongPolling,this.autoDetectLongPolling=t.autoDetectLongPolling,this.useFetchStreams=t.useFetchStreams,this.longPollingOptions=t.longPollingOptions}Co(t,e,n,r){const s=Rh();return new Promise(((i,o)=>{const a=new Or;a.setWithCredentials(!0),a.listenOnce(Rr.COMPLETE,(()=>{try{switch(a.getLastErrorCode()){case kr.NO_ERROR:const e=a.getResponseJson();jr(Oh,`XHR for RPC '${t}' ${s} received:`,JSON.stringify(e)),i(e);break;case kr.TIMEOUT:jr(Oh,`RPC '${t}' ${s} timed out`),o(new Zr(Jr.DEADLINE_EXCEEDED,"Request time out"));break;case kr.HTTP_ERROR:const n=a.getStatus();if(jr(Oh,`RPC '${t}' ${s} failed with status:`,n,"response text:",a.getResponseText()),n>0){let t=a.getResponseJson();Array.isArray(t)&&(t=t[0]);const e=null==t?void 0:t.error;if(e&&e.status&&e.message){const t=function(t){const e=t.toLowerCase().replace(/_/g,"-");return Object.values(Jr).indexOf(e)>=0?e:Jr.UNKNOWN}(e.status);o(new Zr(t,e.message))}else o(new Zr(Jr.UNKNOWN,"Server responded with status "+a.getStatus()))}else o(new Zr(Jr.UNAVAILABLE,"Connection failed."));break;default:Hr()}}finally{jr(Oh,`RPC '${t}' ${s} completed.`)}}));const u=JSON.stringify(r);jr(Oh,`RPC '${t}' ${s} sending request:`,r),a.send(e,"POST",u,n,15)}))}Fo(t,e,n){const r=Rh(),s=[this.fo,"/","google.firestore.v1.Firestore","/",t,"/channel"],i=new ar,o=oe(),a={httpSessionIdParam:"gsessionid",initMessageHeaders:{},messageUrlParams:{database:`projects/${this.databaseId.projectId}/databases/${this.databaseId.database}`},sendRawJson:!0,supportsCrossDomainXhr:!0,internalChannelParams:{forwardChannelRequestTimeoutMs:6e5},forceLongPolling:this.forceLongPolling,detectBufferingProxy:this.autoDetectLongPolling},u=this.longPollingOptions.timeoutSeconds;void 0!==u&&(a.longPollingTimeout=Math.round(1e3*u)),this.useFetchStreams&&(a.useFetchStreams=!0),this.Do(a.initMessageHeaders,e,n),a.encodeInitMessageHeaders=!0;const c=s.join("");jr(Oh,`Creating RPC '${t}' stream ${r}: ${c}`,a);const l=i.createWebChannel(c,a);let h=!1,d=!1;const f=new Lh({lo:e=>{d?jr(Oh,`Not sending because RPC '${t}' stream ${r} is closed:`,e):(h||(jr(Oh,`Opening RPC '${t}' stream ${r} transport.`),l.open(),h=!0),jr(Oh,`RPC '${t}' stream ${r} sending:`,e),l.send(e))},ho:()=>l.close()}),g=(t,e,n)=>{t.listen(e,(t=>{try{n(t)}catch(t){setTimeout((()=>{throw t}),0)}}))};return g(l,Lr.EventType.OPEN,(()=>{d||jr(Oh,`RPC '${t}' stream ${r} transport opened.`)})),g(l,Lr.EventType.CLOSE,(()=>{d||(d=!0,jr(Oh,`RPC '${t}' stream ${r} transport closed`),f.Vo())})),g(l,Lr.EventType.ERROR,(e=>{d||(d=!0,$r(Oh,`RPC '${t}' stream ${r} transport errored:`,e),f.Vo(new Zr(Jr.UNAVAILABLE,"The operation could not be completed")))})),g(l,Lr.EventType.MESSAGE,(e=>{var n;if(!d){const s=e.data[0];Wr(!!s);const i=s,o=i.error||(null===(n=i[0])||void 0===n?void 0:n.error);if(o){jr(Oh,`RPC '${t}' stream ${r} received error:`,o);const e=o.status;let n=function(t){const e=fu[t];if(void 0!==e)return pu(e)}(e),s=o.message;void 0===n&&(n=Jr.INTERNAL,s="Unknown error status: "+e+" with message "+o.message),d=!0,f.Vo(new Zr(n,s)),l.close()}else jr(Oh,`RPC '${t}' stream ${r} received:`,s),f.mo(s)}})),g(o,Mr.STAT_EVENT,(e=>{10===e.stat?jr(Oh,`RPC '${t}' stream ${r} detected buffering proxy`):11===e.stat&&jr(Oh,`RPC '${t}' stream ${r} detected no buffering proxy`)})),setTimeout((()=>{f.Ro()}),0),f}}function Fh(){return"undefined"!=typeof window?window:null}function Vh(){return"undefined"!=typeof document?document:null}function qh(t){return new Pu(t,!0)}class Bh{constructor(t,e,n=1e3,r=1.5,s=6e4){this.oi=t,this.timerId=e,this.Mo=n,this.xo=r,this.Oo=s,this.No=0,this.Bo=null,this.Lo=Date.now(),this.reset()}reset(){this.No=0}ko(){this.No=this.Oo}qo(t){this.cancel();const e=Math.floor(this.No+this.Qo()),n=Math.max(0,Date.now()-this.Lo),r=Math.max(0,e-n);r>0&&jr("ExponentialBackoff",`Backing off for ${r} ms (base delay: ${this.No} ms, delay with jitter: ${e} ms, last attempt: ${n} ms ago)`),this.Bo=this.oi.enqueueAfterDelay(this.timerId,r,(()=>(this.Lo=Date.now(),t()))),this.No*=this.xo,this.Nothis.Oo&&(this.No=this.Oo)}Ko(){null!==this.Bo&&(this.Bo.skipDelay(),this.Bo=null)}cancel(){null!==this.Bo&&(this.Bo.cancel(),this.Bo=null)}Qo(){return(Math.random()-.5)*this.No}}class Uh{constructor(t,e,n,r,s,i,o,a){this.oi=t,this.$o=n,this.Uo=r,this.connection=s,this.authCredentialsProvider=i,this.appCheckCredentialsProvider=o,this.listener=a,this.state=0,this.Wo=0,this.Go=null,this.zo=null,this.stream=null,this.jo=new Bh(t,e)}Ho(){return 1===this.state||5===this.state||this.Jo()}Jo(){return 2===this.state||3===this.state}start(){4!==this.state?this.auth():this.Yo()}async stop(){this.Ho()&&await this.close(0)}Zo(){this.state=0,this.jo.reset()}Xo(){this.Jo()&&null===this.Go&&(this.Go=this.oi.enqueueAfterDelay(this.$o,6e4,(()=>this.e_())))}t_(t){this.n_(),this.stream.send(t)}async e_(){if(this.Jo())return this.close(0)}n_(){this.Go&&(this.Go.cancel(),this.Go=null)}r_(){this.zo&&(this.zo.cancel(),this.zo=null)}async close(t,e){this.n_(),this.r_(),this.jo.cancel(),this.Wo++,4!==t?this.jo.reset():e&&e.code===Jr.RESOURCE_EXHAUSTED?(Kr(e.toString()),Kr("Using maximum backoff delay to prevent overloading the backend."),this.jo.ko()):e&&e.code===Jr.UNAUTHENTICATED&&3!==this.state&&(this.authCredentialsProvider.invalidateToken(),this.appCheckCredentialsProvider.invalidateToken()),null!==this.stream&&(this.i_(),this.stream.close(),this.stream=null),this.state=t,await this.listener.To(e)}i_(){}auth(){this.state=1;const t=this.s_(this.Wo),e=this.Wo;Promise.all([this.authCredentialsProvider.getToken(),this.appCheckCredentialsProvider.getToken()]).then((([t,n])=>{this.Wo===e&&this.o_(t,n)}),(e=>{t((()=>{const t=new Zr(Jr.UNKNOWN,"Fetching auth token failed: "+e.message);return this.__(t)}))}))}o_(t,e){const n=this.s_(this.Wo);this.stream=this.a_(t,e),this.stream.Po((()=>{n((()=>(this.state=2,this.zo=this.oi.enqueueAfterDelay(this.Uo,1e4,(()=>(this.Jo()&&(this.state=3),Promise.resolve()))),this.listener.Po())))})),this.stream.To((t=>{n((()=>this.__(t)))})),this.stream.onMessage((t=>{n((()=>this.onMessage(t)))}))}Yo(){this.state=5,this.jo.qo((async()=>{this.state=0,this.start()}))}__(t){return jr("PersistentStream",`close with error: ${t}`),this.stream=null,this.close(4,t)}s_(t){return e=>{this.oi.enqueueAndForget((()=>this.Wo===t?e():(jr("PersistentStream","stream callback skipped by getCloseGuardedDispatcher."),Promise.resolve())))}}}class zh extends Uh{constructor(t,e,n,r,s,i){super(t,"listen_stream_connection_backoff","listen_stream_idle","health_check_timeout",e,n,r,i),this.serializer=s}a_(t,e){return this.connection.Fo("Listen",t,e)}onMessage(t){this.jo.reset();const e=function(t,e){let n;if("targetChange"in e){e.targetChange;const r=function(t){return"NO_CHANGE"===t?0:"ADD"===t?1:"REMOVE"===t?2:"CURRENT"===t?3:"RESET"===t?4:Hr()}(e.targetChange.targetChangeType||"NO_CHANGE"),s=e.targetChange.targetIds||[],i=function(t,e){return t.useProto3Json?(Wr(void 0===e||"string"==typeof e),qi.fromBase64String(e||"")):(Wr(void 0===e||e instanceof Uint8Array),qi.fromUint8Array(e||new Uint8Array))}(t,e.targetChange.resumeToken),o=e.targetChange.cause,a=o&&function(t){const e=void 0===t.code?Jr.UNKNOWN:pu(t.code);return new Zr(e,t.message||"")}(o);n=new Du(r,s,i,a||null)}else if("documentChange"in e){e.documentChange;const r=e.documentChange;r.document,r.document.name,r.document.updateTime;const s=$u(t,r.document.name),i=Uu(r.document.updateTime),o=r.document.createTime?Uu(r.document.createTime):ps.min(),a=new wo({mapValue:{fields:r.document.fields}}),u=bo.newFoundDocument(s,i,o,a),c=r.targetIds||[],l=r.removedTargetIds||[];n=new xu(c,l,u.key,u)}else if("documentDelete"in e){e.documentDelete;const r=e.documentDelete;r.document;const s=$u(t,r.document),i=r.readTime?Uu(r.readTime):ps.min(),o=bo.newNoDocument(s,i),a=r.removedTargetIds||[];n=new xu([],a,o.key,o)}else if("documentRemove"in e){e.documentRemove;const r=e.documentRemove;r.document;const s=$u(t,r.document),i=r.removedTargetIds||[];n=new xu([],i,s,null)}else{if(!("filter"in e))return Hr();{e.filter;const t=e.filter;t.targetId;const{count:r=0,unchangedNames:s}=t,i=new du(r,s),o=t.targetId;n=new Cu(o,i)}}return n}(this.serializer,t),n=function(t){if(!("targetChange"in t))return ps.min();const e=t.targetChange;return e.targetIds&&e.targetIds.length?ps.min():e.readTime?Uu(e.readTime):ps.min()}(t);return this.listener.u_(e,n)}c_(t){const e={};e.database=Wu(this.serializer),e.addTarget=function(t,e){let n;const r=e.target;if(n=Wo(r)?{documents:ec(t,r)}:{query:nc(t,r).ut},n.targetId=e.targetId,e.resumeToken.approximateByteSize()>0){n.resumeToken=qu(t,e.resumeToken);const r=Fu(t,e.expectedCount);null!==r&&(n.expectedCount=r)}else if(e.snapshotVersion.compareTo(ps.min())>0){n.readTime=Vu(t,e.snapshotVersion.toTimestamp());const r=Fu(t,e.expectedCount);null!==r&&(n.expectedCount=r)}return n}(this.serializer,t);const n=function(t,e){const n=function(t){switch(t){case"TargetPurposeListen":return null;case"TargetPurposeExistenceFilterMismatch":return"existence-filter-mismatch";case"TargetPurposeExistenceFilterMismatchBloom":return"existence-filter-mismatch-bloom";case"TargetPurposeLimboResolution":return"limbo-document";default:return Hr()}}(e.purpose);return null==n?null:{"goog-listen-tags":n}}(this.serializer,t);n&&(e.labels=n),this.t_(e)}l_(t){const e={};e.database=Wu(this.serializer),e.removeTarget=t,this.t_(e)}}class Gh extends Uh{constructor(t,e,n,r,s,i){super(t,"write_stream_connection_backoff","write_stream_idle","health_check_timeout",e,n,r,i),this.serializer=s,this.h_=!1}get P_(){return this.h_}start(){this.h_=!1,this.lastStreamToken=void 0,super.start()}i_(){this.h_&&this.I_([])}a_(t,e){return this.connection.Fo("Write",t,e)}onMessage(t){if(Wr(!!t.streamToken),this.lastStreamToken=t.streamToken,this.h_){this.jo.reset();const e=function(t,e){return t&&t.length>0?(Wr(void 0!==e),t.map((t=>function(t,e){let n=t.updateTime?Uu(t.updateTime):Uu(e);return n.isEqual(ps.min())&&(n=Uu(e)),new $a(n,t.transformResults||[])}(t,e)))):[]}(t.writeResults,t.commitTime),n=Uu(t.commitTime);return this.listener.T_(n,e)}return Wr(!t.writeResults||0===t.writeResults.length),this.h_=!0,this.listener.E_()}d_(){const t={};t.database=Wu(this.serializer),this.t_(t)}I_(t){const e={streamToken:this.lastStreamToken,writes:t.map((t=>Zu(this.serializer,t)))};this.t_(e)}}class jh extends class{}{constructor(t,e,n,r){super(),this.authCredentials=t,this.appCheckCredentials=e,this.connection=n,this.serializer=r,this.A_=!1}R_(){if(this.A_)throw new Zr(Jr.FAILED_PRECONDITION,"The client has already been terminated.")}So(t,e,n,r){return this.R_(),Promise.all([this.authCredentials.getToken(),this.appCheckCredentials.getToken()]).then((([s,i])=>this.connection.So(t,Gu(e,n),r,s,i))).catch((t=>{throw"FirebaseError"===t.name?(t.code===Jr.UNAUTHENTICATED&&(this.authCredentials.invalidateToken(),this.appCheckCredentials.invalidateToken()),t):new Zr(Jr.UNKNOWN,t.toString())}))}vo(t,e,n,r,s){return this.R_(),Promise.all([this.authCredentials.getToken(),this.appCheckCredentials.getToken()]).then((([i,o])=>this.connection.vo(t,Gu(e,n),r,i,o,s))).catch((t=>{throw"FirebaseError"===t.name?(t.code===Jr.UNAUTHENTICATED&&(this.authCredentials.invalidateToken(),this.appCheckCredentials.invalidateToken()),t):new Zr(Jr.UNKNOWN,t.toString())}))}terminate(){this.A_=!0,this.connection.terminate()}}class Kh{constructor(t,e){this.asyncQueue=t,this.onlineStateHandler=e,this.state="Unknown",this.m_=0,this.f_=null,this.g_=!0}p_(){0===this.m_&&(this.y_("Unknown"),this.f_=this.asyncQueue.enqueueAfterDelay("online_state_timeout",1e4,(()=>(this.f_=null,this.w_("Backend didn't respond within 10 seconds."),this.y_("Offline"),Promise.resolve()))))}S_(t){"Online"===this.state?this.y_("Unknown"):(this.m_++,this.m_>=1&&(this.b_(),this.w_(`Connection failed 1 times. Most recent error: ${t.toString()}`),this.y_("Offline")))}set(t){this.b_(),this.m_=0,"Online"===t&&(this.g_=!1),this.y_(t)}y_(t){t!==this.state&&(this.state=t,this.onlineStateHandler(t))}w_(t){const e=`Could not reach Cloud Firestore backend. ${t}\nThis typically indicates that your device does not have a healthy Internet connection at the moment. The client will operate in offline mode until it is able to successfully connect to the backend.`;this.g_?(Kr(e),this.g_=!1):jr("OnlineStateTracker",e)}b_(){null!==this.f_&&(this.f_.cancel(),this.f_=null)}}class $h{constructor(t,e,n,r,s){this.localStore=t,this.datastore=e,this.asyncQueue=n,this.remoteSyncer={},this.D_=[],this.C_=new Map,this.v_=new Set,this.F_=[],this.M_=s,this.M_.io((t=>{n.enqueueAndForget((async()=>{ed(this)&&(jr("RemoteStore","Restarting streams for network reachability change."),await async function(t){const e=Xr(t);e.v_.add(4),await Hh(e),e.x_.set("Unknown"),e.v_.delete(4),await Qh(e)}(this))}))})),this.x_=new Kh(n,r)}}async function Qh(t){if(ed(t))for(const e of t.F_)await e(!0)}async function Hh(t){for(const e of t.F_)await e(!1)}function Wh(t,e){const n=Xr(t);n.C_.has(e.targetId)||(n.C_.set(e.targetId,e),td(n)?Zh(n):vd(n).Jo()&&Xh(n,e))}function Yh(t,e){const n=Xr(t),r=vd(n);n.C_.delete(e),r.Jo()&&Jh(n,e),0===n.C_.size&&(r.Jo()?r.Xo():ed(n)&&n.x_.set("Unknown"))}function Xh(t,e){if(t.O_.Oe(e.targetId),e.resumeToken.approximateByteSize()>0||e.snapshotVersion.compareTo(ps.min())>0){const n=t.remoteSyncer.getRemoteKeysForTarget(e.targetId).size;e=e.withExpectedCount(n)}vd(t).c_(e)}function Jh(t,e){t.O_.Oe(e),vd(t).l_(e)}function Zh(t){t.O_=new Nu({getRemoteKeysForTarget:e=>t.remoteSyncer.getRemoteKeysForTarget(e),_t:e=>t.C_.get(e)||null,nt:()=>t.datastore.serializer.databaseId}),vd(t).start(),t.x_.p_()}function td(t){return ed(t)&&!vd(t).Ho()&&t.C_.size>0}function ed(t){return 0===Xr(t).v_.size}function nd(t){t.O_=void 0}async function rd(t){t.C_.forEach(((e,n)=>{Xh(t,e)}))}async function sd(t,e){nd(t),td(t)?(t.x_.S_(e),Zh(t)):t.x_.set("Unknown")}async function id(t,e,n){if(t.x_.set("Online"),e instanceof Du&&2===e.state&&e.cause)try{await async function(t,e){const n=e.cause;for(const r of e.targetIds)t.C_.has(r)&&(await t.remoteSyncer.rejectListen(r,n),t.C_.delete(r),t.O_.removeTarget(r))}(t,e)}catch(n){jr("RemoteStore","Failed to remove targets %s: %s ",e.targetIds.join(","),n),await od(t,n)}else if(e instanceof xu?t.O_.$e(e):e instanceof Cu?t.O_.Je(e):t.O_.Ge(e),!n.isEqual(ps.min()))try{const e=await ch(t.localStore);n.compareTo(e)>=0&&await function(t,e){const n=t.O_.it(e);return n.targetChanges.forEach(((n,r)=>{if(n.resumeToken.approximateByteSize()>0){const s=t.C_.get(r);s&&t.C_.set(r,s.withResumeToken(n.resumeToken,e))}})),n.targetMismatches.forEach(((e,n)=>{const r=t.C_.get(e);if(!r)return;t.C_.set(e,r.withResumeToken(qi.EMPTY_BYTE_STRING,r.snapshotVersion)),Jh(t,e);const s=new fc(r.target,e,n,r.sequenceNumber);Xh(t,s)})),t.remoteSyncer.applyRemoteEvent(n)}(t,n)}catch(e){jr("RemoteStore","Failed to raise snapshot:",e),await od(t,e)}}async function od(t,e,n){if(!Us(e))throw e;t.v_.add(1),await Hh(t),t.x_.set("Offline"),n||(n=()=>ch(t.localStore)),t.asyncQueue.enqueueRetryable((async()=>{jr("RemoteStore","Retrying IndexedDB access"),await n(),t.v_.delete(1),await Qh(t)}))}function ad(t,e){return e().catch((n=>od(t,n,e)))}async function ud(t){const e=Xr(t),n=bd(e);let r=e.D_.length>0?e.D_[e.D_.length-1].batchId:-1;for(;cd(e);)try{const t=await hh(e.localStore,r);if(null===t){0===e.D_.length&&n.Xo();break}r=t.batchId,ld(e,t)}catch(t){await od(e,t)}hd(e)&&dd(e)}function cd(t){return ed(t)&&t.D_.length<10}function ld(t,e){t.D_.push(e);const n=bd(t);n.Jo()&&n.P_&&n.I_(e.mutations)}function hd(t){return ed(t)&&!bd(t).Ho()&&t.D_.length>0}function dd(t){bd(t).start()}async function fd(t){bd(t).d_()}async function gd(t){const e=bd(t);for(const n of t.D_)e.I_(n.mutations)}async function md(t,e,n){const r=t.D_.shift(),s=cu.from(r,e,n);await ad(t,(()=>t.remoteSyncer.applySuccessfulWrite(s))),await ud(t)}async function pd(t,e){e&&bd(t).P_&&await async function(t,e){if(function(t){return mu(t)&&t!==Jr.ABORTED}(e.code)){const n=t.D_.shift();bd(t).Zo(),await ad(t,(()=>t.remoteSyncer.rejectFailedWrite(n.batchId,e))),await ud(t)}}(t,e),hd(t)&&dd(t)}async function yd(t,e){const n=Xr(t);n.asyncQueue.verifyOperationInProgress(),jr("RemoteStore","RemoteStore received new credentials");const r=ed(n);n.v_.add(3),await Hh(n),r&&n.x_.set("Unknown"),await n.remoteSyncer.handleCredentialChange(e),n.v_.delete(3),await Qh(n)}async function wd(t,e){const n=Xr(t);e?(n.v_.delete(2),await Qh(n)):e||(n.v_.add(2),await Hh(n),n.x_.set("Unknown"))}function vd(t){return t.N_||(t.N_=function(t,e,n){const r=Xr(t);return r.R_(),new zh(e,r.connection,r.authCredentials,r.appCheckCredentials,r.serializer,n)}(t.datastore,t.asyncQueue,{Po:rd.bind(null,t),To:sd.bind(null,t),u_:id.bind(null,t)}),t.F_.push((async e=>{e?(t.N_.Zo(),td(t)?Zh(t):t.x_.set("Unknown")):(await t.N_.stop(),nd(t))}))),t.N_}function bd(t){return t.B_||(t.B_=function(t,e,n){const r=Xr(t);return r.R_(),new Gh(e,r.connection,r.authCredentials,r.appCheckCredentials,r.serializer,n)}(t.datastore,t.asyncQueue,{Po:fd.bind(null,t),To:pd.bind(null,t),E_:gd.bind(null,t),T_:md.bind(null,t)}),t.F_.push((async e=>{e?(t.B_.Zo(),await ud(t)):(await t.B_.stop(),t.D_.length>0&&(jr("RemoteStore",`Stopping write stream with ${t.D_.length} pending writes`),t.D_=[]))}))),t.B_}class _d{constructor(t,e,n,r,s){this.asyncQueue=t,this.timerId=e,this.targetTimeMs=n,this.op=r,this.removalCallback=s,this.deferred=new ts,this.then=this.deferred.promise.then.bind(this.deferred.promise),this.deferred.promise.catch((t=>{}))}get promise(){return this.deferred.promise}static createAndSchedule(t,e,n,r,s){const i=Date.now()+n,o=new _d(t,e,i,r,s);return o.start(n),o}start(t){this.timerHandle=setTimeout((()=>this.handleDelayElapsed()),t)}skipDelay(){return this.handleDelayElapsed()}cancel(t){null!==this.timerHandle&&(this.clearTimeout(),this.deferred.reject(new Zr(Jr.CANCELLED,"Operation cancelled"+(t?": "+t:""))))}handleDelayElapsed(){this.asyncQueue.enqueueAndForget((()=>null!==this.timerHandle?(this.clearTimeout(),this.op().then((t=>this.deferred.resolve(t)))):Promise.resolve()))}clearTimeout(){null!==this.timerHandle&&(this.removalCallback(this),clearTimeout(this.timerHandle),this.timerHandle=null)}}function Id(t,e){if(Kr("AsyncQueue",`${e}: ${t}`),Us(t))return new Zr(Jr.UNAVAILABLE,`${e}: ${t}`);throw t}class Ed{constructor(t){this.comparator=t?(e,n)=>t(e,n)||_s.comparator(e.key,n.key):(t,e)=>_s.comparator(t.key,e.key),this.keyedMap=ba(),this.sortedSet=new Ni(this.comparator)}static emptySet(t){return new Ed(t.comparator)}has(t){return null!=this.keyedMap.get(t)}get(t){return this.keyedMap.get(t)}first(){return this.sortedSet.minKey()}last(){return this.sortedSet.maxKey()}isEmpty(){return this.sortedSet.isEmpty()}indexOf(t){const e=this.keyedMap.get(t);return e?this.sortedSet.indexOf(e):-1}get size(){return this.sortedSet.size}forEach(t){this.sortedSet.inorderTraversal(((e,n)=>(t(e),!1)))}add(t){const e=this.delete(t.key);return e.copy(e.keyedMap.insert(t.key,t),e.sortedSet.insert(t,null))}delete(t){const e=this.get(t);return e?this.copy(this.keyedMap.remove(t),this.sortedSet.remove(e)):this}isEqual(t){if(!(t instanceof Ed))return!1;if(this.size!==t.size)return!1;const e=this.sortedSet.getIterator(),n=t.sortedSet.getIterator();for(;e.hasNext();){const t=e.getNext().key,r=n.getNext().key;if(!t.isEqual(r))return!1}return!0}toString(){const t=[];return this.forEach((e=>{t.push(e.toString())})),0===t.length?"DocumentSet ()":"DocumentSet (\n "+t.join(" \n")+"\n)"}copy(t,e){const n=new Ed;return n.comparator=this.comparator,n.keyedMap=t,n.sortedSet=e,n}}class Td{constructor(){this.L_=new Ni(_s.comparator)}track(t){const e=t.doc.key,n=this.L_.get(e);n?0!==t.type&&3===n.type?this.L_=this.L_.insert(e,t):3===t.type&&1!==n.type?this.L_=this.L_.insert(e,{type:n.type,doc:t.doc}):2===t.type&&2===n.type?this.L_=this.L_.insert(e,{type:2,doc:t.doc}):2===t.type&&0===n.type?this.L_=this.L_.insert(e,{type:0,doc:t.doc}):1===t.type&&0===n.type?this.L_=this.L_.remove(e):1===t.type&&2===n.type?this.L_=this.L_.insert(e,{type:1,doc:n.doc}):0===t.type&&1===n.type?this.L_=this.L_.insert(e,{type:2,doc:t.doc}):Hr():this.L_=this.L_.insert(e,t)}k_(){const t=[];return this.L_.inorderTraversal(((e,n)=>{t.push(n)})),t}}class Sd{constructor(t,e,n,r,s,i,o,a,u){this.query=t,this.docs=e,this.oldDocs=n,this.docChanges=r,this.mutatedKeys=s,this.fromCache=i,this.syncStateChanged=o,this.excludesMetadataChanges=a,this.hasCachedResults=u}static fromInitialDocuments(t,e,n,r,s){const i=[];return e.forEach((t=>{i.push({type:0,doc:t})})),new Sd(t,e,Ed.emptySet(e),i,n,r,!0,!1,s)}get hasPendingWrites(){return!this.mutatedKeys.isEmpty()}isEqual(t){if(!(this.fromCache===t.fromCache&&this.hasCachedResults===t.hasCachedResults&&this.syncStateChanged===t.syncStateChanged&&this.mutatedKeys.isEqual(t.mutatedKeys)&&ca(this.query,t.query)&&this.docs.isEqual(t.docs)&&this.oldDocs.isEqual(t.oldDocs)))return!1;const e=this.docChanges,n=t.docChanges;if(e.length!==n.length)return!1;for(let t=0;tla(t)),ca),this.onlineState="Unknown",this.K_=new Set}}async function Dd(t,e){const n=Xr(t),r=e.query;let s=!1,i=n.queries.get(r);if(i||(s=!0,i=new xd),s)try{i.q_=await n.onListen(r)}catch(t){const n=Id(t,`Initialization of query '${ha(e.query)}' failed`);return void e.onError(n)}n.queries.set(r,i),i.Q_.push(e),e.U_(n.onlineState),i.q_&&e.W_(i.q_)&&Rd(n)}async function Ad(t,e){const n=Xr(t),r=e.query;let s=!1;const i=n.queries.get(r);if(i){const t=i.Q_.indexOf(e);t>=0&&(i.Q_.splice(t,1),s=0===i.Q_.length)}if(s)return n.queries.delete(r),n.onUnlisten(r)}function Nd(t,e){const n=Xr(t);let r=!1;for(const t of e){const e=t.query,s=n.queries.get(e);if(s){for(const e of s.Q_)e.W_(t)&&(r=!0);s.q_=t}}r&&Rd(n)}function kd(t,e,n){const r=Xr(t),s=r.queries.get(e);if(s)for(const t of s.Q_)t.onError(n);r.queries.delete(e)}function Rd(t){t.K_.forEach((t=>{t.next()}))}class Md{constructor(t,e,n){this.query=t,this.G_=e,this.z_=!1,this.j_=null,this.onlineState="Unknown",this.options=n||{}}W_(t){if(!this.options.includeMetadataChanges){const e=[];for(const n of t.docChanges)3!==n.type&&e.push(n);t=new Sd(t.query,t.docs,t.oldDocs,e,t.mutatedKeys,t.fromCache,t.syncStateChanged,!0,t.hasCachedResults)}let e=!1;return this.z_?this.H_(t)&&(this.G_.next(t),e=!0):this.J_(t,this.onlineState)&&(this.Y_(t),e=!0),this.j_=t,e}onError(t){this.G_.error(t)}U_(t){this.onlineState=t;let e=!1;return this.j_&&!this.z_&&this.J_(this.j_,t)&&(this.Y_(this.j_),e=!0),e}J_(t,e){if(!t.fromCache)return!0;const n="Offline"!==e;return(!this.options.Z_||!n)&&(!t.docs.isEmpty()||t.hasCachedResults||"Offline"===e)}H_(t){if(t.docChanges.length>0)return!0;const e=this.j_&&this.j_.hasPendingWrites!==t.hasPendingWrites;return!(!t.syncStateChanged&&!e)&&!0===this.options.includeMetadataChanges}Y_(t){t=Sd.fromInitialDocuments(t.query,t.docs,t.mutatedKeys,t.fromCache,t.hasCachedResults),this.z_=!0,this.G_.next(t)}}class Ld{constructor(t,e){this.X_=t,this.byteLength=e}ea(){return"metadata"in this.X_}}class Od{constructor(t){this.serializer=t}Ps(t){return $u(this.serializer,t)}Is(t){return t.metadata.exists?Ju(this.serializer,t.document,!1):bo.newNoDocument(this.Ps(t.metadata.name),this.Ts(t.metadata.readTime))}Ts(t){return Uu(t)}}class Pd{constructor(t,e,n){this.ta=t,this.localStore=e,this.serializer=n,this.queries=[],this.documents=[],this.collectionGroups=new Set,this.progress=Fd(t)}na(t){this.progress.bytesLoaded+=t.byteLength;let e=this.progress.documentsLoaded;if(t.X_.namedQuery)this.queries.push(t.X_.namedQuery);else if(t.X_.documentMetadata){this.documents.push({metadata:t.X_.documentMetadata}),t.X_.documentMetadata.exists||++e;const n=ws.fromString(t.X_.documentMetadata.name);this.collectionGroups.add(n.get(n.length-2))}else t.X_.document&&(this.documents[this.documents.length-1].document=t.X_.document,++e);return e!==this.progress.documentsLoaded?(this.progress.documentsLoaded=e,Object.assign({},this.progress)):null}ra(t){const e=new Map,n=new Od(this.serializer);for(const r of t)if(r.metadata.queries){const t=n.Ps(r.metadata.name);for(const n of r.metadata.queries){const r=(e.get(n)||Ca()).add(t);e.set(n,r)}}return e}async complete(){const t=await async function(t,e,n,r){const s=Xr(t);let i=Ca(),o=wa();for(const t of n){const n=e.Ps(t.metadata.name);t.document&&(i=i.add(n));const r=e.Is(t);r.setReadTime(e.Ts(t.metadata.readTime)),o=o.insert(n,r)}const a=s.os.newChangeBuffer({trackRemovals:!0}),u=await dh(s,function(t){return ia(ea(ws.fromString(`__bundle__/docs/${t}`)))}(r));return s.persistence.runTransaction("Apply bundle documents","readwrite",(t=>lh(t,a,o).next((e=>(a.apply(t),e))).next((e=>s.Qr.removeMatchingKeysForTargetId(t,u.targetId).next((()=>s.Qr.addMatchingKeys(t,i,u.targetId))).next((()=>s.localDocuments.getLocalViewOfDocuments(t,e.cs,e.ls))).next((()=>e.cs))))))}(this.localStore,new Od(this.serializer),this.documents,this.ta.id),e=this.ra(this.documents);for(const t of this.queries)await wh(this.localStore,t,e.get(t.name));return this.progress.taskState="Success",{progress:this.progress,ia:this.collectionGroups,sa:t}}}function Fd(t){return{taskState:"Running",documentsLoaded:0,bytesLoaded:0,totalDocuments:t.totalDocuments,totalBytes:t.totalBytes}}class Vd{constructor(t){this.key=t}}class qd{constructor(t){this.key=t}}class Bd{constructor(t,e){this.query=t,this.oa=e,this._a=null,this.hasCachedResults=!1,this.current=!1,this.aa=Ca(),this.mutatedKeys=Ca(),this.ua=ga(t),this.ca=new Ed(this.ua)}get la(){return this.oa}ha(t,e){const n=e?e.Pa:new Td,r=e?e.ca:this.ca;let s=e?e.mutatedKeys:this.mutatedKeys,i=r,o=!1;const a="F"===this.query.limitType&&r.size===this.query.limit?r.last():null,u="L"===this.query.limitType&&r.size===this.query.limit?r.first():null;if(t.inorderTraversal(((t,e)=>{const c=r.get(t),l=da(this.query,e)?e:null,h=!!c&&this.mutatedKeys.has(c.key),d=!!l&&(l.hasLocalMutations||this.mutatedKeys.has(l.key)&&l.hasCommittedMutations);let f=!1;c&&l?c.data.isEqual(l.data)?h!==d&&(n.track({type:3,doc:l}),f=!0):this.Ia(c,l)||(n.track({type:2,doc:l}),f=!0,(a&&this.ua(l,a)>0||u&&this.ua(l,u)<0)&&(o=!0)):!c&&l?(n.track({type:0,doc:l}),f=!0):c&&!l&&(n.track({type:1,doc:c}),f=!0,(a||u)&&(o=!0)),f&&(l?(i=i.add(l),s=d?s.add(t):s.delete(t)):(i=i.delete(t),s=s.delete(t)))})),null!==this.query.limit)for(;i.size>this.query.limit;){const t="F"===this.query.limitType?i.last():i.first();i=i.delete(t.key),s=s.delete(t.key),n.track({type:1,doc:t})}return{ca:i,Pa:n,Xi:o,mutatedKeys:s}}Ia(t,e){return t.hasLocalMutations&&e.hasCommittedMutations&&!e.hasLocalMutations}applyChanges(t,e,n,r){const s=this.ca;this.ca=t.ca,this.mutatedKeys=t.mutatedKeys;const i=t.Pa.k_();i.sort(((t,e)=>function(t,e){const n=t=>{switch(t){case 0:return 1;case 2:case 3:return 2;case 1:return 0;default:return Hr()}};return n(t)-n(e)}(t.type,e.type)||this.ua(t.doc,e.doc))),this.Ta(n),r=null!=r&&r;const o=e&&!r?this.Ea():[],a=0===this.aa.size&&this.current&&!r?1:0,u=a!==this._a;return this._a=a,0!==i.length||u?{snapshot:new Sd(this.query,t.ca,s,i,t.mutatedKeys,0===a,u,!1,!!n&&n.resumeToken.approximateByteSize()>0),da:o}:{da:o}}U_(t){return this.current&&"Offline"===t?(this.current=!1,this.applyChanges({ca:this.ca,Pa:new Td,mutatedKeys:this.mutatedKeys,Xi:!1},!1)):{da:[]}}Aa(t){return!this.oa.has(t)&&!!this.ca.has(t)&&!this.ca.get(t).hasLocalMutations}Ta(t){t&&(t.addedDocuments.forEach((t=>this.oa=this.oa.add(t))),t.modifiedDocuments.forEach((t=>{})),t.removedDocuments.forEach((t=>this.oa=this.oa.delete(t))),this.current=t.current)}Ea(){if(!this.current)return[];const t=this.aa;this.aa=Ca(),this.ca.forEach((t=>{this.Aa(t.key)&&(this.aa=this.aa.add(t.key))}));const e=[];return t.forEach((t=>{this.aa.has(t)||e.push(new qd(t))})),this.aa.forEach((n=>{t.has(n)||e.push(new Vd(n))})),e}Ra(t){this.oa=t.hs,this.aa=Ca();const e=this.ha(t.documents);return this.applyChanges(e,!0)}Va(){return Sd.fromInitialDocuments(this.query,this.ca,this.mutatedKeys,0===this._a,this.hasCachedResults)}}class Ud{constructor(t,e,n){this.query=t,this.targetId=e,this.view=n}}class zd{constructor(t){this.key=t,this.ma=!1}}class Gd{constructor(t,e,n,r,s,i){this.localStore=t,this.remoteStore=e,this.eventManager=n,this.sharedClientState=r,this.currentUser=s,this.maxConcurrentLimboResolutions=i,this.fa={},this.ga=new pa((t=>la(t)),ca),this.pa=new Map,this.ya=new Set,this.wa=new Ni(_s.comparator),this.Sa=new Map,this.ba=new Bl,this.Da={},this.Ca=new Map,this.va=ml.Bn(),this.onlineState="Unknown",this.Fa=void 0}get isPrimaryClient(){return!0===this.Fa}}async function jd(t,e){const n=yf(t);let r,s;const i=n.ga.get(e);if(i)r=i.targetId,n.sharedClientState.addLocalQueryTarget(r),s=i.view.Va();else{const t=await dh(n.localStore,ia(e)),i=n.sharedClientState.addLocalQueryTarget(t.targetId);r=t.targetId,s=await Kd(n,e,r,"current"===i,t.resumeToken),n.isPrimaryClient&&Wh(n.remoteStore,t)}return s}async function Kd(t,e,n,r,s){t.Ma=(e,n,r)=>async function(t,e,n,r){let s=e.view.ha(n);s.Xi&&(s=await gh(t.localStore,e.query,!1).then((({documents:t})=>e.view.ha(t,s))));const i=r&&r.targetChanges.get(e.targetId),o=r&&null!=r.targetMismatches.get(e.targetId),a=e.view.applyChanges(s,t.isPrimaryClient,i,o);return nf(t,e.targetId,a.da),a.snapshot}(t,e,n,r);const i=await gh(t.localStore,e,!0),o=new Bd(e,i.hs),a=o.ha(i.documents),u=Su.createSynthesizedTargetChangeForCurrentChange(n,r&&"Offline"!==t.onlineState,s),c=o.applyChanges(a,t.isPrimaryClient,u);nf(t,n,c.da);const l=new Ud(e,n,o);return t.ga.set(e,l),t.pa.has(n)?t.pa.get(n).push(e):t.pa.set(n,[e]),c.snapshot}async function $d(t,e){const n=Xr(t),r=n.ga.get(e),s=n.pa.get(r.targetId);if(s.length>1)return n.pa.set(r.targetId,s.filter((t=>!ca(t,e)))),void n.ga.delete(e);n.isPrimaryClient?(n.sharedClientState.removeLocalQueryTarget(r.targetId),n.sharedClientState.isActiveQueryTarget(r.targetId)||await fh(n.localStore,r.targetId,!1).then((()=>{n.sharedClientState.clearQueryState(r.targetId),Yh(n.remoteStore,r.targetId),tf(n,r.targetId)})).catch(Os)):(tf(n,r.targetId),await fh(n.localStore,r.targetId,!0))}async function Qd(t,e){const n=Xr(t);try{const t=await function(t,e){const n=Xr(t),r=e.snapshotVersion;let s=n.ns;return n.persistence.runTransaction("Apply remote event","readwrite-primary",(t=>{const i=n.os.newChangeBuffer({trackRemovals:!0});s=n.ns;const o=[];e.targetChanges.forEach(((i,a)=>{const u=s.get(a);if(!u)return;o.push(n.Qr.removeMatchingKeys(t,i.removedDocuments,a).next((()=>n.Qr.addMatchingKeys(t,i.addedDocuments,a))));let c=u.withSequenceNumber(t.currentSequenceNumber);null!==e.targetMismatches.get(a)?c=c.withResumeToken(qi.EMPTY_BYTE_STRING,ps.min()).withLastLimboFreeSnapshotVersion(ps.min()):i.resumeToken.approximateByteSize()>0&&(c=c.withResumeToken(i.resumeToken,r)),s=s.insert(a,c),function(t,e,n){return 0===t.resumeToken.approximateByteSize()||e.snapshotVersion.toMicroseconds()-t.snapshotVersion.toMicroseconds()>=3e8||n.addedDocuments.size+n.modifiedDocuments.size+n.removedDocuments.size>0}(u,c,i)&&o.push(n.Qr.updateTargetData(t,c))}));let a=wa(),u=Ca();if(e.documentUpdates.forEach((r=>{e.resolvedLimboDocuments.has(r)&&o.push(n.persistence.referenceDelegate.updateLimboDocument(t,r))})),o.push(lh(t,i,e.documentUpdates).next((t=>{a=t.cs,u=t.ls}))),!r.isEqual(ps.min())){const e=n.Qr.getLastRemoteSnapshotVersion(t).next((e=>n.Qr.setTargetsMetadata(t,t.currentSequenceNumber,r)));o.push(e)}return Ps.waitFor(o).next((()=>i.apply(t))).next((()=>n.localDocuments.getLocalViewOfDocuments(t,a,u))).next((()=>a))})).then((t=>(n.ns=s,t)))}(n.localStore,e);e.targetChanges.forEach(((t,e)=>{const r=n.Sa.get(e);r&&(Wr(t.addedDocuments.size+t.modifiedDocuments.size+t.removedDocuments.size<=1),t.addedDocuments.size>0?r.ma=!0:t.modifiedDocuments.size>0?Wr(r.ma):t.removedDocuments.size>0&&(Wr(r.ma),r.ma=!1))})),await of(n,t,e)}catch(t){await Os(t)}}function Hd(t,e,n){const r=Xr(t);if(r.isPrimaryClient&&0===n||!r.isPrimaryClient&&1===n){const t=[];r.ga.forEach(((n,r)=>{const s=r.view.U_(e);s.snapshot&&t.push(s.snapshot)})),function(t,e){const n=Xr(t);n.onlineState=e;let r=!1;n.queries.forEach(((t,n)=>{for(const t of n.Q_)t.U_(e)&&(r=!0)})),r&&Rd(n)}(r.eventManager,e),t.length&&r.fa.u_(t),r.onlineState=e,r.isPrimaryClient&&r.sharedClientState.setOnlineState(e)}}async function Wd(t,e,n){const r=Xr(t);r.sharedClientState.updateQueryState(e,"rejected",n);const s=r.Sa.get(e),i=s&&s.key;if(i){let t=new Ni(_s.comparator);t=t.insert(i,bo.newNoDocument(i,ps.min()));const n=Ca().add(i),s=new Tu(ps.min(),new Map,new Ni(ds),t,n);await Qd(r,s),r.wa=r.wa.remove(i),r.Sa.delete(e),sf(r)}else await fh(r.localStore,e,!1).then((()=>tf(r,e,n))).catch(Os)}async function Yd(t,e){const n=Xr(t),r=e.batch.batchId;try{const t=await function(t,e){const n=Xr(t);return n.persistence.runTransaction("Acknowledge batch","readwrite-primary",(t=>{const r=e.batch.keys(),s=n.os.newChangeBuffer({trackRemovals:!0});return function(t,e,n,r){const s=n.batch,i=s.keys();let o=Ps.resolve();return i.forEach((t=>{o=o.next((()=>r.getEntry(e,t))).next((e=>{const i=n.docVersions.get(t);Wr(null!==i),e.version.compareTo(i)<0&&(s.applyToRemoteDocument(e,n),e.isValidDocument()&&(e.setReadTime(n.commitVersion),r.addEntry(e)))}))})),o.next((()=>t.mutationQueue.removeMutationBatch(e,s)))}(n,t,e,s).next((()=>s.apply(t))).next((()=>n.mutationQueue.performConsistencyCheck(t))).next((()=>n.documentOverlayCache.removeOverlaysForBatchId(t,r,e.batch.batchId))).next((()=>n.localDocuments.recalculateAndSaveOverlaysForDocumentKeys(t,function(t){let e=Ca();for(let n=0;n0&&(e=e.add(t.batch.mutations[n].key));return e}(e)))).next((()=>n.localDocuments.getDocuments(t,r)))}))}(n.localStore,e);Zd(n,r,null),Jd(n,r),n.sharedClientState.updateMutationState(r,"acknowledged"),await of(n,t)}catch(t){await Os(t)}}async function Xd(t,e,n){const r=Xr(t);try{const t=await function(t,e){const n=Xr(t);return n.persistence.runTransaction("Reject batch","readwrite-primary",(t=>{let r;return n.mutationQueue.lookupMutationBatch(t,e).next((e=>(Wr(null!==e),r=e.keys(),n.mutationQueue.removeMutationBatch(t,e)))).next((()=>n.mutationQueue.performConsistencyCheck(t))).next((()=>n.documentOverlayCache.removeOverlaysForBatchId(t,r,e))).next((()=>n.localDocuments.recalculateAndSaveOverlaysForDocumentKeys(t,r))).next((()=>n.localDocuments.getDocuments(t,r)))}))}(r.localStore,e);Zd(r,e,n),Jd(r,e),r.sharedClientState.updateMutationState(e,"rejected",n),await of(r,t)}catch(t){await Os(t)}}function Jd(t,e){(t.Ca.get(e)||[]).forEach((t=>{t.resolve()})),t.Ca.delete(e)}function Zd(t,e,n){const r=Xr(t);let s=r.Da[r.currentUser.toKey()];if(s){const t=s.get(e);t&&(n?t.reject(n):t.resolve(),s=s.remove(e)),r.Da[r.currentUser.toKey()]=s}}function tf(t,e,n=null){t.sharedClientState.removeLocalQueryTarget(e);for(const r of t.pa.get(e))t.ga.delete(r),n&&t.fa.xa(r,n);t.pa.delete(e),t.isPrimaryClient&&t.ba.Vr(e).forEach((e=>{t.ba.containsKey(e)||ef(t,e)}))}function ef(t,e){t.ya.delete(e.path.canonicalString());const n=t.wa.get(e);null!==n&&(Yh(t.remoteStore,n),t.wa=t.wa.remove(e),t.Sa.delete(n),sf(t))}function nf(t,e,n){for(const r of n)r instanceof Vd?(t.ba.addReference(r.key,e),rf(t,r)):r instanceof qd?(jr("SyncEngine","Document no longer in limbo: "+r.key),t.ba.removeReference(r.key,e),t.ba.containsKey(r.key)||ef(t,r.key)):Hr()}function rf(t,e){const n=e.key,r=n.path.canonicalString();t.wa.get(n)||t.ya.has(r)||(jr("SyncEngine","New document in limbo: "+n),t.ya.add(r),sf(t))}function sf(t){for(;t.ya.size>0&&t.wa.size{o.push(r.Ma(a,e,n).then((t=>{if((t||n)&&r.isPrimaryClient&&r.sharedClientState.updateQueryState(a.targetId,(null==t?void 0:t.fromCache)?"not-current":"current"),t){s.push(t);const e=rh.Ki(a.targetId,t);i.push(e)}})))})),await Promise.all(o),r.fa.u_(s),await async function(t,e){const n=Xr(t);try{await n.persistence.runTransaction("notifyLocalViewChanges","readwrite",(t=>Ps.forEach(e,(e=>Ps.forEach(e.qi,(r=>n.persistence.referenceDelegate.addReference(t,e.targetId,r))).next((()=>Ps.forEach(e.Qi,(r=>n.persistence.referenceDelegate.removeReference(t,e.targetId,r)))))))))}catch(t){if(!Us(t))throw t;jr("LocalStore","Failed to update sequence numbers: "+t)}for(const t of e){const e=t.targetId;if(!t.fromCache){const t=n.ns.get(e),r=t.snapshotVersion,s=t.withLastLimboFreeSnapshotVersion(r);n.ns=n.ns.insert(e,s)}}}(r.localStore,i))}async function af(t,e){const n=Xr(t);if(!n.currentUser.isEqual(e)){jr("SyncEngine","User change. New user:",e.toKey());const t=await uh(n.localStore,e);n.currentUser=e,function(t,e){t.Ca.forEach((t=>{t.forEach((t=>{t.reject(new Zr(Jr.CANCELLED,e))}))})),t.Ca.clear()}(n,"'waitForPendingWrites' promise is rejected due to a user change."),n.sharedClientState.handleUserChange(e,t.removedBatchIds,t.addedBatchIds),await of(n,t.us)}}function uf(t,e){const n=Xr(t),r=n.Sa.get(e);if(r&&r.ma)return Ca().add(r.key);{let t=Ca();const r=n.pa.get(e);if(!r)return t;for(const e of r){const r=n.ga.get(e);t=t.unionWith(r.view.la)}return t}}async function cf(t,e){const n=Xr(t),r=await gh(n.localStore,e.query,!0),s=e.view.Ra(r);return n.isPrimaryClient&&nf(n,e.targetId,s.da),s}async function lf(t,e){const n=Xr(t);return ph(n.localStore,e).then((t=>of(n,t)))}async function hf(t,e,n,r){const s=Xr(t),i=await function(t,e){const n=Xr(t),r=Xr(n.mutationQueue);return n.persistence.runTransaction("Lookup mutation documents","readonly",(t=>r.vn(t,e).next((e=>e?n.localDocuments.getDocuments(t,e):Ps.resolve(null)))))}(s.localStore,e);null!==i?("pending"===n?await ud(s.remoteStore):"acknowledged"===n||"rejected"===n?(Zd(s,e,r||null),Jd(s,e),function(t,e){Xr(Xr(t).mutationQueue).Mn(e)}(s.localStore,e)):Hr(),await of(s,i)):jr("SyncEngine","Cannot apply mutation batch with id: "+e)}async function df(t,e,n){const r=Xr(t),s=[],i=[];for(const t of e){let e;const n=r.pa.get(t);if(n&&0!==n.length){e=await dh(r.localStore,ia(n[0]));for(const t of n){const e=r.ga.get(t),n=await cf(r,e);n.snapshot&&i.push(n.snapshot)}}else{const n=await mh(r.localStore,t);e=await dh(r.localStore,n),await Kd(r,ff(n),t,!1,e.resumeToken)}s.push(e)}return r.fa.u_(i),s}function ff(t){return ta(t.path,t.collectionGroup,t.orderBy,t.filters,t.limit,"F",t.startAt,t.endAt)}function gf(t){return function(t){return Xr(Xr(t).persistence).Li()}(Xr(t).localStore)}async function mf(t,e,n,r){const s=Xr(t);if(s.Fa)return void jr("SyncEngine","Ignoring unexpected query state notification.");const i=s.pa.get(e);if(i&&i.length>0)switch(n){case"current":case"not-current":{const t=await ph(s.localStore,fa(i[0])),r=Tu.createSynthesizedRemoteEventForCurrentChange(e,"current"===n,qi.EMPTY_BYTE_STRING);await of(s,t,r);break}case"rejected":await fh(s.localStore,e,!0),tf(s,e,r);break;default:Hr()}}async function pf(t,e,n){const r=yf(t);if(r.Fa){for(const t of e){if(r.pa.has(t)){jr("SyncEngine","Adding an already active target "+t);continue}const e=await mh(r.localStore,t),n=await dh(r.localStore,e);await Kd(r,ff(e),n.targetId,!1,n.resumeToken),Wh(r.remoteStore,n)}for(const t of n)r.pa.has(t)&&await fh(r.localStore,t,!1).then((()=>{Yh(r.remoteStore,t),tf(r,t)})).catch(Os)}}function yf(t){const e=Xr(t);return e.remoteStore.remoteSyncer.applyRemoteEvent=Qd.bind(null,e),e.remoteStore.remoteSyncer.getRemoteKeysForTarget=uf.bind(null,e),e.remoteStore.remoteSyncer.rejectListen=Wd.bind(null,e),e.fa.u_=Nd.bind(null,e.eventManager),e.fa.xa=kd.bind(null,e.eventManager),e}function wf(t){const e=Xr(t);return e.remoteStore.remoteSyncer.applySuccessfulWrite=Yd.bind(null,e),e.remoteStore.remoteSyncer.rejectFailedWrite=Xd.bind(null,e),e}class vf{constructor(){this.synchronizeTabs=!1}async initialize(t){this.serializer=qh(t.databaseInfo.databaseId),this.sharedClientState=this.createSharedClientState(t),this.persistence=this.createPersistence(t),await this.persistence.start(),this.localStore=this.createLocalStore(t),this.gcScheduler=this.createGarbageCollectionScheduler(t,this.localStore),this.indexBackfillerScheduler=this.createIndexBackfillerScheduler(t,this.localStore)}createGarbageCollectionScheduler(t,e){return null}createIndexBackfillerScheduler(t,e){return null}createLocalStore(t){return ah(this.persistence,new ih,t.initialUser,this.serializer)}createPersistence(t){return new $l(Hl.Hr,this.serializer)}createSharedClientState(t){return new Dh}async terminate(){var t,e;null===(t=this.gcScheduler)||void 0===t||t.stop(),null===(e=this.indexBackfillerScheduler)||void 0===e||e.stop(),this.sharedClientState.shutdown(),await this.persistence.shutdown()}}class bf extends vf{constructor(t){super(),this.cacheSizeBytes=t}createGarbageCollectionScheduler(t,e){Wr(this.persistence.referenceDelegate instanceof Wl);const n=this.persistence.referenceDelegate.garbageCollector;return new Il(n,t.asyncQueue,e)}createPersistence(t){const e=void 0!==this.cacheSizeBytes?al.withCacheSize(this.cacheSizeBytes):al.DEFAULT;return new $l((t=>Wl.Hr(t,e)),this.serializer)}}class _f extends vf{constructor(t,e,n){super(),this.Na=t,this.cacheSizeBytes=e,this.forceOwnership=n,this.synchronizeTabs=!1}async initialize(t){await super.initialize(t),await this.Na.initialize(this,t),await wf(this.Na.syncEngine),await ud(this.Na.remoteStore),await this.persistence.fi((()=>(this.gcScheduler&&!this.gcScheduler.started&&this.gcScheduler.start(),this.indexBackfillerScheduler&&!this.indexBackfillerScheduler.started&&this.indexBackfillerScheduler.start(),Promise.resolve())))}createLocalStore(t){return ah(this.persistence,new ih,t.initialUser,this.serializer)}createGarbageCollectionScheduler(t,e){const n=this.persistence.referenceDelegate.garbageCollector;return new Il(n,t.asyncQueue,e)}createIndexBackfillerScheduler(t,e){const n=new Qs(e,this.persistence);return new $s(t.asyncQueue,n)}createPersistence(t){const e=nh(t.databaseInfo.databaseId,t.databaseInfo.persistenceKey),n=void 0!==this.cacheSizeBytes?al.withCacheSize(this.cacheSizeBytes):al.DEFAULT;return new Zl(this.synchronizeTabs,e,t.clientId,n,t.asyncQueue,Fh(),Vh(),this.serializer,this.sharedClientState,!!this.forceOwnership)}createSharedClientState(t){return new Dh}}class If extends _f{constructor(t,e){super(t,e,!1),this.Na=t,this.cacheSizeBytes=e,this.synchronizeTabs=!0}async initialize(t){await super.initialize(t);const e=this.Na.syncEngine;this.sharedClientState instanceof Ch&&(this.sharedClientState.syncEngine={Zs:hf.bind(null,e),Xs:mf.bind(null,e),eo:pf.bind(null,e),Li:gf.bind(null,e),Ys:lf.bind(null,e)},await this.sharedClientState.start()),await this.persistence.fi((async t=>{await async function(t,e){const n=Xr(t);if(yf(n),wf(n),!0===e&&!0!==n.Fa){const t=n.sharedClientState.getAllActiveQueryTargets(),e=await df(n,t.toArray());n.Fa=!0,await wd(n.remoteStore,!0);for(const t of e)Wh(n.remoteStore,t)}else if(!1===e&&!1!==n.Fa){const t=[];let e=Promise.resolve();n.pa.forEach(((r,s)=>{n.sharedClientState.isLocalQueryTarget(s)?t.push(s):e=e.then((()=>(tf(n,s),fh(n.localStore,s,!0)))),Yh(n.remoteStore,s)})),await e,await df(n,t),function(t){const e=Xr(t);e.Sa.forEach(((t,n)=>{Yh(e.remoteStore,n)})),e.ba.mr(),e.Sa=new Map,e.wa=new Ni(_s.comparator)}(n),n.Fa=!1,await wd(n.remoteStore,!1)}}(this.Na.syncEngine,t),this.gcScheduler&&(t&&!this.gcScheduler.started?this.gcScheduler.start():t||this.gcScheduler.stop()),this.indexBackfillerScheduler&&(t&&!this.indexBackfillerScheduler.started?this.indexBackfillerScheduler.start():t||this.indexBackfillerScheduler.stop())}))}createSharedClientState(t){const e=Fh();if(!Ch.D(e))throw new Zr(Jr.UNIMPLEMENTED,"IndexedDB persistence is only available on platforms that support LocalStorage.");const n=nh(t.databaseInfo.databaseId,t.databaseInfo.persistenceKey);return new Ch(e,t.asyncQueue,n,t.clientId,t.initialUser)}}class Ef{async initialize(t,e){this.localStore||(this.localStore=t.localStore,this.sharedClientState=t.sharedClientState,this.datastore=this.createDatastore(e),this.remoteStore=this.createRemoteStore(e),this.eventManager=this.createEventManager(e),this.syncEngine=this.createSyncEngine(e,!t.synchronizeTabs),this.sharedClientState.onlineStateHandler=t=>Hd(this.syncEngine,t,1),this.remoteStore.remoteSyncer.handleCredentialChange=af.bind(null,this.syncEngine),await wd(this.remoteStore,this.syncEngine.isPrimaryClient))}createEventManager(t){return new Cd}createDatastore(t){const e=qh(t.databaseInfo.databaseId),n=function(t){return new Ph(t)}(t.databaseInfo);return function(t,e,n,r){return new jh(t,e,n,r)}(t.authCredentials,t.appCheckCredentials,n,e)}createRemoteStore(t){return function(t,e,n,r,s){return new $h(t,e,n,r,s)}(this.localStore,this.datastore,t.asyncQueue,(t=>Hd(this.syncEngine,t,0)),Nh.D()?new Nh:new Ah)}createSyncEngine(t,e){return function(t,e,n,r,s,i,o){const a=new Gd(t,e,n,r,s,i);return o&&(a.Fa=!0),a}(this.localStore,this.remoteStore,this.eventManager,this.sharedClientState,t.initialUser,t.maxConcurrentLimboResolutions,e)}async terminate(){var t;await async function(t){const e=Xr(t);jr("RemoteStore","RemoteStore shutting down."),e.v_.add(5),await Hh(e),e.M_.shutdown(),e.x_.set("Unknown")}(this.remoteStore),null===(t=this.datastore)||void 0===t||t.terminate()}}function Tf(t,e=10240){let n=0;return{async read(){if(n{this.muted||t(e)}),0)}}class xf{constructor(t,e){this.ka=t,this.serializer=e,this.metadata=new ts,this.buffer=new Uint8Array,this.qa=new TextDecoder("utf-8"),this.Qa().then((t=>{t&&t.ea()?this.metadata.resolve(t.X_.metadata):this.metadata.reject(new Error(`The first element of the bundle is not a metadata, it is\n ${JSON.stringify(null==t?void 0:t.X_)}`))}),(t=>this.metadata.reject(t)))}close(){return this.ka.cancel()}async getMetadata(){return this.metadata.promise}async Oa(){return await this.getMetadata(),this.Qa()}async Qa(){const t=await this.Ka();if(null===t)return null;const e=this.qa.decode(t),n=Number(e);isNaN(n)&&this.$a(`length string (${e}) is not valid number`);const r=await this.Ua(n);return new Ld(JSON.parse(r),t.length+n)}Wa(){return this.buffer.findIndex((t=>t==="{".charCodeAt(0)))}async Ka(){for(;this.Wa()<0&&!await this.Ga(););if(0===this.buffer.length)return null;const t=this.Wa();t<0&&this.$a("Reached the end of bundle when a length string is expected.");const e=this.buffer.slice(0,t);return this.buffer=this.buffer.slice(t),e}async Ua(t){for(;this.buffer.length0)throw this.lastTransactionError=new Zr(Jr.INVALID_ARGUMENT,"Firestore transactions require all reads to be executed before all writes."),this.lastTransactionError;const e=await async function(t,e){const n=Xr(t),r={documents:e.map((t=>Ku(n.serializer,t)))},s=await n.vo("BatchGetDocuments",n.serializer.databaseId,ws.emptyPath(),r,e.length),i=new Map;s.forEach((t=>{const e=function(t,e){return"found"in e?function(t,e){Wr(!!e.found),e.found.name,e.found.updateTime;const n=$u(t,e.found.name),r=Uu(e.found.updateTime),s=e.found.createTime?Uu(e.found.createTime):ps.min(),i=new wo({mapValue:{fields:e.found.fields}});return bo.newFoundDocument(n,r,s,i)}(t,e):"missing"in e?function(t,e){Wr(!!e.missing),Wr(!!e.readTime);const n=$u(t,e.missing),r=Uu(e.readTime);return bo.newNoDocument(n,r)}(t,e):Hr()}(n.serializer,t);i.set(e.key.toString(),e)}));const o=[];return e.forEach((t=>{const e=i.get(t.toString());Wr(!!e),o.push(e)})),o}(this.datastore,t);return e.forEach((t=>this.recordVersion(t))),e}set(t,e){this.write(e.toMutation(t,this.precondition(t))),this.writtenDocs.add(t.toString())}update(t,e){try{this.write(e.toMutation(t,this.preconditionForUpdate(t)))}catch(t){this.lastTransactionError=t}this.writtenDocs.add(t.toString())}delete(t){this.write(new ou(t,this.precondition(t))),this.writtenDocs.add(t.toString())}async commit(){if(this.ensureCommitNotCalled(),this.lastTransactionError)throw this.lastTransactionError;const t=this.readVersions;this.mutations.forEach((e=>{t.delete(e.key.toString())})),t.forEach(((t,e)=>{const n=_s.fromPath(e);this.mutations.push(new au(n,this.precondition(n)))})),await async function(t,e){const n=Xr(t),r={writes:e.map((t=>Zu(n.serializer,t)))};await n.So("Commit",n.serializer.databaseId,ws.emptyPath(),r)}(this.datastore,this.mutations),this.committed=!0}recordVersion(t){let e;if(t.isFoundDocument())e=t.version;else{if(!t.isNoDocument())throw Hr();e=ps.min()}const n=this.readVersions.get(t.key.toString());if(n){if(!e.isEqual(n))throw new Zr(Jr.ABORTED,"Document version changed between two reads.")}else this.readVersions.set(t.key.toString(),e)}precondition(t){const e=this.readVersions.get(t.toString());return!this.writtenDocs.has(t.toString())&&e?e.isEqual(ps.min())?Qa.exists(!1):Qa.updateTime(e):Qa.none()}preconditionForUpdate(t){const e=this.readVersions.get(t.toString());if(!this.writtenDocs.has(t.toString())&&e){if(e.isEqual(ps.min()))throw new Zr(Jr.INVALID_ARGUMENT,"Can't update a document that doesn't exist.");return Qa.updateTime(e)}return Qa.exists(!0)}write(t){this.ensureCommitNotCalled(),this.mutations.push(t)}ensureCommitNotCalled(){}}class Df{constructor(t,e,n,r,s){this.asyncQueue=t,this.datastore=e,this.options=n,this.updateFunction=r,this.deferred=s,this.za=n.maxAttempts,this.jo=new Bh(this.asyncQueue,"transaction_retry")}ja(){this.za-=1,this.Ha()}Ha(){this.jo.qo((async()=>{const t=new Cf(this.datastore),e=this.Ja(t);e&&e.then((e=>{this.asyncQueue.enqueueAndForget((()=>t.commit().then((()=>{this.deferred.resolve(e)})).catch((t=>{this.Ya(t)}))))})).catch((t=>{this.Ya(t)}))}))}Ja(t){try{const e=this.updateFunction(t);return!Ws(e)&&e.catch&&e.then?e:(this.deferred.reject(Error("Transaction callback must return a Promise")),null)}catch(t){return this.deferred.reject(t),null}}Ya(t){this.za>0&&this.Za(t)?(this.za-=1,this.asyncQueue.enqueueAndForget((()=>(this.Ha(),Promise.resolve())))):this.deferred.reject(t)}Za(t){if("FirebaseError"===t.name){const e=t.code;return"aborted"===e||"failed-precondition"===e||"already-exists"===e||!mu(e)}return!1}}class Af{constructor(t,e,n,r){this.authCredentials=t,this.appCheckCredentials=e,this.asyncQueue=n,this.databaseInfo=r,this.user=qr.UNAUTHENTICATED,this.clientId=hs.newId(),this.authCredentialListener=()=>Promise.resolve(),this.appCheckCredentialListener=()=>Promise.resolve(),this.authCredentials.start(n,(async t=>{jr("FirestoreClient","Received user=",t.uid),await this.authCredentialListener(t),this.user=t})),this.appCheckCredentials.start(n,(t=>(jr("FirestoreClient","Received new app check token=",t),this.appCheckCredentialListener(t,this.user))))}get configuration(){return{asyncQueue:this.asyncQueue,databaseInfo:this.databaseInfo,clientId:this.clientId,authCredentials:this.authCredentials,appCheckCredentials:this.appCheckCredentials,initialUser:this.user,maxConcurrentLimboResolutions:100}}setCredentialChangeListener(t){this.authCredentialListener=t}setAppCheckTokenChangeListener(t){this.appCheckCredentialListener=t}verifyNotTerminated(){if(this.asyncQueue.isShuttingDown)throw new Zr(Jr.FAILED_PRECONDITION,"The client has already been terminated.")}terminate(){this.asyncQueue.enterRestrictedMode();const t=new ts;return this.asyncQueue.enqueueAndForgetEvenWhileRestricted((async()=>{try{this._onlineComponents&&await this._onlineComponents.terminate(),this._offlineComponents&&await this._offlineComponents.terminate(),this.authCredentials.shutdown(),this.appCheckCredentials.shutdown(),t.resolve()}catch(e){const n=Id(e,"Failed to shutdown persistence");t.reject(n)}})),t.promise}}async function Nf(t,e){t.asyncQueue.verifyOperationInProgress(),jr("FirestoreClient","Initializing OfflineComponentProvider");const n=t.configuration;await e.initialize(n);let r=n.initialUser;t.setCredentialChangeListener((async t=>{r.isEqual(t)||(await uh(e.localStore,t),r=t)})),e.persistence.setDatabaseDeletedListener((()=>t.terminate())),t._offlineComponents=e}async function kf(t,e){t.asyncQueue.verifyOperationInProgress();const n=await Mf(t);jr("FirestoreClient","Initializing OnlineComponentProvider"),await e.initialize(n,t.configuration),t.setCredentialChangeListener((t=>yd(e.remoteStore,t))),t.setAppCheckTokenChangeListener(((t,n)=>yd(e.remoteStore,n))),t._onlineComponents=e}function Rf(t){return"FirebaseError"===t.name?t.code===Jr.FAILED_PRECONDITION||t.code===Jr.UNIMPLEMENTED:!("undefined"!=typeof DOMException&&t instanceof DOMException)||22===t.code||20===t.code||11===t.code}async function Mf(t){if(!t._offlineComponents)if(t._uninitializedComponentsProvider){jr("FirestoreClient","Using user provided OfflineComponentProvider");try{await Nf(t,t._uninitializedComponentsProvider._offline)}catch(e){const n=e;if(!Rf(n))throw n;$r("Error using user provided cache. Falling back to memory cache: "+n),await Nf(t,new vf)}}else jr("FirestoreClient","Using default OfflineComponentProvider"),await Nf(t,new vf);return t._offlineComponents}async function Lf(t){return t._onlineComponents||(t._uninitializedComponentsProvider?(jr("FirestoreClient","Using user provided OnlineComponentProvider"),await kf(t,t._uninitializedComponentsProvider._online)):(jr("FirestoreClient","Using default OnlineComponentProvider"),await kf(t,new Ef))),t._onlineComponents}function Of(t){return Mf(t).then((t=>t.persistence))}function Pf(t){return Mf(t).then((t=>t.localStore))}function Ff(t){return Lf(t).then((t=>t.remoteStore))}function Vf(t){return Lf(t).then((t=>t.syncEngine))}function qf(t){return Lf(t).then((t=>t.datastore))}async function Bf(t){const e=await Lf(t),n=e.eventManager;return n.onListen=jd.bind(null,e.syncEngine),n.onUnlisten=$d.bind(null,e.syncEngine),n}function Uf(t,e,n={}){const r=new ts;return t.asyncQueue.enqueueAndForget((async()=>function(t,e,n,r,s){const i=new Sf({next:i=>{e.enqueueAndForget((()=>Ad(t,o)));const a=i.docs.has(n);!a&&i.fromCache?s.reject(new Zr(Jr.UNAVAILABLE,"Failed to get document because the client is offline.")):a&&i.fromCache&&r&&"server"===r.source?s.reject(new Zr(Jr.UNAVAILABLE,'Failed to get document from server. (However, this document does exist in the local cache. Run again without setting source to "server" to retrieve the cached document.)')):s.resolve(i)},error:t=>s.reject(t)}),o=new Md(ea(n.path),i,{includeMetadataChanges:!0,Z_:!0});return Dd(t,o)}(await Bf(t),t.asyncQueue,e,n,r))),r.promise}function zf(t,e,n={}){const r=new ts;return t.asyncQueue.enqueueAndForget((async()=>function(t,e,n,r,s){const i=new Sf({next:n=>{e.enqueueAndForget((()=>Ad(t,o))),n.fromCache&&"server"===r.source?s.reject(new Zr(Jr.UNAVAILABLE,'Failed to get documents from server. (However, these documents may exist in the local cache. Run again without setting source to "server" to retrieve the cached documents.)')):s.resolve(n)},error:t=>s.reject(t)}),o=new Md(n,i,{includeMetadataChanges:!0,Z_:!0});return Dd(t,o)}(await Bf(t),t.asyncQueue,e,n,r))),r.promise}function Gf(t){const e={};return void 0!==t.timeoutSeconds&&(e.timeoutSeconds=t.timeoutSeconds),e}const jf=new Map;function Kf(t,e,n){if(!n)throw new Zr(Jr.INVALID_ARGUMENT,`Function ${t}() cannot be called with an empty ${e}.`)}function $f(t,e,n,r){if(!0===e&&!0===r)throw new Zr(Jr.INVALID_ARGUMENT,`${t} and ${n} cannot be used together.`)}function Qf(t){if(!_s.isDocumentKey(t))throw new Zr(Jr.INVALID_ARGUMENT,`Invalid document reference. Document references must have an even number of segments, but ${t} has ${t.length}.`)}function Hf(t){if(_s.isDocumentKey(t))throw new Zr(Jr.INVALID_ARGUMENT,`Invalid collection reference. Collection references must have an odd number of segments, but ${t} has ${t.length}.`)}function Wf(t){if(void 0===t)return"undefined";if(null===t)return"null";if("string"==typeof t)return t.length>20&&(t=`${t.substring(0,20)}...`),JSON.stringify(t);if("number"==typeof t||"boolean"==typeof t)return""+t;if("object"==typeof t){if(t instanceof Array)return"an array";{const e=function(t){return t.constructor?t.constructor.name:null}(t);return e?`a custom ${e} object`:"an object"}}return"function"==typeof t?"a function":Hr()}function Yf(t,e){if("_delegate"in t&&(t=t._delegate),!(t instanceof e)){if(e.name===t.constructor.name)throw new Zr(Jr.INVALID_ARGUMENT,"Type does not match the expected instance. Did you pass a reference from a different Firestore SDK?");{const n=Wf(t);throw new Zr(Jr.INVALID_ARGUMENT,`Expected type '${e.name}', but it was: ${n}`)}}return t}function Xf(t,e){if(e<=0)throw new Zr(Jr.INVALID_ARGUMENT,`Function ${t}() requires a positive number, but it was: ${e}.`)}class Jf{constructor(t){var e,n;if(void 0===t.host){if(void 0!==t.ssl)throw new Zr(Jr.INVALID_ARGUMENT,"Can't provide ssl option if host option is not set");this.host="firestore.googleapis.com",this.ssl=!0}else this.host=t.host,this.ssl=null===(e=t.ssl)||void 0===e||e;if(this.credentials=t.credentials,this.ignoreUndefinedProperties=!!t.ignoreUndefinedProperties,this.localCache=t.localCache,void 0===t.cacheSizeBytes)this.cacheSizeBytes=41943040;else{if(-1!==t.cacheSizeBytes&&t.cacheSizeBytes<1048576)throw new Zr(Jr.INVALID_ARGUMENT,"cacheSizeBytes must be at least 1048576");this.cacheSizeBytes=t.cacheSizeBytes}$f("experimentalForceLongPolling",t.experimentalForceLongPolling,"experimentalAutoDetectLongPolling",t.experimentalAutoDetectLongPolling),this.experimentalForceLongPolling=!!t.experimentalForceLongPolling,this.experimentalForceLongPolling?this.experimentalAutoDetectLongPolling=!1:void 0===t.experimentalAutoDetectLongPolling?this.experimentalAutoDetectLongPolling=!0:this.experimentalAutoDetectLongPolling=!!t.experimentalAutoDetectLongPolling,this.experimentalLongPollingOptions=Gf(null!==(n=t.experimentalLongPollingOptions)&&void 0!==n?n:{}),function(t){if(void 0!==t.timeoutSeconds){if(isNaN(t.timeoutSeconds))throw new Zr(Jr.INVALID_ARGUMENT,`invalid long polling timeout: ${t.timeoutSeconds} (must not be NaN)`);if(t.timeoutSeconds<5)throw new Zr(Jr.INVALID_ARGUMENT,`invalid long polling timeout: ${t.timeoutSeconds} (minimum allowed value is 5)`);if(t.timeoutSeconds>30)throw new Zr(Jr.INVALID_ARGUMENT,`invalid long polling timeout: ${t.timeoutSeconds} (maximum allowed value is 30)`)}}(this.experimentalLongPollingOptions),this.useFetchStreams=!!t.useFetchStreams}isEqual(t){return this.host===t.host&&this.ssl===t.ssl&&this.credentials===t.credentials&&this.cacheSizeBytes===t.cacheSizeBytes&&this.experimentalForceLongPolling===t.experimentalForceLongPolling&&this.experimentalAutoDetectLongPolling===t.experimentalAutoDetectLongPolling&&function(t,e){return t.timeoutSeconds===e.timeoutSeconds}(this.experimentalLongPollingOptions,t.experimentalLongPollingOptions)&&this.ignoreUndefinedProperties===t.ignoreUndefinedProperties&&this.useFetchStreams===t.useFetchStreams}}class Zf{constructor(t,e,n,r){this._authCredentials=t,this._appCheckCredentials=e,this._databaseId=n,this._app=r,this.type="firestore-lite",this._persistenceKey="(lite)",this._settings=new Jf({}),this._settingsFrozen=!1}get app(){if(!this._app)throw new Zr(Jr.FAILED_PRECONDITION,"Firestore was not initialized using the Firebase SDK. 'app' is not available");return this._app}get _initialized(){return this._settingsFrozen}get _terminated(){return void 0!==this._terminateTask}_setSettings(t){if(this._settingsFrozen)throw new Zr(Jr.FAILED_PRECONDITION,"Firestore has already been started and its settings can no longer be changed. You can only modify settings before calling any other methods on a Firestore object.");this._settings=new Jf(t),void 0!==t.credentials&&(this._authCredentials=function(t){if(!t)return new ns;switch(t.type){case"firstParty":return new os(t.sessionIndex||"0",t.iamToken||null,t.authTokenFactory||null);case"provider":return t.client;default:throw new Zr(Jr.INVALID_ARGUMENT,"makeAuthCredentialsProvider failed due to invalid credential type")}}(t.credentials))}_getSettings(){return this._settings}_freezeSettings(){return this._settingsFrozen=!0,this._settings}_delete(){return this._terminateTask||(this._terminateTask=this._terminate()),this._terminateTask}toJSON(){return{app:this._app,databaseId:this._databaseId,settings:this._settings}}_terminate(){return function(t){const e=jf.get(t);e&&(jr("ComponentProvider","Removing Datastore"),jf.delete(t),e.terminate())}(this),Promise.resolve()}}function tg(t,e,n,r={}){var s;const i=(t=Yf(t,Zf))._getSettings(),o=`${e}:${n}`;if("firestore.googleapis.com"!==i.host&&i.host!==o&&$r("Host has been set in both settings() and connectFirestoreEmulator(), emulator host will be used."),t._setSettings(Object.assign(Object.assign({},i),{host:o,ssl:!1})),r.mockUserToken){let e,n;if("string"==typeof r.mockUserToken)e=r.mockUserToken,n=qr.MOCK_USER;else{e=function(t,e){if(t.uid)throw new Error('The "uid" field is no longer supported by mockUserToken. Please use "sub" instead for Firebase Auth User ID.');const n=e||"demo-project",r=t.iat||0,s=t.sub||t.user_id;if(!s)throw new Error("mockUserToken must contain 'sub' or 'user_id' field!");const i=Object.assign({iss:`https://securetoken.google.com/${n}`,aud:n,iat:r,exp:r+3600,auth_time:r,sub:s,user_id:s,firebase:{sign_in_provider:"custom",identities:{}}},t);return[l(JSON.stringify({alg:"none",type:"JWT"})),l(JSON.stringify(i)),""].join(".")}(r.mockUserToken,null===(s=t._app)||void 0===s?void 0:s.options.projectId);const i=r.mockUserToken.sub||r.mockUserToken.user_id;if(!i)throw new Zr(Jr.INVALID_ARGUMENT,"mockUserToken must contain 'sub' or 'user_id' field!");n=new qr(i)}t._authCredentials=new rs(new es(e,n))}}class eg{constructor(t,e,n){this.converter=e,this._query=n,this.type="query",this.firestore=t}withConverter(t){return new eg(this.firestore,t,this._query)}}class ng{constructor(t,e,n){this.converter=e,this._key=n,this.type="document",this.firestore=t}get _path(){return this._key.path}get id(){return this._key.path.lastSegment()}get path(){return this._key.path.canonicalString()}get parent(){return new rg(this.firestore,this.converter,this._key.path.popLast())}withConverter(t){return new ng(this.firestore,t,this._key)}}class rg extends eg{constructor(t,e,n){super(t,e,ea(n)),this._path=n,this.type="collection"}get id(){return this._query.path.lastSegment()}get path(){return this._query.path.canonicalString()}get parent(){const t=this._path.popLast();return t.isEmpty()?null:new ng(this.firestore,null,new _s(t))}withConverter(t){return new rg(this.firestore,t,this._path)}}function sg(t,e,...n){if(t=v(t),Kf("collection","path",e),t instanceof Zf){const r=ws.fromString(e,...n);return Hf(r),new rg(t,null,r)}{if(!(t instanceof ng||t instanceof rg))throw new Zr(Jr.INVALID_ARGUMENT,"Expected first argument to collection() to be a CollectionReference, a DocumentReference or FirebaseFirestore");const r=t._path.child(ws.fromString(e,...n));return Hf(r),new rg(t.firestore,null,r)}}function ig(t,e){if(t=Yf(t,Zf),Kf("collectionGroup","collection id",e),e.indexOf("/")>=0)throw new Zr(Jr.INVALID_ARGUMENT,`Invalid collection ID '${e}' passed to function collectionGroup(). Collection IDs must not contain '/'.`);return new eg(t,null,function(t){return new Zo(ws.emptyPath(),t)}(e))}function og(t,e,...n){if(t=v(t),1===arguments.length&&(e=hs.newId()),Kf("doc","path",e),t instanceof Zf){const r=ws.fromString(e,...n);return Qf(r),new ng(t,null,new _s(r))}{if(!(t instanceof ng||t instanceof rg))throw new Zr(Jr.INVALID_ARGUMENT,"Expected first argument to collection() to be a CollectionReference, a DocumentReference or FirebaseFirestore");const r=t._path.child(ws.fromString(e,...n));return Qf(r),new ng(t.firestore,t instanceof rg?t.converter:null,new _s(r))}}function ag(t,e){return t=v(t),e=v(e),(t instanceof ng||t instanceof rg)&&(e instanceof ng||e instanceof rg)&&t.firestore===e.firestore&&t.path===e.path&&t.converter===e.converter}function ug(t,e){return t=v(t),e=v(e),t instanceof eg&&e instanceof eg&&t.firestore===e.firestore&&ca(t._query,e._query)&&t.converter===e.converter}class cg{constructor(){this.Xa=Promise.resolve(),this.eu=[],this.tu=!1,this.nu=[],this.ru=null,this.iu=!1,this.su=!1,this.ou=[],this.jo=new Bh(this,"async_queue_retry"),this._u=()=>{const t=Vh();t&&jr("AsyncQueue","Visibility state changed to "+t.visibilityState),this.jo.Ko()};const t=Vh();t&&"function"==typeof t.addEventListener&&t.addEventListener("visibilitychange",this._u)}get isShuttingDown(){return this.tu}enqueueAndForget(t){this.enqueue(t)}enqueueAndForgetEvenWhileRestricted(t){this.au(),this.uu(t)}enterRestrictedMode(t){if(!this.tu){this.tu=!0,this.su=t||!1;const e=Vh();e&&"function"==typeof e.removeEventListener&&e.removeEventListener("visibilitychange",this._u)}}enqueue(t){if(this.au(),this.tu)return new Promise((()=>{}));const e=new ts;return this.uu((()=>this.tu&&this.su?Promise.resolve():(t().then(e.resolve,e.reject),e.promise))).then((()=>e.promise))}enqueueRetryable(t){this.enqueueAndForget((()=>(this.eu.push(t),this.cu())))}async cu(){if(0!==this.eu.length){try{await this.eu[0](),this.eu.shift(),this.jo.reset()}catch(t){if(!Us(t))throw t;jr("AsyncQueue","Operation failed with retryable error: "+t)}this.eu.length>0&&this.jo.qo((()=>this.cu()))}}uu(t){const e=this.Xa.then((()=>(this.iu=!0,t().catch((t=>{this.ru=t,this.iu=!1;const e=function(t){let e=t.message||"";return t.stack&&(e=t.stack.includes(t.message)?t.stack:t.message+"\n"+t.stack),e}(t);throw Kr("INTERNAL UNHANDLED ERROR: ",e),t})).then((t=>(this.iu=!1,t))))));return this.Xa=e,e}enqueueAfterDelay(t,e,n){this.au(),this.ou.indexOf(t)>-1&&(e=0);const r=_d.createAndSchedule(this,t,e,n,(t=>this.lu(t)));return this.nu.push(r),r}au(){this.ru&&Hr()}verifyOperationInProgress(){}async hu(){let t;do{t=this.Xa,await t}while(t!==this.Xa)}Pu(t){for(const e of this.nu)if(e.timerId===t)return!0;return!1}Iu(t){return this.hu().then((()=>{this.nu.sort(((t,e)=>t.targetTimeMs-e.targetTimeMs));for(const e of this.nu)if(e.skipDelay(),"all"!==t&&e.timerId===t)break;return this.hu()}))}Tu(t){this.ou.push(t)}lu(t){const e=this.nu.indexOf(t);this.nu.splice(e,1)}}function lg(t){return function(t,e){if("object"!=typeof t||null===t)return!1;const n=t;for(const t of e)if(t in n&&"function"==typeof n[t])return!0;return!1}(t,["next","error","complete"])}class hg{constructor(){this._progressObserver={},this._taskCompletionResolver=new ts,this._lastProgress={taskState:"Running",totalBytes:0,totalDocuments:0,bytesLoaded:0,documentsLoaded:0}}onProgress(t,e,n){this._progressObserver={next:t,error:e,complete:n}}catch(t){return this._taskCompletionResolver.promise.catch(t)}then(t,e){return this._taskCompletionResolver.promise.then(t,e)}_completeWith(t){this._updateProgress(t),this._progressObserver.complete&&this._progressObserver.complete(),this._taskCompletionResolver.resolve(t)}_failWith(t){this._lastProgress.taskState="Error",this._progressObserver.next&&this._progressObserver.next(this._lastProgress),this._progressObserver.error&&this._progressObserver.error(t),this._taskCompletionResolver.reject(t)}_updateProgress(t){this._lastProgress=t,this._progressObserver.next&&this._progressObserver.next(t)}}const dg=-1;class fg extends Zf{constructor(t,e,n,r){super(t,e,n,r),this.type="firestore",this._queue=new cg,this._persistenceKey=(null==r?void 0:r.name)||"[DEFAULT]"}_terminate(){return this._firestoreClient||yg(this),this._firestoreClient.terminate()}}function gg(t,e,n){n||(n="(default)");const r=i._getProvider(t,"firestore");if(r.isInitialized(n)){const t=r.getImmediate({identifier:n});if(y(r.getOptions(n),e))return t;throw new Zr(Jr.FAILED_PRECONDITION,"initializeFirestore() has already been called with different options. To avoid this error, call initializeFirestore() with the same options as when it was originally called, or call getFirestore() to return the already initialized instance.")}if(void 0!==e.cacheSizeBytes&&void 0!==e.localCache)throw new Zr(Jr.INVALID_ARGUMENT,"cache and cacheSizeBytes cannot be specified at the same time as cacheSizeBytes willbe deprecated. Instead, specify the cache size in the cache object");if(void 0!==e.cacheSizeBytes&&-1!==e.cacheSizeBytes&&e.cacheSizeBytes<1048576)throw new Zr(Jr.INVALID_ARGUMENT,"cacheSizeBytes must be at least 1048576");return r.initialize({options:e,instanceIdentifier:n})}function mg(t,e){const n="object"==typeof t?t:i.getApp(),r="string"==typeof t?t:e||"(default)",s=i._getProvider(n,"firestore").getImmediate({identifier:r});if(!s._initialized){const t=(t=>{const e=(t=>{var e,n;return null===(n=null===(e=h())||void 0===e?void 0:e.emulatorHosts)||void 0===n?void 0:n[t]})(t);if(!e)return;const n=e.lastIndexOf(":");if(n<=0||n+1===e.length)throw new Error(`Invalid host ${e} with no separate hostname and port!`);const r=parseInt(e.substring(n+1),10);return"["===e[0]?[e.substring(1,n-1),r]:[e.substring(0,n),r]})("firestore");t&&tg(s,...t)}return s}function pg(t){return t._firestoreClient||yg(t),t._firestoreClient.verifyNotTerminated(),t._firestoreClient}function yg(t){var e,n,r;const s=t._freezeSettings(),i=function(t,e,n,r){return new Qi(t,e,n,r.host,r.ssl,r.experimentalForceLongPolling,r.experimentalAutoDetectLongPolling,Gf(r.experimentalLongPollingOptions),r.useFetchStreams)}(t._databaseId,(null===(e=t._app)||void 0===e?void 0:e.options.appId)||"",t._persistenceKey,s);t._firestoreClient=new Af(t._authCredentials,t._appCheckCredentials,t._queue,i),(null===(n=s.localCache)||void 0===n?void 0:n._offlineComponentProvider)&&(null===(r=s.localCache)||void 0===r?void 0:r._onlineComponentProvider)&&(t._firestoreClient._uninitializedComponentsProvider={_offlineKind:s.localCache.kind,_offline:s.localCache._offlineComponentProvider,_online:s.localCache._onlineComponentProvider})}function wg(t,e){Dg(t=Yf(t,fg));const n=pg(t);if(n._uninitializedComponentsProvider)throw new Zr(Jr.FAILED_PRECONDITION,"SDK cache is already specified.");$r("enableIndexedDbPersistence() will be deprecated in the future, you can use `FirestoreSettings.cache` instead.");const r=t._freezeSettings(),s=new Ef;return bg(n,s,new _f(s,r.cacheSizeBytes,null==e?void 0:e.forceOwnership))}function vg(t){Dg(t=Yf(t,fg));const e=pg(t);if(e._uninitializedComponentsProvider)throw new Zr(Jr.FAILED_PRECONDITION,"SDK cache is already specified.");$r("enableMultiTabIndexedDbPersistence() will be deprecated in the future, you can use `FirestoreSettings.cache` instead.");const n=t._freezeSettings(),r=new Ef;return bg(e,r,new If(r,n.cacheSizeBytes))}function bg(t,e,n){const r=new ts;return t.asyncQueue.enqueue((async()=>{try{await Nf(t,n),await kf(t,e),r.resolve()}catch(t){const e=t;if(!Rf(e))throw e;$r("Error enabling indexeddb cache. Falling back to memory cache: "+e),r.reject(e)}})).then((()=>r.promise))}function _g(t){if(t._initialized&&!t._terminated)throw new Zr(Jr.FAILED_PRECONDITION,"Persistence can only be cleared before a Firestore instance is initialized or after it is terminated.");const e=new ts;return t._queue.enqueueAndForgetEvenWhileRestricted((async()=>{try{await async function(t){if(!Vs.D())return Promise.resolve();const e=t+"main";await Vs.delete(e)}(nh(t._databaseId,t._persistenceKey)),e.resolve()}catch(t){e.reject(t)}})),e.promise}function Ig(t){return function(t){const e=new ts;return t.asyncQueue.enqueueAndForget((async()=>async function(t,e){const n=Xr(t);ed(n.remoteStore)||jr("SyncEngine","The network is disabled. The task returned by 'awaitPendingWrites()' will not complete until the network is enabled.");try{const t=await function(t){const e=Xr(t);return e.persistence.runTransaction("Get highest unacknowledged batch id","readonly",(t=>e.mutationQueue.getHighestUnacknowledgedBatchId(t)))}(n.localStore);if(-1===t)return void e.resolve();const r=n.Ca.get(t)||[];r.push(e),n.Ca.set(t,r)}catch(t){const n=Id(t,"Initialization of waitForPendingWrites() operation failed");e.reject(n)}}(await Vf(t),e))),e.promise}(pg(t=Yf(t,fg)))}function Eg(t){return function(t){return t.asyncQueue.enqueue((async()=>{const e=await Of(t),n=await Ff(t);return e.setNetworkEnabled(!0),function(t){const e=Xr(t);return e.v_.delete(0),Qh(e)}(n)}))}(pg(t=Yf(t,fg)))}function Tg(t){return function(t){return t.asyncQueue.enqueue((async()=>{const e=await Of(t),n=await Ff(t);return e.setNetworkEnabled(!1),async function(t){const e=Xr(t);e.v_.add(0),await Hh(e),e.x_.set("Offline")}(n)}))}(pg(t=Yf(t,fg)))}function Sg(t){return i._removeServiceInstance(t.app,"firestore",t._databaseId.database),t._delete()}function xg(t,e){const n=pg(t=Yf(t,fg)),r=new hg;return function(t,e,n,r){const s=function(t,e){let n;return n="string"==typeof t?wu().encode(t):t,function(t,e){return new xf(t,e)}(function(t,e){if(t instanceof Uint8Array)return Tf(t,e);if(t instanceof ArrayBuffer)return Tf(new Uint8Array(t),e);if(t instanceof ReadableStream)return t.getReader();throw new Error("Source of `toByteStreamReader` has to be a ArrayBuffer or ReadableStream")}(n),e)}(n,qh(e));t.asyncQueue.enqueueAndForget((async()=>{!function(t,e,n){const r=Xr(t);(async function(t,e,n){try{const r=await e.getMetadata();if(await function(t,e){const n=Xr(t),r=Uu(e.createTime);return n.persistence.runTransaction("hasNewerBundle","readonly",(t=>n.$r.getBundleMetadata(t,e.id))).then((t=>!!t&&t.createTime.compareTo(r)>=0))}(t.localStore,r))return await e.close(),n._completeWith(function(t){return{taskState:"Success",documentsLoaded:t.totalDocuments,bytesLoaded:t.totalBytes,totalDocuments:t.totalDocuments,totalBytes:t.totalBytes}}(r)),Promise.resolve(new Set);n._updateProgress(Fd(r));const s=new Pd(r,t.localStore,e.serializer);let i=await e.Oa();for(;i;){const t=await s.na(i);t&&n._updateProgress(t),i=await e.Oa()}const o=await s.complete();return await of(t,o.sa,void 0),await function(t,e){const n=Xr(t);return n.persistence.runTransaction("Save bundle","readwrite",(t=>n.$r.saveBundleMetadata(t,e)))}(t.localStore,r),n._completeWith(o.progress),Promise.resolve(o.ia)}catch(t){return $r("SyncEngine",`Loading bundle failed with ${t}`),n._failWith(t),Promise.resolve(new Set)}})(r,e,n).then((t=>{r.sharedClientState.notifyBundleLoaded(t)}))}(await Vf(t),s,r)}))}(n,t._databaseId,e,r),r}function Cg(t,e){return function(t,e){return t.asyncQueue.enqueue((async()=>function(t,e){const n=Xr(t);return n.persistence.runTransaction("Get named query","readonly",(t=>n.$r.getNamedQuery(t,e)))}(await Pf(t),e)))}(pg(t=Yf(t,fg)),e).then((e=>e?new eg(t,null,e.query):null))}function Dg(t){if(t._initialized||t._terminated)throw new Zr(Jr.FAILED_PRECONDITION,"Firestore has already been started and persistence can no longer be enabled. You can only enable persistence before calling any other methods on a Firestore object.")}class Ag{constructor(t="count",e){this._internalFieldPath=e,this.type="AggregateField",this.aggregateType=t}}class Ng{constructor(t,e,n){this._userDataWriter=e,this._data=n,this.type="AggregateQuerySnapshot",this.query=t}data(){return this._userDataWriter.convertObjectMap(this._data)}}class kg{constructor(t){this._byteString=t}static fromBase64String(t){try{return new kg(qi.fromBase64String(t))}catch(t){throw new Zr(Jr.INVALID_ARGUMENT,"Failed to construct data from Base64 string: "+t)}}static fromUint8Array(t){return new kg(qi.fromUint8Array(t))}toBase64(){return this._byteString.toBase64()}toUint8Array(){return this._byteString.toUint8Array()}toString(){return"Bytes(base64: "+this.toBase64()+")"}isEqual(t){return this._byteString.isEqual(t._byteString)}}class Rg{constructor(...t){for(let e=0;e90)throw new Zr(Jr.INVALID_ARGUMENT,"Latitude must be a number between -90 and 90, but was: "+t);if(!isFinite(e)||e<-180||e>180)throw new Zr(Jr.INVALID_ARGUMENT,"Longitude must be a number between -180 and 180, but was: "+e);this._lat=t,this._long=e}get latitude(){return this._lat}get longitude(){return this._long}isEqual(t){return this._lat===t._lat&&this._long===t._long}toJSON(){return{latitude:this._lat,longitude:this._long}}_compareTo(t){return ds(this._lat,t._lat)||ds(this._long,t._long)}}const Pg=/^__.*__$/;class Fg{constructor(t,e,n){this.data=t,this.fieldMask=e,this.fieldTransforms=n}toMutation(t,e){return null!==this.fieldMask?new nu(t,this.data,this.fieldMask,e,this.fieldTransforms):new eu(t,this.data,e,this.fieldTransforms)}}class Vg{constructor(t,e,n){this.data=t,this.fieldMask=e,this.fieldTransforms=n}toMutation(t,e){return new nu(t,this.data,this.fieldMask,e,this.fieldTransforms)}}function qg(t){switch(t){case 0:case 2:case 1:return!0;case 3:case 4:return!1;default:throw Hr()}}class Bg{constructor(t,e,n,r,s,i){this.settings=t,this.databaseId=e,this.serializer=n,this.ignoreUndefinedProperties=r,void 0===s&&this.Eu(),this.fieldTransforms=s||[],this.fieldMask=i||[]}get path(){return this.settings.path}get du(){return this.settings.du}Au(t){return new Bg(Object.assign(Object.assign({},this.settings),t),this.databaseId,this.serializer,this.ignoreUndefinedProperties,this.fieldTransforms,this.fieldMask)}Ru(t){var e;const n=null===(e=this.path)||void 0===e?void 0:e.child(t),r=this.Au({path:n,Vu:!1});return r.mu(t),r}fu(t){var e;const n=null===(e=this.path)||void 0===e?void 0:e.child(t),r=this.Au({path:n,Vu:!1});return r.Eu(),r}gu(t){return this.Au({path:void 0,Vu:!0})}pu(t){return om(t,this.settings.methodName,this.settings.yu||!1,this.path,this.settings.wu)}contains(t){return void 0!==this.fieldMask.find((e=>t.isPrefixOf(e)))||void 0!==this.fieldTransforms.find((e=>t.isPrefixOf(e.field)))}Eu(){if(this.path)for(let t=0;tu.covers(t.field)))}else u=null,c=o.fieldTransforms;return new Fg(new wo(a),u,c)}class jg extends Lg{_toFieldTransform(t){if(2!==t.du)throw 1===t.du?t.pu(`${this._methodName}() can only appear at the top level of your update data`):t.pu(`${this._methodName}() cannot be used with set() unless you pass {merge:true}`);return t.fieldMask.push(t.path),null}isEqual(t){return t instanceof jg}}function Kg(t,e,n){return new Bg({du:3,wu:e.settings.wu,methodName:t._methodName,Vu:n},e.databaseId,e.serializer,e.ignoreUndefinedProperties)}class $g extends Lg{_toFieldTransform(t){return new Ka(t.path,new Fa)}isEqual(t){return t instanceof $g}}class Qg extends Lg{constructor(t,e){super(t),this.bu=e}_toFieldTransform(t){const e=Kg(this,t,!0),n=this.bu.map((t=>Zg(t,e))),r=new Va(n);return new Ka(t.path,r)}isEqual(t){return t instanceof Qg&&y(this.bu,t.bu)}}class Hg extends Lg{constructor(t,e){super(t),this.bu=e}_toFieldTransform(t){const e=Kg(this,t,!0),n=this.bu.map((t=>Zg(t,e))),r=new Ba(n);return new Ka(t.path,r)}isEqual(t){return t instanceof Hg&&y(this.bu,t.bu)}}class Wg extends Lg{constructor(t,e){super(t),this.Du=e}_toFieldTransform(t){const e=new za(t.serializer,Ra(t.serializer,this.Du));return new Ka(t.path,e)}isEqual(t){return t instanceof Wg&&this.Du===t.Du}}function Yg(t,e,n,r){const s=t.Su(1,e,n);nm("Data must be an object, but it was:",s,r);const i=[],o=wo.empty();Di(r,((t,r)=>{const a=im(e,t,n);r=v(r);const u=s.fu(a);if(r instanceof jg)i.push(a);else{const t=Zg(r,u);null!=t&&(i.push(a),o.set(a,t))}}));const a=new Pi(i);return new Vg(o,a,s.fieldTransforms)}function Xg(t,e,n,r,s,i){const o=t.Su(1,e,n),a=[rm(e,r,n)],u=[s];if(i.length%2!=0)throw new Zr(Jr.INVALID_ARGUMENT,`Function ${e}() needs to be called with an even number of arguments that alternate between field names and values.`);for(let t=0;t=0;--t)if(!am(c,a[t])){const e=a[t];let n=u[t];n=v(n);const r=o.fu(e);if(n instanceof jg)c.push(e);else{const t=Zg(n,r);null!=t&&(c.push(e),l.set(e,t))}}const h=new Pi(c);return new Vg(l,h,o.fieldTransforms)}function Jg(t,e,n,r=!1){return Zg(n,t.Su(r?4:3,e))}function Zg(t,e){if(em(t=v(t)))return nm("Unsupported field value:",e,t),tm(t,e);if(t instanceof Lg)return function(t,e){if(!qg(e.du))throw e.pu(`${t._methodName}() can only be used with update() and set()`);if(!e.path)throw e.pu(`${t._methodName}() is not currently supported inside arrays`);const n=t._toFieldTransform(e);n&&e.fieldTransforms.push(n)}(t,e),null;if(void 0===t&&e.ignoreUndefinedProperties)return null;if(e.path&&e.fieldMask.push(e.path),t instanceof Array){if(e.settings.Vu&&4!==e.du)throw e.pu("Nested arrays are not supported");return function(t,e){const n=[];let r=0;for(const s of t){let t=Zg(s,e.gu(r));null==t&&(t={nullValue:"NULL_VALUE"}),n.push(t),r++}return{arrayValue:{values:n}}}(t,e)}return function(t,e){if(null===(t=v(t)))return{nullValue:"NULL_VALUE"};if("number"==typeof t)return Ra(e.serializer,t);if("boolean"==typeof t)return{booleanValue:t};if("string"==typeof t)return{stringValue:t};if(t instanceof Date){const n=ms.fromDate(t);return{timestampValue:Vu(e.serializer,n)}}if(t instanceof ms){const n=new ms(t.seconds,1e3*Math.floor(t.nanoseconds/1e3));return{timestampValue:Vu(e.serializer,n)}}if(t instanceof Og)return{geoPointValue:{latitude:t.latitude,longitude:t.longitude}};if(t instanceof kg)return{bytesValue:qu(e.serializer,t._byteString)};if(t instanceof ng){const n=e.databaseId,r=t.firestore._databaseId;if(!r.isEqual(n))throw e.pu(`Document reference is for database ${r.projectId}/${r.database} but should be for database ${n.projectId}/${n.database}`);return{referenceValue:zu(t.firestore._databaseId||e.databaseId,t._key.path)}}throw e.pu(`Unsupported field value: ${Wf(t)}`)}(t,e)}function tm(t,e){const n={};return Ai(t)?e.path&&e.path.length>0&&e.fieldMask.push(e.path):Di(t,((t,r)=>{const s=Zg(r,e.Ru(t));null!=s&&(n[t]=s)})),{mapValue:{fields:n}}}function em(t){return!("object"!=typeof t||null===t||t instanceof Array||t instanceof Date||t instanceof ms||t instanceof Og||t instanceof kg||t instanceof ng||t instanceof Lg)}function nm(t,e,n){if(!em(n)||!function(t){return"object"==typeof t&&null!==t&&(Object.getPrototypeOf(t)===Object.prototype||null===Object.getPrototypeOf(t))}(n)){const r=Wf(n);throw"an object"===r?e.pu(t+" a custom object"):e.pu(t+" "+r)}}function rm(t,e,n){if((e=v(e))instanceof Rg)return e._internalPath;if("string"==typeof e)return im(t,e);throw om("Field path arguments must be of type string or ",t,!1,void 0,n)}const sm=new RegExp("[~\\*/\\[\\]]");function im(t,e,n){if(e.search(sm)>=0)throw om(`Invalid field path (${e}). Paths must not contain '~', '*', '/', '[', or ']'`,t,!1,void 0,n);try{return new Rg(...e.split("."))._internalPath}catch(r){throw om(`Invalid field path (${e}). Paths must not be empty, begin with '.', end with '.', or contain '..'`,t,!1,void 0,n)}}function om(t,e,n,r,s){const i=r&&!r.isEmpty(),o=void 0!==s;let a=`Function ${e}() called with invalid data`;n&&(a+=" (via `toFirestore()`)"),a+=". ";let u="";return(i||o)&&(u+=" (found",i&&(u+=` in field ${r}`),o&&(u+=` in document ${s}`),u+=")"),new Zr(Jr.INVALID_ARGUMENT,a+t+u)}function am(t,e){return t.some((t=>t.isEqual(e)))}class um{constructor(t,e,n,r,s){this._firestore=t,this._userDataWriter=e,this._key=n,this._document=r,this._converter=s}get id(){return this._key.path.lastSegment()}get ref(){return new ng(this._firestore,this._converter,this._key)}exists(){return null!==this._document}data(){if(this._document){if(this._converter){const t=new cm(this._firestore,this._userDataWriter,this._key,this._document,null);return this._converter.fromFirestore(t)}return this._userDataWriter.convertValue(this._document.data.value)}}get(t){if(this._document){const e=this._document.data.field(lm("DocumentSnapshot.get",t));if(null!==e)return this._userDataWriter.convertValue(e)}}}class cm extends um{data(){return super.data()}}function lm(t,e){return"string"==typeof e?im(t,e):e instanceof Rg?e._internalPath:e._delegate._internalPath}function hm(t){if("L"===t.limitType&&0===t.explicitOrderBy.length)throw new Zr(Jr.UNIMPLEMENTED,"limitToLast() queries require specifying at least one orderBy() clause")}class dm{}class fm extends dm{}function gm(t,e,...n){let r=[];e instanceof dm&&r.push(e),r=r.concat(n),function(t){const e=t.filter((t=>t instanceof ym)).length,n=t.filter((t=>t instanceof mm)).length;if(e>1||e>0&&n>0)throw new Zr(Jr.INVALID_ARGUMENT,"InvalidQuery. When using composite filters, you cannot use more than one filter at the top level. Consider nesting the multiple filters within an `and(...)` statement. For example: change `query(query, where(...), or(...))` to `query(query, and(where(...), or(...)))`.")}(r);for(const e of r)t=e._apply(t);return t}class mm extends fm{constructor(t,e,n){super(),this._field=t,this._op=e,this._value=n,this.type="where"}static _create(t,e,n){return new mm(t,e,n)}_apply(t){const e=this._parse(t);return Lm(t._query,e),new eg(t.firestore,t.converter,aa(t._query,e))}_parse(t){const e=zg(t.firestore),n=function(t,e,n,r,s,i,o){let a;if(s.isKeyField()){if("array-contains"===i||"array-contains-any"===i)throw new Zr(Jr.INVALID_ARGUMENT,`Invalid Query. You can't perform '${i}' queries on documentId().`);if("in"===i||"not-in"===i){Mm(o,i);const e=[];for(const n of o)e.push(Rm(r,t,n));a={arrayValue:{values:e}}}else a=Rm(r,t,o)}else"in"!==i&&"not-in"!==i&&"array-contains-any"!==i||Mm(o,i),a=Jg(n,e,o,"in"===i||"not-in"===i);return Co.create(s,i,a)}(t._query,"where",e,t.firestore._databaseId,this._field,this._op,this._value);return n}}function pm(t,e,n){const r=e,s=lm("where",t);return mm._create(s,r,n)}class ym extends dm{constructor(t,e){super(),this.type=t,this._queryConstraints=e}static _create(t,e){return new ym(t,e)}_parse(t){const e=this._queryConstraints.map((e=>e._parse(t))).filter((t=>t.getFilters().length>0));return 1===e.length?e[0]:Do.create(e,this._getOperator())}_apply(t){const e=this._parse(t);return 0===e.getFilters().length?t:(function(t,e){let n=t;const r=e.getFlattenedFilters();for(const t of r)Lm(n,t),n=aa(n,t)}(t._query,e),new eg(t.firestore,t.converter,aa(t._query,e)))}_getQueryConstraints(){return this._queryConstraints}_getOperator(){return"and"===this.type?"and":"or"}}function wm(...t){return t.forEach((t=>Om("or",t))),ym._create("or",t)}function vm(...t){return t.forEach((t=>Om("and",t))),ym._create("and",t)}class bm extends fm{constructor(t,e){super(),this._field=t,this._direction=e,this.type="orderBy"}static _create(t,e){return new bm(t,e)}_apply(t){const e=function(t,e,n){if(null!==t.startAt)throw new Zr(Jr.INVALID_ARGUMENT,"Invalid query. You must not call startAt() or startAfter() before calling orderBy().");if(null!==t.endAt)throw new Zr(Jr.INVALID_ARGUMENT,"Invalid query. You must not call endAt() or endBefore() before calling orderBy().");return new To(e,n)}(t._query,this._field,this._direction);return new eg(t.firestore,t.converter,function(t,e){const n=t.explicitOrderBy.concat([e]);return new Zo(t.path,t.collectionGroup,n,t.filters.slice(),t.limit,t.limitType,t.startAt,t.endAt)}(t._query,e))}}function _m(t,e="asc"){const n=e,r=lm("orderBy",t);return bm._create(r,n)}class Im extends fm{constructor(t,e,n){super(),this.type=t,this._limit=e,this._limitType=n}static _create(t,e,n){return new Im(t,e,n)}_apply(t){return new eg(t.firestore,t.converter,ua(t._query,this._limit,this._limitType))}}function Em(t){return Xf("limit",t),Im._create("limit",t,"F")}function Tm(t){return Xf("limitToLast",t),Im._create("limitToLast",t,"L")}class Sm extends fm{constructor(t,e,n){super(),this.type=t,this._docOrFields=e,this._inclusive=n}static _create(t,e,n){return new Sm(t,e,n)}_apply(t){const e=km(t,this.type,this._docOrFields,this._inclusive);return new eg(t.firestore,t.converter,function(t,e){return new Zo(t.path,t.collectionGroup,t.explicitOrderBy.slice(),t.filters.slice(),t.limit,t.limitType,e,t.endAt)}(t._query,e))}}function xm(...t){return Sm._create("startAt",t,!0)}function Cm(...t){return Sm._create("startAfter",t,!1)}class Dm extends fm{constructor(t,e,n){super(),this.type=t,this._docOrFields=e,this._inclusive=n}static _create(t,e,n){return new Dm(t,e,n)}_apply(t){const e=km(t,this.type,this._docOrFields,this._inclusive);return new eg(t.firestore,t.converter,function(t,e){return new Zo(t.path,t.collectionGroup,t.explicitOrderBy.slice(),t.filters.slice(),t.limit,t.limitType,t.startAt,e)}(t._query,e))}}function Am(...t){return Dm._create("endBefore",t,!1)}function Nm(...t){return Dm._create("endAt",t,!0)}function km(t,e,n,r){if(n[0]=v(n[0]),n[0]instanceof um)return function(t,e,n,r,s){if(!r)throw new Zr(Jr.NOT_FOUND,`Can't use a DocumentSnapshot that doesn't exist for ${n}().`);const i=[];for(const n of sa(t))if(n.field.isKeyField())i.push(io(e,r.key));else{const t=r.data.field(n.field);if(ji(t))throw new Zr(Jr.INVALID_ARGUMENT,'Invalid query. You are trying to start or end a query using a document for which the field "'+n.field+'" is an uncommitted server timestamp. (Since the value of this field is unknown, you cannot start/end a query with it.)');if(null===t){const t=n.field.canonicalString();throw new Zr(Jr.INVALID_ARGUMENT,`Invalid query. You are trying to start or end a query using a document for which the field '${t}' (used as the orderBy) does not exist.`)}i.push(t)}return new _o(i,s)}(t._query,t.firestore._databaseId,e,n[0]._document,r);{const s=zg(t.firestore);return function(t,e,n,r,s,i){const o=t.explicitOrderBy;if(s.length>o.length)throw new Zr(Jr.INVALID_ARGUMENT,`Too many arguments provided to ${r}(). The number of arguments must be less than or equal to the number of orderBy() clauses`);const a=[];for(let i=0;i=0)return t.op;return null}(t.filters,function(t){switch(t){case"!=":return["!=","not-in"];case"array-contains-any":case"in":return["not-in"];case"not-in":return["array-contains-any","in","not-in","!="];default:return[]}}(e.op));if(null!==n)throw n===e.op?new Zr(Jr.INVALID_ARGUMENT,`Invalid query. You cannot use more than one '${e.op.toString()}' filter.`):new Zr(Jr.INVALID_ARGUMENT,`Invalid query. You cannot use '${e.op.toString()}' filters with '${n.toString()}' filters.`)}function Om(t,e){if(!(e instanceof mm||e instanceof ym))throw new Zr(Jr.INVALID_ARGUMENT,`Function ${t}() requires AppliableConstraints created with a call to 'where(...)', 'or(...)', or 'and(...)'.`)}class Pm{convertValue(t,e="none"){switch(Xi(t)){case 0:return null;case 1:return t.booleanValue;case 2:return zi(t.integerValue||t.doubleValue);case 3:return this.convertTimestamp(t.timestampValue);case 4:return this.convertServerTimestamp(t,e);case 5:return t.stringValue;case 6:return this.convertBytes(Gi(t.bytesValue));case 7:return this.convertReference(t.referenceValue);case 8:return this.convertGeoPoint(t.geoPointValue);case 9:return this.convertArray(t.arrayValue,e);case 10:return this.convertObject(t.mapValue,e);default:throw Hr()}}convertObject(t,e){return this.convertObjectMap(t.fields,e)}convertObjectMap(t,e="none"){const n={};return Di(t,((t,r)=>{n[t]=this.convertValue(r,e)})),n}convertGeoPoint(t){return new Og(zi(t.latitude),zi(t.longitude))}convertArray(t,e){return(t.values||[]).map((t=>this.convertValue(t,e)))}convertServerTimestamp(t,e){switch(e){case"previous":const n=Ki(t);return null==n?null:this.convertValue(n,e);case"estimate":return this.convertTimestamp($i(t));default:return null}}convertTimestamp(t){const e=Ui(t);return new ms(e.seconds,e.nanos)}convertDocumentKey(t,e){const n=ws.fromString(t);Wr(dc(n));const r=new Hi(n.get(1),n.get(3)),s=new _s(n.popFirst(5));return r.isEqual(e)||Kr(`Document ${s} contains a document reference within a different database (${r.projectId}/${r.database}) which is not supported. It will be treated as a reference in the current database (${e.projectId}/${e.database}) instead.`),s}}function Fm(t,e,n){let r;return r=t?n&&(n.merge||n.mergeFields)?t.toFirestore(e,n):t.toFirestore(e):e,r}class Vm extends Pm{constructor(t){super(),this.firestore=t}convertBytes(t){return new kg(t)}convertReference(t){const e=this.convertDocumentKey(t,this.firestore._databaseId);return new ng(this.firestore,null,e)}}function qm(t){return new Ag("sum",rm("sum",t))}function Bm(t){return new Ag("avg",rm("average",t))}function Um(){return new Ag("count")}function zm(t,e){var n,r;return t instanceof Ag&&e instanceof Ag&&t.aggregateType===e.aggregateType&&(null===(n=t._internalFieldPath)||void 0===n?void 0:n.canonicalString())===(null===(r=e._internalFieldPath)||void 0===r?void 0:r.canonicalString())}function Gm(t,e){return ug(t.query,e.query)&&y(t.data(),e.data())}class jm{constructor(t,e){this.hasPendingWrites=t,this.fromCache=e}isEqual(t){return this.hasPendingWrites===t.hasPendingWrites&&this.fromCache===t.fromCache}}class Km extends um{constructor(t,e,n,r,s,i){super(t,e,n,r,i),this._firestore=t,this._firestoreImpl=t,this.metadata=s}exists(){return super.exists()}data(t={}){if(this._document){if(this._converter){const e=new $m(this._firestore,this._userDataWriter,this._key,this._document,this.metadata,null);return this._converter.fromFirestore(e,t)}return this._userDataWriter.convertValue(this._document.data.value,t.serverTimestamps)}}get(t,e={}){if(this._document){const n=this._document.data.field(lm("DocumentSnapshot.get",t));if(null!==n)return this._userDataWriter.convertValue(n,e.serverTimestamps)}}}class $m extends Km{data(t={}){return super.data(t)}}class Qm{constructor(t,e,n,r){this._firestore=t,this._userDataWriter=e,this._snapshot=r,this.metadata=new jm(r.hasPendingWrites,r.fromCache),this.query=n}get docs(){const t=[];return this.forEach((e=>t.push(e))),t}get size(){return this._snapshot.docs.size}get empty(){return 0===this.size}forEach(t,e){this._snapshot.docs.forEach((n=>{t.call(e,new $m(this._firestore,this._userDataWriter,n.key,n,new jm(this._snapshot.mutatedKeys.has(n.key),this._snapshot.fromCache),this.query.converter))}))}docChanges(t={}){const e=!!t.includeMetadataChanges;if(e&&this._snapshot.excludesMetadataChanges)throw new Zr(Jr.INVALID_ARGUMENT,"To include metadata changes with your document changes, you must also pass { includeMetadataChanges:true } to onSnapshot().");return this._cachedChanges&&this._cachedChangesIncludeMetadataChanges===e||(this._cachedChanges=function(t,e){if(t._snapshot.oldDocs.isEmpty()){let e=0;return t._snapshot.docChanges.map((n=>{const r=new $m(t._firestore,t._userDataWriter,n.doc.key,n.doc,new jm(t._snapshot.mutatedKeys.has(n.doc.key),t._snapshot.fromCache),t.query.converter);return n.doc,{type:"added",doc:r,oldIndex:-1,newIndex:e++}}))}{let n=t._snapshot.oldDocs;return t._snapshot.docChanges.filter((t=>e||3!==t.type)).map((e=>{const r=new $m(t._firestore,t._userDataWriter,e.doc.key,e.doc,new jm(t._snapshot.mutatedKeys.has(e.doc.key),t._snapshot.fromCache),t.query.converter);let s=-1,i=-1;return 0!==e.type&&(s=n.indexOf(e.doc.key),n=n.delete(e.doc.key)),1!==e.type&&(n=n.add(e.doc),i=n.indexOf(e.doc.key)),{type:Hm(e.type),doc:r,oldIndex:s,newIndex:i}}))}}(this,e),this._cachedChangesIncludeMetadataChanges=e),this._cachedChanges}}function Hm(t){switch(t){case 0:return"added";case 2:case 3:return"modified";case 1:return"removed";default:return Hr()}}function Wm(t,e){return t instanceof Km&&e instanceof Km?t._firestore===e._firestore&&t._key.isEqual(e._key)&&(null===t._document?null===e._document:t._document.isEqual(e._document))&&t._converter===e._converter:t instanceof Qm&&e instanceof Qm&&t._firestore===e._firestore&&ug(t.query,e.query)&&t.metadata.isEqual(e.metadata)&&t._snapshot.isEqual(e._snapshot)}function Ym(t){t=Yf(t,ng);const e=Yf(t.firestore,fg);return Uf(pg(e),t._key).then((n=>lp(e,t,n)))}class Xm extends Pm{constructor(t){super(),this.firestore=t}convertBytes(t){return new kg(t)}convertReference(t){const e=this.convertDocumentKey(t,this.firestore._databaseId);return new ng(this.firestore,null,e)}}function Jm(t){t=Yf(t,ng);const e=Yf(t.firestore,fg),n=pg(e),r=new Xm(e);return function(t,e){const n=new ts;return t.asyncQueue.enqueueAndForget((async()=>async function(t,e,n){try{const r=await function(t,e){const n=Xr(t);return n.persistence.runTransaction("read document","readonly",(t=>n.localDocuments.getDocument(t,e)))}(t,e);r.isFoundDocument()?n.resolve(r):r.isNoDocument()?n.resolve(null):n.reject(new Zr(Jr.UNAVAILABLE,"Failed to get document from cache. (However, this document may exist on the server. Run again without setting 'source' in the GetOptions to attempt to retrieve the document from the server.)"))}catch(t){const r=Id(t,`Failed to get document '${e} from cache`);n.reject(r)}}(await Pf(t),e,n))),n.promise}(n,t._key).then((n=>new Km(e,r,t._key,n,new jm(null!==n&&n.hasLocalMutations,!0),t.converter)))}function Zm(t){t=Yf(t,ng);const e=Yf(t.firestore,fg);return Uf(pg(e),t._key,{source:"server"}).then((n=>lp(e,t,n)))}function tp(t){t=Yf(t,eg);const e=Yf(t.firestore,fg),n=pg(e),r=new Xm(e);return hm(t._query),zf(n,t._query).then((n=>new Qm(e,r,t,n)))}function ep(t){t=Yf(t,eg);const e=Yf(t.firestore,fg),n=pg(e),r=new Xm(e);return function(t,e){const n=new ts;return t.asyncQueue.enqueueAndForget((async()=>async function(t,e,n){try{const r=await gh(t,e,!0),s=new Bd(e,r.hs),i=s.ha(r.documents),o=s.applyChanges(i,!1);n.resolve(o.snapshot)}catch(t){const r=Id(t,`Failed to execute query '${e} against cache`);n.reject(r)}}(await Pf(t),e,n))),n.promise}(n,t._query).then((n=>new Qm(e,r,t,n)))}function np(t){t=Yf(t,eg);const e=Yf(t.firestore,fg),n=pg(e),r=new Xm(e);return zf(n,t._query,{source:"server"}).then((n=>new Qm(e,r,t,n)))}function rp(t,e,n){t=Yf(t,ng);const r=Yf(t.firestore,fg),s=Fm(t.converter,e,n);return cp(r,[Gg(zg(r),"setDoc",t._key,s,null!==t.converter,n).toMutation(t._key,Qa.none())])}function sp(t,e,n,...r){t=Yf(t,ng);const s=Yf(t.firestore,fg),i=zg(s);let o;return o="string"==typeof(e=v(e))||e instanceof Rg?Xg(i,"updateDoc",t._key,e,n,r):Yg(i,"updateDoc",t._key,e),cp(s,[o.toMutation(t._key,Qa.exists(!0))])}function ip(t){return cp(Yf(t.firestore,fg),[new ou(t._key,Qa.none())])}function op(t,e){const n=Yf(t.firestore,fg),r=og(t),s=Fm(t.converter,e);return cp(n,[Gg(zg(t.firestore),"addDoc",r._key,s,null!==t.converter,{}).toMutation(r._key,Qa.exists(!1))]).then((()=>r))}function ap(t,...e){var n,r,s;t=v(t);let i={includeMetadataChanges:!1},o=0;"object"!=typeof e[o]||lg(e[o])||(i=e[o],o++);const a={includeMetadataChanges:i.includeMetadataChanges};if(lg(e[o])){const t=e[o];e[o]=null===(n=t.next)||void 0===n?void 0:n.bind(t),e[o+1]=null===(r=t.error)||void 0===r?void 0:r.bind(t),e[o+2]=null===(s=t.complete)||void 0===s?void 0:s.bind(t)}let u,c,l;if(t instanceof ng)c=Yf(t.firestore,fg),l=ea(t._key.path),u={next:n=>{e[o]&&e[o](lp(c,t,n))},error:e[o+1],complete:e[o+2]};else{const n=Yf(t,eg);c=Yf(n.firestore,fg),l=n._query;const r=new Xm(c);u={next:t=>{e[o]&&e[o](new Qm(c,r,n,t))},error:e[o+1],complete:e[o+2]},hm(t._query)}return function(t,e,n,r){const s=new Sf(r),i=new Md(e,s,n);return t.asyncQueue.enqueueAndForget((async()=>Dd(await Bf(t),i))),()=>{s.La(),t.asyncQueue.enqueueAndForget((async()=>Ad(await Bf(t),i)))}}(pg(c),l,a,u)}function up(t,e){return function(t,e){const n=new Sf(e);return t.asyncQueue.enqueueAndForget((async()=>function(t,e){Xr(t).K_.add(e),e.next()}(await Bf(t),n))),()=>{n.La(),t.asyncQueue.enqueueAndForget((async()=>function(t,e){Xr(t).K_.delete(e)}(await Bf(t),n)))}}(pg(t=Yf(t,fg)),lg(e)?e:{next:e})}function cp(t,e){return function(t,e){const n=new ts;return t.asyncQueue.enqueueAndForget((async()=>async function(t,e,n){const r=wf(t);try{const t=await function(t,e){const n=Xr(t),r=ms.now(),s=e.reduce(((t,e)=>t.add(e.key)),Ca());let i,o;return n.persistence.runTransaction("Locally write mutations","readwrite",(t=>{let a=wa(),u=Ca();return n.os.getEntries(t,s).next((t=>{a=t,a.forEach(((t,e)=>{e.isValidDocument()||(u=u.add(t))}))})).next((()=>n.localDocuments.getOverlayedDocuments(t,a))).next((s=>{i=s;const o=[];for(const t of e){const e=Za(t,i.get(t.key).overlayedDocument);null!=e&&o.push(new nu(t.key,e,vo(e.value.mapValue),Qa.exists(!0)))}return n.mutationQueue.addMutationBatch(t,r,o,e)})).next((e=>{o=e;const r=e.applyToLocalDocumentSet(i,u);return n.documentOverlayCache.saveOverlays(t,e.batchId,r)}))})).then((()=>({batchId:o.batchId,changes:_a(i)})))}(r.localStore,e);r.sharedClientState.addPendingMutation(t.batchId),function(t,e,n){let r=t.Da[t.currentUser.toKey()];r||(r=new Ni(ds)),r=r.insert(e,n),t.Da[t.currentUser.toKey()]=r}(r,t.batchId,n),await of(r,t.changes),await ud(r.remoteStore)}catch(t){const e=Id(t,"Failed to persist write");n.reject(e)}}(await Vf(t),e,n))),n.promise}(pg(t),e)}function lp(t,e,n){const r=n.docs.get(e._key),s=new Xm(t);return new Km(t,s,e._key,r,new jm(n.hasPendingWrites,n.fromCache),e.converter)}function hp(t){return dp(t,{count:Um()})}function dp(t,e){const n=Yf(t.firestore,fg),r=pg(n),s=function(t,e){const n=[];for(const r in t)Object.prototype.hasOwnProperty.call(t,r)&&n.push(e(t[r],r,t));return n}(e,((t,e)=>new hu(e,t.aggregateType,t._internalFieldPath)));return function(t,e,n){const r=new ts;return t.asyncQueue.enqueueAndForget((async()=>{try{const s=await qf(t);r.resolve(async function(t,e,n){var r;const s=Xr(t),{request:i,V_:o,parent:a}=function(t,e,n){const{ut:r,parent:s}=nc(t,e),i={},o=[];let a=0;return n.forEach((t=>{const e="aggregate_"+a++;i[e]=t.alias,"count"===t.aggregateType?o.push({alias:e,count:{}}):"avg"===t.aggregateType?o.push({alias:e,avg:{field:uc(t.fieldPath)}}):"sum"===t.aggregateType&&o.push({alias:e,sum:{field:uc(t.fieldPath)}})})),{request:{structuredAggregationQuery:{aggregations:o,structuredQuery:r.structuredQuery},parent:r.parent},V_:i,parent:s}}(s.serializer,function(t){const e=Xr(t);return e.Pe||(e.Pe=oa(e,t.explicitOrderBy)),e.Pe}(e),n);s.connection.wo||delete i.parent;const u=(await s.vo("RunAggregationQuery",s.serializer.databaseId,a,i,1)).filter((t=>!!t.result));Wr(1===u.length);const c=null===(r=u[0].result)||void 0===r?void 0:r.aggregateFields;return Object.keys(c).reduce(((t,e)=>(t[o[e]]=c[e],t)),{})}(s,e,n))}catch(t){r.reject(t)}})),r.promise}(r,t._query,s).then((e=>function(t,e,n){const r=new Xm(t);return new Ng(e,r,n)}(n,t,e)))}class fp{constructor(t){this.kind="memory",this._onlineComponentProvider=new Ef,(null==t?void 0:t.garbageCollector)?this._offlineComponentProvider=t.garbageCollector._offlineComponentProvider:this._offlineComponentProvider=new vf}toJSON(){return{kind:this.kind}}}class gp{constructor(t){let e;this.kind="persistent",(null==t?void 0:t.tabManager)?(t.tabManager._initialize(t),e=t.tabManager):(e=Ep(void 0),e._initialize(t)),this._onlineComponentProvider=e._onlineComponentProvider,this._offlineComponentProvider=e._offlineComponentProvider}toJSON(){return{kind:this.kind}}}class mp{constructor(){this.kind="memoryEager",this._offlineComponentProvider=new vf}toJSON(){return{kind:this.kind}}}class pp{constructor(t){this.kind="memoryLru",this._offlineComponentProvider=new bf(t)}toJSON(){return{kind:this.kind}}}function yp(){return new mp}function wp(t){return new pp(null==t?void 0:t.cacheSizeBytes)}function vp(t){return new fp(t)}function bp(t){return new gp(t)}class _p{constructor(t){this.forceOwnership=t,this.kind="persistentSingleTab"}toJSON(){return{kind:this.kind}}_initialize(t){this._onlineComponentProvider=new Ef,this._offlineComponentProvider=new _f(this._onlineComponentProvider,null==t?void 0:t.cacheSizeBytes,this.forceOwnership)}}class Ip{constructor(){this.kind="PersistentMultipleTab"}toJSON(){return{kind:this.kind}}_initialize(t){this._onlineComponentProvider=new Ef,this._offlineComponentProvider=new If(this._onlineComponentProvider,null==t?void 0:t.cacheSizeBytes)}}function Ep(t){return new _p(null==t?void 0:t.forceOwnership)}function Tp(){return new Ip}const Sp={maxAttempts:5};class xp{constructor(t,e){this._firestore=t,this._commitHandler=e,this._mutations=[],this._committed=!1,this._dataReader=zg(t)}set(t,e,n){this._verifyNotCommitted();const r=Cp(t,this._firestore),s=Fm(r.converter,e,n),i=Gg(this._dataReader,"WriteBatch.set",r._key,s,null!==r.converter,n);return this._mutations.push(i.toMutation(r._key,Qa.none())),this}update(t,e,n,...r){this._verifyNotCommitted();const s=Cp(t,this._firestore);let i;return i="string"==typeof(e=v(e))||e instanceof Rg?Xg(this._dataReader,"WriteBatch.update",s._key,e,n,r):Yg(this._dataReader,"WriteBatch.update",s._key,e),this._mutations.push(i.toMutation(s._key,Qa.exists(!0))),this}delete(t){this._verifyNotCommitted();const e=Cp(t,this._firestore);return this._mutations=this._mutations.concat(new ou(e._key,Qa.none())),this}commit(){return this._verifyNotCommitted(),this._committed=!0,this._mutations.length>0?this._commitHandler(this._mutations):Promise.resolve()}_verifyNotCommitted(){if(this._committed)throw new Zr(Jr.FAILED_PRECONDITION,"A write batch can no longer be used after commit() has been called.")}}function Cp(t,e){if((t=v(t)).firestore!==e)throw new Zr(Jr.INVALID_ARGUMENT,"Provided document reference is from a different Firestore instance.");return t}class Dp extends class{constructor(t,e){this._firestore=t,this._transaction=e,this._dataReader=zg(t)}get(t){const e=Cp(t,this._firestore),n=new Vm(this._firestore);return this._transaction.lookup([e._key]).then((t=>{if(!t||1!==t.length)return Hr();const r=t[0];if(r.isFoundDocument())return new um(this._firestore,n,r.key,r,e.converter);if(r.isNoDocument())return new um(this._firestore,n,e._key,null,e.converter);throw Hr()}))}set(t,e,n){const r=Cp(t,this._firestore),s=Fm(r.converter,e,n),i=Gg(this._dataReader,"Transaction.set",r._key,s,null!==r.converter,n);return this._transaction.set(r._key,i),this}update(t,e,n,...r){const s=Cp(t,this._firestore);let i;return i="string"==typeof(e=v(e))||e instanceof Rg?Xg(this._dataReader,"Transaction.update",s._key,e,n,r):Yg(this._dataReader,"Transaction.update",s._key,e),this._transaction.update(s._key,i),this}delete(t){const e=Cp(t,this._firestore);return this._transaction.delete(e._key),this}}{constructor(t,e){super(t,e),this._firestore=t}get(t){const e=Cp(t,this._firestore),n=new Xm(this._firestore);return super.get(t).then((t=>new Km(this._firestore,n,e._key,t._document,new jm(!1,!1),e.converter)))}}function Ap(t,e,n){t=Yf(t,fg);const r=Object.assign(Object.assign({},Sp),n);return function(t){if(t.maxAttempts<1)throw new Zr(Jr.INVALID_ARGUMENT,"Max attempts must be at least 1")}(r),function(t,e,n){const r=new ts;return t.asyncQueue.enqueueAndForget((async()=>{const s=await qf(t);new Df(t.asyncQueue,s,n,e,r).ja()})),r.promise}(pg(t),(n=>e(new Dp(t,n))),r)}function Np(){return new jg("deleteField")}function kp(){return new $g("serverTimestamp")}function Rp(...t){return new Qg("arrayUnion",t)}function Mp(...t){return new Hg("arrayRemove",t)}function Lp(t){return new Wg("increment",t)}function Op(t){return pg(t=Yf(t,fg)),new xp(t,(e=>cp(t,e)))}function Pp(t,e){var n;const r=pg(t=Yf(t,fg));if(!r._uninitializedComponentsProvider||"memory"===(null===(n=r._uninitializedComponentsProvider)||void 0===n?void 0:n._offlineKind))return $r("Cannot enable indexes when persistence is disabled"),Promise.resolve();const s=function(t){const e="string"==typeof t?function(t){try{return JSON.parse(t)}catch(t){throw new Zr(Jr.INVALID_ARGUMENT,"Failed to parse JSON: "+(null==t?void 0:t.message))}}(t):t,n=[];if(Array.isArray(e.indexes))for(const t of e.indexes){const e=Fp(t,"collectionGroup"),r=[];if(Array.isArray(t.fields))for(const e of t.fields){const t=im("setIndexConfiguration",Fp(e,"fieldPath"));"CONTAINS"===e.arrayConfig?r.push(new xs(t,2)):"ASCENDING"===e.order?r.push(new xs(t,0)):"DESCENDING"===e.order&&r.push(new xs(t,1))}n.push(new Is(Is.UNKNOWN_ID,e,r,Ds.empty()))}return n}(e);return function(t,e){return t.asyncQueue.enqueue((async()=>async function(t,e){const n=Xr(t),r=n.indexManager,s=[];return n.persistence.runTransaction("Configure indexes","readwrite",(t=>r.getFieldIndexes(t).next((n=>function(t,e,n,r,s){t=[...t],e=[...e],t.sort(n),e.sort(n);const i=t.length,o=e.length;let a=0,u=0;for(;a0?r(e[a++]):(a++,u++)}for(;a{s.push(r.addFieldIndex(t,e))}),(e=>{s.push(r.deleteFieldIndex(t,e))})))).next((()=>Ps.waitFor(s)))))}(await Pf(t),e)))}(r,s)}function Fp(t,e){if("string"!=typeof t[e])throw new Zr(Jr.INVALID_ARGUMENT,"Missing string value for: "+e);return t[e]}class Vp{constructor(t){this._client=t,this.type="PersistentCacheIndexManager"}}function qp(t){var e;t=Yf(t,fg);const n=jp.get(t);if(n)return n;const r=pg(t);if("persistent"!==(null===(e=r._uninitializedComponentsProvider)||void 0===e?void 0:e._offlineKind))return null;const s=new Vp(r);return jp.set(t,s),s}function Bp(t){Gp(t,!0)}function Up(t){Gp(t,!1)}function zp(t){t._client.verifyNotTerminated(),function(t){return t.asyncQueue.enqueue((async()=>function(t){const e=Xr(t),n=e.indexManager;return e.persistence.runTransaction("Delete All Indexes","readwrite",(t=>n.deleteAllFieldIndexes(t)))}(await Pf(t))))}(t._client).then((t=>jr("deleting all persistent cache indexes succeeded"))).catch((t=>$r("deleting all persistent cache indexes failed",t)))}function Gp(t,e){t._client.verifyNotTerminated(),function(t,e){return t.asyncQueue.enqueue((async()=>function(t,e){Xr(t).ts.Ui=e}(await Pf(t),e)))}(t._client,e).then((t=>jr(`setting persistent cache index auto creation isEnabled=${e} succeeded`))).catch((t=>$r(`setting persistent cache index auto creation isEnabled=${e} failed`,t)))}const jp=new WeakMap;class Kp{constructor(){throw new Error("instances of this class should not be created")}static onExistenceFilterMismatch(t){return $p.instance.onExistenceFilterMismatch(t)}}class $p{constructor(){this.Cu=new Map}static get instance(){return Qp||(Qp=new $p,function(t){if(yu)throw new Error("a TestingHooksSpi instance is already set");yu=t}(Qp)),Qp}tt(t){this.Cu.forEach((e=>e(t)))}onExistenceFilterMismatch(t){const e=Symbol(),n=this.Cu;return n.set(e,t),()=>n.delete(e)}}let Qp=null;!function(t,e=!0){!function(t){Br=t}(i.SDK_VERSION),i._registerComponent(new b("firestore",((t,{instanceIdentifier:n,options:r})=>{const s=t.getProvider("app").getImmediate(),i=new fg(new ss(t.getProvider("auth-internal")),new us(t.getProvider("app-check-internal")),function(t,e){if(!Object.prototype.hasOwnProperty.apply(t.options,["projectId"]))throw new Zr(Jr.INVALID_ARGUMENT,'"projectId" not provided in firebase.initializeApp.');return new Hi(t.options.projectId,e)}(s,n),s);return r=Object.assign({useFetchStreams:e},r),i._setSettings(r),i}),"PUBLIC").setMultipleInstances(!0)),i.registerVersion(Vr,"4.4.2",t),i.registerVersion(Vr,"4.4.2","esm2017")}()}))})(); \ No newline at end of file diff --git a/frontend-dist/firebase-firestore.f72d0b8a.js b/frontend-dist/firebase-firestore.f72d0b8a.js new file mode 100644 index 0000000000..cb3c6ee7b3 --- /dev/null +++ b/frontend-dist/firebase-firestore.f72d0b8a.js @@ -0,0 +1 @@ +var t="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{};function e(t,e,n,r){Object.defineProperty(t,e,{get:n,set:r,enumerable:!0,configurable:!0})}var n=t.parcelRequire94c2;n.register("4rxkr",(function(r,s){e(r.exports,"setLogLevel",(()=>Gr)),e(r.exports,"_logWarn",(()=>$r)),e(r.exports,"_debugAssert",(()=>Yr)),e(r.exports,"FirestoreError",(()=>Zr)),e(r.exports,"_EmptyAuthCredentialsProvider",(()=>ns)),e(r.exports,"_EmptyAppCheckTokenProvider",(()=>cs)),e(r.exports,"_AutoId",(()=>hs)),e(r.exports,"Timestamp",(()=>ms)),e(r.exports,"_FieldPath",(()=>bs)),e(r.exports,"_DocumentKey",(()=>_s)),e(r.exports,"_isBase64Available",(()=>Vi)),e(r.exports,"_ByteString",(()=>qi)),e(r.exports,"_DatabaseId",(()=>Hi)),e(r.exports,"_validateIsNotUsedTogether",(()=>$f)),e(r.exports,"_cast",(()=>Yf)),e(r.exports,"connectFirestoreEmulator",(()=>tg)),e(r.exports,"Query",(()=>eg)),e(r.exports,"DocumentReference",(()=>ng)),e(r.exports,"CollectionReference",(()=>rg)),e(r.exports,"collection",(()=>sg)),e(r.exports,"collectionGroup",(()=>ig)),e(r.exports,"doc",(()=>og)),e(r.exports,"refEqual",(()=>ag)),e(r.exports,"queryEqual",(()=>ug)),e(r.exports,"LoadBundleTask",(()=>hg)),e(r.exports,"CACHE_SIZE_UNLIMITED",(()=>dg)),e(r.exports,"Firestore",(()=>fg)),e(r.exports,"initializeFirestore",(()=>gg)),e(r.exports,"getFirestore",(()=>mg)),e(r.exports,"ensureFirestoreConfigured",(()=>pg)),e(r.exports,"enableIndexedDbPersistence",(()=>wg)),e(r.exports,"enableMultiTabIndexedDbPersistence",(()=>vg)),e(r.exports,"clearIndexedDbPersistence",(()=>_g)),e(r.exports,"waitForPendingWrites",(()=>Ig)),e(r.exports,"enableNetwork",(()=>Eg)),e(r.exports,"disableNetwork",(()=>Tg)),e(r.exports,"terminate",(()=>Sg)),e(r.exports,"loadBundle",(()=>xg)),e(r.exports,"namedQuery",(()=>Cg)),e(r.exports,"AggregateField",(()=>Ag)),e(r.exports,"AggregateQuerySnapshot",(()=>Ng)),e(r.exports,"Bytes",(()=>kg)),e(r.exports,"FieldPath",(()=>Rg)),e(r.exports,"documentId",(()=>Mg)),e(r.exports,"FieldValue",(()=>Lg)),e(r.exports,"GeoPoint",(()=>Og)),e(r.exports,"QueryConstraint",(()=>fm)),e(r.exports,"query",(()=>gm)),e(r.exports,"QueryCompositeFilterConstraint",(()=>ym)),e(r.exports,"QueryFieldFilterConstraint",(()=>mm)),e(r.exports,"where",(()=>pm)),e(r.exports,"or",(()=>wm)),e(r.exports,"and",(()=>vm)),e(r.exports,"QueryOrderByConstraint",(()=>bm)),e(r.exports,"orderBy",(()=>_m)),e(r.exports,"QueryLimitConstraint",(()=>Im)),e(r.exports,"limit",(()=>Em)),e(r.exports,"limitToLast",(()=>Tm)),e(r.exports,"QueryStartAtConstraint",(()=>Sm)),e(r.exports,"startAt",(()=>xm)),e(r.exports,"startAfter",(()=>Cm)),e(r.exports,"QueryEndAtConstraint",(()=>Dm)),e(r.exports,"endBefore",(()=>Am)),e(r.exports,"endAt",(()=>Nm)),e(r.exports,"AbstractUserDataWriter",(()=>Pm)),e(r.exports,"sum",(()=>qm)),e(r.exports,"average",(()=>Bm)),e(r.exports,"count",(()=>Um)),e(r.exports,"aggregateFieldEqual",(()=>zm)),e(r.exports,"aggregateQuerySnapshotEqual",(()=>Gm)),e(r.exports,"SnapshotMetadata",(()=>jm)),e(r.exports,"DocumentSnapshot",(()=>Km)),e(r.exports,"QueryDocumentSnapshot",(()=>$m)),e(r.exports,"QuerySnapshot",(()=>Qm)),e(r.exports,"snapshotEqual",(()=>Wm)),e(r.exports,"getDoc",(()=>Ym)),e(r.exports,"getDocFromCache",(()=>Jm)),e(r.exports,"getDocFromServer",(()=>Zm)),e(r.exports,"getDocs",(()=>tp)),e(r.exports,"getDocsFromCache",(()=>ep)),e(r.exports,"getDocsFromServer",(()=>np)),e(r.exports,"setDoc",(()=>rp)),e(r.exports,"executeWrite",(()=>cp)),e(r.exports,"updateDoc",(()=>sp)),e(r.exports,"deleteDoc",(()=>ip)),e(r.exports,"addDoc",(()=>op)),e(r.exports,"onSnapshot",(()=>ap)),e(r.exports,"onSnapshotsInSync",(()=>up)),e(r.exports,"getCountFromServer",(()=>hp)),e(r.exports,"getAggregateFromServer",(()=>dp)),e(r.exports,"persistentSingleTabManager",(()=>Ep)),e(r.exports,"memoryEagerGarbageCollector",(()=>yp)),e(r.exports,"memoryLruGarbageCollector",(()=>wp)),e(r.exports,"memoryLocalCache",(()=>vp)),e(r.exports,"persistentLocalCache",(()=>bp)),e(r.exports,"persistentMultipleTabManager",(()=>Tp)),e(r.exports,"WriteBatch",(()=>xp)),e(r.exports,"Transaction",(()=>Dp)),e(r.exports,"runTransaction",(()=>Ap)),e(r.exports,"deleteField",(()=>Np)),e(r.exports,"serverTimestamp",(()=>kp)),e(r.exports,"arrayUnion",(()=>Rp)),e(r.exports,"arrayRemove",(()=>Mp)),e(r.exports,"increment",(()=>Lp)),e(r.exports,"writeBatch",(()=>Op)),e(r.exports,"setIndexConfiguration",(()=>Pp)),e(r.exports,"PersistentCacheIndexManager",(()=>Vp)),e(r.exports,"getPersistentCacheIndexManager",(()=>qp)),e(r.exports,"enablePersistentCacheIndexAutoCreation",(()=>Bp)),e(r.exports,"disablePersistentCacheIndexAutoCreation",(()=>Up)),e(r.exports,"deleteAllPersistentCacheIndexes",(()=>zp)),e(r.exports,"_TestingHooks",(()=>Kp));var i=n("8WRsO"),o=n("fnbc9");const a=function(t){const e=[];let n=0;for(let r=0;r>6|192,e[n++]=63&s|128):55296==(64512&s)&&r+1>18|240,e[n++]=s>>12&63|128,e[n++]=s>>6&63|128,e[n++]=63&s|128):(e[n++]=s>>12|224,e[n++]=s>>6&63|128,e[n++]=63&s|128)}return e},u={byteToCharMap_:null,charToByteMap_:null,byteToCharMapWebSafe_:null,charToByteMapWebSafe_:null,ENCODED_VALS_BASE:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",get ENCODED_VALS(){return this.ENCODED_VALS_BASE+"+/="},get ENCODED_VALS_WEBSAFE(){return this.ENCODED_VALS_BASE+"-_."},HAS_NATIVE_SUPPORT:"function"==typeof atob,encodeByteArray(t,e){if(!Array.isArray(t))throw Error("encodeByteArray takes an array as a parameter");this.init_();const n=e?this.byteToCharMapWebSafe_:this.byteToCharMap_,r=[];for(let e=0;e>2,l=(3&s)<<4|o>>4;let h=(15&o)<<2|u>>6,d=63&u;a||(d=64,i||(h=64)),r.push(n[c],n[l],n[h],n[d])}return r.join("")},encodeString(t,e){return this.HAS_NATIVE_SUPPORT&&!e?btoa(t):this.encodeByteArray(a(t),e)},decodeString(t,e){return this.HAS_NATIVE_SUPPORT&&!e?atob(t):function(t){const e=[];let n=0,r=0;for(;n191&&s<224){const i=t[n++];e[r++]=String.fromCharCode((31&s)<<6|63&i)}else if(s>239&&s<365){const i=((7&s)<<18|(63&t[n++])<<12|(63&t[n++])<<6|63&t[n++])-65536;e[r++]=String.fromCharCode(55296+(i>>10)),e[r++]=String.fromCharCode(56320+(1023&i))}else{const i=t[n++],o=t[n++];e[r++]=String.fromCharCode((15&s)<<12|(63&i)<<6|63&o)}}return e.join("")}(this.decodeStringToByteArray(t,e))},decodeStringToByteArray(t,e){this.init_();const n=e?this.charToByteMapWebSafe_:this.charToByteMap_,r=[];for(let e=0;e>4;if(r.push(u),64!==o){const t=i<<4&240|o>>2;if(r.push(t),64!==a){const t=o<<6&192|a;r.push(t)}}}return r},init_(){if(!this.byteToCharMap_){this.byteToCharMap_={},this.charToByteMap_={},this.byteToCharMapWebSafe_={},this.charToByteMapWebSafe_={};for(let t=0;t=this.ENCODED_VALS_BASE.length&&(this.charToByteMap_[this.ENCODED_VALS_WEBSAFE.charAt(t)]=t,this.charToByteMapWebSafe_[this.ENCODED_VALS.charAt(t)]=t)}}};class c extends Error{constructor(){super(...arguments),this.name="DecodeBase64StringError"}}const l=function(t){return function(t){const e=a(t);return u.encodeByteArray(e,!0)}(t).replace(/\./g,"")},h=()=>{try{return function(){if("undefined"!=typeof self)return self;if("undefined"!=typeof window)return window;if(void 0!==t)return t;throw new Error("Unable to locate global object.")}().__FIREBASE_DEFAULTS__||(()=>{if(void 0===o||void 0===o.env)return})()||(()=>{if("undefined"==typeof document)return;let t;try{t=document.cookie.match(/__FIREBASE_DEFAULTS__=([^;]+)/)}catch(t){return}const e=t&&function(t){try{return u.decodeString(t,!0)}catch(t){console.error("base64Decode failed: ",t)}return null}(t[1]);return e&&JSON.parse(e)})()}catch(t){return void console.info(`Unable to get __FIREBASE_DEFAULTS__ due to: ${t}`)}};function d(){return"undefined"!=typeof navigator&&"string"==typeof navigator.userAgent?navigator.userAgent:""}function f(){return!function(){var e;const n=null===(e=h())||void 0===e?void 0:e.forceEnvironment;if("node"===n)return!0;if("browser"===n)return!1;try{return"[object process]"===Object.prototype.toString.call(t.process)}catch(t){return!1}}()&&!!navigator.userAgent&&navigator.userAgent.includes("Safari")&&!navigator.userAgent.includes("Chrome")}class g extends Error{constructor(t,e,n){super(e),this.code=t,this.customData=n,this.name="FirebaseError",Object.setPrototypeOf(this,g.prototype),Error.captureStackTrace&&Error.captureStackTrace(this,m.prototype.create)}}class m{constructor(t,e,n){this.service=t,this.serviceName=e,this.errors=n}create(t,...e){const n=e[0]||{},r=`${this.service}/${t}`,s=this.errors[t],i=s?function(t,e){return t.replace(p,((t,n)=>{const r=e[n];return null!=r?String(r):`<${n}?>`}))}(s,n):"Error",o=`${this.serviceName}: ${i} (${r}).`;return new g(r,o,n)}}const p=/\{\$([^}]+)}/g;function y(t,e){if(t===e)return!0;const n=Object.keys(t),r=Object.keys(e);for(const s of n){if(!r.includes(s))return!1;const n=t[s],i=e[s];if(w(n)&&w(i)){if(!y(n,i))return!1}else if(n!==i)return!1}for(const t of r)if(!n.includes(t))return!1;return!0}function w(t){return null!==t&&"object"==typeof t}function v(t){return t&&t._delegate?t._delegate:t}class b{constructor(t,e,n){this.name=t,this.instanceFactory=e,this.type=n,this.multipleInstances=!1,this.serviceProps={},this.instantiationMode="LAZY",this.onInstanceCreated=null}setInstantiationMode(t){return this.instantiationMode=t,this}setMultipleInstances(t){return this.multipleInstances=t,this}setServiceProps(t){return this.serviceProps=t,this}setInstanceCreatedCallback(t){return this.onInstanceCreated=t,this}}var _,I;(I=_||(_={}))[I.DEBUG=0]="DEBUG",I[I.VERBOSE=1]="VERBOSE",I[I.INFO=2]="INFO",I[I.WARN=3]="WARN",I[I.ERROR=4]="ERROR",I[I.SILENT=5]="SILENT";const E={debug:_.DEBUG,verbose:_.VERBOSE,info:_.INFO,warn:_.WARN,error:_.ERROR,silent:_.SILENT},T=_.INFO,S={[_.DEBUG]:"log",[_.VERBOSE]:"log",[_.INFO]:"info",[_.WARN]:"warn",[_.ERROR]:"error"},x=(t,e,...n)=>{if(e{};N.addEventListener("test",t,e),N.removeEventListener("test",t,e)}catch(t){}return t}();function j(t){return/^[\s\xa0]*$/.test(t)}function K(){var t=N.navigator;return t&&(t=t.userAgent)?t:""}function $(t){return-1!=K().indexOf(t)}function Q(t){return Q[" "](t),t}Q[" "]=function(){};var H,W,Y,X=$("Opera"),J=$("Trident")||$("MSIE"),Z=$("Edge"),tt=Z||J,et=$("Gecko")&&!(-1!=K().toLowerCase().indexOf("webkit")&&!$("Edge"))&&!($("Trident")||$("MSIE"))&&!$("Edge"),nt=-1!=K().toLowerCase().indexOf("webkit")&&!$("Edge");function rt(){var t=N.document;return t?t.documentMode:void 0}t:{var st="",it=(W=K(),et?/rv:([^\);]+)(\)|;)/.exec(W):Z?/Edge\/([\d\.]+)/.exec(W):J?/\b(?:MSIE|rv)[: ]([^\);]+)(\)|;)/.exec(W):nt?/WebKit\/(\S+)/.exec(W):X?/(?:Version)[ \/]?(\S+)/.exec(W):void 0);if(it&&(st=it?it[1]:""),J){var ot=rt();if(null!=ot&&ot>parseFloat(st)){H=String(ot);break t}}H=st}N.document&&J?Y=rt()||parseInt(H,10)||void 0:Y=void 0;var at=Y;function ut(t,e){if(z.call(this,t?t.type:""),this.relatedTarget=this.g=this.target=null,this.button=this.screenY=this.screenX=this.clientY=this.clientX=0,this.key="",this.metaKey=this.shiftKey=this.altKey=this.ctrlKey=!1,this.state=null,this.pointerId=0,this.pointerType="",this.i=null,t){var n=this.type=t.type,r=t.changedTouches&&t.changedTouches.length?t.changedTouches[0]:null;if(this.target=t.target||t.srcElement,this.g=e,e=t.relatedTarget){if(et){t:{try{Q(e.nodeName);var s=!0;break t}catch(t){}s=!1}s||(e=null)}}else"mouseover"==n?e=t.fromElement:"mouseout"==n&&(e=t.toElement);this.relatedTarget=e,r?(this.clientX=void 0!==r.clientX?r.clientX:r.pageX,this.clientY=void 0!==r.clientY?r.clientY:r.pageY,this.screenX=r.screenX||0,this.screenY=r.screenY||0):(this.clientX=void 0!==t.clientX?t.clientX:t.pageX,this.clientY=void 0!==t.clientY?t.clientY:t.pageY,this.screenX=t.screenX||0,this.screenY=t.screenY||0),this.button=t.button,this.key=t.key||"",this.ctrlKey=t.ctrlKey,this.altKey=t.altKey,this.shiftKey=t.shiftKey,this.metaKey=t.metaKey,this.pointerId=t.pointerId||0,this.pointerType="string"==typeof t.pointerType?t.pointerType:ct[t.pointerType]||"",this.state=t.state,this.i=t,t.defaultPrevented&&ut.$.h.call(this)}}F(ut,z);var ct={2:"touch",3:"pen",4:"mouse"};ut.prototype.h=function(){ut.$.h.call(this);var t=this.i;t.preventDefault?t.preventDefault():t.returnValue=!1};var lt="closure_listenable_"+(1e6*Math.random()|0),ht=0;function dt(t,e,n,r,s){this.listener=t,this.proxy=null,this.src=e,this.type=n,this.capture=!!r,this.la=s,this.key=++ht,this.fa=this.ia=!1}function ft(t){t.fa=!0,t.listener=null,t.proxy=null,t.src=null,t.la=null}function gt(t,e,n){for(const r in t)e.call(n,t[r],r,t)}function mt(t){const e={};for(const n in t)e[n]=t[n];return e}const pt="constructor hasOwnProperty isPrototypeOf propertyIsEnumerable toLocaleString toString valueOf".split(" ");function yt(t,e){let n,r;for(let e=1;e>>0);function Rt(t){return"function"==typeof t?t:(t[kt]||(t[kt]=function(e){return t.handleEvent(e)}),t[kt])}function Mt(){V.call(this),this.i=new wt(this),this.S=this,this.J=null}function Lt(t,e){var n,r=t.J;if(r)for(n=[];r;r=r.J)n.push(r);if(t=t.S,r=e.type||e,"string"==typeof e)e=new z(e,t);else if(e instanceof z)e.target=e.target||t;else{var s=e;yt(e=new z(r,t),s)}if(s=!0,n)for(var i=n.length-1;0<=i;i--){var o=e.g=n[i];s=Ot(o,r,!0,e)&&s}if(s=Ot(o=e.g=t,r,!0,e)&&s,s=Ot(o,r,!1,e)&&s,n)for(i=0;inew qt),(t=>t.reset()));class qt{constructor(){this.next=this.g=this.h=null}set(t,e){this.h=t,this.g=e,this.next=null}reset(){this.next=this.g=this.h=null}}function Bt(t){var e=1;t=t.split(":");const n=[];for(;0{throw t}),0)}let zt,Gt=!1,jt=new class{constructor(){this.h=this.g=null}add(t,e){const n=Vt.get();n.set(t,e),this.h?this.h.next=n:this.g=n,this.h=n}},Kt=()=>{const t=N.Promise.resolve(void 0);zt=()=>{t.then($t)}};var $t=()=>{for(var t;t=Ft();){try{t.h.call(t.g)}catch(t){Ut(t)}var e=Vt;e.j(t),100>e.h&&(e.h++,t.next=e.g,e.g=t)}Gt=!1};function Qt(t,e){Mt.call(this),this.h=t||1,this.g=e||N,this.j=O(this.qb,this),this.l=Date.now()}function Ht(t){t.ga=!1,t.T&&(t.g.clearTimeout(t.T),t.T=null)}function Wt(t,e,n){if("function"==typeof t)n&&(t=O(t,n));else{if(!t||"function"!=typeof t.handleEvent)throw Error("Invalid listener argument");t=O(t.handleEvent,t)}return 2147483647{t.g=null,t.i&&(t.i=!1,Yt(t))}),t.j);const e=t.h;t.h=null,t.m.apply(null,e)}F(Qt,Mt),(C=Qt.prototype).ga=!1,C.T=null,C.qb=function(){if(this.ga){var t=Date.now()-this.l;0r.length)){var s=r[1];if(Array.isArray(s)&&!(1>s.length)){var i=s[0];if("noop"!=i&&"stop"!=i&&"close"!=i)for(var o=1;oe.length?Ce:(e=e.slice(r,r+n),t.o=r+n,e))}function Me(t){t.Y=Date.now()+t.P,Le(t,t.P)}function Le(t,e){if(null!=t.C)throw Error("WatchDog timer not null");t.C=de(O(t.lb,t),e)}function Oe(t){t.C&&(N.clearTimeout(t.C),t.C=null)}function Pe(t){0==t.l.H||t.J||tr(t.l,t)}function Fe(t){Oe(t);var e=t.M;e&&"function"==typeof e.sa&&e.sa(),t.M=null,Ht(t.V),ee(t.U),t.g&&(e=t.g,t.g=null,e.abort(),e.sa())}function Ve(t,e){try{var n=t.l;if(0!=n.H&&(n.g==t||fn(n.i,t)))if(!t.K&&fn(n.i,t)&&3==n.H){try{var r=n.Ja.g.parse(e)}catch(t){r=null}if(Array.isArray(r)&&3==r.length){var s=r;if(0==s[0]){t:if(!n.u){if(n.g){if(!(n.g.G+3e3s[2]&&n.G&&0==n.A&&!n.v&&(n.v=de(O(n.ib,n),6e3));if(1>=dn(n.i)&&n.oa){try{n.oa()}catch(t){}n.oa=void 0}}else nr(n,11)}else if((t.K||n.g==t)&&Zn(n),!j(e))for(s=n.Ja.g.parse(e),e=0;el)&&(3!=l||tt||this.g&&(this.h.h||this.g.ja()||Fn(this.g)))){this.J||4!=l||7==e||ue(),Oe(this);var n=this.g.da();this.ca=n;e:if(Ne(this)){var r=Fn(this.g);t="";var s=r.length,i=4==Pn(this.g);if(!this.h.i){if("undefined"==typeof TextDecoder){Fe(this),Pe(this);var o="";break e}this.h.i=new N.TextDecoder}for(e=0;ee)throw Error("Bad port number "+e);t.m=e}else t.m=null}function Ke(t,e,n){e instanceof nn?(t.i=e,function(t,e){e&&!t.j&&(rn(t),t.i=null,t.g.forEach((function(t,e){var n=e.toLowerCase();e!=n&&(sn(this,e),an(this,n,t))}),t)),t.j=e}(t.i,t.h)):(n||(e=We(e,tn)),t.i=new nn(e,t.h))}function $e(t,e,n){t.i.set(e,n)}function Qe(t){return $e(t,"zx",Math.floor(2147483648*Math.random()).toString(36)+Math.abs(Math.floor(2147483648*Math.random())^Date.now()).toString(36)),t}function He(t,e){return t?e?decodeURI(t.replace(/%25/g,"%2525")):decodeURIComponent(t):""}function We(t,e,n){return"string"==typeof t?(t=encodeURI(t).replace(e,Ye),n&&(t=t.replace(/%25([0-9a-fA-F]{2})/g,"%$1")),t):null}function Ye(t){return"%"+((t=t.charCodeAt(0))>>4&15).toString(16)+(15&t).toString(16)}Ue.prototype.toString=function(){var t=[],e=this.j;e&&t.push(We(e,Xe,!0),":");var n=this.g;return(n||"file"==e)&&(t.push("//"),(e=this.s)&&t.push(We(e,Xe,!0),"@"),t.push(encodeURIComponent(String(n)).replace(/%25([0-9a-fA-F]{2})/g,"%$1")),null!=(n=this.m)&&t.push(":",String(n))),(n=this.l)&&(this.g&&"/"!=n.charAt(0)&&t.push("/"),t.push(We(n,"/"==n.charAt(0)?Ze:Je,!0))),(n=this.i.toString())&&t.push("?",n),(n=this.o)&&t.push("#",We(n,en)),t.join("")};var Xe=/[#\/\?@]/g,Je=/[#\?:]/g,Ze=/[#\?]/g,tn=/[#\?@]/g,en=/#/g;function nn(t,e){this.h=this.g=null,this.i=t||null,this.j=!!e}function rn(t){t.g||(t.g=new Map,t.h=0,t.i&&function(t,e){if(t){t=t.split("&");for(var n=0;n=t.j}function dn(t){return t.h?1:t.g?t.g.size:0}function fn(t,e){return t.h?t.h==e:!!t.g&&t.g.has(e)}function gn(t,e){t.g?t.g.add(e):t.h=e}function mn(t,e){t.h&&t.h==e?t.h=null:t.g&&t.g.has(e)&&t.g.delete(e)}function pn(t){if(null!=t.h)return t.i.concat(t.h.F);if(null!=t.g&&0!==t.g.size){let e=t.i;for(const n of t.g.values())e=e.concat(n.F);return e}return B(t.i)}function yn(){this.g=new class{stringify(t){return N.JSON.stringify(t,void 0)}parse(t){return N.JSON.parse(t,void 0)}}}function wn(t,e,n){const r=n||"";try{qe(t,(function(t,n){let s=t;R(t)&&(s=Pt(t)),e.push(r+n+"="+encodeURIComponent(s))}))}catch(t){throw e.push(r+"type="+encodeURIComponent("_badmap")),t}}function vn(t,e,n,r,s){try{e.onload=null,e.onerror=null,e.onabort=null,e.ontimeout=null,s(r)}catch(t){}}function bn(t){this.l=t.ec||null,this.j=t.ob||!1}function _n(t,e){Mt.call(this),this.F=t,this.u=e,this.m=void 0,this.readyState=In,this.status=0,this.responseType=this.responseText=this.response=this.statusText="",this.onreadystatechange=null,this.v=new Headers,this.h=null,this.C="GET",this.B="",this.g=!1,this.A=this.j=this.l=null}cn.prototype.cancel=function(){if(this.i=pn(this),this.h)this.h.cancel(),this.h=null;else if(this.g&&0!==this.g.size){for(const t of this.g.values())t.cancel();this.g.clear()}},F(bn,me),bn.prototype.g=function(){return new _n(this.l,this.j)},bn.prototype.i=function(t){return function(){return t}}({}),F(_n,Mt);var In=0;function En(t){t.j.read().then(t.Xa.bind(t)).catch(t.ka.bind(t))}function Tn(t){t.readyState=4,t.l=null,t.j=null,t.A=null,Sn(t)}function Sn(t){t.onreadystatechange&&t.onreadystatechange.call(t)}(C=_n.prototype).open=function(t,e){if(this.readyState!=In)throw this.abort(),Error("Error reopening a connection");this.C=t,this.B=e,this.readyState=1,Sn(this)},C.send=function(t){if(1!=this.readyState)throw this.abort(),Error("need to call open() first. ");this.g=!0;const e={headers:this.v,method:this.C,credentials:this.m,cache:void 0};t&&(e.body=t),(this.F||N).fetch(new Request(this.B,e)).then(this.$a.bind(this),this.ka.bind(this))},C.abort=function(){this.response=this.responseText="",this.v=new Headers,this.status=0,this.j&&this.j.cancel("Request was aborted.").catch((()=>{})),1<=this.readyState&&this.g&&4!=this.readyState&&(this.g=!1,Tn(this)),this.readyState=In},C.$a=function(t){if(this.g&&(this.l=t,this.h||(this.status=this.l.status,this.statusText=this.l.statusText,this.h=t.headers,this.readyState=2,Sn(this)),this.g&&(this.readyState=3,Sn(this),this.g)))if("arraybuffer"===this.responseType)t.arrayBuffer().then(this.Ya.bind(this),this.ka.bind(this));else if(void 0!==N.ReadableStream&&"body"in t){if(this.j=t.body.getReader(),this.u){if(this.responseType)throw Error('responseType must be empty for "streamBinaryChunks" mode responses.');this.response=[]}else this.response=this.responseText="",this.A=new TextDecoder;En(this)}else t.text().then(this.Za.bind(this),this.ka.bind(this))},C.Xa=function(t){if(this.g){if(this.u&&t.value)this.response.push(t.value);else if(!this.u){var e=t.value?t.value:new Uint8Array(0);(e=this.A.decode(e,{stream:!t.done}))&&(this.response=this.responseText+=e)}t.done?Tn(this):Sn(this),3==this.readyState&&En(this)}},C.Za=function(t){this.g&&(this.response=this.responseText=t,Tn(this))},C.Ya=function(t){this.g&&(this.response=t,Tn(this))},C.ka=function(){this.g&&Tn(this)},C.setRequestHeader=function(t,e){this.v.append(t,e)},C.getResponseHeader=function(t){return this.h&&this.h.get(t.toLowerCase())||""},C.getAllResponseHeaders=function(){if(!this.h)return"";const t=[],e=this.h.entries();for(var n=e.next();!n.done;)n=n.value,t.push(n[0]+": "+n[1]),n=e.next();return t.join("\r\n")},Object.defineProperty(_n.prototype,"withCredentials",{get:function(){return"include"===this.m},set:function(t){this.m=t?"include":"same-origin"}});var xn=N.JSON.parse;function Cn(t){Mt.call(this),this.headers=new Map,this.u=t||null,this.h=!1,this.C=this.g=null,this.I="",this.m=0,this.j="",this.l=this.G=this.v=this.F=!1,this.B=0,this.A=null,this.K=Dn,this.L=this.M=!1}F(Cn,Mt);var Dn="",An=/^https?$/i,Nn=["POST","PUT"];function kn(t,e){t.h=!1,t.g&&(t.l=!0,t.g.abort(),t.l=!1),t.j=e,t.m=5,Rn(t),Ln(t)}function Rn(t){t.F||(t.F=!0,Lt(t,"complete"),Lt(t,"error"))}function Mn(t){if(t.h&&void 0!==A&&(!t.C[1]||4!=Pn(t)||2!=t.da()))if(t.v&&4==Pn(t))Wt(t.La,0,t);else if(Lt(t,"readystatechange"),4==Pn(t)){t.h=!1;try{const o=t.da();t:switch(o){case 200:case 201:case 202:case 204:case 206:case 304:case 1223:var e=!0;break t;default:e=!1}var n;if(!(n=e)){var r;if(r=0===o){var s=String(t.I).match(Be)[1]||null;!s&&N.self&&N.self.location&&(s=N.self.location.protocol.slice(0,-1)),r=!An.test(s?s.toLowerCase():"")}n=r}if(n)Lt(t,"complete"),Lt(t,"success");else{t.m=6;try{var i=2{}:null;t.g=null,t.C=null,e||Lt(t,"ready");try{n.onreadystatechange=r}catch(t){}}}function On(t){t.g&&t.L&&(t.g.ontimeout=null),t.A&&(N.clearTimeout(t.A),t.A=null)}function Pn(t){return t.g?t.g.readyState:0}function Fn(t){try{if(!t.g)return null;if("response"in t.g)return t.g.response;switch(t.K){case Dn:case"text":return t.g.responseText;case"arraybuffer":if("mozResponseArrayBuffer"in t.g)return t.g.mozResponseArrayBuffer}return null}catch(t){return null}}function Vn(t){let e="";return gt(t,(function(t,n){e+=n,e+=":",e+=t,e+="\r\n"})),e}function qn(t,e,n){t:{for(r in n){var r=!1;break t}r=!0}r||(n=Vn(n),"string"==typeof t?null!=n&&encodeURIComponent(String(n)):$e(t,e,n))}function Bn(t,e,n){return n&&n.internalChannelParams&&n.internalChannelParams[t]||e}function Un(t){this.Ga=0,this.j=[],this.l=new ne,this.pa=this.wa=this.I=this.Y=this.g=this.Da=this.F=this.na=this.o=this.U=this.s=null,this.fb=this.W=0,this.cb=Bn("failFast",!1,t),this.G=this.v=this.u=this.m=this.h=null,this.aa=!0,this.Fa=this.V=-1,this.ba=this.A=this.C=0,this.ab=Bn("baseRetryDelayMs",5e3,t),this.hb=Bn("retryDelaySeedMs",1e4,t),this.eb=Bn("forwardChannelMaxRetries",2,t),this.xa=Bn("forwardChannelRequestTimeoutMs",2e4,t),this.va=t&&t.xmlHttpFactory||void 0,this.Ha=t&&t.useFetchStreams||!1,this.L=void 0,this.J=t&&t.supportsCrossDomainXhr||!1,this.K="",this.i=new cn(t&&t.concurrentRequestLimit),this.Ja=new yn,this.P=t&&t.fastHandshake||!1,this.O=t&&t.encodeInitMessageHeaders||!1,this.P&&this.O&&(this.O=!1),this.bb=t&&t.bc||!1,t&&t.Ea&&this.l.Ea(),t&&t.forceLongPolling&&(this.aa=!1),this.ca=!this.P&&this.aa&&t&&t.detectBufferingProxy||!1,this.qa=void 0,t&&t.longPollingTimeout&&0n)e=Math.max(0,s[o].g-100),i=!1;else try{wn(a,t,"req"+n+"_")}catch(t){r&&r(a)}}if(i){r=t.join("&");break t}}}return t=t.j.splice(0,n),e.F=t,r}function Wn(t){if(!t.g&&!t.u){t.ba=1;var e=t.Ma;zt||Kt(),Gt||(zt(),Gt=!0),jt.add(e,t),t.A=0}}function Yn(t){return!(t.g||t.u||3<=t.A||(t.ba++,t.u=de(O(t.Ma,t),er(t,t.A)),t.A++,0))}function Xn(t){null!=t.B&&(N.clearTimeout(t.B),t.B=null)}function Jn(t){t.g=new Ee(t,t.l,"rpc",t.ba),null===t.o&&(t.g.I=t.s),t.g.O=0;var e=ze(t.wa);$e(e,"RID","rpc"),$e(e,"SID",t.K),$e(e,"AID",t.V),$e(e,"CI",t.G?"0":"1"),!t.G&&t.qa&&$e(e,"TO",t.qa),$e(e,"TYPE","xmlhttp"),Qn(t,e),t.o&&t.s&&qn(e,t.o,t.s),t.L&&t.g.setTimeout(t.L);var n=t.g;t=t.pa,n.L=1,n.A=Qe(ze(e)),n.u=null,n.S=!0,Ae(n,t)}function Zn(t){null!=t.v&&(N.clearTimeout(t.v),t.v=null)}function tr(t,e){var n=null;if(t.g==e){Zn(t),Xn(t),t.g=null;var r=2}else{if(!fn(t.i,e))return;n=e.F,mn(t.i,e),r=1}if(0!=t.H)if(e.i)if(1==r){n=e.u?e.u.length:0,e=Date.now()-e.G;var s=t.C;Lt(r=oe(),new he(r,n)),Kn(t)}else Wn(t);else if(3==(s=e.s)||0==s&&0=t.i.j-(t.m?1:0)||(t.m?(t.j=e.F.concat(t.j),0):1==t.H||2==t.H||t.C>=(t.cb?0:t.eb)||(t.m=de(O(t.Na,t,e),er(t,t.C)),t.C++,0)))}(t,e)||2==r&&Yn(t)))switch(n&&0s;++s)r[s]=e.charCodeAt(n++)|e.charCodeAt(n++)<<8|e.charCodeAt(n++)<<16|e.charCodeAt(n++)<<24;else for(s=0;16>s;++s)r[s]=e[n++]|e[n++]<<8|e[n++]<<16|e[n++]<<24;e=t.g[0],n=t.g[1],s=t.g[2];var i=t.g[3],o=e+(i^n&(s^i))+r[0]+3614090360&4294967295;o=(n=(s=(i=(e=(n=(s=(i=(e=(n=(s=(i=(e=(n=(s=(i=(e=(n=(s=(i=(e=(n=(s=(i=(e=(n=(s=(i=(e=(n=(s=(i=(e=(n=(s=(i=(e=(n=(s=(i=(e=(n=(s=(i=(e=(n=(s=(i=(e=(n=(s=(i=(e=(n=(s=(i=(e=(n=(s=(i=(e=n+(o<<7&4294967295|o>>>25))+((o=i+(s^e&(n^s))+r[1]+3905402710&4294967295)<<12&4294967295|o>>>20))+((o=s+(n^i&(e^n))+r[2]+606105819&4294967295)<<17&4294967295|o>>>15))+((o=n+(e^s&(i^e))+r[3]+3250441966&4294967295)<<22&4294967295|o>>>10))+((o=e+(i^n&(s^i))+r[4]+4118548399&4294967295)<<7&4294967295|o>>>25))+((o=i+(s^e&(n^s))+r[5]+1200080426&4294967295)<<12&4294967295|o>>>20))+((o=s+(n^i&(e^n))+r[6]+2821735955&4294967295)<<17&4294967295|o>>>15))+((o=n+(e^s&(i^e))+r[7]+4249261313&4294967295)<<22&4294967295|o>>>10))+((o=e+(i^n&(s^i))+r[8]+1770035416&4294967295)<<7&4294967295|o>>>25))+((o=i+(s^e&(n^s))+r[9]+2336552879&4294967295)<<12&4294967295|o>>>20))+((o=s+(n^i&(e^n))+r[10]+4294925233&4294967295)<<17&4294967295|o>>>15))+((o=n+(e^s&(i^e))+r[11]+2304563134&4294967295)<<22&4294967295|o>>>10))+((o=e+(i^n&(s^i))+r[12]+1804603682&4294967295)<<7&4294967295|o>>>25))+((o=i+(s^e&(n^s))+r[13]+4254626195&4294967295)<<12&4294967295|o>>>20))+((o=s+(n^i&(e^n))+r[14]+2792965006&4294967295)<<17&4294967295|o>>>15))+((o=n+(e^s&(i^e))+r[15]+1236535329&4294967295)<<22&4294967295|o>>>10))+((o=e+(s^i&(n^s))+r[1]+4129170786&4294967295)<<5&4294967295|o>>>27))+((o=i+(n^s&(e^n))+r[6]+3225465664&4294967295)<<9&4294967295|o>>>23))+((o=s+(e^n&(i^e))+r[11]+643717713&4294967295)<<14&4294967295|o>>>18))+((o=n+(i^e&(s^i))+r[0]+3921069994&4294967295)<<20&4294967295|o>>>12))+((o=e+(s^i&(n^s))+r[5]+3593408605&4294967295)<<5&4294967295|o>>>27))+((o=i+(n^s&(e^n))+r[10]+38016083&4294967295)<<9&4294967295|o>>>23))+((o=s+(e^n&(i^e))+r[15]+3634488961&4294967295)<<14&4294967295|o>>>18))+((o=n+(i^e&(s^i))+r[4]+3889429448&4294967295)<<20&4294967295|o>>>12))+((o=e+(s^i&(n^s))+r[9]+568446438&4294967295)<<5&4294967295|o>>>27))+((o=i+(n^s&(e^n))+r[14]+3275163606&4294967295)<<9&4294967295|o>>>23))+((o=s+(e^n&(i^e))+r[3]+4107603335&4294967295)<<14&4294967295|o>>>18))+((o=n+(i^e&(s^i))+r[8]+1163531501&4294967295)<<20&4294967295|o>>>12))+((o=e+(s^i&(n^s))+r[13]+2850285829&4294967295)<<5&4294967295|o>>>27))+((o=i+(n^s&(e^n))+r[2]+4243563512&4294967295)<<9&4294967295|o>>>23))+((o=s+(e^n&(i^e))+r[7]+1735328473&4294967295)<<14&4294967295|o>>>18))+((o=n+(i^e&(s^i))+r[12]+2368359562&4294967295)<<20&4294967295|o>>>12))+((o=e+(n^s^i)+r[5]+4294588738&4294967295)<<4&4294967295|o>>>28))+((o=i+(e^n^s)+r[8]+2272392833&4294967295)<<11&4294967295|o>>>21))+((o=s+(i^e^n)+r[11]+1839030562&4294967295)<<16&4294967295|o>>>16))+((o=n+(s^i^e)+r[14]+4259657740&4294967295)<<23&4294967295|o>>>9))+((o=e+(n^s^i)+r[1]+2763975236&4294967295)<<4&4294967295|o>>>28))+((o=i+(e^n^s)+r[4]+1272893353&4294967295)<<11&4294967295|o>>>21))+((o=s+(i^e^n)+r[7]+4139469664&4294967295)<<16&4294967295|o>>>16))+((o=n+(s^i^e)+r[10]+3200236656&4294967295)<<23&4294967295|o>>>9))+((o=e+(n^s^i)+r[13]+681279174&4294967295)<<4&4294967295|o>>>28))+((o=i+(e^n^s)+r[0]+3936430074&4294967295)<<11&4294967295|o>>>21))+((o=s+(i^e^n)+r[3]+3572445317&4294967295)<<16&4294967295|o>>>16))+((o=n+(s^i^e)+r[6]+76029189&4294967295)<<23&4294967295|o>>>9))+((o=e+(n^s^i)+r[9]+3654602809&4294967295)<<4&4294967295|o>>>28))+((o=i+(e^n^s)+r[12]+3873151461&4294967295)<<11&4294967295|o>>>21))+((o=s+(i^e^n)+r[15]+530742520&4294967295)<<16&4294967295|o>>>16))+((o=n+(s^i^e)+r[2]+3299628645&4294967295)<<23&4294967295|o>>>9))+((o=e+(s^(n|~i))+r[0]+4096336452&4294967295)<<6&4294967295|o>>>26))+((o=i+(n^(e|~s))+r[7]+1126891415&4294967295)<<10&4294967295|o>>>22))+((o=s+(e^(i|~n))+r[14]+2878612391&4294967295)<<15&4294967295|o>>>17))+((o=n+(i^(s|~e))+r[5]+4237533241&4294967295)<<21&4294967295|o>>>11))+((o=e+(s^(n|~i))+r[12]+1700485571&4294967295)<<6&4294967295|o>>>26))+((o=i+(n^(e|~s))+r[3]+2399980690&4294967295)<<10&4294967295|o>>>22))+((o=s+(e^(i|~n))+r[10]+4293915773&4294967295)<<15&4294967295|o>>>17))+((o=n+(i^(s|~e))+r[1]+2240044497&4294967295)<<21&4294967295|o>>>11))+((o=e+(s^(n|~i))+r[8]+1873313359&4294967295)<<6&4294967295|o>>>26))+((o=i+(n^(e|~s))+r[15]+4264355552&4294967295)<<10&4294967295|o>>>22))+((o=s+(e^(i|~n))+r[6]+2734768916&4294967295)<<15&4294967295|o>>>17))+((o=n+(i^(s|~e))+r[13]+1309151649&4294967295)<<21&4294967295|o>>>11))+((i=(e=n+((o=e+(s^(n|~i))+r[4]+4149444226&4294967295)<<6&4294967295|o>>>26))+((o=i+(n^(e|~s))+r[11]+3174756917&4294967295)<<10&4294967295|o>>>22))^((s=i+((o=s+(e^(i|~n))+r[2]+718787259&4294967295)<<15&4294967295|o>>>17))|~e))+r[9]+3951481745&4294967295,t.g[0]=t.g[0]+e&4294967295,t.g[1]=t.g[1]+(s+(o<<21&4294967295|o>>>11))&4294967295,t.g[2]=t.g[2]+s&4294967295,t.g[3]=t.g[3]+i&4294967295}function gr(t,e){this.h=e;for(var n=[],r=!0,s=t.length-1;0<=s;s--){var i=0|t[s];r&&i==e||(n[s]=i,r=!1)}this.g=n}(C=Cn.prototype).Oa=function(t){this.M=t},C.ha=function(t,e,n,r){if(this.g)throw Error("[goog.net.XhrIo] Object is active with another request="+this.I+"; newUri="+t);e=e?e.toUpperCase():"GET",this.I=t,this.j="",this.m=0,this.F=!1,this.h=!0,this.g=this.u?this.u.g():we.g(),this.C=this.u?pe(this.u):pe(we),this.g.onreadystatechange=O(this.La,this);try{this.G=!0,this.g.open(e,String(t),!0),this.G=!1}catch(t){return void kn(this,t)}if(t=n||"",n=new Map(this.headers),r)if(Object.getPrototypeOf(r)===Object.prototype)for(var s in r)n.set(s,r[s]);else{if("function"!=typeof r.keys||"function"!=typeof r.get)throw Error("Unknown input type for opt_headers: "+String(r));for(const t of r.keys())n.set(t,r.get(t))}r=Array.from(n.keys()).find((t=>"content-type"==t.toLowerCase())),s=N.FormData&&t instanceof N.FormData,!(0<=q(Nn,e))||r||s||n.set("Content-Type","application/x-www-form-urlencoded;charset=utf-8");for(const[t,e]of n)this.g.setRequestHeader(t,e);this.K&&(this.g.responseType=this.K),"withCredentials"in this.g&&this.g.withCredentials!==this.M&&(this.g.withCredentials=this.M);try{On(this),0=this.S)){var t=2*this.S;this.l.info("BP detection timer enabled: "+t),this.B=de(O(this.jb,this),t)}},C.jb=function(){this.B&&(this.B=null,this.l.info("BP detection timeout reached."),this.l.info("Buffering proxy detected and switch to long-polling!"),this.G=!1,this.M=!0,le(10),Gn(this),Jn(this))},C.ib=function(){null!=this.v&&(this.v=null,Gn(this),Yn(this),le(19))},C.pb=function(t){t?(this.l.info("Successfully pinged google.com"),le(2)):(this.l.info("Failed to ping google.com"),le(1))},C.isActive=function(){return!!this.h&&this.h.isActive(this)},(C=or.prototype).Ba=function(){},C.Aa=function(){},C.za=function(){},C.ya=function(){},C.isActive=function(){return!0},C.Va=function(){},ar.prototype.g=function(t,e){return new ur(t,e)},F(ur,Mt),ur.prototype.m=function(){this.g.h=this.j,this.A&&(this.g.J=!0);var t=this.g,e=this.l,n=this.h||void 0;le(0),t.Y=e,t.na=n||{},t.G=t.aa,t.I=sr(t,null,t.Y),Kn(t)},ur.prototype.close=function(){zn(this.g)},ur.prototype.u=function(t){var e=this.g;if("string"==typeof t){var n={};n.__data__=t,t=n}else this.v&&((n={}).__data__=Pt(t),t=n);e.j.push(new class{constructor(t,e){this.g=t,this.map=e}}(e.fb++,t)),3==e.H&&Kn(e)},ur.prototype.N=function(){this.g.h=null,delete this.j,zn(this.g),delete this.g,ur.$.N.call(this)},F(cr,be),F(lr,_e),F(hr,or),hr.prototype.Ba=function(){Lt(this.g,"a")},hr.prototype.Aa=function(t){Lt(this.g,new cr(t))},hr.prototype.za=function(t){Lt(this.g,new lr)},hr.prototype.ya=function(){Lt(this.g,"b")},F(dr,(function(){this.blockSize=-1})),dr.prototype.reset=function(){this.g[0]=1732584193,this.g[1]=4023233417,this.g[2]=2562383102,this.g[3]=271733878,this.i=this.h=0},dr.prototype.j=function(t,e){void 0===e&&(e=t.length);for(var n=e-this.blockSize,r=this.m,s=this.h,i=0;ithis.h?this.blockSize:2*this.blockSize)-this.h);t[0]=128;for(var e=1;ee;++e)for(var r=0;32>r;r+=8)t[n++]=this.g[e]>>>r&255;return t};var mr={};function pr(t){return-128<=t&&128>t?function(t,e){var n=mr;return Object.prototype.hasOwnProperty.call(n,t)?n[t]:n[t]=e(t)}(t,(function(t){return new gr([0|t],0>t?-1:0)})):new gr([0|t],0>t?-1:0)}function yr(t){if(isNaN(t)||!isFinite(t))return vr;if(0>t)return Tr(yr(-t));for(var e=[],n=1,r=0;t>=n;r++)e[r]=t/n|0,n*=wr;return new gr(e,0)}var wr=4294967296,vr=pr(0),br=pr(1),_r=pr(16777216);function Ir(t){if(0!=t.h)return!1;for(var e=0;e>>16,t[e]&=65535,e++}function Cr(t,e){this.g=t,this.h=e}function Dr(t,e){if(Ir(e))throw Error("division by zero");if(Ir(t))return new Cr(vr,vr);if(Er(t))return e=Dr(Tr(t),e),new Cr(Tr(e.g),Tr(e.h));if(Er(e))return e=Dr(t,Tr(e)),new Cr(Tr(e.g),e.h);if(30=r.X(t);)n=Ar(n),r=Ar(r);var s=Nr(n,1),i=Nr(r,1);for(r=Nr(r,2),n=Nr(n,2);!Ir(r);){var o=i.add(r);0>=o.X(t)&&(s=s.add(n),i=o),r=Nr(r,1),n=Nr(n,1)}return e=Sr(t,s.R(e)),new Cr(s,e)}for(s=vr;0<=t.X(e);){for(n=Math.max(1,Math.floor(t.ea()/e.ea())),r=48>=(r=Math.ceil(Math.log(n)/Math.LN2))?1:Math.pow(2,r-48),o=(i=yr(n)).R(e);Er(o)||0>>31;return new gr(n,t.h)}function Nr(t,e){var n=e>>5;e%=32;for(var r=t.g.length-n,s=[],i=0;i>>e|t.D(i+n+1)<<32-e:t.D(i+n);return new gr(s,t.h)}(C=gr.prototype).ea=function(){if(Er(this))return-Tr(this).ea();for(var t=0,e=1,n=0;n(t=t||10)||36>>0).toString(t);if(Ir(n=s))return i+r;for(;6>i.length;)i="0"+i;r=i+r}},C.D=function(t){return 0>t?0:t>>16)+(this.D(s)>>>16)+(t.D(s)>>>16);r=o>>>16,i&=65535,o&=65535,n[s]=o<<16|i}return new gr(n,-2147483648&n[n.length-1]?-1:0)},C.R=function(t){if(Ir(this)||Ir(t))return vr;if(Er(this))return Er(t)?Tr(this).R(Tr(t)):Tr(Tr(this).R(t));if(Er(t))return Tr(this.R(Tr(t)));if(0>this.X(_r)&&0>t.X(_r))return yr(this.ea()*t.ea());for(var e=this.g.length+t.g.length,n=[],r=0;r<2*e;r++)n[r]=0;for(r=0;r>>16,o=65535&this.D(r),a=t.D(s)>>>16,u=65535&t.D(s);n[2*r+2*s]+=o*u,xr(n,2*r+2*s),n[2*r+2*s+1]+=i*u,xr(n,2*r+2*s+1),n[2*r+2*s+1]+=o*a,xr(n,2*r+2*s+1),n[2*r+2*s+2]+=i*a,xr(n,2*r+2*s+2)}for(r=0;r(n=n||10)||36o?(o=yr(Math.pow(n,o)),s=s.R(o).add(yr(a))):s=(s=s.R(r)).add(yr(a))}return s};var kr=fe,Rr=ge,Mr=se,Lr=ye,Or=Cn,Pr=dr,Fr=gr;const Vr="@firebase/firestore";class qr{constructor(t){this.uid=t}isAuthenticated(){return null!=this.uid}toKey(){return this.isAuthenticated()?"uid:"+this.uid:"anonymous-user"}isEqual(t){return t.uid===this.uid}}qr.UNAUTHENTICATED=new qr(null),qr.GOOGLE_CREDENTIALS=new qr("google-credentials-uid"),qr.FIRST_PARTY=new qr("first-party-uid"),qr.MOCK_USER=new qr("mock-user");let Br="10.8.0";const Ur=new class{constructor(t){this.name=t,this._logLevel=T,this._logHandler=x,this._userLogHandler=null}get logLevel(){return this._logLevel}set logLevel(t){if(!(t in _))throw new TypeError(`Invalid value "${t}" assigned to \`logLevel\``);this._logLevel=t}setLogLevel(t){this._logLevel="string"==typeof t?E[t]:t}get logHandler(){return this._logHandler}set logHandler(t){if("function"!=typeof t)throw new TypeError("Value assigned to `logHandler` must be a function");this._logHandler=t}get userLogHandler(){return this._userLogHandler}set userLogHandler(t){this._userLogHandler=t}debug(...t){this._userLogHandler&&this._userLogHandler(this,_.DEBUG,...t),this._logHandler(this,_.DEBUG,...t)}log(...t){this._userLogHandler&&this._userLogHandler(this,_.VERBOSE,...t),this._logHandler(this,_.VERBOSE,...t)}info(...t){this._userLogHandler&&this._userLogHandler(this,_.INFO,...t),this._logHandler(this,_.INFO,...t)}warn(...t){this._userLogHandler&&this._userLogHandler(this,_.WARN,...t),this._logHandler(this,_.WARN,...t)}error(...t){this._userLogHandler&&this._userLogHandler(this,_.ERROR,...t),this._logHandler(this,_.ERROR,...t)}}("@firebase/firestore");function zr(){return Ur.logLevel}function Gr(t){Ur.setLogLevel(t)}function jr(t,...e){if(Ur.logLevel<=_.DEBUG){const n=e.map(Qr);Ur.debug(`Firestore (${Br}): ${t}`,...n)}}function Kr(t,...e){if(Ur.logLevel<=_.ERROR){const n=e.map(Qr);Ur.error(`Firestore (${Br}): ${t}`,...n)}}function $r(t,...e){if(Ur.logLevel<=_.WARN){const n=e.map(Qr);Ur.warn(`Firestore (${Br}): ${t}`,...n)}}function Qr(t){if("string"==typeof t)return t;try{return function(t){return JSON.stringify(t)}(t)}catch(e){return t}}function Hr(t="Unexpected state"){const e=`FIRESTORE (${Br}) INTERNAL ASSERTION FAILED: `+t;throw Kr(e),new Error(e)}function Wr(t,e){t||Hr()}function Yr(t,e){t||Hr()}function Xr(t,e){return t}const Jr={OK:"ok",CANCELLED:"cancelled",UNKNOWN:"unknown",INVALID_ARGUMENT:"invalid-argument",DEADLINE_EXCEEDED:"deadline-exceeded",NOT_FOUND:"not-found",ALREADY_EXISTS:"already-exists",PERMISSION_DENIED:"permission-denied",UNAUTHENTICATED:"unauthenticated",RESOURCE_EXHAUSTED:"resource-exhausted",FAILED_PRECONDITION:"failed-precondition",ABORTED:"aborted",OUT_OF_RANGE:"out-of-range",UNIMPLEMENTED:"unimplemented",INTERNAL:"internal",UNAVAILABLE:"unavailable",DATA_LOSS:"data-loss"};class Zr extends g{constructor(t,e){super(t,e),this.code=t,this.message=e,this.toString=()=>`${this.name}: [code=${this.code}]: ${this.message}`}}class ts{constructor(){this.promise=new Promise(((t,e)=>{this.resolve=t,this.reject=e}))}}class es{constructor(t,e){this.user=e,this.type="OAuth",this.headers=new Map,this.headers.set("Authorization",`Bearer ${t}`)}}class ns{getToken(){return Promise.resolve(null)}invalidateToken(){}start(t,e){t.enqueueRetryable((()=>e(qr.UNAUTHENTICATED)))}shutdown(){}}class rs{constructor(t){this.token=t,this.changeListener=null}getToken(){return Promise.resolve(this.token)}invalidateToken(){}start(t,e){this.changeListener=e,t.enqueueRetryable((()=>e(this.token.user)))}shutdown(){this.changeListener=null}}class ss{constructor(t){this.t=t,this.currentUser=qr.UNAUTHENTICATED,this.i=0,this.forceRefresh=!1,this.auth=null}start(t,e){let n=this.i;const r=t=>this.i!==n?(n=this.i,e(t)):Promise.resolve();let s=new ts;this.o=()=>{this.i++,this.currentUser=this.u(),s.resolve(),s=new ts,t.enqueueRetryable((()=>r(this.currentUser)))};const i=()=>{const e=s;t.enqueueRetryable((async()=>{await e.promise,await r(this.currentUser)}))},o=t=>{jr("FirebaseAuthCredentialsProvider","Auth detected"),this.auth=t,this.auth.addAuthTokenListener(this.o),i()};this.t.onInit((t=>o(t))),setTimeout((()=>{if(!this.auth){const t=this.t.getImmediate({optional:!0});t?o(t):(jr("FirebaseAuthCredentialsProvider","Auth not yet detected"),s.resolve(),s=new ts)}}),0),i()}getToken(){const t=this.i,e=this.forceRefresh;return this.forceRefresh=!1,this.auth?this.auth.getToken(e).then((e=>this.i!==t?(jr("FirebaseAuthCredentialsProvider","getToken aborted due to token change."),this.getToken()):e?(Wr("string"==typeof e.accessToken),new es(e.accessToken,this.currentUser)):null)):Promise.resolve(null)}invalidateToken(){this.forceRefresh=!0}shutdown(){this.auth&&this.auth.removeAuthTokenListener(this.o)}u(){const t=this.auth&&this.auth.getUid();return Wr(null===t||"string"==typeof t),new qr(t)}}class is{constructor(t,e,n){this.l=t,this.h=e,this.P=n,this.type="FirstParty",this.user=qr.FIRST_PARTY,this.I=new Map}T(){return this.P?this.P():null}get headers(){this.I.set("X-Goog-AuthUser",this.l);const t=this.T();return t&&this.I.set("Authorization",t),this.h&&this.I.set("X-Goog-Iam-Authorization-Token",this.h),this.I}}class os{constructor(t,e,n){this.l=t,this.h=e,this.P=n}getToken(){return Promise.resolve(new is(this.l,this.h,this.P))}start(t,e){t.enqueueRetryable((()=>e(qr.FIRST_PARTY)))}shutdown(){}invalidateToken(){}}class as{constructor(t){this.value=t,this.type="AppCheck",this.headers=new Map,t&&t.length>0&&this.headers.set("x-firebase-appcheck",this.value)}}class us{constructor(t){this.A=t,this.forceRefresh=!1,this.appCheck=null,this.R=null}start(t,e){const n=t=>{null!=t.error&&jr("FirebaseAppCheckTokenProvider",`Error getting App Check token; using placeholder token instead. Error: ${t.error.message}`);const n=t.token!==this.R;return this.R=t.token,jr("FirebaseAppCheckTokenProvider",`Received ${n?"new":"existing"} token.`),n?e(t.token):Promise.resolve()};this.o=e=>{t.enqueueRetryable((()=>n(e)))};const r=t=>{jr("FirebaseAppCheckTokenProvider","AppCheck detected"),this.appCheck=t,this.appCheck.addTokenListener(this.o)};this.A.onInit((t=>r(t))),setTimeout((()=>{if(!this.appCheck){const t=this.A.getImmediate({optional:!0});t?r(t):jr("FirebaseAppCheckTokenProvider","AppCheck not yet detected")}}),0)}getToken(){const t=this.forceRefresh;return this.forceRefresh=!1,this.appCheck?this.appCheck.getToken(t).then((t=>t?(Wr("string"==typeof t.token),this.R=t.token,new as(t.token)):null)):Promise.resolve(null)}invalidateToken(){this.forceRefresh=!0}shutdown(){this.appCheck&&this.appCheck.removeTokenListener(this.o)}}class cs{getToken(){return Promise.resolve(new as(""))}invalidateToken(){}start(t,e){}shutdown(){}}function ls(t){const e="undefined"!=typeof self&&(self.crypto||self.msCrypto),n=new Uint8Array(t);if(e&&"function"==typeof e.getRandomValues)e.getRandomValues(n);else for(let e=0;ee?1:0}function fs(t,e,n){return t.length===e.length&&t.every(((t,r)=>n(t,e[r])))}function gs(t){return t+"\0"}class ms{constructor(t,e){if(this.seconds=t,this.nanoseconds=e,e<0)throw new Zr(Jr.INVALID_ARGUMENT,"Timestamp nanoseconds out of range: "+e);if(e>=1e9)throw new Zr(Jr.INVALID_ARGUMENT,"Timestamp nanoseconds out of range: "+e);if(t<-62135596800)throw new Zr(Jr.INVALID_ARGUMENT,"Timestamp seconds out of range: "+t);if(t>=253402300800)throw new Zr(Jr.INVALID_ARGUMENT,"Timestamp seconds out of range: "+t)}static now(){return ms.fromMillis(Date.now())}static fromDate(t){return ms.fromMillis(t.getTime())}static fromMillis(t){const e=Math.floor(t/1e3),n=Math.floor(1e6*(t-1e3*e));return new ms(e,n)}toDate(){return new Date(this.toMillis())}toMillis(){return 1e3*this.seconds+this.nanoseconds/1e6}_compareTo(t){return this.seconds===t.seconds?ds(this.nanoseconds,t.nanoseconds):ds(this.seconds,t.seconds)}isEqual(t){return t.seconds===this.seconds&&t.nanoseconds===this.nanoseconds}toString(){return"Timestamp(seconds="+this.seconds+", nanoseconds="+this.nanoseconds+")"}toJSON(){return{seconds:this.seconds,nanoseconds:this.nanoseconds}}valueOf(){const t=this.seconds- -62135596800;return String(t).padStart(12,"0")+"."+String(this.nanoseconds).padStart(9,"0")}}class ps{constructor(t){this.timestamp=t}static fromTimestamp(t){return new ps(t)}static min(){return new ps(new ms(0,0))}static max(){return new ps(new ms(253402300799,999999999))}compareTo(t){return this.timestamp._compareTo(t.timestamp)}isEqual(t){return this.timestamp.isEqual(t.timestamp)}toMicroseconds(){return 1e6*this.timestamp.seconds+this.timestamp.nanoseconds/1e3}toString(){return"SnapshotVersion("+this.timestamp.toString()+")"}toTimestamp(){return this.timestamp}}class ys{constructor(t,e,n){void 0===e?e=0:e>t.length&&Hr(),void 0===n?n=t.length-e:n>t.length-e&&Hr(),this.segments=t,this.offset=e,this.len=n}get length(){return this.len}isEqual(t){return 0===ys.comparator(this,t)}child(t){const e=this.segments.slice(this.offset,this.limit());return t instanceof ys?t.forEach((t=>{e.push(t)})):e.push(t),this.construct(e)}limit(){return this.offset+this.length}popFirst(t){return t=void 0===t?1:t,this.construct(this.segments,this.offset+t,this.length-t)}popLast(){return this.construct(this.segments,this.offset,this.length-1)}firstSegment(){return this.segments[this.offset]}lastSegment(){return this.get(this.length-1)}get(t){return this.segments[this.offset+t]}isEmpty(){return 0===this.length}isPrefixOf(t){if(t.lengths)return 1}return t.lengthe.length?1:0}}class ws extends ys{construct(t,e,n){return new ws(t,e,n)}canonicalString(){return this.toArray().join("/")}toString(){return this.canonicalString()}toUriEncodedString(){return this.toArray().map(encodeURIComponent).join("/")}static fromString(...t){const e=[];for(const n of t){if(n.indexOf("//")>=0)throw new Zr(Jr.INVALID_ARGUMENT,`Invalid segment (${n}). Paths must not contain // in them.`);e.push(...n.split("/").filter((t=>t.length>0)))}return new ws(e)}static emptyPath(){return new ws([])}}const vs=/^[_a-zA-Z][_a-zA-Z0-9]*$/;class bs extends ys{construct(t,e,n){return new bs(t,e,n)}static isValidIdentifier(t){return vs.test(t)}canonicalString(){return this.toArray().map((t=>(t=t.replace(/\\/g,"\\\\").replace(/`/g,"\\`"),bs.isValidIdentifier(t)||(t="`"+t+"`"),t))).join(".")}toString(){return this.canonicalString()}isKeyField(){return 1===this.length&&"__name__"===this.get(0)}static keyField(){return new bs(["__name__"])}static fromServerFormat(t){const e=[];let n="",r=0;const s=()=>{if(0===n.length)throw new Zr(Jr.INVALID_ARGUMENT,`Invalid field path (${t}). Paths must not be empty, begin with '.', end with '.', or contain '..'`);e.push(n),n=""};let i=!1;for(;r=2&&this.path.get(this.path.length-2)===t}getCollectionGroup(){return this.path.get(this.path.length-2)}getCollectionPath(){return this.path.popLast()}isEqual(t){return null!==t&&0===ws.comparator(this.path,t.path)}toString(){return this.path.toString()}static comparator(t,e){return ws.comparator(t.path,e.path)}static isDocumentKey(t){return t.length%2==0}static fromSegments(t){return new _s(new ws(t.slice()))}}class Is{constructor(t,e,n,r){this.indexId=t,this.collectionGroup=e,this.fields=n,this.indexState=r}}function Es(t){return t.fields.find((t=>2===t.kind))}function Ts(t){return t.fields.filter((t=>2!==t.kind))}function Ss(t,e){let n=ds(t.collectionGroup,e.collectionGroup);if(0!==n)return n;for(let r=0;rt()))}}async function Os(t){if(t.code!==Jr.FAILED_PRECONDITION||t.message!==Ms)throw t;jr("LocalStore","Unexpectedly lost primary lease")}class Ps{constructor(t){this.nextCallback=null,this.catchCallback=null,this.result=void 0,this.error=void 0,this.isDone=!1,this.callbackAttached=!1,t((t=>{this.isDone=!0,this.result=t,this.nextCallback&&this.nextCallback(t)}),(t=>{this.isDone=!0,this.error=t,this.catchCallback&&this.catchCallback(t)}))}catch(t){return this.next(void 0,t)}next(t,e){return this.callbackAttached&&Hr(),this.callbackAttached=!0,this.isDone?this.error?this.wrapFailure(e,this.error):this.wrapSuccess(t,this.result):new Ps(((n,r)=>{this.nextCallback=e=>{this.wrapSuccess(t,e).next(n,r)},this.catchCallback=t=>{this.wrapFailure(e,t).next(n,r)}}))}toPromise(){return new Promise(((t,e)=>{this.next(t,e)}))}wrapUserFunction(t){try{const e=t();return e instanceof Ps?e:Ps.resolve(e)}catch(t){return Ps.reject(t)}}wrapSuccess(t,e){return t?this.wrapUserFunction((()=>t(e))):Ps.resolve(e)}wrapFailure(t,e){return t?this.wrapUserFunction((()=>t(e))):Ps.reject(e)}static resolve(t){return new Ps(((e,n)=>{e(t)}))}static reject(t){return new Ps(((e,n)=>{n(t)}))}static waitFor(t){return new Ps(((e,n)=>{let r=0,s=0,i=!1;t.forEach((t=>{++r,t.next((()=>{++s,i&&s===r&&e()}),(t=>n(t)))})),i=!0,s===r&&e()}))}static or(t){let e=Ps.resolve(!1);for(const n of t)e=e.next((t=>t?Ps.resolve(t):n()));return e}static forEach(t,e){const n=[];return t.forEach(((t,r)=>{n.push(e.call(this,t,r))})),this.waitFor(n)}static mapArray(t,e){return new Ps(((n,r)=>{const s=t.length,i=new Array(s);let o=0;for(let a=0;a{i[u]=t,++o,o===s&&n(i)}),(t=>r(t)))}}))}static doWhile(t,e){return new Ps(((n,r)=>{const s=()=>{!0===t()?e().next((()=>{s()}),r):n()};s()}))}}class Fs{constructor(t,e){this.action=t,this.transaction=e,this.aborted=!1,this.V=new ts,this.transaction.oncomplete=()=>{this.V.resolve()},this.transaction.onabort=()=>{e.error?this.V.reject(new Bs(t,e.error)):this.V.resolve()},this.transaction.onerror=e=>{const n=Ks(e.target.error);this.V.reject(new Bs(t,n))}}static open(t,e,n,r){try{return new Fs(e,t.transaction(r,n))}catch(t){throw new Bs(e,t)}}get m(){return this.V.promise}abort(t){t&&this.V.reject(t),this.aborted||(jr("SimpleDb","Aborting transaction:",t?t.message:"Client-initiated abort"),this.aborted=!0,this.transaction.abort())}g(){const t=this.transaction;this.aborted||"function"!=typeof t.commit||t.commit()}store(t){const e=this.transaction.objectStore(t);return new zs(e)}}class Vs{constructor(t,e,n){this.name=t,this.version=e,this.p=n,12.2===Vs.S(d())&&Kr("Firestore persistence suffers from a bug in iOS 12.2 Safari that may cause your app to stop working. See https://stackoverflow.com/q/56496296/110915 for details and a potential workaround.")}static delete(t){return jr("SimpleDb","Removing database:",t),Gs(window.indexedDB.deleteDatabase(t)).toPromise()}static D(){if(!function(){try{return"object"==typeof indexedDB}catch(t){return!1}}())return!1;if(Vs.C())return!0;const t=d(),e=Vs.S(t),n=00||t.indexOf("Trident/")>0||t.indexOf("Edge/")>0||n||s)}static C(){var t;return void 0!==o&&"YES"===(null===(t=o.__PRIVATE_env)||void 0===t?void 0:t.F)}static M(t,e){return t.store(e)}static S(t){const e=t.match(/i(?:phone|pad|pod) os ([\d_]+)/i),n=e?e[1].split("_").slice(0,2).join("."):"-1";return Number(n)}static v(t){const e=t.match(/Android ([\d.]+)/i),n=e?e[1].split(".").slice(0,2).join("."):"-1";return Number(n)}async O(t){return this.db||(jr("SimpleDb","Opening database:",this.name),this.db=await new Promise(((e,n)=>{const r=indexedDB.open(this.name,this.version);r.onsuccess=t=>{const n=t.target.result;e(n)},r.onblocked=()=>{n(new Bs(t,"Cannot upgrade IndexedDB schema while another tab is open. Close all tabs that access Firestore and reload this page to proceed."))},r.onerror=e=>{const r=e.target.error;"VersionError"===r.name?n(new Zr(Jr.FAILED_PRECONDITION,"A newer version of the Firestore SDK was previously used and so the persisted data is not compatible with the version of the SDK you are now using. The SDK will operate with persistence disabled. If you need persistence, please re-upgrade to a newer version of the SDK or else clear the persisted IndexedDB data for your app to start fresh.")):"InvalidStateError"===r.name?n(new Zr(Jr.FAILED_PRECONDITION,"Unable to open an IndexedDB connection. This could be due to running in a private browsing session on a browser whose private browsing sessions do not support IndexedDB: "+r)):n(new Bs(t,r))},r.onupgradeneeded=t=>{jr("SimpleDb",'Database "'+this.name+'" requires upgrade from version:',t.oldVersion);const e=t.target.result;this.p.N(e,r.transaction,t.oldVersion,this.version).next((()=>{jr("SimpleDb","Database upgrade to version "+this.version+" complete")}))}}))),this.B&&(this.db.onversionchange=t=>this.B(t)),this.db}L(t){this.B=t,this.db&&(this.db.onversionchange=e=>t(e))}async runTransaction(t,e,n,r){const s="readonly"===e;let i=0;for(;;){++i;try{this.db=await this.O(t);const e=Fs.open(this.db,t,s?"readonly":"readwrite",n),i=r(e).next((t=>(e.g(),t))).catch((t=>(e.abort(t),Ps.reject(t)))).toPromise();return i.catch((()=>{})),await e.m,i}catch(t){const e=t,n="FirebaseError"!==e.name&&i<3;if(jr("SimpleDb","Transaction failed with error:",e.message,"Retrying:",n),this.close(),!n)return Promise.reject(e)}}}close(){this.db&&this.db.close(),this.db=void 0}}class qs{constructor(t){this.k=t,this.q=!1,this.K=null}get isDone(){return this.q}get $(){return this.K}set cursor(t){this.k=t}done(){this.q=!0}U(t){this.K=t}delete(){return Gs(this.k.delete())}}class Bs extends Zr{constructor(t,e){super(Jr.UNAVAILABLE,`IndexedDB transaction '${t}' failed: ${e}`),this.name="IndexedDbTransactionError"}}function Us(t){return"IndexedDbTransactionError"===t.name}class zs{constructor(t){this.store=t}put(t,e){let n;return void 0!==e?(jr("SimpleDb","PUT",this.store.name,t,e),n=this.store.put(e,t)):(jr("SimpleDb","PUT",this.store.name,"",t),n=this.store.put(t)),Gs(n)}add(t){return jr("SimpleDb","ADD",this.store.name,t,t),Gs(this.store.add(t))}get(t){return Gs(this.store.get(t)).next((e=>(void 0===e&&(e=null),jr("SimpleDb","GET",this.store.name,t,e),e)))}delete(t){return jr("SimpleDb","DELETE",this.store.name,t),Gs(this.store.delete(t))}count(){return jr("SimpleDb","COUNT",this.store.name),Gs(this.store.count())}W(t,e){const n=this.options(t,e),r=n.index?this.store.index(n.index):this.store;if("function"==typeof r.getAll){const t=r.getAll(n.range);return new Ps(((e,n)=>{t.onerror=t=>{n(t.target.error)},t.onsuccess=t=>{e(t.target.result)}}))}{const t=this.cursor(n),e=[];return this.G(t,((t,n)=>{e.push(n)})).next((()=>e))}}j(t,e){const n=this.store.getAll(t,null===e?void 0:e);return new Ps(((t,e)=>{n.onerror=t=>{e(t.target.error)},n.onsuccess=e=>{t(e.target.result)}}))}H(t,e){jr("SimpleDb","DELETE ALL",this.store.name);const n=this.options(t,e);n.J=!1;const r=this.cursor(n);return this.G(r,((t,e,n)=>n.delete()))}Y(t,e){let n;e?n=t:(n={},e=t);const r=this.cursor(n);return this.G(r,e)}Z(t){const e=this.cursor({});return new Ps(((n,r)=>{e.onerror=t=>{const e=Ks(t.target.error);r(e)},e.onsuccess=e=>{const r=e.target.result;r?t(r.primaryKey,r.value).next((t=>{t?r.continue():n()})):n()}}))}G(t,e){const n=[];return new Ps(((r,s)=>{t.onerror=t=>{s(t.target.error)},t.onsuccess=t=>{const s=t.target.result;if(!s)return void r();const i=new qs(s),o=e(s.primaryKey,s.value,i);if(o instanceof Ps){const t=o.catch((t=>(i.done(),Ps.reject(t))));n.push(t)}i.isDone?r():null===i.$?s.continue():s.continue(i.$)}})).next((()=>Ps.waitFor(n)))}options(t,e){let n;return void 0!==t&&("string"==typeof t?n=t:e=t),{index:n,range:e}}cursor(t){let e="next";if(t.reverse&&(e="prev"),t.index){const n=this.store.index(t.index);return t.J?n.openKeyCursor(t.range,e):n.openCursor(t.range,e)}return this.store.openCursor(t.range,e)}}function Gs(t){return new Ps(((e,n)=>{t.onsuccess=t=>{const n=t.target.result;e(n)},t.onerror=t=>{const e=Ks(t.target.error);n(e)}}))}let js=!1;function Ks(t){const e=Vs.S(d());if(e>=12.2&&e<13){const e="An internal error was encountered in the Indexed Database server";if(t.message.indexOf(e)>=0){const t=new Zr("internal",`IOS_INDEXEDDB_BUG1: IndexedDb has thrown '${e}'. This is likely due to an unavoidable bug in iOS. See https://stackoverflow.com/q/56496296/110915 for details and a potential workaround.`);return js||(js=!0,setTimeout((()=>{throw t}),0)),t}}return t}class $s{constructor(t,e){this.asyncQueue=t,this.X=e,this.task=null}start(){this.ee(15e3)}stop(){this.task&&(this.task.cancel(),this.task=null)}get started(){return null!==this.task}ee(t){jr("IndexBackfiller",`Scheduled in ${t}ms`),this.task=this.asyncQueue.enqueueAfterDelay("index_backfill",t,(async()=>{this.task=null;try{jr("IndexBackfiller",`Documents written: ${await this.X.te()}`)}catch(t){Us(t)?jr("IndexBackfiller","Ignoring IndexedDB error during index backfill: ",t):await Os(t)}await this.ee(6e4)}))}}class Qs{constructor(t,e){this.localStore=t,this.persistence=e}async te(t=50){return this.persistence.runTransaction("Backfill Indexes","readwrite-primary",(e=>this.ne(e,t)))}ne(t,e){const n=new Set;let r=e,s=!0;return Ps.doWhile((()=>!0===s&&r>0),(()=>this.localStore.indexManager.getNextCollectionGroupToUpdate(t).next((e=>{if(null!==e&&!n.has(e))return jr("IndexBackfiller",`Processing collection: ${e}`),this.re(t,e,r).next((t=>{r-=t,n.add(e)}));s=!1})))).next((()=>e-r))}re(t,e,n){return this.localStore.indexManager.getMinOffsetFromCollectionGroup(t,e).next((r=>this.localStore.localDocuments.getNextDocuments(t,e,r,n).next((n=>{const s=n.changes;return this.localStore.indexManager.updateIndexEntries(t,s).next((()=>this.ie(r,n))).next((n=>(jr("IndexBackfiller",`Updating offset: ${n}`),this.localStore.indexManager.updateCollectionGroup(t,e,n)))).next((()=>s.size))}))))}ie(t,e){let n=t;return e.changes.forEach(((t,e)=>{const r=Ns(e);Rs(r,n)>0&&(n=r)})),new ks(n.readTime,n.documentKey,Math.max(e.batchId,t.largestBatchId))}}class Hs{constructor(t,e){this.previousValue=t,e&&(e.sequenceNumberHandler=t=>this.se(t),this.oe=t=>e.writeSequenceNumber(t))}se(t){return this.previousValue=Math.max(t,this.previousValue),this.previousValue}next(){const t=++this.previousValue;return this.oe&&this.oe(t),t}}function Ws(t){return null==t}function Ys(t){return 0===t&&1/t==-1/0}function Xs(t){return"number"==typeof t&&Number.isInteger(t)&&!Ys(t)&&t<=Number.MAX_SAFE_INTEGER&&t>=Number.MIN_SAFE_INTEGER}function Js(t){let e="";for(let n=0;n0&&(e=ti(e)),e=Zs(t.get(n),e);return ti(e)}function Zs(t,e){let n=e;const r=t.length;for(let e=0;e=2),2===e)return Wr(""===t.charAt(0)&&""===t.charAt(1)),ws.emptyPath();const n=e-2,r=[];let s="";for(let i=0;in)&&Hr(),t.charAt(e+1)){case"":const n=t.substring(i,e);let o;0===s.length?o=n:(s+=n,o=s,s=""),r.push(o);break;case"":s+=t.substring(i,e),s+="\0";break;case"":s+=t.substring(i,e+1);break;default:Hr()}i=e+2}return new ws(r)}Hs._e=-1;const ni=["userId","batchId"];function ri(t,e){return[t,Js(e)]}function si(t,e,n){return[t,Js(e),n]}const ii={},oi=["prefixPath","collectionGroup","readTime","documentId"],ai=["prefixPath","collectionGroup","documentId"],ui=["collectionGroup","readTime","prefixPath","documentId"],ci=["canonicalId","targetId"],li=["targetId","path"],hi=["path","targetId"],di=["collectionId","parent"],fi=["indexId","uid"],gi=["uid","sequenceNumber"],mi=["indexId","uid","arrayValue","directionalValue","orderedDocumentKey","documentKey"],pi=["indexId","uid","orderedDocumentKey"],yi=["userId","collectionPath","documentId"],wi=["userId","collectionPath","largestBatchId"],vi=["userId","collectionGroup","largestBatchId"],bi=["mutationQueues","mutations","documentMutations","remoteDocuments","targets","owner","targetGlobal","targetDocuments","clientMetadata","remoteDocumentGlobal","collectionParents","bundles","namedQueries"],_i=[...bi,"documentOverlays"],Ii=["mutationQueues","mutations","documentMutations","remoteDocumentsV14","targets","owner","targetGlobal","targetDocuments","clientMetadata","remoteDocumentGlobal","collectionParents","bundles","namedQueries","documentOverlays"],Ei=Ii,Ti=[...Ei,"indexConfiguration","indexState","indexEntries"];class Si extends Ls{constructor(t,e){super(),this.ae=t,this.currentSequenceNumber=e}}function xi(t,e){const n=Xr(t);return Vs.M(n.ae,e)}function Ci(t){let e=0;for(const n in t)Object.prototype.hasOwnProperty.call(t,n)&&e++;return e}function Di(t,e){for(const n in t)Object.prototype.hasOwnProperty.call(t,n)&&e(n,t[n])}function Ai(t){for(const e in t)if(Object.prototype.hasOwnProperty.call(t,e))return!1;return!0}class Ni{constructor(t,e){this.comparator=t,this.root=e||Ri.EMPTY}insert(t,e){return new Ni(this.comparator,this.root.insert(t,e,this.comparator).copy(null,null,Ri.BLACK,null,null))}remove(t){return new Ni(this.comparator,this.root.remove(t,this.comparator).copy(null,null,Ri.BLACK,null,null))}get(t){let e=this.root;for(;!e.isEmpty();){const n=this.comparator(t,e.key);if(0===n)return e.value;n<0?e=e.left:n>0&&(e=e.right)}return null}indexOf(t){let e=0,n=this.root;for(;!n.isEmpty();){const r=this.comparator(t,n.key);if(0===r)return e+n.left.size;r<0?n=n.left:(e+=n.left.size+1,n=n.right)}return-1}isEmpty(){return this.root.isEmpty()}get size(){return this.root.size}minKey(){return this.root.minKey()}maxKey(){return this.root.maxKey()}inorderTraversal(t){return this.root.inorderTraversal(t)}forEach(t){this.inorderTraversal(((e,n)=>(t(e,n),!1)))}toString(){const t=[];return this.inorderTraversal(((e,n)=>(t.push(`${e}:${n}`),!1))),`{${t.join(", ")}}`}reverseTraversal(t){return this.root.reverseTraversal(t)}getIterator(){return new ki(this.root,null,this.comparator,!1)}getIteratorFrom(t){return new ki(this.root,t,this.comparator,!1)}getReverseIterator(){return new ki(this.root,null,this.comparator,!0)}getReverseIteratorFrom(t){return new ki(this.root,t,this.comparator,!0)}}class ki{constructor(t,e,n,r){this.isReverse=r,this.nodeStack=[];let s=1;for(;!t.isEmpty();)if(s=e?n(t.key,e):1,e&&r&&(s*=-1),s<0)t=this.isReverse?t.left:t.right;else{if(0===s){this.nodeStack.push(t);break}this.nodeStack.push(t),t=this.isReverse?t.right:t.left}}getNext(){let t=this.nodeStack.pop();const e={key:t.key,value:t.value};if(this.isReverse)for(t=t.left;!t.isEmpty();)this.nodeStack.push(t),t=t.right;else for(t=t.right;!t.isEmpty();)this.nodeStack.push(t),t=t.left;return e}hasNext(){return this.nodeStack.length>0}peek(){if(0===this.nodeStack.length)return null;const t=this.nodeStack[this.nodeStack.length-1];return{key:t.key,value:t.value}}}class Ri{constructor(t,e,n,r,s){this.key=t,this.value=e,this.color=null!=n?n:Ri.RED,this.left=null!=r?r:Ri.EMPTY,this.right=null!=s?s:Ri.EMPTY,this.size=this.left.size+1+this.right.size}copy(t,e,n,r,s){return new Ri(null!=t?t:this.key,null!=e?e:this.value,null!=n?n:this.color,null!=r?r:this.left,null!=s?s:this.right)}isEmpty(){return!1}inorderTraversal(t){return this.left.inorderTraversal(t)||t(this.key,this.value)||this.right.inorderTraversal(t)}reverseTraversal(t){return this.right.reverseTraversal(t)||t(this.key,this.value)||this.left.reverseTraversal(t)}min(){return this.left.isEmpty()?this:this.left.min()}minKey(){return this.min().key}maxKey(){return this.right.isEmpty()?this.key:this.right.maxKey()}insert(t,e,n){let r=this;const s=n(t,r.key);return r=s<0?r.copy(null,null,null,r.left.insert(t,e,n),null):0===s?r.copy(null,e,null,null,null):r.copy(null,null,null,null,r.right.insert(t,e,n)),r.fixUp()}removeMin(){if(this.left.isEmpty())return Ri.EMPTY;let t=this;return t.left.isRed()||t.left.left.isRed()||(t=t.moveRedLeft()),t=t.copy(null,null,null,t.left.removeMin(),null),t.fixUp()}remove(t,e){let n,r=this;if(e(t,r.key)<0)r.left.isEmpty()||r.left.isRed()||r.left.left.isRed()||(r=r.moveRedLeft()),r=r.copy(null,null,null,r.left.remove(t,e),null);else{if(r.left.isRed()&&(r=r.rotateRight()),r.right.isEmpty()||r.right.isRed()||r.right.left.isRed()||(r=r.moveRedRight()),0===e(t,r.key)){if(r.right.isEmpty())return Ri.EMPTY;n=r.right.min(),r=r.copy(n.key,n.value,null,null,r.right.removeMin())}r=r.copy(null,null,null,null,r.right.remove(t,e))}return r.fixUp()}isRed(){return this.color}fixUp(){let t=this;return t.right.isRed()&&!t.left.isRed()&&(t=t.rotateLeft()),t.left.isRed()&&t.left.left.isRed()&&(t=t.rotateRight()),t.left.isRed()&&t.right.isRed()&&(t=t.colorFlip()),t}moveRedLeft(){let t=this.colorFlip();return t.right.left.isRed()&&(t=t.copy(null,null,null,null,t.right.rotateRight()),t=t.rotateLeft(),t=t.colorFlip()),t}moveRedRight(){let t=this.colorFlip();return t.left.left.isRed()&&(t=t.rotateRight(),t=t.colorFlip()),t}rotateLeft(){const t=this.copy(null,null,Ri.RED,null,this.right.left);return this.right.copy(null,null,this.color,t,null)}rotateRight(){const t=this.copy(null,null,Ri.RED,this.left.right,null);return this.left.copy(null,null,this.color,null,t)}colorFlip(){const t=this.left.copy(null,null,!this.left.color,null,null),e=this.right.copy(null,null,!this.right.color,null,null);return this.copy(null,null,!this.color,t,e)}checkMaxDepth(){const t=this.check();return Math.pow(2,t)<=this.size+1}check(){if(this.isRed()&&this.left.isRed())throw Hr();if(this.right.isRed())throw Hr();const t=this.left.check();if(t!==this.right.check())throw Hr();return t+(this.isRed()?0:1)}}Ri.EMPTY=null,Ri.RED=!0,Ri.BLACK=!1,Ri.EMPTY=new class{constructor(){this.size=0}get key(){throw Hr()}get value(){throw Hr()}get color(){throw Hr()}get left(){throw Hr()}get right(){throw Hr()}copy(t,e,n,r,s){return this}insert(t,e,n){return new Ri(t,e)}remove(t,e){return this}isEmpty(){return!0}inorderTraversal(t){return!1}reverseTraversal(t){return!1}minKey(){return null}maxKey(){return null}isRed(){return!1}checkMaxDepth(){return!0}check(){return 0}};class Mi{constructor(t){this.comparator=t,this.data=new Ni(this.comparator)}has(t){return null!==this.data.get(t)}first(){return this.data.minKey()}last(){return this.data.maxKey()}get size(){return this.data.size}indexOf(t){return this.data.indexOf(t)}forEach(t){this.data.inorderTraversal(((e,n)=>(t(e),!1)))}forEachInRange(t,e){const n=this.data.getIteratorFrom(t[0]);for(;n.hasNext();){const r=n.getNext();if(this.comparator(r.key,t[1])>=0)return;e(r.key)}}forEachWhile(t,e){let n;for(n=void 0!==e?this.data.getIteratorFrom(e):this.data.getIterator();n.hasNext();)if(!t(n.getNext().key))return}firstAfterOrEqual(t){const e=this.data.getIteratorFrom(t);return e.hasNext()?e.getNext().key:null}getIterator(){return new Li(this.data.getIterator())}getIteratorFrom(t){return new Li(this.data.getIteratorFrom(t))}add(t){return this.copy(this.data.remove(t).insert(t,!0))}delete(t){return this.has(t)?this.copy(this.data.remove(t)):this}isEmpty(){return this.data.isEmpty()}unionWith(t){let e=this;return e.size{e=e.add(t)})),e}isEqual(t){if(!(t instanceof Mi))return!1;if(this.size!==t.size)return!1;const e=this.data.getIterator(),n=t.data.getIterator();for(;e.hasNext();){const t=e.getNext().key,r=n.getNext().key;if(0!==this.comparator(t,r))return!1}return!0}toArray(){const t=[];return this.forEach((e=>{t.push(e)})),t}toString(){const t=[];return this.forEach((e=>t.push(e))),"SortedSet("+t.toString()+")"}copy(t){const e=new Mi(this.comparator);return e.data=t,e}}class Li{constructor(t){this.iter=t}getNext(){return this.iter.getNext().key}hasNext(){return this.iter.hasNext()}}function Oi(t){return t.hasNext()?t.getNext():void 0}class Pi{constructor(t){this.fields=t,t.sort(bs.comparator)}static empty(){return new Pi([])}unionWith(t){let e=new Mi(bs.comparator);for(const t of this.fields)e=e.add(t);for(const n of t)e=e.add(n);return new Pi(e.toArray())}covers(t){for(const e of this.fields)if(e.isPrefixOf(t))return!0;return!1}isEqual(t){return fs(this.fields,t.fields,((t,e)=>t.isEqual(e)))}}class Fi extends Error{constructor(){super(...arguments),this.name="Base64DecodeError"}}function Vi(){return"undefined"!=typeof atob}class qi{constructor(t){this.binaryString=t}static fromBase64String(t){const e=function(t){try{return atob(t)}catch(t){throw"undefined"!=typeof DOMException&&t instanceof DOMException?new Fi("Invalid base64 string: "+t):t}}(t);return new qi(e)}static fromUint8Array(t){const e=function(t){let e="";for(let n=0;ntJi(t,e)))}function to(t,e){if(t===e)return 0;const n=Xi(t),r=Xi(e);if(n!==r)return ds(n,r);switch(n){case 0:case 9007199254740991:return 0;case 1:return ds(t.booleanValue,e.booleanValue);case 2:return function(t,e){const n=zi(t.integerValue||t.doubleValue),r=zi(e.integerValue||e.doubleValue);return nr?1:n===r?0:isNaN(n)?isNaN(r)?0:-1:1}(t,e);case 3:return eo(t.timestampValue,e.timestampValue);case 4:return eo($i(t),$i(e));case 5:return ds(t.stringValue,e.stringValue);case 6:return function(t,e){const n=Gi(t),r=Gi(e);return n.compareTo(r)}(t.bytesValue,e.bytesValue);case 7:return function(t,e){const n=t.split("/"),r=e.split("/");for(let t=0;tt+so(e)),0)}(t.arrayValue);case 10:return function(t){let e=0;return Di(t.fields,((t,n)=>{e+=t.length+so(n)})),e}(t.mapValue);default:throw Hr()}}function io(t,e){return{referenceValue:`projects/${t.projectId}/databases/${t.database}/documents/${e.path.canonicalString()}`}}function oo(t){return!!t&&"integerValue"in t}function ao(t){return!!t&&"arrayValue"in t}function uo(t){return!!t&&"nullValue"in t}function co(t){return!!t&&"doubleValue"in t&&isNaN(Number(t.doubleValue))}function lo(t){return!!t&&"mapValue"in t}function ho(t){if(t.geoPointValue)return{geoPointValue:Object.assign({},t.geoPointValue)};if(t.timestampValue&&"object"==typeof t.timestampValue)return{timestampValue:Object.assign({},t.timestampValue)};if(t.mapValue){const e={mapValue:{fields:{}}};return Di(t.mapValue.fields,((t,n)=>e.mapValue.fields[t]=ho(n))),e}if(t.arrayValue){const e={arrayValue:{values:[]}};for(let n=0;n<(t.arrayValue.values||[]).length;++n)e.arrayValue.values[n]=ho(t.arrayValue.values[n]);return e}return Object.assign({},t)}function fo(t){return"__max__"===(((t.mapValue||{}).fields||{}).__type__||{}).stringValue}function go(t){return"nullValue"in t?Yi:"booleanValue"in t?{booleanValue:!1}:"integerValue"in t||"doubleValue"in t?{doubleValue:NaN}:"timestampValue"in t?{timestampValue:{seconds:Number.MIN_SAFE_INTEGER}}:"stringValue"in t?{stringValue:""}:"bytesValue"in t?{bytesValue:""}:"referenceValue"in t?io(Hi.empty(),_s.empty()):"geoPointValue"in t?{geoPointValue:{latitude:-90,longitude:-180}}:"arrayValue"in t?{arrayValue:{}}:"mapValue"in t?{mapValue:{}}:Hr()}function mo(t){return"nullValue"in t?{booleanValue:!1}:"booleanValue"in t?{doubleValue:NaN}:"integerValue"in t||"doubleValue"in t?{timestampValue:{seconds:Number.MIN_SAFE_INTEGER}}:"timestampValue"in t?{stringValue:""}:"stringValue"in t?{bytesValue:""}:"bytesValue"in t?io(Hi.empty(),_s.empty()):"referenceValue"in t?{geoPointValue:{latitude:-90,longitude:-180}}:"geoPointValue"in t?{arrayValue:{}}:"arrayValue"in t?{mapValue:{}}:"mapValue"in t?Wi:Hr()}function po(t,e){const n=to(t.value,e.value);return 0!==n?n:t.inclusive&&!e.inclusive?-1:!t.inclusive&&e.inclusive?1:0}function yo(t,e){const n=to(t.value,e.value);return 0!==n?n:t.inclusive&&!e.inclusive?1:!t.inclusive&&e.inclusive?-1:0}class wo{constructor(t){this.value=t}static empty(){return new wo({mapValue:{}})}field(t){if(t.isEmpty())return this.value;{let e=this.value;for(let n=0;n{if(!e.isImmediateParentOf(s)){const t=this.getFieldsMap(e);this.applyChanges(t,n,r),n={},r=[],e=s.popLast()}t?n[s.lastSegment()]=ho(t):r.push(s.lastSegment())}));const s=this.getFieldsMap(e);this.applyChanges(s,n,r)}delete(t){const e=this.field(t.popLast());lo(e)&&e.mapValue.fields&&delete e.mapValue.fields[t.lastSegment()]}isEqual(t){return Ji(this.value,t.value)}getFieldsMap(t){let e=this.value;e.mapValue.fields||(e.mapValue={fields:{}});for(let n=0;nt[e]=n));for(const e of n)delete t[e]}clone(){return new wo(ho(this.value))}}function vo(t){const e=[];return Di(t.fields,((t,n)=>{const r=new bs([t]);if(lo(n)){const t=vo(n.mapValue).fields;if(0===t.length)e.push(r);else for(const n of t)e.push(r.child(n))}else e.push(r)})),new Pi(e)}class bo{constructor(t,e,n,r,s,i,o){this.key=t,this.documentType=e,this.version=n,this.readTime=r,this.createTime=s,this.data=i,this.documentState=o}static newInvalidDocument(t){return new bo(t,0,ps.min(),ps.min(),ps.min(),wo.empty(),0)}static newFoundDocument(t,e,n,r){return new bo(t,1,e,ps.min(),n,r,0)}static newNoDocument(t,e){return new bo(t,2,e,ps.min(),ps.min(),wo.empty(),0)}static newUnknownDocument(t,e){return new bo(t,3,e,ps.min(),ps.min(),wo.empty(),2)}convertToFoundDocument(t,e){return!this.createTime.isEqual(ps.min())||2!==this.documentType&&0!==this.documentType||(this.createTime=t),this.version=t,this.documentType=1,this.data=e,this.documentState=0,this}convertToNoDocument(t){return this.version=t,this.documentType=2,this.data=wo.empty(),this.documentState=0,this}convertToUnknownDocument(t){return this.version=t,this.documentType=3,this.data=wo.empty(),this.documentState=2,this}setHasCommittedMutations(){return this.documentState=2,this}setHasLocalMutations(){return this.documentState=1,this.version=ps.min(),this}setReadTime(t){return this.readTime=t,this}get hasLocalMutations(){return 1===this.documentState}get hasCommittedMutations(){return 2===this.documentState}get hasPendingWrites(){return this.hasLocalMutations||this.hasCommittedMutations}isValidDocument(){return 0!==this.documentType}isFoundDocument(){return 1===this.documentType}isNoDocument(){return 2===this.documentType}isUnknownDocument(){return 3===this.documentType}isEqual(t){return t instanceof bo&&this.key.isEqual(t.key)&&this.version.isEqual(t.version)&&this.documentType===t.documentType&&this.documentState===t.documentState&&this.data.isEqual(t.data)}mutableCopy(){return new bo(this.key,this.documentType,this.version,this.readTime,this.createTime,this.data.clone(),this.documentState)}toString(){return`Document(${this.key}, ${this.version}, ${JSON.stringify(this.data.value)}, {createTime: ${this.createTime}}), {documentType: ${this.documentType}}), {documentState: ${this.documentState}})`}}class _o{constructor(t,e){this.position=t,this.inclusive=e}}function Io(t,e,n){let r=0;for(let s=0;s":return t>0;case">=":return t>=0;default:return Hr()}}isInequality(){return["<","<=",">",">=","!=","not-in"].indexOf(this.op)>=0}getFlattenedFilters(){return[this]}getFilters(){return[this]}}class Do extends xo{constructor(t,e){super(),this.filters=t,this.op=e,this.ue=null}static create(t,e){return new Do(t,e)}matches(t){return Ao(this)?void 0===this.filters.find((e=>!e.matches(t))):void 0!==this.filters.find((e=>e.matches(t)))}getFlattenedFilters(){return null!==this.ue||(this.ue=this.filters.reduce(((t,e)=>t.concat(e.getFlattenedFilters())),[])),this.ue}getFilters(){return Object.assign([],this.filters)}}function Ao(t){return"and"===t.op}function No(t){return"or"===t.op}function ko(t){return Ro(t)&&Ao(t)}function Ro(t){for(const e of t.filters)if(e instanceof Do)return!1;return!0}function Mo(t){if(t instanceof Co)return t.field.canonicalString()+t.op.toString()+no(t.value);if(ko(t))return t.filters.map((t=>Mo(t))).join(",");{const e=t.filters.map((t=>Mo(t))).join(",");return`${t.op}(${e})`}}function Lo(t,e){return t instanceof Co?function(t,e){return e instanceof Co&&t.op===e.op&&t.field.isEqual(e.field)&&Ji(t.value,e.value)}(t,e):t instanceof Do?function(t,e){return e instanceof Do&&t.op===e.op&&t.filters.length===e.filters.length&&t.filters.reduce(((t,n,r)=>t&&Lo(n,e.filters[r])),!0)}(t,e):void Hr()}function Oo(t,e){const n=t.filters.concat(e);return Do.create(n,t.op)}function Po(t){return t instanceof Co?function(t){return`${t.field.canonicalString()} ${t.op} ${no(t.value)}`}(t):t instanceof Do?function(t){return t.op.toString()+" {"+t.getFilters().map(Po).join(" ,")+"}"}(t):"Filter"}class Fo extends Co{constructor(t,e,n){super(t,e,n),this.key=_s.fromName(n.referenceValue)}matches(t){const e=_s.comparator(t.key,this.key);return this.matchesComparison(e)}}class Vo extends Co{constructor(t,e){super(t,"in",e),this.keys=Bo("in",e)}matches(t){return this.keys.some((e=>e.isEqual(t.key)))}}class qo extends Co{constructor(t,e){super(t,"not-in",e),this.keys=Bo("not-in",e)}matches(t){return!this.keys.some((e=>e.isEqual(t.key)))}}function Bo(t,e){var n;return((null===(n=e.arrayValue)||void 0===n?void 0:n.values)||[]).map((t=>_s.fromName(t.referenceValue)))}class Uo extends Co{constructor(t,e){super(t,"array-contains",e)}matches(t){const e=t.data.field(this.field);return ao(e)&&Zi(e.arrayValue,this.value)}}class zo extends Co{constructor(t,e){super(t,"in",e)}matches(t){const e=t.data.field(this.field);return null!==e&&Zi(this.value.arrayValue,e)}}class Go extends Co{constructor(t,e){super(t,"not-in",e)}matches(t){if(Zi(this.value.arrayValue,{nullValue:"NULL_VALUE"}))return!1;const e=t.data.field(this.field);return null!==e&&!Zi(this.value.arrayValue,e)}}class jo extends Co{constructor(t,e){super(t,"array-contains-any",e)}matches(t){const e=t.data.field(this.field);return!(!ao(e)||!e.arrayValue.values)&&e.arrayValue.values.some((t=>Zi(this.value.arrayValue,t)))}}class Ko{constructor(t,e=null,n=[],r=[],s=null,i=null,o=null){this.path=t,this.collectionGroup=e,this.orderBy=n,this.filters=r,this.limit=s,this.startAt=i,this.endAt=o,this.ce=null}}function $o(t,e=null,n=[],r=[],s=null,i=null,o=null){return new Ko(t,e,n,r,s,i,o)}function Qo(t){const e=Xr(t);if(null===e.ce){let t=e.path.canonicalString();null!==e.collectionGroup&&(t+="|cg:"+e.collectionGroup),t+="|f:",t+=e.filters.map((t=>Mo(t))).join(","),t+="|ob:",t+=e.orderBy.map((t=>function(t){return t.field.canonicalString()+t.dir}(t))).join(","),Ws(e.limit)||(t+="|l:",t+=e.limit),e.startAt&&(t+="|lb:",t+=e.startAt.inclusive?"b:":"a:",t+=e.startAt.position.map((t=>no(t))).join(",")),e.endAt&&(t+="|ub:",t+=e.endAt.inclusive?"a:":"b:",t+=e.endAt.position.map((t=>no(t))).join(",")),e.ce=t}return e.ce}function Ho(t,e){if(t.limit!==e.limit)return!1;if(t.orderBy.length!==e.orderBy.length)return!1;for(let n=0;nt instanceof Co&&t.field.isEqual(e)))}function Xo(t,e,n){let r=Yi,s=!0;for(const n of Yo(t,e)){let t=Yi,e=!0;switch(n.op){case"<":case"<=":t=go(n.value);break;case"==":case"in":case">=":t=n.value;break;case">":t=n.value,e=!1;break;case"!=":case"not-in":t=Yi}po({value:r,inclusive:s},{value:t,inclusive:e})<0&&(r=t,s=e)}if(null!==n)for(let i=0;i=":case">":t=mo(n.value),e=!1;break;case"==":case"in":case"<=":t=n.value;break;case"<":t=n.value,e=!1;break;case"!=":case"not-in":t=Wi}yo({value:r,inclusive:s},{value:t,inclusive:e})>0&&(r=t,s=e)}if(null!==n)for(let i=0;i0&&(r=t,s=n.inclusive);break}return{value:r,inclusive:s}}class Zo{constructor(t,e=null,n=[],r=[],s=null,i="F",o=null,a=null){this.path=t,this.collectionGroup=e,this.explicitOrderBy=n,this.filters=r,this.limit=s,this.limitType=i,this.startAt=o,this.endAt=a,this.le=null,this.he=null,this.Pe=null,this.startAt,this.endAt}}function ta(t,e,n,r,s,i,o,a){return new Zo(t,e,n,r,s,i,o,a)}function ea(t){return new Zo(t)}function na(t){return 0===t.filters.length&&null===t.limit&&null==t.startAt&&null==t.endAt&&(0===t.explicitOrderBy.length||1===t.explicitOrderBy.length&&t.explicitOrderBy[0].field.isKeyField())}function ra(t){return null!==t.collectionGroup}function sa(t){const e=Xr(t);if(null===e.le){e.le=[];const t=new Set;for(const n of e.explicitOrderBy)e.le.push(n),t.add(n.field.canonicalString());const n=e.explicitOrderBy.length>0?e.explicitOrderBy[e.explicitOrderBy.length-1].dir:"asc",r=function(t){let e=new Mi(bs.comparator);return t.filters.forEach((t=>{t.getFlattenedFilters().forEach((t=>{t.isInequality()&&(e=e.add(t.field))}))})),e}(e);r.forEach((r=>{t.has(r.canonicalString())||r.isKeyField()||e.le.push(new To(r,n))})),t.has(bs.keyField().canonicalString())||e.le.push(new To(bs.keyField(),n))}return e.le}function ia(t){const e=Xr(t);return e.he||(e.he=oa(e,sa(t))),e.he}function oa(t,e){if("F"===t.limitType)return $o(t.path,t.collectionGroup,e,t.filters,t.limit,t.startAt,t.endAt);{e=e.map((t=>{const e="desc"===t.dir?"asc":"desc";return new To(t.field,e)}));const n=t.endAt?new _o(t.endAt.position,t.endAt.inclusive):null,r=t.startAt?new _o(t.startAt.position,t.startAt.inclusive):null;return $o(t.path,t.collectionGroup,e,t.filters,t.limit,n,r)}}function aa(t,e){const n=t.filters.concat([e]);return new Zo(t.path,t.collectionGroup,t.explicitOrderBy.slice(),n,t.limit,t.limitType,t.startAt,t.endAt)}function ua(t,e,n){return new Zo(t.path,t.collectionGroup,t.explicitOrderBy.slice(),t.filters.slice(),e,n,t.startAt,t.endAt)}function ca(t,e){return Ho(ia(t),ia(e))&&t.limitType===e.limitType}function la(t){return`${Qo(ia(t))}|lt:${t.limitType}`}function ha(t){return`Query(target=${function(t){let e=t.path.canonicalString();return null!==t.collectionGroup&&(e+=" collectionGroup="+t.collectionGroup),t.filters.length>0&&(e+=`, filters: [${t.filters.map((t=>Po(t))).join(", ")}]`),Ws(t.limit)||(e+=", limit: "+t.limit),t.orderBy.length>0&&(e+=`, orderBy: [${t.orderBy.map((t=>function(t){return`${t.field.canonicalString()} (${t.dir})`}(t))).join(", ")}]`),t.startAt&&(e+=", startAt: ",e+=t.startAt.inclusive?"b:":"a:",e+=t.startAt.position.map((t=>no(t))).join(",")),t.endAt&&(e+=", endAt: ",e+=t.endAt.inclusive?"a:":"b:",e+=t.endAt.position.map((t=>no(t))).join(",")),`Target(${e})`}(ia(t))}; limitType=${t.limitType})`}function da(t,e){return e.isFoundDocument()&&function(t,e){const n=e.key.path;return null!==t.collectionGroup?e.key.hasCollectionId(t.collectionGroup)&&t.path.isPrefixOf(n):_s.isDocumentKey(t.path)?t.path.isEqual(n):t.path.isImmediateParentOf(n)}(t,e)&&function(t,e){for(const n of sa(t))if(!n.field.isKeyField()&&null===e.data.field(n.field))return!1;return!0}(t,e)&&function(t,e){for(const n of t.filters)if(!n.matches(e))return!1;return!0}(t,e)&&function(t,e){return!(t.startAt&&!function(t,e,n){const r=Io(t,e,n);return t.inclusive?r<=0:r<0}(t.startAt,sa(t),e)||t.endAt&&!function(t,e,n){const r=Io(t,e,n);return t.inclusive?r>=0:r>0}(t.endAt,sa(t),e))}(t,e)}function fa(t){return t.collectionGroup||(t.path.length%2==1?t.path.lastSegment():t.path.get(t.path.length-2))}function ga(t){return(e,n)=>{let r=!1;for(const s of sa(t)){const t=ma(s,e,n);if(0!==t)return t;r=r||s.field.isKeyField()}return 0}}function ma(t,e,n){const r=t.field.isKeyField()?_s.comparator(e.key,n.key):function(t,e,n){const r=e.data.field(t),s=n.data.field(t);return null!==r&&null!==s?to(r,s):Hr()}(t.field,e,n);switch(t.dir){case"asc":return r;case"desc":return-1*r;default:return Hr()}}class pa{constructor(t,e){this.mapKeyFn=t,this.equalsFn=e,this.inner={},this.innerSize=0}get(t){const e=this.mapKeyFn(t),n=this.inner[e];if(void 0!==n)for(const[e,r]of n)if(this.equalsFn(e,t))return r}has(t){return void 0!==this.get(t)}set(t,e){const n=this.mapKeyFn(t),r=this.inner[n];if(void 0===r)return this.inner[n]=[[t,e]],void this.innerSize++;for(let n=0;n{for(const[e,r]of n)t(e,r)}))}isEmpty(){return Ai(this.inner)}size(){return this.innerSize}}const ya=new Ni(_s.comparator);function wa(){return ya}const va=new Ni(_s.comparator);function ba(...t){let e=va;for(const n of t)e=e.insert(n.key,n);return e}function _a(t){let e=va;return t.forEach(((t,n)=>e=e.insert(t,n.overlayedDocument))),e}function Ia(){return Ta()}function Ea(){return Ta()}function Ta(){return new pa((t=>t.toString()),((t,e)=>t.isEqual(e)))}const Sa=new Ni(_s.comparator),xa=new Mi(_s.comparator);function Ca(...t){let e=xa;for(const n of t)e=e.add(n);return e}const Da=new Mi(ds);function Aa(){return Da}function Na(t,e){if(t.useProto3Json){if(isNaN(e))return{doubleValue:"NaN"};if(e===1/0)return{doubleValue:"Infinity"};if(e===-1/0)return{doubleValue:"-Infinity"}}return{doubleValue:Ys(e)?"-0":e}}function ka(t){return{integerValue:""+t}}function Ra(t,e){return Xs(e)?ka(e):Na(t,e)}class Ma{constructor(){this._=void 0}}function La(t,e,n){return t instanceof Fa?function(t,e){const n={fields:{__type__:{stringValue:"server_timestamp"},__local_write_time__:{timestampValue:{seconds:t.seconds,nanos:t.nanoseconds}}}};return e&&ji(e)&&(e=Ki(e)),e&&(n.fields.__previous_value__=e),{mapValue:n}}(n,e):t instanceof Va?qa(t,e):t instanceof Ba?Ua(t,e):function(t,e){const n=Pa(t,e),r=Ga(n)+Ga(t.Ie);return oo(n)&&oo(t.Ie)?ka(r):Na(t.serializer,r)}(t,e)}function Oa(t,e,n){return t instanceof Va?qa(t,e):t instanceof Ba?Ua(t,e):n}function Pa(t,e){return t instanceof za?function(t){return oo(t)||function(t){return!!t&&"doubleValue"in t}(t)}(e)?e:{integerValue:0}:null}class Fa extends Ma{}class Va extends Ma{constructor(t){super(),this.elements=t}}function qa(t,e){const n=ja(e);for(const e of t.elements)n.some((t=>Ji(t,e)))||n.push(e);return{arrayValue:{values:n}}}class Ba extends Ma{constructor(t){super(),this.elements=t}}function Ua(t,e){let n=ja(e);for(const e of t.elements)n=n.filter((t=>!Ji(t,e)));return{arrayValue:{values:n}}}class za extends Ma{constructor(t,e){super(),this.serializer=t,this.Ie=e}}function Ga(t){return zi(t.integerValue||t.doubleValue)}function ja(t){return ao(t)&&t.arrayValue.values?t.arrayValue.values.slice():[]}class Ka{constructor(t,e){this.field=t,this.transform=e}}class $a{constructor(t,e){this.version=t,this.transformResults=e}}class Qa{constructor(t,e){this.updateTime=t,this.exists=e}static none(){return new Qa}static exists(t){return new Qa(void 0,t)}static updateTime(t){return new Qa(t)}get isNone(){return void 0===this.updateTime&&void 0===this.exists}isEqual(t){return this.exists===t.exists&&(this.updateTime?!!t.updateTime&&this.updateTime.isEqual(t.updateTime):!t.updateTime)}}function Ha(t,e){return void 0!==t.updateTime?e.isFoundDocument()&&e.version.isEqual(t.updateTime):void 0===t.exists||t.exists===e.isFoundDocument()}class Wa{}function Ya(t,e){if(!t.hasLocalMutations||e&&0===e.fields.length)return null;if(null===e)return t.isNoDocument()?new ou(t.key,Qa.none()):new eu(t.key,t.data,Qa.none());{const n=t.data,r=wo.empty();let s=new Mi(bs.comparator);for(let t of e.fields)if(!s.has(t)){let e=n.field(t);null===e&&t.length>1&&(t=t.popLast(),e=n.field(t)),null===e?r.delete(t):r.set(t,e),s=s.add(t)}return new nu(t.key,r,new Pi(s.toArray()),Qa.none())}}function Xa(t,e,n){t instanceof eu?function(t,e,n){const r=t.value.clone(),s=su(t.fieldTransforms,e,n.transformResults);r.setAll(s),e.convertToFoundDocument(n.version,r).setHasCommittedMutations()}(t,e,n):t instanceof nu?function(t,e,n){if(!Ha(t.precondition,e))return void e.convertToUnknownDocument(n.version);const r=su(t.fieldTransforms,e,n.transformResults),s=e.data;s.setAll(ru(t)),s.setAll(r),e.convertToFoundDocument(n.version,s).setHasCommittedMutations()}(t,e,n):function(t,e,n){e.convertToNoDocument(n.version).setHasCommittedMutations()}(0,e,n)}function Ja(t,e,n,r){return t instanceof eu?function(t,e,n,r){if(!Ha(t.precondition,e))return n;const s=t.value.clone(),i=iu(t.fieldTransforms,r,e);return s.setAll(i),e.convertToFoundDocument(e.version,s).setHasLocalMutations(),null}(t,e,n,r):t instanceof nu?function(t,e,n,r){if(!Ha(t.precondition,e))return n;const s=iu(t.fieldTransforms,r,e),i=e.data;return i.setAll(ru(t)),i.setAll(s),e.convertToFoundDocument(e.version,i).setHasLocalMutations(),null===n?null:n.unionWith(t.fieldMask.fields).unionWith(t.fieldTransforms.map((t=>t.field)))}(t,e,n,r):function(t,e,n){return Ha(t.precondition,e)?(e.convertToNoDocument(e.version).setHasLocalMutations(),null):n}(t,e,n)}function Za(t,e){let n=null;for(const r of t.fieldTransforms){const t=e.data.field(r.field),s=Pa(r.transform,t||null);null!=s&&(null===n&&(n=wo.empty()),n.set(r.field,s))}return n||null}function tu(t,e){return t.type===e.type&&!!t.key.isEqual(e.key)&&!!t.precondition.isEqual(e.precondition)&&!!function(t,e){return void 0===t&&void 0===e||!(!t||!e)&&fs(t,e,((t,e)=>function(t,e){return t.field.isEqual(e.field)&&function(t,e){return t instanceof Va&&e instanceof Va||t instanceof Ba&&e instanceof Ba?fs(t.elements,e.elements,Ji):t instanceof za&&e instanceof za?Ji(t.Ie,e.Ie):t instanceof Fa&&e instanceof Fa}(t.transform,e.transform)}(t,e)))}(t.fieldTransforms,e.fieldTransforms)&&(0===t.type?t.value.isEqual(e.value):1!==t.type||t.data.isEqual(e.data)&&t.fieldMask.isEqual(e.fieldMask))}class eu extends Wa{constructor(t,e,n,r=[]){super(),this.key=t,this.value=e,this.precondition=n,this.fieldTransforms=r,this.type=0}getFieldMask(){return null}}class nu extends Wa{constructor(t,e,n,r,s=[]){super(),this.key=t,this.data=e,this.fieldMask=n,this.precondition=r,this.fieldTransforms=s,this.type=1}getFieldMask(){return this.fieldMask}}function ru(t){const e=new Map;return t.fieldMask.fields.forEach((n=>{if(!n.isEmpty()){const r=t.data.field(n);e.set(n,r)}})),e}function su(t,e,n){const r=new Map;Wr(t.length===n.length);for(let s=0;s{const s=t.get(r.key),i=s.overlayedDocument;let o=this.applyToLocalView(i,s.mutatedFields);o=e.has(r.key)?null:o;const a=Ya(i,o);null!==a&&n.set(r.key,a),i.isValidDocument()||i.convertToNoDocument(ps.min())})),n}keys(){return this.mutations.reduce(((t,e)=>t.add(e.key)),Ca())}isEqual(t){return this.batchId===t.batchId&&fs(this.mutations,t.mutations,((t,e)=>tu(t,e)))&&fs(this.baseMutations,t.baseMutations,((t,e)=>tu(t,e)))}}class cu{constructor(t,e,n,r){this.batch=t,this.commitVersion=e,this.mutationResults=n,this.docVersions=r}static from(t,e,n){Wr(t.mutations.length===n.length);let r=Sa;const s=t.mutations;for(let t=0;t=8)throw new Eu(`Invalid padding: ${e}`);if(n<0)throw new Eu(`Invalid hash count: ${n}`);if(t.length>0&&0===this.hashCount)throw new Eu(`Invalid hash count: ${n}`);if(0===t.length&&0!==e)throw new Eu(`Invalid padding when bitmap length is 0: ${e}`);this.Te=8*t.length-e,this.Ee=Fr.fromNumber(this.Te)}de(t,e,n){let r=t.add(e.multiply(Fr.fromNumber(n)));return 1===r.compare(vu)&&(r=new Fr([r.getBits(0),r.getBits(1)],0)),r.modulo(this.Ee).toNumber()}Ae(t){return 0!=(this.bitmap[Math.floor(t/8)]&1<i.insert(t))),i}insert(t){if(0===this.Te)return;const e=bu(t),[n,r]=_u(e);for(let t=0;t0&&(this.Se=!0,this.ye=t)}ve(){let t=Ca(),e=Ca(),n=Ca();return this.pe.forEach(((r,s)=>{switch(s){case 0:t=t.add(r);break;case 2:e=e.add(r);break;case 1:n=n.add(r);break;default:Hr()}})),new Su(this.ye,this.we,t,e,n)}Fe(){this.Se=!1,this.pe=Ru()}Me(t,e){this.Se=!0,this.pe=this.pe.insert(t,e)}xe(t){this.Se=!0,this.pe=this.pe.remove(t)}Oe(){this.ge+=1}Ne(){this.ge-=1,Wr(this.ge>=0)}Be(){this.Se=!0,this.we=!0}}class Nu{constructor(t){this.Le=t,this.ke=new Map,this.qe=wa(),this.Qe=ku(),this.Ke=new Ni(ds)}$e(t){for(const e of t.Ve)t.me&&t.me.isFoundDocument()?this.Ue(e,t.me):this.We(e,t.key,t.me);for(const e of t.removedTargetIds)this.We(e,t.key,t.me)}Ge(t){this.forEachTarget(t,(e=>{const n=this.ze(e);switch(t.state){case 0:this.je(e)&&n.Ce(t.resumeToken);break;case 1:n.Ne(),n.be||n.Fe(),n.Ce(t.resumeToken);break;case 2:n.Ne(),n.be||this.removeTarget(e);break;case 3:this.je(e)&&(n.Be(),n.Ce(t.resumeToken));break;case 4:this.je(e)&&(this.He(e),n.Ce(t.resumeToken));break;default:Hr()}}))}forEachTarget(t,e){t.targetIds.length>0?t.targetIds.forEach(e):this.ke.forEach(((t,n)=>{this.je(n)&&e(n)}))}Je(t){const e=t.targetId,n=t.fe.count,r=this.Ye(e);if(r){const s=r.target;if(Wo(s))if(0===n){const t=new _s(s.path);this.We(e,t,bo.newNoDocument(t,ps.min()))}else Wr(1===n);else{const r=this.Ze(e);if(r!==n){const n=this.Xe(t),s=n?this.et(n,t,r):1;if(0!==s){this.He(e);const t=2===s?"TargetPurposeExistenceFilterMismatchBloom":"TargetPurposeExistenceFilterMismatch";this.Ke=this.Ke.insert(e,t)}null==yu||yu.tt(function(t,e,n,r,s){var i,o,a,u,c,l;const h={localCacheCount:t,existenceFilterCount:e.count,databaseId:n.database,projectId:n.projectId},d=e.unchangedNames;return d&&(h.bloomFilter={applied:0===s,hashCount:null!==(i=null==d?void 0:d.hashCount)&&void 0!==i?i:0,bitmapLength:null!==(u=null===(a=null===(o=null==d?void 0:d.bits)||void 0===o?void 0:o.bitmap)||void 0===a?void 0:a.length)&&void 0!==u?u:0,padding:null!==(l=null===(c=null==d?void 0:d.bits)||void 0===c?void 0:c.padding)&&void 0!==l?l:0,mightContain:t=>{var e;return null!==(e=null==r?void 0:r.mightContain(t))&&void 0!==e&&e}}),h}(r,t.fe,this.Le.nt(),n,s))}}}}Xe(t){const e=t.fe.unchangedNames;if(!e||!e.bits)return null;const{bits:{bitmap:n="",padding:r=0},hashCount:s=0}=e;let i,o;try{i=Gi(n).toUint8Array()}catch(t){if(t instanceof Fi)return $r("Decoding the base64 bloom filter in existence filter failed ("+t.message+"); ignoring the bloom filter and falling back to full re-query."),null;throw t}try{o=new Iu(i,r,s)}catch(t){return $r(t instanceof Eu?"BloomFilter error: ":"Applying bloom filter failed: ",t),null}return 0===o.Te?null:o}et(t,e,n){return e.fe.count===n-this.rt(t,e.targetId)?0:2}rt(t,e){const n=this.Le.getRemoteKeysForTarget(e);let r=0;return n.forEach((n=>{const s=this.Le.nt(),i=`projects/${s.projectId}/databases/${s.database}/documents/${n.path.canonicalString()}`;t.mightContain(i)||(this.We(e,n,null),r++)})),r}it(t){const e=new Map;this.ke.forEach(((n,r)=>{const s=this.Ye(r);if(s){if(n.current&&Wo(s.target)){const e=new _s(s.target.path);null!==this.qe.get(e)||this.st(r,e)||this.We(r,e,bo.newNoDocument(e,t))}n.De&&(e.set(r,n.ve()),n.Fe())}}));let n=Ca();this.Qe.forEach(((t,e)=>{let r=!0;e.forEachWhile((t=>{const e=this.Ye(t);return!e||"TargetPurposeLimboResolution"===e.purpose||(r=!1,!1)})),r&&(n=n.add(t))})),this.qe.forEach(((e,n)=>n.setReadTime(t)));const r=new Tu(t,e,this.Ke,this.qe,n);return this.qe=wa(),this.Qe=ku(),this.Ke=new Ni(ds),r}Ue(t,e){if(!this.je(t))return;const n=this.st(t,e.key)?2:0;this.ze(t).Me(e.key,n),this.qe=this.qe.insert(e.key,e),this.Qe=this.Qe.insert(e.key,this.ot(e.key).add(t))}We(t,e,n){if(!this.je(t))return;const r=this.ze(t);this.st(t,e)?r.Me(e,1):r.xe(e),this.Qe=this.Qe.insert(e,this.ot(e).delete(t)),n&&(this.qe=this.qe.insert(e,n))}removeTarget(t){this.ke.delete(t)}Ze(t){const e=this.ze(t).ve();return this.Le.getRemoteKeysForTarget(t).size+e.addedDocuments.size-e.removedDocuments.size}Oe(t){this.ze(t).Oe()}ze(t){let e=this.ke.get(t);return e||(e=new Au,this.ke.set(t,e)),e}ot(t){let e=this.Qe.get(t);return e||(e=new Mi(ds),this.Qe=this.Qe.insert(t,e)),e}je(t){const e=null!==this.Ye(t);return e||jr("WatchChangeAggregator","Detected inactive target",t),e}Ye(t){const e=this.ke.get(t);return e&&e.be?null:this.Le._t(t)}He(t){this.ke.set(t,new Au),this.Le.getRemoteKeysForTarget(t).forEach((e=>{this.We(t,e,null)}))}st(t,e){return this.Le.getRemoteKeysForTarget(t).has(e)}}function ku(){return new Ni(_s.comparator)}function Ru(){return new Ni(_s.comparator)}const Mu={asc:"ASCENDING",desc:"DESCENDING"},Lu={"<":"LESS_THAN","<=":"LESS_THAN_OR_EQUAL",">":"GREATER_THAN",">=":"GREATER_THAN_OR_EQUAL","==":"EQUAL","!=":"NOT_EQUAL","array-contains":"ARRAY_CONTAINS",in:"IN","not-in":"NOT_IN","array-contains-any":"ARRAY_CONTAINS_ANY"},Ou={and:"AND",or:"OR"};class Pu{constructor(t,e){this.databaseId=t,this.useProto3Json=e}}function Fu(t,e){return t.useProto3Json||Ws(e)?e:{value:e}}function Vu(t,e){return t.useProto3Json?`${new Date(1e3*e.seconds).toISOString().replace(/\.\d*/,"").replace("Z","")}.${("000000000"+e.nanoseconds).slice(-9)}Z`:{seconds:""+e.seconds,nanos:e.nanoseconds}}function qu(t,e){return t.useProto3Json?e.toBase64():e.toUint8Array()}function Bu(t,e){return Vu(t,e.toTimestamp())}function Uu(t){return Wr(!!t),ps.fromTimestamp(function(t){const e=Ui(t);return new ms(e.seconds,e.nanos)}(t))}function zu(t,e){return Gu(t,e).canonicalString()}function Gu(t,e){const n=function(t){return new ws(["projects",t.projectId,"databases",t.database])}(t).child("documents");return void 0===e?n:n.child(e)}function ju(t){const e=ws.fromString(t);return Wr(dc(e)),e}function Ku(t,e){return zu(t.databaseId,e.path)}function $u(t,e){const n=ju(e);if(n.get(1)!==t.databaseId.projectId)throw new Zr(Jr.INVALID_ARGUMENT,"Tried to deserialize key from different project: "+n.get(1)+" vs "+t.databaseId.projectId);if(n.get(3)!==t.databaseId.database)throw new Zr(Jr.INVALID_ARGUMENT,"Tried to deserialize key from different database: "+n.get(3)+" vs "+t.databaseId.database);return new _s(Yu(n))}function Qu(t,e){return zu(t.databaseId,e)}function Hu(t){const e=ju(t);return 4===e.length?ws.emptyPath():Yu(e)}function Wu(t){return new ws(["projects",t.databaseId.projectId,"databases",t.databaseId.database]).canonicalString()}function Yu(t){return Wr(t.length>4&&"documents"===t.get(4)),t.popFirst(5)}function Xu(t,e,n){return{name:Ku(t,e),fields:n.value.mapValue.fields}}function Ju(t,e,n){const r=$u(t,e.name),s=Uu(e.updateTime),i=e.createTime?Uu(e.createTime):ps.min(),o=new wo({mapValue:{fields:e.fields}}),a=bo.newFoundDocument(r,s,i,o);return n&&a.setHasCommittedMutations(),n?a.setHasCommittedMutations():a}function Zu(t,e){let n;if(e instanceof eu)n={update:Xu(t,e.key,e.value)};else if(e instanceof ou)n={delete:Ku(t,e.key)};else if(e instanceof nu)n={update:Xu(t,e.key,e.data),updateMask:hc(e.fieldMask)};else{if(!(e instanceof au))return Hr();n={verify:Ku(t,e.key)}}return e.fieldTransforms.length>0&&(n.updateTransforms=e.fieldTransforms.map((t=>function(t,e){const n=e.transform;if(n instanceof Fa)return{fieldPath:e.field.canonicalString(),setToServerValue:"REQUEST_TIME"};if(n instanceof Va)return{fieldPath:e.field.canonicalString(),appendMissingElements:{values:n.elements}};if(n instanceof Ba)return{fieldPath:e.field.canonicalString(),removeAllFromArray:{values:n.elements}};if(n instanceof za)return{fieldPath:e.field.canonicalString(),increment:n.Ie};throw Hr()}(0,t)))),e.precondition.isNone||(n.currentDocument=function(t,e){return void 0!==e.updateTime?{updateTime:Bu(t,e.updateTime)}:void 0!==e.exists?{exists:e.exists}:Hr()}(t,e.precondition)),n}function tc(t,e){const n=e.currentDocument?function(t){return void 0!==t.updateTime?Qa.updateTime(Uu(t.updateTime)):void 0!==t.exists?Qa.exists(t.exists):Qa.none()}(e.currentDocument):Qa.none(),r=e.updateTransforms?e.updateTransforms.map((e=>function(t,e){let n=null;if("setToServerValue"in e)Wr("REQUEST_TIME"===e.setToServerValue),n=new Fa;else if("appendMissingElements"in e){const t=e.appendMissingElements.values||[];n=new Va(t)}else if("removeAllFromArray"in e){const t=e.removeAllFromArray.values||[];n=new Ba(t)}else"increment"in e?n=new za(t,e.increment):Hr();const r=bs.fromServerFormat(e.fieldPath);return new Ka(r,n)}(t,e))):[];if(e.update){e.update.name;const s=$u(t,e.update.name),i=new wo({mapValue:{fields:e.update.fields}});if(e.updateMask){const t=function(t){const e=t.fieldPaths||[];return new Pi(e.map((t=>bs.fromServerFormat(t))))}(e.updateMask);return new nu(s,i,t,n,r)}return new eu(s,i,n,r)}if(e.delete){const r=$u(t,e.delete);return new ou(r,n)}if(e.verify){const r=$u(t,e.verify);return new au(r,n)}return Hr()}function ec(t,e){return{documents:[Qu(t,e.path)]}}function nc(t,e){const n={structuredQuery:{}},r=e.path;let s;null!==e.collectionGroup?(s=r,n.structuredQuery.from=[{collectionId:e.collectionGroup,allDescendants:!0}]):(s=r.popLast(),n.structuredQuery.from=[{collectionId:r.lastSegment()}]),n.parent=Qu(t,s);const i=function(t){if(0!==t.length)return lc(Do.create(t,"and"))}(e.filters);i&&(n.structuredQuery.where=i);const o=function(t){if(0!==t.length)return t.map((t=>function(t){return{field:uc(t.field),direction:ic(t.dir)}}(t)))}(e.orderBy);o&&(n.structuredQuery.orderBy=o);const a=Fu(t,e.limit);return null!==a&&(n.structuredQuery.limit=a),e.startAt&&(n.structuredQuery.startAt=function(t){return{before:t.inclusive,values:t.position}}(e.startAt)),e.endAt&&(n.structuredQuery.endAt=function(t){return{before:!t.inclusive,values:t.position}}(e.endAt)),{ut:n,parent:s}}function rc(t){let e=Hu(t.parent);const n=t.structuredQuery,r=n.from?n.from.length:0;let s=null;if(r>0){Wr(1===r);const t=n.from[0];t.allDescendants?s=t.collectionId:e=e.child(t.collectionId)}let i=[];n.where&&(i=function(t){const e=sc(t);return e instanceof Do&&ko(e)?e.getFilters():[e]}(n.where));let o=[];n.orderBy&&(o=function(t){return t.map((t=>function(t){return new To(cc(t.field),function(t){switch(t){case"ASCENDING":return"asc";case"DESCENDING":return"desc";default:return}}(t.direction))}(t)))}(n.orderBy));let a=null;n.limit&&(a=function(t){let e;return e="object"==typeof t?t.value:t,Ws(e)?null:e}(n.limit));let u=null;n.startAt&&(u=function(t){const e=!!t.before,n=t.values||[];return new _o(n,e)}(n.startAt));let c=null;return n.endAt&&(c=function(t){const e=!t.before,n=t.values||[];return new _o(n,e)}(n.endAt)),ta(e,s,o,i,a,"F",u,c)}function sc(t){return void 0!==t.unaryFilter?function(t){switch(t.unaryFilter.op){case"IS_NAN":const e=cc(t.unaryFilter.field);return Co.create(e,"==",{doubleValue:NaN});case"IS_NULL":const n=cc(t.unaryFilter.field);return Co.create(n,"==",{nullValue:"NULL_VALUE"});case"IS_NOT_NAN":const r=cc(t.unaryFilter.field);return Co.create(r,"!=",{doubleValue:NaN});case"IS_NOT_NULL":const s=cc(t.unaryFilter.field);return Co.create(s,"!=",{nullValue:"NULL_VALUE"});default:return Hr()}}(t):void 0!==t.fieldFilter?function(t){return Co.create(cc(t.fieldFilter.field),function(t){switch(t){case"EQUAL":return"==";case"NOT_EQUAL":return"!=";case"GREATER_THAN":return">";case"GREATER_THAN_OR_EQUAL":return">=";case"LESS_THAN":return"<";case"LESS_THAN_OR_EQUAL":return"<=";case"ARRAY_CONTAINS":return"array-contains";case"IN":return"in";case"NOT_IN":return"not-in";case"ARRAY_CONTAINS_ANY":return"array-contains-any";default:return Hr()}}(t.fieldFilter.op),t.fieldFilter.value)}(t):void 0!==t.compositeFilter?function(t){return Do.create(t.compositeFilter.filters.map((t=>sc(t))),function(t){switch(t){case"AND":return"and";case"OR":return"or";default:return Hr()}}(t.compositeFilter.op))}(t):Hr()}function ic(t){return Mu[t]}function oc(t){return Lu[t]}function ac(t){return Ou[t]}function uc(t){return{fieldPath:t.canonicalString()}}function cc(t){return bs.fromServerFormat(t.fieldPath)}function lc(t){return t instanceof Co?function(t){if("=="===t.op){if(co(t.value))return{unaryFilter:{field:uc(t.field),op:"IS_NAN"}};if(uo(t.value))return{unaryFilter:{field:uc(t.field),op:"IS_NULL"}}}else if("!="===t.op){if(co(t.value))return{unaryFilter:{field:uc(t.field),op:"IS_NOT_NAN"}};if(uo(t.value))return{unaryFilter:{field:uc(t.field),op:"IS_NOT_NULL"}}}return{fieldFilter:{field:uc(t.field),op:oc(t.op),value:t.value}}}(t):t instanceof Do?function(t){const e=t.getFilters().map((t=>lc(t)));return 1===e.length?e[0]:{compositeFilter:{op:ac(t.op),filters:e}}}(t):Hr()}function hc(t){const e=[];return t.fields.forEach((t=>e.push(t.canonicalString()))),{fieldPaths:e}}function dc(t){return t.length>=4&&"projects"===t.get(0)&&"databases"===t.get(2)}class fc{constructor(t,e,n,r,s=ps.min(),i=ps.min(),o=qi.EMPTY_BYTE_STRING,a=null){this.target=t,this.targetId=e,this.purpose=n,this.sequenceNumber=r,this.snapshotVersion=s,this.lastLimboFreeSnapshotVersion=i,this.resumeToken=o,this.expectedCount=a}withSequenceNumber(t){return new fc(this.target,this.targetId,this.purpose,t,this.snapshotVersion,this.lastLimboFreeSnapshotVersion,this.resumeToken,this.expectedCount)}withResumeToken(t,e){return new fc(this.target,this.targetId,this.purpose,this.sequenceNumber,e,this.lastLimboFreeSnapshotVersion,t,null)}withExpectedCount(t){return new fc(this.target,this.targetId,this.purpose,this.sequenceNumber,this.snapshotVersion,this.lastLimboFreeSnapshotVersion,this.resumeToken,t)}withLastLimboFreeSnapshotVersion(t){return new fc(this.target,this.targetId,this.purpose,this.sequenceNumber,this.snapshotVersion,t,this.resumeToken,this.expectedCount)}}class gc{constructor(t){this.ct=t}}function mc(t,e){const n=e.key,r={prefixPath:n.getCollectionPath().popLast().toArray(),collectionGroup:n.collectionGroup,documentId:n.path.lastSegment(),readTime:pc(e.readTime),hasCommittedMutations:e.hasCommittedMutations};if(e.isFoundDocument())r.document=function(t,e){return{name:Ku(t,e.key),fields:e.data.value.mapValue.fields,updateTime:Vu(t,e.version.toTimestamp()),createTime:Vu(t,e.createTime.toTimestamp())}}(t.ct,e);else if(e.isNoDocument())r.noDocument={path:n.path.toArray(),readTime:yc(e.version)};else{if(!e.isUnknownDocument())return Hr();r.unknownDocument={path:n.path.toArray(),version:yc(e.version)}}return r}function pc(t){const e=t.toTimestamp();return[e.seconds,e.nanoseconds]}function yc(t){const e=t.toTimestamp();return{seconds:e.seconds,nanoseconds:e.nanoseconds}}function wc(t){const e=new ms(t.seconds,t.nanoseconds);return ps.fromTimestamp(e)}function vc(t,e){const n=(e.baseMutations||[]).map((e=>tc(t.ct,e)));for(let t=0;ttc(t.ct,e))),s=ms.fromMillis(e.localWriteTimeMs);return new uu(e.batchId,s,n,r)}function bc(t){const e=wc(t.readTime),n=void 0!==t.lastLimboFreeSnapshotVersion?wc(t.lastLimboFreeSnapshotVersion):ps.min();let r;return r=function(t){return void 0!==t.documents}(t.query)?function(t){return Wr(1===t.documents.length),ia(ea(Hu(t.documents[0])))}(t.query):function(t){return ia(rc(t))}(t.query),new fc(r,t.targetId,"TargetPurposeListen",t.lastListenSequenceNumber,e,n,qi.fromBase64String(t.resumeToken))}function _c(t,e){const n=yc(e.snapshotVersion),r=yc(e.lastLimboFreeSnapshotVersion);let s;s=Wo(e.target)?ec(t.ct,e.target):nc(t.ct,e.target).ut;const i=e.resumeToken.toBase64();return{targetId:e.targetId,canonicalId:Qo(e.target),readTime:n,resumeToken:i,lastListenSequenceNumber:e.sequenceNumber,lastLimboFreeSnapshotVersion:r,query:s}}function Ic(t){const e=rc({parent:t.parent,structuredQuery:t.structuredQuery});return"LAST"===t.limitType?ua(e,e.limit,"L"):e}function Ec(t,e){return new lu(e.largestBatchId,tc(t.ct,e.overlayMutation))}function Tc(t,e){const n=e.path.lastSegment();return[t,Js(e.path.popLast()),n]}function Sc(t,e,n,r){return{indexId:t,uid:e,sequenceNumber:n,readTime:yc(r.readTime),documentKey:Js(r.documentKey.path),largestBatchId:r.largestBatchId}}class xc{getBundleMetadata(t,e){return Cc(t).get(e).next((t=>{if(t)return function(t){return{id:t.bundleId,createTime:wc(t.createTime),version:t.version}}(t)}))}saveBundleMetadata(t,e){return Cc(t).put(function(t){return{bundleId:t.id,createTime:yc(Uu(t.createTime)),version:t.version}}(e))}getNamedQuery(t,e){return Dc(t).get(e).next((t=>{if(t)return function(t){return{name:t.name,query:Ic(t.bundledQuery),readTime:wc(t.readTime)}}(t)}))}saveNamedQuery(t,e){return Dc(t).put(function(t){return{name:t.name,readTime:yc(Uu(t.readTime)),bundledQuery:t.bundledQuery}}(e))}}function Cc(t){return xi(t,"bundles")}function Dc(t){return xi(t,"namedQueries")}class Ac{constructor(t,e){this.serializer=t,this.userId=e}static lt(t,e){const n=e.uid||"";return new Ac(t,n)}getOverlay(t,e){return Nc(t).get(Tc(this.userId,e)).next((t=>t?Ec(this.serializer,t):null))}getOverlays(t,e){const n=Ia();return Ps.forEach(e,(e=>this.getOverlay(t,e).next((t=>{null!==t&&n.set(e,t)})))).next((()=>n))}saveOverlays(t,e,n){const r=[];return n.forEach(((n,s)=>{const i=new lu(e,s);r.push(this.ht(t,i))})),Ps.waitFor(r)}removeOverlaysForBatchId(t,e,n){const r=new Set;e.forEach((t=>r.add(Js(t.getCollectionPath()))));const s=[];return r.forEach((e=>{const r=IDBKeyRange.bound([this.userId,e,n],[this.userId,e,n+1],!1,!0);s.push(Nc(t).H("collectionPathOverlayIndex",r))})),Ps.waitFor(s)}getOverlaysForCollection(t,e,n){const r=Ia(),s=Js(e),i=IDBKeyRange.bound([this.userId,s,n],[this.userId,s,Number.POSITIVE_INFINITY],!0);return Nc(t).W("collectionPathOverlayIndex",i).next((t=>{for(const e of t){const t=Ec(this.serializer,e);r.set(t.getKey(),t)}return r}))}getOverlaysForCollectionGroup(t,e,n,r){const s=Ia();let i;const o=IDBKeyRange.bound([this.userId,e,n],[this.userId,e,Number.POSITIVE_INFINITY],!0);return Nc(t).Y({index:"collectionGroupOverlayIndex",range:o},((t,e,n)=>{const o=Ec(this.serializer,e);s.size()s))}ht(t,e){return Nc(t).put(function(t,e,n){const[r,s,i]=Tc(e,n.mutation.key);return{userId:e,collectionPath:s,documentId:i,collectionGroup:n.mutation.key.getCollectionGroup(),largestBatchId:n.largestBatchId,overlayMutation:Zu(t.ct,n.mutation)}}(this.serializer,this.userId,e))}}function Nc(t){return xi(t,"documentOverlays")}class kc{constructor(){}Pt(t,e){this.It(t,e),e.Tt()}It(t,e){if("nullValue"in t)this.Et(e,5);else if("booleanValue"in t)this.Et(e,10),e.dt(t.booleanValue?1:0);else if("integerValue"in t)this.Et(e,15),e.dt(zi(t.integerValue));else if("doubleValue"in t){const n=zi(t.doubleValue);isNaN(n)?this.Et(e,13):(this.Et(e,15),Ys(n)?e.dt(0):e.dt(n))}else if("timestampValue"in t){const n=t.timestampValue;this.Et(e,20),"string"==typeof n?e.At(n):(e.At(`${n.seconds||""}`),e.dt(n.nanos||0))}else if("stringValue"in t)this.Rt(t.stringValue,e),this.Vt(e);else if("bytesValue"in t)this.Et(e,30),e.ft(Gi(t.bytesValue)),this.Vt(e);else if("referenceValue"in t)this.gt(t.referenceValue,e);else if("geoPointValue"in t){const n=t.geoPointValue;this.Et(e,45),e.dt(n.latitude||0),e.dt(n.longitude||0)}else"mapValue"in t?fo(t)?this.Et(e,Number.MAX_SAFE_INTEGER):(this.yt(t.mapValue,e),this.Vt(e)):"arrayValue"in t?(this.wt(t.arrayValue,e),this.Vt(e)):Hr()}Rt(t,e){this.Et(e,25),this.St(t,e)}St(t,e){e.At(t)}yt(t,e){const n=t.fields||{};this.Et(e,55);for(const t of Object.keys(n))this.Rt(t,e),this.It(n[t],e)}wt(t,e){const n=t.values||[];this.Et(e,50);for(const t of n)this.It(t,e)}gt(t,e){this.Et(e,37),_s.fromName(t).path.forEach((t=>{this.Et(e,60),this.St(t,e)}))}Et(t,e){t.dt(e)}Vt(t){t.dt(2)}}function Rc(t){if(0===t)return 8;let e=0;return t>>4==0&&(e+=4,t<<=4),t>>6==0&&(e+=2,t<<=2),t>>7==0&&(e+=1),e}function Mc(t){const e=64-function(t){let e=0;for(let n=0;n<8;++n){const r=Rc(255&t[n]);if(e+=r,8!==r)break}return e}(t);return Math.ceil(e/8)}kc.bt=new kc;class Lc{constructor(){this.buffer=new Uint8Array(1024),this.position=0}Dt(t){const e=t[Symbol.iterator]();let n=e.next();for(;!n.done;)this.Ct(n.value),n=e.next();this.vt()}Ft(t){const e=t[Symbol.iterator]();let n=e.next();for(;!n.done;)this.Mt(n.value),n=e.next();this.xt()}Ot(t){for(const e of t){const t=e.charCodeAt(0);if(t<128)this.Ct(t);else if(t<2048)this.Ct(960|t>>>6),this.Ct(128|63&t);else if(e<"\ud800"||"\udbff">>12),this.Ct(128|63&t>>>6),this.Ct(128|63&t);else{const t=e.codePointAt(0);this.Ct(240|t>>>18),this.Ct(128|63&t>>>12),this.Ct(128|63&t>>>6),this.Ct(128|63&t)}}this.vt()}Nt(t){for(const e of t){const t=e.charCodeAt(0);if(t<128)this.Mt(t);else if(t<2048)this.Mt(960|t>>>6),this.Mt(128|63&t);else if(e<"\ud800"||"\udbff">>12),this.Mt(128|63&t>>>6),this.Mt(128|63&t);else{const t=e.codePointAt(0);this.Mt(240|t>>>18),this.Mt(128|63&t>>>12),this.Mt(128|63&t>>>6),this.Mt(128|63&t)}}this.xt()}Bt(t){const e=this.Lt(t),n=Mc(e);this.kt(1+n),this.buffer[this.position++]=255&n;for(let t=e.length-n;tbs.comparator(t.field,e.field))),this.collectionId=null!=t.collectionGroup?t.collectionGroup:t.path.lastSegment(),this.Zt=t.orderBy,this.Xt=[];for(const e of t.filters){const t=e;t.isInequality()?this.Yt=this.Yt.add(t):this.Xt.push(t)}}get en(){return this.Yt.size>1}tn(t){if(Wr(t.collectionGroup===this.collectionId),this.en)return!1;const e=Es(t);if(void 0!==e&&!this.nn(e))return!1;const n=Ts(t);let r=new Set,s=0,i=0;for(;s0){const t=this.Yt.getIterator().getNext();if(!r.has(t.field.canonicalString())){const e=n[s];if(!this.rn(t,e)||!this.sn(this.Zt[i++],e))return!1}++s}for(;s=this.Zt.length||!this.sn(this.Zt[i++],t))return!1}return!0}on(){if(this.en)return null;let t=new Mi(bs.comparator);const e=[];for(const n of this.Xt)if(!n.field.isKeyField())if("array-contains"===n.op||"array-contains-any"===n.op)e.push(new xs(n.field,2));else{if(t.has(n.field))continue;t=t.add(n.field),e.push(new xs(n.field,0))}for(const n of this.Zt)n.field.isKeyField()||t.has(n.field)||(t=t.add(n.field),e.push(new xs(n.field,"asc"===n.dir?0:1)));return new Is(Is.UNKNOWN_ID,this.collectionId,e,Ds.empty())}nn(t){for(const e of this.Xt)if(this.rn(e,t))return!0;return!1}rn(t,e){if(void 0===t||!t.field.isEqual(e.fieldPath))return!1;const n="array-contains"===t.op||"array-contains-any"===t.op;return 2===e.kind===n}sn(t,e){return!!t.field.isEqual(e.fieldPath)&&(0===e.kind&&"asc"===t.dir||1===e.kind&&"desc"===t.dir)}}function zc(t){var e,n;if(Wr(t instanceof Co||t instanceof Do),t instanceof Co){if(t instanceof zo){const r=(null===(n=null===(e=t.value.arrayValue)||void 0===e?void 0:e.values)||void 0===n?void 0:n.map((e=>Co.create(t.field,"==",e))))||[];return Do.create(r,"or")}return t}const r=t.filters.map((t=>zc(t)));return Do.create(r,t.op)}function Gc(t){if(0===t.getFilters().length)return[];const e=Qc(zc(t));return Wr($c(e)),jc(e)||Kc(e)?[e]:e.getFilters()}function jc(t){return t instanceof Co}function Kc(t){return t instanceof Do&&ko(t)}function $c(t){return jc(t)||Kc(t)||function(t){if(t instanceof Do&&No(t)){for(const e of t.getFilters())if(!jc(e)&&!Kc(e))return!1;return!0}return!1}(t)}function Qc(t){if(Wr(t instanceof Co||t instanceof Do),t instanceof Co)return t;if(1===t.filters.length)return Qc(t.filters[0]);const e=t.filters.map((t=>Qc(t)));let n=Do.create(e,t.op);return n=Yc(n),$c(n)?n:(Wr(n instanceof Do),Wr(Ao(n)),Wr(n.filters.length>1),n.filters.reduce(((t,e)=>Hc(t,e))))}function Hc(t,e){let n;return Wr(t instanceof Co||t instanceof Do),Wr(e instanceof Co||e instanceof Do),n=t instanceof Co?e instanceof Co?function(t,e){return Do.create([t,e],"and")}(t,e):Wc(t,e):e instanceof Co?Wc(e,t):function(t,e){if(Wr(t.filters.length>0&&e.filters.length>0),Ao(t)&&Ao(e))return Oo(t,e.getFilters());const n=No(t)?t:e,r=No(t)?e:t,s=n.filters.map((t=>Hc(t,r)));return Do.create(s,"or")}(t,e),Yc(n)}function Wc(t,e){if(Ao(e))return Oo(e,t.getFilters());{const n=e.filters.map((e=>Hc(t,e)));return Do.create(n,"or")}}function Yc(t){if(Wr(t instanceof Co||t instanceof Do),t instanceof Co)return t;const e=t.getFilters();if(1===e.length)return Yc(e[0]);if(Ro(t))return t;const n=e.map((t=>Yc(t))),r=[];return n.forEach((e=>{e instanceof Co?r.push(e):e instanceof Do&&(e.op===t.op?r.push(...e.filters):r.push(e))})),1===r.length?r[0]:Do.create(r,t.op)}class Xc{constructor(){this._n=new Jc}addToCollectionParentIndex(t,e){return this._n.add(e),Ps.resolve()}getCollectionParents(t,e){return Ps.resolve(this._n.getEntries(e))}addFieldIndex(t,e){return Ps.resolve()}deleteFieldIndex(t,e){return Ps.resolve()}deleteAllFieldIndexes(t){return Ps.resolve()}createTargetIndexes(t,e){return Ps.resolve()}getDocumentsMatchingTarget(t,e){return Ps.resolve(null)}getIndexType(t,e){return Ps.resolve(0)}getFieldIndexes(t,e){return Ps.resolve([])}getNextCollectionGroupToUpdate(t){return Ps.resolve(null)}getMinOffset(t,e){return Ps.resolve(ks.min())}getMinOffsetFromCollectionGroup(t,e){return Ps.resolve(ks.min())}updateCollectionGroup(t,e,n){return Ps.resolve()}updateIndexEntries(t,e){return Ps.resolve()}}class Jc{constructor(){this.index={}}add(t){const e=t.lastSegment(),n=t.popLast(),r=this.index[e]||new Mi(ws.comparator),s=!r.has(n);return this.index[e]=r.add(n),s}has(t){const e=t.lastSegment(),n=t.popLast(),r=this.index[e];return r&&r.has(n)}getEntries(t){return(this.index[t]||new Mi(ws.comparator)).toArray()}}const Zc=new Uint8Array(0);class tl{constructor(t,e){this.databaseId=e,this.an=new Jc,this.un=new pa((t=>Qo(t)),((t,e)=>Ho(t,e))),this.uid=t.uid||""}addToCollectionParentIndex(t,e){if(!this.an.has(e)){const n=e.lastSegment(),r=e.popLast();t.addOnCommittedListener((()=>{this.an.add(e)}));const s={collectionId:n,parent:Js(r)};return el(t).put(s)}return Ps.resolve()}getCollectionParents(t,e){const n=[],r=IDBKeyRange.bound([e,""],[gs(e),""],!1,!0);return el(t).W(r).next((t=>{for(const r of t){if(r.collectionId!==e)break;n.push(ei(r.parent))}return n}))}addFieldIndex(t,e){const n=rl(t),r=function(t){return{indexId:t.indexId,collectionGroup:t.collectionGroup,fields:t.fields.map((t=>[t.fieldPath.canonicalString(),t.kind]))}}(e);delete r.indexId;const s=n.add(r);if(e.indexState){const n=sl(t);return s.next((t=>{n.put(Sc(t,this.uid,e.indexState.sequenceNumber,e.indexState.offset))}))}return s.next()}deleteFieldIndex(t,e){const n=rl(t),r=sl(t),s=nl(t);return n.delete(e.indexId).next((()=>r.delete(IDBKeyRange.bound([e.indexId],[e.indexId+1],!1,!0)))).next((()=>s.delete(IDBKeyRange.bound([e.indexId],[e.indexId+1],!1,!0))))}deleteAllFieldIndexes(t){const e=rl(t),n=nl(t),r=sl(t);return e.H().next((()=>n.H())).next((()=>r.H()))}createTargetIndexes(t,e){return Ps.forEach(this.cn(e),(e=>this.getIndexType(t,e).next((n=>{if(0===n||1===n){const n=new Uc(e).on();if(null!=n)return this.addFieldIndex(t,n)}}))))}getDocumentsMatchingTarget(t,e){const n=nl(t);let r=!0;const s=new Map;return Ps.forEach(this.cn(e),(e=>this.ln(t,e).next((t=>{r&&(r=!!t),s.set(e,t)})))).next((()=>{if(r){let t=Ca();const r=[];return Ps.forEach(s,((s,i)=>{jr("IndexedDbIndexManager",`Using index ${function(t){return`id=${t.indexId}|cg=${t.collectionGroup}|f=${t.fields.map((t=>`${t.fieldPath}:${t.kind}`)).join(",")}`}(s)} to execute ${Qo(e)}`);const o=function(t,e){const n=Es(e);if(void 0===n)return null;for(const e of Yo(t,n.fieldPath))switch(e.op){case"array-contains-any":return e.value.arrayValue.values||[];case"array-contains":return[e.value]}return null}(i,s),a=function(t,e){const n=new Map;for(const r of Ts(e))for(const e of Yo(t,r.fieldPath))switch(e.op){case"==":case"in":n.set(r.fieldPath.canonicalString(),e.value);break;case"not-in":case"!=":return n.set(r.fieldPath.canonicalString(),e.value),Array.from(n.values())}return null}(i,s),u=function(t,e){const n=[];let r=!0;for(const s of Ts(e)){const e=0===s.kind?Xo(t,s.fieldPath,t.startAt):Jo(t,s.fieldPath,t.startAt);n.push(e.value),r&&(r=e.inclusive)}return new _o(n,r)}(i,s),c=function(t,e){const n=[];let r=!0;for(const s of Ts(e)){const e=0===s.kind?Jo(t,s.fieldPath,t.endAt):Xo(t,s.fieldPath,t.endAt);n.push(e.value),r&&(r=e.inclusive)}return new _o(n,r)}(i,s),l=this.hn(s,i,u),h=this.hn(s,i,c),d=this.Pn(s,i,a),f=this.In(s.indexId,o,l,u.inclusive,h,c.inclusive,d);return Ps.forEach(f,(s=>n.j(s,e.limit).next((e=>{e.forEach((e=>{const n=_s.fromSegments(e.documentKey);t.has(n)||(t=t.add(n),r.push(n))}))}))))})).next((()=>r))}return Ps.resolve(null)}))}cn(t){let e=this.un.get(t);return e||(e=0===t.filters.length?[t]:Gc(Do.create(t.filters,"and")).map((e=>$o(t.path,t.collectionGroup,t.orderBy,e.getFilters(),t.limit,t.startAt,t.endAt))),this.un.set(t,e),e)}In(t,e,n,r,s,i,o){const a=(null!=e?e.length:1)*Math.max(n.length,s.length),u=a/(null!=e?e.length:1),c=[];for(let l=0;lthis.En(t,a,e,!0)));c.push(...this.createRange(h,d,f))}return c}En(t,e,n,r){const s=new Vc(t,_s.empty(),e,n);return r?s:s.Jt()}dn(t,e,n,r){const s=new Vc(t,_s.empty(),e,n);return r?s.Jt():s}ln(t,e){const n=new Uc(e),r=null!=e.collectionGroup?e.collectionGroup:e.path.lastSegment();return this.getFieldIndexes(t,r).next((t=>{let e=null;for(const r of t)n.tn(r)&&(!e||r.fields.length>e.fields.length)&&(e=r);return e}))}getIndexType(t,e){let n=2;const r=this.cn(e);return Ps.forEach(r,(e=>this.ln(t,e).next((t=>{t?0!==n&&t.fields.lengthfunction(t){return null!==t.limit}(e)&&r.length>1&&2===n?1:n))}An(t,e){const n=new Fc;for(const r of Ts(t)){const t=e.data.field(r.fieldPath);if(null==t)return null;const s=n.Ht(r.kind);kc.bt.Pt(t,s)}return n.Wt()}Tn(t){const e=new Fc;return kc.bt.Pt(t,e.Ht(0)),e.Wt()}Rn(t,e){const n=new Fc;return kc.bt.Pt(io(this.databaseId,e),n.Ht(function(t){const e=Ts(t);return 0===e.length?0:e[e.length-1].kind}(t))),n.Wt()}Pn(t,e,n){if(null===n)return[];let r=[];r.push(new Fc);let s=0;for(const i of Ts(t)){const t=n[s++];for(const n of r)if(this.Vn(e,i.fieldPath)&&ao(t))r=this.mn(r,i,t);else{const e=n.Ht(i.kind);kc.bt.Pt(t,e)}}return this.fn(r)}hn(t,e,n){return this.Pn(t,e,n.position)}fn(t){const e=[];for(let n=0;nt instanceof Co&&t.field.isEqual(e)&&("in"===t.op||"not-in"===t.op)))}getFieldIndexes(t,e){const n=rl(t),r=sl(t);return(e?n.W("collectionGroupIndex",IDBKeyRange.bound(e,e)):n.W()).next((t=>{const e=[];return Ps.forEach(t,(t=>r.get([t.indexId,this.uid]).next((n=>{e.push(function(t,e){const n=e?new Ds(e.sequenceNumber,new ks(wc(e.readTime),new _s(ei(e.documentKey)),e.largestBatchId)):Ds.empty(),r=t.fields.map((([t,e])=>new xs(bs.fromServerFormat(t),e)));return new Is(t.indexId,t.collectionGroup,r,n)}(t,n))})))).next((()=>e))}))}getNextCollectionGroupToUpdate(t){return this.getFieldIndexes(t).next((t=>0===t.length?null:(t.sort(((t,e)=>{const n=t.indexState.sequenceNumber-e.indexState.sequenceNumber;return 0!==n?n:ds(t.collectionGroup,e.collectionGroup)})),t[0].collectionGroup)))}updateCollectionGroup(t,e,n){const r=rl(t),s=sl(t);return this.gn(t).next((t=>r.W("collectionGroupIndex",IDBKeyRange.bound(e,e)).next((e=>Ps.forEach(e,(e=>s.put(Sc(e.indexId,this.uid,t,n))))))))}updateIndexEntries(t,e){const n=new Map;return Ps.forEach(e,((e,r)=>{const s=n.get(e.collectionGroup);return(s?Ps.resolve(s):this.getFieldIndexes(t,e.collectionGroup)).next((s=>(n.set(e.collectionGroup,s),Ps.forEach(s,(n=>this.pn(t,e,n).next((e=>{const s=this.yn(r,n);return e.isEqual(s)?Ps.resolve():this.wn(t,r,n,e,s)})))))))}))}Sn(t,e,n,r){return nl(t).put({indexId:r.indexId,uid:this.uid,arrayValue:r.arrayValue,directionalValue:r.directionalValue,orderedDocumentKey:this.Rn(n,e.key),documentKey:e.key.path.toArray()})}bn(t,e,n,r){return nl(t).delete([r.indexId,this.uid,r.arrayValue,r.directionalValue,this.Rn(n,e.key),e.key.path.toArray()])}pn(t,e,n){const r=nl(t);let s=new Mi(qc);return r.Y({index:"documentKeyIndex",range:IDBKeyRange.only([n.indexId,this.uid,this.Rn(n,e)])},((t,r)=>{s=s.add(new Vc(n.indexId,e,r.arrayValue,r.directionalValue))})).next((()=>s))}yn(t,e){let n=new Mi(qc);const r=this.An(e,t);if(null==r)return n;const s=Es(e);if(null!=s){const i=t.data.field(s.fieldPath);if(ao(i))for(const s of i.arrayValue.values||[])n=n.add(new Vc(e.indexId,t.key,this.Tn(s),r))}else n=n.add(new Vc(e.indexId,t.key,Zc,r));return n}wn(t,e,n,r,s){jr("IndexedDbIndexManager","Updating index entries for document '%s'",e.key);const i=[];return function(t,e,n,r,s){const i=t.getIterator(),o=e.getIterator();let a=Oi(i),u=Oi(o);for(;a||u;){let t=!1,e=!1;if(a&&u){const r=n(a,u);r<0?e=!0:r>0&&(t=!0)}else null!=a?e=!0:t=!0;t?(r(u),u=Oi(o)):e?(s(a),a=Oi(i)):(a=Oi(i),u=Oi(o))}}(r,s,qc,(r=>{i.push(this.Sn(t,e,n,r))}),(r=>{i.push(this.bn(t,e,n,r))})),Ps.waitFor(i)}gn(t){let e=1;return sl(t).Y({index:"sequenceNumberIndex",reverse:!0,range:IDBKeyRange.upperBound([this.uid,Number.MAX_SAFE_INTEGER])},((t,n,r)=>{r.done(),e=n.sequenceNumber+1})).next((()=>e))}createRange(t,e,n){n=n.sort(((t,e)=>qc(t,e))).filter(((t,e,n)=>!e||0!==qc(t,n[e-1])));const r=[];r.push(t);for(const s of n){const n=qc(s,t),i=qc(s,e);if(0===n)r[0]=t.Jt();else if(n>0&&i<0)r.push(s),r.push(s.Jt());else if(i>0)break}r.push(e);const s=[];for(let t=0;t0}getMinOffsetFromCollectionGroup(t,e){return this.getFieldIndexes(t,e).next(il)}getMinOffset(t,e){return Ps.mapArray(this.cn(e),(e=>this.ln(t,e).next((t=>t||Hr())))).next(il)}}function el(t){return xi(t,"collectionParents")}function nl(t){return xi(t,"indexEntries")}function rl(t){return xi(t,"indexConfiguration")}function sl(t){return xi(t,"indexState")}function il(t){Wr(0!==t.length);let e=t[0].indexState.offset,n=e.largestBatchId;for(let r=1;r(a++,n.delete())));i.push(u.next((()=>{Wr(1===a)})));const c=[];for(const t of n.mutations){const r=si(e,t.key.path,n.batchId);i.push(s.delete(r)),c.push(t.key)}return Ps.waitFor(i).next((()=>c))}function cl(t){if(!t)return 0;let e;if(t.document)e=t.document;else if(t.unknownDocument)e=t.unknownDocument;else{if(!t.noDocument)throw Hr();e=t.noDocument}return JSON.stringify(e).length}al.DEFAULT_COLLECTION_PERCENTILE=10,al.DEFAULT_MAX_SEQUENCE_NUMBERS_TO_COLLECT=1e3,al.DEFAULT=new al(41943040,al.DEFAULT_COLLECTION_PERCENTILE,al.DEFAULT_MAX_SEQUENCE_NUMBERS_TO_COLLECT),al.DISABLED=new al(-1,0,0);class ll{constructor(t,e,n,r){this.userId=t,this.serializer=e,this.indexManager=n,this.referenceDelegate=r,this.Cn={}}static lt(t,e,n,r){Wr(""!==t.uid);const s=t.isAuthenticated()?t.uid:"";return new ll(s,e,n,r)}checkEmpty(t){let e=!0;const n=IDBKeyRange.bound([this.userId,Number.NEGATIVE_INFINITY],[this.userId,Number.POSITIVE_INFINITY]);return dl(t).Y({index:"userMutationsIndex",range:n},((t,n,r)=>{e=!1,r.done()})).next((()=>e))}addMutationBatch(t,e,n,r){const s=fl(t),i=dl(t);return i.add({}).next((o=>{Wr("number"==typeof o);const a=new uu(o,e,n,r),u=function(t,e,n){const r=n.baseMutations.map((e=>Zu(t.ct,e))),s=n.mutations.map((e=>Zu(t.ct,e)));return{userId:e,batchId:n.batchId,localWriteTimeMs:n.localWriteTime.toMillis(),baseMutations:r,mutations:s}}(this.serializer,this.userId,a),c=[];let l=new Mi(((t,e)=>ds(t.canonicalString(),e.canonicalString())));for(const t of r){const e=si(this.userId,t.key.path,o);l=l.add(t.key.path.popLast()),c.push(i.put(u)),c.push(s.put(e,ii))}return l.forEach((e=>{c.push(this.indexManager.addToCollectionParentIndex(t,e))})),t.addOnCommittedListener((()=>{this.Cn[o]=a.keys()})),Ps.waitFor(c).next((()=>a))}))}lookupMutationBatch(t,e){return dl(t).get(e).next((t=>t?(Wr(t.userId===this.userId),vc(this.serializer,t)):null))}vn(t,e){return this.Cn[e]?Ps.resolve(this.Cn[e]):this.lookupMutationBatch(t,e).next((t=>{if(t){const n=t.keys();return this.Cn[e]=n,n}return null}))}getNextMutationBatchAfterBatchId(t,e){const n=e+1,r=IDBKeyRange.lowerBound([this.userId,n]);let s=null;return dl(t).Y({index:"userMutationsIndex",range:r},((t,e,r)=>{e.userId===this.userId&&(Wr(e.batchId>=n),s=vc(this.serializer,e)),r.done()})).next((()=>s))}getHighestUnacknowledgedBatchId(t){const e=IDBKeyRange.upperBound([this.userId,Number.POSITIVE_INFINITY]);let n=-1;return dl(t).Y({index:"userMutationsIndex",range:e,reverse:!0},((t,e,r)=>{n=e.batchId,r.done()})).next((()=>n))}getAllMutationBatches(t){const e=IDBKeyRange.bound([this.userId,-1],[this.userId,Number.POSITIVE_INFINITY]);return dl(t).W("userMutationsIndex",e).next((t=>t.map((t=>vc(this.serializer,t)))))}getAllMutationBatchesAffectingDocumentKey(t,e){const n=ri(this.userId,e.path),r=IDBKeyRange.lowerBound(n),s=[];return fl(t).Y({range:r},((n,r,i)=>{const[o,a,u]=n,c=ei(a);if(o===this.userId&&e.path.isEqual(c))return dl(t).get(u).next((t=>{if(!t)throw Hr();Wr(t.userId===this.userId),s.push(vc(this.serializer,t))}));i.done()})).next((()=>s))}getAllMutationBatchesAffectingDocumentKeys(t,e){let n=new Mi(ds);const r=[];return e.forEach((e=>{const s=ri(this.userId,e.path),i=IDBKeyRange.lowerBound(s),o=fl(t).Y({range:i},((t,r,s)=>{const[i,o,a]=t,u=ei(o);i===this.userId&&e.path.isEqual(u)?n=n.add(a):s.done()}));r.push(o)})),Ps.waitFor(r).next((()=>this.Fn(t,n)))}getAllMutationBatchesAffectingQuery(t,e){const n=e.path,r=n.length+1,s=ri(this.userId,n),i=IDBKeyRange.lowerBound(s);let o=new Mi(ds);return fl(t).Y({range:i},((t,e,s)=>{const[i,a,u]=t,c=ei(a);i===this.userId&&n.isPrefixOf(c)?c.length===r&&(o=o.add(u)):s.done()})).next((()=>this.Fn(t,o)))}Fn(t,e){const n=[],r=[];return e.forEach((e=>{r.push(dl(t).get(e).next((t=>{if(null===t)throw Hr();Wr(t.userId===this.userId),n.push(vc(this.serializer,t))})))})),Ps.waitFor(r).next((()=>n))}removeMutationBatch(t,e){return ul(t.ae,this.userId,e).next((n=>(t.addOnCommittedListener((()=>{this.Mn(e.batchId)})),Ps.forEach(n,(e=>this.referenceDelegate.markPotentiallyOrphaned(t,e))))))}Mn(t){delete this.Cn[t]}performConsistencyCheck(t){return this.checkEmpty(t).next((e=>{if(!e)return Ps.resolve();const n=IDBKeyRange.lowerBound(function(t){return[t]}(this.userId)),r=[];return fl(t).Y({range:n},((t,e,n)=>{if(t[0]===this.userId){const e=ei(t[1]);r.push(e)}else n.done()})).next((()=>{Wr(0===r.length)}))}))}containsKey(t,e){return hl(t,this.userId,e)}xn(t){return gl(t).get(this.userId).next((t=>t||{userId:this.userId,lastAcknowledgedBatchId:-1,lastStreamToken:""}))}}function hl(t,e,n){const r=ri(e,n.path),s=r[1],i=IDBKeyRange.lowerBound(r);let o=!1;return fl(t).Y({range:i,J:!0},((t,n,r)=>{const[i,a,u]=t;i===e&&a===s&&(o=!0),r.done()})).next((()=>o))}function dl(t){return xi(t,"mutations")}function fl(t){return xi(t,"documentMutations")}function gl(t){return xi(t,"mutationQueues")}class ml{constructor(t){this.On=t}next(){return this.On+=2,this.On}static Nn(){return new ml(0)}static Bn(){return new ml(-1)}}class pl{constructor(t,e){this.referenceDelegate=t,this.serializer=e}allocateTargetId(t){return this.Ln(t).next((e=>{const n=new ml(e.highestTargetId);return e.highestTargetId=n.next(),this.kn(t,e).next((()=>e.highestTargetId))}))}getLastRemoteSnapshotVersion(t){return this.Ln(t).next((t=>ps.fromTimestamp(new ms(t.lastRemoteSnapshotVersion.seconds,t.lastRemoteSnapshotVersion.nanoseconds))))}getHighestSequenceNumber(t){return this.Ln(t).next((t=>t.highestListenSequenceNumber))}setTargetsMetadata(t,e,n){return this.Ln(t).next((r=>(r.highestListenSequenceNumber=e,n&&(r.lastRemoteSnapshotVersion=n.toTimestamp()),e>r.highestListenSequenceNumber&&(r.highestListenSequenceNumber=e),this.kn(t,r))))}addTargetData(t,e){return this.qn(t,e).next((()=>this.Ln(t).next((n=>(n.targetCount+=1,this.Qn(e,n),this.kn(t,n))))))}updateTargetData(t,e){return this.qn(t,e)}removeTargetData(t,e){return this.removeMatchingKeysForTargetId(t,e.targetId).next((()=>yl(t).delete(e.targetId))).next((()=>this.Ln(t))).next((e=>(Wr(e.targetCount>0),e.targetCount-=1,this.kn(t,e))))}removeTargets(t,e,n){let r=0;const s=[];return yl(t).Y(((i,o)=>{const a=bc(o);a.sequenceNumber<=e&&null===n.get(a.targetId)&&(r++,s.push(this.removeTargetData(t,a)))})).next((()=>Ps.waitFor(s))).next((()=>r))}forEachTarget(t,e){return yl(t).Y(((t,n)=>{const r=bc(n);e(r)}))}Ln(t){return wl(t).get("targetGlobalKey").next((t=>(Wr(null!==t),t)))}kn(t,e){return wl(t).put("targetGlobalKey",e)}qn(t,e){return yl(t).put(_c(this.serializer,e))}Qn(t,e){let n=!1;return t.targetId>e.highestTargetId&&(e.highestTargetId=t.targetId,n=!0),t.sequenceNumber>e.highestListenSequenceNumber&&(e.highestListenSequenceNumber=t.sequenceNumber,n=!0),n}getTargetCount(t){return this.Ln(t).next((t=>t.targetCount))}getTargetData(t,e){const n=Qo(e),r=IDBKeyRange.bound([n,Number.NEGATIVE_INFINITY],[n,Number.POSITIVE_INFINITY]);let s=null;return yl(t).Y({range:r,index:"queryTargetsIndex"},((t,n,r)=>{const i=bc(n);Ho(e,i.target)&&(s=i,r.done())})).next((()=>s))}addMatchingKeys(t,e,n){const r=[],s=vl(t);return e.forEach((e=>{const i=Js(e.path);r.push(s.put({targetId:n,path:i})),r.push(this.referenceDelegate.addReference(t,n,e))})),Ps.waitFor(r)}removeMatchingKeys(t,e,n){const r=vl(t);return Ps.forEach(e,(e=>{const s=Js(e.path);return Ps.waitFor([r.delete([n,s]),this.referenceDelegate.removeReference(t,n,e)])}))}removeMatchingKeysForTargetId(t,e){const n=vl(t),r=IDBKeyRange.bound([e],[e+1],!1,!0);return n.delete(r)}getMatchingKeysForTargetId(t,e){const n=IDBKeyRange.bound([e],[e+1],!1,!0),r=vl(t);let s=Ca();return r.Y({range:n,J:!0},((t,e,n)=>{const r=ei(t[1]),i=new _s(r);s=s.add(i)})).next((()=>s))}containsKey(t,e){const n=Js(e.path),r=IDBKeyRange.bound([n],[gs(n)],!1,!0);let s=0;return vl(t).Y({index:"documentTargetsIndex",J:!0,range:r},(([t,e],n,r)=>{0!==t&&(s++,r.done())})).next((()=>s>0))}_t(t,e){return yl(t).get(e).next((t=>t?bc(t):null))}}function yl(t){return xi(t,"targets")}function wl(t){return xi(t,"targetGlobal")}function vl(t){return xi(t,"targetDocuments")}function bl([t,e],[n,r]){const s=ds(t,n);return 0===s?ds(e,r):s}class _l{constructor(t){this.Kn=t,this.buffer=new Mi(bl),this.$n=0}Un(){return++this.$n}Wn(t){const e=[t,this.Un()];if(this.buffer.size{this.Gn=null;try{await this.localStore.collectGarbage(this.garbageCollector)}catch(t){Us(t)?jr("LruGarbageCollector","Ignoring IndexedDB error during garbage collection: ",t):await Os(t)}await this.zn(3e5)}))}}class El{constructor(t,e){this.jn=t,this.params=e}calculateTargetCount(t,e){return this.jn.Hn(t).next((t=>Math.floor(e/100*t)))}nthSequenceNumber(t,e){if(0===e)return Ps.resolve(Hs._e);const n=new _l(e);return this.jn.forEachTarget(t,(t=>n.Wn(t.sequenceNumber))).next((()=>this.jn.Jn(t,(t=>n.Wn(t))))).next((()=>n.maxValue))}removeTargets(t,e,n){return this.jn.removeTargets(t,e,n)}removeOrphanedDocuments(t,e){return this.jn.removeOrphanedDocuments(t,e)}collect(t,e){return-1===this.params.cacheSizeCollectionThreshold?(jr("LruGarbageCollector","Garbage collection skipped; disabled"),Ps.resolve(ol)):this.getCacheSize(t).next((n=>n(e>this.params.maximumSequenceNumbersToCollect?(jr("LruGarbageCollector",`Capping sequence numbers to collect down to the maximum of ${this.params.maximumSequenceNumbersToCollect} from ${e}`),r=this.params.maximumSequenceNumbersToCollect):r=e,i=Date.now(),this.nthSequenceNumber(t,r)))).next((r=>(n=r,o=Date.now(),this.removeTargets(t,n,e)))).next((e=>(s=e,a=Date.now(),this.removeOrphanedDocuments(t,n)))).next((t=>(u=Date.now(),zr()<=_.DEBUG&&jr("LruGarbageCollector",`LRU Garbage Collection\n\tCounted targets in ${i-c}ms\n\tDetermined least recently used ${r} in `+(o-i)+"ms\n"+`\tRemoved ${s} targets in `+(a-o)+"ms\n"+`\tRemoved ${t} documents in `+(u-a)+"ms\n"+`Total Duration: ${u-c}ms`),Ps.resolve({didRun:!0,sequenceNumbersCollected:r,targetsRemoved:s,documentsRemoved:t}))))}}function Tl(t,e){return new El(t,e)}class Sl{constructor(t,e){this.db=t,this.garbageCollector=Tl(this,e)}Hn(t){const e=this.Zn(t);return this.db.getTargetCache().getTargetCount(t).next((t=>e.next((e=>t+e))))}Zn(t){let e=0;return this.Jn(t,(t=>{e++})).next((()=>e))}forEachTarget(t,e){return this.db.getTargetCache().forEachTarget(t,e)}Jn(t,e){return this.Xn(t,((t,n)=>e(n)))}addReference(t,e,n){return xl(t,n)}removeReference(t,e,n){return xl(t,n)}removeTargets(t,e,n){return this.db.getTargetCache().removeTargets(t,e,n)}markPotentiallyOrphaned(t,e){return xl(t,e)}er(t,e){return function(t,e){let n=!1;return gl(t).Z((r=>hl(t,r,e).next((t=>(t&&(n=!0),Ps.resolve(!t)))))).next((()=>n))}(t,e)}removeOrphanedDocuments(t,e){const n=this.db.getRemoteDocumentCache().newChangeBuffer(),r=[];let s=0;return this.Xn(t,((i,o)=>{if(o<=e){const e=this.er(t,i).next((e=>{if(!e)return s++,n.getEntry(t,i).next((()=>(n.removeEntry(i,ps.min()),vl(t).delete(function(t){return[0,Js(t.path)]}(i)))))}));r.push(e)}})).next((()=>Ps.waitFor(r))).next((()=>n.apply(t))).next((()=>s))}removeTarget(t,e){const n=e.withSequenceNumber(t.currentSequenceNumber);return this.db.getTargetCache().updateTargetData(t,n)}updateLimboDocument(t,e){return xl(t,e)}Xn(t,e){const n=vl(t);let r,s=Hs._e;return n.Y({index:"documentTargetsIndex"},(([t,n],{path:i,sequenceNumber:o})=>{0===t?(s!==Hs._e&&e(new _s(ei(r)),s),s=o,r=i):s=Hs._e})).next((()=>{s!==Hs._e&&e(new _s(ei(r)),s)}))}getCacheSize(t){return this.db.getRemoteDocumentCache().getSize(t)}}function xl(t,e){return vl(t).put(function(t,e){return{targetId:0,path:Js(t.path),sequenceNumber:e}}(e,t.currentSequenceNumber))}class Cl{constructor(){this.changes=new pa((t=>t.toString()),((t,e)=>t.isEqual(e))),this.changesApplied=!1}addEntry(t){this.assertNotApplied(),this.changes.set(t.key,t)}removeEntry(t,e){this.assertNotApplied(),this.changes.set(t,bo.newInvalidDocument(t).setReadTime(e))}getEntry(t,e){this.assertNotApplied();const n=this.changes.get(e);return void 0!==n?Ps.resolve(n):this.getFromCache(t,e)}getEntries(t,e){return this.getAllFromCache(t,e)}apply(t){return this.assertNotApplied(),this.changesApplied=!0,this.applyChanges(t)}assertNotApplied(){}}class Dl{constructor(t){this.serializer=t}setIndexManager(t){this.indexManager=t}addEntry(t,e,n){return Rl(t).put(n)}removeEntry(t,e,n){return Rl(t).delete(function(t,e){const n=t.path.toArray();return[n.slice(0,n.length-2),n[n.length-2],pc(e),n[n.length-1]]}(e,n))}updateMetadata(t,e){return this.getMetadata(t).next((n=>(n.byteSize+=e,this.tr(t,n))))}getEntry(t,e){let n=bo.newInvalidDocument(e);return Rl(t).Y({index:"documentKeyIndex",range:IDBKeyRange.only(Ml(e))},((t,r)=>{n=this.nr(e,r)})).next((()=>n))}rr(t,e){let n={size:0,document:bo.newInvalidDocument(e)};return Rl(t).Y({index:"documentKeyIndex",range:IDBKeyRange.only(Ml(e))},((t,r)=>{n={document:this.nr(e,r),size:cl(r)}})).next((()=>n))}getEntries(t,e){let n=wa();return this.ir(t,e,((t,e)=>{const r=this.nr(t,e);n=n.insert(t,r)})).next((()=>n))}sr(t,e){let n=wa(),r=new Ni(_s.comparator);return this.ir(t,e,((t,e)=>{const s=this.nr(t,e);n=n.insert(t,s),r=r.insert(t,cl(e))})).next((()=>({documents:n,_r:r})))}ir(t,e,n){if(e.isEmpty())return Ps.resolve();let r=new Mi(Ol);e.forEach((t=>r=r.add(t)));const s=IDBKeyRange.bound(Ml(r.first()),Ml(r.last())),i=r.getIterator();let o=i.getNext();return Rl(t).Y({index:"documentKeyIndex",range:s},((t,e,r)=>{const s=_s.fromSegments([...e.prefixPath,e.collectionGroup,e.documentId]);for(;o&&Ol(o,s)<0;)n(o,null),o=i.getNext();o&&o.isEqual(s)&&(n(o,e),o=i.hasNext()?i.getNext():null),o?r.U(Ml(o)):r.done()})).next((()=>{for(;o;)n(o,null),o=i.hasNext()?i.getNext():null}))}getDocumentsMatchingQuery(t,e,n,r,s){const i=e.path,o=[i.popLast().toArray(),i.lastSegment(),pc(n.readTime),n.documentKey.path.isEmpty()?"":n.documentKey.path.lastSegment()],a=[i.popLast().toArray(),i.lastSegment(),[Number.MAX_SAFE_INTEGER,Number.MAX_SAFE_INTEGER],""];return Rl(t).W(IDBKeyRange.bound(o,a,!0)).next((t=>{null==s||s.incrementDocumentReadCount(t.length);let n=wa();for(const s of t){const t=this.nr(_s.fromSegments(s.prefixPath.concat(s.collectionGroup,s.documentId)),s);t.isFoundDocument()&&(da(e,t)||r.has(t.key))&&(n=n.insert(t.key,t))}return n}))}getAllFromCollectionGroup(t,e,n,r){let s=wa();const i=Ll(e,n),o=Ll(e,ks.max());return Rl(t).Y({index:"collectionGroupIndex",range:IDBKeyRange.bound(i,o,!0)},((t,e,n)=>{const i=this.nr(_s.fromSegments(e.prefixPath.concat(e.collectionGroup,e.documentId)),e);s=s.insert(i.key,i),s.size===r&&n.done()})).next((()=>s))}newChangeBuffer(t){return new Nl(this,!!t&&t.trackRemovals)}getSize(t){return this.getMetadata(t).next((t=>t.byteSize))}getMetadata(t){return kl(t).get("remoteDocumentGlobalKey").next((t=>(Wr(!!t),t)))}tr(t,e){return kl(t).put("remoteDocumentGlobalKey",e)}nr(t,e){if(e){const t=function(t,e){let n;if(e.document)n=Ju(t.ct,e.document,!!e.hasCommittedMutations);else if(e.noDocument){const t=_s.fromSegments(e.noDocument.path),r=wc(e.noDocument.readTime);n=bo.newNoDocument(t,r),e.hasCommittedMutations&&n.setHasCommittedMutations()}else{if(!e.unknownDocument)return Hr();{const t=_s.fromSegments(e.unknownDocument.path),r=wc(e.unknownDocument.version);n=bo.newUnknownDocument(t,r)}}return e.readTime&&n.setReadTime(function(t){const e=new ms(t[0],t[1]);return ps.fromTimestamp(e)}(e.readTime)),n}(this.serializer,e);if(!t.isNoDocument()||!t.version.isEqual(ps.min()))return t}return bo.newInvalidDocument(t)}}function Al(t){return new Dl(t)}class Nl extends Cl{constructor(t,e){super(),this.ar=t,this.trackRemovals=e,this.ur=new pa((t=>t.toString()),((t,e)=>t.isEqual(e)))}applyChanges(t){const e=[];let n=0,r=new Mi(((t,e)=>ds(t.canonicalString(),e.canonicalString())));return this.changes.forEach(((s,i)=>{const o=this.ur.get(s);if(e.push(this.ar.removeEntry(t,s,o.readTime)),i.isValidDocument()){const a=mc(this.ar.serializer,i);r=r.add(s.path.popLast());const u=cl(a);n+=u-o.size,e.push(this.ar.addEntry(t,s,a))}else if(n-=o.size,this.trackRemovals){const n=mc(this.ar.serializer,i.convertToNoDocument(ps.min()));e.push(this.ar.addEntry(t,s,n))}})),r.forEach((n=>{e.push(this.ar.indexManager.addToCollectionParentIndex(t,n))})),e.push(this.ar.updateMetadata(t,n)),Ps.waitFor(e)}getFromCache(t,e){return this.ar.rr(t,e).next((t=>(this.ur.set(e,{size:t.size,readTime:t.document.readTime}),t.document)))}getAllFromCache(t,e){return this.ar.sr(t,e).next((({documents:t,_r:e})=>(e.forEach(((e,n)=>{this.ur.set(e,{size:n,readTime:t.get(e).readTime})})),t)))}}function kl(t){return xi(t,"remoteDocumentGlobal")}function Rl(t){return xi(t,"remoteDocumentsV14")}function Ml(t){const e=t.path.toArray();return[e.slice(0,e.length-2),e[e.length-2],e[e.length-1]]}function Ll(t,e){const n=e.documentKey.path.toArray();return[t,pc(e.readTime),n.slice(0,n.length-2),n.length>0?n[n.length-1]:""]}function Ol(t,e){const n=t.path.toArray(),r=e.path.toArray();let s=0;for(let t=0;t(n=r,this.remoteDocumentCache.getEntry(t,e)))).next((t=>(null!==n&&Ja(n.mutation,t,Pi.empty(),ms.now()),t)))}getDocuments(t,e){return this.remoteDocumentCache.getEntries(t,e).next((e=>this.getLocalViewOfDocuments(t,e,Ca()).next((()=>e))))}getLocalViewOfDocuments(t,e,n=Ca()){const r=Ia();return this.populateOverlays(t,r,e).next((()=>this.computeViews(t,e,r,n).next((t=>{let e=ba();return t.forEach(((t,n)=>{e=e.insert(t,n.overlayedDocument)})),e}))))}getOverlayedDocuments(t,e){const n=Ia();return this.populateOverlays(t,n,e).next((()=>this.computeViews(t,e,n,Ca())))}populateOverlays(t,e,n){const r=[];return n.forEach((t=>{e.has(t)||r.push(t)})),this.documentOverlayCache.getOverlays(t,r).next((t=>{t.forEach(((t,n)=>{e.set(t,n)}))}))}computeViews(t,e,n,r){let s=wa();const i=Ta(),o=Ta();return e.forEach(((t,e)=>{const o=n.get(e.key);r.has(e.key)&&(void 0===o||o.mutation instanceof nu)?s=s.insert(e.key,e):void 0!==o?(i.set(e.key,o.mutation.getFieldMask()),Ja(o.mutation,e,o.mutation.getFieldMask(),ms.now())):i.set(e.key,Pi.empty())})),this.recalculateAndSaveOverlays(t,s).next((t=>(t.forEach(((t,e)=>i.set(t,e))),e.forEach(((t,e)=>{var n;return o.set(t,new Pl(e,null!==(n=i.get(t))&&void 0!==n?n:null))})),o)))}recalculateAndSaveOverlays(t,e){const n=Ta();let r=new Ni(((t,e)=>t-e)),s=Ca();return this.mutationQueue.getAllMutationBatchesAffectingDocumentKeys(t,e).next((t=>{for(const s of t)s.keys().forEach((t=>{const i=e.get(t);if(null===i)return;let o=n.get(t)||Pi.empty();o=s.applyToLocalView(i,o),n.set(t,o);const a=(r.get(s.batchId)||Ca()).add(t);r=r.insert(s.batchId,a)}))})).next((()=>{const i=[],o=r.getReverseIterator();for(;o.hasNext();){const r=o.getNext(),a=r.key,u=r.value,c=Ea();u.forEach((t=>{if(!s.has(t)){const r=Ya(e.get(t),n.get(t));null!==r&&c.set(t,r),s=s.add(t)}})),i.push(this.documentOverlayCache.saveOverlays(t,a,c))}return Ps.waitFor(i)})).next((()=>n))}recalculateAndSaveOverlaysForDocumentKeys(t,e){return this.remoteDocumentCache.getEntries(t,e).next((e=>this.recalculateAndSaveOverlays(t,e)))}getDocumentsMatchingQuery(t,e,n,r){return function(t){return _s.isDocumentKey(t.path)&&null===t.collectionGroup&&0===t.filters.length}(e)?this.getDocumentsMatchingDocumentQuery(t,e.path):ra(e)?this.getDocumentsMatchingCollectionGroupQuery(t,e,n,r):this.getDocumentsMatchingCollectionQuery(t,e,n,r)}getNextDocuments(t,e,n,r){return this.remoteDocumentCache.getAllFromCollectionGroup(t,e,n,r).next((s=>{const i=r-s.size>0?this.documentOverlayCache.getOverlaysForCollectionGroup(t,e,n.largestBatchId,r-s.size):Ps.resolve(Ia());let o=-1,a=s;return i.next((e=>Ps.forEach(e,((e,n)=>(o{a=a.insert(e,t)}))))).next((()=>this.populateOverlays(t,e,s))).next((()=>this.computeViews(t,a,e,Ca()))).next((t=>({batchId:o,changes:_a(t)})))))}))}getDocumentsMatchingDocumentQuery(t,e){return this.getDocument(t,new _s(e)).next((t=>{let e=ba();return t.isFoundDocument()&&(e=e.insert(t.key,t)),e}))}getDocumentsMatchingCollectionGroupQuery(t,e,n,r){const s=e.collectionGroup;let i=ba();return this.indexManager.getCollectionParents(t,s).next((o=>Ps.forEach(o,(o=>{const a=function(t,e){return new Zo(e,null,t.explicitOrderBy.slice(),t.filters.slice(),t.limit,t.limitType,t.startAt,t.endAt)}(e,o.child(s));return this.getDocumentsMatchingCollectionQuery(t,a,n,r).next((t=>{t.forEach(((t,e)=>{i=i.insert(t,e)}))}))})).next((()=>i))))}getDocumentsMatchingCollectionQuery(t,e,n,r){let s;return this.documentOverlayCache.getOverlaysForCollection(t,e.path,n.largestBatchId).next((i=>(s=i,this.remoteDocumentCache.getDocumentsMatchingQuery(t,e,n,s,r)))).next((t=>{s.forEach(((e,n)=>{const r=n.getKey();null===t.get(r)&&(t=t.insert(r,bo.newInvalidDocument(r)))}));let n=ba();return t.forEach(((t,r)=>{const i=s.get(t);void 0!==i&&Ja(i.mutation,r,Pi.empty(),ms.now()),da(e,r)&&(n=n.insert(t,r))})),n}))}}class Vl{constructor(t){this.serializer=t,this.cr=new Map,this.lr=new Map}getBundleMetadata(t,e){return Ps.resolve(this.cr.get(e))}saveBundleMetadata(t,e){return this.cr.set(e.id,function(t){return{id:t.id,version:t.version,createTime:Uu(t.createTime)}}(e)),Ps.resolve()}getNamedQuery(t,e){return Ps.resolve(this.lr.get(e))}saveNamedQuery(t,e){return this.lr.set(e.name,function(t){return{name:t.name,query:Ic(t.bundledQuery),readTime:Uu(t.readTime)}}(e)),Ps.resolve()}}class ql{constructor(){this.overlays=new Ni(_s.comparator),this.hr=new Map}getOverlay(t,e){return Ps.resolve(this.overlays.get(e))}getOverlays(t,e){const n=Ia();return Ps.forEach(e,(e=>this.getOverlay(t,e).next((t=>{null!==t&&n.set(e,t)})))).next((()=>n))}saveOverlays(t,e,n){return n.forEach(((n,r)=>{this.ht(t,e,r)})),Ps.resolve()}removeOverlaysForBatchId(t,e,n){const r=this.hr.get(n);return void 0!==r&&(r.forEach((t=>this.overlays=this.overlays.remove(t))),this.hr.delete(n)),Ps.resolve()}getOverlaysForCollection(t,e,n){const r=Ia(),s=e.length+1,i=new _s(e.child("")),o=this.overlays.getIteratorFrom(i);for(;o.hasNext();){const t=o.getNext().value,i=t.getKey();if(!e.isPrefixOf(i.path))break;i.path.length===s&&t.largestBatchId>n&&r.set(t.getKey(),t)}return Ps.resolve(r)}getOverlaysForCollectionGroup(t,e,n,r){let s=new Ni(((t,e)=>t-e));const i=this.overlays.getIterator();for(;i.hasNext();){const t=i.getNext().value;if(t.getKey().getCollectionGroup()===e&&t.largestBatchId>n){let e=s.get(t.largestBatchId);null===e&&(e=Ia(),s=s.insert(t.largestBatchId,e)),e.set(t.getKey(),t)}}const o=Ia(),a=s.getIterator();for(;a.hasNext()&&(a.getNext().value.forEach(((t,e)=>o.set(t,e))),!(o.size()>=r)););return Ps.resolve(o)}ht(t,e,n){const r=this.overlays.get(n.key);if(null!==r){const t=this.hr.get(r.largestBatchId).delete(n.key);this.hr.set(r.largestBatchId,t)}this.overlays=this.overlays.insert(n.key,new lu(e,n));let s=this.hr.get(e);void 0===s&&(s=Ca(),this.hr.set(e,s)),this.hr.set(e,s.add(n.key))}}class Bl{constructor(){this.Pr=new Mi(Ul.Ir),this.Tr=new Mi(Ul.Er)}isEmpty(){return this.Pr.isEmpty()}addReference(t,e){const n=new Ul(t,e);this.Pr=this.Pr.add(n),this.Tr=this.Tr.add(n)}dr(t,e){t.forEach((t=>this.addReference(t,e)))}removeReference(t,e){this.Ar(new Ul(t,e))}Rr(t,e){t.forEach((t=>this.removeReference(t,e)))}Vr(t){const e=new _s(new ws([])),n=new Ul(e,t),r=new Ul(e,t+1),s=[];return this.Tr.forEachInRange([n,r],(t=>{this.Ar(t),s.push(t.key)})),s}mr(){this.Pr.forEach((t=>this.Ar(t)))}Ar(t){this.Pr=this.Pr.delete(t),this.Tr=this.Tr.delete(t)}gr(t){const e=new _s(new ws([])),n=new Ul(e,t),r=new Ul(e,t+1);let s=Ca();return this.Tr.forEachInRange([n,r],(t=>{s=s.add(t.key)})),s}containsKey(t){const e=new Ul(t,0),n=this.Pr.firstAfterOrEqual(e);return null!==n&&t.isEqual(n.key)}}class Ul{constructor(t,e){this.key=t,this.pr=e}static Ir(t,e){return _s.comparator(t.key,e.key)||ds(t.pr,e.pr)}static Er(t,e){return ds(t.pr,e.pr)||_s.comparator(t.key,e.key)}}class zl{constructor(t,e){this.indexManager=t,this.referenceDelegate=e,this.mutationQueue=[],this.yr=1,this.wr=new Mi(Ul.Ir)}checkEmpty(t){return Ps.resolve(0===this.mutationQueue.length)}addMutationBatch(t,e,n,r){const s=this.yr;this.yr++,this.mutationQueue.length>0&&this.mutationQueue[this.mutationQueue.length-1];const i=new uu(s,e,n,r);this.mutationQueue.push(i);for(const e of r)this.wr=this.wr.add(new Ul(e.key,s)),this.indexManager.addToCollectionParentIndex(t,e.key.path.popLast());return Ps.resolve(i)}lookupMutationBatch(t,e){return Ps.resolve(this.Sr(e))}getNextMutationBatchAfterBatchId(t,e){const n=e+1,r=this.br(n),s=r<0?0:r;return Ps.resolve(this.mutationQueue.length>s?this.mutationQueue[s]:null)}getHighestUnacknowledgedBatchId(){return Ps.resolve(0===this.mutationQueue.length?-1:this.yr-1)}getAllMutationBatches(t){return Ps.resolve(this.mutationQueue.slice())}getAllMutationBatchesAffectingDocumentKey(t,e){const n=new Ul(e,0),r=new Ul(e,Number.POSITIVE_INFINITY),s=[];return this.wr.forEachInRange([n,r],(t=>{const e=this.Sr(t.pr);s.push(e)})),Ps.resolve(s)}getAllMutationBatchesAffectingDocumentKeys(t,e){let n=new Mi(ds);return e.forEach((t=>{const e=new Ul(t,0),r=new Ul(t,Number.POSITIVE_INFINITY);this.wr.forEachInRange([e,r],(t=>{n=n.add(t.pr)}))})),Ps.resolve(this.Dr(n))}getAllMutationBatchesAffectingQuery(t,e){const n=e.path,r=n.length+1;let s=n;_s.isDocumentKey(s)||(s=s.child(""));const i=new Ul(new _s(s),0);let o=new Mi(ds);return this.wr.forEachWhile((t=>{const e=t.key.path;return!!n.isPrefixOf(e)&&(e.length===r&&(o=o.add(t.pr)),!0)}),i),Ps.resolve(this.Dr(o))}Dr(t){const e=[];return t.forEach((t=>{const n=this.Sr(t);null!==n&&e.push(n)})),e}removeMutationBatch(t,e){Wr(0===this.Cr(e.batchId,"removed")),this.mutationQueue.shift();let n=this.wr;return Ps.forEach(e.mutations,(r=>{const s=new Ul(r.key,e.batchId);return n=n.delete(s),this.referenceDelegate.markPotentiallyOrphaned(t,r.key)})).next((()=>{this.wr=n}))}Mn(t){}containsKey(t,e){const n=new Ul(e,0),r=this.wr.firstAfterOrEqual(n);return Ps.resolve(e.isEqual(r&&r.key))}performConsistencyCheck(t){return this.mutationQueue.length,Ps.resolve()}Cr(t,e){return this.br(t)}br(t){return 0===this.mutationQueue.length?0:t-this.mutationQueue[0].batchId}Sr(t){const e=this.br(t);return e<0||e>=this.mutationQueue.length?null:this.mutationQueue[e]}}class Gl{constructor(t){this.vr=t,this.docs=new Ni(_s.comparator),this.size=0}setIndexManager(t){this.indexManager=t}addEntry(t,e){const n=e.key,r=this.docs.get(n),s=r?r.size:0,i=this.vr(e);return this.docs=this.docs.insert(n,{document:e.mutableCopy(),size:i}),this.size+=i-s,this.indexManager.addToCollectionParentIndex(t,n.path.popLast())}removeEntry(t){const e=this.docs.get(t);e&&(this.docs=this.docs.remove(t),this.size-=e.size)}getEntry(t,e){const n=this.docs.get(e);return Ps.resolve(n?n.document.mutableCopy():bo.newInvalidDocument(e))}getEntries(t,e){let n=wa();return e.forEach((t=>{const e=this.docs.get(t);n=n.insert(t,e?e.document.mutableCopy():bo.newInvalidDocument(t))})),Ps.resolve(n)}getDocumentsMatchingQuery(t,e,n,r){let s=wa();const i=e.path,o=new _s(i.child("")),a=this.docs.getIteratorFrom(o);for(;a.hasNext();){const{key:t,value:{document:o}}=a.getNext();if(!i.isPrefixOf(t.path))break;t.path.length>i.length+1||Rs(Ns(o),n)<=0||(r.has(o.key)||da(e,o))&&(s=s.insert(o.key,o.mutableCopy()))}return Ps.resolve(s)}getAllFromCollectionGroup(t,e,n,r){Hr()}Fr(t,e){return Ps.forEach(this.docs,(t=>e(t)))}newChangeBuffer(t){return new jl(this)}getSize(t){return Ps.resolve(this.size)}}class jl extends Cl{constructor(t){super(),this.ar=t}applyChanges(t){const e=[];return this.changes.forEach(((n,r)=>{r.isValidDocument()?e.push(this.ar.addEntry(t,r)):this.ar.removeEntry(n)})),Ps.waitFor(e)}getFromCache(t,e){return this.ar.getEntry(t,e)}getAllFromCache(t,e){return this.ar.getEntries(t,e)}}class Kl{constructor(t){this.persistence=t,this.Mr=new pa((t=>Qo(t)),Ho),this.lastRemoteSnapshotVersion=ps.min(),this.highestTargetId=0,this.Or=0,this.Nr=new Bl,this.targetCount=0,this.Br=ml.Nn()}forEachTarget(t,e){return this.Mr.forEach(((t,n)=>e(n))),Ps.resolve()}getLastRemoteSnapshotVersion(t){return Ps.resolve(this.lastRemoteSnapshotVersion)}getHighestSequenceNumber(t){return Ps.resolve(this.Or)}allocateTargetId(t){return this.highestTargetId=this.Br.next(),Ps.resolve(this.highestTargetId)}setTargetsMetadata(t,e,n){return n&&(this.lastRemoteSnapshotVersion=n),e>this.Or&&(this.Or=e),Ps.resolve()}qn(t){this.Mr.set(t.target,t);const e=t.targetId;e>this.highestTargetId&&(this.Br=new ml(e),this.highestTargetId=e),t.sequenceNumber>this.Or&&(this.Or=t.sequenceNumber)}addTargetData(t,e){return this.qn(e),this.targetCount+=1,Ps.resolve()}updateTargetData(t,e){return this.qn(e),Ps.resolve()}removeTargetData(t,e){return this.Mr.delete(e.target),this.Nr.Vr(e.targetId),this.targetCount-=1,Ps.resolve()}removeTargets(t,e,n){let r=0;const s=[];return this.Mr.forEach(((i,o)=>{o.sequenceNumber<=e&&null===n.get(o.targetId)&&(this.Mr.delete(i),s.push(this.removeMatchingKeysForTargetId(t,o.targetId)),r++)})),Ps.waitFor(s).next((()=>r))}getTargetCount(t){return Ps.resolve(this.targetCount)}getTargetData(t,e){const n=this.Mr.get(e)||null;return Ps.resolve(n)}addMatchingKeys(t,e,n){return this.Nr.dr(e,n),Ps.resolve()}removeMatchingKeys(t,e,n){this.Nr.Rr(e,n);const r=this.persistence.referenceDelegate,s=[];return r&&e.forEach((e=>{s.push(r.markPotentiallyOrphaned(t,e))})),Ps.waitFor(s)}removeMatchingKeysForTargetId(t,e){return this.Nr.Vr(e),Ps.resolve()}getMatchingKeysForTargetId(t,e){const n=this.Nr.gr(e);return Ps.resolve(n)}containsKey(t,e){return Ps.resolve(this.Nr.containsKey(e))}}class $l{constructor(t,e){this.Lr={},this.overlays={},this.kr=new Hs(0),this.qr=!1,this.qr=!0,this.referenceDelegate=t(this),this.Qr=new Kl(this),this.indexManager=new Xc,this.remoteDocumentCache=function(t){return new Gl(t)}((t=>this.referenceDelegate.Kr(t))),this.serializer=new gc(e),this.$r=new Vl(this.serializer)}start(){return Promise.resolve()}shutdown(){return this.qr=!1,Promise.resolve()}get started(){return this.qr}setDatabaseDeletedListener(){}setNetworkEnabled(){}getIndexManager(t){return this.indexManager}getDocumentOverlayCache(t){let e=this.overlays[t.toKey()];return e||(e=new ql,this.overlays[t.toKey()]=e),e}getMutationQueue(t,e){let n=this.Lr[t.toKey()];return n||(n=new zl(e,this.referenceDelegate),this.Lr[t.toKey()]=n),n}getTargetCache(){return this.Qr}getRemoteDocumentCache(){return this.remoteDocumentCache}getBundleCache(){return this.$r}runTransaction(t,e,n){jr("MemoryPersistence","Starting transaction:",t);const r=new Ql(this.kr.next());return this.referenceDelegate.Ur(),n(r).next((t=>this.referenceDelegate.Wr(r).next((()=>t)))).toPromise().then((t=>(r.raiseOnCommittedEvent(),t)))}Gr(t,e){return Ps.or(Object.values(this.Lr).map((n=>()=>n.containsKey(t,e))))}}class Ql extends Ls{constructor(t){super(),this.currentSequenceNumber=t}}class Hl{constructor(t){this.persistence=t,this.zr=new Bl,this.jr=null}static Hr(t){return new Hl(t)}get Jr(){if(this.jr)return this.jr;throw Hr()}addReference(t,e,n){return this.zr.addReference(n,e),this.Jr.delete(n.toString()),Ps.resolve()}removeReference(t,e,n){return this.zr.removeReference(n,e),this.Jr.add(n.toString()),Ps.resolve()}markPotentiallyOrphaned(t,e){return this.Jr.add(e.toString()),Ps.resolve()}removeTarget(t,e){this.zr.Vr(e.targetId).forEach((t=>this.Jr.add(t.toString())));const n=this.persistence.getTargetCache();return n.getMatchingKeysForTargetId(t,e.targetId).next((t=>{t.forEach((t=>this.Jr.add(t.toString())))})).next((()=>n.removeTargetData(t,e)))}Ur(){this.jr=new Set}Wr(t){const e=this.persistence.getRemoteDocumentCache().newChangeBuffer();return Ps.forEach(this.Jr,(n=>{const r=_s.fromPath(n);return this.Yr(t,r).next((t=>{t||e.removeEntry(r,ps.min())}))})).next((()=>(this.jr=null,e.apply(t))))}updateLimboDocument(t,e){return this.Yr(t,e).next((t=>{t?this.Jr.delete(e.toString()):this.Jr.add(e.toString())}))}Kr(t){return 0}Yr(t,e){return Ps.or([()=>Ps.resolve(this.zr.containsKey(e)),()=>this.persistence.getTargetCache().containsKey(t,e),()=>this.persistence.Gr(t,e)])}}class Wl{constructor(t,e){this.persistence=t,this.Zr=new pa((t=>Js(t.path)),((t,e)=>t.isEqual(e))),this.garbageCollector=Tl(this,e)}static Hr(t,e){return new Wl(t,e)}Ur(){}Wr(t){return Ps.resolve()}forEachTarget(t,e){return this.persistence.getTargetCache().forEachTarget(t,e)}Hn(t){const e=this.Zn(t);return this.persistence.getTargetCache().getTargetCount(t).next((t=>e.next((e=>t+e))))}Zn(t){let e=0;return this.Jn(t,(t=>{e++})).next((()=>e))}Jn(t,e){return Ps.forEach(this.Zr,((n,r)=>this.er(t,n,r).next((t=>t?Ps.resolve():e(r)))))}removeTargets(t,e,n){return this.persistence.getTargetCache().removeTargets(t,e,n)}removeOrphanedDocuments(t,e){let n=0;const r=this.persistence.getRemoteDocumentCache(),s=r.newChangeBuffer();return r.Fr(t,(r=>this.er(t,r,e).next((t=>{t||(n++,s.removeEntry(r,ps.min()))})))).next((()=>s.apply(t))).next((()=>n))}markPotentiallyOrphaned(t,e){return this.Zr.set(e,t.currentSequenceNumber),Ps.resolve()}removeTarget(t,e){const n=e.withSequenceNumber(t.currentSequenceNumber);return this.persistence.getTargetCache().updateTargetData(t,n)}addReference(t,e,n){return this.Zr.set(n,t.currentSequenceNumber),Ps.resolve()}removeReference(t,e,n){return this.Zr.set(n,t.currentSequenceNumber),Ps.resolve()}updateLimboDocument(t,e){return this.Zr.set(e,t.currentSequenceNumber),Ps.resolve()}Kr(t){let e=t.key.toString().length;return t.isFoundDocument()&&(e+=so(t.data.value)),e}er(t,e,n){return Ps.or([()=>this.persistence.Gr(t,e),()=>this.persistence.getTargetCache().containsKey(t,e),()=>{const t=this.Zr.get(e);return Ps.resolve(void 0!==t&&t>n)}])}getCacheSize(t){return this.persistence.getRemoteDocumentCache().getSize(t)}}class Yl{constructor(t){this.serializer=t}N(t,e,n,r){const s=new Fs("createOrUpgrade",e);n<1&&r>=1&&(function(t){t.createObjectStore("owner")}(t),function(t){t.createObjectStore("mutationQueues",{keyPath:"userId"}),t.createObjectStore("mutations",{keyPath:"batchId",autoIncrement:!0}).createIndex("userMutationsIndex",ni,{unique:!0}),t.createObjectStore("documentMutations")}(t),Xl(t),function(t){t.createObjectStore("remoteDocuments")}(t));let i=Ps.resolve();return n<3&&r>=3&&(0!==n&&(function(t){t.deleteObjectStore("targetDocuments"),t.deleteObjectStore("targets"),t.deleteObjectStore("targetGlobal")}(t),Xl(t)),i=i.next((()=>function(t){const e=t.store("targetGlobal"),n={highestTargetId:0,highestListenSequenceNumber:0,lastRemoteSnapshotVersion:ps.min().toTimestamp(),targetCount:0};return e.put("targetGlobalKey",n)}(s)))),n<4&&r>=4&&(0!==n&&(i=i.next((()=>function(t,e){return e.store("mutations").W().next((n=>{t.deleteObjectStore("mutations"),t.createObjectStore("mutations",{keyPath:"batchId",autoIncrement:!0}).createIndex("userMutationsIndex",ni,{unique:!0});const r=e.store("mutations"),s=n.map((t=>r.put(t)));return Ps.waitFor(s)}))}(t,s)))),i=i.next((()=>{!function(t){t.createObjectStore("clientMetadata",{keyPath:"clientId"})}(t)}))),n<5&&r>=5&&(i=i.next((()=>this.Xr(s)))),n<6&&r>=6&&(i=i.next((()=>(function(t){t.createObjectStore("remoteDocumentGlobal")}(t),this.ei(s))))),n<7&&r>=7&&(i=i.next((()=>this.ti(s)))),n<8&&r>=8&&(i=i.next((()=>this.ni(t,s)))),n<9&&r>=9&&(i=i.next((()=>{!function(t){t.objectStoreNames.contains("remoteDocumentChanges")&&t.deleteObjectStore("remoteDocumentChanges")}(t)}))),n<10&&r>=10&&(i=i.next((()=>this.ri(s)))),n<11&&r>=11&&(i=i.next((()=>{!function(t){t.createObjectStore("bundles",{keyPath:"bundleId"})}(t),function(t){t.createObjectStore("namedQueries",{keyPath:"name"})}(t)}))),n<12&&r>=12&&(i=i.next((()=>{!function(t){const e=t.createObjectStore("documentOverlays",{keyPath:yi});e.createIndex("collectionPathOverlayIndex",wi,{unique:!1}),e.createIndex("collectionGroupOverlayIndex",vi,{unique:!1})}(t)}))),n<13&&r>=13&&(i=i.next((()=>function(t){const e=t.createObjectStore("remoteDocumentsV14",{keyPath:oi});e.createIndex("documentKeyIndex",ai),e.createIndex("collectionGroupIndex",ui)}(t))).next((()=>this.ii(t,s))).next((()=>t.deleteObjectStore("remoteDocuments")))),n<14&&r>=14&&(i=i.next((()=>this.si(t,s)))),n<15&&r>=15&&(i=i.next((()=>function(t){t.createObjectStore("indexConfiguration",{keyPath:"indexId",autoIncrement:!0}).createIndex("collectionGroupIndex","collectionGroup",{unique:!1}),t.createObjectStore("indexState",{keyPath:fi}).createIndex("sequenceNumberIndex",gi,{unique:!1}),t.createObjectStore("indexEntries",{keyPath:mi}).createIndex("documentKeyIndex",pi,{unique:!1})}(t)))),i}ei(t){let e=0;return t.store("remoteDocuments").Y(((t,n)=>{e+=cl(n)})).next((()=>{const n={byteSize:e};return t.store("remoteDocumentGlobal").put("remoteDocumentGlobalKey",n)}))}Xr(t){const e=t.store("mutationQueues"),n=t.store("mutations");return e.W().next((e=>Ps.forEach(e,(e=>{const r=IDBKeyRange.bound([e.userId,-1],[e.userId,e.lastAcknowledgedBatchId]);return n.W("userMutationsIndex",r).next((n=>Ps.forEach(n,(n=>{Wr(n.userId===e.userId);const r=vc(this.serializer,n);return ul(t,e.userId,r).next((()=>{}))}))))}))))}ti(t){const e=t.store("targetDocuments"),n=t.store("remoteDocuments");return t.store("targetGlobal").get("targetGlobalKey").next((t=>{const r=[];return n.Y(((n,s)=>{const i=new ws(n),o=function(t){return[0,Js(t)]}(i);r.push(e.get(o).next((n=>n?Ps.resolve():(n=>e.put({targetId:0,path:Js(n),sequenceNumber:t.highestListenSequenceNumber}))(i))))})).next((()=>Ps.waitFor(r)))}))}ni(t,e){t.createObjectStore("collectionParents",{keyPath:di});const n=e.store("collectionParents"),r=new Jc,s=t=>{if(r.add(t)){const e=t.lastSegment(),r=t.popLast();return n.put({collectionId:e,parent:Js(r)})}};return e.store("remoteDocuments").Y({J:!0},((t,e)=>{const n=new ws(t);return s(n.popLast())})).next((()=>e.store("documentMutations").Y({J:!0},(([t,e,n],r)=>{const i=ei(e);return s(i.popLast())}))))}ri(t){const e=t.store("targets");return e.Y(((t,n)=>{const r=bc(n),s=_c(this.serializer,r);return e.put(s)}))}ii(t,e){const n=e.store("remoteDocuments"),r=[];return n.Y(((t,n)=>{const s=e.store("remoteDocumentsV14"),i=function(t){return t.document?new _s(ws.fromString(t.document.name).popFirst(5)):t.noDocument?_s.fromSegments(t.noDocument.path):t.unknownDocument?_s.fromSegments(t.unknownDocument.path):Hr()}(n).path.toArray(),o={prefixPath:i.slice(0,i.length-2),collectionGroup:i[i.length-2],documentId:i[i.length-1],readTime:n.readTime||[0,0],unknownDocument:n.unknownDocument,noDocument:n.noDocument,document:n.document,hasCommittedMutations:!!n.hasCommittedMutations};r.push(s.put(o))})).next((()=>Ps.waitFor(r)))}si(t,e){const n=e.store("mutations"),r=Al(this.serializer),s=new $l(Hl.Hr,this.serializer.ct);return n.W().next((t=>{const n=new Map;return t.forEach((t=>{var e;let r=null!==(e=n.get(t.userId))&&void 0!==e?e:Ca();vc(this.serializer,t).keys().forEach((t=>r=r.add(t))),n.set(t.userId,r)})),Ps.forEach(n,((t,n)=>{const i=new qr(n),o=Ac.lt(this.serializer,i),a=s.getIndexManager(i),u=ll.lt(i,this.serializer,a,s.referenceDelegate);return new Fl(r,u,o,a).recalculateAndSaveOverlaysForDocumentKeys(new Si(e,Hs._e),t).next()}))}))}}function Xl(t){t.createObjectStore("targetDocuments",{keyPath:li}).createIndex("documentTargetsIndex",hi,{unique:!0}),t.createObjectStore("targets",{keyPath:"targetId"}).createIndex("queryTargetsIndex",ci,{unique:!0}),t.createObjectStore("targetGlobal")}const Jl="Failed to obtain exclusive access to the persistence layer. To allow shared access, multi-tab synchronization has to be enabled in all tabs. If you are using `experimentalForceOwningTab:true`, make sure that only one tab has persistence enabled at any given time.";class Zl{constructor(t,e,n,r,s,i,o,a,u,c,l=15){if(this.allowTabSynchronization=t,this.persistenceKey=e,this.clientId=n,this.oi=s,this.window=i,this.document=o,this._i=u,this.ai=c,this.ui=l,this.kr=null,this.qr=!1,this.isPrimary=!1,this.networkEnabled=!0,this.ci=null,this.inForeground=!1,this.li=null,this.hi=null,this.Pi=Number.NEGATIVE_INFINITY,this.Ii=t=>Promise.resolve(),!Zl.D())throw new Zr(Jr.UNIMPLEMENTED,"This platform is either missing IndexedDB or is known to have an incomplete implementation. Offline persistence has been disabled.");this.referenceDelegate=new Sl(this,r),this.Ti=e+"main",this.serializer=new gc(a),this.Ei=new Vs(this.Ti,this.ui,new Yl(this.serializer)),this.Qr=new pl(this.referenceDelegate,this.serializer),this.remoteDocumentCache=Al(this.serializer),this.$r=new xc,this.window&&this.window.localStorage?this.di=this.window.localStorage:(this.di=null,!1===c&&Kr("IndexedDbPersistence","LocalStorage is unavailable. As a result, persistence may not work reliably. In particular enablePersistence() could fail immediately after refreshing the page."))}start(){return this.Ai().then((()=>{if(!this.isPrimary&&!this.allowTabSynchronization)throw new Zr(Jr.FAILED_PRECONDITION,Jl);return this.Ri(),this.Vi(),this.mi(),this.runTransaction("getHighestListenSequenceNumber","readonly",(t=>this.Qr.getHighestSequenceNumber(t)))})).then((t=>{this.kr=new Hs(t,this._i)})).then((()=>{this.qr=!0})).catch((t=>(this.Ei&&this.Ei.close(),Promise.reject(t))))}fi(t){return this.Ii=async e=>{if(this.started)return t(e)},t(this.isPrimary)}setDatabaseDeletedListener(t){this.Ei.L((async e=>{null===e.newVersion&&await t()}))}setNetworkEnabled(t){this.networkEnabled!==t&&(this.networkEnabled=t,this.oi.enqueueAndForget((async()=>{this.started&&await this.Ai()})))}Ai(){return this.runTransaction("updateClientMetadataAndTryBecomePrimary","readwrite",(t=>eh(t).put({clientId:this.clientId,updateTimeMs:Date.now(),networkEnabled:this.networkEnabled,inForeground:this.inForeground}).next((()=>{if(this.isPrimary)return this.gi(t).next((t=>{t||(this.isPrimary=!1,this.oi.enqueueRetryable((()=>this.Ii(!1))))}))})).next((()=>this.pi(t))).next((e=>this.isPrimary&&!e?this.yi(t).next((()=>!1)):!!e&&this.wi(t).next((()=>!0)))))).catch((t=>{if(Us(t))return jr("IndexedDbPersistence","Failed to extend owner lease: ",t),this.isPrimary;if(!this.allowTabSynchronization)throw t;return jr("IndexedDbPersistence","Releasing owner lease after error during lease refresh",t),!1})).then((t=>{this.isPrimary!==t&&this.oi.enqueueRetryable((()=>this.Ii(t))),this.isPrimary=t}))}gi(t){return th(t).get("owner").next((t=>Ps.resolve(this.Si(t))))}bi(t){return eh(t).delete(this.clientId)}async Di(){if(this.isPrimary&&!this.Ci(this.Pi,18e5)){this.Pi=Date.now();const t=await this.runTransaction("maybeGarbageCollectMultiClientState","readwrite-primary",(t=>{const e=xi(t,"clientMetadata");return e.W().next((t=>{const n=this.vi(t,18e5),r=t.filter((t=>-1===n.indexOf(t)));return Ps.forEach(r,(t=>e.delete(t.clientId))).next((()=>r))}))})).catch((()=>[]));if(this.di)for(const e of t)this.di.removeItem(this.Fi(e.clientId))}}mi(){this.hi=this.oi.enqueueAfterDelay("client_metadata_refresh",4e3,(()=>this.Ai().then((()=>this.Di())).then((()=>this.mi()))))}Si(t){return!!t&&t.ownerId===this.clientId}pi(t){return this.ai?Ps.resolve(!0):th(t).get("owner").next((e=>{if(null!==e&&this.Ci(e.leaseTimestampMs,5e3)&&!this.Mi(e.ownerId)){if(this.Si(e)&&this.networkEnabled)return!0;if(!this.Si(e)){if(!e.allowTabSynchronization)throw new Zr(Jr.FAILED_PRECONDITION,Jl);return!1}}return!(!this.networkEnabled||!this.inForeground)||eh(t).W().next((t=>void 0===this.vi(t,5e3).find((t=>{if(this.clientId!==t.clientId){const e=!this.networkEnabled&&t.networkEnabled,n=!this.inForeground&&t.inForeground,r=this.networkEnabled===t.networkEnabled;if(e||n&&r)return!0}return!1}))))})).next((t=>(this.isPrimary!==t&&jr("IndexedDbPersistence",`Client ${t?"is":"is not"} eligible for a primary lease.`),t)))}async shutdown(){this.qr=!1,this.xi(),this.hi&&(this.hi.cancel(),this.hi=null),this.Oi(),this.Ni(),await this.Ei.runTransaction("shutdown","readwrite",["owner","clientMetadata"],(t=>{const e=new Si(t,Hs._e);return this.yi(e).next((()=>this.bi(e)))})),this.Ei.close(),this.Bi()}vi(t,e){return t.filter((t=>this.Ci(t.updateTimeMs,e)&&!this.Mi(t.clientId)))}Li(){return this.runTransaction("getActiveClients","readonly",(t=>eh(t).W().next((t=>this.vi(t,18e5).map((t=>t.clientId))))))}get started(){return this.qr}getMutationQueue(t,e){return ll.lt(t,this.serializer,e,this.referenceDelegate)}getTargetCache(){return this.Qr}getRemoteDocumentCache(){return this.remoteDocumentCache}getIndexManager(t){return new tl(t,this.serializer.ct.databaseId)}getDocumentOverlayCache(t){return Ac.lt(this.serializer,t)}getBundleCache(){return this.$r}runTransaction(t,e,n){jr("IndexedDbPersistence","Starting transaction:",t);const r="readonly"===e?"readonly":"readwrite",s=function(t){return 15===t?Ti:14===t?Ei:13===t?Ii:12===t?_i:11===t?bi:void Hr()}(this.ui);let i;return this.Ei.runTransaction(t,r,s,(r=>(i=new Si(r,this.kr?this.kr.next():Hs._e),"readwrite-primary"===e?this.gi(i).next((t=>!!t||this.pi(i))).next((e=>{if(!e)throw Kr(`Failed to obtain primary lease for action '${t}'.`),this.isPrimary=!1,this.oi.enqueueRetryable((()=>this.Ii(!1))),new Zr(Jr.FAILED_PRECONDITION,Ms);return n(i)})).next((t=>this.wi(i).next((()=>t)))):this.ki(i).next((()=>n(i)))))).then((t=>(i.raiseOnCommittedEvent(),t)))}ki(t){return th(t).get("owner").next((t=>{if(null!==t&&this.Ci(t.leaseTimestampMs,5e3)&&!this.Mi(t.ownerId)&&!this.Si(t)&&!(this.ai||this.allowTabSynchronization&&t.allowTabSynchronization))throw new Zr(Jr.FAILED_PRECONDITION,Jl)}))}wi(t){const e={ownerId:this.clientId,allowTabSynchronization:this.allowTabSynchronization,leaseTimestampMs:Date.now()};return th(t).put("owner",e)}static D(){return Vs.D()}yi(t){const e=th(t);return e.get("owner").next((t=>this.Si(t)?(jr("IndexedDbPersistence","Releasing primary lease."),e.delete("owner")):Ps.resolve()))}Ci(t,e){const n=Date.now();return!(tn&&(Kr(`Detected an update time that is in the future: ${t} > ${n}`),1))}Ri(){null!==this.document&&"function"==typeof this.document.addEventListener&&(this.li=()=>{this.oi.enqueueAndForget((()=>(this.inForeground="visible"===this.document.visibilityState,this.Ai())))},this.document.addEventListener("visibilitychange",this.li),this.inForeground="visible"===this.document.visibilityState)}Oi(){this.li&&(this.document.removeEventListener("visibilitychange",this.li),this.li=null)}Vi(){var t;"function"==typeof(null===(t=this.window)||void 0===t?void 0:t.addEventListener)&&(this.ci=()=>{this.xi();const t=/(?:Version|Mobile)\/1[456]/;f()&&(navigator.appVersion.match(t)||navigator.userAgent.match(t))&&this.oi.enterRestrictedMode(!0),this.oi.enqueueAndForget((()=>this.shutdown()))},this.window.addEventListener("pagehide",this.ci))}Ni(){this.ci&&(this.window.removeEventListener("pagehide",this.ci),this.ci=null)}Mi(t){var e;try{const n=null!==(null===(e=this.di)||void 0===e?void 0:e.getItem(this.Fi(t)));return jr("IndexedDbPersistence",`Client '${t}' ${n?"is":"is not"} zombied in LocalStorage`),n}catch(t){return Kr("IndexedDbPersistence","Failed to get zombied client id.",t),!1}}xi(){if(this.di)try{this.di.setItem(this.Fi(this.clientId),String(Date.now()))}catch(t){Kr("Failed to set zombie client id.",t)}}Bi(){if(this.di)try{this.di.removeItem(this.Fi(this.clientId))}catch(t){}}Fi(t){return`firestore_zombie_${this.persistenceKey}_${t}`}}function th(t){return xi(t,"owner")}function eh(t){return xi(t,"clientMetadata")}function nh(t,e){let n=t.projectId;return t.isDefaultDatabase||(n+="."+t.database),"firestore/"+e+"/"+n+"/"}class rh{constructor(t,e,n,r){this.targetId=t,this.fromCache=e,this.qi=n,this.Qi=r}static Ki(t,e){let n=Ca(),r=Ca();for(const t of e.docChanges)switch(t.type){case 0:n=n.add(t.doc.key);break;case 1:r=r.add(t.doc.key)}return new rh(t,e.fromCache,n,r)}}class sh{constructor(){this._documentReadCount=0}get documentReadCount(){return this._documentReadCount}incrementDocumentReadCount(t){this._documentReadCount+=t}}class ih{constructor(){this.$i=!1,this.Ui=!1,this.Wi=100,this.Gi=f()?8:Vs.v(d())>0?6:4}initialize(t,e){this.zi=t,this.indexManager=e,this.$i=!0}getDocumentsMatchingQuery(t,e,n,r){const s={result:null};return this.ji(t,e).next((t=>{s.result=t})).next((()=>{if(!s.result)return this.Hi(t,e,r,n).next((t=>{s.result=t}))})).next((()=>{if(s.result)return;const n=new sh;return this.Ji(t,e,n).next((r=>{if(s.result=r,this.Ui)return this.Yi(t,e,n,r.size)}))})).next((()=>s.result))}Yi(t,e,n,r){return n.documentReadCountthis.Gi*r?(zr()<=_.DEBUG&&jr("QueryEngine","The SDK decides to create cache indexes for query:",ha(e),"as using cache indexes may help improve performance."),this.indexManager.createTargetIndexes(t,ia(e))):Ps.resolve())}ji(t,e){if(na(e))return Ps.resolve(null);let n=ia(e);return this.indexManager.getIndexType(t,n).next((r=>0===r?null:(null!==e.limit&&1===r&&(e=ua(e,null,"F"),n=ia(e)),this.indexManager.getDocumentsMatchingTarget(t,n).next((r=>{const s=Ca(...r);return this.zi.getDocuments(t,s).next((r=>this.indexManager.getMinOffset(t,n).next((n=>{const i=this.Zi(e,r);return this.Xi(e,i,s,n.readTime)?this.ji(t,ua(e,null,"F")):this.es(t,i,e,n)}))))})))))}Hi(t,e,n,r){return na(e)||r.isEqual(ps.min())?Ps.resolve(null):this.zi.getDocuments(t,n).next((s=>{const i=this.Zi(e,s);return this.Xi(e,i,n,r)?Ps.resolve(null):(zr()<=_.DEBUG&&jr("QueryEngine","Re-using previous result from %s to execute query: %s",r.toString(),ha(e)),this.es(t,i,e,As(r,-1)).next((t=>t)))}))}Zi(t,e){let n=new Mi(ga(t));return e.forEach(((e,r)=>{da(t,r)&&(n=n.add(r))})),n}Xi(t,e,n,r){if(null===t.limit)return!1;if(n.size!==e.size)return!0;const s="F"===t.limitType?e.last():e.first();return!!s&&(s.hasPendingWrites||s.version.compareTo(r)>0)}Ji(t,e,n){return zr()<=_.DEBUG&&jr("QueryEngine","Using full collection scan to execute query:",ha(e)),this.zi.getDocumentsMatchingQuery(t,e,ks.min(),n)}es(t,e,n,r){return this.zi.getDocumentsMatchingQuery(t,n,r).next((t=>(e.forEach((e=>{t=t.insert(e.key,e)})),t)))}}class oh{constructor(t,e,n,r){this.persistence=t,this.ts=e,this.serializer=r,this.ns=new Ni(ds),this.rs=new pa((t=>Qo(t)),Ho),this.ss=new Map,this.os=t.getRemoteDocumentCache(),this.Qr=t.getTargetCache(),this.$r=t.getBundleCache(),this._s(n)}_s(t){this.documentOverlayCache=this.persistence.getDocumentOverlayCache(t),this.indexManager=this.persistence.getIndexManager(t),this.mutationQueue=this.persistence.getMutationQueue(t,this.indexManager),this.localDocuments=new Fl(this.os,this.mutationQueue,this.documentOverlayCache,this.indexManager),this.os.setIndexManager(this.indexManager),this.ts.initialize(this.localDocuments,this.indexManager)}collectGarbage(t){return this.persistence.runTransaction("Collect garbage","readwrite-primary",(e=>t.collect(e,this.ns)))}}function ah(t,e,n,r){return new oh(t,e,n,r)}async function uh(t,e){const n=Xr(t);return await n.persistence.runTransaction("Handle user change","readonly",(t=>{let r;return n.mutationQueue.getAllMutationBatches(t).next((s=>(r=s,n._s(e),n.mutationQueue.getAllMutationBatches(t)))).next((e=>{const s=[],i=[];let o=Ca();for(const t of r){s.push(t.batchId);for(const e of t.mutations)o=o.add(e.key)}for(const t of e){i.push(t.batchId);for(const e of t.mutations)o=o.add(e.key)}return n.localDocuments.getDocuments(t,o).next((t=>({us:t,removedBatchIds:s,addedBatchIds:i})))}))}))}function ch(t){const e=Xr(t);return e.persistence.runTransaction("Get last remote snapshot version","readonly",(t=>e.Qr.getLastRemoteSnapshotVersion(t)))}function lh(t,e,n){let r=Ca(),s=Ca();return n.forEach((t=>r=r.add(t))),e.getEntries(t,r).next((t=>{let r=wa();return n.forEach(((n,i)=>{const o=t.get(n);i.isFoundDocument()!==o.isFoundDocument()&&(s=s.add(n)),i.isNoDocument()&&i.version.isEqual(ps.min())?(e.removeEntry(n,i.readTime),r=r.insert(n,i)):!o.isValidDocument()||i.version.compareTo(o.version)>0||0===i.version.compareTo(o.version)&&o.hasPendingWrites?(e.addEntry(i),r=r.insert(n,i)):jr("LocalStore","Ignoring outdated watch update for ",n,". Current version:",o.version," Watch version:",i.version)})),{cs:r,ls:s}}))}function hh(t,e){const n=Xr(t);return n.persistence.runTransaction("Get next mutation batch","readonly",(t=>(void 0===e&&(e=-1),n.mutationQueue.getNextMutationBatchAfterBatchId(t,e))))}function dh(t,e){const n=Xr(t);return n.persistence.runTransaction("Allocate target","readwrite",(t=>{let r;return n.Qr.getTargetData(t,e).next((s=>s?(r=s,Ps.resolve(r)):n.Qr.allocateTargetId(t).next((s=>(r=new fc(e,s,"TargetPurposeListen",t.currentSequenceNumber),n.Qr.addTargetData(t,r).next((()=>r)))))))})).then((t=>{const r=n.ns.get(t.targetId);return(null===r||t.snapshotVersion.compareTo(r.snapshotVersion)>0)&&(n.ns=n.ns.insert(t.targetId,t),n.rs.set(e,t.targetId)),t}))}async function fh(t,e,n){const r=Xr(t),s=r.ns.get(e),i=n?"readwrite":"readwrite-primary";try{n||await r.persistence.runTransaction("Release target",i,(t=>r.persistence.referenceDelegate.removeTarget(t,s)))}catch(t){if(!Us(t))throw t;jr("LocalStore",`Failed to update sequence numbers for target ${e}: ${t}`)}r.ns=r.ns.remove(e),r.rs.delete(s.target)}function gh(t,e,n){const r=Xr(t);let s=ps.min(),i=Ca();return r.persistence.runTransaction("Execute query","readwrite",(t=>function(t,e,n){const r=Xr(t),s=r.rs.get(n);return void 0!==s?Ps.resolve(r.ns.get(s)):r.Qr.getTargetData(e,n)}(r,t,ia(e)).next((e=>{if(e)return s=e.lastLimboFreeSnapshotVersion,r.Qr.getMatchingKeysForTargetId(t,e.targetId).next((t=>{i=t}))})).next((()=>r.ts.getDocumentsMatchingQuery(t,e,n?s:ps.min(),n?i:Ca()))).next((t=>(yh(r,fa(e),t),{documents:t,hs:i})))))}function mh(t,e){const n=Xr(t),r=Xr(n.Qr),s=n.ns.get(e);return s?Promise.resolve(s.target):n.persistence.runTransaction("Get target data","readonly",(t=>r._t(t,e).next((t=>t?t.target:null))))}function ph(t,e){const n=Xr(t),r=n.ss.get(e)||ps.min();return n.persistence.runTransaction("Get new document changes","readonly",(t=>n.os.getAllFromCollectionGroup(t,e,As(r,-1),Number.MAX_SAFE_INTEGER))).then((t=>(yh(n,e,t),t)))}function yh(t,e,n){let r=t.ss.get(e)||ps.min();n.forEach(((t,e)=>{e.readTime.compareTo(r)>0&&(r=e.readTime)})),t.ss.set(e,r)}async function wh(t,e,n=Ca()){const r=await dh(t,ia(Ic(e.bundledQuery))),s=Xr(t);return s.persistence.runTransaction("Save named query","readwrite",(t=>{const i=Uu(e.readTime);if(r.snapshotVersion.compareTo(i)>=0)return s.$r.saveNamedQuery(t,e);const o=r.withResumeToken(qi.EMPTY_BYTE_STRING,i);return s.ns=s.ns.insert(o.targetId,o),s.Qr.updateTargetData(t,o).next((()=>s.Qr.removeMatchingKeysForTargetId(t,r.targetId))).next((()=>s.Qr.addMatchingKeys(t,n,r.targetId))).next((()=>s.$r.saveNamedQuery(t,e)))}))}function vh(t,e){return`firestore_clients_${t}_${e}`}function bh(t,e,n){let r=`firestore_mutations_${t}_${n}`;return e.isAuthenticated()&&(r+=`_${e.uid}`),r}function _h(t,e){return`firestore_targets_${t}_${e}`}class Ih{constructor(t,e,n,r){this.user=t,this.batchId=e,this.state=n,this.error=r}static Es(t,e,n){const r=JSON.parse(n);let s,i="object"==typeof r&&-1!==["pending","acknowledged","rejected"].indexOf(r.state)&&(void 0===r.error||"object"==typeof r.error);return i&&r.error&&(i="string"==typeof r.error.message&&"string"==typeof r.error.code,i&&(s=new Zr(r.error.code,r.error.message))),i?new Ih(t,e,r.state,s):(Kr("SharedClientState",`Failed to parse mutation state for ID '${e}': ${n}`),null)}ds(){const t={state:this.state,updateTimeMs:Date.now()};return this.error&&(t.error={code:this.error.code,message:this.error.message}),JSON.stringify(t)}}class Eh{constructor(t,e,n){this.targetId=t,this.state=e,this.error=n}static Es(t,e){const n=JSON.parse(e);let r,s="object"==typeof n&&-1!==["not-current","current","rejected"].indexOf(n.state)&&(void 0===n.error||"object"==typeof n.error);return s&&n.error&&(s="string"==typeof n.error.message&&"string"==typeof n.error.code,s&&(r=new Zr(n.error.code,n.error.message))),s?new Eh(t,n.state,r):(Kr("SharedClientState",`Failed to parse target state for ID '${t}': ${e}`),null)}ds(){const t={state:this.state,updateTimeMs:Date.now()};return this.error&&(t.error={code:this.error.code,message:this.error.message}),JSON.stringify(t)}}class Th{constructor(t,e){this.clientId=t,this.activeTargetIds=e}static Es(t,e){const n=JSON.parse(e);let r="object"==typeof n&&n.activeTargetIds instanceof Array,s=Aa();for(let t=0;r&&tthis.shutdown())),this.started=!0}writeSequenceNumber(t){this.setItem(this.Ss,JSON.stringify(t))}getAllActiveQueryTargets(){return this.Ns(this.ps)}isActiveQueryTarget(t){let e=!1;return this.ps.forEach(((n,r)=>{r.activeTargetIds.has(t)&&(e=!0)})),e}addPendingMutation(t){this.Bs(t,"pending")}updateMutationState(t,e,n){this.Bs(t,e,n),this.Ls(t)}addLocalQueryTarget(t){let e="not-current";if(this.isActiveQueryTarget(t)){const n=this.storage.getItem(_h(this.persistenceKey,t));if(n){const r=Eh.Es(t,n);r&&(e=r.state)}}return this.ks.As(t),this.Ms(),e}removeLocalQueryTarget(t){this.ks.Rs(t),this.Ms()}isLocalQueryTarget(t){return this.ks.activeTargetIds.has(t)}clearQueryState(t){this.removeItem(_h(this.persistenceKey,t))}updateQueryState(t,e,n){this.qs(t,e,n)}handleUserChange(t,e,n){e.forEach((t=>{this.Ls(t)})),this.currentUser=t,n.forEach((t=>{this.addPendingMutation(t)}))}setOnlineState(t){this.Qs(t)}notifyBundleLoaded(t){this.Ks(t)}shutdown(){this.started&&(this.window.removeEventListener("storage",this.fs),this.removeItem(this.ws),this.started=!1)}getItem(t){const e=this.storage.getItem(t);return jr("SharedClientState","READ",t,e),e}setItem(t,e){jr("SharedClientState","SET",t,e),this.storage.setItem(t,e)}removeItem(t){jr("SharedClientState","REMOVE",t),this.storage.removeItem(t)}gs(t){const e=t;if(e.storageArea===this.storage){if(jr("SharedClientState","EVENT",e.key,e.newValue),e.key===this.ws)return void Kr("Received WebStorage notification for local change. Another client might have garbage-collected our state");this.oi.enqueueRetryable((async()=>{if(this.started){if(null!==e.key)if(this.bs.test(e.key)){if(null==e.newValue){const t=this.$s(e.key);return this.Us(t,null)}{const t=this.Ws(e.key,e.newValue);if(t)return this.Us(t.clientId,t)}}else if(this.Ds.test(e.key)){if(null!==e.newValue){const t=this.Gs(e.key,e.newValue);if(t)return this.zs(t)}}else if(this.Cs.test(e.key)){if(null!==e.newValue){const t=this.js(e.key,e.newValue);if(t)return this.Hs(t)}}else if(e.key===this.vs){if(null!==e.newValue){const t=this.xs(e.newValue);if(t)return this.Os(t)}}else if(e.key===this.Ss){const t=function(t){let e=Hs._e;if(null!=t)try{const n=JSON.parse(t);Wr("number"==typeof n),e=n}catch(t){Kr("SharedClientState","Failed to read sequence number from WebStorage",t)}return e}(e.newValue);t!==Hs._e&&this.sequenceNumberHandler(t)}else if(e.key===this.Fs){const t=this.Js(e.newValue);await Promise.all(t.map((t=>this.syncEngine.Ys(t))))}}else this.ys.push(e)}))}}get ks(){return this.ps.get(this.Vs)}Ms(){this.setItem(this.ws,this.ks.ds())}Bs(t,e,n){const r=new Ih(this.currentUser,t,e,n),s=bh(this.persistenceKey,this.currentUser,t);this.setItem(s,r.ds())}Ls(t){const e=bh(this.persistenceKey,this.currentUser,t);this.removeItem(e)}Qs(t){const e={clientId:this.Vs,onlineState:t};this.storage.setItem(this.vs,JSON.stringify(e))}qs(t,e,n){const r=_h(this.persistenceKey,t),s=new Eh(t,e,n);this.setItem(r,s.ds())}Ks(t){const e=JSON.stringify(Array.from(t));this.setItem(this.Fs,e)}$s(t){const e=this.bs.exec(t);return e?e[1]:null}Ws(t,e){const n=this.$s(t);return Th.Es(n,e)}Gs(t,e){const n=this.Ds.exec(t),r=Number(n[1]),s=void 0!==n[2]?n[2]:null;return Ih.Es(new qr(s),r,e)}js(t,e){const n=this.Cs.exec(t),r=Number(n[1]);return Eh.Es(r,e)}xs(t){return Sh.Es(t)}Js(t){return JSON.parse(t)}async zs(t){if(t.user.uid===this.currentUser.uid)return this.syncEngine.Zs(t.batchId,t.state,t.error);jr("SharedClientState",`Ignoring mutation for non-active user ${t.user.uid}`)}Hs(t){return this.syncEngine.Xs(t.targetId,t.state,t.error)}Us(t,e){const n=e?this.ps.insert(t,e):this.ps.remove(t),r=this.Ns(this.ps),s=this.Ns(n),i=[],o=[];return s.forEach((t=>{r.has(t)||i.push(t)})),r.forEach((t=>{s.has(t)||o.push(t)})),this.syncEngine.eo(i,o).then((()=>{this.ps=n}))}Os(t){this.ps.get(t.clientId)&&this.onlineStateHandler(t.onlineState)}Ns(t){let e=Aa();return t.forEach(((t,n)=>{e=e.unionWith(n.activeTargetIds)})),e}}class Dh{constructor(){this.no=new xh,this.ro={},this.onlineStateHandler=null,this.sequenceNumberHandler=null}addPendingMutation(t){}updateMutationState(t,e,n){}addLocalQueryTarget(t){return this.no.As(t),this.ro[t]||"not-current"}updateQueryState(t,e,n){this.ro[t]=e}removeLocalQueryTarget(t){this.no.Rs(t)}isLocalQueryTarget(t){return this.no.activeTargetIds.has(t)}clearQueryState(t){delete this.ro[t]}getAllActiveQueryTargets(){return this.no.activeTargetIds}isActiveQueryTarget(t){return this.no.activeTargetIds.has(t)}start(){return this.no=new xh,Promise.resolve()}handleUserChange(t,e,n){}setOnlineState(t){}shutdown(){}writeSequenceNumber(t){}notifyBundleLoaded(t){}}class Ah{io(t){}shutdown(){}}class Nh{constructor(){this.so=()=>this.oo(),this._o=()=>this.ao(),this.uo=[],this.co()}io(t){this.uo.push(t)}shutdown(){window.removeEventListener("online",this.so),window.removeEventListener("offline",this._o)}co(){window.addEventListener("online",this.so),window.addEventListener("offline",this._o)}oo(){jr("ConnectivityMonitor","Network connectivity changed: AVAILABLE");for(const t of this.uo)t(0)}ao(){jr("ConnectivityMonitor","Network connectivity changed: UNAVAILABLE");for(const t of this.uo)t(1)}static D(){return"undefined"!=typeof window&&void 0!==window.addEventListener&&void 0!==window.removeEventListener}}let kh=null;function Rh(){return null===kh?kh=268435456+Math.round(2147483648*Math.random()):kh++,"0x"+kh.toString(16)}const Mh={BatchGetDocuments:"batchGet",Commit:"commit",RunQuery:"runQuery",RunAggregationQuery:"runAggregationQuery"};class Lh{constructor(t){this.lo=t.lo,this.ho=t.ho}Po(t){this.Io=t}To(t){this.Eo=t}onMessage(t){this.Ao=t}close(){this.ho()}send(t){this.lo(t)}Ro(){this.Io()}Vo(t){this.Eo(t)}mo(t){this.Ao(t)}}const Oh="WebChannelConnection";class Ph extends class{constructor(t){this.databaseInfo=t,this.databaseId=t.databaseId;const e=t.ssl?"https":"http",n=encodeURIComponent(this.databaseId.projectId),r=encodeURIComponent(this.databaseId.database);this.fo=e+"://"+t.host,this.po=`projects/${n}/databases/${r}`,this.yo="(default)"===this.databaseId.database?`project_id=${n}`:`project_id=${n}&database_id=${r}`}get wo(){return!1}So(t,e,n,r,s){const i=Rh(),o=this.bo(t,e.toUriEncodedString());jr("RestConnection",`Sending RPC '${t}' ${i}:`,o,n);const a={"google-cloud-resource-prefix":this.po,"x-goog-request-params":this.yo};return this.Do(a,r,s),this.Co(t,o,a,n).then((e=>(jr("RestConnection",`Received RPC '${t}' ${i}: `,e),e)),(e=>{throw $r("RestConnection",`RPC '${t}' ${i} failed with error: `,e,"url: ",o,"request:",n),e}))}vo(t,e,n,r,s,i){return this.So(t,e,n,r,s)}Do(t,e,n){t["X-Goog-Api-Client"]="gl-js/ fire/"+Br,t["Content-Type"]="text/plain",this.databaseInfo.appId&&(t["X-Firebase-GMPID"]=this.databaseInfo.appId),e&&e.headers.forEach(((e,n)=>t[n]=e)),n&&n.headers.forEach(((e,n)=>t[n]=e))}bo(t,e){const n=Mh[t];return`${this.fo}/v1/${e}:${n}`}terminate(){}}{constructor(t){super(t),this.forceLongPolling=t.forceLongPolling,this.autoDetectLongPolling=t.autoDetectLongPolling,this.useFetchStreams=t.useFetchStreams,this.longPollingOptions=t.longPollingOptions}Co(t,e,n,r){const s=Rh();return new Promise(((i,o)=>{const a=new Or;a.setWithCredentials(!0),a.listenOnce(Rr.COMPLETE,(()=>{try{switch(a.getLastErrorCode()){case kr.NO_ERROR:const e=a.getResponseJson();jr(Oh,`XHR for RPC '${t}' ${s} received:`,JSON.stringify(e)),i(e);break;case kr.TIMEOUT:jr(Oh,`RPC '${t}' ${s} timed out`),o(new Zr(Jr.DEADLINE_EXCEEDED,"Request time out"));break;case kr.HTTP_ERROR:const n=a.getStatus();if(jr(Oh,`RPC '${t}' ${s} failed with status:`,n,"response text:",a.getResponseText()),n>0){let t=a.getResponseJson();Array.isArray(t)&&(t=t[0]);const e=null==t?void 0:t.error;if(e&&e.status&&e.message){const t=function(t){const e=t.toLowerCase().replace(/_/g,"-");return Object.values(Jr).indexOf(e)>=0?e:Jr.UNKNOWN}(e.status);o(new Zr(t,e.message))}else o(new Zr(Jr.UNKNOWN,"Server responded with status "+a.getStatus()))}else o(new Zr(Jr.UNAVAILABLE,"Connection failed."));break;default:Hr()}}finally{jr(Oh,`RPC '${t}' ${s} completed.`)}}));const u=JSON.stringify(r);jr(Oh,`RPC '${t}' ${s} sending request:`,r),a.send(e,"POST",u,n,15)}))}Fo(t,e,n){const r=Rh(),s=[this.fo,"/","google.firestore.v1.Firestore","/",t,"/channel"],i=new ar,o=oe(),a={httpSessionIdParam:"gsessionid",initMessageHeaders:{},messageUrlParams:{database:`projects/${this.databaseId.projectId}/databases/${this.databaseId.database}`},sendRawJson:!0,supportsCrossDomainXhr:!0,internalChannelParams:{forwardChannelRequestTimeoutMs:6e5},forceLongPolling:this.forceLongPolling,detectBufferingProxy:this.autoDetectLongPolling},u=this.longPollingOptions.timeoutSeconds;void 0!==u&&(a.longPollingTimeout=Math.round(1e3*u)),this.useFetchStreams&&(a.useFetchStreams=!0),this.Do(a.initMessageHeaders,e,n),a.encodeInitMessageHeaders=!0;const c=s.join("");jr(Oh,`Creating RPC '${t}' stream ${r}: ${c}`,a);const l=i.createWebChannel(c,a);let h=!1,d=!1;const f=new Lh({lo:e=>{d?jr(Oh,`Not sending because RPC '${t}' stream ${r} is closed:`,e):(h||(jr(Oh,`Opening RPC '${t}' stream ${r} transport.`),l.open(),h=!0),jr(Oh,`RPC '${t}' stream ${r} sending:`,e),l.send(e))},ho:()=>l.close()}),g=(t,e,n)=>{t.listen(e,(t=>{try{n(t)}catch(t){setTimeout((()=>{throw t}),0)}}))};return g(l,Lr.EventType.OPEN,(()=>{d||jr(Oh,`RPC '${t}' stream ${r} transport opened.`)})),g(l,Lr.EventType.CLOSE,(()=>{d||(d=!0,jr(Oh,`RPC '${t}' stream ${r} transport closed`),f.Vo())})),g(l,Lr.EventType.ERROR,(e=>{d||(d=!0,$r(Oh,`RPC '${t}' stream ${r} transport errored:`,e),f.Vo(new Zr(Jr.UNAVAILABLE,"The operation could not be completed")))})),g(l,Lr.EventType.MESSAGE,(e=>{var n;if(!d){const s=e.data[0];Wr(!!s);const i=s,o=i.error||(null===(n=i[0])||void 0===n?void 0:n.error);if(o){jr(Oh,`RPC '${t}' stream ${r} received error:`,o);const e=o.status;let n=function(t){const e=fu[t];if(void 0!==e)return pu(e)}(e),s=o.message;void 0===n&&(n=Jr.INTERNAL,s="Unknown error status: "+e+" with message "+o.message),d=!0,f.Vo(new Zr(n,s)),l.close()}else jr(Oh,`RPC '${t}' stream ${r} received:`,s),f.mo(s)}})),g(o,Mr.STAT_EVENT,(e=>{10===e.stat?jr(Oh,`RPC '${t}' stream ${r} detected buffering proxy`):11===e.stat&&jr(Oh,`RPC '${t}' stream ${r} detected no buffering proxy`)})),setTimeout((()=>{f.Ro()}),0),f}}function Fh(){return"undefined"!=typeof window?window:null}function Vh(){return"undefined"!=typeof document?document:null}function qh(t){return new Pu(t,!0)}class Bh{constructor(t,e,n=1e3,r=1.5,s=6e4){this.oi=t,this.timerId=e,this.Mo=n,this.xo=r,this.Oo=s,this.No=0,this.Bo=null,this.Lo=Date.now(),this.reset()}reset(){this.No=0}ko(){this.No=this.Oo}qo(t){this.cancel();const e=Math.floor(this.No+this.Qo()),n=Math.max(0,Date.now()-this.Lo),r=Math.max(0,e-n);r>0&&jr("ExponentialBackoff",`Backing off for ${r} ms (base delay: ${this.No} ms, delay with jitter: ${e} ms, last attempt: ${n} ms ago)`),this.Bo=this.oi.enqueueAfterDelay(this.timerId,r,(()=>(this.Lo=Date.now(),t()))),this.No*=this.xo,this.Nothis.Oo&&(this.No=this.Oo)}Ko(){null!==this.Bo&&(this.Bo.skipDelay(),this.Bo=null)}cancel(){null!==this.Bo&&(this.Bo.cancel(),this.Bo=null)}Qo(){return(Math.random()-.5)*this.No}}class Uh{constructor(t,e,n,r,s,i,o,a){this.oi=t,this.$o=n,this.Uo=r,this.connection=s,this.authCredentialsProvider=i,this.appCheckCredentialsProvider=o,this.listener=a,this.state=0,this.Wo=0,this.Go=null,this.zo=null,this.stream=null,this.jo=new Bh(t,e)}Ho(){return 1===this.state||5===this.state||this.Jo()}Jo(){return 2===this.state||3===this.state}start(){4!==this.state?this.auth():this.Yo()}async stop(){this.Ho()&&await this.close(0)}Zo(){this.state=0,this.jo.reset()}Xo(){this.Jo()&&null===this.Go&&(this.Go=this.oi.enqueueAfterDelay(this.$o,6e4,(()=>this.e_())))}t_(t){this.n_(),this.stream.send(t)}async e_(){if(this.Jo())return this.close(0)}n_(){this.Go&&(this.Go.cancel(),this.Go=null)}r_(){this.zo&&(this.zo.cancel(),this.zo=null)}async close(t,e){this.n_(),this.r_(),this.jo.cancel(),this.Wo++,4!==t?this.jo.reset():e&&e.code===Jr.RESOURCE_EXHAUSTED?(Kr(e.toString()),Kr("Using maximum backoff delay to prevent overloading the backend."),this.jo.ko()):e&&e.code===Jr.UNAUTHENTICATED&&3!==this.state&&(this.authCredentialsProvider.invalidateToken(),this.appCheckCredentialsProvider.invalidateToken()),null!==this.stream&&(this.i_(),this.stream.close(),this.stream=null),this.state=t,await this.listener.To(e)}i_(){}auth(){this.state=1;const t=this.s_(this.Wo),e=this.Wo;Promise.all([this.authCredentialsProvider.getToken(),this.appCheckCredentialsProvider.getToken()]).then((([t,n])=>{this.Wo===e&&this.o_(t,n)}),(e=>{t((()=>{const t=new Zr(Jr.UNKNOWN,"Fetching auth token failed: "+e.message);return this.__(t)}))}))}o_(t,e){const n=this.s_(this.Wo);this.stream=this.a_(t,e),this.stream.Po((()=>{n((()=>(this.state=2,this.zo=this.oi.enqueueAfterDelay(this.Uo,1e4,(()=>(this.Jo()&&(this.state=3),Promise.resolve()))),this.listener.Po())))})),this.stream.To((t=>{n((()=>this.__(t)))})),this.stream.onMessage((t=>{n((()=>this.onMessage(t)))}))}Yo(){this.state=5,this.jo.qo((async()=>{this.state=0,this.start()}))}__(t){return jr("PersistentStream",`close with error: ${t}`),this.stream=null,this.close(4,t)}s_(t){return e=>{this.oi.enqueueAndForget((()=>this.Wo===t?e():(jr("PersistentStream","stream callback skipped by getCloseGuardedDispatcher."),Promise.resolve())))}}}class zh extends Uh{constructor(t,e,n,r,s,i){super(t,"listen_stream_connection_backoff","listen_stream_idle","health_check_timeout",e,n,r,i),this.serializer=s}a_(t,e){return this.connection.Fo("Listen",t,e)}onMessage(t){this.jo.reset();const e=function(t,e){let n;if("targetChange"in e){e.targetChange;const r=function(t){return"NO_CHANGE"===t?0:"ADD"===t?1:"REMOVE"===t?2:"CURRENT"===t?3:"RESET"===t?4:Hr()}(e.targetChange.targetChangeType||"NO_CHANGE"),s=e.targetChange.targetIds||[],i=function(t,e){return t.useProto3Json?(Wr(void 0===e||"string"==typeof e),qi.fromBase64String(e||"")):(Wr(void 0===e||e instanceof Uint8Array),qi.fromUint8Array(e||new Uint8Array))}(t,e.targetChange.resumeToken),o=e.targetChange.cause,a=o&&function(t){const e=void 0===t.code?Jr.UNKNOWN:pu(t.code);return new Zr(e,t.message||"")}(o);n=new Du(r,s,i,a||null)}else if("documentChange"in e){e.documentChange;const r=e.documentChange;r.document,r.document.name,r.document.updateTime;const s=$u(t,r.document.name),i=Uu(r.document.updateTime),o=r.document.createTime?Uu(r.document.createTime):ps.min(),a=new wo({mapValue:{fields:r.document.fields}}),u=bo.newFoundDocument(s,i,o,a),c=r.targetIds||[],l=r.removedTargetIds||[];n=new xu(c,l,u.key,u)}else if("documentDelete"in e){e.documentDelete;const r=e.documentDelete;r.document;const s=$u(t,r.document),i=r.readTime?Uu(r.readTime):ps.min(),o=bo.newNoDocument(s,i),a=r.removedTargetIds||[];n=new xu([],a,o.key,o)}else if("documentRemove"in e){e.documentRemove;const r=e.documentRemove;r.document;const s=$u(t,r.document),i=r.removedTargetIds||[];n=new xu([],i,s,null)}else{if(!("filter"in e))return Hr();{e.filter;const t=e.filter;t.targetId;const{count:r=0,unchangedNames:s}=t,i=new du(r,s),o=t.targetId;n=new Cu(o,i)}}return n}(this.serializer,t),n=function(t){if(!("targetChange"in t))return ps.min();const e=t.targetChange;return e.targetIds&&e.targetIds.length?ps.min():e.readTime?Uu(e.readTime):ps.min()}(t);return this.listener.u_(e,n)}c_(t){const e={};e.database=Wu(this.serializer),e.addTarget=function(t,e){let n;const r=e.target;if(n=Wo(r)?{documents:ec(t,r)}:{query:nc(t,r).ut},n.targetId=e.targetId,e.resumeToken.approximateByteSize()>0){n.resumeToken=qu(t,e.resumeToken);const r=Fu(t,e.expectedCount);null!==r&&(n.expectedCount=r)}else if(e.snapshotVersion.compareTo(ps.min())>0){n.readTime=Vu(t,e.snapshotVersion.toTimestamp());const r=Fu(t,e.expectedCount);null!==r&&(n.expectedCount=r)}return n}(this.serializer,t);const n=function(t,e){const n=function(t){switch(t){case"TargetPurposeListen":return null;case"TargetPurposeExistenceFilterMismatch":return"existence-filter-mismatch";case"TargetPurposeExistenceFilterMismatchBloom":return"existence-filter-mismatch-bloom";case"TargetPurposeLimboResolution":return"limbo-document";default:return Hr()}}(e.purpose);return null==n?null:{"goog-listen-tags":n}}(this.serializer,t);n&&(e.labels=n),this.t_(e)}l_(t){const e={};e.database=Wu(this.serializer),e.removeTarget=t,this.t_(e)}}class Gh extends Uh{constructor(t,e,n,r,s,i){super(t,"write_stream_connection_backoff","write_stream_idle","health_check_timeout",e,n,r,i),this.serializer=s,this.h_=!1}get P_(){return this.h_}start(){this.h_=!1,this.lastStreamToken=void 0,super.start()}i_(){this.h_&&this.I_([])}a_(t,e){return this.connection.Fo("Write",t,e)}onMessage(t){if(Wr(!!t.streamToken),this.lastStreamToken=t.streamToken,this.h_){this.jo.reset();const e=function(t,e){return t&&t.length>0?(Wr(void 0!==e),t.map((t=>function(t,e){let n=t.updateTime?Uu(t.updateTime):Uu(e);return n.isEqual(ps.min())&&(n=Uu(e)),new $a(n,t.transformResults||[])}(t,e)))):[]}(t.writeResults,t.commitTime),n=Uu(t.commitTime);return this.listener.T_(n,e)}return Wr(!t.writeResults||0===t.writeResults.length),this.h_=!0,this.listener.E_()}d_(){const t={};t.database=Wu(this.serializer),this.t_(t)}I_(t){const e={streamToken:this.lastStreamToken,writes:t.map((t=>Zu(this.serializer,t)))};this.t_(e)}}class jh extends class{}{constructor(t,e,n,r){super(),this.authCredentials=t,this.appCheckCredentials=e,this.connection=n,this.serializer=r,this.A_=!1}R_(){if(this.A_)throw new Zr(Jr.FAILED_PRECONDITION,"The client has already been terminated.")}So(t,e,n,r){return this.R_(),Promise.all([this.authCredentials.getToken(),this.appCheckCredentials.getToken()]).then((([s,i])=>this.connection.So(t,Gu(e,n),r,s,i))).catch((t=>{throw"FirebaseError"===t.name?(t.code===Jr.UNAUTHENTICATED&&(this.authCredentials.invalidateToken(),this.appCheckCredentials.invalidateToken()),t):new Zr(Jr.UNKNOWN,t.toString())}))}vo(t,e,n,r,s){return this.R_(),Promise.all([this.authCredentials.getToken(),this.appCheckCredentials.getToken()]).then((([i,o])=>this.connection.vo(t,Gu(e,n),r,i,o,s))).catch((t=>{throw"FirebaseError"===t.name?(t.code===Jr.UNAUTHENTICATED&&(this.authCredentials.invalidateToken(),this.appCheckCredentials.invalidateToken()),t):new Zr(Jr.UNKNOWN,t.toString())}))}terminate(){this.A_=!0,this.connection.terminate()}}class Kh{constructor(t,e){this.asyncQueue=t,this.onlineStateHandler=e,this.state="Unknown",this.m_=0,this.f_=null,this.g_=!0}p_(){0===this.m_&&(this.y_("Unknown"),this.f_=this.asyncQueue.enqueueAfterDelay("online_state_timeout",1e4,(()=>(this.f_=null,this.w_("Backend didn't respond within 10 seconds."),this.y_("Offline"),Promise.resolve()))))}S_(t){"Online"===this.state?this.y_("Unknown"):(this.m_++,this.m_>=1&&(this.b_(),this.w_(`Connection failed 1 times. Most recent error: ${t.toString()}`),this.y_("Offline")))}set(t){this.b_(),this.m_=0,"Online"===t&&(this.g_=!1),this.y_(t)}y_(t){t!==this.state&&(this.state=t,this.onlineStateHandler(t))}w_(t){const e=`Could not reach Cloud Firestore backend. ${t}\nThis typically indicates that your device does not have a healthy Internet connection at the moment. The client will operate in offline mode until it is able to successfully connect to the backend.`;this.g_?(Kr(e),this.g_=!1):jr("OnlineStateTracker",e)}b_(){null!==this.f_&&(this.f_.cancel(),this.f_=null)}}class $h{constructor(t,e,n,r,s){this.localStore=t,this.datastore=e,this.asyncQueue=n,this.remoteSyncer={},this.D_=[],this.C_=new Map,this.v_=new Set,this.F_=[],this.M_=s,this.M_.io((t=>{n.enqueueAndForget((async()=>{ed(this)&&(jr("RemoteStore","Restarting streams for network reachability change."),await async function(t){const e=Xr(t);e.v_.add(4),await Hh(e),e.x_.set("Unknown"),e.v_.delete(4),await Qh(e)}(this))}))})),this.x_=new Kh(n,r)}}async function Qh(t){if(ed(t))for(const e of t.F_)await e(!0)}async function Hh(t){for(const e of t.F_)await e(!1)}function Wh(t,e){const n=Xr(t);n.C_.has(e.targetId)||(n.C_.set(e.targetId,e),td(n)?Zh(n):vd(n).Jo()&&Xh(n,e))}function Yh(t,e){const n=Xr(t),r=vd(n);n.C_.delete(e),r.Jo()&&Jh(n,e),0===n.C_.size&&(r.Jo()?r.Xo():ed(n)&&n.x_.set("Unknown"))}function Xh(t,e){if(t.O_.Oe(e.targetId),e.resumeToken.approximateByteSize()>0||e.snapshotVersion.compareTo(ps.min())>0){const n=t.remoteSyncer.getRemoteKeysForTarget(e.targetId).size;e=e.withExpectedCount(n)}vd(t).c_(e)}function Jh(t,e){t.O_.Oe(e),vd(t).l_(e)}function Zh(t){t.O_=new Nu({getRemoteKeysForTarget:e=>t.remoteSyncer.getRemoteKeysForTarget(e),_t:e=>t.C_.get(e)||null,nt:()=>t.datastore.serializer.databaseId}),vd(t).start(),t.x_.p_()}function td(t){return ed(t)&&!vd(t).Ho()&&t.C_.size>0}function ed(t){return 0===Xr(t).v_.size}function nd(t){t.O_=void 0}async function rd(t){t.C_.forEach(((e,n)=>{Xh(t,e)}))}async function sd(t,e){nd(t),td(t)?(t.x_.S_(e),Zh(t)):t.x_.set("Unknown")}async function id(t,e,n){if(t.x_.set("Online"),e instanceof Du&&2===e.state&&e.cause)try{await async function(t,e){const n=e.cause;for(const r of e.targetIds)t.C_.has(r)&&(await t.remoteSyncer.rejectListen(r,n),t.C_.delete(r),t.O_.removeTarget(r))}(t,e)}catch(n){jr("RemoteStore","Failed to remove targets %s: %s ",e.targetIds.join(","),n),await od(t,n)}else if(e instanceof xu?t.O_.$e(e):e instanceof Cu?t.O_.Je(e):t.O_.Ge(e),!n.isEqual(ps.min()))try{const e=await ch(t.localStore);n.compareTo(e)>=0&&await function(t,e){const n=t.O_.it(e);return n.targetChanges.forEach(((n,r)=>{if(n.resumeToken.approximateByteSize()>0){const s=t.C_.get(r);s&&t.C_.set(r,s.withResumeToken(n.resumeToken,e))}})),n.targetMismatches.forEach(((e,n)=>{const r=t.C_.get(e);if(!r)return;t.C_.set(e,r.withResumeToken(qi.EMPTY_BYTE_STRING,r.snapshotVersion)),Jh(t,e);const s=new fc(r.target,e,n,r.sequenceNumber);Xh(t,s)})),t.remoteSyncer.applyRemoteEvent(n)}(t,n)}catch(e){jr("RemoteStore","Failed to raise snapshot:",e),await od(t,e)}}async function od(t,e,n){if(!Us(e))throw e;t.v_.add(1),await Hh(t),t.x_.set("Offline"),n||(n=()=>ch(t.localStore)),t.asyncQueue.enqueueRetryable((async()=>{jr("RemoteStore","Retrying IndexedDB access"),await n(),t.v_.delete(1),await Qh(t)}))}function ad(t,e){return e().catch((n=>od(t,n,e)))}async function ud(t){const e=Xr(t),n=bd(e);let r=e.D_.length>0?e.D_[e.D_.length-1].batchId:-1;for(;cd(e);)try{const t=await hh(e.localStore,r);if(null===t){0===e.D_.length&&n.Xo();break}r=t.batchId,ld(e,t)}catch(t){await od(e,t)}hd(e)&&dd(e)}function cd(t){return ed(t)&&t.D_.length<10}function ld(t,e){t.D_.push(e);const n=bd(t);n.Jo()&&n.P_&&n.I_(e.mutations)}function hd(t){return ed(t)&&!bd(t).Ho()&&t.D_.length>0}function dd(t){bd(t).start()}async function fd(t){bd(t).d_()}async function gd(t){const e=bd(t);for(const n of t.D_)e.I_(n.mutations)}async function md(t,e,n){const r=t.D_.shift(),s=cu.from(r,e,n);await ad(t,(()=>t.remoteSyncer.applySuccessfulWrite(s))),await ud(t)}async function pd(t,e){e&&bd(t).P_&&await async function(t,e){if(function(t){return mu(t)&&t!==Jr.ABORTED}(e.code)){const n=t.D_.shift();bd(t).Zo(),await ad(t,(()=>t.remoteSyncer.rejectFailedWrite(n.batchId,e))),await ud(t)}}(t,e),hd(t)&&dd(t)}async function yd(t,e){const n=Xr(t);n.asyncQueue.verifyOperationInProgress(),jr("RemoteStore","RemoteStore received new credentials");const r=ed(n);n.v_.add(3),await Hh(n),r&&n.x_.set("Unknown"),await n.remoteSyncer.handleCredentialChange(e),n.v_.delete(3),await Qh(n)}async function wd(t,e){const n=Xr(t);e?(n.v_.delete(2),await Qh(n)):e||(n.v_.add(2),await Hh(n),n.x_.set("Unknown"))}function vd(t){return t.N_||(t.N_=function(t,e,n){const r=Xr(t);return r.R_(),new zh(e,r.connection,r.authCredentials,r.appCheckCredentials,r.serializer,n)}(t.datastore,t.asyncQueue,{Po:rd.bind(null,t),To:sd.bind(null,t),u_:id.bind(null,t)}),t.F_.push((async e=>{e?(t.N_.Zo(),td(t)?Zh(t):t.x_.set("Unknown")):(await t.N_.stop(),nd(t))}))),t.N_}function bd(t){return t.B_||(t.B_=function(t,e,n){const r=Xr(t);return r.R_(),new Gh(e,r.connection,r.authCredentials,r.appCheckCredentials,r.serializer,n)}(t.datastore,t.asyncQueue,{Po:fd.bind(null,t),To:pd.bind(null,t),E_:gd.bind(null,t),T_:md.bind(null,t)}),t.F_.push((async e=>{e?(t.B_.Zo(),await ud(t)):(await t.B_.stop(),t.D_.length>0&&(jr("RemoteStore",`Stopping write stream with ${t.D_.length} pending writes`),t.D_=[]))}))),t.B_}class _d{constructor(t,e,n,r,s){this.asyncQueue=t,this.timerId=e,this.targetTimeMs=n,this.op=r,this.removalCallback=s,this.deferred=new ts,this.then=this.deferred.promise.then.bind(this.deferred.promise),this.deferred.promise.catch((t=>{}))}get promise(){return this.deferred.promise}static createAndSchedule(t,e,n,r,s){const i=Date.now()+n,o=new _d(t,e,i,r,s);return o.start(n),o}start(t){this.timerHandle=setTimeout((()=>this.handleDelayElapsed()),t)}skipDelay(){return this.handleDelayElapsed()}cancel(t){null!==this.timerHandle&&(this.clearTimeout(),this.deferred.reject(new Zr(Jr.CANCELLED,"Operation cancelled"+(t?": "+t:""))))}handleDelayElapsed(){this.asyncQueue.enqueueAndForget((()=>null!==this.timerHandle?(this.clearTimeout(),this.op().then((t=>this.deferred.resolve(t)))):Promise.resolve()))}clearTimeout(){null!==this.timerHandle&&(this.removalCallback(this),clearTimeout(this.timerHandle),this.timerHandle=null)}}function Id(t,e){if(Kr("AsyncQueue",`${e}: ${t}`),Us(t))return new Zr(Jr.UNAVAILABLE,`${e}: ${t}`);throw t}class Ed{constructor(t){this.comparator=t?(e,n)=>t(e,n)||_s.comparator(e.key,n.key):(t,e)=>_s.comparator(t.key,e.key),this.keyedMap=ba(),this.sortedSet=new Ni(this.comparator)}static emptySet(t){return new Ed(t.comparator)}has(t){return null!=this.keyedMap.get(t)}get(t){return this.keyedMap.get(t)}first(){return this.sortedSet.minKey()}last(){return this.sortedSet.maxKey()}isEmpty(){return this.sortedSet.isEmpty()}indexOf(t){const e=this.keyedMap.get(t);return e?this.sortedSet.indexOf(e):-1}get size(){return this.sortedSet.size}forEach(t){this.sortedSet.inorderTraversal(((e,n)=>(t(e),!1)))}add(t){const e=this.delete(t.key);return e.copy(e.keyedMap.insert(t.key,t),e.sortedSet.insert(t,null))}delete(t){const e=this.get(t);return e?this.copy(this.keyedMap.remove(t),this.sortedSet.remove(e)):this}isEqual(t){if(!(t instanceof Ed))return!1;if(this.size!==t.size)return!1;const e=this.sortedSet.getIterator(),n=t.sortedSet.getIterator();for(;e.hasNext();){const t=e.getNext().key,r=n.getNext().key;if(!t.isEqual(r))return!1}return!0}toString(){const t=[];return this.forEach((e=>{t.push(e.toString())})),0===t.length?"DocumentSet ()":"DocumentSet (\n "+t.join(" \n")+"\n)"}copy(t,e){const n=new Ed;return n.comparator=this.comparator,n.keyedMap=t,n.sortedSet=e,n}}class Td{constructor(){this.L_=new Ni(_s.comparator)}track(t){const e=t.doc.key,n=this.L_.get(e);n?0!==t.type&&3===n.type?this.L_=this.L_.insert(e,t):3===t.type&&1!==n.type?this.L_=this.L_.insert(e,{type:n.type,doc:t.doc}):2===t.type&&2===n.type?this.L_=this.L_.insert(e,{type:2,doc:t.doc}):2===t.type&&0===n.type?this.L_=this.L_.insert(e,{type:0,doc:t.doc}):1===t.type&&0===n.type?this.L_=this.L_.remove(e):1===t.type&&2===n.type?this.L_=this.L_.insert(e,{type:1,doc:n.doc}):0===t.type&&1===n.type?this.L_=this.L_.insert(e,{type:2,doc:t.doc}):Hr():this.L_=this.L_.insert(e,t)}k_(){const t=[];return this.L_.inorderTraversal(((e,n)=>{t.push(n)})),t}}class Sd{constructor(t,e,n,r,s,i,o,a,u){this.query=t,this.docs=e,this.oldDocs=n,this.docChanges=r,this.mutatedKeys=s,this.fromCache=i,this.syncStateChanged=o,this.excludesMetadataChanges=a,this.hasCachedResults=u}static fromInitialDocuments(t,e,n,r,s){const i=[];return e.forEach((t=>{i.push({type:0,doc:t})})),new Sd(t,e,Ed.emptySet(e),i,n,r,!0,!1,s)}get hasPendingWrites(){return!this.mutatedKeys.isEmpty()}isEqual(t){if(!(this.fromCache===t.fromCache&&this.hasCachedResults===t.hasCachedResults&&this.syncStateChanged===t.syncStateChanged&&this.mutatedKeys.isEqual(t.mutatedKeys)&&ca(this.query,t.query)&&this.docs.isEqual(t.docs)&&this.oldDocs.isEqual(t.oldDocs)))return!1;const e=this.docChanges,n=t.docChanges;if(e.length!==n.length)return!1;for(let t=0;tla(t)),ca),this.onlineState="Unknown",this.K_=new Set}}async function Dd(t,e){const n=Xr(t),r=e.query;let s=!1,i=n.queries.get(r);if(i||(s=!0,i=new xd),s)try{i.q_=await n.onListen(r)}catch(t){const n=Id(t,`Initialization of query '${ha(e.query)}' failed`);return void e.onError(n)}n.queries.set(r,i),i.Q_.push(e),e.U_(n.onlineState),i.q_&&e.W_(i.q_)&&Rd(n)}async function Ad(t,e){const n=Xr(t),r=e.query;let s=!1;const i=n.queries.get(r);if(i){const t=i.Q_.indexOf(e);t>=0&&(i.Q_.splice(t,1),s=0===i.Q_.length)}if(s)return n.queries.delete(r),n.onUnlisten(r)}function Nd(t,e){const n=Xr(t);let r=!1;for(const t of e){const e=t.query,s=n.queries.get(e);if(s){for(const e of s.Q_)e.W_(t)&&(r=!0);s.q_=t}}r&&Rd(n)}function kd(t,e,n){const r=Xr(t),s=r.queries.get(e);if(s)for(const t of s.Q_)t.onError(n);r.queries.delete(e)}function Rd(t){t.K_.forEach((t=>{t.next()}))}class Md{constructor(t,e,n){this.query=t,this.G_=e,this.z_=!1,this.j_=null,this.onlineState="Unknown",this.options=n||{}}W_(t){if(!this.options.includeMetadataChanges){const e=[];for(const n of t.docChanges)3!==n.type&&e.push(n);t=new Sd(t.query,t.docs,t.oldDocs,e,t.mutatedKeys,t.fromCache,t.syncStateChanged,!0,t.hasCachedResults)}let e=!1;return this.z_?this.H_(t)&&(this.G_.next(t),e=!0):this.J_(t,this.onlineState)&&(this.Y_(t),e=!0),this.j_=t,e}onError(t){this.G_.error(t)}U_(t){this.onlineState=t;let e=!1;return this.j_&&!this.z_&&this.J_(this.j_,t)&&(this.Y_(this.j_),e=!0),e}J_(t,e){if(!t.fromCache)return!0;const n="Offline"!==e;return(!this.options.Z_||!n)&&(!t.docs.isEmpty()||t.hasCachedResults||"Offline"===e)}H_(t){if(t.docChanges.length>0)return!0;const e=this.j_&&this.j_.hasPendingWrites!==t.hasPendingWrites;return!(!t.syncStateChanged&&!e)&&!0===this.options.includeMetadataChanges}Y_(t){t=Sd.fromInitialDocuments(t.query,t.docs,t.mutatedKeys,t.fromCache,t.hasCachedResults),this.z_=!0,this.G_.next(t)}}class Ld{constructor(t,e){this.X_=t,this.byteLength=e}ea(){return"metadata"in this.X_}}class Od{constructor(t){this.serializer=t}Ps(t){return $u(this.serializer,t)}Is(t){return t.metadata.exists?Ju(this.serializer,t.document,!1):bo.newNoDocument(this.Ps(t.metadata.name),this.Ts(t.metadata.readTime))}Ts(t){return Uu(t)}}class Pd{constructor(t,e,n){this.ta=t,this.localStore=e,this.serializer=n,this.queries=[],this.documents=[],this.collectionGroups=new Set,this.progress=Fd(t)}na(t){this.progress.bytesLoaded+=t.byteLength;let e=this.progress.documentsLoaded;if(t.X_.namedQuery)this.queries.push(t.X_.namedQuery);else if(t.X_.documentMetadata){this.documents.push({metadata:t.X_.documentMetadata}),t.X_.documentMetadata.exists||++e;const n=ws.fromString(t.X_.documentMetadata.name);this.collectionGroups.add(n.get(n.length-2))}else t.X_.document&&(this.documents[this.documents.length-1].document=t.X_.document,++e);return e!==this.progress.documentsLoaded?(this.progress.documentsLoaded=e,Object.assign({},this.progress)):null}ra(t){const e=new Map,n=new Od(this.serializer);for(const r of t)if(r.metadata.queries){const t=n.Ps(r.metadata.name);for(const n of r.metadata.queries){const r=(e.get(n)||Ca()).add(t);e.set(n,r)}}return e}async complete(){const t=await async function(t,e,n,r){const s=Xr(t);let i=Ca(),o=wa();for(const t of n){const n=e.Ps(t.metadata.name);t.document&&(i=i.add(n));const r=e.Is(t);r.setReadTime(e.Ts(t.metadata.readTime)),o=o.insert(n,r)}const a=s.os.newChangeBuffer({trackRemovals:!0}),u=await dh(s,function(t){return ia(ea(ws.fromString(`__bundle__/docs/${t}`)))}(r));return s.persistence.runTransaction("Apply bundle documents","readwrite",(t=>lh(t,a,o).next((e=>(a.apply(t),e))).next((e=>s.Qr.removeMatchingKeysForTargetId(t,u.targetId).next((()=>s.Qr.addMatchingKeys(t,i,u.targetId))).next((()=>s.localDocuments.getLocalViewOfDocuments(t,e.cs,e.ls))).next((()=>e.cs))))))}(this.localStore,new Od(this.serializer),this.documents,this.ta.id),e=this.ra(this.documents);for(const t of this.queries)await wh(this.localStore,t,e.get(t.name));return this.progress.taskState="Success",{progress:this.progress,ia:this.collectionGroups,sa:t}}}function Fd(t){return{taskState:"Running",documentsLoaded:0,bytesLoaded:0,totalDocuments:t.totalDocuments,totalBytes:t.totalBytes}}class Vd{constructor(t){this.key=t}}class qd{constructor(t){this.key=t}}class Bd{constructor(t,e){this.query=t,this.oa=e,this._a=null,this.hasCachedResults=!1,this.current=!1,this.aa=Ca(),this.mutatedKeys=Ca(),this.ua=ga(t),this.ca=new Ed(this.ua)}get la(){return this.oa}ha(t,e){const n=e?e.Pa:new Td,r=e?e.ca:this.ca;let s=e?e.mutatedKeys:this.mutatedKeys,i=r,o=!1;const a="F"===this.query.limitType&&r.size===this.query.limit?r.last():null,u="L"===this.query.limitType&&r.size===this.query.limit?r.first():null;if(t.inorderTraversal(((t,e)=>{const c=r.get(t),l=da(this.query,e)?e:null,h=!!c&&this.mutatedKeys.has(c.key),d=!!l&&(l.hasLocalMutations||this.mutatedKeys.has(l.key)&&l.hasCommittedMutations);let f=!1;c&&l?c.data.isEqual(l.data)?h!==d&&(n.track({type:3,doc:l}),f=!0):this.Ia(c,l)||(n.track({type:2,doc:l}),f=!0,(a&&this.ua(l,a)>0||u&&this.ua(l,u)<0)&&(o=!0)):!c&&l?(n.track({type:0,doc:l}),f=!0):c&&!l&&(n.track({type:1,doc:c}),f=!0,(a||u)&&(o=!0)),f&&(l?(i=i.add(l),s=d?s.add(t):s.delete(t)):(i=i.delete(t),s=s.delete(t)))})),null!==this.query.limit)for(;i.size>this.query.limit;){const t="F"===this.query.limitType?i.last():i.first();i=i.delete(t.key),s=s.delete(t.key),n.track({type:1,doc:t})}return{ca:i,Pa:n,Xi:o,mutatedKeys:s}}Ia(t,e){return t.hasLocalMutations&&e.hasCommittedMutations&&!e.hasLocalMutations}applyChanges(t,e,n,r){const s=this.ca;this.ca=t.ca,this.mutatedKeys=t.mutatedKeys;const i=t.Pa.k_();i.sort(((t,e)=>function(t,e){const n=t=>{switch(t){case 0:return 1;case 2:case 3:return 2;case 1:return 0;default:return Hr()}};return n(t)-n(e)}(t.type,e.type)||this.ua(t.doc,e.doc))),this.Ta(n),r=null!=r&&r;const o=e&&!r?this.Ea():[],a=0===this.aa.size&&this.current&&!r?1:0,u=a!==this._a;return this._a=a,0!==i.length||u?{snapshot:new Sd(this.query,t.ca,s,i,t.mutatedKeys,0===a,u,!1,!!n&&n.resumeToken.approximateByteSize()>0),da:o}:{da:o}}U_(t){return this.current&&"Offline"===t?(this.current=!1,this.applyChanges({ca:this.ca,Pa:new Td,mutatedKeys:this.mutatedKeys,Xi:!1},!1)):{da:[]}}Aa(t){return!this.oa.has(t)&&!!this.ca.has(t)&&!this.ca.get(t).hasLocalMutations}Ta(t){t&&(t.addedDocuments.forEach((t=>this.oa=this.oa.add(t))),t.modifiedDocuments.forEach((t=>{})),t.removedDocuments.forEach((t=>this.oa=this.oa.delete(t))),this.current=t.current)}Ea(){if(!this.current)return[];const t=this.aa;this.aa=Ca(),this.ca.forEach((t=>{this.Aa(t.key)&&(this.aa=this.aa.add(t.key))}));const e=[];return t.forEach((t=>{this.aa.has(t)||e.push(new qd(t))})),this.aa.forEach((n=>{t.has(n)||e.push(new Vd(n))})),e}Ra(t){this.oa=t.hs,this.aa=Ca();const e=this.ha(t.documents);return this.applyChanges(e,!0)}Va(){return Sd.fromInitialDocuments(this.query,this.ca,this.mutatedKeys,0===this._a,this.hasCachedResults)}}class Ud{constructor(t,e,n){this.query=t,this.targetId=e,this.view=n}}class zd{constructor(t){this.key=t,this.ma=!1}}class Gd{constructor(t,e,n,r,s,i){this.localStore=t,this.remoteStore=e,this.eventManager=n,this.sharedClientState=r,this.currentUser=s,this.maxConcurrentLimboResolutions=i,this.fa={},this.ga=new pa((t=>la(t)),ca),this.pa=new Map,this.ya=new Set,this.wa=new Ni(_s.comparator),this.Sa=new Map,this.ba=new Bl,this.Da={},this.Ca=new Map,this.va=ml.Bn(),this.onlineState="Unknown",this.Fa=void 0}get isPrimaryClient(){return!0===this.Fa}}async function jd(t,e){const n=yf(t);let r,s;const i=n.ga.get(e);if(i)r=i.targetId,n.sharedClientState.addLocalQueryTarget(r),s=i.view.Va();else{const t=await dh(n.localStore,ia(e)),i=n.sharedClientState.addLocalQueryTarget(t.targetId);r=t.targetId,s=await Kd(n,e,r,"current"===i,t.resumeToken),n.isPrimaryClient&&Wh(n.remoteStore,t)}return s}async function Kd(t,e,n,r,s){t.Ma=(e,n,r)=>async function(t,e,n,r){let s=e.view.ha(n);s.Xi&&(s=await gh(t.localStore,e.query,!1).then((({documents:t})=>e.view.ha(t,s))));const i=r&&r.targetChanges.get(e.targetId),o=r&&null!=r.targetMismatches.get(e.targetId),a=e.view.applyChanges(s,t.isPrimaryClient,i,o);return nf(t,e.targetId,a.da),a.snapshot}(t,e,n,r);const i=await gh(t.localStore,e,!0),o=new Bd(e,i.hs),a=o.ha(i.documents),u=Su.createSynthesizedTargetChangeForCurrentChange(n,r&&"Offline"!==t.onlineState,s),c=o.applyChanges(a,t.isPrimaryClient,u);nf(t,n,c.da);const l=new Ud(e,n,o);return t.ga.set(e,l),t.pa.has(n)?t.pa.get(n).push(e):t.pa.set(n,[e]),c.snapshot}async function $d(t,e){const n=Xr(t),r=n.ga.get(e),s=n.pa.get(r.targetId);if(s.length>1)return n.pa.set(r.targetId,s.filter((t=>!ca(t,e)))),void n.ga.delete(e);n.isPrimaryClient?(n.sharedClientState.removeLocalQueryTarget(r.targetId),n.sharedClientState.isActiveQueryTarget(r.targetId)||await fh(n.localStore,r.targetId,!1).then((()=>{n.sharedClientState.clearQueryState(r.targetId),Yh(n.remoteStore,r.targetId),tf(n,r.targetId)})).catch(Os)):(tf(n,r.targetId),await fh(n.localStore,r.targetId,!0))}async function Qd(t,e){const n=Xr(t);try{const t=await function(t,e){const n=Xr(t),r=e.snapshotVersion;let s=n.ns;return n.persistence.runTransaction("Apply remote event","readwrite-primary",(t=>{const i=n.os.newChangeBuffer({trackRemovals:!0});s=n.ns;const o=[];e.targetChanges.forEach(((i,a)=>{const u=s.get(a);if(!u)return;o.push(n.Qr.removeMatchingKeys(t,i.removedDocuments,a).next((()=>n.Qr.addMatchingKeys(t,i.addedDocuments,a))));let c=u.withSequenceNumber(t.currentSequenceNumber);null!==e.targetMismatches.get(a)?c=c.withResumeToken(qi.EMPTY_BYTE_STRING,ps.min()).withLastLimboFreeSnapshotVersion(ps.min()):i.resumeToken.approximateByteSize()>0&&(c=c.withResumeToken(i.resumeToken,r)),s=s.insert(a,c),function(t,e,n){return 0===t.resumeToken.approximateByteSize()||e.snapshotVersion.toMicroseconds()-t.snapshotVersion.toMicroseconds()>=3e8||n.addedDocuments.size+n.modifiedDocuments.size+n.removedDocuments.size>0}(u,c,i)&&o.push(n.Qr.updateTargetData(t,c))}));let a=wa(),u=Ca();if(e.documentUpdates.forEach((r=>{e.resolvedLimboDocuments.has(r)&&o.push(n.persistence.referenceDelegate.updateLimboDocument(t,r))})),o.push(lh(t,i,e.documentUpdates).next((t=>{a=t.cs,u=t.ls}))),!r.isEqual(ps.min())){const e=n.Qr.getLastRemoteSnapshotVersion(t).next((e=>n.Qr.setTargetsMetadata(t,t.currentSequenceNumber,r)));o.push(e)}return Ps.waitFor(o).next((()=>i.apply(t))).next((()=>n.localDocuments.getLocalViewOfDocuments(t,a,u))).next((()=>a))})).then((t=>(n.ns=s,t)))}(n.localStore,e);e.targetChanges.forEach(((t,e)=>{const r=n.Sa.get(e);r&&(Wr(t.addedDocuments.size+t.modifiedDocuments.size+t.removedDocuments.size<=1),t.addedDocuments.size>0?r.ma=!0:t.modifiedDocuments.size>0?Wr(r.ma):t.removedDocuments.size>0&&(Wr(r.ma),r.ma=!1))})),await of(n,t,e)}catch(t){await Os(t)}}function Hd(t,e,n){const r=Xr(t);if(r.isPrimaryClient&&0===n||!r.isPrimaryClient&&1===n){const t=[];r.ga.forEach(((n,r)=>{const s=r.view.U_(e);s.snapshot&&t.push(s.snapshot)})),function(t,e){const n=Xr(t);n.onlineState=e;let r=!1;n.queries.forEach(((t,n)=>{for(const t of n.Q_)t.U_(e)&&(r=!0)})),r&&Rd(n)}(r.eventManager,e),t.length&&r.fa.u_(t),r.onlineState=e,r.isPrimaryClient&&r.sharedClientState.setOnlineState(e)}}async function Wd(t,e,n){const r=Xr(t);r.sharedClientState.updateQueryState(e,"rejected",n);const s=r.Sa.get(e),i=s&&s.key;if(i){let t=new Ni(_s.comparator);t=t.insert(i,bo.newNoDocument(i,ps.min()));const n=Ca().add(i),s=new Tu(ps.min(),new Map,new Ni(ds),t,n);await Qd(r,s),r.wa=r.wa.remove(i),r.Sa.delete(e),sf(r)}else await fh(r.localStore,e,!1).then((()=>tf(r,e,n))).catch(Os)}async function Yd(t,e){const n=Xr(t),r=e.batch.batchId;try{const t=await function(t,e){const n=Xr(t);return n.persistence.runTransaction("Acknowledge batch","readwrite-primary",(t=>{const r=e.batch.keys(),s=n.os.newChangeBuffer({trackRemovals:!0});return function(t,e,n,r){const s=n.batch,i=s.keys();let o=Ps.resolve();return i.forEach((t=>{o=o.next((()=>r.getEntry(e,t))).next((e=>{const i=n.docVersions.get(t);Wr(null!==i),e.version.compareTo(i)<0&&(s.applyToRemoteDocument(e,n),e.isValidDocument()&&(e.setReadTime(n.commitVersion),r.addEntry(e)))}))})),o.next((()=>t.mutationQueue.removeMutationBatch(e,s)))}(n,t,e,s).next((()=>s.apply(t))).next((()=>n.mutationQueue.performConsistencyCheck(t))).next((()=>n.documentOverlayCache.removeOverlaysForBatchId(t,r,e.batch.batchId))).next((()=>n.localDocuments.recalculateAndSaveOverlaysForDocumentKeys(t,function(t){let e=Ca();for(let n=0;n0&&(e=e.add(t.batch.mutations[n].key));return e}(e)))).next((()=>n.localDocuments.getDocuments(t,r)))}))}(n.localStore,e);Zd(n,r,null),Jd(n,r),n.sharedClientState.updateMutationState(r,"acknowledged"),await of(n,t)}catch(t){await Os(t)}}async function Xd(t,e,n){const r=Xr(t);try{const t=await function(t,e){const n=Xr(t);return n.persistence.runTransaction("Reject batch","readwrite-primary",(t=>{let r;return n.mutationQueue.lookupMutationBatch(t,e).next((e=>(Wr(null!==e),r=e.keys(),n.mutationQueue.removeMutationBatch(t,e)))).next((()=>n.mutationQueue.performConsistencyCheck(t))).next((()=>n.documentOverlayCache.removeOverlaysForBatchId(t,r,e))).next((()=>n.localDocuments.recalculateAndSaveOverlaysForDocumentKeys(t,r))).next((()=>n.localDocuments.getDocuments(t,r)))}))}(r.localStore,e);Zd(r,e,n),Jd(r,e),r.sharedClientState.updateMutationState(e,"rejected",n),await of(r,t)}catch(t){await Os(t)}}function Jd(t,e){(t.Ca.get(e)||[]).forEach((t=>{t.resolve()})),t.Ca.delete(e)}function Zd(t,e,n){const r=Xr(t);let s=r.Da[r.currentUser.toKey()];if(s){const t=s.get(e);t&&(n?t.reject(n):t.resolve(),s=s.remove(e)),r.Da[r.currentUser.toKey()]=s}}function tf(t,e,n=null){t.sharedClientState.removeLocalQueryTarget(e);for(const r of t.pa.get(e))t.ga.delete(r),n&&t.fa.xa(r,n);t.pa.delete(e),t.isPrimaryClient&&t.ba.Vr(e).forEach((e=>{t.ba.containsKey(e)||ef(t,e)}))}function ef(t,e){t.ya.delete(e.path.canonicalString());const n=t.wa.get(e);null!==n&&(Yh(t.remoteStore,n),t.wa=t.wa.remove(e),t.Sa.delete(n),sf(t))}function nf(t,e,n){for(const r of n)r instanceof Vd?(t.ba.addReference(r.key,e),rf(t,r)):r instanceof qd?(jr("SyncEngine","Document no longer in limbo: "+r.key),t.ba.removeReference(r.key,e),t.ba.containsKey(r.key)||ef(t,r.key)):Hr()}function rf(t,e){const n=e.key,r=n.path.canonicalString();t.wa.get(n)||t.ya.has(r)||(jr("SyncEngine","New document in limbo: "+n),t.ya.add(r),sf(t))}function sf(t){for(;t.ya.size>0&&t.wa.size{o.push(r.Ma(a,e,n).then((t=>{if((t||n)&&r.isPrimaryClient&&r.sharedClientState.updateQueryState(a.targetId,(null==t?void 0:t.fromCache)?"not-current":"current"),t){s.push(t);const e=rh.Ki(a.targetId,t);i.push(e)}})))})),await Promise.all(o),r.fa.u_(s),await async function(t,e){const n=Xr(t);try{await n.persistence.runTransaction("notifyLocalViewChanges","readwrite",(t=>Ps.forEach(e,(e=>Ps.forEach(e.qi,(r=>n.persistence.referenceDelegate.addReference(t,e.targetId,r))).next((()=>Ps.forEach(e.Qi,(r=>n.persistence.referenceDelegate.removeReference(t,e.targetId,r)))))))))}catch(t){if(!Us(t))throw t;jr("LocalStore","Failed to update sequence numbers: "+t)}for(const t of e){const e=t.targetId;if(!t.fromCache){const t=n.ns.get(e),r=t.snapshotVersion,s=t.withLastLimboFreeSnapshotVersion(r);n.ns=n.ns.insert(e,s)}}}(r.localStore,i))}async function af(t,e){const n=Xr(t);if(!n.currentUser.isEqual(e)){jr("SyncEngine","User change. New user:",e.toKey());const t=await uh(n.localStore,e);n.currentUser=e,function(t,e){t.Ca.forEach((t=>{t.forEach((t=>{t.reject(new Zr(Jr.CANCELLED,e))}))})),t.Ca.clear()}(n,"'waitForPendingWrites' promise is rejected due to a user change."),n.sharedClientState.handleUserChange(e,t.removedBatchIds,t.addedBatchIds),await of(n,t.us)}}function uf(t,e){const n=Xr(t),r=n.Sa.get(e);if(r&&r.ma)return Ca().add(r.key);{let t=Ca();const r=n.pa.get(e);if(!r)return t;for(const e of r){const r=n.ga.get(e);t=t.unionWith(r.view.la)}return t}}async function cf(t,e){const n=Xr(t),r=await gh(n.localStore,e.query,!0),s=e.view.Ra(r);return n.isPrimaryClient&&nf(n,e.targetId,s.da),s}async function lf(t,e){const n=Xr(t);return ph(n.localStore,e).then((t=>of(n,t)))}async function hf(t,e,n,r){const s=Xr(t),i=await function(t,e){const n=Xr(t),r=Xr(n.mutationQueue);return n.persistence.runTransaction("Lookup mutation documents","readonly",(t=>r.vn(t,e).next((e=>e?n.localDocuments.getDocuments(t,e):Ps.resolve(null)))))}(s.localStore,e);null!==i?("pending"===n?await ud(s.remoteStore):"acknowledged"===n||"rejected"===n?(Zd(s,e,r||null),Jd(s,e),function(t,e){Xr(Xr(t).mutationQueue).Mn(e)}(s.localStore,e)):Hr(),await of(s,i)):jr("SyncEngine","Cannot apply mutation batch with id: "+e)}async function df(t,e,n){const r=Xr(t),s=[],i=[];for(const t of e){let e;const n=r.pa.get(t);if(n&&0!==n.length){e=await dh(r.localStore,ia(n[0]));for(const t of n){const e=r.ga.get(t),n=await cf(r,e);n.snapshot&&i.push(n.snapshot)}}else{const n=await mh(r.localStore,t);e=await dh(r.localStore,n),await Kd(r,ff(n),t,!1,e.resumeToken)}s.push(e)}return r.fa.u_(i),s}function ff(t){return ta(t.path,t.collectionGroup,t.orderBy,t.filters,t.limit,"F",t.startAt,t.endAt)}function gf(t){return function(t){return Xr(Xr(t).persistence).Li()}(Xr(t).localStore)}async function mf(t,e,n,r){const s=Xr(t);if(s.Fa)return void jr("SyncEngine","Ignoring unexpected query state notification.");const i=s.pa.get(e);if(i&&i.length>0)switch(n){case"current":case"not-current":{const t=await ph(s.localStore,fa(i[0])),r=Tu.createSynthesizedRemoteEventForCurrentChange(e,"current"===n,qi.EMPTY_BYTE_STRING);await of(s,t,r);break}case"rejected":await fh(s.localStore,e,!0),tf(s,e,r);break;default:Hr()}}async function pf(t,e,n){const r=yf(t);if(r.Fa){for(const t of e){if(r.pa.has(t)){jr("SyncEngine","Adding an already active target "+t);continue}const e=await mh(r.localStore,t),n=await dh(r.localStore,e);await Kd(r,ff(e),n.targetId,!1,n.resumeToken),Wh(r.remoteStore,n)}for(const t of n)r.pa.has(t)&&await fh(r.localStore,t,!1).then((()=>{Yh(r.remoteStore,t),tf(r,t)})).catch(Os)}}function yf(t){const e=Xr(t);return e.remoteStore.remoteSyncer.applyRemoteEvent=Qd.bind(null,e),e.remoteStore.remoteSyncer.getRemoteKeysForTarget=uf.bind(null,e),e.remoteStore.remoteSyncer.rejectListen=Wd.bind(null,e),e.fa.u_=Nd.bind(null,e.eventManager),e.fa.xa=kd.bind(null,e.eventManager),e}function wf(t){const e=Xr(t);return e.remoteStore.remoteSyncer.applySuccessfulWrite=Yd.bind(null,e),e.remoteStore.remoteSyncer.rejectFailedWrite=Xd.bind(null,e),e}class vf{constructor(){this.synchronizeTabs=!1}async initialize(t){this.serializer=qh(t.databaseInfo.databaseId),this.sharedClientState=this.createSharedClientState(t),this.persistence=this.createPersistence(t),await this.persistence.start(),this.localStore=this.createLocalStore(t),this.gcScheduler=this.createGarbageCollectionScheduler(t,this.localStore),this.indexBackfillerScheduler=this.createIndexBackfillerScheduler(t,this.localStore)}createGarbageCollectionScheduler(t,e){return null}createIndexBackfillerScheduler(t,e){return null}createLocalStore(t){return ah(this.persistence,new ih,t.initialUser,this.serializer)}createPersistence(t){return new $l(Hl.Hr,this.serializer)}createSharedClientState(t){return new Dh}async terminate(){var t,e;null===(t=this.gcScheduler)||void 0===t||t.stop(),null===(e=this.indexBackfillerScheduler)||void 0===e||e.stop(),this.sharedClientState.shutdown(),await this.persistence.shutdown()}}class bf extends vf{constructor(t){super(),this.cacheSizeBytes=t}createGarbageCollectionScheduler(t,e){Wr(this.persistence.referenceDelegate instanceof Wl);const n=this.persistence.referenceDelegate.garbageCollector;return new Il(n,t.asyncQueue,e)}createPersistence(t){const e=void 0!==this.cacheSizeBytes?al.withCacheSize(this.cacheSizeBytes):al.DEFAULT;return new $l((t=>Wl.Hr(t,e)),this.serializer)}}class _f extends vf{constructor(t,e,n){super(),this.Na=t,this.cacheSizeBytes=e,this.forceOwnership=n,this.synchronizeTabs=!1}async initialize(t){await super.initialize(t),await this.Na.initialize(this,t),await wf(this.Na.syncEngine),await ud(this.Na.remoteStore),await this.persistence.fi((()=>(this.gcScheduler&&!this.gcScheduler.started&&this.gcScheduler.start(),this.indexBackfillerScheduler&&!this.indexBackfillerScheduler.started&&this.indexBackfillerScheduler.start(),Promise.resolve())))}createLocalStore(t){return ah(this.persistence,new ih,t.initialUser,this.serializer)}createGarbageCollectionScheduler(t,e){const n=this.persistence.referenceDelegate.garbageCollector;return new Il(n,t.asyncQueue,e)}createIndexBackfillerScheduler(t,e){const n=new Qs(e,this.persistence);return new $s(t.asyncQueue,n)}createPersistence(t){const e=nh(t.databaseInfo.databaseId,t.databaseInfo.persistenceKey),n=void 0!==this.cacheSizeBytes?al.withCacheSize(this.cacheSizeBytes):al.DEFAULT;return new Zl(this.synchronizeTabs,e,t.clientId,n,t.asyncQueue,Fh(),Vh(),this.serializer,this.sharedClientState,!!this.forceOwnership)}createSharedClientState(t){return new Dh}}class If extends _f{constructor(t,e){super(t,e,!1),this.Na=t,this.cacheSizeBytes=e,this.synchronizeTabs=!0}async initialize(t){await super.initialize(t);const e=this.Na.syncEngine;this.sharedClientState instanceof Ch&&(this.sharedClientState.syncEngine={Zs:hf.bind(null,e),Xs:mf.bind(null,e),eo:pf.bind(null,e),Li:gf.bind(null,e),Ys:lf.bind(null,e)},await this.sharedClientState.start()),await this.persistence.fi((async t=>{await async function(t,e){const n=Xr(t);if(yf(n),wf(n),!0===e&&!0!==n.Fa){const t=n.sharedClientState.getAllActiveQueryTargets(),e=await df(n,t.toArray());n.Fa=!0,await wd(n.remoteStore,!0);for(const t of e)Wh(n.remoteStore,t)}else if(!1===e&&!1!==n.Fa){const t=[];let e=Promise.resolve();n.pa.forEach(((r,s)=>{n.sharedClientState.isLocalQueryTarget(s)?t.push(s):e=e.then((()=>(tf(n,s),fh(n.localStore,s,!0)))),Yh(n.remoteStore,s)})),await e,await df(n,t),function(t){const e=Xr(t);e.Sa.forEach(((t,n)=>{Yh(e.remoteStore,n)})),e.ba.mr(),e.Sa=new Map,e.wa=new Ni(_s.comparator)}(n),n.Fa=!1,await wd(n.remoteStore,!1)}}(this.Na.syncEngine,t),this.gcScheduler&&(t&&!this.gcScheduler.started?this.gcScheduler.start():t||this.gcScheduler.stop()),this.indexBackfillerScheduler&&(t&&!this.indexBackfillerScheduler.started?this.indexBackfillerScheduler.start():t||this.indexBackfillerScheduler.stop())}))}createSharedClientState(t){const e=Fh();if(!Ch.D(e))throw new Zr(Jr.UNIMPLEMENTED,"IndexedDB persistence is only available on platforms that support LocalStorage.");const n=nh(t.databaseInfo.databaseId,t.databaseInfo.persistenceKey);return new Ch(e,t.asyncQueue,n,t.clientId,t.initialUser)}}class Ef{async initialize(t,e){this.localStore||(this.localStore=t.localStore,this.sharedClientState=t.sharedClientState,this.datastore=this.createDatastore(e),this.remoteStore=this.createRemoteStore(e),this.eventManager=this.createEventManager(e),this.syncEngine=this.createSyncEngine(e,!t.synchronizeTabs),this.sharedClientState.onlineStateHandler=t=>Hd(this.syncEngine,t,1),this.remoteStore.remoteSyncer.handleCredentialChange=af.bind(null,this.syncEngine),await wd(this.remoteStore,this.syncEngine.isPrimaryClient))}createEventManager(t){return new Cd}createDatastore(t){const e=qh(t.databaseInfo.databaseId),n=function(t){return new Ph(t)}(t.databaseInfo);return function(t,e,n,r){return new jh(t,e,n,r)}(t.authCredentials,t.appCheckCredentials,n,e)}createRemoteStore(t){return function(t,e,n,r,s){return new $h(t,e,n,r,s)}(this.localStore,this.datastore,t.asyncQueue,(t=>Hd(this.syncEngine,t,0)),Nh.D()?new Nh:new Ah)}createSyncEngine(t,e){return function(t,e,n,r,s,i,o){const a=new Gd(t,e,n,r,s,i);return o&&(a.Fa=!0),a}(this.localStore,this.remoteStore,this.eventManager,this.sharedClientState,t.initialUser,t.maxConcurrentLimboResolutions,e)}async terminate(){var t;await async function(t){const e=Xr(t);jr("RemoteStore","RemoteStore shutting down."),e.v_.add(5),await Hh(e),e.M_.shutdown(),e.x_.set("Unknown")}(this.remoteStore),null===(t=this.datastore)||void 0===t||t.terminate()}}function Tf(t,e=10240){let n=0;return{async read(){if(n{this.muted||t(e)}),0)}}class xf{constructor(t,e){this.ka=t,this.serializer=e,this.metadata=new ts,this.buffer=new Uint8Array,this.qa=new TextDecoder("utf-8"),this.Qa().then((t=>{t&&t.ea()?this.metadata.resolve(t.X_.metadata):this.metadata.reject(new Error(`The first element of the bundle is not a metadata, it is\n ${JSON.stringify(null==t?void 0:t.X_)}`))}),(t=>this.metadata.reject(t)))}close(){return this.ka.cancel()}async getMetadata(){return this.metadata.promise}async Oa(){return await this.getMetadata(),this.Qa()}async Qa(){const t=await this.Ka();if(null===t)return null;const e=this.qa.decode(t),n=Number(e);isNaN(n)&&this.$a(`length string (${e}) is not valid number`);const r=await this.Ua(n);return new Ld(JSON.parse(r),t.length+n)}Wa(){return this.buffer.findIndex((t=>t==="{".charCodeAt(0)))}async Ka(){for(;this.Wa()<0&&!await this.Ga(););if(0===this.buffer.length)return null;const t=this.Wa();t<0&&this.$a("Reached the end of bundle when a length string is expected.");const e=this.buffer.slice(0,t);return this.buffer=this.buffer.slice(t),e}async Ua(t){for(;this.buffer.length0)throw this.lastTransactionError=new Zr(Jr.INVALID_ARGUMENT,"Firestore transactions require all reads to be executed before all writes."),this.lastTransactionError;const e=await async function(t,e){const n=Xr(t),r={documents:e.map((t=>Ku(n.serializer,t)))},s=await n.vo("BatchGetDocuments",n.serializer.databaseId,ws.emptyPath(),r,e.length),i=new Map;s.forEach((t=>{const e=function(t,e){return"found"in e?function(t,e){Wr(!!e.found),e.found.name,e.found.updateTime;const n=$u(t,e.found.name),r=Uu(e.found.updateTime),s=e.found.createTime?Uu(e.found.createTime):ps.min(),i=new wo({mapValue:{fields:e.found.fields}});return bo.newFoundDocument(n,r,s,i)}(t,e):"missing"in e?function(t,e){Wr(!!e.missing),Wr(!!e.readTime);const n=$u(t,e.missing),r=Uu(e.readTime);return bo.newNoDocument(n,r)}(t,e):Hr()}(n.serializer,t);i.set(e.key.toString(),e)}));const o=[];return e.forEach((t=>{const e=i.get(t.toString());Wr(!!e),o.push(e)})),o}(this.datastore,t);return e.forEach((t=>this.recordVersion(t))),e}set(t,e){this.write(e.toMutation(t,this.precondition(t))),this.writtenDocs.add(t.toString())}update(t,e){try{this.write(e.toMutation(t,this.preconditionForUpdate(t)))}catch(t){this.lastTransactionError=t}this.writtenDocs.add(t.toString())}delete(t){this.write(new ou(t,this.precondition(t))),this.writtenDocs.add(t.toString())}async commit(){if(this.ensureCommitNotCalled(),this.lastTransactionError)throw this.lastTransactionError;const t=this.readVersions;this.mutations.forEach((e=>{t.delete(e.key.toString())})),t.forEach(((t,e)=>{const n=_s.fromPath(e);this.mutations.push(new au(n,this.precondition(n)))})),await async function(t,e){const n=Xr(t),r={writes:e.map((t=>Zu(n.serializer,t)))};await n.So("Commit",n.serializer.databaseId,ws.emptyPath(),r)}(this.datastore,this.mutations),this.committed=!0}recordVersion(t){let e;if(t.isFoundDocument())e=t.version;else{if(!t.isNoDocument())throw Hr();e=ps.min()}const n=this.readVersions.get(t.key.toString());if(n){if(!e.isEqual(n))throw new Zr(Jr.ABORTED,"Document version changed between two reads.")}else this.readVersions.set(t.key.toString(),e)}precondition(t){const e=this.readVersions.get(t.toString());return!this.writtenDocs.has(t.toString())&&e?e.isEqual(ps.min())?Qa.exists(!1):Qa.updateTime(e):Qa.none()}preconditionForUpdate(t){const e=this.readVersions.get(t.toString());if(!this.writtenDocs.has(t.toString())&&e){if(e.isEqual(ps.min()))throw new Zr(Jr.INVALID_ARGUMENT,"Can't update a document that doesn't exist.");return Qa.updateTime(e)}return Qa.exists(!0)}write(t){this.ensureCommitNotCalled(),this.mutations.push(t)}ensureCommitNotCalled(){}}class Df{constructor(t,e,n,r,s){this.asyncQueue=t,this.datastore=e,this.options=n,this.updateFunction=r,this.deferred=s,this.za=n.maxAttempts,this.jo=new Bh(this.asyncQueue,"transaction_retry")}ja(){this.za-=1,this.Ha()}Ha(){this.jo.qo((async()=>{const t=new Cf(this.datastore),e=this.Ja(t);e&&e.then((e=>{this.asyncQueue.enqueueAndForget((()=>t.commit().then((()=>{this.deferred.resolve(e)})).catch((t=>{this.Ya(t)}))))})).catch((t=>{this.Ya(t)}))}))}Ja(t){try{const e=this.updateFunction(t);return!Ws(e)&&e.catch&&e.then?e:(this.deferred.reject(Error("Transaction callback must return a Promise")),null)}catch(t){return this.deferred.reject(t),null}}Ya(t){this.za>0&&this.Za(t)?(this.za-=1,this.asyncQueue.enqueueAndForget((()=>(this.Ha(),Promise.resolve())))):this.deferred.reject(t)}Za(t){if("FirebaseError"===t.name){const e=t.code;return"aborted"===e||"failed-precondition"===e||"already-exists"===e||!mu(e)}return!1}}class Af{constructor(t,e,n,r){this.authCredentials=t,this.appCheckCredentials=e,this.asyncQueue=n,this.databaseInfo=r,this.user=qr.UNAUTHENTICATED,this.clientId=hs.newId(),this.authCredentialListener=()=>Promise.resolve(),this.appCheckCredentialListener=()=>Promise.resolve(),this.authCredentials.start(n,(async t=>{jr("FirestoreClient","Received user=",t.uid),await this.authCredentialListener(t),this.user=t})),this.appCheckCredentials.start(n,(t=>(jr("FirestoreClient","Received new app check token=",t),this.appCheckCredentialListener(t,this.user))))}get configuration(){return{asyncQueue:this.asyncQueue,databaseInfo:this.databaseInfo,clientId:this.clientId,authCredentials:this.authCredentials,appCheckCredentials:this.appCheckCredentials,initialUser:this.user,maxConcurrentLimboResolutions:100}}setCredentialChangeListener(t){this.authCredentialListener=t}setAppCheckTokenChangeListener(t){this.appCheckCredentialListener=t}verifyNotTerminated(){if(this.asyncQueue.isShuttingDown)throw new Zr(Jr.FAILED_PRECONDITION,"The client has already been terminated.")}terminate(){this.asyncQueue.enterRestrictedMode();const t=new ts;return this.asyncQueue.enqueueAndForgetEvenWhileRestricted((async()=>{try{this._onlineComponents&&await this._onlineComponents.terminate(),this._offlineComponents&&await this._offlineComponents.terminate(),this.authCredentials.shutdown(),this.appCheckCredentials.shutdown(),t.resolve()}catch(e){const n=Id(e,"Failed to shutdown persistence");t.reject(n)}})),t.promise}}async function Nf(t,e){t.asyncQueue.verifyOperationInProgress(),jr("FirestoreClient","Initializing OfflineComponentProvider");const n=t.configuration;await e.initialize(n);let r=n.initialUser;t.setCredentialChangeListener((async t=>{r.isEqual(t)||(await uh(e.localStore,t),r=t)})),e.persistence.setDatabaseDeletedListener((()=>t.terminate())),t._offlineComponents=e}async function kf(t,e){t.asyncQueue.verifyOperationInProgress();const n=await Mf(t);jr("FirestoreClient","Initializing OnlineComponentProvider"),await e.initialize(n,t.configuration),t.setCredentialChangeListener((t=>yd(e.remoteStore,t))),t.setAppCheckTokenChangeListener(((t,n)=>yd(e.remoteStore,n))),t._onlineComponents=e}function Rf(t){return"FirebaseError"===t.name?t.code===Jr.FAILED_PRECONDITION||t.code===Jr.UNIMPLEMENTED:!("undefined"!=typeof DOMException&&t instanceof DOMException)||22===t.code||20===t.code||11===t.code}async function Mf(t){if(!t._offlineComponents)if(t._uninitializedComponentsProvider){jr("FirestoreClient","Using user provided OfflineComponentProvider");try{await Nf(t,t._uninitializedComponentsProvider._offline)}catch(e){const n=e;if(!Rf(n))throw n;$r("Error using user provided cache. Falling back to memory cache: "+n),await Nf(t,new vf)}}else jr("FirestoreClient","Using default OfflineComponentProvider"),await Nf(t,new vf);return t._offlineComponents}async function Lf(t){return t._onlineComponents||(t._uninitializedComponentsProvider?(jr("FirestoreClient","Using user provided OnlineComponentProvider"),await kf(t,t._uninitializedComponentsProvider._online)):(jr("FirestoreClient","Using default OnlineComponentProvider"),await kf(t,new Ef))),t._onlineComponents}function Of(t){return Mf(t).then((t=>t.persistence))}function Pf(t){return Mf(t).then((t=>t.localStore))}function Ff(t){return Lf(t).then((t=>t.remoteStore))}function Vf(t){return Lf(t).then((t=>t.syncEngine))}function qf(t){return Lf(t).then((t=>t.datastore))}async function Bf(t){const e=await Lf(t),n=e.eventManager;return n.onListen=jd.bind(null,e.syncEngine),n.onUnlisten=$d.bind(null,e.syncEngine),n}function Uf(t,e,n={}){const r=new ts;return t.asyncQueue.enqueueAndForget((async()=>function(t,e,n,r,s){const i=new Sf({next:i=>{e.enqueueAndForget((()=>Ad(t,o)));const a=i.docs.has(n);!a&&i.fromCache?s.reject(new Zr(Jr.UNAVAILABLE,"Failed to get document because the client is offline.")):a&&i.fromCache&&r&&"server"===r.source?s.reject(new Zr(Jr.UNAVAILABLE,'Failed to get document from server. (However, this document does exist in the local cache. Run again without setting source to "server" to retrieve the cached document.)')):s.resolve(i)},error:t=>s.reject(t)}),o=new Md(ea(n.path),i,{includeMetadataChanges:!0,Z_:!0});return Dd(t,o)}(await Bf(t),t.asyncQueue,e,n,r))),r.promise}function zf(t,e,n={}){const r=new ts;return t.asyncQueue.enqueueAndForget((async()=>function(t,e,n,r,s){const i=new Sf({next:n=>{e.enqueueAndForget((()=>Ad(t,o))),n.fromCache&&"server"===r.source?s.reject(new Zr(Jr.UNAVAILABLE,'Failed to get documents from server. (However, these documents may exist in the local cache. Run again without setting source to "server" to retrieve the cached documents.)')):s.resolve(n)},error:t=>s.reject(t)}),o=new Md(n,i,{includeMetadataChanges:!0,Z_:!0});return Dd(t,o)}(await Bf(t),t.asyncQueue,e,n,r))),r.promise}function Gf(t){const e={};return void 0!==t.timeoutSeconds&&(e.timeoutSeconds=t.timeoutSeconds),e}const jf=new Map;function Kf(t,e,n){if(!n)throw new Zr(Jr.INVALID_ARGUMENT,`Function ${t}() cannot be called with an empty ${e}.`)}function $f(t,e,n,r){if(!0===e&&!0===r)throw new Zr(Jr.INVALID_ARGUMENT,`${t} and ${n} cannot be used together.`)}function Qf(t){if(!_s.isDocumentKey(t))throw new Zr(Jr.INVALID_ARGUMENT,`Invalid document reference. Document references must have an even number of segments, but ${t} has ${t.length}.`)}function Hf(t){if(_s.isDocumentKey(t))throw new Zr(Jr.INVALID_ARGUMENT,`Invalid collection reference. Collection references must have an odd number of segments, but ${t} has ${t.length}.`)}function Wf(t){if(void 0===t)return"undefined";if(null===t)return"null";if("string"==typeof t)return t.length>20&&(t=`${t.substring(0,20)}...`),JSON.stringify(t);if("number"==typeof t||"boolean"==typeof t)return""+t;if("object"==typeof t){if(t instanceof Array)return"an array";{const e=function(t){return t.constructor?t.constructor.name:null}(t);return e?`a custom ${e} object`:"an object"}}return"function"==typeof t?"a function":Hr()}function Yf(t,e){if("_delegate"in t&&(t=t._delegate),!(t instanceof e)){if(e.name===t.constructor.name)throw new Zr(Jr.INVALID_ARGUMENT,"Type does not match the expected instance. Did you pass a reference from a different Firestore SDK?");{const n=Wf(t);throw new Zr(Jr.INVALID_ARGUMENT,`Expected type '${e.name}', but it was: ${n}`)}}return t}function Xf(t,e){if(e<=0)throw new Zr(Jr.INVALID_ARGUMENT,`Function ${t}() requires a positive number, but it was: ${e}.`)}class Jf{constructor(t){var e,n;if(void 0===t.host){if(void 0!==t.ssl)throw new Zr(Jr.INVALID_ARGUMENT,"Can't provide ssl option if host option is not set");this.host="firestore.googleapis.com",this.ssl=!0}else this.host=t.host,this.ssl=null===(e=t.ssl)||void 0===e||e;if(this.credentials=t.credentials,this.ignoreUndefinedProperties=!!t.ignoreUndefinedProperties,this.localCache=t.localCache,void 0===t.cacheSizeBytes)this.cacheSizeBytes=41943040;else{if(-1!==t.cacheSizeBytes&&t.cacheSizeBytes<1048576)throw new Zr(Jr.INVALID_ARGUMENT,"cacheSizeBytes must be at least 1048576");this.cacheSizeBytes=t.cacheSizeBytes}$f("experimentalForceLongPolling",t.experimentalForceLongPolling,"experimentalAutoDetectLongPolling",t.experimentalAutoDetectLongPolling),this.experimentalForceLongPolling=!!t.experimentalForceLongPolling,this.experimentalForceLongPolling?this.experimentalAutoDetectLongPolling=!1:void 0===t.experimentalAutoDetectLongPolling?this.experimentalAutoDetectLongPolling=!0:this.experimentalAutoDetectLongPolling=!!t.experimentalAutoDetectLongPolling,this.experimentalLongPollingOptions=Gf(null!==(n=t.experimentalLongPollingOptions)&&void 0!==n?n:{}),function(t){if(void 0!==t.timeoutSeconds){if(isNaN(t.timeoutSeconds))throw new Zr(Jr.INVALID_ARGUMENT,`invalid long polling timeout: ${t.timeoutSeconds} (must not be NaN)`);if(t.timeoutSeconds<5)throw new Zr(Jr.INVALID_ARGUMENT,`invalid long polling timeout: ${t.timeoutSeconds} (minimum allowed value is 5)`);if(t.timeoutSeconds>30)throw new Zr(Jr.INVALID_ARGUMENT,`invalid long polling timeout: ${t.timeoutSeconds} (maximum allowed value is 30)`)}}(this.experimentalLongPollingOptions),this.useFetchStreams=!!t.useFetchStreams}isEqual(t){return this.host===t.host&&this.ssl===t.ssl&&this.credentials===t.credentials&&this.cacheSizeBytes===t.cacheSizeBytes&&this.experimentalForceLongPolling===t.experimentalForceLongPolling&&this.experimentalAutoDetectLongPolling===t.experimentalAutoDetectLongPolling&&function(t,e){return t.timeoutSeconds===e.timeoutSeconds}(this.experimentalLongPollingOptions,t.experimentalLongPollingOptions)&&this.ignoreUndefinedProperties===t.ignoreUndefinedProperties&&this.useFetchStreams===t.useFetchStreams}}class Zf{constructor(t,e,n,r){this._authCredentials=t,this._appCheckCredentials=e,this._databaseId=n,this._app=r,this.type="firestore-lite",this._persistenceKey="(lite)",this._settings=new Jf({}),this._settingsFrozen=!1}get app(){if(!this._app)throw new Zr(Jr.FAILED_PRECONDITION,"Firestore was not initialized using the Firebase SDK. 'app' is not available");return this._app}get _initialized(){return this._settingsFrozen}get _terminated(){return void 0!==this._terminateTask}_setSettings(t){if(this._settingsFrozen)throw new Zr(Jr.FAILED_PRECONDITION,"Firestore has already been started and its settings can no longer be changed. You can only modify settings before calling any other methods on a Firestore object.");this._settings=new Jf(t),void 0!==t.credentials&&(this._authCredentials=function(t){if(!t)return new ns;switch(t.type){case"firstParty":return new os(t.sessionIndex||"0",t.iamToken||null,t.authTokenFactory||null);case"provider":return t.client;default:throw new Zr(Jr.INVALID_ARGUMENT,"makeAuthCredentialsProvider failed due to invalid credential type")}}(t.credentials))}_getSettings(){return this._settings}_freezeSettings(){return this._settingsFrozen=!0,this._settings}_delete(){return this._terminateTask||(this._terminateTask=this._terminate()),this._terminateTask}toJSON(){return{app:this._app,databaseId:this._databaseId,settings:this._settings}}_terminate(){return function(t){const e=jf.get(t);e&&(jr("ComponentProvider","Removing Datastore"),jf.delete(t),e.terminate())}(this),Promise.resolve()}}function tg(t,e,n,r={}){var s;const i=(t=Yf(t,Zf))._getSettings(),o=`${e}:${n}`;if("firestore.googleapis.com"!==i.host&&i.host!==o&&$r("Host has been set in both settings() and connectFirestoreEmulator(), emulator host will be used."),t._setSettings(Object.assign(Object.assign({},i),{host:o,ssl:!1})),r.mockUserToken){let e,n;if("string"==typeof r.mockUserToken)e=r.mockUserToken,n=qr.MOCK_USER;else{e=function(t,e){if(t.uid)throw new Error('The "uid" field is no longer supported by mockUserToken. Please use "sub" instead for Firebase Auth User ID.');const n=e||"demo-project",r=t.iat||0,s=t.sub||t.user_id;if(!s)throw new Error("mockUserToken must contain 'sub' or 'user_id' field!");const i=Object.assign({iss:`https://securetoken.google.com/${n}`,aud:n,iat:r,exp:r+3600,auth_time:r,sub:s,user_id:s,firebase:{sign_in_provider:"custom",identities:{}}},t);return[l(JSON.stringify({alg:"none",type:"JWT"})),l(JSON.stringify(i)),""].join(".")}(r.mockUserToken,null===(s=t._app)||void 0===s?void 0:s.options.projectId);const i=r.mockUserToken.sub||r.mockUserToken.user_id;if(!i)throw new Zr(Jr.INVALID_ARGUMENT,"mockUserToken must contain 'sub' or 'user_id' field!");n=new qr(i)}t._authCredentials=new rs(new es(e,n))}}class eg{constructor(t,e,n){this.converter=e,this._query=n,this.type="query",this.firestore=t}withConverter(t){return new eg(this.firestore,t,this._query)}}class ng{constructor(t,e,n){this.converter=e,this._key=n,this.type="document",this.firestore=t}get _path(){return this._key.path}get id(){return this._key.path.lastSegment()}get path(){return this._key.path.canonicalString()}get parent(){return new rg(this.firestore,this.converter,this._key.path.popLast())}withConverter(t){return new ng(this.firestore,t,this._key)}}class rg extends eg{constructor(t,e,n){super(t,e,ea(n)),this._path=n,this.type="collection"}get id(){return this._query.path.lastSegment()}get path(){return this._query.path.canonicalString()}get parent(){const t=this._path.popLast();return t.isEmpty()?null:new ng(this.firestore,null,new _s(t))}withConverter(t){return new rg(this.firestore,t,this._path)}}function sg(t,e,...n){if(t=v(t),Kf("collection","path",e),t instanceof Zf){const r=ws.fromString(e,...n);return Hf(r),new rg(t,null,r)}{if(!(t instanceof ng||t instanceof rg))throw new Zr(Jr.INVALID_ARGUMENT,"Expected first argument to collection() to be a CollectionReference, a DocumentReference or FirebaseFirestore");const r=t._path.child(ws.fromString(e,...n));return Hf(r),new rg(t.firestore,null,r)}}function ig(t,e){if(t=Yf(t,Zf),Kf("collectionGroup","collection id",e),e.indexOf("/")>=0)throw new Zr(Jr.INVALID_ARGUMENT,`Invalid collection ID '${e}' passed to function collectionGroup(). Collection IDs must not contain '/'.`);return new eg(t,null,function(t){return new Zo(ws.emptyPath(),t)}(e))}function og(t,e,...n){if(t=v(t),1===arguments.length&&(e=hs.newId()),Kf("doc","path",e),t instanceof Zf){const r=ws.fromString(e,...n);return Qf(r),new ng(t,null,new _s(r))}{if(!(t instanceof ng||t instanceof rg))throw new Zr(Jr.INVALID_ARGUMENT,"Expected first argument to collection() to be a CollectionReference, a DocumentReference or FirebaseFirestore");const r=t._path.child(ws.fromString(e,...n));return Qf(r),new ng(t.firestore,t instanceof rg?t.converter:null,new _s(r))}}function ag(t,e){return t=v(t),e=v(e),(t instanceof ng||t instanceof rg)&&(e instanceof ng||e instanceof rg)&&t.firestore===e.firestore&&t.path===e.path&&t.converter===e.converter}function ug(t,e){return t=v(t),e=v(e),t instanceof eg&&e instanceof eg&&t.firestore===e.firestore&&ca(t._query,e._query)&&t.converter===e.converter}class cg{constructor(){this.Xa=Promise.resolve(),this.eu=[],this.tu=!1,this.nu=[],this.ru=null,this.iu=!1,this.su=!1,this.ou=[],this.jo=new Bh(this,"async_queue_retry"),this._u=()=>{const t=Vh();t&&jr("AsyncQueue","Visibility state changed to "+t.visibilityState),this.jo.Ko()};const t=Vh();t&&"function"==typeof t.addEventListener&&t.addEventListener("visibilitychange",this._u)}get isShuttingDown(){return this.tu}enqueueAndForget(t){this.enqueue(t)}enqueueAndForgetEvenWhileRestricted(t){this.au(),this.uu(t)}enterRestrictedMode(t){if(!this.tu){this.tu=!0,this.su=t||!1;const e=Vh();e&&"function"==typeof e.removeEventListener&&e.removeEventListener("visibilitychange",this._u)}}enqueue(t){if(this.au(),this.tu)return new Promise((()=>{}));const e=new ts;return this.uu((()=>this.tu&&this.su?Promise.resolve():(t().then(e.resolve,e.reject),e.promise))).then((()=>e.promise))}enqueueRetryable(t){this.enqueueAndForget((()=>(this.eu.push(t),this.cu())))}async cu(){if(0!==this.eu.length){try{await this.eu[0](),this.eu.shift(),this.jo.reset()}catch(t){if(!Us(t))throw t;jr("AsyncQueue","Operation failed with retryable error: "+t)}this.eu.length>0&&this.jo.qo((()=>this.cu()))}}uu(t){const e=this.Xa.then((()=>(this.iu=!0,t().catch((t=>{this.ru=t,this.iu=!1;const e=function(t){let e=t.message||"";return t.stack&&(e=t.stack.includes(t.message)?t.stack:t.message+"\n"+t.stack),e}(t);throw Kr("INTERNAL UNHANDLED ERROR: ",e),t})).then((t=>(this.iu=!1,t))))));return this.Xa=e,e}enqueueAfterDelay(t,e,n){this.au(),this.ou.indexOf(t)>-1&&(e=0);const r=_d.createAndSchedule(this,t,e,n,(t=>this.lu(t)));return this.nu.push(r),r}au(){this.ru&&Hr()}verifyOperationInProgress(){}async hu(){let t;do{t=this.Xa,await t}while(t!==this.Xa)}Pu(t){for(const e of this.nu)if(e.timerId===t)return!0;return!1}Iu(t){return this.hu().then((()=>{this.nu.sort(((t,e)=>t.targetTimeMs-e.targetTimeMs));for(const e of this.nu)if(e.skipDelay(),"all"!==t&&e.timerId===t)break;return this.hu()}))}Tu(t){this.ou.push(t)}lu(t){const e=this.nu.indexOf(t);this.nu.splice(e,1)}}function lg(t){return function(t,e){if("object"!=typeof t||null===t)return!1;const n=t;for(const t of e)if(t in n&&"function"==typeof n[t])return!0;return!1}(t,["next","error","complete"])}class hg{constructor(){this._progressObserver={},this._taskCompletionResolver=new ts,this._lastProgress={taskState:"Running",totalBytes:0,totalDocuments:0,bytesLoaded:0,documentsLoaded:0}}onProgress(t,e,n){this._progressObserver={next:t,error:e,complete:n}}catch(t){return this._taskCompletionResolver.promise.catch(t)}then(t,e){return this._taskCompletionResolver.promise.then(t,e)}_completeWith(t){this._updateProgress(t),this._progressObserver.complete&&this._progressObserver.complete(),this._taskCompletionResolver.resolve(t)}_failWith(t){this._lastProgress.taskState="Error",this._progressObserver.next&&this._progressObserver.next(this._lastProgress),this._progressObserver.error&&this._progressObserver.error(t),this._taskCompletionResolver.reject(t)}_updateProgress(t){this._lastProgress=t,this._progressObserver.next&&this._progressObserver.next(t)}}const dg=-1;class fg extends Zf{constructor(t,e,n,r){super(t,e,n,r),this.type="firestore",this._queue=new cg,this._persistenceKey=(null==r?void 0:r.name)||"[DEFAULT]"}_terminate(){return this._firestoreClient||yg(this),this._firestoreClient.terminate()}}function gg(t,e,n){n||(n="(default)");const r=i._getProvider(t,"firestore");if(r.isInitialized(n)){const t=r.getImmediate({identifier:n});if(y(r.getOptions(n),e))return t;throw new Zr(Jr.FAILED_PRECONDITION,"initializeFirestore() has already been called with different options. To avoid this error, call initializeFirestore() with the same options as when it was originally called, or call getFirestore() to return the already initialized instance.")}if(void 0!==e.cacheSizeBytes&&void 0!==e.localCache)throw new Zr(Jr.INVALID_ARGUMENT,"cache and cacheSizeBytes cannot be specified at the same time as cacheSizeBytes willbe deprecated. Instead, specify the cache size in the cache object");if(void 0!==e.cacheSizeBytes&&-1!==e.cacheSizeBytes&&e.cacheSizeBytes<1048576)throw new Zr(Jr.INVALID_ARGUMENT,"cacheSizeBytes must be at least 1048576");return r.initialize({options:e,instanceIdentifier:n})}function mg(t,e){const n="object"==typeof t?t:i.getApp(),r="string"==typeof t?t:e||"(default)",s=i._getProvider(n,"firestore").getImmediate({identifier:r});if(!s._initialized){const t=(t=>{const e=(t=>{var e,n;return null===(n=null===(e=h())||void 0===e?void 0:e.emulatorHosts)||void 0===n?void 0:n[t]})(t);if(!e)return;const n=e.lastIndexOf(":");if(n<=0||n+1===e.length)throw new Error(`Invalid host ${e} with no separate hostname and port!`);const r=parseInt(e.substring(n+1),10);return"["===e[0]?[e.substring(1,n-1),r]:[e.substring(0,n),r]})("firestore");t&&tg(s,...t)}return s}function pg(t){return t._firestoreClient||yg(t),t._firestoreClient.verifyNotTerminated(),t._firestoreClient}function yg(t){var e,n,r;const s=t._freezeSettings(),i=function(t,e,n,r){return new Qi(t,e,n,r.host,r.ssl,r.experimentalForceLongPolling,r.experimentalAutoDetectLongPolling,Gf(r.experimentalLongPollingOptions),r.useFetchStreams)}(t._databaseId,(null===(e=t._app)||void 0===e?void 0:e.options.appId)||"",t._persistenceKey,s);t._firestoreClient=new Af(t._authCredentials,t._appCheckCredentials,t._queue,i),(null===(n=s.localCache)||void 0===n?void 0:n._offlineComponentProvider)&&(null===(r=s.localCache)||void 0===r?void 0:r._onlineComponentProvider)&&(t._firestoreClient._uninitializedComponentsProvider={_offlineKind:s.localCache.kind,_offline:s.localCache._offlineComponentProvider,_online:s.localCache._onlineComponentProvider})}function wg(t,e){Dg(t=Yf(t,fg));const n=pg(t);if(n._uninitializedComponentsProvider)throw new Zr(Jr.FAILED_PRECONDITION,"SDK cache is already specified.");$r("enableIndexedDbPersistence() will be deprecated in the future, you can use `FirestoreSettings.cache` instead.");const r=t._freezeSettings(),s=new Ef;return bg(n,s,new _f(s,r.cacheSizeBytes,null==e?void 0:e.forceOwnership))}function vg(t){Dg(t=Yf(t,fg));const e=pg(t);if(e._uninitializedComponentsProvider)throw new Zr(Jr.FAILED_PRECONDITION,"SDK cache is already specified.");$r("enableMultiTabIndexedDbPersistence() will be deprecated in the future, you can use `FirestoreSettings.cache` instead.");const n=t._freezeSettings(),r=new Ef;return bg(e,r,new If(r,n.cacheSizeBytes))}function bg(t,e,n){const r=new ts;return t.asyncQueue.enqueue((async()=>{try{await Nf(t,n),await kf(t,e),r.resolve()}catch(t){const e=t;if(!Rf(e))throw e;$r("Error enabling indexeddb cache. Falling back to memory cache: "+e),r.reject(e)}})).then((()=>r.promise))}function _g(t){if(t._initialized&&!t._terminated)throw new Zr(Jr.FAILED_PRECONDITION,"Persistence can only be cleared before a Firestore instance is initialized or after it is terminated.");const e=new ts;return t._queue.enqueueAndForgetEvenWhileRestricted((async()=>{try{await async function(t){if(!Vs.D())return Promise.resolve();const e=t+"main";await Vs.delete(e)}(nh(t._databaseId,t._persistenceKey)),e.resolve()}catch(t){e.reject(t)}})),e.promise}function Ig(t){return function(t){const e=new ts;return t.asyncQueue.enqueueAndForget((async()=>async function(t,e){const n=Xr(t);ed(n.remoteStore)||jr("SyncEngine","The network is disabled. The task returned by 'awaitPendingWrites()' will not complete until the network is enabled.");try{const t=await function(t){const e=Xr(t);return e.persistence.runTransaction("Get highest unacknowledged batch id","readonly",(t=>e.mutationQueue.getHighestUnacknowledgedBatchId(t)))}(n.localStore);if(-1===t)return void e.resolve();const r=n.Ca.get(t)||[];r.push(e),n.Ca.set(t,r)}catch(t){const n=Id(t,"Initialization of waitForPendingWrites() operation failed");e.reject(n)}}(await Vf(t),e))),e.promise}(pg(t=Yf(t,fg)))}function Eg(t){return function(t){return t.asyncQueue.enqueue((async()=>{const e=await Of(t),n=await Ff(t);return e.setNetworkEnabled(!0),function(t){const e=Xr(t);return e.v_.delete(0),Qh(e)}(n)}))}(pg(t=Yf(t,fg)))}function Tg(t){return function(t){return t.asyncQueue.enqueue((async()=>{const e=await Of(t),n=await Ff(t);return e.setNetworkEnabled(!1),async function(t){const e=Xr(t);e.v_.add(0),await Hh(e),e.x_.set("Offline")}(n)}))}(pg(t=Yf(t,fg)))}function Sg(t){return i._removeServiceInstance(t.app,"firestore",t._databaseId.database),t._delete()}function xg(t,e){const n=pg(t=Yf(t,fg)),r=new hg;return function(t,e,n,r){const s=function(t,e){let n;return n="string"==typeof t?wu().encode(t):t,function(t,e){return new xf(t,e)}(function(t,e){if(t instanceof Uint8Array)return Tf(t,e);if(t instanceof ArrayBuffer)return Tf(new Uint8Array(t),e);if(t instanceof ReadableStream)return t.getReader();throw new Error("Source of `toByteStreamReader` has to be a ArrayBuffer or ReadableStream")}(n),e)}(n,qh(e));t.asyncQueue.enqueueAndForget((async()=>{!function(t,e,n){const r=Xr(t);(async function(t,e,n){try{const r=await e.getMetadata();if(await function(t,e){const n=Xr(t),r=Uu(e.createTime);return n.persistence.runTransaction("hasNewerBundle","readonly",(t=>n.$r.getBundleMetadata(t,e.id))).then((t=>!!t&&t.createTime.compareTo(r)>=0))}(t.localStore,r))return await e.close(),n._completeWith(function(t){return{taskState:"Success",documentsLoaded:t.totalDocuments,bytesLoaded:t.totalBytes,totalDocuments:t.totalDocuments,totalBytes:t.totalBytes}}(r)),Promise.resolve(new Set);n._updateProgress(Fd(r));const s=new Pd(r,t.localStore,e.serializer);let i=await e.Oa();for(;i;){const t=await s.na(i);t&&n._updateProgress(t),i=await e.Oa()}const o=await s.complete();return await of(t,o.sa,void 0),await function(t,e){const n=Xr(t);return n.persistence.runTransaction("Save bundle","readwrite",(t=>n.$r.saveBundleMetadata(t,e)))}(t.localStore,r),n._completeWith(o.progress),Promise.resolve(o.ia)}catch(t){return $r("SyncEngine",`Loading bundle failed with ${t}`),n._failWith(t),Promise.resolve(new Set)}})(r,e,n).then((t=>{r.sharedClientState.notifyBundleLoaded(t)}))}(await Vf(t),s,r)}))}(n,t._databaseId,e,r),r}function Cg(t,e){return function(t,e){return t.asyncQueue.enqueue((async()=>function(t,e){const n=Xr(t);return n.persistence.runTransaction("Get named query","readonly",(t=>n.$r.getNamedQuery(t,e)))}(await Pf(t),e)))}(pg(t=Yf(t,fg)),e).then((e=>e?new eg(t,null,e.query):null))}function Dg(t){if(t._initialized||t._terminated)throw new Zr(Jr.FAILED_PRECONDITION,"Firestore has already been started and persistence can no longer be enabled. You can only enable persistence before calling any other methods on a Firestore object.")}class Ag{constructor(t="count",e){this._internalFieldPath=e,this.type="AggregateField",this.aggregateType=t}}class Ng{constructor(t,e,n){this._userDataWriter=e,this._data=n,this.type="AggregateQuerySnapshot",this.query=t}data(){return this._userDataWriter.convertObjectMap(this._data)}}class kg{constructor(t){this._byteString=t}static fromBase64String(t){try{return new kg(qi.fromBase64String(t))}catch(t){throw new Zr(Jr.INVALID_ARGUMENT,"Failed to construct data from Base64 string: "+t)}}static fromUint8Array(t){return new kg(qi.fromUint8Array(t))}toBase64(){return this._byteString.toBase64()}toUint8Array(){return this._byteString.toUint8Array()}toString(){return"Bytes(base64: "+this.toBase64()+")"}isEqual(t){return this._byteString.isEqual(t._byteString)}}class Rg{constructor(...t){for(let e=0;e90)throw new Zr(Jr.INVALID_ARGUMENT,"Latitude must be a number between -90 and 90, but was: "+t);if(!isFinite(e)||e<-180||e>180)throw new Zr(Jr.INVALID_ARGUMENT,"Longitude must be a number between -180 and 180, but was: "+e);this._lat=t,this._long=e}get latitude(){return this._lat}get longitude(){return this._long}isEqual(t){return this._lat===t._lat&&this._long===t._long}toJSON(){return{latitude:this._lat,longitude:this._long}}_compareTo(t){return ds(this._lat,t._lat)||ds(this._long,t._long)}}const Pg=/^__.*__$/;class Fg{constructor(t,e,n){this.data=t,this.fieldMask=e,this.fieldTransforms=n}toMutation(t,e){return null!==this.fieldMask?new nu(t,this.data,this.fieldMask,e,this.fieldTransforms):new eu(t,this.data,e,this.fieldTransforms)}}class Vg{constructor(t,e,n){this.data=t,this.fieldMask=e,this.fieldTransforms=n}toMutation(t,e){return new nu(t,this.data,this.fieldMask,e,this.fieldTransforms)}}function qg(t){switch(t){case 0:case 2:case 1:return!0;case 3:case 4:return!1;default:throw Hr()}}class Bg{constructor(t,e,n,r,s,i){this.settings=t,this.databaseId=e,this.serializer=n,this.ignoreUndefinedProperties=r,void 0===s&&this.Eu(),this.fieldTransforms=s||[],this.fieldMask=i||[]}get path(){return this.settings.path}get du(){return this.settings.du}Au(t){return new Bg(Object.assign(Object.assign({},this.settings),t),this.databaseId,this.serializer,this.ignoreUndefinedProperties,this.fieldTransforms,this.fieldMask)}Ru(t){var e;const n=null===(e=this.path)||void 0===e?void 0:e.child(t),r=this.Au({path:n,Vu:!1});return r.mu(t),r}fu(t){var e;const n=null===(e=this.path)||void 0===e?void 0:e.child(t),r=this.Au({path:n,Vu:!1});return r.Eu(),r}gu(t){return this.Au({path:void 0,Vu:!0})}pu(t){return om(t,this.settings.methodName,this.settings.yu||!1,this.path,this.settings.wu)}contains(t){return void 0!==this.fieldMask.find((e=>t.isPrefixOf(e)))||void 0!==this.fieldTransforms.find((e=>t.isPrefixOf(e.field)))}Eu(){if(this.path)for(let t=0;tu.covers(t.field)))}else u=null,c=o.fieldTransforms;return new Fg(new wo(a),u,c)}class jg extends Lg{_toFieldTransform(t){if(2!==t.du)throw 1===t.du?t.pu(`${this._methodName}() can only appear at the top level of your update data`):t.pu(`${this._methodName}() cannot be used with set() unless you pass {merge:true}`);return t.fieldMask.push(t.path),null}isEqual(t){return t instanceof jg}}function Kg(t,e,n){return new Bg({du:3,wu:e.settings.wu,methodName:t._methodName,Vu:n},e.databaseId,e.serializer,e.ignoreUndefinedProperties)}class $g extends Lg{_toFieldTransform(t){return new Ka(t.path,new Fa)}isEqual(t){return t instanceof $g}}class Qg extends Lg{constructor(t,e){super(t),this.bu=e}_toFieldTransform(t){const e=Kg(this,t,!0),n=this.bu.map((t=>Zg(t,e))),r=new Va(n);return new Ka(t.path,r)}isEqual(t){return t instanceof Qg&&y(this.bu,t.bu)}}class Hg extends Lg{constructor(t,e){super(t),this.bu=e}_toFieldTransform(t){const e=Kg(this,t,!0),n=this.bu.map((t=>Zg(t,e))),r=new Ba(n);return new Ka(t.path,r)}isEqual(t){return t instanceof Hg&&y(this.bu,t.bu)}}class Wg extends Lg{constructor(t,e){super(t),this.Du=e}_toFieldTransform(t){const e=new za(t.serializer,Ra(t.serializer,this.Du));return new Ka(t.path,e)}isEqual(t){return t instanceof Wg&&this.Du===t.Du}}function Yg(t,e,n,r){const s=t.Su(1,e,n);nm("Data must be an object, but it was:",s,r);const i=[],o=wo.empty();Di(r,((t,r)=>{const a=im(e,t,n);r=v(r);const u=s.fu(a);if(r instanceof jg)i.push(a);else{const t=Zg(r,u);null!=t&&(i.push(a),o.set(a,t))}}));const a=new Pi(i);return new Vg(o,a,s.fieldTransforms)}function Xg(t,e,n,r,s,i){const o=t.Su(1,e,n),a=[rm(e,r,n)],u=[s];if(i.length%2!=0)throw new Zr(Jr.INVALID_ARGUMENT,`Function ${e}() needs to be called with an even number of arguments that alternate between field names and values.`);for(let t=0;t=0;--t)if(!am(c,a[t])){const e=a[t];let n=u[t];n=v(n);const r=o.fu(e);if(n instanceof jg)c.push(e);else{const t=Zg(n,r);null!=t&&(c.push(e),l.set(e,t))}}const h=new Pi(c);return new Vg(l,h,o.fieldTransforms)}function Jg(t,e,n,r=!1){return Zg(n,t.Su(r?4:3,e))}function Zg(t,e){if(em(t=v(t)))return nm("Unsupported field value:",e,t),tm(t,e);if(t instanceof Lg)return function(t,e){if(!qg(e.du))throw e.pu(`${t._methodName}() can only be used with update() and set()`);if(!e.path)throw e.pu(`${t._methodName}() is not currently supported inside arrays`);const n=t._toFieldTransform(e);n&&e.fieldTransforms.push(n)}(t,e),null;if(void 0===t&&e.ignoreUndefinedProperties)return null;if(e.path&&e.fieldMask.push(e.path),t instanceof Array){if(e.settings.Vu&&4!==e.du)throw e.pu("Nested arrays are not supported");return function(t,e){const n=[];let r=0;for(const s of t){let t=Zg(s,e.gu(r));null==t&&(t={nullValue:"NULL_VALUE"}),n.push(t),r++}return{arrayValue:{values:n}}}(t,e)}return function(t,e){if(null===(t=v(t)))return{nullValue:"NULL_VALUE"};if("number"==typeof t)return Ra(e.serializer,t);if("boolean"==typeof t)return{booleanValue:t};if("string"==typeof t)return{stringValue:t};if(t instanceof Date){const n=ms.fromDate(t);return{timestampValue:Vu(e.serializer,n)}}if(t instanceof ms){const n=new ms(t.seconds,1e3*Math.floor(t.nanoseconds/1e3));return{timestampValue:Vu(e.serializer,n)}}if(t instanceof Og)return{geoPointValue:{latitude:t.latitude,longitude:t.longitude}};if(t instanceof kg)return{bytesValue:qu(e.serializer,t._byteString)};if(t instanceof ng){const n=e.databaseId,r=t.firestore._databaseId;if(!r.isEqual(n))throw e.pu(`Document reference is for database ${r.projectId}/${r.database} but should be for database ${n.projectId}/${n.database}`);return{referenceValue:zu(t.firestore._databaseId||e.databaseId,t._key.path)}}throw e.pu(`Unsupported field value: ${Wf(t)}`)}(t,e)}function tm(t,e){const n={};return Ai(t)?e.path&&e.path.length>0&&e.fieldMask.push(e.path):Di(t,((t,r)=>{const s=Zg(r,e.Ru(t));null!=s&&(n[t]=s)})),{mapValue:{fields:n}}}function em(t){return!("object"!=typeof t||null===t||t instanceof Array||t instanceof Date||t instanceof ms||t instanceof Og||t instanceof kg||t instanceof ng||t instanceof Lg)}function nm(t,e,n){if(!em(n)||!function(t){return"object"==typeof t&&null!==t&&(Object.getPrototypeOf(t)===Object.prototype||null===Object.getPrototypeOf(t))}(n)){const r=Wf(n);throw"an object"===r?e.pu(t+" a custom object"):e.pu(t+" "+r)}}function rm(t,e,n){if((e=v(e))instanceof Rg)return e._internalPath;if("string"==typeof e)return im(t,e);throw om("Field path arguments must be of type string or ",t,!1,void 0,n)}const sm=new RegExp("[~\\*/\\[\\]]");function im(t,e,n){if(e.search(sm)>=0)throw om(`Invalid field path (${e}). Paths must not contain '~', '*', '/', '[', or ']'`,t,!1,void 0,n);try{return new Rg(...e.split("."))._internalPath}catch(r){throw om(`Invalid field path (${e}). Paths must not be empty, begin with '.', end with '.', or contain '..'`,t,!1,void 0,n)}}function om(t,e,n,r,s){const i=r&&!r.isEmpty(),o=void 0!==s;let a=`Function ${e}() called with invalid data`;n&&(a+=" (via `toFirestore()`)"),a+=". ";let u="";return(i||o)&&(u+=" (found",i&&(u+=` in field ${r}`),o&&(u+=` in document ${s}`),u+=")"),new Zr(Jr.INVALID_ARGUMENT,a+t+u)}function am(t,e){return t.some((t=>t.isEqual(e)))}class um{constructor(t,e,n,r,s){this._firestore=t,this._userDataWriter=e,this._key=n,this._document=r,this._converter=s}get id(){return this._key.path.lastSegment()}get ref(){return new ng(this._firestore,this._converter,this._key)}exists(){return null!==this._document}data(){if(this._document){if(this._converter){const t=new cm(this._firestore,this._userDataWriter,this._key,this._document,null);return this._converter.fromFirestore(t)}return this._userDataWriter.convertValue(this._document.data.value)}}get(t){if(this._document){const e=this._document.data.field(lm("DocumentSnapshot.get",t));if(null!==e)return this._userDataWriter.convertValue(e)}}}class cm extends um{data(){return super.data()}}function lm(t,e){return"string"==typeof e?im(t,e):e instanceof Rg?e._internalPath:e._delegate._internalPath}function hm(t){if("L"===t.limitType&&0===t.explicitOrderBy.length)throw new Zr(Jr.UNIMPLEMENTED,"limitToLast() queries require specifying at least one orderBy() clause")}class dm{}class fm extends dm{}function gm(t,e,...n){let r=[];e instanceof dm&&r.push(e),r=r.concat(n),function(t){const e=t.filter((t=>t instanceof ym)).length,n=t.filter((t=>t instanceof mm)).length;if(e>1||e>0&&n>0)throw new Zr(Jr.INVALID_ARGUMENT,"InvalidQuery. When using composite filters, you cannot use more than one filter at the top level. Consider nesting the multiple filters within an `and(...)` statement. For example: change `query(query, where(...), or(...))` to `query(query, and(where(...), or(...)))`.")}(r);for(const e of r)t=e._apply(t);return t}class mm extends fm{constructor(t,e,n){super(),this._field=t,this._op=e,this._value=n,this.type="where"}static _create(t,e,n){return new mm(t,e,n)}_apply(t){const e=this._parse(t);return Lm(t._query,e),new eg(t.firestore,t.converter,aa(t._query,e))}_parse(t){const e=zg(t.firestore),n=function(t,e,n,r,s,i,o){let a;if(s.isKeyField()){if("array-contains"===i||"array-contains-any"===i)throw new Zr(Jr.INVALID_ARGUMENT,`Invalid Query. You can't perform '${i}' queries on documentId().`);if("in"===i||"not-in"===i){Mm(o,i);const e=[];for(const n of o)e.push(Rm(r,t,n));a={arrayValue:{values:e}}}else a=Rm(r,t,o)}else"in"!==i&&"not-in"!==i&&"array-contains-any"!==i||Mm(o,i),a=Jg(n,e,o,"in"===i||"not-in"===i);return Co.create(s,i,a)}(t._query,"where",e,t.firestore._databaseId,this._field,this._op,this._value);return n}}function pm(t,e,n){const r=e,s=lm("where",t);return mm._create(s,r,n)}class ym extends dm{constructor(t,e){super(),this.type=t,this._queryConstraints=e}static _create(t,e){return new ym(t,e)}_parse(t){const e=this._queryConstraints.map((e=>e._parse(t))).filter((t=>t.getFilters().length>0));return 1===e.length?e[0]:Do.create(e,this._getOperator())}_apply(t){const e=this._parse(t);return 0===e.getFilters().length?t:(function(t,e){let n=t;const r=e.getFlattenedFilters();for(const t of r)Lm(n,t),n=aa(n,t)}(t._query,e),new eg(t.firestore,t.converter,aa(t._query,e)))}_getQueryConstraints(){return this._queryConstraints}_getOperator(){return"and"===this.type?"and":"or"}}function wm(...t){return t.forEach((t=>Om("or",t))),ym._create("or",t)}function vm(...t){return t.forEach((t=>Om("and",t))),ym._create("and",t)}class bm extends fm{constructor(t,e){super(),this._field=t,this._direction=e,this.type="orderBy"}static _create(t,e){return new bm(t,e)}_apply(t){const e=function(t,e,n){if(null!==t.startAt)throw new Zr(Jr.INVALID_ARGUMENT,"Invalid query. You must not call startAt() or startAfter() before calling orderBy().");if(null!==t.endAt)throw new Zr(Jr.INVALID_ARGUMENT,"Invalid query. You must not call endAt() or endBefore() before calling orderBy().");return new To(e,n)}(t._query,this._field,this._direction);return new eg(t.firestore,t.converter,function(t,e){const n=t.explicitOrderBy.concat([e]);return new Zo(t.path,t.collectionGroup,n,t.filters.slice(),t.limit,t.limitType,t.startAt,t.endAt)}(t._query,e))}}function _m(t,e="asc"){const n=e,r=lm("orderBy",t);return bm._create(r,n)}class Im extends fm{constructor(t,e,n){super(),this.type=t,this._limit=e,this._limitType=n}static _create(t,e,n){return new Im(t,e,n)}_apply(t){return new eg(t.firestore,t.converter,ua(t._query,this._limit,this._limitType))}}function Em(t){return Xf("limit",t),Im._create("limit",t,"F")}function Tm(t){return Xf("limitToLast",t),Im._create("limitToLast",t,"L")}class Sm extends fm{constructor(t,e,n){super(),this.type=t,this._docOrFields=e,this._inclusive=n}static _create(t,e,n){return new Sm(t,e,n)}_apply(t){const e=km(t,this.type,this._docOrFields,this._inclusive);return new eg(t.firestore,t.converter,function(t,e){return new Zo(t.path,t.collectionGroup,t.explicitOrderBy.slice(),t.filters.slice(),t.limit,t.limitType,e,t.endAt)}(t._query,e))}}function xm(...t){return Sm._create("startAt",t,!0)}function Cm(...t){return Sm._create("startAfter",t,!1)}class Dm extends fm{constructor(t,e,n){super(),this.type=t,this._docOrFields=e,this._inclusive=n}static _create(t,e,n){return new Dm(t,e,n)}_apply(t){const e=km(t,this.type,this._docOrFields,this._inclusive);return new eg(t.firestore,t.converter,function(t,e){return new Zo(t.path,t.collectionGroup,t.explicitOrderBy.slice(),t.filters.slice(),t.limit,t.limitType,t.startAt,e)}(t._query,e))}}function Am(...t){return Dm._create("endBefore",t,!1)}function Nm(...t){return Dm._create("endAt",t,!0)}function km(t,e,n,r){if(n[0]=v(n[0]),n[0]instanceof um)return function(t,e,n,r,s){if(!r)throw new Zr(Jr.NOT_FOUND,`Can't use a DocumentSnapshot that doesn't exist for ${n}().`);const i=[];for(const n of sa(t))if(n.field.isKeyField())i.push(io(e,r.key));else{const t=r.data.field(n.field);if(ji(t))throw new Zr(Jr.INVALID_ARGUMENT,'Invalid query. You are trying to start or end a query using a document for which the field "'+n.field+'" is an uncommitted server timestamp. (Since the value of this field is unknown, you cannot start/end a query with it.)');if(null===t){const t=n.field.canonicalString();throw new Zr(Jr.INVALID_ARGUMENT,`Invalid query. You are trying to start or end a query using a document for which the field '${t}' (used as the orderBy) does not exist.`)}i.push(t)}return new _o(i,s)}(t._query,t.firestore._databaseId,e,n[0]._document,r);{const s=zg(t.firestore);return function(t,e,n,r,s,i){const o=t.explicitOrderBy;if(s.length>o.length)throw new Zr(Jr.INVALID_ARGUMENT,`Too many arguments provided to ${r}(). The number of arguments must be less than or equal to the number of orderBy() clauses`);const a=[];for(let i=0;i=0)return t.op;return null}(t.filters,function(t){switch(t){case"!=":return["!=","not-in"];case"array-contains-any":case"in":return["not-in"];case"not-in":return["array-contains-any","in","not-in","!="];default:return[]}}(e.op));if(null!==n)throw n===e.op?new Zr(Jr.INVALID_ARGUMENT,`Invalid query. You cannot use more than one '${e.op.toString()}' filter.`):new Zr(Jr.INVALID_ARGUMENT,`Invalid query. You cannot use '${e.op.toString()}' filters with '${n.toString()}' filters.`)}function Om(t,e){if(!(e instanceof mm||e instanceof ym))throw new Zr(Jr.INVALID_ARGUMENT,`Function ${t}() requires AppliableConstraints created with a call to 'where(...)', 'or(...)', or 'and(...)'.`)}class Pm{convertValue(t,e="none"){switch(Xi(t)){case 0:return null;case 1:return t.booleanValue;case 2:return zi(t.integerValue||t.doubleValue);case 3:return this.convertTimestamp(t.timestampValue);case 4:return this.convertServerTimestamp(t,e);case 5:return t.stringValue;case 6:return this.convertBytes(Gi(t.bytesValue));case 7:return this.convertReference(t.referenceValue);case 8:return this.convertGeoPoint(t.geoPointValue);case 9:return this.convertArray(t.arrayValue,e);case 10:return this.convertObject(t.mapValue,e);default:throw Hr()}}convertObject(t,e){return this.convertObjectMap(t.fields,e)}convertObjectMap(t,e="none"){const n={};return Di(t,((t,r)=>{n[t]=this.convertValue(r,e)})),n}convertGeoPoint(t){return new Og(zi(t.latitude),zi(t.longitude))}convertArray(t,e){return(t.values||[]).map((t=>this.convertValue(t,e)))}convertServerTimestamp(t,e){switch(e){case"previous":const n=Ki(t);return null==n?null:this.convertValue(n,e);case"estimate":return this.convertTimestamp($i(t));default:return null}}convertTimestamp(t){const e=Ui(t);return new ms(e.seconds,e.nanos)}convertDocumentKey(t,e){const n=ws.fromString(t);Wr(dc(n));const r=new Hi(n.get(1),n.get(3)),s=new _s(n.popFirst(5));return r.isEqual(e)||Kr(`Document ${s} contains a document reference within a different database (${r.projectId}/${r.database}) which is not supported. It will be treated as a reference in the current database (${e.projectId}/${e.database}) instead.`),s}}function Fm(t,e,n){let r;return r=t?n&&(n.merge||n.mergeFields)?t.toFirestore(e,n):t.toFirestore(e):e,r}class Vm extends Pm{constructor(t){super(),this.firestore=t}convertBytes(t){return new kg(t)}convertReference(t){const e=this.convertDocumentKey(t,this.firestore._databaseId);return new ng(this.firestore,null,e)}}function qm(t){return new Ag("sum",rm("sum",t))}function Bm(t){return new Ag("avg",rm("average",t))}function Um(){return new Ag("count")}function zm(t,e){var n,r;return t instanceof Ag&&e instanceof Ag&&t.aggregateType===e.aggregateType&&(null===(n=t._internalFieldPath)||void 0===n?void 0:n.canonicalString())===(null===(r=e._internalFieldPath)||void 0===r?void 0:r.canonicalString())}function Gm(t,e){return ug(t.query,e.query)&&y(t.data(),e.data())}class jm{constructor(t,e){this.hasPendingWrites=t,this.fromCache=e}isEqual(t){return this.hasPendingWrites===t.hasPendingWrites&&this.fromCache===t.fromCache}}class Km extends um{constructor(t,e,n,r,s,i){super(t,e,n,r,i),this._firestore=t,this._firestoreImpl=t,this.metadata=s}exists(){return super.exists()}data(t={}){if(this._document){if(this._converter){const e=new $m(this._firestore,this._userDataWriter,this._key,this._document,this.metadata,null);return this._converter.fromFirestore(e,t)}return this._userDataWriter.convertValue(this._document.data.value,t.serverTimestamps)}}get(t,e={}){if(this._document){const n=this._document.data.field(lm("DocumentSnapshot.get",t));if(null!==n)return this._userDataWriter.convertValue(n,e.serverTimestamps)}}}class $m extends Km{data(t={}){return super.data(t)}}class Qm{constructor(t,e,n,r){this._firestore=t,this._userDataWriter=e,this._snapshot=r,this.metadata=new jm(r.hasPendingWrites,r.fromCache),this.query=n}get docs(){const t=[];return this.forEach((e=>t.push(e))),t}get size(){return this._snapshot.docs.size}get empty(){return 0===this.size}forEach(t,e){this._snapshot.docs.forEach((n=>{t.call(e,new $m(this._firestore,this._userDataWriter,n.key,n,new jm(this._snapshot.mutatedKeys.has(n.key),this._snapshot.fromCache),this.query.converter))}))}docChanges(t={}){const e=!!t.includeMetadataChanges;if(e&&this._snapshot.excludesMetadataChanges)throw new Zr(Jr.INVALID_ARGUMENT,"To include metadata changes with your document changes, you must also pass { includeMetadataChanges:true } to onSnapshot().");return this._cachedChanges&&this._cachedChangesIncludeMetadataChanges===e||(this._cachedChanges=function(t,e){if(t._snapshot.oldDocs.isEmpty()){let e=0;return t._snapshot.docChanges.map((n=>{const r=new $m(t._firestore,t._userDataWriter,n.doc.key,n.doc,new jm(t._snapshot.mutatedKeys.has(n.doc.key),t._snapshot.fromCache),t.query.converter);return n.doc,{type:"added",doc:r,oldIndex:-1,newIndex:e++}}))}{let n=t._snapshot.oldDocs;return t._snapshot.docChanges.filter((t=>e||3!==t.type)).map((e=>{const r=new $m(t._firestore,t._userDataWriter,e.doc.key,e.doc,new jm(t._snapshot.mutatedKeys.has(e.doc.key),t._snapshot.fromCache),t.query.converter);let s=-1,i=-1;return 0!==e.type&&(s=n.indexOf(e.doc.key),n=n.delete(e.doc.key)),1!==e.type&&(n=n.add(e.doc),i=n.indexOf(e.doc.key)),{type:Hm(e.type),doc:r,oldIndex:s,newIndex:i}}))}}(this,e),this._cachedChangesIncludeMetadataChanges=e),this._cachedChanges}}function Hm(t){switch(t){case 0:return"added";case 2:case 3:return"modified";case 1:return"removed";default:return Hr()}}function Wm(t,e){return t instanceof Km&&e instanceof Km?t._firestore===e._firestore&&t._key.isEqual(e._key)&&(null===t._document?null===e._document:t._document.isEqual(e._document))&&t._converter===e._converter:t instanceof Qm&&e instanceof Qm&&t._firestore===e._firestore&&ug(t.query,e.query)&&t.metadata.isEqual(e.metadata)&&t._snapshot.isEqual(e._snapshot)}function Ym(t){t=Yf(t,ng);const e=Yf(t.firestore,fg);return Uf(pg(e),t._key).then((n=>lp(e,t,n)))}class Xm extends Pm{constructor(t){super(),this.firestore=t}convertBytes(t){return new kg(t)}convertReference(t){const e=this.convertDocumentKey(t,this.firestore._databaseId);return new ng(this.firestore,null,e)}}function Jm(t){t=Yf(t,ng);const e=Yf(t.firestore,fg),n=pg(e),r=new Xm(e);return function(t,e){const n=new ts;return t.asyncQueue.enqueueAndForget((async()=>async function(t,e,n){try{const r=await function(t,e){const n=Xr(t);return n.persistence.runTransaction("read document","readonly",(t=>n.localDocuments.getDocument(t,e)))}(t,e);r.isFoundDocument()?n.resolve(r):r.isNoDocument()?n.resolve(null):n.reject(new Zr(Jr.UNAVAILABLE,"Failed to get document from cache. (However, this document may exist on the server. Run again without setting 'source' in the GetOptions to attempt to retrieve the document from the server.)"))}catch(t){const r=Id(t,`Failed to get document '${e} from cache`);n.reject(r)}}(await Pf(t),e,n))),n.promise}(n,t._key).then((n=>new Km(e,r,t._key,n,new jm(null!==n&&n.hasLocalMutations,!0),t.converter)))}function Zm(t){t=Yf(t,ng);const e=Yf(t.firestore,fg);return Uf(pg(e),t._key,{source:"server"}).then((n=>lp(e,t,n)))}function tp(t){t=Yf(t,eg);const e=Yf(t.firestore,fg),n=pg(e),r=new Xm(e);return hm(t._query),zf(n,t._query).then((n=>new Qm(e,r,t,n)))}function ep(t){t=Yf(t,eg);const e=Yf(t.firestore,fg),n=pg(e),r=new Xm(e);return function(t,e){const n=new ts;return t.asyncQueue.enqueueAndForget((async()=>async function(t,e,n){try{const r=await gh(t,e,!0),s=new Bd(e,r.hs),i=s.ha(r.documents),o=s.applyChanges(i,!1);n.resolve(o.snapshot)}catch(t){const r=Id(t,`Failed to execute query '${e} against cache`);n.reject(r)}}(await Pf(t),e,n))),n.promise}(n,t._query).then((n=>new Qm(e,r,t,n)))}function np(t){t=Yf(t,eg);const e=Yf(t.firestore,fg),n=pg(e),r=new Xm(e);return zf(n,t._query,{source:"server"}).then((n=>new Qm(e,r,t,n)))}function rp(t,e,n){t=Yf(t,ng);const r=Yf(t.firestore,fg),s=Fm(t.converter,e,n);return cp(r,[Gg(zg(r),"setDoc",t._key,s,null!==t.converter,n).toMutation(t._key,Qa.none())])}function sp(t,e,n,...r){t=Yf(t,ng);const s=Yf(t.firestore,fg),i=zg(s);let o;return o="string"==typeof(e=v(e))||e instanceof Rg?Xg(i,"updateDoc",t._key,e,n,r):Yg(i,"updateDoc",t._key,e),cp(s,[o.toMutation(t._key,Qa.exists(!0))])}function ip(t){return cp(Yf(t.firestore,fg),[new ou(t._key,Qa.none())])}function op(t,e){const n=Yf(t.firestore,fg),r=og(t),s=Fm(t.converter,e);return cp(n,[Gg(zg(t.firestore),"addDoc",r._key,s,null!==t.converter,{}).toMutation(r._key,Qa.exists(!1))]).then((()=>r))}function ap(t,...e){var n,r,s;t=v(t);let i={includeMetadataChanges:!1},o=0;"object"!=typeof e[o]||lg(e[o])||(i=e[o],o++);const a={includeMetadataChanges:i.includeMetadataChanges};if(lg(e[o])){const t=e[o];e[o]=null===(n=t.next)||void 0===n?void 0:n.bind(t),e[o+1]=null===(r=t.error)||void 0===r?void 0:r.bind(t),e[o+2]=null===(s=t.complete)||void 0===s?void 0:s.bind(t)}let u,c,l;if(t instanceof ng)c=Yf(t.firestore,fg),l=ea(t._key.path),u={next:n=>{e[o]&&e[o](lp(c,t,n))},error:e[o+1],complete:e[o+2]};else{const n=Yf(t,eg);c=Yf(n.firestore,fg),l=n._query;const r=new Xm(c);u={next:t=>{e[o]&&e[o](new Qm(c,r,n,t))},error:e[o+1],complete:e[o+2]},hm(t._query)}return function(t,e,n,r){const s=new Sf(r),i=new Md(e,s,n);return t.asyncQueue.enqueueAndForget((async()=>Dd(await Bf(t),i))),()=>{s.La(),t.asyncQueue.enqueueAndForget((async()=>Ad(await Bf(t),i)))}}(pg(c),l,a,u)}function up(t,e){return function(t,e){const n=new Sf(e);return t.asyncQueue.enqueueAndForget((async()=>function(t,e){Xr(t).K_.add(e),e.next()}(await Bf(t),n))),()=>{n.La(),t.asyncQueue.enqueueAndForget((async()=>function(t,e){Xr(t).K_.delete(e)}(await Bf(t),n)))}}(pg(t=Yf(t,fg)),lg(e)?e:{next:e})}function cp(t,e){return function(t,e){const n=new ts;return t.asyncQueue.enqueueAndForget((async()=>async function(t,e,n){const r=wf(t);try{const t=await function(t,e){const n=Xr(t),r=ms.now(),s=e.reduce(((t,e)=>t.add(e.key)),Ca());let i,o;return n.persistence.runTransaction("Locally write mutations","readwrite",(t=>{let a=wa(),u=Ca();return n.os.getEntries(t,s).next((t=>{a=t,a.forEach(((t,e)=>{e.isValidDocument()||(u=u.add(t))}))})).next((()=>n.localDocuments.getOverlayedDocuments(t,a))).next((s=>{i=s;const o=[];for(const t of e){const e=Za(t,i.get(t.key).overlayedDocument);null!=e&&o.push(new nu(t.key,e,vo(e.value.mapValue),Qa.exists(!0)))}return n.mutationQueue.addMutationBatch(t,r,o,e)})).next((e=>{o=e;const r=e.applyToLocalDocumentSet(i,u);return n.documentOverlayCache.saveOverlays(t,e.batchId,r)}))})).then((()=>({batchId:o.batchId,changes:_a(i)})))}(r.localStore,e);r.sharedClientState.addPendingMutation(t.batchId),function(t,e,n){let r=t.Da[t.currentUser.toKey()];r||(r=new Ni(ds)),r=r.insert(e,n),t.Da[t.currentUser.toKey()]=r}(r,t.batchId,n),await of(r,t.changes),await ud(r.remoteStore)}catch(t){const e=Id(t,"Failed to persist write");n.reject(e)}}(await Vf(t),e,n))),n.promise}(pg(t),e)}function lp(t,e,n){const r=n.docs.get(e._key),s=new Xm(t);return new Km(t,s,e._key,r,new jm(n.hasPendingWrites,n.fromCache),e.converter)}function hp(t){return dp(t,{count:Um()})}function dp(t,e){const n=Yf(t.firestore,fg),r=pg(n),s=function(t,e){const n=[];for(const r in t)Object.prototype.hasOwnProperty.call(t,r)&&n.push(e(t[r],r,t));return n}(e,((t,e)=>new hu(e,t.aggregateType,t._internalFieldPath)));return function(t,e,n){const r=new ts;return t.asyncQueue.enqueueAndForget((async()=>{try{const s=await qf(t);r.resolve(async function(t,e,n){var r;const s=Xr(t),{request:i,V_:o,parent:a}=function(t,e,n){const{ut:r,parent:s}=nc(t,e),i={},o=[];let a=0;return n.forEach((t=>{const e="aggregate_"+a++;i[e]=t.alias,"count"===t.aggregateType?o.push({alias:e,count:{}}):"avg"===t.aggregateType?o.push({alias:e,avg:{field:uc(t.fieldPath)}}):"sum"===t.aggregateType&&o.push({alias:e,sum:{field:uc(t.fieldPath)}})})),{request:{structuredAggregationQuery:{aggregations:o,structuredQuery:r.structuredQuery},parent:r.parent},V_:i,parent:s}}(s.serializer,function(t){const e=Xr(t);return e.Pe||(e.Pe=oa(e,t.explicitOrderBy)),e.Pe}(e),n);s.connection.wo||delete i.parent;const u=(await s.vo("RunAggregationQuery",s.serializer.databaseId,a,i,1)).filter((t=>!!t.result));Wr(1===u.length);const c=null===(r=u[0].result)||void 0===r?void 0:r.aggregateFields;return Object.keys(c).reduce(((t,e)=>(t[o[e]]=c[e],t)),{})}(s,e,n))}catch(t){r.reject(t)}})),r.promise}(r,t._query,s).then((e=>function(t,e,n){const r=new Xm(t);return new Ng(e,r,n)}(n,t,e)))}class fp{constructor(t){this.kind="memory",this._onlineComponentProvider=new Ef,(null==t?void 0:t.garbageCollector)?this._offlineComponentProvider=t.garbageCollector._offlineComponentProvider:this._offlineComponentProvider=new vf}toJSON(){return{kind:this.kind}}}class gp{constructor(t){let e;this.kind="persistent",(null==t?void 0:t.tabManager)?(t.tabManager._initialize(t),e=t.tabManager):(e=Ep(void 0),e._initialize(t)),this._onlineComponentProvider=e._onlineComponentProvider,this._offlineComponentProvider=e._offlineComponentProvider}toJSON(){return{kind:this.kind}}}class mp{constructor(){this.kind="memoryEager",this._offlineComponentProvider=new vf}toJSON(){return{kind:this.kind}}}class pp{constructor(t){this.kind="memoryLru",this._offlineComponentProvider=new bf(t)}toJSON(){return{kind:this.kind}}}function yp(){return new mp}function wp(t){return new pp(null==t?void 0:t.cacheSizeBytes)}function vp(t){return new fp(t)}function bp(t){return new gp(t)}class _p{constructor(t){this.forceOwnership=t,this.kind="persistentSingleTab"}toJSON(){return{kind:this.kind}}_initialize(t){this._onlineComponentProvider=new Ef,this._offlineComponentProvider=new _f(this._onlineComponentProvider,null==t?void 0:t.cacheSizeBytes,this.forceOwnership)}}class Ip{constructor(){this.kind="PersistentMultipleTab"}toJSON(){return{kind:this.kind}}_initialize(t){this._onlineComponentProvider=new Ef,this._offlineComponentProvider=new If(this._onlineComponentProvider,null==t?void 0:t.cacheSizeBytes)}}function Ep(t){return new _p(null==t?void 0:t.forceOwnership)}function Tp(){return new Ip}const Sp={maxAttempts:5};class xp{constructor(t,e){this._firestore=t,this._commitHandler=e,this._mutations=[],this._committed=!1,this._dataReader=zg(t)}set(t,e,n){this._verifyNotCommitted();const r=Cp(t,this._firestore),s=Fm(r.converter,e,n),i=Gg(this._dataReader,"WriteBatch.set",r._key,s,null!==r.converter,n);return this._mutations.push(i.toMutation(r._key,Qa.none())),this}update(t,e,n,...r){this._verifyNotCommitted();const s=Cp(t,this._firestore);let i;return i="string"==typeof(e=v(e))||e instanceof Rg?Xg(this._dataReader,"WriteBatch.update",s._key,e,n,r):Yg(this._dataReader,"WriteBatch.update",s._key,e),this._mutations.push(i.toMutation(s._key,Qa.exists(!0))),this}delete(t){this._verifyNotCommitted();const e=Cp(t,this._firestore);return this._mutations=this._mutations.concat(new ou(e._key,Qa.none())),this}commit(){return this._verifyNotCommitted(),this._committed=!0,this._mutations.length>0?this._commitHandler(this._mutations):Promise.resolve()}_verifyNotCommitted(){if(this._committed)throw new Zr(Jr.FAILED_PRECONDITION,"A write batch can no longer be used after commit() has been called.")}}function Cp(t,e){if((t=v(t)).firestore!==e)throw new Zr(Jr.INVALID_ARGUMENT,"Provided document reference is from a different Firestore instance.");return t}class Dp extends class{constructor(t,e){this._firestore=t,this._transaction=e,this._dataReader=zg(t)}get(t){const e=Cp(t,this._firestore),n=new Vm(this._firestore);return this._transaction.lookup([e._key]).then((t=>{if(!t||1!==t.length)return Hr();const r=t[0];if(r.isFoundDocument())return new um(this._firestore,n,r.key,r,e.converter);if(r.isNoDocument())return new um(this._firestore,n,e._key,null,e.converter);throw Hr()}))}set(t,e,n){const r=Cp(t,this._firestore),s=Fm(r.converter,e,n),i=Gg(this._dataReader,"Transaction.set",r._key,s,null!==r.converter,n);return this._transaction.set(r._key,i),this}update(t,e,n,...r){const s=Cp(t,this._firestore);let i;return i="string"==typeof(e=v(e))||e instanceof Rg?Xg(this._dataReader,"Transaction.update",s._key,e,n,r):Yg(this._dataReader,"Transaction.update",s._key,e),this._transaction.update(s._key,i),this}delete(t){const e=Cp(t,this._firestore);return this._transaction.delete(e._key),this}}{constructor(t,e){super(t,e),this._firestore=t}get(t){const e=Cp(t,this._firestore),n=new Xm(this._firestore);return super.get(t).then((t=>new Km(this._firestore,n,e._key,t._document,new jm(!1,!1),e.converter)))}}function Ap(t,e,n){t=Yf(t,fg);const r=Object.assign(Object.assign({},Sp),n);return function(t){if(t.maxAttempts<1)throw new Zr(Jr.INVALID_ARGUMENT,"Max attempts must be at least 1")}(r),function(t,e,n){const r=new ts;return t.asyncQueue.enqueueAndForget((async()=>{const s=await qf(t);new Df(t.asyncQueue,s,n,e,r).ja()})),r.promise}(pg(t),(n=>e(new Dp(t,n))),r)}function Np(){return new jg("deleteField")}function kp(){return new $g("serverTimestamp")}function Rp(...t){return new Qg("arrayUnion",t)}function Mp(...t){return new Hg("arrayRemove",t)}function Lp(t){return new Wg("increment",t)}function Op(t){return pg(t=Yf(t,fg)),new xp(t,(e=>cp(t,e)))}function Pp(t,e){var n;const r=pg(t=Yf(t,fg));if(!r._uninitializedComponentsProvider||"memory"===(null===(n=r._uninitializedComponentsProvider)||void 0===n?void 0:n._offlineKind))return $r("Cannot enable indexes when persistence is disabled"),Promise.resolve();const s=function(t){const e="string"==typeof t?function(t){try{return JSON.parse(t)}catch(t){throw new Zr(Jr.INVALID_ARGUMENT,"Failed to parse JSON: "+(null==t?void 0:t.message))}}(t):t,n=[];if(Array.isArray(e.indexes))for(const t of e.indexes){const e=Fp(t,"collectionGroup"),r=[];if(Array.isArray(t.fields))for(const e of t.fields){const t=im("setIndexConfiguration",Fp(e,"fieldPath"));"CONTAINS"===e.arrayConfig?r.push(new xs(t,2)):"ASCENDING"===e.order?r.push(new xs(t,0)):"DESCENDING"===e.order&&r.push(new xs(t,1))}n.push(new Is(Is.UNKNOWN_ID,e,r,Ds.empty()))}return n}(e);return function(t,e){return t.asyncQueue.enqueue((async()=>async function(t,e){const n=Xr(t),r=n.indexManager,s=[];return n.persistence.runTransaction("Configure indexes","readwrite",(t=>r.getFieldIndexes(t).next((n=>function(t,e,n,r,s){t=[...t],e=[...e],t.sort(n),e.sort(n);const i=t.length,o=e.length;let a=0,u=0;for(;a0?r(e[a++]):(a++,u++)}for(;a{s.push(r.addFieldIndex(t,e))}),(e=>{s.push(r.deleteFieldIndex(t,e))})))).next((()=>Ps.waitFor(s)))))}(await Pf(t),e)))}(r,s)}function Fp(t,e){if("string"!=typeof t[e])throw new Zr(Jr.INVALID_ARGUMENT,"Missing string value for: "+e);return t[e]}class Vp{constructor(t){this._client=t,this.type="PersistentCacheIndexManager"}}function qp(t){var e;t=Yf(t,fg);const n=jp.get(t);if(n)return n;const r=pg(t);if("persistent"!==(null===(e=r._uninitializedComponentsProvider)||void 0===e?void 0:e._offlineKind))return null;const s=new Vp(r);return jp.set(t,s),s}function Bp(t){Gp(t,!0)}function Up(t){Gp(t,!1)}function zp(t){t._client.verifyNotTerminated(),function(t){return t.asyncQueue.enqueue((async()=>function(t){const e=Xr(t),n=e.indexManager;return e.persistence.runTransaction("Delete All Indexes","readwrite",(t=>n.deleteAllFieldIndexes(t)))}(await Pf(t))))}(t._client).then((t=>jr("deleting all persistent cache indexes succeeded"))).catch((t=>$r("deleting all persistent cache indexes failed",t)))}function Gp(t,e){t._client.verifyNotTerminated(),function(t,e){return t.asyncQueue.enqueue((async()=>function(t,e){Xr(t).ts.Ui=e}(await Pf(t),e)))}(t._client,e).then((t=>jr(`setting persistent cache index auto creation isEnabled=${e} succeeded`))).catch((t=>$r(`setting persistent cache index auto creation isEnabled=${e} failed`,t)))}const jp=new WeakMap;class Kp{constructor(){throw new Error("instances of this class should not be created")}static onExistenceFilterMismatch(t){return $p.instance.onExistenceFilterMismatch(t)}}class $p{constructor(){this.Cu=new Map}static get instance(){return Qp||(Qp=new $p,function(t){if(yu)throw new Error("a TestingHooksSpi instance is already set");yu=t}(Qp)),Qp}tt(t){this.Cu.forEach((e=>e(t)))}onExistenceFilterMismatch(t){const e=Symbol(),n=this.Cu;return n.set(e,t),()=>n.delete(e)}}let Qp=null;!function(t,e=!0){!function(t){Br=t}(i.SDK_VERSION),i._registerComponent(new b("firestore",((t,{instanceIdentifier:n,options:r})=>{const s=t.getProvider("app").getImmediate(),i=new fg(new ss(t.getProvider("auth-internal")),new us(t.getProvider("app-check-internal")),function(t,e){if(!Object.prototype.hasOwnProperty.apply(t.options,["projectId"]))throw new Zr(Jr.INVALID_ARGUMENT,'"projectId" not provided in firebase.initializeApp.');return new Hi(t.options.projectId,e)}(s,n),s);return r=Object.assign({useFetchStreams:e},r),i._setSettings(r),i}),"PUBLIC").setMultipleInstances(!0)),i.registerVersion(Vr,"4.4.2",t),i.registerVersion(Vr,"4.4.2","esm2017")}()})); \ No newline at end of file diff --git a/frontend-dist/help-circle-outline.a023036a.svg b/frontend-dist/help-circle-outline.a023036a.svg new file mode 100644 index 0000000000..17ce1e0bc9 --- /dev/null +++ b/frontend-dist/help-circle-outline.a023036a.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend-dist/index.61105732.css b/frontend-dist/index.61105732.css new file mode 100644 index 0000000000..b8599f7c64 --- /dev/null +++ b/frontend-dist/index.61105732.css @@ -0,0 +1 @@ +*{box-sizing:border-box}html{font-size:17px}#title h1{color:var(--pluto-output-h-color);font-family:Vollkorn,serif;font-size:2em;font-style:italic;font-weight:500;letter-spacing:.08em;margin:0;padding:4rem 1rem 3rem;text-align:center}#title h1 img{filter:var(--image-filters);height:1.2em;margin-bottom:-.27em;margin-left:.1em;width:4.9em}body{background:var(--main-bg-color);margin:0;min-height:100%;position:absolute;width:100%}p{color:var(--index-text-color)}ul{list-style:none;padding-left:0}li{border-bottom:1px solid var(--welcome-recentnotebook-border);padding:.4em;white-space:nowrap}a{color:inherit;color:var(--index-clickable-text-color)}pluto-filepicker{background:var(--white);display:flex;flex-direction:row}.desktop_picker{display:flex;flex-direction:row;margin-left:5px}pluto-filepicker .cm-editor{background:none;border:2px solid var(--footer-filepicker-focus-color);border-radius:3px;border-bottom-right-radius:0;border-right:none;border-top-right-radius:0;color:var(--nav-filepicker-color);display:inline-block;flex:1 1 auto;font-family:var(--inter-ui-font-stack);font-size:.75rem;font-style:normal;font-weight:500;height:calc(1rem + 12px);letter-spacing:1px;width:100%;width:0}pluto-filepicker .cm-scroller{scrollbar-width:none}pluto-filepicker .cm-scroller::-webkit-scrollbar{display:none}.desktop_picker button,pluto-filepicker button{background:var(--footer-filepicker-focus-color);border:2px solid var(--nav-filepicker-focus-color);border-radius:3px;color:var(--white);font-family:Roboto Mono,monospace;font-size:.75rem;font-weight:600;margin:0}.desktop_picker_group{display:inline-flex}.desktop_picker_group>input{margin-left:1em}.desktop_picker>button{cursor:pointer}.desktop_picker>button.full_width{width:100%}pluto-filepicker button{border-bottom-left-radius:0;border-top-left-radius:0;cursor:pointer;flex:0 1 auto}pluto-filepicker button:disabled{cursor:not-allowed;opacity:.7}.cm-editor .cm-tooltip{border:1px solid var(--cm-editor-tooltip-border-color);border-radius:4px;box-shadow:3px 3px 4px rgb(0 0 0/20%)}.cm-tooltip-autocomplete{box-sizing:content-box;z-index:100}.cm-editor .cm-tooltip.cm-tooltip-autocomplete>ul{max-height:max(3em,min(50dvh,20em))}.cm-tooltip.cm-completionInfo.cm-completionInfo-right:empty{display:none}.cm-editor .cm-tooltip.cm-tooltip-autocomplete>ul>li{border-radius:3px;height:18px;margin-bottom:unset;overflow-y:hidden}.cm-editor .cm-tooltip.cm-tooltip-autocomplete>ul>li[aria-selected]{background:var(--cm-editor-li-aria-selected-bg-color);color:var(--cm-editor-li-aria-selected-color)}.cm-editor .cm-completionIcon{display:none}.cm-completionIcon:before{color:transparent;content:"⚫";margin-right:.5em;opacity:1}.cm-tooltip.cm-tooltip-autocomplete{background:var(--autocomplete-menu-bg-color);margin-left:-1.5em;padding:0}.cm-tooltip-autocomplete li.file.new:before{content:"👉 "}.cm-tooltip-autocomplete li.file:before{content:"📄 "}.cm-tooltip-autocomplete li.dir:before{content:"📁 "}.cm-tooltip-autocomplete>ul{padding:0}.cm-editor .cm-tooltip-autocomplete .cm-completionLabel{font-family:var(--inter-ui-font-stack);font-size:.8rem;font-variant-ligatures:none;font-weight:400}body.nosessions ul#new~*{display:none}#recent{scrollbar-gutter:stable;background:var(--welcome-recentnotebook-bg);border:.2rem solid #d5d5d5;border-radius:.4rem;box-shadow:-2px 4px 9px 0 #00000012;max-height:16em;overflow-x:hidden;overflow-y:auto}#recent>li.recent{opacity:.8}#recent button{background:none;border:none;color:var(--ui-button-color);cursor:pointer;margin:0 .2em 0 0;opacity:.6;padding:1px}span.ionicon:after{background-size:1rem 1rem;content:" ";display:inline-block;filter:var(--image-filters);height:1rem;margin-bottom:-.17rem;width:1rem}#recent li.running button>span:after{background-image:url(close-circle.d0f6eac6.svg)}#recent li.recent button>span:after{background-image:url(caret-forward-circle-outline.d0bf2b34.svg)}#recent li.transitioning button>span:after{background-image:url(ellipsis-horizontal-outline.abb6e818.svg)}#recent li.new span:after{background-image:url(add-outline.e3c93c35.svg)}loading-bar{background-color:var(--loading-grad-color-1);display:none;height:6px;position:fixed;top:0;width:100vw}body.loading loading-bar{animation:load 16s ease-in-out;display:block}@keyframes load{0%{right:100vw}20%{right:30vw}to{right:0}}.card-list{display:grid;place-items:center;align-items:stretch;gap:0;grid-template-columns:repeat(auto-fit,minmax(var(--card-width),1fr));justify-items:stretch}.navigating-away-banner{display:grid;min-height:70vh;padding:3em;place-content:center;width:100vw}.navigating-away-banner h2{overflow:hidden;text-overflow:ellipsis;white-space:nowrap} \ No newline at end of file diff --git a/frontend-dist/index.6587449d.js b/frontend-dist/index.6587449d.js new file mode 100644 index 0000000000..153725763b --- /dev/null +++ b/frontend-dist/index.6587449d.js @@ -0,0 +1,122 @@ +var e="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},t={},o={},n=e.parcelRequire94c2;null==n&&((n=function(e){if(e in t)return t[e].exports;if(e in o){var n=o[e];delete o[e];var r={id:e,exports:{}};return t[e]=r,n.call(r.exports,r,r.exports),r.exports}var a=new Error("Cannot find module '"+e+"'");throw a.code="MODULE_NOT_FOUND",a}).register=function(e,t){o[e]=t},e.parcelRequire94c2=n);var r=n("cNaMA");n("eS9BV");var a,i,l,s,c={};a=c,i="Welcome",l=()=>q,s=e=>q=e,Object.defineProperty(a,i,{get:l,set:s,enumerable:!0,configurable:!0}),n("9Ta4i");r=n("cNaMA"),r=n("cNaMA");var u=n("4zMEb");const d=async()=>{let e=await fetch("https://api.github.com/repos/fonsp/Pluto.jl/releases",{method:"GET",mode:"cors",cache:"no-cache",headers:{"Content-Type":"application/json"},redirect:"follow",referrerPolicy:"no-referrer"});return(await e.json()).reverse()};n("9Ta4i");r=n("cNaMA");var p=n("2ZZ1r"),h=n("hrGZZ");r=n("cNaMA");const f=e=>{const t=`${e}\n`.replace("\r\n","\n"),o=t.indexOf("### A Pluto.jl notebook ###"),n=t.match(/# ... ........-....-....-....-............/g),r=(null==n?void 0:n.length)??0;let a=t.indexOf("# ╔═╡ Cell order:")+17+1;for(let e=1;e<=r;e++)a=t.indexOf("\n",a+1)+1;return t.slice(o,a)},m=({on_start_navigation:e})=>{const t=async t=>{var o;let n;if(console.log(t),(null===(o=((null==t?void 0:t.path)??(null==t?void 0:t.composedPath())).filter((e=>{var t;return null==e||null===(t=e.classList)||void 0===t?void 0:t.contains(".cm-editor")})))||void 0===o?void 0:o.length)>0)return;switch(t.type){case"paste":n=f(t.clipboardData.getData("text/plain"));break;case"dragstart":return void(t.dataTransfer.dropEffect="move");case"dragover":return void t.preventDefault();case"drop":t.preventDefault(),n=t.dataTransfer.types.includes("Files")?await(a=t.dataTransfer.files[0],new Promise(((e,t)=>{const{name:o,type:n}=a,r=new FileReader;r.onerror=()=>t("Failed to read file!"),r.onloadstart=()=>{},r.onprogress=({loaded:e,total:t})=>{},r.onload=()=>{},r.onloadend=()=>e({file:r.result,name:o,type:n}),r.readAsText(a)}))).then((({file:e})=>e)):f(await(r=t.dataTransfer.items[0],new Promise(((e,t)=>{try{r.getAsString((t=>{console.log(t),e(t)}))}catch(e){t(e)}}))))}var r,a;if(!n)return;e("notebook from clipboard",!1),document.body.classList.add("loading");const i=await fetch("./notebookupload",{method:"POST",body:n});if(i.ok)window.location.href=b(await i.text());else{let e=await i.blob();window.location.href=URL.createObjectURL(e)}};return h.useEventListener(document,"paste",t,[t]),h.useEventListener(document,"drop",t,[t]),h.useEventListener(document,"dragstart",t,[t]),h.useEventListener(document,"dragover",t,[t]),r.html``};var _=n("1xJnC");const v=({client:e,connected:t,CustomPicker:o,show_samples:n,on_start_navigation:a})=>{const i=o??{text:"Open a notebook",placeholder:"Enter path or URL..."};return r.html`<${m} on_start_navigation=${a} /> +

${i.text}

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

    My work

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

    welcome to

    +
    +
    +
    + <${x} + client=${s.current} + connected=${n} + remote_notebooks=${t} + CustomRecent=${p} + on_start_navigation=${_} + /> +
    +
    +
    +
    + <${v} + client=${s.current} + connected=${n} + CustomPicker=${h} + show_samples=${c} + on_start_navigation=${_} + /> +
    +
    + + `},B=new URLSearchParams(window.location.search),H={featured_direct_html_links:!!(B.get("featured_direct_html_links")??window.pluto_featured_direct_html_links),featured_sources:window.pluto_featured_sources,featured_source_url:B.get("featured_source_url")??window.pluto_featured_source_url,featured_source_integrity:B.get("featured_source_integrity")??window.pluto_featured_source_integrity,pluto_server_url:B.get("pluto_server_url")??window.pluto_server_url};console.log("Launch parameters: ",H),r.render(r.html`<${c.Welcome} launch_params=${H} />`,document.querySelector("#app")); \ No newline at end of file diff --git a/frontend-dist/index.dbc7264b.css b/frontend-dist/index.dbc7264b.css new file mode 100644 index 0000000000..17a18c7ef8 --- /dev/null +++ b/frontend-dist/index.dbc7264b.css @@ -0,0 +1 @@ +@font-face{font-display:swap;font-family:Inter;font-style:normal;font-weight:100;src:url(Inter-Thin.woff2.a3efb88f6f.099a7dc1.woff2) format("woff2"),url(Inter-Thin.woff.a3efb88f6f.832f7e9d.woff) format("woff")}@font-face{font-display:swap;font-family:Inter;font-style:italic;font-weight:100;src:url(Inter-ThinItalic.woff2.a3efb88f6f.f5b32cfe.woff2) format("woff2"),url(Inter-ThinItalic.woff.a3efb88f6f.9a9e646f.woff) format("woff")}@font-face{font-display:swap;font-family:Inter;font-style:normal;font-weight:200;src:url(Inter-ExtraLight.woff2.a3efb88f6f.735b820a.woff2) format("woff2"),url(Inter-ExtraLight.woff.a3efb88f6f.018d6d24.woff) format("woff")}@font-face{font-display:swap;font-family:Inter;font-style:italic;font-weight:200;src:url(Inter-ExtraLightItalic.woff2.a3efb88f6f.75944d4e.woff2) format("woff2"),url(Inter-ExtraLightItalic.woff.a3efb88f6f.c051c5b4.woff) format("woff")}@font-face{font-display:swap;font-family:Inter;font-style:normal;font-weight:300;src:url(Inter-Light.woff2.a3efb88f6f.f86a8a97.woff2) format("woff2"),url(Inter-Light.woff.a3efb88f6f.0cf765a1.woff) format("woff")}@font-face{font-display:swap;font-family:Inter;font-style:italic;font-weight:300;src:url(Inter-LightItalic.woff2.a3efb88f6f.cb22faff.woff2) format("woff2"),url(Inter-LightItalic.woff.a3efb88f6f.6c91af65.woff) format("woff")}@font-face{font-display:swap;font-family:Inter;font-style:normal;font-weight:400;src:url(Inter-Regular.woff2.a3efb88f6f.c52a047f.woff2) format("woff2"),url(Inter-Regular.woff.a3efb88f6f.d9325c13.woff) format("woff")}@font-face{font-display:swap;font-family:Inter;font-style:italic;font-weight:400;src:url(Inter-Italic.woff2.a3efb88f6f.85eee0c1.woff2) format("woff2"),url(Inter-Italic.woff.a3efb88f6f.d9effa31.woff) format("woff")}@font-face{font-display:swap;font-family:Inter;font-style:normal;font-weight:500;src:url(Inter-Medium.woff2.a3efb88f6f.4f0ea984.woff2) format("woff2"),url(Inter-Medium.woff.a3efb88f6f.cb391d89.woff) format("woff")}@font-face{font-display:swap;font-family:Inter;font-style:italic;font-weight:500;src:url(Inter-MediumItalic.woff2.a3efb88f6f.2b734b7a.woff2) format("woff2"),url(Inter-MediumItalic.woff.a3efb88f6f.1f636c25.woff) format("woff")}@font-face{font-display:swap;font-family:Inter;font-style:normal;font-weight:600;src:url(Inter-SemiBold.woff2.a3efb88f6f.08366574.woff2) format("woff2"),url(Inter-SemiBold.woff.a3efb88f6f.c6670c13.woff) format("woff")}@font-face{font-display:swap;font-family:Inter;font-style:italic;font-weight:600;src:url(Inter-SemiBoldItalic.woff2.a3efb88f6f.5c7db07d.woff2) format("woff2"),url(Inter-SemiBoldItalic.woff.a3efb88f6f.13394743.woff) format("woff")}@font-face{font-display:swap;font-family:Inter;font-style:normal;font-weight:700;src:url(Inter-Bold.woff2.a3efb88f6f.e8bd971d.woff2) format("woff2"),url(Inter-Bold.woff.a3efb88f6f.d92ed350.woff) format("woff")}@font-face{font-display:swap;font-family:Inter;font-style:italic;font-weight:700;src:url(Inter-BoldItalic.woff2.a3efb88f6f.cd6e580e.woff2) format("woff2"),url(Inter-BoldItalic.woff.a3efb88f6f.39f68e5f.woff) format("woff")}@font-face{font-display:swap;font-family:Inter;font-style:normal;font-weight:800;src:url(Inter-ExtraBold.woff2.a3efb88f6f.ffc04ff0.woff2) format("woff2"),url(Inter-ExtraBold.woff.a3efb88f6f.cd51bf91.woff) format("woff")}@font-face{font-display:swap;font-family:Inter;font-style:italic;font-weight:800;src:url(Inter-ExtraBoldItalic.woff2.a3efb88f6f.de4f3979.woff2) format("woff2"),url(Inter-ExtraBoldItalic.woff.a3efb88f6f.122106d3.woff) format("woff")}@font-face{font-display:swap;font-family:Inter;font-style:normal;font-weight:900;src:url(Inter-Black.woff2.a3efb88f6f.1f333c9f.woff2) format("woff2"),url(Inter-Black.woff.a3efb88f6f.efe3f25b.woff) format("woff")}@font-face{font-display:swap;font-family:Inter;font-style:italic;font-weight:900;src:url(Inter-BlackItalic.woff2.a3efb88f6f.89710fff.woff2) format("woff2"),url(Inter-BlackItalic.woff.a3efb88f6f.f6e2e726.woff) format("woff")}@font-face{font-named-instance:"Regular";font-display:swap;font-family:Inter var;font-style:normal;font-weight:100 900;src:url(Inter-roman.var.woff2.a3efb88f6f.8120837c.woff2) format("woff2 supports variations(gvar)"),url(Inter-roman.var.woff2.a3efb88f6f.8120837c.woff2) format("woff2-variations"),url(Inter-roman.var.woff2.a3efb88f6f.8120837c.woff2) format("woff2")}@font-face{font-named-instance:"Italic";font-display:swap;font-family:Inter var;font-style:italic;font-weight:100 900;src:url(Inter-italic.var.woff2.a3efb88f6f.e62a3bb2.woff2) format("woff2 supports variations(gvar)"),url(Inter-italic.var.woff2.a3efb88f6f.e62a3bb2.woff2) format("woff2-variations"),url(Inter-italic.var.woff2.a3efb88f6f.e62a3bb2.woff2) format("woff2")}@font-face{font-display:swap;font-family:Inter var experimental;font-style:oblique 0deg 10deg;font-weight:100 900;src:url(Inter.var.woff2.a3efb88f6f.ca82f9aa.woff2) format("woff2-variations"),url(Inter.var.woff2.a3efb88f6f.ca82f9aa.woff2) format("woff2")}:root{--pluto-cell-spacing:17px;--pluto-operator-ligatures:none;--julia-mono-font-stack:JuliaMono,Menlo,"Roboto Mono","Lucida Sans Typewriter","Source Code Pro",monospace;--sans-serif-font-stack:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen,Ubuntu,Cantarell,"Open Sans","Helvetica Neue",sans-serif;--lato-ui-font-stack:"Lato",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Cantarell,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol",system-ui,sans-serif;--inter-ui-font-stack:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Cantarell,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol",system-ui,sans-serif;color-scheme:light dark}html{font-family:var(--inter-ui-font-stack);font-size:17px}main{display:block;margin:0 auto;max-width:1200px;padding:1rem}header{background-color:#f5efd2;background-size:cover;display:flex;justify-content:center;padding:1.3rem}header h1{font-weight:500;text-align:center}section#mywork,section#open{background:var(--welcome-mywork-bg);position:relative}.pluto-logo{align-items:center;color:inherit;flex-direction:row;font-family:var(--inter-ui-font-stack);font-style:normal;font-weight:800;gap:.5ch;padding:.5em;transform:translateY(.23em)}.pluto-logo img{height:1.2em;width:1.2em}#new{background:var(--welcome-open-bg);border-radius:.6rem;box-shadow:-2px 4px 9px 0 #00000012;margin:1rem;padding:1.3rem}#new.desktop_opener{align-content:center;box-shadow:none;display:flex;flex-direction:row;justify-content:space-around;position:relative}#new.desktop_opener .desktop_picker{width:100%}section{display:flex;flex-direction:row;justify-content:center}section>div{flex:1 1 auto;margin:1rem;max-width:614px;min-width:0}.pluto-logo{background:#fff;border-radius:.4em;display:flex;flex:0 1 auto;font-size:1.6rem;transform:none}section#open{position:relative}section#featured>div{max-width:900px}header>div{display:flex;flex:1 1 auto;max-width:62rem;z-index:1}section#mywork:before,section#open:after{--c:rgba(53,72,80,0.06);background:linear-gradient(0deg,transparent,var(--c));content:"";display:block;height:50px;left:0;pointer-events:none;position:absolute;right:0;top:0;z-index:0}:where(#mywork,#open) h2{--off:4px;--offm:-4px;--oc:#fff;border-radius:.4em;display:inline-block;margin:2rem 0 0}section#open:after{background:linear-gradient(0deg,var(--c),transparent);bottom:0;top:unset}div#app{background-position:0 77%;background-size:cover}.new a{font-style:italic;font-weight:500;text-decoration:none}li.new{background:var(--welcome-newnotebook-bg);position:sticky;top:0;z-index:2}h1{font-size:2.8rem;margin-block-end:0}.collection{margin:6em 0}.collection h2{font-size:2.5rem;font-weight:600;margin:0}#featured p{max-width:54ch}#github img{aspect-ratio:1;filter:var(--image-filters);width:2rem}a#github{display:block;position:absolute;right:.5rem;top:.5rem}.show_scrollbar::-webkit-scrollbar{opacity:.1;width:10px}.show_scrollbar::-webkit-scrollbar-thumb{background-color:var(--black);border-radius:1000px;opacity:.6}.show_scrollbar::-webkit-scrollbar-thumb:hover{opacity:1} \ No newline at end of file diff --git a/frontend-dist/index.html b/frontend-dist/index.html new file mode 100644 index 0000000000..973d8c8224 --- /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..fd19d2ad1a --- /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.46fc64e5.css",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/@fontsource/roboto-mono@4.4.5/files/roboto-mono-cyrillic-ext-500-normal.woff2":"./roboto-mono-cyrillic-ext-500-normal.d362a132.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/@fontsource/roboto-mono@4.4.5/files/roboto-mono-all-500-normal.woff":"./roboto-mono-all-500-normal.cc559149.woff",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/@fontsource/roboto-mono@4.4.5/files/roboto-mono-cyrillic-500-normal.woff2":"./roboto-mono-cyrillic-500-normal.8ed3add8.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/@fontsource/roboto-mono@4.4.5/files/roboto-mono-greek-500-normal.woff2":"./roboto-mono-greek-500-normal.dd57b097.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/@fontsource/roboto-mono@4.4.5/files/roboto-mono-vietnamese-500-normal.woff2":"./roboto-mono-vietnamese-500-normal.1320bb60.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/@fontsource/roboto-mono@4.4.5/files/roboto-mono-latin-ext-500-normal.woff2":"./roboto-mono-latin-ext-500-normal.415f7d14.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/@fontsource/roboto-mono@4.4.5/files/roboto-mono-latin-500-normal.woff2":"./roboto-mono-latin-500-normal.98ad1d4e.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/@fontsource/roboto-mono@4.4.5/files/roboto-mono-cyrillic-ext-700-normal.woff2":"./roboto-mono-cyrillic-ext-700-normal.5c7aabac.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/@fontsource/roboto-mono@4.4.5/files/roboto-mono-all-700-normal.woff":"./roboto-mono-all-700-normal.393c796d.woff",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/@fontsource/roboto-mono@4.4.5/files/roboto-mono-cyrillic-700-normal.woff2":"./roboto-mono-cyrillic-700-normal.5e6410cf.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/@fontsource/roboto-mono@4.4.5/files/roboto-mono-greek-700-normal.woff2":"./roboto-mono-greek-700-normal.b101f80c.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/@fontsource/roboto-mono@4.4.5/files/roboto-mono-vietnamese-700-normal.woff2":"./roboto-mono-vietnamese-700-normal.edb1435b.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/@fontsource/roboto-mono@4.4.5/files/roboto-mono-latin-ext-700-normal.woff2":"./roboto-mono-latin-ext-700-normal.c497b002.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/@fontsource/roboto-mono@4.4.5/files/roboto-mono-latin-700-normal.woff2":"./roboto-mono-latin-700-normal.447ac127.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/@fontsource/alegreya-sans@4.4.5/files/alegreya-sans-cyrillic-ext-400-normal.woff2":"./alegreya-sans-cyrillic-ext-400-normal.5f5cc2ef.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/@fontsource/alegreya-sans@4.4.5/files/alegreya-sans-all-400-normal.woff":"./alegreya-sans-all-400-normal.a91dc265.woff",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/@fontsource/alegreya-sans@4.4.5/files/alegreya-sans-cyrillic-400-normal.woff2":"./alegreya-sans-cyrillic-400-normal.ab3d1dcc.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/@fontsource/alegreya-sans@4.4.5/files/alegreya-sans-greek-ext-400-normal.woff2":"./alegreya-sans-greek-ext-400-normal.b82a0aea.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/@fontsource/alegreya-sans@4.4.5/files/alegreya-sans-greek-400-normal.woff2":"./alegreya-sans-greek-400-normal.4e5a8597.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/@fontsource/alegreya-sans@4.4.5/files/alegreya-sans-vietnamese-400-normal.woff2":"./alegreya-sans-vietnamese-400-normal.bdc8a622.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/@fontsource/alegreya-sans@4.4.5/files/alegreya-sans-latin-ext-400-normal.woff2":"./alegreya-sans-latin-ext-400-normal.1c1602b0.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/@fontsource/alegreya-sans@4.4.5/files/alegreya-sans-latin-400-normal.woff2":"./alegreya-sans-latin-400-normal.62b57001.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/@fontsource/alegreya-sans@4.4.5/files/alegreya-sans-cyrillic-ext-500-normal.woff2":"./alegreya-sans-cyrillic-ext-500-normal.0e6ee102.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/@fontsource/alegreya-sans@4.4.5/files/alegreya-sans-all-500-normal.woff":"./alegreya-sans-all-500-normal.5db27a5b.woff",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/@fontsource/alegreya-sans@4.4.5/files/alegreya-sans-cyrillic-500-normal.woff2":"./alegreya-sans-cyrillic-500-normal.8a029e9d.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/@fontsource/alegreya-sans@4.4.5/files/alegreya-sans-greek-ext-500-normal.woff2":"./alegreya-sans-greek-ext-500-normal.00f2c6f3.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/@fontsource/alegreya-sans@4.4.5/files/alegreya-sans-greek-500-normal.woff2":"./alegreya-sans-greek-500-normal.54a6041f.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/@fontsource/alegreya-sans@4.4.5/files/alegreya-sans-vietnamese-500-normal.woff2":"./alegreya-sans-vietnamese-500-normal.97e250df.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/@fontsource/alegreya-sans@4.4.5/files/alegreya-sans-latin-ext-500-normal.woff2":"./alegreya-sans-latin-ext-500-normal.637067c1.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/@fontsource/alegreya-sans@4.4.5/files/alegreya-sans-latin-500-normal.woff2":"./alegreya-sans-latin-500-normal.4428c984.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/@fontsource/alegreya-sans@4.4.5/files/alegreya-sans-cyrillic-ext-700-normal.woff2":"./alegreya-sans-cyrillic-ext-700-normal.2e02b08f.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/@fontsource/alegreya-sans@4.4.5/files/alegreya-sans-all-700-normal.woff":"./alegreya-sans-all-700-normal.29d7dfa9.woff",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/@fontsource/alegreya-sans@4.4.5/files/alegreya-sans-cyrillic-700-normal.woff2":"./alegreya-sans-cyrillic-700-normal.5a5aa5e3.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/@fontsource/alegreya-sans@4.4.5/files/alegreya-sans-greek-ext-700-normal.woff2":"./alegreya-sans-greek-ext-700-normal.ca9ee8e1.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/@fontsource/alegreya-sans@4.4.5/files/alegreya-sans-greek-700-normal.woff2":"./alegreya-sans-greek-700-normal.452fc62e.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/@fontsource/alegreya-sans@4.4.5/files/alegreya-sans-vietnamese-700-normal.woff2":"./alegreya-sans-vietnamese-700-normal.59390763.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/@fontsource/alegreya-sans@4.4.5/files/alegreya-sans-latin-ext-700-normal.woff2":"./alegreya-sans-latin-ext-700-normal.b5306f41.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/@fontsource/alegreya-sans@4.4.5/files/alegreya-sans-latin-700-normal.woff2":"./alegreya-sans-latin-700-normal.96e2fcc9.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/@fontsource/alegreya-sans@4.4.5/files/alegreya-sans-cyrillic-ext-400-italic.woff2":"./alegreya-sans-cyrillic-ext-400-italic.7c2a4a40.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/@fontsource/alegreya-sans@4.4.5/files/alegreya-sans-all-400-italic.woff":"./alegreya-sans-all-400-italic.f87bfe89.woff",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/@fontsource/alegreya-sans@4.4.5/files/alegreya-sans-cyrillic-400-italic.woff2":"./alegreya-sans-cyrillic-400-italic.8c81649c.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/@fontsource/alegreya-sans@4.4.5/files/alegreya-sans-greek-ext-400-italic.woff2":"./alegreya-sans-greek-ext-400-italic.550f5118.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/@fontsource/alegreya-sans@4.4.5/files/alegreya-sans-greek-400-italic.woff2":"./alegreya-sans-greek-400-italic.1b909c63.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/@fontsource/alegreya-sans@4.4.5/files/alegreya-sans-vietnamese-400-italic.woff2":"./alegreya-sans-vietnamese-400-italic.d08e8dff.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/@fontsource/alegreya-sans@4.4.5/files/alegreya-sans-latin-ext-400-italic.woff2":"./alegreya-sans-latin-ext-400-italic.b9ce632b.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/@fontsource/alegreya-sans@4.4.5/files/alegreya-sans-latin-400-italic.woff2":"./alegreya-sans-latin-400-italic.ec56f658.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/@fontsource/alegreya-sans@4.4.5/files/alegreya-sans-cyrillic-ext-500-italic.woff2":"./alegreya-sans-cyrillic-ext-500-italic.78248b65.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/@fontsource/alegreya-sans@4.4.5/files/alegreya-sans-all-500-italic.woff":"./alegreya-sans-all-500-italic.8917c3da.woff",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/@fontsource/alegreya-sans@4.4.5/files/alegreya-sans-cyrillic-500-italic.woff2":"./alegreya-sans-cyrillic-500-italic.a40f95be.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/@fontsource/alegreya-sans@4.4.5/files/alegreya-sans-greek-ext-500-italic.woff2":"./alegreya-sans-greek-ext-500-italic.8b2e952b.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/@fontsource/alegreya-sans@4.4.5/files/alegreya-sans-greek-500-italic.woff2":"./alegreya-sans-greek-500-italic.19d09eea.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/@fontsource/alegreya-sans@4.4.5/files/alegreya-sans-vietnamese-500-italic.woff2":"./alegreya-sans-vietnamese-500-italic.3ff20df8.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/@fontsource/alegreya-sans@4.4.5/files/alegreya-sans-latin-ext-500-italic.woff2":"./alegreya-sans-latin-ext-500-italic.d15c8f11.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/@fontsource/alegreya-sans@4.4.5/files/alegreya-sans-latin-500-italic.woff2":"./alegreya-sans-latin-500-italic.6d8350bf.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/@fontsource/alegreya-sans@4.4.5/files/alegreya-sans-cyrillic-ext-700-italic.woff2":"./alegreya-sans-cyrillic-ext-700-italic.69b0617e.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/@fontsource/alegreya-sans@4.4.5/files/alegreya-sans-all-700-italic.woff":"./alegreya-sans-all-700-italic.a6d70e05.woff",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/@fontsource/alegreya-sans@4.4.5/files/alegreya-sans-cyrillic-700-italic.woff2":"./alegreya-sans-cyrillic-700-italic.c4ef17a2.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/@fontsource/alegreya-sans@4.4.5/files/alegreya-sans-greek-ext-700-italic.woff2":"./alegreya-sans-greek-ext-700-italic.a1ccc0c2.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/@fontsource/alegreya-sans@4.4.5/files/alegreya-sans-greek-700-italic.woff2":"./alegreya-sans-greek-700-italic.5aef27cf.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/@fontsource/alegreya-sans@4.4.5/files/alegreya-sans-vietnamese-700-italic.woff2":"./alegreya-sans-vietnamese-700-italic.7de0cccc.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/@fontsource/alegreya-sans@4.4.5/files/alegreya-sans-latin-ext-700-italic.woff2":"./alegreya-sans-latin-ext-700-italic.733aea09.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/@fontsource/alegreya-sans@4.4.5/files/alegreya-sans-latin-700-italic.woff2":"./alegreya-sans-latin-700-italic.abc64c8a.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/@fontsource/lato@4.4.5/files/lato-latin-ext-400-normal.woff2":"./lato-latin-ext-400-normal.e1ce8ad3.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/@fontsource/lato@4.4.5/files/lato-all-400-normal.woff":"./lato-all-400-normal.a1a68bdf.woff",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/@fontsource/lato@4.4.5/files/lato-latin-400-normal.woff2":"./lato-latin-400-normal.77db3602.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/@fontsource/lato@4.4.5/files/lato-latin-ext-400-italic.woff2":"./lato-latin-ext-400-italic.336aaf51.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/@fontsource/lato@4.4.5/files/lato-all-400-italic.woff":"./lato-all-400-italic.c29c8c6c.woff",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/@fontsource/lato@4.4.5/files/lato-latin-400-italic.woff2":"./lato-latin-400-italic.6edbc86c.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/gh/ionic-team/ionicons@5.5.1/src/svg/radio-button-on-outline.svg":"./radio-button-on-outline.778acac1.svg",".parcel-cache/.net/https/cdn.jsdelivr.net/gh/ionic-team/ionicons@5.5.1/src/svg/stop-circle-outline.svg":"./stop-circle-outline.6623356d.svg",".parcel-cache/.net/https/cdn.jsdelivr.net/gh/ionic-team/ionicons@5.5.1/src/svg/share-outline.svg":"./share-outline.50164ded.svg",".parcel-cache/.net/https/cdn.jsdelivr.net/gh/ionic-team/ionicons@5.5.1/src/svg/close-outline.svg":"./close-outline.9c22a232.svg",".parcel-cache/.net/https/cdn.jsdelivr.net/gh/ionic-team/ionicons@5.5.1/src/svg/newspaper-outline.svg":"./newspaper-outline.e481c39c.svg",".parcel-cache/.net/https/cdn.jsdelivr.net/gh/ionic-team/ionicons@5.5.1/src/svg/easel-outline.svg":"./easel-outline.9b064e1f.svg",".parcel-cache/.net/https/cdn.jsdelivr.net/gh/ionic-team/ionicons@5.5.1/src/svg/mic-outline.svg":"./mic-outline.e10eafe2.svg",".parcel-cache/.net/https/cdn.jsdelivr.net/gh/ionic-team/ionicons@5.5.1/src/svg/information-circle-outline.svg":"./information-circle-outline.008b2bb9.svg",".parcel-cache/.net/https/cdn.jsdelivr.net/gh/ionic-team/ionicons@5.5.1/src/svg/cloud-offline-outline.svg":"./cloud-offline-outline.ac2eade9.svg",".parcel-cache/.net/https/cdn.jsdelivr.net/gh/ionic-team/ionicons@5.5.1/src/svg/mic-off-outline.svg":"./mic-off-outline.251c22b7.svg",".parcel-cache/.net/https/cdn.jsdelivr.net/gh/ionic-team/ionicons@5.5.1/src/svg/arrow-undo-outline.svg":"./arrow-undo-outline.d8c99108.svg",".parcel-cache/.net/https/cdn.jsdelivr.net/gh/ionic-team/ionicons@5.5.1/src/svg/sync-circle-outline.svg":"./sync-circle-outline.65b15d76.svg",".parcel-cache/.net/https/cdn.jsdelivr.net/gh/ionic-team/ionicons@5.5.1/src/svg/checkmark-outline.svg":"./checkmark-outline.4fb8c646.svg",".parcel-cache/.net/https/cdn.jsdelivr.net/gh/ionic-team/ionicons@5.5.1/src/svg/eye-outline.svg":"./eye-outline.6e6e0f7c.svg",".parcel-cache/.net/https/cdn.jsdelivr.net/gh/ionic-team/ionicons@5.5.1/src/svg/eye-off-outline.svg":"./eye-off-outline.a37e03db.svg",".parcel-cache/.net/https/cdn.jsdelivr.net/gh/ionic-team/ionicons@5.5.1/src/svg/add-outline.svg":"./add-outline.e3c93c35.svg",".parcel-cache/.net/https/cdn.jsdelivr.net/gh/ionic-team/ionicons@5.5.1/src/svg/document-text-outline.svg":"./document-text-outline.8d1e2333.svg",".parcel-cache/.net/https/cdn.jsdelivr.net/gh/ionic-team/ionicons@5.5.1/src/svg/caret-forward-circle-outline.svg":"./caret-forward-circle-outline.d0bf2b34.svg",".parcel-cache/.net/https/cdn.jsdelivr.net/gh/ionic-team/ionicons@5.5.1/src/svg/ban-outline.svg":"./ban-outline.c97da9b4.svg",".parcel-cache/.net/https/cdn.jsdelivr.net/gh/ionic-team/ionicons@5.5.1/src/svg/close-circle-outline.svg":"./close-circle-outline.4baeedb9.svg",".parcel-cache/.net/https/cdn.jsdelivr.net/gh/ionic-team/ionicons@5.5.1/src/svg/document-lock-outline.svg":"./document-lock-outline.69d176a4.svg",".parcel-cache/.net/https/cdn.jsdelivr.net/gh/ionic-team/ionicons@5.5.1/src/svg/copy-outline.svg":"./copy-outline.0f561529.svg",".parcel-cache/.net/https/cdn.jsdelivr.net/gh/ionic-team/ionicons@5.5.1/src/svg/ellipsis-horizontal-circle-outline.svg":"./ellipsis-horizontal-circle-outline.6279ed30.svg",".parcel-cache/.net/https/cdn.jsdelivr.net/gh/ionic-team/ionicons@5.5.1/src/svg/time-outline.svg":"./time-outline.7c1877f0.svg",".parcel-cache/.net/https/cdn.jsdelivr.net/gh/ionic-team/ionicons@5.5.1/src/svg/sync-outline.svg":"./sync-outline.9a1bd27b.svg",".parcel-cache/.net/https/cdn.jsdelivr.net/gh/ionic-team/ionicons@5.5.1/src/svg/cloud-download-outline.svg":"./cloud-download-outline.8c1ff9bb.svg",".parcel-cache/.net/https/cdn.jsdelivr.net/gh/ionic-team/ionicons@5.5.1/src/svg/chatbox-ellipses-outline.svg":"./chatbox-ellipses-outline.4334a3a4.svg",".parcel-cache/.net/https/cdn.jsdelivr.net/gh/ionic-team/ionicons@5.5.1/src/svg/arrow-redo-circle-outline.svg":"./arrow-redo-circle-outline.dfa899f4.svg",".parcel-cache/.net/https/cdn.jsdelivr.net/gh/ionic-team/ionicons@5.5.1/src/svg/chevron-forward-circle-outline.svg":"./chevron-forward-circle-outline.babf2a99.svg",".parcel-cache/.net/https/cdn.jsdelivr.net/gh/ionic-team/ionicons@5.5.1/src/svg/search.svg":"./search.1ca5b3b3.svg",".parcel-cache/.net/https/cdn.jsdelivr.net/gh/ionic-team/ionicons@5.5.1/src/svg/terminal.svg":"./terminal.6b804248.svg",".parcel-cache/.net/https/cdn.jsdelivr.net/gh/ionic-team/ionicons@5.5.1/src/svg/pulse.svg":"./pulse.27a877a7.svg",".parcel-cache/.net/https/cdn.jsdelivr.net/gh/ionic-team/ionicons@5.5.1/src/svg/chevron-down-outline.svg":"./chevron-down-outline.1efaf1cc.svg",".parcel-cache/.net/https/cdn.jsdelivr.net/gh/ionic-team/ionicons@5.5.1/src/svg/notifications-outline.svg":"./notifications-outline.aa91b431.svg",".parcel-cache/.net/https/cdn.jsdelivr.net/gh/ionic-team/ionicons@5.5.1/src/svg/warning-outline.svg":"./warning-outline.d84ed9e8.svg",".parcel-cache/.net/https/cdn.jsdelivr.net/gh/ionic-team/ionicons@5.5.1/src/svg/terminal-outline.svg":"./terminal-outline.79a23031.svg",".parcel-cache/.net/https/cdn.jsdelivr.net/gh/ionic-team/ionicons@5.5.1/src/svg/arrow-back-outline.svg":"./arrow-back-outline.9ae1bed8.svg",".parcel-cache/.net/https/cdn.jsdelivr.net/gh/ionic-team/ionicons@5.5.1/src/svg/arrow-forward-outline.svg":"./arrow-forward-outline.f5f68f5c.svg",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/@fontsource/roboto-mono@4.4.5/files/roboto-mono-cyrillic-ext-400-normal.woff2":"./roboto-mono-cyrillic-ext-400-normal.dcb520ee.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/@fontsource/roboto-mono@4.4.5/files/roboto-mono-all-400-normal.woff":"./roboto-mono-all-400-normal.364ec368.woff",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/@fontsource/roboto-mono@4.4.5/files/roboto-mono-cyrillic-400-normal.woff2":"./roboto-mono-cyrillic-400-normal.638e826e.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/@fontsource/roboto-mono@4.4.5/files/roboto-mono-greek-400-normal.woff2":"./roboto-mono-greek-400-normal.dd843e41.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/@fontsource/roboto-mono@4.4.5/files/roboto-mono-vietnamese-400-normal.woff2":"./roboto-mono-vietnamese-400-normal.306e7635.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/@fontsource/roboto-mono@4.4.5/files/roboto-mono-latin-ext-400-normal.woff2":"./roboto-mono-latin-ext-400-normal.d9409874.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/@fontsource/roboto-mono@4.4.5/files/roboto-mono-latin-400-normal.woff2":"./roboto-mono-latin-400-normal.cf1eee5f.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/@fontsource/roboto-mono@4.4.5/files/roboto-mono-cyrillic-ext-400-italic.woff2":"./roboto-mono-cyrillic-ext-400-italic.db052448.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/@fontsource/roboto-mono@4.4.5/files/roboto-mono-all-400-italic.woff":"./roboto-mono-all-400-italic.31a14f53.woff",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/@fontsource/roboto-mono@4.4.5/files/roboto-mono-cyrillic-400-italic.woff2":"./roboto-mono-cyrillic-400-italic.e399ed93.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/@fontsource/roboto-mono@4.4.5/files/roboto-mono-greek-400-italic.woff2":"./roboto-mono-greek-400-italic.6f7e0b2f.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/@fontsource/roboto-mono@4.4.5/files/roboto-mono-vietnamese-400-italic.woff2":"./roboto-mono-vietnamese-400-italic.d8e0a32a.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/@fontsource/roboto-mono@4.4.5/files/roboto-mono-latin-ext-400-italic.woff2":"./roboto-mono-latin-ext-400-italic.aaa9a959.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/@fontsource/roboto-mono@4.4.5/files/roboto-mono-latin-400-italic.woff2":"./roboto-mono-latin-400-italic.ef82d48f.woff2","hide-ui.css":"./editor.52bd66ba.css","binder.css":"./editor.ec3a6a5b.css",".parcel-cache/.net/https/cdn.jsdelivr.net/gh/ionic-team/ionicons@5.5.1/src/svg/download-outline.svg":"./download-outline.523a74d8.svg","treeview.css":"./editor.db21a487.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.f866a021.js",".parcel-cache/.net/https/www.gstatic.com/firebasejs/10.8.0/firebase-app.js":"./firebase-app.a89bd3ee.js",".parcel-cache/.net/https/www.gstatic.com/firebasejs/10.8.0/firebase-firestore.js":"./firebase-firestore.2ef1e41a.js",".parcel-cache/.net/https/cdn.jsdelivr.net/gh/ionic-team/ionicons@5.5.1/src/svg/arrow-up-circle-outline.svg":"./arrow-up-circle-outline.3f146ffe.svg",".parcel-cache/.net/https/cdn.jsdelivr.net/gh/ionic-team/ionicons@5.5.1/src/svg/help-circle-outline.svg":"./help-circle-outline.a023036a.svg",".parcel-cache/.net/https/unpkg.com/vmsg@0.4.0/vmsg.wasm":"./vmsg.56bb9389.wasm","warn_old_browsers.js":"./editor.8a3292da.js","index.html":"./index.html","welcome.css":"./index.dbc7264b.css",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/inter-ui@3.19.3/Inter%20(web%20latin)/Inter-Thin.woff2.a3efb88f6f.woff2":"./Inter-Thin.woff2.a3efb88f6f.099a7dc1.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/inter-ui@3.19.3/Inter%20(web%20latin)/Inter-Thin.woff.a3efb88f6f.woff":"./Inter-Thin.woff.a3efb88f6f.832f7e9d.woff",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/inter-ui@3.19.3/Inter%20(web%20latin)/Inter-ThinItalic.woff2.a3efb88f6f.woff2":"./Inter-ThinItalic.woff2.a3efb88f6f.f5b32cfe.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/inter-ui@3.19.3/Inter%20(web%20latin)/Inter-ThinItalic.woff.a3efb88f6f.woff":"./Inter-ThinItalic.woff.a3efb88f6f.9a9e646f.woff",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/inter-ui@3.19.3/Inter%20(web%20latin)/Inter-ExtraLight.woff2.a3efb88f6f.woff2":"./Inter-ExtraLight.woff2.a3efb88f6f.735b820a.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/inter-ui@3.19.3/Inter%20(web%20latin)/Inter-ExtraLight.woff.a3efb88f6f.woff":"./Inter-ExtraLight.woff.a3efb88f6f.018d6d24.woff",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/inter-ui@3.19.3/Inter%20(web%20latin)/Inter-ExtraLightItalic.woff2.a3efb88f6f.woff2":"./Inter-ExtraLightItalic.woff2.a3efb88f6f.75944d4e.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/inter-ui@3.19.3/Inter%20(web%20latin)/Inter-ExtraLightItalic.woff.a3efb88f6f.woff":"./Inter-ExtraLightItalic.woff.a3efb88f6f.c051c5b4.woff",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/inter-ui@3.19.3/Inter%20(web%20latin)/Inter-Light.woff2.a3efb88f6f.woff2":"./Inter-Light.woff2.a3efb88f6f.f86a8a97.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/inter-ui@3.19.3/Inter%20(web%20latin)/Inter-Light.woff.a3efb88f6f.woff":"./Inter-Light.woff.a3efb88f6f.0cf765a1.woff",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/inter-ui@3.19.3/Inter%20(web%20latin)/Inter-LightItalic.woff2.a3efb88f6f.woff2":"./Inter-LightItalic.woff2.a3efb88f6f.cb22faff.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/inter-ui@3.19.3/Inter%20(web%20latin)/Inter-LightItalic.woff.a3efb88f6f.woff":"./Inter-LightItalic.woff.a3efb88f6f.6c91af65.woff",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/inter-ui@3.19.3/Inter%20(web%20latin)/Inter-Regular.woff2.a3efb88f6f.woff2":"./Inter-Regular.woff2.a3efb88f6f.c52a047f.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/inter-ui@3.19.3/Inter%20(web%20latin)/Inter-Regular.woff.a3efb88f6f.woff":"./Inter-Regular.woff.a3efb88f6f.d9325c13.woff",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/inter-ui@3.19.3/Inter%20(web%20latin)/Inter-Italic.woff2.a3efb88f6f.woff2":"./Inter-Italic.woff2.a3efb88f6f.85eee0c1.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/inter-ui@3.19.3/Inter%20(web%20latin)/Inter-Italic.woff.a3efb88f6f.woff":"./Inter-Italic.woff.a3efb88f6f.d9effa31.woff",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/inter-ui@3.19.3/Inter%20(web%20latin)/Inter-Medium.woff2.a3efb88f6f.woff2":"./Inter-Medium.woff2.a3efb88f6f.4f0ea984.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/inter-ui@3.19.3/Inter%20(web%20latin)/Inter-Medium.woff.a3efb88f6f.woff":"./Inter-Medium.woff.a3efb88f6f.cb391d89.woff",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/inter-ui@3.19.3/Inter%20(web%20latin)/Inter-MediumItalic.woff2.a3efb88f6f.woff2":"./Inter-MediumItalic.woff2.a3efb88f6f.2b734b7a.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/inter-ui@3.19.3/Inter%20(web%20latin)/Inter-MediumItalic.woff.a3efb88f6f.woff":"./Inter-MediumItalic.woff.a3efb88f6f.1f636c25.woff",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/inter-ui@3.19.3/Inter%20(web%20latin)/Inter-SemiBold.woff2.a3efb88f6f.woff2":"./Inter-SemiBold.woff2.a3efb88f6f.08366574.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/inter-ui@3.19.3/Inter%20(web%20latin)/Inter-SemiBold.woff.a3efb88f6f.woff":"./Inter-SemiBold.woff.a3efb88f6f.c6670c13.woff",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/inter-ui@3.19.3/Inter%20(web%20latin)/Inter-SemiBoldItalic.woff2.a3efb88f6f.woff2":"./Inter-SemiBoldItalic.woff2.a3efb88f6f.5c7db07d.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/inter-ui@3.19.3/Inter%20(web%20latin)/Inter-SemiBoldItalic.woff.a3efb88f6f.woff":"./Inter-SemiBoldItalic.woff.a3efb88f6f.13394743.woff",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/inter-ui@3.19.3/Inter%20(web%20latin)/Inter-Bold.woff2.a3efb88f6f.woff2":"./Inter-Bold.woff2.a3efb88f6f.e8bd971d.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/inter-ui@3.19.3/Inter%20(web%20latin)/Inter-Bold.woff.a3efb88f6f.woff":"./Inter-Bold.woff.a3efb88f6f.d92ed350.woff",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/inter-ui@3.19.3/Inter%20(web%20latin)/Inter-BoldItalic.woff2.a3efb88f6f.woff2":"./Inter-BoldItalic.woff2.a3efb88f6f.cd6e580e.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/inter-ui@3.19.3/Inter%20(web%20latin)/Inter-BoldItalic.woff.a3efb88f6f.woff":"./Inter-BoldItalic.woff.a3efb88f6f.39f68e5f.woff",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/inter-ui@3.19.3/Inter%20(web%20latin)/Inter-ExtraBold.woff2.a3efb88f6f.woff2":"./Inter-ExtraBold.woff2.a3efb88f6f.ffc04ff0.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/inter-ui@3.19.3/Inter%20(web%20latin)/Inter-ExtraBold.woff.a3efb88f6f.woff":"./Inter-ExtraBold.woff.a3efb88f6f.cd51bf91.woff",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/inter-ui@3.19.3/Inter%20(web%20latin)/Inter-ExtraBoldItalic.woff2.a3efb88f6f.woff2":"./Inter-ExtraBoldItalic.woff2.a3efb88f6f.de4f3979.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/inter-ui@3.19.3/Inter%20(web%20latin)/Inter-ExtraBoldItalic.woff.a3efb88f6f.woff":"./Inter-ExtraBoldItalic.woff.a3efb88f6f.122106d3.woff",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/inter-ui@3.19.3/Inter%20(web%20latin)/Inter-Black.woff2.a3efb88f6f.woff2":"./Inter-Black.woff2.a3efb88f6f.1f333c9f.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/inter-ui@3.19.3/Inter%20(web%20latin)/Inter-Black.woff.a3efb88f6f.woff":"./Inter-Black.woff.a3efb88f6f.efe3f25b.woff",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/inter-ui@3.19.3/Inter%20(web%20latin)/Inter-BlackItalic.woff2.a3efb88f6f.woff2":"./Inter-BlackItalic.woff2.a3efb88f6f.89710fff.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/inter-ui@3.19.3/Inter%20(web%20latin)/Inter-BlackItalic.woff.a3efb88f6f.woff":"./Inter-BlackItalic.woff.a3efb88f6f.f6e2e726.woff",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/inter-ui@3.19.3/Inter%20(web%20latin)/Inter-roman.var.woff2.a3efb88f6f.woff2":"./Inter-roman.var.woff2.a3efb88f6f.8120837c.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/inter-ui@3.19.3/Inter%20(web%20latin)/Inter-italic.var.woff2.a3efb88f6f.woff2":"./Inter-italic.var.woff2.a3efb88f6f.e62a3bb2.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/inter-ui@3.19.3/Inter%20(web%20latin)/Inter.var.woff2.a3efb88f6f.woff2":"./Inter.var.woff2.a3efb88f6f.ca82f9aa.woff2","index.css":"./index.61105732.css",".parcel-cache/.net/https/cdn.jsdelivr.net/gh/ionic-team/ionicons@5.5.1/src/svg/close-circle.svg":"./close-circle.d0f6eac6.svg",".parcel-cache/.net/https/cdn.jsdelivr.net/gh/ionic-team/ionicons@5.5.1/src/svg/ellipsis-horizontal-outline.svg":"./ellipsis-horizontal-outline.abb6e818.svg","index.js":"./index.6587449d.js","error.jl.html":"./error.jl.html"} \ No newline at end of file diff --git a/frontend-dist/pulse.27a877a7.svg b/frontend-dist/pulse.27a877a7.svg new file mode 100644 index 0000000000..3251eb43e8 --- /dev/null +++ b/frontend-dist/pulse.27a877a7.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend-dist/radio-button-on-outline.778acac1.svg b/frontend-dist/radio-button-on-outline.778acac1.svg new file mode 100644 index 0000000000..061b534687 --- /dev/null +++ b/frontend-dist/radio-button-on-outline.778acac1.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend-dist/roboto-mono-all-400-italic.31a14f53.woff b/frontend-dist/roboto-mono-all-400-italic.31a14f53.woff new file mode 100644 index 0000000000..723ffe83fc Binary files /dev/null and b/frontend-dist/roboto-mono-all-400-italic.31a14f53.woff differ diff --git a/frontend-dist/roboto-mono-all-400-normal.364ec368.woff b/frontend-dist/roboto-mono-all-400-normal.364ec368.woff new file mode 100644 index 0000000000..379f9ae197 Binary files /dev/null and b/frontend-dist/roboto-mono-all-400-normal.364ec368.woff differ diff --git a/frontend-dist/roboto-mono-all-500-normal.cc559149.woff b/frontend-dist/roboto-mono-all-500-normal.cc559149.woff new file mode 100644 index 0000000000..6fc0cbe59e Binary files /dev/null and b/frontend-dist/roboto-mono-all-500-normal.cc559149.woff differ diff --git a/frontend-dist/roboto-mono-all-700-normal.393c796d.woff b/frontend-dist/roboto-mono-all-700-normal.393c796d.woff new file mode 100644 index 0000000000..bd2a43d0aa Binary files /dev/null and b/frontend-dist/roboto-mono-all-700-normal.393c796d.woff differ diff --git a/frontend-dist/roboto-mono-cyrillic-400-italic.e399ed93.woff2 b/frontend-dist/roboto-mono-cyrillic-400-italic.e399ed93.woff2 new file mode 100644 index 0000000000..8695ed91d2 Binary files /dev/null and b/frontend-dist/roboto-mono-cyrillic-400-italic.e399ed93.woff2 differ diff --git a/frontend-dist/roboto-mono-cyrillic-400-normal.638e826e.woff2 b/frontend-dist/roboto-mono-cyrillic-400-normal.638e826e.woff2 new file mode 100644 index 0000000000..68b8a8dc8c Binary files /dev/null and b/frontend-dist/roboto-mono-cyrillic-400-normal.638e826e.woff2 differ diff --git a/frontend-dist/roboto-mono-cyrillic-500-normal.8ed3add8.woff2 b/frontend-dist/roboto-mono-cyrillic-500-normal.8ed3add8.woff2 new file mode 100644 index 0000000000..c307876e05 Binary files /dev/null and b/frontend-dist/roboto-mono-cyrillic-500-normal.8ed3add8.woff2 differ diff --git a/frontend-dist/roboto-mono-cyrillic-700-normal.5e6410cf.woff2 b/frontend-dist/roboto-mono-cyrillic-700-normal.5e6410cf.woff2 new file mode 100644 index 0000000000..1967932dfe Binary files /dev/null and b/frontend-dist/roboto-mono-cyrillic-700-normal.5e6410cf.woff2 differ diff --git a/frontend-dist/roboto-mono-cyrillic-ext-400-italic.db052448.woff2 b/frontend-dist/roboto-mono-cyrillic-ext-400-italic.db052448.woff2 new file mode 100644 index 0000000000..85a9f5b370 Binary files /dev/null and b/frontend-dist/roboto-mono-cyrillic-ext-400-italic.db052448.woff2 differ diff --git a/frontend-dist/roboto-mono-cyrillic-ext-400-normal.dcb520ee.woff2 b/frontend-dist/roboto-mono-cyrillic-ext-400-normal.dcb520ee.woff2 new file mode 100644 index 0000000000..1630ec9c56 Binary files /dev/null and b/frontend-dist/roboto-mono-cyrillic-ext-400-normal.dcb520ee.woff2 differ diff --git a/frontend-dist/roboto-mono-cyrillic-ext-500-normal.d362a132.woff2 b/frontend-dist/roboto-mono-cyrillic-ext-500-normal.d362a132.woff2 new file mode 100644 index 0000000000..b34eed9747 Binary files /dev/null and b/frontend-dist/roboto-mono-cyrillic-ext-500-normal.d362a132.woff2 differ diff --git a/frontend-dist/roboto-mono-cyrillic-ext-700-normal.5c7aabac.woff2 b/frontend-dist/roboto-mono-cyrillic-ext-700-normal.5c7aabac.woff2 new file mode 100644 index 0000000000..a89f2e8413 Binary files /dev/null and b/frontend-dist/roboto-mono-cyrillic-ext-700-normal.5c7aabac.woff2 differ diff --git a/frontend-dist/roboto-mono-greek-400-italic.6f7e0b2f.woff2 b/frontend-dist/roboto-mono-greek-400-italic.6f7e0b2f.woff2 new file mode 100644 index 0000000000..7bab226ca5 Binary files /dev/null and b/frontend-dist/roboto-mono-greek-400-italic.6f7e0b2f.woff2 differ diff --git a/frontend-dist/roboto-mono-greek-400-normal.dd843e41.woff2 b/frontend-dist/roboto-mono-greek-400-normal.dd843e41.woff2 new file mode 100644 index 0000000000..466f9ec13f Binary files /dev/null and b/frontend-dist/roboto-mono-greek-400-normal.dd843e41.woff2 differ diff --git a/frontend-dist/roboto-mono-greek-500-normal.dd57b097.woff2 b/frontend-dist/roboto-mono-greek-500-normal.dd57b097.woff2 new file mode 100644 index 0000000000..72f600238f Binary files /dev/null and b/frontend-dist/roboto-mono-greek-500-normal.dd57b097.woff2 differ diff --git a/frontend-dist/roboto-mono-greek-700-normal.b101f80c.woff2 b/frontend-dist/roboto-mono-greek-700-normal.b101f80c.woff2 new file mode 100644 index 0000000000..9ab1293a88 Binary files /dev/null and b/frontend-dist/roboto-mono-greek-700-normal.b101f80c.woff2 differ diff --git a/frontend-dist/roboto-mono-latin-400-italic.ef82d48f.woff2 b/frontend-dist/roboto-mono-latin-400-italic.ef82d48f.woff2 new file mode 100644 index 0000000000..721ca2e93a Binary files /dev/null and b/frontend-dist/roboto-mono-latin-400-italic.ef82d48f.woff2 differ diff --git a/frontend-dist/roboto-mono-latin-400-normal.cf1eee5f.woff2 b/frontend-dist/roboto-mono-latin-400-normal.cf1eee5f.woff2 new file mode 100644 index 0000000000..ed384d22fd Binary files /dev/null and b/frontend-dist/roboto-mono-latin-400-normal.cf1eee5f.woff2 differ diff --git a/frontend-dist/roboto-mono-latin-500-normal.98ad1d4e.woff2 b/frontend-dist/roboto-mono-latin-500-normal.98ad1d4e.woff2 new file mode 100644 index 0000000000..01b58ed2c5 Binary files /dev/null and b/frontend-dist/roboto-mono-latin-500-normal.98ad1d4e.woff2 differ diff --git a/frontend-dist/roboto-mono-latin-700-normal.447ac127.woff2 b/frontend-dist/roboto-mono-latin-700-normal.447ac127.woff2 new file mode 100644 index 0000000000..c89a6eb38c Binary files /dev/null and b/frontend-dist/roboto-mono-latin-700-normal.447ac127.woff2 differ diff --git a/frontend-dist/roboto-mono-latin-ext-400-italic.aaa9a959.woff2 b/frontend-dist/roboto-mono-latin-ext-400-italic.aaa9a959.woff2 new file mode 100644 index 0000000000..9831c28b9e Binary files /dev/null and b/frontend-dist/roboto-mono-latin-ext-400-italic.aaa9a959.woff2 differ diff --git a/frontend-dist/roboto-mono-latin-ext-400-normal.d9409874.woff2 b/frontend-dist/roboto-mono-latin-ext-400-normal.d9409874.woff2 new file mode 100644 index 0000000000..d4f9a09cca Binary files /dev/null and b/frontend-dist/roboto-mono-latin-ext-400-normal.d9409874.woff2 differ diff --git a/frontend-dist/roboto-mono-latin-ext-500-normal.415f7d14.woff2 b/frontend-dist/roboto-mono-latin-ext-500-normal.415f7d14.woff2 new file mode 100644 index 0000000000..77a97cf73e Binary files /dev/null and b/frontend-dist/roboto-mono-latin-ext-500-normal.415f7d14.woff2 differ diff --git a/frontend-dist/roboto-mono-latin-ext-700-normal.c497b002.woff2 b/frontend-dist/roboto-mono-latin-ext-700-normal.c497b002.woff2 new file mode 100644 index 0000000000..9b733dd3cc Binary files /dev/null and b/frontend-dist/roboto-mono-latin-ext-700-normal.c497b002.woff2 differ diff --git a/frontend-dist/roboto-mono-vietnamese-400-italic.d8e0a32a.woff2 b/frontend-dist/roboto-mono-vietnamese-400-italic.d8e0a32a.woff2 new file mode 100644 index 0000000000..2ec55df09d Binary files /dev/null and b/frontend-dist/roboto-mono-vietnamese-400-italic.d8e0a32a.woff2 differ diff --git a/frontend-dist/roboto-mono-vietnamese-400-normal.306e7635.woff2 b/frontend-dist/roboto-mono-vietnamese-400-normal.306e7635.woff2 new file mode 100644 index 0000000000..2cf6dfc420 Binary files /dev/null and b/frontend-dist/roboto-mono-vietnamese-400-normal.306e7635.woff2 differ diff --git a/frontend-dist/roboto-mono-vietnamese-500-normal.1320bb60.woff2 b/frontend-dist/roboto-mono-vietnamese-500-normal.1320bb60.woff2 new file mode 100644 index 0000000000..3ab766e250 Binary files /dev/null and b/frontend-dist/roboto-mono-vietnamese-500-normal.1320bb60.woff2 differ diff --git a/frontend-dist/roboto-mono-vietnamese-700-normal.edb1435b.woff2 b/frontend-dist/roboto-mono-vietnamese-700-normal.edb1435b.woff2 new file mode 100644 index 0000000000..12357bd521 Binary files /dev/null and b/frontend-dist/roboto-mono-vietnamese-700-normal.edb1435b.woff2 differ diff --git a/frontend-dist/search.1ca5b3b3.svg b/frontend-dist/search.1ca5b3b3.svg new file mode 100644 index 0000000000..c6b864ae91 --- /dev/null +++ b/frontend-dist/search.1ca5b3b3.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend-dist/share-outline.50164ded.svg b/frontend-dist/share-outline.50164ded.svg new file mode 100644 index 0000000000..601cb684ac --- /dev/null +++ b/frontend-dist/share-outline.50164ded.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend-dist/stop-circle-outline.6623356d.svg b/frontend-dist/stop-circle-outline.6623356d.svg new file mode 100644 index 0000000000..30addb7f98 --- /dev/null +++ b/frontend-dist/stop-circle-outline.6623356d.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend-dist/sync-circle-outline.65b15d76.svg b/frontend-dist/sync-circle-outline.65b15d76.svg new file mode 100644 index 0000000000..3b41a36e9b --- /dev/null +++ b/frontend-dist/sync-circle-outline.65b15d76.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend-dist/sync-outline.9a1bd27b.svg b/frontend-dist/sync-outline.9a1bd27b.svg new file mode 100644 index 0000000000..9f69e76f35 --- /dev/null +++ b/frontend-dist/sync-outline.9a1bd27b.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend-dist/terminal-outline.79a23031.svg b/frontend-dist/terminal-outline.79a23031.svg new file mode 100644 index 0000000000..99c52751a3 --- /dev/null +++ b/frontend-dist/terminal-outline.79a23031.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend-dist/terminal.6b804248.svg b/frontend-dist/terminal.6b804248.svg new file mode 100644 index 0000000000..030b7bb4ef --- /dev/null +++ b/frontend-dist/terminal.6b804248.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend-dist/time-outline.7c1877f0.svg b/frontend-dist/time-outline.7c1877f0.svg new file mode 100644 index 0000000000..b4d1371332 --- /dev/null +++ b/frontend-dist/time-outline.7c1877f0.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend-dist/vmsg.56bb9389.wasm b/frontend-dist/vmsg.56bb9389.wasm new file mode 100644 index 0000000000..224bcc7fd1 Binary files /dev/null and b/frontend-dist/vmsg.56bb9389.wasm differ diff --git a/frontend-dist/vollkorn.089565a8.css b/frontend-dist/vollkorn.089565a8.css new file mode 100644 index 0000000000..83907db83a --- /dev/null +++ b/frontend-dist/vollkorn.089565a8.css @@ -0,0 +1 @@ +@font-face{font-display:swap;font-family:Vollkorn;font-weight:600;src:url(Vollkorn-SemiBold.8072eb6c.woff2) format("woff2")}@font-face{font-display:swap;font-family:Vollkorn;font-style:italic;font-weight:600;src:url(Vollkorn-SemiBoldItalic.5c3cd265.woff2) format("woff2")}@font-face{font-display:swap;font-family:Vollkorn;font-weight:700;src:url(Vollkorn-Bold.6e1feb70.woff2) format("woff2")}@font-face{font-display:swap;font-family:Vollkorn;font-style:italic;font-weight:700;src:url(Vollkorn-BoldItalic.a48ab300.woff2) format("woff2")}@font-face{font-display:swap;font-family:Vollkorn;font-weight:900;src:url(Vollkorn-Black.0ebdfbf5.woff2) format("woff2")}@font-face{font-display:swap;font-family:Vollkorn;font-style:italic;font-weight:900;src:url(Vollkorn-BlackItalic.4095acfe.woff2) format("woff2")} \ No newline at end of file diff --git a/frontend-dist/warning-outline.d84ed9e8.svg b/frontend-dist/warning-outline.d84ed9e8.svg new file mode 100644 index 0000000000..df490bfa15 --- /dev/null +++ b/frontend-dist/warning-outline.d84ed9e8.svg @@ -0,0 +1 @@ + \ No newline at end of file