zudoku 0.0.0-ff3bc72 → 0.0.0-firebase-fixes.777fd2c0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +141 -0
- package/cli.js +12 -2
- package/client.d.ts +7 -0
- package/dist/app/ZuploBuildConfig.d.ts +45 -0
- package/dist/app/ZuploBuildConfig.js +29 -0
- package/dist/app/ZuploBuildConfig.js.map +1 -0
- package/dist/app/demo.js +23 -10
- package/dist/app/demo.js.map +1 -1
- package/dist/app/entry.client.d.ts +6 -2
- package/dist/app/entry.client.js +56 -7
- package/dist/app/entry.client.js.map +1 -1
- package/dist/app/entry.server.d.ts +9 -8
- package/dist/app/entry.server.js +36 -18
- package/dist/app/entry.server.js.map +1 -1
- package/dist/app/env.d.ts +33 -0
- package/dist/app/env.js +37 -0
- package/dist/app/env.js.map +1 -0
- package/dist/app/main.d.ts +94 -2
- package/dist/app/main.js +64 -70
- package/dist/app/main.js.map +1 -1
- package/dist/app/sentry.d.ts +3 -0
- package/dist/app/sentry.js +19 -0
- package/dist/app/sentry.js.map +1 -0
- package/dist/app/standalone.js +12 -11
- package/dist/app/standalone.js.map +1 -1
- package/dist/cli/build/handler.d.ts +1 -3
- package/dist/cli/build/handler.js +18 -2
- package/dist/cli/build/handler.js.map +1 -1
- package/dist/cli/cli.d.ts +9 -0
- package/dist/cli/cli.js +23 -15
- package/dist/cli/cli.js.map +1 -1
- package/dist/cli/cmds/build.d.ts +11 -3
- package/dist/cli/cmds/build.js +21 -13
- package/dist/cli/cmds/build.js.map +1 -1
- package/dist/cli/cmds/dev.d.ts +1 -1
- package/dist/cli/cmds/dev.js +5 -0
- package/dist/cli/cmds/dev.js.map +1 -1
- package/dist/cli/cmds/preview.d.ts +16 -0
- package/dist/cli/cmds/preview.js +25 -0
- package/dist/cli/cmds/preview.js.map +1 -0
- package/dist/cli/common/analytics/lib.js +1 -1
- package/dist/cli/common/analytics/lib.js.map +1 -1
- package/dist/cli/common/logger.js +8 -0
- package/dist/cli/common/logger.js.map +1 -1
- package/dist/cli/common/machine-id/lib.js +3 -1
- package/dist/cli/common/machine-id/lib.js.map +1 -1
- package/dist/cli/common/outdated.js +4 -2
- package/dist/cli/common/outdated.js.map +1 -1
- package/dist/cli/common/output.js +2 -3
- package/dist/cli/common/output.js.map +1 -1
- package/dist/cli/common/utils/box.js +2 -2
- package/dist/cli/common/utils/box.js.map +1 -1
- package/dist/cli/common/utils/ports.d.ts +1 -1
- package/dist/cli/common/utils/ports.js +16 -15
- package/dist/cli/common/utils/ports.js.map +1 -1
- package/dist/cli/common/validators/lib.js +1 -1
- package/dist/cli/common/validators/lib.js.map +1 -1
- package/dist/cli/common/version-check.d.ts +2 -0
- package/dist/cli/common/version-check.js +58 -0
- package/dist/cli/common/version-check.js.map +1 -0
- package/dist/cli/dev/handler.d.ts +1 -0
- package/dist/cli/dev/handler.js +15 -16
- package/dist/cli/dev/handler.js.map +1 -1
- package/dist/cli/preview/handler.d.ts +3 -0
- package/dist/cli/preview/handler.js +35 -0
- package/dist/cli/preview/handler.js.map +1 -0
- package/dist/codegen.d.ts +3 -0
- package/dist/codegen.js +45 -0
- package/dist/codegen.js.map +1 -0
- package/dist/config/config.d.ts +21 -31
- package/dist/config/file-exists.d.ts +1 -0
- package/dist/config/file-exists.js +5 -0
- package/dist/config/file-exists.js.map +1 -0
- package/dist/config/loader.d.ts +21 -0
- package/dist/config/loader.js +141 -0
- package/dist/config/loader.js.map +1 -0
- package/dist/config/validators/BuildSchema.d.ts +44 -0
- package/dist/config/validators/BuildSchema.js +57 -0
- package/dist/config/validators/BuildSchema.js.map +1 -0
- package/dist/config/validators/InputNavigationSchema.d.ts +7646 -0
- package/dist/config/validators/InputNavigationSchema.js +78 -0
- package/dist/config/validators/InputNavigationSchema.js.map +1 -0
- package/dist/config/validators/InputNavigationSchema.test-d.js +146 -0
- package/dist/config/validators/InputNavigationSchema.test-d.js.map +1 -0
- package/dist/config/validators/NavigationSchema.d.ts +44 -0
- package/dist/config/validators/NavigationSchema.js +96 -0
- package/dist/config/validators/NavigationSchema.js.map +1 -0
- package/dist/config/validators/ProtectedRoutesSchema.d.ts +13 -0
- package/dist/config/validators/ProtectedRoutesSchema.js +10 -0
- package/dist/config/validators/ProtectedRoutesSchema.js.map +1 -0
- package/dist/config/validators/auth.d.ts +2 -2
- package/dist/config/validators/auth.js +1 -1
- package/dist/config/validators/auth.js.map +1 -1
- package/dist/config/validators/icon-types.d.ts +2 -0
- package/dist/config/validators/icon-types.js +1873 -0
- package/dist/config/validators/icon-types.js.map +1 -0
- package/dist/config/validators/validate.d.ts +925 -1421
- package/dist/config/validators/validate.js +424 -136
- package/dist/config/validators/validate.js.map +1 -1
- package/dist/config/validators/validate.test.js +183 -0
- package/dist/config/validators/validate.test.js.map +1 -0
- package/dist/flat-config.d.ts +386 -0
- package/dist/index.d.ts +11 -2
- package/dist/index.js +6 -1
- package/dist/index.js.map +1 -1
- package/dist/lib/MissingIcon.d.ts +2 -0
- package/dist/lib/MissingIcon.js +7 -0
- package/dist/lib/MissingIcon.js.map +1 -0
- package/dist/lib/assets/language-icons/c.d.ts +3 -0
- package/dist/lib/assets/language-icons/c.js +4 -0
- package/dist/lib/assets/language-icons/c.js.map +1 -0
- package/dist/lib/assets/language-icons/commonlisp.d.ts +3 -0
- package/dist/lib/assets/language-icons/commonlisp.js +4 -0
- package/dist/lib/assets/language-icons/commonlisp.js.map +1 -0
- package/dist/lib/assets/language-icons/cpp.d.ts +3 -0
- package/dist/lib/assets/language-icons/cpp.js +4 -0
- package/dist/lib/assets/language-icons/cpp.js.map +1 -0
- package/dist/lib/assets/language-icons/csharp.d.ts +3 -0
- package/dist/lib/assets/language-icons/csharp.js +4 -0
- package/dist/lib/assets/language-icons/csharp.js.map +1 -0
- package/dist/lib/assets/language-icons/css.d.ts +3 -0
- package/dist/lib/assets/language-icons/css.js +4 -0
- package/dist/lib/assets/language-icons/css.js.map +1 -0
- package/dist/lib/assets/language-icons/dart.d.ts +3 -0
- package/dist/lib/assets/language-icons/dart.js +4 -0
- package/dist/lib/assets/language-icons/dart.js.map +1 -0
- package/dist/lib/assets/language-icons/elixir.d.ts +3 -0
- package/dist/lib/assets/language-icons/elixir.js +4 -0
- package/dist/lib/assets/language-icons/elixir.js.map +1 -0
- package/dist/lib/assets/language-icons/go.d.ts +3 -0
- package/dist/lib/assets/language-icons/go.js +4 -0
- package/dist/lib/assets/language-icons/go.js.map +1 -0
- package/dist/lib/assets/language-icons/graphql.d.ts +3 -0
- package/dist/lib/assets/language-icons/graphql.js +4 -0
- package/dist/lib/assets/language-icons/graphql.js.map +1 -0
- package/dist/lib/assets/language-icons/html.d.ts +3 -0
- package/dist/lib/assets/language-icons/html.js +4 -0
- package/dist/lib/assets/language-icons/html.js.map +1 -0
- package/dist/lib/assets/language-icons/java.d.ts +3 -0
- package/dist/lib/assets/language-icons/java.js +4 -0
- package/dist/lib/assets/language-icons/java.js.map +1 -0
- package/dist/lib/assets/language-icons/javascript.d.ts +3 -0
- package/dist/lib/assets/language-icons/javascript.js +4 -0
- package/dist/lib/assets/language-icons/javascript.js.map +1 -0
- package/dist/lib/assets/language-icons/json.d.ts +3 -0
- package/dist/lib/assets/language-icons/json.js +4 -0
- package/dist/lib/assets/language-icons/json.js.map +1 -0
- package/dist/lib/assets/language-icons/kotlin.d.ts +3 -0
- package/dist/lib/assets/language-icons/kotlin.js +4 -0
- package/dist/lib/assets/language-icons/kotlin.js.map +1 -0
- package/dist/lib/assets/language-icons/markdown.d.ts +3 -0
- package/dist/lib/assets/language-icons/markdown.js +4 -0
- package/dist/lib/assets/language-icons/markdown.js.map +1 -0
- package/dist/lib/assets/language-icons/mdx.d.ts +3 -0
- package/dist/lib/assets/language-icons/mdx.js +4 -0
- package/dist/lib/assets/language-icons/mdx.js.map +1 -0
- package/dist/lib/assets/language-icons/objectivec.d.ts +3 -0
- package/dist/lib/assets/language-icons/objectivec.js +4 -0
- package/dist/lib/assets/language-icons/objectivec.js.map +1 -0
- package/dist/lib/assets/language-icons/ocaml.d.ts +3 -0
- package/dist/lib/assets/language-icons/ocaml.js +4 -0
- package/dist/lib/assets/language-icons/ocaml.js.map +1 -0
- package/dist/lib/assets/language-icons/php.d.ts +3 -0
- package/dist/lib/assets/language-icons/php.js +4 -0
- package/dist/lib/assets/language-icons/php.js.map +1 -0
- package/dist/lib/assets/language-icons/powershell.d.ts +3 -0
- package/dist/lib/assets/language-icons/powershell.js +4 -0
- package/dist/lib/assets/language-icons/powershell.js.map +1 -0
- package/dist/lib/assets/language-icons/python.d.ts +3 -0
- package/dist/lib/assets/language-icons/python.js +4 -0
- package/dist/lib/assets/language-icons/python.js.map +1 -0
- package/dist/lib/assets/language-icons/react.d.ts +3 -0
- package/dist/lib/assets/language-icons/react.js +4 -0
- package/dist/lib/assets/language-icons/react.js.map +1 -0
- package/dist/lib/assets/language-icons/ruby.d.ts +3 -0
- package/dist/lib/assets/language-icons/ruby.js +4 -0
- package/dist/lib/assets/language-icons/ruby.js.map +1 -0
- package/dist/lib/assets/language-icons/rust.d.ts +3 -0
- package/dist/lib/assets/language-icons/rust.js +4 -0
- package/dist/lib/assets/language-icons/rust.js.map +1 -0
- package/dist/lib/assets/language-icons/scala.d.ts +3 -0
- package/dist/lib/assets/language-icons/scala.js +4 -0
- package/dist/lib/assets/language-icons/scala.js.map +1 -0
- package/dist/lib/assets/language-icons/shell.d.ts +3 -0
- package/dist/lib/assets/language-icons/shell.js +4 -0
- package/dist/lib/assets/language-icons/shell.js.map +1 -0
- package/dist/lib/assets/language-icons/swift.d.ts +3 -0
- package/dist/lib/assets/language-icons/swift.js +4 -0
- package/dist/lib/assets/language-icons/swift.js.map +1 -0
- package/dist/lib/assets/language-icons/toml.d.ts +3 -0
- package/dist/lib/assets/language-icons/toml.js +4 -0
- package/dist/lib/assets/language-icons/toml.js.map +1 -0
- package/dist/lib/assets/language-icons/typescript.d.ts +3 -0
- package/dist/lib/assets/language-icons/typescript.js +4 -0
- package/dist/lib/assets/language-icons/typescript.js.map +1 -0
- package/dist/lib/assets/language-icons/xml.d.ts +3 -0
- package/dist/lib/assets/language-icons/xml.js +4 -0
- package/dist/lib/assets/language-icons/xml.js.map +1 -0
- package/dist/lib/assets/language-icons/yaml.d.ts +3 -0
- package/dist/lib/assets/language-icons/yaml.js +4 -0
- package/dist/lib/assets/language-icons/yaml.js.map +1 -0
- package/dist/lib/assets/language-icons/zig.d.ts +3 -0
- package/dist/lib/assets/language-icons/zig.js +4 -0
- package/dist/lib/assets/language-icons/zig.js.map +1 -0
- package/dist/lib/auth/issuer.d.ts +2 -0
- package/dist/lib/auth/issuer.js +40 -0
- package/dist/lib/auth/issuer.js.map +1 -0
- package/dist/lib/auth/issuer.test.js +95 -0
- package/dist/lib/auth/issuer.test.js.map +1 -0
- package/dist/lib/authentication/AuthenticationPlugin.d.ts +6 -4
- package/dist/lib/authentication/AuthenticationPlugin.js +4 -1
- package/dist/lib/authentication/AuthenticationPlugin.js.map +1 -1
- package/dist/lib/authentication/authentication.d.ts +22 -15
- package/dist/lib/authentication/components/CallbackHandler.js +27 -31
- package/dist/lib/authentication/components/CallbackHandler.js.map +1 -1
- package/dist/lib/authentication/components/OAuthErrorPage.d.ts +3 -0
- package/dist/lib/authentication/components/OAuthErrorPage.js +99 -0
- package/dist/lib/authentication/components/OAuthErrorPage.js.map +1 -0
- package/dist/lib/authentication/components/SignIn.d.ts +1 -1
- package/dist/lib/authentication/components/SignIn.js +12 -7
- package/dist/lib/authentication/components/SignIn.js.map +1 -1
- package/dist/lib/authentication/components/SignOut.js +6 -6
- package/dist/lib/authentication/components/SignOut.js.map +1 -1
- package/dist/lib/authentication/components/SignUp.d.ts +1 -1
- package/dist/lib/authentication/components/SignUp.js +8 -5
- package/dist/lib/authentication/components/SignUp.js.map +1 -1
- package/dist/lib/authentication/errors.d.ts +6 -12
- package/dist/lib/authentication/errors.js +2 -1
- package/dist/lib/authentication/errors.js.map +1 -1
- package/dist/lib/authentication/hook.d.ts +15 -5
- package/dist/lib/authentication/hook.js +19 -7
- package/dist/lib/authentication/hook.js.map +1 -1
- package/dist/lib/authentication/providers/auth0.d.ts +2 -2
- package/dist/lib/authentication/providers/auth0.js +25 -14
- package/dist/lib/authentication/providers/auth0.js.map +1 -1
- package/dist/lib/authentication/providers/azureb2c.d.ts +28 -0
- package/dist/lib/authentication/providers/azureb2c.js +147 -0
- package/dist/lib/authentication/providers/azureb2c.js.map +1 -0
- package/dist/lib/authentication/providers/clerk.d.ts +2 -2
- package/dist/lib/authentication/providers/clerk.js +111 -49
- package/dist/lib/authentication/providers/clerk.js.map +1 -1
- package/dist/lib/authentication/providers/firebase.d.ts +4 -0
- package/dist/lib/authentication/providers/firebase.js +222 -0
- package/dist/lib/authentication/providers/firebase.js.map +1 -0
- package/dist/lib/authentication/providers/openid.d.ts +29 -24
- package/dist/lib/authentication/providers/openid.js +115 -74
- package/dist/lib/authentication/providers/openid.js.map +1 -1
- package/dist/lib/authentication/providers/supabase/SupabaseAuthUI.d.ts +8 -0
- package/dist/lib/authentication/providers/supabase/SupabaseAuthUI.js +39 -0
- package/dist/lib/authentication/providers/supabase/SupabaseAuthUI.js.map +1 -0
- package/dist/lib/authentication/providers/supabase.d.ts +4 -0
- package/dist/lib/authentication/providers/supabase.js +108 -0
- package/dist/lib/authentication/providers/supabase.js.map +1 -0
- package/dist/lib/authentication/state.d.ts +22 -19
- package/dist/lib/authentication/state.js +35 -7
- package/dist/lib/authentication/state.js.map +1 -1
- package/dist/lib/authentication/ui/ZudokuAuthUi.d.ts +26 -0
- package/dist/lib/authentication/ui/ZudokuAuthUi.js +139 -0
- package/dist/lib/authentication/ui/ZudokuAuthUi.js.map +1 -0
- package/dist/lib/authentication/ui/icons/Apple.d.ts +3 -0
- package/dist/lib/authentication/ui/icons/Apple.js +4 -0
- package/dist/lib/authentication/ui/icons/Apple.js.map +1 -0
- package/dist/lib/authentication/ui/icons/Facebook.d.ts +3 -0
- package/dist/lib/authentication/ui/icons/Facebook.js +4 -0
- package/dist/lib/authentication/ui/icons/Facebook.js.map +1 -0
- package/dist/lib/authentication/ui/icons/Github.d.ts +3 -0
- package/dist/lib/authentication/ui/icons/Github.js +4 -0
- package/dist/lib/authentication/ui/icons/Github.js.map +1 -0
- package/dist/lib/authentication/ui/icons/Google.d.ts +3 -0
- package/dist/lib/authentication/ui/icons/Google.js +4 -0
- package/dist/lib/authentication/ui/icons/Google.js.map +1 -0
- package/dist/lib/authentication/ui/icons/Microsoft.d.ts +3 -0
- package/dist/lib/authentication/ui/icons/Microsoft.js +4 -0
- package/dist/lib/authentication/ui/icons/Microsoft.js.map +1 -0
- package/dist/lib/authentication/ui/icons/X.d.ts +3 -0
- package/dist/lib/authentication/ui/icons/X.js +4 -0
- package/dist/lib/authentication/ui/icons/X.js.map +1 -0
- package/dist/lib/authentication/use-broadcast/shared.d.ts +48 -0
- package/dist/lib/authentication/use-broadcast/shared.js +243 -0
- package/dist/lib/authentication/use-broadcast/shared.js.map +1 -0
- package/dist/lib/authentication/use-broadcast/useBroadcast.d.ts +24 -0
- package/dist/lib/authentication/use-broadcast/useBroadcast.js +106 -0
- package/dist/lib/authentication/use-broadcast/useBroadcast.js.map +1 -0
- package/dist/lib/components/AnchorLink.d.ts +2 -2
- package/dist/lib/components/AnchorLink.js +9 -5
- package/dist/lib/components/AnchorLink.js.map +1 -1
- package/dist/lib/components/Autocomplete.d.ts +15 -0
- package/dist/lib/components/Autocomplete.js +51 -0
- package/dist/lib/components/Autocomplete.js.map +1 -0
- package/dist/lib/components/Banner.js +2 -2
- package/dist/lib/components/Banner.js.map +1 -1
- package/dist/lib/components/Bootstrap.d.ts +5 -3
- package/dist/lib/components/Bootstrap.js +13 -6
- package/dist/lib/components/Bootstrap.js.map +1 -1
- package/dist/lib/components/BuildCheck.d.ts +5 -0
- package/dist/lib/components/BuildCheck.js +45 -0
- package/dist/lib/components/BuildCheck.js.map +1 -0
- package/dist/lib/components/CategoryHeading.js +1 -1
- package/dist/lib/components/CategoryHeading.js.map +1 -1
- package/dist/lib/components/ClientOnly.d.ts +4 -2
- package/dist/lib/components/ClientOnly.js +1 -1
- package/dist/lib/components/ClientOnly.js.map +1 -1
- package/dist/lib/components/DeveloperHint.js +2 -1
- package/dist/lib/components/DeveloperHint.js.map +1 -1
- package/dist/lib/components/ErrorPage.js +2 -2
- package/dist/lib/components/ErrorPage.js.map +1 -1
- package/dist/lib/components/Footer.d.ts +1 -0
- package/dist/lib/components/Footer.js +32 -0
- package/dist/lib/components/Footer.js.map +1 -0
- package/dist/lib/components/Framed.d.ts +7 -0
- package/dist/lib/components/Framed.js +26 -0
- package/dist/lib/components/Framed.js.map +1 -0
- package/dist/lib/components/Header.js +32 -14
- package/dist/lib/components/Header.js.map +1 -1
- package/dist/lib/components/Heading.d.ts +10 -6
- package/dist/lib/components/Heading.js +4 -3
- package/dist/lib/components/Heading.js.map +1 -1
- package/dist/lib/components/InlineCode.d.ts +2 -1
- package/dist/lib/components/InlineCode.js +2 -9
- package/dist/lib/components/InlineCode.js.map +1 -1
- package/dist/lib/components/LanguageIcon.d.ts +3 -0
- package/dist/lib/components/LanguageIcon.js +163 -0
- package/dist/lib/components/LanguageIcon.js.map +1 -0
- package/dist/lib/components/Layout.js +11 -24
- package/dist/lib/components/Layout.js.map +1 -1
- package/dist/lib/components/Main.d.ts +2 -0
- package/dist/lib/components/Main.js +18 -0
- package/dist/lib/components/Main.js.map +1 -0
- package/dist/lib/components/Markdown.d.ts +4 -3
- package/dist/lib/components/Markdown.js +14 -14
- package/dist/lib/components/Markdown.js.map +1 -1
- package/dist/lib/components/Mermaid.d.ts +7 -0
- package/dist/lib/components/Mermaid.js +42 -0
- package/dist/lib/components/Mermaid.js.map +1 -0
- package/dist/lib/components/Meta.d.ts +2 -0
- package/dist/lib/components/Meta.js +11 -0
- package/dist/lib/components/Meta.js.map +1 -0
- package/dist/lib/components/MobileTopNavigation.js +20 -7
- package/dist/lib/components/MobileTopNavigation.js.map +1 -1
- package/dist/lib/components/NotFoundPage.js +3 -3
- package/dist/lib/components/NotFoundPage.js.map +1 -1
- package/dist/lib/components/PageProgress.d.ts +1 -0
- package/dist/lib/components/PageProgress.js +20 -0
- package/dist/lib/components/PageProgress.js.map +1 -0
- package/dist/lib/components/PagefindSearchMeta.d.ts +8 -0
- package/dist/lib/components/PagefindSearchMeta.js +7 -0
- package/dist/lib/components/PagefindSearchMeta.js.map +1 -0
- package/dist/lib/components/Pagination.d.ts +11 -0
- package/dist/lib/components/Pagination.js +10 -0
- package/dist/lib/components/Pagination.js.map +1 -0
- package/dist/lib/components/PathRenderer.d.ts +11 -0
- package/dist/lib/components/PathRenderer.js +28 -0
- package/dist/lib/components/PathRenderer.js.map +1 -0
- package/dist/lib/components/Search.d.ts +3 -1
- package/dist/lib/components/Search.js +10 -4
- package/dist/lib/components/Search.js.map +1 -1
- package/dist/lib/components/Slot.d.ts +17 -0
- package/dist/lib/components/Slot.js +24 -0
- package/dist/lib/components/Slot.js.map +1 -0
- package/dist/lib/components/Slot.test.d.ts +1 -0
- package/dist/lib/components/Slot.test.js +172 -0
- package/dist/lib/components/Slot.test.js.map +1 -0
- package/dist/lib/components/StatusPage.d.ts +7 -0
- package/dist/lib/components/StatusPage.js +75 -0
- package/dist/lib/components/StatusPage.js.map +1 -0
- package/dist/lib/components/ThemeSwitch.d.ts +1 -0
- package/dist/lib/components/ThemeSwitch.js +16 -0
- package/dist/lib/components/ThemeSwitch.js.map +1 -0
- package/dist/lib/components/TopNavigation.d.ts +7 -0
- package/dist/lib/components/TopNavigation.js +60 -9
- package/dist/lib/components/TopNavigation.js.map +1 -1
- package/dist/lib/components/Typography.d.ts +5 -0
- package/dist/lib/components/Typography.js +8 -0
- package/dist/lib/components/Typography.js.map +1 -0
- package/dist/lib/components/Zudoku.d.ts +7 -0
- package/dist/lib/components/Zudoku.js +55 -0
- package/dist/lib/components/Zudoku.js.map +1 -0
- package/dist/lib/components/cache.d.ts +15 -0
- package/dist/lib/components/cache.js +18 -0
- package/dist/lib/components/cache.js.map +1 -0
- package/dist/lib/components/context/BypassProtectedRoutesContext.d.ts +1 -0
- package/dist/lib/components/context/BypassProtectedRoutesContext.js +3 -0
- package/dist/lib/components/context/BypassProtectedRoutesContext.js.map +1 -0
- package/dist/lib/components/context/ComponentsContext.js.map +1 -1
- package/dist/lib/components/context/RouterEventsEmitter.d.ts +1 -0
- package/dist/lib/components/context/RouterEventsEmitter.js +17 -0
- package/dist/lib/components/context/RouterEventsEmitter.js.map +1 -0
- package/dist/lib/components/context/SlotProvider.d.ts +26 -0
- package/dist/lib/components/context/SlotProvider.js +83 -0
- package/dist/lib/components/context/SlotProvider.js.map +1 -0
- package/dist/lib/components/context/ViewportAnchorContext.d.ts +2 -4
- package/dist/lib/components/context/ViewportAnchorContext.js +30 -24
- package/dist/lib/components/context/ViewportAnchorContext.js.map +1 -1
- package/dist/lib/components/context/ZudokuContext.d.ts +9 -17
- package/dist/lib/components/context/ZudokuContext.js +74 -27
- package/dist/lib/components/context/ZudokuContext.js.map +1 -1
- package/dist/lib/components/context/ZudokuProvider.d.ts +2 -2
- package/dist/lib/components/context/ZudokuProvider.js +2 -1
- package/dist/lib/components/context/ZudokuProvider.js.map +1 -1
- package/dist/lib/components/index.d.ts +65 -23
- package/dist/lib/components/index.js +31 -15
- package/dist/lib/components/index.js.map +1 -1
- package/dist/lib/components/navigation/Navigation.d.ts +5 -0
- package/dist/lib/components/navigation/Navigation.js +12 -0
- package/dist/lib/components/navigation/Navigation.js.map +1 -0
- package/dist/lib/components/navigation/NavigationBadge.d.ts +26 -0
- package/dist/lib/components/navigation/NavigationBadge.js +26 -0
- package/dist/lib/components/navigation/NavigationBadge.js.map +1 -0
- package/dist/lib/components/navigation/NavigationCategory.d.ts +5 -0
- package/dist/lib/components/navigation/NavigationCategory.js +66 -0
- package/dist/lib/components/navigation/NavigationCategory.js.map +1 -0
- package/dist/lib/components/navigation/NavigationItem.d.ts +6 -0
- package/dist/lib/components/navigation/NavigationItem.js +55 -0
- package/dist/lib/components/navigation/NavigationItem.js.map +1 -0
- package/dist/lib/components/navigation/NavigationWrapper.d.ts +7 -0
- package/dist/lib/components/navigation/NavigationWrapper.js +21 -0
- package/dist/lib/components/navigation/NavigationWrapper.js.map +1 -0
- package/dist/lib/components/navigation/PoweredByZudoku.d.ts +3 -0
- package/dist/lib/components/navigation/PoweredByZudoku.js +7 -0
- package/dist/lib/components/navigation/PoweredByZudoku.js.map +1 -0
- package/dist/lib/components/navigation/Toc.js +46 -0
- package/dist/lib/components/navigation/Toc.js.map +1 -0
- package/dist/lib/components/navigation/ZudokuLogo.d.ts +6 -0
- package/dist/lib/components/navigation/ZudokuLogo.js +5 -0
- package/dist/lib/components/navigation/ZudokuLogo.js.map +1 -0
- package/dist/lib/components/navigation/ZuploLogo.d.ts +3 -0
- package/dist/lib/components/navigation/ZuploLogo.js +4 -0
- package/dist/lib/components/navigation/ZuploLogo.js.map +1 -0
- package/dist/lib/components/navigation/utils.d.ts +16 -8
- package/dist/lib/components/navigation/utils.js +60 -33
- package/dist/lib/components/navigation/utils.js.map +1 -1
- package/dist/lib/core/RouteGuard.d.ts +2 -0
- package/dist/lib/core/RouteGuard.js +44 -0
- package/dist/lib/core/RouteGuard.js.map +1 -0
- package/dist/lib/core/ZudokuContext.d.ts +116 -0
- package/dist/lib/core/ZudokuContext.js +106 -0
- package/dist/lib/core/ZudokuContext.js.map +1 -0
- package/dist/lib/core/__internal.d.ts +37 -0
- package/dist/lib/core/__internal.js +26 -0
- package/dist/lib/core/__internal.js.map +1 -0
- package/dist/lib/core/plugins.d.ts +37 -18
- package/dist/lib/core/plugins.js +4 -0
- package/dist/lib/core/plugins.js.map +1 -1
- package/dist/lib/core/router.d.ts +1 -0
- package/dist/lib/core/router.js +2 -0
- package/dist/lib/core/router.js.map +1 -0
- package/dist/lib/errors/ErrorAlert.d.ts +1 -1
- package/dist/lib/errors/ErrorAlert.js +12 -4
- package/dist/lib/errors/ErrorAlert.js.map +1 -1
- package/dist/lib/errors/RouterError.d.ts +3 -1
- package/dist/lib/errors/RouterError.js +4 -3
- package/dist/lib/errors/RouterError.js.map +1 -1
- package/dist/lib/errors/TopLevelError.d.ts +2 -2
- package/dist/lib/errors/TopLevelError.js +1 -2
- package/dist/lib/errors/TopLevelError.js.map +1 -1
- package/dist/lib/hooks/index.d.ts +28 -0
- package/dist/lib/hooks/index.js +16 -0
- package/dist/lib/hooks/index.js.map +1 -0
- package/dist/lib/hooks/useEvent.d.ts +11 -0
- package/dist/lib/hooks/useEvent.js +19 -0
- package/dist/lib/hooks/useEvent.js.map +1 -0
- package/dist/lib/hooks/useEvent.test.d.ts +1 -0
- package/dist/lib/hooks/useEvent.test.js +102 -0
- package/dist/lib/hooks/useEvent.test.js.map +1 -0
- package/dist/lib/hooks/useHotkey.d.ts +4 -0
- package/dist/lib/hooks/useHotkey.js +58 -0
- package/dist/lib/hooks/useHotkey.js.map +1 -0
- package/dist/lib/icons.d.ts +1 -0
- package/dist/lib/icons.js +1 -0
- package/dist/lib/icons.js.map +1 -1
- package/dist/lib/oas/graphql/circular.d.ts +3 -0
- package/dist/lib/oas/graphql/circular.js +43 -0
- package/dist/lib/oas/graphql/circular.js.map +1 -0
- package/dist/lib/oas/graphql/index.d.ts +25 -1
- package/dist/lib/oas/graphql/index.js +253 -70
- package/dist/lib/oas/graphql/index.js.map +1 -1
- package/dist/lib/oas/parser/dereference/index.js +10 -4
- package/dist/lib/oas/parser/dereference/index.js.map +1 -1
- package/dist/lib/oas/parser/dereference/resolveRef.js +3 -3
- package/dist/lib/oas/parser/dereference/resolveRef.js.map +1 -1
- package/dist/lib/oas/parser/index.d.ts +9 -3
- package/dist/lib/oas/parser/index.js +12 -24
- package/dist/lib/oas/parser/index.js.map +1 -1
- package/dist/lib/oas/parser/upgrade/index.d.ts +3 -2
- package/dist/lib/oas/parser/upgrade/index.js +84 -31
- package/dist/lib/oas/parser/upgrade/index.js.map +1 -1
- package/dist/lib/plugins/api-catalog/Catalog.d.ts +4 -0
- package/dist/lib/plugins/api-catalog/Catalog.js +32 -0
- package/dist/lib/plugins/api-catalog/Catalog.js.map +1 -0
- package/dist/lib/plugins/api-catalog/index.d.ts +31 -0
- package/dist/lib/plugins/api-catalog/index.js +46 -0
- package/dist/lib/plugins/api-catalog/index.js.map +1 -0
- package/dist/lib/plugins/api-keys/CreateApiKey.d.ts +3 -2
- package/dist/lib/plugins/api-keys/CreateApiKey.js +26 -8
- package/dist/lib/plugins/api-keys/CreateApiKey.js.map +1 -1
- package/dist/lib/plugins/api-keys/CreateApiKeyDialog.d.ts +11 -0
- package/dist/lib/plugins/api-keys/CreateApiKeyDialog.js +9 -0
- package/dist/lib/plugins/api-keys/CreateApiKeyDialog.js.map +1 -0
- package/dist/lib/plugins/api-keys/ProtectedRoute.js +5 -2
- package/dist/lib/plugins/api-keys/ProtectedRoute.js.map +1 -1
- package/dist/lib/plugins/api-keys/SettingsApiKeys.d.ts +1 -1
- package/dist/lib/plugins/api-keys/SettingsApiKeys.js +146 -27
- package/dist/lib/plugins/api-keys/SettingsApiKeys.js.map +1 -1
- package/dist/lib/plugins/api-keys/index.d.ts +36 -18
- package/dist/lib/plugins/api-keys/index.js +74 -33
- package/dist/lib/plugins/api-keys/index.js.map +1 -1
- package/dist/lib/plugins/custom-pages/index.d.ts +8 -0
- package/dist/lib/plugins/custom-pages/index.js +19 -0
- package/dist/lib/plugins/custom-pages/index.js.map +1 -0
- package/dist/lib/plugins/markdown/MdxPage.d.ts +10 -2
- package/dist/lib/plugins/markdown/MdxPage.js +67 -10
- package/dist/lib/plugins/markdown/MdxPage.js.map +1 -1
- package/dist/lib/plugins/markdown/assets/ChatGPTLogo.d.ts +2 -0
- package/dist/lib/plugins/markdown/assets/ChatGPTLogo.js +3 -0
- package/dist/lib/plugins/markdown/assets/ChatGPTLogo.js.map +1 -0
- package/dist/lib/plugins/markdown/assets/ClaudeLogo.d.ts +2 -0
- package/dist/lib/plugins/markdown/assets/ClaudeLogo.js +3 -0
- package/dist/lib/plugins/markdown/assets/ClaudeLogo.js.map +1 -0
- package/dist/lib/plugins/markdown/index.d.ts +19 -8
- package/dist/lib/plugins/markdown/index.js +14 -3
- package/dist/lib/plugins/markdown/index.js.map +1 -1
- package/dist/lib/plugins/openapi/CollapsibleCode.d.ts +6 -0
- package/dist/lib/plugins/openapi/CollapsibleCode.js +26 -0
- package/dist/lib/plugins/openapi/CollapsibleCode.js.map +1 -0
- package/dist/lib/plugins/openapi/ColorizedParam.d.ts +10 -2
- package/dist/lib/plugins/openapi/ColorizedParam.js +32 -14
- package/dist/lib/plugins/openapi/ColorizedParam.js.map +1 -1
- package/dist/lib/plugins/openapi/DownloadSchemaButton.d.ts +3 -0
- package/dist/lib/plugins/openapi/DownloadSchemaButton.js +47 -0
- package/dist/lib/plugins/openapi/DownloadSchemaButton.js.map +1 -0
- package/dist/lib/plugins/openapi/Endpoint.js +13 -19
- package/dist/lib/plugins/openapi/Endpoint.js.map +1 -1
- package/dist/lib/plugins/openapi/GeneratedExampleSidecarBox.d.ts +5 -0
- package/dist/lib/plugins/openapi/GeneratedExampleSidecarBox.js +10 -0
- package/dist/lib/plugins/openapi/GeneratedExampleSidecarBox.js.map +1 -0
- package/dist/lib/plugins/openapi/MCPEndpoint.d.ts +5 -0
- package/dist/lib/plugins/openapi/MCPEndpoint.js +56 -0
- package/dist/lib/plugins/openapi/MCPEndpoint.js.map +1 -0
- package/dist/lib/plugins/openapi/OasProvider.d.ts +8 -0
- package/dist/lib/plugins/openapi/OasProvider.js +39 -0
- package/dist/lib/plugins/openapi/OasProvider.js.map +1 -0
- package/dist/lib/plugins/openapi/OperationList.d.ts +5 -4
- package/dist/lib/plugins/openapi/OperationList.js +141 -31
- package/dist/lib/plugins/openapi/OperationList.js.map +1 -1
- package/dist/lib/plugins/openapi/OperationListItem.d.ts +6 -3
- package/dist/lib/plugins/openapi/OperationListItem.js +22 -8
- package/dist/lib/plugins/openapi/OperationListItem.js.map +1 -1
- package/dist/lib/plugins/openapi/ParamInfos.d.ts +6 -0
- package/dist/lib/plugins/openapi/ParamInfos.js +47 -0
- package/dist/lib/plugins/openapi/ParamInfos.js.map +1 -0
- package/dist/lib/plugins/openapi/ParameterList.d.ts +4 -3
- package/dist/lib/plugins/openapi/ParameterList.js +10 -6
- package/dist/lib/plugins/openapi/ParameterList.js.map +1 -1
- package/dist/lib/plugins/openapi/ParameterListItem.d.ts +2 -3
- package/dist/lib/plugins/openapi/ParameterListItem.js +30 -1
- package/dist/lib/plugins/openapi/ParameterListItem.js.map +1 -1
- package/dist/lib/plugins/openapi/PlaygroundDialogWrapper.d.ts +5 -4
- package/dist/lib/plugins/openapi/PlaygroundDialogWrapper.js +15 -4
- package/dist/lib/plugins/openapi/PlaygroundDialogWrapper.js.map +1 -1
- package/dist/lib/plugins/openapi/RequestBodySidecarBox.d.ts +11 -5
- package/dist/lib/plugins/openapi/RequestBodySidecarBox.js +8 -9
- package/dist/lib/plugins/openapi/RequestBodySidecarBox.js.map +1 -1
- package/dist/lib/plugins/openapi/ResponsesSidecarBox.d.ts +6 -6
- package/dist/lib/plugins/openapi/ResponsesSidecarBox.js +28 -8
- package/dist/lib/plugins/openapi/ResponsesSidecarBox.js.map +1 -1
- package/dist/lib/plugins/openapi/SchemaList.d.ts +1 -0
- package/dist/lib/plugins/openapi/SchemaList.js +53 -0
- package/dist/lib/plugins/openapi/SchemaList.js.map +1 -0
- package/dist/lib/plugins/openapi/Sidecar.d.ts +6 -5
- package/dist/lib/plugins/openapi/Sidecar.js +121 -118
- package/dist/lib/plugins/openapi/Sidecar.js.map +1 -1
- package/dist/lib/plugins/openapi/SidecarBox.js +4 -4
- package/dist/lib/plugins/openapi/SidecarBox.js.map +1 -1
- package/dist/lib/plugins/openapi/SidecarExamples.d.ts +14 -0
- package/dist/lib/plugins/openapi/SidecarExamples.js +57 -0
- package/dist/lib/plugins/openapi/SidecarExamples.js.map +1 -0
- package/dist/lib/plugins/openapi/SimpleSelect.js +1 -1
- package/dist/lib/plugins/openapi/SimpleSelect.js.map +1 -1
- package/dist/lib/plugins/openapi/StaggeredRender.d.ts +1 -1
- package/dist/lib/plugins/openapi/client/GraphQLClient.d.ts +8 -0
- package/dist/lib/plugins/openapi/client/GraphQLClient.js +43 -0
- package/dist/lib/plugins/openapi/client/GraphQLClient.js.map +1 -0
- package/dist/lib/plugins/openapi/client/GraphQLContext.d.ts +7 -0
- package/dist/lib/plugins/openapi/client/GraphQLContext.js +5 -0
- package/dist/lib/plugins/openapi/client/GraphQLContext.js.map +1 -0
- package/dist/lib/plugins/openapi/client/createServer.d.ts +3 -1
- package/dist/lib/plugins/openapi/client/createServer.js +6 -4
- package/dist/lib/plugins/openapi/client/createServer.js.map +1 -1
- package/dist/lib/plugins/openapi/client/useCreateQuery.d.ts +14 -0
- package/dist/lib/plugins/openapi/client/useCreateQuery.js +20 -0
- package/dist/lib/plugins/openapi/client/useCreateQuery.js.map +1 -0
- package/dist/lib/plugins/openapi/components/ConstValue.d.ts +5 -0
- package/dist/lib/plugins/openapi/components/ConstValue.js +6 -0
- package/dist/lib/plugins/openapi/components/ConstValue.js.map +1 -0
- package/dist/lib/plugins/openapi/components/EnumValues.d.ts +5 -0
- package/dist/lib/plugins/openapi/components/EnumValues.js +15 -0
- package/dist/lib/plugins/openapi/components/EnumValues.js.map +1 -0
- package/dist/lib/plugins/openapi/components/NonHighlightedCode.d.ts +4 -0
- package/dist/lib/plugins/openapi/components/NonHighlightedCode.js +5 -0
- package/dist/lib/plugins/openapi/components/NonHighlightedCode.js.map +1 -0
- package/dist/lib/plugins/openapi/components/ResponseContent.d.ts +12 -0
- package/dist/lib/plugins/openapi/components/ResponseContent.js +20 -0
- package/dist/lib/plugins/openapi/components/ResponseContent.js.map +1 -0
- package/dist/lib/plugins/openapi/components/SelectOnClick.d.ts +5 -0
- package/dist/lib/plugins/openapi/components/SelectOnClick.js +16 -0
- package/dist/lib/plugins/openapi/components/SelectOnClick.js.map +1 -0
- package/dist/lib/plugins/openapi/context.d.ts +3 -3
- package/dist/lib/plugins/openapi/graphql/fragment-masking.d.ts +3 -3
- package/dist/lib/plugins/openapi/graphql/fragment-masking.js +3 -4
- package/dist/lib/plugins/openapi/graphql/fragment-masking.js.map +1 -1
- package/dist/lib/plugins/openapi/graphql/gql.d.ts +8 -46
- package/dist/lib/plugins/openapi/graphql/gql.js +6 -13
- package/dist/lib/plugins/openapi/graphql/gql.js.map +1 -1
- package/dist/lib/plugins/openapi/graphql/graphql.d.ts +152 -26
- package/dist/lib/plugins/openapi/graphql/graphql.js +250 -662
- package/dist/lib/plugins/openapi/graphql/graphql.js.map +1 -1
- package/dist/lib/plugins/openapi/index.d.ts +11 -8
- package/dist/lib/plugins/openapi/index.js +114 -110
- package/dist/lib/plugins/openapi/index.js.map +1 -1
- package/dist/lib/plugins/openapi/interfaces.d.ts +76 -5
- package/dist/lib/plugins/openapi/playground/BodyPanel.d.ts +5 -0
- package/dist/lib/plugins/openapi/playground/BodyPanel.js +78 -0
- package/dist/lib/plugins/openapi/playground/BodyPanel.js.map +1 -0
- package/dist/lib/plugins/openapi/playground/CollapsibleHeader.d.ts +8 -0
- package/dist/lib/plugins/openapi/playground/CollapsibleHeader.js +11 -0
- package/dist/lib/plugins/openapi/playground/CollapsibleHeader.js.map +1 -0
- package/dist/lib/plugins/openapi/playground/ExamplesDropdown.d.ts +6 -0
- package/dist/lib/plugins/openapi/playground/ExamplesDropdown.js +9 -0
- package/dist/lib/plugins/openapi/playground/ExamplesDropdown.js.map +1 -0
- package/dist/lib/plugins/openapi/playground/Headers.d.ts +5 -4
- package/dist/lib/plugins/openapi/playground/Headers.js +50 -9
- package/dist/lib/plugins/openapi/playground/Headers.js.map +1 -1
- package/dist/lib/plugins/openapi/playground/IdentityDialog.d.ts +11 -0
- package/dist/lib/plugins/openapi/playground/IdentityDialog.js +15 -0
- package/dist/lib/plugins/openapi/playground/IdentityDialog.js.map +1 -0
- package/dist/lib/plugins/openapi/playground/IdentitySelector.d.ts +7 -0
- package/dist/lib/plugins/openapi/playground/IdentitySelector.js +7 -0
- package/dist/lib/plugins/openapi/playground/IdentitySelector.js.map +1 -0
- package/dist/lib/plugins/openapi/playground/ParamsGrid.d.ts +17 -0
- package/dist/lib/plugins/openapi/playground/ParamsGrid.js +12 -0
- package/dist/lib/plugins/openapi/playground/ParamsGrid.js.map +1 -0
- package/dist/lib/plugins/openapi/playground/PathParams.d.ts +3 -2
- package/dist/lib/plugins/openapi/playground/PathParams.js +4 -8
- package/dist/lib/plugins/openapi/playground/PathParams.js.map +1 -1
- package/dist/lib/plugins/openapi/playground/Playground.d.ts +39 -2
- package/dist/lib/plugins/openapi/playground/Playground.js +213 -86
- package/dist/lib/plugins/openapi/playground/Playground.js.map +1 -1
- package/dist/lib/plugins/openapi/playground/PlaygroundDialog.js +6 -3
- package/dist/lib/plugins/openapi/playground/PlaygroundDialog.js.map +1 -1
- package/dist/lib/plugins/openapi/playground/QueryParams.d.ts +4 -4
- package/dist/lib/plugins/openapi/playground/QueryParams.js +22 -25
- package/dist/lib/plugins/openapi/playground/QueryParams.js.map +1 -1
- package/dist/lib/plugins/openapi/playground/RequestLoginDialog.d.ts +8 -0
- package/dist/lib/plugins/openapi/playground/RequestLoginDialog.js +16 -0
- package/dist/lib/plugins/openapi/playground/RequestLoginDialog.js.map +1 -0
- package/dist/lib/plugins/openapi/playground/Spinner.d.ts +2 -0
- package/dist/lib/plugins/openapi/playground/Spinner.js +63 -0
- package/dist/lib/plugins/openapi/playground/Spinner.js.map +1 -0
- package/dist/lib/plugins/openapi/playground/fileUtils.d.ts +2 -0
- package/dist/lib/plugins/openapi/playground/fileUtils.js +22 -0
- package/dist/lib/plugins/openapi/playground/fileUtils.js.map +1 -0
- package/dist/lib/plugins/openapi/playground/rememberedIdentity.d.ts +19 -0
- package/dist/lib/plugins/openapi/playground/rememberedIdentity.js +11 -0
- package/dist/lib/plugins/openapi/playground/rememberedIdentity.js.map +1 -0
- package/dist/lib/plugins/openapi/playground/request-panel/MultipartField.d.ts +8 -0
- package/dist/lib/plugins/openapi/playground/request-panel/MultipartField.js +19 -0
- package/dist/lib/plugins/openapi/playground/request-panel/MultipartField.js.map +1 -0
- package/dist/lib/plugins/openapi/playground/request-panel/UrlPath.d.ts +3 -0
- package/dist/lib/plugins/openapi/playground/request-panel/UrlPath.js +13 -0
- package/dist/lib/plugins/openapi/playground/request-panel/UrlPath.js.map +1 -0
- package/dist/lib/plugins/openapi/playground/request-panel/UrlQueryParams.d.ts +1 -0
- package/dist/lib/plugins/openapi/playground/request-panel/UrlQueryParams.js +12 -0
- package/dist/lib/plugins/openapi/playground/request-panel/UrlQueryParams.js.map +1 -0
- package/dist/lib/plugins/openapi/playground/request-panel/fieldManager/useKeyValueFieldManager.test.d.ts +1 -0
- package/dist/lib/plugins/openapi/playground/request-panel/fieldManager/useKeyValueFieldManager.test.js +540 -0
- package/dist/lib/plugins/openapi/playground/request-panel/fieldManager/useKeyValueFieldManager.test.js.map +1 -0
- package/dist/lib/plugins/openapi/playground/request-panel/useKeyValueFieldManager.d.ts +40 -0
- package/dist/lib/plugins/openapi/playground/request-panel/useKeyValueFieldManager.js +205 -0
- package/dist/lib/plugins/openapi/playground/request-panel/useKeyValueFieldManager.js.map +1 -0
- package/dist/lib/plugins/openapi/playground/result-panel/Highlight.d.ts +12 -0
- package/dist/lib/plugins/openapi/playground/result-panel/Highlight.js +11 -0
- package/dist/lib/plugins/openapi/playground/result-panel/Highlight.js.map +1 -0
- package/dist/lib/plugins/openapi/playground/result-panel/ResponseStatusBar.d.ts +8 -0
- package/dist/lib/plugins/openapi/playground/result-panel/ResponseStatusBar.js +71 -0
- package/dist/lib/plugins/openapi/playground/result-panel/ResponseStatusBar.js.map +1 -0
- package/dist/lib/plugins/openapi/playground/result-panel/ResponseTab.d.ts +14 -0
- package/dist/lib/plugins/openapi/playground/result-panel/ResponseTab.js +117 -0
- package/dist/lib/plugins/openapi/playground/result-panel/ResponseTab.js.map +1 -0
- package/dist/lib/plugins/openapi/playground/result-panel/ResultPanel.d.ts +11 -0
- package/dist/lib/plugins/openapi/playground/result-panel/ResultPanel.js +15 -0
- package/dist/lib/plugins/openapi/playground/result-panel/ResultPanel.js.map +1 -0
- package/dist/lib/plugins/openapi/playground/result-panel/convertToTypes.d.ts +10 -0
- package/dist/lib/plugins/openapi/playground/result-panel/convertToTypes.js +32 -0
- package/dist/lib/plugins/openapi/playground/result-panel/convertToTypes.js.map +1 -0
- package/dist/lib/plugins/openapi/playground/result-panel/convertToTypes.test.d.ts +1 -0
- package/dist/lib/plugins/openapi/playground/result-panel/convertToTypes.test.js +56 -0
- package/dist/lib/plugins/openapi/playground/result-panel/convertToTypes.test.js.map +1 -0
- package/dist/lib/plugins/openapi/playground/useRememberSkipLoginDialog.d.ts +18 -0
- package/dist/lib/plugins/openapi/playground/useRememberSkipLoginDialog.js +12 -0
- package/dist/lib/plugins/openapi/playground/useRememberSkipLoginDialog.js.map +1 -0
- package/dist/lib/plugins/openapi/processors/removeExtensions.d.ts +8 -0
- package/dist/lib/plugins/openapi/processors/removeExtensions.js +16 -0
- package/dist/lib/plugins/openapi/processors/removeExtensions.js.map +1 -0
- package/dist/lib/plugins/openapi/processors/removeExtensions.test.d.ts +1 -0
- package/dist/lib/plugins/openapi/processors/removeExtensions.test.js +195 -0
- package/dist/lib/plugins/openapi/processors/removeExtensions.test.js.map +1 -0
- package/dist/lib/plugins/openapi/processors/removeParameters.d.ts +12 -0
- package/dist/lib/plugins/openapi/processors/removeParameters.js +66 -0
- package/dist/lib/plugins/openapi/processors/removeParameters.js.map +1 -0
- package/dist/lib/plugins/openapi/processors/removeParameters.test.d.ts +1 -0
- package/dist/lib/plugins/openapi/processors/removeParameters.test.js +160 -0
- package/dist/lib/plugins/openapi/processors/removeParameters.test.js.map +1 -0
- package/dist/lib/plugins/openapi/processors/removePaths.d.ts +13 -0
- package/dist/lib/plugins/openapi/processors/removePaths.js +33 -0
- package/dist/lib/plugins/openapi/processors/removePaths.js.map +1 -0
- package/dist/lib/plugins/openapi/processors/removePaths.test.d.ts +1 -0
- package/dist/lib/plugins/openapi/processors/removePaths.test.js +144 -0
- package/dist/lib/plugins/openapi/processors/removePaths.test.js.map +1 -0
- package/dist/lib/plugins/openapi/processors/traverse.d.ts +1 -0
- package/dist/lib/plugins/openapi/processors/traverse.js +2 -0
- package/dist/lib/plugins/openapi/processors/traverse.js.map +1 -0
- package/dist/lib/plugins/openapi/schema/SchemaExampleAndDefault.d.ts +4 -0
- package/dist/lib/plugins/openapi/schema/SchemaExampleAndDefault.js +15 -0
- package/dist/lib/plugins/openapi/schema/SchemaExampleAndDefault.js.map +1 -0
- package/dist/lib/plugins/openapi/schema/SchemaPropertyItem.d.ts +8 -0
- package/dist/lib/plugins/openapi/schema/SchemaPropertyItem.js +45 -0
- package/dist/lib/plugins/openapi/schema/SchemaPropertyItem.js.map +1 -0
- package/dist/lib/plugins/openapi/schema/SchemaView.d.ts +4 -3
- package/dist/lib/plugins/openapi/schema/SchemaView.js +59 -50
- package/dist/lib/plugins/openapi/schema/SchemaView.js.map +1 -1
- package/dist/lib/plugins/openapi/schema/UnionView.d.ts +5 -0
- package/dist/lib/plugins/openapi/schema/UnionView.js +33 -0
- package/dist/lib/plugins/openapi/schema/UnionView.js.map +1 -0
- package/dist/lib/plugins/openapi/schema/union-helpers.d.ts +28 -0
- package/dist/lib/plugins/openapi/schema/union-helpers.js +71 -0
- package/dist/lib/plugins/openapi/schema/union-helpers.js.map +1 -0
- package/dist/lib/plugins/openapi/schema/utils.d.ts +8 -8
- package/dist/lib/plugins/openapi/schema/utils.js +16 -10
- package/dist/lib/plugins/openapi/schema/utils.js.map +1 -1
- package/dist/lib/plugins/openapi/state.d.ts +27 -0
- package/dist/lib/plugins/openapi/state.js +18 -0
- package/dist/lib/plugins/openapi/state.js.map +1 -0
- package/dist/lib/plugins/openapi/util/createHttpSnippet.d.ts +11 -0
- package/dist/lib/plugins/openapi/util/createHttpSnippet.js +89 -0
- package/dist/lib/plugins/openapi/util/createHttpSnippet.js.map +1 -0
- package/dist/lib/plugins/openapi/util/createNavigationCategory.d.ts +9 -0
- package/dist/lib/plugins/openapi/util/createNavigationCategory.js +25 -0
- package/dist/lib/plugins/openapi/util/createNavigationCategory.js.map +1 -0
- package/dist/lib/plugins/openapi/util/generateSchemaExample.d.ts +2 -3
- package/dist/lib/plugins/openapi/util/generateSchemaExample.js +77 -39
- package/dist/lib/plugins/openapi/util/generateSchemaExample.js.map +1 -1
- package/dist/lib/plugins/openapi/util/getRoutes.d.ts +15 -0
- package/dist/lib/plugins/openapi/util/getRoutes.js +144 -0
- package/dist/lib/plugins/openapi/util/getRoutes.js.map +1 -0
- package/dist/lib/plugins/openapi/util/methodColorMap.d.ts +2 -0
- package/dist/lib/plugins/openapi/util/methodColorMap.js +10 -0
- package/dist/lib/plugins/openapi/util/methodColorMap.js.map +1 -0
- package/dist/lib/plugins/openapi/util/methodToColor.d.ts +20 -0
- package/dist/lib/plugins/openapi/util/methodToColor.js +24 -0
- package/dist/lib/plugins/openapi/util/methodToColor.js.map +1 -0
- package/dist/lib/plugins/openapi/util/sanitizeMarkdownForMetatag.d.ts +1 -0
- package/dist/lib/plugins/openapi/util/sanitizeMarkdownForMetatag.js +27 -0
- package/dist/lib/plugins/openapi/util/sanitizeMarkdownForMetatag.js.map +1 -0
- package/dist/lib/plugins/redirect/index.d.ts +4 -7
- package/dist/lib/plugins/redirect/index.js +2 -2
- package/dist/lib/plugins/redirect/index.js.map +1 -1
- package/dist/lib/plugins/search-inkeep/index.d.ts +8 -6
- package/dist/lib/plugins/search-inkeep/index.js +49 -7
- package/dist/lib/plugins/search-inkeep/index.js.map +1 -1
- package/dist/lib/plugins/search-inkeep/inkeep.d.ts +2 -19
- package/dist/lib/plugins/search-inkeep/inkeep.js +10 -19
- package/dist/lib/plugins/search-inkeep/inkeep.js.map +1 -1
- package/dist/lib/plugins/search-pagefind/IndexingDialog.d.ts +3 -0
- package/dist/lib/plugins/search-pagefind/IndexingDialog.js +64 -0
- package/dist/lib/plugins/search-pagefind/IndexingDialog.js.map +1 -0
- package/dist/lib/plugins/search-pagefind/PagefindSearch.d.ts +6 -0
- package/dist/lib/plugins/search-pagefind/PagefindSearch.js +97 -0
- package/dist/lib/plugins/search-pagefind/PagefindSearch.js.map +1 -0
- package/dist/lib/plugins/search-pagefind/ResultList.d.ts +8 -0
- package/dist/lib/plugins/search-pagefind/ResultList.js +43 -0
- package/dist/lib/plugins/search-pagefind/ResultList.js.map +1 -0
- package/dist/lib/plugins/search-pagefind/get-results.d.ts +10 -0
- package/dist/lib/plugins/search-pagefind/get-results.js +41 -0
- package/dist/lib/plugins/search-pagefind/get-results.js.map +1 -0
- package/dist/lib/plugins/search-pagefind/index.d.ts +6 -0
- package/dist/lib/plugins/search-pagefind/index.js +9 -0
- package/dist/lib/plugins/search-pagefind/index.js.map +1 -0
- package/dist/lib/plugins/search-pagefind/types.d.ts +85 -0
- package/dist/lib/plugins/search-pagefind/types.js +2 -0
- package/dist/lib/plugins/search-pagefind/types.js.map +1 -0
- package/dist/lib/shiki.d.ts +32 -0
- package/dist/lib/shiki.js +130 -0
- package/dist/lib/shiki.js.map +1 -0
- package/dist/lib/ui/Accordion.d.ts +7 -0
- package/dist/lib/ui/Accordion.js +14 -0
- package/dist/lib/ui/Accordion.js.map +1 -0
- package/dist/lib/ui/ActionButton.d.ts +4 -0
- package/dist/lib/ui/ActionButton.js +10 -0
- package/dist/lib/ui/ActionButton.js.map +1 -0
- package/dist/lib/ui/Alert.d.ts +9 -0
- package/dist/lib/ui/Alert.js +25 -0
- package/dist/lib/ui/Alert.js.map +1 -0
- package/dist/lib/ui/AlertDialog.d.ts +20 -0
- package/dist/lib/ui/AlertDialog.js +27 -0
- package/dist/lib/ui/AlertDialog.js.map +1 -0
- package/dist/lib/ui/AspectRatio.d.ts +3 -0
- package/dist/lib/ui/AspectRatio.js +4 -0
- package/dist/lib/ui/AspectRatio.js.map +1 -0
- package/dist/lib/ui/Badge.d.ts +9 -0
- package/dist/lib/ui/Badge.js +24 -0
- package/dist/lib/ui/Badge.js.map +1 -0
- package/dist/lib/ui/Breadcrumb.d.ts +19 -0
- package/dist/lib/ui/Breadcrumb.js +24 -0
- package/dist/lib/ui/Breadcrumb.js.map +1 -0
- package/dist/lib/ui/Button.d.ts +4 -5
- package/dist/lib/ui/Button.js +12 -7
- package/dist/lib/ui/Button.js.map +1 -1
- package/dist/lib/ui/ButtonGroup.d.ts +11 -0
- package/dist/lib/ui/ButtonGroup.js +28 -0
- package/dist/lib/ui/ButtonGroup.js.map +1 -0
- package/dist/lib/ui/Callout.d.ts +38 -36
- package/dist/lib/ui/Callout.js +8 -7
- package/dist/lib/ui/Callout.js.map +1 -1
- package/dist/lib/ui/Card.js +1 -1
- package/dist/lib/ui/Card.js.map +1 -1
- package/dist/lib/ui/Carousel.d.ts +18 -0
- package/dist/lib/ui/Carousel.js +99 -0
- package/dist/lib/ui/Carousel.js.map +1 -0
- package/dist/lib/ui/Checkbox.d.ts +4 -0
- package/dist/lib/ui/Checkbox.js +9 -0
- package/dist/lib/ui/Checkbox.js.map +1 -0
- package/dist/lib/ui/CodeBlock.d.ts +14 -0
- package/dist/lib/ui/CodeBlock.js +18 -0
- package/dist/lib/ui/CodeBlock.js.map +1 -0
- package/dist/lib/ui/Collapsible.d.ts +5 -0
- package/dist/lib/ui/Collapsible.js +13 -0
- package/dist/lib/ui/Collapsible.js.map +1 -0
- package/dist/lib/ui/Command.d.ts +94 -0
- package/dist/lib/ui/Command.js +31 -0
- package/dist/lib/ui/Command.js.map +1 -0
- package/dist/lib/ui/Dialog.d.ts +15 -0
- package/dist/lib/ui/Dialog.js +36 -0
- package/dist/lib/ui/Dialog.js.map +1 -0
- package/dist/lib/ui/Drawer.d.ts +8 -10
- package/dist/lib/ui/Drawer.js.map +1 -1
- package/dist/lib/ui/DropdownMenu.d.ts +21 -23
- package/dist/lib/ui/DropdownMenu.js +47 -32
- package/dist/lib/ui/DropdownMenu.js.map +1 -1
- package/dist/lib/ui/EmbeddedCodeBlock.d.ts +16 -0
- package/dist/lib/ui/EmbeddedCodeBlock.js +19 -0
- package/dist/lib/ui/EmbeddedCodeBlock.js.map +1 -0
- package/dist/lib/ui/Form.d.ts +23 -0
- package/dist/lib/ui/Form.js +63 -0
- package/dist/lib/ui/Form.js.map +1 -0
- package/dist/lib/ui/Frame.d.ts +8 -0
- package/dist/lib/ui/Frame.js +22 -0
- package/dist/lib/ui/Frame.js.map +1 -0
- package/dist/lib/ui/HoverCard.d.ts +6 -0
- package/dist/lib/ui/HoverCard.js +10 -0
- package/dist/lib/ui/HoverCard.js.map +1 -0
- package/dist/lib/ui/Input.d.ts +1 -2
- package/dist/lib/ui/Input.js +1 -1
- package/dist/lib/ui/Input.js.map +1 -1
- package/dist/lib/ui/Item.d.ts +23 -0
- package/dist/lib/ui/Item.js +67 -0
- package/dist/lib/ui/Item.js.map +1 -0
- package/dist/lib/ui/Kbd.d.ts +3 -0
- package/dist/lib/ui/Kbd.js +10 -0
- package/dist/lib/ui/Kbd.js.map +1 -0
- package/dist/lib/ui/Label.d.ts +5 -0
- package/dist/lib/ui/Label.js +10 -0
- package/dist/lib/ui/Label.js.map +1 -0
- package/dist/lib/ui/NativeSelect.d.ts +5 -0
- package/dist/lib/ui/NativeSelect.js +14 -0
- package/dist/lib/ui/NativeSelect.js.map +1 -0
- package/dist/lib/ui/Pagination.d.ts +28 -0
- package/dist/lib/ui/Pagination.js +24 -0
- package/dist/lib/ui/Pagination.js.map +1 -0
- package/dist/lib/ui/Popover.d.ts +6 -0
- package/dist/lib/ui/Popover.js +10 -0
- package/dist/lib/ui/Popover.js.map +1 -0
- package/dist/lib/ui/Progress.d.ts +4 -0
- package/dist/lib/ui/Progress.js +8 -0
- package/dist/lib/ui/Progress.js.map +1 -0
- package/dist/lib/ui/RadioGroup.d.ts +5 -0
- package/dist/lib/ui/RadioGroup.js +15 -0
- package/dist/lib/ui/RadioGroup.js.map +1 -0
- package/dist/lib/ui/ReactComponentDoc.d.ts +20 -0
- package/dist/lib/ui/ReactComponentDoc.js +10 -0
- package/dist/lib/ui/ReactComponentDoc.js.map +1 -0
- package/dist/lib/ui/ScrollArea.d.ts +5 -0
- package/dist/lib/ui/ScrollArea.js +12 -0
- package/dist/lib/ui/ScrollArea.js.map +1 -0
- package/dist/lib/ui/Secret.d.ts +18 -0
- package/dist/lib/ui/Secret.js +26 -0
- package/dist/lib/ui/Secret.js.map +1 -0
- package/dist/lib/ui/Select.d.ts +15 -0
- package/dist/lib/ui/Select.js +38 -0
- package/dist/lib/ui/Select.js.map +1 -0
- package/dist/lib/ui/Separator.d.ts +4 -0
- package/dist/lib/ui/Separator.js +8 -0
- package/dist/lib/ui/Separator.js.map +1 -0
- package/dist/lib/ui/Skeleton.d.ts +2 -0
- package/dist/lib/ui/Skeleton.js +7 -0
- package/dist/lib/ui/Skeleton.js.map +1 -0
- package/dist/lib/ui/Slider.d.ts +4 -0
- package/dist/lib/ui/Slider.js +8 -0
- package/dist/lib/ui/Slider.js.map +1 -0
- package/dist/lib/ui/Stepper.d.ts +3 -0
- package/dist/lib/ui/Stepper.js +7 -0
- package/dist/lib/ui/Stepper.js.map +1 -0
- package/dist/lib/ui/Switch.d.ts +4 -0
- package/dist/lib/ui/Switch.js +8 -0
- package/dist/lib/ui/Switch.js.map +1 -0
- package/dist/lib/ui/SyntaxHighlight.d.ts +13 -0
- package/dist/lib/ui/SyntaxHighlight.js +15 -0
- package/dist/lib/ui/SyntaxHighlight.js.map +1 -0
- package/dist/lib/ui/Tabs.js +2 -2
- package/dist/lib/ui/Tabs.js.map +1 -1
- package/dist/lib/ui/Textarea.d.ts +4 -0
- package/dist/lib/ui/Textarea.js +9 -0
- package/dist/lib/ui/Textarea.js.map +1 -0
- package/dist/lib/ui/Toggle.d.ts +12 -0
- package/dist/lib/ui/Toggle.js +26 -0
- package/dist/lib/ui/Toggle.js.map +1 -0
- package/dist/lib/ui/ToggleGroup.d.ts +12 -0
- package/dist/lib/ui/ToggleGroup.js +21 -0
- package/dist/lib/ui/ToggleGroup.js.map +1 -0
- package/dist/lib/ui/Tooltip.d.ts +8 -0
- package/dist/lib/ui/Tooltip.js +18 -0
- package/dist/lib/ui/Tooltip.js.map +1 -0
- package/dist/lib/ui/Value.d.ts +5 -0
- package/dist/lib/ui/Value.js +13 -0
- package/dist/lib/ui/Value.js.map +1 -0
- package/dist/lib/ui/util.d.ts +2 -0
- package/dist/lib/ui/util.js +3 -0
- package/dist/lib/ui/util.js.map +1 -0
- package/dist/lib/util/MdxComponents.d.ts +40 -21
- package/dist/lib/util/MdxComponents.js +26 -17
- package/dist/lib/util/MdxComponents.js.map +1 -1
- package/dist/lib/util/cn.js.map +1 -1
- package/dist/lib/util/createVariantComponent.d.ts +7 -4
- package/dist/lib/util/createVariantComponent.js +5 -2
- package/dist/lib/util/createVariantComponent.js.map +1 -1
- package/dist/lib/util/detectOS.d.ts +1 -0
- package/dist/lib/util/detectOS.js +11 -0
- package/dist/lib/util/detectOS.js.map +1 -0
- package/dist/lib/util/ensureArray.d.ts +1 -0
- package/dist/lib/util/ensureArray.js +2 -0
- package/dist/lib/util/ensureArray.js.map +1 -0
- package/dist/lib/util/flattenAllOf.d.ts +4 -0
- package/dist/lib/util/flattenAllOf.js +88 -0
- package/dist/lib/util/flattenAllOf.js.map +1 -0
- package/dist/lib/util/flattenAllOf.test.d.ts +1 -0
- package/dist/lib/util/flattenAllOf.test.js +587 -0
- package/dist/lib/util/flattenAllOf.test.js.map +1 -0
- package/dist/lib/util/groupBy.js +1 -0
- package/dist/lib/util/groupBy.js.map +1 -1
- package/dist/lib/util/humanFileSize.d.ts +6 -0
- package/dist/lib/util/humanFileSize.js +14 -0
- package/dist/lib/util/humanFileSize.js.map +1 -0
- package/dist/lib/util/humanFileSize.test.d.ts +1 -0
- package/dist/lib/util/humanFileSize.test.js +22 -0
- package/dist/lib/util/humanFileSize.test.js.map +1 -0
- package/dist/lib/util/invariant.d.ts +10 -0
- package/dist/lib/util/invariant.js +10 -4
- package/dist/lib/util/invariant.js.map +1 -1
- package/dist/lib/util/joinPath.d.ts +3 -0
- package/dist/lib/util/joinPath.js +3 -0
- package/dist/lib/util/joinPath.js.map +1 -1
- package/dist/lib/util/joinUrl.d.ts +1 -0
- package/dist/lib/util/joinUrl.js +40 -0
- package/dist/lib/util/joinUrl.js.map +1 -0
- package/dist/lib/util/joinUrl.test.d.ts +1 -0
- package/dist/lib/util/joinUrl.test.js +43 -0
- package/dist/lib/util/joinUrl.test.js.map +1 -0
- package/dist/lib/util/os.d.ts +2 -0
- package/dist/lib/util/os.js +21 -0
- package/dist/lib/util/os.js.map +1 -0
- package/dist/lib/util/pastellize.js +4 -4
- package/dist/lib/util/pastellize.js.map +1 -1
- package/dist/lib/util/readFrontmatter.d.ts +6 -0
- package/dist/lib/util/readFrontmatter.js +12 -0
- package/dist/lib/util/readFrontmatter.js.map +1 -0
- package/dist/lib/util/scrollIntoViewIfNeeded.d.ts +1 -0
- package/dist/lib/util/scrollIntoViewIfNeeded.js +14 -0
- package/dist/lib/util/scrollIntoViewIfNeeded.js.map +1 -0
- package/dist/lib/util/syncZustandState.d.ts +5 -0
- package/dist/lib/util/syncZustandState.js +14 -0
- package/dist/lib/util/syncZustandState.js.map +1 -0
- package/dist/lib/util/traverse.d.ts +4 -0
- package/dist/lib/util/traverse.js +48 -0
- package/dist/lib/util/traverse.js.map +1 -0
- package/dist/lib/util/types.d.ts +7 -0
- package/dist/lib/util/types.js +2 -0
- package/dist/lib/util/types.js.map +1 -0
- package/dist/lib/util/url.d.ts +4 -0
- package/dist/lib/util/url.js +13 -0
- package/dist/lib/util/url.js.map +1 -0
- package/dist/lib/util/url.test.d.ts +1 -0
- package/dist/lib/util/url.test.js +26 -0
- package/dist/lib/util/url.test.js.map +1 -0
- package/dist/lib/util/useCopyToClipboard.d.ts +1 -0
- package/dist/lib/util/useCopyToClipboard.js +11 -0
- package/dist/lib/util/useCopyToClipboard.js.map +1 -0
- package/dist/lib/util/useExposedProps.d.ts +9 -0
- package/dist/lib/util/useExposedProps.js +9 -0
- package/dist/lib/util/useExposedProps.js.map +1 -0
- package/dist/lib/util/useIsomorphicLayoutEffect.d.ts +3 -0
- package/dist/lib/util/useIsomorphicLayoutEffect.js +4 -0
- package/dist/lib/util/useIsomorphicLayoutEffect.js.map +1 -0
- package/dist/lib/util/useLatest.d.ts +1 -0
- package/dist/lib/util/useLatest.js +15 -0
- package/dist/lib/util/useLatest.js.map +1 -0
- package/dist/lib/util/useOnScreen.d.ts +5 -0
- package/dist/lib/util/useOnScreen.js +19 -0
- package/dist/lib/util/useOnScreen.js.map +1 -0
- package/dist/lib/util/useScrollToAnchor.d.ts +1 -0
- package/dist/lib/util/useScrollToAnchor.js +45 -38
- package/dist/lib/util/useScrollToAnchor.js.map +1 -1
- package/dist/lib/util/useScrollToTop.js +7 -5
- package/dist/lib/util/useScrollToTop.js.map +1 -1
- package/dist/ts.js +3 -3
- package/dist/ts.js.map +1 -1
- package/dist/vite/api/SchemaManager.d.ts +43 -0
- package/dist/vite/api/SchemaManager.js +176 -0
- package/dist/vite/api/SchemaManager.js.map +1 -0
- package/dist/vite/api/SchemaManager.test.d.ts +1 -0
- package/dist/vite/api/SchemaManager.test.js +173 -0
- package/dist/vite/api/SchemaManager.test.js.map +1 -0
- package/dist/vite/api/schema-codegen.d.ts +12 -0
- package/dist/vite/api/schema-codegen.js +134 -0
- package/dist/vite/api/schema-codegen.js.map +1 -0
- package/dist/vite/api/schema-codegen.test.d.ts +1 -0
- package/dist/vite/api/schema-codegen.test.js +468 -0
- package/dist/vite/api/schema-codegen.test.js.map +1 -0
- package/dist/vite/build.js +63 -14
- package/dist/vite/build.js.map +1 -1
- package/dist/vite/config.d.ts +2 -16
- package/dist/vite/config.js +125 -147
- package/dist/vite/config.js.map +1 -1
- package/dist/vite/config.test.js +12 -6
- package/dist/vite/config.test.js.map +1 -1
- package/dist/vite/css/collect.d.ts +2 -0
- package/dist/vite/css/collect.js +27 -0
- package/dist/vite/css/collect.js.map +1 -0
- package/dist/vite/css/plugin.d.ts +4 -0
- package/dist/vite/css/plugin.js +91 -0
- package/dist/vite/css/plugin.js.map +1 -0
- package/dist/vite/debug.d.ts +1 -0
- package/dist/vite/debug.js +10 -0
- package/dist/vite/debug.js.map +1 -0
- package/dist/vite/dev-server.d.ts +11 -4
- package/dist/vite/dev-server.js +116 -22
- package/dist/vite/dev-server.js.map +1 -1
- package/dist/vite/error-handler.d.ts +3 -3
- package/dist/vite/error-handler.js +1 -1
- package/dist/vite/error-handler.js.map +1 -1
- package/dist/vite/html.d.ts +7 -3
- package/dist/vite/html.js +15 -11
- package/dist/vite/html.js.map +1 -1
- package/dist/vite/llms.d.ts +12 -0
- package/dist/vite/llms.js +66 -0
- package/dist/vite/llms.js.map +1 -0
- package/dist/vite/mdx/remark-inject-filepath.d.ts +3 -0
- package/dist/vite/mdx/remark-inject-filepath.js +6 -0
- package/dist/vite/mdx/remark-inject-filepath.js.map +1 -0
- package/dist/vite/mdx/remark-last-modified.d.ts +3 -0
- package/dist/vite/mdx/remark-last-modified.js +82 -0
- package/dist/vite/mdx/remark-last-modified.js.map +1 -0
- package/dist/vite/mdx/remark-link-rewrite.d.ts +2 -0
- package/dist/vite/mdx/remark-link-rewrite.js +20 -0
- package/dist/vite/mdx/remark-link-rewrite.js.map +1 -0
- package/dist/vite/mdx/remark-normalize-image-url.d.ts +2 -0
- package/dist/vite/mdx/remark-normalize-image-url.js +12 -0
- package/dist/vite/mdx/remark-normalize-image-url.js.map +1 -0
- package/dist/vite/mdx/remark-static-generation.d.ts +3 -0
- package/dist/vite/mdx/remark-static-generation.js +125 -0
- package/dist/vite/mdx/remark-static-generation.js.map +1 -0
- package/dist/vite/mdx/utils.d.ts +2 -0
- package/dist/vite/mdx/utils.js +31 -0
- package/dist/vite/mdx/utils.js.map +1 -0
- package/dist/vite/output.d.ts +113 -0
- package/dist/vite/output.js +60 -0
- package/dist/vite/output.js.map +1 -0
- package/dist/vite/pagefind-dev-index.d.ts +16 -0
- package/dist/vite/pagefind-dev-index.js +68 -0
- package/dist/vite/pagefind-dev-index.js.map +1 -0
- package/dist/vite/plugin-api-keys.d.ts +2 -3
- package/dist/vite/plugin-api-keys.js +14 -8
- package/dist/vite/plugin-api-keys.js.map +1 -1
- package/dist/vite/plugin-api.d.ts +1 -2
- package/dist/vite/plugin-api.js +186 -33
- package/dist/vite/plugin-api.js.map +1 -1
- package/dist/vite/plugin-auth.d.ts +2 -3
- package/dist/vite/plugin-auth.js +11 -7
- package/dist/vite/plugin-auth.js.map +1 -1
- package/dist/vite/plugin-component.d.ts +2 -3
- package/dist/vite/plugin-component.js +25 -15
- package/dist/vite/plugin-component.js.map +1 -1
- package/dist/vite/plugin-config-reload.d.ts +3 -4
- package/dist/vite/plugin-config-reload.js +31 -25
- package/dist/vite/plugin-config-reload.js.map +1 -1
- package/dist/vite/plugin-config.d.ts +2 -4
- package/dist/vite/plugin-config.js +28 -3
- package/dist/vite/plugin-config.js.map +1 -1
- package/dist/vite/plugin-custom-pages.d.ts +3 -0
- package/dist/vite/plugin-custom-pages.js +31 -0
- package/dist/vite/plugin-custom-pages.js.map +1 -0
- package/dist/vite/plugin-docs.d.ts +11 -3
- package/dist/vite/plugin-docs.js +100 -41
- package/dist/vite/plugin-docs.js.map +1 -1
- package/dist/vite/plugin-frontmatter.js +33 -26
- package/dist/vite/plugin-frontmatter.js.map +1 -1
- package/dist/vite/plugin-markdown-export.d.ts +21 -0
- package/dist/vite/plugin-markdown-export.js +140 -0
- package/dist/vite/plugin-markdown-export.js.map +1 -0
- package/dist/vite/plugin-mdx.d.ts +2 -9
- package/dist/vite/plugin-mdx.js +92 -36
- package/dist/vite/plugin-mdx.js.map +1 -1
- package/dist/vite/plugin-metadata.d.ts +1 -1
- package/dist/vite/plugin-navigation.d.ts +4 -0
- package/dist/vite/plugin-navigation.js +67 -0
- package/dist/vite/plugin-navigation.js.map +1 -0
- package/dist/vite/plugin-redirect.d.ts +2 -3
- package/dist/vite/plugin-redirect.js +7 -6
- package/dist/vite/plugin-redirect.js.map +1 -1
- package/dist/vite/plugin-search.d.ts +2 -0
- package/dist/vite/plugin-search.js +31 -0
- package/dist/vite/plugin-search.js.map +1 -0
- package/dist/vite/plugin-shiki-register.d.ts +2 -0
- package/dist/vite/plugin-shiki-register.js +39 -0
- package/dist/vite/plugin-shiki-register.js.map +1 -0
- package/dist/vite/plugin-theme.d.ts +8 -0
- package/dist/vite/plugin-theme.js +283 -0
- package/dist/vite/plugin-theme.js.map +1 -0
- package/dist/vite/plugin-theme.test.d.ts +1 -0
- package/dist/vite/plugin-theme.test.js +314 -0
- package/dist/vite/plugin-theme.test.js.map +1 -0
- package/dist/vite/plugin.d.ts +2 -4
- package/dist/vite/plugin.js +28 -19
- package/dist/vite/plugin.js.map +1 -1
- package/dist/vite/prerender/FileWritingResponse.d.ts +25 -0
- package/dist/vite/prerender/FileWritingResponse.js +53 -0
- package/dist/vite/prerender/FileWritingResponse.js.map +1 -0
- package/dist/vite/prerender/InMemoryResponse.d.ts +16 -0
- package/dist/vite/prerender/InMemoryResponse.js +34 -0
- package/dist/vite/prerender/InMemoryResponse.js.map +1 -0
- package/dist/vite/prerender/PrerenderResponse.d.ts +10 -0
- package/dist/vite/prerender/PrerenderResponse.js +2 -0
- package/dist/vite/prerender/PrerenderResponse.js.map +1 -0
- package/dist/vite/prerender/prerender.d.ts +15 -0
- package/dist/vite/prerender/prerender.js +124 -0
- package/dist/vite/prerender/prerender.js.map +1 -0
- package/dist/vite/prerender/utils.d.ts +2 -0
- package/dist/vite/prerender/utils.js +24 -0
- package/dist/vite/prerender/utils.js.map +1 -0
- package/dist/vite/prerender/worker.d.ts +13 -0
- package/dist/vite/prerender/worker.js +63 -0
- package/dist/vite/prerender/worker.js.map +1 -0
- package/dist/vite/reporter.d.ts +3 -0
- package/dist/vite/reporter.js +33 -0
- package/dist/vite/reporter.js.map +1 -0
- package/dist/vite/shadcn-registry.d.ts +20 -0
- package/dist/vite/shadcn-registry.js +29 -0
- package/dist/vite/shadcn-registry.js.map +1 -0
- package/dist/vite/sitemap.d.ts +1 -1
- package/dist/vite/sitemap.js +16 -14
- package/dist/vite/sitemap.js.map +1 -1
- package/dist/zuplo/enrich-with-zuplo-mcp.d.ts +4 -0
- package/dist/zuplo/enrich-with-zuplo-mcp.js +117 -0
- package/dist/zuplo/enrich-with-zuplo-mcp.js.map +1 -0
- package/dist/zuplo/enrich-with-zuplo.d.ts +6 -0
- package/dist/zuplo/enrich-with-zuplo.js +185 -0
- package/dist/zuplo/enrich-with-zuplo.js.map +1 -0
- package/dist/zuplo/policy-types.d.ts +33 -0
- package/dist/zuplo/policy-types.js +7 -0
- package/dist/zuplo/policy-types.js.map +1 -0
- package/dist/zuplo/with-zuplo-processors.d.ts +3 -0
- package/dist/zuplo/with-zuplo-processors.js +28 -0
- package/dist/zuplo/with-zuplo-processors.js.map +1 -0
- package/dist/zuplo/with-zuplo.d.ts +6 -0
- package/dist/zuplo/with-zuplo.js +10 -0
- package/dist/zuplo/with-zuplo.js.map +1 -0
- package/lib/ActionButton-DUgvSylL.js +25 -0
- package/lib/ActionButton-DUgvSylL.js.map +1 -0
- package/lib/Button-CynVW1JV.js +53 -0
- package/lib/Button-CynVW1JV.js.map +1 -0
- package/lib/Card-KFniaZn5.js +61 -0
- package/lib/Card-KFniaZn5.js.map +1 -0
- package/lib/CategoryHeading-DhmodDcq.js +17 -0
- package/lib/CategoryHeading-DhmodDcq.js.map +1 -0
- package/lib/ClaudeLogo-CGRfGTk2.js +69 -0
- package/lib/ClaudeLogo-CGRfGTk2.js.map +1 -0
- package/lib/ClientOnly-E7hGysn1.js +11 -0
- package/lib/ClientOnly-E7hGysn1.js.map +1 -0
- package/lib/Command-BpT1iBE6.js +134 -0
- package/lib/Command-BpT1iBE6.js.map +1 -0
- package/lib/Dialog-BQciPiHN.js +144 -0
- package/lib/Dialog-BQciPiHN.js.map +1 -0
- package/lib/Drawer-Ci7XwhqT.js +1133 -0
- package/lib/Drawer-Ci7XwhqT.js.map +1 -0
- package/lib/DropdownMenu-C8SX_-S_.js +104 -0
- package/lib/DropdownMenu-C8SX_-S_.js.map +1 -0
- package/lib/ErrorAlert-BUlG32M9.js +15477 -0
- package/lib/ErrorAlert-BUlG32M9.js.map +1 -0
- package/lib/IndexingDialog-B5zCiUKr.js +100 -0
- package/lib/IndexingDialog-B5zCiUKr.js.map +1 -0
- package/lib/MdxPage-Bjf72BP3.js +210 -0
- package/lib/MdxPage-Bjf72BP3.js.map +1 -0
- package/lib/Mermaid-D_VSX7_Q.js +102 -0
- package/lib/Mermaid-D_VSX7_Q.js.map +1 -0
- package/lib/OAuthErrorPage-1Ekji0PK.js +150 -0
- package/lib/OAuthErrorPage-1Ekji0PK.js.map +1 -0
- package/lib/OasProvider-BZxmTyMM.js +40 -0
- package/lib/OasProvider-BZxmTyMM.js.map +1 -0
- package/lib/OperationList-B7nPIFB8.js +5805 -0
- package/lib/OperationList-B7nPIFB8.js.map +1 -0
- package/lib/RouteGuard-9wjejsKm.js +77 -0
- package/lib/RouteGuard-9wjejsKm.js.map +1 -0
- package/lib/RouterError-DfTZblpv.js +42 -0
- package/lib/RouterError-DfTZblpv.js.map +1 -0
- package/lib/SchemaList-16_obkku.js +151 -0
- package/lib/SchemaList-16_obkku.js.map +1 -0
- package/lib/SchemaView-eyvR4bRt.js +597 -0
- package/lib/SchemaView-eyvR4bRt.js.map +1 -0
- package/lib/Select-CkxXP5I7.js +243 -0
- package/lib/Select-CkxXP5I7.js.map +1 -0
- package/lib/Separator-CTPSeW1S.js +27 -0
- package/lib/Separator-CTPSeW1S.js.map +1 -0
- package/lib/SignUp-D54_QWFy.js +50 -0
- package/lib/SignUp-D54_QWFy.js.map +1 -0
- package/lib/Spinner-CI6bRyZw.js +7 -0
- package/lib/Spinner-CI6bRyZw.js.map +1 -0
- package/lib/SyntaxHighlight-j_HRSPCU.js +10400 -0
- package/lib/SyntaxHighlight-j_HRSPCU.js.map +1 -0
- package/lib/Toc-z05x698-.js +92 -0
- package/lib/Toc-z05x698-.js.map +1 -0
- package/lib/ZudokuContext-BXldanA8.js +1508 -0
- package/lib/ZudokuContext-BXldanA8.js.map +1 -0
- package/lib/___vite-browser-external_commonjs-proxy-Cga3HsWk.js +9 -0
- package/lib/___vite-browser-external_commonjs-proxy-Cga3HsWk.js.map +1 -0
- package/lib/c-B-NUhs61.js +46 -0
- package/lib/c-B-NUhs61.js.map +1 -0
- package/lib/chunk-PVWAREVJ-dLIqswPy.js +7965 -0
- package/lib/chunk-PVWAREVJ-dLIqswPy.js.map +1 -0
- package/lib/circular-D5sYCIWL.js +15341 -0
- package/lib/circular-D5sYCIWL.js.map +1 -0
- package/lib/clsx-OuTLNxxd.js +17 -0
- package/lib/clsx-OuTLNxxd.js.map +1 -0
- package/lib/cn-dYga0KKN.js +2731 -0
- package/lib/cn-dYga0KKN.js.map +1 -0
- package/lib/commonlisp-De080z23.js +28 -0
- package/lib/commonlisp-De080z23.js.map +1 -0
- package/lib/cpp-79Paht7T.js +53 -0
- package/lib/cpp-79Paht7T.js.map +1 -0
- package/lib/createServer-BlwU7lIr.js +16693 -0
- package/lib/createServer-BlwU7lIr.js.map +1 -0
- package/lib/createVariantComponent-B9_dVBvu.js +35 -0
- package/lib/createVariantComponent-B9_dVBvu.js.map +1 -0
- package/lib/csharp-D8MIL50B.js +53 -0
- package/lib/csharp-D8MIL50B.js.map +1 -0
- package/lib/css-Bt6hr1td.js +54 -0
- package/lib/css-Bt6hr1td.js.map +1 -0
- package/lib/dart-B0vy1jWB.js +60 -0
- package/lib/dart-B0vy1jWB.js.map +1 -0
- package/lib/elixir-Ds8r0sF8.js +25 -0
- package/lib/elixir-Ds8r0sF8.js.map +1 -0
- package/lib/errors-BtC4Kn2j.js +45 -0
- package/lib/errors-BtC4Kn2j.js.map +1 -0
- package/lib/firebase-DApULm96.js +7390 -0
- package/lib/firebase-DApULm96.js.map +1 -0
- package/lib/go-D2VsmIOS.js +25 -0
- package/lib/go-D2VsmIOS.js.map +1 -0
- package/lib/graphql-BtA6M4m5.js +25 -0
- package/lib/graphql-BtA6M4m5.js.map +1 -0
- package/lib/hook-BNxidGQq.js +40 -0
- package/lib/hook-BNxidGQq.js.map +1 -0
- package/lib/html-MGnI2uzP.js +33 -0
- package/lib/html-MGnI2uzP.js.map +1 -0
- package/lib/index-CeVTNcfF.js +3676 -0
- package/lib/index-CeVTNcfF.js.map +1 -0
- package/lib/index-CrcNWbel.js +316 -0
- package/lib/index-CrcNWbel.js.map +1 -0
- package/lib/index-Css56y3F.js +133 -0
- package/lib/index-Css56y3F.js.map +1 -0
- package/lib/index-DI5SPFK9.js +36 -0
- package/lib/index-DI5SPFK9.js.map +1 -0
- package/lib/index-DSOi7zVM.js +1059 -0
- package/lib/index-DSOi7zVM.js.map +1 -0
- package/lib/index-eKVhlB94.js +2210 -0
- package/lib/index-eKVhlB94.js.map +1 -0
- package/lib/index-nGbmHh_A.js +4827 -0
- package/lib/index-nGbmHh_A.js.map +1 -0
- package/lib/index.esm-BYObtETB.js +1294 -0
- package/lib/index.esm-BYObtETB.js.map +1 -0
- package/lib/index.esm-DtzT_KoE.js +683 -0
- package/lib/index.esm-DtzT_KoE.js.map +1 -0
- package/lib/index.esm-xmjej92R.js +32 -0
- package/lib/index.esm-xmjej92R.js.map +1 -0
- package/lib/invariant-CGOLuIIz.js +44 -0
- package/lib/invariant-CGOLuIIz.js.map +1 -0
- package/lib/java-CVLzHfb1.js +53 -0
- package/lib/java-CVLzHfb1.js.map +1 -0
- package/lib/javascript-CcmIpL4G.js +10 -0
- package/lib/javascript-CcmIpL4G.js.map +1 -0
- package/lib/json-4AyP4uiY.js +25 -0
- package/lib/json-4AyP4uiY.js.map +1 -0
- package/lib/jsx-runtime-BzflLqGi.js +283 -0
- package/lib/jsx-runtime-BzflLqGi.js.map +1 -0
- package/lib/kotlin-v2plddBQ.js +37 -0
- package/lib/kotlin-v2plddBQ.js.map +1 -0
- package/lib/markdown-DYGWCmGQ.js +25 -0
- package/lib/markdown-DYGWCmGQ.js.map +1 -0
- package/lib/mdx-CHwYvXd4.js +32 -0
- package/lib/mdx-CHwYvXd4.js.map +1 -0
- package/lib/mutation-BoVlx8yA.js +196 -0
- package/lib/mutation-BoVlx8yA.js.map +1 -0
- package/lib/objectivec-HZY8shkd.js +32 -0
- package/lib/objectivec-HZY8shkd.js.map +1 -0
- package/lib/ocaml-DqsdDdwb.js +52 -0
- package/lib/ocaml-DqsdDdwb.js.map +1 -0
- package/lib/php-rQXzo7K_.js +25 -0
- package/lib/php-rQXzo7K_.js.map +1 -0
- package/lib/powershell-CQje9pm1.js +39 -0
- package/lib/powershell-CQje9pm1.js.map +1 -0
- package/lib/processors/removeExtensions.js +11 -0
- package/lib/processors/removeExtensions.js.map +1 -0
- package/lib/processors/removeParameters.js +47 -0
- package/lib/processors/removeParameters.js.map +1 -0
- package/lib/processors/removePaths.js +28 -0
- package/lib/processors/removePaths.js.map +1 -0
- package/lib/processors/traverse.js +17 -0
- package/lib/processors/traverse.js.map +1 -0
- package/lib/python-QIQAE5Ei.js +32 -0
- package/lib/python-QIQAE5Ei.js.map +1 -0
- package/lib/react-DHpVpxRv.js +24 -0
- package/lib/react-DHpVpxRv.js.map +1 -0
- package/lib/ruby-B2dU8Ny5.js +25 -0
- package/lib/ruby-B2dU8Ny5.js.map +1 -0
- package/lib/rust-DYnLHAi2.js +25 -0
- package/lib/rust-DYnLHAi2.js.map +1 -0
- package/lib/scala-CeKInBR8.js +25 -0
- package/lib/scala-CeKInBR8.js.map +1 -0
- package/lib/shell-HUv9oVtp.js +25 -0
- package/lib/shell-HUv9oVtp.js.map +1 -0
- package/lib/swift-B4z6ig1Z.js +25 -0
- package/lib/swift-B4z6ig1Z.js.map +1 -0
- package/lib/toml-Co9mpdct.js +32 -0
- package/lib/toml-Co9mpdct.js.map +1 -0
- package/lib/typescript-C26xdBDC.js +32 -0
- package/lib/typescript-C26xdBDC.js.map +1 -0
- package/lib/ui/Accordion.js +47 -0
- package/lib/ui/Accordion.js.map +1 -0
- package/lib/ui/ActionButton.js +25 -0
- package/lib/ui/ActionButton.js.map +1 -0
- package/lib/ui/Alert.js +67 -0
- package/lib/ui/Alert.js.map +1 -0
- package/lib/ui/AlertDialog.js +114 -0
- package/lib/ui/AlertDialog.js.map +1 -0
- package/lib/ui/AspectRatio.js +6 -0
- package/lib/ui/AspectRatio.js.map +1 -0
- package/lib/ui/Badge.js +42 -0
- package/lib/ui/Badge.js.map +1 -0
- package/lib/ui/Breadcrumb.js +95 -0
- package/lib/ui/Breadcrumb.js.map +1 -0
- package/lib/ui/Button.js +54 -0
- package/lib/ui/Button.js.map +1 -0
- package/lib/ui/ButtonGroup.js +77 -0
- package/lib/ui/ButtonGroup.js.map +1 -0
- package/lib/ui/Callout.js +97 -0
- package/lib/ui/Callout.js.map +1 -0
- package/lib/ui/Card.js +62 -0
- package/lib/ui/Card.js.map +1 -0
- package/lib/ui/Carousel.js +1416 -0
- package/lib/ui/Carousel.js.map +1 -0
- package/lib/ui/Checkbox.js +32 -0
- package/lib/ui/Checkbox.js.map +1 -0
- package/lib/ui/CodeBlock.js +220 -0
- package/lib/ui/CodeBlock.js.map +1 -0
- package/lib/ui/Collapsible.js +35 -0
- package/lib/ui/Collapsible.js.map +1 -0
- package/lib/ui/Command.js +150 -0
- package/lib/ui/Command.js.map +1 -0
- package/lib/ui/Dialog.js +146 -0
- package/lib/ui/Dialog.js.map +1 -0
- package/lib/ui/Drawer.js +17 -0
- package/lib/ui/Drawer.js.map +1 -0
- package/lib/ui/DropdownMenu.js +232 -0
- package/lib/ui/DropdownMenu.js.map +1 -0
- package/lib/ui/EmbeddedCodeBlock.js +84 -0
- package/lib/ui/EmbeddedCodeBlock.js.map +1 -0
- package/lib/ui/Form.js +95 -0
- package/lib/ui/Form.js.map +1 -0
- package/lib/ui/Frame.js +81 -0
- package/lib/ui/Frame.js.map +1 -0
- package/lib/ui/HoverCard.js +24 -0
- package/lib/ui/HoverCard.js.map +1 -0
- package/lib/ui/Input.js +22 -0
- package/lib/ui/Input.js.map +1 -0
- package/lib/ui/Item.js +188 -0
- package/lib/ui/Item.js.map +1 -0
- package/lib/ui/Kbd.js +32 -0
- package/lib/ui/Kbd.js.map +1 -0
- package/lib/ui/Label.js +20 -0
- package/lib/ui/Label.js.map +1 -0
- package/lib/ui/NativeSelect.js +57 -0
- package/lib/ui/NativeSelect.js.map +1 -0
- package/lib/ui/Pagination.js +105 -0
- package/lib/ui/Pagination.js.map +1 -0
- package/lib/ui/Popover.js +24 -0
- package/lib/ui/Popover.js.map +1 -0
- package/lib/ui/Progress.js +27 -0
- package/lib/ui/Progress.js.map +1 -0
- package/lib/ui/RadioGroup.js +32 -0
- package/lib/ui/RadioGroup.js.map +1 -0
- package/lib/ui/ReactComponentDoc.js +28 -0
- package/lib/ui/ReactComponentDoc.js.map +1 -0
- package/lib/ui/ScrollArea.js +39 -0
- package/lib/ui/ScrollArea.js.map +1 -0
- package/lib/ui/Secret.js +106 -0
- package/lib/ui/Secret.js.map +1 -0
- package/lib/ui/Select.js +172 -0
- package/lib/ui/Select.js.map +1 -0
- package/lib/ui/Separator.js +27 -0
- package/lib/ui/Separator.js.map +1 -0
- package/lib/ui/Skeleton.js +18 -0
- package/lib/ui/Skeleton.js.map +1 -0
- package/lib/ui/Slider.js +24 -0
- package/lib/ui/Slider.js.map +1 -0
- package/lib/ui/Stepper.js +6 -0
- package/lib/ui/Stepper.js.map +1 -0
- package/lib/ui/Switch.js +28 -0
- package/lib/ui/Switch.js.map +1 -0
- package/lib/ui/SyntaxHighlight.js +11 -0
- package/lib/ui/SyntaxHighlight.js.map +1 -0
- package/lib/ui/Tabs.js +47 -0
- package/lib/ui/Tabs.js.map +1 -0
- package/lib/ui/Textarea.js +21 -0
- package/lib/ui/Textarea.js.map +1 -0
- package/lib/ui/Toggle.js +38 -0
- package/lib/ui/Toggle.js.map +1 -0
- package/lib/ui/ToggleGroup.js +42 -0
- package/lib/ui/ToggleGroup.js.map +1 -0
- package/lib/ui/Tooltip.js +58 -0
- package/lib/ui/Tooltip.js.map +1 -0
- package/lib/ui/Value.js +39 -0
- package/lib/ui/Value.js.map +1 -0
- package/lib/ui/util.js +6 -0
- package/lib/ui/util.js.map +1 -0
- package/lib/useCopyToClipboard-B_085nfO.js +14 -0
- package/lib/useCopyToClipboard-B_085nfO.js.map +1 -0
- package/lib/useLatest-hmRS46UF.js +11 -0
- package/lib/useLatest-hmRS46UF.js.map +1 -0
- package/lib/useMutation-C6RqWmTS.js +97 -0
- package/lib/useMutation-C6RqWmTS.js.map +1 -0
- package/lib/xml-BQOOC04j.js +25 -0
- package/lib/xml-BQOOC04j.js.map +1 -0
- package/lib/yaml-BGsJItKv.js +32 -0
- package/lib/yaml-BGsJItKv.js.map +1 -0
- package/lib/zig-CUV2sTct.js +35 -0
- package/lib/zig-CUV2sTct.js.map +1 -0
- package/lib/zudoku.__internal.js +3084 -0
- package/lib/zudoku.__internal.js.map +1 -0
- package/lib/zudoku.auth-auth0.js +32 -29
- package/lib/zudoku.auth-auth0.js.map +1 -1
- package/lib/zudoku.auth-azureb2c.js +136 -0
- package/lib/zudoku.auth-azureb2c.js.map +1 -0
- package/lib/zudoku.auth-clerk.js +112 -61
- package/lib/zudoku.auth-clerk.js.map +1 -1
- package/lib/zudoku.auth-firebase.js +9 -0
- package/lib/zudoku.auth-firebase.js.map +1 -0
- package/lib/zudoku.auth-openid.js +644 -664
- package/lib/zudoku.auth-openid.js.map +1 -1
- package/lib/zudoku.auth-supabase.js +154 -0
- package/lib/zudoku.auth-supabase.js.map +1 -0
- package/lib/zudoku.components.js +27 -3364
- package/lib/zudoku.components.js.map +1 -1
- package/lib/zudoku.hooks.js +14 -0
- package/lib/zudoku.hooks.js.map +1 -0
- package/lib/zudoku.icons.js +10 -0
- package/lib/zudoku.icons.js.map +1 -1
- package/lib/zudoku.mermaid.js +10 -0
- package/lib/zudoku.mermaid.js.map +1 -0
- package/lib/zudoku.plugin-api-catalog.js +124 -0
- package/lib/zudoku.plugin-api-catalog.js.map +1 -0
- package/lib/zudoku.plugin-api-keys.js +653 -200
- package/lib/zudoku.plugin-api-keys.js.map +1 -1
- package/lib/zudoku.plugin-custom-pages.js +19 -0
- package/lib/zudoku.plugin-custom-pages.js.map +1 -0
- package/lib/zudoku.plugin-markdown.js +22 -28
- package/lib/zudoku.plugin-markdown.js.map +1 -1
- package/lib/zudoku.plugin-openapi.js +8 -12
- package/lib/zudoku.plugin-openapi.js.map +1 -1
- package/lib/zudoku.plugin-redirect.js +2 -2
- package/lib/zudoku.plugin-redirect.js.map +1 -1
- package/lib/zudoku.plugin-search-inkeep.js +61 -40
- package/lib/zudoku.plugin-search-inkeep.js.map +1 -1
- package/lib/zudoku.plugin-search-pagefind.js +282 -0
- package/lib/zudoku.plugin-search-pagefind.js.map +1 -0
- package/lib/zudoku.plugins.js +15 -0
- package/lib/zudoku.plugins.js.map +1 -0
- package/lib/zudoku.router.js +2507 -0
- package/lib/zudoku.router.js.map +1 -0
- package/package.json +233 -110
- package/src/app/ZuploBuildConfig.ts +33 -0
- package/src/app/defaultTheme.css +73 -0
- package/src/app/demo-cdn.html +31 -31
- package/src/app/demo.html +1 -1
- package/src/app/demo.tsx +26 -12
- package/src/app/entry.client.tsx +75 -8
- package/src/app/entry.server.tsx +97 -68
- package/src/app/env.ts +43 -0
- package/src/app/font.geist.css +73 -0
- package/src/app/main.css +232 -134
- package/src/app/main.tsx +100 -80
- package/src/app/sentry.ts +24 -0
- package/src/app/standalone.tsx +15 -13
- package/src/lib/MissingIcon.tsx +22 -0
- package/src/lib/assets/language-icons/c.tsx +31 -0
- package/src/lib/assets/language-icons/commonlisp.tsx +22 -0
- package/src/lib/assets/language-icons/cpp.tsx +35 -0
- package/src/lib/assets/language-icons/csharp.tsx +35 -0
- package/src/lib/assets/language-icons/css.tsx +36 -0
- package/src/lib/assets/language-icons/dart.tsx +39 -0
- package/src/lib/assets/language-icons/elixir.tsx +19 -0
- package/src/lib/assets/language-icons/go.tsx +19 -0
- package/src/lib/assets/language-icons/graphql.tsx +19 -0
- package/src/lib/assets/language-icons/html.tsx +24 -0
- package/src/lib/assets/language-icons/java.tsx +35 -0
- package/src/lib/assets/language-icons/javascript.tsx +11 -0
- package/src/lib/assets/language-icons/json.tsx +19 -0
- package/src/lib/assets/language-icons/kotlin.tsx +30 -0
- package/src/lib/assets/language-icons/markdown.tsx +19 -0
- package/src/lib/assets/language-icons/mdx.tsx +23 -0
- package/src/lib/assets/language-icons/objectivec.tsx +23 -0
- package/src/lib/assets/language-icons/ocaml.tsx +34 -0
- package/src/lib/assets/language-icons/php.tsx +19 -0
- package/src/lib/assets/language-icons/powershell.tsx +27 -0
- package/src/lib/assets/language-icons/python.tsx +23 -0
- package/src/lib/assets/language-icons/react.tsx +21 -0
- package/src/lib/assets/language-icons/ruby.tsx +19 -0
- package/src/lib/assets/language-icons/rust.tsx +19 -0
- package/src/lib/assets/language-icons/scala.tsx +19 -0
- package/src/lib/assets/language-icons/shell.tsx +19 -0
- package/src/lib/assets/language-icons/swift.tsx +19 -0
- package/src/lib/assets/language-icons/toml.tsx +23 -0
- package/src/lib/assets/language-icons/typescript.tsx +23 -0
- package/src/lib/assets/language-icons/xml.tsx +19 -0
- package/src/lib/assets/language-icons/yaml.tsx +23 -0
- package/src/lib/assets/language-icons/zig.tsx +32 -0
- package/src/lib/auth/issuer.test.ts +121 -0
- package/src/lib/auth/issuer.ts +44 -0
- package/src/lib/authentication/AuthenticationPlugin.tsx +6 -3
- package/src/lib/authentication/authentication.ts +29 -12
- package/src/lib/authentication/components/CallbackHandler.tsx +36 -50
- package/src/lib/authentication/components/OAuthErrorPage.tsx +171 -0
- package/src/lib/authentication/components/SignIn.tsx +35 -7
- package/src/lib/authentication/components/SignOut.tsx +8 -6
- package/src/lib/authentication/components/SignUp.tsx +36 -5
- package/src/lib/authentication/errors.ts +27 -13
- package/src/lib/authentication/hook.ts +29 -7
- package/src/lib/authentication/providers/auth0.tsx +39 -19
- package/src/lib/authentication/providers/azureb2c.tsx +208 -0
- package/src/lib/authentication/providers/clerk.tsx +138 -54
- package/src/lib/authentication/providers/firebase.tsx +301 -0
- package/src/lib/authentication/providers/openid.tsx +175 -89
- package/src/lib/authentication/providers/supabase/SupabaseAuthUI.tsx +75 -0
- package/src/lib/authentication/providers/supabase.tsx +162 -0
- package/src/lib/authentication/state.ts +65 -24
- package/src/lib/authentication/ui/ZudokuAuthUi.tsx +375 -0
- package/src/lib/authentication/ui/icons/Apple.tsx +10 -0
- package/src/lib/authentication/ui/icons/Facebook.tsx +15 -0
- package/src/lib/authentication/ui/icons/Github.tsx +16 -0
- package/src/lib/authentication/ui/icons/Google.tsx +16 -0
- package/src/lib/authentication/ui/icons/Microsoft.tsx +12 -0
- package/src/lib/authentication/ui/icons/X.tsx +10 -0
- package/src/lib/authentication/use-broadcast/LICENSE.md +18 -0
- package/src/lib/authentication/use-broadcast/shared.ts +372 -0
- package/src/lib/authentication/use-broadcast/useBroadcast.ts +146 -0
- package/src/lib/components/AnchorLink.tsx +13 -8
- package/src/lib/components/Autocomplete.tsx +123 -0
- package/src/lib/components/Banner.tsx +3 -3
- package/src/lib/components/Bootstrap.tsx +44 -16
- package/src/lib/components/BuildCheck.tsx +88 -0
- package/src/lib/components/CategoryHeading.tsx +4 -1
- package/src/lib/components/ClientOnly.tsx +6 -3
- package/src/lib/components/DeveloperHint.tsx +6 -1
- package/src/lib/components/ErrorPage.tsx +3 -3
- package/src/lib/components/Footer.tsx +136 -0
- package/src/lib/components/Framed.tsx +51 -0
- package/src/lib/components/Header.tsx +122 -66
- package/src/lib/components/Heading.tsx +22 -19
- package/src/lib/components/InlineCode.tsx +13 -16
- package/src/lib/components/LanguageIcon.tsx +181 -0
- package/src/lib/components/Layout.tsx +28 -69
- package/src/lib/components/Main.tsx +51 -0
- package/src/lib/components/Markdown.tsx +45 -30
- package/src/lib/components/Mermaid.tsx +68 -0
- package/src/lib/components/Meta.tsx +45 -0
- package/src/lib/components/MobileTopNavigation.tsx +98 -28
- package/src/lib/components/NotFoundPage.tsx +7 -6
- package/src/lib/components/PageProgress.tsx +28 -0
- package/src/lib/components/PagefindSearchMeta.tsx +14 -0
- package/src/lib/components/Pagination.tsx +45 -0
- package/src/lib/components/PathRenderer.tsx +61 -0
- package/src/lib/components/Search.tsx +20 -9
- package/src/lib/components/Slot.test.tsx +465 -0
- package/src/lib/components/Slot.tsx +64 -0
- package/src/lib/components/StatusPage.tsx +96 -0
- package/src/lib/components/ThemeSwitch.tsx +46 -0
- package/src/lib/components/TopNavigation.tsx +104 -27
- package/src/lib/components/Typography.tsx +14 -0
- package/src/lib/components/Zudoku.tsx +116 -0
- package/src/lib/components/cache.ts +27 -0
- package/src/lib/components/context/BypassProtectedRoutesContext.ts +3 -0
- package/src/lib/components/context/ComponentsContext.tsx +2 -2
- package/src/lib/components/context/RouterEventsEmitter.tsx +19 -0
- package/src/lib/components/context/SlotProvider.tsx +149 -0
- package/src/lib/components/context/ViewportAnchorContext.tsx +35 -37
- package/src/lib/components/context/ZudokuContext.ts +87 -29
- package/src/lib/components/context/ZudokuProvider.tsx +4 -3
- package/src/lib/components/index.ts +34 -17
- package/src/lib/components/navigation/Navigation.tsx +50 -0
- package/src/lib/components/navigation/NavigationBadge.tsx +48 -0
- package/src/lib/components/navigation/NavigationCategory.tsx +153 -0
- package/src/lib/components/navigation/NavigationItem.tsx +148 -0
- package/src/lib/components/navigation/NavigationWrapper.tsx +49 -0
- package/src/lib/components/navigation/PoweredByZudoku.tsx +33 -0
- package/src/lib/components/navigation/Toc.tsx +126 -0
- package/src/lib/components/navigation/ZudokuLogo.tsx +25 -0
- package/src/lib/components/navigation/ZuploLogo.tsx +14 -0
- package/src/lib/components/navigation/utils.ts +85 -50
- package/src/lib/core/RouteGuard.tsx +116 -0
- package/src/lib/core/ZudokuContext.ts +249 -0
- package/src/lib/core/__internal.tsx +30 -0
- package/src/lib/core/plugins.ts +56 -23
- package/src/lib/core/router.ts +1 -0
- package/src/lib/errors/ErrorAlert.tsx +29 -17
- package/src/lib/errors/RouterError.tsx +8 -3
- package/src/lib/errors/TopLevelError.tsx +2 -4
- package/src/lib/hooks/index.ts +16 -0
- package/src/lib/hooks/useEvent.test.tsx +151 -0
- package/src/lib/hooks/useEvent.ts +41 -0
- package/src/lib/hooks/useHotkey.ts +70 -0
- package/src/lib/icons.ts +1 -0
- package/src/lib/oas/graphql/circular.ts +58 -0
- package/src/lib/oas/graphql/index.ts +334 -104
- package/src/lib/oas/parser/dereference/index.ts +12 -5
- package/src/lib/oas/parser/dereference/resolveRef.ts +4 -4
- package/src/lib/oas/parser/index.ts +23 -32
- package/src/lib/oas/parser/upgrade/index.ts +105 -39
- package/src/lib/plugins/api-catalog/Catalog.tsx +80 -0
- package/src/lib/plugins/api-catalog/index.tsx +115 -0
- package/src/lib/plugins/api-keys/CreateApiKey.tsx +79 -49
- package/src/lib/plugins/api-keys/CreateApiKeyDialog.tsx +49 -0
- package/src/lib/plugins/api-keys/ProtectedRoute.tsx +12 -8
- package/src/lib/plugins/api-keys/SettingsApiKeys.tsx +441 -122
- package/src/lib/plugins/api-keys/index.tsx +165 -69
- package/src/lib/plugins/custom-pages/index.tsx +32 -0
- package/src/lib/plugins/markdown/MdxPage.tsx +237 -61
- package/src/lib/plugins/markdown/assets/ChatGPTLogo.tsx +11 -0
- package/src/lib/plugins/markdown/assets/ClaudeLogo.tsx +19 -0
- package/src/lib/plugins/markdown/index.tsx +39 -14
- package/src/lib/plugins/openapi/CollapsibleCode.tsx +88 -0
- package/src/lib/plugins/openapi/ColorizedParam.tsx +51 -23
- package/src/lib/plugins/openapi/DownloadSchemaButton.tsx +115 -0
- package/src/lib/plugins/openapi/Endpoint.tsx +33 -43
- package/src/lib/plugins/openapi/GeneratedExampleSidecarBox.tsx +52 -0
- package/src/lib/plugins/openapi/MCPEndpoint.tsx +273 -0
- package/src/lib/plugins/openapi/OasProvider.tsx +65 -0
- package/src/lib/plugins/openapi/OperationList.tsx +282 -74
- package/src/lib/plugins/openapi/OperationListItem.tsx +147 -91
- package/src/lib/plugins/openapi/ParamInfos.tsx +91 -0
- package/src/lib/plugins/openapi/ParameterList.tsx +43 -27
- package/src/lib/plugins/openapi/ParameterListItem.tsx +137 -39
- package/src/lib/plugins/openapi/PlaygroundDialogWrapper.tsx +25 -5
- package/src/lib/plugins/openapi/RequestBodySidecarBox.tsx +52 -28
- package/src/lib/plugins/openapi/ResponsesSidecarBox.tsx +109 -64
- package/src/lib/plugins/openapi/SchemaList.tsx +161 -0
- package/src/lib/plugins/openapi/Sidecar.tsx +244 -181
- package/src/lib/plugins/openapi/SidecarBox.tsx +14 -4
- package/src/lib/plugins/openapi/SidecarExamples.tsx +174 -0
- package/src/lib/plugins/openapi/SimpleSelect.tsx +1 -1
- package/src/lib/plugins/openapi/StaggeredRender.tsx +1 -1
- package/src/lib/plugins/openapi/client/GraphQLClient.tsx +65 -0
- package/src/lib/plugins/openapi/client/GraphQLContext.tsx +16 -0
- package/src/lib/plugins/openapi/client/createServer.ts +9 -4
- package/src/lib/plugins/openapi/client/useCreateQuery.ts +46 -0
- package/src/lib/plugins/openapi/components/ConstValue.tsx +24 -0
- package/src/lib/plugins/openapi/components/EnumValues.tsx +58 -0
- package/src/lib/plugins/openapi/components/NonHighlightedCode.tsx +22 -0
- package/src/lib/plugins/openapi/components/ResponseContent.tsx +114 -0
- package/src/lib/plugins/openapi/components/SelectOnClick.tsx +29 -0
- package/src/lib/plugins/openapi/context.tsx +2 -2
- package/src/lib/plugins/openapi/graphql/fragment-masking.ts +12 -19
- package/src/lib/plugins/openapi/graphql/gql.ts +38 -30
- package/src/lib/plugins/openapi/graphql/graphql.ts +411 -683
- package/src/lib/plugins/openapi/index.tsx +173 -160
- package/src/lib/plugins/openapi/interfaces.ts +84 -5
- package/src/lib/plugins/openapi/playground/BodyPanel.tsx +271 -0
- package/src/lib/plugins/openapi/playground/CollapsibleHeader.tsx +51 -0
- package/src/lib/plugins/openapi/playground/ExamplesDropdown.tsx +60 -0
- package/src/lib/plugins/openapi/playground/Headers.tsx +173 -58
- package/src/lib/plugins/openapi/playground/IdentityDialog.tsx +75 -0
- package/src/lib/plugins/openapi/playground/IdentitySelector.tsx +38 -0
- package/src/lib/plugins/openapi/playground/ParamsGrid.tsx +45 -0
- package/src/lib/plugins/openapi/playground/PathParams.tsx +36 -70
- package/src/lib/plugins/openapi/playground/Playground.tsx +459 -288
- package/src/lib/plugins/openapi/playground/PlaygroundDialog.tsx +24 -30
- package/src/lib/plugins/openapi/playground/QueryParams.tsx +102 -112
- package/src/lib/plugins/openapi/playground/RequestLoginDialog.tsx +70 -0
- package/src/lib/plugins/openapi/playground/Spinner.tsx +87 -0
- package/src/lib/plugins/openapi/playground/fileUtils.ts +32 -0
- package/src/lib/plugins/openapi/playground/rememberedIdentity.ts +26 -0
- package/src/lib/plugins/openapi/playground/request-panel/MultipartField.tsx +91 -0
- package/src/lib/plugins/openapi/playground/request-panel/UrlPath.tsx +31 -0
- package/src/lib/plugins/openapi/playground/request-panel/UrlQueryParams.tsx +25 -0
- package/src/lib/plugins/openapi/playground/request-panel/fieldManager/useKeyValueFieldManager.test.tsx +872 -0
- package/src/lib/plugins/openapi/playground/request-panel/useKeyValueFieldManager.ts +349 -0
- package/src/lib/plugins/openapi/playground/result-panel/Highlight.tsx +26 -0
- package/src/lib/plugins/openapi/playground/result-panel/ResponseStatusBar.tsx +117 -0
- package/src/lib/plugins/openapi/playground/result-panel/ResponseTab.tsx +339 -0
- package/src/lib/plugins/openapi/playground/result-panel/ResultPanel.tsx +102 -0
- package/src/lib/plugins/openapi/playground/result-panel/convertToTypes.test.ts +64 -0
- package/src/lib/plugins/openapi/playground/result-panel/convertToTypes.ts +36 -0
- package/src/lib/plugins/openapi/playground/useRememberSkipLoginDialog.tsx +23 -0
- package/src/lib/plugins/openapi/processors/removeExtensions.test.ts +223 -0
- package/src/lib/plugins/openapi/processors/removeExtensions.ts +29 -0
- package/src/lib/plugins/openapi/processors/removeParameters.test.ts +183 -0
- package/src/lib/plugins/openapi/processors/removeParameters.ts +103 -0
- package/src/lib/plugins/openapi/processors/removePaths.test.ts +167 -0
- package/src/lib/plugins/openapi/processors/removePaths.ts +57 -0
- package/src/lib/plugins/openapi/processors/traverse.ts +1 -0
- package/src/lib/plugins/openapi/schema/SchemaExampleAndDefault.tsx +39 -0
- package/src/lib/plugins/openapi/schema/SchemaPropertyItem.tsx +175 -0
- package/src/lib/plugins/openapi/schema/SchemaView.tsx +154 -142
- package/src/lib/plugins/openapi/schema/UnionView.tsx +132 -0
- package/src/lib/plugins/openapi/schema/union-helpers.ts +123 -0
- package/src/lib/plugins/openapi/schema/utils.ts +34 -14
- package/src/lib/plugins/openapi/state.ts +36 -0
- package/src/lib/plugins/openapi/util/createHttpSnippet.ts +107 -0
- package/src/lib/plugins/openapi/util/createNavigationCategory.tsx +39 -0
- package/src/lib/plugins/openapi/util/generateSchemaExample.ts +95 -45
- package/src/lib/plugins/openapi/util/getRoutes.tsx +230 -0
- package/src/lib/plugins/openapi/util/methodColorMap.tsx +11 -0
- package/src/lib/plugins/openapi/util/methodToColor.ts +27 -0
- package/src/lib/plugins/openapi/util/sanitizeMarkdownForMetatag.tsx +32 -0
- package/src/lib/plugins/redirect/index.tsx +6 -10
- package/src/lib/plugins/search-inkeep/index.tsx +83 -32
- package/src/lib/plugins/search-inkeep/inkeep.ts +15 -23
- package/src/lib/plugins/search-pagefind/IndexingDialog.tsx +163 -0
- package/src/lib/plugins/search-pagefind/PagefindSearch.tsx +202 -0
- package/src/lib/plugins/search-pagefind/ResultList.tsx +118 -0
- package/src/lib/plugins/search-pagefind/get-results.tsx +74 -0
- package/src/lib/plugins/search-pagefind/index.tsx +21 -0
- package/src/lib/plugins/search-pagefind/types.ts +118 -0
- package/src/lib/shiki.ts +170 -0
- package/src/lib/ui/Accordion.tsx +56 -0
- package/src/lib/ui/ActionButton.tsx +30 -0
- package/src/lib/ui/Alert.tsx +65 -0
- package/src/lib/ui/AlertDialog.tsx +139 -0
- package/src/lib/ui/AspectRatio.tsx +5 -0
- package/src/lib/ui/Badge.tsx +46 -0
- package/src/lib/ui/Breadcrumb.tsx +116 -0
- package/src/lib/ui/Button.tsx +16 -10
- package/src/lib/ui/ButtonGroup.tsx +82 -0
- package/src/lib/ui/Callout.tsx +47 -21
- package/src/lib/ui/Card.tsx +1 -1
- package/src/lib/ui/Carousel.tsx +260 -0
- package/src/lib/ui/Checkbox.tsx +28 -0
- package/src/lib/ui/CodeBlock.tsx +79 -0
- package/src/lib/ui/Collapsible.tsx +31 -0
- package/src/lib/ui/Command.tsx +191 -0
- package/src/lib/ui/Dialog.tsx +138 -0
- package/src/lib/ui/Drawer.tsx +38 -36
- package/src/lib/ui/DropdownMenu.tsx +226 -170
- package/src/lib/ui/EmbeddedCodeBlock.tsx +99 -0
- package/src/lib/ui/Form.tsx +177 -0
- package/src/lib/ui/Frame.tsx +81 -0
- package/src/lib/ui/HoverCard.tsx +27 -0
- package/src/lib/ui/Input.tsx +2 -3
- package/src/lib/ui/Item.tsx +192 -0
- package/src/lib/ui/Kbd.tsx +28 -0
- package/src/lib/ui/Label.tsx +24 -0
- package/src/lib/ui/NativeSelect.tsx +47 -0
- package/src/lib/ui/Pagination.tsx +116 -0
- package/src/lib/ui/Popover.tsx +29 -0
- package/src/lib/ui/Progress.tsx +26 -0
- package/src/lib/ui/RadioGroup.tsx +42 -0
- package/src/lib/ui/ReactComponentDoc.tsx +68 -0
- package/src/lib/ui/ScrollArea.tsx +46 -0
- package/src/lib/ui/Secret.tsx +123 -0
- package/src/lib/ui/Select.tsx +184 -0
- package/src/lib/ui/Separator.tsx +25 -0
- package/src/lib/ui/Skeleton.tsx +15 -0
- package/src/lib/ui/Slider.tsx +26 -0
- package/src/lib/ui/Stepper.tsx +8 -0
- package/src/lib/ui/Switch.tsx +27 -0
- package/src/lib/ui/SyntaxHighlight.tsx +40 -0
- package/src/lib/ui/Tabs.tsx +2 -2
- package/src/lib/ui/Textarea.tsx +23 -0
- package/src/lib/ui/Toggle.tsx +43 -0
- package/src/lib/ui/ToggleGroup.tsx +59 -0
- package/src/lib/ui/Tooltip.tsx +65 -0
- package/src/lib/ui/Value.tsx +42 -0
- package/src/lib/ui/util.tsx +3 -0
- package/src/lib/util/MdxComponents.tsx +60 -26
- package/src/lib/util/cn.ts +1 -1
- package/src/lib/util/createVariantComponent.tsx +33 -7
- package/src/lib/util/detectOS.ts +9 -0
- package/src/lib/util/ensureArray.ts +3 -0
- package/src/lib/util/flattenAllOf.test.ts +689 -0
- package/src/lib/util/flattenAllOf.ts +122 -0
- package/src/lib/util/groupBy.ts +1 -0
- package/src/lib/util/humanFileSize.test.ts +24 -0
- package/src/lib/util/humanFileSize.ts +15 -0
- package/src/lib/util/invariant.ts +18 -3
- package/src/lib/util/joinPath.tsx +3 -0
- package/src/lib/util/joinUrl.test.ts +62 -0
- package/src/lib/util/joinUrl.ts +57 -0
- package/src/lib/util/os.ts +18 -0
- package/src/lib/util/pastellize.ts +4 -4
- package/src/lib/util/readFrontmatter.ts +13 -0
- package/src/lib/util/scrollIntoViewIfNeeded.ts +18 -0
- package/src/lib/util/syncZustandState.ts +22 -0
- package/src/lib/util/traverse.ts +70 -0
- package/src/lib/util/types.ts +7 -0
- package/src/lib/util/url.test.ts +51 -0
- package/src/lib/util/url.ts +18 -0
- package/src/lib/util/useCopyToClipboard.ts +17 -0
- package/src/lib/util/useExposedProps.tsx +27 -0
- package/src/lib/util/useIsomorphicLayoutEffect.ts +6 -0
- package/src/lib/util/useLatest.ts +18 -0
- package/src/lib/util/useOnScreen.ts +34 -0
- package/src/lib/util/useScrollToAnchor.ts +51 -40
- package/src/lib/util/useScrollToTop.ts +9 -4
- package/src/shiki/langs/abap.js +1 -0
- package/src/shiki/langs/actionscript-3.js +1 -0
- package/src/shiki/langs/ada.js +1 -0
- package/src/shiki/langs/angular-expression.js +1 -0
- package/src/shiki/langs/angular-html.js +1 -0
- package/src/shiki/langs/angular-inline-style.js +1 -0
- package/src/shiki/langs/angular-inline-template.js +1 -0
- package/src/shiki/langs/angular-let-declaration.js +1 -0
- package/src/shiki/langs/angular-template-blocks.js +1 -0
- package/src/shiki/langs/angular-template.js +1 -0
- package/src/shiki/langs/angular-ts.js +1 -0
- package/src/shiki/langs/apache.js +1 -0
- package/src/shiki/langs/apex.js +1 -0
- package/src/shiki/langs/apl.js +1 -0
- package/src/shiki/langs/applescript.js +1 -0
- package/src/shiki/langs/ara.js +1 -0
- package/src/shiki/langs/asciidoc.js +1 -0
- package/src/shiki/langs/asm.js +1 -0
- package/src/shiki/langs/astro.js +1 -0
- package/src/shiki/langs/awk.js +1 -0
- package/src/shiki/langs/ballerina.js +1 -0
- package/src/shiki/langs/bat.js +1 -0
- package/src/shiki/langs/beancount.js +1 -0
- package/src/shiki/langs/berry.js +1 -0
- package/src/shiki/langs/bibtex.js +1 -0
- package/src/shiki/langs/bicep.js +1 -0
- package/src/shiki/langs/blade.js +1 -0
- package/src/shiki/langs/bsl.js +1 -0
- package/src/shiki/langs/c.js +1 -0
- package/src/shiki/langs/cadence.js +1 -0
- package/src/shiki/langs/cairo.js +1 -0
- package/src/shiki/langs/clarity.js +1 -0
- package/src/shiki/langs/clojure.js +1 -0
- package/src/shiki/langs/cmake.js +1 -0
- package/src/shiki/langs/cobol.js +1 -0
- package/src/shiki/langs/codeowners.js +1 -0
- package/src/shiki/langs/codeql.js +1 -0
- package/src/shiki/langs/coffee.js +1 -0
- package/src/shiki/langs/common-lisp.js +1 -0
- package/src/shiki/langs/coq.js +1 -0
- package/src/shiki/langs/cpp-macro.js +1 -0
- package/src/shiki/langs/cpp.js +1 -0
- package/src/shiki/langs/crystal.js +1 -0
- package/src/shiki/langs/csharp.js +1 -0
- package/src/shiki/langs/css.js +1 -0
- package/src/shiki/langs/csv.js +1 -0
- package/src/shiki/langs/cue.js +1 -0
- package/src/shiki/langs/cypher.js +1 -0
- package/src/shiki/langs/d.js +1 -0
- package/src/shiki/langs/dart.js +1 -0
- package/src/shiki/langs/dax.js +1 -0
- package/src/shiki/langs/desktop.js +1 -0
- package/src/shiki/langs/diff.js +1 -0
- package/src/shiki/langs/docker.js +1 -0
- package/src/shiki/langs/dotenv.js +1 -0
- package/src/shiki/langs/dream-maker.js +1 -0
- package/src/shiki/langs/edge.js +1 -0
- package/src/shiki/langs/elixir.js +1 -0
- package/src/shiki/langs/elm.js +1 -0
- package/src/shiki/langs/emacs-lisp.js +1 -0
- package/src/shiki/langs/erb.js +1 -0
- package/src/shiki/langs/erlang.js +1 -0
- package/src/shiki/langs/es-tag-css.js +1 -0
- package/src/shiki/langs/es-tag-glsl.js +1 -0
- package/src/shiki/langs/es-tag-html.js +1 -0
- package/src/shiki/langs/es-tag-sql.js +1 -0
- package/src/shiki/langs/es-tag-xml.js +1 -0
- package/src/shiki/langs/fennel.js +1 -0
- package/src/shiki/langs/fish.js +1 -0
- package/src/shiki/langs/fluent.js +1 -0
- package/src/shiki/langs/fortran-fixed-form.js +1 -0
- package/src/shiki/langs/fortran-free-form.js +1 -0
- package/src/shiki/langs/fsharp.js +1 -0
- package/src/shiki/langs/gdresource.js +1 -0
- package/src/shiki/langs/gdscript.js +1 -0
- package/src/shiki/langs/gdshader.js +1 -0
- package/src/shiki/langs/genie.js +1 -0
- package/src/shiki/langs/gherkin.js +1 -0
- package/src/shiki/langs/git-commit.js +1 -0
- package/src/shiki/langs/git-rebase.js +1 -0
- package/src/shiki/langs/gleam.js +1 -0
- package/src/shiki/langs/glimmer-js.js +1 -0
- package/src/shiki/langs/glimmer-ts.js +1 -0
- package/src/shiki/langs/glsl.js +1 -0
- package/src/shiki/langs/gnuplot.js +1 -0
- package/src/shiki/langs/go.js +1 -0
- package/src/shiki/langs/graphql.js +1 -0
- package/src/shiki/langs/groovy.js +1 -0
- package/src/shiki/langs/hack.js +1 -0
- package/src/shiki/langs/haml.js +1 -0
- package/src/shiki/langs/handlebars.js +1 -0
- package/src/shiki/langs/haskell.js +1 -0
- package/src/shiki/langs/haxe.js +1 -0
- package/src/shiki/langs/hcl.js +1 -0
- package/src/shiki/langs/hjson.js +1 -0
- package/src/shiki/langs/hlsl.js +1 -0
- package/src/shiki/langs/html-derivative.js +1 -0
- package/src/shiki/langs/html.js +1 -0
- package/src/shiki/langs/http.js +1 -0
- package/src/shiki/langs/hurl.js +1 -0
- package/src/shiki/langs/hxml.js +1 -0
- package/src/shiki/langs/hy.js +1 -0
- package/src/shiki/langs/imba.js +1 -0
- package/src/shiki/langs/ini.js +1 -0
- package/src/shiki/langs/java.js +1 -0
- package/src/shiki/langs/javascript.js +1 -0
- package/src/shiki/langs/jinja-html.js +1 -0
- package/src/shiki/langs/jinja.js +1 -0
- package/src/shiki/langs/jison.js +1 -0
- package/src/shiki/langs/json.js +1 -0
- package/src/shiki/langs/json5.js +1 -0
- package/src/shiki/langs/jsonc.js +1 -0
- package/src/shiki/langs/jsonl.js +1 -0
- package/src/shiki/langs/jsonnet.js +1 -0
- package/src/shiki/langs/jssm.js +1 -0
- package/src/shiki/langs/jsx.js +1 -0
- package/src/shiki/langs/julia.js +1 -0
- package/src/shiki/langs/kdl.js +1 -0
- package/src/shiki/langs/kotlin.js +1 -0
- package/src/shiki/langs/kusto.js +1 -0
- package/src/shiki/langs/latex.js +1 -0
- package/src/shiki/langs/lean.js +1 -0
- package/src/shiki/langs/less.js +1 -0
- package/src/shiki/langs/liquid.js +1 -0
- package/src/shiki/langs/llvm.js +1 -0
- package/src/shiki/langs/log.js +1 -0
- package/src/shiki/langs/logo.js +1 -0
- package/src/shiki/langs/lua.js +1 -0
- package/src/shiki/langs/luau.js +1 -0
- package/src/shiki/langs/make.js +1 -0
- package/src/shiki/langs/markdown-nix.js +1 -0
- package/src/shiki/langs/markdown-vue.js +1 -0
- package/src/shiki/langs/markdown.js +1 -0
- package/src/shiki/langs/marko.js +1 -0
- package/src/shiki/langs/matlab.js +1 -0
- package/src/shiki/langs/mdc.js +1 -0
- package/src/shiki/langs/mdx.js +1 -0
- package/src/shiki/langs/mermaid.js +1 -0
- package/src/shiki/langs/mipsasm.js +1 -0
- package/src/shiki/langs/mojo.js +1 -0
- package/src/shiki/langs/move.js +1 -0
- package/src/shiki/langs/narrat.js +1 -0
- package/src/shiki/langs/nextflow.js +1 -0
- package/src/shiki/langs/nginx.js +1 -0
- package/src/shiki/langs/nim.js +1 -0
- package/src/shiki/langs/nix.js +1 -0
- package/src/shiki/langs/nushell.js +1 -0
- package/src/shiki/langs/objective-c.js +1 -0
- package/src/shiki/langs/objective-cpp.js +1 -0
- package/src/shiki/langs/ocaml.js +1 -0
- package/src/shiki/langs/openscad.js +1 -0
- package/src/shiki/langs/pascal.js +1 -0
- package/src/shiki/langs/perl.js +1 -0
- package/src/shiki/langs/php.js +1 -0
- package/src/shiki/langs/pkl.js +1 -0
- package/src/shiki/langs/plsql.js +1 -0
- package/src/shiki/langs/po.js +1 -0
- package/src/shiki/langs/polar.js +1 -0
- package/src/shiki/langs/postcss.js +1 -0
- package/src/shiki/langs/powerquery.js +1 -0
- package/src/shiki/langs/powershell.js +1 -0
- package/src/shiki/langs/prisma.js +1 -0
- package/src/shiki/langs/prolog.js +1 -0
- package/src/shiki/langs/proto.js +1 -0
- package/src/shiki/langs/pug.js +1 -0
- package/src/shiki/langs/puppet.js +1 -0
- package/src/shiki/langs/purescript.js +1 -0
- package/src/shiki/langs/python.js +1 -0
- package/src/shiki/langs/qml.js +1 -0
- package/src/shiki/langs/qmldir.js +1 -0
- package/src/shiki/langs/qss.js +1 -0
- package/src/shiki/langs/r.js +1 -0
- package/src/shiki/langs/racket.js +1 -0
- package/src/shiki/langs/raku.js +1 -0
- package/src/shiki/langs/razor.js +1 -0
- package/src/shiki/langs/reg.js +1 -0
- package/src/shiki/langs/regexp.js +1 -0
- package/src/shiki/langs/rel.js +1 -0
- package/src/shiki/langs/riscv.js +1 -0
- package/src/shiki/langs/rosmsg.js +1 -0
- package/src/shiki/langs/rst.js +1 -0
- package/src/shiki/langs/ruby.js +1 -0
- package/src/shiki/langs/rust.js +1 -0
- package/src/shiki/langs/sas.js +1 -0
- package/src/shiki/langs/sass.js +1 -0
- package/src/shiki/langs/scala.js +1 -0
- package/src/shiki/langs/scheme.js +1 -0
- package/src/shiki/langs/scss.js +1 -0
- package/src/shiki/langs/sdbl.js +1 -0
- package/src/shiki/langs/shaderlab.js +1 -0
- package/src/shiki/langs/shellscript.js +1 -0
- package/src/shiki/langs/shellsession.js +1 -0
- package/src/shiki/langs/smalltalk.js +1 -0
- package/src/shiki/langs/solidity.js +1 -0
- package/src/shiki/langs/soy.js +1 -0
- package/src/shiki/langs/sparql.js +1 -0
- package/src/shiki/langs/splunk.js +1 -0
- package/src/shiki/langs/sql.js +1 -0
- package/src/shiki/langs/ssh-config.js +1 -0
- package/src/shiki/langs/stata.js +1 -0
- package/src/shiki/langs/stylus.js +1 -0
- package/src/shiki/langs/svelte.js +1 -0
- package/src/shiki/langs/swift.js +1 -0
- package/src/shiki/langs/system-verilog.js +1 -0
- package/src/shiki/langs/systemd.js +1 -0
- package/src/shiki/langs/talonscript.js +1 -0
- package/src/shiki/langs/tasl.js +1 -0
- package/src/shiki/langs/tcl.js +1 -0
- package/src/shiki/langs/templ.js +1 -0
- package/src/shiki/langs/terraform.js +1 -0
- package/src/shiki/langs/tex.js +1 -0
- package/src/shiki/langs/toml.js +1 -0
- package/src/shiki/langs/ts-tags.js +1 -0
- package/src/shiki/langs/tsv.js +1 -0
- package/src/shiki/langs/tsx.js +1 -0
- package/src/shiki/langs/turtle.js +1 -0
- package/src/shiki/langs/twig.js +1 -0
- package/src/shiki/langs/typescript.js +1 -0
- package/src/shiki/langs/typespec.js +1 -0
- package/src/shiki/langs/typst.js +1 -0
- package/src/shiki/langs/v.js +1 -0
- package/src/shiki/langs/vala.js +1 -0
- package/src/shiki/langs/vb.js +1 -0
- package/src/shiki/langs/verilog.js +1 -0
- package/src/shiki/langs/vhdl.js +1 -0
- package/src/shiki/langs/viml.js +1 -0
- package/src/shiki/langs/vue-directives.js +1 -0
- package/src/shiki/langs/vue-html.js +1 -0
- package/src/shiki/langs/vue-interpolations.js +1 -0
- package/src/shiki/langs/vue-sfc-style-variable-injection.js +1 -0
- package/src/shiki/langs/vue-vine.js +1 -0
- package/src/shiki/langs/vue.js +1 -0
- package/src/shiki/langs/vyper.js +1 -0
- package/src/shiki/langs/wasm.js +1 -0
- package/src/shiki/langs/wenyan.js +1 -0
- package/src/shiki/langs/wgsl.js +1 -0
- package/src/shiki/langs/wikitext.js +1 -0
- package/src/shiki/langs/wit.js +1 -0
- package/src/shiki/langs/wolfram.js +1 -0
- package/src/shiki/langs/xml.js +1 -0
- package/src/shiki/langs/xsl.js +1 -0
- package/src/shiki/langs/yaml.js +1 -0
- package/src/shiki/langs/zenscript.js +1 -0
- package/src/shiki/langs/zig.js +1 -0
- package/src/shiki/themes/andromeeda.js +1 -0
- package/src/shiki/themes/aurora-x.js +1 -0
- package/src/shiki/themes/ayu-dark.js +1 -0
- package/src/shiki/themes/catppuccin-frappe.js +1 -0
- package/src/shiki/themes/catppuccin-latte.js +1 -0
- package/src/shiki/themes/catppuccin-macchiato.js +1 -0
- package/src/shiki/themes/catppuccin-mocha.js +1 -0
- package/src/shiki/themes/dark-plus.js +1 -0
- package/src/shiki/themes/dracula-soft.js +1 -0
- package/src/shiki/themes/dracula.js +1 -0
- package/src/shiki/themes/everforest-dark.js +1 -0
- package/src/shiki/themes/everforest-light.js +1 -0
- package/src/shiki/themes/github-dark-default.js +1 -0
- package/src/shiki/themes/github-dark-dimmed.js +1 -0
- package/src/shiki/themes/github-dark-high-contrast.js +1 -0
- package/src/shiki/themes/github-dark.js +1 -0
- package/src/shiki/themes/github-light-default.js +1 -0
- package/src/shiki/themes/github-light-high-contrast.js +1 -0
- package/src/shiki/themes/github-light.js +1 -0
- package/src/shiki/themes/gruvbox-dark-hard.js +1 -0
- package/src/shiki/themes/gruvbox-dark-medium.js +1 -0
- package/src/shiki/themes/gruvbox-dark-soft.js +1 -0
- package/src/shiki/themes/gruvbox-light-hard.js +1 -0
- package/src/shiki/themes/gruvbox-light-medium.js +1 -0
- package/src/shiki/themes/gruvbox-light-soft.js +1 -0
- package/src/shiki/themes/houston.js +1 -0
- package/src/shiki/themes/kanagawa-dragon.js +1 -0
- package/src/shiki/themes/kanagawa-lotus.js +1 -0
- package/src/shiki/themes/kanagawa-wave.js +1 -0
- package/src/shiki/themes/laserwave.js +1 -0
- package/src/shiki/themes/light-plus.js +1 -0
- package/src/shiki/themes/material-theme-darker.js +1 -0
- package/src/shiki/themes/material-theme-lighter.js +1 -0
- package/src/shiki/themes/material-theme-ocean.js +1 -0
- package/src/shiki/themes/material-theme-palenight.js +1 -0
- package/src/shiki/themes/material-theme.js +1 -0
- package/src/shiki/themes/min-dark.js +1 -0
- package/src/shiki/themes/min-light.js +1 -0
- package/src/shiki/themes/monokai.js +1 -0
- package/src/shiki/themes/night-owl.js +1 -0
- package/src/shiki/themes/nord.js +1 -0
- package/src/shiki/themes/one-dark-pro.js +1 -0
- package/src/shiki/themes/one-light.js +1 -0
- package/src/shiki/themes/plastic.js +1 -0
- package/src/shiki/themes/poimandres.js +1 -0
- package/src/shiki/themes/red.js +1 -0
- package/src/shiki/themes/rose-pine-dawn.js +1 -0
- package/src/shiki/themes/rose-pine-moon.js +1 -0
- package/src/shiki/themes/rose-pine.js +1 -0
- package/src/shiki/themes/slack-dark.js +1 -0
- package/src/shiki/themes/slack-ochin.js +1 -0
- package/src/shiki/themes/snazzy-light.js +1 -0
- package/src/shiki/themes/solarized-dark.js +1 -0
- package/src/shiki/themes/solarized-light.js +1 -0
- package/src/shiki/themes/synthwave-84.js +1 -0
- package/src/shiki/themes/tokyo-night.js +1 -0
- package/src/shiki/themes/vesper.js +1 -0
- package/src/shiki/themes/vitesse-black.js +1 -0
- package/src/shiki/themes/vitesse-dark.js +1 -0
- package/src/shiki/themes/vitesse-light.js +1 -0
- package/LICENSE.md +0 -9
- package/dist/app/tailwind.d.ts +0 -3
- package/dist/app/tailwind.js +0 -65
- package/dist/app/tailwind.js.map +0 -1
- package/dist/config/validators/InputSidebarSchema.d.ts +0 -186
- package/dist/config/validators/InputSidebarSchema.js +0 -73
- package/dist/config/validators/InputSidebarSchema.js.map +0 -1
- package/dist/config/validators/SidebarSchema.d.ts +0 -23
- package/dist/config/validators/SidebarSchema.js +0 -82
- package/dist/config/validators/SidebarSchema.js.map +0 -1
- package/dist/internal.d.ts +0 -1
- package/dist/internal.js +0 -2
- package/dist/internal.js.map +0 -1
- package/dist/lib/components/DevPortal.d.ts +0 -7
- package/dist/lib/components/DevPortal.js +0 -54
- package/dist/lib/components/DevPortal.js.map +0 -1
- package/dist/lib/components/Dialog.d.ts +0 -19
- package/dist/lib/components/Dialog.js +0 -23
- package/dist/lib/components/Dialog.js.map +0 -1
- package/dist/lib/components/Select.d.ts +0 -13
- package/dist/lib/components/Select.js +0 -27
- package/dist/lib/components/Select.js.map +0 -1
- package/dist/lib/components/SlotletProvider.d.ts +0 -9
- package/dist/lib/components/SlotletProvider.js +0 -16
- package/dist/lib/components/SlotletProvider.js.map +0 -1
- package/dist/lib/components/SyntaxHighlight.d.ts +0 -11
- package/dist/lib/components/SyntaxHighlight.js +0 -50
- package/dist/lib/components/SyntaxHighlight.js.map +0 -1
- package/dist/lib/components/context/PluginSystem.js +0 -2
- package/dist/lib/components/context/PluginSystem.js.map +0 -1
- package/dist/lib/components/context/ThemeContext.d.ts +0 -2
- package/dist/lib/components/context/ThemeContext.js +0 -7
- package/dist/lib/components/context/ThemeContext.js.map +0 -1
- package/dist/lib/components/context/ThemeProvider.d.ts +0 -4
- package/dist/lib/components/context/ThemeProvider.js +0 -23
- package/dist/lib/components/context/ThemeProvider.js.map +0 -1
- package/dist/lib/components/navigation/Sidebar.d.ts +0 -1
- package/dist/lib/components/navigation/Sidebar.js +0 -14
- package/dist/lib/components/navigation/Sidebar.js.map +0 -1
- package/dist/lib/components/navigation/SidebarBadge.d.ts +0 -23
- package/dist/lib/components/navigation/SidebarBadge.js +0 -24
- package/dist/lib/components/navigation/SidebarBadge.js.map +0 -1
- package/dist/lib/components/navigation/SidebarCategory.d.ts +0 -5
- package/dist/lib/components/navigation/SidebarCategory.js +0 -41
- package/dist/lib/components/navigation/SidebarCategory.js.map +0 -1
- package/dist/lib/components/navigation/SidebarItem.d.ts +0 -12
- package/dist/lib/components/navigation/SidebarItem.js +0 -43
- package/dist/lib/components/navigation/SidebarItem.js.map +0 -1
- package/dist/lib/components/navigation/SidebarWrapper.d.ts +0 -6
- package/dist/lib/components/navigation/SidebarWrapper.js +0 -6
- package/dist/lib/components/navigation/SidebarWrapper.js.map +0 -1
- package/dist/lib/core/DevPortalContext.d.ts +0 -78
- package/dist/lib/core/DevPortalContext.js +0 -49
- package/dist/lib/core/DevPortalContext.js.map +0 -1
- package/dist/lib/plugins/custom-page/index.d.ts +0 -8
- package/dist/lib/plugins/custom-page/index.js +0 -12
- package/dist/lib/plugins/custom-page/index.js.map +0 -1
- package/dist/lib/plugins/markdown/Toc.js +0 -48
- package/dist/lib/plugins/markdown/Toc.js.map +0 -1
- package/dist/lib/plugins/markdown/generateRoutes.d.ts +0 -3
- package/dist/lib/plugins/markdown/generateRoutes.js +0 -21
- package/dist/lib/plugins/markdown/generateRoutes.js.map +0 -1
- package/dist/lib/plugins/openapi/Route.d.ts +0 -6
- package/dist/lib/plugins/openapi/Route.js +0 -8
- package/dist/lib/plugins/openapi/Route.js.map +0 -1
- package/dist/lib/plugins/openapi/client/createMemoryClient.d.ts +0 -12
- package/dist/lib/plugins/openapi/client/createMemoryClient.js +0 -46
- package/dist/lib/plugins/openapi/client/createMemoryClient.js.map +0 -1
- package/dist/lib/plugins/openapi/client/createWorkerClient.d.ts +0 -10
- package/dist/lib/plugins/openapi/client/createWorkerClient.js +0 -61
- package/dist/lib/plugins/openapi/client/createWorkerClient.js.map +0 -1
- package/dist/lib/plugins/openapi/client/interfaces.d.ts +0 -4
- package/dist/lib/plugins/openapi/client/interfaces.js +0 -2
- package/dist/lib/plugins/openapi/client/interfaces.js.map +0 -1
- package/dist/lib/plugins/openapi/client/worker.js +0 -20
- package/dist/lib/plugins/openapi/client/worker.js.map +0 -1
- package/dist/lib/plugins/openapi/playground/Editor.d.ts +0 -1
- package/dist/lib/plugins/openapi/playground/Editor.js +0 -5
- package/dist/lib/plugins/openapi/playground/Editor.js.map +0 -1
- package/dist/lib/plugins/openapi/playground/InlineInput.d.ts +0 -4
- package/dist/lib/plugins/openapi/playground/InlineInput.js +0 -3
- package/dist/lib/plugins/openapi/playground/InlineInput.js.map +0 -1
- package/dist/lib/plugins/openapi/playground/ResponseTab.d.ts +0 -4
- package/dist/lib/plugins/openapi/playground/ResponseTab.js +0 -42
- package/dist/lib/plugins/openapi/playground/ResponseTab.js.map +0 -1
- package/dist/lib/plugins/openapi/playground/UrlDisplay.d.ts +0 -4
- package/dist/lib/plugins/openapi/playground/UrlDisplay.js +0 -22
- package/dist/lib/plugins/openapi/playground/UrlDisplay.js.map +0 -1
- package/dist/lib/plugins/openapi/schema/LogicalGroup/LogicalGroup.d.ts +0 -9
- package/dist/lib/plugins/openapi/schema/LogicalGroup/LogicalGroup.js +0 -14
- package/dist/lib/plugins/openapi/schema/LogicalGroup/LogicalGroup.js.map +0 -1
- package/dist/lib/plugins/openapi/schema/LogicalGroup/LogicalGroupConnector.d.ts +0 -6
- package/dist/lib/plugins/openapi/schema/LogicalGroup/LogicalGroupConnector.js +0 -17
- package/dist/lib/plugins/openapi/schema/LogicalGroup/LogicalGroupConnector.js.map +0 -1
- package/dist/lib/plugins/openapi/schema/LogicalGroup/LogicalGroupItem.d.ts +0 -7
- package/dist/lib/plugins/openapi/schema/LogicalGroup/LogicalGroupItem.js +0 -10
- package/dist/lib/plugins/openapi/schema/LogicalGroup/LogicalGroupItem.js.map +0 -1
- package/dist/lib/plugins/openapi/schema/SchemaComponents.d.ts +0 -13
- package/dist/lib/plugins/openapi/schema/SchemaComponents.js +0 -28
- package/dist/lib/plugins/openapi/schema/SchemaComponents.js.map +0 -1
- package/dist/lib/plugins/openapi/util/urql.d.ts +0 -7
- package/dist/lib/plugins/openapi/util/urql.js +0 -8
- package/dist/lib/plugins/openapi/util/urql.js.map +0 -1
- package/dist/lib/plugins/openapi-worker.d.ts +0 -1
- package/dist/lib/plugins/openapi-worker.js +0 -2
- package/dist/lib/plugins/openapi-worker.js.map +0 -1
- package/dist/lib/plugins/search-inkeep/InkeepCustomTrigger.d.ts +0 -2
- package/dist/lib/plugins/search-inkeep/InkeepCustomTrigger.js +0 -3
- package/dist/lib/plugins/search-inkeep/InkeepCustomTrigger.js.map +0 -1
- package/dist/lib/themeToggle.d.ts +0 -1
- package/dist/lib/themeToggle.js +0 -7
- package/dist/lib/themeToggle.js.map +0 -1
- package/dist/lib/ui/Note.d.ts +0 -8
- package/dist/lib/ui/Note.js +0 -23
- package/dist/lib/ui/Note.js.map +0 -1
- package/dist/lib/util/createWaitForNotify.d.ts +0 -1
- package/dist/lib/util/createWaitForNotify.js +0 -15
- package/dist/lib/util/createWaitForNotify.js.map +0 -1
- package/dist/vite/plugin-custom-css.d.ts +0 -6
- package/dist/vite/plugin-custom-css.js +0 -55
- package/dist/vite/plugin-custom-css.js.map +0 -1
- package/dist/vite/plugin-docs.test.js +0 -30
- package/dist/vite/plugin-docs.test.js.map +0 -1
- package/dist/vite/plugin-html-transform.d.ts +0 -2
- package/dist/vite/plugin-html-transform.js +0 -15
- package/dist/vite/plugin-html-transform.js.map +0 -1
- package/dist/vite/plugin-sidebar.d.ts +0 -3
- package/dist/vite/plugin-sidebar.js +0 -46
- package/dist/vite/plugin-sidebar.js.map +0 -1
- package/dist/vite/prerender.d.ts +0 -17
- package/dist/vite/prerender.js +0 -87
- package/dist/vite/prerender.js.map +0 -1
- package/lib/AuthenticationPlugin-Bx9FK124.js +0 -55
- package/lib/AuthenticationPlugin-Bx9FK124.js.map +0 -1
- package/lib/CategoryHeading-ovR-zHRq.js +0 -10
- package/lib/CategoryHeading-ovR-zHRq.js.map +0 -1
- package/lib/DeveloperHint-YeWHKvyr.js +0 -16
- package/lib/DeveloperHint-YeWHKvyr.js.map +0 -1
- package/lib/ErrorPage-CsZAN_za.js +0 -16
- package/lib/ErrorPage-CsZAN_za.js.map +0 -1
- package/lib/InkeepCustomTrigger-CE5-K5ex.js +0 -6
- package/lib/InkeepCustomTrigger-CE5-K5ex.js.map +0 -1
- package/lib/Input-CtVUl3eT.js +0 -2198
- package/lib/Input-CtVUl3eT.js.map +0 -1
- package/lib/Markdown-DapSf3wG.js +0 -20281
- package/lib/Markdown-DapSf3wG.js.map +0 -1
- package/lib/MdxPage-BqBWsXZ1.js +0 -172
- package/lib/MdxPage-BqBWsXZ1.js.map +0 -1
- package/lib/OperationList-CYrmxPa8.js +0 -602
- package/lib/OperationList-CYrmxPa8.js.map +0 -1
- package/lib/Route-Q5mqNQrv.js +0 -14
- package/lib/Route-Q5mqNQrv.js.map +0 -1
- package/lib/SidebarBadge-Dx7jtnoA.js +0 -498
- package/lib/SidebarBadge-Dx7jtnoA.js.map +0 -1
- package/lib/SlotletProvider-D3UD5Go3.js +0 -238
- package/lib/SlotletProvider-D3UD5Go3.js.map +0 -1
- package/lib/Spinner-3cQDBVGr.js +0 -7
- package/lib/Spinner-3cQDBVGr.js.map +0 -1
- package/lib/ZudokuContext-cr-pTRY1.js +0 -1084
- package/lib/ZudokuContext-cr-pTRY1.js.map +0 -1
- package/lib/_commonjsHelpers-BkfeUUK-.js +0 -29
- package/lib/_commonjsHelpers-BkfeUUK-.js.map +0 -1
- package/lib/assets/index-B9EWVYfo.js +0 -4790
- package/lib/assets/index-B9EWVYfo.js.map +0 -1
- package/lib/assets/worker-BP8Uzflt.js +0 -17916
- package/lib/assets/worker-BP8Uzflt.js.map +0 -1
- package/lib/index-BG0g4WW0.js +0 -1771
- package/lib/index-BG0g4WW0.js.map +0 -1
- package/lib/index-BlJ2rj99.js +0 -5815
- package/lib/index-BlJ2rj99.js.map +0 -1
- package/lib/index-Bn6Lc9tq.js +0 -9
- package/lib/index-Bn6Lc9tq.js.map +0 -1
- package/lib/index-BngPzhKn.js +0 -124
- package/lib/index-BngPzhKn.js.map +0 -1
- package/lib/index-CLd8ycZz.js +0 -4790
- package/lib/index-CLd8ycZz.js.map +0 -1
- package/lib/index-Dolisrci.js +0 -2814
- package/lib/index-Dolisrci.js.map +0 -1
- package/lib/index-LNp6rxyU.js +0 -2094
- package/lib/index-LNp6rxyU.js.map +0 -1
- package/lib/joinPath-B7kNnUX4.js +0 -8
- package/lib/joinPath-B7kNnUX4.js.map +0 -1
- package/lib/jsx-runtime-B6kdoens.js +0 -635
- package/lib/jsx-runtime-B6kdoens.js.map +0 -1
- package/lib/prism-bash.min-DadFsM4Z.js +0 -7
- package/lib/prism-bash.min-DadFsM4Z.js.map +0 -1
- package/lib/prism-csharp.min-Yizuc34Y.js +0 -35
- package/lib/prism-csharp.min-Yizuc34Y.js.map +0 -1
- package/lib/prism-java.min-d5iT_mOd.js +0 -7
- package/lib/prism-java.min-d5iT_mOd.js.map +0 -1
- package/lib/prism-javascript.min-CEqHqgbm.js +0 -9
- package/lib/prism-javascript.min-CEqHqgbm.js.map +0 -1
- package/lib/prism-json.min-B1GJqK1k.js +0 -2
- package/lib/prism-json.min-B1GJqK1k.js.map +0 -1
- package/lib/prism-markdown.min-F3U-vPBi.js +0 -61
- package/lib/prism-markdown.min-F3U-vPBi.js.map +0 -1
- package/lib/prism-markup-BNGj0Tvm.js +0 -174
- package/lib/prism-markup-BNGj0Tvm.js.map +0 -1
- package/lib/prism-markup-templating-DZrrEs0A.js +0 -62
- package/lib/prism-markup-templating-DZrrEs0A.js.map +0 -1
- package/lib/prism-objectivec.min-BXSWqpJJ.js +0 -2
- package/lib/prism-objectivec.min-BXSWqpJJ.js.map +0 -1
- package/lib/prism-php.min-o7FpoMP_.js +0 -11
- package/lib/prism-php.min-o7FpoMP_.js.map +0 -1
- package/lib/prism-ruby.min-C7LwcKyz.js +0 -10
- package/lib/prism-ruby.min-C7LwcKyz.js.map +0 -1
- package/lib/prism-typescript.min-oSVeWCAd.js +0 -6
- package/lib/prism-typescript.min-oSVeWCAd.js.map +0 -1
- package/lib/router-D2p7Olpn.js +0 -2971
- package/lib/router-D2p7Olpn.js.map +0 -1
- package/lib/state-hNe1dw4B.js +0 -548
- package/lib/state-hNe1dw4B.js.map +0 -1
- package/lib/urql-YhcsXYy8.js +0 -1591
- package/lib/urql-YhcsXYy8.js.map +0 -1
- package/lib/utils-ByIc_KIM.js +0 -749
- package/lib/utils-ByIc_KIM.js.map +0 -1
- package/lib/zudoku.openapi-worker.js +0 -16059
- package/lib/zudoku.openapi-worker.js.map +0 -1
- package/lib/zudoku.plugin-custom-page.js +0 -13
- package/lib/zudoku.plugin-custom-page.js.map +0 -1
- package/src/app/tailwind.ts +0 -68
- package/src/lib/components/DevPortal.tsx +0 -111
- package/src/lib/components/Dialog.tsx +0 -119
- package/src/lib/components/Select.tsx +0 -157
- package/src/lib/components/SlotletProvider.tsx +0 -30
- package/src/lib/components/SyntaxHighlight.tsx +0 -122
- package/src/lib/components/context/PluginSystem.ts +0 -0
- package/src/lib/components/context/ThemeContext.tsx +0 -8
- package/src/lib/components/context/ThemeProvider.tsx +0 -27
- package/src/lib/components/navigation/Sidebar.tsx +0 -39
- package/src/lib/components/navigation/SidebarBadge.tsx +0 -43
- package/src/lib/components/navigation/SidebarCategory.tsx +0 -131
- package/src/lib/components/navigation/SidebarItem.tsx +0 -130
- package/src/lib/components/navigation/SidebarWrapper.tsx +0 -26
- package/src/lib/core/DevPortalContext.ts +0 -135
- package/src/lib/plugins/custom-page/index.tsx +0 -22
- package/src/lib/plugins/markdown/Toc.tsx +0 -135
- package/src/lib/plugins/markdown/generateRoutes.tsx +0 -38
- package/src/lib/plugins/openapi/Route.tsx +0 -21
- package/src/lib/plugins/openapi/client/createMemoryClient.ts +0 -56
- package/src/lib/plugins/openapi/client/createWorkerClient.ts +0 -80
- package/src/lib/plugins/openapi/client/interfaces.ts +0 -5
- package/src/lib/plugins/openapi/client/worker.ts +0 -30
- package/src/lib/plugins/openapi/playground/Editor.tsx +0 -4
- package/src/lib/plugins/openapi/playground/InlineInput.tsx +0 -6
- package/src/lib/plugins/openapi/playground/ResponseTab.tsx +0 -76
- package/src/lib/plugins/openapi/playground/UrlDisplay.tsx +0 -32
- package/src/lib/plugins/openapi/schema/LogicalGroup/LogicalGroup.tsx +0 -47
- package/src/lib/plugins/openapi/schema/LogicalGroup/LogicalGroupConnector.tsx +0 -54
- package/src/lib/plugins/openapi/schema/LogicalGroup/LogicalGroupItem.tsx +0 -30
- package/src/lib/plugins/openapi/schema/SchemaComponents.tsx +0 -126
- package/src/lib/plugins/openapi/util/urql.ts +0 -8
- package/src/lib/plugins/openapi-worker.ts +0 -1
- package/src/lib/plugins/search-inkeep/InkeepCustomTrigger.tsx +0 -3
- package/src/lib/themeToggle.ts +0 -7
- package/src/lib/ui/Note.tsx +0 -58
- package/src/lib/util/createWaitForNotify.ts +0 -18
- /package/dist/{lib/components/context/PluginSystem.d.ts → config/validators/InputNavigationSchema.test-d.d.ts} +0 -0
- /package/dist/{lib/plugins/openapi/client/worker.d.ts → config/validators/validate.test.d.ts} +0 -0
- /package/dist/{vite/plugin-docs.test.d.ts → lib/auth/issuer.test.d.ts} +0 -0
- /package/dist/lib/{plugins/markdown → components/navigation}/Toc.d.ts +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index-CLd8ycZz.js","sources":["../../../node_modules/.pnpm/yaml@2.5.0/node_modules/yaml/browser/dist/nodes/identity.js","../../../node_modules/.pnpm/yaml@2.5.0/node_modules/yaml/browser/dist/visit.js","../../../node_modules/.pnpm/yaml@2.5.0/node_modules/yaml/browser/dist/doc/directives.js","../../../node_modules/.pnpm/yaml@2.5.0/node_modules/yaml/browser/dist/doc/anchors.js","../../../node_modules/.pnpm/yaml@2.5.0/node_modules/yaml/browser/dist/doc/applyReviver.js","../../../node_modules/.pnpm/yaml@2.5.0/node_modules/yaml/browser/dist/nodes/toJS.js","../../../node_modules/.pnpm/yaml@2.5.0/node_modules/yaml/browser/dist/nodes/Node.js","../../../node_modules/.pnpm/yaml@2.5.0/node_modules/yaml/browser/dist/nodes/Alias.js","../../../node_modules/.pnpm/yaml@2.5.0/node_modules/yaml/browser/dist/nodes/Scalar.js","../../../node_modules/.pnpm/yaml@2.5.0/node_modules/yaml/browser/dist/doc/createNode.js","../../../node_modules/.pnpm/yaml@2.5.0/node_modules/yaml/browser/dist/nodes/Collection.js","../../../node_modules/.pnpm/yaml@2.5.0/node_modules/yaml/browser/dist/stringify/stringifyComment.js","../../../node_modules/.pnpm/yaml@2.5.0/node_modules/yaml/browser/dist/stringify/foldFlowLines.js","../../../node_modules/.pnpm/yaml@2.5.0/node_modules/yaml/browser/dist/stringify/stringifyString.js","../../../node_modules/.pnpm/yaml@2.5.0/node_modules/yaml/browser/dist/stringify/stringify.js","../../../node_modules/.pnpm/yaml@2.5.0/node_modules/yaml/browser/dist/stringify/stringifyPair.js","../../../node_modules/.pnpm/yaml@2.5.0/node_modules/yaml/browser/dist/log.js","../../../node_modules/.pnpm/yaml@2.5.0/node_modules/yaml/browser/dist/nodes/addPairToJSMap.js","../../../node_modules/.pnpm/yaml@2.5.0/node_modules/yaml/browser/dist/nodes/Pair.js","../../../node_modules/.pnpm/yaml@2.5.0/node_modules/yaml/browser/dist/stringify/stringifyCollection.js","../../../node_modules/.pnpm/yaml@2.5.0/node_modules/yaml/browser/dist/nodes/YAMLMap.js","../../../node_modules/.pnpm/yaml@2.5.0/node_modules/yaml/browser/dist/schema/common/map.js","../../../node_modules/.pnpm/yaml@2.5.0/node_modules/yaml/browser/dist/nodes/YAMLSeq.js","../../../node_modules/.pnpm/yaml@2.5.0/node_modules/yaml/browser/dist/schema/common/seq.js","../../../node_modules/.pnpm/yaml@2.5.0/node_modules/yaml/browser/dist/schema/common/string.js","../../../node_modules/.pnpm/yaml@2.5.0/node_modules/yaml/browser/dist/schema/common/null.js","../../../node_modules/.pnpm/yaml@2.5.0/node_modules/yaml/browser/dist/schema/core/bool.js","../../../node_modules/.pnpm/yaml@2.5.0/node_modules/yaml/browser/dist/stringify/stringifyNumber.js","../../../node_modules/.pnpm/yaml@2.5.0/node_modules/yaml/browser/dist/schema/core/float.js","../../../node_modules/.pnpm/yaml@2.5.0/node_modules/yaml/browser/dist/schema/core/int.js","../../../node_modules/.pnpm/yaml@2.5.0/node_modules/yaml/browser/dist/schema/core/schema.js","../../../node_modules/.pnpm/yaml@2.5.0/node_modules/yaml/browser/dist/schema/json/schema.js","../../../node_modules/.pnpm/yaml@2.5.0/node_modules/yaml/browser/dist/schema/yaml-1.1/binary.js","../../../node_modules/.pnpm/yaml@2.5.0/node_modules/yaml/browser/dist/schema/yaml-1.1/pairs.js","../../../node_modules/.pnpm/yaml@2.5.0/node_modules/yaml/browser/dist/schema/yaml-1.1/omap.js","../../../node_modules/.pnpm/yaml@2.5.0/node_modules/yaml/browser/dist/schema/yaml-1.1/bool.js","../../../node_modules/.pnpm/yaml@2.5.0/node_modules/yaml/browser/dist/schema/yaml-1.1/float.js","../../../node_modules/.pnpm/yaml@2.5.0/node_modules/yaml/browser/dist/schema/yaml-1.1/int.js","../../../node_modules/.pnpm/yaml@2.5.0/node_modules/yaml/browser/dist/schema/yaml-1.1/set.js","../../../node_modules/.pnpm/yaml@2.5.0/node_modules/yaml/browser/dist/schema/yaml-1.1/timestamp.js","../../../node_modules/.pnpm/yaml@2.5.0/node_modules/yaml/browser/dist/schema/yaml-1.1/schema.js","../../../node_modules/.pnpm/yaml@2.5.0/node_modules/yaml/browser/dist/schema/tags.js","../../../node_modules/.pnpm/yaml@2.5.0/node_modules/yaml/browser/dist/schema/Schema.js","../../../node_modules/.pnpm/yaml@2.5.0/node_modules/yaml/browser/dist/stringify/stringifyDocument.js","../../../node_modules/.pnpm/yaml@2.5.0/node_modules/yaml/browser/dist/doc/Document.js","../../../node_modules/.pnpm/yaml@2.5.0/node_modules/yaml/browser/dist/errors.js","../../../node_modules/.pnpm/yaml@2.5.0/node_modules/yaml/browser/dist/compose/resolve-props.js","../../../node_modules/.pnpm/yaml@2.5.0/node_modules/yaml/browser/dist/compose/util-contains-newline.js","../../../node_modules/.pnpm/yaml@2.5.0/node_modules/yaml/browser/dist/compose/util-flow-indent-check.js","../../../node_modules/.pnpm/yaml@2.5.0/node_modules/yaml/browser/dist/compose/util-map-includes.js","../../../node_modules/.pnpm/yaml@2.5.0/node_modules/yaml/browser/dist/compose/resolve-block-map.js","../../../node_modules/.pnpm/yaml@2.5.0/node_modules/yaml/browser/dist/compose/resolve-block-seq.js","../../../node_modules/.pnpm/yaml@2.5.0/node_modules/yaml/browser/dist/compose/resolve-end.js","../../../node_modules/.pnpm/yaml@2.5.0/node_modules/yaml/browser/dist/compose/resolve-flow-collection.js","../../../node_modules/.pnpm/yaml@2.5.0/node_modules/yaml/browser/dist/compose/compose-collection.js","../../../node_modules/.pnpm/yaml@2.5.0/node_modules/yaml/browser/dist/compose/resolve-block-scalar.js","../../../node_modules/.pnpm/yaml@2.5.0/node_modules/yaml/browser/dist/compose/resolve-flow-scalar.js","../../../node_modules/.pnpm/yaml@2.5.0/node_modules/yaml/browser/dist/compose/compose-scalar.js","../../../node_modules/.pnpm/yaml@2.5.0/node_modules/yaml/browser/dist/compose/util-empty-scalar-position.js","../../../node_modules/.pnpm/yaml@2.5.0/node_modules/yaml/browser/dist/compose/compose-node.js","../../../node_modules/.pnpm/yaml@2.5.0/node_modules/yaml/browser/dist/compose/compose-doc.js","../../../node_modules/.pnpm/yaml@2.5.0/node_modules/yaml/browser/dist/compose/composer.js","../../../node_modules/.pnpm/yaml@2.5.0/node_modules/yaml/browser/dist/parse/cst-scalar.js","../../../node_modules/.pnpm/yaml@2.5.0/node_modules/yaml/browser/dist/parse/cst-stringify.js","../../../node_modules/.pnpm/yaml@2.5.0/node_modules/yaml/browser/dist/parse/cst-visit.js","../../../node_modules/.pnpm/yaml@2.5.0/node_modules/yaml/browser/dist/parse/cst.js","../../../node_modules/.pnpm/yaml@2.5.0/node_modules/yaml/browser/dist/parse/lexer.js","../../../node_modules/.pnpm/yaml@2.5.0/node_modules/yaml/browser/dist/parse/line-counter.js","../../../node_modules/.pnpm/yaml@2.5.0/node_modules/yaml/browser/dist/parse/parser.js","../../../node_modules/.pnpm/yaml@2.5.0/node_modules/yaml/browser/dist/public-api.js"],"sourcesContent":["const ALIAS = Symbol.for('yaml.alias');\nconst DOC = Symbol.for('yaml.document');\nconst MAP = Symbol.for('yaml.map');\nconst PAIR = Symbol.for('yaml.pair');\nconst SCALAR = Symbol.for('yaml.scalar');\nconst SEQ = Symbol.for('yaml.seq');\nconst NODE_TYPE = Symbol.for('yaml.node.type');\nconst isAlias = (node) => !!node && typeof node === 'object' && node[NODE_TYPE] === ALIAS;\nconst isDocument = (node) => !!node && typeof node === 'object' && node[NODE_TYPE] === DOC;\nconst isMap = (node) => !!node && typeof node === 'object' && node[NODE_TYPE] === MAP;\nconst isPair = (node) => !!node && typeof node === 'object' && node[NODE_TYPE] === PAIR;\nconst isScalar = (node) => !!node && typeof node === 'object' && node[NODE_TYPE] === SCALAR;\nconst isSeq = (node) => !!node && typeof node === 'object' && node[NODE_TYPE] === SEQ;\nfunction isCollection(node) {\n if (node && typeof node === 'object')\n switch (node[NODE_TYPE]) {\n case MAP:\n case SEQ:\n return true;\n }\n return false;\n}\nfunction isNode(node) {\n if (node && typeof node === 'object')\n switch (node[NODE_TYPE]) {\n case ALIAS:\n case MAP:\n case SCALAR:\n case SEQ:\n return true;\n }\n return false;\n}\nconst hasAnchor = (node) => (isScalar(node) || isCollection(node)) && !!node.anchor;\n\nexport { ALIAS, DOC, MAP, NODE_TYPE, PAIR, SCALAR, SEQ, hasAnchor, isAlias, isCollection, isDocument, isMap, isNode, isPair, isScalar, isSeq };\n","import { isDocument, isNode, isPair, isCollection, isMap, isSeq, isScalar, isAlias } from './nodes/identity.js';\n\nconst BREAK = Symbol('break visit');\nconst SKIP = Symbol('skip children');\nconst REMOVE = Symbol('remove node');\n/**\n * Apply a visitor to an AST node or document.\n *\n * Walks through the tree (depth-first) starting from `node`, calling a\n * `visitor` function with three arguments:\n * - `key`: For sequence values and map `Pair`, the node's index in the\n * collection. Within a `Pair`, `'key'` or `'value'`, correspondingly.\n * `null` for the root node.\n * - `node`: The current node.\n * - `path`: The ancestry of the current node.\n *\n * The return value of the visitor may be used to control the traversal:\n * - `undefined` (default): Do nothing and continue\n * - `visit.SKIP`: Do not visit the children of this node, continue with next\n * sibling\n * - `visit.BREAK`: Terminate traversal completely\n * - `visit.REMOVE`: Remove the current node, then continue with the next one\n * - `Node`: Replace the current node, then continue by visiting it\n * - `number`: While iterating the items of a sequence or map, set the index\n * of the next step. This is useful especially if the index of the current\n * node has changed.\n *\n * If `visitor` is a single function, it will be called with all values\n * encountered in the tree, including e.g. `null` values. Alternatively,\n * separate visitor functions may be defined for each `Map`, `Pair`, `Seq`,\n * `Alias` and `Scalar` node. To define the same visitor function for more than\n * one node type, use the `Collection` (map and seq), `Value` (map, seq & scalar)\n * and `Node` (alias, map, seq & scalar) targets. Of all these, only the most\n * specific defined one will be used for each node.\n */\nfunction visit(node, visitor) {\n const visitor_ = initVisitor(visitor);\n if (isDocument(node)) {\n const cd = visit_(null, node.contents, visitor_, Object.freeze([node]));\n if (cd === REMOVE)\n node.contents = null;\n }\n else\n visit_(null, node, visitor_, Object.freeze([]));\n}\n// Without the `as symbol` casts, TS declares these in the `visit`\n// namespace using `var`, but then complains about that because\n// `unique symbol` must be `const`.\n/** Terminate visit traversal completely */\nvisit.BREAK = BREAK;\n/** Do not visit the children of the current node */\nvisit.SKIP = SKIP;\n/** Remove the current node */\nvisit.REMOVE = REMOVE;\nfunction visit_(key, node, visitor, path) {\n const ctrl = callVisitor(key, node, visitor, path);\n if (isNode(ctrl) || isPair(ctrl)) {\n replaceNode(key, path, ctrl);\n return visit_(key, ctrl, visitor, path);\n }\n if (typeof ctrl !== 'symbol') {\n if (isCollection(node)) {\n path = Object.freeze(path.concat(node));\n for (let i = 0; i < node.items.length; ++i) {\n const ci = visit_(i, node.items[i], visitor, path);\n if (typeof ci === 'number')\n i = ci - 1;\n else if (ci === BREAK)\n return BREAK;\n else if (ci === REMOVE) {\n node.items.splice(i, 1);\n i -= 1;\n }\n }\n }\n else if (isPair(node)) {\n path = Object.freeze(path.concat(node));\n const ck = visit_('key', node.key, visitor, path);\n if (ck === BREAK)\n return BREAK;\n else if (ck === REMOVE)\n node.key = null;\n const cv = visit_('value', node.value, visitor, path);\n if (cv === BREAK)\n return BREAK;\n else if (cv === REMOVE)\n node.value = null;\n }\n }\n return ctrl;\n}\n/**\n * Apply an async visitor to an AST node or document.\n *\n * Walks through the tree (depth-first) starting from `node`, calling a\n * `visitor` function with three arguments:\n * - `key`: For sequence values and map `Pair`, the node's index in the\n * collection. Within a `Pair`, `'key'` or `'value'`, correspondingly.\n * `null` for the root node.\n * - `node`: The current node.\n * - `path`: The ancestry of the current node.\n *\n * The return value of the visitor may be used to control the traversal:\n * - `Promise`: Must resolve to one of the following values\n * - `undefined` (default): Do nothing and continue\n * - `visit.SKIP`: Do not visit the children of this node, continue with next\n * sibling\n * - `visit.BREAK`: Terminate traversal completely\n * - `visit.REMOVE`: Remove the current node, then continue with the next one\n * - `Node`: Replace the current node, then continue by visiting it\n * - `number`: While iterating the items of a sequence or map, set the index\n * of the next step. This is useful especially if the index of the current\n * node has changed.\n *\n * If `visitor` is a single function, it will be called with all values\n * encountered in the tree, including e.g. `null` values. Alternatively,\n * separate visitor functions may be defined for each `Map`, `Pair`, `Seq`,\n * `Alias` and `Scalar` node. To define the same visitor function for more than\n * one node type, use the `Collection` (map and seq), `Value` (map, seq & scalar)\n * and `Node` (alias, map, seq & scalar) targets. Of all these, only the most\n * specific defined one will be used for each node.\n */\nasync function visitAsync(node, visitor) {\n const visitor_ = initVisitor(visitor);\n if (isDocument(node)) {\n const cd = await visitAsync_(null, node.contents, visitor_, Object.freeze([node]));\n if (cd === REMOVE)\n node.contents = null;\n }\n else\n await visitAsync_(null, node, visitor_, Object.freeze([]));\n}\n// Without the `as symbol` casts, TS declares these in the `visit`\n// namespace using `var`, but then complains about that because\n// `unique symbol` must be `const`.\n/** Terminate visit traversal completely */\nvisitAsync.BREAK = BREAK;\n/** Do not visit the children of the current node */\nvisitAsync.SKIP = SKIP;\n/** Remove the current node */\nvisitAsync.REMOVE = REMOVE;\nasync function visitAsync_(key, node, visitor, path) {\n const ctrl = await callVisitor(key, node, visitor, path);\n if (isNode(ctrl) || isPair(ctrl)) {\n replaceNode(key, path, ctrl);\n return visitAsync_(key, ctrl, visitor, path);\n }\n if (typeof ctrl !== 'symbol') {\n if (isCollection(node)) {\n path = Object.freeze(path.concat(node));\n for (let i = 0; i < node.items.length; ++i) {\n const ci = await visitAsync_(i, node.items[i], visitor, path);\n if (typeof ci === 'number')\n i = ci - 1;\n else if (ci === BREAK)\n return BREAK;\n else if (ci === REMOVE) {\n node.items.splice(i, 1);\n i -= 1;\n }\n }\n }\n else if (isPair(node)) {\n path = Object.freeze(path.concat(node));\n const ck = await visitAsync_('key', node.key, visitor, path);\n if (ck === BREAK)\n return BREAK;\n else if (ck === REMOVE)\n node.key = null;\n const cv = await visitAsync_('value', node.value, visitor, path);\n if (cv === BREAK)\n return BREAK;\n else if (cv === REMOVE)\n node.value = null;\n }\n }\n return ctrl;\n}\nfunction initVisitor(visitor) {\n if (typeof visitor === 'object' &&\n (visitor.Collection || visitor.Node || visitor.Value)) {\n return Object.assign({\n Alias: visitor.Node,\n Map: visitor.Node,\n Scalar: visitor.Node,\n Seq: visitor.Node\n }, visitor.Value && {\n Map: visitor.Value,\n Scalar: visitor.Value,\n Seq: visitor.Value\n }, visitor.Collection && {\n Map: visitor.Collection,\n Seq: visitor.Collection\n }, visitor);\n }\n return visitor;\n}\nfunction callVisitor(key, node, visitor, path) {\n if (typeof visitor === 'function')\n return visitor(key, node, path);\n if (isMap(node))\n return visitor.Map?.(key, node, path);\n if (isSeq(node))\n return visitor.Seq?.(key, node, path);\n if (isPair(node))\n return visitor.Pair?.(key, node, path);\n if (isScalar(node))\n return visitor.Scalar?.(key, node, path);\n if (isAlias(node))\n return visitor.Alias?.(key, node, path);\n return undefined;\n}\nfunction replaceNode(key, path, node) {\n const parent = path[path.length - 1];\n if (isCollection(parent)) {\n parent.items[key] = node;\n }\n else if (isPair(parent)) {\n if (key === 'key')\n parent.key = node;\n else\n parent.value = node;\n }\n else if (isDocument(parent)) {\n parent.contents = node;\n }\n else {\n const pt = isAlias(parent) ? 'alias' : 'scalar';\n throw new Error(`Cannot replace node with ${pt} parent`);\n }\n}\n\nexport { visit, visitAsync };\n","import { isNode } from '../nodes/identity.js';\nimport { visit } from '../visit.js';\n\nconst escapeChars = {\n '!': '%21',\n ',': '%2C',\n '[': '%5B',\n ']': '%5D',\n '{': '%7B',\n '}': '%7D'\n};\nconst escapeTagName = (tn) => tn.replace(/[!,[\\]{}]/g, ch => escapeChars[ch]);\nclass Directives {\n constructor(yaml, tags) {\n /**\n * The directives-end/doc-start marker `---`. If `null`, a marker may still be\n * included in the document's stringified representation.\n */\n this.docStart = null;\n /** The doc-end marker `...`. */\n this.docEnd = false;\n this.yaml = Object.assign({}, Directives.defaultYaml, yaml);\n this.tags = Object.assign({}, Directives.defaultTags, tags);\n }\n clone() {\n const copy = new Directives(this.yaml, this.tags);\n copy.docStart = this.docStart;\n return copy;\n }\n /**\n * During parsing, get a Directives instance for the current document and\n * update the stream state according to the current version's spec.\n */\n atDocument() {\n const res = new Directives(this.yaml, this.tags);\n switch (this.yaml.version) {\n case '1.1':\n this.atNextDocument = true;\n break;\n case '1.2':\n this.atNextDocument = false;\n this.yaml = {\n explicit: Directives.defaultYaml.explicit,\n version: '1.2'\n };\n this.tags = Object.assign({}, Directives.defaultTags);\n break;\n }\n return res;\n }\n /**\n * @param onError - May be called even if the action was successful\n * @returns `true` on success\n */\n add(line, onError) {\n if (this.atNextDocument) {\n this.yaml = { explicit: Directives.defaultYaml.explicit, version: '1.1' };\n this.tags = Object.assign({}, Directives.defaultTags);\n this.atNextDocument = false;\n }\n const parts = line.trim().split(/[ \\t]+/);\n const name = parts.shift();\n switch (name) {\n case '%TAG': {\n if (parts.length !== 2) {\n onError(0, '%TAG directive should contain exactly two parts');\n if (parts.length < 2)\n return false;\n }\n const [handle, prefix] = parts;\n this.tags[handle] = prefix;\n return true;\n }\n case '%YAML': {\n this.yaml.explicit = true;\n if (parts.length !== 1) {\n onError(0, '%YAML directive should contain exactly one part');\n return false;\n }\n const [version] = parts;\n if (version === '1.1' || version === '1.2') {\n this.yaml.version = version;\n return true;\n }\n else {\n const isValid = /^\\d+\\.\\d+$/.test(version);\n onError(6, `Unsupported YAML version ${version}`, isValid);\n return false;\n }\n }\n default:\n onError(0, `Unknown directive ${name}`, true);\n return false;\n }\n }\n /**\n * Resolves a tag, matching handles to those defined in %TAG directives.\n *\n * @returns Resolved tag, which may also be the non-specific tag `'!'` or a\n * `'!local'` tag, or `null` if unresolvable.\n */\n tagName(source, onError) {\n if (source === '!')\n return '!'; // non-specific tag\n if (source[0] !== '!') {\n onError(`Not a valid tag: ${source}`);\n return null;\n }\n if (source[1] === '<') {\n const verbatim = source.slice(2, -1);\n if (verbatim === '!' || verbatim === '!!') {\n onError(`Verbatim tags aren't resolved, so ${source} is invalid.`);\n return null;\n }\n if (source[source.length - 1] !== '>')\n onError('Verbatim tags must end with a >');\n return verbatim;\n }\n const [, handle, suffix] = source.match(/^(.*!)([^!]*)$/s);\n if (!suffix)\n onError(`The ${source} tag has no suffix`);\n const prefix = this.tags[handle];\n if (prefix) {\n try {\n return prefix + decodeURIComponent(suffix);\n }\n catch (error) {\n onError(String(error));\n return null;\n }\n }\n if (handle === '!')\n return source; // local tag\n onError(`Could not resolve tag: ${source}`);\n return null;\n }\n /**\n * Given a fully resolved tag, returns its printable string form,\n * taking into account current tag prefixes and defaults.\n */\n tagString(tag) {\n for (const [handle, prefix] of Object.entries(this.tags)) {\n if (tag.startsWith(prefix))\n return handle + escapeTagName(tag.substring(prefix.length));\n }\n return tag[0] === '!' ? tag : `!<${tag}>`;\n }\n toString(doc) {\n const lines = this.yaml.explicit\n ? [`%YAML ${this.yaml.version || '1.2'}`]\n : [];\n const tagEntries = Object.entries(this.tags);\n let tagNames;\n if (doc && tagEntries.length > 0 && isNode(doc.contents)) {\n const tags = {};\n visit(doc.contents, (_key, node) => {\n if (isNode(node) && node.tag)\n tags[node.tag] = true;\n });\n tagNames = Object.keys(tags);\n }\n else\n tagNames = [];\n for (const [handle, prefix] of tagEntries) {\n if (handle === '!!' && prefix === 'tag:yaml.org,2002:')\n continue;\n if (!doc || tagNames.some(tn => tn.startsWith(prefix)))\n lines.push(`%TAG ${handle} ${prefix}`);\n }\n return lines.join('\\n');\n }\n}\nDirectives.defaultYaml = { explicit: false, version: '1.2' };\nDirectives.defaultTags = { '!!': 'tag:yaml.org,2002:' };\n\nexport { Directives };\n","import { isScalar, isCollection } from '../nodes/identity.js';\nimport { visit } from '../visit.js';\n\n/**\n * Verify that the input string is a valid anchor.\n *\n * Will throw on errors.\n */\nfunction anchorIsValid(anchor) {\n if (/[\\x00-\\x19\\s,[\\]{}]/.test(anchor)) {\n const sa = JSON.stringify(anchor);\n const msg = `Anchor must not contain whitespace or control characters: ${sa}`;\n throw new Error(msg);\n }\n return true;\n}\nfunction anchorNames(root) {\n const anchors = new Set();\n visit(root, {\n Value(_key, node) {\n if (node.anchor)\n anchors.add(node.anchor);\n }\n });\n return anchors;\n}\n/** Find a new anchor name with the given `prefix` and a one-indexed suffix. */\nfunction findNewAnchor(prefix, exclude) {\n for (let i = 1; true; ++i) {\n const name = `${prefix}${i}`;\n if (!exclude.has(name))\n return name;\n }\n}\nfunction createNodeAnchors(doc, prefix) {\n const aliasObjects = [];\n const sourceObjects = new Map();\n let prevAnchors = null;\n return {\n onAnchor: (source) => {\n aliasObjects.push(source);\n if (!prevAnchors)\n prevAnchors = anchorNames(doc);\n const anchor = findNewAnchor(prefix, prevAnchors);\n prevAnchors.add(anchor);\n return anchor;\n },\n /**\n * With circular references, the source node is only resolved after all\n * of its child nodes are. This is why anchors are set only after all of\n * the nodes have been created.\n */\n setAnchors: () => {\n for (const source of aliasObjects) {\n const ref = sourceObjects.get(source);\n if (typeof ref === 'object' &&\n ref.anchor &&\n (isScalar(ref.node) || isCollection(ref.node))) {\n ref.node.anchor = ref.anchor;\n }\n else {\n const error = new Error('Failed to resolve repeated object (this should not happen)');\n error.source = source;\n throw error;\n }\n }\n },\n sourceObjects\n };\n}\n\nexport { anchorIsValid, anchorNames, createNodeAnchors, findNewAnchor };\n","/**\n * Applies the JSON.parse reviver algorithm as defined in the ECMA-262 spec,\n * in section 24.5.1.1 \"Runtime Semantics: InternalizeJSONProperty\" of the\n * 2021 edition: https://tc39.es/ecma262/#sec-json.parse\n *\n * Includes extensions for handling Map and Set objects.\n */\nfunction applyReviver(reviver, obj, key, val) {\n if (val && typeof val === 'object') {\n if (Array.isArray(val)) {\n for (let i = 0, len = val.length; i < len; ++i) {\n const v0 = val[i];\n const v1 = applyReviver(reviver, val, String(i), v0);\n if (v1 === undefined)\n delete val[i];\n else if (v1 !== v0)\n val[i] = v1;\n }\n }\n else if (val instanceof Map) {\n for (const k of Array.from(val.keys())) {\n const v0 = val.get(k);\n const v1 = applyReviver(reviver, val, k, v0);\n if (v1 === undefined)\n val.delete(k);\n else if (v1 !== v0)\n val.set(k, v1);\n }\n }\n else if (val instanceof Set) {\n for (const v0 of Array.from(val)) {\n const v1 = applyReviver(reviver, val, v0, v0);\n if (v1 === undefined)\n val.delete(v0);\n else if (v1 !== v0) {\n val.delete(v0);\n val.add(v1);\n }\n }\n }\n else {\n for (const [k, v0] of Object.entries(val)) {\n const v1 = applyReviver(reviver, val, k, v0);\n if (v1 === undefined)\n delete val[k];\n else if (v1 !== v0)\n val[k] = v1;\n }\n }\n }\n return reviver.call(obj, key, val);\n}\n\nexport { applyReviver };\n","import { hasAnchor } from './identity.js';\n\n/**\n * Recursively convert any node or its contents to native JavaScript\n *\n * @param value - The input value\n * @param arg - If `value` defines a `toJSON()` method, use this\n * as its first argument\n * @param ctx - Conversion context, originally set in Document#toJS(). If\n * `{ keep: true }` is not set, output should be suitable for JSON\n * stringification.\n */\nfunction toJS(value, arg, ctx) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n if (Array.isArray(value))\n return value.map((v, i) => toJS(v, String(i), ctx));\n if (value && typeof value.toJSON === 'function') {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-call\n if (!ctx || !hasAnchor(value))\n return value.toJSON(arg, ctx);\n const data = { aliasCount: 0, count: 1, res: undefined };\n ctx.anchors.set(value, data);\n ctx.onCreate = res => {\n data.res = res;\n delete ctx.onCreate;\n };\n const res = value.toJSON(arg, ctx);\n if (ctx.onCreate)\n ctx.onCreate(res);\n return res;\n }\n if (typeof value === 'bigint' && !ctx?.keep)\n return Number(value);\n return value;\n}\n\nexport { toJS };\n","import { applyReviver } from '../doc/applyReviver.js';\nimport { NODE_TYPE, isDocument } from './identity.js';\nimport { toJS } from './toJS.js';\n\nclass NodeBase {\n constructor(type) {\n Object.defineProperty(this, NODE_TYPE, { value: type });\n }\n /** Create a copy of this node. */\n clone() {\n const copy = Object.create(Object.getPrototypeOf(this), Object.getOwnPropertyDescriptors(this));\n if (this.range)\n copy.range = this.range.slice();\n return copy;\n }\n /** A plain JavaScript representation of this node. */\n toJS(doc, { mapAsMap, maxAliasCount, onAnchor, reviver } = {}) {\n if (!isDocument(doc))\n throw new TypeError('A document argument is required');\n const ctx = {\n anchors: new Map(),\n doc,\n keep: true,\n mapAsMap: mapAsMap === true,\n mapKeyWarned: false,\n maxAliasCount: typeof maxAliasCount === 'number' ? maxAliasCount : 100\n };\n const res = toJS(this, '', ctx);\n if (typeof onAnchor === 'function')\n for (const { count, res } of ctx.anchors.values())\n onAnchor(res, count);\n return typeof reviver === 'function'\n ? applyReviver(reviver, { '': res }, '', res)\n : res;\n }\n}\n\nexport { NodeBase };\n","import { anchorIsValid } from '../doc/anchors.js';\nimport { visit } from '../visit.js';\nimport { ALIAS, isAlias, isCollection, isPair } from './identity.js';\nimport { NodeBase } from './Node.js';\nimport { toJS } from './toJS.js';\n\nclass Alias extends NodeBase {\n constructor(source) {\n super(ALIAS);\n this.source = source;\n Object.defineProperty(this, 'tag', {\n set() {\n throw new Error('Alias nodes cannot have tags');\n }\n });\n }\n /**\n * Resolve the value of this alias within `doc`, finding the last\n * instance of the `source` anchor before this node.\n */\n resolve(doc) {\n let found = undefined;\n visit(doc, {\n Node: (_key, node) => {\n if (node === this)\n return visit.BREAK;\n if (node.anchor === this.source)\n found = node;\n }\n });\n return found;\n }\n toJSON(_arg, ctx) {\n if (!ctx)\n return { source: this.source };\n const { anchors, doc, maxAliasCount } = ctx;\n const source = this.resolve(doc);\n if (!source) {\n const msg = `Unresolved alias (the anchor must be set before the alias): ${this.source}`;\n throw new ReferenceError(msg);\n }\n let data = anchors.get(source);\n if (!data) {\n // Resolve anchors for Node.prototype.toJS()\n toJS(source, null, ctx);\n data = anchors.get(source);\n }\n /* istanbul ignore if */\n if (!data || data.res === undefined) {\n const msg = 'This should not happen: Alias anchor was not resolved?';\n throw new ReferenceError(msg);\n }\n if (maxAliasCount >= 0) {\n data.count += 1;\n if (data.aliasCount === 0)\n data.aliasCount = getAliasCount(doc, source, anchors);\n if (data.count * data.aliasCount > maxAliasCount) {\n const msg = 'Excessive alias count indicates a resource exhaustion attack';\n throw new ReferenceError(msg);\n }\n }\n return data.res;\n }\n toString(ctx, _onComment, _onChompKeep) {\n const src = `*${this.source}`;\n if (ctx) {\n anchorIsValid(this.source);\n if (ctx.options.verifyAliasOrder && !ctx.anchors.has(this.source)) {\n const msg = `Unresolved alias (the anchor must be set before the alias): ${this.source}`;\n throw new Error(msg);\n }\n if (ctx.implicitKey)\n return `${src} `;\n }\n return src;\n }\n}\nfunction getAliasCount(doc, node, anchors) {\n if (isAlias(node)) {\n const source = node.resolve(doc);\n const anchor = anchors && source && anchors.get(source);\n return anchor ? anchor.count * anchor.aliasCount : 0;\n }\n else if (isCollection(node)) {\n let count = 0;\n for (const item of node.items) {\n const c = getAliasCount(doc, item, anchors);\n if (c > count)\n count = c;\n }\n return count;\n }\n else if (isPair(node)) {\n const kc = getAliasCount(doc, node.key, anchors);\n const vc = getAliasCount(doc, node.value, anchors);\n return Math.max(kc, vc);\n }\n return 1;\n}\n\nexport { Alias };\n","import { SCALAR } from './identity.js';\nimport { NodeBase } from './Node.js';\nimport { toJS } from './toJS.js';\n\nconst isScalarValue = (value) => !value || (typeof value !== 'function' && typeof value !== 'object');\nclass Scalar extends NodeBase {\n constructor(value) {\n super(SCALAR);\n this.value = value;\n }\n toJSON(arg, ctx) {\n return ctx?.keep ? this.value : toJS(this.value, arg, ctx);\n }\n toString() {\n return String(this.value);\n }\n}\nScalar.BLOCK_FOLDED = 'BLOCK_FOLDED';\nScalar.BLOCK_LITERAL = 'BLOCK_LITERAL';\nScalar.PLAIN = 'PLAIN';\nScalar.QUOTE_DOUBLE = 'QUOTE_DOUBLE';\nScalar.QUOTE_SINGLE = 'QUOTE_SINGLE';\n\nexport { Scalar, isScalarValue };\n","import { Alias } from '../nodes/Alias.js';\nimport { isNode, isPair, MAP, SEQ, isDocument } from '../nodes/identity.js';\nimport { Scalar } from '../nodes/Scalar.js';\n\nconst defaultTagPrefix = 'tag:yaml.org,2002:';\nfunction findTagObject(value, tagName, tags) {\n if (tagName) {\n const match = tags.filter(t => t.tag === tagName);\n const tagObj = match.find(t => !t.format) ?? match[0];\n if (!tagObj)\n throw new Error(`Tag ${tagName} not found`);\n return tagObj;\n }\n return tags.find(t => t.identify?.(value) && !t.format);\n}\nfunction createNode(value, tagName, ctx) {\n if (isDocument(value))\n value = value.contents;\n if (isNode(value))\n return value;\n if (isPair(value)) {\n const map = ctx.schema[MAP].createNode?.(ctx.schema, null, ctx);\n map.items.push(value);\n return map;\n }\n if (value instanceof String ||\n value instanceof Number ||\n value instanceof Boolean ||\n (typeof BigInt !== 'undefined' && value instanceof BigInt) // not supported everywhere\n ) {\n // https://tc39.es/ecma262/#sec-serializejsonproperty\n value = value.valueOf();\n }\n const { aliasDuplicateObjects, onAnchor, onTagObj, schema, sourceObjects } = ctx;\n // Detect duplicate references to the same object & use Alias nodes for all\n // after first. The `ref` wrapper allows for circular references to resolve.\n let ref = undefined;\n if (aliasDuplicateObjects && value && typeof value === 'object') {\n ref = sourceObjects.get(value);\n if (ref) {\n if (!ref.anchor)\n ref.anchor = onAnchor(value);\n return new Alias(ref.anchor);\n }\n else {\n ref = { anchor: null, node: null };\n sourceObjects.set(value, ref);\n }\n }\n if (tagName?.startsWith('!!'))\n tagName = defaultTagPrefix + tagName.slice(2);\n let tagObj = findTagObject(value, tagName, schema.tags);\n if (!tagObj) {\n if (value && typeof value.toJSON === 'function') {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-call\n value = value.toJSON();\n }\n if (!value || typeof value !== 'object') {\n const node = new Scalar(value);\n if (ref)\n ref.node = node;\n return node;\n }\n tagObj =\n value instanceof Map\n ? schema[MAP]\n : Symbol.iterator in Object(value)\n ? schema[SEQ]\n : schema[MAP];\n }\n if (onTagObj) {\n onTagObj(tagObj);\n delete ctx.onTagObj;\n }\n const node = tagObj?.createNode\n ? tagObj.createNode(ctx.schema, value, ctx)\n : typeof tagObj?.nodeClass?.from === 'function'\n ? tagObj.nodeClass.from(ctx.schema, value, ctx)\n : new Scalar(value);\n if (tagName)\n node.tag = tagName;\n else if (!tagObj.default)\n node.tag = tagObj.tag;\n if (ref)\n ref.node = node;\n return node;\n}\n\nexport { createNode };\n","import { createNode } from '../doc/createNode.js';\nimport { isNode, isPair, isCollection, isScalar } from './identity.js';\nimport { NodeBase } from './Node.js';\n\nfunction collectionFromPath(schema, path, value) {\n let v = value;\n for (let i = path.length - 1; i >= 0; --i) {\n const k = path[i];\n if (typeof k === 'number' && Number.isInteger(k) && k >= 0) {\n const a = [];\n a[k] = v;\n v = a;\n }\n else {\n v = new Map([[k, v]]);\n }\n }\n return createNode(v, undefined, {\n aliasDuplicateObjects: false,\n keepUndefined: false,\n onAnchor: () => {\n throw new Error('This should not happen, please report a bug.');\n },\n schema,\n sourceObjects: new Map()\n });\n}\n// Type guard is intentionally a little wrong so as to be more useful,\n// as it does not cover untypable empty non-string iterables (e.g. []).\nconst isEmptyPath = (path) => path == null ||\n (typeof path === 'object' && !!path[Symbol.iterator]().next().done);\nclass Collection extends NodeBase {\n constructor(type, schema) {\n super(type);\n Object.defineProperty(this, 'schema', {\n value: schema,\n configurable: true,\n enumerable: false,\n writable: true\n });\n }\n /**\n * Create a copy of this collection.\n *\n * @param schema - If defined, overwrites the original's schema\n */\n clone(schema) {\n const copy = Object.create(Object.getPrototypeOf(this), Object.getOwnPropertyDescriptors(this));\n if (schema)\n copy.schema = schema;\n copy.items = copy.items.map(it => isNode(it) || isPair(it) ? it.clone(schema) : it);\n if (this.range)\n copy.range = this.range.slice();\n return copy;\n }\n /**\n * Adds a value to the collection. For `!!map` and `!!omap` the value must\n * be a Pair instance or a `{ key, value }` object, which may not have a key\n * that already exists in the map.\n */\n addIn(path, value) {\n if (isEmptyPath(path))\n this.add(value);\n else {\n const [key, ...rest] = path;\n const node = this.get(key, true);\n if (isCollection(node))\n node.addIn(rest, value);\n else if (node === undefined && this.schema)\n this.set(key, collectionFromPath(this.schema, rest, value));\n else\n throw new Error(`Expected YAML collection at ${key}. Remaining path: ${rest}`);\n }\n }\n /**\n * Removes a value from the collection.\n * @returns `true` if the item was found and removed.\n */\n deleteIn(path) {\n const [key, ...rest] = path;\n if (rest.length === 0)\n return this.delete(key);\n const node = this.get(key, true);\n if (isCollection(node))\n return node.deleteIn(rest);\n else\n throw new Error(`Expected YAML collection at ${key}. Remaining path: ${rest}`);\n }\n /**\n * Returns item at `key`, or `undefined` if not found. By default unwraps\n * scalar values from their surrounding node; to disable set `keepScalar` to\n * `true` (collections are always returned intact).\n */\n getIn(path, keepScalar) {\n const [key, ...rest] = path;\n const node = this.get(key, true);\n if (rest.length === 0)\n return !keepScalar && isScalar(node) ? node.value : node;\n else\n return isCollection(node) ? node.getIn(rest, keepScalar) : undefined;\n }\n hasAllNullValues(allowScalar) {\n return this.items.every(node => {\n if (!isPair(node))\n return false;\n const n = node.value;\n return (n == null ||\n (allowScalar &&\n isScalar(n) &&\n n.value == null &&\n !n.commentBefore &&\n !n.comment &&\n !n.tag));\n });\n }\n /**\n * Checks if the collection includes a value with the key `key`.\n */\n hasIn(path) {\n const [key, ...rest] = path;\n if (rest.length === 0)\n return this.has(key);\n const node = this.get(key, true);\n return isCollection(node) ? node.hasIn(rest) : false;\n }\n /**\n * Sets a value in this collection. For `!!set`, `value` needs to be a\n * boolean to add/remove the item from the set.\n */\n setIn(path, value) {\n const [key, ...rest] = path;\n if (rest.length === 0) {\n this.set(key, value);\n }\n else {\n const node = this.get(key, true);\n if (isCollection(node))\n node.setIn(rest, value);\n else if (node === undefined && this.schema)\n this.set(key, collectionFromPath(this.schema, rest, value));\n else\n throw new Error(`Expected YAML collection at ${key}. Remaining path: ${rest}`);\n }\n }\n}\n\nexport { Collection, collectionFromPath, isEmptyPath };\n","/**\n * Stringifies a comment.\n *\n * Empty comment lines are left empty,\n * lines consisting of a single space are replaced by `#`,\n * and all other lines are prefixed with a `#`.\n */\nconst stringifyComment = (str) => str.replace(/^(?!$)(?: $)?/gm, '#');\nfunction indentComment(comment, indent) {\n if (/^\\n+$/.test(comment))\n return comment.substring(1);\n return indent ? comment.replace(/^(?! *$)/gm, indent) : comment;\n}\nconst lineComment = (str, indent, comment) => str.endsWith('\\n')\n ? indentComment(comment, indent)\n : comment.includes('\\n')\n ? '\\n' + indentComment(comment, indent)\n : (str.endsWith(' ') ? '' : ' ') + comment;\n\nexport { indentComment, lineComment, stringifyComment };\n","const FOLD_FLOW = 'flow';\nconst FOLD_BLOCK = 'block';\nconst FOLD_QUOTED = 'quoted';\n/**\n * Tries to keep input at up to `lineWidth` characters, splitting only on spaces\n * not followed by newlines or spaces unless `mode` is `'quoted'`. Lines are\n * terminated with `\\n` and started with `indent`.\n */\nfunction foldFlowLines(text, indent, mode = 'flow', { indentAtStart, lineWidth = 80, minContentWidth = 20, onFold, onOverflow } = {}) {\n if (!lineWidth || lineWidth < 0)\n return text;\n if (lineWidth < minContentWidth)\n minContentWidth = 0;\n const endStep = Math.max(1 + minContentWidth, 1 + lineWidth - indent.length);\n if (text.length <= endStep)\n return text;\n const folds = [];\n const escapedFolds = {};\n let end = lineWidth - indent.length;\n if (typeof indentAtStart === 'number') {\n if (indentAtStart > lineWidth - Math.max(2, minContentWidth))\n folds.push(0);\n else\n end = lineWidth - indentAtStart;\n }\n let split = undefined;\n let prev = undefined;\n let overflow = false;\n let i = -1;\n let escStart = -1;\n let escEnd = -1;\n if (mode === FOLD_BLOCK) {\n i = consumeMoreIndentedLines(text, i, indent.length);\n if (i !== -1)\n end = i + endStep;\n }\n for (let ch; (ch = text[(i += 1)]);) {\n if (mode === FOLD_QUOTED && ch === '\\\\') {\n escStart = i;\n switch (text[i + 1]) {\n case 'x':\n i += 3;\n break;\n case 'u':\n i += 5;\n break;\n case 'U':\n i += 9;\n break;\n default:\n i += 1;\n }\n escEnd = i;\n }\n if (ch === '\\n') {\n if (mode === FOLD_BLOCK)\n i = consumeMoreIndentedLines(text, i, indent.length);\n end = i + indent.length + endStep;\n split = undefined;\n }\n else {\n if (ch === ' ' &&\n prev &&\n prev !== ' ' &&\n prev !== '\\n' &&\n prev !== '\\t') {\n // space surrounded by non-space can be replaced with newline + indent\n const next = text[i + 1];\n if (next && next !== ' ' && next !== '\\n' && next !== '\\t')\n split = i;\n }\n if (i >= end) {\n if (split) {\n folds.push(split);\n end = split + endStep;\n split = undefined;\n }\n else if (mode === FOLD_QUOTED) {\n // white-space collected at end may stretch past lineWidth\n while (prev === ' ' || prev === '\\t') {\n prev = ch;\n ch = text[(i += 1)];\n overflow = true;\n }\n // Account for newline escape, but don't break preceding escape\n const j = i > escEnd + 1 ? i - 2 : escStart - 1;\n // Bail out if lineWidth & minContentWidth are shorter than an escape string\n if (escapedFolds[j])\n return text;\n folds.push(j);\n escapedFolds[j] = true;\n end = j + endStep;\n split = undefined;\n }\n else {\n overflow = true;\n }\n }\n }\n prev = ch;\n }\n if (overflow && onOverflow)\n onOverflow();\n if (folds.length === 0)\n return text;\n if (onFold)\n onFold();\n let res = text.slice(0, folds[0]);\n for (let i = 0; i < folds.length; ++i) {\n const fold = folds[i];\n const end = folds[i + 1] || text.length;\n if (fold === 0)\n res = `\\n${indent}${text.slice(0, end)}`;\n else {\n if (mode === FOLD_QUOTED && escapedFolds[fold])\n res += `${text[fold]}\\\\`;\n res += `\\n${indent}${text.slice(fold + 1, end)}`;\n }\n }\n return res;\n}\n/**\n * Presumes `i + 1` is at the start of a line\n * @returns index of last newline in more-indented block\n */\nfunction consumeMoreIndentedLines(text, i, indent) {\n let end = i;\n let start = i + 1;\n let ch = text[start];\n while (ch === ' ' || ch === '\\t') {\n if (i < start + indent) {\n ch = text[++i];\n }\n else {\n do {\n ch = text[++i];\n } while (ch && ch !== '\\n');\n end = i;\n start = i + 1;\n ch = text[start];\n }\n }\n return end;\n}\n\nexport { FOLD_BLOCK, FOLD_FLOW, FOLD_QUOTED, foldFlowLines };\n","import { Scalar } from '../nodes/Scalar.js';\nimport { foldFlowLines, FOLD_QUOTED, FOLD_FLOW, FOLD_BLOCK } from './foldFlowLines.js';\n\nconst getFoldOptions = (ctx, isBlock) => ({\n indentAtStart: isBlock ? ctx.indent.length : ctx.indentAtStart,\n lineWidth: ctx.options.lineWidth,\n minContentWidth: ctx.options.minContentWidth\n});\n// Also checks for lines starting with %, as parsing the output as YAML 1.1 will\n// presume that's starting a new document.\nconst containsDocumentMarker = (str) => /^(%|---|\\.\\.\\.)/m.test(str);\nfunction lineLengthOverLimit(str, lineWidth, indentLength) {\n if (!lineWidth || lineWidth < 0)\n return false;\n const limit = lineWidth - indentLength;\n const strLen = str.length;\n if (strLen <= limit)\n return false;\n for (let i = 0, start = 0; i < strLen; ++i) {\n if (str[i] === '\\n') {\n if (i - start > limit)\n return true;\n start = i + 1;\n if (strLen - start <= limit)\n return false;\n }\n }\n return true;\n}\nfunction doubleQuotedString(value, ctx) {\n const json = JSON.stringify(value);\n if (ctx.options.doubleQuotedAsJSON)\n return json;\n const { implicitKey } = ctx;\n const minMultiLineLength = ctx.options.doubleQuotedMinMultiLineLength;\n const indent = ctx.indent || (containsDocumentMarker(value) ? ' ' : '');\n let str = '';\n let start = 0;\n for (let i = 0, ch = json[i]; ch; ch = json[++i]) {\n if (ch === ' ' && json[i + 1] === '\\\\' && json[i + 2] === 'n') {\n // space before newline needs to be escaped to not be folded\n str += json.slice(start, i) + '\\\\ ';\n i += 1;\n start = i;\n ch = '\\\\';\n }\n if (ch === '\\\\')\n switch (json[i + 1]) {\n case 'u':\n {\n str += json.slice(start, i);\n const code = json.substr(i + 2, 4);\n switch (code) {\n case '0000':\n str += '\\\\0';\n break;\n case '0007':\n str += '\\\\a';\n break;\n case '000b':\n str += '\\\\v';\n break;\n case '001b':\n str += '\\\\e';\n break;\n case '0085':\n str += '\\\\N';\n break;\n case '00a0':\n str += '\\\\_';\n break;\n case '2028':\n str += '\\\\L';\n break;\n case '2029':\n str += '\\\\P';\n break;\n default:\n if (code.substr(0, 2) === '00')\n str += '\\\\x' + code.substr(2);\n else\n str += json.substr(i, 6);\n }\n i += 5;\n start = i + 1;\n }\n break;\n case 'n':\n if (implicitKey ||\n json[i + 2] === '\"' ||\n json.length < minMultiLineLength) {\n i += 1;\n }\n else {\n // folding will eat first newline\n str += json.slice(start, i) + '\\n\\n';\n while (json[i + 2] === '\\\\' &&\n json[i + 3] === 'n' &&\n json[i + 4] !== '\"') {\n str += '\\n';\n i += 2;\n }\n str += indent;\n // space after newline needs to be escaped to not be folded\n if (json[i + 2] === ' ')\n str += '\\\\';\n i += 1;\n start = i + 1;\n }\n break;\n default:\n i += 1;\n }\n }\n str = start ? str + json.slice(start) : json;\n return implicitKey\n ? str\n : foldFlowLines(str, indent, FOLD_QUOTED, getFoldOptions(ctx, false));\n}\nfunction singleQuotedString(value, ctx) {\n if (ctx.options.singleQuote === false ||\n (ctx.implicitKey && value.includes('\\n')) ||\n /[ \\t]\\n|\\n[ \\t]/.test(value) // single quoted string can't have leading or trailing whitespace around newline\n )\n return doubleQuotedString(value, ctx);\n const indent = ctx.indent || (containsDocumentMarker(value) ? ' ' : '');\n const res = \"'\" + value.replace(/'/g, \"''\").replace(/\\n+/g, `$&\\n${indent}`) + \"'\";\n return ctx.implicitKey\n ? res\n : foldFlowLines(res, indent, FOLD_FLOW, getFoldOptions(ctx, false));\n}\nfunction quotedString(value, ctx) {\n const { singleQuote } = ctx.options;\n let qs;\n if (singleQuote === false)\n qs = doubleQuotedString;\n else {\n const hasDouble = value.includes('\"');\n const hasSingle = value.includes(\"'\");\n if (hasDouble && !hasSingle)\n qs = singleQuotedString;\n else if (hasSingle && !hasDouble)\n qs = doubleQuotedString;\n else\n qs = singleQuote ? singleQuotedString : doubleQuotedString;\n }\n return qs(value, ctx);\n}\n// The negative lookbehind avoids a polynomial search,\n// but isn't supported yet on Safari: https://caniuse.com/js-regexp-lookbehind\nlet blockEndNewlines;\ntry {\n blockEndNewlines = new RegExp('(^|(?<!\\n))\\n+(?!\\n|$)', 'g');\n}\ncatch {\n blockEndNewlines = /\\n+(?!\\n|$)/g;\n}\nfunction blockString({ comment, type, value }, ctx, onComment, onChompKeep) {\n const { blockQuote, commentString, lineWidth } = ctx.options;\n // 1. Block can't end in whitespace unless the last line is non-empty.\n // 2. Strings consisting of only whitespace are best rendered explicitly.\n if (!blockQuote || /\\n[\\t ]+$/.test(value) || /^\\s*$/.test(value)) {\n return quotedString(value, ctx);\n }\n const indent = ctx.indent ||\n (ctx.forceBlockIndent || containsDocumentMarker(value) ? ' ' : '');\n const literal = blockQuote === 'literal'\n ? true\n : blockQuote === 'folded' || type === Scalar.BLOCK_FOLDED\n ? false\n : type === Scalar.BLOCK_LITERAL\n ? true\n : !lineLengthOverLimit(value, lineWidth, indent.length);\n if (!value)\n return literal ? '|\\n' : '>\\n';\n // determine chomping from whitespace at value end\n let chomp;\n let endStart;\n for (endStart = value.length; endStart > 0; --endStart) {\n const ch = value[endStart - 1];\n if (ch !== '\\n' && ch !== '\\t' && ch !== ' ')\n break;\n }\n let end = value.substring(endStart);\n const endNlPos = end.indexOf('\\n');\n if (endNlPos === -1) {\n chomp = '-'; // strip\n }\n else if (value === end || endNlPos !== end.length - 1) {\n chomp = '+'; // keep\n if (onChompKeep)\n onChompKeep();\n }\n else {\n chomp = ''; // clip\n }\n if (end) {\n value = value.slice(0, -end.length);\n if (end[end.length - 1] === '\\n')\n end = end.slice(0, -1);\n end = end.replace(blockEndNewlines, `$&${indent}`);\n }\n // determine indent indicator from whitespace at value start\n let startWithSpace = false;\n let startEnd;\n let startNlPos = -1;\n for (startEnd = 0; startEnd < value.length; ++startEnd) {\n const ch = value[startEnd];\n if (ch === ' ')\n startWithSpace = true;\n else if (ch === '\\n')\n startNlPos = startEnd;\n else\n break;\n }\n let start = value.substring(0, startNlPos < startEnd ? startNlPos + 1 : startEnd);\n if (start) {\n value = value.substring(start.length);\n start = start.replace(/\\n+/g, `$&${indent}`);\n }\n const indentSize = indent ? '2' : '1'; // root is at -1\n let header = (literal ? '|' : '>') + (startWithSpace ? indentSize : '') + chomp;\n if (comment) {\n header += ' ' + commentString(comment.replace(/ ?[\\r\\n]+/g, ' '));\n if (onComment)\n onComment();\n }\n if (literal) {\n value = value.replace(/\\n+/g, `$&${indent}`);\n return `${header}\\n${indent}${start}${value}${end}`;\n }\n value = value\n .replace(/\\n+/g, '\\n$&')\n .replace(/(?:^|\\n)([\\t ].*)(?:([\\n\\t ]*)\\n(?![\\n\\t ]))?/g, '$1$2') // more-indented lines aren't folded\n // ^ more-ind. ^ empty ^ capture next empty lines only at end of indent\n .replace(/\\n+/g, `$&${indent}`);\n const body = foldFlowLines(`${start}${value}${end}`, indent, FOLD_BLOCK, getFoldOptions(ctx, true));\n return `${header}\\n${indent}${body}`;\n}\nfunction plainString(item, ctx, onComment, onChompKeep) {\n const { type, value } = item;\n const { actualString, implicitKey, indent, indentStep, inFlow } = ctx;\n if ((implicitKey && value.includes('\\n')) ||\n (inFlow && /[[\\]{},]/.test(value))) {\n return quotedString(value, ctx);\n }\n if (!value ||\n /^[\\n\\t ,[\\]{}#&*!|>'\"%@`]|^[?-]$|^[?-][ \\t]|[\\n:][ \\t]|[ \\t]\\n|[\\n\\t ]#|[\\n\\t :]$/.test(value)) {\n // not allowed:\n // - empty string, '-' or '?'\n // - start with an indicator character (except [?:-]) or /[?-] /\n // - '\\n ', ': ' or ' \\n' anywhere\n // - '#' not preceded by a non-space char\n // - end with ' ' or ':'\n return implicitKey || inFlow || !value.includes('\\n')\n ? quotedString(value, ctx)\n : blockString(item, ctx, onComment, onChompKeep);\n }\n if (!implicitKey &&\n !inFlow &&\n type !== Scalar.PLAIN &&\n value.includes('\\n')) {\n // Where allowed & type not set explicitly, prefer block style for multiline strings\n return blockString(item, ctx, onComment, onChompKeep);\n }\n if (containsDocumentMarker(value)) {\n if (indent === '') {\n ctx.forceBlockIndent = true;\n return blockString(item, ctx, onComment, onChompKeep);\n }\n else if (implicitKey && indent === indentStep) {\n return quotedString(value, ctx);\n }\n }\n const str = value.replace(/\\n+/g, `$&\\n${indent}`);\n // Verify that output will be parsed as a string, as e.g. plain numbers and\n // booleans get parsed with those types in v1.2 (e.g. '42', 'true' & '0.9e-3'),\n // and others in v1.1.\n if (actualString) {\n const test = (tag) => tag.default && tag.tag !== 'tag:yaml.org,2002:str' && tag.test?.test(str);\n const { compat, tags } = ctx.doc.schema;\n if (tags.some(test) || compat?.some(test))\n return quotedString(value, ctx);\n }\n return implicitKey\n ? str\n : foldFlowLines(str, indent, FOLD_FLOW, getFoldOptions(ctx, false));\n}\nfunction stringifyString(item, ctx, onComment, onChompKeep) {\n const { implicitKey, inFlow } = ctx;\n const ss = typeof item.value === 'string'\n ? item\n : Object.assign({}, item, { value: String(item.value) });\n let { type } = item;\n if (type !== Scalar.QUOTE_DOUBLE) {\n // force double quotes on control characters & unpaired surrogates\n if (/[\\x00-\\x08\\x0b-\\x1f\\x7f-\\x9f\\u{D800}-\\u{DFFF}]/u.test(ss.value))\n type = Scalar.QUOTE_DOUBLE;\n }\n const _stringify = (_type) => {\n switch (_type) {\n case Scalar.BLOCK_FOLDED:\n case Scalar.BLOCK_LITERAL:\n return implicitKey || inFlow\n ? quotedString(ss.value, ctx) // blocks are not valid inside flow containers\n : blockString(ss, ctx, onComment, onChompKeep);\n case Scalar.QUOTE_DOUBLE:\n return doubleQuotedString(ss.value, ctx);\n case Scalar.QUOTE_SINGLE:\n return singleQuotedString(ss.value, ctx);\n case Scalar.PLAIN:\n return plainString(ss, ctx, onComment, onChompKeep);\n default:\n return null;\n }\n };\n let res = _stringify(type);\n if (res === null) {\n const { defaultKeyType, defaultStringType } = ctx.options;\n const t = (implicitKey && defaultKeyType) || defaultStringType;\n res = _stringify(t);\n if (res === null)\n throw new Error(`Unsupported default string type ${t}`);\n }\n return res;\n}\n\nexport { stringifyString };\n","import { anchorIsValid } from '../doc/anchors.js';\nimport { isPair, isAlias, isNode, isScalar, isCollection } from '../nodes/identity.js';\nimport { stringifyComment } from './stringifyComment.js';\nimport { stringifyString } from './stringifyString.js';\n\nfunction createStringifyContext(doc, options) {\n const opt = Object.assign({\n blockQuote: true,\n commentString: stringifyComment,\n defaultKeyType: null,\n defaultStringType: 'PLAIN',\n directives: null,\n doubleQuotedAsJSON: false,\n doubleQuotedMinMultiLineLength: 40,\n falseStr: 'false',\n flowCollectionPadding: true,\n indentSeq: true,\n lineWidth: 80,\n minContentWidth: 20,\n nullStr: 'null',\n simpleKeys: false,\n singleQuote: null,\n trueStr: 'true',\n verifyAliasOrder: true\n }, doc.schema.toStringOptions, options);\n let inFlow;\n switch (opt.collectionStyle) {\n case 'block':\n inFlow = false;\n break;\n case 'flow':\n inFlow = true;\n break;\n default:\n inFlow = null;\n }\n return {\n anchors: new Set(),\n doc,\n flowCollectionPadding: opt.flowCollectionPadding ? ' ' : '',\n indent: '',\n indentStep: typeof opt.indent === 'number' ? ' '.repeat(opt.indent) : ' ',\n inFlow,\n options: opt\n };\n}\nfunction getTagObject(tags, item) {\n if (item.tag) {\n const match = tags.filter(t => t.tag === item.tag);\n if (match.length > 0)\n return match.find(t => t.format === item.format) ?? match[0];\n }\n let tagObj = undefined;\n let obj;\n if (isScalar(item)) {\n obj = item.value;\n const match = tags.filter(t => t.identify?.(obj));\n tagObj =\n match.find(t => t.format === item.format) ?? match.find(t => !t.format);\n }\n else {\n obj = item;\n tagObj = tags.find(t => t.nodeClass && obj instanceof t.nodeClass);\n }\n if (!tagObj) {\n const name = obj?.constructor?.name ?? typeof obj;\n throw new Error(`Tag not resolved for ${name} value`);\n }\n return tagObj;\n}\n// needs to be called before value stringifier to allow for circular anchor refs\nfunction stringifyProps(node, tagObj, { anchors, doc }) {\n if (!doc.directives)\n return '';\n const props = [];\n const anchor = (isScalar(node) || isCollection(node)) && node.anchor;\n if (anchor && anchorIsValid(anchor)) {\n anchors.add(anchor);\n props.push(`&${anchor}`);\n }\n const tag = node.tag ? node.tag : tagObj.default ? null : tagObj.tag;\n if (tag)\n props.push(doc.directives.tagString(tag));\n return props.join(' ');\n}\nfunction stringify(item, ctx, onComment, onChompKeep) {\n if (isPair(item))\n return item.toString(ctx, onComment, onChompKeep);\n if (isAlias(item)) {\n if (ctx.doc.directives)\n return item.toString(ctx);\n if (ctx.resolvedAliases?.has(item)) {\n throw new TypeError(`Cannot stringify circular structure without alias nodes`);\n }\n else {\n if (ctx.resolvedAliases)\n ctx.resolvedAliases.add(item);\n else\n ctx.resolvedAliases = new Set([item]);\n item = item.resolve(ctx.doc);\n }\n }\n let tagObj = undefined;\n const node = isNode(item)\n ? item\n : ctx.doc.createNode(item, { onTagObj: o => (tagObj = o) });\n if (!tagObj)\n tagObj = getTagObject(ctx.doc.schema.tags, node);\n const props = stringifyProps(node, tagObj, ctx);\n if (props.length > 0)\n ctx.indentAtStart = (ctx.indentAtStart ?? 0) + props.length + 1;\n const str = typeof tagObj.stringify === 'function'\n ? tagObj.stringify(node, ctx, onComment, onChompKeep)\n : isScalar(node)\n ? stringifyString(node, ctx, onComment, onChompKeep)\n : node.toString(ctx, onComment, onChompKeep);\n if (!props)\n return str;\n return isScalar(node) || str[0] === '{' || str[0] === '['\n ? `${props} ${str}`\n : `${props}\\n${ctx.indent}${str}`;\n}\n\nexport { createStringifyContext, stringify };\n","import { isCollection, isNode, isScalar, isSeq } from '../nodes/identity.js';\nimport { Scalar } from '../nodes/Scalar.js';\nimport { stringify } from './stringify.js';\nimport { lineComment, indentComment } from './stringifyComment.js';\n\nfunction stringifyPair({ key, value }, ctx, onComment, onChompKeep) {\n const { allNullValues, doc, indent, indentStep, options: { commentString, indentSeq, simpleKeys } } = ctx;\n let keyComment = (isNode(key) && key.comment) || null;\n if (simpleKeys) {\n if (keyComment) {\n throw new Error('With simple keys, key nodes cannot have comments');\n }\n if (isCollection(key) || (!isNode(key) && typeof key === 'object')) {\n const msg = 'With simple keys, collection cannot be used as a key value';\n throw new Error(msg);\n }\n }\n let explicitKey = !simpleKeys &&\n (!key ||\n (keyComment && value == null && !ctx.inFlow) ||\n isCollection(key) ||\n (isScalar(key)\n ? key.type === Scalar.BLOCK_FOLDED || key.type === Scalar.BLOCK_LITERAL\n : typeof key === 'object'));\n ctx = Object.assign({}, ctx, {\n allNullValues: false,\n implicitKey: !explicitKey && (simpleKeys || !allNullValues),\n indent: indent + indentStep\n });\n let keyCommentDone = false;\n let chompKeep = false;\n let str = stringify(key, ctx, () => (keyCommentDone = true), () => (chompKeep = true));\n if (!explicitKey && !ctx.inFlow && str.length > 1024) {\n if (simpleKeys)\n throw new Error('With simple keys, single line scalar must not span more than 1024 characters');\n explicitKey = true;\n }\n if (ctx.inFlow) {\n if (allNullValues || value == null) {\n if (keyCommentDone && onComment)\n onComment();\n return str === '' ? '?' : explicitKey ? `? ${str}` : str;\n }\n }\n else if ((allNullValues && !simpleKeys) || (value == null && explicitKey)) {\n str = `? ${str}`;\n if (keyComment && !keyCommentDone) {\n str += lineComment(str, ctx.indent, commentString(keyComment));\n }\n else if (chompKeep && onChompKeep)\n onChompKeep();\n return str;\n }\n if (keyCommentDone)\n keyComment = null;\n if (explicitKey) {\n if (keyComment)\n str += lineComment(str, ctx.indent, commentString(keyComment));\n str = `? ${str}\\n${indent}:`;\n }\n else {\n str = `${str}:`;\n if (keyComment)\n str += lineComment(str, ctx.indent, commentString(keyComment));\n }\n let vsb, vcb, valueComment;\n if (isNode(value)) {\n vsb = !!value.spaceBefore;\n vcb = value.commentBefore;\n valueComment = value.comment;\n }\n else {\n vsb = false;\n vcb = null;\n valueComment = null;\n if (value && typeof value === 'object')\n value = doc.createNode(value);\n }\n ctx.implicitKey = false;\n if (!explicitKey && !keyComment && isScalar(value))\n ctx.indentAtStart = str.length + 1;\n chompKeep = false;\n if (!indentSeq &&\n indentStep.length >= 2 &&\n !ctx.inFlow &&\n !explicitKey &&\n isSeq(value) &&\n !value.flow &&\n !value.tag &&\n !value.anchor) {\n // If indentSeq === false, consider '- ' as part of indentation where possible\n ctx.indent = ctx.indent.substring(2);\n }\n let valueCommentDone = false;\n const valueStr = stringify(value, ctx, () => (valueCommentDone = true), () => (chompKeep = true));\n let ws = ' ';\n if (keyComment || vsb || vcb) {\n ws = vsb ? '\\n' : '';\n if (vcb) {\n const cs = commentString(vcb);\n ws += `\\n${indentComment(cs, ctx.indent)}`;\n }\n if (valueStr === '' && !ctx.inFlow) {\n if (ws === '\\n')\n ws = '\\n\\n';\n }\n else {\n ws += `\\n${ctx.indent}`;\n }\n }\n else if (!explicitKey && isCollection(value)) {\n const vs0 = valueStr[0];\n const nl0 = valueStr.indexOf('\\n');\n const hasNewline = nl0 !== -1;\n const flow = ctx.inFlow ?? value.flow ?? value.items.length === 0;\n if (hasNewline || !flow) {\n let hasPropsLine = false;\n if (hasNewline && (vs0 === '&' || vs0 === '!')) {\n let sp0 = valueStr.indexOf(' ');\n if (vs0 === '&' &&\n sp0 !== -1 &&\n sp0 < nl0 &&\n valueStr[sp0 + 1] === '!') {\n sp0 = valueStr.indexOf(' ', sp0 + 1);\n }\n if (sp0 === -1 || nl0 < sp0)\n hasPropsLine = true;\n }\n if (!hasPropsLine)\n ws = `\\n${ctx.indent}`;\n }\n }\n else if (valueStr === '' || valueStr[0] === '\\n') {\n ws = '';\n }\n str += ws + valueStr;\n if (ctx.inFlow) {\n if (valueCommentDone && onComment)\n onComment();\n }\n else if (valueComment && !valueCommentDone) {\n str += lineComment(str, ctx.indent, commentString(valueComment));\n }\n else if (chompKeep && onChompKeep) {\n onChompKeep();\n }\n return str;\n}\n\nexport { stringifyPair };\n","function debug(logLevel, ...messages) {\n if (logLevel === 'debug')\n console.log(...messages);\n}\nfunction warn(logLevel, warning) {\n if (logLevel === 'debug' || logLevel === 'warn') {\n // https://github.com/typescript-eslint/typescript-eslint/issues/7478\n // eslint-disable-next-line @typescript-eslint/prefer-optional-chain\n if (typeof process !== 'undefined' && process.emitWarning)\n process.emitWarning(warning);\n else\n console.warn(warning);\n }\n}\n\nexport { debug, warn };\n","import { warn } from '../log.js';\nimport { createStringifyContext } from '../stringify/stringify.js';\nimport { isAlias, isSeq, isScalar, isMap, isNode } from './identity.js';\nimport { Scalar } from './Scalar.js';\nimport { toJS } from './toJS.js';\n\nconst MERGE_KEY = '<<';\nfunction addPairToJSMap(ctx, map, { key, value }) {\n if (ctx?.doc.schema.merge && isMergeKey(key)) {\n value = isAlias(value) ? value.resolve(ctx.doc) : value;\n if (isSeq(value))\n for (const it of value.items)\n mergeToJSMap(ctx, map, it);\n else if (Array.isArray(value))\n for (const it of value)\n mergeToJSMap(ctx, map, it);\n else\n mergeToJSMap(ctx, map, value);\n }\n else {\n const jsKey = toJS(key, '', ctx);\n if (map instanceof Map) {\n map.set(jsKey, toJS(value, jsKey, ctx));\n }\n else if (map instanceof Set) {\n map.add(jsKey);\n }\n else {\n const stringKey = stringifyKey(key, jsKey, ctx);\n const jsValue = toJS(value, stringKey, ctx);\n if (stringKey in map)\n Object.defineProperty(map, stringKey, {\n value: jsValue,\n writable: true,\n enumerable: true,\n configurable: true\n });\n else\n map[stringKey] = jsValue;\n }\n }\n return map;\n}\nconst isMergeKey = (key) => key === MERGE_KEY ||\n (isScalar(key) &&\n key.value === MERGE_KEY &&\n (!key.type || key.type === Scalar.PLAIN));\n// If the value associated with a merge key is a single mapping node, each of\n// its key/value pairs is inserted into the current mapping, unless the key\n// already exists in it. If the value associated with the merge key is a\n// sequence, then this sequence is expected to contain mapping nodes and each\n// of these nodes is merged in turn according to its order in the sequence.\n// Keys in mapping nodes earlier in the sequence override keys specified in\n// later mapping nodes. -- http://yaml.org/type/merge.html\nfunction mergeToJSMap(ctx, map, value) {\n const source = ctx && isAlias(value) ? value.resolve(ctx.doc) : value;\n if (!isMap(source))\n throw new Error('Merge sources must be maps or map aliases');\n const srcMap = source.toJSON(null, ctx, Map);\n for (const [key, value] of srcMap) {\n if (map instanceof Map) {\n if (!map.has(key))\n map.set(key, value);\n }\n else if (map instanceof Set) {\n map.add(key);\n }\n else if (!Object.prototype.hasOwnProperty.call(map, key)) {\n Object.defineProperty(map, key, {\n value,\n writable: true,\n enumerable: true,\n configurable: true\n });\n }\n }\n return map;\n}\nfunction stringifyKey(key, jsKey, ctx) {\n if (jsKey === null)\n return '';\n if (typeof jsKey !== 'object')\n return String(jsKey);\n if (isNode(key) && ctx?.doc) {\n const strCtx = createStringifyContext(ctx.doc, {});\n strCtx.anchors = new Set();\n for (const node of ctx.anchors.keys())\n strCtx.anchors.add(node.anchor);\n strCtx.inFlow = true;\n strCtx.inStringifyKey = true;\n const strKey = key.toString(strCtx);\n if (!ctx.mapKeyWarned) {\n let jsonStr = JSON.stringify(strKey);\n if (jsonStr.length > 40)\n jsonStr = jsonStr.substring(0, 36) + '...\"';\n warn(ctx.doc.options.logLevel, `Keys with collection values will be stringified due to JS Object restrictions: ${jsonStr}. Set mapAsMap: true to use object keys.`);\n ctx.mapKeyWarned = true;\n }\n return strKey;\n }\n return JSON.stringify(jsKey);\n}\n\nexport { addPairToJSMap };\n","import { createNode } from '../doc/createNode.js';\nimport { stringifyPair } from '../stringify/stringifyPair.js';\nimport { addPairToJSMap } from './addPairToJSMap.js';\nimport { NODE_TYPE, PAIR, isNode } from './identity.js';\n\nfunction createPair(key, value, ctx) {\n const k = createNode(key, undefined, ctx);\n const v = createNode(value, undefined, ctx);\n return new Pair(k, v);\n}\nclass Pair {\n constructor(key, value = null) {\n Object.defineProperty(this, NODE_TYPE, { value: PAIR });\n this.key = key;\n this.value = value;\n }\n clone(schema) {\n let { key, value } = this;\n if (isNode(key))\n key = key.clone(schema);\n if (isNode(value))\n value = value.clone(schema);\n return new Pair(key, value);\n }\n toJSON(_, ctx) {\n const pair = ctx?.mapAsMap ? new Map() : {};\n return addPairToJSMap(ctx, pair, this);\n }\n toString(ctx, onComment, onChompKeep) {\n return ctx?.doc\n ? stringifyPair(this, ctx, onComment, onChompKeep)\n : JSON.stringify(this);\n }\n}\n\nexport { Pair, createPair };\n","import { isNode, isPair } from '../nodes/identity.js';\nimport { stringify } from './stringify.js';\nimport { lineComment, indentComment } from './stringifyComment.js';\n\nfunction stringifyCollection(collection, ctx, options) {\n const flow = ctx.inFlow ?? collection.flow;\n const stringify = flow ? stringifyFlowCollection : stringifyBlockCollection;\n return stringify(collection, ctx, options);\n}\nfunction stringifyBlockCollection({ comment, items }, ctx, { blockItemPrefix, flowChars, itemIndent, onChompKeep, onComment }) {\n const { indent, options: { commentString } } = ctx;\n const itemCtx = Object.assign({}, ctx, { indent: itemIndent, type: null });\n let chompKeep = false; // flag for the preceding node's status\n const lines = [];\n for (let i = 0; i < items.length; ++i) {\n const item = items[i];\n let comment = null;\n if (isNode(item)) {\n if (!chompKeep && item.spaceBefore)\n lines.push('');\n addCommentBefore(ctx, lines, item.commentBefore, chompKeep);\n if (item.comment)\n comment = item.comment;\n }\n else if (isPair(item)) {\n const ik = isNode(item.key) ? item.key : null;\n if (ik) {\n if (!chompKeep && ik.spaceBefore)\n lines.push('');\n addCommentBefore(ctx, lines, ik.commentBefore, chompKeep);\n }\n }\n chompKeep = false;\n let str = stringify(item, itemCtx, () => (comment = null), () => (chompKeep = true));\n if (comment)\n str += lineComment(str, itemIndent, commentString(comment));\n if (chompKeep && comment)\n chompKeep = false;\n lines.push(blockItemPrefix + str);\n }\n let str;\n if (lines.length === 0) {\n str = flowChars.start + flowChars.end;\n }\n else {\n str = lines[0];\n for (let i = 1; i < lines.length; ++i) {\n const line = lines[i];\n str += line ? `\\n${indent}${line}` : '\\n';\n }\n }\n if (comment) {\n str += '\\n' + indentComment(commentString(comment), indent);\n if (onComment)\n onComment();\n }\n else if (chompKeep && onChompKeep)\n onChompKeep();\n return str;\n}\nfunction stringifyFlowCollection({ items }, ctx, { flowChars, itemIndent }) {\n const { indent, indentStep, flowCollectionPadding: fcPadding, options: { commentString } } = ctx;\n itemIndent += indentStep;\n const itemCtx = Object.assign({}, ctx, {\n indent: itemIndent,\n inFlow: true,\n type: null\n });\n let reqNewline = false;\n let linesAtValue = 0;\n const lines = [];\n for (let i = 0; i < items.length; ++i) {\n const item = items[i];\n let comment = null;\n if (isNode(item)) {\n if (item.spaceBefore)\n lines.push('');\n addCommentBefore(ctx, lines, item.commentBefore, false);\n if (item.comment)\n comment = item.comment;\n }\n else if (isPair(item)) {\n const ik = isNode(item.key) ? item.key : null;\n if (ik) {\n if (ik.spaceBefore)\n lines.push('');\n addCommentBefore(ctx, lines, ik.commentBefore, false);\n if (ik.comment)\n reqNewline = true;\n }\n const iv = isNode(item.value) ? item.value : null;\n if (iv) {\n if (iv.comment)\n comment = iv.comment;\n if (iv.commentBefore)\n reqNewline = true;\n }\n else if (item.value == null && ik?.comment) {\n comment = ik.comment;\n }\n }\n if (comment)\n reqNewline = true;\n let str = stringify(item, itemCtx, () => (comment = null));\n if (i < items.length - 1)\n str += ',';\n if (comment)\n str += lineComment(str, itemIndent, commentString(comment));\n if (!reqNewline && (lines.length > linesAtValue || str.includes('\\n')))\n reqNewline = true;\n lines.push(str);\n linesAtValue = lines.length;\n }\n const { start, end } = flowChars;\n if (lines.length === 0) {\n return start + end;\n }\n else {\n if (!reqNewline) {\n const len = lines.reduce((sum, line) => sum + line.length + 2, 2);\n reqNewline = ctx.options.lineWidth > 0 && len > ctx.options.lineWidth;\n }\n if (reqNewline) {\n let str = start;\n for (const line of lines)\n str += line ? `\\n${indentStep}${indent}${line}` : '\\n';\n return `${str}\\n${indent}${end}`;\n }\n else {\n return `${start}${fcPadding}${lines.join(' ')}${fcPadding}${end}`;\n }\n }\n}\nfunction addCommentBefore({ indent, options: { commentString } }, lines, comment, chompKeep) {\n if (comment && chompKeep)\n comment = comment.replace(/^\\n+/, '');\n if (comment) {\n const ic = indentComment(commentString(comment), indent);\n lines.push(ic.trimStart()); // Avoid double indent on first line\n }\n}\n\nexport { stringifyCollection };\n","import { stringifyCollection } from '../stringify/stringifyCollection.js';\nimport { addPairToJSMap } from './addPairToJSMap.js';\nimport { Collection } from './Collection.js';\nimport { isPair, isScalar, MAP } from './identity.js';\nimport { Pair, createPair } from './Pair.js';\nimport { isScalarValue } from './Scalar.js';\n\nfunction findPair(items, key) {\n const k = isScalar(key) ? key.value : key;\n for (const it of items) {\n if (isPair(it)) {\n if (it.key === key || it.key === k)\n return it;\n if (isScalar(it.key) && it.key.value === k)\n return it;\n }\n }\n return undefined;\n}\nclass YAMLMap extends Collection {\n static get tagName() {\n return 'tag:yaml.org,2002:map';\n }\n constructor(schema) {\n super(MAP, schema);\n this.items = [];\n }\n /**\n * A generic collection parsing method that can be extended\n * to other node classes that inherit from YAMLMap\n */\n static from(schema, obj, ctx) {\n const { keepUndefined, replacer } = ctx;\n const map = new this(schema);\n const add = (key, value) => {\n if (typeof replacer === 'function')\n value = replacer.call(obj, key, value);\n else if (Array.isArray(replacer) && !replacer.includes(key))\n return;\n if (value !== undefined || keepUndefined)\n map.items.push(createPair(key, value, ctx));\n };\n if (obj instanceof Map) {\n for (const [key, value] of obj)\n add(key, value);\n }\n else if (obj && typeof obj === 'object') {\n for (const key of Object.keys(obj))\n add(key, obj[key]);\n }\n if (typeof schema.sortMapEntries === 'function') {\n map.items.sort(schema.sortMapEntries);\n }\n return map;\n }\n /**\n * Adds a value to the collection.\n *\n * @param overwrite - If not set `true`, using a key that is already in the\n * collection will throw. Otherwise, overwrites the previous value.\n */\n add(pair, overwrite) {\n let _pair;\n if (isPair(pair))\n _pair = pair;\n else if (!pair || typeof pair !== 'object' || !('key' in pair)) {\n // In TypeScript, this never happens.\n _pair = new Pair(pair, pair?.value);\n }\n else\n _pair = new Pair(pair.key, pair.value);\n const prev = findPair(this.items, _pair.key);\n const sortEntries = this.schema?.sortMapEntries;\n if (prev) {\n if (!overwrite)\n throw new Error(`Key ${_pair.key} already set`);\n // For scalars, keep the old node & its comments and anchors\n if (isScalar(prev.value) && isScalarValue(_pair.value))\n prev.value.value = _pair.value;\n else\n prev.value = _pair.value;\n }\n else if (sortEntries) {\n const i = this.items.findIndex(item => sortEntries(_pair, item) < 0);\n if (i === -1)\n this.items.push(_pair);\n else\n this.items.splice(i, 0, _pair);\n }\n else {\n this.items.push(_pair);\n }\n }\n delete(key) {\n const it = findPair(this.items, key);\n if (!it)\n return false;\n const del = this.items.splice(this.items.indexOf(it), 1);\n return del.length > 0;\n }\n get(key, keepScalar) {\n const it = findPair(this.items, key);\n const node = it?.value;\n return (!keepScalar && isScalar(node) ? node.value : node) ?? undefined;\n }\n has(key) {\n return !!findPair(this.items, key);\n }\n set(key, value) {\n this.add(new Pair(key, value), true);\n }\n /**\n * @param ctx - Conversion context, originally set in Document#toJS()\n * @param {Class} Type - If set, forces the returned collection type\n * @returns Instance of Type, Map, or Object\n */\n toJSON(_, ctx, Type) {\n const map = Type ? new Type() : ctx?.mapAsMap ? new Map() : {};\n if (ctx?.onCreate)\n ctx.onCreate(map);\n for (const item of this.items)\n addPairToJSMap(ctx, map, item);\n return map;\n }\n toString(ctx, onComment, onChompKeep) {\n if (!ctx)\n return JSON.stringify(this);\n for (const item of this.items) {\n if (!isPair(item))\n throw new Error(`Map items must all be pairs; found ${JSON.stringify(item)} instead`);\n }\n if (!ctx.allNullValues && this.hasAllNullValues(false))\n ctx = Object.assign({}, ctx, { allNullValues: true });\n return stringifyCollection(this, ctx, {\n blockItemPrefix: '',\n flowChars: { start: '{', end: '}' },\n itemIndent: ctx.indent || '',\n onChompKeep,\n onComment\n });\n }\n}\n\nexport { YAMLMap, findPair };\n","import { isMap } from '../../nodes/identity.js';\nimport { YAMLMap } from '../../nodes/YAMLMap.js';\n\nconst map = {\n collection: 'map',\n default: true,\n nodeClass: YAMLMap,\n tag: 'tag:yaml.org,2002:map',\n resolve(map, onError) {\n if (!isMap(map))\n onError('Expected a mapping for this tag');\n return map;\n },\n createNode: (schema, obj, ctx) => YAMLMap.from(schema, obj, ctx)\n};\n\nexport { map };\n","import { createNode } from '../doc/createNode.js';\nimport { stringifyCollection } from '../stringify/stringifyCollection.js';\nimport { Collection } from './Collection.js';\nimport { SEQ, isScalar } from './identity.js';\nimport { isScalarValue } from './Scalar.js';\nimport { toJS } from './toJS.js';\n\nclass YAMLSeq extends Collection {\n static get tagName() {\n return 'tag:yaml.org,2002:seq';\n }\n constructor(schema) {\n super(SEQ, schema);\n this.items = [];\n }\n add(value) {\n this.items.push(value);\n }\n /**\n * Removes a value from the collection.\n *\n * `key` must contain a representation of an integer for this to succeed.\n * It may be wrapped in a `Scalar`.\n *\n * @returns `true` if the item was found and removed.\n */\n delete(key) {\n const idx = asItemIndex(key);\n if (typeof idx !== 'number')\n return false;\n const del = this.items.splice(idx, 1);\n return del.length > 0;\n }\n get(key, keepScalar) {\n const idx = asItemIndex(key);\n if (typeof idx !== 'number')\n return undefined;\n const it = this.items[idx];\n return !keepScalar && isScalar(it) ? it.value : it;\n }\n /**\n * Checks if the collection includes a value with the key `key`.\n *\n * `key` must contain a representation of an integer for this to succeed.\n * It may be wrapped in a `Scalar`.\n */\n has(key) {\n const idx = asItemIndex(key);\n return typeof idx === 'number' && idx < this.items.length;\n }\n /**\n * Sets a value in this collection. For `!!set`, `value` needs to be a\n * boolean to add/remove the item from the set.\n *\n * If `key` does not contain a representation of an integer, this will throw.\n * It may be wrapped in a `Scalar`.\n */\n set(key, value) {\n const idx = asItemIndex(key);\n if (typeof idx !== 'number')\n throw new Error(`Expected a valid index, not ${key}.`);\n const prev = this.items[idx];\n if (isScalar(prev) && isScalarValue(value))\n prev.value = value;\n else\n this.items[idx] = value;\n }\n toJSON(_, ctx) {\n const seq = [];\n if (ctx?.onCreate)\n ctx.onCreate(seq);\n let i = 0;\n for (const item of this.items)\n seq.push(toJS(item, String(i++), ctx));\n return seq;\n }\n toString(ctx, onComment, onChompKeep) {\n if (!ctx)\n return JSON.stringify(this);\n return stringifyCollection(this, ctx, {\n blockItemPrefix: '- ',\n flowChars: { start: '[', end: ']' },\n itemIndent: (ctx.indent || '') + ' ',\n onChompKeep,\n onComment\n });\n }\n static from(schema, obj, ctx) {\n const { replacer } = ctx;\n const seq = new this(schema);\n if (obj && Symbol.iterator in Object(obj)) {\n let i = 0;\n for (let it of obj) {\n if (typeof replacer === 'function') {\n const key = obj instanceof Set ? it : String(i++);\n it = replacer.call(obj, key, it);\n }\n seq.items.push(createNode(it, undefined, ctx));\n }\n }\n return seq;\n }\n}\nfunction asItemIndex(key) {\n let idx = isScalar(key) ? key.value : key;\n if (idx && typeof idx === 'string')\n idx = Number(idx);\n return typeof idx === 'number' && Number.isInteger(idx) && idx >= 0\n ? idx\n : null;\n}\n\nexport { YAMLSeq };\n","import { isSeq } from '../../nodes/identity.js';\nimport { YAMLSeq } from '../../nodes/YAMLSeq.js';\n\nconst seq = {\n collection: 'seq',\n default: true,\n nodeClass: YAMLSeq,\n tag: 'tag:yaml.org,2002:seq',\n resolve(seq, onError) {\n if (!isSeq(seq))\n onError('Expected a sequence for this tag');\n return seq;\n },\n createNode: (schema, obj, ctx) => YAMLSeq.from(schema, obj, ctx)\n};\n\nexport { seq };\n","import { stringifyString } from '../../stringify/stringifyString.js';\n\nconst string = {\n identify: value => typeof value === 'string',\n default: true,\n tag: 'tag:yaml.org,2002:str',\n resolve: str => str,\n stringify(item, ctx, onComment, onChompKeep) {\n ctx = Object.assign({ actualString: true }, ctx);\n return stringifyString(item, ctx, onComment, onChompKeep);\n }\n};\n\nexport { string };\n","import { Scalar } from '../../nodes/Scalar.js';\n\nconst nullTag = {\n identify: value => value == null,\n createNode: () => new Scalar(null),\n default: true,\n tag: 'tag:yaml.org,2002:null',\n test: /^(?:~|[Nn]ull|NULL)?$/,\n resolve: () => new Scalar(null),\n stringify: ({ source }, ctx) => typeof source === 'string' && nullTag.test.test(source)\n ? source\n : ctx.options.nullStr\n};\n\nexport { nullTag };\n","import { Scalar } from '../../nodes/Scalar.js';\n\nconst boolTag = {\n identify: value => typeof value === 'boolean',\n default: true,\n tag: 'tag:yaml.org,2002:bool',\n test: /^(?:[Tt]rue|TRUE|[Ff]alse|FALSE)$/,\n resolve: str => new Scalar(str[0] === 't' || str[0] === 'T'),\n stringify({ source, value }, ctx) {\n if (source && boolTag.test.test(source)) {\n const sv = source[0] === 't' || source[0] === 'T';\n if (value === sv)\n return source;\n }\n return value ? ctx.options.trueStr : ctx.options.falseStr;\n }\n};\n\nexport { boolTag };\n","function stringifyNumber({ format, minFractionDigits, tag, value }) {\n if (typeof value === 'bigint')\n return String(value);\n const num = typeof value === 'number' ? value : Number(value);\n if (!isFinite(num))\n return isNaN(num) ? '.nan' : num < 0 ? '-.inf' : '.inf';\n let n = JSON.stringify(value);\n if (!format &&\n minFractionDigits &&\n (!tag || tag === 'tag:yaml.org,2002:float') &&\n /^\\d/.test(n)) {\n let i = n.indexOf('.');\n if (i < 0) {\n i = n.length;\n n += '.';\n }\n let d = minFractionDigits - (n.length - i - 1);\n while (d-- > 0)\n n += '0';\n }\n return n;\n}\n\nexport { stringifyNumber };\n","import { Scalar } from '../../nodes/Scalar.js';\nimport { stringifyNumber } from '../../stringify/stringifyNumber.js';\n\nconst floatNaN = {\n identify: value => typeof value === 'number',\n default: true,\n tag: 'tag:yaml.org,2002:float',\n test: /^(?:[-+]?\\.(?:inf|Inf|INF)|\\.nan|\\.NaN|\\.NAN)$/,\n resolve: str => str.slice(-3).toLowerCase() === 'nan'\n ? NaN\n : str[0] === '-'\n ? Number.NEGATIVE_INFINITY\n : Number.POSITIVE_INFINITY,\n stringify: stringifyNumber\n};\nconst floatExp = {\n identify: value => typeof value === 'number',\n default: true,\n tag: 'tag:yaml.org,2002:float',\n format: 'EXP',\n test: /^[-+]?(?:\\.[0-9]+|[0-9]+(?:\\.[0-9]*)?)[eE][-+]?[0-9]+$/,\n resolve: str => parseFloat(str),\n stringify(node) {\n const num = Number(node.value);\n return isFinite(num) ? num.toExponential() : stringifyNumber(node);\n }\n};\nconst float = {\n identify: value => typeof value === 'number',\n default: true,\n tag: 'tag:yaml.org,2002:float',\n test: /^[-+]?(?:\\.[0-9]+|[0-9]+\\.[0-9]*)$/,\n resolve(str) {\n const node = new Scalar(parseFloat(str));\n const dot = str.indexOf('.');\n if (dot !== -1 && str[str.length - 1] === '0')\n node.minFractionDigits = str.length - dot - 1;\n return node;\n },\n stringify: stringifyNumber\n};\n\nexport { float, floatExp, floatNaN };\n","import { stringifyNumber } from '../../stringify/stringifyNumber.js';\n\nconst intIdentify = (value) => typeof value === 'bigint' || Number.isInteger(value);\nconst intResolve = (str, offset, radix, { intAsBigInt }) => (intAsBigInt ? BigInt(str) : parseInt(str.substring(offset), radix));\nfunction intStringify(node, radix, prefix) {\n const { value } = node;\n if (intIdentify(value) && value >= 0)\n return prefix + value.toString(radix);\n return stringifyNumber(node);\n}\nconst intOct = {\n identify: value => intIdentify(value) && value >= 0,\n default: true,\n tag: 'tag:yaml.org,2002:int',\n format: 'OCT',\n test: /^0o[0-7]+$/,\n resolve: (str, _onError, opt) => intResolve(str, 2, 8, opt),\n stringify: node => intStringify(node, 8, '0o')\n};\nconst int = {\n identify: intIdentify,\n default: true,\n tag: 'tag:yaml.org,2002:int',\n test: /^[-+]?[0-9]+$/,\n resolve: (str, _onError, opt) => intResolve(str, 0, 10, opt),\n stringify: stringifyNumber\n};\nconst intHex = {\n identify: value => intIdentify(value) && value >= 0,\n default: true,\n tag: 'tag:yaml.org,2002:int',\n format: 'HEX',\n test: /^0x[0-9a-fA-F]+$/,\n resolve: (str, _onError, opt) => intResolve(str, 2, 16, opt),\n stringify: node => intStringify(node, 16, '0x')\n};\n\nexport { int, intHex, intOct };\n","import { map } from '../common/map.js';\nimport { nullTag } from '../common/null.js';\nimport { seq } from '../common/seq.js';\nimport { string } from '../common/string.js';\nimport { boolTag } from './bool.js';\nimport { floatNaN, floatExp, float } from './float.js';\nimport { intOct, int, intHex } from './int.js';\n\nconst schema = [\n map,\n seq,\n string,\n nullTag,\n boolTag,\n intOct,\n int,\n intHex,\n floatNaN,\n floatExp,\n float\n];\n\nexport { schema };\n","import { Scalar } from '../../nodes/Scalar.js';\nimport { map } from '../common/map.js';\nimport { seq } from '../common/seq.js';\n\nfunction intIdentify(value) {\n return typeof value === 'bigint' || Number.isInteger(value);\n}\nconst stringifyJSON = ({ value }) => JSON.stringify(value);\nconst jsonScalars = [\n {\n identify: value => typeof value === 'string',\n default: true,\n tag: 'tag:yaml.org,2002:str',\n resolve: str => str,\n stringify: stringifyJSON\n },\n {\n identify: value => value == null,\n createNode: () => new Scalar(null),\n default: true,\n tag: 'tag:yaml.org,2002:null',\n test: /^null$/,\n resolve: () => null,\n stringify: stringifyJSON\n },\n {\n identify: value => typeof value === 'boolean',\n default: true,\n tag: 'tag:yaml.org,2002:bool',\n test: /^true|false$/,\n resolve: str => str === 'true',\n stringify: stringifyJSON\n },\n {\n identify: intIdentify,\n default: true,\n tag: 'tag:yaml.org,2002:int',\n test: /^-?(?:0|[1-9][0-9]*)$/,\n resolve: (str, _onError, { intAsBigInt }) => intAsBigInt ? BigInt(str) : parseInt(str, 10),\n stringify: ({ value }) => intIdentify(value) ? value.toString() : JSON.stringify(value)\n },\n {\n identify: value => typeof value === 'number',\n default: true,\n tag: 'tag:yaml.org,2002:float',\n test: /^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]*)?(?:[eE][-+]?[0-9]+)?$/,\n resolve: str => parseFloat(str),\n stringify: stringifyJSON\n }\n];\nconst jsonError = {\n default: true,\n tag: '',\n test: /^/,\n resolve(str, onError) {\n onError(`Unresolved plain scalar ${JSON.stringify(str)}`);\n return str;\n }\n};\nconst schema = [map, seq].concat(jsonScalars, jsonError);\n\nexport { schema };\n","import { Scalar } from '../../nodes/Scalar.js';\nimport { stringifyString } from '../../stringify/stringifyString.js';\n\nconst binary = {\n identify: value => value instanceof Uint8Array, // Buffer inherits from Uint8Array\n default: false,\n tag: 'tag:yaml.org,2002:binary',\n /**\n * Returns a Buffer in node and an Uint8Array in browsers\n *\n * To use the resulting buffer as an image, you'll want to do something like:\n *\n * const blob = new Blob([buffer], { type: 'image/jpeg' })\n * document.querySelector('#photo').src = URL.createObjectURL(blob)\n */\n resolve(src, onError) {\n if (typeof Buffer === 'function') {\n return Buffer.from(src, 'base64');\n }\n else if (typeof atob === 'function') {\n // On IE 11, atob() can't handle newlines\n const str = atob(src.replace(/[\\n\\r]/g, ''));\n const buffer = new Uint8Array(str.length);\n for (let i = 0; i < str.length; ++i)\n buffer[i] = str.charCodeAt(i);\n return buffer;\n }\n else {\n onError('This environment does not support reading binary tags; either Buffer or atob is required');\n return src;\n }\n },\n stringify({ comment, type, value }, ctx, onComment, onChompKeep) {\n const buf = value; // checked earlier by binary.identify()\n let str;\n if (typeof Buffer === 'function') {\n str =\n buf instanceof Buffer\n ? buf.toString('base64')\n : Buffer.from(buf.buffer).toString('base64');\n }\n else if (typeof btoa === 'function') {\n let s = '';\n for (let i = 0; i < buf.length; ++i)\n s += String.fromCharCode(buf[i]);\n str = btoa(s);\n }\n else {\n throw new Error('This environment does not support writing binary tags; either Buffer or btoa is required');\n }\n if (!type)\n type = Scalar.BLOCK_LITERAL;\n if (type !== Scalar.QUOTE_DOUBLE) {\n const lineWidth = Math.max(ctx.options.lineWidth - ctx.indent.length, ctx.options.minContentWidth);\n const n = Math.ceil(str.length / lineWidth);\n const lines = new Array(n);\n for (let i = 0, o = 0; i < n; ++i, o += lineWidth) {\n lines[i] = str.substr(o, lineWidth);\n }\n str = lines.join(type === Scalar.BLOCK_LITERAL ? '\\n' : ' ');\n }\n return stringifyString({ comment, type, value: str }, ctx, onComment, onChompKeep);\n }\n};\n\nexport { binary };\n","import { isSeq, isPair, isMap } from '../../nodes/identity.js';\nimport { Pair, createPair } from '../../nodes/Pair.js';\nimport { Scalar } from '../../nodes/Scalar.js';\nimport { YAMLSeq } from '../../nodes/YAMLSeq.js';\n\nfunction resolvePairs(seq, onError) {\n if (isSeq(seq)) {\n for (let i = 0; i < seq.items.length; ++i) {\n let item = seq.items[i];\n if (isPair(item))\n continue;\n else if (isMap(item)) {\n if (item.items.length > 1)\n onError('Each pair must have its own sequence indicator');\n const pair = item.items[0] || new Pair(new Scalar(null));\n if (item.commentBefore)\n pair.key.commentBefore = pair.key.commentBefore\n ? `${item.commentBefore}\\n${pair.key.commentBefore}`\n : item.commentBefore;\n if (item.comment) {\n const cn = pair.value ?? pair.key;\n cn.comment = cn.comment\n ? `${item.comment}\\n${cn.comment}`\n : item.comment;\n }\n item = pair;\n }\n seq.items[i] = isPair(item) ? item : new Pair(item);\n }\n }\n else\n onError('Expected a sequence for this tag');\n return seq;\n}\nfunction createPairs(schema, iterable, ctx) {\n const { replacer } = ctx;\n const pairs = new YAMLSeq(schema);\n pairs.tag = 'tag:yaml.org,2002:pairs';\n let i = 0;\n if (iterable && Symbol.iterator in Object(iterable))\n for (let it of iterable) {\n if (typeof replacer === 'function')\n it = replacer.call(iterable, String(i++), it);\n let key, value;\n if (Array.isArray(it)) {\n if (it.length === 2) {\n key = it[0];\n value = it[1];\n }\n else\n throw new TypeError(`Expected [key, value] tuple: ${it}`);\n }\n else if (it && it instanceof Object) {\n const keys = Object.keys(it);\n if (keys.length === 1) {\n key = keys[0];\n value = it[key];\n }\n else {\n throw new TypeError(`Expected tuple with one key, not ${keys.length} keys`);\n }\n }\n else {\n key = it;\n }\n pairs.items.push(createPair(key, value, ctx));\n }\n return pairs;\n}\nconst pairs = {\n collection: 'seq',\n default: false,\n tag: 'tag:yaml.org,2002:pairs',\n resolve: resolvePairs,\n createNode: createPairs\n};\n\nexport { createPairs, pairs, resolvePairs };\n","import { isScalar, isPair } from '../../nodes/identity.js';\nimport { toJS } from '../../nodes/toJS.js';\nimport { YAMLMap } from '../../nodes/YAMLMap.js';\nimport { YAMLSeq } from '../../nodes/YAMLSeq.js';\nimport { resolvePairs, createPairs } from './pairs.js';\n\nclass YAMLOMap extends YAMLSeq {\n constructor() {\n super();\n this.add = YAMLMap.prototype.add.bind(this);\n this.delete = YAMLMap.prototype.delete.bind(this);\n this.get = YAMLMap.prototype.get.bind(this);\n this.has = YAMLMap.prototype.has.bind(this);\n this.set = YAMLMap.prototype.set.bind(this);\n this.tag = YAMLOMap.tag;\n }\n /**\n * If `ctx` is given, the return type is actually `Map<unknown, unknown>`,\n * but TypeScript won't allow widening the signature of a child method.\n */\n toJSON(_, ctx) {\n if (!ctx)\n return super.toJSON(_);\n const map = new Map();\n if (ctx?.onCreate)\n ctx.onCreate(map);\n for (const pair of this.items) {\n let key, value;\n if (isPair(pair)) {\n key = toJS(pair.key, '', ctx);\n value = toJS(pair.value, key, ctx);\n }\n else {\n key = toJS(pair, '', ctx);\n }\n if (map.has(key))\n throw new Error('Ordered maps must not include duplicate keys');\n map.set(key, value);\n }\n return map;\n }\n static from(schema, iterable, ctx) {\n const pairs = createPairs(schema, iterable, ctx);\n const omap = new this();\n omap.items = pairs.items;\n return omap;\n }\n}\nYAMLOMap.tag = 'tag:yaml.org,2002:omap';\nconst omap = {\n collection: 'seq',\n identify: value => value instanceof Map,\n nodeClass: YAMLOMap,\n default: false,\n tag: 'tag:yaml.org,2002:omap',\n resolve(seq, onError) {\n const pairs = resolvePairs(seq, onError);\n const seenKeys = [];\n for (const { key } of pairs.items) {\n if (isScalar(key)) {\n if (seenKeys.includes(key.value)) {\n onError(`Ordered maps must not include duplicate keys: ${key.value}`);\n }\n else {\n seenKeys.push(key.value);\n }\n }\n }\n return Object.assign(new YAMLOMap(), pairs);\n },\n createNode: (schema, iterable, ctx) => YAMLOMap.from(schema, iterable, ctx)\n};\n\nexport { YAMLOMap, omap };\n","import { Scalar } from '../../nodes/Scalar.js';\n\nfunction boolStringify({ value, source }, ctx) {\n const boolObj = value ? trueTag : falseTag;\n if (source && boolObj.test.test(source))\n return source;\n return value ? ctx.options.trueStr : ctx.options.falseStr;\n}\nconst trueTag = {\n identify: value => value === true,\n default: true,\n tag: 'tag:yaml.org,2002:bool',\n test: /^(?:Y|y|[Yy]es|YES|[Tt]rue|TRUE|[Oo]n|ON)$/,\n resolve: () => new Scalar(true),\n stringify: boolStringify\n};\nconst falseTag = {\n identify: value => value === false,\n default: true,\n tag: 'tag:yaml.org,2002:bool',\n test: /^(?:N|n|[Nn]o|NO|[Ff]alse|FALSE|[Oo]ff|OFF)$/,\n resolve: () => new Scalar(false),\n stringify: boolStringify\n};\n\nexport { falseTag, trueTag };\n","import { Scalar } from '../../nodes/Scalar.js';\nimport { stringifyNumber } from '../../stringify/stringifyNumber.js';\n\nconst floatNaN = {\n identify: value => typeof value === 'number',\n default: true,\n tag: 'tag:yaml.org,2002:float',\n test: /^(?:[-+]?\\.(?:inf|Inf|INF)|\\.nan|\\.NaN|\\.NAN)$/,\n resolve: (str) => str.slice(-3).toLowerCase() === 'nan'\n ? NaN\n : str[0] === '-'\n ? Number.NEGATIVE_INFINITY\n : Number.POSITIVE_INFINITY,\n stringify: stringifyNumber\n};\nconst floatExp = {\n identify: value => typeof value === 'number',\n default: true,\n tag: 'tag:yaml.org,2002:float',\n format: 'EXP',\n test: /^[-+]?(?:[0-9][0-9_]*)?(?:\\.[0-9_]*)?[eE][-+]?[0-9]+$/,\n resolve: (str) => parseFloat(str.replace(/_/g, '')),\n stringify(node) {\n const num = Number(node.value);\n return isFinite(num) ? num.toExponential() : stringifyNumber(node);\n }\n};\nconst float = {\n identify: value => typeof value === 'number',\n default: true,\n tag: 'tag:yaml.org,2002:float',\n test: /^[-+]?(?:[0-9][0-9_]*)?\\.[0-9_]*$/,\n resolve(str) {\n const node = new Scalar(parseFloat(str.replace(/_/g, '')));\n const dot = str.indexOf('.');\n if (dot !== -1) {\n const f = str.substring(dot + 1).replace(/_/g, '');\n if (f[f.length - 1] === '0')\n node.minFractionDigits = f.length;\n }\n return node;\n },\n stringify: stringifyNumber\n};\n\nexport { float, floatExp, floatNaN };\n","import { stringifyNumber } from '../../stringify/stringifyNumber.js';\n\nconst intIdentify = (value) => typeof value === 'bigint' || Number.isInteger(value);\nfunction intResolve(str, offset, radix, { intAsBigInt }) {\n const sign = str[0];\n if (sign === '-' || sign === '+')\n offset += 1;\n str = str.substring(offset).replace(/_/g, '');\n if (intAsBigInt) {\n switch (radix) {\n case 2:\n str = `0b${str}`;\n break;\n case 8:\n str = `0o${str}`;\n break;\n case 16:\n str = `0x${str}`;\n break;\n }\n const n = BigInt(str);\n return sign === '-' ? BigInt(-1) * n : n;\n }\n const n = parseInt(str, radix);\n return sign === '-' ? -1 * n : n;\n}\nfunction intStringify(node, radix, prefix) {\n const { value } = node;\n if (intIdentify(value)) {\n const str = value.toString(radix);\n return value < 0 ? '-' + prefix + str.substr(1) : prefix + str;\n }\n return stringifyNumber(node);\n}\nconst intBin = {\n identify: intIdentify,\n default: true,\n tag: 'tag:yaml.org,2002:int',\n format: 'BIN',\n test: /^[-+]?0b[0-1_]+$/,\n resolve: (str, _onError, opt) => intResolve(str, 2, 2, opt),\n stringify: node => intStringify(node, 2, '0b')\n};\nconst intOct = {\n identify: intIdentify,\n default: true,\n tag: 'tag:yaml.org,2002:int',\n format: 'OCT',\n test: /^[-+]?0[0-7_]+$/,\n resolve: (str, _onError, opt) => intResolve(str, 1, 8, opt),\n stringify: node => intStringify(node, 8, '0')\n};\nconst int = {\n identify: intIdentify,\n default: true,\n tag: 'tag:yaml.org,2002:int',\n test: /^[-+]?[0-9][0-9_]*$/,\n resolve: (str, _onError, opt) => intResolve(str, 0, 10, opt),\n stringify: stringifyNumber\n};\nconst intHex = {\n identify: intIdentify,\n default: true,\n tag: 'tag:yaml.org,2002:int',\n format: 'HEX',\n test: /^[-+]?0x[0-9a-fA-F_]+$/,\n resolve: (str, _onError, opt) => intResolve(str, 2, 16, opt),\n stringify: node => intStringify(node, 16, '0x')\n};\n\nexport { int, intBin, intHex, intOct };\n","import { isMap, isPair, isScalar } from '../../nodes/identity.js';\nimport { Pair, createPair } from '../../nodes/Pair.js';\nimport { YAMLMap, findPair } from '../../nodes/YAMLMap.js';\n\nclass YAMLSet extends YAMLMap {\n constructor(schema) {\n super(schema);\n this.tag = YAMLSet.tag;\n }\n add(key) {\n let pair;\n if (isPair(key))\n pair = key;\n else if (key &&\n typeof key === 'object' &&\n 'key' in key &&\n 'value' in key &&\n key.value === null)\n pair = new Pair(key.key, null);\n else\n pair = new Pair(key, null);\n const prev = findPair(this.items, pair.key);\n if (!prev)\n this.items.push(pair);\n }\n /**\n * If `keepPair` is `true`, returns the Pair matching `key`.\n * Otherwise, returns the value of that Pair's key.\n */\n get(key, keepPair) {\n const pair = findPair(this.items, key);\n return !keepPair && isPair(pair)\n ? isScalar(pair.key)\n ? pair.key.value\n : pair.key\n : pair;\n }\n set(key, value) {\n if (typeof value !== 'boolean')\n throw new Error(`Expected boolean value for set(key, value) in a YAML set, not ${typeof value}`);\n const prev = findPair(this.items, key);\n if (prev && !value) {\n this.items.splice(this.items.indexOf(prev), 1);\n }\n else if (!prev && value) {\n this.items.push(new Pair(key));\n }\n }\n toJSON(_, ctx) {\n return super.toJSON(_, ctx, Set);\n }\n toString(ctx, onComment, onChompKeep) {\n if (!ctx)\n return JSON.stringify(this);\n if (this.hasAllNullValues(true))\n return super.toString(Object.assign({}, ctx, { allNullValues: true }), onComment, onChompKeep);\n else\n throw new Error('Set items must all have null values');\n }\n static from(schema, iterable, ctx) {\n const { replacer } = ctx;\n const set = new this(schema);\n if (iterable && Symbol.iterator in Object(iterable))\n for (let value of iterable) {\n if (typeof replacer === 'function')\n value = replacer.call(iterable, value, value);\n set.items.push(createPair(value, null, ctx));\n }\n return set;\n }\n}\nYAMLSet.tag = 'tag:yaml.org,2002:set';\nconst set = {\n collection: 'map',\n identify: value => value instanceof Set,\n nodeClass: YAMLSet,\n default: false,\n tag: 'tag:yaml.org,2002:set',\n createNode: (schema, iterable, ctx) => YAMLSet.from(schema, iterable, ctx),\n resolve(map, onError) {\n if (isMap(map)) {\n if (map.hasAllNullValues(true))\n return Object.assign(new YAMLSet(), map);\n else\n onError('Set items must all have null values');\n }\n else\n onError('Expected a mapping for this tag');\n return map;\n }\n};\n\nexport { YAMLSet, set };\n","import { stringifyNumber } from '../../stringify/stringifyNumber.js';\n\n/** Internal types handle bigint as number, because TS can't figure it out. */\nfunction parseSexagesimal(str, asBigInt) {\n const sign = str[0];\n const parts = sign === '-' || sign === '+' ? str.substring(1) : str;\n const num = (n) => asBigInt ? BigInt(n) : Number(n);\n const res = parts\n .replace(/_/g, '')\n .split(':')\n .reduce((res, p) => res * num(60) + num(p), num(0));\n return (sign === '-' ? num(-1) * res : res);\n}\n/**\n * hhhh:mm:ss.sss\n *\n * Internal types handle bigint as number, because TS can't figure it out.\n */\nfunction stringifySexagesimal(node) {\n let { value } = node;\n let num = (n) => n;\n if (typeof value === 'bigint')\n num = n => BigInt(n);\n else if (isNaN(value) || !isFinite(value))\n return stringifyNumber(node);\n let sign = '';\n if (value < 0) {\n sign = '-';\n value *= num(-1);\n }\n const _60 = num(60);\n const parts = [value % _60]; // seconds, including ms\n if (value < 60) {\n parts.unshift(0); // at least one : is required\n }\n else {\n value = (value - parts[0]) / _60;\n parts.unshift(value % _60); // minutes\n if (value >= 60) {\n value = (value - parts[0]) / _60;\n parts.unshift(value); // hours\n }\n }\n return (sign +\n parts\n .map(n => String(n).padStart(2, '0'))\n .join(':')\n .replace(/000000\\d*$/, '') // % 60 may introduce error\n );\n}\nconst intTime = {\n identify: value => typeof value === 'bigint' || Number.isInteger(value),\n default: true,\n tag: 'tag:yaml.org,2002:int',\n format: 'TIME',\n test: /^[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+$/,\n resolve: (str, _onError, { intAsBigInt }) => parseSexagesimal(str, intAsBigInt),\n stringify: stringifySexagesimal\n};\nconst floatTime = {\n identify: value => typeof value === 'number',\n default: true,\n tag: 'tag:yaml.org,2002:float',\n format: 'TIME',\n test: /^[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\\.[0-9_]*$/,\n resolve: str => parseSexagesimal(str, false),\n stringify: stringifySexagesimal\n};\nconst timestamp = {\n identify: value => value instanceof Date,\n default: true,\n tag: 'tag:yaml.org,2002:timestamp',\n // If the time zone is omitted, the timestamp is assumed to be specified in UTC. The time part\n // may be omitted altogether, resulting in a date format. In such a case, the time part is\n // assumed to be 00:00:00Z (start of day, UTC).\n test: RegExp('^([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})' + // YYYY-Mm-Dd\n '(?:' + // time is optional\n '(?:t|T|[ \\\\t]+)' + // t | T | whitespace\n '([0-9]{1,2}):([0-9]{1,2}):([0-9]{1,2}(\\\\.[0-9]+)?)' + // Hh:Mm:Ss(.ss)?\n '(?:[ \\\\t]*(Z|[-+][012]?[0-9](?::[0-9]{2})?))?' + // Z | +5 | -03:30\n ')?$'),\n resolve(str) {\n const match = str.match(timestamp.test);\n if (!match)\n throw new Error('!!timestamp expects a date, starting with yyyy-mm-dd');\n const [, year, month, day, hour, minute, second] = match.map(Number);\n const millisec = match[7] ? Number((match[7] + '00').substr(1, 3)) : 0;\n let date = Date.UTC(year, month - 1, day, hour || 0, minute || 0, second || 0, millisec);\n const tz = match[8];\n if (tz && tz !== 'Z') {\n let d = parseSexagesimal(tz, false);\n if (Math.abs(d) < 30)\n d *= 60;\n date -= 60000 * d;\n }\n return new Date(date);\n },\n stringify: ({ value }) => value.toISOString().replace(/((T00:00)?:00)?\\.000Z$/, '')\n};\n\nexport { floatTime, intTime, timestamp };\n","import { map } from '../common/map.js';\nimport { nullTag } from '../common/null.js';\nimport { seq } from '../common/seq.js';\nimport { string } from '../common/string.js';\nimport { binary } from './binary.js';\nimport { trueTag, falseTag } from './bool.js';\nimport { floatNaN, floatExp, float } from './float.js';\nimport { intBin, intOct, int, intHex } from './int.js';\nimport { omap } from './omap.js';\nimport { pairs } from './pairs.js';\nimport { set } from './set.js';\nimport { intTime, floatTime, timestamp } from './timestamp.js';\n\nconst schema = [\n map,\n seq,\n string,\n nullTag,\n trueTag,\n falseTag,\n intBin,\n intOct,\n int,\n intHex,\n floatNaN,\n floatExp,\n float,\n binary,\n omap,\n pairs,\n set,\n intTime,\n floatTime,\n timestamp\n];\n\nexport { schema };\n","import { map } from './common/map.js';\nimport { nullTag } from './common/null.js';\nimport { seq } from './common/seq.js';\nimport { string } from './common/string.js';\nimport { boolTag } from './core/bool.js';\nimport { float, floatExp, floatNaN } from './core/float.js';\nimport { int, intHex, intOct } from './core/int.js';\nimport { schema } from './core/schema.js';\nimport { schema as schema$1 } from './json/schema.js';\nimport { binary } from './yaml-1.1/binary.js';\nimport { omap } from './yaml-1.1/omap.js';\nimport { pairs } from './yaml-1.1/pairs.js';\nimport { schema as schema$2 } from './yaml-1.1/schema.js';\nimport { set } from './yaml-1.1/set.js';\nimport { timestamp, floatTime, intTime } from './yaml-1.1/timestamp.js';\n\nconst schemas = new Map([\n ['core', schema],\n ['failsafe', [map, seq, string]],\n ['json', schema$1],\n ['yaml11', schema$2],\n ['yaml-1.1', schema$2]\n]);\nconst tagsByName = {\n binary,\n bool: boolTag,\n float,\n floatExp,\n floatNaN,\n floatTime,\n int,\n intHex,\n intOct,\n intTime,\n map,\n null: nullTag,\n omap,\n pairs,\n seq,\n set,\n timestamp\n};\nconst coreKnownTags = {\n 'tag:yaml.org,2002:binary': binary,\n 'tag:yaml.org,2002:omap': omap,\n 'tag:yaml.org,2002:pairs': pairs,\n 'tag:yaml.org,2002:set': set,\n 'tag:yaml.org,2002:timestamp': timestamp\n};\nfunction getTags(customTags, schemaName) {\n let tags = schemas.get(schemaName);\n if (!tags) {\n if (Array.isArray(customTags))\n tags = [];\n else {\n const keys = Array.from(schemas.keys())\n .filter(key => key !== 'yaml11')\n .map(key => JSON.stringify(key))\n .join(', ');\n throw new Error(`Unknown schema \"${schemaName}\"; use one of ${keys} or define customTags array`);\n }\n }\n if (Array.isArray(customTags)) {\n for (const tag of customTags)\n tags = tags.concat(tag);\n }\n else if (typeof customTags === 'function') {\n tags = customTags(tags.slice());\n }\n return tags.map(tag => {\n if (typeof tag !== 'string')\n return tag;\n const tagObj = tagsByName[tag];\n if (tagObj)\n return tagObj;\n const keys = Object.keys(tagsByName)\n .map(key => JSON.stringify(key))\n .join(', ');\n throw new Error(`Unknown custom tag \"${tag}\"; use one of ${keys}`);\n });\n}\n\nexport { coreKnownTags, getTags };\n","import { MAP, SCALAR, SEQ } from '../nodes/identity.js';\nimport { map } from './common/map.js';\nimport { seq } from './common/seq.js';\nimport { string } from './common/string.js';\nimport { getTags, coreKnownTags } from './tags.js';\n\nconst sortMapEntriesByKey = (a, b) => a.key < b.key ? -1 : a.key > b.key ? 1 : 0;\nclass Schema {\n constructor({ compat, customTags, merge, resolveKnownTags, schema, sortMapEntries, toStringDefaults }) {\n this.compat = Array.isArray(compat)\n ? getTags(compat, 'compat')\n : compat\n ? getTags(null, compat)\n : null;\n this.merge = !!merge;\n this.name = (typeof schema === 'string' && schema) || 'core';\n this.knownTags = resolveKnownTags ? coreKnownTags : {};\n this.tags = getTags(customTags, this.name);\n this.toStringOptions = toStringDefaults ?? null;\n Object.defineProperty(this, MAP, { value: map });\n Object.defineProperty(this, SCALAR, { value: string });\n Object.defineProperty(this, SEQ, { value: seq });\n // Used by createMap()\n this.sortMapEntries =\n typeof sortMapEntries === 'function'\n ? sortMapEntries\n : sortMapEntries === true\n ? sortMapEntriesByKey\n : null;\n }\n clone() {\n const copy = Object.create(Schema.prototype, Object.getOwnPropertyDescriptors(this));\n copy.tags = this.tags.slice();\n return copy;\n }\n}\n\nexport { Schema };\n","import { isNode } from '../nodes/identity.js';\nimport { createStringifyContext, stringify } from './stringify.js';\nimport { indentComment, lineComment } from './stringifyComment.js';\n\nfunction stringifyDocument(doc, options) {\n const lines = [];\n let hasDirectives = options.directives === true;\n if (options.directives !== false && doc.directives) {\n const dir = doc.directives.toString(doc);\n if (dir) {\n lines.push(dir);\n hasDirectives = true;\n }\n else if (doc.directives.docStart)\n hasDirectives = true;\n }\n if (hasDirectives)\n lines.push('---');\n const ctx = createStringifyContext(doc, options);\n const { commentString } = ctx.options;\n if (doc.commentBefore) {\n if (lines.length !== 1)\n lines.unshift('');\n const cs = commentString(doc.commentBefore);\n lines.unshift(indentComment(cs, ''));\n }\n let chompKeep = false;\n let contentComment = null;\n if (doc.contents) {\n if (isNode(doc.contents)) {\n if (doc.contents.spaceBefore && hasDirectives)\n lines.push('');\n if (doc.contents.commentBefore) {\n const cs = commentString(doc.contents.commentBefore);\n lines.push(indentComment(cs, ''));\n }\n // top-level block scalars need to be indented if followed by a comment\n ctx.forceBlockIndent = !!doc.comment;\n contentComment = doc.contents.comment;\n }\n const onChompKeep = contentComment ? undefined : () => (chompKeep = true);\n let body = stringify(doc.contents, ctx, () => (contentComment = null), onChompKeep);\n if (contentComment)\n body += lineComment(body, '', commentString(contentComment));\n if ((body[0] === '|' || body[0] === '>') &&\n lines[lines.length - 1] === '---') {\n // Top-level block scalars with a preceding doc marker ought to use the\n // same line for their header.\n lines[lines.length - 1] = `--- ${body}`;\n }\n else\n lines.push(body);\n }\n else {\n lines.push(stringify(doc.contents, ctx));\n }\n if (doc.directives?.docEnd) {\n if (doc.comment) {\n const cs = commentString(doc.comment);\n if (cs.includes('\\n')) {\n lines.push('...');\n lines.push(indentComment(cs, ''));\n }\n else {\n lines.push(`... ${cs}`);\n }\n }\n else {\n lines.push('...');\n }\n }\n else {\n let dc = doc.comment;\n if (dc && chompKeep)\n dc = dc.replace(/^\\n+/, '');\n if (dc) {\n if ((!chompKeep || contentComment) && lines[lines.length - 1] !== '')\n lines.push('');\n lines.push(indentComment(commentString(dc), ''));\n }\n }\n return lines.join('\\n') + '\\n';\n}\n\nexport { stringifyDocument };\n","import { Alias } from '../nodes/Alias.js';\nimport { isEmptyPath, collectionFromPath } from '../nodes/Collection.js';\nimport { NODE_TYPE, DOC, isNode, isCollection, isScalar } from '../nodes/identity.js';\nimport { Pair } from '../nodes/Pair.js';\nimport { toJS } from '../nodes/toJS.js';\nimport { Schema } from '../schema/Schema.js';\nimport { stringifyDocument } from '../stringify/stringifyDocument.js';\nimport { anchorNames, findNewAnchor, createNodeAnchors } from './anchors.js';\nimport { applyReviver } from './applyReviver.js';\nimport { createNode } from './createNode.js';\nimport { Directives } from './directives.js';\n\nclass Document {\n constructor(value, replacer, options) {\n /** A comment before this Document */\n this.commentBefore = null;\n /** A comment immediately after this Document */\n this.comment = null;\n /** Errors encountered during parsing. */\n this.errors = [];\n /** Warnings encountered during parsing. */\n this.warnings = [];\n Object.defineProperty(this, NODE_TYPE, { value: DOC });\n let _replacer = null;\n if (typeof replacer === 'function' || Array.isArray(replacer)) {\n _replacer = replacer;\n }\n else if (options === undefined && replacer) {\n options = replacer;\n replacer = undefined;\n }\n const opt = Object.assign({\n intAsBigInt: false,\n keepSourceTokens: false,\n logLevel: 'warn',\n prettyErrors: true,\n strict: true,\n uniqueKeys: true,\n version: '1.2'\n }, options);\n this.options = opt;\n let { version } = opt;\n if (options?._directives) {\n this.directives = options._directives.atDocument();\n if (this.directives.yaml.explicit)\n version = this.directives.yaml.version;\n }\n else\n this.directives = new Directives({ version });\n this.setSchema(version, options);\n // @ts-expect-error We can't really know that this matches Contents.\n this.contents =\n value === undefined ? null : this.createNode(value, _replacer, options);\n }\n /**\n * Create a deep copy of this Document and its contents.\n *\n * Custom Node values that inherit from `Object` still refer to their original instances.\n */\n clone() {\n const copy = Object.create(Document.prototype, {\n [NODE_TYPE]: { value: DOC }\n });\n copy.commentBefore = this.commentBefore;\n copy.comment = this.comment;\n copy.errors = this.errors.slice();\n copy.warnings = this.warnings.slice();\n copy.options = Object.assign({}, this.options);\n if (this.directives)\n copy.directives = this.directives.clone();\n copy.schema = this.schema.clone();\n // @ts-expect-error We can't really know that this matches Contents.\n copy.contents = isNode(this.contents)\n ? this.contents.clone(copy.schema)\n : this.contents;\n if (this.range)\n copy.range = this.range.slice();\n return copy;\n }\n /** Adds a value to the document. */\n add(value) {\n if (assertCollection(this.contents))\n this.contents.add(value);\n }\n /** Adds a value to the document. */\n addIn(path, value) {\n if (assertCollection(this.contents))\n this.contents.addIn(path, value);\n }\n /**\n * Create a new `Alias` node, ensuring that the target `node` has the required anchor.\n *\n * If `node` already has an anchor, `name` is ignored.\n * Otherwise, the `node.anchor` value will be set to `name`,\n * or if an anchor with that name is already present in the document,\n * `name` will be used as a prefix for a new unique anchor.\n * If `name` is undefined, the generated anchor will use 'a' as a prefix.\n */\n createAlias(node, name) {\n if (!node.anchor) {\n const prev = anchorNames(this);\n node.anchor =\n // eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing\n !name || prev.has(name) ? findNewAnchor(name || 'a', prev) : name;\n }\n return new Alias(node.anchor);\n }\n createNode(value, replacer, options) {\n let _replacer = undefined;\n if (typeof replacer === 'function') {\n value = replacer.call({ '': value }, '', value);\n _replacer = replacer;\n }\n else if (Array.isArray(replacer)) {\n const keyToStr = (v) => typeof v === 'number' || v instanceof String || v instanceof Number;\n const asStr = replacer.filter(keyToStr).map(String);\n if (asStr.length > 0)\n replacer = replacer.concat(asStr);\n _replacer = replacer;\n }\n else if (options === undefined && replacer) {\n options = replacer;\n replacer = undefined;\n }\n const { aliasDuplicateObjects, anchorPrefix, flow, keepUndefined, onTagObj, tag } = options ?? {};\n const { onAnchor, setAnchors, sourceObjects } = createNodeAnchors(this, \n // eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing\n anchorPrefix || 'a');\n const ctx = {\n aliasDuplicateObjects: aliasDuplicateObjects ?? true,\n keepUndefined: keepUndefined ?? false,\n onAnchor,\n onTagObj,\n replacer: _replacer,\n schema: this.schema,\n sourceObjects\n };\n const node = createNode(value, tag, ctx);\n if (flow && isCollection(node))\n node.flow = true;\n setAnchors();\n return node;\n }\n /**\n * Convert a key and a value into a `Pair` using the current schema,\n * recursively wrapping all values as `Scalar` or `Collection` nodes.\n */\n createPair(key, value, options = {}) {\n const k = this.createNode(key, null, options);\n const v = this.createNode(value, null, options);\n return new Pair(k, v);\n }\n /**\n * Removes a value from the document.\n * @returns `true` if the item was found and removed.\n */\n delete(key) {\n return assertCollection(this.contents) ? this.contents.delete(key) : false;\n }\n /**\n * Removes a value from the document.\n * @returns `true` if the item was found and removed.\n */\n deleteIn(path) {\n if (isEmptyPath(path)) {\n if (this.contents == null)\n return false;\n // @ts-expect-error Presumed impossible if Strict extends false\n this.contents = null;\n return true;\n }\n return assertCollection(this.contents)\n ? this.contents.deleteIn(path)\n : false;\n }\n /**\n * Returns item at `key`, or `undefined` if not found. By default unwraps\n * scalar values from their surrounding node; to disable set `keepScalar` to\n * `true` (collections are always returned intact).\n */\n get(key, keepScalar) {\n return isCollection(this.contents)\n ? this.contents.get(key, keepScalar)\n : undefined;\n }\n /**\n * Returns item at `path`, or `undefined` if not found. By default unwraps\n * scalar values from their surrounding node; to disable set `keepScalar` to\n * `true` (collections are always returned intact).\n */\n getIn(path, keepScalar) {\n if (isEmptyPath(path))\n return !keepScalar && isScalar(this.contents)\n ? this.contents.value\n : this.contents;\n return isCollection(this.contents)\n ? this.contents.getIn(path, keepScalar)\n : undefined;\n }\n /**\n * Checks if the document includes a value with the key `key`.\n */\n has(key) {\n return isCollection(this.contents) ? this.contents.has(key) : false;\n }\n /**\n * Checks if the document includes a value at `path`.\n */\n hasIn(path) {\n if (isEmptyPath(path))\n return this.contents !== undefined;\n return isCollection(this.contents) ? this.contents.hasIn(path) : false;\n }\n /**\n * Sets a value in this document. For `!!set`, `value` needs to be a\n * boolean to add/remove the item from the set.\n */\n set(key, value) {\n if (this.contents == null) {\n // @ts-expect-error We can't really know that this matches Contents.\n this.contents = collectionFromPath(this.schema, [key], value);\n }\n else if (assertCollection(this.contents)) {\n this.contents.set(key, value);\n }\n }\n /**\n * Sets a value in this document. For `!!set`, `value` needs to be a\n * boolean to add/remove the item from the set.\n */\n setIn(path, value) {\n if (isEmptyPath(path)) {\n // @ts-expect-error We can't really know that this matches Contents.\n this.contents = value;\n }\n else if (this.contents == null) {\n // @ts-expect-error We can't really know that this matches Contents.\n this.contents = collectionFromPath(this.schema, Array.from(path), value);\n }\n else if (assertCollection(this.contents)) {\n this.contents.setIn(path, value);\n }\n }\n /**\n * Change the YAML version and schema used by the document.\n * A `null` version disables support for directives, explicit tags, anchors, and aliases.\n * It also requires the `schema` option to be given as a `Schema` instance value.\n *\n * Overrides all previously set schema options.\n */\n setSchema(version, options = {}) {\n if (typeof version === 'number')\n version = String(version);\n let opt;\n switch (version) {\n case '1.1':\n if (this.directives)\n this.directives.yaml.version = '1.1';\n else\n this.directives = new Directives({ version: '1.1' });\n opt = { merge: true, resolveKnownTags: false, schema: 'yaml-1.1' };\n break;\n case '1.2':\n case 'next':\n if (this.directives)\n this.directives.yaml.version = version;\n else\n this.directives = new Directives({ version });\n opt = { merge: false, resolveKnownTags: true, schema: 'core' };\n break;\n case null:\n if (this.directives)\n delete this.directives;\n opt = null;\n break;\n default: {\n const sv = JSON.stringify(version);\n throw new Error(`Expected '1.1', '1.2' or null as first argument, but found: ${sv}`);\n }\n }\n // Not using `instanceof Schema` to allow for duck typing\n if (options.schema instanceof Object)\n this.schema = options.schema;\n else if (opt)\n this.schema = new Schema(Object.assign(opt, options));\n else\n throw new Error(`With a null YAML version, the { schema: Schema } option is required`);\n }\n // json & jsonArg are only used from toJSON()\n toJS({ json, jsonArg, mapAsMap, maxAliasCount, onAnchor, reviver } = {}) {\n const ctx = {\n anchors: new Map(),\n doc: this,\n keep: !json,\n mapAsMap: mapAsMap === true,\n mapKeyWarned: false,\n maxAliasCount: typeof maxAliasCount === 'number' ? maxAliasCount : 100\n };\n const res = toJS(this.contents, jsonArg ?? '', ctx);\n if (typeof onAnchor === 'function')\n for (const { count, res } of ctx.anchors.values())\n onAnchor(res, count);\n return typeof reviver === 'function'\n ? applyReviver(reviver, { '': res }, '', res)\n : res;\n }\n /**\n * A JSON representation of the document `contents`.\n *\n * @param jsonArg Used by `JSON.stringify` to indicate the array index or\n * property name.\n */\n toJSON(jsonArg, onAnchor) {\n return this.toJS({ json: true, jsonArg, mapAsMap: false, onAnchor });\n }\n /** A YAML representation of the document. */\n toString(options = {}) {\n if (this.errors.length > 0)\n throw new Error('Document with errors cannot be stringified');\n if ('indent' in options &&\n (!Number.isInteger(options.indent) || Number(options.indent) <= 0)) {\n const s = JSON.stringify(options.indent);\n throw new Error(`\"indent\" option must be a positive integer, not ${s}`);\n }\n return stringifyDocument(this, options);\n }\n}\nfunction assertCollection(contents) {\n if (isCollection(contents))\n return true;\n throw new Error('Expected a YAML collection as document contents');\n}\n\nexport { Document };\n","class YAMLError extends Error {\n constructor(name, pos, code, message) {\n super();\n this.name = name;\n this.code = code;\n this.message = message;\n this.pos = pos;\n }\n}\nclass YAMLParseError extends YAMLError {\n constructor(pos, code, message) {\n super('YAMLParseError', pos, code, message);\n }\n}\nclass YAMLWarning extends YAMLError {\n constructor(pos, code, message) {\n super('YAMLWarning', pos, code, message);\n }\n}\nconst prettifyError = (src, lc) => (error) => {\n if (error.pos[0] === -1)\n return;\n error.linePos = error.pos.map(pos => lc.linePos(pos));\n const { line, col } = error.linePos[0];\n error.message += ` at line ${line}, column ${col}`;\n let ci = col - 1;\n let lineStr = src\n .substring(lc.lineStarts[line - 1], lc.lineStarts[line])\n .replace(/[\\n\\r]+$/, '');\n // Trim to max 80 chars, keeping col position near the middle\n if (ci >= 60 && lineStr.length > 80) {\n const trimStart = Math.min(ci - 39, lineStr.length - 79);\n lineStr = '…' + lineStr.substring(trimStart);\n ci -= trimStart - 1;\n }\n if (lineStr.length > 80)\n lineStr = lineStr.substring(0, 79) + '…';\n // Include previous line in context if pointing at line start\n if (line > 1 && /^ *$/.test(lineStr.substring(0, ci))) {\n // Regexp won't match if start is trimmed\n let prev = src.substring(lc.lineStarts[line - 2], lc.lineStarts[line - 1]);\n if (prev.length > 80)\n prev = prev.substring(0, 79) + '…\\n';\n lineStr = prev + lineStr;\n }\n if (/[^ ]/.test(lineStr)) {\n let count = 1;\n const end = error.linePos[1];\n if (end && end.line === line && end.col > col) {\n count = Math.max(1, Math.min(end.col - col, 80 - ci));\n }\n const pointer = ' '.repeat(ci) + '^'.repeat(count);\n error.message += `:\\n\\n${lineStr}\\n${pointer}\\n`;\n }\n};\n\nexport { YAMLError, YAMLParseError, YAMLWarning, prettifyError };\n","function resolveProps(tokens, { flow, indicator, next, offset, onError, parentIndent, startOnNewline }) {\n let spaceBefore = false;\n let atNewline = startOnNewline;\n let hasSpace = startOnNewline;\n let comment = '';\n let commentSep = '';\n let hasNewline = false;\n let reqSpace = false;\n let tab = null;\n let anchor = null;\n let tag = null;\n let newlineAfterProp = null;\n let comma = null;\n let found = null;\n let start = null;\n for (const token of tokens) {\n if (reqSpace) {\n if (token.type !== 'space' &&\n token.type !== 'newline' &&\n token.type !== 'comma')\n onError(token.offset, 'MISSING_CHAR', 'Tags and anchors must be separated from the next token by white space');\n reqSpace = false;\n }\n if (tab) {\n if (atNewline && token.type !== 'comment' && token.type !== 'newline') {\n onError(tab, 'TAB_AS_INDENT', 'Tabs are not allowed as indentation');\n }\n tab = null;\n }\n switch (token.type) {\n case 'space':\n // At the doc level, tabs at line start may be parsed\n // as leading white space rather than indentation.\n // In a flow collection, only the parser handles indent.\n if (!flow &&\n (indicator !== 'doc-start' || next?.type !== 'flow-collection') &&\n token.source.includes('\\t')) {\n tab = token;\n }\n hasSpace = true;\n break;\n case 'comment': {\n if (!hasSpace)\n onError(token, 'MISSING_CHAR', 'Comments must be separated from other tokens by white space characters');\n const cb = token.source.substring(1) || ' ';\n if (!comment)\n comment = cb;\n else\n comment += commentSep + cb;\n commentSep = '';\n atNewline = false;\n break;\n }\n case 'newline':\n if (atNewline) {\n if (comment)\n comment += token.source;\n else\n spaceBefore = true;\n }\n else\n commentSep += token.source;\n atNewline = true;\n hasNewline = true;\n if (anchor || tag)\n newlineAfterProp = token;\n hasSpace = true;\n break;\n case 'anchor':\n if (anchor)\n onError(token, 'MULTIPLE_ANCHORS', 'A node can have at most one anchor');\n if (token.source.endsWith(':'))\n onError(token.offset + token.source.length - 1, 'BAD_ALIAS', 'Anchor ending in : is ambiguous', true);\n anchor = token;\n if (start === null)\n start = token.offset;\n atNewline = false;\n hasSpace = false;\n reqSpace = true;\n break;\n case 'tag': {\n if (tag)\n onError(token, 'MULTIPLE_TAGS', 'A node can have at most one tag');\n tag = token;\n if (start === null)\n start = token.offset;\n atNewline = false;\n hasSpace = false;\n reqSpace = true;\n break;\n }\n case indicator:\n // Could here handle preceding comments differently\n if (anchor || tag)\n onError(token, 'BAD_PROP_ORDER', `Anchors and tags must be after the ${token.source} indicator`);\n if (found)\n onError(token, 'UNEXPECTED_TOKEN', `Unexpected ${token.source} in ${flow ?? 'collection'}`);\n found = token;\n atNewline =\n indicator === 'seq-item-ind' || indicator === 'explicit-key-ind';\n hasSpace = false;\n break;\n case 'comma':\n if (flow) {\n if (comma)\n onError(token, 'UNEXPECTED_TOKEN', `Unexpected , in ${flow}`);\n comma = token;\n atNewline = false;\n hasSpace = false;\n break;\n }\n // else fallthrough\n default:\n onError(token, 'UNEXPECTED_TOKEN', `Unexpected ${token.type} token`);\n atNewline = false;\n hasSpace = false;\n }\n }\n const last = tokens[tokens.length - 1];\n const end = last ? last.offset + last.source.length : offset;\n if (reqSpace &&\n next &&\n next.type !== 'space' &&\n next.type !== 'newline' &&\n next.type !== 'comma' &&\n (next.type !== 'scalar' || next.source !== '')) {\n onError(next.offset, 'MISSING_CHAR', 'Tags and anchors must be separated from the next token by white space');\n }\n if (tab &&\n ((atNewline && tab.indent <= parentIndent) ||\n next?.type === 'block-map' ||\n next?.type === 'block-seq'))\n onError(tab, 'TAB_AS_INDENT', 'Tabs are not allowed as indentation');\n return {\n comma,\n found,\n spaceBefore,\n comment,\n hasNewline,\n anchor,\n tag,\n newlineAfterProp,\n end,\n start: start ?? end\n };\n}\n\nexport { resolveProps };\n","function containsNewline(key) {\n if (!key)\n return null;\n switch (key.type) {\n case 'alias':\n case 'scalar':\n case 'double-quoted-scalar':\n case 'single-quoted-scalar':\n if (key.source.includes('\\n'))\n return true;\n if (key.end)\n for (const st of key.end)\n if (st.type === 'newline')\n return true;\n return false;\n case 'flow-collection':\n for (const it of key.items) {\n for (const st of it.start)\n if (st.type === 'newline')\n return true;\n if (it.sep)\n for (const st of it.sep)\n if (st.type === 'newline')\n return true;\n if (containsNewline(it.key) || containsNewline(it.value))\n return true;\n }\n return false;\n default:\n return true;\n }\n}\n\nexport { containsNewline };\n","import { containsNewline } from './util-contains-newline.js';\n\nfunction flowIndentCheck(indent, fc, onError) {\n if (fc?.type === 'flow-collection') {\n const end = fc.end[0];\n if (end.indent === indent &&\n (end.source === ']' || end.source === '}') &&\n containsNewline(fc)) {\n const msg = 'Flow end indicator should be more indented than parent';\n onError(end, 'BAD_INDENT', msg, true);\n }\n }\n}\n\nexport { flowIndentCheck };\n","import { isScalar } from '../nodes/identity.js';\n\nfunction mapIncludes(ctx, items, search) {\n const { uniqueKeys } = ctx.options;\n if (uniqueKeys === false)\n return false;\n const isEqual = typeof uniqueKeys === 'function'\n ? uniqueKeys\n : (a, b) => a === b ||\n (isScalar(a) &&\n isScalar(b) &&\n a.value === b.value &&\n !(a.value === '<<' && ctx.schema.merge));\n return items.some(pair => isEqual(pair.key, search));\n}\n\nexport { mapIncludes };\n","import { Pair } from '../nodes/Pair.js';\nimport { YAMLMap } from '../nodes/YAMLMap.js';\nimport { resolveProps } from './resolve-props.js';\nimport { containsNewline } from './util-contains-newline.js';\nimport { flowIndentCheck } from './util-flow-indent-check.js';\nimport { mapIncludes } from './util-map-includes.js';\n\nconst startColMsg = 'All mapping items must start at the same column';\nfunction resolveBlockMap({ composeNode, composeEmptyNode }, ctx, bm, onError, tag) {\n const NodeClass = tag?.nodeClass ?? YAMLMap;\n const map = new NodeClass(ctx.schema);\n if (ctx.atRoot)\n ctx.atRoot = false;\n let offset = bm.offset;\n let commentEnd = null;\n for (const collItem of bm.items) {\n const { start, key, sep, value } = collItem;\n // key properties\n const keyProps = resolveProps(start, {\n indicator: 'explicit-key-ind',\n next: key ?? sep?.[0],\n offset,\n onError,\n parentIndent: bm.indent,\n startOnNewline: true\n });\n const implicitKey = !keyProps.found;\n if (implicitKey) {\n if (key) {\n if (key.type === 'block-seq')\n onError(offset, 'BLOCK_AS_IMPLICIT_KEY', 'A block sequence may not be used as an implicit map key');\n else if ('indent' in key && key.indent !== bm.indent)\n onError(offset, 'BAD_INDENT', startColMsg);\n }\n if (!keyProps.anchor && !keyProps.tag && !sep) {\n commentEnd = keyProps.end;\n if (keyProps.comment) {\n if (map.comment)\n map.comment += '\\n' + keyProps.comment;\n else\n map.comment = keyProps.comment;\n }\n continue;\n }\n if (keyProps.newlineAfterProp || containsNewline(key)) {\n onError(key ?? start[start.length - 1], 'MULTILINE_IMPLICIT_KEY', 'Implicit keys need to be on a single line');\n }\n }\n else if (keyProps.found?.indent !== bm.indent) {\n onError(offset, 'BAD_INDENT', startColMsg);\n }\n // key value\n const keyStart = keyProps.end;\n const keyNode = key\n ? composeNode(ctx, key, keyProps, onError)\n : composeEmptyNode(ctx, keyStart, start, null, keyProps, onError);\n if (ctx.schema.compat)\n flowIndentCheck(bm.indent, key, onError);\n if (mapIncludes(ctx, map.items, keyNode))\n onError(keyStart, 'DUPLICATE_KEY', 'Map keys must be unique');\n // value properties\n const valueProps = resolveProps(sep ?? [], {\n indicator: 'map-value-ind',\n next: value,\n offset: keyNode.range[2],\n onError,\n parentIndent: bm.indent,\n startOnNewline: !key || key.type === 'block-scalar'\n });\n offset = valueProps.end;\n if (valueProps.found) {\n if (implicitKey) {\n if (value?.type === 'block-map' && !valueProps.hasNewline)\n onError(offset, 'BLOCK_AS_IMPLICIT_KEY', 'Nested mappings are not allowed in compact mappings');\n if (ctx.options.strict &&\n keyProps.start < valueProps.found.offset - 1024)\n onError(keyNode.range, 'KEY_OVER_1024_CHARS', 'The : indicator must be at most 1024 chars after the start of an implicit block mapping key');\n }\n // value value\n const valueNode = value\n ? composeNode(ctx, value, valueProps, onError)\n : composeEmptyNode(ctx, offset, sep, null, valueProps, onError);\n if (ctx.schema.compat)\n flowIndentCheck(bm.indent, value, onError);\n offset = valueNode.range[2];\n const pair = new Pair(keyNode, valueNode);\n if (ctx.options.keepSourceTokens)\n pair.srcToken = collItem;\n map.items.push(pair);\n }\n else {\n // key with no value\n if (implicitKey)\n onError(keyNode.range, 'MISSING_CHAR', 'Implicit map keys need to be followed by map values');\n if (valueProps.comment) {\n if (keyNode.comment)\n keyNode.comment += '\\n' + valueProps.comment;\n else\n keyNode.comment = valueProps.comment;\n }\n const pair = new Pair(keyNode);\n if (ctx.options.keepSourceTokens)\n pair.srcToken = collItem;\n map.items.push(pair);\n }\n }\n if (commentEnd && commentEnd < offset)\n onError(commentEnd, 'IMPOSSIBLE', 'Map comment with trailing content');\n map.range = [bm.offset, offset, commentEnd ?? offset];\n return map;\n}\n\nexport { resolveBlockMap };\n","import { YAMLSeq } from '../nodes/YAMLSeq.js';\nimport { resolveProps } from './resolve-props.js';\nimport { flowIndentCheck } from './util-flow-indent-check.js';\n\nfunction resolveBlockSeq({ composeNode, composeEmptyNode }, ctx, bs, onError, tag) {\n const NodeClass = tag?.nodeClass ?? YAMLSeq;\n const seq = new NodeClass(ctx.schema);\n if (ctx.atRoot)\n ctx.atRoot = false;\n let offset = bs.offset;\n let commentEnd = null;\n for (const { start, value } of bs.items) {\n const props = resolveProps(start, {\n indicator: 'seq-item-ind',\n next: value,\n offset,\n onError,\n parentIndent: bs.indent,\n startOnNewline: true\n });\n if (!props.found) {\n if (props.anchor || props.tag || value) {\n if (value && value.type === 'block-seq')\n onError(props.end, 'BAD_INDENT', 'All sequence items must start at the same column');\n else\n onError(offset, 'MISSING_CHAR', 'Sequence item without - indicator');\n }\n else {\n commentEnd = props.end;\n if (props.comment)\n seq.comment = props.comment;\n continue;\n }\n }\n const node = value\n ? composeNode(ctx, value, props, onError)\n : composeEmptyNode(ctx, props.end, start, null, props, onError);\n if (ctx.schema.compat)\n flowIndentCheck(bs.indent, value, onError);\n offset = node.range[2];\n seq.items.push(node);\n }\n seq.range = [bs.offset, offset, commentEnd ?? offset];\n return seq;\n}\n\nexport { resolveBlockSeq };\n","function resolveEnd(end, offset, reqSpace, onError) {\n let comment = '';\n if (end) {\n let hasSpace = false;\n let sep = '';\n for (const token of end) {\n const { source, type } = token;\n switch (type) {\n case 'space':\n hasSpace = true;\n break;\n case 'comment': {\n if (reqSpace && !hasSpace)\n onError(token, 'MISSING_CHAR', 'Comments must be separated from other tokens by white space characters');\n const cb = source.substring(1) || ' ';\n if (!comment)\n comment = cb;\n else\n comment += sep + cb;\n sep = '';\n break;\n }\n case 'newline':\n if (comment)\n sep += source;\n hasSpace = true;\n break;\n default:\n onError(token, 'UNEXPECTED_TOKEN', `Unexpected ${type} at node end`);\n }\n offset += source.length;\n }\n }\n return { comment, offset };\n}\n\nexport { resolveEnd };\n","import { isPair } from '../nodes/identity.js';\nimport { Pair } from '../nodes/Pair.js';\nimport { YAMLMap } from '../nodes/YAMLMap.js';\nimport { YAMLSeq } from '../nodes/YAMLSeq.js';\nimport { resolveEnd } from './resolve-end.js';\nimport { resolveProps } from './resolve-props.js';\nimport { containsNewline } from './util-contains-newline.js';\nimport { mapIncludes } from './util-map-includes.js';\n\nconst blockMsg = 'Block collections are not allowed within flow collections';\nconst isBlock = (token) => token && (token.type === 'block-map' || token.type === 'block-seq');\nfunction resolveFlowCollection({ composeNode, composeEmptyNode }, ctx, fc, onError, tag) {\n const isMap = fc.start.source === '{';\n const fcName = isMap ? 'flow map' : 'flow sequence';\n const NodeClass = (tag?.nodeClass ?? (isMap ? YAMLMap : YAMLSeq));\n const coll = new NodeClass(ctx.schema);\n coll.flow = true;\n const atRoot = ctx.atRoot;\n if (atRoot)\n ctx.atRoot = false;\n let offset = fc.offset + fc.start.source.length;\n for (let i = 0; i < fc.items.length; ++i) {\n const collItem = fc.items[i];\n const { start, key, sep, value } = collItem;\n const props = resolveProps(start, {\n flow: fcName,\n indicator: 'explicit-key-ind',\n next: key ?? sep?.[0],\n offset,\n onError,\n parentIndent: fc.indent,\n startOnNewline: false\n });\n if (!props.found) {\n if (!props.anchor && !props.tag && !sep && !value) {\n if (i === 0 && props.comma)\n onError(props.comma, 'UNEXPECTED_TOKEN', `Unexpected , in ${fcName}`);\n else if (i < fc.items.length - 1)\n onError(props.start, 'UNEXPECTED_TOKEN', `Unexpected empty item in ${fcName}`);\n if (props.comment) {\n if (coll.comment)\n coll.comment += '\\n' + props.comment;\n else\n coll.comment = props.comment;\n }\n offset = props.end;\n continue;\n }\n if (!isMap && ctx.options.strict && containsNewline(key))\n onError(key, // checked by containsNewline()\n 'MULTILINE_IMPLICIT_KEY', 'Implicit keys of flow sequence pairs need to be on a single line');\n }\n if (i === 0) {\n if (props.comma)\n onError(props.comma, 'UNEXPECTED_TOKEN', `Unexpected , in ${fcName}`);\n }\n else {\n if (!props.comma)\n onError(props.start, 'MISSING_CHAR', `Missing , between ${fcName} items`);\n if (props.comment) {\n let prevItemComment = '';\n loop: for (const st of start) {\n switch (st.type) {\n case 'comma':\n case 'space':\n break;\n case 'comment':\n prevItemComment = st.source.substring(1);\n break loop;\n default:\n break loop;\n }\n }\n if (prevItemComment) {\n let prev = coll.items[coll.items.length - 1];\n if (isPair(prev))\n prev = prev.value ?? prev.key;\n if (prev.comment)\n prev.comment += '\\n' + prevItemComment;\n else\n prev.comment = prevItemComment;\n props.comment = props.comment.substring(prevItemComment.length + 1);\n }\n }\n }\n if (!isMap && !sep && !props.found) {\n // item is a value in a seq\n // → key & sep are empty, start does not include ? or :\n const valueNode = value\n ? composeNode(ctx, value, props, onError)\n : composeEmptyNode(ctx, props.end, sep, null, props, onError);\n coll.items.push(valueNode);\n offset = valueNode.range[2];\n if (isBlock(value))\n onError(valueNode.range, 'BLOCK_IN_FLOW', blockMsg);\n }\n else {\n // item is a key+value pair\n // key value\n const keyStart = props.end;\n const keyNode = key\n ? composeNode(ctx, key, props, onError)\n : composeEmptyNode(ctx, keyStart, start, null, props, onError);\n if (isBlock(key))\n onError(keyNode.range, 'BLOCK_IN_FLOW', blockMsg);\n // value properties\n const valueProps = resolveProps(sep ?? [], {\n flow: fcName,\n indicator: 'map-value-ind',\n next: value,\n offset: keyNode.range[2],\n onError,\n parentIndent: fc.indent,\n startOnNewline: false\n });\n if (valueProps.found) {\n if (!isMap && !props.found && ctx.options.strict) {\n if (sep)\n for (const st of sep) {\n if (st === valueProps.found)\n break;\n if (st.type === 'newline') {\n onError(st, 'MULTILINE_IMPLICIT_KEY', 'Implicit keys of flow sequence pairs need to be on a single line');\n break;\n }\n }\n if (props.start < valueProps.found.offset - 1024)\n onError(valueProps.found, 'KEY_OVER_1024_CHARS', 'The : indicator must be at most 1024 chars after the start of an implicit flow sequence key');\n }\n }\n else if (value) {\n if ('source' in value && value.source && value.source[0] === ':')\n onError(value, 'MISSING_CHAR', `Missing space after : in ${fcName}`);\n else\n onError(valueProps.start, 'MISSING_CHAR', `Missing , or : between ${fcName} items`);\n }\n // value value\n const valueNode = value\n ? composeNode(ctx, value, valueProps, onError)\n : valueProps.found\n ? composeEmptyNode(ctx, valueProps.end, sep, null, valueProps, onError)\n : null;\n if (valueNode) {\n if (isBlock(value))\n onError(valueNode.range, 'BLOCK_IN_FLOW', blockMsg);\n }\n else if (valueProps.comment) {\n if (keyNode.comment)\n keyNode.comment += '\\n' + valueProps.comment;\n else\n keyNode.comment = valueProps.comment;\n }\n const pair = new Pair(keyNode, valueNode);\n if (ctx.options.keepSourceTokens)\n pair.srcToken = collItem;\n if (isMap) {\n const map = coll;\n if (mapIncludes(ctx, map.items, keyNode))\n onError(keyStart, 'DUPLICATE_KEY', 'Map keys must be unique');\n map.items.push(pair);\n }\n else {\n const map = new YAMLMap(ctx.schema);\n map.flow = true;\n map.items.push(pair);\n coll.items.push(map);\n }\n offset = valueNode ? valueNode.range[2] : valueProps.end;\n }\n }\n const expectedEnd = isMap ? '}' : ']';\n const [ce, ...ee] = fc.end;\n let cePos = offset;\n if (ce && ce.source === expectedEnd)\n cePos = ce.offset + ce.source.length;\n else {\n const name = fcName[0].toUpperCase() + fcName.substring(1);\n const msg = atRoot\n ? `${name} must end with a ${expectedEnd}`\n : `${name} in block collection must be sufficiently indented and end with a ${expectedEnd}`;\n onError(offset, atRoot ? 'MISSING_CHAR' : 'BAD_INDENT', msg);\n if (ce && ce.source.length !== 1)\n ee.unshift(ce);\n }\n if (ee.length > 0) {\n const end = resolveEnd(ee, cePos, ctx.options.strict, onError);\n if (end.comment) {\n if (coll.comment)\n coll.comment += '\\n' + end.comment;\n else\n coll.comment = end.comment;\n }\n coll.range = [fc.offset, cePos, end.offset];\n }\n else {\n coll.range = [fc.offset, cePos, cePos];\n }\n return coll;\n}\n\nexport { resolveFlowCollection };\n","import { isNode } from '../nodes/identity.js';\nimport { Scalar } from '../nodes/Scalar.js';\nimport { YAMLMap } from '../nodes/YAMLMap.js';\nimport { YAMLSeq } from '../nodes/YAMLSeq.js';\nimport { resolveBlockMap } from './resolve-block-map.js';\nimport { resolveBlockSeq } from './resolve-block-seq.js';\nimport { resolveFlowCollection } from './resolve-flow-collection.js';\n\nfunction resolveCollection(CN, ctx, token, onError, tagName, tag) {\n const coll = token.type === 'block-map'\n ? resolveBlockMap(CN, ctx, token, onError, tag)\n : token.type === 'block-seq'\n ? resolveBlockSeq(CN, ctx, token, onError, tag)\n : resolveFlowCollection(CN, ctx, token, onError, tag);\n const Coll = coll.constructor;\n // If we got a tagName matching the class, or the tag name is '!',\n // then use the tagName from the node class used to create it.\n if (tagName === '!' || tagName === Coll.tagName) {\n coll.tag = Coll.tagName;\n return coll;\n }\n if (tagName)\n coll.tag = tagName;\n return coll;\n}\nfunction composeCollection(CN, ctx, token, props, onError) {\n const tagToken = props.tag;\n const tagName = !tagToken\n ? null\n : ctx.directives.tagName(tagToken.source, msg => onError(tagToken, 'TAG_RESOLVE_FAILED', msg));\n if (token.type === 'block-seq') {\n const { anchor, newlineAfterProp: nl } = props;\n const lastProp = anchor && tagToken\n ? anchor.offset > tagToken.offset\n ? anchor\n : tagToken\n : (anchor ?? tagToken);\n if (lastProp && (!nl || nl.offset < lastProp.offset)) {\n const message = 'Missing newline after block sequence props';\n onError(lastProp, 'MISSING_CHAR', message);\n }\n }\n const expType = token.type === 'block-map'\n ? 'map'\n : token.type === 'block-seq'\n ? 'seq'\n : token.start.source === '{'\n ? 'map'\n : 'seq';\n // shortcut: check if it's a generic YAMLMap or YAMLSeq\n // before jumping into the custom tag logic.\n if (!tagToken ||\n !tagName ||\n tagName === '!' ||\n (tagName === YAMLMap.tagName && expType === 'map') ||\n (tagName === YAMLSeq.tagName && expType === 'seq')) {\n return resolveCollection(CN, ctx, token, onError, tagName);\n }\n let tag = ctx.schema.tags.find(t => t.tag === tagName && t.collection === expType);\n if (!tag) {\n const kt = ctx.schema.knownTags[tagName];\n if (kt && kt.collection === expType) {\n ctx.schema.tags.push(Object.assign({}, kt, { default: false }));\n tag = kt;\n }\n else {\n if (kt?.collection) {\n onError(tagToken, 'BAD_COLLECTION_TYPE', `${kt.tag} used for ${expType} collection, but expects ${kt.collection}`, true);\n }\n else {\n onError(tagToken, 'TAG_RESOLVE_FAILED', `Unresolved tag: ${tagName}`, true);\n }\n return resolveCollection(CN, ctx, token, onError, tagName);\n }\n }\n const coll = resolveCollection(CN, ctx, token, onError, tagName, tag);\n const res = tag.resolve?.(coll, msg => onError(tagToken, 'TAG_RESOLVE_FAILED', msg), ctx.options) ?? coll;\n const node = isNode(res)\n ? res\n : new Scalar(res);\n node.range = coll.range;\n node.tag = tagName;\n if (tag?.format)\n node.format = tag.format;\n return node;\n}\n\nexport { composeCollection };\n","import { Scalar } from '../nodes/Scalar.js';\n\nfunction resolveBlockScalar(ctx, scalar, onError) {\n const start = scalar.offset;\n const header = parseBlockScalarHeader(scalar, ctx.options.strict, onError);\n if (!header)\n return { value: '', type: null, comment: '', range: [start, start, start] };\n const type = header.mode === '>' ? Scalar.BLOCK_FOLDED : Scalar.BLOCK_LITERAL;\n const lines = scalar.source ? splitLines(scalar.source) : [];\n // determine the end of content & start of chomping\n let chompStart = lines.length;\n for (let i = lines.length - 1; i >= 0; --i) {\n const content = lines[i][1];\n if (content === '' || content === '\\r')\n chompStart = i;\n else\n break;\n }\n // shortcut for empty contents\n if (chompStart === 0) {\n const value = header.chomp === '+' && lines.length > 0\n ? '\\n'.repeat(Math.max(1, lines.length - 1))\n : '';\n let end = start + header.length;\n if (scalar.source)\n end += scalar.source.length;\n return { value, type, comment: header.comment, range: [start, end, end] };\n }\n // find the indentation level to trim from start\n let trimIndent = scalar.indent + header.indent;\n let offset = scalar.offset + header.length;\n let contentStart = 0;\n for (let i = 0; i < chompStart; ++i) {\n const [indent, content] = lines[i];\n if (content === '' || content === '\\r') {\n if (header.indent === 0 && indent.length > trimIndent)\n trimIndent = indent.length;\n }\n else {\n if (indent.length < trimIndent) {\n const message = 'Block scalars with more-indented leading empty lines must use an explicit indentation indicator';\n onError(offset + indent.length, 'MISSING_CHAR', message);\n }\n if (header.indent === 0)\n trimIndent = indent.length;\n contentStart = i;\n if (trimIndent === 0 && !ctx.atRoot) {\n const message = 'Block scalar values in collections must be indented';\n onError(offset, 'BAD_INDENT', message);\n }\n break;\n }\n offset += indent.length + content.length + 1;\n }\n // include trailing more-indented empty lines in content\n for (let i = lines.length - 1; i >= chompStart; --i) {\n if (lines[i][0].length > trimIndent)\n chompStart = i + 1;\n }\n let value = '';\n let sep = '';\n let prevMoreIndented = false;\n // leading whitespace is kept intact\n for (let i = 0; i < contentStart; ++i)\n value += lines[i][0].slice(trimIndent) + '\\n';\n for (let i = contentStart; i < chompStart; ++i) {\n let [indent, content] = lines[i];\n offset += indent.length + content.length + 1;\n const crlf = content[content.length - 1] === '\\r';\n if (crlf)\n content = content.slice(0, -1);\n /* istanbul ignore if already caught in lexer */\n if (content && indent.length < trimIndent) {\n const src = header.indent\n ? 'explicit indentation indicator'\n : 'first line';\n const message = `Block scalar lines must not be less indented than their ${src}`;\n onError(offset - content.length - (crlf ? 2 : 1), 'BAD_INDENT', message);\n indent = '';\n }\n if (type === Scalar.BLOCK_LITERAL) {\n value += sep + indent.slice(trimIndent) + content;\n sep = '\\n';\n }\n else if (indent.length > trimIndent || content[0] === '\\t') {\n // more-indented content within a folded block\n if (sep === ' ')\n sep = '\\n';\n else if (!prevMoreIndented && sep === '\\n')\n sep = '\\n\\n';\n value += sep + indent.slice(trimIndent) + content;\n sep = '\\n';\n prevMoreIndented = true;\n }\n else if (content === '') {\n // empty line\n if (sep === '\\n')\n value += '\\n';\n else\n sep = '\\n';\n }\n else {\n value += sep + content;\n sep = ' ';\n prevMoreIndented = false;\n }\n }\n switch (header.chomp) {\n case '-':\n break;\n case '+':\n for (let i = chompStart; i < lines.length; ++i)\n value += '\\n' + lines[i][0].slice(trimIndent);\n if (value[value.length - 1] !== '\\n')\n value += '\\n';\n break;\n default:\n value += '\\n';\n }\n const end = start + header.length + scalar.source.length;\n return { value, type, comment: header.comment, range: [start, end, end] };\n}\nfunction parseBlockScalarHeader({ offset, props }, strict, onError) {\n /* istanbul ignore if should not happen */\n if (props[0].type !== 'block-scalar-header') {\n onError(props[0], 'IMPOSSIBLE', 'Block scalar header not found');\n return null;\n }\n const { source } = props[0];\n const mode = source[0];\n let indent = 0;\n let chomp = '';\n let error = -1;\n for (let i = 1; i < source.length; ++i) {\n const ch = source[i];\n if (!chomp && (ch === '-' || ch === '+'))\n chomp = ch;\n else {\n const n = Number(ch);\n if (!indent && n)\n indent = n;\n else if (error === -1)\n error = offset + i;\n }\n }\n if (error !== -1)\n onError(error, 'UNEXPECTED_TOKEN', `Block scalar header includes extra characters: ${source}`);\n let hasSpace = false;\n let comment = '';\n let length = source.length;\n for (let i = 1; i < props.length; ++i) {\n const token = props[i];\n switch (token.type) {\n case 'space':\n hasSpace = true;\n // fallthrough\n case 'newline':\n length += token.source.length;\n break;\n case 'comment':\n if (strict && !hasSpace) {\n const message = 'Comments must be separated from other tokens by white space characters';\n onError(token, 'MISSING_CHAR', message);\n }\n length += token.source.length;\n comment = token.source.substring(1);\n break;\n case 'error':\n onError(token, 'UNEXPECTED_TOKEN', token.message);\n length += token.source.length;\n break;\n /* istanbul ignore next should not happen */\n default: {\n const message = `Unexpected token in block scalar header: ${token.type}`;\n onError(token, 'UNEXPECTED_TOKEN', message);\n const ts = token.source;\n if (ts && typeof ts === 'string')\n length += ts.length;\n }\n }\n }\n return { mode, indent, chomp, comment, length };\n}\n/** @returns Array of lines split up as `[indent, content]` */\nfunction splitLines(source) {\n const split = source.split(/\\n( *)/);\n const first = split[0];\n const m = first.match(/^( *)/);\n const line0 = m?.[1]\n ? [m[1], first.slice(m[1].length)]\n : ['', first];\n const lines = [line0];\n for (let i = 1; i < split.length; i += 2)\n lines.push([split[i], split[i + 1]]);\n return lines;\n}\n\nexport { resolveBlockScalar };\n","import { Scalar } from '../nodes/Scalar.js';\nimport { resolveEnd } from './resolve-end.js';\n\nfunction resolveFlowScalar(scalar, strict, onError) {\n const { offset, type, source, end } = scalar;\n let _type;\n let value;\n const _onError = (rel, code, msg) => onError(offset + rel, code, msg);\n switch (type) {\n case 'scalar':\n _type = Scalar.PLAIN;\n value = plainValue(source, _onError);\n break;\n case 'single-quoted-scalar':\n _type = Scalar.QUOTE_SINGLE;\n value = singleQuotedValue(source, _onError);\n break;\n case 'double-quoted-scalar':\n _type = Scalar.QUOTE_DOUBLE;\n value = doubleQuotedValue(source, _onError);\n break;\n /* istanbul ignore next should not happen */\n default:\n onError(scalar, 'UNEXPECTED_TOKEN', `Expected a flow scalar value, but found: ${type}`);\n return {\n value: '',\n type: null,\n comment: '',\n range: [offset, offset + source.length, offset + source.length]\n };\n }\n const valueEnd = offset + source.length;\n const re = resolveEnd(end, valueEnd, strict, onError);\n return {\n value,\n type: _type,\n comment: re.comment,\n range: [offset, valueEnd, re.offset]\n };\n}\nfunction plainValue(source, onError) {\n let badChar = '';\n switch (source[0]) {\n /* istanbul ignore next should not happen */\n case '\\t':\n badChar = 'a tab character';\n break;\n case ',':\n badChar = 'flow indicator character ,';\n break;\n case '%':\n badChar = 'directive indicator character %';\n break;\n case '|':\n case '>': {\n badChar = `block scalar indicator ${source[0]}`;\n break;\n }\n case '@':\n case '`': {\n badChar = `reserved character ${source[0]}`;\n break;\n }\n }\n if (badChar)\n onError(0, 'BAD_SCALAR_START', `Plain value cannot start with ${badChar}`);\n return foldLines(source);\n}\nfunction singleQuotedValue(source, onError) {\n if (source[source.length - 1] !== \"'\" || source.length === 1)\n onError(source.length, 'MISSING_CHAR', \"Missing closing 'quote\");\n return foldLines(source.slice(1, -1)).replace(/''/g, \"'\");\n}\nfunction foldLines(source) {\n /**\n * The negative lookbehind here and in the `re` RegExp is to\n * prevent causing a polynomial search time in certain cases.\n *\n * The try-catch is for Safari, which doesn't support this yet:\n * https://caniuse.com/js-regexp-lookbehind\n */\n let first, line;\n try {\n first = new RegExp('(.*?)(?<![ \\t])[ \\t]*\\r?\\n', 'sy');\n line = new RegExp('[ \\t]*(.*?)(?:(?<![ \\t])[ \\t]*)?\\r?\\n', 'sy');\n }\n catch (_) {\n first = /(.*?)[ \\t]*\\r?\\n/sy;\n line = /[ \\t]*(.*?)[ \\t]*\\r?\\n/sy;\n }\n let match = first.exec(source);\n if (!match)\n return source;\n let res = match[1];\n let sep = ' ';\n let pos = first.lastIndex;\n line.lastIndex = pos;\n while ((match = line.exec(source))) {\n if (match[1] === '') {\n if (sep === '\\n')\n res += sep;\n else\n sep = '\\n';\n }\n else {\n res += sep + match[1];\n sep = ' ';\n }\n pos = line.lastIndex;\n }\n const last = /[ \\t]*(.*)/sy;\n last.lastIndex = pos;\n match = last.exec(source);\n return res + sep + (match?.[1] ?? '');\n}\nfunction doubleQuotedValue(source, onError) {\n let res = '';\n for (let i = 1; i < source.length - 1; ++i) {\n const ch = source[i];\n if (ch === '\\r' && source[i + 1] === '\\n')\n continue;\n if (ch === '\\n') {\n const { fold, offset } = foldNewline(source, i);\n res += fold;\n i = offset;\n }\n else if (ch === '\\\\') {\n let next = source[++i];\n const cc = escapeCodes[next];\n if (cc)\n res += cc;\n else if (next === '\\n') {\n // skip escaped newlines, but still trim the following line\n next = source[i + 1];\n while (next === ' ' || next === '\\t')\n next = source[++i + 1];\n }\n else if (next === '\\r' && source[i + 1] === '\\n') {\n // skip escaped CRLF newlines, but still trim the following line\n next = source[++i + 1];\n while (next === ' ' || next === '\\t')\n next = source[++i + 1];\n }\n else if (next === 'x' || next === 'u' || next === 'U') {\n const length = { x: 2, u: 4, U: 8 }[next];\n res += parseCharCode(source, i + 1, length, onError);\n i += length;\n }\n else {\n const raw = source.substr(i - 1, 2);\n onError(i - 1, 'BAD_DQ_ESCAPE', `Invalid escape sequence ${raw}`);\n res += raw;\n }\n }\n else if (ch === ' ' || ch === '\\t') {\n // trim trailing whitespace\n const wsStart = i;\n let next = source[i + 1];\n while (next === ' ' || next === '\\t')\n next = source[++i + 1];\n if (next !== '\\n' && !(next === '\\r' && source[i + 2] === '\\n'))\n res += i > wsStart ? source.slice(wsStart, i + 1) : ch;\n }\n else {\n res += ch;\n }\n }\n if (source[source.length - 1] !== '\"' || source.length === 1)\n onError(source.length, 'MISSING_CHAR', 'Missing closing \"quote');\n return res;\n}\n/**\n * Fold a single newline into a space, multiple newlines to N - 1 newlines.\n * Presumes `source[offset] === '\\n'`\n */\nfunction foldNewline(source, offset) {\n let fold = '';\n let ch = source[offset + 1];\n while (ch === ' ' || ch === '\\t' || ch === '\\n' || ch === '\\r') {\n if (ch === '\\r' && source[offset + 2] !== '\\n')\n break;\n if (ch === '\\n')\n fold += '\\n';\n offset += 1;\n ch = source[offset + 1];\n }\n if (!fold)\n fold = ' ';\n return { fold, offset };\n}\nconst escapeCodes = {\n '0': '\\0', // null character\n a: '\\x07', // bell character\n b: '\\b', // backspace\n e: '\\x1b', // escape character\n f: '\\f', // form feed\n n: '\\n', // line feed\n r: '\\r', // carriage return\n t: '\\t', // horizontal tab\n v: '\\v', // vertical tab\n N: '\\u0085', // Unicode next line\n _: '\\u00a0', // Unicode non-breaking space\n L: '\\u2028', // Unicode line separator\n P: '\\u2029', // Unicode paragraph separator\n ' ': ' ',\n '\"': '\"',\n '/': '/',\n '\\\\': '\\\\',\n '\\t': '\\t'\n};\nfunction parseCharCode(source, offset, length, onError) {\n const cc = source.substr(offset, length);\n const ok = cc.length === length && /^[0-9a-fA-F]+$/.test(cc);\n const code = ok ? parseInt(cc, 16) : NaN;\n if (isNaN(code)) {\n const raw = source.substr(offset - 2, length + 2);\n onError(offset - 2, 'BAD_DQ_ESCAPE', `Invalid escape sequence ${raw}`);\n return raw;\n }\n return String.fromCodePoint(code);\n}\n\nexport { resolveFlowScalar };\n","import { SCALAR, isScalar } from '../nodes/identity.js';\nimport { Scalar } from '../nodes/Scalar.js';\nimport { resolveBlockScalar } from './resolve-block-scalar.js';\nimport { resolveFlowScalar } from './resolve-flow-scalar.js';\n\nfunction composeScalar(ctx, token, tagToken, onError) {\n const { value, type, comment, range } = token.type === 'block-scalar'\n ? resolveBlockScalar(ctx, token, onError)\n : resolveFlowScalar(token, ctx.options.strict, onError);\n const tagName = tagToken\n ? ctx.directives.tagName(tagToken.source, msg => onError(tagToken, 'TAG_RESOLVE_FAILED', msg))\n : null;\n const tag = tagToken && tagName\n ? findScalarTagByName(ctx.schema, value, tagName, tagToken, onError)\n : token.type === 'scalar'\n ? findScalarTagByTest(ctx, value, token, onError)\n : ctx.schema[SCALAR];\n let scalar;\n try {\n const res = tag.resolve(value, msg => onError(tagToken ?? token, 'TAG_RESOLVE_FAILED', msg), ctx.options);\n scalar = isScalar(res) ? res : new Scalar(res);\n }\n catch (error) {\n const msg = error instanceof Error ? error.message : String(error);\n onError(tagToken ?? token, 'TAG_RESOLVE_FAILED', msg);\n scalar = new Scalar(value);\n }\n scalar.range = range;\n scalar.source = value;\n if (type)\n scalar.type = type;\n if (tagName)\n scalar.tag = tagName;\n if (tag.format)\n scalar.format = tag.format;\n if (comment)\n scalar.comment = comment;\n return scalar;\n}\nfunction findScalarTagByName(schema, value, tagName, tagToken, onError) {\n if (tagName === '!')\n return schema[SCALAR]; // non-specific tag\n const matchWithTest = [];\n for (const tag of schema.tags) {\n if (!tag.collection && tag.tag === tagName) {\n if (tag.default && tag.test)\n matchWithTest.push(tag);\n else\n return tag;\n }\n }\n for (const tag of matchWithTest)\n if (tag.test?.test(value))\n return tag;\n const kt = schema.knownTags[tagName];\n if (kt && !kt.collection) {\n // Ensure that the known tag is available for stringifying,\n // but does not get used by default.\n schema.tags.push(Object.assign({}, kt, { default: false, test: undefined }));\n return kt;\n }\n onError(tagToken, 'TAG_RESOLVE_FAILED', `Unresolved tag: ${tagName}`, tagName !== 'tag:yaml.org,2002:str');\n return schema[SCALAR];\n}\nfunction findScalarTagByTest({ directives, schema }, value, token, onError) {\n const tag = schema.tags.find(tag => tag.default && tag.test?.test(value)) || schema[SCALAR];\n if (schema.compat) {\n const compat = schema.compat.find(tag => tag.default && tag.test?.test(value)) ??\n schema[SCALAR];\n if (tag.tag !== compat.tag) {\n const ts = directives.tagString(tag.tag);\n const cs = directives.tagString(compat.tag);\n const msg = `Value may be parsed as either ${ts} or ${cs}`;\n onError(token, 'TAG_RESOLVE_FAILED', msg, true);\n }\n }\n return tag;\n}\n\nexport { composeScalar };\n","function emptyScalarPosition(offset, before, pos) {\n if (before) {\n if (pos === null)\n pos = before.length;\n for (let i = pos - 1; i >= 0; --i) {\n let st = before[i];\n switch (st.type) {\n case 'space':\n case 'comment':\n case 'newline':\n offset -= st.source.length;\n continue;\n }\n // Technically, an empty scalar is immediately after the last non-empty\n // node, but it's more useful to place it after any whitespace.\n st = before[++i];\n while (st?.type === 'space') {\n offset += st.source.length;\n st = before[++i];\n }\n break;\n }\n }\n return offset;\n}\n\nexport { emptyScalarPosition };\n","import { Alias } from '../nodes/Alias.js';\nimport { composeCollection } from './compose-collection.js';\nimport { composeScalar } from './compose-scalar.js';\nimport { resolveEnd } from './resolve-end.js';\nimport { emptyScalarPosition } from './util-empty-scalar-position.js';\n\nconst CN = { composeNode, composeEmptyNode };\nfunction composeNode(ctx, token, props, onError) {\n const { spaceBefore, comment, anchor, tag } = props;\n let node;\n let isSrcToken = true;\n switch (token.type) {\n case 'alias':\n node = composeAlias(ctx, token, onError);\n if (anchor || tag)\n onError(token, 'ALIAS_PROPS', 'An alias node must not specify any properties');\n break;\n case 'scalar':\n case 'single-quoted-scalar':\n case 'double-quoted-scalar':\n case 'block-scalar':\n node = composeScalar(ctx, token, tag, onError);\n if (anchor)\n node.anchor = anchor.source.substring(1);\n break;\n case 'block-map':\n case 'block-seq':\n case 'flow-collection':\n node = composeCollection(CN, ctx, token, props, onError);\n if (anchor)\n node.anchor = anchor.source.substring(1);\n break;\n default: {\n const message = token.type === 'error'\n ? token.message\n : `Unsupported token (type: ${token.type})`;\n onError(token, 'UNEXPECTED_TOKEN', message);\n node = composeEmptyNode(ctx, token.offset, undefined, null, props, onError);\n isSrcToken = false;\n }\n }\n if (anchor && node.anchor === '')\n onError(anchor, 'BAD_ALIAS', 'Anchor cannot be an empty string');\n if (spaceBefore)\n node.spaceBefore = true;\n if (comment) {\n if (token.type === 'scalar' && token.source === '')\n node.comment = comment;\n else\n node.commentBefore = comment;\n }\n // @ts-expect-error Type checking misses meaning of isSrcToken\n if (ctx.options.keepSourceTokens && isSrcToken)\n node.srcToken = token;\n return node;\n}\nfunction composeEmptyNode(ctx, offset, before, pos, { spaceBefore, comment, anchor, tag, end }, onError) {\n const token = {\n type: 'scalar',\n offset: emptyScalarPosition(offset, before, pos),\n indent: -1,\n source: ''\n };\n const node = composeScalar(ctx, token, tag, onError);\n if (anchor) {\n node.anchor = anchor.source.substring(1);\n if (node.anchor === '')\n onError(anchor, 'BAD_ALIAS', 'Anchor cannot be an empty string');\n }\n if (spaceBefore)\n node.spaceBefore = true;\n if (comment) {\n node.comment = comment;\n node.range[2] = end;\n }\n return node;\n}\nfunction composeAlias({ options }, { offset, source, end }, onError) {\n const alias = new Alias(source.substring(1));\n if (alias.source === '')\n onError(offset, 'BAD_ALIAS', 'Alias cannot be an empty string');\n if (alias.source.endsWith(':'))\n onError(offset + source.length - 1, 'BAD_ALIAS', 'Alias ending in : is ambiguous', true);\n const valueEnd = offset + source.length;\n const re = resolveEnd(end, valueEnd, options.strict, onError);\n alias.range = [offset, valueEnd, re.offset];\n if (re.comment)\n alias.comment = re.comment;\n return alias;\n}\n\nexport { composeEmptyNode, composeNode };\n","import { Document } from '../doc/Document.js';\nimport { composeNode, composeEmptyNode } from './compose-node.js';\nimport { resolveEnd } from './resolve-end.js';\nimport { resolveProps } from './resolve-props.js';\n\nfunction composeDoc(options, directives, { offset, start, value, end }, onError) {\n const opts = Object.assign({ _directives: directives }, options);\n const doc = new Document(undefined, opts);\n const ctx = {\n atRoot: true,\n directives: doc.directives,\n options: doc.options,\n schema: doc.schema\n };\n const props = resolveProps(start, {\n indicator: 'doc-start',\n next: value ?? end?.[0],\n offset,\n onError,\n parentIndent: 0,\n startOnNewline: true\n });\n if (props.found) {\n doc.directives.docStart = true;\n if (value &&\n (value.type === 'block-map' || value.type === 'block-seq') &&\n !props.hasNewline)\n onError(props.end, 'MISSING_CHAR', 'Block collection cannot start on same line with directives-end marker');\n }\n // @ts-expect-error If Contents is set, let's trust the user\n doc.contents = value\n ? composeNode(ctx, value, props, onError)\n : composeEmptyNode(ctx, props.end, start, null, props, onError);\n const contentEnd = doc.contents.range[2];\n const re = resolveEnd(end, contentEnd, false, onError);\n if (re.comment)\n doc.comment = re.comment;\n doc.range = [offset, contentEnd, re.offset];\n return doc;\n}\n\nexport { composeDoc };\n","import { Directives } from '../doc/directives.js';\nimport { Document } from '../doc/Document.js';\nimport { YAMLWarning, YAMLParseError } from '../errors.js';\nimport { isCollection, isPair } from '../nodes/identity.js';\nimport { composeDoc } from './compose-doc.js';\nimport { resolveEnd } from './resolve-end.js';\n\nfunction getErrorPos(src) {\n if (typeof src === 'number')\n return [src, src + 1];\n if (Array.isArray(src))\n return src.length === 2 ? src : [src[0], src[1]];\n const { offset, source } = src;\n return [offset, offset + (typeof source === 'string' ? source.length : 1)];\n}\nfunction parsePrelude(prelude) {\n let comment = '';\n let atComment = false;\n let afterEmptyLine = false;\n for (let i = 0; i < prelude.length; ++i) {\n const source = prelude[i];\n switch (source[0]) {\n case '#':\n comment +=\n (comment === '' ? '' : afterEmptyLine ? '\\n\\n' : '\\n') +\n (source.substring(1) || ' ');\n atComment = true;\n afterEmptyLine = false;\n break;\n case '%':\n if (prelude[i + 1]?.[0] !== '#')\n i += 1;\n atComment = false;\n break;\n default:\n // This may be wrong after doc-end, but in that case it doesn't matter\n if (!atComment)\n afterEmptyLine = true;\n atComment = false;\n }\n }\n return { comment, afterEmptyLine };\n}\n/**\n * Compose a stream of CST nodes into a stream of YAML Documents.\n *\n * ```ts\n * import { Composer, Parser } from 'yaml'\n *\n * const src: string = ...\n * const tokens = new Parser().parse(src)\n * const docs = new Composer().compose(tokens)\n * ```\n */\nclass Composer {\n constructor(options = {}) {\n this.doc = null;\n this.atDirectives = false;\n this.prelude = [];\n this.errors = [];\n this.warnings = [];\n this.onError = (source, code, message, warning) => {\n const pos = getErrorPos(source);\n if (warning)\n this.warnings.push(new YAMLWarning(pos, code, message));\n else\n this.errors.push(new YAMLParseError(pos, code, message));\n };\n // eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing\n this.directives = new Directives({ version: options.version || '1.2' });\n this.options = options;\n }\n decorate(doc, afterDoc) {\n const { comment, afterEmptyLine } = parsePrelude(this.prelude);\n //console.log({ dc: doc.comment, prelude, comment })\n if (comment) {\n const dc = doc.contents;\n if (afterDoc) {\n doc.comment = doc.comment ? `${doc.comment}\\n${comment}` : comment;\n }\n else if (afterEmptyLine || doc.directives.docStart || !dc) {\n doc.commentBefore = comment;\n }\n else if (isCollection(dc) && !dc.flow && dc.items.length > 0) {\n let it = dc.items[0];\n if (isPair(it))\n it = it.key;\n const cb = it.commentBefore;\n it.commentBefore = cb ? `${comment}\\n${cb}` : comment;\n }\n else {\n const cb = dc.commentBefore;\n dc.commentBefore = cb ? `${comment}\\n${cb}` : comment;\n }\n }\n if (afterDoc) {\n Array.prototype.push.apply(doc.errors, this.errors);\n Array.prototype.push.apply(doc.warnings, this.warnings);\n }\n else {\n doc.errors = this.errors;\n doc.warnings = this.warnings;\n }\n this.prelude = [];\n this.errors = [];\n this.warnings = [];\n }\n /**\n * Current stream status information.\n *\n * Mostly useful at the end of input for an empty stream.\n */\n streamInfo() {\n return {\n comment: parsePrelude(this.prelude).comment,\n directives: this.directives,\n errors: this.errors,\n warnings: this.warnings\n };\n }\n /**\n * Compose tokens into documents.\n *\n * @param forceDoc - If the stream contains no document, still emit a final document including any comments and directives that would be applied to a subsequent document.\n * @param endOffset - Should be set if `forceDoc` is also set, to set the document range end and to indicate errors correctly.\n */\n *compose(tokens, forceDoc = false, endOffset = -1) {\n for (const token of tokens)\n yield* this.next(token);\n yield* this.end(forceDoc, endOffset);\n }\n /** Advance the composer by one CST token. */\n *next(token) {\n switch (token.type) {\n case 'directive':\n this.directives.add(token.source, (offset, message, warning) => {\n const pos = getErrorPos(token);\n pos[0] += offset;\n this.onError(pos, 'BAD_DIRECTIVE', message, warning);\n });\n this.prelude.push(token.source);\n this.atDirectives = true;\n break;\n case 'document': {\n const doc = composeDoc(this.options, this.directives, token, this.onError);\n if (this.atDirectives && !doc.directives.docStart)\n this.onError(token, 'MISSING_CHAR', 'Missing directives-end/doc-start indicator line');\n this.decorate(doc, false);\n if (this.doc)\n yield this.doc;\n this.doc = doc;\n this.atDirectives = false;\n break;\n }\n case 'byte-order-mark':\n case 'space':\n break;\n case 'comment':\n case 'newline':\n this.prelude.push(token.source);\n break;\n case 'error': {\n const msg = token.source\n ? `${token.message}: ${JSON.stringify(token.source)}`\n : token.message;\n const error = new YAMLParseError(getErrorPos(token), 'UNEXPECTED_TOKEN', msg);\n if (this.atDirectives || !this.doc)\n this.errors.push(error);\n else\n this.doc.errors.push(error);\n break;\n }\n case 'doc-end': {\n if (!this.doc) {\n const msg = 'Unexpected doc-end without preceding document';\n this.errors.push(new YAMLParseError(getErrorPos(token), 'UNEXPECTED_TOKEN', msg));\n break;\n }\n this.doc.directives.docEnd = true;\n const end = resolveEnd(token.end, token.offset + token.source.length, this.doc.options.strict, this.onError);\n this.decorate(this.doc, true);\n if (end.comment) {\n const dc = this.doc.comment;\n this.doc.comment = dc ? `${dc}\\n${end.comment}` : end.comment;\n }\n this.doc.range[2] = end.offset;\n break;\n }\n default:\n this.errors.push(new YAMLParseError(getErrorPos(token), 'UNEXPECTED_TOKEN', `Unsupported token ${token.type}`));\n }\n }\n /**\n * Call at end of input to yield any remaining document.\n *\n * @param forceDoc - If the stream contains no document, still emit a final document including any comments and directives that would be applied to a subsequent document.\n * @param endOffset - Should be set if `forceDoc` is also set, to set the document range end and to indicate errors correctly.\n */\n *end(forceDoc = false, endOffset = -1) {\n if (this.doc) {\n this.decorate(this.doc, true);\n yield this.doc;\n this.doc = null;\n }\n else if (forceDoc) {\n const opts = Object.assign({ _directives: this.directives }, this.options);\n const doc = new Document(undefined, opts);\n if (this.atDirectives)\n this.onError(endOffset, 'MISSING_CHAR', 'Missing directives-end indicator line');\n doc.range = [0, endOffset, endOffset];\n this.decorate(doc, false);\n yield doc;\n }\n }\n}\n\nexport { Composer };\n","import { resolveBlockScalar } from '../compose/resolve-block-scalar.js';\nimport { resolveFlowScalar } from '../compose/resolve-flow-scalar.js';\nimport { YAMLParseError } from '../errors.js';\nimport { stringifyString } from '../stringify/stringifyString.js';\n\nfunction resolveAsScalar(token, strict = true, onError) {\n if (token) {\n const _onError = (pos, code, message) => {\n const offset = typeof pos === 'number' ? pos : Array.isArray(pos) ? pos[0] : pos.offset;\n if (onError)\n onError(offset, code, message);\n else\n throw new YAMLParseError([offset, offset + 1], code, message);\n };\n switch (token.type) {\n case 'scalar':\n case 'single-quoted-scalar':\n case 'double-quoted-scalar':\n return resolveFlowScalar(token, strict, _onError);\n case 'block-scalar':\n return resolveBlockScalar({ options: { strict } }, token, _onError);\n }\n }\n return null;\n}\n/**\n * Create a new scalar token with `value`\n *\n * Values that represent an actual string but may be parsed as a different type should use a `type` other than `'PLAIN'`,\n * as this function does not support any schema operations and won't check for such conflicts.\n *\n * @param value The string representation of the value, which will have its content properly indented.\n * @param context.end Comments and whitespace after the end of the value, or after the block scalar header. If undefined, a newline will be added.\n * @param context.implicitKey Being within an implicit key may affect the resolved type of the token's value.\n * @param context.indent The indent level of the token.\n * @param context.inFlow Is this scalar within a flow collection? This may affect the resolved type of the token's value.\n * @param context.offset The offset position of the token.\n * @param context.type The preferred type of the scalar token. If undefined, the previous type of the `token` will be used, defaulting to `'PLAIN'`.\n */\nfunction createScalarToken(value, context) {\n const { implicitKey = false, indent, inFlow = false, offset = -1, type = 'PLAIN' } = context;\n const source = stringifyString({ type, value }, {\n implicitKey,\n indent: indent > 0 ? ' '.repeat(indent) : '',\n inFlow,\n options: { blockQuote: true, lineWidth: -1 }\n });\n const end = context.end ?? [\n { type: 'newline', offset: -1, indent, source: '\\n' }\n ];\n switch (source[0]) {\n case '|':\n case '>': {\n const he = source.indexOf('\\n');\n const head = source.substring(0, he);\n const body = source.substring(he + 1) + '\\n';\n const props = [\n { type: 'block-scalar-header', offset, indent, source: head }\n ];\n if (!addEndtoBlockProps(props, end))\n props.push({ type: 'newline', offset: -1, indent, source: '\\n' });\n return { type: 'block-scalar', offset, indent, props, source: body };\n }\n case '\"':\n return { type: 'double-quoted-scalar', offset, indent, source, end };\n case \"'\":\n return { type: 'single-quoted-scalar', offset, indent, source, end };\n default:\n return { type: 'scalar', offset, indent, source, end };\n }\n}\n/**\n * Set the value of `token` to the given string `value`, overwriting any previous contents and type that it may have.\n *\n * Best efforts are made to retain any comments previously associated with the `token`,\n * though all contents within a collection's `items` will be overwritten.\n *\n * Values that represent an actual string but may be parsed as a different type should use a `type` other than `'PLAIN'`,\n * as this function does not support any schema operations and won't check for such conflicts.\n *\n * @param token Any token. If it does not include an `indent` value, the value will be stringified as if it were an implicit key.\n * @param value The string representation of the value, which will have its content properly indented.\n * @param context.afterKey In most cases, values after a key should have an additional level of indentation.\n * @param context.implicitKey Being within an implicit key may affect the resolved type of the token's value.\n * @param context.inFlow Being within a flow collection may affect the resolved type of the token's value.\n * @param context.type The preferred type of the scalar token. If undefined, the previous type of the `token` will be used, defaulting to `'PLAIN'`.\n */\nfunction setScalarValue(token, value, context = {}) {\n let { afterKey = false, implicitKey = false, inFlow = false, type } = context;\n let indent = 'indent' in token ? token.indent : null;\n if (afterKey && typeof indent === 'number')\n indent += 2;\n if (!type)\n switch (token.type) {\n case 'single-quoted-scalar':\n type = 'QUOTE_SINGLE';\n break;\n case 'double-quoted-scalar':\n type = 'QUOTE_DOUBLE';\n break;\n case 'block-scalar': {\n const header = token.props[0];\n if (header.type !== 'block-scalar-header')\n throw new Error('Invalid block scalar header');\n type = header.source[0] === '>' ? 'BLOCK_FOLDED' : 'BLOCK_LITERAL';\n break;\n }\n default:\n type = 'PLAIN';\n }\n const source = stringifyString({ type, value }, {\n implicitKey: implicitKey || indent === null,\n indent: indent !== null && indent > 0 ? ' '.repeat(indent) : '',\n inFlow,\n options: { blockQuote: true, lineWidth: -1 }\n });\n switch (source[0]) {\n case '|':\n case '>':\n setBlockScalarValue(token, source);\n break;\n case '\"':\n setFlowScalarValue(token, source, 'double-quoted-scalar');\n break;\n case \"'\":\n setFlowScalarValue(token, source, 'single-quoted-scalar');\n break;\n default:\n setFlowScalarValue(token, source, 'scalar');\n }\n}\nfunction setBlockScalarValue(token, source) {\n const he = source.indexOf('\\n');\n const head = source.substring(0, he);\n const body = source.substring(he + 1) + '\\n';\n if (token.type === 'block-scalar') {\n const header = token.props[0];\n if (header.type !== 'block-scalar-header')\n throw new Error('Invalid block scalar header');\n header.source = head;\n token.source = body;\n }\n else {\n const { offset } = token;\n const indent = 'indent' in token ? token.indent : -1;\n const props = [\n { type: 'block-scalar-header', offset, indent, source: head }\n ];\n if (!addEndtoBlockProps(props, 'end' in token ? token.end : undefined))\n props.push({ type: 'newline', offset: -1, indent, source: '\\n' });\n for (const key of Object.keys(token))\n if (key !== 'type' && key !== 'offset')\n delete token[key];\n Object.assign(token, { type: 'block-scalar', indent, props, source: body });\n }\n}\n/** @returns `true` if last token is a newline */\nfunction addEndtoBlockProps(props, end) {\n if (end)\n for (const st of end)\n switch (st.type) {\n case 'space':\n case 'comment':\n props.push(st);\n break;\n case 'newline':\n props.push(st);\n return true;\n }\n return false;\n}\nfunction setFlowScalarValue(token, source, type) {\n switch (token.type) {\n case 'scalar':\n case 'double-quoted-scalar':\n case 'single-quoted-scalar':\n token.type = type;\n token.source = source;\n break;\n case 'block-scalar': {\n const end = token.props.slice(1);\n let oa = source.length;\n if (token.props[0].type === 'block-scalar-header')\n oa -= token.props[0].source.length;\n for (const tok of end)\n tok.offset += oa;\n delete token.props;\n Object.assign(token, { type, source, end });\n break;\n }\n case 'block-map':\n case 'block-seq': {\n const offset = token.offset + source.length;\n const nl = { type: 'newline', offset, indent: token.indent, source: '\\n' };\n delete token.items;\n Object.assign(token, { type, source, end: [nl] });\n break;\n }\n default: {\n const indent = 'indent' in token ? token.indent : -1;\n const end = 'end' in token && Array.isArray(token.end)\n ? token.end.filter(st => st.type === 'space' ||\n st.type === 'comment' ||\n st.type === 'newline')\n : [];\n for (const key of Object.keys(token))\n if (key !== 'type' && key !== 'offset')\n delete token[key];\n Object.assign(token, { type, indent, source, end });\n }\n }\n}\n\nexport { createScalarToken, resolveAsScalar, setScalarValue };\n","/**\n * Stringify a CST document, token, or collection item\n *\n * Fair warning: This applies no validation whatsoever, and\n * simply concatenates the sources in their logical order.\n */\nconst stringify = (cst) => 'type' in cst ? stringifyToken(cst) : stringifyItem(cst);\nfunction stringifyToken(token) {\n switch (token.type) {\n case 'block-scalar': {\n let res = '';\n for (const tok of token.props)\n res += stringifyToken(tok);\n return res + token.source;\n }\n case 'block-map':\n case 'block-seq': {\n let res = '';\n for (const item of token.items)\n res += stringifyItem(item);\n return res;\n }\n case 'flow-collection': {\n let res = token.start.source;\n for (const item of token.items)\n res += stringifyItem(item);\n for (const st of token.end)\n res += st.source;\n return res;\n }\n case 'document': {\n let res = stringifyItem(token);\n if (token.end)\n for (const st of token.end)\n res += st.source;\n return res;\n }\n default: {\n let res = token.source;\n if ('end' in token && token.end)\n for (const st of token.end)\n res += st.source;\n return res;\n }\n }\n}\nfunction stringifyItem({ start, key, sep, value }) {\n let res = '';\n for (const st of start)\n res += st.source;\n if (key)\n res += stringifyToken(key);\n if (sep)\n for (const st of sep)\n res += st.source;\n if (value)\n res += stringifyToken(value);\n return res;\n}\n\nexport { stringify };\n","const BREAK = Symbol('break visit');\nconst SKIP = Symbol('skip children');\nconst REMOVE = Symbol('remove item');\n/**\n * Apply a visitor to a CST document or item.\n *\n * Walks through the tree (depth-first) starting from the root, calling a\n * `visitor` function with two arguments when entering each item:\n * - `item`: The current item, which included the following members:\n * - `start: SourceToken[]` – Source tokens before the key or value,\n * possibly including its anchor or tag.\n * - `key?: Token | null` – Set for pair values. May then be `null`, if\n * the key before the `:` separator is empty.\n * - `sep?: SourceToken[]` – Source tokens between the key and the value,\n * which should include the `:` map value indicator if `value` is set.\n * - `value?: Token` – The value of a sequence item, or of a map pair.\n * - `path`: The steps from the root to the current node, as an array of\n * `['key' | 'value', number]` tuples.\n *\n * The return value of the visitor may be used to control the traversal:\n * - `undefined` (default): Do nothing and continue\n * - `visit.SKIP`: Do not visit the children of this token, continue with\n * next sibling\n * - `visit.BREAK`: Terminate traversal completely\n * - `visit.REMOVE`: Remove the current item, then continue with the next one\n * - `number`: Set the index of the next step. This is useful especially if\n * the index of the current token has changed.\n * - `function`: Define the next visitor for this item. After the original\n * visitor is called on item entry, next visitors are called after handling\n * a non-empty `key` and when exiting the item.\n */\nfunction visit(cst, visitor) {\n if ('type' in cst && cst.type === 'document')\n cst = { start: cst.start, value: cst.value };\n _visit(Object.freeze([]), cst, visitor);\n}\n// Without the `as symbol` casts, TS declares these in the `visit`\n// namespace using `var`, but then complains about that because\n// `unique symbol` must be `const`.\n/** Terminate visit traversal completely */\nvisit.BREAK = BREAK;\n/** Do not visit the children of the current item */\nvisit.SKIP = SKIP;\n/** Remove the current item */\nvisit.REMOVE = REMOVE;\n/** Find the item at `path` from `cst` as the root */\nvisit.itemAtPath = (cst, path) => {\n let item = cst;\n for (const [field, index] of path) {\n const tok = item?.[field];\n if (tok && 'items' in tok) {\n item = tok.items[index];\n }\n else\n return undefined;\n }\n return item;\n};\n/**\n * Get the immediate parent collection of the item at `path` from `cst` as the root.\n *\n * Throws an error if the collection is not found, which should never happen if the item itself exists.\n */\nvisit.parentCollection = (cst, path) => {\n const parent = visit.itemAtPath(cst, path.slice(0, -1));\n const field = path[path.length - 1][0];\n const coll = parent?.[field];\n if (coll && 'items' in coll)\n return coll;\n throw new Error('Parent collection not found');\n};\nfunction _visit(path, item, visitor) {\n let ctrl = visitor(item, path);\n if (typeof ctrl === 'symbol')\n return ctrl;\n for (const field of ['key', 'value']) {\n const token = item[field];\n if (token && 'items' in token) {\n for (let i = 0; i < token.items.length; ++i) {\n const ci = _visit(Object.freeze(path.concat([[field, i]])), token.items[i], visitor);\n if (typeof ci === 'number')\n i = ci - 1;\n else if (ci === BREAK)\n return BREAK;\n else if (ci === REMOVE) {\n token.items.splice(i, 1);\n i -= 1;\n }\n }\n if (typeof ctrl === 'function' && field === 'key')\n ctrl = ctrl(item, path);\n }\n }\n return typeof ctrl === 'function' ? ctrl(item, path) : ctrl;\n}\n\nexport { visit };\n","export { createScalarToken, resolveAsScalar, setScalarValue } from './cst-scalar.js';\nexport { stringify } from './cst-stringify.js';\nexport { visit } from './cst-visit.js';\n\n/** The byte order mark */\nconst BOM = '\\u{FEFF}';\n/** Start of doc-mode */\nconst DOCUMENT = '\\x02'; // C0: Start of Text\n/** Unexpected end of flow-mode */\nconst FLOW_END = '\\x18'; // C0: Cancel\n/** Next token is a scalar value */\nconst SCALAR = '\\x1f'; // C0: Unit Separator\n/** @returns `true` if `token` is a flow or block collection */\nconst isCollection = (token) => !!token && 'items' in token;\n/** @returns `true` if `token` is a flow or block scalar; not an alias */\nconst isScalar = (token) => !!token &&\n (token.type === 'scalar' ||\n token.type === 'single-quoted-scalar' ||\n token.type === 'double-quoted-scalar' ||\n token.type === 'block-scalar');\n/* istanbul ignore next */\n/** Get a printable representation of a lexer token */\nfunction prettyToken(token) {\n switch (token) {\n case BOM:\n return '<BOM>';\n case DOCUMENT:\n return '<DOC>';\n case FLOW_END:\n return '<FLOW_END>';\n case SCALAR:\n return '<SCALAR>';\n default:\n return JSON.stringify(token);\n }\n}\n/** Identify the type of a lexer token. May return `null` for unknown tokens. */\nfunction tokenType(source) {\n switch (source) {\n case BOM:\n return 'byte-order-mark';\n case DOCUMENT:\n return 'doc-mode';\n case FLOW_END:\n return 'flow-error-end';\n case SCALAR:\n return 'scalar';\n case '---':\n return 'doc-start';\n case '...':\n return 'doc-end';\n case '':\n case '\\n':\n case '\\r\\n':\n return 'newline';\n case '-':\n return 'seq-item-ind';\n case '?':\n return 'explicit-key-ind';\n case ':':\n return 'map-value-ind';\n case '{':\n return 'flow-map-start';\n case '}':\n return 'flow-map-end';\n case '[':\n return 'flow-seq-start';\n case ']':\n return 'flow-seq-end';\n case ',':\n return 'comma';\n }\n switch (source[0]) {\n case ' ':\n case '\\t':\n return 'space';\n case '#':\n return 'comment';\n case '%':\n return 'directive-line';\n case '*':\n return 'alias';\n case '&':\n return 'anchor';\n case '!':\n return 'tag';\n case \"'\":\n return 'single-quoted-scalar';\n case '\"':\n return 'double-quoted-scalar';\n case '|':\n case '>':\n return 'block-scalar-header';\n }\n return null;\n}\n\nexport { BOM, DOCUMENT, FLOW_END, SCALAR, isCollection, isScalar, prettyToken, tokenType };\n","import { BOM, DOCUMENT, FLOW_END, SCALAR } from './cst.js';\n\n/*\nSTART -> stream\n\nstream\n directive -> line-end -> stream\n indent + line-end -> stream\n [else] -> line-start\n\nline-end\n comment -> line-end\n newline -> .\n input-end -> END\n\nline-start\n doc-start -> doc\n doc-end -> stream\n [else] -> indent -> block-start\n\nblock-start\n seq-item-start -> block-start\n explicit-key-start -> block-start\n map-value-start -> block-start\n [else] -> doc\n\ndoc\n line-end -> line-start\n spaces -> doc\n anchor -> doc\n tag -> doc\n flow-start -> flow -> doc\n flow-end -> error -> doc\n seq-item-start -> error -> doc\n explicit-key-start -> error -> doc\n map-value-start -> doc\n alias -> doc\n quote-start -> quoted-scalar -> doc\n block-scalar-header -> line-end -> block-scalar(min) -> line-start\n [else] -> plain-scalar(false, min) -> doc\n\nflow\n line-end -> flow\n spaces -> flow\n anchor -> flow\n tag -> flow\n flow-start -> flow -> flow\n flow-end -> .\n seq-item-start -> error -> flow\n explicit-key-start -> flow\n map-value-start -> flow\n alias -> flow\n quote-start -> quoted-scalar -> flow\n comma -> flow\n [else] -> plain-scalar(true, 0) -> flow\n\nquoted-scalar\n quote-end -> .\n [else] -> quoted-scalar\n\nblock-scalar(min)\n newline + peek(indent < min) -> .\n [else] -> block-scalar(min)\n\nplain-scalar(is-flow, min)\n scalar-end(is-flow) -> .\n peek(newline + (indent < min)) -> .\n [else] -> plain-scalar(min)\n*/\nfunction isEmpty(ch) {\n switch (ch) {\n case undefined:\n case ' ':\n case '\\n':\n case '\\r':\n case '\\t':\n return true;\n default:\n return false;\n }\n}\nconst hexDigits = new Set('0123456789ABCDEFabcdef');\nconst tagChars = new Set(\"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-#;/?:@&=+$_.!~*'()\");\nconst flowIndicatorChars = new Set(',[]{}');\nconst invalidAnchorChars = new Set(' ,[]{}\\n\\r\\t');\nconst isNotAnchorChar = (ch) => !ch || invalidAnchorChars.has(ch);\n/**\n * Splits an input string into lexical tokens, i.e. smaller strings that are\n * easily identifiable by `tokens.tokenType()`.\n *\n * Lexing starts always in a \"stream\" context. Incomplete input may be buffered\n * until a complete token can be emitted.\n *\n * In addition to slices of the original input, the following control characters\n * may also be emitted:\n *\n * - `\\x02` (Start of Text): A document starts with the next token\n * - `\\x18` (Cancel): Unexpected end of flow-mode (indicates an error)\n * - `\\x1f` (Unit Separator): Next token is a scalar value\n * - `\\u{FEFF}` (Byte order mark): Emitted separately outside documents\n */\nclass Lexer {\n constructor() {\n /**\n * Flag indicating whether the end of the current buffer marks the end of\n * all input\n */\n this.atEnd = false;\n /**\n * Explicit indent set in block scalar header, as an offset from the current\n * minimum indent, so e.g. set to 1 from a header `|2+`. Set to -1 if not\n * explicitly set.\n */\n this.blockScalarIndent = -1;\n /**\n * Block scalars that include a + (keep) chomping indicator in their header\n * include trailing empty lines, which are otherwise excluded from the\n * scalar's contents.\n */\n this.blockScalarKeep = false;\n /** Current input */\n this.buffer = '';\n /**\n * Flag noting whether the map value indicator : can immediately follow this\n * node within a flow context.\n */\n this.flowKey = false;\n /** Count of surrounding flow collection levels. */\n this.flowLevel = 0;\n /**\n * Minimum level of indentation required for next lines to be parsed as a\n * part of the current scalar value.\n */\n this.indentNext = 0;\n /** Indentation level of the current line. */\n this.indentValue = 0;\n /** Position of the next \\n character. */\n this.lineEndPos = null;\n /** Stores the state of the lexer if reaching the end of incpomplete input */\n this.next = null;\n /** A pointer to `buffer`; the current position of the lexer. */\n this.pos = 0;\n }\n /**\n * Generate YAML tokens from the `source` string. If `incomplete`,\n * a part of the last line may be left as a buffer for the next call.\n *\n * @returns A generator of lexical tokens\n */\n *lex(source, incomplete = false) {\n if (source) {\n if (typeof source !== 'string')\n throw TypeError('source is not a string');\n this.buffer = this.buffer ? this.buffer + source : source;\n this.lineEndPos = null;\n }\n this.atEnd = !incomplete;\n let next = this.next ?? 'stream';\n while (next && (incomplete || this.hasChars(1)))\n next = yield* this.parseNext(next);\n }\n atLineEnd() {\n let i = this.pos;\n let ch = this.buffer[i];\n while (ch === ' ' || ch === '\\t')\n ch = this.buffer[++i];\n if (!ch || ch === '#' || ch === '\\n')\n return true;\n if (ch === '\\r')\n return this.buffer[i + 1] === '\\n';\n return false;\n }\n charAt(n) {\n return this.buffer[this.pos + n];\n }\n continueScalar(offset) {\n let ch = this.buffer[offset];\n if (this.indentNext > 0) {\n let indent = 0;\n while (ch === ' ')\n ch = this.buffer[++indent + offset];\n if (ch === '\\r') {\n const next = this.buffer[indent + offset + 1];\n if (next === '\\n' || (!next && !this.atEnd))\n return offset + indent + 1;\n }\n return ch === '\\n' || indent >= this.indentNext || (!ch && !this.atEnd)\n ? offset + indent\n : -1;\n }\n if (ch === '-' || ch === '.') {\n const dt = this.buffer.substr(offset, 3);\n if ((dt === '---' || dt === '...') && isEmpty(this.buffer[offset + 3]))\n return -1;\n }\n return offset;\n }\n getLine() {\n let end = this.lineEndPos;\n if (typeof end !== 'number' || (end !== -1 && end < this.pos)) {\n end = this.buffer.indexOf('\\n', this.pos);\n this.lineEndPos = end;\n }\n if (end === -1)\n return this.atEnd ? this.buffer.substring(this.pos) : null;\n if (this.buffer[end - 1] === '\\r')\n end -= 1;\n return this.buffer.substring(this.pos, end);\n }\n hasChars(n) {\n return this.pos + n <= this.buffer.length;\n }\n setNext(state) {\n this.buffer = this.buffer.substring(this.pos);\n this.pos = 0;\n this.lineEndPos = null;\n this.next = state;\n return null;\n }\n peek(n) {\n return this.buffer.substr(this.pos, n);\n }\n *parseNext(next) {\n switch (next) {\n case 'stream':\n return yield* this.parseStream();\n case 'line-start':\n return yield* this.parseLineStart();\n case 'block-start':\n return yield* this.parseBlockStart();\n case 'doc':\n return yield* this.parseDocument();\n case 'flow':\n return yield* this.parseFlowCollection();\n case 'quoted-scalar':\n return yield* this.parseQuotedScalar();\n case 'block-scalar':\n return yield* this.parseBlockScalar();\n case 'plain-scalar':\n return yield* this.parsePlainScalar();\n }\n }\n *parseStream() {\n let line = this.getLine();\n if (line === null)\n return this.setNext('stream');\n if (line[0] === BOM) {\n yield* this.pushCount(1);\n line = line.substring(1);\n }\n if (line[0] === '%') {\n let dirEnd = line.length;\n let cs = line.indexOf('#');\n while (cs !== -1) {\n const ch = line[cs - 1];\n if (ch === ' ' || ch === '\\t') {\n dirEnd = cs - 1;\n break;\n }\n else {\n cs = line.indexOf('#', cs + 1);\n }\n }\n while (true) {\n const ch = line[dirEnd - 1];\n if (ch === ' ' || ch === '\\t')\n dirEnd -= 1;\n else\n break;\n }\n const n = (yield* this.pushCount(dirEnd)) + (yield* this.pushSpaces(true));\n yield* this.pushCount(line.length - n); // possible comment\n this.pushNewline();\n return 'stream';\n }\n if (this.atLineEnd()) {\n const sp = yield* this.pushSpaces(true);\n yield* this.pushCount(line.length - sp);\n yield* this.pushNewline();\n return 'stream';\n }\n yield DOCUMENT;\n return yield* this.parseLineStart();\n }\n *parseLineStart() {\n const ch = this.charAt(0);\n if (!ch && !this.atEnd)\n return this.setNext('line-start');\n if (ch === '-' || ch === '.') {\n if (!this.atEnd && !this.hasChars(4))\n return this.setNext('line-start');\n const s = this.peek(3);\n if ((s === '---' || s === '...') && isEmpty(this.charAt(3))) {\n yield* this.pushCount(3);\n this.indentValue = 0;\n this.indentNext = 0;\n return s === '---' ? 'doc' : 'stream';\n }\n }\n this.indentValue = yield* this.pushSpaces(false);\n if (this.indentNext > this.indentValue && !isEmpty(this.charAt(1)))\n this.indentNext = this.indentValue;\n return yield* this.parseBlockStart();\n }\n *parseBlockStart() {\n const [ch0, ch1] = this.peek(2);\n if (!ch1 && !this.atEnd)\n return this.setNext('block-start');\n if ((ch0 === '-' || ch0 === '?' || ch0 === ':') && isEmpty(ch1)) {\n const n = (yield* this.pushCount(1)) + (yield* this.pushSpaces(true));\n this.indentNext = this.indentValue + 1;\n this.indentValue += n;\n return yield* this.parseBlockStart();\n }\n return 'doc';\n }\n *parseDocument() {\n yield* this.pushSpaces(true);\n const line = this.getLine();\n if (line === null)\n return this.setNext('doc');\n let n = yield* this.pushIndicators();\n switch (line[n]) {\n case '#':\n yield* this.pushCount(line.length - n);\n // fallthrough\n case undefined:\n yield* this.pushNewline();\n return yield* this.parseLineStart();\n case '{':\n case '[':\n yield* this.pushCount(1);\n this.flowKey = false;\n this.flowLevel = 1;\n return 'flow';\n case '}':\n case ']':\n // this is an error\n yield* this.pushCount(1);\n return 'doc';\n case '*':\n yield* this.pushUntil(isNotAnchorChar);\n return 'doc';\n case '\"':\n case \"'\":\n return yield* this.parseQuotedScalar();\n case '|':\n case '>':\n n += yield* this.parseBlockScalarHeader();\n n += yield* this.pushSpaces(true);\n yield* this.pushCount(line.length - n);\n yield* this.pushNewline();\n return yield* this.parseBlockScalar();\n default:\n return yield* this.parsePlainScalar();\n }\n }\n *parseFlowCollection() {\n let nl, sp;\n let indent = -1;\n do {\n nl = yield* this.pushNewline();\n if (nl > 0) {\n sp = yield* this.pushSpaces(false);\n this.indentValue = indent = sp;\n }\n else {\n sp = 0;\n }\n sp += yield* this.pushSpaces(true);\n } while (nl + sp > 0);\n const line = this.getLine();\n if (line === null)\n return this.setNext('flow');\n if ((indent !== -1 && indent < this.indentNext && line[0] !== '#') ||\n (indent === 0 &&\n (line.startsWith('---') || line.startsWith('...')) &&\n isEmpty(line[3]))) {\n // Allowing for the terminal ] or } at the same (rather than greater)\n // indent level as the initial [ or { is technically invalid, but\n // failing here would be surprising to users.\n const atFlowEndMarker = indent === this.indentNext - 1 &&\n this.flowLevel === 1 &&\n (line[0] === ']' || line[0] === '}');\n if (!atFlowEndMarker) {\n // this is an error\n this.flowLevel = 0;\n yield FLOW_END;\n return yield* this.parseLineStart();\n }\n }\n let n = 0;\n while (line[n] === ',') {\n n += yield* this.pushCount(1);\n n += yield* this.pushSpaces(true);\n this.flowKey = false;\n }\n n += yield* this.pushIndicators();\n switch (line[n]) {\n case undefined:\n return 'flow';\n case '#':\n yield* this.pushCount(line.length - n);\n return 'flow';\n case '{':\n case '[':\n yield* this.pushCount(1);\n this.flowKey = false;\n this.flowLevel += 1;\n return 'flow';\n case '}':\n case ']':\n yield* this.pushCount(1);\n this.flowKey = true;\n this.flowLevel -= 1;\n return this.flowLevel ? 'flow' : 'doc';\n case '*':\n yield* this.pushUntil(isNotAnchorChar);\n return 'flow';\n case '\"':\n case \"'\":\n this.flowKey = true;\n return yield* this.parseQuotedScalar();\n case ':': {\n const next = this.charAt(1);\n if (this.flowKey || isEmpty(next) || next === ',') {\n this.flowKey = false;\n yield* this.pushCount(1);\n yield* this.pushSpaces(true);\n return 'flow';\n }\n }\n // fallthrough\n default:\n this.flowKey = false;\n return yield* this.parsePlainScalar();\n }\n }\n *parseQuotedScalar() {\n const quote = this.charAt(0);\n let end = this.buffer.indexOf(quote, this.pos + 1);\n if (quote === \"'\") {\n while (end !== -1 && this.buffer[end + 1] === \"'\")\n end = this.buffer.indexOf(\"'\", end + 2);\n }\n else {\n // double-quote\n while (end !== -1) {\n let n = 0;\n while (this.buffer[end - 1 - n] === '\\\\')\n n += 1;\n if (n % 2 === 0)\n break;\n end = this.buffer.indexOf('\"', end + 1);\n }\n }\n // Only looking for newlines within the quotes\n const qb = this.buffer.substring(0, end);\n let nl = qb.indexOf('\\n', this.pos);\n if (nl !== -1) {\n while (nl !== -1) {\n const cs = this.continueScalar(nl + 1);\n if (cs === -1)\n break;\n nl = qb.indexOf('\\n', cs);\n }\n if (nl !== -1) {\n // this is an error caused by an unexpected unindent\n end = nl - (qb[nl - 1] === '\\r' ? 2 : 1);\n }\n }\n if (end === -1) {\n if (!this.atEnd)\n return this.setNext('quoted-scalar');\n end = this.buffer.length;\n }\n yield* this.pushToIndex(end + 1, false);\n return this.flowLevel ? 'flow' : 'doc';\n }\n *parseBlockScalarHeader() {\n this.blockScalarIndent = -1;\n this.blockScalarKeep = false;\n let i = this.pos;\n while (true) {\n const ch = this.buffer[++i];\n if (ch === '+')\n this.blockScalarKeep = true;\n else if (ch > '0' && ch <= '9')\n this.blockScalarIndent = Number(ch) - 1;\n else if (ch !== '-')\n break;\n }\n return yield* this.pushUntil(ch => isEmpty(ch) || ch === '#');\n }\n *parseBlockScalar() {\n let nl = this.pos - 1; // may be -1 if this.pos === 0\n let indent = 0;\n let ch;\n loop: for (let i = this.pos; (ch = this.buffer[i]); ++i) {\n switch (ch) {\n case ' ':\n indent += 1;\n break;\n case '\\n':\n nl = i;\n indent = 0;\n break;\n case '\\r': {\n const next = this.buffer[i + 1];\n if (!next && !this.atEnd)\n return this.setNext('block-scalar');\n if (next === '\\n')\n break;\n } // fallthrough\n default:\n break loop;\n }\n }\n if (!ch && !this.atEnd)\n return this.setNext('block-scalar');\n if (indent >= this.indentNext) {\n if (this.blockScalarIndent === -1)\n this.indentNext = indent;\n else {\n this.indentNext =\n this.blockScalarIndent + (this.indentNext === 0 ? 1 : this.indentNext);\n }\n do {\n const cs = this.continueScalar(nl + 1);\n if (cs === -1)\n break;\n nl = this.buffer.indexOf('\\n', cs);\n } while (nl !== -1);\n if (nl === -1) {\n if (!this.atEnd)\n return this.setNext('block-scalar');\n nl = this.buffer.length;\n }\n }\n // Trailing insufficiently indented tabs are invalid.\n // To catch that during parsing, we include them in the block scalar value.\n let i = nl + 1;\n ch = this.buffer[i];\n while (ch === ' ')\n ch = this.buffer[++i];\n if (ch === '\\t') {\n while (ch === '\\t' || ch === ' ' || ch === '\\r' || ch === '\\n')\n ch = this.buffer[++i];\n nl = i - 1;\n }\n else if (!this.blockScalarKeep) {\n do {\n let i = nl - 1;\n let ch = this.buffer[i];\n if (ch === '\\r')\n ch = this.buffer[--i];\n const lastChar = i; // Drop the line if last char not more indented\n while (ch === ' ')\n ch = this.buffer[--i];\n if (ch === '\\n' && i >= this.pos && i + 1 + indent > lastChar)\n nl = i;\n else\n break;\n } while (true);\n }\n yield SCALAR;\n yield* this.pushToIndex(nl + 1, true);\n return yield* this.parseLineStart();\n }\n *parsePlainScalar() {\n const inFlow = this.flowLevel > 0;\n let end = this.pos - 1;\n let i = this.pos - 1;\n let ch;\n while ((ch = this.buffer[++i])) {\n if (ch === ':') {\n const next = this.buffer[i + 1];\n if (isEmpty(next) || (inFlow && flowIndicatorChars.has(next)))\n break;\n end = i;\n }\n else if (isEmpty(ch)) {\n let next = this.buffer[i + 1];\n if (ch === '\\r') {\n if (next === '\\n') {\n i += 1;\n ch = '\\n';\n next = this.buffer[i + 1];\n }\n else\n end = i;\n }\n if (next === '#' || (inFlow && flowIndicatorChars.has(next)))\n break;\n if (ch === '\\n') {\n const cs = this.continueScalar(i + 1);\n if (cs === -1)\n break;\n i = Math.max(i, cs - 2); // to advance, but still account for ' #'\n }\n }\n else {\n if (inFlow && flowIndicatorChars.has(ch))\n break;\n end = i;\n }\n }\n if (!ch && !this.atEnd)\n return this.setNext('plain-scalar');\n yield SCALAR;\n yield* this.pushToIndex(end + 1, true);\n return inFlow ? 'flow' : 'doc';\n }\n *pushCount(n) {\n if (n > 0) {\n yield this.buffer.substr(this.pos, n);\n this.pos += n;\n return n;\n }\n return 0;\n }\n *pushToIndex(i, allowEmpty) {\n const s = this.buffer.slice(this.pos, i);\n if (s) {\n yield s;\n this.pos += s.length;\n return s.length;\n }\n else if (allowEmpty)\n yield '';\n return 0;\n }\n *pushIndicators() {\n switch (this.charAt(0)) {\n case '!':\n return ((yield* this.pushTag()) +\n (yield* this.pushSpaces(true)) +\n (yield* this.pushIndicators()));\n case '&':\n return ((yield* this.pushUntil(isNotAnchorChar)) +\n (yield* this.pushSpaces(true)) +\n (yield* this.pushIndicators()));\n case '-': // this is an error\n case '?': // this is an error outside flow collections\n case ':': {\n const inFlow = this.flowLevel > 0;\n const ch1 = this.charAt(1);\n if (isEmpty(ch1) || (inFlow && flowIndicatorChars.has(ch1))) {\n if (!inFlow)\n this.indentNext = this.indentValue + 1;\n else if (this.flowKey)\n this.flowKey = false;\n return ((yield* this.pushCount(1)) +\n (yield* this.pushSpaces(true)) +\n (yield* this.pushIndicators()));\n }\n }\n }\n return 0;\n }\n *pushTag() {\n if (this.charAt(1) === '<') {\n let i = this.pos + 2;\n let ch = this.buffer[i];\n while (!isEmpty(ch) && ch !== '>')\n ch = this.buffer[++i];\n return yield* this.pushToIndex(ch === '>' ? i + 1 : i, false);\n }\n else {\n let i = this.pos + 1;\n let ch = this.buffer[i];\n while (ch) {\n if (tagChars.has(ch))\n ch = this.buffer[++i];\n else if (ch === '%' &&\n hexDigits.has(this.buffer[i + 1]) &&\n hexDigits.has(this.buffer[i + 2])) {\n ch = this.buffer[(i += 3)];\n }\n else\n break;\n }\n return yield* this.pushToIndex(i, false);\n }\n }\n *pushNewline() {\n const ch = this.buffer[this.pos];\n if (ch === '\\n')\n return yield* this.pushCount(1);\n else if (ch === '\\r' && this.charAt(1) === '\\n')\n return yield* this.pushCount(2);\n else\n return 0;\n }\n *pushSpaces(allowTabs) {\n let i = this.pos - 1;\n let ch;\n do {\n ch = this.buffer[++i];\n } while (ch === ' ' || (allowTabs && ch === '\\t'));\n const n = i - this.pos;\n if (n > 0) {\n yield this.buffer.substr(this.pos, n);\n this.pos = i;\n }\n return n;\n }\n *pushUntil(test) {\n let i = this.pos;\n let ch = this.buffer[i];\n while (!test(ch))\n ch = this.buffer[++i];\n return yield* this.pushToIndex(i, false);\n }\n}\n\nexport { Lexer };\n","/**\n * Tracks newlines during parsing in order to provide an efficient API for\n * determining the one-indexed `{ line, col }` position for any offset\n * within the input.\n */\nclass LineCounter {\n constructor() {\n this.lineStarts = [];\n /**\n * Should be called in ascending order. Otherwise, call\n * `lineCounter.lineStarts.sort()` before calling `linePos()`.\n */\n this.addNewLine = (offset) => this.lineStarts.push(offset);\n /**\n * Performs a binary search and returns the 1-indexed { line, col }\n * position of `offset`. If `line === 0`, `addNewLine` has never been\n * called or `offset` is before the first known newline.\n */\n this.linePos = (offset) => {\n let low = 0;\n let high = this.lineStarts.length;\n while (low < high) {\n const mid = (low + high) >> 1; // Math.floor((low + high) / 2)\n if (this.lineStarts[mid] < offset)\n low = mid + 1;\n else\n high = mid;\n }\n if (this.lineStarts[low] === offset)\n return { line: low + 1, col: 1 };\n if (low === 0)\n return { line: 0, col: offset };\n const start = this.lineStarts[low - 1];\n return { line: low, col: offset - start + 1 };\n };\n }\n}\n\nexport { LineCounter };\n","import { tokenType } from './cst.js';\nimport { Lexer } from './lexer.js';\n\nfunction includesToken(list, type) {\n for (let i = 0; i < list.length; ++i)\n if (list[i].type === type)\n return true;\n return false;\n}\nfunction findNonEmptyIndex(list) {\n for (let i = 0; i < list.length; ++i) {\n switch (list[i].type) {\n case 'space':\n case 'comment':\n case 'newline':\n break;\n default:\n return i;\n }\n }\n return -1;\n}\nfunction isFlowToken(token) {\n switch (token?.type) {\n case 'alias':\n case 'scalar':\n case 'single-quoted-scalar':\n case 'double-quoted-scalar':\n case 'flow-collection':\n return true;\n default:\n return false;\n }\n}\nfunction getPrevProps(parent) {\n switch (parent.type) {\n case 'document':\n return parent.start;\n case 'block-map': {\n const it = parent.items[parent.items.length - 1];\n return it.sep ?? it.start;\n }\n case 'block-seq':\n return parent.items[parent.items.length - 1].start;\n /* istanbul ignore next should not happen */\n default:\n return [];\n }\n}\n/** Note: May modify input array */\nfunction getFirstKeyStartProps(prev) {\n if (prev.length === 0)\n return [];\n let i = prev.length;\n loop: while (--i >= 0) {\n switch (prev[i].type) {\n case 'doc-start':\n case 'explicit-key-ind':\n case 'map-value-ind':\n case 'seq-item-ind':\n case 'newline':\n break loop;\n }\n }\n while (prev[++i]?.type === 'space') {\n /* loop */\n }\n return prev.splice(i, prev.length);\n}\nfunction fixFlowSeqItems(fc) {\n if (fc.start.type === 'flow-seq-start') {\n for (const it of fc.items) {\n if (it.sep &&\n !it.value &&\n !includesToken(it.start, 'explicit-key-ind') &&\n !includesToken(it.sep, 'map-value-ind')) {\n if (it.key)\n it.value = it.key;\n delete it.key;\n if (isFlowToken(it.value)) {\n if (it.value.end)\n Array.prototype.push.apply(it.value.end, it.sep);\n else\n it.value.end = it.sep;\n }\n else\n Array.prototype.push.apply(it.start, it.sep);\n delete it.sep;\n }\n }\n }\n}\n/**\n * A YAML concrete syntax tree (CST) parser\n *\n * ```ts\n * const src: string = ...\n * for (const token of new Parser().parse(src)) {\n * // token: Token\n * }\n * ```\n *\n * To use the parser with a user-provided lexer:\n *\n * ```ts\n * function* parse(source: string, lexer: Lexer) {\n * const parser = new Parser()\n * for (const lexeme of lexer.lex(source))\n * yield* parser.next(lexeme)\n * yield* parser.end()\n * }\n *\n * const src: string = ...\n * const lexer = new Lexer()\n * for (const token of parse(src, lexer)) {\n * // token: Token\n * }\n * ```\n */\nclass Parser {\n /**\n * @param onNewLine - If defined, called separately with the start position of\n * each new line (in `parse()`, including the start of input).\n */\n constructor(onNewLine) {\n /** If true, space and sequence indicators count as indentation */\n this.atNewLine = true;\n /** If true, next token is a scalar value */\n this.atScalar = false;\n /** Current indentation level */\n this.indent = 0;\n /** Current offset since the start of parsing */\n this.offset = 0;\n /** On the same line with a block map key */\n this.onKeyLine = false;\n /** Top indicates the node that's currently being built */\n this.stack = [];\n /** The source of the current token, set in parse() */\n this.source = '';\n /** The type of the current token, set in parse() */\n this.type = '';\n // Must be defined after `next()`\n this.lexer = new Lexer();\n this.onNewLine = onNewLine;\n }\n /**\n * Parse `source` as a YAML stream.\n * If `incomplete`, a part of the last line may be left as a buffer for the next call.\n *\n * Errors are not thrown, but yielded as `{ type: 'error', message }` tokens.\n *\n * @returns A generator of tokens representing each directive, document, and other structure.\n */\n *parse(source, incomplete = false) {\n if (this.onNewLine && this.offset === 0)\n this.onNewLine(0);\n for (const lexeme of this.lexer.lex(source, incomplete))\n yield* this.next(lexeme);\n if (!incomplete)\n yield* this.end();\n }\n /**\n * Advance the parser by the `source` of one lexical token.\n */\n *next(source) {\n this.source = source;\n if (this.atScalar) {\n this.atScalar = false;\n yield* this.step();\n this.offset += source.length;\n return;\n }\n const type = tokenType(source);\n if (!type) {\n const message = `Not a YAML token: ${source}`;\n yield* this.pop({ type: 'error', offset: this.offset, message, source });\n this.offset += source.length;\n }\n else if (type === 'scalar') {\n this.atNewLine = false;\n this.atScalar = true;\n this.type = 'scalar';\n }\n else {\n this.type = type;\n yield* this.step();\n switch (type) {\n case 'newline':\n this.atNewLine = true;\n this.indent = 0;\n if (this.onNewLine)\n this.onNewLine(this.offset + source.length);\n break;\n case 'space':\n if (this.atNewLine && source[0] === ' ')\n this.indent += source.length;\n break;\n case 'explicit-key-ind':\n case 'map-value-ind':\n case 'seq-item-ind':\n if (this.atNewLine)\n this.indent += source.length;\n break;\n case 'doc-mode':\n case 'flow-error-end':\n return;\n default:\n this.atNewLine = false;\n }\n this.offset += source.length;\n }\n }\n /** Call at end of input to push out any remaining constructions */\n *end() {\n while (this.stack.length > 0)\n yield* this.pop();\n }\n get sourceToken() {\n const st = {\n type: this.type,\n offset: this.offset,\n indent: this.indent,\n source: this.source\n };\n return st;\n }\n *step() {\n const top = this.peek(1);\n if (this.type === 'doc-end' && (!top || top.type !== 'doc-end')) {\n while (this.stack.length > 0)\n yield* this.pop();\n this.stack.push({\n type: 'doc-end',\n offset: this.offset,\n source: this.source\n });\n return;\n }\n if (!top)\n return yield* this.stream();\n switch (top.type) {\n case 'document':\n return yield* this.document(top);\n case 'alias':\n case 'scalar':\n case 'single-quoted-scalar':\n case 'double-quoted-scalar':\n return yield* this.scalar(top);\n case 'block-scalar':\n return yield* this.blockScalar(top);\n case 'block-map':\n return yield* this.blockMap(top);\n case 'block-seq':\n return yield* this.blockSequence(top);\n case 'flow-collection':\n return yield* this.flowCollection(top);\n case 'doc-end':\n return yield* this.documentEnd(top);\n }\n /* istanbul ignore next should not happen */\n yield* this.pop();\n }\n peek(n) {\n return this.stack[this.stack.length - n];\n }\n *pop(error) {\n const token = error ?? this.stack.pop();\n /* istanbul ignore if should not happen */\n if (!token) {\n const message = 'Tried to pop an empty stack';\n yield { type: 'error', offset: this.offset, source: '', message };\n }\n else if (this.stack.length === 0) {\n yield token;\n }\n else {\n const top = this.peek(1);\n if (token.type === 'block-scalar') {\n // Block scalars use their parent rather than header indent\n token.indent = 'indent' in top ? top.indent : 0;\n }\n else if (token.type === 'flow-collection' && top.type === 'document') {\n // Ignore all indent for top-level flow collections\n token.indent = 0;\n }\n if (token.type === 'flow-collection')\n fixFlowSeqItems(token);\n switch (top.type) {\n case 'document':\n top.value = token;\n break;\n case 'block-scalar':\n top.props.push(token); // error\n break;\n case 'block-map': {\n const it = top.items[top.items.length - 1];\n if (it.value) {\n top.items.push({ start: [], key: token, sep: [] });\n this.onKeyLine = true;\n return;\n }\n else if (it.sep) {\n it.value = token;\n }\n else {\n Object.assign(it, { key: token, sep: [] });\n this.onKeyLine = !it.explicitKey;\n return;\n }\n break;\n }\n case 'block-seq': {\n const it = top.items[top.items.length - 1];\n if (it.value)\n top.items.push({ start: [], value: token });\n else\n it.value = token;\n break;\n }\n case 'flow-collection': {\n const it = top.items[top.items.length - 1];\n if (!it || it.value)\n top.items.push({ start: [], key: token, sep: [] });\n else if (it.sep)\n it.value = token;\n else\n Object.assign(it, { key: token, sep: [] });\n return;\n }\n /* istanbul ignore next should not happen */\n default:\n yield* this.pop();\n yield* this.pop(token);\n }\n if ((top.type === 'document' ||\n top.type === 'block-map' ||\n top.type === 'block-seq') &&\n (token.type === 'block-map' || token.type === 'block-seq')) {\n const last = token.items[token.items.length - 1];\n if (last &&\n !last.sep &&\n !last.value &&\n last.start.length > 0 &&\n findNonEmptyIndex(last.start) === -1 &&\n (token.indent === 0 ||\n last.start.every(st => st.type !== 'comment' || st.indent < token.indent))) {\n if (top.type === 'document')\n top.end = last.start;\n else\n top.items.push({ start: last.start });\n token.items.splice(-1, 1);\n }\n }\n }\n }\n *stream() {\n switch (this.type) {\n case 'directive-line':\n yield { type: 'directive', offset: this.offset, source: this.source };\n return;\n case 'byte-order-mark':\n case 'space':\n case 'comment':\n case 'newline':\n yield this.sourceToken;\n return;\n case 'doc-mode':\n case 'doc-start': {\n const doc = {\n type: 'document',\n offset: this.offset,\n start: []\n };\n if (this.type === 'doc-start')\n doc.start.push(this.sourceToken);\n this.stack.push(doc);\n return;\n }\n }\n yield {\n type: 'error',\n offset: this.offset,\n message: `Unexpected ${this.type} token in YAML stream`,\n source: this.source\n };\n }\n *document(doc) {\n if (doc.value)\n return yield* this.lineEnd(doc);\n switch (this.type) {\n case 'doc-start': {\n if (findNonEmptyIndex(doc.start) !== -1) {\n yield* this.pop();\n yield* this.step();\n }\n else\n doc.start.push(this.sourceToken);\n return;\n }\n case 'anchor':\n case 'tag':\n case 'space':\n case 'comment':\n case 'newline':\n doc.start.push(this.sourceToken);\n return;\n }\n const bv = this.startBlockValue(doc);\n if (bv)\n this.stack.push(bv);\n else {\n yield {\n type: 'error',\n offset: this.offset,\n message: `Unexpected ${this.type} token in YAML document`,\n source: this.source\n };\n }\n }\n *scalar(scalar) {\n if (this.type === 'map-value-ind') {\n const prev = getPrevProps(this.peek(2));\n const start = getFirstKeyStartProps(prev);\n let sep;\n if (scalar.end) {\n sep = scalar.end;\n sep.push(this.sourceToken);\n delete scalar.end;\n }\n else\n sep = [this.sourceToken];\n const map = {\n type: 'block-map',\n offset: scalar.offset,\n indent: scalar.indent,\n items: [{ start, key: scalar, sep }]\n };\n this.onKeyLine = true;\n this.stack[this.stack.length - 1] = map;\n }\n else\n yield* this.lineEnd(scalar);\n }\n *blockScalar(scalar) {\n switch (this.type) {\n case 'space':\n case 'comment':\n case 'newline':\n scalar.props.push(this.sourceToken);\n return;\n case 'scalar':\n scalar.source = this.source;\n // block-scalar source includes trailing newline\n this.atNewLine = true;\n this.indent = 0;\n if (this.onNewLine) {\n let nl = this.source.indexOf('\\n') + 1;\n while (nl !== 0) {\n this.onNewLine(this.offset + nl);\n nl = this.source.indexOf('\\n', nl) + 1;\n }\n }\n yield* this.pop();\n break;\n /* istanbul ignore next should not happen */\n default:\n yield* this.pop();\n yield* this.step();\n }\n }\n *blockMap(map) {\n const it = map.items[map.items.length - 1];\n // it.sep is true-ish if pair already has key or : separator\n switch (this.type) {\n case 'newline':\n this.onKeyLine = false;\n if (it.value) {\n const end = 'end' in it.value ? it.value.end : undefined;\n const last = Array.isArray(end) ? end[end.length - 1] : undefined;\n if (last?.type === 'comment')\n end?.push(this.sourceToken);\n else\n map.items.push({ start: [this.sourceToken] });\n }\n else if (it.sep) {\n it.sep.push(this.sourceToken);\n }\n else {\n it.start.push(this.sourceToken);\n }\n return;\n case 'space':\n case 'comment':\n if (it.value) {\n map.items.push({ start: [this.sourceToken] });\n }\n else if (it.sep) {\n it.sep.push(this.sourceToken);\n }\n else {\n if (this.atIndentedComment(it.start, map.indent)) {\n const prev = map.items[map.items.length - 2];\n const end = prev?.value?.end;\n if (Array.isArray(end)) {\n Array.prototype.push.apply(end, it.start);\n end.push(this.sourceToken);\n map.items.pop();\n return;\n }\n }\n it.start.push(this.sourceToken);\n }\n return;\n }\n if (this.indent >= map.indent) {\n const atMapIndent = !this.onKeyLine && this.indent === map.indent;\n const atNextItem = atMapIndent &&\n (it.sep || it.explicitKey) &&\n this.type !== 'seq-item-ind';\n // For empty nodes, assign newline-separated not indented empty tokens to following node\n let start = [];\n if (atNextItem && it.sep && !it.value) {\n const nl = [];\n for (let i = 0; i < it.sep.length; ++i) {\n const st = it.sep[i];\n switch (st.type) {\n case 'newline':\n nl.push(i);\n break;\n case 'space':\n break;\n case 'comment':\n if (st.indent > map.indent)\n nl.length = 0;\n break;\n default:\n nl.length = 0;\n }\n }\n if (nl.length >= 2)\n start = it.sep.splice(nl[1]);\n }\n switch (this.type) {\n case 'anchor':\n case 'tag':\n if (atNextItem || it.value) {\n start.push(this.sourceToken);\n map.items.push({ start });\n this.onKeyLine = true;\n }\n else if (it.sep) {\n it.sep.push(this.sourceToken);\n }\n else {\n it.start.push(this.sourceToken);\n }\n return;\n case 'explicit-key-ind':\n if (!it.sep && !it.explicitKey) {\n it.start.push(this.sourceToken);\n it.explicitKey = true;\n }\n else if (atNextItem || it.value) {\n start.push(this.sourceToken);\n map.items.push({ start, explicitKey: true });\n }\n else {\n this.stack.push({\n type: 'block-map',\n offset: this.offset,\n indent: this.indent,\n items: [{ start: [this.sourceToken], explicitKey: true }]\n });\n }\n this.onKeyLine = true;\n return;\n case 'map-value-ind':\n if (it.explicitKey) {\n if (!it.sep) {\n if (includesToken(it.start, 'newline')) {\n Object.assign(it, { key: null, sep: [this.sourceToken] });\n }\n else {\n const start = getFirstKeyStartProps(it.start);\n this.stack.push({\n type: 'block-map',\n offset: this.offset,\n indent: this.indent,\n items: [{ start, key: null, sep: [this.sourceToken] }]\n });\n }\n }\n else if (it.value) {\n map.items.push({ start: [], key: null, sep: [this.sourceToken] });\n }\n else if (includesToken(it.sep, 'map-value-ind')) {\n this.stack.push({\n type: 'block-map',\n offset: this.offset,\n indent: this.indent,\n items: [{ start, key: null, sep: [this.sourceToken] }]\n });\n }\n else if (isFlowToken(it.key) &&\n !includesToken(it.sep, 'newline')) {\n const start = getFirstKeyStartProps(it.start);\n const key = it.key;\n const sep = it.sep;\n sep.push(this.sourceToken);\n // @ts-expect-error type guard is wrong here\n delete it.key, delete it.sep;\n this.stack.push({\n type: 'block-map',\n offset: this.offset,\n indent: this.indent,\n items: [{ start, key, sep }]\n });\n }\n else if (start.length > 0) {\n // Not actually at next item\n it.sep = it.sep.concat(start, this.sourceToken);\n }\n else {\n it.sep.push(this.sourceToken);\n }\n }\n else {\n if (!it.sep) {\n Object.assign(it, { key: null, sep: [this.sourceToken] });\n }\n else if (it.value || atNextItem) {\n map.items.push({ start, key: null, sep: [this.sourceToken] });\n }\n else if (includesToken(it.sep, 'map-value-ind')) {\n this.stack.push({\n type: 'block-map',\n offset: this.offset,\n indent: this.indent,\n items: [{ start: [], key: null, sep: [this.sourceToken] }]\n });\n }\n else {\n it.sep.push(this.sourceToken);\n }\n }\n this.onKeyLine = true;\n return;\n case 'alias':\n case 'scalar':\n case 'single-quoted-scalar':\n case 'double-quoted-scalar': {\n const fs = this.flowScalar(this.type);\n if (atNextItem || it.value) {\n map.items.push({ start, key: fs, sep: [] });\n this.onKeyLine = true;\n }\n else if (it.sep) {\n this.stack.push(fs);\n }\n else {\n Object.assign(it, { key: fs, sep: [] });\n this.onKeyLine = true;\n }\n return;\n }\n default: {\n const bv = this.startBlockValue(map);\n if (bv) {\n if (atMapIndent && bv.type !== 'block-seq') {\n map.items.push({ start });\n }\n this.stack.push(bv);\n return;\n }\n }\n }\n }\n yield* this.pop();\n yield* this.step();\n }\n *blockSequence(seq) {\n const it = seq.items[seq.items.length - 1];\n switch (this.type) {\n case 'newline':\n if (it.value) {\n const end = 'end' in it.value ? it.value.end : undefined;\n const last = Array.isArray(end) ? end[end.length - 1] : undefined;\n if (last?.type === 'comment')\n end?.push(this.sourceToken);\n else\n seq.items.push({ start: [this.sourceToken] });\n }\n else\n it.start.push(this.sourceToken);\n return;\n case 'space':\n case 'comment':\n if (it.value)\n seq.items.push({ start: [this.sourceToken] });\n else {\n if (this.atIndentedComment(it.start, seq.indent)) {\n const prev = seq.items[seq.items.length - 2];\n const end = prev?.value?.end;\n if (Array.isArray(end)) {\n Array.prototype.push.apply(end, it.start);\n end.push(this.sourceToken);\n seq.items.pop();\n return;\n }\n }\n it.start.push(this.sourceToken);\n }\n return;\n case 'anchor':\n case 'tag':\n if (it.value || this.indent <= seq.indent)\n break;\n it.start.push(this.sourceToken);\n return;\n case 'seq-item-ind':\n if (this.indent !== seq.indent)\n break;\n if (it.value || includesToken(it.start, 'seq-item-ind'))\n seq.items.push({ start: [this.sourceToken] });\n else\n it.start.push(this.sourceToken);\n return;\n }\n if (this.indent > seq.indent) {\n const bv = this.startBlockValue(seq);\n if (bv) {\n this.stack.push(bv);\n return;\n }\n }\n yield* this.pop();\n yield* this.step();\n }\n *flowCollection(fc) {\n const it = fc.items[fc.items.length - 1];\n if (this.type === 'flow-error-end') {\n let top;\n do {\n yield* this.pop();\n top = this.peek(1);\n } while (top && top.type === 'flow-collection');\n }\n else if (fc.end.length === 0) {\n switch (this.type) {\n case 'comma':\n case 'explicit-key-ind':\n if (!it || it.sep)\n fc.items.push({ start: [this.sourceToken] });\n else\n it.start.push(this.sourceToken);\n return;\n case 'map-value-ind':\n if (!it || it.value)\n fc.items.push({ start: [], key: null, sep: [this.sourceToken] });\n else if (it.sep)\n it.sep.push(this.sourceToken);\n else\n Object.assign(it, { key: null, sep: [this.sourceToken] });\n return;\n case 'space':\n case 'comment':\n case 'newline':\n case 'anchor':\n case 'tag':\n if (!it || it.value)\n fc.items.push({ start: [this.sourceToken] });\n else if (it.sep)\n it.sep.push(this.sourceToken);\n else\n it.start.push(this.sourceToken);\n return;\n case 'alias':\n case 'scalar':\n case 'single-quoted-scalar':\n case 'double-quoted-scalar': {\n const fs = this.flowScalar(this.type);\n if (!it || it.value)\n fc.items.push({ start: [], key: fs, sep: [] });\n else if (it.sep)\n this.stack.push(fs);\n else\n Object.assign(it, { key: fs, sep: [] });\n return;\n }\n case 'flow-map-end':\n case 'flow-seq-end':\n fc.end.push(this.sourceToken);\n return;\n }\n const bv = this.startBlockValue(fc);\n /* istanbul ignore else should not happen */\n if (bv)\n this.stack.push(bv);\n else {\n yield* this.pop();\n yield* this.step();\n }\n }\n else {\n const parent = this.peek(2);\n if (parent.type === 'block-map' &&\n ((this.type === 'map-value-ind' && parent.indent === fc.indent) ||\n (this.type === 'newline' &&\n !parent.items[parent.items.length - 1].sep))) {\n yield* this.pop();\n yield* this.step();\n }\n else if (this.type === 'map-value-ind' &&\n parent.type !== 'flow-collection') {\n const prev = getPrevProps(parent);\n const start = getFirstKeyStartProps(prev);\n fixFlowSeqItems(fc);\n const sep = fc.end.splice(1, fc.end.length);\n sep.push(this.sourceToken);\n const map = {\n type: 'block-map',\n offset: fc.offset,\n indent: fc.indent,\n items: [{ start, key: fc, sep }]\n };\n this.onKeyLine = true;\n this.stack[this.stack.length - 1] = map;\n }\n else {\n yield* this.lineEnd(fc);\n }\n }\n }\n flowScalar(type) {\n if (this.onNewLine) {\n let nl = this.source.indexOf('\\n') + 1;\n while (nl !== 0) {\n this.onNewLine(this.offset + nl);\n nl = this.source.indexOf('\\n', nl) + 1;\n }\n }\n return {\n type,\n offset: this.offset,\n indent: this.indent,\n source: this.source\n };\n }\n startBlockValue(parent) {\n switch (this.type) {\n case 'alias':\n case 'scalar':\n case 'single-quoted-scalar':\n case 'double-quoted-scalar':\n return this.flowScalar(this.type);\n case 'block-scalar-header':\n return {\n type: 'block-scalar',\n offset: this.offset,\n indent: this.indent,\n props: [this.sourceToken],\n source: ''\n };\n case 'flow-map-start':\n case 'flow-seq-start':\n return {\n type: 'flow-collection',\n offset: this.offset,\n indent: this.indent,\n start: this.sourceToken,\n items: [],\n end: []\n };\n case 'seq-item-ind':\n return {\n type: 'block-seq',\n offset: this.offset,\n indent: this.indent,\n items: [{ start: [this.sourceToken] }]\n };\n case 'explicit-key-ind': {\n this.onKeyLine = true;\n const prev = getPrevProps(parent);\n const start = getFirstKeyStartProps(prev);\n start.push(this.sourceToken);\n return {\n type: 'block-map',\n offset: this.offset,\n indent: this.indent,\n items: [{ start, explicitKey: true }]\n };\n }\n case 'map-value-ind': {\n this.onKeyLine = true;\n const prev = getPrevProps(parent);\n const start = getFirstKeyStartProps(prev);\n return {\n type: 'block-map',\n offset: this.offset,\n indent: this.indent,\n items: [{ start, key: null, sep: [this.sourceToken] }]\n };\n }\n }\n return null;\n }\n atIndentedComment(start, indent) {\n if (this.type !== 'comment')\n return false;\n if (this.indent <= indent)\n return false;\n return start.every(st => st.type === 'newline' || st.type === 'space');\n }\n *documentEnd(docEnd) {\n if (this.type !== 'doc-mode') {\n if (docEnd.end)\n docEnd.end.push(this.sourceToken);\n else\n docEnd.end = [this.sourceToken];\n if (this.type === 'newline')\n yield* this.pop();\n }\n }\n *lineEnd(token) {\n switch (this.type) {\n case 'comma':\n case 'doc-start':\n case 'doc-end':\n case 'flow-seq-end':\n case 'flow-map-end':\n case 'map-value-ind':\n yield* this.pop();\n yield* this.step();\n break;\n case 'newline':\n this.onKeyLine = false;\n // fallthrough\n case 'space':\n case 'comment':\n default:\n // all other values are errors\n if (token.end)\n token.end.push(this.sourceToken);\n else\n token.end = [this.sourceToken];\n if (this.type === 'newline')\n yield* this.pop();\n }\n }\n}\n\nexport { Parser };\n","import { Composer } from './compose/composer.js';\nimport { Document } from './doc/Document.js';\nimport { prettifyError, YAMLParseError } from './errors.js';\nimport { warn } from './log.js';\nimport { LineCounter } from './parse/line-counter.js';\nimport { Parser } from './parse/parser.js';\n\nfunction parseOptions(options) {\n const prettyErrors = options.prettyErrors !== false;\n const lineCounter = options.lineCounter || (prettyErrors && new LineCounter()) || null;\n return { lineCounter, prettyErrors };\n}\n/**\n * Parse the input as a stream of YAML documents.\n *\n * Documents should be separated from each other by `...` or `---` marker lines.\n *\n * @returns If an empty `docs` array is returned, it will be of type\n * EmptyStream and contain additional stream information. In\n * TypeScript, you should use `'empty' in docs` as a type guard for it.\n */\nfunction parseAllDocuments(source, options = {}) {\n const { lineCounter, prettyErrors } = parseOptions(options);\n const parser = new Parser(lineCounter?.addNewLine);\n const composer = new Composer(options);\n const docs = Array.from(composer.compose(parser.parse(source)));\n if (prettyErrors && lineCounter)\n for (const doc of docs) {\n doc.errors.forEach(prettifyError(source, lineCounter));\n doc.warnings.forEach(prettifyError(source, lineCounter));\n }\n if (docs.length > 0)\n return docs;\n return Object.assign([], { empty: true }, composer.streamInfo());\n}\n/** Parse an input string into a single YAML.Document */\nfunction parseDocument(source, options = {}) {\n const { lineCounter, prettyErrors } = parseOptions(options);\n const parser = new Parser(lineCounter?.addNewLine);\n const composer = new Composer(options);\n // `doc` is always set by compose.end(true) at the very latest\n let doc = null;\n for (const _doc of composer.compose(parser.parse(source), true, source.length)) {\n if (!doc)\n doc = _doc;\n else if (doc.options.logLevel !== 'silent') {\n doc.errors.push(new YAMLParseError(_doc.range.slice(0, 2), 'MULTIPLE_DOCS', 'Source contains multiple documents; please use YAML.parseAllDocuments()'));\n break;\n }\n }\n if (prettyErrors && lineCounter) {\n doc.errors.forEach(prettifyError(source, lineCounter));\n doc.warnings.forEach(prettifyError(source, lineCounter));\n }\n return doc;\n}\nfunction parse(src, reviver, options) {\n let _reviver = undefined;\n if (typeof reviver === 'function') {\n _reviver = reviver;\n }\n else if (options === undefined && reviver && typeof reviver === 'object') {\n options = reviver;\n }\n const doc = parseDocument(src, options);\n if (!doc)\n return null;\n doc.warnings.forEach(warning => warn(doc.options.logLevel, warning));\n if (doc.errors.length > 0) {\n if (doc.options.logLevel !== 'silent')\n throw doc.errors[0];\n else\n doc.errors = [];\n }\n return doc.toJS(Object.assign({ reviver: _reviver }, options));\n}\nfunction stringify(value, replacer, options) {\n let _replacer = null;\n if (typeof replacer === 'function' || Array.isArray(replacer)) {\n _replacer = replacer;\n }\n else if (options === undefined && replacer) {\n options = replacer;\n }\n if (typeof options === 'string')\n options = options.length;\n if (typeof options === 'number') {\n const indent = Math.round(options);\n options = indent < 1 ? undefined : indent > 8 ? { indent: 8 } : { indent };\n }\n if (value === undefined) {\n const { keepUndefined } = options ?? replacer ?? {};\n if (!keepUndefined)\n return undefined;\n }\n return new Document(value, _replacer, options).toString(options);\n}\n\nexport { parse, parseAllDocuments, parseDocument, stringify };\n"],"names":["ALIAS","DOC","MAP","PAIR","SCALAR","SEQ","NODE_TYPE","isAlias","node","isDocument","isMap","isPair","isScalar","isSeq","isCollection","isNode","hasAnchor","BREAK","SKIP","REMOVE","visit","visitor","visitor_","initVisitor","visit_","key","path","ctrl","callVisitor","replaceNode","i","ci","ck","cv","visitAsync","visitAsync_","_a","_b","_c","_d","_e","parent","pt","escapeChars","escapeTagName","tn","ch","Directives","yaml","tags","copy","res","line","onError","parts","name","handle","prefix","version","isValid","source","verbatim","suffix","error","tag","doc","lines","tagEntries","tagNames","_key","anchorIsValid","anchor","msg","anchorNames","root","anchors","findNewAnchor","exclude","createNodeAnchors","aliasObjects","sourceObjects","prevAnchors","ref","applyReviver","reviver","obj","val","len","v0","v1","k","toJS","value","arg","ctx","v","data","NodeBase","type","mapAsMap","maxAliasCount","onAnchor","count","Alias","found","_arg","getAliasCount","_onComment","_onChompKeep","src","item","c","kc","vc","isScalarValue","Scalar","defaultTagPrefix","findTagObject","tagName","match","t","tagObj","createNode","map","aliasDuplicateObjects","onTagObj","schema","collectionFromPath","a","isEmptyPath","Collection","it","rest","keepScalar","allowScalar","stringifyComment","str","indentComment","comment","indent","lineComment","FOLD_FLOW","FOLD_BLOCK","FOLD_QUOTED","foldFlowLines","text","mode","indentAtStart","lineWidth","minContentWidth","onFold","onOverflow","endStep","folds","escapedFolds","end","split","prev","overflow","escStart","escEnd","consumeMoreIndentedLines","next","j","fold","start","getFoldOptions","isBlock","containsDocumentMarker","lineLengthOverLimit","indentLength","limit","strLen","doubleQuotedString","json","implicitKey","minMultiLineLength","code","singleQuotedString","quotedString","singleQuote","qs","hasDouble","hasSingle","blockEndNewlines","blockString","onComment","onChompKeep","blockQuote","commentString","literal","chomp","endStart","endNlPos","startWithSpace","startEnd","startNlPos","header","body","plainString","actualString","indentStep","inFlow","test","compat","stringifyString","ss","_stringify","_type","defaultKeyType","defaultStringType","createStringifyContext","options","opt","getTagObject","stringifyProps","props","stringify","o","stringifyPair","allNullValues","indentSeq","simpleKeys","keyComment","explicitKey","keyCommentDone","chompKeep","vsb","vcb","valueComment","valueCommentDone","valueStr","ws","cs","vs0","nl0","hasNewline","flow","hasPropsLine","sp0","warn","logLevel","warning","MERGE_KEY","addPairToJSMap","isMergeKey","mergeToJSMap","jsKey","stringKey","stringifyKey","jsValue","srcMap","strCtx","strKey","jsonStr","createPair","Pair","_","pair","stringifyCollection","collection","stringifyFlowCollection","stringifyBlockCollection","items","blockItemPrefix","flowChars","itemIndent","itemCtx","addCommentBefore","ik","fcPadding","reqNewline","linesAtValue","iv","sum","ic","findPair","YAMLMap","keepUndefined","replacer","add","overwrite","_pair","sortEntries","Type","YAMLSeq","idx","asItemIndex","seq","string","nullTag","boolTag","sv","stringifyNumber","format","minFractionDigits","num","n","d","floatNaN","floatExp","float","dot","intIdentify","intResolve","offset","radix","intAsBigInt","intStringify","intOct","_onError","int","intHex","stringifyJSON","jsonScalars","jsonError","binary","buffer","buf","s","resolvePairs","cn","createPairs","iterable","pairs","keys","YAMLOMap","omap","seenKeys","boolStringify","trueTag","falseTag","f","sign","intBin","YAMLSet","keepPair","set","parseSexagesimal","asBigInt","p","stringifySexagesimal","_60","intTime","floatTime","timestamp","year","month","day","hour","minute","second","millisec","date","tz","schemas","schema$1","schema$2","tagsByName","coreKnownTags","getTags","customTags","schemaName","sortMapEntriesByKey","b","Schema","merge","resolveKnownTags","sortMapEntries","toStringDefaults","stringifyDocument","hasDirectives","dir","contentComment","dc","Document","_replacer","assertCollection","keyToStr","asStr","anchorPrefix","setAnchors","jsonArg","contents","YAMLError","pos","message","YAMLParseError","YAMLWarning","prettifyError","lc","col","lineStr","trimStart","pointer","resolveProps","tokens","indicator","parentIndent","startOnNewline","spaceBefore","atNewline","hasSpace","commentSep","reqSpace","tab","newlineAfterProp","comma","token","cb","last","containsNewline","st","flowIndentCheck","fc","mapIncludes","search","uniqueKeys","isEqual","startColMsg","resolveBlockMap","composeNode","composeEmptyNode","bm","NodeClass","commentEnd","collItem","sep","keyProps","keyStart","keyNode","valueProps","valueNode","resolveBlockSeq","bs","resolveEnd","blockMsg","resolveFlowCollection","fcName","coll","atRoot","prevItemComment","loop","expectedEnd","ce","ee","cePos","resolveCollection","CN","Coll","composeCollection","tagToken","nl","lastProp","expType","kt","resolveBlockScalar","scalar","parseBlockScalarHeader","splitLines","chompStart","content","trimIndent","contentStart","prevMoreIndented","crlf","strict","length","ts","first","m","resolveFlowScalar","rel","plainValue","singleQuotedValue","doubleQuotedValue","valueEnd","re","badChar","foldLines","foldNewline","cc","escapeCodes","parseCharCode","raw","wsStart","composeScalar","range","findScalarTagByName","findScalarTagByTest","matchWithTest","directives","emptyScalarPosition","before","isSrcToken","composeAlias","alias","composeDoc","opts","contentEnd","getErrorPos","parsePrelude","prelude","atComment","afterEmptyLine","Composer","afterDoc","forceDoc","endOffset","resolveAsScalar","createScalarToken","context","he","head","addEndtoBlockProps","setScalarValue","afterKey","setBlockScalarValue","setFlowScalarValue","oa","tok","cst","stringifyToken","stringifyItem","_visit","field","index","BOM","DOCUMENT","FLOW_END","prettyToken","tokenType","isEmpty","hexDigits","tagChars","flowIndicatorChars","invalidAnchorChars","isNotAnchorChar","Lexer","incomplete","dt","state","dirEnd","sp","ch0","ch1","quote","qb","lastChar","allowEmpty","allowTabs","LineCounter","low","high","mid","includesToken","list","findNonEmptyIndex","isFlowToken","getPrevProps","getFirstKeyStartProps","fixFlowSeqItems","Parser","onNewLine","lexeme","top","bv","atMapIndent","atNextItem","fs","docEnd","parseOptions","prettyErrors","parseAllDocuments","lineCounter","parser","composer","docs","parseDocument","_doc","parse","_reviver"],"mappings":"AAAA,MAAMA,KAAQ,OAAO,IAAI,YAAY,GAC/BC,KAAM,OAAO,IAAI,eAAe,GAChCC,IAAM,OAAO,IAAI,UAAU,GAC3BC,KAAO,OAAO,IAAI,WAAW,GAC7BC,IAAS,OAAO,IAAI,aAAa,GACjCC,KAAM,OAAO,IAAI,UAAU,GAC3BC,IAAY,OAAO,IAAI,gBAAgB,GACvCC,IAAU,CAACC,MAAS,CAAC,CAACA,KAAQ,OAAOA,KAAS,YAAYA,EAAKF,CAAS,MAAMN,IAC9ES,KAAa,CAACD,MAAS,CAAC,CAACA,KAAQ,OAAOA,KAAS,YAAYA,EAAKF,CAAS,MAAML,IACjFS,KAAQ,CAACF,MAAS,CAAC,CAACA,KAAQ,OAAOA,KAAS,YAAYA,EAAKF,CAAS,MAAMJ,GAC5ES,IAAS,CAACH,MAAS,CAAC,CAACA,KAAQ,OAAOA,KAAS,YAAYA,EAAKF,CAAS,MAAMH,IAC7ES,IAAW,CAACJ,MAAS,CAAC,CAACA,KAAQ,OAAOA,KAAS,YAAYA,EAAKF,CAAS,MAAMF,GAC/ES,KAAQ,CAACL,MAAS,CAAC,CAACA,KAAQ,OAAOA,KAAS,YAAYA,EAAKF,CAAS,MAAMD;AAClF,SAASS,EAAaN,GAAM;AACxB,MAAIA,KAAQ,OAAOA,KAAS;AACxB,YAAQA,EAAKF,CAAS,GAAC;AAAA,MACnB,KAAKJ;AAAA,MACL,KAAKG;AACD,eAAO;AAAA,IACd;AACL,SAAO;AACX;AACA,SAASU,EAAOP,GAAM;AAClB,MAAIA,KAAQ,OAAOA,KAAS;AACxB,YAAQA,EAAKF,CAAS,GAAC;AAAA,MACnB,KAAKN;AAAA,MACL,KAAKE;AAAA,MACL,KAAKE;AAAAA,MACL,KAAKC;AACD,eAAO;AAAA,IACd;AACL,SAAO;AACX;AACA,MAAMW,KAAY,CAACR,OAAUI,EAASJ,CAAI,KAAKM,EAAaN,CAAI,MAAM,CAAC,CAACA,EAAK,QC/BvES,IAAQ,OAAO,aAAa,GAC5BC,KAAO,OAAO,eAAe,GAC7BC,IAAS,OAAO,aAAa;AA+BnC,SAASC,EAAMZ,GAAMa,GAAS;AAC1B,QAAMC,IAAWC,GAAYF,CAAO;AACpC,EAAIZ,GAAWD,CAAI,IACJgB,GAAO,MAAMhB,EAAK,UAAUc,GAAU,OAAO,OAAO,CAACd,CAAI,CAAC,CAAC,MAC3DW,MACPX,EAAK,WAAW,QAGpBgB,GAAO,MAAMhB,GAAMc,GAAU,OAAO,OAAO,CAAE,CAAA,CAAC;AACtD;AAKAF,EAAM,QAAQH;AAEdG,EAAM,OAAOF;AAEbE,EAAM,SAASD;AACf,SAASK,GAAOC,GAAKjB,GAAMa,GAASK,GAAM;AACtC,QAAMC,IAAOC,GAAYH,GAAKjB,GAAMa,GAASK,CAAI;AACjD,MAAIX,EAAOY,CAAI,KAAKhB,EAAOgB,CAAI;AAC3B,WAAAE,GAAYJ,GAAKC,GAAMC,CAAI,GACpBH,GAAOC,GAAKE,GAAMN,GAASK,CAAI;AAE1C,MAAI,OAAOC,KAAS;AAChB,QAAIb,EAAaN,CAAI,GAAG;AACpB,MAAAkB,IAAO,OAAO,OAAOA,EAAK,OAAOlB,CAAI,CAAC;AACtC,eAASsB,IAAI,GAAGA,IAAItB,EAAK,MAAM,QAAQ,EAAEsB,GAAG;AACxC,cAAMC,IAAKP,GAAOM,GAAGtB,EAAK,MAAMsB,CAAC,GAAGT,GAASK,CAAI;AACjD,YAAI,OAAOK,KAAO;AACd,UAAAD,IAAIC,IAAK;AAAA,aACR;AAAA,cAAIA,MAAOd;AACZ,mBAAOA;AACN,UAAIc,MAAOZ,MACZX,EAAK,MAAM,OAAOsB,GAAG,CAAC,GACtBA,KAAK;AAAA;AAAA,MAEZ;AAAA,IACJ,WACQnB,EAAOH,CAAI,GAAG;AACnB,MAAAkB,IAAO,OAAO,OAAOA,EAAK,OAAOlB,CAAI,CAAC;AACtC,YAAMwB,IAAKR,GAAO,OAAOhB,EAAK,KAAKa,GAASK,CAAI;AAChD,UAAIM,MAAOf;AACP,eAAOA;AACN,MAAIe,MAAOb,MACZX,EAAK,MAAM;AACf,YAAMyB,IAAKT,GAAO,SAAShB,EAAK,OAAOa,GAASK,CAAI;AACpD,UAAIO,MAAOhB;AACP,eAAOA;AACN,MAAIgB,MAAOd,MACZX,EAAK,QAAQ;AAAA,IACpB;AAAA;AAEL,SAAOmB;AACX;AAgCA,eAAeO,GAAW1B,GAAMa,GAAS;AACrC,QAAMC,IAAWC,GAAYF,CAAO;AACpC,EAAIZ,GAAWD,CAAI,IACJ,MAAM2B,GAAY,MAAM3B,EAAK,UAAUc,GAAU,OAAO,OAAO,CAACd,CAAI,CAAC,CAAC,MACtEW,MACPX,EAAK,WAAW,QAGpB,MAAM2B,GAAY,MAAM3B,GAAMc,GAAU,OAAO,OAAO,CAAE,CAAA,CAAC;AACjE;AAKAY,GAAW,QAAQjB;AAEnBiB,GAAW,OAAOhB;AAElBgB,GAAW,SAASf;AACpB,eAAegB,GAAYV,GAAKjB,GAAMa,GAASK,GAAM;AACjD,QAAMC,IAAO,MAAMC,GAAYH,GAAKjB,GAAMa,GAASK,CAAI;AACvD,MAAIX,EAAOY,CAAI,KAAKhB,EAAOgB,CAAI;AAC3B,WAAAE,GAAYJ,GAAKC,GAAMC,CAAI,GACpBQ,GAAYV,GAAKE,GAAMN,GAASK,CAAI;AAE/C,MAAI,OAAOC,KAAS;AAChB,QAAIb,EAAaN,CAAI,GAAG;AACpB,MAAAkB,IAAO,OAAO,OAAOA,EAAK,OAAOlB,CAAI,CAAC;AACtC,eAASsB,IAAI,GAAGA,IAAItB,EAAK,MAAM,QAAQ,EAAEsB,GAAG;AACxC,cAAMC,IAAK,MAAMI,GAAYL,GAAGtB,EAAK,MAAMsB,CAAC,GAAGT,GAASK,CAAI;AAC5D,YAAI,OAAOK,KAAO;AACd,UAAAD,IAAIC,IAAK;AAAA,aACR;AAAA,cAAIA,MAAOd;AACZ,mBAAOA;AACN,UAAIc,MAAOZ,MACZX,EAAK,MAAM,OAAOsB,GAAG,CAAC,GACtBA,KAAK;AAAA;AAAA,MAEZ;AAAA,IACJ,WACQnB,EAAOH,CAAI,GAAG;AACnB,MAAAkB,IAAO,OAAO,OAAOA,EAAK,OAAOlB,CAAI,CAAC;AACtC,YAAMwB,IAAK,MAAMG,GAAY,OAAO3B,EAAK,KAAKa,GAASK,CAAI;AAC3D,UAAIM,MAAOf;AACP,eAAOA;AACN,MAAIe,MAAOb,MACZX,EAAK,MAAM;AACf,YAAMyB,IAAK,MAAME,GAAY,SAAS3B,EAAK,OAAOa,GAASK,CAAI;AAC/D,UAAIO,MAAOhB;AACP,eAAOA;AACN,MAAIgB,MAAOd,MACZX,EAAK,QAAQ;AAAA,IACpB;AAAA;AAEL,SAAOmB;AACX;AACA,SAASJ,GAAYF,GAAS;AAC1B,SAAI,OAAOA,KAAY,aAClBA,EAAQ,cAAcA,EAAQ,QAAQA,EAAQ,SACxC,OAAO,OAAO;AAAA,IACjB,OAAOA,EAAQ;AAAA,IACf,KAAKA,EAAQ;AAAA,IACb,QAAQA,EAAQ;AAAA,IAChB,KAAKA,EAAQ;AAAA,EACzB,GAAWA,EAAQ,SAAS;AAAA,IAChB,KAAKA,EAAQ;AAAA,IACb,QAAQA,EAAQ;AAAA,IAChB,KAAKA,EAAQ;AAAA,EACzB,GAAWA,EAAQ,cAAc;AAAA,IACrB,KAAKA,EAAQ;AAAA,IACb,KAAKA,EAAQ;AAAA,EAChB,GAAEA,CAAO,IAEPA;AACX;AACA,SAASO,GAAYH,GAAKjB,GAAMa,GAASK,GAAM;ADrM/C,MAAAU,GAAAC,GAAAC,GAAAC,GAAAC;ACsMI,MAAI,OAAOnB,KAAY;AACnB,WAAOA,EAAQI,GAAKjB,GAAMkB,CAAI;AAClC,MAAIhB,GAAMF,CAAI;AACV,YAAO4B,IAAAf,EAAQ,QAAR,gBAAAe,EAAA,KAAAf,GAAcI,GAAKjB,GAAMkB;AACpC,MAAIb,GAAML,CAAI;AACV,YAAO6B,IAAAhB,EAAQ,QAAR,gBAAAgB,EAAA,KAAAhB,GAAcI,GAAKjB,GAAMkB;AACpC,MAAIf,EAAOH,CAAI;AACX,YAAO8B,IAAAjB,EAAQ,SAAR,gBAAAiB,EAAA,KAAAjB,GAAeI,GAAKjB,GAAMkB;AACrC,MAAId,EAASJ,CAAI;AACb,YAAO+B,IAAAlB,EAAQ,WAAR,gBAAAkB,EAAA,KAAAlB,GAAiBI,GAAKjB,GAAMkB;AACvC,MAAInB,EAAQC,CAAI;AACZ,YAAOgC,IAAAnB,EAAQ,UAAR,gBAAAmB,EAAA,KAAAnB,GAAgBI,GAAKjB,GAAMkB;AAE1C;AACA,SAASG,GAAYJ,GAAKC,GAAMlB,GAAM;AAClC,QAAMiC,IAASf,EAAKA,EAAK,SAAS,CAAC;AACnC,MAAIZ,EAAa2B,CAAM;AACnB,IAAAA,EAAO,MAAMhB,CAAG,IAAIjB;AAAA,WAEfG,EAAO8B,CAAM;AAClB,IAAIhB,MAAQ,QACRgB,EAAO,MAAMjC,IAEbiC,EAAO,QAAQjC;AAAA,WAEdC,GAAWgC,CAAM;AACtB,IAAAA,EAAO,WAAWjC;AAAA,OAEjB;AACD,UAAMkC,IAAKnC,EAAQkC,CAAM,IAAI,UAAU;AACvC,UAAM,IAAI,MAAM,4BAA4BC,CAAE,SAAS;AAAA,EAC1D;AACL;ACnOA,MAAMC,KAAc;AAAA,EAChB,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AACT,GACMC,KAAgB,CAACC,MAAOA,EAAG,QAAQ,cAAc,CAAAC,MAAMH,GAAYG,CAAE,CAAC;AAC5E,MAAMC,EAAW;AAAA,EACb,YAAYC,GAAMC,GAAM;AAKpB,SAAK,WAAW,MAEhB,KAAK,SAAS,IACd,KAAK,OAAO,OAAO,OAAO,CAAE,GAAEF,EAAW,aAAaC,CAAI,GAC1D,KAAK,OAAO,OAAO,OAAO,CAAE,GAAED,EAAW,aAAaE,CAAI;AAAA,EAC7D;AAAA,EACD,QAAQ;AACJ,UAAMC,IAAO,IAAIH,EAAW,KAAK,MAAM,KAAK,IAAI;AAChD,WAAAG,EAAK,WAAW,KAAK,UACdA;AAAA,EACV;AAAA;AAAA;AAAA;AAAA;AAAA,EAKD,aAAa;AACT,UAAMC,IAAM,IAAIJ,EAAW,KAAK,MAAM,KAAK,IAAI;AAC/C,YAAQ,KAAK,KAAK,SAAO;AAAA,MACrB,KAAK;AACD,aAAK,iBAAiB;AACtB;AAAA,MACJ,KAAK;AACD,aAAK,iBAAiB,IACtB,KAAK,OAAO;AAAA,UACR,UAAUA,EAAW,YAAY;AAAA,UACjC,SAAS;AAAA,QAC7B,GACgB,KAAK,OAAO,OAAO,OAAO,CAAA,GAAIA,EAAW,WAAW;AACpD;AAAA,IACP;AACD,WAAOI;AAAA,EACV;AAAA;AAAA;AAAA;AAAA;AAAA,EAKD,IAAIC,GAAMC,GAAS;AACf,IAAI,KAAK,mBACL,KAAK,OAAO,EAAE,UAAUN,EAAW,YAAY,UAAU,SAAS,SAClE,KAAK,OAAO,OAAO,OAAO,CAAA,GAAIA,EAAW,WAAW,GACpD,KAAK,iBAAiB;AAE1B,UAAMO,IAAQF,EAAK,KAAM,EAAC,MAAM,QAAQ,GAClCG,IAAOD,EAAM;AACnB,YAAQC,GAAI;AAAA,MACR,KAAK,QAAQ;AACT,YAAID,EAAM,WAAW,MACjBD,EAAQ,GAAG,iDAAiD,GACxDC,EAAM,SAAS;AACf,iBAAO;AAEf,cAAM,CAACE,GAAQC,CAAM,IAAIH;AACzB,oBAAK,KAAKE,CAAM,IAAIC,GACb;AAAA,MACV;AAAA,MACD,KAAK,SAAS;AAEV,YADA,KAAK,KAAK,WAAW,IACjBH,EAAM,WAAW;AACjB,iBAAAD,EAAQ,GAAG,iDAAiD,GACrD;AAEX,cAAM,CAACK,CAAO,IAAIJ;AAClB,YAAII,MAAY,SAASA,MAAY;AACjC,sBAAK,KAAK,UAAUA,GACb;AAEN;AACD,gBAAMC,IAAU,aAAa,KAAKD,CAAO;AACzC,iBAAAL,EAAQ,GAAG,4BAA4BK,CAAO,IAAIC,CAAO,GAClD;AAAA,QACV;AAAA,MACJ;AAAA,MACD;AACI,eAAAN,EAAQ,GAAG,qBAAqBE,CAAI,IAAI,EAAI,GACrC;AAAA,IACd;AAAA,EACJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOD,QAAQK,GAAQP,GAAS;AACrB,QAAIO,MAAW;AACX,aAAO;AACX,QAAIA,EAAO,CAAC,MAAM;AACd,aAAAP,EAAQ,oBAAoBO,CAAM,EAAE,GAC7B;AAEX,QAAIA,EAAO,CAAC,MAAM,KAAK;AACnB,YAAMC,IAAWD,EAAO,MAAM,GAAG,EAAE;AACnC,aAAIC,MAAa,OAAOA,MAAa,QACjCR,EAAQ,qCAAqCO,CAAM,cAAc,GAC1D,SAEPA,EAAOA,EAAO,SAAS,CAAC,MAAM,OAC9BP,EAAQ,iCAAiC,GACtCQ;AAAA,IACV;AACD,UAAM,CAAA,EAAGL,GAAQM,CAAM,IAAIF,EAAO,MAAM,iBAAiB;AACzD,IAAKE,KACDT,EAAQ,OAAOO,CAAM,oBAAoB;AAC7C,UAAMH,IAAS,KAAK,KAAKD,CAAM;AAC/B,QAAIC;AACA,UAAI;AACA,eAAOA,IAAS,mBAAmBK,CAAM;AAAA,MAC5C,SACMC,GAAO;AACV,eAAAV,EAAQ,OAAOU,CAAK,CAAC,GACd;AAAA,MACV;AAEL,WAAIP,MAAW,MACJI,KACXP,EAAQ,0BAA0BO,CAAM,EAAE,GACnC;AAAA,EACV;AAAA;AAAA;AAAA;AAAA;AAAA,EAKD,UAAUI,GAAK;AACX,eAAW,CAACR,GAAQC,CAAM,KAAK,OAAO,QAAQ,KAAK,IAAI;AACnD,UAAIO,EAAI,WAAWP,CAAM;AACrB,eAAOD,IAASZ,GAAcoB,EAAI,UAAUP,EAAO,MAAM,CAAC;AAElE,WAAOO,EAAI,CAAC,MAAM,MAAMA,IAAM,KAAKA,CAAG;AAAA,EACzC;AAAA,EACD,SAASC,GAAK;AACV,UAAMC,IAAQ,KAAK,KAAK,WAClB,CAAC,SAAS,KAAK,KAAK,WAAW,KAAK,EAAE,IACtC,IACAC,IAAa,OAAO,QAAQ,KAAK,IAAI;AAC3C,QAAIC;AACJ,QAAIH,KAAOE,EAAW,SAAS,KAAKpD,EAAOkD,EAAI,QAAQ,GAAG;AACtD,YAAMhB,IAAO,CAAA;AACb7B,MAAAA,EAAM6C,EAAI,UAAU,CAACI,GAAM7D,MAAS;AAChC,QAAIO,EAAOP,CAAI,KAAKA,EAAK,QACrByC,EAAKzC,EAAK,GAAG,IAAI;AAAA,MACrC,CAAa,GACD4D,IAAW,OAAO,KAAKnB,CAAI;AAAA,IAC9B;AAEG,MAAAmB,IAAW,CAAA;AACf,eAAW,CAACZ,GAAQC,CAAM,KAAKU;AAC3B,MAAIX,MAAW,QAAQC,MAAW,yBAE9B,CAACQ,KAAOG,EAAS,KAAK,CAAAvB,MAAMA,EAAG,WAAWY,CAAM,CAAC,MACjDS,EAAM,KAAK,QAAQV,CAAM,IAAIC,CAAM,EAAE;AAE7C,WAAOS,EAAM,KAAK;AAAA,CAAI;AAAA,EACzB;AACL;AACAnB,EAAW,cAAc,EAAE,UAAU,IAAO,SAAS,MAAK;AAC1DA,EAAW,cAAc,EAAE,MAAM,qBAAsB;ACrKvD,SAASuB,GAAcC,GAAQ;AAC3B,MAAI,sBAAsB,KAAKA,CAAM,GAAG;AAEpC,UAAMC,IAAM,6DADD,KAAK,UAAUD,CAAM,CAC2C;AAC3E,UAAM,IAAI,MAAMC,CAAG;AAAA,EACtB;AACD,SAAO;AACX;AACA,SAASC,GAAYC,GAAM;AACvB,QAAMC,IAAU,oBAAI;AACpBvD,SAAAA,EAAMsD,GAAM;AAAA,IACR,MAAML,GAAM7D,GAAM;AACd,MAAIA,EAAK,UACLmE,EAAQ,IAAInE,EAAK,MAAM;AAAA,IAC9B;AAAA,EACT,CAAK,GACMmE;AACX;AAEA,SAASC,GAAcnB,GAAQoB,GAAS;AACpC,WAAS/C,IAAI,KAAS,EAAEA,GAAG;AACvB,UAAMyB,IAAO,GAAGE,CAAM,GAAG3B,CAAC;AAC1B,QAAI,CAAC+C,EAAQ,IAAItB,CAAI;AACjB,aAAOA;AAAA,EACd;AACL;AACA,SAASuB,GAAkBb,GAAKR,GAAQ;AACpC,QAAMsB,IAAe,CAAA,GACfC,IAAgB,oBAAI;AAC1B,MAAIC,IAAc;AAClB,SAAO;AAAA,IACH,UAAU,CAACrB,MAAW;AAClB,MAAAmB,EAAa,KAAKnB,CAAM,GACnBqB,MACDA,IAAcR,GAAYR,CAAG;AACjC,YAAMM,IAASK,GAAcnB,GAAQwB,CAAW;AAChD,aAAAA,EAAY,IAAIV,CAAM,GACfA;AAAA,IACV;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAMD,YAAY,MAAM;AACd,iBAAWX,KAAUmB,GAAc;AAC/B,cAAMG,IAAMF,EAAc,IAAIpB,CAAM;AACpC,YAAI,OAAOsB,KAAQ,YACfA,EAAI,WACHtE,EAASsE,EAAI,IAAI,KAAKpE,EAAaoE,EAAI,IAAI;AAC5C,UAAAA,EAAI,KAAK,SAASA,EAAI;AAAA,aAErB;AACD,gBAAMnB,IAAQ,IAAI,MAAM,4DAA4D;AACpF,gBAAAA,EAAM,SAASH,GACTG;AAAA,QACT;AAAA,MACJ;AAAA,IACJ;AAAA,IACD,eAAAiB;AAAA,EACR;AACA;AC9DA,SAASG,GAAaC,GAASC,GAAK5D,GAAK6D,GAAK;AAC1C,MAAIA,KAAO,OAAOA,KAAQ;AACtB,QAAI,MAAM,QAAQA,CAAG;AACjB,eAAS,IAAI,GAAGC,IAAMD,EAAI,QAAQ,IAAIC,GAAK,EAAE,GAAG;AAC5C,cAAMC,IAAKF,EAAI,CAAC,GACVG,IAAKN,GAAaC,GAASE,GAAK,OAAO,CAAC,GAAGE,CAAE;AACnD,QAAIC,MAAO,SACP,OAAOH,EAAI,CAAC,IACPG,MAAOD,MACZF,EAAI,CAAC,IAAIG;AAAA,MAChB;AAAA,aAEIH,aAAe;AACpB,iBAAWI,KAAK,MAAM,KAAKJ,EAAI,KAAI,CAAE,GAAG;AACpC,cAAME,IAAKF,EAAI,IAAII,CAAC,GACdD,IAAKN,GAAaC,GAASE,GAAKI,GAAGF,CAAE;AAC3C,QAAIC,MAAO,SACPH,EAAI,OAAOI,CAAC,IACPD,MAAOD,KACZF,EAAI,IAAII,GAAGD,CAAE;AAAA,MACpB;AAAA,aAEIH,aAAe;AACpB,iBAAWE,KAAM,MAAM,KAAKF,CAAG,GAAG;AAC9B,cAAMG,IAAKN,GAAaC,GAASE,GAAKE,GAAIA,CAAE;AAC5C,QAAIC,MAAO,SACPH,EAAI,OAAOE,CAAE,IACRC,MAAOD,MACZF,EAAI,OAAOE,CAAE,GACbF,EAAI,IAAIG,CAAE;AAAA,MAEjB;AAAA;AAGD,iBAAW,CAACC,GAAGF,CAAE,KAAK,OAAO,QAAQF,CAAG,GAAG;AACvC,cAAMG,IAAKN,GAAaC,GAASE,GAAKI,GAAGF,CAAE;AAC3C,QAAIC,MAAO,SACP,OAAOH,EAAII,CAAC,IACPD,MAAOD,MACZF,EAAII,CAAC,IAAID;AAAA,MAChB;AAGT,SAAOL,EAAQ,KAAKC,GAAK5D,GAAK6D,CAAG;AACrC;ACvCA,SAASK,EAAKC,GAAOC,GAAKC,GAAK;AAE3B,MAAI,MAAM,QAAQF,CAAK;AACnB,WAAOA,EAAM,IAAI,CAACG,GAAG,MAAMJ,EAAKI,GAAG,OAAO,CAAC,GAAGD,CAAG,CAAC;AACtD,MAAIF,KAAS,OAAOA,EAAM,UAAW,YAAY;AAE7C,QAAI,CAACE,KAAO,CAAC9E,GAAU4E,CAAK;AACxB,aAAOA,EAAM,OAAOC,GAAKC,CAAG;AAChC,UAAME,IAAO,EAAE,YAAY,GAAG,OAAO,GAAG,KAAK;AAC7C,IAAAF,EAAI,QAAQ,IAAIF,GAAOI,CAAI,GAC3BF,EAAI,WAAW,CAAA3C,MAAO;AAClB,MAAA6C,EAAK,MAAM7C,GACX,OAAO2C,EAAI;AAAA,IACvB;AACQ,UAAM3C,IAAMyC,EAAM,OAAOC,GAAKC,CAAG;AACjC,WAAIA,EAAI,YACJA,EAAI,SAAS3C,CAAG,GACbA;AAAA,EACV;AACD,SAAI,OAAOyC,KAAU,YAAY,EAACE,KAAA,QAAAA,EAAK,QAC5B,OAAOF,CAAK,IAChBA;AACX;AC9BA,MAAMK,GAAS;AAAA,EACX,YAAYC,GAAM;AACd,WAAO,eAAe,MAAM5F,GAAW,EAAE,OAAO4F,EAAI,CAAE;AAAA,EACzD;AAAA;AAAA,EAED,QAAQ;AACJ,UAAMhD,IAAO,OAAO,OAAO,OAAO,eAAe,IAAI,GAAG,OAAO,0BAA0B,IAAI,CAAC;AAC9F,WAAI,KAAK,UACLA,EAAK,QAAQ,KAAK,MAAM,MAAK,IAC1BA;AAAA,EACV;AAAA;AAAA,EAED,KAAKe,GAAK,EAAE,UAAAkC,GAAU,eAAAC,GAAe,UAAAC,GAAU,SAAAjB,EAAS,IAAG,IAAI;AAC3D,QAAI,CAAC3E,GAAWwD,CAAG;AACf,YAAM,IAAI,UAAU,iCAAiC;AACzD,UAAM6B,IAAM;AAAA,MACR,SAAS,oBAAI,IAAK;AAAA,MAClB,KAAA7B;AAAA,MACA,MAAM;AAAA,MACN,UAAUkC,MAAa;AAAA,MACvB,cAAc;AAAA,MACd,eAAe,OAAOC,KAAkB,WAAWA,IAAgB;AAAA,IAC/E,GACcjD,IAAMwC,EAAK,MAAM,IAAIG,CAAG;AAC9B,QAAI,OAAOO,KAAa;AACpB,iBAAW,EAAE,OAAAC,GAAO,KAAAnD,EAAK,KAAI2C,EAAI,QAAQ,OAAQ;AAC7C,QAAAO,EAASlD,GAAKmD,CAAK;AAC3B,WAAO,OAAOlB,KAAY,aACpBD,GAAaC,GAAS,EAAE,IAAIjC,EAAK,GAAE,IAAIA,CAAG,IAC1CA;AAAA,EACT;AACL;AC7BA,MAAMoD,WAAcN,GAAS;AAAA,EACzB,YAAYrC,GAAQ;AAChB,UAAM5D,EAAK,GACX,KAAK,SAAS4D,GACd,OAAO,eAAe,MAAM,OAAO;AAAA,MAC/B,MAAM;AACF,cAAM,IAAI,MAAM,8BAA8B;AAAA,MACjD;AAAA,IACb,CAAS;AAAA,EACJ;AAAA;AAAA;AAAA;AAAA;AAAA,EAKD,QAAQK,GAAK;AACT,QAAIuC;AACJpF,WAAAA,EAAM6C,GAAK;AAAA,MACP,MAAM,CAACI,GAAM7D,MAAS;AAClB,YAAIA,MAAS;AACT,iBAAOY,EAAM;AACjB,QAAIZ,EAAK,WAAW,KAAK,WACrBgG,IAAQhG;AAAA,MACf;AAAA,IACb,CAAS,GACMgG;AAAA,EACV;AAAA,EACD,OAAOC,GAAMX,GAAK;AACd,QAAI,CAACA;AACD,aAAO,EAAE,QAAQ,KAAK;AAC1B,UAAM,EAAE,SAAAnB,GAAS,KAAAV,GAAK,eAAAmC,EAAa,IAAKN,GAClClC,IAAS,KAAK,QAAQK,CAAG;AAC/B,QAAI,CAACL,GAAQ;AACT,YAAMY,IAAM,+DAA+D,KAAK,MAAM;AACtF,YAAM,IAAI,eAAeA,CAAG;AAAA,IAC/B;AACD,QAAIwB,IAAOrB,EAAQ,IAAIf,CAAM;AAO7B,QANKoC,MAEDL,EAAK/B,GAAQ,MAAMkC,CAAG,GACtBE,IAAOrB,EAAQ,IAAIf,CAAM,IAGzB,CAACoC,KAAQA,EAAK,QAAQ,QAAW;AACjC,YAAMxB,IAAM;AACZ,YAAM,IAAI,eAAeA,CAAG;AAAA,IAC/B;AACD,QAAI4B,KAAiB,MACjBJ,EAAK,SAAS,GACVA,EAAK,eAAe,MACpBA,EAAK,aAAaU,GAAczC,GAAKL,GAAQe,CAAO,IACpDqB,EAAK,QAAQA,EAAK,aAAaI,IAAe;AAC9C,YAAM5B,IAAM;AACZ,YAAM,IAAI,eAAeA,CAAG;AAAA,IAC/B;AAEL,WAAOwB,EAAK;AAAA,EACf;AAAA,EACD,SAASF,GAAKa,GAAYC,GAAc;AACpC,UAAMC,IAAM,IAAI,KAAK,MAAM;AAC3B,QAAIf,GAAK;AAEL,UADAxB,GAAc,KAAK,MAAM,GACrBwB,EAAI,QAAQ,oBAAoB,CAACA,EAAI,QAAQ,IAAI,KAAK,MAAM,GAAG;AAC/D,cAAMtB,IAAM,+DAA+D,KAAK,MAAM;AACtF,cAAM,IAAI,MAAMA,CAAG;AAAA,MACtB;AACD,UAAIsB,EAAI;AACJ,eAAO,GAAGe,CAAG;AAAA,IACpB;AACD,WAAOA;AAAA,EACV;AACL;AACA,SAASH,GAAczC,GAAKzD,GAAMmE,GAAS;AACvC,MAAIpE,EAAQC,CAAI,GAAG;AACf,UAAMoD,IAASpD,EAAK,QAAQyD,CAAG,GACzBM,IAASI,KAAWf,KAAUe,EAAQ,IAAIf,CAAM;AACtD,WAAOW,IAASA,EAAO,QAAQA,EAAO,aAAa;AAAA,EACtD,WACQzD,EAAaN,CAAI,GAAG;AACzB,QAAI8F,IAAQ;AACZ,eAAWQ,KAAQtG,EAAK,OAAO;AAC3B,YAAMuG,IAAIL,GAAczC,GAAK6C,GAAMnC,CAAO;AAC1C,MAAIoC,IAAIT,MACJA,IAAQS;AAAA,IACf;AACD,WAAOT;AAAA,EACV,WACQ3F,EAAOH,CAAI,GAAG;AACnB,UAAMwG,IAAKN,GAAczC,GAAKzD,EAAK,KAAKmE,CAAO,GACzCsC,IAAKP,GAAczC,GAAKzD,EAAK,OAAOmE,CAAO;AACjD,WAAO,KAAK,IAAIqC,GAAIC,CAAE;AAAA,EACzB;AACD,SAAO;AACX;AC9FA,MAAMC,KAAgB,CAACtB,MAAU,CAACA,KAAU,OAAOA,KAAU,cAAc,OAAOA,KAAU;AAC5F,MAAMuB,UAAelB,GAAS;AAAA,EAC1B,YAAYL,GAAO;AACf,UAAMxF,CAAM,GACZ,KAAK,QAAQwF;AAAA,EAChB;AAAA,EACD,OAAOC,GAAKC,GAAK;AACb,WAAOA,KAAA,QAAAA,EAAK,OAAO,KAAK,QAAQH,EAAK,KAAK,OAAOE,GAAKC,CAAG;AAAA,EAC5D;AAAA,EACD,WAAW;AACP,WAAO,OAAO,KAAK,KAAK;AAAA,EAC3B;AACL;AACAqB,EAAO,eAAe;AACtBA,EAAO,gBAAgB;AACvBA,EAAO,QAAQ;AACfA,EAAO,eAAe;AACtBA,EAAO,eAAe;ACjBtB,MAAMC,KAAmB;AACzB,SAASC,GAAczB,GAAO0B,GAASrE,GAAM;AACzC,MAAIqE,GAAS;AACT,UAAMC,IAAQtE,EAAK,OAAO,CAAAuE,MAAKA,EAAE,QAAQF,CAAO,GAC1CG,IAASF,EAAM,KAAK,CAAAC,MAAK,CAACA,EAAE,MAAM,KAAKD,EAAM,CAAC;AACpD,QAAI,CAACE;AACD,YAAM,IAAI,MAAM,OAAOH,CAAO,YAAY;AAC9C,WAAOG;AAAA,EACV;AACD,SAAOxE,EAAK,KAAK,CAAAuE;ATbrB,QAAApF;ASa0B,aAAAA,IAAAoF,EAAE,aAAF,gBAAApF,EAAA,KAAAoF,GAAa5B,OAAU,CAAC4B,EAAE;AAAA,GAAM;AAC1D;AACA,SAASE,GAAW9B,GAAO0B,GAASxB,GAAK;ATfzC,MAAA1D,GAAAC,GAAAC;ASkBI,MAFI7B,GAAWmF,CAAK,MAChBA,IAAQA,EAAM,WACd7E,EAAO6E,CAAK;AACZ,WAAOA;AACX,MAAIjF,EAAOiF,CAAK,GAAG;AACf,UAAM+B,KAAMtF,KAAAD,IAAA0D,EAAI,OAAO5F,CAAG,GAAE,eAAhB,gBAAAmC,EAAA,KAAAD,GAA6B0D,EAAI,QAAQ,MAAMA;AAC3D,WAAA6B,EAAI,MAAM,KAAK/B,CAAK,GACb+B;AAAA,EACV;AACD,GAAI/B,aAAiB,UACjBA,aAAiB,UACjBA,aAAiB,WAChB,OAAO,SAAW,OAAeA,aAAiB,YAGnDA,IAAQA,EAAM;AAElB,QAAM,EAAE,uBAAAgC,GAAuB,UAAAvB,GAAU,UAAAwB,GAAU,QAAAC,GAAQ,eAAA9C,EAAe,IAAGc;AAG7E,MAAIZ;AACJ,MAAI0C,KAAyBhC,KAAS,OAAOA,KAAU,UAAU;AAE7D,QADAV,IAAMF,EAAc,IAAIY,CAAK,GACzBV;AACA,aAAKA,EAAI,WACLA,EAAI,SAASmB,EAAST,CAAK,IACxB,IAAIW,GAAMrB,EAAI,MAAM;AAG3B,IAAAA,IAAM,EAAE,QAAQ,MAAM,MAAM,KAAI,GAChCF,EAAc,IAAIY,GAAOV,CAAG;AAAA,EAEnC;AACD,EAAIoC,KAAA,QAAAA,EAAS,WAAW,UACpBA,IAAUF,KAAmBE,EAAQ,MAAM,CAAC;AAChD,MAAIG,IAASJ,GAAczB,GAAO0B,GAASQ,EAAO,IAAI;AACtD,MAAI,CAACL,GAAQ;AAKT,QAJI7B,KAAS,OAAOA,EAAM,UAAW,eAEjCA,IAAQA,EAAM,WAEd,CAACA,KAAS,OAAOA,KAAU,UAAU;AACrC,YAAMpF,IAAO,IAAI2G,EAAOvB,CAAK;AAC7B,aAAIV,MACAA,EAAI,OAAO1E,IACRA;AAAA,IACV;AACD,IAAAiH,IACI7B,aAAiB,MACXkC,EAAO5H,CAAG,IACV,OAAO,YAAY,OAAO0F,CAAK,IAC3BkC,EAAOzH,EAAG,IACVyH,EAAO5H,CAAG;AAAA,EAC3B;AACD,EAAI2H,MACAA,EAASJ,CAAM,GACf,OAAO3B,EAAI;AAEf,QAAMtF,IAAOiH,KAAA,QAAAA,EAAQ,aACfA,EAAO,WAAW3B,EAAI,QAAQF,GAAOE,CAAG,IACxC,SAAOxD,IAAAmF,KAAA,gBAAAA,EAAQ,cAAR,gBAAAnF,EAAmB,SAAS,aAC/BmF,EAAO,UAAU,KAAK3B,EAAI,QAAQF,GAAOE,CAAG,IAC5C,IAAIqB,EAAOvB,CAAK;AAC1B,SAAI0B,IACA9G,EAAK,MAAM8G,IACLG,EAAO,YACbjH,EAAK,MAAMiH,EAAO,MAClBvC,MACAA,EAAI,OAAO1E,IACRA;AACX;AClFA,SAASuH,GAAmBD,GAAQpG,GAAMkE,GAAO;AAC7C,MAAIG,IAAIH;AACR,WAAS,IAAIlE,EAAK,SAAS,GAAG,KAAK,GAAG,EAAE,GAAG;AACvC,UAAMgE,IAAIhE,EAAK,CAAC;AAChB,QAAI,OAAOgE,KAAM,YAAY,OAAO,UAAUA,CAAC,KAAKA,KAAK,GAAG;AACxD,YAAMsC,IAAI,CAAA;AACV,MAAAA,EAAEtC,CAAC,IAAIK,GACPA,IAAIiC;AAAA,IACP;AAEG,MAAAjC,IAAI,oBAAI,IAAI,CAAC,CAACL,GAAGK,CAAC,CAAC,CAAC;AAAA,EAE3B;AACD,SAAO2B,GAAW3B,GAAG,QAAW;AAAA,IAC5B,uBAAuB;AAAA,IACvB,eAAe;AAAA,IACf,UAAU,MAAM;AACZ,YAAM,IAAI,MAAM,8CAA8C;AAAA,IACjE;AAAA,IACD,QAAA+B;AAAA,IACA,eAAe,oBAAI,IAAK;AAAA,EAChC,CAAK;AACL;AAGA,MAAMG,KAAc,CAACvG,MAASA,KAAQ,QACjC,OAAOA,KAAS,YAAY,CAAC,CAACA,EAAK,OAAO,QAAQ,IAAI,OAAO;AAClE,MAAMwG,WAAmBjC,GAAS;AAAA,EAC9B,YAAYC,GAAM4B,GAAQ;AACtB,UAAM5B,CAAI,GACV,OAAO,eAAe,MAAM,UAAU;AAAA,MAClC,OAAO4B;AAAA,MACP,cAAc;AAAA,MACd,YAAY;AAAA,MACZ,UAAU;AAAA,IACtB,CAAS;AAAA,EACJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMD,MAAMA,GAAQ;AACV,UAAM5E,IAAO,OAAO,OAAO,OAAO,eAAe,IAAI,GAAG,OAAO,0BAA0B,IAAI,CAAC;AAC9F,WAAI4E,MACA5E,EAAK,SAAS4E,IAClB5E,EAAK,QAAQA,EAAK,MAAM,IAAI,CAAAiF,MAAMpH,EAAOoH,CAAE,KAAKxH,EAAOwH,CAAE,IAAIA,EAAG,MAAML,CAAM,IAAIK,CAAE,GAC9E,KAAK,UACLjF,EAAK,QAAQ,KAAK,MAAM,MAAK,IAC1BA;AAAA,EACV;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMD,MAAMxB,GAAMkE,GAAO;AACf,QAAIqC,GAAYvG,CAAI;AAChB,WAAK,IAAIkE,CAAK;AAAA,SACb;AACD,YAAM,CAACnE,GAAK,GAAG2G,CAAI,IAAI1G,GACjBlB,IAAO,KAAK,IAAIiB,GAAK,EAAI;AAC/B,UAAIX,EAAaN,CAAI;AACjB,QAAAA,EAAK,MAAM4H,GAAMxC,CAAK;AAAA,eACjBpF,MAAS,UAAa,KAAK;AAChC,aAAK,IAAIiB,GAAKsG,GAAmB,KAAK,QAAQK,GAAMxC,CAAK,CAAC;AAAA;AAE1D,cAAM,IAAI,MAAM,+BAA+BnE,CAAG,qBAAqB2G,CAAI,EAAE;AAAA,IACpF;AAAA,EACJ;AAAA;AAAA;AAAA;AAAA;AAAA,EAKD,SAAS1G,GAAM;AACX,UAAM,CAACD,GAAK,GAAG2G,CAAI,IAAI1G;AACvB,QAAI0G,EAAK,WAAW;AAChB,aAAO,KAAK,OAAO3G,CAAG;AAC1B,UAAMjB,IAAO,KAAK,IAAIiB,GAAK,EAAI;AAC/B,QAAIX,EAAaN,CAAI;AACjB,aAAOA,EAAK,SAAS4H,CAAI;AAEzB,UAAM,IAAI,MAAM,+BAA+B3G,CAAG,qBAAqB2G,CAAI,EAAE;AAAA,EACpF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMD,MAAM1G,GAAM2G,GAAY;AACpB,UAAM,CAAC5G,GAAK,GAAG2G,CAAI,IAAI1G,GACjBlB,IAAO,KAAK,IAAIiB,GAAK,EAAI;AAC/B,WAAI2G,EAAK,WAAW,IACT,CAACC,KAAczH,EAASJ,CAAI,IAAIA,EAAK,QAAQA,IAE7CM,EAAaN,CAAI,IAAIA,EAAK,MAAM4H,GAAMC,CAAU,IAAI;AAAA,EAClE;AAAA,EACD,iBAAiBC,GAAa;AAC1B,WAAO,KAAK,MAAM,MAAM,CAAA9H,MAAQ;AAC5B,UAAI,CAACG,EAAOH,CAAI;AACZ,eAAO;AACX,YAAM,IAAIA,EAAK;AACf,aAAQ,KAAK,QACR8H,KACG1H,EAAS,CAAC,KACV,EAAE,SAAS,QACX,CAAC,EAAE,iBACH,CAAC,EAAE,WACH,CAAC,EAAE;AAAA,IACvB,CAAS;AAAA,EACJ;AAAA;AAAA;AAAA;AAAA,EAID,MAAMc,GAAM;AACR,UAAM,CAACD,GAAK,GAAG2G,CAAI,IAAI1G;AACvB,QAAI0G,EAAK,WAAW;AAChB,aAAO,KAAK,IAAI3G,CAAG;AACvB,UAAMjB,IAAO,KAAK,IAAIiB,GAAK,EAAI;AAC/B,WAAOX,EAAaN,CAAI,IAAIA,EAAK,MAAM4H,CAAI,IAAI;AAAA,EAClD;AAAA;AAAA;AAAA;AAAA;AAAA,EAKD,MAAM1G,GAAMkE,GAAO;AACf,UAAM,CAACnE,GAAK,GAAG2G,CAAI,IAAI1G;AACvB,QAAI0G,EAAK,WAAW;AAChB,WAAK,IAAI3G,GAAKmE,CAAK;AAAA,SAElB;AACD,YAAMpF,IAAO,KAAK,IAAIiB,GAAK,EAAI;AAC/B,UAAIX,EAAaN,CAAI;AACjB,QAAAA,EAAK,MAAM4H,GAAMxC,CAAK;AAAA,eACjBpF,MAAS,UAAa,KAAK;AAChC,aAAK,IAAIiB,GAAKsG,GAAmB,KAAK,QAAQK,GAAMxC,CAAK,CAAC;AAAA;AAE1D,cAAM,IAAI,MAAM,+BAA+BnE,CAAG,qBAAqB2G,CAAI,EAAE;AAAA,IACpF;AAAA,EACJ;AACL;ACzIA,MAAMG,KAAmB,CAACC,MAAQA,EAAI,QAAQ,mBAAmB,GAAG;AACpE,SAASC,EAAcC,GAASC,GAAQ;AACpC,SAAI,QAAQ,KAAKD,CAAO,IACbA,EAAQ,UAAU,CAAC,IACvBC,IAASD,EAAQ,QAAQ,cAAcC,CAAM,IAAID;AAC5D;AACA,MAAME,IAAc,CAACJ,GAAKG,GAAQD,MAAYF,EAAI,SAAS;AAAA,CAAI,IACzDC,EAAcC,GAASC,CAAM,IAC7BD,EAAQ,SAAS;AAAA,CAAI,IACjB;AAAA,IAAOD,EAAcC,GAASC,CAAM,KACnCH,EAAI,SAAS,GAAG,IAAI,KAAK,OAAOE,GCjBrCG,KAAY,QACZC,KAAa,SACbC,KAAc;AAMpB,SAASC,GAAcC,GAAMN,GAAQO,IAAO,QAAQ,EAAE,eAAAC,GAAe,WAAAC,IAAY,IAAI,iBAAAC,IAAkB,IAAI,QAAAC,GAAQ,YAAAC,EAAU,IAAK,CAAA,GAAI;AAClI,MAAI,CAACH,KAAaA,IAAY;AAC1B,WAAOH;AACX,EAAIG,IAAYC,MACZA,IAAkB;AACtB,QAAMG,IAAU,KAAK,IAAI,IAAIH,GAAiB,IAAID,IAAYT,EAAO,MAAM;AAC3E,MAAIM,EAAK,UAAUO;AACf,WAAOP;AACX,QAAMQ,IAAQ,CAAA,GACRC,IAAe,CAAA;AACrB,MAAIC,IAAMP,IAAYT,EAAO;AAC7B,EAAI,OAAOQ,KAAkB,aACrBA,IAAgBC,IAAY,KAAK,IAAI,GAAGC,CAAe,IACvDI,EAAM,KAAK,CAAC,IAEZE,IAAMP,IAAYD;AAE1B,MAAIS,GACAC,GACAC,IAAW,IACXhI,IAAI,IACJiI,IAAW,IACXC,IAAS;AACb,EAAId,MAASJ,OACThH,IAAImI,GAAyBhB,GAAMnH,GAAG6G,EAAO,MAAM,GAC/C7G,MAAM,OACN6H,IAAM7H,IAAI0H;AAElB,WAAS1G,GAAKA,IAAKmG,EAAMnH,KAAK,CAAC,KAAM;AACjC,QAAIoH,MAASH,MAAejG,MAAO,MAAM;AAErC,cADAiH,IAAWjI,GACHmH,EAAKnH,IAAI,CAAC,GAAC;AAAA,QACf,KAAK;AACD,UAAAA,KAAK;AACL;AAAA,QACJ,KAAK;AACD,UAAAA,KAAK;AACL;AAAA,QACJ,KAAK;AACD,UAAAA,KAAK;AACL;AAAA,QACJ;AACI,UAAAA,KAAK;AAAA,MACZ;AACD,MAAAkI,IAASlI;AAAA,IACZ;AACD,QAAIgB,MAAO;AAAA;AACP,MAAIoG,MAASJ,OACThH,IAAImI,GAAyBhB,GAAMnH,GAAG6G,EAAO,MAAM,IACvDgB,IAAM7H,IAAI6G,EAAO,SAASa,GAC1BI,IAAQ;AAAA,SAEP;AACD,UAAI9G,MAAO,OACP+G,KACAA,MAAS,OACTA,MAAS;AAAA,KACTA,MAAS,KAAM;AAEf,cAAMK,IAAOjB,EAAKnH,IAAI,CAAC;AACvB,QAAIoI,KAAQA,MAAS,OAAOA,MAAS;AAAA,KAAQA,MAAS,QAClDN,IAAQ9H;AAAA,MACf;AACD,UAAIA,KAAK6H;AACL,YAAIC;AACA,UAAAH,EAAM,KAAKG,CAAK,GAChBD,IAAMC,IAAQJ,GACdI,IAAQ;AAAA,iBAEHV,MAASH,IAAa;AAE3B,iBAAOc,MAAS,OAAOA,MAAS;AAC5B,YAAAA,IAAO/G,GACPA,IAAKmG,EAAMnH,KAAK,IAChBgI,IAAW;AAGf,gBAAMK,IAAIrI,IAAIkI,IAAS,IAAIlI,IAAI,IAAIiI,IAAW;AAE9C,cAAIL,EAAaS,CAAC;AACd,mBAAOlB;AACX,UAAAQ,EAAM,KAAKU,CAAC,GACZT,EAAaS,CAAC,IAAI,IAClBR,IAAMQ,IAAIX,GACVI,IAAQ;AAAA,QACX;AAEG,UAAAE,IAAW;AAAA,IAGtB;AACD,IAAAD,IAAO/G;AAAA,EACV;AAGD,MAFIgH,KAAYP,KACZA,KACAE,EAAM,WAAW;AACjB,WAAOR;AACX,EAAIK,KACAA;AACJ,MAAInG,IAAM8F,EAAK,MAAM,GAAGQ,EAAM,CAAC,CAAC;AAChC,WAAS3H,IAAI,GAAGA,IAAI2H,EAAM,QAAQ,EAAE3H,GAAG;AACnC,UAAMsI,IAAOX,EAAM3H,CAAC,GACd6H,IAAMF,EAAM3H,IAAI,CAAC,KAAKmH,EAAK;AACjC,IAAImB,MAAS,IACTjH,IAAM;AAAA,EAAKwF,CAAM,GAAGM,EAAK,MAAM,GAAGU,CAAG,CAAC,MAElCT,MAASH,MAAeW,EAAaU,CAAI,MACzCjH,KAAO,GAAG8F,EAAKmB,CAAI,CAAC,OACxBjH,KAAO;AAAA,EAAKwF,CAAM,GAAGM,EAAK,MAAMmB,IAAO,GAAGT,CAAG,CAAC;AAAA,EAErD;AACD,SAAOxG;AACX;AAKA,SAAS8G,GAAyBhB,GAAMnH,GAAG6G,GAAQ;AAC/C,MAAIgB,IAAM7H,GACNuI,IAAQvI,IAAI,GACZgB,IAAKmG,EAAKoB,CAAK;AACnB,SAAOvH,MAAO,OAAOA,MAAO;AACxB,QAAIhB,IAAIuI,IAAQ1B;AACZ,MAAA7F,IAAKmG,EAAK,EAAEnH,CAAC;AAAA,SAEZ;AACD;AACI,QAAAgB,IAAKmG,EAAK,EAAEnH,CAAC;AAAA,aACRgB,KAAMA,MAAO;AAAA;AACtB,MAAA6G,IAAM7H,GACNuI,IAAQvI,IAAI,GACZgB,IAAKmG,EAAKoB,CAAK;AAAA,IAClB;AAEL,SAAOV;AACX;AC5IA,MAAMW,KAAiB,CAACxE,GAAKyE,OAAa;AAAA,EACtC,eAAeA,IAAUzE,EAAI,OAAO,SAASA,EAAI;AAAA,EACjD,WAAWA,EAAI,QAAQ;AAAA,EACvB,iBAAiBA,EAAI,QAAQ;AACjC,IAGM0E,KAAyB,CAAChC,MAAQ,mBAAmB,KAAKA,CAAG;AACnE,SAASiC,GAAoBjC,GAAKY,GAAWsB,GAAc;AACvD,MAAI,CAACtB,KAAaA,IAAY;AAC1B,WAAO;AACX,QAAMuB,IAAQvB,IAAYsB,GACpBE,IAASpC,EAAI;AACnB,MAAIoC,KAAUD;AACV,WAAO;AACX,WAAS7I,IAAI,GAAGuI,IAAQ,GAAGvI,IAAI8I,GAAQ,EAAE9I;AACrC,QAAI0G,EAAI1G,CAAC,MAAM;AAAA,GAAM;AACjB,UAAIA,IAAIuI,IAAQM;AACZ,eAAO;AAEX,UADAN,IAAQvI,IAAI,GACR8I,IAASP,KAASM;AAClB,eAAO;AAAA,IACd;AAEL,SAAO;AACX;AACA,SAASE,GAAmBjF,GAAOE,GAAK;AACpC,QAAMgF,IAAO,KAAK,UAAUlF,CAAK;AACjC,MAAIE,EAAI,QAAQ;AACZ,WAAOgF;AACX,QAAM,EAAE,aAAAC,EAAa,IAAGjF,GAClBkF,IAAqBlF,EAAI,QAAQ,gCACjC6C,IAAS7C,EAAI,WAAW0E,GAAuB5E,CAAK,IAAI,OAAO;AACrE,MAAI4C,IAAM,IACN6B,IAAQ;AACZ,WAASvI,IAAI,GAAGgB,IAAKgI,EAAKhJ,CAAC,GAAGgB,GAAIA,IAAKgI,EAAK,EAAEhJ,CAAC;AAQ3C,QAPIgB,MAAO,OAAOgI,EAAKhJ,IAAI,CAAC,MAAM,QAAQgJ,EAAKhJ,IAAI,CAAC,MAAM,QAEtD0G,KAAOsC,EAAK,MAAMT,GAAOvI,CAAC,IAAI,OAC9BA,KAAK,GACLuI,IAAQvI,GACRgB,IAAK,OAELA,MAAO;AACP,cAAQgI,EAAKhJ,IAAI,CAAC,GAAC;AAAA,QACf,KAAK;AACD;AACI,YAAA0G,KAAOsC,EAAK,MAAMT,GAAOvI,CAAC;AAC1B,kBAAMmJ,IAAOH,EAAK,OAAOhJ,IAAI,GAAG,CAAC;AACjC,oBAAQmJ,GAAI;AAAA,cACR,KAAK;AACD,gBAAAzC,KAAO;AACP;AAAA,cACJ,KAAK;AACD,gBAAAA,KAAO;AACP;AAAA,cACJ,KAAK;AACD,gBAAAA,KAAO;AACP;AAAA,cACJ,KAAK;AACD,gBAAAA,KAAO;AACP;AAAA,cACJ,KAAK;AACD,gBAAAA,KAAO;AACP;AAAA,cACJ,KAAK;AACD,gBAAAA,KAAO;AACP;AAAA,cACJ,KAAK;AACD,gBAAAA,KAAO;AACP;AAAA,cACJ,KAAK;AACD,gBAAAA,KAAO;AACP;AAAA,cACJ;AACI,gBAAIyC,EAAK,OAAO,GAAG,CAAC,MAAM,OACtBzC,KAAO,QAAQyC,EAAK,OAAO,CAAC,IAE5BzC,KAAOsC,EAAK,OAAOhJ,GAAG,CAAC;AAAA,YAClC;AACD,YAAAA,KAAK,GACLuI,IAAQvI,IAAI;AAAA,UACf;AACD;AAAA,QACJ,KAAK;AACD,cAAIiJ,KACAD,EAAKhJ,IAAI,CAAC,MAAM,OAChBgJ,EAAK,SAASE;AACd,YAAAlJ,KAAK;AAAA,eAEJ;AAGD,iBADA0G,KAAOsC,EAAK,MAAMT,GAAOvI,CAAC,IAAI;AAAA;AAAA,GACvBgJ,EAAKhJ,IAAI,CAAC,MAAM,QACnBgJ,EAAKhJ,IAAI,CAAC,MAAM,OAChBgJ,EAAKhJ,IAAI,CAAC,MAAM;AAChB,cAAA0G,KAAO;AAAA,GACP1G,KAAK;AAET,YAAA0G,KAAOG,GAEHmC,EAAKhJ,IAAI,CAAC,MAAM,QAChB0G,KAAO,OACX1G,KAAK,GACLuI,IAAQvI,IAAI;AAAA,UACf;AACD;AAAA,QACJ;AACI,UAAAA,KAAK;AAAA,MACZ;AAET,SAAA0G,IAAM6B,IAAQ7B,IAAMsC,EAAK,MAAMT,CAAK,IAAIS,GACjCC,IACDvC,IACAQ,GAAcR,GAAKG,GAAQI,IAAauB,GAAexE,GAAK,EAAK,CAAC;AAC5E;AACA,SAASoF,GAAmBtF,GAAOE,GAAK;AACpC,MAAIA,EAAI,QAAQ,gBAAgB,MAC3BA,EAAI,eAAeF,EAAM,SAAS;AAAA,CAAI,KACvC,kBAAkB,KAAKA,CAAK;AAE5B,WAAOiF,GAAmBjF,GAAOE,CAAG;AACxC,QAAM6C,IAAS7C,EAAI,WAAW0E,GAAuB5E,CAAK,IAAI,OAAO,KAC/DzC,IAAM,MAAMyC,EAAM,QAAQ,MAAM,IAAI,EAAE,QAAQ,QAAQ;AAAA,EAAO+C,CAAM,EAAE,IAAI;AAC/E,SAAO7C,EAAI,cACL3C,IACA6F,GAAc7F,GAAKwF,GAAQE,IAAWyB,GAAexE,GAAK,EAAK,CAAC;AAC1E;AACA,SAASqF,GAAavF,GAAOE,GAAK;AAC9B,QAAM,EAAE,aAAAsF,EAAW,IAAKtF,EAAI;AAC5B,MAAIuF;AACJ,MAAID,MAAgB;AAChB,IAAAC,IAAKR;AAAA,OACJ;AACD,UAAMS,IAAY1F,EAAM,SAAS,GAAG,GAC9B2F,IAAY3F,EAAM,SAAS,GAAG;AACpC,IAAI0F,KAAa,CAACC,IACdF,IAAKH,KACAK,KAAa,CAACD,IACnBD,IAAKR,KAELQ,IAAKD,IAAcF,KAAqBL;AAAA,EAC/C;AACD,SAAOQ,EAAGzF,GAAOE,CAAG;AACxB;AAGA,IAAI0F;AACJ,IAAI;AACA,EAAAA,KAAmB,IAAI,OAAO;AAAA;AAAA;AAAA,MAA0B,GAAG;AAC/D,QACM;AACF,EAAAA,KAAmB;AACvB;AACA,SAASC,GAAY,EAAE,SAAA/C,GAAS,MAAAxC,GAAM,OAAAN,EAAK,GAAIE,GAAK4F,GAAWC,GAAa;AACxE,QAAM,EAAE,YAAAC,GAAY,eAAAC,GAAe,WAAAzC,EAAS,IAAKtD,EAAI;AAGrD,MAAI,CAAC8F,KAAc,YAAY,KAAKhG,CAAK,KAAK,QAAQ,KAAKA,CAAK;AAC5D,WAAOuF,GAAavF,GAAOE,CAAG;AAElC,QAAM6C,IAAS7C,EAAI,WACdA,EAAI,oBAAoB0E,GAAuB5E,CAAK,IAAI,OAAO,KAC9DkG,IAAUF,MAAe,YACzB,KACAA,MAAe,YAAY1F,MAASiB,EAAO,eACvC,KACAjB,MAASiB,EAAO,gBACZ,KACA,CAACsD,GAAoB7E,GAAOwD,GAAWT,EAAO,MAAM;AAClE,MAAI,CAAC/C;AACD,WAAOkG,IAAU;AAAA,IAAQ;AAAA;AAE7B,MAAIC,GACAC;AACJ,OAAKA,IAAWpG,EAAM,QAAQoG,IAAW,GAAG,EAAEA,GAAU;AACpD,UAAMlJ,IAAK8C,EAAMoG,IAAW,CAAC;AAC7B,QAAIlJ,MAAO;AAAA,KAAQA,MAAO,OAAQA,MAAO;AACrC;AAAA,EACP;AACD,MAAI6G,IAAM/D,EAAM,UAAUoG,CAAQ;AAClC,QAAMC,IAAWtC,EAAI,QAAQ;AAAA,CAAI;AACjC,EAAIsC,MAAa,KACbF,IAAQ,MAEHnG,MAAU+D,KAAOsC,MAAatC,EAAI,SAAS,KAChDoC,IAAQ,KACJJ,KACAA,OAGJI,IAAQ,IAERpC,MACA/D,IAAQA,EAAM,MAAM,GAAG,CAAC+D,EAAI,MAAM,GAC9BA,EAAIA,EAAI,SAAS,CAAC,MAAM;AAAA,MACxBA,IAAMA,EAAI,MAAM,GAAG,EAAE,IACzBA,IAAMA,EAAI,QAAQ6B,IAAkB,KAAK7C,CAAM,EAAE;AAGrD,MAAIuD,IAAiB,IACjBC,GACAC,IAAa;AACjB,OAAKD,IAAW,GAAGA,IAAWvG,EAAM,QAAQ,EAAEuG,GAAU;AACpD,UAAMrJ,IAAK8C,EAAMuG,CAAQ;AACzB,QAAIrJ,MAAO;AACP,MAAAoJ,IAAiB;AAAA,aACZpJ,MAAO;AAAA;AACZ,MAAAsJ,IAAaD;AAAA;AAEb;AAAA,EACP;AACD,MAAI9B,IAAQzE,EAAM,UAAU,GAAGwG,IAAaD,IAAWC,IAAa,IAAID,CAAQ;AAChF,EAAI9B,MACAzE,IAAQA,EAAM,UAAUyE,EAAM,MAAM,GACpCA,IAAQA,EAAM,QAAQ,QAAQ,KAAK1B,CAAM,EAAE;AAG/C,MAAI0D,KAAUP,IAAU,MAAM,QAAQI,IADnBvD,IAAS,MAAM,MACkC,MAAMoD;AAM1E,MALIrD,MACA2D,KAAU,MAAMR,EAAcnD,EAAQ,QAAQ,cAAc,GAAG,CAAC,GAC5DgD,KACAA,MAEJI;AACA,WAAAlG,IAAQA,EAAM,QAAQ,QAAQ,KAAK+C,CAAM,EAAE,GACpC,GAAG0D,CAAM;AAAA,EAAK1D,CAAM,GAAG0B,CAAK,GAAGzE,CAAK,GAAG+D,CAAG;AAErD,EAAA/D,IAAQA,EACH,QAAQ,QAAQ;AAAA,GAAM,EACtB,QAAQ,kDAAkD,MAAM,EAEhE,QAAQ,QAAQ,KAAK+C,CAAM,EAAE;AAClC,QAAM2D,IAAOtD,GAAc,GAAGqB,CAAK,GAAGzE,CAAK,GAAG+D,CAAG,IAAIhB,GAAQG,IAAYwB,GAAexE,GAAK,EAAI,CAAC;AAClG,SAAO,GAAGuG,CAAM;AAAA,EAAK1D,CAAM,GAAG2D,CAAI;AACtC;AACA,SAASC,GAAYzF,GAAMhB,GAAK4F,GAAWC,GAAa;AACpD,QAAM,EAAE,MAAAzF,GAAM,OAAAN,EAAO,IAAGkB,GAClB,EAAE,cAAA0F,GAAc,aAAAzB,GAAa,QAAApC,GAAQ,YAAA8D,GAAY,QAAAC,EAAQ,IAAG5G;AAClE,MAAKiF,KAAenF,EAAM,SAAS;AAAA,CAAI,KAClC8G,KAAU,WAAW,KAAK9G,CAAK;AAChC,WAAOuF,GAAavF,GAAOE,CAAG;AAElC,MAAI,CAACF,KACD,oFAAoF,KAAKA,CAAK;AAO9F,WAAOmF,KAAe2B,KAAU,CAAC9G,EAAM,SAAS;AAAA,CAAI,IAC9CuF,GAAavF,GAAOE,CAAG,IACvB2F,GAAY3E,GAAMhB,GAAK4F,GAAWC,CAAW;AAEvD,MAAI,CAACZ,KACD,CAAC2B,KACDxG,MAASiB,EAAO,SAChBvB,EAAM,SAAS;AAAA,CAAI;AAEnB,WAAO6F,GAAY3E,GAAMhB,GAAK4F,GAAWC,CAAW;AAExD,MAAInB,GAAuB5E,CAAK,GAAG;AAC/B,QAAI+C,MAAW;AACX,aAAA7C,EAAI,mBAAmB,IAChB2F,GAAY3E,GAAMhB,GAAK4F,GAAWC,CAAW;AAEnD,QAAIZ,KAAepC,MAAW8D;AAC/B,aAAOtB,GAAavF,GAAOE,CAAG;AAAA,EAErC;AACD,QAAM0C,IAAM5C,EAAM,QAAQ,QAAQ;AAAA,EAAO+C,CAAM,EAAE;AAIjD,MAAI6D,GAAc;AACd,UAAMG,IAAO,CAAC3I;AbvRtB,UAAA5B;AauR8B,aAAA4B,EAAI,WAAWA,EAAI,QAAQ,6BAA2B5B,IAAA4B,EAAI,SAAJ,gBAAA5B,EAAU,KAAKoG;AAAA,OACrF,EAAE,QAAAoE,GAAQ,MAAA3J,EAAI,IAAK6C,EAAI,IAAI;AACjC,QAAI7C,EAAK,KAAK0J,CAAI,KAAKC,KAAA,QAAAA,EAAQ,KAAKD;AAChC,aAAOxB,GAAavF,GAAOE,CAAG;AAAA,EACrC;AACD,SAAOiF,IACDvC,IACAQ,GAAcR,GAAKG,GAAQE,IAAWyB,GAAexE,GAAK,EAAK,CAAC;AAC1E;AACA,SAAS+G,GAAgB/F,GAAMhB,GAAK4F,GAAWC,GAAa;AACxD,QAAM,EAAE,aAAAZ,GAAa,QAAA2B,EAAQ,IAAG5G,GAC1BgH,IAAK,OAAOhG,EAAK,SAAU,WAC3BA,IACA,OAAO,OAAO,CAAE,GAAEA,GAAM,EAAE,OAAO,OAAOA,EAAK,KAAK,EAAC,CAAE;AAC3D,MAAI,EAAE,MAAAZ,EAAM,IAAGY;AACf,EAAIZ,MAASiB,EAAO,gBAEZ,kDAAkD,KAAK2F,EAAG,KAAK,MAC/D5G,IAAOiB,EAAO;AAEtB,QAAM4F,IAAa,CAACC,MAAU;AAC1B,YAAQA,GAAK;AAAA,MACT,KAAK7F,EAAO;AAAA,MACZ,KAAKA,EAAO;AACR,eAAO4D,KAAe2B,IAChBvB,GAAa2B,EAAG,OAAOhH,CAAG,IAC1B2F,GAAYqB,GAAIhH,GAAK4F,GAAWC,CAAW;AAAA,MACrD,KAAKxE,EAAO;AACR,eAAO0D,GAAmBiC,EAAG,OAAOhH,CAAG;AAAA,MAC3C,KAAKqB,EAAO;AACR,eAAO+D,GAAmB4B,EAAG,OAAOhH,CAAG;AAAA,MAC3C,KAAKqB,EAAO;AACR,eAAOoF,GAAYO,GAAIhH,GAAK4F,GAAWC,CAAW;AAAA,MACtD;AACI,eAAO;AAAA,IACd;AAAA,EACT;AACI,MAAIxI,IAAM4J,EAAW7G,CAAI;AACzB,MAAI/C,MAAQ,MAAM;AACd,UAAM,EAAE,gBAAA8J,GAAgB,mBAAAC,MAAsBpH,EAAI,SAC5C0B,IAAKuD,KAAekC,KAAmBC;AAE7C,QADA/J,IAAM4J,EAAWvF,CAAC,GACdrE,MAAQ;AACR,YAAM,IAAI,MAAM,mCAAmCqE,CAAC,EAAE;AAAA,EAC7D;AACD,SAAOrE;AACX;AChUA,SAASgK,GAAuBlJ,GAAKmJ,GAAS;AAC1C,QAAMC,IAAM,OAAO,OAAO;AAAA,IACtB,YAAY;AAAA,IACZ,eAAe9E;AAAA,IACf,gBAAgB;AAAA,IAChB,mBAAmB;AAAA,IACnB,YAAY;AAAA,IACZ,oBAAoB;AAAA,IACpB,gCAAgC;AAAA,IAChC,UAAU;AAAA,IACV,uBAAuB;AAAA,IACvB,WAAW;AAAA,IACX,WAAW;AAAA,IACX,iBAAiB;AAAA,IACjB,SAAS;AAAA,IACT,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,SAAS;AAAA,IACT,kBAAkB;AAAA,EACrB,GAAEtE,EAAI,OAAO,iBAAiBmJ,CAAO;AACtC,MAAIV;AACJ,UAAQW,EAAI,iBAAe;AAAA,IACvB,KAAK;AACD,MAAAX,IAAS;AACT;AAAA,IACJ,KAAK;AACD,MAAAA,IAAS;AACT;AAAA,IACJ;AACI,MAAAA,IAAS;AAAA,EAChB;AACD,SAAO;AAAA,IACH,SAAS,oBAAI,IAAK;AAAA,IAClB,KAAAzI;AAAA,IACA,uBAAuBoJ,EAAI,wBAAwB,MAAM;AAAA,IACzD,QAAQ;AAAA,IACR,YAAY,OAAOA,EAAI,UAAW,WAAW,IAAI,OAAOA,EAAI,MAAM,IAAI;AAAA,IACtE,QAAAX;AAAA,IACA,SAASW;AAAA,EACjB;AACA;AACA,SAASC,GAAarK,GAAM6D,GAAM;Ad9ClC,MAAA1E;Ac+CI,MAAI0E,EAAK,KAAK;AACV,UAAMS,IAAQtE,EAAK,OAAO,CAAAuE,MAAKA,EAAE,QAAQV,EAAK,GAAG;AACjD,QAAIS,EAAM,SAAS;AACf,aAAOA,EAAM,KAAK,CAAAC,MAAKA,EAAE,WAAWV,EAAK,MAAM,KAAKS,EAAM,CAAC;AAAA,EAClE;AACD,MAAIE,GACApC;AACJ,MAAIzE,EAASkG,CAAI,GAAG;AAChB,IAAAzB,IAAMyB,EAAK;AACX,UAAMS,IAAQtE,EAAK,OAAO,CAAAuE,MAAK;AdxDvC,UAAApF;AcwDuC,cAAAA,IAAAoF,EAAE,aAAF,gBAAApF,EAAA,KAAAoF,GAAanC;AAAA,KAAI;AAChD,IAAAoC,IACIF,EAAM,KAAK,CAAAC,MAAKA,EAAE,WAAWV,EAAK,MAAM,KAAKS,EAAM,KAAK,CAAAC,MAAK,CAACA,EAAE,MAAM;AAAA,EAC7E;AAEG,IAAAnC,IAAMyB,GACNW,IAASxE,EAAK,KAAK,CAAAuE,MAAKA,EAAE,aAAanC,aAAemC,EAAE,SAAS;AAErE,MAAI,CAACC,GAAQ;AACT,UAAMlE,MAAOnB,IAAAiD,KAAA,gBAAAA,EAAK,gBAAL,gBAAAjD,EAAkB,SAAQ,OAAOiD;AAC9C,UAAM,IAAI,MAAM,wBAAwB9B,CAAI,QAAQ;AAAA,EACvD;AACD,SAAOkE;AACX;AAEA,SAAS8F,GAAe/M,GAAMiH,GAAQ,EAAE,SAAA9C,GAAS,KAAAV,EAAG,GAAI;AACpD,MAAI,CAACA,EAAI;AACL,WAAO;AACX,QAAMuJ,IAAQ,CAAA,GACRjJ,KAAU3D,EAASJ,CAAI,KAAKM,EAAaN,CAAI,MAAMA,EAAK;AAC9D,EAAI+D,KAAUD,GAAcC,CAAM,MAC9BI,EAAQ,IAAIJ,CAAM,GAClBiJ,EAAM,KAAK,IAAIjJ,CAAM,EAAE;AAE3B,QAAMP,IAAMxD,EAAK,MAAMA,EAAK,MAAMiH,EAAO,UAAU,OAAOA,EAAO;AACjE,SAAIzD,KACAwJ,EAAM,KAAKvJ,EAAI,WAAW,UAAUD,CAAG,CAAC,GACrCwJ,EAAM,KAAK,GAAG;AACzB;AACA,SAASC,GAAU3G,GAAMhB,GAAK4F,GAAWC,GAAa;AdrFtD,MAAAvJ;AcsFI,MAAIzB,EAAOmG,CAAI;AACX,WAAOA,EAAK,SAAShB,GAAK4F,GAAWC,CAAW;AACpD,MAAIpL,EAAQuG,CAAI,GAAG;AACf,QAAIhB,EAAI,IAAI;AACR,aAAOgB,EAAK,SAAShB,CAAG;AAC5B,SAAI1D,IAAA0D,EAAI,oBAAJ,QAAA1D,EAAqB,IAAI0E;AACzB,YAAM,IAAI,UAAU,yDAAyD;AAG7E,IAAIhB,EAAI,kBACJA,EAAI,gBAAgB,IAAIgB,CAAI,IAE5BhB,EAAI,kBAAkB,oBAAI,IAAI,CAACgB,CAAI,CAAC,GACxCA,IAAOA,EAAK,QAAQhB,EAAI,GAAG;AAAA,EAElC;AACD,MAAI2B;AACJ,QAAMjH,IAAOO,EAAO+F,CAAI,IAClBA,IACAhB,EAAI,IAAI,WAAWgB,GAAM,EAAE,UAAU,CAAA4G,MAAMjG,IAASiG,EAAE,CAAE;AAC9D,EAAKjG,MACDA,IAAS6F,GAAaxH,EAAI,IAAI,OAAO,MAAMtF,CAAI;AACnD,QAAMgN,IAAQD,GAAe/M,GAAMiH,GAAQ3B,CAAG;AAC9C,EAAI0H,EAAM,SAAS,MACf1H,EAAI,iBAAiBA,EAAI,iBAAiB,KAAK0H,EAAM,SAAS;AAClE,QAAMhF,IAAM,OAAOf,EAAO,aAAc,aAClCA,EAAO,UAAUjH,GAAMsF,GAAK4F,GAAWC,CAAW,IAClD/K,EAASJ,CAAI,IACTqM,GAAgBrM,GAAMsF,GAAK4F,GAAWC,CAAW,IACjDnL,EAAK,SAASsF,GAAK4F,GAAWC,CAAW;AACnD,SAAK6B,IAEE5M,EAASJ,CAAI,KAAKgI,EAAI,CAAC,MAAM,OAAOA,EAAI,CAAC,MAAM,MAChD,GAAGgF,CAAK,IAAIhF,CAAG,KACf,GAAGgF,CAAK;AAAA,EAAK1H,EAAI,MAAM,GAAG0C,CAAG,KAHxBA;AAIf;ACpHA,SAASmF,GAAc,EAAE,KAAAlM,GAAK,OAAAmE,EAAO,GAAEE,GAAK4F,GAAWC,GAAa;AAChE,QAAM,EAAE,eAAAiC,GAAe,KAAA3J,GAAK,QAAA0E,GAAQ,YAAA8D,GAAY,SAAS,EAAE,eAAAZ,GAAe,WAAAgC,GAAW,YAAAC,EAAY,EAAA,IAAKhI;AACtG,MAAIiI,IAAchN,EAAOU,CAAG,KAAKA,EAAI,WAAY;AACjD,MAAIqM,GAAY;AACZ,QAAIC;AACA,YAAM,IAAI,MAAM,kDAAkD;AAEtE,QAAIjN,EAAaW,CAAG,KAAM,CAACV,EAAOU,CAAG,KAAK,OAAOA,KAAQ,UAAW;AAChE,YAAM+C,IAAM;AACZ,YAAM,IAAI,MAAMA,CAAG;AAAA,IACtB;AAAA,EACJ;AACD,MAAIwJ,IAAc,CAACF,MACd,CAACrM,KACGsM,KAAcnI,KAAS,QAAQ,CAACE,EAAI,UACrChF,EAAaW,CAAG,MACfb,EAASa,CAAG,IACPA,EAAI,SAAS0F,EAAO,gBAAgB1F,EAAI,SAAS0F,EAAO,gBACxD,OAAO1F,KAAQ;AAC7B,EAAAqE,IAAM,OAAO,OAAO,CAAA,GAAIA,GAAK;AAAA,IACzB,eAAe;AAAA,IACf,aAAa,CAACkI,MAAgBF,KAAc,CAACF;AAAA,IAC7C,QAAQjF,IAAS8D;AAAA,EACzB,CAAK;AACD,MAAIwB,IAAiB,IACjBC,IAAY,IACZ1F,IAAMiF,GAAUhM,GAAKqE,GAAK,MAAOmI,IAAiB,IAAO,MAAOC,IAAY,EAAK;AACrF,MAAI,CAACF,KAAe,CAAClI,EAAI,UAAU0C,EAAI,SAAS,MAAM;AAClD,QAAIsF;AACA,YAAM,IAAI,MAAM,8EAA8E;AAClG,IAAAE,IAAc;AAAA,EACjB;AACD,MAAIlI,EAAI;AACJ,QAAI8H,KAAiBhI,KAAS;AAC1B,aAAIqI,KAAkBvC,KAClBA,KACGlD,MAAQ,KAAK,MAAMwF,IAAc,KAAKxF,CAAG,KAAKA;AAAA,aAGnDoF,KAAiB,CAACE,KAAgBlI,KAAS,QAAQoI;AACzD,WAAAxF,IAAM,KAAKA,CAAG,IACVuF,KAAc,CAACE,IACfzF,KAAOI,EAAYJ,GAAK1C,EAAI,QAAQ+F,EAAckC,CAAU,CAAC,IAExDG,KAAavC,KAClBA,KACGnD;AAEX,EAAIyF,MACAF,IAAa,OACbC,KACID,MACAvF,KAAOI,EAAYJ,GAAK1C,EAAI,QAAQ+F,EAAckC,CAAU,CAAC,IACjEvF,IAAM,KAAKA,CAAG;AAAA,EAAKG,CAAM,QAGzBH,IAAM,GAAGA,CAAG,KACRuF,MACAvF,KAAOI,EAAYJ,GAAK1C,EAAI,QAAQ+F,EAAckC,CAAU,CAAC;AAErE,MAAII,GAAKC,GAAKC;AACd,EAAItN,EAAO6E,CAAK,KACZuI,IAAM,CAAC,CAACvI,EAAM,aACdwI,IAAMxI,EAAM,eACZyI,IAAezI,EAAM,YAGrBuI,IAAM,IACNC,IAAM,MACNC,IAAe,MACXzI,KAAS,OAAOA,KAAU,aAC1BA,IAAQ3B,EAAI,WAAW2B,CAAK,KAEpCE,EAAI,cAAc,IACd,CAACkI,KAAe,CAACD,KAAcnN,EAASgF,CAAK,MAC7CE,EAAI,gBAAgB0C,EAAI,SAAS,IACrC0F,IAAY,IACR,CAACL,KACDpB,EAAW,UAAU,KACrB,CAAC3G,EAAI,UACL,CAACkI,KACDnN,GAAM+E,CAAK,KACX,CAACA,EAAM,QACP,CAACA,EAAM,OACP,CAACA,EAAM,WAEPE,EAAI,SAASA,EAAI,OAAO,UAAU,CAAC;AAEvC,MAAIwI,IAAmB;AACvB,QAAMC,IAAWd,GAAU7H,GAAOE,GAAK,MAAOwI,IAAmB,IAAO,MAAOJ,IAAY,EAAK;AAChG,MAAIM,IAAK;AACT,MAAIT,KAAcI,KAAOC,GAAK;AAE1B,QADAI,IAAKL,IAAM;AAAA,IAAO,IACdC,GAAK;AACL,YAAMK,IAAK5C,EAAcuC,CAAG;AAC5B,MAAAI,KAAM;AAAA,EAAK/F,EAAcgG,GAAI3I,EAAI,MAAM,CAAC;AAAA,IAC3C;AACD,IAAIyI,MAAa,MAAM,CAACzI,EAAI,SACpB0I,MAAO;AAAA,MACPA,IAAK;AAAA;AAAA,KAGTA,KAAM;AAAA,EAAK1I,EAAI,MAAM;AAAA,EAE5B,WACQ,CAACkI,KAAelN,EAAa8E,CAAK,GAAG;AAC1C,UAAM8I,IAAMH,EAAS,CAAC,GAChBI,IAAMJ,EAAS,QAAQ;AAAA,CAAI,GAC3BK,IAAaD,MAAQ,IACrBE,IAAO/I,EAAI,UAAUF,EAAM,QAAQA,EAAM,MAAM,WAAW;AAChE,QAAIgJ,KAAc,CAACC,GAAM;AACrB,UAAIC,IAAe;AACnB,UAAIF,MAAeF,MAAQ,OAAOA,MAAQ,MAAM;AAC5C,YAAIK,IAAMR,EAAS,QAAQ,GAAG;AAC9B,QAAIG,MAAQ,OACRK,MAAQ,MACRA,IAAMJ,KACNJ,EAASQ,IAAM,CAAC,MAAM,QACtBA,IAAMR,EAAS,QAAQ,KAAKQ,IAAM,CAAC,KAEnCA,MAAQ,MAAMJ,IAAMI,OACpBD,IAAe;AAAA,MACtB;AACD,MAAKA,MACDN,IAAK;AAAA,EAAK1I,EAAI,MAAM;AAAA,IAC3B;AAAA,EACJ,MACI,EAAIyI,MAAa,MAAMA,EAAS,CAAC,MAAM;AAAA,OACxCC,IAAK;AAET,SAAAhG,KAAOgG,IAAKD,GACRzI,EAAI,SACAwI,KAAoB5C,KACpBA,MAEC2C,KAAgB,CAACC,IACtB9F,KAAOI,EAAYJ,GAAK1C,EAAI,QAAQ+F,EAAcwC,CAAY,CAAC,IAE1DH,KAAavC,KAClBA,KAEGnD;AACX;AC/IA,SAASwG,GAAKC,GAAUC,GAAS;AAC7B,GAAID,MAAa,WAAWA,MAAa,YAGjC,OAAO,UAAY,OAAe,QAAQ,cAC1C,QAAQ,YAAYC,CAAO,IAE3B,QAAQ,KAAKA,CAAO;AAEhC;ACPA,MAAMC,KAAY;AAClB,SAASC,GAAetJ,GAAK6B,GAAK,EAAE,KAAAlG,GAAK,OAAAmE,EAAK,GAAI;AAC9C,MAAIE,KAAA,QAAAA,EAAK,IAAI,OAAO,SAASuJ,GAAW5N,CAAG;AAEvC,QADAmE,IAAQrF,EAAQqF,CAAK,IAAIA,EAAM,QAAQE,EAAI,GAAG,IAAIF,GAC9C/E,GAAM+E,CAAK;AACX,iBAAWuC,KAAMvC,EAAM;AACnB,QAAA0J,GAAaxJ,GAAK6B,GAAKQ,CAAE;AAAA,aACxB,MAAM,QAAQvC,CAAK;AACxB,iBAAWuC,KAAMvC;AACb,QAAA0J,GAAaxJ,GAAK6B,GAAKQ,CAAE;AAAA;AAE7B,MAAAmH,GAAaxJ,GAAK6B,GAAK/B,CAAK;AAAA,OAE/B;AACD,UAAM2J,IAAQ5J,EAAKlE,GAAK,IAAIqE,CAAG;AAC/B,QAAI6B,aAAe;AACf,MAAAA,EAAI,IAAI4H,GAAO5J,EAAKC,GAAO2J,GAAOzJ,CAAG,CAAC;AAAA,aAEjC6B,aAAe;AACpB,MAAAA,EAAI,IAAI4H,CAAK;AAAA,SAEZ;AACD,YAAMC,IAAYC,GAAahO,GAAK8N,GAAOzJ,CAAG,GACxC4J,IAAU/J,EAAKC,GAAO4J,GAAW1J,CAAG;AAC1C,MAAI0J,KAAa7H,IACb,OAAO,eAAeA,GAAK6H,GAAW;AAAA,QAClC,OAAOE;AAAA,QACP,UAAU;AAAA,QACV,YAAY;AAAA,QACZ,cAAc;AAAA,MAClC,CAAiB,IAED/H,EAAI6H,CAAS,IAAIE;AAAA,IACxB;AAAA,EACJ;AACD,SAAO/H;AACX;AACA,MAAM0H,KAAa,CAAC5N,MAAQA,MAAQ0N,MAC/BvO,EAASa,CAAG,KACTA,EAAI,UAAU0N,OACb,CAAC1N,EAAI,QAAQA,EAAI,SAAS0F,EAAO;AAQ1C,SAASmI,GAAaxJ,GAAK6B,GAAK/B,GAAO;AACnC,QAAMhC,IAASkC,KAAOvF,EAAQqF,CAAK,IAAIA,EAAM,QAAQE,EAAI,GAAG,IAAIF;AAChE,MAAI,CAAClF,GAAMkD,CAAM;AACb,UAAM,IAAI,MAAM,2CAA2C;AAC/D,QAAM+L,IAAS/L,EAAO,OAAO,MAAMkC,GAAK,GAAG;AAC3C,aAAW,CAACrE,GAAKmE,CAAK,KAAK+J;AACvB,IAAIhI,aAAe,MACVA,EAAI,IAAIlG,CAAG,KACZkG,EAAI,IAAIlG,GAAKmE,CAAK,IAEjB+B,aAAe,MACpBA,EAAI,IAAIlG,CAAG,IAEL,OAAO,UAAU,eAAe,KAAKkG,GAAKlG,CAAG,KACnD,OAAO,eAAekG,GAAKlG,GAAK;AAAA,MAC5B,OAAAmE;AAAA,MACA,UAAU;AAAA,MACV,YAAY;AAAA,MACZ,cAAc;AAAA,IAC9B,CAAa;AAGT,SAAO+B;AACX;AACA,SAAS8H,GAAahO,GAAK8N,GAAOzJ,GAAK;AACnC,MAAIyJ,MAAU;AACV,WAAO;AACX,MAAI,OAAOA,KAAU;AACjB,WAAO,OAAOA,CAAK;AACvB,MAAIxO,EAAOU,CAAG,MAAKqE,KAAA,QAAAA,EAAK,MAAK;AACzB,UAAM8J,IAASzC,GAAuBrH,EAAI,KAAK,CAAE,CAAA;AACjD,IAAA8J,EAAO,UAAU,oBAAI;AACrB,eAAWpP,KAAQsF,EAAI,QAAQ,KAAM;AACjC,MAAA8J,EAAO,QAAQ,IAAIpP,EAAK,MAAM;AAClC,IAAAoP,EAAO,SAAS,IAChBA,EAAO,iBAAiB;AACxB,UAAMC,IAASpO,EAAI,SAASmO,CAAM;AAClC,QAAI,CAAC9J,EAAI,cAAc;AACnB,UAAIgK,IAAU,KAAK,UAAUD,CAAM;AACnC,MAAIC,EAAQ,SAAS,OACjBA,IAAUA,EAAQ,UAAU,GAAG,EAAE,IAAI,SACzCd,GAAKlJ,EAAI,IAAI,QAAQ,UAAU,kFAAkFgK,CAAO,0CAA0C,GAClKhK,EAAI,eAAe;AAAA,IACtB;AACD,WAAO+J;AAAA,EACV;AACD,SAAO,KAAK,UAAUN,CAAK;AAC/B;AChGA,SAASQ,GAAWtO,GAAKmE,GAAOE,GAAK;AACjC,QAAMJ,IAAIgC,GAAWjG,GAAK,QAAWqE,CAAG,GAClCC,IAAI2B,GAAW9B,GAAO,QAAWE,CAAG;AAC1C,SAAO,IAAIkK,EAAKtK,GAAGK,CAAC;AACxB;AACA,MAAMiK,EAAK;AAAA,EACP,YAAYvO,GAAKmE,IAAQ,MAAM;AAC3B,WAAO,eAAe,MAAMtF,GAAW,EAAE,OAAOH,GAAI,CAAE,GACtD,KAAK,MAAMsB,GACX,KAAK,QAAQmE;AAAA,EAChB;AAAA,EACD,MAAMkC,GAAQ;AACV,QAAI,EAAE,KAAArG,GAAK,OAAAmE,EAAO,IAAG;AACrB,WAAI7E,EAAOU,CAAG,MACVA,IAAMA,EAAI,MAAMqG,CAAM,IACtB/G,EAAO6E,CAAK,MACZA,IAAQA,EAAM,MAAMkC,CAAM,IACvB,IAAIkI,EAAKvO,GAAKmE,CAAK;AAAA,EAC7B;AAAA,EACD,OAAOqK,GAAGnK,GAAK;AACX,UAAMoK,IAAOpK,KAAA,QAAAA,EAAK,WAAW,oBAAI,IAAG,IAAK,CAAA;AACzC,WAAOsJ,GAAetJ,GAAKoK,GAAM,IAAI;AAAA,EACxC;AAAA,EACD,SAASpK,GAAK4F,GAAWC,GAAa;AAClC,WAAO7F,KAAA,QAAAA,EAAK,MACN6H,GAAc,MAAM7H,GAAK4F,GAAWC,CAAW,IAC/C,KAAK,UAAU,IAAI;AAAA,EAC5B;AACL;AC7BA,SAASwE,GAAoBC,GAAYtK,GAAKsH,GAAS;AAGnD,UAFatH,EAAI,UAAUsK,EAAW,OACbC,KAA0BC,IAClCF,GAAYtK,GAAKsH,CAAO;AAC7C;AACA,SAASkD,GAAyB,EAAE,SAAA5H,GAAS,OAAA6H,EAAK,GAAIzK,GAAK,EAAE,iBAAA0K,GAAiB,WAAAC,GAAW,YAAAC,GAAY,aAAA/E,GAAa,WAAAD,EAAS,GAAI;AAC3H,QAAM,EAAE,QAAA/C,GAAQ,SAAS,EAAE,eAAAkD,EAAe,EAAA,IAAK/F,GACzC6K,IAAU,OAAO,OAAO,IAAI7K,GAAK,EAAE,QAAQ4K,GAAY,MAAM,KAAM,CAAA;AACzE,MAAIxC,IAAY;AAChB,QAAMhK,IAAQ,CAAA;AACd,WAASpC,IAAI,GAAGA,IAAIyO,EAAM,QAAQ,EAAEzO,GAAG;AACnC,UAAMgF,IAAOyJ,EAAMzO,CAAC;AACpB,QAAI4G,IAAU;AACd,QAAI3H,EAAO+F,CAAI;AACX,MAAI,CAACoH,KAAapH,EAAK,eACnB5C,EAAM,KAAK,EAAE,GACjB0M,GAAiB9K,GAAK5B,GAAO4C,EAAK,eAAeoH,CAAS,GACtDpH,EAAK,YACL4B,IAAU5B,EAAK;AAAA,aAEdnG,EAAOmG,CAAI,GAAG;AACnB,YAAM+J,IAAK9P,EAAO+F,EAAK,GAAG,IAAIA,EAAK,MAAM;AACzC,MAAI+J,MACI,CAAC3C,KAAa2C,EAAG,eACjB3M,EAAM,KAAK,EAAE,GACjB0M,GAAiB9K,GAAK5B,GAAO2M,EAAG,eAAe3C,CAAS;AAAA,IAE/D;AACD,IAAAA,IAAY;AACZ,QAAI1F,IAAMiF,GAAU3G,GAAM6J,GAAS,MAAOjI,IAAU,MAAO,MAAOwF,IAAY,EAAK;AACnF,IAAIxF,MACAF,KAAOI,EAAYJ,GAAKkI,GAAY7E,EAAcnD,CAAO,CAAC,IAC1DwF,KAAaxF,MACbwF,IAAY,KAChBhK,EAAM,KAAKsM,IAAkBhI,CAAG;AAAA,EACnC;AACD,MAAIA;AACJ,MAAItE,EAAM,WAAW;AACjB,IAAAsE,IAAMiI,EAAU,QAAQA,EAAU;AAAA,OAEjC;AACD,IAAAjI,IAAMtE,EAAM,CAAC;AACb,aAASpC,IAAI,GAAGA,IAAIoC,EAAM,QAAQ,EAAEpC,GAAG;AACnC,YAAMsB,IAAOc,EAAMpC,CAAC;AACpB,MAAA0G,KAAOpF,IAAO;AAAA,EAAKuF,CAAM,GAAGvF,CAAI,KAAK;AAAA;AAAA,IACxC;AAAA,EACJ;AACD,SAAIsF,KACAF,KAAO;AAAA,IAAOC,EAAcoD,EAAcnD,CAAO,GAAGC,CAAM,GACtD+C,KACAA,OAECwC,KAAavC,KAClBA,KACGnD;AACX;AACA,SAAS6H,GAAwB,EAAE,OAAAE,EAAO,GAAEzK,GAAK,EAAE,WAAA2K,GAAW,YAAAC,KAAc;AACxE,QAAM,EAAE,QAAA/H,GAAQ,YAAA8D,GAAY,uBAAuBqE,GAAW,SAAS,EAAE,eAAAjF,IAAiB,IAAG/F;AAC7F,EAAA4K,KAAcjE;AACd,QAAMkE,IAAU,OAAO,OAAO,CAAA,GAAI7K,GAAK;AAAA,IACnC,QAAQ4K;AAAA,IACR,QAAQ;AAAA,IACR,MAAM;AAAA,EACd,CAAK;AACD,MAAIK,IAAa,IACbC,IAAe;AACnB,QAAM9M,IAAQ,CAAA;AACd,WAASpC,IAAI,GAAGA,IAAIyO,EAAM,QAAQ,EAAEzO,GAAG;AACnC,UAAMgF,IAAOyJ,EAAMzO,CAAC;AACpB,QAAI4G,IAAU;AACd,QAAI3H,EAAO+F,CAAI;AACX,MAAIA,EAAK,eACL5C,EAAM,KAAK,EAAE,GACjB0M,GAAiB9K,GAAK5B,GAAO4C,EAAK,eAAe,EAAK,GAClDA,EAAK,YACL4B,IAAU5B,EAAK;AAAA,aAEdnG,EAAOmG,CAAI,GAAG;AACnB,YAAM+J,IAAK9P,EAAO+F,EAAK,GAAG,IAAIA,EAAK,MAAM;AACzC,MAAI+J,MACIA,EAAG,eACH3M,EAAM,KAAK,EAAE,GACjB0M,GAAiB9K,GAAK5B,GAAO2M,EAAG,eAAe,EAAK,GAChDA,EAAG,YACHE,IAAa;AAErB,YAAME,IAAKlQ,EAAO+F,EAAK,KAAK,IAAIA,EAAK,QAAQ;AAC7C,MAAImK,KACIA,EAAG,YACHvI,IAAUuI,EAAG,UACbA,EAAG,kBACHF,IAAa,OAEZjK,EAAK,SAAS,SAAQ+J,KAAA,QAAAA,EAAI,aAC/BnI,IAAUmI,EAAG;AAAA,IAEpB;AACD,IAAInI,MACAqI,IAAa;AACjB,QAAIvI,IAAMiF,GAAU3G,GAAM6J,GAAS,MAAOjI,IAAU,IAAK;AACzD,IAAI5G,IAAIyO,EAAM,SAAS,MACnB/H,KAAO,MACPE,MACAF,KAAOI,EAAYJ,GAAKkI,GAAY7E,EAAcnD,CAAO,CAAC,IAC1D,CAACqI,MAAe7M,EAAM,SAAS8M,KAAgBxI,EAAI,SAAS;AAAA,CAAI,OAChEuI,IAAa,KACjB7M,EAAM,KAAKsE,CAAG,GACdwI,IAAe9M,EAAM;AAAA,EACxB;AACD,QAAM,EAAE,OAAAmG,GAAO,KAAAV,EAAK,IAAG8G;AACvB,MAAIvM,EAAM,WAAW;AACjB,WAAOmG,IAAQV;AAGf,MAAI,CAACoH,GAAY;AACb,UAAMxL,IAAMrB,EAAM,OAAO,CAACgN,GAAK9N,MAAS8N,IAAM9N,EAAK,SAAS,GAAG,CAAC;AAChE,IAAA2N,IAAajL,EAAI,QAAQ,YAAY,KAAKP,IAAMO,EAAI,QAAQ;AAAA,EAC/D;AACD,MAAIiL,GAAY;AACZ,QAAIvI,IAAM6B;AACV,eAAWjH,KAAQc;AACf,MAAAsE,KAAOpF,IAAO;AAAA,EAAKqJ,CAAU,GAAG9D,CAAM,GAAGvF,CAAI,KAAK;AAAA;AACtD,WAAO,GAAGoF,CAAG;AAAA,EAAKG,CAAM,GAAGgB,CAAG;AAAA,EACjC;AAEG,WAAO,GAAGU,CAAK,GAAGyG,CAAS,GAAG5M,EAAM,KAAK,GAAG,CAAC,GAAG4M,CAAS,GAAGnH,CAAG;AAG3E;AACA,SAASiH,GAAiB,EAAE,QAAAjI,GAAQ,SAAS,EAAE,eAAAkD,EAAa,KAAM3H,GAAOwE,GAASwF,GAAW;AAGzF,MAFIxF,KAAWwF,MACXxF,IAAUA,EAAQ,QAAQ,QAAQ,EAAE,IACpCA,GAAS;AACT,UAAMyI,IAAK1I,EAAcoD,EAAcnD,CAAO,GAAGC,CAAM;AACvD,IAAAzE,EAAM,KAAKiN,EAAG,UAAW,CAAA;AAAA,EAC5B;AACL;ACrIA,SAASC,EAASb,GAAO9O,GAAK;AAC1B,QAAMiE,IAAI9E,EAASa,CAAG,IAAIA,EAAI,QAAQA;AACtC,aAAW0G,KAAMoI;AACb,QAAI5P,EAAOwH,CAAE,MACLA,EAAG,QAAQ1G,KAAO0G,EAAG,QAAQzC,KAE7B9E,EAASuH,EAAG,GAAG,KAAKA,EAAG,IAAI,UAAUzC;AACrC,aAAOyC;AAIvB;AACA,MAAMkJ,UAAgBnJ,GAAW;AAAA,EAC7B,WAAW,UAAU;AACjB,WAAO;AAAA,EACV;AAAA,EACD,YAAYJ,GAAQ;AAChB,UAAM5H,GAAK4H,CAAM,GACjB,KAAK,QAAQ;EAChB;AAAA;AAAA;AAAA;AAAA;AAAA,EAKD,OAAO,KAAKA,GAAQzC,GAAKS,GAAK;AAC1B,UAAM,EAAE,eAAAwL,GAAe,UAAAC,EAAU,IAAGzL,GAC9B6B,IAAM,IAAI,KAAKG,CAAM,GACrB0J,IAAM,CAAC/P,GAAKmE,MAAU;AACxB,UAAI,OAAO2L,KAAa;AACpB,QAAA3L,IAAQ2L,EAAS,KAAKlM,GAAK5D,GAAKmE,CAAK;AAAA,eAChC,MAAM,QAAQ2L,CAAQ,KAAK,CAACA,EAAS,SAAS9P,CAAG;AACtD;AACJ,OAAImE,MAAU,UAAa0L,MACvB3J,EAAI,MAAM,KAAKoI,GAAWtO,GAAKmE,GAAOE,CAAG,CAAC;AAAA,IAC1D;AACQ,QAAIT,aAAe;AACf,iBAAW,CAAC5D,GAAKmE,CAAK,KAAKP;AACvB,QAAAmM,EAAI/P,GAAKmE,CAAK;AAAA,aAEbP,KAAO,OAAOA,KAAQ;AAC3B,iBAAW5D,KAAO,OAAO,KAAK4D,CAAG;AAC7B,QAAAmM,EAAI/P,GAAK4D,EAAI5D,CAAG,CAAC;AAEzB,WAAI,OAAOqG,EAAO,kBAAmB,cACjCH,EAAI,MAAM,KAAKG,EAAO,cAAc,GAEjCH;AAAA,EACV;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOD,IAAIuI,GAAMuB,GAAW;ApB7DzB,QAAArP;AoB8DQ,QAAIsP;AACJ,IAAI/Q,EAAOuP,CAAI,IACXwB,IAAQxB,IACH,CAACA,KAAQ,OAAOA,KAAS,YAAY,EAAE,SAASA,KAErDwB,IAAQ,IAAI1B,EAAKE,GAAMA,KAAA,gBAAAA,EAAM,KAAK,IAGlCwB,IAAQ,IAAI1B,EAAKE,EAAK,KAAKA,EAAK,KAAK;AACzC,UAAMrG,IAAOuH,EAAS,KAAK,OAAOM,EAAM,GAAG,GACrCC,KAAcvP,IAAA,KAAK,WAAL,gBAAAA,EAAa;AACjC,QAAIyH,GAAM;AACN,UAAI,CAAC4H;AACD,cAAM,IAAI,MAAM,OAAOC,EAAM,GAAG,cAAc;AAElD,MAAI9Q,EAASiJ,EAAK,KAAK,KAAK3C,GAAcwK,EAAM,KAAK,IACjD7H,EAAK,MAAM,QAAQ6H,EAAM,QAEzB7H,EAAK,QAAQ6H,EAAM;AAAA,IAC1B,WACQC,GAAa;AAClB,YAAM7P,IAAI,KAAK,MAAM,UAAU,CAAAgF,MAAQ6K,EAAYD,GAAO5K,CAAI,IAAI,CAAC;AACnE,MAAIhF,MAAM,KACN,KAAK,MAAM,KAAK4P,CAAK,IAErB,KAAK,MAAM,OAAO5P,GAAG,GAAG4P,CAAK;AAAA,IACpC;AAEG,WAAK,MAAM,KAAKA,CAAK;AAAA,EAE5B;AAAA,EACD,OAAOjQ,GAAK;AACR,UAAM0G,IAAKiJ,EAAS,KAAK,OAAO3P,CAAG;AACnC,WAAK0G,IAEO,KAAK,MAAM,OAAO,KAAK,MAAM,QAAQA,CAAE,GAAG,CAAC,EAC5C,SAAS,IAFT;AAAA,EAGd;AAAA,EACD,IAAI1G,GAAK4G,GAAY;AACjB,UAAMF,IAAKiJ,EAAS,KAAK,OAAO3P,CAAG,GAC7BjB,IAAO2H,KAAA,gBAAAA,EAAI;AACjB,YAAQ,CAACE,KAAczH,EAASJ,CAAI,IAAIA,EAAK,QAAQA,MAAS;AAAA,EACjE;AAAA,EACD,IAAIiB,GAAK;AACL,WAAO,CAAC,CAAC2P,EAAS,KAAK,OAAO3P,CAAG;AAAA,EACpC;AAAA,EACD,IAAIA,GAAKmE,GAAO;AACZ,SAAK,IAAI,IAAIoK,EAAKvO,GAAKmE,CAAK,GAAG,EAAI;AAAA,EACtC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMD,OAAOqK,GAAGnK,GAAK8L,GAAM;AACjB,UAAMjK,IAAMiK,IAAO,IAAIA,EAAM,IAAG9L,KAAA,QAAAA,EAAK,WAAW,oBAAI,IAAK,IAAG;AAC5D,IAAIA,KAAA,QAAAA,EAAK,YACLA,EAAI,SAAS6B,CAAG;AACpB,eAAWb,KAAQ,KAAK;AACpB,MAAAsI,GAAetJ,GAAK6B,GAAKb,CAAI;AACjC,WAAOa;AAAA,EACV;AAAA,EACD,SAAS7B,GAAK4F,GAAWC,GAAa;AAClC,QAAI,CAAC7F;AACD,aAAO,KAAK,UAAU,IAAI;AAC9B,eAAWgB,KAAQ,KAAK;AACpB,UAAI,CAACnG,EAAOmG,CAAI;AACZ,cAAM,IAAI,MAAM,sCAAsC,KAAK,UAAUA,CAAI,CAAC,UAAU;AAE5F,WAAI,CAAChB,EAAI,iBAAiB,KAAK,iBAAiB,EAAK,MACjDA,IAAM,OAAO,OAAO,CAAE,GAAEA,GAAK,EAAE,eAAe,GAAI,CAAE,IACjDqK,GAAoB,MAAMrK,GAAK;AAAA,MAClC,iBAAiB;AAAA,MACjB,WAAW,EAAE,OAAO,KAAK,KAAK,IAAK;AAAA,MACnC,YAAYA,EAAI,UAAU;AAAA,MAC1B,aAAA6F;AAAA,MACA,WAAAD;AAAA,IACZ,CAAS;AAAA,EACJ;AACL;AC1IA,MAAM/D,KAAM;AAAA,EACR,YAAY;AAAA,EACZ,SAAS;AAAA,EACT,WAAW0J;AAAA,EACX,KAAK;AAAA,EACL,QAAQ1J,GAAKtE,GAAS;AAClB,WAAK3C,GAAMiH,CAAG,KACVtE,EAAQ,iCAAiC,GACtCsE;AAAA,EACV;AAAA,EACD,YAAY,CAACG,GAAQzC,GAAKS,MAAQuL,EAAQ,KAAKvJ,GAAQzC,GAAKS,CAAG;AACnE;ACPA,MAAM+L,UAAgB3J,GAAW;AAAA,EAC7B,WAAW,UAAU;AACjB,WAAO;AAAA,EACV;AAAA,EACD,YAAYJ,GAAQ;AAChB,UAAMzH,IAAKyH,CAAM,GACjB,KAAK,QAAQ;EAChB;AAAA,EACD,IAAIlC,GAAO;AACP,SAAK,MAAM,KAAKA,CAAK;AAAA,EACxB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASD,OAAOnE,GAAK;AACR,UAAMqQ,IAAMC,GAAYtQ,CAAG;AAC3B,WAAI,OAAOqQ,KAAQ,WACR,KACC,KAAK,MAAM,OAAOA,GAAK,CAAC,EACzB,SAAS;AAAA,EACvB;AAAA,EACD,IAAIrQ,GAAK4G,GAAY;AACjB,UAAMyJ,IAAMC,GAAYtQ,CAAG;AAC3B,QAAI,OAAOqQ,KAAQ;AACf;AACJ,UAAM3J,IAAK,KAAK,MAAM2J,CAAG;AACzB,WAAO,CAACzJ,KAAczH,EAASuH,CAAE,IAAIA,EAAG,QAAQA;AAAA,EACnD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOD,IAAI1G,GAAK;AACL,UAAMqQ,IAAMC,GAAYtQ,CAAG;AAC3B,WAAO,OAAOqQ,KAAQ,YAAYA,IAAM,KAAK,MAAM;AAAA,EACtD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQD,IAAIrQ,GAAKmE,GAAO;AACZ,UAAMkM,IAAMC,GAAYtQ,CAAG;AAC3B,QAAI,OAAOqQ,KAAQ;AACf,YAAM,IAAI,MAAM,+BAA+BrQ,CAAG,GAAG;AACzD,UAAMoI,IAAO,KAAK,MAAMiI,CAAG;AAC3B,IAAIlR,EAASiJ,CAAI,KAAK3C,GAActB,CAAK,IACrCiE,EAAK,QAAQjE,IAEb,KAAK,MAAMkM,CAAG,IAAIlM;AAAA,EACzB;AAAA,EACD,OAAOqK,GAAGnK,GAAK;AACX,UAAMkM,IAAM,CAAA;AACZ,IAAIlM,KAAA,QAAAA,EAAK,YACLA,EAAI,SAASkM,CAAG;AACpB,QAAI,IAAI;AACR,eAAWlL,KAAQ,KAAK;AACpB,MAAAkL,EAAI,KAAKrM,EAAKmB,GAAM,OAAO,GAAG,GAAGhB,CAAG,CAAC;AACzC,WAAOkM;AAAA,EACV;AAAA,EACD,SAASlM,GAAK4F,GAAWC,GAAa;AAClC,WAAK7F,IAEEqK,GAAoB,MAAMrK,GAAK;AAAA,MAClC,iBAAiB;AAAA,MACjB,WAAW,EAAE,OAAO,KAAK,KAAK,IAAK;AAAA,MACnC,aAAaA,EAAI,UAAU,MAAM;AAAA,MACjC,aAAA6F;AAAA,MACA,WAAAD;AAAA,IACZ,CAAS,IAPU,KAAK,UAAU,IAAI;AAAA,EAQjC;AAAA,EACD,OAAO,KAAK5D,GAAQzC,GAAKS,GAAK;AAC1B,UAAM,EAAE,UAAAyL,EAAU,IAAGzL,GACfkM,IAAM,IAAI,KAAKlK,CAAM;AAC3B,QAAIzC,KAAO,OAAO,YAAY,OAAOA,CAAG,GAAG;AACvC,UAAIvD,IAAI;AACR,eAASqG,KAAM9C,GAAK;AAChB,YAAI,OAAOkM,KAAa,YAAY;AAChC,gBAAM9P,IAAM4D,aAAe,MAAM8C,IAAK,OAAOrG,GAAG;AAChD,UAAAqG,IAAKoJ,EAAS,KAAKlM,GAAK5D,GAAK0G,CAAE;AAAA,QAClC;AACD,QAAA6J,EAAI,MAAM,KAAKtK,GAAWS,GAAI,QAAWrC,CAAG,CAAC;AAAA,MAChD;AAAA,IACJ;AACD,WAAOkM;AAAA,EACV;AACL;AACA,SAASD,GAAYtQ,GAAK;AACtB,MAAIqQ,IAAMlR,EAASa,CAAG,IAAIA,EAAI,QAAQA;AACtC,SAAIqQ,KAAO,OAAOA,KAAQ,aACtBA,IAAM,OAAOA,CAAG,IACb,OAAOA,KAAQ,YAAY,OAAO,UAAUA,CAAG,KAAKA,KAAO,IAC5DA,IACA;AACV;AC3GA,MAAME,KAAM;AAAA,EACR,YAAY;AAAA,EACZ,SAAS;AAAA,EACT,WAAWH;AAAA,EACX,KAAK;AAAA,EACL,QAAQG,GAAK3O,GAAS;AAClB,WAAKxC,GAAMmR,CAAG,KACV3O,EAAQ,kCAAkC,GACvC2O;AAAA,EACV;AAAA,EACD,YAAY,CAAClK,GAAQzC,GAAKS,MAAQ+L,EAAQ,KAAK/J,GAAQzC,GAAKS,CAAG;AACnE,GCZMmM,KAAS;AAAA,EACX,UAAU,CAAArM,MAAS,OAAOA,KAAU;AAAA,EACpC,SAAS;AAAA,EACT,KAAK;AAAA,EACL,SAAS,CAAA4C,MAAOA;AAAA,EAChB,UAAU1B,GAAMhB,GAAK4F,GAAWC,GAAa;AACzC,WAAA7F,IAAM,OAAO,OAAO,EAAE,cAAc,GAAI,GAAIA,CAAG,GACxC+G,GAAgB/F,GAAMhB,GAAK4F,GAAWC,CAAW;AAAA,EAC3D;AACL,GCTMuG,KAAU;AAAA,EACZ,UAAU,CAAAtM,MAASA,KAAS;AAAA,EAC5B,YAAY,MAAM,IAAIuB,EAAO,IAAI;AAAA,EACjC,SAAS;AAAA,EACT,KAAK;AAAA,EACL,MAAM;AAAA,EACN,SAAS,MAAM,IAAIA,EAAO,IAAI;AAAA,EAC9B,WAAW,CAAC,EAAE,QAAAvD,EAAQ,GAAEkC,MAAQ,OAAOlC,KAAW,YAAYsO,GAAQ,KAAK,KAAKtO,CAAM,IAChFA,IACAkC,EAAI,QAAQ;AACtB,GCVMqM,KAAU;AAAA,EACZ,UAAU,CAAAvM,MAAS,OAAOA,KAAU;AAAA,EACpC,SAAS;AAAA,EACT,KAAK;AAAA,EACL,MAAM;AAAA,EACN,SAAS,CAAA4C,MAAO,IAAIrB,EAAOqB,EAAI,CAAC,MAAM,OAAOA,EAAI,CAAC,MAAM,GAAG;AAAA,EAC3D,UAAU,EAAE,QAAA5E,GAAQ,OAAAgC,EAAK,GAAIE,GAAK;AAC9B,QAAIlC,KAAUuO,GAAQ,KAAK,KAAKvO,CAAM,GAAG;AACrC,YAAMwO,IAAKxO,EAAO,CAAC,MAAM,OAAOA,EAAO,CAAC,MAAM;AAC9C,UAAIgC,MAAUwM;AACV,eAAOxO;AAAA,IACd;AACD,WAAOgC,IAAQE,EAAI,QAAQ,UAAUA,EAAI,QAAQ;AAAA,EACpD;AACL;AChBA,SAASuM,EAAgB,EAAE,QAAAC,GAAQ,mBAAAC,GAAmB,KAAAvO,GAAK,OAAA4B,EAAK,GAAI;AAChE,MAAI,OAAOA,KAAU;AACjB,WAAO,OAAOA,CAAK;AACvB,QAAM4M,IAAM,OAAO5M,KAAU,WAAWA,IAAQ,OAAOA,CAAK;AAC5D,MAAI,CAAC,SAAS4M,CAAG;AACb,WAAO,MAAMA,CAAG,IAAI,SAASA,IAAM,IAAI,UAAU;AACrD,MAAIC,IAAI,KAAK,UAAU7M,CAAK;AAC5B,MAAI,CAAC0M,KACDC,MACC,CAACvO,KAAOA,MAAQ,8BACjB,MAAM,KAAKyO,CAAC,GAAG;AACf,QAAI3Q,IAAI2Q,EAAE,QAAQ,GAAG;AACrB,IAAI3Q,IAAI,MACJA,IAAI2Q,EAAE,QACNA,KAAK;AAET,QAAIC,IAAIH,KAAqBE,EAAE,SAAS3Q,IAAI;AAC5C,WAAO4Q,MAAM;AACT,MAAAD,KAAK;AAAA,EACZ;AACD,SAAOA;AACX;AClBA,MAAME,KAAW;AAAA,EACb,UAAU,CAAA/M,MAAS,OAAOA,KAAU;AAAA,EACpC,SAAS;AAAA,EACT,KAAK;AAAA,EACL,MAAM;AAAA,EACN,SAAS,CAAA4C,MAAOA,EAAI,MAAM,EAAE,EAAE,YAAW,MAAO,QAC1C,MACAA,EAAI,CAAC,MAAM,MACP,OAAO,oBACP,OAAO;AAAA,EACjB,WAAW6J;AACf,GACMO,KAAW;AAAA,EACb,UAAU,CAAAhN,MAAS,OAAOA,KAAU;AAAA,EACpC,SAAS;AAAA,EACT,KAAK;AAAA,EACL,QAAQ;AAAA,EACR,MAAM;AAAA,EACN,SAAS,CAAA4C,MAAO,WAAWA,CAAG;AAAA,EAC9B,UAAUhI,GAAM;AACZ,UAAMgS,IAAM,OAAOhS,EAAK,KAAK;AAC7B,WAAO,SAASgS,CAAG,IAAIA,EAAI,kBAAkBH,EAAgB7R,CAAI;AAAA,EACpE;AACL,GACMqS,KAAQ;AAAA,EACV,UAAU,CAAAjN,MAAS,OAAOA,KAAU;AAAA,EACpC,SAAS;AAAA,EACT,KAAK;AAAA,EACL,MAAM;AAAA,EACN,QAAQ4C,GAAK;AACT,UAAMhI,IAAO,IAAI2G,EAAO,WAAWqB,CAAG,CAAC,GACjCsK,IAAMtK,EAAI,QAAQ,GAAG;AAC3B,WAAIsK,MAAQ,MAAMtK,EAAIA,EAAI,SAAS,CAAC,MAAM,QACtChI,EAAK,oBAAoBgI,EAAI,SAASsK,IAAM,IACzCtS;AAAA,EACV;AAAA,EACD,WAAW6R;AACf,GCtCMU,KAAc,CAACnN,MAAU,OAAOA,KAAU,YAAY,OAAO,UAAUA,CAAK,GAC5EoN,KAAa,CAACxK,GAAKyK,GAAQC,GAAO,EAAE,aAAAC,EAAa,MAAMA,IAAc,OAAO3K,CAAG,IAAI,SAASA,EAAI,UAAUyK,CAAM,GAAGC,CAAK;AAC9H,SAASE,GAAa5S,GAAM0S,GAAOzP,GAAQ;AACvC,QAAM,EAAE,OAAAmC,EAAO,IAAGpF;AAClB,SAAIuS,GAAYnN,CAAK,KAAKA,KAAS,IACxBnC,IAASmC,EAAM,SAASsN,CAAK,IACjCb,EAAgB7R,CAAI;AAC/B;AACA,MAAM6S,KAAS;AAAA,EACX,UAAU,CAAAzN,MAASmN,GAAYnN,CAAK,KAAKA,KAAS;AAAA,EAClD,SAAS;AAAA,EACT,KAAK;AAAA,EACL,QAAQ;AAAA,EACR,MAAM;AAAA,EACN,SAAS,CAAC4C,GAAK8K,GAAUjG,MAAQ2F,GAAWxK,GAAK,GAAG,GAAG6E,CAAG;AAAA,EAC1D,WAAW,CAAA7M,MAAQ4S,GAAa5S,GAAM,GAAG,IAAI;AACjD,GACM+S,KAAM;AAAA,EACR,UAAUR;AAAAA,EACV,SAAS;AAAA,EACT,KAAK;AAAA,EACL,MAAM;AAAA,EACN,SAAS,CAACvK,GAAK8K,GAAUjG,MAAQ2F,GAAWxK,GAAK,GAAG,IAAI6E,CAAG;AAAA,EAC3D,WAAWgF;AACf,GACMmB,KAAS;AAAA,EACX,UAAU,CAAA5N,MAASmN,GAAYnN,CAAK,KAAKA,KAAS;AAAA,EAClD,SAAS;AAAA,EACT,KAAK;AAAA,EACL,QAAQ;AAAA,EACR,MAAM;AAAA,EACN,SAAS,CAAC4C,GAAK8K,GAAUjG,MAAQ2F,GAAWxK,GAAK,GAAG,IAAI6E,CAAG;AAAA,EAC3D,WAAW,CAAA7M,MAAQ4S,GAAa5S,GAAM,IAAI,IAAI;AAClD,GC3BMsH,KAAS;AAAA,EACXH;AAAA,EACAqK;AAAA,EACAC;AAAA,EACAC;AAAA,EACAC;AAAA,EACAkB;AAAAA,EACAE;AAAAA,EACAC;AAAAA,EACAb;AAAAA,EACAC;AAAAA,EACAC;AACJ;AChBA,SAASE,GAAYnN,GAAO;AACxB,SAAO,OAAOA,KAAU,YAAY,OAAO,UAAUA,CAAK;AAC9D;AACA,MAAM6N,KAAgB,CAAC,EAAE,OAAA7N,EAAK,MAAO,KAAK,UAAUA,CAAK,GACnD8N,KAAc;AAAA,EAChB;AAAA,IACI,UAAU,CAAA9N,MAAS,OAAOA,KAAU;AAAA,IACpC,SAAS;AAAA,IACT,KAAK;AAAA,IACL,SAAS,CAAA4C,MAAOA;AAAA,IAChB,WAAWiL;AAAA,EACd;AAAA,EACD;AAAA,IACI,UAAU,CAAA7N,MAASA,KAAS;AAAA,IAC5B,YAAY,MAAM,IAAIuB,EAAO,IAAI;AAAA,IACjC,SAAS;AAAA,IACT,KAAK;AAAA,IACL,MAAM;AAAA,IACN,SAAS,MAAM;AAAA,IACf,WAAWsM;AAAA,EACd;AAAA,EACD;AAAA,IACI,UAAU,CAAA7N,MAAS,OAAOA,KAAU;AAAA,IACpC,SAAS;AAAA,IACT,KAAK;AAAA,IACL,MAAM;AAAA,IACN,SAAS,CAAA4C,MAAOA,MAAQ;AAAA,IACxB,WAAWiL;AAAA,EACd;AAAA,EACD;AAAA,IACI,UAAUV;AAAAA,IACV,SAAS;AAAA,IACT,KAAK;AAAA,IACL,MAAM;AAAA,IACN,SAAS,CAACvK,GAAK8K,GAAU,EAAE,aAAAH,EAAa,MAAKA,IAAc,OAAO3K,CAAG,IAAI,SAASA,GAAK,EAAE;AAAA,IACzF,WAAW,CAAC,EAAE,OAAA5C,EAAO,MAAKmN,GAAYnN,CAAK,IAAIA,EAAM,SAAU,IAAG,KAAK,UAAUA,CAAK;AAAA,EACzF;AAAA,EACD;AAAA,IACI,UAAU,CAAAA,MAAS,OAAOA,KAAU;AAAA,IACpC,SAAS;AAAA,IACT,KAAK;AAAA,IACL,MAAM;AAAA,IACN,SAAS,CAAA4C,MAAO,WAAWA,CAAG;AAAA,IAC9B,WAAWiL;AAAA,EACd;AACL,GACME,KAAY;AAAA,EACd,SAAS;AAAA,EACT,KAAK;AAAA,EACL,MAAM;AAAA,EACN,QAAQnL,GAAKnF,GAAS;AAClB,WAAAA,EAAQ,2BAA2B,KAAK,UAAUmF,CAAG,CAAC,EAAE,GACjDA;AAAA,EACV;AACL,GACMV,KAAS,CAACH,IAAKqK,EAAG,EAAE,OAAO0B,IAAaC,EAAS,GCxDjDC,KAAS;AAAA,EACX,UAAU,CAAAhO,MAASA,aAAiB;AAAA;AAAA,EACpC,SAAS;AAAA,EACT,KAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASL,QAAQiB,GAAKxD,GAAS;AAClB,QAAI,OAAO,UAAW;AAClB,aAAO,OAAO,KAAKwD,GAAK,QAAQ;AAE/B,QAAI,OAAO,QAAS,YAAY;AAEjC,YAAM2B,IAAM,KAAK3B,EAAI,QAAQ,WAAW,EAAE,CAAC,GACrCgN,IAAS,IAAI,WAAWrL,EAAI,MAAM;AACxC,eAAS,IAAI,GAAG,IAAIA,EAAI,QAAQ,EAAE;AAC9B,QAAAqL,EAAO,CAAC,IAAIrL,EAAI,WAAW,CAAC;AAChC,aAAOqL;AAAA,IACV;AAEG,aAAAxQ,EAAQ,0FAA0F,GAC3FwD;AAAA,EAEd;AAAA,EACD,UAAU,EAAE,SAAA6B,GAAS,MAAAxC,GAAM,OAAAN,EAAK,GAAIE,GAAK4F,GAAWC,GAAa;AAC7D,UAAMmI,IAAMlO;AACZ,QAAI4C;AACJ,QAAI,OAAO,UAAW;AAClB,MAAAA,IACIsL,aAAe,SACTA,EAAI,SAAS,QAAQ,IACrB,OAAO,KAAKA,EAAI,MAAM,EAAE,SAAS,QAAQ;AAAA,aAE9C,OAAO,QAAS,YAAY;AACjC,UAAIC,IAAI;AACR,eAASjS,IAAI,GAAGA,IAAIgS,EAAI,QAAQ,EAAEhS;AAC9B,QAAAiS,KAAK,OAAO,aAAaD,EAAIhS,CAAC,CAAC;AACnC,MAAA0G,IAAM,KAAKuL,CAAC;AAAA,IACf;AAEG,YAAM,IAAI,MAAM,0FAA0F;AAI9G,QAFK7N,MACDA,IAAOiB,EAAO,gBACdjB,MAASiB,EAAO,cAAc;AAC9B,YAAMiC,IAAY,KAAK,IAAItD,EAAI,QAAQ,YAAYA,EAAI,OAAO,QAAQA,EAAI,QAAQ,eAAe,GAC3F2M,IAAI,KAAK,KAAKjK,EAAI,SAASY,CAAS,GACpClF,IAAQ,IAAI,MAAMuO,CAAC;AACzB,eAAS3Q,IAAI,GAAG4L,IAAI,GAAG5L,IAAI2Q,GAAG,EAAE3Q,GAAG4L,KAAKtE;AACpC,QAAAlF,EAAMpC,CAAC,IAAI0G,EAAI,OAAOkF,GAAGtE,CAAS;AAEtC,MAAAZ,IAAMtE,EAAM,KAAKgC,MAASiB,EAAO,gBAAgB;AAAA,IAAO,GAAG;AAAA,IAC9D;AACD,WAAO0F,GAAgB,EAAE,SAAAnE,GAAS,MAAAxC,GAAM,OAAOsC,EAAG,GAAI1C,GAAK4F,GAAWC,CAAW;AAAA,EACpF;AACL;AC1DA,SAASqI,GAAahC,GAAK3O,GAAS;AAChC,MAAIxC,GAAMmR,CAAG;AACT,aAASlQ,IAAI,GAAGA,IAAIkQ,EAAI,MAAM,QAAQ,EAAElQ,GAAG;AACvC,UAAIgF,IAAOkL,EAAI,MAAMlQ,CAAC;AACtB,UAAI,CAAAnB,EAAOmG,CAAI,GAEV;AAAA,YAAIpG,GAAMoG,CAAI,GAAG;AAClB,UAAIA,EAAK,MAAM,SAAS,KACpBzD,EAAQ,gDAAgD;AAC5D,gBAAM6M,IAAOpJ,EAAK,MAAM,CAAC,KAAK,IAAIkJ,EAAK,IAAI7I,EAAO,IAAI,CAAC;AAKvD,cAJIL,EAAK,kBACLoJ,EAAK,IAAI,gBAAgBA,EAAK,IAAI,gBAC5B,GAAGpJ,EAAK,aAAa;AAAA,EAAKoJ,EAAK,IAAI,aAAa,KAChDpJ,EAAK,gBACXA,EAAK,SAAS;AACd,kBAAMmN,IAAK/D,EAAK,SAASA,EAAK;AAC9B,YAAA+D,EAAG,UAAUA,EAAG,UACV,GAAGnN,EAAK,OAAO;AAAA,EAAKmN,EAAG,OAAO,KAC9BnN,EAAK;AAAA,UACd;AACD,UAAAA,IAAOoJ;AAAA,QACV;AACD,QAAA8B,EAAI,MAAMlQ,CAAC,IAAInB,EAAOmG,CAAI,IAAIA,IAAO,IAAIkJ,EAAKlJ,CAAI;AAAA;AAAA,IACrD;AAAA;AAGD,IAAAzD,EAAQ,kCAAkC;AAC9C,SAAO2O;AACX;AACA,SAASkC,GAAYpM,GAAQqM,GAAUrO,GAAK;AACxC,QAAM,EAAE,UAAAyL,EAAU,IAAGzL,GACfsO,IAAQ,IAAIvC,EAAQ/J,CAAM;AAChC,EAAAsM,EAAM,MAAM;AACZ,MAAItS,IAAI;AACR,MAAIqS,KAAY,OAAO,YAAY,OAAOA,CAAQ;AAC9C,aAAShM,KAAMgM,GAAU;AACrB,MAAI,OAAO5C,KAAa,eACpBpJ,IAAKoJ,EAAS,KAAK4C,GAAU,OAAOrS,GAAG,GAAGqG,CAAE;AAChD,UAAI1G,GAAKmE;AACT,UAAI,MAAM,QAAQuC,CAAE;AAChB,YAAIA,EAAG,WAAW;AACd,UAAA1G,IAAM0G,EAAG,CAAC,GACVvC,IAAQuC,EAAG,CAAC;AAAA;AAGZ,gBAAM,IAAI,UAAU,gCAAgCA,CAAE,EAAE;AAAA,eAEvDA,KAAMA,aAAc,QAAQ;AACjC,cAAMkM,IAAO,OAAO,KAAKlM,CAAE;AAC3B,YAAIkM,EAAK,WAAW;AAChB,UAAA5S,IAAM4S,EAAK,CAAC,GACZzO,IAAQuC,EAAG1G,CAAG;AAAA;AAGd,gBAAM,IAAI,UAAU,oCAAoC4S,EAAK,MAAM,OAAO;AAAA,MAEjF;AAEG,QAAA5S,IAAM0G;AAEV,MAAAiM,EAAM,MAAM,KAAKrE,GAAWtO,GAAKmE,GAAOE,CAAG,CAAC;AAAA,IAC/C;AACL,SAAOsO;AACX;AACA,MAAMA,KAAQ;AAAA,EACV,YAAY;AAAA,EACZ,SAAS;AAAA,EACT,KAAK;AAAA,EACL,SAASJ;AAAA,EACT,YAAYE;AAChB;ACrEA,MAAMI,WAAiBzC,EAAQ;AAAA,EAC3B,cAAc;AACV,aACA,KAAK,MAAMR,EAAQ,UAAU,IAAI,KAAK,IAAI,GAC1C,KAAK,SAASA,EAAQ,UAAU,OAAO,KAAK,IAAI,GAChD,KAAK,MAAMA,EAAQ,UAAU,IAAI,KAAK,IAAI,GAC1C,KAAK,MAAMA,EAAQ,UAAU,IAAI,KAAK,IAAI,GAC1C,KAAK,MAAMA,EAAQ,UAAU,IAAI,KAAK,IAAI,GAC1C,KAAK,MAAMiD,GAAS;AAAA,EACvB;AAAA;AAAA;AAAA;AAAA;AAAA,EAKD,OAAOrE,GAAGnK,GAAK;AACX,QAAI,CAACA;AACD,aAAO,MAAM,OAAOmK,CAAC;AACzB,UAAMtI,IAAM,oBAAI;AAChB,IAAI7B,KAAA,QAAAA,EAAK,YACLA,EAAI,SAAS6B,CAAG;AACpB,eAAWuI,KAAQ,KAAK,OAAO;AAC3B,UAAIzO,GAAKmE;AAQT,UAPIjF,EAAOuP,CAAI,KACXzO,IAAMkE,EAAKuK,EAAK,KAAK,IAAIpK,CAAG,GAC5BF,IAAQD,EAAKuK,EAAK,OAAOzO,GAAKqE,CAAG,KAGjCrE,IAAMkE,EAAKuK,GAAM,IAAIpK,CAAG,GAExB6B,EAAI,IAAIlG,CAAG;AACX,cAAM,IAAI,MAAM,8CAA8C;AAClE,MAAAkG,EAAI,IAAIlG,GAAKmE,CAAK;AAAA,IACrB;AACD,WAAO+B;AAAA,EACV;AAAA,EACD,OAAO,KAAKG,GAAQqM,GAAUrO,GAAK;AAC/B,UAAMsO,IAAQF,GAAYpM,GAAQqM,GAAUrO,CAAG,GACzCyO,IAAO,IAAI;AACjB,WAAAA,EAAK,QAAQH,EAAM,OACZG;AAAA,EACV;AACL;AACAD,GAAS,MAAM;AACf,MAAMC,KAAO;AAAA,EACT,YAAY;AAAA,EACZ,UAAU,CAAA3O,MAASA,aAAiB;AAAA,EACpC,WAAW0O;AAAA,EACX,SAAS;AAAA,EACT,KAAK;AAAA,EACL,QAAQtC,GAAK3O,GAAS;AAClB,UAAM+Q,IAAQJ,GAAahC,GAAK3O,CAAO,GACjCmR,IAAW,CAAA;AACjB,eAAW,EAAE,KAAA/S,OAAS2S,EAAM;AACxB,MAAIxT,EAASa,CAAG,MACR+S,EAAS,SAAS/S,EAAI,KAAK,IAC3B4B,EAAQ,iDAAiD5B,EAAI,KAAK,EAAE,IAGpE+S,EAAS,KAAK/S,EAAI,KAAK;AAInC,WAAO,OAAO,OAAO,IAAI6S,GAAU,GAAEF,CAAK;AAAA,EAC7C;AAAA,EACD,YAAY,CAACtM,GAAQqM,GAAUrO,MAAQwO,GAAS,KAAKxM,GAAQqM,GAAUrO,CAAG;AAC9E;ACrEA,SAAS2O,GAAc,EAAE,OAAA7O,GAAO,QAAAhC,EAAM,GAAIkC,GAAK;AAE3C,SAAIlC,MADYgC,IAAQ8O,KAAUC,IACZ,KAAK,KAAK/Q,CAAM,IAC3BA,IACJgC,IAAQE,EAAI,QAAQ,UAAUA,EAAI,QAAQ;AACrD;AACA,MAAM4O,KAAU;AAAA,EACZ,UAAU,CAAA9O,MAASA,MAAU;AAAA,EAC7B,SAAS;AAAA,EACT,KAAK;AAAA,EACL,MAAM;AAAA,EACN,SAAS,MAAM,IAAIuB,EAAO,EAAI;AAAA,EAC9B,WAAWsN;AACf,GACME,KAAW;AAAA,EACb,UAAU,CAAA/O,MAASA,MAAU;AAAA,EAC7B,SAAS;AAAA,EACT,KAAK;AAAA,EACL,MAAM;AAAA,EACN,SAAS,MAAM,IAAIuB,EAAO,EAAK;AAAA,EAC/B,WAAWsN;AACf,GCpBM9B,KAAW;AAAA,EACb,UAAU,CAAA/M,MAAS,OAAOA,KAAU;AAAA,EACpC,SAAS;AAAA,EACT,KAAK;AAAA,EACL,MAAM;AAAA,EACN,SAAS,CAAC4C,MAAQA,EAAI,MAAM,EAAE,EAAE,YAAW,MAAO,QAC5C,MACAA,EAAI,CAAC,MAAM,MACP,OAAO,oBACP,OAAO;AAAA,EACjB,WAAW6J;AACf,GACMO,KAAW;AAAA,EACb,UAAU,CAAAhN,MAAS,OAAOA,KAAU;AAAA,EACpC,SAAS;AAAA,EACT,KAAK;AAAA,EACL,QAAQ;AAAA,EACR,MAAM;AAAA,EACN,SAAS,CAAC4C,MAAQ,WAAWA,EAAI,QAAQ,MAAM,EAAE,CAAC;AAAA,EAClD,UAAUhI,GAAM;AACZ,UAAMgS,IAAM,OAAOhS,EAAK,KAAK;AAC7B,WAAO,SAASgS,CAAG,IAAIA,EAAI,kBAAkBH,EAAgB7R,CAAI;AAAA,EACpE;AACL,GACMqS,KAAQ;AAAA,EACV,UAAU,CAAAjN,MAAS,OAAOA,KAAU;AAAA,EACpC,SAAS;AAAA,EACT,KAAK;AAAA,EACL,MAAM;AAAA,EACN,QAAQ4C,GAAK;AACT,UAAMhI,IAAO,IAAI2G,EAAO,WAAWqB,EAAI,QAAQ,MAAM,EAAE,CAAC,CAAC,GACnDsK,IAAMtK,EAAI,QAAQ,GAAG;AAC3B,QAAIsK,MAAQ,IAAI;AACZ,YAAM8B,IAAIpM,EAAI,UAAUsK,IAAM,CAAC,EAAE,QAAQ,MAAM,EAAE;AACjD,MAAI8B,EAAEA,EAAE,SAAS,CAAC,MAAM,QACpBpU,EAAK,oBAAoBoU,EAAE;AAAA,IAClC;AACD,WAAOpU;AAAA,EACV;AAAA,EACD,WAAW6R;AACf,GCzCMU,KAAc,CAACnN,MAAU,OAAOA,KAAU,YAAY,OAAO,UAAUA,CAAK;AAClF,SAASoN,GAAWxK,GAAKyK,GAAQC,GAAO,EAAE,aAAAC,EAAW,GAAI;AACrD,QAAM0B,IAAOrM,EAAI,CAAC;AAIlB,OAHIqM,MAAS,OAAOA,MAAS,SACzB5B,KAAU,IACdzK,IAAMA,EAAI,UAAUyK,CAAM,EAAE,QAAQ,MAAM,EAAE,GACxCE,GAAa;AACb,YAAQD,GAAK;AAAA,MACT,KAAK;AACD,QAAA1K,IAAM,KAAKA,CAAG;AACd;AAAA,MACJ,KAAK;AACD,QAAAA,IAAM,KAAKA,CAAG;AACd;AAAA,MACJ,KAAK;AACD,QAAAA,IAAM,KAAKA,CAAG;AACd;AAAA,IACP;AACD,UAAMiK,IAAI,OAAOjK,CAAG;AACpB,WAAOqM,MAAS,MAAM,OAAO,EAAE,IAAIpC,IAAIA;AAAA,EAC1C;AACD,QAAMA,IAAI,SAASjK,GAAK0K,CAAK;AAC7B,SAAO2B,MAAS,MAAM,KAAKpC,IAAIA;AACnC;AACA,SAASW,GAAa5S,GAAM0S,GAAOzP,GAAQ;AACvC,QAAM,EAAE,OAAAmC,EAAO,IAAGpF;AAClB,MAAIuS,GAAYnN,CAAK,GAAG;AACpB,UAAM4C,IAAM5C,EAAM,SAASsN,CAAK;AAChC,WAAOtN,IAAQ,IAAI,MAAMnC,IAAS+E,EAAI,OAAO,CAAC,IAAI/E,IAAS+E;AAAA,EAC9D;AACD,SAAO6J,EAAgB7R,CAAI;AAC/B;AACA,MAAMsU,KAAS;AAAA,EACX,UAAU/B;AAAA,EACV,SAAS;AAAA,EACT,KAAK;AAAA,EACL,QAAQ;AAAA,EACR,MAAM;AAAA,EACN,SAAS,CAACvK,GAAK8K,GAAUjG,MAAQ2F,GAAWxK,GAAK,GAAG,GAAG6E,CAAG;AAAA,EAC1D,WAAW,CAAA7M,MAAQ4S,GAAa5S,GAAM,GAAG,IAAI;AACjD,GACM6S,KAAS;AAAA,EACX,UAAUN;AAAA,EACV,SAAS;AAAA,EACT,KAAK;AAAA,EACL,QAAQ;AAAA,EACR,MAAM;AAAA,EACN,SAAS,CAACvK,GAAK8K,GAAUjG,MAAQ2F,GAAWxK,GAAK,GAAG,GAAG6E,CAAG;AAAA,EAC1D,WAAW,CAAA7M,MAAQ4S,GAAa5S,GAAM,GAAG,GAAG;AAChD,GACM+S,KAAM;AAAA,EACR,UAAUR;AAAA,EACV,SAAS;AAAA,EACT,KAAK;AAAA,EACL,MAAM;AAAA,EACN,SAAS,CAACvK,GAAK8K,GAAUjG,MAAQ2F,GAAWxK,GAAK,GAAG,IAAI6E,CAAG;AAAA,EAC3D,WAAWgF;AACf,GACMmB,KAAS;AAAA,EACX,UAAUT;AAAA,EACV,SAAS;AAAA,EACT,KAAK;AAAA,EACL,QAAQ;AAAA,EACR,MAAM;AAAA,EACN,SAAS,CAACvK,GAAK8K,GAAUjG,MAAQ2F,GAAWxK,GAAK,GAAG,IAAI6E,CAAG;AAAA,EAC3D,WAAW,CAAA7M,MAAQ4S,GAAa5S,GAAM,IAAI,IAAI;AAClD;AChEA,MAAMuU,WAAgB1D,EAAQ;AAAA,EAC1B,YAAYvJ,GAAQ;AAChB,UAAMA,CAAM,GACZ,KAAK,MAAMiN,GAAQ;AAAA,EACtB;AAAA,EACD,IAAItT,GAAK;AACL,QAAIyO;AACJ,IAAIvP,EAAOc,CAAG,IACVyO,IAAOzO,IACFA,KACL,OAAOA,KAAQ,YACf,SAASA,KACT,WAAWA,KACXA,EAAI,UAAU,OACdyO,IAAO,IAAIF,EAAKvO,EAAI,KAAK,IAAI,IAE7ByO,IAAO,IAAIF,EAAKvO,GAAK,IAAI,GAChB2P,EAAS,KAAK,OAAOlB,EAAK,GAAG,KAEtC,KAAK,MAAM,KAAKA,CAAI;AAAA,EAC3B;AAAA;AAAA;AAAA;AAAA;AAAA,EAKD,IAAIzO,GAAKuT,GAAU;AACf,UAAM9E,IAAOkB,EAAS,KAAK,OAAO3P,CAAG;AACrC,WAAO,CAACuT,KAAYrU,EAAOuP,CAAI,IACzBtP,EAASsP,EAAK,GAAG,IACbA,EAAK,IAAI,QACTA,EAAK,MACTA;AAAA,EACT;AAAA,EACD,IAAIzO,GAAKmE,GAAO;AACZ,QAAI,OAAOA,KAAU;AACjB,YAAM,IAAI,MAAM,iEAAiE,OAAOA,CAAK,EAAE;AACnG,UAAMiE,IAAOuH,EAAS,KAAK,OAAO3P,CAAG;AACrC,IAAIoI,KAAQ,CAACjE,IACT,KAAK,MAAM,OAAO,KAAK,MAAM,QAAQiE,CAAI,GAAG,CAAC,IAExC,CAACA,KAAQjE,KACd,KAAK,MAAM,KAAK,IAAIoK,EAAKvO,CAAG,CAAC;AAAA,EAEpC;AAAA,EACD,OAAOwO,GAAGnK,GAAK;AACX,WAAO,MAAM,OAAOmK,GAAGnK,GAAK,GAAG;AAAA,EAClC;AAAA,EACD,SAASA,GAAK4F,GAAWC,GAAa;AAClC,QAAI,CAAC7F;AACD,aAAO,KAAK,UAAU,IAAI;AAC9B,QAAI,KAAK,iBAAiB,EAAI;AAC1B,aAAO,MAAM,SAAS,OAAO,OAAO,CAAA,GAAIA,GAAK,EAAE,eAAe,GAAM,CAAA,GAAG4F,GAAWC,CAAW;AAE7F,UAAM,IAAI,MAAM,qCAAqC;AAAA,EAC5D;AAAA,EACD,OAAO,KAAK7D,GAAQqM,GAAUrO,GAAK;AAC/B,UAAM,EAAE,UAAAyL,EAAU,IAAGzL,GACfmP,IAAM,IAAI,KAAKnN,CAAM;AAC3B,QAAIqM,KAAY,OAAO,YAAY,OAAOA,CAAQ;AAC9C,eAASvO,KAASuO;AACd,QAAI,OAAO5C,KAAa,eACpB3L,IAAQ2L,EAAS,KAAK4C,GAAUvO,GAAOA,CAAK,IAChDqP,EAAI,MAAM,KAAKlF,GAAWnK,GAAO,MAAME,CAAG,CAAC;AAEnD,WAAOmP;AAAA,EACV;AACL;AACAF,GAAQ,MAAM;AACd,MAAME,KAAM;AAAA,EACR,YAAY;AAAA,EACZ,UAAU,CAAArP,MAASA,aAAiB;AAAA,EACpC,WAAWmP;AAAA,EACX,SAAS;AAAA,EACT,KAAK;AAAA,EACL,YAAY,CAACjN,GAAQqM,GAAUrO,MAAQiP,GAAQ,KAAKjN,GAAQqM,GAAUrO,CAAG;AAAA,EACzE,QAAQ6B,GAAKtE,GAAS;AAClB,QAAI3C,GAAMiH,CAAG,GAAG;AACZ,UAAIA,EAAI,iBAAiB,EAAI;AACzB,eAAO,OAAO,OAAO,IAAIoN,GAAS,GAAEpN,CAAG;AAEvC,MAAAtE,EAAQ,qCAAqC;AAAA,IACpD;AAEG,MAAAA,EAAQ,iCAAiC;AAC7C,WAAOsE;AAAA,EACV;AACL;ACvFA,SAASuN,GAAiB1M,GAAK2M,GAAU;AACrC,QAAMN,IAAOrM,EAAI,CAAC,GACZlF,IAAQuR,MAAS,OAAOA,MAAS,MAAMrM,EAAI,UAAU,CAAC,IAAIA,GAC1DgK,IAAM,CAACC,MAAM0C,IAAW,OAAO1C,CAAC,IAAI,OAAOA,CAAC,GAC5CtP,IAAMG,EACP,QAAQ,MAAM,EAAE,EAChB,MAAM,GAAG,EACT,OAAO,CAACH,GAAKiS,MAAMjS,IAAMqP,EAAI,EAAE,IAAIA,EAAI4C,CAAC,GAAG5C,EAAI,CAAC,CAAC;AACtD,SAAQqC,MAAS,MAAMrC,EAAI,EAAE,IAAIrP,IAAMA;AAC3C;AAMA,SAASkS,GAAqB7U,GAAM;AAChC,MAAI,EAAE,OAAAoF,EAAO,IAAGpF,GACZgS,IAAM,CAACC,MAAMA;AACjB,MAAI,OAAO7M,KAAU;AACjB,IAAA4M,IAAM,CAAAC,MAAK,OAAOA,CAAC;AAAA,WACd,MAAM7M,CAAK,KAAK,CAAC,SAASA,CAAK;AACpC,WAAOyM,EAAgB7R,CAAI;AAC/B,MAAIqU,IAAO;AACX,EAAIjP,IAAQ,MACRiP,IAAO,KACPjP,KAAS4M,EAAI,EAAE;AAEnB,QAAM8C,IAAM9C,EAAI,EAAE,GACZlP,IAAQ,CAACsC,IAAQ0P,CAAG;AAC1B,SAAI1P,IAAQ,KACRtC,EAAM,QAAQ,CAAC,KAGfsC,KAASA,IAAQtC,EAAM,CAAC,KAAKgS,GAC7BhS,EAAM,QAAQsC,IAAQ0P,CAAG,GACrB1P,KAAS,OACTA,KAASA,IAAQtC,EAAM,CAAC,KAAKgS,GAC7BhS,EAAM,QAAQsC,CAAK,KAGnBiP,IACJvR,EACK,IAAI,CAAAmP,MAAK,OAAOA,CAAC,EAAE,SAAS,GAAG,GAAG,CAAC,EACnC,KAAK,GAAG,EACR,QAAQ,cAAc,EAAE;AAErC;AACA,MAAM8C,KAAU;AAAA,EACZ,UAAU,CAAA3P,MAAS,OAAOA,KAAU,YAAY,OAAO,UAAUA,CAAK;AAAA,EACtE,SAAS;AAAA,EACT,KAAK;AAAA,EACL,QAAQ;AAAA,EACR,MAAM;AAAA,EACN,SAAS,CAAC4C,GAAK8K,GAAU,EAAE,aAAAH,EAAW,MAAO+B,GAAiB1M,GAAK2K,CAAW;AAAA,EAC9E,WAAWkC;AACf,GACMG,KAAY;AAAA,EACd,UAAU,CAAA5P,MAAS,OAAOA,KAAU;AAAA,EACpC,SAAS;AAAA,EACT,KAAK;AAAA,EACL,QAAQ;AAAA,EACR,MAAM;AAAA,EACN,SAAS,CAAA4C,MAAO0M,GAAiB1M,GAAK,EAAK;AAAA,EAC3C,WAAW6M;AACf,GACMI,KAAY;AAAA,EACd,UAAU,CAAA7P,MAASA,aAAiB;AAAA,EACpC,SAAS;AAAA,EACT,KAAK;AAAA;AAAA;AAAA;AAAA,EAIL,MAAM,OAAO,2JAKJ;AAAA,EACT,QAAQ4C,GAAK;AACT,UAAMjB,IAAQiB,EAAI,MAAMiN,GAAU,IAAI;AACtC,QAAI,CAAClO;AACD,YAAM,IAAI,MAAM,sDAAsD;AAC1E,UAAM,GAAGmO,GAAMC,GAAOC,GAAKC,GAAMC,GAAQC,CAAM,IAAIxO,EAAM,IAAI,MAAM,GAC7DyO,IAAWzO,EAAM,CAAC,IAAI,QAAQA,EAAM,CAAC,IAAI,MAAM,OAAO,GAAG,CAAC,CAAC,IAAI;AACrE,QAAI0O,IAAO,KAAK,IAAIP,GAAMC,IAAQ,GAAGC,GAAKC,KAAQ,GAAGC,KAAU,GAAGC,KAAU,GAAGC,CAAQ;AACvF,UAAME,IAAK3O,EAAM,CAAC;AAClB,QAAI2O,KAAMA,MAAO,KAAK;AAClB,UAAIxD,IAAIwC,GAAiBgB,GAAI,EAAK;AAClC,MAAI,KAAK,IAAIxD,CAAC,IAAI,OACdA,KAAK,KACTuD,KAAQ,MAAQvD;AAAA,IACnB;AACD,WAAO,IAAI,KAAKuD,CAAI;AAAA,EACvB;AAAA,EACD,WAAW,CAAC,EAAE,OAAArQ,QAAYA,EAAM,cAAc,QAAQ,0BAA0B,EAAE;AACtF,GCrFMkC,KAAS;AAAA,EACXH;AAAA,EACAqK;AAAA,EACAC;AAAA,EACAC;AAAA,EACAwC;AAAA,EACAC;AAAA,EACAG;AAAA,EACAzB;AAAA,EACAE;AAAA,EACAC;AAAA,EACAb;AAAA,EACAC;AAAA,EACAC;AAAA,EACAe;AAAA,EACAW;AAAA,EACAH;AAAA,EACAa;AAAA,EACAM;AAAA,EACAC;AAAA,EACAC;AACJ,GClBMU,KAAU,oBAAI,IAAI;AAAA,EACpB,CAAC,QAAQrO,EAAM;AAAA,EACf,CAAC,YAAY,CAACH,IAAKqK,IAAKC,EAAM,CAAC;AAAA,EAC/B,CAAC,QAAQmE,EAAQ;AAAA,EACjB,CAAC,UAAUC,EAAQ;AAAA,EACnB,CAAC,YAAYA,EAAQ;AACzB,CAAC,GACKC,KAAa;AAAA,EACf,QAAA1C;AAAA,EACA,MAAMzB;AAAA,EACV,OAAIU;AAAAA,EACJ,UAAID;AAAAA,EACJ,UAAID;AAAAA,EACA,WAAA6C;AAAA,EACJ,KAAIjC;AAAAA,EACJ,QAAIC;AAAAA,EACJ,QAAIH;AAAAA,EACA,SAAAkC;AAAA,EACA,KAAA5N;AAAA,EACA,MAAMuK;AAAA,EACN,MAAAqC;AAAA,EACA,OAAAH;AAAA,EACA,KAAApC;AAAA,EACA,KAAAiD;AAAA,EACA,WAAAQ;AACJ,GACMc,KAAgB;AAAA,EAClB,4BAA4B3C;AAAA,EAC5B,0BAA0BW;AAAA,EAC1B,2BAA2BH;AAAA,EAC3B,yBAAyBa;AAAA,EACzB,+BAA+BQ;AACnC;AACA,SAASe,GAAQC,GAAYC,GAAY;AACrC,MAAIzT,IAAOkT,GAAQ,IAAIO,CAAU;AACjC,MAAI,CAACzT;AACD,QAAI,MAAM,QAAQwT,CAAU;AACxB,MAAAxT,IAAO,CAAA;AAAA,SACN;AACD,YAAMoR,IAAO,MAAM,KAAK8B,GAAQ,KAAI,CAAE,EACjC,OAAO,CAAA1U,MAAOA,MAAQ,QAAQ,EAC9B,IAAI,CAAAA,MAAO,KAAK,UAAUA,CAAG,CAAC,EAC9B,KAAK,IAAI;AACd,YAAM,IAAI,MAAM,mBAAmBiV,CAAU,iBAAiBrC,CAAI,6BAA6B;AAAA,IAClG;AAEL,MAAI,MAAM,QAAQoC,CAAU;AACxB,eAAWzS,KAAOyS;AACd,MAAAxT,IAAOA,EAAK,OAAOe,CAAG;AAAA,MAEzB,CAAI,OAAOyS,KAAe,eAC3BxT,IAAOwT,EAAWxT,EAAK,MAAO,CAAA;AAElC,SAAOA,EAAK,IAAI,CAAAe,MAAO;AACnB,QAAI,OAAOA,KAAQ;AACf,aAAOA;AACX,UAAMyD,IAAS6O,GAAWtS,CAAG;AAC7B,QAAIyD;AACA,aAAOA;AACX,UAAM4M,IAAO,OAAO,KAAKiC,EAAU,EAC9B,IAAI,CAAA7U,MAAO,KAAK,UAAUA,CAAG,CAAC,EAC9B,KAAK,IAAI;AACd,UAAM,IAAI,MAAM,uBAAuBuC,CAAG,iBAAiBqQ,CAAI,EAAE;AAAA,EACzE,CAAK;AACL;AC1EA,MAAMsC,KAAsB,CAAC3O,GAAG4O,MAAM5O,EAAE,MAAM4O,EAAE,MAAM,KAAK5O,EAAE,MAAM4O,EAAE,MAAM,IAAI;AAC/E,MAAMC,GAAO;AAAA,EACT,YAAY,EAAE,QAAAjK,GAAQ,YAAA6J,GAAY,OAAAK,GAAO,kBAAAC,GAAkB,QAAAjP,GAAQ,gBAAAkP,GAAgB,kBAAAC,KAAoB;AACnG,SAAK,SAAS,MAAM,QAAQrK,CAAM,IAC5B4J,GAAQ5J,GAAQ,QAAQ,IACxBA,IACI4J,GAAQ,MAAM5J,CAAM,IACpB,MACV,KAAK,QAAQ,CAAC,CAACkK,GACf,KAAK,OAAQ,OAAOhP,KAAW,YAAYA,KAAW,QACtD,KAAK,YAAYiP,IAAmBR,KAAgB,CAAA,GACpD,KAAK,OAAOC,GAAQC,GAAY,KAAK,IAAI,GACzC,KAAK,kBAAkBQ,KAAoB,MAC3C,OAAO,eAAe,MAAM/W,GAAK,EAAE,OAAOyH,GAAG,CAAE,GAC/C,OAAO,eAAe,MAAMvH,GAAQ,EAAE,OAAO6R,GAAM,CAAE,GACrD,OAAO,eAAe,MAAM5R,IAAK,EAAE,OAAO2R,GAAG,CAAE,GAE/C,KAAK,iBACD,OAAOgF,KAAmB,aACpBA,IACAA,MAAmB,KACfL,KACA;AAAA,EACjB;AAAA,EACD,QAAQ;AACJ,UAAMzT,IAAO,OAAO,OAAO2T,GAAO,WAAW,OAAO,0BAA0B,IAAI,CAAC;AACnF,WAAA3T,EAAK,OAAO,KAAK,KAAK,MAAK,GACpBA;AAAA,EACV;AACL;AC/BA,SAASgU,GAAkBjT,GAAKmJ,GAAS;A3CJzC,MAAAhL;A2CKI,QAAM8B,IAAQ,CAAA;AACd,MAAIiT,IAAgB/J,EAAQ,eAAe;AAC3C,MAAIA,EAAQ,eAAe,MAASnJ,EAAI,YAAY;AAChD,UAAMmT,IAAMnT,EAAI,WAAW,SAASA,CAAG;AACvC,IAAImT,KACAlT,EAAM,KAAKkT,CAAG,GACdD,IAAgB,MAEXlT,EAAI,WAAW,aACpBkT,IAAgB;AAAA,EACvB;AACD,EAAIA,KACAjT,EAAM,KAAK,KAAK;AACpB,QAAM4B,IAAMqH,GAAuBlJ,GAAKmJ,CAAO,GACzC,EAAE,eAAAvB,EAAa,IAAK/F,EAAI;AAC9B,MAAI7B,EAAI,eAAe;AACnB,IAAIC,EAAM,WAAW,KACjBA,EAAM,QAAQ,EAAE;AACpB,UAAMuK,IAAK5C,EAAc5H,EAAI,aAAa;AAC1C,IAAAC,EAAM,QAAQuE,EAAcgG,GAAI,EAAE,CAAC;AAAA,EACtC;AACD,MAAIP,IAAY,IACZmJ,IAAiB;AACrB,MAAIpT,EAAI,UAAU;AACd,QAAIlD,EAAOkD,EAAI,QAAQ,GAAG;AAGtB,UAFIA,EAAI,SAAS,eAAekT,KAC5BjT,EAAM,KAAK,EAAE,GACbD,EAAI,SAAS,eAAe;AAC5B,cAAMwK,IAAK5C,EAAc5H,EAAI,SAAS,aAAa;AACnD,QAAAC,EAAM,KAAKuE,EAAcgG,GAAI,EAAE,CAAC;AAAA,MACnC;AAED,MAAA3I,EAAI,mBAAmB,CAAC,CAAC7B,EAAI,SAC7BoT,IAAiBpT,EAAI,SAAS;AAAA,IACjC;AACD,UAAM0H,IAAc0L,IAAiB,SAAY,MAAOnJ,IAAY;AACpE,QAAI5B,IAAOmB,GAAUxJ,EAAI,UAAU6B,GAAK,MAAOuR,IAAiB,MAAO1L,CAAW;AAClF,IAAI0L,MACA/K,KAAQ1D,EAAY0D,GAAM,IAAIT,EAAcwL,CAAc,CAAC,KAC1D/K,EAAK,CAAC,MAAM,OAAOA,EAAK,CAAC,MAAM,QAChCpI,EAAMA,EAAM,SAAS,CAAC,MAAM,QAG5BA,EAAMA,EAAM,SAAS,CAAC,IAAI,OAAOoI,CAAI,KAGrCpI,EAAM,KAAKoI,CAAI;AAAA,EACtB;AAEG,IAAApI,EAAM,KAAKuJ,GAAUxJ,EAAI,UAAU6B,CAAG,CAAC;AAE3C,OAAI1D,IAAA6B,EAAI,eAAJ,QAAA7B,EAAgB;AAChB,QAAI6B,EAAI,SAAS;AACb,YAAMwK,IAAK5C,EAAc5H,EAAI,OAAO;AACpC,MAAIwK,EAAG,SAAS;AAAA,CAAI,KAChBvK,EAAM,KAAK,KAAK,GAChBA,EAAM,KAAKuE,EAAcgG,GAAI,EAAE,CAAC,KAGhCvK,EAAM,KAAK,OAAOuK,CAAE,EAAE;AAAA,IAE7B;AAEG,MAAAvK,EAAM,KAAK,KAAK;AAAA,OAGnB;AACD,QAAIoT,IAAKrT,EAAI;AACb,IAAIqT,KAAMpJ,MACNoJ,IAAKA,EAAG,QAAQ,QAAQ,EAAE,IAC1BA,OACK,CAACpJ,KAAamJ,MAAmBnT,EAAMA,EAAM,SAAS,CAAC,MAAM,MAC9DA,EAAM,KAAK,EAAE,GACjBA,EAAM,KAAKuE,EAAcoD,EAAcyL,CAAE,GAAG,EAAE,CAAC;AAAA,EAEtD;AACD,SAAOpT,EAAM,KAAK;AAAA,CAAI,IAAI;AAAA;AAC9B;ACtEA,MAAMqT,GAAS;AAAA,EACX,YAAY3R,GAAO2L,GAAUnE,GAAS;AAElC,SAAK,gBAAgB,MAErB,KAAK,UAAU,MAEf,KAAK,SAAS,IAEd,KAAK,WAAW,IAChB,OAAO,eAAe,MAAM9M,GAAW,EAAE,OAAOL,GAAG,CAAE;AACrD,QAAIuX,IAAY;AAChB,IAAI,OAAOjG,KAAa,cAAc,MAAM,QAAQA,CAAQ,IACxDiG,IAAYjG,IAEPnE,MAAY,UAAamE,MAC9BnE,IAAUmE,GACVA,IAAW;AAEf,UAAMlE,IAAM,OAAO,OAAO;AAAA,MACtB,aAAa;AAAA,MACb,kBAAkB;AAAA,MAClB,UAAU;AAAA,MACV,cAAc;AAAA,MACd,QAAQ;AAAA,MACR,YAAY;AAAA,MACZ,SAAS;AAAA,IACZ,GAAED,CAAO;AACV,SAAK,UAAUC;AACf,QAAI,EAAE,SAAA3J,EAAS,IAAG2J;AAClB,IAAID,KAAA,QAAAA,EAAS,eACT,KAAK,aAAaA,EAAQ,YAAY,WAAU,GAC5C,KAAK,WAAW,KAAK,aACrB1J,IAAU,KAAK,WAAW,KAAK,YAGnC,KAAK,aAAa,IAAIX,EAAW,EAAE,SAAAW,EAAS,CAAA,GAChD,KAAK,UAAUA,GAAS0J,CAAO,GAE/B,KAAK,WACDxH,MAAU,SAAY,OAAO,KAAK,WAAWA,GAAO4R,GAAWpK,CAAO;AAAA,EAC7E;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMD,QAAQ;AACJ,UAAMlK,IAAO,OAAO,OAAOqU,GAAS,WAAW;AAAA,MAC3C,CAACjX,CAAS,GAAG,EAAE,OAAOL,GAAK;AAAA,IACvC,CAAS;AACD,WAAAiD,EAAK,gBAAgB,KAAK,eAC1BA,EAAK,UAAU,KAAK,SACpBA,EAAK,SAAS,KAAK,OAAO,MAAK,GAC/BA,EAAK,WAAW,KAAK,SAAS,MAAK,GACnCA,EAAK,UAAU,OAAO,OAAO,CAAA,GAAI,KAAK,OAAO,GACzC,KAAK,eACLA,EAAK,aAAa,KAAK,WAAW,MAAK,IAC3CA,EAAK,SAAS,KAAK,OAAO,MAAK,GAE/BA,EAAK,WAAWnC,EAAO,KAAK,QAAQ,IAC9B,KAAK,SAAS,MAAMmC,EAAK,MAAM,IAC/B,KAAK,UACP,KAAK,UACLA,EAAK,QAAQ,KAAK,MAAM,MAAK,IAC1BA;AAAA,EACV;AAAA;AAAA,EAED,IAAI0C,GAAO;AACP,IAAI6R,GAAiB,KAAK,QAAQ,KAC9B,KAAK,SAAS,IAAI7R,CAAK;AAAA,EAC9B;AAAA;AAAA,EAED,MAAMlE,GAAMkE,GAAO;AACf,IAAI6R,GAAiB,KAAK,QAAQ,KAC9B,KAAK,SAAS,MAAM/V,GAAMkE,CAAK;AAAA,EACtC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUD,YAAYpF,GAAM+C,GAAM;AACpB,QAAI,CAAC/C,EAAK,QAAQ;AACd,YAAMqJ,IAAOpF,GAAY,IAAI;AAC7B,MAAAjE,EAAK;AAAA,MAED,CAAC+C,KAAQsG,EAAK,IAAItG,CAAI,IAAIqB,GAAcrB,KAAQ,KAAKsG,CAAI,IAAItG;AAAA,IACpE;AACD,WAAO,IAAIgD,GAAM/F,EAAK,MAAM;AAAA,EAC/B;AAAA,EACD,WAAWoF,GAAO2L,GAAUnE,GAAS;AACjC,QAAIoK;AACJ,QAAI,OAAOjG,KAAa;AACpB,MAAA3L,IAAQ2L,EAAS,KAAK,EAAE,IAAI3L,KAAS,IAAIA,CAAK,GAC9C4R,IAAYjG;AAAA,aAEP,MAAM,QAAQA,CAAQ,GAAG;AAC9B,YAAMmG,IAAW,CAAC3R,MAAM,OAAOA,KAAM,YAAYA,aAAa,UAAUA,aAAa,QAC/E4R,IAAQpG,EAAS,OAAOmG,CAAQ,EAAE,IAAI,MAAM;AAClD,MAAIC,EAAM,SAAS,MACfpG,IAAWA,EAAS,OAAOoG,CAAK,IACpCH,IAAYjG;AAAA,IACf,MACI,CAAInE,MAAY,UAAamE,MAC9BnE,IAAUmE,GACVA,IAAW;AAEf,UAAM,EAAE,uBAAA3J,GAAuB,cAAAgQ,GAAc,MAAA/I,GAAM,eAAAyC,GAAe,UAAAzJ,GAAU,KAAA7D,EAAG,IAAKoJ,KAAW,IACzF,EAAE,UAAA/G,GAAU,YAAAwR,GAAY,eAAA7S,EAAe,IAAGF;AAAA,MAAkB;AAAA;AAAA,MAElE8S,KAAgB;AAAA,IAAG,GACb9R,IAAM;AAAA,MACR,uBAAuB8B,KAAyB;AAAA,MAChD,eAAe0J,KAAiB;AAAA,MAChC,UAAAjL;AAAA,MACA,UAAAwB;AAAA,MACA,UAAU2P;AAAA,MACV,QAAQ,KAAK;AAAA,MACb,eAAAxS;AAAA,IACZ,GACcxE,IAAOkH,GAAW9B,GAAO5B,GAAK8B,CAAG;AACvC,WAAI+I,KAAQ/N,EAAaN,CAAI,MACzBA,EAAK,OAAO,KAChBqX,KACOrX;AAAA,EACV;AAAA;AAAA;AAAA;AAAA;AAAA,EAKD,WAAWiB,GAAKmE,GAAOwH,IAAU,CAAA,GAAI;AACjC,UAAM1H,IAAI,KAAK,WAAWjE,GAAK,MAAM2L,CAAO,GACtCrH,IAAI,KAAK,WAAWH,GAAO,MAAMwH,CAAO;AAC9C,WAAO,IAAI4C,EAAKtK,GAAGK,CAAC;AAAA,EACvB;AAAA;AAAA;AAAA;AAAA;AAAA,EAKD,OAAOtE,GAAK;AACR,WAAOgW,GAAiB,KAAK,QAAQ,IAAI,KAAK,SAAS,OAAOhW,CAAG,IAAI;AAAA,EACxE;AAAA;AAAA;AAAA;AAAA;AAAA,EAKD,SAASC,GAAM;AACX,WAAIuG,GAAYvG,CAAI,IACZ,KAAK,YAAY,OACV,MAEX,KAAK,WAAW,MACT,MAEJ+V,GAAiB,KAAK,QAAQ,IAC/B,KAAK,SAAS,SAAS/V,CAAI,IAC3B;AAAA,EACT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMD,IAAID,GAAK4G,GAAY;AACjB,WAAOvH,EAAa,KAAK,QAAQ,IAC3B,KAAK,SAAS,IAAIW,GAAK4G,CAAU,IACjC;AAAA,EACT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMD,MAAM3G,GAAM2G,GAAY;AACpB,WAAIJ,GAAYvG,CAAI,IACT,CAAC2G,KAAczH,EAAS,KAAK,QAAQ,IACtC,KAAK,SAAS,QACd,KAAK,WACRE,EAAa,KAAK,QAAQ,IAC3B,KAAK,SAAS,MAAMY,GAAM2G,CAAU,IACpC;AAAA,EACT;AAAA;AAAA;AAAA;AAAA,EAID,IAAI5G,GAAK;AACL,WAAOX,EAAa,KAAK,QAAQ,IAAI,KAAK,SAAS,IAAIW,CAAG,IAAI;AAAA,EACjE;AAAA;AAAA;AAAA;AAAA,EAID,MAAMC,GAAM;AACR,WAAIuG,GAAYvG,CAAI,IACT,KAAK,aAAa,SACtBZ,EAAa,KAAK,QAAQ,IAAI,KAAK,SAAS,MAAMY,CAAI,IAAI;AAAA,EACpE;AAAA;AAAA;AAAA;AAAA;AAAA,EAKD,IAAID,GAAKmE,GAAO;AACZ,IAAI,KAAK,YAAY,OAEjB,KAAK,WAAWmC,GAAmB,KAAK,QAAQ,CAACtG,CAAG,GAAGmE,CAAK,IAEvD6R,GAAiB,KAAK,QAAQ,KACnC,KAAK,SAAS,IAAIhW,GAAKmE,CAAK;AAAA,EAEnC;AAAA;AAAA;AAAA;AAAA;AAAA,EAKD,MAAMlE,GAAMkE,GAAO;AACf,IAAIqC,GAAYvG,CAAI,IAEhB,KAAK,WAAWkE,IAEX,KAAK,YAAY,OAEtB,KAAK,WAAWmC,GAAmB,KAAK,QAAQ,MAAM,KAAKrG,CAAI,GAAGkE,CAAK,IAElE6R,GAAiB,KAAK,QAAQ,KACnC,KAAK,SAAS,MAAM/V,GAAMkE,CAAK;AAAA,EAEtC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQD,UAAUlC,GAAS0J,IAAU,IAAI;AAC7B,IAAI,OAAO1J,KAAY,aACnBA,IAAU,OAAOA,CAAO;AAC5B,QAAI2J;AACJ,YAAQ3J,GAAO;AAAA,MACX,KAAK;AACD,QAAI,KAAK,aACL,KAAK,WAAW,KAAK,UAAU,QAE/B,KAAK,aAAa,IAAIX,EAAW,EAAE,SAAS,MAAK,CAAE,GACvDsK,IAAM,EAAE,OAAO,IAAM,kBAAkB,IAAO,QAAQ;AACtD;AAAA,MACJ,KAAK;AAAA,MACL,KAAK;AACD,QAAI,KAAK,aACL,KAAK,WAAW,KAAK,UAAU3J,IAE/B,KAAK,aAAa,IAAIX,EAAW,EAAE,SAAAW,EAAS,CAAA,GAChD2J,IAAM,EAAE,OAAO,IAAO,kBAAkB,IAAM,QAAQ;AACtD;AAAA,MACJ,KAAK;AACD,QAAI,KAAK,cACL,OAAO,KAAK,YAChBA,IAAM;AACN;AAAA,MACJ,SAAS;AACL,cAAM+E,IAAK,KAAK,UAAU1O,CAAO;AACjC,cAAM,IAAI,MAAM,+DAA+D0O,CAAE,EAAE;AAAA,MACtF;AAAA,IACJ;AAED,QAAIhF,EAAQ,kBAAkB;AAC1B,WAAK,SAASA,EAAQ;AAAA,aACjBC;AACL,WAAK,SAAS,IAAIwJ,GAAO,OAAO,OAAOxJ,GAAKD,CAAO,CAAC;AAAA;AAEpD,YAAM,IAAI,MAAM,qEAAqE;AAAA,EAC5F;AAAA;AAAA,EAED,KAAK,EAAE,MAAAtC,GAAM,SAAAgN,GAAS,UAAA3R,GAAU,eAAAC,GAAe,UAAAC,GAAU,SAAAjB,EAAS,IAAG,IAAI;AACrE,UAAMU,IAAM;AAAA,MACR,SAAS,oBAAI,IAAK;AAAA,MAClB,KAAK;AAAA,MACL,MAAM,CAACgF;AAAA,MACP,UAAU3E,MAAa;AAAA,MACvB,cAAc;AAAA,MACd,eAAe,OAAOC,KAAkB,WAAWA,IAAgB;AAAA,IAC/E,GACcjD,IAAMwC,EAAK,KAAK,UAAUmS,KAAW,IAAIhS,CAAG;AAClD,QAAI,OAAOO,KAAa;AACpB,iBAAW,EAAE,OAAAC,GAAO,KAAAnD,EAAK,KAAI2C,EAAI,QAAQ,OAAQ;AAC7C,QAAAO,EAASlD,GAAKmD,CAAK;AAC3B,WAAO,OAAOlB,KAAY,aACpBD,GAAaC,GAAS,EAAE,IAAIjC,EAAK,GAAE,IAAIA,CAAG,IAC1CA;AAAA,EACT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOD,OAAO2U,GAASzR,GAAU;AACtB,WAAO,KAAK,KAAK,EAAE,MAAM,IAAM,SAAAyR,GAAS,UAAU,IAAO,UAAAzR,EAAQ,CAAE;AAAA,EACtE;AAAA;AAAA,EAED,SAAS+G,IAAU,IAAI;AACnB,QAAI,KAAK,OAAO,SAAS;AACrB,YAAM,IAAI,MAAM,4CAA4C;AAChE,QAAI,YAAYA,MACX,CAAC,OAAO,UAAUA,EAAQ,MAAM,KAAK,OAAOA,EAAQ,MAAM,KAAK,IAAI;AACpE,YAAM2G,IAAI,KAAK,UAAU3G,EAAQ,MAAM;AACvC,YAAM,IAAI,MAAM,mDAAmD2G,CAAC,EAAE;AAAA,IACzE;AACD,WAAOmD,GAAkB,MAAM9J,CAAO;AAAA,EACzC;AACL;AACA,SAASqK,GAAiBM,GAAU;AAChC,MAAIjX,EAAaiX,CAAQ;AACrB,WAAO;AACX,QAAM,IAAI,MAAM,iDAAiD;AACrE;AC3UA,MAAMC,WAAkB,MAAM;AAAA,EAC1B,YAAYzU,GAAM0U,GAAKhN,GAAMiN,GAAS;AAClC,aACA,KAAK,OAAO3U,GACZ,KAAK,OAAO0H,GACZ,KAAK,UAAUiN,GACf,KAAK,MAAMD;AAAA,EACd;AACL;AACA,MAAME,UAAuBH,GAAU;AAAA,EACnC,YAAYC,GAAKhN,GAAMiN,GAAS;AAC5B,UAAM,kBAAkBD,GAAKhN,GAAMiN,CAAO;AAAA,EAC7C;AACL;AACA,MAAME,WAAoBJ,GAAU;AAAA,EAChC,YAAYC,GAAKhN,GAAMiN,GAAS;AAC5B,UAAM,eAAeD,GAAKhN,GAAMiN,CAAO;AAAA,EAC1C;AACL;AACA,MAAMG,KAAgB,CAACxR,GAAKyR,MAAO,CAACvU,MAAU;AAC1C,MAAIA,EAAM,IAAI,CAAC,MAAM;AACjB;AACJ,EAAAA,EAAM,UAAUA,EAAM,IAAI,IAAI,CAAAkU,MAAOK,EAAG,QAAQL,CAAG,CAAC;AACpD,QAAM,EAAE,MAAA7U,GAAM,KAAAmV,EAAG,IAAKxU,EAAM,QAAQ,CAAC;AACrC,EAAAA,EAAM,WAAW,YAAYX,CAAI,YAAYmV,CAAG;AAChD,MAAIxW,IAAKwW,IAAM,GACXC,IAAU3R,EACT,UAAUyR,EAAG,WAAWlV,IAAO,CAAC,GAAGkV,EAAG,WAAWlV,CAAI,CAAC,EACtD,QAAQ,YAAY,EAAE;AAE3B,MAAIrB,KAAM,MAAMyW,EAAQ,SAAS,IAAI;AACjC,UAAMC,IAAY,KAAK,IAAI1W,IAAK,IAAIyW,EAAQ,SAAS,EAAE;AACvD,IAAAA,IAAU,MAAMA,EAAQ,UAAUC,CAAS,GAC3C1W,KAAM0W,IAAY;AAAA,EACrB;AAID,MAHID,EAAQ,SAAS,OACjBA,IAAUA,EAAQ,UAAU,GAAG,EAAE,IAAI,MAErCpV,IAAO,KAAK,OAAO,KAAKoV,EAAQ,UAAU,GAAGzW,CAAE,CAAC,GAAG;AAEnD,QAAI8H,IAAOhD,EAAI,UAAUyR,EAAG,WAAWlV,IAAO,CAAC,GAAGkV,EAAG,WAAWlV,IAAO,CAAC,CAAC;AACzE,IAAIyG,EAAK,SAAS,OACdA,IAAOA,EAAK,UAAU,GAAG,EAAE,IAAI;AAAA,IACnC2O,IAAU3O,IAAO2O;AAAA,EACpB;AACD,MAAI,OAAO,KAAKA,CAAO,GAAG;AACtB,QAAIlS,IAAQ;AACZ,UAAMqD,IAAM5F,EAAM,QAAQ,CAAC;AAC3B,IAAI4F,KAAOA,EAAI,SAASvG,KAAQuG,EAAI,MAAM4O,MACtCjS,IAAQ,KAAK,IAAI,GAAG,KAAK,IAAIqD,EAAI,MAAM4O,GAAK,KAAKxW,CAAE,CAAC;AAExD,UAAM2W,IAAU,IAAI,OAAO3W,CAAE,IAAI,IAAI,OAAOuE,CAAK;AACjD,IAAAvC,EAAM,WAAW;AAAA;AAAA,EAAQyU,CAAO;AAAA,EAAKE,CAAO;AAAA;AAAA,EAC/C;AACL;ACtDA,SAASC,GAAaC,GAAQ,EAAE,MAAA/J,GAAM,WAAAgK,GAAW,MAAA3O,GAAM,QAAA+I,GAAQ,SAAA5P,GAAS,cAAAyV,GAAc,gBAAAC,KAAkB;AACpG,MAAIC,IAAc,IACdC,IAAYF,GACZG,IAAWH,GACXrQ,IAAU,IACVyQ,IAAa,IACbvK,IAAa,IACbwK,IAAW,IACXC,IAAM,MACN9U,IAAS,MACTP,IAAM,MACNsV,IAAmB,MACnBC,IAAQ,MACR/S,IAAQ,MACR6D,IAAQ;AACZ,aAAWmP,KAASZ;AAchB,YAbIQ,MACII,EAAM,SAAS,WACfA,EAAM,SAAS,aACfA,EAAM,SAAS,WACfnW,EAAQmW,EAAM,QAAQ,gBAAgB,uEAAuE,GACjHJ,IAAW,KAEXC,MACIJ,KAAaO,EAAM,SAAS,aAAaA,EAAM,SAAS,aACxDnW,EAAQgW,GAAK,iBAAiB,qCAAqC,GAEvEA,IAAM,OAEFG,EAAM,MAAI;AAAA,MACd,KAAK;AAID,QAAI,CAAC3K,MACAgK,MAAc,gBAAe3O,KAAA,gBAAAA,EAAM,UAAS,sBAC7CsP,EAAM,OAAO,SAAS,GAAI,MAC1BH,IAAMG,IAEVN,IAAW;AACX;AAAA,MACJ,KAAK,WAAW;AACZ,QAAKA,KACD7V,EAAQmW,GAAO,gBAAgB,wEAAwE;AAC3G,cAAMC,IAAKD,EAAM,OAAO,UAAU,CAAC,KAAK;AACxC,QAAK9Q,IAGDA,KAAWyQ,IAAaM,IAFxB/Q,IAAU+Q,GAGdN,IAAa,IACbF,IAAY;AACZ;AAAA,MACH;AAAA,MACD,KAAK;AACD,QAAIA,IACIvQ,IACAA,KAAW8Q,EAAM,SAEjBR,IAAc,KAGlBG,KAAcK,EAAM,QACxBP,IAAY,IACZrK,IAAa,KACTrK,KAAUP,OACVsV,IAAmBE,IACvBN,IAAW;AACX;AAAA,MACJ,KAAK;AACD,QAAI3U,KACAlB,EAAQmW,GAAO,oBAAoB,oCAAoC,GACvEA,EAAM,OAAO,SAAS,GAAG,KACzBnW,EAAQmW,EAAM,SAASA,EAAM,OAAO,SAAS,GAAG,aAAa,mCAAmC,EAAI,GACxGjV,IAASiV,GACLnP,MAAU,SACVA,IAAQmP,EAAM,SAClBP,IAAY,IACZC,IAAW,IACXE,IAAW;AACX;AAAA,MACJ,KAAK,OAAO;AACR,QAAIpV,KACAX,EAAQmW,GAAO,iBAAiB,iCAAiC,GACrExV,IAAMwV,GACFnP,MAAU,SACVA,IAAQmP,EAAM,SAClBP,IAAY,IACZC,IAAW,IACXE,IAAW;AACX;AAAA,MACH;AAAA,MACD,KAAKP;AAED,SAAItU,KAAUP,MACVX,EAAQmW,GAAO,kBAAkB,sCAAsCA,EAAM,MAAM,YAAY,GAC/FhT,KACAnD,EAAQmW,GAAO,oBAAoB,cAAcA,EAAM,MAAM,OAAO3K,KAAQ,YAAY,EAAE,GAC9FrI,IAAQgT,GACRP,IACIJ,MAAc,kBAAkBA,MAAc,oBAClDK,IAAW;AACX;AAAA,MACJ,KAAK;AACD,YAAIrK,GAAM;AACN,UAAI0K,KACAlW,EAAQmW,GAAO,oBAAoB,mBAAmB3K,CAAI,EAAE,GAChE0K,IAAQC,GACRP,IAAY,IACZC,IAAW;AACX;AAAA,QACH;AAAA,MAEL;AACI,QAAA7V,EAAQmW,GAAO,oBAAoB,cAAcA,EAAM,IAAI,QAAQ,GACnEP,IAAY,IACZC,IAAW;AAAA,IAClB;AAEL,QAAMQ,IAAOd,EAAOA,EAAO,SAAS,CAAC,GAC/BjP,IAAM+P,IAAOA,EAAK,SAASA,EAAK,OAAO,SAASzG;AACtD,SAAImG,KACAlP,KACAA,EAAK,SAAS,WACdA,EAAK,SAAS,aACdA,EAAK,SAAS,YACbA,EAAK,SAAS,YAAYA,EAAK,WAAW,OAC3C7G,EAAQ6G,EAAK,QAAQ,gBAAgB,uEAAuE,GAE5GmP,MACEJ,KAAaI,EAAI,UAAUP,MACzB5O,KAAA,gBAAAA,EAAM,UAAS,gBACfA,KAAA,gBAAAA,EAAM,UAAS,gBACnB7G,EAAQgW,GAAK,iBAAiB,qCAAqC,GAChE;AAAA,IACH,OAAAE;AAAA,IACA,OAAA/S;AAAA,IACA,aAAAwS;AAAA,IACA,SAAAtQ;AAAA,IACA,YAAAkG;AAAA,IACA,QAAArK;AAAA,IACA,KAAAP;AAAA,IACA,kBAAAsV;AAAA,IACA,KAAA3P;AAAA,IACA,OAAOU,KAASV;AAAA,EACxB;AACA;ACjJA,SAASgQ,GAAgBlY,GAAK;AAC1B,MAAI,CAACA;AACD,WAAO;AACX,UAAQA,EAAI,MAAI;AAAA,IACZ,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AACD,UAAIA,EAAI,OAAO,SAAS;AAAA,CAAI;AACxB,eAAO;AACX,UAAIA,EAAI;AACJ,mBAAWmY,KAAMnY,EAAI;AACjB,cAAImY,EAAG,SAAS;AACZ,mBAAO;AAAA;AACnB,aAAO;AAAA,IACX,KAAK;AACD,iBAAWzR,KAAM1G,EAAI,OAAO;AACxB,mBAAWmY,KAAMzR,EAAG;AAChB,cAAIyR,EAAG,SAAS;AACZ,mBAAO;AACf,YAAIzR,EAAG;AACH,qBAAWyR,KAAMzR,EAAG;AAChB,gBAAIyR,EAAG,SAAS;AACZ,qBAAO;AAAA;AACnB,YAAID,GAAgBxR,EAAG,GAAG,KAAKwR,GAAgBxR,EAAG,KAAK;AACnD,iBAAO;AAAA,MACd;AACD,aAAO;AAAA,IACX;AACI,aAAO;AAAA,EACd;AACL;AC7BA,SAAS0R,GAAgBlR,GAAQmR,GAAIzW,GAAS;AAC1C,OAAIyW,KAAA,gBAAAA,EAAI,UAAS,mBAAmB;AAChC,UAAMnQ,IAAMmQ,EAAG,IAAI,CAAC;AACpB,IAAInQ,EAAI,WAAWhB,MACdgB,EAAI,WAAW,OAAOA,EAAI,WAAW,QACtCgQ,GAAgBG,CAAE,KAElBzW,EAAQsG,GAAK,cADD,0DACoB,EAAI;AAAA,EAE3C;AACL;ACVA,SAASoQ,GAAYjU,GAAKyK,GAAOyJ,GAAQ;AACrC,QAAM,EAAE,YAAAC,EAAU,IAAKnU,EAAI;AAC3B,MAAImU,MAAe;AACf,WAAO;AACX,QAAMC,IAAU,OAAOD,KAAe,aAChCA,IACA,CAACjS,GAAG4O,MAAM5O,MAAM4O,KACbhW,EAASoH,CAAC,KACPpH,EAASgW,CAAC,KACV5O,EAAE,UAAU4O,EAAE,SACd,EAAE5O,EAAE,UAAU,QAAQlC,EAAI,OAAO;AAC7C,SAAOyK,EAAM,KAAK,CAAAL,MAAQgK,EAAQhK,EAAK,KAAK8J,CAAM,CAAC;AACvD;ACPA,MAAMG,KAAc;AACpB,SAASC,GAAgB,EAAE,aAAAC,GAAa,kBAAAC,EAAgB,GAAIxU,GAAKyU,GAAIlX,GAASW,GAAK;AlDRnF,MAAA5B;AkDSI,QAAMoY,KAAYxW,KAAA,gBAAAA,EAAK,cAAaqN,GAC9B1J,IAAM,IAAI6S,EAAU1U,EAAI,MAAM;AACpC,EAAIA,EAAI,WACJA,EAAI,SAAS;AACjB,MAAImN,IAASsH,EAAG,QACZE,IAAa;AACjB,aAAWC,KAAYH,EAAG,OAAO;AAC7B,UAAM,EAAE,OAAAlQ,GAAO,KAAA5I,GAAK,KAAAkZ,GAAK,OAAA/U,EAAK,IAAK8U,GAE7BE,IAAWjC,GAAatO,GAAO;AAAA,MACjC,WAAW;AAAA,MACX,MAAM5I,MAAOkZ,KAAA,gBAAAA,EAAM;AAAA,MACnB,QAAA1H;AAAA,MACA,SAAA5P;AAAA,MACA,cAAckX,EAAG;AAAA,MACjB,gBAAgB;AAAA,IAC5B,CAAS,GACKxP,IAAc,CAAC6P,EAAS;AAC9B,QAAI7P,GAAa;AAOb,UANItJ,MACIA,EAAI,SAAS,cACb4B,EAAQ4P,GAAQ,yBAAyB,yDAAyD,IAC7F,YAAYxR,KAAOA,EAAI,WAAW8Y,EAAG,UAC1ClX,EAAQ4P,GAAQ,cAAckH,EAAW,IAE7C,CAACS,EAAS,UAAU,CAACA,EAAS,OAAO,CAACD,GAAK;AAC3C,QAAAF,IAAaG,EAAS,KAClBA,EAAS,YACLjT,EAAI,UACJA,EAAI,WAAW;AAAA,IAAOiT,EAAS,UAE/BjT,EAAI,UAAUiT,EAAS;AAE/B;AAAA,MACH;AACD,OAAIA,EAAS,oBAAoBjB,GAAgBlY,CAAG,MAChD4B,EAAQ5B,KAAO4I,EAAMA,EAAM,SAAS,CAAC,GAAG,0BAA0B,2CAA2C;AAAA,IAEpH,MACI,GAAIjI,IAAAwY,EAAS,UAAT,gBAAAxY,EAAgB,YAAWmY,EAAG,UACnClX,EAAQ4P,GAAQ,cAAckH,EAAW;AAG7C,UAAMU,IAAWD,EAAS,KACpBE,IAAUrZ,IACV4Y,EAAYvU,GAAKrE,GAAKmZ,GAAUvX,CAAO,IACvCiX,EAAiBxU,GAAK+U,GAAUxQ,GAAO,MAAMuQ,GAAUvX,CAAO;AACpE,IAAIyC,EAAI,OAAO,UACX+T,GAAgBU,EAAG,QAAQ9Y,GAAK4B,CAAO,GACvC0W,GAAYjU,GAAK6B,EAAI,OAAOmT,CAAO,KACnCzX,EAAQwX,GAAU,iBAAiB,yBAAyB;AAEhE,UAAME,IAAapC,GAAagC,KAAO,IAAI;AAAA,MACvC,WAAW;AAAA,MACX,MAAM/U;AAAA,MACN,QAAQkV,EAAQ,MAAM,CAAC;AAAA,MACvB,SAAAzX;AAAA,MACA,cAAckX,EAAG;AAAA,MACjB,gBAAgB,CAAC9Y,KAAOA,EAAI,SAAS;AAAA,IACjD,CAAS;AAED,QADAwR,IAAS8H,EAAW,KAChBA,EAAW,OAAO;AAClB,MAAIhQ,OACInF,KAAA,gBAAAA,EAAO,UAAS,eAAe,CAACmV,EAAW,cAC3C1X,EAAQ4P,GAAQ,yBAAyB,qDAAqD,GAC9FnN,EAAI,QAAQ,UACZ8U,EAAS,QAAQG,EAAW,MAAM,SAAS,QAC3C1X,EAAQyX,EAAQ,OAAO,uBAAuB,6FAA6F;AAGnJ,YAAME,IAAYpV,IACZyU,EAAYvU,GAAKF,GAAOmV,GAAY1X,CAAO,IAC3CiX,EAAiBxU,GAAKmN,GAAQ0H,GAAK,MAAMI,GAAY1X,CAAO;AAClE,MAAIyC,EAAI,OAAO,UACX+T,GAAgBU,EAAG,QAAQ3U,GAAOvC,CAAO,GAC7C4P,IAAS+H,EAAU,MAAM,CAAC;AAC1B,YAAM9K,IAAO,IAAIF,EAAK8K,GAASE,CAAS;AACxC,MAAIlV,EAAI,QAAQ,qBACZoK,EAAK,WAAWwK,IACpB/S,EAAI,MAAM,KAAKuI,CAAI;AAAA,IACtB,OACI;AAED,MAAInF,KACA1H,EAAQyX,EAAQ,OAAO,gBAAgB,qDAAqD,GAC5FC,EAAW,YACPD,EAAQ,UACRA,EAAQ,WAAW;AAAA,IAAOC,EAAW,UAErCD,EAAQ,UAAUC,EAAW;AAErC,YAAM7K,IAAO,IAAIF,EAAK8K,CAAO;AAC7B,MAAIhV,EAAI,QAAQ,qBACZoK,EAAK,WAAWwK,IACpB/S,EAAI,MAAM,KAAKuI,CAAI;AAAA,IACtB;AAAA,EACJ;AACD,SAAIuK,KAAcA,IAAaxH,KAC3B5P,EAAQoX,GAAY,cAAc,mCAAmC,GACzE9S,EAAI,QAAQ,CAAC4S,EAAG,QAAQtH,GAAQwH,KAAcxH,CAAM,GAC7CtL;AACX;AC1GA,SAASsT,GAAgB,EAAE,aAAAZ,GAAa,kBAAAC,EAAgB,GAAIxU,GAAKoV,GAAI7X,GAASW,GAAK;AAC/E,QAAMwW,KAAYxW,KAAA,gBAAAA,EAAK,cAAa6N,GAC9BG,IAAM,IAAIwI,EAAU1U,EAAI,MAAM;AACpC,EAAIA,EAAI,WACJA,EAAI,SAAS;AACjB,MAAImN,IAASiI,EAAG,QACZT,IAAa;AACjB,aAAW,EAAE,OAAApQ,GAAO,OAAAzE,EAAK,KAAMsV,EAAG,OAAO;AACrC,UAAM1N,IAAQmL,GAAatO,GAAO;AAAA,MAC9B,WAAW;AAAA,MACX,MAAMzE;AAAA,MACN,QAAAqN;AAAA,MACA,SAAA5P;AAAA,MACA,cAAc6X,EAAG;AAAA,MACjB,gBAAgB;AAAA,IAC5B,CAAS;AACD,QAAI,CAAC1N,EAAM;AACP,UAAIA,EAAM,UAAUA,EAAM,OAAO5H;AAC7B,QAAIA,KAASA,EAAM,SAAS,cACxBvC,EAAQmK,EAAM,KAAK,cAAc,kDAAkD,IAEnFnK,EAAQ4P,GAAQ,gBAAgB,mCAAmC;AAAA,WAEtE;AACD,QAAAwH,IAAajN,EAAM,KACfA,EAAM,YACNwE,EAAI,UAAUxE,EAAM;AACxB;AAAA,MACH;AAEL,UAAMhN,IAAOoF,IACPyU,EAAYvU,GAAKF,GAAO4H,GAAOnK,CAAO,IACtCiX,EAAiBxU,GAAK0H,EAAM,KAAKnD,GAAO,MAAMmD,GAAOnK,CAAO;AAClE,IAAIyC,EAAI,OAAO,UACX+T,GAAgBqB,EAAG,QAAQtV,GAAOvC,CAAO,GAC7C4P,IAASzS,EAAK,MAAM,CAAC,GACrBwR,EAAI,MAAM,KAAKxR,CAAI;AAAA,EACtB;AACD,SAAAwR,EAAI,QAAQ,CAACkJ,EAAG,QAAQjI,GAAQwH,KAAcxH,CAAM,GAC7CjB;AACX;AC5CA,SAASmJ,GAAWxR,GAAKsJ,GAAQmG,GAAU/V,GAAS;AAChD,MAAIqF,IAAU;AACd,MAAIiB,GAAK;AACL,QAAIuP,IAAW,IACXyB,IAAM;AACV,eAAWnB,KAAS7P,GAAK;AACrB,YAAM,EAAE,QAAA/F,GAAQ,MAAAsC,EAAM,IAAGsT;AACzB,cAAQtT,GAAI;AAAA,QACR,KAAK;AACD,UAAAgT,IAAW;AACX;AAAA,QACJ,KAAK,WAAW;AACZ,UAAIE,KAAY,CAACF,KACb7V,EAAQmW,GAAO,gBAAgB,wEAAwE;AAC3G,gBAAMC,IAAK7V,EAAO,UAAU,CAAC,KAAK;AAClC,UAAK8E,IAGDA,KAAWiS,IAAMlB,IAFjB/Q,IAAU+Q,GAGdkB,IAAM;AACN;AAAA,QACH;AAAA,QACD,KAAK;AACD,UAAIjS,MACAiS,KAAO/W,IACXsV,IAAW;AACX;AAAA,QACJ;AACI,UAAA7V,EAAQmW,GAAO,oBAAoB,cAActT,CAAI,cAAc;AAAA,MAC1E;AACD,MAAA+M,KAAUrP,EAAO;AAAA,IACpB;AAAA,EACJ;AACD,SAAO,EAAE,SAAA8E,GAAS,QAAAuK;AACtB;ACzBA,MAAMmI,KAAW,6DACX7Q,KAAU,CAACiP,MAAUA,MAAUA,EAAM,SAAS,eAAeA,EAAM,SAAS;AAClF,SAAS6B,GAAsB,EAAE,aAAAhB,GAAa,kBAAAC,EAAgB,GAAIxU,GAAKgU,GAAIzW,GAASW,GAAK;AACrF,QAAMtD,IAAQoZ,EAAG,MAAM,WAAW,KAC5BwB,IAAS5a,IAAQ,aAAa,iBAC9B8Z,KAAaxW,KAAA,gBAAAA,EAAK,eAActD,IAAQ2Q,IAAUQ,IAClD0J,IAAO,IAAIf,EAAU1U,EAAI,MAAM;AACrC,EAAAyV,EAAK,OAAO;AACZ,QAAMC,IAAS1V,EAAI;AACnB,EAAI0V,MACA1V,EAAI,SAAS;AACjB,MAAImN,IAAS6G,EAAG,SAASA,EAAG,MAAM,OAAO;AACzC,WAAShY,IAAI,GAAGA,IAAIgY,EAAG,MAAM,QAAQ,EAAEhY,GAAG;AACtC,UAAM4Y,IAAWZ,EAAG,MAAMhY,CAAC,GACrB,EAAE,OAAAuI,GAAO,KAAA5I,GAAK,KAAAkZ,GAAK,OAAA/U,EAAK,IAAK8U,GAC7BlN,IAAQmL,GAAatO,GAAO;AAAA,MAC9B,MAAMiR;AAAA,MACN,WAAW;AAAA,MACX,MAAM7Z,MAAOkZ,KAAA,gBAAAA,EAAM;AAAA,MACnB,QAAA1H;AAAA,MACA,SAAA5P;AAAA,MACA,cAAcyW,EAAG;AAAA,MACjB,gBAAgB;AAAA,IAC5B,CAAS;AACD,QAAI,CAACtM,EAAM,OAAO;AACd,UAAI,CAACA,EAAM,UAAU,CAACA,EAAM,OAAO,CAACmN,KAAO,CAAC/U,GAAO;AAC/C,QAAI9D,MAAM,KAAK0L,EAAM,QACjBnK,EAAQmK,EAAM,OAAO,oBAAoB,mBAAmB8N,CAAM,EAAE,IAC/DxZ,IAAIgY,EAAG,MAAM,SAAS,KAC3BzW,EAAQmK,EAAM,OAAO,oBAAoB,4BAA4B8N,CAAM,EAAE,GAC7E9N,EAAM,YACF+N,EAAK,UACLA,EAAK,WAAW;AAAA,IAAO/N,EAAM,UAE7B+N,EAAK,UAAU/N,EAAM,UAE7ByF,IAASzF,EAAM;AACf;AAAA,MACH;AACD,MAAI,CAAC9M,KAASoF,EAAI,QAAQ,UAAU6T,GAAgBlY,CAAG,KACnD4B;AAAA,QAAQ5B;AAAA;AAAA,QACR;AAAA,QAA0B;AAAA,MAAkE;AAAA,IACnG;AACD,QAAIK,MAAM;AACN,MAAI0L,EAAM,SACNnK,EAAQmK,EAAM,OAAO,oBAAoB,mBAAmB8N,CAAM,EAAE;AAAA,aAGnE9N,EAAM,SACPnK,EAAQmK,EAAM,OAAO,gBAAgB,qBAAqB8N,CAAM,QAAQ,GACxE9N,EAAM,SAAS;AACf,UAAIiO,IAAkB;AACtB,MAAAC,EAAM,YAAW9B,KAAMvP;AACnB,gBAAQuP,EAAG,MAAI;AAAA,UACX,KAAK;AAAA,UACL,KAAK;AACD;AAAA,UACJ,KAAK;AACD,YAAA6B,IAAkB7B,EAAG,OAAO,UAAU,CAAC;AACvC,kBAAM8B;AAAA,UACV;AACI,kBAAMA;AAAA,QACb;AAEL,UAAID,GAAiB;AACjB,YAAI5R,IAAO0R,EAAK,MAAMA,EAAK,MAAM,SAAS,CAAC;AAC3C,QAAI5a,EAAOkJ,CAAI,MACXA,IAAOA,EAAK,SAASA,EAAK,MAC1BA,EAAK,UACLA,EAAK,WAAW;AAAA,IAAO4R,IAEvB5R,EAAK,UAAU4R,GACnBjO,EAAM,UAAUA,EAAM,QAAQ,UAAUiO,EAAgB,SAAS,CAAC;AAAA,MACrE;AAAA,IACJ;AAEL,QAAI,CAAC/a,KAAS,CAACia,KAAO,CAACnN,EAAM,OAAO;AAGhC,YAAMwN,IAAYpV,IACZyU,EAAYvU,GAAKF,GAAO4H,GAAOnK,CAAO,IACtCiX,EAAiBxU,GAAK0H,EAAM,KAAKmN,GAAK,MAAMnN,GAAOnK,CAAO;AAChE,MAAAkY,EAAK,MAAM,KAAKP,CAAS,GACzB/H,IAAS+H,EAAU,MAAM,CAAC,GACtBzQ,GAAQ3E,CAAK,KACbvC,EAAQ2X,EAAU,OAAO,iBAAiBI,EAAQ;AAAA,IACzD,OACI;AAGD,YAAMP,IAAWrN,EAAM,KACjBsN,IAAUrZ,IACV4Y,EAAYvU,GAAKrE,GAAK+L,GAAOnK,CAAO,IACpCiX,EAAiBxU,GAAK+U,GAAUxQ,GAAO,MAAMmD,GAAOnK,CAAO;AACjE,MAAIkH,GAAQ9I,CAAG,KACX4B,EAAQyX,EAAQ,OAAO,iBAAiBM,EAAQ;AAEpD,YAAML,IAAapC,GAAagC,KAAO,IAAI;AAAA,QACvC,MAAMW;AAAA,QACN,WAAW;AAAA,QACX,MAAM1V;AAAA,QACN,QAAQkV,EAAQ,MAAM,CAAC;AAAA,QACvB,SAAAzX;AAAA,QACA,cAAcyW,EAAG;AAAA,QACjB,gBAAgB;AAAA,MAChC,CAAa;AACD,UAAIiB,EAAW;AACX,YAAI,CAACra,KAAS,CAAC8M,EAAM,SAAS1H,EAAI,QAAQ,QAAQ;AAC9C,cAAI6U;AACA,uBAAWf,KAAMe,GAAK;AAClB,kBAAIf,MAAOmB,EAAW;AAClB;AACJ,kBAAInB,EAAG,SAAS,WAAW;AACvB,gBAAAvW,EAAQuW,GAAI,0BAA0B,kEAAkE;AACxG;AAAA,cACH;AAAA,YACJ;AACL,UAAIpM,EAAM,QAAQuN,EAAW,MAAM,SAAS,QACxC1X,EAAQ0X,EAAW,OAAO,uBAAuB,6FAA6F;AAAA,QACrJ;AAAA,YAEA,CAAInV,MACD,YAAYA,KAASA,EAAM,UAAUA,EAAM,OAAO,CAAC,MAAM,MACzDvC,EAAQuC,GAAO,gBAAgB,4BAA4B0V,CAAM,EAAE,IAEnEjY,EAAQ0X,EAAW,OAAO,gBAAgB,0BAA0BO,CAAM,QAAQ;AAG1F,YAAMN,IAAYpV,IACZyU,EAAYvU,GAAKF,GAAOmV,GAAY1X,CAAO,IAC3C0X,EAAW,QACPT,EAAiBxU,GAAKiV,EAAW,KAAKJ,GAAK,MAAMI,GAAY1X,CAAO,IACpE;AACV,MAAI2X,IACIzQ,GAAQ3E,CAAK,KACbvC,EAAQ2X,EAAU,OAAO,iBAAiBI,EAAQ,IAEjDL,EAAW,YACZD,EAAQ,UACRA,EAAQ,WAAW;AAAA,IAAOC,EAAW,UAErCD,EAAQ,UAAUC,EAAW;AAErC,YAAM7K,IAAO,IAAIF,EAAK8K,GAASE,CAAS;AAGxC,UAFIlV,EAAI,QAAQ,qBACZoK,EAAK,WAAWwK,IAChBha,GAAO;AACP,cAAMiH,IAAM4T;AACZ,QAAIxB,GAAYjU,GAAK6B,EAAI,OAAOmT,CAAO,KACnCzX,EAAQwX,GAAU,iBAAiB,yBAAyB,GAChElT,EAAI,MAAM,KAAKuI,CAAI;AAAA,MACtB,OACI;AACD,cAAMvI,IAAM,IAAI0J,EAAQvL,EAAI,MAAM;AAClC,QAAA6B,EAAI,OAAO,IACXA,EAAI,MAAM,KAAKuI,CAAI,GACnBqL,EAAK,MAAM,KAAK5T,CAAG;AAAA,MACtB;AACD,MAAAsL,IAAS+H,IAAYA,EAAU,MAAM,CAAC,IAAID,EAAW;AAAA,IACxD;AAAA,EACJ;AACD,QAAMY,IAAcjb,IAAQ,MAAM,KAC5B,CAACkb,GAAI,GAAGC,CAAE,IAAI/B,EAAG;AACvB,MAAIgC,IAAQ7I;AACZ,MAAI2I,KAAMA,EAAG,WAAWD;AACpB,IAAAG,IAAQF,EAAG,SAASA,EAAG,OAAO;AAAA,OAC7B;AACD,UAAMrY,IAAO+X,EAAO,CAAC,EAAE,YAAW,IAAKA,EAAO,UAAU,CAAC,GACnD9W,IAAMgX,IACN,GAAGjY,CAAI,oBAAoBoY,CAAW,KACtC,GAAGpY,CAAI,qEAAqEoY,CAAW;AAC7F,IAAAtY,EAAQ4P,GAAQuI,IAAS,iBAAiB,cAAchX,CAAG,GACvDoX,KAAMA,EAAG,OAAO,WAAW,KAC3BC,EAAG,QAAQD,CAAE;AAAA,EACpB;AACD,MAAIC,EAAG,SAAS,GAAG;AACf,UAAMlS,IAAMwR,GAAWU,GAAIC,GAAOhW,EAAI,QAAQ,QAAQzC,CAAO;AAC7D,IAAIsG,EAAI,YACA4R,EAAK,UACLA,EAAK,WAAW;AAAA,IAAO5R,EAAI,UAE3B4R,EAAK,UAAU5R,EAAI,UAE3B4R,EAAK,QAAQ,CAACzB,EAAG,QAAQgC,GAAOnS,EAAI,MAAM;AAAA,EAC7C;AAEG,IAAA4R,EAAK,QAAQ,CAACzB,EAAG,QAAQgC,GAAOA,CAAK;AAEzC,SAAOP;AACX;AC9LA,SAASQ,GAAkBC,GAAIlW,GAAK0T,GAAOnW,GAASiE,GAAStD,GAAK;AAC9D,QAAMuX,IAAO/B,EAAM,SAAS,cACtBY,GAAgB4B,GAAIlW,GAAK0T,GAAOnW,GAASW,CAAG,IAC5CwV,EAAM,SAAS,cACXyB,GAAgBe,GAAIlW,GAAK0T,GAAOnW,GAASW,CAAG,IAC5CqX,GAAsBW,GAAIlW,GAAK0T,GAAOnW,GAASW,CAAG,GACtDiY,IAAOV,EAAK;AAGlB,SAAIjU,MAAY,OAAOA,MAAY2U,EAAK,WACpCV,EAAK,MAAMU,EAAK,SACTV,MAEPjU,MACAiU,EAAK,MAAMjU,IACRiU;AACX;AACA,SAASW,GAAkBF,GAAIlW,GAAK0T,GAAOhM,GAAOnK,GAAS;AtDzB3D,MAAAjB;AsD0BI,QAAM+Z,IAAW3O,EAAM,KACjBlG,IAAW6U,IAEXrW,EAAI,WAAW,QAAQqW,EAAS,QAAQ,CAAA3X,MAAOnB,EAAQ8Y,GAAU,sBAAsB3X,CAAG,CAAC,IAD3F;AAEN,MAAIgV,EAAM,SAAS,aAAa;AAC5B,UAAM,EAAE,QAAAjV,GAAQ,kBAAkB6X,EAAE,IAAK5O,GACnC6O,IAAW9X,KAAU4X,IACrB5X,EAAO,SAAS4X,EAAS,SACrB5X,IACA4X,IACH5X,KAAU4X;AACjB,IAAIE,MAAa,CAACD,KAAMA,EAAG,SAASC,EAAS,WAEzChZ,EAAQgZ,GAAU,gBADF,4CACyB;AAAA,EAEhD;AACD,QAAMC,IAAU9C,EAAM,SAAS,cACzB,QACAA,EAAM,SAAS,cACX,QACAA,EAAM,MAAM,WAAW,MACnB,QACA;AAGd,MAAI,CAAC2C,KACD,CAAC7U,KACDA,MAAY,OACXA,MAAY+J,EAAQ,WAAWiL,MAAY,SAC3ChV,MAAYuK,EAAQ,WAAWyK,MAAY;AAC5C,WAAOP,GAAkBC,GAAIlW,GAAK0T,GAAOnW,GAASiE,CAAO;AAE7D,MAAItD,IAAM8B,EAAI,OAAO,KAAK,KAAK,CAAA0B,MAAKA,EAAE,QAAQF,KAAWE,EAAE,eAAe8U,CAAO;AACjF,MAAI,CAACtY,GAAK;AACN,UAAMuY,IAAKzW,EAAI,OAAO,UAAUwB,CAAO;AACvC,QAAIiV,KAAMA,EAAG,eAAeD;AACxB,MAAAxW,EAAI,OAAO,KAAK,KAAK,OAAO,OAAO,CAAE,GAAEyW,GAAI,EAAE,SAAS,GAAK,CAAE,CAAC,GAC9DvY,IAAMuY;AAAA;AAGN,aAAIA,KAAA,QAAAA,EAAI,aACJlZ,EAAQ8Y,GAAU,uBAAuB,GAAGI,EAAG,GAAG,aAAaD,CAAO,4BAA4BC,EAAG,UAAU,IAAI,EAAI,IAGvHlZ,EAAQ8Y,GAAU,sBAAsB,mBAAmB7U,CAAO,IAAI,EAAI,GAEvEyU,GAAkBC,GAAIlW,GAAK0T,GAAOnW,GAASiE,CAAO;AAAA,EAEhE;AACD,QAAMiU,IAAOQ,GAAkBC,GAAIlW,GAAK0T,GAAOnW,GAASiE,GAAStD,CAAG,GAC9Db,MAAMf,IAAA4B,EAAI,YAAJ,gBAAA5B,EAAA,KAAA4B,GAAcuX,GAAM,CAAA/W,MAAOnB,EAAQ8Y,GAAU,sBAAsB3X,CAAG,GAAGsB,EAAI,aAAYyV,GAC/F/a,IAAOO,EAAOoC,CAAG,IACjBA,IACA,IAAIgE,EAAOhE,CAAG;AACpB,SAAA3C,EAAK,QAAQ+a,EAAK,OAClB/a,EAAK,MAAM8G,GACPtD,KAAA,QAAAA,EAAK,WACLxD,EAAK,SAASwD,EAAI,SACfxD;AACX;ACnFA,SAASgc,GAAmB1W,GAAK2W,GAAQpZ,GAAS;AAC9C,QAAMgH,IAAQoS,EAAO,QACfpQ,IAASqQ,GAAuBD,GAAQ3W,EAAI,QAAQ,QAAQzC,CAAO;AACzE,MAAI,CAACgJ;AACD,WAAO,EAAE,OAAO,IAAI,MAAM,MAAM,SAAS,IAAI,OAAO,CAAChC,GAAOA,GAAOA,CAAK,EAAC;AAC7E,QAAMnE,IAAOmG,EAAO,SAAS,MAAMlF,EAAO,eAAeA,EAAO,eAC1DjD,IAAQuY,EAAO,SAASE,GAAWF,EAAO,MAAM,IAAI;AAE1D,MAAIG,IAAa1Y,EAAM;AACvB,WAASpC,IAAIoC,EAAM,SAAS,GAAGpC,KAAK,GAAG,EAAEA,GAAG;AACxC,UAAM+a,IAAU3Y,EAAMpC,CAAC,EAAE,CAAC;AAC1B,QAAI+a,MAAY,MAAMA,MAAY;AAC9B,MAAAD,IAAa9a;AAAA;AAEb;AAAA,EACP;AAED,MAAI8a,MAAe,GAAG;AAClB,UAAMhX,IAAQyG,EAAO,UAAU,OAAOnI,EAAM,SAAS,IAC/C;AAAA,EAAK,OAAO,KAAK,IAAI,GAAGA,EAAM,SAAS,CAAC,CAAC,IACzC;AACN,QAAIyF,IAAMU,IAAQgC,EAAO;AACzB,WAAIoQ,EAAO,WACP9S,KAAO8S,EAAO,OAAO,SAClB,EAAE,OAAA7W,GAAO,MAAAM,GAAM,SAASmG,EAAO,SAAS,OAAO,CAAChC,GAAOV,GAAKA,CAAG,EAAC;AAAA,EAC1E;AAED,MAAImT,IAAaL,EAAO,SAASpQ,EAAO,QACpC4G,IAASwJ,EAAO,SAASpQ,EAAO,QAChC0Q,IAAe;AACnB,WAASjb,IAAI,GAAGA,IAAI8a,GAAY,EAAE9a,GAAG;AACjC,UAAM,CAAC6G,GAAQkU,CAAO,IAAI3Y,EAAMpC,CAAC;AACjC,QAAI+a,MAAY,MAAMA,MAAY;AAC9B,MAAIxQ,EAAO,WAAW,KAAK1D,EAAO,SAASmU,MACvCA,IAAanU,EAAO;AAAA,SAEvB;AACD,MAAIA,EAAO,SAASmU,KAEhBzZ,EAAQ4P,IAAStK,EAAO,QAAQ,gBADhB,iGACuC,GAEvD0D,EAAO,WAAW,MAClByQ,IAAanU,EAAO,SACxBoU,IAAejb,GACXgb,MAAe,KAAK,CAAChX,EAAI,UAEzBzC,EAAQ4P,GAAQ,cADA,qDACqB;AAEzC;AAAA,IACH;AACD,IAAAA,KAAUtK,EAAO,SAASkU,EAAQ,SAAS;AAAA,EAC9C;AAED,WAAS/a,IAAIoC,EAAM,SAAS,GAAGpC,KAAK8a,GAAY,EAAE9a;AAC9C,IAAIoC,EAAMpC,CAAC,EAAE,CAAC,EAAE,SAASgb,MACrBF,IAAa9a,IAAI;AAEzB,MAAI8D,IAAQ,IACR+U,IAAM,IACNqC,IAAmB;AAEvB,WAASlb,IAAI,GAAGA,IAAIib,GAAc,EAAEjb;AAChC,IAAA8D,KAAS1B,EAAMpC,CAAC,EAAE,CAAC,EAAE,MAAMgb,CAAU,IAAI;AAAA;AAC7C,WAAShb,IAAIib,GAAcjb,IAAI8a,GAAY,EAAE9a,GAAG;AAC5C,QAAI,CAAC6G,GAAQkU,CAAO,IAAI3Y,EAAMpC,CAAC;AAC/B,IAAAmR,KAAUtK,EAAO,SAASkU,EAAQ,SAAS;AAC3C,UAAMI,IAAOJ,EAAQA,EAAQ,SAAS,CAAC,MAAM;AAI7C,QAHII,MACAJ,IAAUA,EAAQ,MAAM,GAAG,EAAE,IAE7BA,KAAWlU,EAAO,SAASmU,GAAY;AAIvC,YAAM5E,IAAU,2DAHJ7L,EAAO,SACb,mCACA,YACwE;AAC9E,MAAAhJ,EAAQ4P,IAAS4J,EAAQ,UAAUI,IAAO,IAAI,IAAI,cAAc/E,CAAO,GACvEvP,IAAS;AAAA,IACZ;AACD,IAAIzC,MAASiB,EAAO,iBAChBvB,KAAS+U,IAAMhS,EAAO,MAAMmU,CAAU,IAAID,GAC1ClC,IAAM;AAAA,KAEDhS,EAAO,SAASmU,KAAcD,EAAQ,CAAC,MAAM,OAE9ClC,MAAQ,MACRA,IAAM;AAAA,IACD,CAACqC,KAAoBrC,MAAQ;AAAA,MAClCA,IAAM;AAAA;AAAA,IACV/U,KAAS+U,IAAMhS,EAAO,MAAMmU,CAAU,IAAID,GAC1ClC,IAAM;AAAA,GACNqC,IAAmB,MAEdH,MAAY,KAEblC,MAAQ;AAAA,IACR/U,KAAS;AAAA,IAET+U,IAAM;AAAA,KAGV/U,KAAS+U,IAAMkC,GACflC,IAAM,KACNqC,IAAmB;AAAA,EAE1B;AACD,UAAQ3Q,EAAO,OAAK;AAAA,IAChB,KAAK;AACD;AAAA,IACJ,KAAK;AACD,eAASvK,IAAI8a,GAAY9a,IAAIoC,EAAM,QAAQ,EAAEpC;AACzC,QAAA8D,KAAS;AAAA,IAAO1B,EAAMpC,CAAC,EAAE,CAAC,EAAE,MAAMgb,CAAU;AAChD,MAAIlX,EAAMA,EAAM,SAAS,CAAC,MAAM;AAAA,MAC5BA,KAAS;AAAA;AACb;AAAA,IACJ;AACI,MAAAA,KAAS;AAAA;AAAA,EAChB;AACD,QAAM+D,IAAMU,IAAQgC,EAAO,SAASoQ,EAAO,OAAO;AAClD,SAAO,EAAE,OAAA7W,GAAO,MAAAM,GAAM,SAASmG,EAAO,SAAS,OAAO,CAAChC,GAAOV,GAAKA,CAAG,EAAC;AAC3E;AACA,SAAS+S,GAAuB,EAAE,QAAAzJ,GAAQ,OAAAzF,EAAK,GAAI0P,GAAQ7Z,GAAS;AAEhE,MAAImK,EAAM,CAAC,EAAE,SAAS;AAClB,WAAAnK,EAAQmK,EAAM,CAAC,GAAG,cAAc,+BAA+B,GACxD;AAEX,QAAM,EAAE,QAAA5J,EAAM,IAAK4J,EAAM,CAAC,GACpBtE,IAAOtF,EAAO,CAAC;AACrB,MAAI+E,IAAS,GACToD,IAAQ,IACRhI,IAAQ;AACZ,WAASjC,IAAI,GAAGA,IAAI8B,EAAO,QAAQ,EAAE9B,GAAG;AACpC,UAAMgB,IAAKc,EAAO9B,CAAC;AACnB,QAAI,CAACiK,MAAUjJ,MAAO,OAAOA,MAAO;AAChC,MAAAiJ,IAAQjJ;AAAA,SACP;AACD,YAAM2P,IAAI,OAAO3P,CAAE;AACnB,MAAI,CAAC6F,KAAU8J,IACX9J,IAAS8J,IACJ1O,MAAU,OACfA,IAAQkP,IAASnR;AAAA,IACxB;AAAA,EACJ;AACD,EAAIiC,MAAU,MACVV,EAAQU,GAAO,oBAAoB,kDAAkDH,CAAM,EAAE;AACjG,MAAIsV,IAAW,IACXxQ,IAAU,IACVyU,IAASvZ,EAAO;AACpB,WAAS9B,IAAI,GAAGA,IAAI0L,EAAM,QAAQ,EAAE1L,GAAG;AACnC,UAAM0X,IAAQhM,EAAM1L,CAAC;AACrB,YAAQ0X,EAAM,MAAI;AAAA,MACd,KAAK;AACD,QAAAN,IAAW;AAAA,MAEf,KAAK;AACD,QAAAiE,KAAU3D,EAAM,OAAO;AACvB;AAAA,MACJ,KAAK;AACD,QAAI0D,KAAU,CAAChE,KAEX7V,EAAQmW,GAAO,gBADC,wEACsB,GAE1C2D,KAAU3D,EAAM,OAAO,QACvB9Q,IAAU8Q,EAAM,OAAO,UAAU,CAAC;AAClC;AAAA,MACJ,KAAK;AACD,QAAAnW,EAAQmW,GAAO,oBAAoBA,EAAM,OAAO,GAChD2D,KAAU3D,EAAM,OAAO;AACvB;AAAA,MAEJ,SAAS;AACL,cAAMtB,IAAU,4CAA4CsB,EAAM,IAAI;AACtE,QAAAnW,EAAQmW,GAAO,oBAAoBtB,CAAO;AAC1C,cAAMkF,IAAK5D,EAAM;AACjB,QAAI4D,KAAM,OAAOA,KAAO,aACpBD,KAAUC,EAAG;AAAA,MACpB;AAAA,IACJ;AAAA,EACJ;AACD,SAAO,EAAE,MAAAlU,GAAM,QAAAP,GAAQ,OAAAoD,GAAO,SAAArD,GAAS,QAAAyU,EAAM;AACjD;AAEA,SAASR,GAAW/Y,GAAQ;AACxB,QAAMgG,IAAQhG,EAAO,MAAM,QAAQ,GAC7ByZ,IAAQzT,EAAM,CAAC,GACf0T,IAAID,EAAM,MAAM,OAAO,GAIvBnZ,IAAQ,CAHAoZ,KAAA,QAAAA,EAAI,KACZ,CAACA,EAAE,CAAC,GAAGD,EAAM,MAAMC,EAAE,CAAC,EAAE,MAAM,CAAC,IAC/B,CAAC,IAAID,CAAK,CACI;AACpB,WAASvb,IAAI,GAAGA,IAAI8H,EAAM,QAAQ9H,KAAK;AACnC,IAAAoC,EAAM,KAAK,CAAC0F,EAAM9H,CAAC,GAAG8H,EAAM9H,IAAI,CAAC,CAAC,CAAC;AACvC,SAAOoC;AACX;AChMA,SAASqZ,GAAkBd,GAAQS,GAAQ7Z,GAAS;AAChD,QAAM,EAAE,QAAA4P,GAAQ,MAAA/M,GAAM,QAAAtC,GAAQ,KAAA+F,EAAG,IAAK8S;AACtC,MAAIzP,GACApH;AACJ,QAAM0N,IAAW,CAACkK,GAAKvS,GAAMzG,MAAQnB,EAAQ4P,IAASuK,GAAKvS,GAAMzG,CAAG;AACpE,UAAQ0B,GAAI;AAAA,IACR,KAAK;AACD,MAAA8G,IAAQ7F,EAAO,OACfvB,IAAQ6X,GAAW7Z,GAAQ0P,CAAQ;AACnC;AAAA,IACJ,KAAK;AACD,MAAAtG,IAAQ7F,EAAO,cACfvB,IAAQ8X,GAAkB9Z,GAAQ0P,CAAQ;AAC1C;AAAA,IACJ,KAAK;AACD,MAAAtG,IAAQ7F,EAAO,cACfvB,IAAQ+X,GAAkB/Z,GAAQ0P,CAAQ;AAC1C;AAAA,IAEJ;AACI,aAAAjQ,EAAQoZ,GAAQ,oBAAoB,4CAA4CvW,CAAI,EAAE,GAC/E;AAAA,QACH,OAAO;AAAA,QACP,MAAM;AAAA,QACN,SAAS;AAAA,QACT,OAAO,CAAC+M,GAAQA,IAASrP,EAAO,QAAQqP,IAASrP,EAAO,MAAM;AAAA,MAC9E;AAAA,EACK;AACD,QAAMga,IAAW3K,IAASrP,EAAO,QAC3Bia,IAAK1C,GAAWxR,GAAKiU,GAAUV,GAAQ7Z,CAAO;AACpD,SAAO;AAAA,IACH,OAAAuC;AAAA,IACA,MAAMoH;AAAA,IACN,SAAS6Q,EAAG;AAAA,IACZ,OAAO,CAAC5K,GAAQ2K,GAAUC,EAAG,MAAM;AAAA,EAC3C;AACA;AACA,SAASJ,GAAW7Z,GAAQP,GAAS;AACjC,MAAIya,IAAU;AACd,UAAQla,EAAO,CAAC,GAAC;AAAA,IAEb,KAAK;AACD,MAAAka,IAAU;AACV;AAAA,IACJ,KAAK;AACD,MAAAA,IAAU;AACV;AAAA,IACJ,KAAK;AACD,MAAAA,IAAU;AACV;AAAA,IACJ,KAAK;AAAA,IACL,KAAK,KAAK;AACN,MAAAA,IAAU,0BAA0Bla,EAAO,CAAC,CAAC;AAC7C;AAAA,IACH;AAAA,IACD,KAAK;AAAA,IACL,KAAK,KAAK;AACN,MAAAka,IAAU,sBAAsBla,EAAO,CAAC,CAAC;AACzC;AAAA,IACH;AAAA,EACJ;AACD,SAAIka,KACAza,EAAQ,GAAG,oBAAoB,iCAAiCya,CAAO,EAAE,GACtEC,GAAUna,CAAM;AAC3B;AACA,SAAS8Z,GAAkB9Z,GAAQP,GAAS;AACxC,UAAIO,EAAOA,EAAO,SAAS,CAAC,MAAM,OAAOA,EAAO,WAAW,MACvDP,EAAQO,EAAO,QAAQ,gBAAgB,wBAAwB,GAC5Dma,GAAUna,EAAO,MAAM,GAAG,EAAE,CAAC,EAAE,QAAQ,OAAO,GAAG;AAC5D;AACA,SAASma,GAAUna,GAAQ;AAQvB,MAAIyZ,GAAOja;AACX,MAAI;AACA,IAAAia,IAAQ,IAAI,OAAO;AAAA,GAA8B,IAAI,GACrDja,IAAO,IAAI,OAAO;AAAA,GAAyC,IAAI;AAAA,EAClE,QACS;AACN,IAAAia,IAAQ,sBACRja,IAAO;AAAA,EACV;AACD,MAAImE,IAAQ8V,EAAM,KAAKzZ,CAAM;AAC7B,MAAI,CAAC2D;AACD,WAAO3D;AACX,MAAIT,IAAMoE,EAAM,CAAC,GACboT,IAAM,KACN1C,IAAMoF,EAAM;AAEhB,OADAja,EAAK,YAAY6U,GACT1Q,IAAQnE,EAAK,KAAKQ,CAAM;AAC5B,IAAI2D,EAAM,CAAC,MAAM,KACToT,MAAQ;AAAA,IACRxX,KAAOwX,IAEPA,IAAM;AAAA,KAGVxX,KAAOwX,IAAMpT,EAAM,CAAC,GACpBoT,IAAM,MAEV1C,IAAM7U,EAAK;AAEf,QAAMsW,IAAO;AACb,SAAAA,EAAK,YAAYzB,GACjB1Q,IAAQmS,EAAK,KAAK9V,CAAM,GACjBT,IAAMwX,MAAOpT,KAAA,gBAAAA,EAAQ,OAAM;AACtC;AACA,SAASoW,GAAkB/Z,GAAQP,GAAS;AACxC,MAAIF,IAAM;AACV,WAASrB,IAAI,GAAGA,IAAI8B,EAAO,SAAS,GAAG,EAAE9B,GAAG;AACxC,UAAMgB,IAAKc,EAAO9B,CAAC;AACnB,QAAI,EAAAgB,MAAO,QAAQc,EAAO9B,IAAI,CAAC,MAAM;AAAA;AAErC,UAAIgB,MAAO;AAAA,GAAM;AACb,cAAM,EAAE,MAAAsH,GAAM,QAAA6I,EAAM,IAAK+K,GAAYpa,GAAQ9B,CAAC;AAC9C,QAAAqB,KAAOiH,GACPtI,IAAImR;AAAA,MACP,WACQnQ,MAAO,MAAM;AAClB,YAAIoH,IAAOtG,EAAO,EAAE9B,CAAC;AACrB,cAAMmc,IAAKC,GAAYhU,CAAI;AAC3B,YAAI+T;AACA,UAAA9a,KAAO8a;AAAA,iBACF/T,MAAS;AAAA;AAGd,eADAA,IAAOtG,EAAO9B,IAAI,CAAC,GACZoI,MAAS,OAAOA,MAAS;AAC5B,YAAAA,IAAOtG,EAAO,EAAE9B,IAAI,CAAC;AAAA,iBAEpBoI,MAAS,QAAQtG,EAAO9B,IAAI,CAAC,MAAM;AAAA;AAGxC,eADAoI,IAAOtG,EAAO,EAAE9B,IAAI,CAAC,GACdoI,MAAS,OAAOA,MAAS;AAC5B,YAAAA,IAAOtG,EAAO,EAAE9B,IAAI,CAAC;AAAA,iBAEpBoI,MAAS,OAAOA,MAAS,OAAOA,MAAS,KAAK;AACnD,gBAAMiT,IAAS,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,IAAIjT,CAAI;AACxC,UAAA/G,KAAOgb,GAAcva,GAAQ9B,IAAI,GAAGqb,GAAQ9Z,CAAO,GACnDvB,KAAKqb;AAAA,QACR,OACI;AACD,gBAAMiB,IAAMxa,EAAO,OAAO9B,IAAI,GAAG,CAAC;AAClC,UAAAuB,EAAQvB,IAAI,GAAG,iBAAiB,2BAA2Bsc,CAAG,EAAE,GAChEjb,KAAOib;AAAA,QACV;AAAA,MACJ,WACQtb,MAAO,OAAOA,MAAO,KAAM;AAEhC,cAAMub,IAAUvc;AAChB,YAAIoI,IAAOtG,EAAO9B,IAAI,CAAC;AACvB,eAAOoI,MAAS,OAAOA,MAAS;AAC5B,UAAAA,IAAOtG,EAAO,EAAE9B,IAAI,CAAC;AACzB,QAAIoI,MAAS;AAAA,KAAQ,EAAEA,MAAS,QAAQtG,EAAO9B,IAAI,CAAC,MAAM;AAAA,OACtDqB,KAAOrB,IAAIuc,IAAUza,EAAO,MAAMya,GAASvc,IAAI,CAAC,IAAIgB;AAAA,MAC3D;AAEG,QAAAK,KAAOL;AAAA,EAEd;AACD,UAAIc,EAAOA,EAAO,SAAS,CAAC,MAAM,OAAOA,EAAO,WAAW,MACvDP,EAAQO,EAAO,QAAQ,gBAAgB,wBAAwB,GAC5DT;AACX;AAKA,SAAS6a,GAAYpa,GAAQqP,GAAQ;AACjC,MAAI7I,IAAO,IACPtH,IAAKc,EAAOqP,IAAS,CAAC;AAC1B,UAAOnQ,MAAO,OAAOA,MAAO,OAAQA,MAAO;AAAA,KAAQA,MAAO,SAClD,EAAAA,MAAO,QAAQc,EAAOqP,IAAS,CAAC,MAAM;AAAA;AAE1C,IAAInQ,MAAO;AAAA,MACPsH,KAAQ;AAAA,IACZ6I,KAAU,GACVnQ,IAAKc,EAAOqP,IAAS,CAAC;AAE1B,SAAK7I,MACDA,IAAO,MACJ,EAAE,MAAAA,GAAM,QAAA6I;AACnB;AACA,MAAMiL,KAAc;AAAA,EAChB,GAAK;AAAA;AAAA,EACL,GAAG;AAAA;AAAA,EACH,GAAG;AAAA;AAAA,EACH,GAAG;AAAA;AAAA,EACH,GAAG;AAAA;AAAA,EACH,GAAG;AAAA;AAAA;AAAA,EACH,GAAG;AAAA;AAAA,EACH,GAAG;AAAA;AAAA,EACH,GAAG;AAAA;AAAA,EACH,GAAG;AAAA;AAAA,EACH,GAAG;AAAA;AAAA,EACH,GAAG;AAAA;AAAA,EACH,GAAG;AAAA;AAAA,EACH,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,MAAM;AAAA,EACN,KAAM;AACV;AACA,SAASC,GAAcva,GAAQqP,GAAQkK,GAAQ9Z,GAAS;AACpD,QAAM4a,IAAKra,EAAO,OAAOqP,GAAQkK,CAAM,GAEjClS,IADKgT,EAAG,WAAWd,KAAU,iBAAiB,KAAKc,CAAE,IACzC,SAASA,GAAI,EAAE,IAAI;AACrC,MAAI,MAAMhT,CAAI,GAAG;AACb,UAAMmT,IAAMxa,EAAO,OAAOqP,IAAS,GAAGkK,IAAS,CAAC;AAChD,WAAA9Z,EAAQ4P,IAAS,GAAG,iBAAiB,2BAA2BmL,CAAG,EAAE,GAC9DA;AAAA,EACV;AACD,SAAO,OAAO,cAAcnT,CAAI;AACpC;ACvNA,SAASqT,GAAcxY,GAAK0T,GAAO2C,GAAU9Y,GAAS;AAClD,QAAM,EAAE,OAAAuC,GAAO,MAAAM,GAAM,SAAAwC,GAAS,OAAA6V,MAAU/E,EAAM,SAAS,iBACjDgD,GAAmB1W,GAAK0T,GAAOnW,CAAO,IACtCka,GAAkB/D,GAAO1T,EAAI,QAAQ,QAAQzC,CAAO,GACpDiE,IAAU6U,IACVrW,EAAI,WAAW,QAAQqW,EAAS,QAAQ,CAAA3X,MAAOnB,EAAQ8Y,GAAU,sBAAsB3X,CAAG,CAAC,IAC3F,MACAR,IAAMmY,KAAY7U,IAClBkX,GAAoB1Y,EAAI,QAAQF,GAAO0B,GAAS6U,GAAU9Y,CAAO,IACjEmW,EAAM,SAAS,WACXiF,GAAoB3Y,GAAKF,GAAO4T,GAAOnW,CAAO,IAC9CyC,EAAI,OAAO1F,CAAM;AAC3B,MAAIqc;AACJ,MAAI;AACA,UAAMtZ,IAAMa,EAAI,QAAQ4B,GAAO,CAAApB,MAAOnB,EAAQ8Y,KAAY3C,GAAO,sBAAsBhV,CAAG,GAAGsB,EAAI,OAAO;AACxG,IAAA2W,IAAS7b,EAASuC,CAAG,IAAIA,IAAM,IAAIgE,EAAOhE,CAAG;AAAA,EAChD,SACMY,GAAO;AACV,UAAMS,IAAMT,aAAiB,QAAQA,EAAM,UAAU,OAAOA,CAAK;AACjE,IAAAV,EAAQ8Y,KAAY3C,GAAO,sBAAsBhV,CAAG,GACpDiY,IAAS,IAAItV,EAAOvB,CAAK;AAAA,EAC5B;AACD,SAAA6W,EAAO,QAAQ8B,GACf9B,EAAO,SAAS7W,GACZM,MACAuW,EAAO,OAAOvW,IACdoB,MACAmV,EAAO,MAAMnV,IACbtD,EAAI,WACJyY,EAAO,SAASzY,EAAI,SACpB0E,MACA+T,EAAO,UAAU/T,IACd+T;AACX;AACA,SAAS+B,GAAoB1W,GAAQlC,GAAO0B,GAAS6U,GAAU9Y,GAAS;AzDvCxE,MAAAjB;AyDwCI,MAAIkF,MAAY;AACZ,WAAOQ,EAAO1H,CAAM;AACxB,QAAMse,IAAgB,CAAA;AACtB,aAAW1a,KAAO8D,EAAO;AACrB,QAAI,CAAC9D,EAAI,cAAcA,EAAI,QAAQsD;AAC/B,UAAItD,EAAI,WAAWA,EAAI;AACnB,QAAA0a,EAAc,KAAK1a,CAAG;AAAA;AAEtB,eAAOA;AAGnB,aAAWA,KAAO0a;AACd,SAAItc,IAAA4B,EAAI,SAAJ,QAAA5B,EAAU,KAAKwD;AACf,aAAO5B;AACf,QAAMuY,IAAKzU,EAAO,UAAUR,CAAO;AACnC,SAAIiV,KAAM,CAACA,EAAG,cAGVzU,EAAO,KAAK,KAAK,OAAO,OAAO,CAAE,GAAEyU,GAAI,EAAE,SAAS,IAAO,MAAM,OAAS,CAAE,CAAC,GACpEA,MAEXlZ,EAAQ8Y,GAAU,sBAAsB,mBAAmB7U,CAAO,IAAIA,MAAY,uBAAuB,GAClGQ,EAAO1H,CAAM;AACxB;AACA,SAASqe,GAAoB,EAAE,YAAAE,GAAY,QAAA7W,EAAQ,GAAElC,GAAO4T,GAAOnW,GAAS;AACxE,QAAMW,IAAM8D,EAAO,KAAK,KAAK,CAAA9D,MAAO;AzDjExC,QAAA5B;AyDiEwC,WAAA4B,EAAI,aAAW5B,IAAA4B,EAAI,SAAJ,gBAAA5B,EAAU,KAAKwD;AAAA,GAAM,KAAKkC,EAAO1H,CAAM;AAC1F,MAAI0H,EAAO,QAAQ;AACf,UAAM8E,IAAS9E,EAAO,OAAO,KAAK,CAAA9D,MAAG;AzDnE7C,UAAA5B;AyDmEiD,aAAA4B,EAAI,aAAW5B,IAAA4B,EAAI,SAAJ,gBAAA5B,EAAU,KAAKwD;AAAA,KAAM,KACzEkC,EAAO1H,CAAM;AACjB,QAAI4D,EAAI,QAAQ4I,EAAO,KAAK;AACxB,YAAMwQ,IAAKuB,EAAW,UAAU3a,EAAI,GAAG,GACjCyK,IAAKkQ,EAAW,UAAU/R,EAAO,GAAG,GACpCpI,IAAM,iCAAiC4Y,CAAE,OAAO3O,CAAE;AACxD,MAAApL,EAAQmW,GAAO,sBAAsBhV,GAAK,EAAI;AAAA,IACjD;AAAA,EACJ;AACD,SAAOR;AACX;AC7EA,SAAS4a,GAAoB3L,GAAQ4L,GAAQ5G,GAAK;AAC9C,MAAI4G,GAAQ;AACR,IAAI5G,MAAQ,SACRA,IAAM4G,EAAO;AACjB,aAAS/c,IAAImW,IAAM,GAAGnW,KAAK,GAAG,EAAEA,GAAG;AAC/B,UAAI8X,IAAKiF,EAAO/c,CAAC;AACjB,cAAQ8X,EAAG,MAAI;AAAA,QACX,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AACD,UAAA3G,KAAU2G,EAAG,OAAO;AACpB;AAAA,MACP;AAID,WADAA,IAAKiF,EAAO,EAAE/c,CAAC,IACR8X,KAAA,gBAAAA,EAAI,UAAS;AAChB,QAAA3G,KAAU2G,EAAG,OAAO,QACpBA,IAAKiF,EAAO,EAAE/c,CAAC;AAEnB;AAAA,IACH;AAAA,EACJ;AACD,SAAOmR;AACX;AClBA,MAAM+I,KAAK,EAAE,aAAA3B,IAAa,kBAAAC;AAC1B,SAASD,GAAYvU,GAAK0T,GAAOhM,GAAOnK,GAAS;AAC7C,QAAM,EAAE,aAAA2V,GAAa,SAAAtQ,GAAS,QAAAnE,GAAQ,KAAAP,EAAG,IAAKwJ;AAC9C,MAAIhN,GACAse,IAAa;AACjB,UAAQtF,EAAM,MAAI;AAAA,IACd,KAAK;AACD,MAAAhZ,IAAOue,GAAajZ,GAAK0T,GAAOnW,CAAO,IACnCkB,KAAUP,MACVX,EAAQmW,GAAO,eAAe,+CAA+C;AACjF;AAAA,IACJ,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AACD,MAAAhZ,IAAO8d,GAAcxY,GAAK0T,GAAOxV,GAAKX,CAAO,GACzCkB,MACA/D,EAAK,SAAS+D,EAAO,OAAO,UAAU,CAAC;AAC3C;AAAA,IACJ,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AACD,MAAA/D,IAAO0b,GAAkBF,IAAIlW,GAAK0T,GAAOhM,GAAOnK,CAAO,GACnDkB,MACA/D,EAAK,SAAS+D,EAAO,OAAO,UAAU,CAAC;AAC3C;AAAA,IACJ,SAAS;AACL,YAAM2T,IAAUsB,EAAM,SAAS,UACzBA,EAAM,UACN,4BAA4BA,EAAM,IAAI;AAC5C,MAAAnW,EAAQmW,GAAO,oBAAoBtB,CAAO,GAC1C1X,IAAO8Z,GAAiBxU,GAAK0T,EAAM,QAAQ,QAAW,MAAMhM,GAAOnK,CAAO,GAC1Eyb,IAAa;AAAA,IAChB;AAAA,EACJ;AACD,SAAIva,KAAU/D,EAAK,WAAW,MAC1B6C,EAAQkB,GAAQ,aAAa,kCAAkC,GAC/DyU,MACAxY,EAAK,cAAc,KACnBkI,MACI8Q,EAAM,SAAS,YAAYA,EAAM,WAAW,KAC5ChZ,EAAK,UAAUkI,IAEflI,EAAK,gBAAgBkI,IAGzB5C,EAAI,QAAQ,oBAAoBgZ,MAChCte,EAAK,WAAWgZ,IACbhZ;AACX;AACA,SAAS8Z,GAAiBxU,GAAKmN,GAAQ4L,GAAQ5G,GAAK,EAAE,aAAAe,GAAa,SAAAtQ,GAAS,QAAAnE,GAAQ,KAAAP,GAAK,KAAA2F,EAAG,GAAItG,GAAS;AACrG,QAAMmW,IAAQ;AAAA,IACV,MAAM;AAAA,IACN,QAAQoF,GAAoB3L,GAAQ4L,GAAQ5G,CAAG;AAAA,IAC/C,QAAQ;AAAA,IACR,QAAQ;AAAA,EAChB,GACUzX,IAAO8d,GAAcxY,GAAK0T,GAAOxV,GAAKX,CAAO;AACnD,SAAIkB,MACA/D,EAAK,SAAS+D,EAAO,OAAO,UAAU,CAAC,GACnC/D,EAAK,WAAW,MAChB6C,EAAQkB,GAAQ,aAAa,kCAAkC,IAEnEyU,MACAxY,EAAK,cAAc,KACnBkI,MACAlI,EAAK,UAAUkI,GACflI,EAAK,MAAM,CAAC,IAAImJ,IAEbnJ;AACX;AACA,SAASue,GAAa,EAAE,SAAA3R,KAAW,EAAE,QAAA6F,GAAQ,QAAArP,GAAQ,KAAA+F,EAAK,GAAEtG,GAAS;AACjE,QAAM2b,IAAQ,IAAIzY,GAAM3C,EAAO,UAAU,CAAC,CAAC;AAC3C,EAAIob,EAAM,WAAW,MACjB3b,EAAQ4P,GAAQ,aAAa,iCAAiC,GAC9D+L,EAAM,OAAO,SAAS,GAAG,KACzB3b,EAAQ4P,IAASrP,EAAO,SAAS,GAAG,aAAa,kCAAkC,EAAI;AAC3F,QAAMga,IAAW3K,IAASrP,EAAO,QAC3Bia,IAAK1C,GAAWxR,GAAKiU,GAAUxQ,EAAQ,QAAQ/J,CAAO;AAC5D,SAAA2b,EAAM,QAAQ,CAAC/L,GAAQ2K,GAAUC,EAAG,MAAM,GACtCA,EAAG,YACHmB,EAAM,UAAUnB,EAAG,UAChBmB;AACX;ACpFA,SAASC,GAAW7R,GAASuR,GAAY,EAAE,QAAA1L,GAAQ,OAAA5I,GAAO,OAAAzE,GAAO,KAAA+D,EAAK,GAAEtG,GAAS;AAC7E,QAAM6b,IAAO,OAAO,OAAO,EAAE,aAAaP,EAAU,GAAIvR,CAAO,GACzDnJ,IAAM,IAAIsT,GAAS,QAAW2H,CAAI,GAClCpZ,IAAM;AAAA,IACR,QAAQ;AAAA,IACR,YAAY7B,EAAI;AAAA,IAChB,SAASA,EAAI;AAAA,IACb,QAAQA,EAAI;AAAA,EACpB,GACUuJ,IAAQmL,GAAatO,GAAO;AAAA,IAC9B,WAAW;AAAA,IACX,MAAMzE,MAAS+D,KAAA,gBAAAA,EAAM;AAAA,IACrB,QAAAsJ;AAAA,IACA,SAAA5P;AAAA,IACA,cAAc;AAAA,IACd,gBAAgB;AAAA,EACxB,CAAK;AACD,EAAImK,EAAM,UACNvJ,EAAI,WAAW,WAAW,IACtB2B,MACCA,EAAM,SAAS,eAAeA,EAAM,SAAS,gBAC9C,CAAC4H,EAAM,cACPnK,EAAQmK,EAAM,KAAK,gBAAgB,uEAAuE,IAGlHvJ,EAAI,WAAW2B,IACTyU,GAAYvU,GAAKF,GAAO4H,GAAOnK,CAAO,IACtCiX,GAAiBxU,GAAK0H,EAAM,KAAKnD,GAAO,MAAMmD,GAAOnK,CAAO;AAClE,QAAM8b,IAAalb,EAAI,SAAS,MAAM,CAAC,GACjC4Z,IAAK1C,GAAWxR,GAAKwV,GAAY,IAAO9b,CAAO;AACrD,SAAIwa,EAAG,YACH5Z,EAAI,UAAU4Z,EAAG,UACrB5Z,EAAI,QAAQ,CAACgP,GAAQkM,GAAYtB,EAAG,MAAM,GACnC5Z;AACX;AChCA,SAASmb,GAAYvY,GAAK;AACtB,MAAI,OAAOA,KAAQ;AACf,WAAO,CAACA,GAAKA,IAAM,CAAC;AACxB,MAAI,MAAM,QAAQA,CAAG;AACjB,WAAOA,EAAI,WAAW,IAAIA,IAAM,CAACA,EAAI,CAAC,GAAGA,EAAI,CAAC,CAAC;AACnD,QAAM,EAAE,QAAAoM,GAAQ,QAAArP,EAAQ,IAAGiD;AAC3B,SAAO,CAACoM,GAAQA,KAAU,OAAOrP,KAAW,WAAWA,EAAO,SAAS,EAAE;AAC7E;AACA,SAASyb,GAAaC,GAAS;A7Df/B,MAAAld;A6DgBI,MAAIsG,IAAU,IACV6W,IAAY,IACZC,IAAiB;AACrB,WAAS1d,IAAI,GAAGA,IAAIwd,EAAQ,QAAQ,EAAExd,GAAG;AACrC,UAAM8B,IAAS0b,EAAQxd,CAAC;AACxB,YAAQ8B,EAAO,CAAC,GAAC;AAAA,MACb,KAAK;AACD,QAAA8E,MACKA,MAAY,KAAK,KAAK8W,IAAiB;AAAA;AAAA,IAAS;AAAA,MAC5C5b,EAAO,UAAU,CAAC,KAAK,MAChC2b,IAAY,IACZC,IAAiB;AACjB;AAAA,MACJ,KAAK;AACD,UAAIpd,IAAAkd,EAAQxd,IAAI,CAAC,MAAb,gBAAAM,EAAiB,QAAO,QACxBN,KAAK,IACTyd,IAAY;AACZ;AAAA,MACJ;AAEI,QAAKA,MACDC,IAAiB,KACrBD,IAAY;AAAA,IACnB;AAAA,EACJ;AACD,SAAO,EAAE,SAAA7W,GAAS,gBAAA8W;AACtB;AAYA,MAAMC,GAAS;AAAA,EACX,YAAYrS,IAAU,IAAI;AACtB,SAAK,MAAM,MACX,KAAK,eAAe,IACpB,KAAK,UAAU,IACf,KAAK,SAAS,IACd,KAAK,WAAW,IAChB,KAAK,UAAU,CAACxJ,GAAQqH,GAAMiN,GAAShJ,MAAY;AAC/C,YAAM+I,IAAMmH,GAAYxb,CAAM;AAC9B,MAAIsL,IACA,KAAK,SAAS,KAAK,IAAIkJ,GAAYH,GAAKhN,GAAMiN,CAAO,CAAC,IAEtD,KAAK,OAAO,KAAK,IAAIC,EAAeF,GAAKhN,GAAMiN,CAAO,CAAC;AAAA,IACvE,GAEQ,KAAK,aAAa,IAAInV,EAAW,EAAE,SAASqK,EAAQ,WAAW,MAAK,CAAE,GACtE,KAAK,UAAUA;AAAA,EAClB;AAAA,EACD,SAASnJ,GAAKyb,GAAU;AACpB,UAAM,EAAE,SAAAhX,GAAS,gBAAA8W,EAAc,IAAKH,GAAa,KAAK,OAAO;AAE7D,QAAI3W,GAAS;AACT,YAAM4O,IAAKrT,EAAI;AACf,UAAIyb;AACA,QAAAzb,EAAI,UAAUA,EAAI,UAAU,GAAGA,EAAI,OAAO;AAAA,EAAKyE,CAAO,KAAKA;AAAA,eAEtD8W,KAAkBvb,EAAI,WAAW,YAAY,CAACqT;AACnD,QAAArT,EAAI,gBAAgByE;AAAA,eAEf5H,EAAawW,CAAE,KAAK,CAACA,EAAG,QAAQA,EAAG,MAAM,SAAS,GAAG;AAC1D,YAAInP,IAAKmP,EAAG,MAAM,CAAC;AACnB,QAAI3W,EAAOwH,CAAE,MACTA,IAAKA,EAAG;AACZ,cAAMsR,IAAKtR,EAAG;AACd,QAAAA,EAAG,gBAAgBsR,IAAK,GAAG/Q,CAAO;AAAA,EAAK+Q,CAAE,KAAK/Q;AAAA,MACjD,OACI;AACD,cAAM+Q,IAAKnC,EAAG;AACd,QAAAA,EAAG,gBAAgBmC,IAAK,GAAG/Q,CAAO;AAAA,EAAK+Q,CAAE,KAAK/Q;AAAA,MACjD;AAAA,IACJ;AACD,IAAIgX,KACA,MAAM,UAAU,KAAK,MAAMzb,EAAI,QAAQ,KAAK,MAAM,GAClD,MAAM,UAAU,KAAK,MAAMA,EAAI,UAAU,KAAK,QAAQ,MAGtDA,EAAI,SAAS,KAAK,QAClBA,EAAI,WAAW,KAAK,WAExB,KAAK,UAAU,IACf,KAAK,SAAS,IACd,KAAK,WAAW;EACnB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMD,aAAa;AACT,WAAO;AAAA,MACH,SAASob,GAAa,KAAK,OAAO,EAAE;AAAA,MACpC,YAAY,KAAK;AAAA,MACjB,QAAQ,KAAK;AAAA,MACb,UAAU,KAAK;AAAA,IAC3B;AAAA,EACK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOD,CAAC,QAAQzG,GAAQ+G,IAAW,IAAOC,IAAY,IAAI;AAC/C,eAAWpG,KAASZ;AAChB,aAAO,KAAK,KAAKY,CAAK;AAC1B,WAAO,KAAK,IAAImG,GAAUC,CAAS;AAAA,EACtC;AAAA;AAAA,EAED,CAAC,KAAKpG,GAAO;AACT,YAAQA,EAAM,MAAI;AAAA,MACd,KAAK;AACD,aAAK,WAAW,IAAIA,EAAM,QAAQ,CAACvG,GAAQiF,GAAShJ,MAAY;AAC5D,gBAAM+I,IAAMmH,GAAY5F,CAAK;AAC7B,UAAAvB,EAAI,CAAC,KAAKhF,GACV,KAAK,QAAQgF,GAAK,iBAAiBC,GAAShJ,CAAO;AAAA,QACvE,CAAiB,GACD,KAAK,QAAQ,KAAKsK,EAAM,MAAM,GAC9B,KAAK,eAAe;AACpB;AAAA,MACJ,KAAK,YAAY;AACb,cAAMvV,IAAMgb,GAAW,KAAK,SAAS,KAAK,YAAYzF,GAAO,KAAK,OAAO;AACzE,QAAI,KAAK,gBAAgB,CAACvV,EAAI,WAAW,YACrC,KAAK,QAAQuV,GAAO,gBAAgB,iDAAiD,GACzF,KAAK,SAASvV,GAAK,EAAK,GACpB,KAAK,QACL,MAAM,KAAK,MACf,KAAK,MAAMA,GACX,KAAK,eAAe;AACpB;AAAA,MACH;AAAA,MACD,KAAK;AAAA,MACL,KAAK;AACD;AAAA,MACJ,KAAK;AAAA,MACL,KAAK;AACD,aAAK,QAAQ,KAAKuV,EAAM,MAAM;AAC9B;AAAA,MACJ,KAAK,SAAS;AACV,cAAMhV,IAAMgV,EAAM,SACZ,GAAGA,EAAM,OAAO,KAAK,KAAK,UAAUA,EAAM,MAAM,CAAC,KACjDA,EAAM,SACNzV,IAAQ,IAAIoU,EAAeiH,GAAY5F,CAAK,GAAG,oBAAoBhV,CAAG;AAC5E,QAAI,KAAK,gBAAgB,CAAC,KAAK,MAC3B,KAAK,OAAO,KAAKT,CAAK,IAEtB,KAAK,IAAI,OAAO,KAAKA,CAAK;AAC9B;AAAA,MACH;AAAA,MACD,KAAK,WAAW;AACZ,YAAI,CAAC,KAAK,KAAK;AACX,gBAAMS,IAAM;AACZ,eAAK,OAAO,KAAK,IAAI2T,EAAeiH,GAAY5F,CAAK,GAAG,oBAAoBhV,CAAG,CAAC;AAChF;AAAA,QACH;AACD,aAAK,IAAI,WAAW,SAAS;AAC7B,cAAMmF,IAAMwR,GAAW3B,EAAM,KAAKA,EAAM,SAASA,EAAM,OAAO,QAAQ,KAAK,IAAI,QAAQ,QAAQ,KAAK,OAAO;AAE3G,YADA,KAAK,SAAS,KAAK,KAAK,EAAI,GACxB7P,EAAI,SAAS;AACb,gBAAM2N,IAAK,KAAK,IAAI;AACpB,eAAK,IAAI,UAAUA,IAAK,GAAGA,CAAE;AAAA,EAAK3N,EAAI,OAAO,KAAKA,EAAI;AAAA,QACzD;AACD,aAAK,IAAI,MAAM,CAAC,IAAIA,EAAI;AACxB;AAAA,MACH;AAAA,MACD;AACI,aAAK,OAAO,KAAK,IAAIwO,EAAeiH,GAAY5F,CAAK,GAAG,oBAAoB,qBAAqBA,EAAM,IAAI,EAAE,CAAC;AAAA,IACrH;AAAA,EACJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOD,CAAC,IAAImG,IAAW,IAAOC,IAAY,IAAI;AACnC,QAAI,KAAK;AACL,WAAK,SAAS,KAAK,KAAK,EAAI,GAC5B,MAAM,KAAK,KACX,KAAK,MAAM;AAAA,aAEND,GAAU;AACf,YAAMT,IAAO,OAAO,OAAO,EAAE,aAAa,KAAK,WAAY,GAAE,KAAK,OAAO,GACnEjb,IAAM,IAAIsT,GAAS,QAAW2H,CAAI;AACxC,MAAI,KAAK,gBACL,KAAK,QAAQU,GAAW,gBAAgB,uCAAuC,GACnF3b,EAAI,QAAQ,CAAC,GAAG2b,GAAWA,CAAS,GACpC,KAAK,SAAS3b,GAAK,EAAK,GACxB,MAAMA;AAAA,IACT;AAAA,EACJ;AACL;ACjNA,SAAS4b,GAAgBrG,GAAO0D,IAAS,IAAM7Z,GAAS;AACpD,MAAImW,GAAO;AACP,UAAMlG,IAAW,CAAC2E,GAAKhN,GAAMiN,MAAY;AACrC,YAAMjF,IAAS,OAAOgF,KAAQ,WAAWA,IAAM,MAAM,QAAQA,CAAG,IAAIA,EAAI,CAAC,IAAIA,EAAI;AACjF,UAAI5U;AACA,QAAAA,EAAQ4P,GAAQhI,GAAMiN,CAAO;AAAA;AAE7B,cAAM,IAAIC,EAAe,CAAClF,GAAQA,IAAS,CAAC,GAAGhI,GAAMiN,CAAO;AAAA,IAC5E;AACQ,YAAQsB,EAAM,MAAI;AAAA,MACd,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AACD,eAAO+D,GAAkB/D,GAAO0D,GAAQ5J,CAAQ;AAAA,MACpD,KAAK;AACD,eAAOkJ,GAAmB,EAAE,SAAS,EAAE,QAAAU,EAAM,KAAM1D,GAAOlG,CAAQ;AAAA,IACzE;AAAA,EACJ;AACD,SAAO;AACX;AAeA,SAASwM,GAAkBla,GAAOma,GAAS;AACvC,QAAM,EAAE,aAAAhV,IAAc,IAAO,QAAApC,GAAQ,QAAA+D,IAAS,IAAO,QAAAuG,IAAS,IAAI,MAAA/M,IAAO,QAAO,IAAK6Z,GAC/Enc,IAASiJ,GAAgB,EAAE,MAAA3G,GAAM,OAAAN,EAAK,GAAI;AAAA,IAC5C,aAAAmF;AAAA,IACA,QAAQpC,IAAS,IAAI,IAAI,OAAOA,CAAM,IAAI;AAAA,IAC1C,QAAA+D;AAAA,IACA,SAAS,EAAE,YAAY,IAAM,WAAW,GAAI;AAAA,EACpD,CAAK,GACK/C,IAAMoW,EAAQ,OAAO;AAAA,IACvB,EAAE,MAAM,WAAW,QAAQ,IAAI,QAAApX,GAAQ,QAAQ;AAAA,EAAM;AAAA,EAC7D;AACI,UAAQ/E,EAAO,CAAC,GAAC;AAAA,IACb,KAAK;AAAA,IACL,KAAK,KAAK;AACN,YAAMoc,IAAKpc,EAAO,QAAQ;AAAA,CAAI,GACxBqc,IAAOrc,EAAO,UAAU,GAAGoc,CAAE,GAC7B1T,IAAO1I,EAAO,UAAUoc,IAAK,CAAC,IAAI;AAAA,GAClCxS,IAAQ;AAAA,QACV,EAAE,MAAM,uBAAuB,QAAAyF,GAAQ,QAAAtK,GAAQ,QAAQsX,EAAM;AAAA,MAC7E;AACY,aAAKC,GAAmB1S,GAAO7D,CAAG,KAC9B6D,EAAM,KAAK,EAAE,MAAM,WAAW,QAAQ,IAAI,QAAA7E,GAAQ,QAAQ;AAAA,EAAM,CAAA,GAC7D,EAAE,MAAM,gBAAgB,QAAAsK,GAAQ,QAAAtK,GAAQ,OAAA6E,GAAO,QAAQlB;IACjE;AAAA,IACD,KAAK;AACD,aAAO,EAAE,MAAM,wBAAwB,QAAA2G,GAAQ,QAAAtK,GAAQ,QAAA/E,GAAQ,KAAA+F;IACnE,KAAK;AACD,aAAO,EAAE,MAAM,wBAAwB,QAAAsJ,GAAQ,QAAAtK,GAAQ,QAAA/E,GAAQ,KAAA+F;IACnE;AACI,aAAO,EAAE,MAAM,UAAU,QAAAsJ,GAAQ,QAAAtK,GAAQ,QAAA/E,GAAQ,KAAA+F;EACxD;AACL;AAiBA,SAASwW,GAAe3G,GAAO5T,GAAOma,IAAU,CAAA,GAAI;AAChD,MAAI,EAAE,UAAAK,IAAW,IAAO,aAAArV,IAAc,IAAO,QAAA2B,IAAS,IAAO,MAAAxG,EAAM,IAAG6Z,GAClEpX,IAAS,YAAY6Q,IAAQA,EAAM,SAAS;AAGhD,MAFI4G,KAAY,OAAOzX,KAAW,aAC9BA,KAAU,IACV,CAACzC;AACD,YAAQsT,EAAM,MAAI;AAAA,MACd,KAAK;AACD,QAAAtT,IAAO;AACP;AAAA,MACJ,KAAK;AACD,QAAAA,IAAO;AACP;AAAA,MACJ,KAAK,gBAAgB;AACjB,cAAMmG,IAASmN,EAAM,MAAM,CAAC;AAC5B,YAAInN,EAAO,SAAS;AAChB,gBAAM,IAAI,MAAM,6BAA6B;AACjD,QAAAnG,IAAOmG,EAAO,OAAO,CAAC,MAAM,MAAM,iBAAiB;AACnD;AAAA,MACH;AAAA,MACD;AACI,QAAAnG,IAAO;AAAA,IACd;AACL,QAAMtC,IAASiJ,GAAgB,EAAE,MAAA3G,GAAM,OAAAN,EAAK,GAAI;AAAA,IAC5C,aAAamF,KAAepC,MAAW;AAAA,IACvC,QAAQA,MAAW,QAAQA,IAAS,IAAI,IAAI,OAAOA,CAAM,IAAI;AAAA,IAC7D,QAAA+D;AAAA,IACA,SAAS,EAAE,YAAY,IAAM,WAAW,GAAI;AAAA,EACpD,CAAK;AACD,UAAQ9I,EAAO,CAAC,GAAC;AAAA,IACb,KAAK;AAAA,IACL,KAAK;AACD,MAAAyc,GAAoB7G,GAAO5V,CAAM;AACjC;AAAA,IACJ,KAAK;AACD,MAAA0c,GAAmB9G,GAAO5V,GAAQ,sBAAsB;AACxD;AAAA,IACJ,KAAK;AACD,MAAA0c,GAAmB9G,GAAO5V,GAAQ,sBAAsB;AACxD;AAAA,IACJ;AACI,MAAA0c,GAAmB9G,GAAO5V,GAAQ,QAAQ;AAAA,EACjD;AACL;AACA,SAASyc,GAAoB7G,GAAO5V,GAAQ;AACxC,QAAMoc,IAAKpc,EAAO,QAAQ;AAAA,CAAI,GACxBqc,IAAOrc,EAAO,UAAU,GAAGoc,CAAE,GAC7B1T,IAAO1I,EAAO,UAAUoc,IAAK,CAAC,IAAI;AAAA;AACxC,MAAIxG,EAAM,SAAS,gBAAgB;AAC/B,UAAMnN,IAASmN,EAAM,MAAM,CAAC;AAC5B,QAAInN,EAAO,SAAS;AAChB,YAAM,IAAI,MAAM,6BAA6B;AACjD,IAAAA,EAAO,SAAS4T,GAChBzG,EAAM,SAASlN;AAAA,EAClB,OACI;AACD,UAAM,EAAE,QAAA2G,EAAQ,IAAGuG,GACb7Q,IAAS,YAAY6Q,IAAQA,EAAM,SAAS,IAC5ChM,IAAQ;AAAA,MACV,EAAE,MAAM,uBAAuB,QAAAyF,GAAQ,QAAAtK,GAAQ,QAAQsX,EAAM;AAAA,IACzE;AACQ,IAAKC,GAAmB1S,GAAO,SAASgM,IAAQA,EAAM,MAAM,MAAS,KACjEhM,EAAM,KAAK,EAAE,MAAM,WAAW,QAAQ,IAAI,QAAA7E,GAAQ,QAAQ;AAAA,EAAM,CAAA;AACpE,eAAWlH,KAAO,OAAO,KAAK+X,CAAK;AAC/B,MAAI/X,MAAQ,UAAUA,MAAQ,YAC1B,OAAO+X,EAAM/X,CAAG;AACxB,WAAO,OAAO+X,GAAO,EAAE,MAAM,gBAAgB,QAAA7Q,GAAQ,OAAA6E,GAAO,QAAQlB,EAAI,CAAE;AAAA,EAC7E;AACL;AAEA,SAAS4T,GAAmB1S,GAAO7D,GAAK;AACpC,MAAIA;AACA,eAAWiQ,KAAMjQ;AACb,cAAQiQ,EAAG,MAAI;AAAA,QACX,KAAK;AAAA,QACL,KAAK;AACD,UAAApM,EAAM,KAAKoM,CAAE;AACb;AAAA,QACJ,KAAK;AACD,iBAAApM,EAAM,KAAKoM,CAAE,GACN;AAAA,MACd;AACT,SAAO;AACX;AACA,SAAS0G,GAAmB9G,GAAO5V,GAAQsC,GAAM;AAC7C,UAAQsT,EAAM,MAAI;AAAA,IACd,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AACD,MAAAA,EAAM,OAAOtT,GACbsT,EAAM,SAAS5V;AACf;AAAA,IACJ,KAAK,gBAAgB;AACjB,YAAM+F,IAAM6P,EAAM,MAAM,MAAM,CAAC;AAC/B,UAAI+G,IAAK3c,EAAO;AAChB,MAAI4V,EAAM,MAAM,CAAC,EAAE,SAAS,0BACxB+G,KAAM/G,EAAM,MAAM,CAAC,EAAE,OAAO;AAChC,iBAAWgH,KAAO7W;AACd,QAAA6W,EAAI,UAAUD;AAClB,aAAO/G,EAAM,OACb,OAAO,OAAOA,GAAO,EAAE,MAAAtT,GAAM,QAAAtC,GAAQ,KAAA+F,EAAG,CAAE;AAC1C;AAAA,IACH;AAAA,IACD,KAAK;AAAA,IACL,KAAK,aAAa;AAEd,YAAMyS,IAAK,EAAE,MAAM,WAAW,QADf5C,EAAM,SAAS5V,EAAO,QACC,QAAQ4V,EAAM,QAAQ,QAAQ;AAAA;AACpE,aAAOA,EAAM,OACb,OAAO,OAAOA,GAAO,EAAE,MAAAtT,GAAM,QAAAtC,GAAQ,KAAK,CAACwY,CAAE,EAAC,CAAE;AAChD;AAAA,IACH;AAAA,IACD,SAAS;AACL,YAAMzT,IAAS,YAAY6Q,IAAQA,EAAM,SAAS,IAC5C7P,IAAM,SAAS6P,KAAS,MAAM,QAAQA,EAAM,GAAG,IAC/CA,EAAM,IAAI,OAAO,CAAAI,MAAMA,EAAG,SAAS,WACjCA,EAAG,SAAS,aACZA,EAAG,SAAS,SAAS,IACvB;AACN,iBAAWnY,KAAO,OAAO,KAAK+X,CAAK;AAC/B,QAAI/X,MAAQ,UAAUA,MAAQ,YAC1B,OAAO+X,EAAM/X,CAAG;AACxB,aAAO,OAAO+X,GAAO,EAAE,MAAAtT,GAAM,QAAAyC,GAAQ,QAAA/E,GAAQ,KAAA+F,EAAG,CAAE;AAAA,IACrD;AAAA,EACJ;AACL;AC7MA,MAAM8D,KAAY,CAACgT,MAAQ,UAAUA,IAAMC,GAAeD,CAAG,IAAIE,GAAcF,CAAG;AAClF,SAASC,GAAelH,GAAO;AAC3B,UAAQA,EAAM,MAAI;AAAA,IACd,KAAK,gBAAgB;AACjB,UAAIrW,IAAM;AACV,iBAAWqd,KAAOhH,EAAM;AACpB,QAAArW,KAAOud,GAAeF,CAAG;AAC7B,aAAOrd,IAAMqW,EAAM;AAAA,IACtB;AAAA,IACD,KAAK;AAAA,IACL,KAAK,aAAa;AACd,UAAIrW,IAAM;AACV,iBAAW2D,KAAQ0S,EAAM;AACrB,QAAArW,KAAOwd,GAAc7Z,CAAI;AAC7B,aAAO3D;AAAA,IACV;AAAA,IACD,KAAK,mBAAmB;AACpB,UAAIA,IAAMqW,EAAM,MAAM;AACtB,iBAAW1S,KAAQ0S,EAAM;AACrB,QAAArW,KAAOwd,GAAc7Z,CAAI;AAC7B,iBAAW8S,KAAMJ,EAAM;AACnB,QAAArW,KAAOyW,EAAG;AACd,aAAOzW;AAAA,IACV;AAAA,IACD,KAAK,YAAY;AACb,UAAIA,IAAMwd,GAAcnH,CAAK;AAC7B,UAAIA,EAAM;AACN,mBAAWI,KAAMJ,EAAM;AACnB,UAAArW,KAAOyW,EAAG;AAClB,aAAOzW;AAAA,IACV;AAAA,IACD,SAAS;AACL,UAAIA,IAAMqW,EAAM;AAChB,UAAI,SAASA,KAASA,EAAM;AACxB,mBAAWI,KAAMJ,EAAM;AACnB,UAAArW,KAAOyW,EAAG;AAClB,aAAOzW;AAAA,IACV;AAAA,EACJ;AACL;AACA,SAASwd,GAAc,EAAE,OAAAtW,GAAO,KAAA5I,GAAK,KAAAkZ,GAAK,OAAA/U,EAAK,GAAI;AAC/C,MAAIzC,IAAM;AACV,aAAWyW,KAAMvP;AACb,IAAAlH,KAAOyW,EAAG;AAGd,MAFInY,MACA0B,KAAOud,GAAejf,CAAG,IACzBkZ;AACA,eAAWf,KAAMe;AACb,MAAAxX,KAAOyW,EAAG;AAClB,SAAIhU,MACAzC,KAAOud,GAAe9a,CAAK,IACxBzC;AACX;AC1DA,MAAMlC,KAAQ,OAAO,aAAa,GAC5BC,KAAO,OAAO,eAAe,GAC7BC,KAAS,OAAO,aAAa;AA6BnC,SAASC,EAAMqf,GAAKpf,GAAS;AACzB,EAAI,UAAUof,KAAOA,EAAI,SAAS,eAC9BA,IAAM,EAAE,OAAOA,EAAI,OAAO,OAAOA,EAAI,UACzCG,GAAO,OAAO,OAAO,CAAE,CAAA,GAAGH,GAAKpf,CAAO;AAC1C;AAKAD,EAAM,QAAQH;AAEdG,EAAM,OAAOF;AAEbE,EAAM,SAASD;AAEfC,EAAM,aAAa,CAACqf,GAAK/e,MAAS;AAC9B,MAAIoF,IAAO2Z;AACX,aAAW,CAACI,GAAOC,CAAK,KAAKpf,GAAM;AAC/B,UAAM8e,IAAM1Z,KAAA,gBAAAA,EAAO+Z;AACnB,QAAIL,KAAO,WAAWA;AAClB,MAAA1Z,IAAO0Z,EAAI,MAAMM,CAAK;AAAA;AAGtB;AAAA,EACP;AACD,SAAOha;AACX;AAMA1F,EAAM,mBAAmB,CAACqf,GAAK/e,MAAS;AACpC,QAAMe,IAASrB,EAAM,WAAWqf,GAAK/e,EAAK,MAAM,GAAG,EAAE,CAAC,GAChDmf,IAAQnf,EAAKA,EAAK,SAAS,CAAC,EAAE,CAAC,GAC/B6Z,IAAO9Y,KAAA,gBAAAA,EAASoe;AACtB,MAAItF,KAAQ,WAAWA;AACnB,WAAOA;AACX,QAAM,IAAI,MAAM,6BAA6B;AACjD;AACA,SAASqF,GAAOlf,GAAMoF,GAAMzF,GAAS;AACjC,MAAIM,IAAON,EAAQyF,GAAMpF,CAAI;AAC7B,MAAI,OAAOC,KAAS;AAChB,WAAOA;AACX,aAAWkf,KAAS,CAAC,OAAO,OAAO,GAAG;AAClC,UAAMrH,IAAQ1S,EAAK+Z,CAAK;AACxB,QAAIrH,KAAS,WAAWA,GAAO;AAC3B,eAAS1X,IAAI,GAAGA,IAAI0X,EAAM,MAAM,QAAQ,EAAE1X,GAAG;AACzC,cAAMC,IAAK6e,GAAO,OAAO,OAAOlf,EAAK,OAAO,CAAC,CAACmf,GAAO/e,CAAC,CAAC,CAAC,CAAC,GAAG0X,EAAM,MAAM1X,CAAC,GAAGT,CAAO;AACnF,YAAI,OAAOU,KAAO;AACd,UAAAD,IAAIC,IAAK;AAAA,aACR;AAAA,cAAIA,MAAOd;AACZ,mBAAOA;AACN,UAAIc,MAAOZ,OACZqY,EAAM,MAAM,OAAO1X,GAAG,CAAC,GACvBA,KAAK;AAAA;AAAA,MAEZ;AACD,MAAI,OAAOH,KAAS,cAAckf,MAAU,UACxClf,IAAOA,EAAKmF,GAAMpF,CAAI;AAAA,IAC7B;AAAA,EACJ;AACD,SAAO,OAAOC,KAAS,aAAaA,EAAKmF,GAAMpF,CAAI,IAAIC;AAC3D;ACzFA,MAAMof,KAAM,UAENC,KAAW,KAEXC,KAAW,KAEX7gB,KAAS,KAETU,KAAe,CAAC0Y,MAAU,CAAC,CAACA,KAAS,WAAWA,GAEhD5Y,KAAW,CAAC4Y,MAAU,CAAC,CAACA,MACzBA,EAAM,SAAS,YACZA,EAAM,SAAS,0BACfA,EAAM,SAAS,0BACfA,EAAM,SAAS;AAGvB,SAAS0H,GAAY1H,GAAO;AACxB,UAAQA,GAAK;AAAA,IACT,KAAKuH;AACD,aAAO;AAAA,IACX,KAAKC;AACD,aAAO;AAAA,IACX,KAAKC;AACD,aAAO;AAAA,IACX,KAAK7gB;AACD,aAAO;AAAA,IACX;AACI,aAAO,KAAK,UAAUoZ,CAAK;AAAA,EAClC;AACL;AAEA,SAAS2H,GAAUvd,GAAQ;AACvB,UAAQA,GAAM;AAAA,IACV,KAAKmd;AACD,aAAO;AAAA,IACX,KAAKC;AACD,aAAO;AAAA,IACX,KAAKC;AACD,aAAO;AAAA,IACX,KAAK7gB;AACD,aAAO;AAAA,IACX,KAAK;AACD,aAAO;AAAA,IACX,KAAK;AACD,aAAO;AAAA,IACX,KAAK;AAAA,IACL,KAAK;AAAA;AAAA,IACL,KAAK;AAAA;AACD,aAAO;AAAA,IACX,KAAK;AACD,aAAO;AAAA,IACX,KAAK;AACD,aAAO;AAAA,IACX,KAAK;AACD,aAAO;AAAA,IACX,KAAK;AACD,aAAO;AAAA,IACX,KAAK;AACD,aAAO;AAAA,IACX,KAAK;AACD,aAAO;AAAA,IACX,KAAK;AACD,aAAO;AAAA,IACX,KAAK;AACD,aAAO;AAAA,EACd;AACD,UAAQwD,EAAO,CAAC,GAAC;AAAA,IACb,KAAK;AAAA,IACL,KAAK;AACD,aAAO;AAAA,IACX,KAAK;AACD,aAAO;AAAA,IACX,KAAK;AACD,aAAO;AAAA,IACX,KAAK;AACD,aAAO;AAAA,IACX,KAAK;AACD,aAAO;AAAA,IACX,KAAK;AACD,aAAO;AAAA,IACX,KAAK;AACD,aAAO;AAAA,IACX,KAAK;AACD,aAAO;AAAA,IACX,KAAK;AAAA,IACL,KAAK;AACD,aAAO;AAAA,EACd;AACD,SAAO;AACX;;;;;;;;;;;;;;;;;AC1BA,SAASwd,EAAQte,GAAI;AACjB,UAAQA,GAAE;AAAA,IACN,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AACD,aAAO;AAAA,IACX;AACI,aAAO;AAAA,EACd;AACL;AACA,MAAMue,KAAY,IAAI,IAAI,wBAAwB,GAC5CC,KAAW,IAAI,IAAI,mFAAmF,GACtGC,KAAqB,IAAI,IAAI,OAAO,GACpCC,KAAqB,IAAI,IAAI;AAAA,IAAc,GAC3CC,KAAkB,CAAC3e,MAAO,CAACA,KAAM0e,GAAmB,IAAI1e,CAAE;AAgBhE,MAAM4e,GAAM;AAAA,EACR,cAAc;AAKV,SAAK,QAAQ,IAMb,KAAK,oBAAoB,IAMzB,KAAK,kBAAkB,IAEvB,KAAK,SAAS,IAKd,KAAK,UAAU,IAEf,KAAK,YAAY,GAKjB,KAAK,aAAa,GAElB,KAAK,cAAc,GAEnB,KAAK,aAAa,MAElB,KAAK,OAAO,MAEZ,KAAK,MAAM;AAAA,EACd;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOD,CAAC,IAAI9d,GAAQ+d,IAAa,IAAO;AAC7B,QAAI/d,GAAQ;AACR,UAAI,OAAOA,KAAW;AAClB,cAAM,UAAU,wBAAwB;AAC5C,WAAK,SAAS,KAAK,SAAS,KAAK,SAASA,IAASA,GACnD,KAAK,aAAa;AAAA,IACrB;AACD,SAAK,QAAQ,CAAC+d;AACd,QAAIzX,IAAO,KAAK,QAAQ;AACxB,WAAOA,MAASyX,KAAc,KAAK,SAAS,CAAC;AACzC,MAAAzX,IAAO,OAAO,KAAK,UAAUA,CAAI;AAAA,EACxC;AAAA,EACD,YAAY;AACR,QAAIpI,IAAI,KAAK,KACTgB,IAAK,KAAK,OAAOhB,CAAC;AACtB,WAAOgB,MAAO,OAAOA,MAAO;AACxB,MAAAA,IAAK,KAAK,OAAO,EAAEhB,CAAC;AACxB,WAAI,CAACgB,KAAMA,MAAO,OAAOA,MAAO;AAAA,IACrB,KACPA,MAAO,OACA,KAAK,OAAOhB,IAAI,CAAC,MAAM;AAAA,IAC3B;AAAA,EACV;AAAA,EACD,OAAO2Q,GAAG;AACN,WAAO,KAAK,OAAO,KAAK,MAAMA,CAAC;AAAA,EAClC;AAAA,EACD,eAAeQ,GAAQ;AACnB,QAAInQ,IAAK,KAAK,OAAOmQ,CAAM;AAC3B,QAAI,KAAK,aAAa,GAAG;AACrB,UAAItK,IAAS;AACb,aAAO7F,MAAO;AACV,QAAAA,IAAK,KAAK,OAAO,EAAE6F,IAASsK,CAAM;AACtC,UAAInQ,MAAO,MAAM;AACb,cAAMoH,IAAO,KAAK,OAAOvB,IAASsK,IAAS,CAAC;AAC5C,YAAI/I,MAAS;AAAA,KAAS,CAACA,KAAQ,CAAC,KAAK;AACjC,iBAAO+I,IAAStK,IAAS;AAAA,MAChC;AACD,aAAO7F,MAAO;AAAA,KAAQ6F,KAAU,KAAK,cAAe,CAAC7F,KAAM,CAAC,KAAK,QAC3DmQ,IAAStK,IACT;AAAA,IACT;AACD,QAAI7F,MAAO,OAAOA,MAAO,KAAK;AAC1B,YAAM8e,IAAK,KAAK,OAAO,OAAO3O,GAAQ,CAAC;AACvC,WAAK2O,MAAO,SAASA,MAAO,UAAUR,EAAQ,KAAK,OAAOnO,IAAS,CAAC,CAAC;AACjE,eAAO;AAAA,IACd;AACD,WAAOA;AAAA,EACV;AAAA,EACD,UAAU;AACN,QAAItJ,IAAM,KAAK;AAKf,YAJI,OAAOA,KAAQ,YAAaA,MAAQ,MAAMA,IAAM,KAAK,SACrDA,IAAM,KAAK,OAAO,QAAQ;AAAA,GAAM,KAAK,GAAG,GACxC,KAAK,aAAaA,IAElBA,MAAQ,KACD,KAAK,QAAQ,KAAK,OAAO,UAAU,KAAK,GAAG,IAAI,QACtD,KAAK,OAAOA,IAAM,CAAC,MAAM,SACzBA,KAAO,IACJ,KAAK,OAAO,UAAU,KAAK,KAAKA,CAAG;AAAA,EAC7C;AAAA,EACD,SAAS8I,GAAG;AACR,WAAO,KAAK,MAAMA,KAAK,KAAK,OAAO;AAAA,EACtC;AAAA,EACD,QAAQoP,GAAO;AACX,gBAAK,SAAS,KAAK,OAAO,UAAU,KAAK,GAAG,GAC5C,KAAK,MAAM,GACX,KAAK,aAAa,MAClB,KAAK,OAAOA,GACL;AAAA,EACV;AAAA,EACD,KAAKpP,GAAG;AACJ,WAAO,KAAK,OAAO,OAAO,KAAK,KAAKA,CAAC;AAAA,EACxC;AAAA,EACD,CAAC,UAAUvI,GAAM;AACb,YAAQA,GAAI;AAAA,MACR,KAAK;AACD,eAAO,OAAO,KAAK;MACvB,KAAK;AACD,eAAO,OAAO,KAAK;MACvB,KAAK;AACD,eAAO,OAAO,KAAK;MACvB,KAAK;AACD,eAAO,OAAO,KAAK;MACvB,KAAK;AACD,eAAO,OAAO,KAAK;MACvB,KAAK;AACD,eAAO,OAAO,KAAK;MACvB,KAAK;AACD,eAAO,OAAO,KAAK;MACvB,KAAK;AACD,eAAO,OAAO,KAAK;IAC1B;AAAA,EACJ;AAAA,EACD,CAAC,cAAc;AACX,QAAI9G,IAAO,KAAK;AAChB,QAAIA,MAAS;AACT,aAAO,KAAK,QAAQ,QAAQ;AAKhC,QAJIA,EAAK,CAAC,MAAM2d,OACZ,OAAO,KAAK,UAAU,CAAC,GACvB3d,IAAOA,EAAK,UAAU,CAAC,IAEvBA,EAAK,CAAC,MAAM,KAAK;AACjB,UAAI0e,IAAS1e,EAAK,QACdqL,IAAKrL,EAAK,QAAQ,GAAG;AACzB,aAAOqL,MAAO,MAAI;AACd,cAAM3L,IAAKM,EAAKqL,IAAK,CAAC;AACtB,YAAI3L,MAAO,OAAOA,MAAO,KAAM;AAC3B,UAAAgf,IAASrT,IAAK;AACd;AAAA,QACH;AAEG,UAAAA,IAAKrL,EAAK,QAAQ,KAAKqL,IAAK,CAAC;AAAA,MAEpC;AACD,iBAAa;AACT,cAAM3L,IAAKM,EAAK0e,IAAS,CAAC;AAC1B,YAAIhf,MAAO,OAAOA,MAAO;AACrB,UAAAgf,KAAU;AAAA;AAEV;AAAA,MACP;AACD,YAAMrP,KAAK,OAAO,KAAK,UAAUqP,CAAM,MAAM,OAAO,KAAK,WAAW,EAAI;AACxE,oBAAO,KAAK,UAAU1e,EAAK,SAASqP,CAAC,GACrC,KAAK,YAAW,GACT;AAAA,IACV;AACD,QAAI,KAAK,aAAa;AAClB,YAAMsP,IAAK,OAAO,KAAK,WAAW,EAAI;AACtC,oBAAO,KAAK,UAAU3e,EAAK,SAAS2e,CAAE,GACtC,OAAO,KAAK,eACL;AAAA,IACV;AACD,iBAAMf,IACC,OAAO,KAAK;EACtB;AAAA,EACD,CAAC,iBAAiB;AACd,UAAMle,IAAK,KAAK,OAAO,CAAC;AACxB,QAAI,CAACA,KAAM,CAAC,KAAK;AACb,aAAO,KAAK,QAAQ,YAAY;AACpC,QAAIA,MAAO,OAAOA,MAAO,KAAK;AAC1B,UAAI,CAAC,KAAK,SAAS,CAAC,KAAK,SAAS,CAAC;AAC/B,eAAO,KAAK,QAAQ,YAAY;AACpC,YAAMiR,IAAI,KAAK,KAAK,CAAC;AACrB,WAAKA,MAAM,SAASA,MAAM,UAAUqN,EAAQ,KAAK,OAAO,CAAC,CAAC;AACtD,sBAAO,KAAK,UAAU,CAAC,GACvB,KAAK,cAAc,GACnB,KAAK,aAAa,GACXrN,MAAM,QAAQ,QAAQ;AAAA,IAEpC;AACD,gBAAK,cAAc,OAAO,KAAK,WAAW,EAAK,GAC3C,KAAK,aAAa,KAAK,eAAe,CAACqN,EAAQ,KAAK,OAAO,CAAC,CAAC,MAC7D,KAAK,aAAa,KAAK,cACpB,OAAO,KAAK;EACtB;AAAA,EACD,CAAC,kBAAkB;AACf,UAAM,CAACY,GAAKC,CAAG,IAAI,KAAK,KAAK,CAAC;AAC9B,QAAI,CAACA,KAAO,CAAC,KAAK;AACd,aAAO,KAAK,QAAQ,aAAa;AACrC,SAAKD,MAAQ,OAAOA,MAAQ,OAAOA,MAAQ,QAAQZ,EAAQa,CAAG,GAAG;AAC7D,YAAM,KAAK,OAAO,KAAK,UAAU,CAAC,MAAM,OAAO,KAAK,WAAW,EAAI;AACnE,kBAAK,aAAa,KAAK,cAAc,GACrC,KAAK,eAAe,GACb,OAAO,KAAK;IACtB;AACD,WAAO;AAAA,EACV;AAAA,EACD,CAAC,gBAAgB;AACb,WAAO,KAAK,WAAW,EAAI;AAC3B,UAAM7e,IAAO,KAAK;AAClB,QAAIA,MAAS;AACT,aAAO,KAAK,QAAQ,KAAK;AAC7B,QAAIqP,IAAI,OAAO,KAAK;AACpB,YAAQrP,EAAKqP,CAAC,GAAC;AAAA,MACX,KAAK;AACD,eAAO,KAAK,UAAUrP,EAAK,SAASqP,CAAC;AAAA,MAEzC,KAAK;AACD,sBAAO,KAAK,eACL,OAAO,KAAK;MACvB,KAAK;AAAA,MACL,KAAK;AACD,sBAAO,KAAK,UAAU,CAAC,GACvB,KAAK,UAAU,IACf,KAAK,YAAY,GACV;AAAA,MACX,KAAK;AAAA,MACL,KAAK;AAED,sBAAO,KAAK,UAAU,CAAC,GAChB;AAAA,MACX,KAAK;AACD,sBAAO,KAAK,UAAUgP,EAAe,GAC9B;AAAA,MACX,KAAK;AAAA,MACL,KAAK;AACD,eAAO,OAAO,KAAK;MACvB,KAAK;AAAA,MACL,KAAK;AACD,eAAAhP,KAAK,OAAO,KAAK,0BACjBA,KAAK,OAAO,KAAK,WAAW,EAAI,GAChC,OAAO,KAAK,UAAUrP,EAAK,SAASqP,CAAC,GACrC,OAAO,KAAK,eACL,OAAO,KAAK;MACvB;AACI,eAAO,OAAO,KAAK;IAC1B;AAAA,EACJ;AAAA,EACD,CAAC,sBAAsB;AACnB,QAAI2J,GAAI2F,GACJpZ,IAAS;AACb;AACI,MAAAyT,IAAK,OAAO,KAAK,eACbA,IAAK,KACL2F,IAAK,OAAO,KAAK,WAAW,EAAK,GACjC,KAAK,cAAcpZ,IAASoZ,KAG5BA,IAAK,GAETA,KAAM,OAAO,KAAK,WAAW,EAAI;AAAA,WAC5B3F,IAAK2F,IAAK;AACnB,UAAM3e,IAAO,KAAK;AAClB,QAAIA,MAAS;AACT,aAAO,KAAK,QAAQ,MAAM;AAC9B,SAAKuF,MAAW,MAAMA,IAAS,KAAK,cAAcvF,EAAK,CAAC,MAAM,OACzDuF,MAAW,MACPvF,EAAK,WAAW,KAAK,KAAKA,EAAK,WAAW,KAAK,MAChDge,EAAQhe,EAAK,CAAC,CAAC,MAOf,EAHoBuF,MAAW,KAAK,aAAa,KACjD,KAAK,cAAc,MAClBvF,EAAK,CAAC,MAAM,OAAOA,EAAK,CAAC,MAAM;AAGhC,kBAAK,YAAY,GACjB,MAAM6d,IACC,OAAO,KAAK;AAG3B,QAAIxO,IAAI;AACR,WAAOrP,EAAKqP,CAAC,MAAM;AACf,MAAAA,KAAK,OAAO,KAAK,UAAU,CAAC,GAC5BA,KAAK,OAAO,KAAK,WAAW,EAAI,GAChC,KAAK,UAAU;AAGnB,YADAA,KAAK,OAAO,KAAK,kBACTrP,EAAKqP,CAAC,GAAC;AAAA,MACX,KAAK;AACD,eAAO;AAAA,MACX,KAAK;AACD,sBAAO,KAAK,UAAUrP,EAAK,SAASqP,CAAC,GAC9B;AAAA,MACX,KAAK;AAAA,MACL,KAAK;AACD,sBAAO,KAAK,UAAU,CAAC,GACvB,KAAK,UAAU,IACf,KAAK,aAAa,GACX;AAAA,MACX,KAAK;AAAA,MACL,KAAK;AACD,sBAAO,KAAK,UAAU,CAAC,GACvB,KAAK,UAAU,IACf,KAAK,aAAa,GACX,KAAK,YAAY,SAAS;AAAA,MACrC,KAAK;AACD,sBAAO,KAAK,UAAUgP,EAAe,GAC9B;AAAA,MACX,KAAK;AAAA,MACL,KAAK;AACD,oBAAK,UAAU,IACR,OAAO,KAAK;MACvB,KAAK,KAAK;AACN,cAAMvX,IAAO,KAAK,OAAO,CAAC;AAC1B,YAAI,KAAK,WAAWkX,EAAQlX,CAAI,KAAKA,MAAS;AAC1C,sBAAK,UAAU,IACf,OAAO,KAAK,UAAU,CAAC,GACvB,OAAO,KAAK,WAAW,EAAI,GACpB;AAAA,MAEd;AAAA,MAED;AACI,oBAAK,UAAU,IACR,OAAO,KAAK;IAC1B;AAAA,EACJ;AAAA,EACD,CAAC,oBAAoB;AACjB,UAAMgY,IAAQ,KAAK,OAAO,CAAC;AAC3B,QAAIvY,IAAM,KAAK,OAAO,QAAQuY,GAAO,KAAK,MAAM,CAAC;AACjD,QAAIA,MAAU;AACV,aAAOvY,MAAQ,MAAM,KAAK,OAAOA,IAAM,CAAC,MAAM;AAC1C,QAAAA,IAAM,KAAK,OAAO,QAAQ,KAAKA,IAAM,CAAC;AAAA;AAI1C,aAAOA,MAAQ,MAAI;AACf,YAAI8I,IAAI;AACR,eAAO,KAAK,OAAO9I,IAAM,IAAI8I,CAAC,MAAM;AAChC,UAAAA,KAAK;AACT,YAAIA,IAAI,MAAM;AACV;AACJ,QAAA9I,IAAM,KAAK,OAAO,QAAQ,KAAKA,IAAM,CAAC;AAAA,MACzC;AAGL,UAAMwY,IAAK,KAAK,OAAO,UAAU,GAAGxY,CAAG;AACvC,QAAIyS,IAAK+F,EAAG,QAAQ;AAAA,GAAM,KAAK,GAAG;AAClC,QAAI/F,MAAO,IAAI;AACX,aAAOA,MAAO,MAAI;AACd,cAAM3N,IAAK,KAAK,eAAe2N,IAAK,CAAC;AACrC,YAAI3N,MAAO;AACP;AACJ,QAAA2N,IAAK+F,EAAG,QAAQ;AAAA,GAAM1T,CAAE;AAAA,MAC3B;AACD,MAAI2N,MAAO,OAEPzS,IAAMyS,KAAM+F,EAAG/F,IAAK,CAAC,MAAM,OAAO,IAAI;AAAA,IAE7C;AACD,QAAIzS,MAAQ,IAAI;AACZ,UAAI,CAAC,KAAK;AACN,eAAO,KAAK,QAAQ,eAAe;AACvC,MAAAA,IAAM,KAAK,OAAO;AAAA,IACrB;AACD,kBAAO,KAAK,YAAYA,IAAM,GAAG,EAAK,GAC/B,KAAK,YAAY,SAAS;AAAA,EACpC;AAAA,EACD,CAAC,yBAAyB;AACtB,SAAK,oBAAoB,IACzB,KAAK,kBAAkB;AACvB,QAAI7H,IAAI,KAAK;AACb,eAAa;AACT,YAAMgB,IAAK,KAAK,OAAO,EAAEhB,CAAC;AAC1B,UAAIgB,MAAO;AACP,aAAK,kBAAkB;AAAA,eAClBA,IAAK,OAAOA,KAAM;AACvB,aAAK,oBAAoB,OAAOA,CAAE,IAAI;AAAA,eACjCA,MAAO;AACZ;AAAA,IACP;AACD,WAAO,OAAO,KAAK,UAAU,CAAAA,MAAMse,EAAQte,CAAE,KAAKA,MAAO,GAAG;AAAA,EAC/D;AAAA,EACD,CAAC,mBAAmB;AAChB,QAAIsZ,IAAK,KAAK,MAAM,GAChBzT,IAAS,GACT7F;AACJ,IAAA4Y,EAAM,UAAS5Z,IAAI,KAAK,KAAMgB,IAAK,KAAK,OAAOhB,CAAC,GAAI,EAAEA;AAClD,cAAQgB,GAAE;AAAA,QACN,KAAK;AACD,UAAA6F,KAAU;AACV;AAAA,QACJ,KAAK;AAAA;AACD,UAAAyT,IAAKta,GACL6G,IAAS;AACT;AAAA,QACJ,KAAK,MAAM;AACP,gBAAMuB,IAAO,KAAK,OAAOpI,IAAI,CAAC;AAC9B,cAAI,CAACoI,KAAQ,CAAC,KAAK;AACf,mBAAO,KAAK,QAAQ,cAAc;AACtC,cAAIA,MAAS;AAAA;AACT;AAAA,QACP;AAAA,QACD;AACI,gBAAMwR;AAAA,MACb;AAEL,QAAI,CAAC5Y,KAAM,CAAC,KAAK;AACb,aAAO,KAAK,QAAQ,cAAc;AACtC,QAAI6F,KAAU,KAAK,YAAY;AAC3B,MAAI,KAAK,sBAAsB,KAC3B,KAAK,aAAaA,IAElB,KAAK,aACD,KAAK,qBAAqB,KAAK,eAAe,IAAI,IAAI,KAAK;AAEnE,SAAG;AACC,cAAM8F,IAAK,KAAK,eAAe2N,IAAK,CAAC;AACrC,YAAI3N,MAAO;AACP;AACJ,QAAA2N,IAAK,KAAK,OAAO,QAAQ;AAAA,GAAM3N,CAAE;AAAA,MACjD,SAAqB2N,MAAO;AAChB,UAAIA,MAAO,IAAI;AACX,YAAI,CAAC,KAAK;AACN,iBAAO,KAAK,QAAQ,cAAc;AACtC,QAAAA,IAAK,KAAK,OAAO;AAAA,MACpB;AAAA,IACJ;AAGD,QAAI,IAAIA,IAAK;AAEb,SADAtZ,IAAK,KAAK,OAAO,CAAC,GACXA,MAAO;AACV,MAAAA,IAAK,KAAK,OAAO,EAAE,CAAC;AACxB,QAAIA,MAAO,KAAM;AACb,aAAOA,MAAO,OAAQA,MAAO,OAAOA,MAAO,QAAQA,MAAO;AAAA;AACtD,QAAAA,IAAK,KAAK,OAAO,EAAE,CAAC;AACxB,MAAAsZ,IAAK,IAAI;AAAA,IACZ,WACQ,CAAC,KAAK;AACX,SAAG;AACC,YAAIta,IAAIsa,IAAK,GACTtZ,IAAK,KAAK,OAAOhB,CAAC;AACtB,QAAIgB,MAAO,SACPA,IAAK,KAAK,OAAO,EAAEhB,CAAC;AACxB,cAAMsgB,IAAWtgB;AACjB,eAAOgB,MAAO;AACV,UAAAA,IAAK,KAAK,OAAO,EAAEhB,CAAC;AACxB,YAAIgB,MAAO;AAAA,KAAQhB,KAAK,KAAK,OAAOA,IAAI,IAAI6G,IAASyZ;AACjD,UAAAhG,IAAKta;AAAA;AAEL;AAAA,MACP,SAAQ;AAEb,iBAAM1B,IACN,OAAO,KAAK,YAAYgc,IAAK,GAAG,EAAI,GAC7B,OAAO,KAAK;EACtB;AAAA,EACD,CAAC,mBAAmB;AAChB,UAAM1P,IAAS,KAAK,YAAY;AAChC,QAAI/C,IAAM,KAAK,MAAM,GACjB7H,IAAI,KAAK,MAAM,GACfgB;AACJ,WAAQA,IAAK,KAAK,OAAO,EAAEhB,CAAC;AACxB,UAAIgB,MAAO,KAAK;AACZ,cAAMoH,IAAO,KAAK,OAAOpI,IAAI,CAAC;AAC9B,YAAIsf,EAAQlX,CAAI,KAAMwC,KAAU6U,GAAmB,IAAIrX,CAAI;AACvD;AACJ,QAAAP,IAAM7H;AAAA,MACT,WACQsf,EAAQte,CAAE,GAAG;AAClB,YAAIoH,IAAO,KAAK,OAAOpI,IAAI,CAAC;AAU5B,YATIgB,MAAO,SACHoH,MAAS;AAAA,KACTpI,KAAK,GACLgB,IAAK;AAAA,GACLoH,IAAO,KAAK,OAAOpI,IAAI,CAAC,KAGxB6H,IAAM7H,IAEVoI,MAAS,OAAQwC,KAAU6U,GAAmB,IAAIrX,CAAI;AACtD;AACJ,YAAIpH,MAAO;AAAA,GAAM;AACb,gBAAM2L,IAAK,KAAK,eAAe3M,IAAI,CAAC;AACpC,cAAI2M,MAAO;AACP;AACJ,UAAA3M,IAAI,KAAK,IAAIA,GAAG2M,IAAK,CAAC;AAAA,QACzB;AAAA,MACJ,OACI;AACD,YAAI/B,KAAU6U,GAAmB,IAAIze,CAAE;AACnC;AACJ,QAAA6G,IAAM7H;AAAA,MACT;AAEL,WAAI,CAACgB,KAAM,CAAC,KAAK,QACN,KAAK,QAAQ,cAAc,KACtC,MAAM1C,IACN,OAAO,KAAK,YAAYuJ,IAAM,GAAG,EAAI,GAC9B+C,IAAS,SAAS;AAAA,EAC5B;AAAA,EACD,CAAC,UAAU+F,GAAG;AACV,WAAIA,IAAI,KACJ,MAAM,KAAK,OAAO,OAAO,KAAK,KAAKA,CAAC,GACpC,KAAK,OAAOA,GACLA,KAEJ;AAAA,EACV;AAAA,EACD,CAAC,YAAY3Q,GAAGugB,GAAY;AACxB,UAAMtO,IAAI,KAAK,OAAO,MAAM,KAAK,KAAKjS,CAAC;AACvC,WAAIiS,KACA,MAAMA,GACN,KAAK,OAAOA,EAAE,QACPA,EAAE,WAEJsO,MACL,MAAM,KACH;AAAA,EACV;AAAA,EACD,CAAC,iBAAiB;AACd,YAAQ,KAAK,OAAO,CAAC,GAAC;AAAA,MAClB,KAAK;AACD,gBAAS,OAAO,KAAK,QAAS,MACzB,OAAO,KAAK,WAAW,EAAI,MAC3B,OAAO,KAAK,eAAc;AAAA,MACnC,KAAK;AACD,gBAAS,OAAO,KAAK,UAAUZ,EAAe,MACzC,OAAO,KAAK,WAAW,EAAI,MAC3B,OAAO,KAAK,eAAc;AAAA,MACnC,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK,KAAK;AACN,cAAM/U,IAAS,KAAK,YAAY,GAC1BuV,IAAM,KAAK,OAAO,CAAC;AACzB,YAAIb,EAAQa,CAAG,KAAMvV,KAAU6U,GAAmB,IAAIU,CAAG;AACrD,iBAAKvV,IAEI,KAAK,YACV,KAAK,UAAU,MAFf,KAAK,aAAa,KAAK,cAAc,IAGhC,OAAO,KAAK,UAAU,CAAC,MAC3B,OAAO,KAAK,WAAW,EAAI,MAC3B,OAAO,KAAK,eAAc;AAAA,MAEtC;AAAA,IACJ;AACD,WAAO;AAAA,EACV;AAAA,EACD,CAAC,UAAU;AACP,QAAI,KAAK,OAAO,CAAC,MAAM,KAAK;AACxB,UAAI5K,IAAI,KAAK,MAAM,GACfgB,IAAK,KAAK,OAAOhB,CAAC;AACtB,aAAO,CAACsf,EAAQte,CAAE,KAAKA,MAAO;AAC1B,QAAAA,IAAK,KAAK,OAAO,EAAEhB,CAAC;AACxB,aAAO,OAAO,KAAK,YAAYgB,MAAO,MAAMhB,IAAI,IAAIA,GAAG,EAAK;AAAA,IAC/D,OACI;AACD,UAAIA,IAAI,KAAK,MAAM,GACfgB,IAAK,KAAK,OAAOhB,CAAC;AACtB,aAAOgB;AACH,YAAIwe,GAAS,IAAIxe,CAAE;AACf,UAAAA,IAAK,KAAK,OAAO,EAAEhB,CAAC;AAAA,iBACfgB,MAAO,OACZue,GAAU,IAAI,KAAK,OAAOvf,IAAI,CAAC,CAAC,KAChCuf,GAAU,IAAI,KAAK,OAAOvf,IAAI,CAAC,CAAC;AAChC,UAAAgB,IAAK,KAAK,OAAQhB,KAAK,CAAC;AAAA;AAGxB;AAER,aAAO,OAAO,KAAK,YAAYA,GAAG,EAAK;AAAA,IAC1C;AAAA,EACJ;AAAA,EACD,CAAC,cAAc;AACX,UAAMgB,IAAK,KAAK,OAAO,KAAK,GAAG;AAC/B,WAAIA,MAAO;AAAA,IACA,OAAO,KAAK,UAAU,CAAC,IACzBA,MAAO,QAAQ,KAAK,OAAO,CAAC,MAAM;AAAA,IAChC,OAAO,KAAK,UAAU,CAAC,IAEvB;AAAA,EACd;AAAA,EACD,CAAC,WAAWwf,GAAW;AACnB,QAAIxgB,IAAI,KAAK,MAAM,GACfgB;AACJ;AACI,MAAAA,IAAK,KAAK,OAAO,EAAEhB,CAAC;AAAA,WACfgB,MAAO,OAAQwf,KAAaxf,MAAO;AAC5C,UAAM2P,IAAI3Q,IAAI,KAAK;AACnB,WAAI2Q,IAAI,MACJ,MAAM,KAAK,OAAO,OAAO,KAAK,KAAKA,CAAC,GACpC,KAAK,MAAM3Q,IAER2Q;AAAA,EACV;AAAA,EACD,CAAC,UAAU9F,GAAM;AACb,QAAI7K,IAAI,KAAK,KACTgB,IAAK,KAAK,OAAOhB,CAAC;AACtB,WAAO,CAAC6K,EAAK7J,CAAE;AACX,MAAAA,IAAK,KAAK,OAAO,EAAEhB,CAAC;AACxB,WAAO,OAAO,KAAK,YAAYA,GAAG,EAAK;AAAA,EAC1C;AACL;ACrsBA,MAAMygB,GAAY;AAAA,EACd,cAAc;AACV,SAAK,aAAa,IAKlB,KAAK,aAAa,CAACtP,MAAW,KAAK,WAAW,KAAKA,CAAM,GAMzD,KAAK,UAAU,CAACA,MAAW;AACvB,UAAIuP,IAAM,GACNC,IAAO,KAAK,WAAW;AAC3B,aAAOD,IAAMC,KAAM;AACf,cAAMC,IAAOF,IAAMC,KAAS;AAC5B,QAAI,KAAK,WAAWC,CAAG,IAAIzP,IACvBuP,IAAME,IAAM,IAEZD,IAAOC;AAAA,MACd;AACD,UAAI,KAAK,WAAWF,CAAG,MAAMvP;AACzB,eAAO,EAAE,MAAMuP,IAAM,GAAG,KAAK,EAAC;AAClC,UAAIA,MAAQ;AACR,eAAO,EAAE,MAAM,GAAG,KAAKvP,EAAM;AACjC,YAAM5I,IAAQ,KAAK,WAAWmY,IAAM,CAAC;AACrC,aAAO,EAAE,MAAMA,GAAK,KAAKvP,IAAS5I,IAAQ;IACtD;AAAA,EACK;AACL;ACjCA,SAASsY,EAAcC,GAAM1c,GAAM;AAC/B,WAASpE,IAAI,GAAGA,IAAI8gB,EAAK,QAAQ,EAAE9gB;AAC/B,QAAI8gB,EAAK9gB,CAAC,EAAE,SAASoE;AACjB,aAAO;AACf,SAAO;AACX;AACA,SAAS2c,GAAkBD,GAAM;AAC7B,WAAS9gB,IAAI,GAAGA,IAAI8gB,EAAK,QAAQ,EAAE9gB;AAC/B,YAAQ8gB,EAAK9gB,CAAC,EAAE,MAAI;AAAA,MAChB,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AACD;AAAA,MACJ;AACI,eAAOA;AAAA,IACd;AAEL,SAAO;AACX;AACA,SAASghB,GAAYtJ,GAAO;AACxB,UAAQA,KAAA,gBAAAA,EAAO,MAAI;AAAA,IACf,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AACD,aAAO;AAAA,IACX;AACI,aAAO;AAAA,EACd;AACL;AACA,SAASuJ,GAAatgB,GAAQ;AAC1B,UAAQA,EAAO,MAAI;AAAA,IACf,KAAK;AACD,aAAOA,EAAO;AAAA,IAClB,KAAK,aAAa;AACd,YAAM0F,IAAK1F,EAAO,MAAMA,EAAO,MAAM,SAAS,CAAC;AAC/C,aAAO0F,EAAG,OAAOA,EAAG;AAAA,IACvB;AAAA,IACD,KAAK;AACD,aAAO1F,EAAO,MAAMA,EAAO,MAAM,SAAS,CAAC,EAAE;AAAA,IAEjD;AACI,aAAO;EACd;AACL;AAEA,SAASugB,GAAsBnZ,GAAM;ApElDrC,MAAAzH;AoEmDI,MAAIyH,EAAK,WAAW;AAChB,WAAO;AACX,MAAI/H,IAAI+H,EAAK;AACb,EAAA6R,EAAM,QAAO,EAAE5Z,KAAK;AAChB,YAAQ+H,EAAK/H,CAAC,EAAE,MAAI;AAAA,MAChB,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AACD,cAAM4Z;AAAA,IACb;AAEL,WAAOtZ,IAAAyH,EAAK,EAAE/H,CAAC,MAAR,gBAAAM,EAAW,UAAS;AAAS;AAGpC,SAAOyH,EAAK,OAAO/H,GAAG+H,EAAK,MAAM;AACrC;AACA,SAASoZ,GAAgBnJ,GAAI;AACzB,MAAIA,EAAG,MAAM,SAAS;AAClB,eAAW3R,KAAM2R,EAAG;AAChB,MAAI3R,EAAG,OACH,CAACA,EAAG,SACJ,CAACwa,EAAcxa,EAAG,OAAO,kBAAkB,KAC3C,CAACwa,EAAcxa,EAAG,KAAK,eAAe,MAClCA,EAAG,QACHA,EAAG,QAAQA,EAAG,MAClB,OAAOA,EAAG,KACN2a,GAAY3a,EAAG,KAAK,IAChBA,EAAG,MAAM,MACT,MAAM,UAAU,KAAK,MAAMA,EAAG,MAAM,KAAKA,EAAG,GAAG,IAE/CA,EAAG,MAAM,MAAMA,EAAG,MAGtB,MAAM,UAAU,KAAK,MAAMA,EAAG,OAAOA,EAAG,GAAG,GAC/C,OAAOA,EAAG;AAI1B;AA4BA,MAAM+a,GAAO;AAAA;AAAA;AAAA;AAAA;AAAA,EAKT,YAAYC,GAAW;AAEnB,SAAK,YAAY,IAEjB,KAAK,WAAW,IAEhB,KAAK,SAAS,GAEd,KAAK,SAAS,GAEd,KAAK,YAAY,IAEjB,KAAK,QAAQ,IAEb,KAAK,SAAS,IAEd,KAAK,OAAO,IAEZ,KAAK,QAAQ,IAAIzB,MACjB,KAAK,YAAYyB;AAAA,EACpB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASD,CAAC,MAAMvf,GAAQ+d,IAAa,IAAO;AAC/B,IAAI,KAAK,aAAa,KAAK,WAAW,KAClC,KAAK,UAAU,CAAC;AACpB,eAAWyB,KAAU,KAAK,MAAM,IAAIxf,GAAQ+d,CAAU;AAClD,aAAO,KAAK,KAAKyB,CAAM;AAC3B,IAAKzB,MACD,OAAO,KAAK;EACnB;AAAA;AAAA;AAAA;AAAA,EAID,CAAC,KAAK/d,GAAQ;AAEV,QADA,KAAK,SAASA,GACV,KAAK,UAAU;AACf,WAAK,WAAW,IAChB,OAAO,KAAK,QACZ,KAAK,UAAUA,EAAO;AACtB;AAAA,IACH;AACD,UAAMsC,IAAOib,GAAUvd,CAAM;AAC7B,QAAKsC;AAKA,UAAIA,MAAS;AACd,aAAK,YAAY,IACjB,KAAK,WAAW,IAChB,KAAK,OAAO;AAAA,WAEX;AAGD,gBAFA,KAAK,OAAOA,GACZ,OAAO,KAAK,QACJA,GAAI;AAAA,UACR,KAAK;AACD,iBAAK,YAAY,IACjB,KAAK,SAAS,GACV,KAAK,aACL,KAAK,UAAU,KAAK,SAAStC,EAAO,MAAM;AAC9C;AAAA,UACJ,KAAK;AACD,YAAI,KAAK,aAAaA,EAAO,CAAC,MAAM,QAChC,KAAK,UAAUA,EAAO;AAC1B;AAAA,UACJ,KAAK;AAAA,UACL,KAAK;AAAA,UACL,KAAK;AACD,YAAI,KAAK,cACL,KAAK,UAAUA,EAAO;AAC1B;AAAA,UACJ,KAAK;AAAA,UACL,KAAK;AACD;AAAA,UACJ;AACI,iBAAK,YAAY;AAAA,QACxB;AACD,aAAK,UAAUA,EAAO;AAAA,MACzB;AAAA,SArCU;AACP,YAAMsU,IAAU,qBAAqBtU,CAAM;AAC3C,aAAO,KAAK,IAAI,EAAE,MAAM,SAAS,QAAQ,KAAK,QAAQ,SAAAsU,GAAS,QAAAtU,EAAQ,CAAA,GACvE,KAAK,UAAUA,EAAO;AAAA,IACzB;AAAA,EAkCJ;AAAA;AAAA,EAED,CAAC,MAAM;AACH,WAAO,KAAK,MAAM,SAAS;AACvB,aAAO,KAAK;EACnB;AAAA,EACD,IAAI,cAAc;AAOd,WANW;AAAA,MACP,MAAM,KAAK;AAAA,MACX,QAAQ,KAAK;AAAA,MACb,QAAQ,KAAK;AAAA,MACb,QAAQ,KAAK;AAAA,IACzB;AAAA,EAEK;AAAA,EACD,CAAC,OAAO;AACJ,UAAMyf,IAAM,KAAK,KAAK,CAAC;AACvB,QAAI,KAAK,SAAS,cAAc,CAACA,KAAOA,EAAI,SAAS,YAAY;AAC7D,aAAO,KAAK,MAAM,SAAS;AACvB,eAAO,KAAK;AAChB,WAAK,MAAM,KAAK;AAAA,QACZ,MAAM;AAAA,QACN,QAAQ,KAAK;AAAA,QACb,QAAQ,KAAK;AAAA,MAC7B,CAAa;AACD;AAAA,IACH;AACD,QAAI,CAACA;AACD,aAAO,OAAO,KAAK;AACvB,YAAQA,EAAI,MAAI;AAAA,MACZ,KAAK;AACD,eAAO,OAAO,KAAK,SAASA,CAAG;AAAA,MACnC,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AACD,eAAO,OAAO,KAAK,OAAOA,CAAG;AAAA,MACjC,KAAK;AACD,eAAO,OAAO,KAAK,YAAYA,CAAG;AAAA,MACtC,KAAK;AACD,eAAO,OAAO,KAAK,SAASA,CAAG;AAAA,MACnC,KAAK;AACD,eAAO,OAAO,KAAK,cAAcA,CAAG;AAAA,MACxC,KAAK;AACD,eAAO,OAAO,KAAK,eAAeA,CAAG;AAAA,MACzC,KAAK;AACD,eAAO,OAAO,KAAK,YAAYA,CAAG;AAAA,IACzC;AAED,WAAO,KAAK;EACf;AAAA,EACD,KAAK5Q,GAAG;AACJ,WAAO,KAAK,MAAM,KAAK,MAAM,SAASA,CAAC;AAAA,EAC1C;AAAA,EACD,CAAC,IAAI1O,GAAO;AACR,UAAMyV,IAAQzV,KAAS,KAAK,MAAM,IAAG;AAErC,QAAI,CAACyV;AAED,YAAM,EAAE,MAAM,SAAS,QAAQ,KAAK,QAAQ,QAAQ,IAAI,SADxC;aAGX,KAAK,MAAM,WAAW;AAC3B,YAAMA;AAAA,SAEL;AACD,YAAM6J,IAAM,KAAK,KAAK,CAAC;AAWvB,cAVI7J,EAAM,SAAS,iBAEfA,EAAM,SAAS,YAAY6J,IAAMA,EAAI,SAAS,IAEzC7J,EAAM,SAAS,qBAAqB6J,EAAI,SAAS,eAEtD7J,EAAM,SAAS,IAEfA,EAAM,SAAS,qBACfyJ,GAAgBzJ,CAAK,GACjB6J,EAAI,MAAI;AAAA,QACZ,KAAK;AACD,UAAAA,EAAI,QAAQ7J;AACZ;AAAA,QACJ,KAAK;AACD,UAAA6J,EAAI,MAAM,KAAK7J,CAAK;AACpB;AAAA,QACJ,KAAK,aAAa;AACd,gBAAMrR,IAAKkb,EAAI,MAAMA,EAAI,MAAM,SAAS,CAAC;AACzC,cAAIlb,EAAG,OAAO;AACV,YAAAkb,EAAI,MAAM,KAAK,EAAE,OAAO,CAAA,GAAI,KAAK7J,GAAO,KAAK,CAAE,EAAA,CAAE,GACjD,KAAK,YAAY;AACjB;AAAA,UACH,WACQrR,EAAG;AACR,YAAAA,EAAG,QAAQqR;AAAA,eAEV;AACD,mBAAO,OAAOrR,GAAI,EAAE,KAAKqR,GAAO,KAAK,CAAE,EAAA,CAAE,GACzC,KAAK,YAAY,CAACrR,EAAG;AACrB;AAAA,UACH;AACD;AAAA,QACH;AAAA,QACD,KAAK,aAAa;AACd,gBAAMA,IAAKkb,EAAI,MAAMA,EAAI,MAAM,SAAS,CAAC;AACzC,UAAIlb,EAAG,QACHkb,EAAI,MAAM,KAAK,EAAE,OAAO,CAAA,GAAI,OAAO7J,EAAK,CAAE,IAE1CrR,EAAG,QAAQqR;AACf;AAAA,QACH;AAAA,QACD,KAAK,mBAAmB;AACpB,gBAAMrR,IAAKkb,EAAI,MAAMA,EAAI,MAAM,SAAS,CAAC;AACzC,UAAI,CAAClb,KAAMA,EAAG,QACVkb,EAAI,MAAM,KAAK,EAAE,OAAO,CAAA,GAAI,KAAK7J,GAAO,KAAK,CAAE,EAAA,CAAE,IAC5CrR,EAAG,MACRA,EAAG,QAAQqR,IAEX,OAAO,OAAOrR,GAAI,EAAE,KAAKqR,GAAO,KAAK,CAAE,EAAA,CAAE;AAC7C;AAAA,QACH;AAAA,QAED;AACI,iBAAO,KAAK,OACZ,OAAO,KAAK,IAAIA,CAAK;AAAA,MAC5B;AACD,WAAK6J,EAAI,SAAS,cACdA,EAAI,SAAS,eACbA,EAAI,SAAS,iBACZ7J,EAAM,SAAS,eAAeA,EAAM,SAAS,cAAc;AAC5D,cAAME,IAAOF,EAAM,MAAMA,EAAM,MAAM,SAAS,CAAC;AAC/C,QAAIE,KACA,CAACA,EAAK,OACN,CAACA,EAAK,SACNA,EAAK,MAAM,SAAS,KACpBmJ,GAAkBnJ,EAAK,KAAK,MAAM,OACjCF,EAAM,WAAW,KACdE,EAAK,MAAM,MAAM,CAAAE,MAAMA,EAAG,SAAS,aAAaA,EAAG,SAASJ,EAAM,MAAM,OACxE6J,EAAI,SAAS,aACbA,EAAI,MAAM3J,EAAK,QAEf2J,EAAI,MAAM,KAAK,EAAE,OAAO3J,EAAK,MAAK,CAAE,GACxCF,EAAM,MAAM,OAAO,IAAI,CAAC;AAAA,MAE/B;AAAA,IACJ;AAAA,EACJ;AAAA,EACD,CAAC,SAAS;AACN,YAAQ,KAAK,MAAI;AAAA,MACb,KAAK;AACD,cAAM,EAAE,MAAM,aAAa,QAAQ,KAAK,QAAQ,QAAQ,KAAK;AAC7D;AAAA,MACJ,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AACD,cAAM,KAAK;AACX;AAAA,MACJ,KAAK;AAAA,MACL,KAAK,aAAa;AACd,cAAMvV,IAAM;AAAA,UACR,MAAM;AAAA,UACN,QAAQ,KAAK;AAAA,UACb,OAAO,CAAE;AAAA,QAC7B;AACgB,QAAI,KAAK,SAAS,eACdA,EAAI,MAAM,KAAK,KAAK,WAAW,GACnC,KAAK,MAAM,KAAKA,CAAG;AACnB;AAAA,MACH;AAAA,IACJ;AACD,UAAM;AAAA,MACF,MAAM;AAAA,MACN,QAAQ,KAAK;AAAA,MACb,SAAS,cAAc,KAAK,IAAI;AAAA,MAChC,QAAQ,KAAK;AAAA,IACzB;AAAA,EACK;AAAA,EACD,CAAC,SAASA,GAAK;AACX,QAAIA,EAAI;AACJ,aAAO,OAAO,KAAK,QAAQA,CAAG;AAClC,YAAQ,KAAK,MAAI;AAAA,MACb,KAAK,aAAa;AACd,QAAI4e,GAAkB5e,EAAI,KAAK,MAAM,MACjC,OAAO,KAAK,OACZ,OAAO,KAAK,UAGZA,EAAI,MAAM,KAAK,KAAK,WAAW;AACnC;AAAA,MACH;AAAA,MACD,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AACD,QAAAA,EAAI,MAAM,KAAK,KAAK,WAAW;AAC/B;AAAA,IACP;AACD,UAAMqf,IAAK,KAAK,gBAAgBrf,CAAG;AACnC,IAAIqf,IACA,KAAK,MAAM,KAAKA,CAAE,IAElB,MAAM;AAAA,MACF,MAAM;AAAA,MACN,QAAQ,KAAK;AAAA,MACb,SAAS,cAAc,KAAK,IAAI;AAAA,MAChC,QAAQ,KAAK;AAAA,IAC7B;AAAA,EAEK;AAAA,EACD,CAAC,OAAO7G,GAAQ;AACZ,QAAI,KAAK,SAAS,iBAAiB;AAC/B,YAAM5S,IAAOkZ,GAAa,KAAK,KAAK,CAAC,CAAC,GAChC1Y,IAAQ2Y,GAAsBnZ,CAAI;AACxC,UAAI8Q;AACJ,MAAI8B,EAAO,OACP9B,IAAM8B,EAAO,KACb9B,EAAI,KAAK,KAAK,WAAW,GACzB,OAAO8B,EAAO,OAGd9B,IAAM,CAAC,KAAK,WAAW;AAC3B,YAAMhT,IAAM;AAAA,QACR,MAAM;AAAA,QACN,QAAQ8U,EAAO;AAAA,QACf,QAAQA,EAAO;AAAA,QACf,OAAO,CAAC,EAAE,OAAApS,GAAO,KAAKoS,GAAQ,KAAA9B,EAAG,CAAE;AAAA,MACnD;AACY,WAAK,YAAY,IACjB,KAAK,MAAM,KAAK,MAAM,SAAS,CAAC,IAAIhT;AAAA,IACvC;AAEG,aAAO,KAAK,QAAQ8U,CAAM;AAAA,EACjC;AAAA,EACD,CAAC,YAAYA,GAAQ;AACjB,YAAQ,KAAK,MAAI;AAAA,MACb,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AACD,QAAAA,EAAO,MAAM,KAAK,KAAK,WAAW;AAClC;AAAA,MACJ,KAAK;AAKD,YAJAA,EAAO,SAAS,KAAK,QAErB,KAAK,YAAY,IACjB,KAAK,SAAS,GACV,KAAK,WAAW;AAChB,cAAIL,IAAK,KAAK,OAAO,QAAQ;AAAA,CAAI,IAAI;AACrC,iBAAOA,MAAO;AACV,iBAAK,UAAU,KAAK,SAASA,CAAE,GAC/BA,IAAK,KAAK,OAAO,QAAQ;AAAA,GAAMA,CAAE,IAAI;AAAA,QAE5C;AACD,eAAO,KAAK;AACZ;AAAA,MAEJ;AACI,eAAO,KAAK,OACZ,OAAO,KAAK;IACnB;AAAA,EACJ;AAAA,EACD,CAAC,SAASzU,GAAK;ApEtdnB,QAAAvF;AoEudQ,UAAM+F,IAAKR,EAAI,MAAMA,EAAI,MAAM,SAAS,CAAC;AAEzC,YAAQ,KAAK,MAAI;AAAA,MACb,KAAK;AAED,YADA,KAAK,YAAY,IACbQ,EAAG,OAAO;AACV,gBAAMwB,IAAM,SAASxB,EAAG,QAAQA,EAAG,MAAM,MAAM,QACzCuR,IAAO,MAAM,QAAQ/P,CAAG,IAAIA,EAAIA,EAAI,SAAS,CAAC,IAAI;AACxD,WAAI+P,KAAA,gBAAAA,EAAM,UAAS,YACf/P,KAAA,QAAAA,EAAK,KAAK,KAAK,eAEfhC,EAAI,MAAM,KAAK,EAAE,OAAO,CAAC,KAAK,WAAW,EAAC,CAAE;AAAA,QACnD,MACI,CAAIQ,EAAG,MACRA,EAAG,IAAI,KAAK,KAAK,WAAW,IAG5BA,EAAG,MAAM,KAAK,KAAK,WAAW;AAElC;AAAA,MACJ,KAAK;AAAA,MACL,KAAK;AACD,YAAIA,EAAG;AACH,UAAAR,EAAI,MAAM,KAAK,EAAE,OAAO,CAAC,KAAK,WAAW,EAAC,CAAE;AAAA,iBAEvCQ,EAAG;AACR,UAAAA,EAAG,IAAI,KAAK,KAAK,WAAW;AAAA,aAE3B;AACD,cAAI,KAAK,kBAAkBA,EAAG,OAAOR,EAAI,MAAM,GAAG;AAC9C,kBAAMkC,IAAOlC,EAAI,MAAMA,EAAI,MAAM,SAAS,CAAC,GACrCgC,KAAMvH,IAAAyH,KAAA,gBAAAA,EAAM,UAAN,gBAAAzH,EAAa;AACzB,gBAAI,MAAM,QAAQuH,CAAG,GAAG;AACpB,oBAAM,UAAU,KAAK,MAAMA,GAAKxB,EAAG,KAAK,GACxCwB,EAAI,KAAK,KAAK,WAAW,GACzBhC,EAAI,MAAM;AACV;AAAA,YACH;AAAA,UACJ;AACD,UAAAQ,EAAG,MAAM,KAAK,KAAK,WAAW;AAAA,QACjC;AACD;AAAA,IACP;AACD,QAAI,KAAK,UAAUR,EAAI,QAAQ;AAC3B,YAAM4b,IAAc,CAAC,KAAK,aAAa,KAAK,WAAW5b,EAAI,QACrD6b,IAAaD,MACdpb,EAAG,OAAOA,EAAG,gBACd,KAAK,SAAS;AAElB,UAAIkC,IAAQ,CAAA;AACZ,UAAImZ,KAAcrb,EAAG,OAAO,CAACA,EAAG,OAAO;AACnC,cAAMiU,IAAK,CAAA;AACX,iBAASta,IAAI,GAAGA,IAAIqG,EAAG,IAAI,QAAQ,EAAErG,GAAG;AACpC,gBAAM8X,IAAKzR,EAAG,IAAIrG,CAAC;AACnB,kBAAQ8X,EAAG,MAAI;AAAA,YACX,KAAK;AACD,cAAAwC,EAAG,KAAKta,CAAC;AACT;AAAA,YACJ,KAAK;AACD;AAAA,YACJ,KAAK;AACD,cAAI8X,EAAG,SAASjS,EAAI,WAChByU,EAAG,SAAS;AAChB;AAAA,YACJ;AACI,cAAAA,EAAG,SAAS;AAAA,UACnB;AAAA,QACJ;AACD,QAAIA,EAAG,UAAU,MACb/R,IAAQlC,EAAG,IAAI,OAAOiU,EAAG,CAAC,CAAC;AAAA,MAClC;AACD,cAAQ,KAAK,MAAI;AAAA,QACb,KAAK;AAAA,QACL,KAAK;AACD,UAAIoH,KAAcrb,EAAG,SACjBkC,EAAM,KAAK,KAAK,WAAW,GAC3B1C,EAAI,MAAM,KAAK,EAAE,OAAA0C,EAAO,CAAA,GACxB,KAAK,YAAY,MAEZlC,EAAG,MACRA,EAAG,IAAI,KAAK,KAAK,WAAW,IAG5BA,EAAG,MAAM,KAAK,KAAK,WAAW;AAElC;AAAA,QACJ,KAAK;AACD,UAAI,CAACA,EAAG,OAAO,CAACA,EAAG,eACfA,EAAG,MAAM,KAAK,KAAK,WAAW,GAC9BA,EAAG,cAAc,MAEZqb,KAAcrb,EAAG,SACtBkC,EAAM,KAAK,KAAK,WAAW,GAC3B1C,EAAI,MAAM,KAAK,EAAE,OAAA0C,GAAO,aAAa,GAAI,CAAE,KAG3C,KAAK,MAAM,KAAK;AAAA,YACZ,MAAM;AAAA,YACN,QAAQ,KAAK;AAAA,YACb,QAAQ,KAAK;AAAA,YACb,OAAO,CAAC,EAAE,OAAO,CAAC,KAAK,WAAW,GAAG,aAAa,IAAM;AAAA,UACpF,CAAyB,GAEL,KAAK,YAAY;AACjB;AAAA,QACJ,KAAK;AACD,cAAIlC,EAAG;AACH,gBAAKA,EAAG;AAcH,kBAAIA,EAAG;AACR,gBAAAR,EAAI,MAAM,KAAK,EAAE,OAAO,CAAA,GAAI,KAAK,MAAM,KAAK,CAAC,KAAK,WAAW,EAAG,CAAA;AAAA,uBAE3Dgb,EAAcxa,EAAG,KAAK,eAAe;AAC1C,qBAAK,MAAM,KAAK;AAAA,kBACZ,MAAM;AAAA,kBACN,QAAQ,KAAK;AAAA,kBACb,QAAQ,KAAK;AAAA,kBACb,OAAO,CAAC,EAAE,OAAAkC,GAAO,KAAK,MAAM,KAAK,CAAC,KAAK,WAAW,GAAG;AAAA,gBACrF,CAA6B;AAAA,uBAEIyY,GAAY3a,EAAG,GAAG,KACvB,CAACwa,EAAcxa,EAAG,KAAK,SAAS,GAAG;AACnC,sBAAMkC,IAAQ2Y,GAAsB7a,EAAG,KAAK,GACtC1G,IAAM0G,EAAG,KACTwS,IAAMxS,EAAG;AACf,gBAAAwS,EAAI,KAAK,KAAK,WAAW,GAEzB,OAAOxS,EAAG,KAAK,OAAOA,EAAG,KACzB,KAAK,MAAM,KAAK;AAAA,kBACZ,MAAM;AAAA,kBACN,QAAQ,KAAK;AAAA,kBACb,QAAQ,KAAK;AAAA,kBACb,OAAO,CAAC,EAAE,OAAAkC,GAAO,KAAA5I,GAAK,KAAAkZ,EAAG,CAAE;AAAA,gBAC3D,CAA6B;AAAA,cACJ,MACI,CAAItQ,EAAM,SAAS,IAEpBlC,EAAG,MAAMA,EAAG,IAAI,OAAOkC,GAAO,KAAK,WAAW,IAG9ClC,EAAG,IAAI,KAAK,KAAK,WAAW;AAAA,qBA5CxBwa,EAAcxa,EAAG,OAAO,SAAS;AACjC,qBAAO,OAAOA,GAAI,EAAE,KAAK,MAAM,KAAK,CAAC,KAAK,WAAW,EAAC,CAAE;AAAA,iBAEvD;AACD,oBAAMkC,IAAQ2Y,GAAsB7a,EAAG,KAAK;AAC5C,mBAAK,MAAM,KAAK;AAAA,gBACZ,MAAM;AAAA,gBACN,QAAQ,KAAK;AAAA,gBACb,QAAQ,KAAK;AAAA,gBACb,OAAO,CAAC,EAAE,OAAAkC,GAAO,KAAK,MAAM,KAAK,CAAC,KAAK,WAAW,GAAG;AAAA,cACzF,CAAiC;AAAA,YACJ;AAAA;AAqCL,YAAKlC,EAAG,MAGCA,EAAG,SAASqb,IACjB7b,EAAI,MAAM,KAAK,EAAE,OAAA0C,GAAO,KAAK,MAAM,KAAK,CAAC,KAAK,WAAW,EAAG,CAAA,IAEvDsY,EAAcxa,EAAG,KAAK,eAAe,IAC1C,KAAK,MAAM,KAAK;AAAA,cACZ,MAAM;AAAA,cACN,QAAQ,KAAK;AAAA,cACb,QAAQ,KAAK;AAAA,cACb,OAAO,CAAC,EAAE,OAAO,CAAA,GAAI,KAAK,MAAM,KAAK,CAAC,KAAK,WAAW,GAAG;AAAA,YACzF,CAA6B,IAGDA,EAAG,IAAI,KAAK,KAAK,WAAW,IAd5B,OAAO,OAAOA,GAAI,EAAE,KAAK,MAAM,KAAK,CAAC,KAAK,WAAW,EAAC,CAAE;AAiBhE,eAAK,YAAY;AACjB;AAAA,QACJ,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK,wBAAwB;AACzB,gBAAMsb,IAAK,KAAK,WAAW,KAAK,IAAI;AACpC,UAAID,KAAcrb,EAAG,SACjBR,EAAI,MAAM,KAAK,EAAE,OAAA0C,GAAO,KAAKoZ,GAAI,KAAK,CAAE,EAAA,CAAE,GAC1C,KAAK,YAAY,MAEZtb,EAAG,MACR,KAAK,MAAM,KAAKsb,CAAE,KAGlB,OAAO,OAAOtb,GAAI,EAAE,KAAKsb,GAAI,KAAK,CAAE,EAAA,CAAE,GACtC,KAAK,YAAY;AAErB;AAAA,QACH;AAAA,QACD,SAAS;AACL,gBAAMH,IAAK,KAAK,gBAAgB3b,CAAG;AACnC,cAAI2b,GAAI;AACJ,YAAIC,KAAeD,EAAG,SAAS,eAC3B3b,EAAI,MAAM,KAAK,EAAE,OAAA0C,EAAO,CAAA,GAE5B,KAAK,MAAM,KAAKiZ,CAAE;AAClB;AAAA,UACH;AAAA,QACJ;AAAA,MACJ;AAAA,IACJ;AACD,WAAO,KAAK,OACZ,OAAO,KAAK;EACf;AAAA,EACD,CAAC,cAActR,GAAK;ApExqBxB,QAAA5P;AoEyqBQ,UAAM+F,IAAK6J,EAAI,MAAMA,EAAI,MAAM,SAAS,CAAC;AACzC,YAAQ,KAAK,MAAI;AAAA,MACb,KAAK;AACD,YAAI7J,EAAG,OAAO;AACV,gBAAMwB,IAAM,SAASxB,EAAG,QAAQA,EAAG,MAAM,MAAM,QACzCuR,IAAO,MAAM,QAAQ/P,CAAG,IAAIA,EAAIA,EAAI,SAAS,CAAC,IAAI;AACxD,WAAI+P,KAAA,gBAAAA,EAAM,UAAS,YACf/P,KAAA,QAAAA,EAAK,KAAK,KAAK,eAEfqI,EAAI,MAAM,KAAK,EAAE,OAAO,CAAC,KAAK,WAAW,EAAC,CAAE;AAAA,QACnD;AAEG,UAAA7J,EAAG,MAAM,KAAK,KAAK,WAAW;AAClC;AAAA,MACJ,KAAK;AAAA,MACL,KAAK;AACD,YAAIA,EAAG;AACH,UAAA6J,EAAI,MAAM,KAAK,EAAE,OAAO,CAAC,KAAK,WAAW,EAAC,CAAE;AAAA,aAC3C;AACD,cAAI,KAAK,kBAAkB7J,EAAG,OAAO6J,EAAI,MAAM,GAAG;AAC9C,kBAAMnI,IAAOmI,EAAI,MAAMA,EAAI,MAAM,SAAS,CAAC,GACrCrI,KAAMvH,IAAAyH,KAAA,gBAAAA,EAAM,UAAN,gBAAAzH,EAAa;AACzB,gBAAI,MAAM,QAAQuH,CAAG,GAAG;AACpB,oBAAM,UAAU,KAAK,MAAMA,GAAKxB,EAAG,KAAK,GACxCwB,EAAI,KAAK,KAAK,WAAW,GACzBqI,EAAI,MAAM;AACV;AAAA,YACH;AAAA,UACJ;AACD,UAAA7J,EAAG,MAAM,KAAK,KAAK,WAAW;AAAA,QACjC;AACD;AAAA,MACJ,KAAK;AAAA,MACL,KAAK;AACD,YAAIA,EAAG,SAAS,KAAK,UAAU6J,EAAI;AAC/B;AACJ,QAAA7J,EAAG,MAAM,KAAK,KAAK,WAAW;AAC9B;AAAA,MACJ,KAAK;AACD,YAAI,KAAK,WAAW6J,EAAI;AACpB;AACJ,QAAI7J,EAAG,SAASwa,EAAcxa,EAAG,OAAO,cAAc,IAClD6J,EAAI,MAAM,KAAK,EAAE,OAAO,CAAC,KAAK,WAAW,EAAC,CAAE,IAE5C7J,EAAG,MAAM,KAAK,KAAK,WAAW;AAClC;AAAA,IACP;AACD,QAAI,KAAK,SAAS6J,EAAI,QAAQ;AAC1B,YAAMsR,IAAK,KAAK,gBAAgBtR,CAAG;AACnC,UAAIsR,GAAI;AACJ,aAAK,MAAM,KAAKA,CAAE;AAClB;AAAA,MACH;AAAA,IACJ;AACD,WAAO,KAAK,OACZ,OAAO,KAAK;EACf;AAAA,EACD,CAAC,eAAexJ,GAAI;AAChB,UAAM3R,IAAK2R,EAAG,MAAMA,EAAG,MAAM,SAAS,CAAC;AACvC,QAAI,KAAK,SAAS,kBAAkB;AAChC,UAAIuJ;AACJ;AACI,eAAO,KAAK,OACZA,IAAM,KAAK,KAAK,CAAC;AAAA,aACZA,KAAOA,EAAI,SAAS;AAAA,IAChC,WACQvJ,EAAG,IAAI,WAAW,GAAG;AAC1B,cAAQ,KAAK,MAAI;AAAA,QACb,KAAK;AAAA,QACL,KAAK;AACD,UAAI,CAAC3R,KAAMA,EAAG,MACV2R,EAAG,MAAM,KAAK,EAAE,OAAO,CAAC,KAAK,WAAW,EAAC,CAAE,IAE3C3R,EAAG,MAAM,KAAK,KAAK,WAAW;AAClC;AAAA,QACJ,KAAK;AACD,UAAI,CAACA,KAAMA,EAAG,QACV2R,EAAG,MAAM,KAAK,EAAE,OAAO,CAAA,GAAI,KAAK,MAAM,KAAK,CAAC,KAAK,WAAW,EAAG,CAAA,IAC1D3R,EAAG,MACRA,EAAG,IAAI,KAAK,KAAK,WAAW,IAE5B,OAAO,OAAOA,GAAI,EAAE,KAAK,MAAM,KAAK,CAAC,KAAK,WAAW,EAAC,CAAE;AAC5D;AAAA,QACJ,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AACD,UAAI,CAACA,KAAMA,EAAG,QACV2R,EAAG,MAAM,KAAK,EAAE,OAAO,CAAC,KAAK,WAAW,EAAC,CAAE,IACtC3R,EAAG,MACRA,EAAG,IAAI,KAAK,KAAK,WAAW,IAE5BA,EAAG,MAAM,KAAK,KAAK,WAAW;AAClC;AAAA,QACJ,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK,wBAAwB;AACzB,gBAAMsb,IAAK,KAAK,WAAW,KAAK,IAAI;AACpC,UAAI,CAACtb,KAAMA,EAAG,QACV2R,EAAG,MAAM,KAAK,EAAE,OAAO,CAAA,GAAI,KAAK2J,GAAI,KAAK,CAAE,EAAA,CAAE,IACxCtb,EAAG,MACR,KAAK,MAAM,KAAKsb,CAAE,IAElB,OAAO,OAAOtb,GAAI,EAAE,KAAKsb,GAAI,KAAK,CAAE,EAAA,CAAE;AAC1C;AAAA,QACH;AAAA,QACD,KAAK;AAAA,QACL,KAAK;AACD,UAAA3J,EAAG,IAAI,KAAK,KAAK,WAAW;AAC5B;AAAA,MACP;AACD,YAAMwJ,IAAK,KAAK,gBAAgBxJ,CAAE;AAElC,MAAIwJ,IACA,KAAK,MAAM,KAAKA,CAAE,KAElB,OAAO,KAAK,OACZ,OAAO,KAAK;IAEnB,OACI;AACD,YAAM7gB,IAAS,KAAK,KAAK,CAAC;AAC1B,UAAIA,EAAO,SAAS,gBACd,KAAK,SAAS,mBAAmBA,EAAO,WAAWqX,EAAG,UACnD,KAAK,SAAS,aACX,CAACrX,EAAO,MAAMA,EAAO,MAAM,SAAS,CAAC,EAAE;AAC/C,eAAO,KAAK,OACZ,OAAO,KAAK;eAEP,KAAK,SAAS,mBACnBA,EAAO,SAAS,mBAAmB;AACnC,cAAMoH,IAAOkZ,GAAatgB,CAAM,GAC1B4H,IAAQ2Y,GAAsBnZ,CAAI;AACxC,QAAAoZ,GAAgBnJ,CAAE;AAClB,cAAMa,IAAMb,EAAG,IAAI,OAAO,GAAGA,EAAG,IAAI,MAAM;AAC1C,QAAAa,EAAI,KAAK,KAAK,WAAW;AACzB,cAAMhT,IAAM;AAAA,UACR,MAAM;AAAA,UACN,QAAQmS,EAAG;AAAA,UACX,QAAQA,EAAG;AAAA,UACX,OAAO,CAAC,EAAE,OAAAzP,GAAO,KAAKyP,GAAI,KAAAa,EAAG,CAAE;AAAA,QACnD;AACgB,aAAK,YAAY,IACjB,KAAK,MAAM,KAAK,MAAM,SAAS,CAAC,IAAIhT;AAAA,MACvC;AAEG,eAAO,KAAK,QAAQmS,CAAE;AAAA,IAE7B;AAAA,EACJ;AAAA,EACD,WAAW5T,GAAM;AACb,QAAI,KAAK,WAAW;AAChB,UAAIkW,IAAK,KAAK,OAAO,QAAQ;AAAA,CAAI,IAAI;AACrC,aAAOA,MAAO;AACV,aAAK,UAAU,KAAK,SAASA,CAAE,GAC/BA,IAAK,KAAK,OAAO,QAAQ;AAAA,GAAMA,CAAE,IAAI;AAAA,IAE5C;AACD,WAAO;AAAA,MACH,MAAAlW;AAAA,MACA,QAAQ,KAAK;AAAA,MACb,QAAQ,KAAK;AAAA,MACb,QAAQ,KAAK;AAAA,IACzB;AAAA,EACK;AAAA,EACD,gBAAgBzD,GAAQ;AACpB,YAAQ,KAAK,MAAI;AAAA,MACb,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AACD,eAAO,KAAK,WAAW,KAAK,IAAI;AAAA,MACpC,KAAK;AACD,eAAO;AAAA,UACH,MAAM;AAAA,UACN,QAAQ,KAAK;AAAA,UACb,QAAQ,KAAK;AAAA,UACb,OAAO,CAAC,KAAK,WAAW;AAAA,UACxB,QAAQ;AAAA,QAC5B;AAAA,MACY,KAAK;AAAA,MACL,KAAK;AACD,eAAO;AAAA,UACH,MAAM;AAAA,UACN,QAAQ,KAAK;AAAA,UACb,QAAQ,KAAK;AAAA,UACb,OAAO,KAAK;AAAA,UACZ,OAAO,CAAE;AAAA,UACT,KAAK,CAAE;AAAA,QAC3B;AAAA,MACY,KAAK;AACD,eAAO;AAAA,UACH,MAAM;AAAA,UACN,QAAQ,KAAK;AAAA,UACb,QAAQ,KAAK;AAAA,UACb,OAAO,CAAC,EAAE,OAAO,CAAC,KAAK,WAAW,EAAC,CAAE;AAAA,QACzD;AAAA,MACY,KAAK,oBAAoB;AACrB,aAAK,YAAY;AACjB,cAAMoH,IAAOkZ,GAAatgB,CAAM,GAC1B4H,IAAQ2Y,GAAsBnZ,CAAI;AACxC,eAAAQ,EAAM,KAAK,KAAK,WAAW,GACpB;AAAA,UACH,MAAM;AAAA,UACN,QAAQ,KAAK;AAAA,UACb,QAAQ,KAAK;AAAA,UACb,OAAO,CAAC,EAAE,OAAAA,GAAO,aAAa,GAAI,CAAE;AAAA,QACxD;AAAA,MACa;AAAA,MACD,KAAK,iBAAiB;AAClB,aAAK,YAAY;AACjB,cAAMR,IAAOkZ,GAAatgB,CAAM,GAC1B4H,IAAQ2Y,GAAsBnZ,CAAI;AACxC,eAAO;AAAA,UACH,MAAM;AAAA,UACN,QAAQ,KAAK;AAAA,UACb,QAAQ,KAAK;AAAA,UACb,OAAO,CAAC,EAAE,OAAAQ,GAAO,KAAK,MAAM,KAAK,CAAC,KAAK,WAAW,GAAG;AAAA,QACzE;AAAA,MACa;AAAA,IACJ;AACD,WAAO;AAAA,EACV;AAAA,EACD,kBAAkBA,GAAO1B,GAAQ;AAG7B,WAFI,KAAK,SAAS,aAEd,KAAK,UAAUA,IACR,KACJ0B,EAAM,MAAM,CAAAuP,MAAMA,EAAG,SAAS,aAAaA,EAAG,SAAS,OAAO;AAAA,EACxE;AAAA,EACD,CAAC,YAAY8J,GAAQ;AACjB,IAAI,KAAK,SAAS,eACVA,EAAO,MACPA,EAAO,IAAI,KAAK,KAAK,WAAW,IAEhCA,EAAO,MAAM,CAAC,KAAK,WAAW,GAC9B,KAAK,SAAS,cACd,OAAO,KAAK;EAEvB;AAAA,EACD,CAAC,QAAQlK,GAAO;AACZ,YAAQ,KAAK,MAAI;AAAA,MACb,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AACD,eAAO,KAAK,OACZ,OAAO,KAAK;AACZ;AAAA,MACJ,KAAK;AACD,aAAK,YAAY;AAAA,MAErB,KAAK;AAAA,MACL,KAAK;AAAA,MACL;AAEI,QAAIA,EAAM,MACNA,EAAM,IAAI,KAAK,KAAK,WAAW,IAE/BA,EAAM,MAAM,CAAC,KAAK,WAAW,GAC7B,KAAK,SAAS,cACd,OAAO,KAAK;IACvB;AAAA,EACJ;AACL;AC96BA,SAASmK,GAAavW,GAAS;AAC3B,QAAMwW,IAAexW,EAAQ,iBAAiB;AAE9C,SAAO,EAAE,aADWA,EAAQ,eAAgBwW,KAAgB,IAAIrB,GAAW,KAAO,MAC5D,cAAAqB;AAC1B;AAUA,SAASC,GAAkBjgB,GAAQwJ,IAAU,IAAI;AAC7C,QAAM,EAAE,aAAA0W,GAAa,cAAAF,EAAc,IAAGD,GAAavW,CAAO,GACpD2W,IAAS,IAAIb,GAAOY,KAAA,gBAAAA,EAAa,UAAU,GAC3CE,IAAW,IAAIvE,GAASrS,CAAO,GAC/B6W,IAAO,MAAM,KAAKD,EAAS,QAAQD,EAAO,MAAMngB,CAAM,CAAC,CAAC;AAC9D,MAAIggB,KAAgBE;AAChB,eAAW7f,KAAOggB;AACd,MAAAhgB,EAAI,OAAO,QAAQoU,GAAczU,GAAQkgB,CAAW,CAAC,GACrD7f,EAAI,SAAS,QAAQoU,GAAczU,GAAQkgB,CAAW,CAAC;AAE/D,SAAIG,EAAK,SAAS,IACPA,IACJ,OAAO,OAAO,CAAA,GAAI,EAAE,OAAO,MAAQD,EAAS,WAAU,CAAE;AACnE;AAEA,SAASE,GAActgB,GAAQwJ,IAAU,IAAI;AACzC,QAAM,EAAE,aAAA0W,GAAa,cAAAF,EAAc,IAAGD,GAAavW,CAAO,GACpD2W,IAAS,IAAIb,GAAOY,KAAA,gBAAAA,EAAa,UAAU,GAC3CE,IAAW,IAAIvE,GAASrS,CAAO;AAErC,MAAInJ,IAAM;AACV,aAAWkgB,KAAQH,EAAS,QAAQD,EAAO,MAAMngB,CAAM,GAAG,IAAMA,EAAO,MAAM;AACzE,QAAI,CAACK;AACD,MAAAA,IAAMkgB;AAAA,aACDlgB,EAAI,QAAQ,aAAa,UAAU;AACxC,MAAAA,EAAI,OAAO,KAAK,IAAIkU,EAAegM,EAAK,MAAM,MAAM,GAAG,CAAC,GAAG,iBAAiB,yEAAyE,CAAC;AACtJ;AAAA,IACH;AAEL,SAAIP,KAAgBE,MAChB7f,EAAI,OAAO,QAAQoU,GAAczU,GAAQkgB,CAAW,CAAC,GACrD7f,EAAI,SAAS,QAAQoU,GAAczU,GAAQkgB,CAAW,CAAC,IAEpD7f;AACX;AACA,SAASmgB,GAAMvd,GAAKzB,GAASgI,GAAS;AAClC,MAAIiX;AACJ,EAAI,OAAOjf,KAAY,aACnBif,IAAWjf,IAENgI,MAAY,UAAahI,KAAW,OAAOA,KAAY,aAC5DgI,IAAUhI;AAEd,QAAMnB,IAAMigB,GAAcrd,GAAKuG,CAAO;AACtC,MAAI,CAACnJ;AACD,WAAO;AAEX,MADAA,EAAI,SAAS,QAAQ,CAAAiL,MAAWF,GAAK/K,EAAI,QAAQ,UAAUiL,CAAO,CAAC,GAC/DjL,EAAI,OAAO,SAAS,GAAG;AACvB,QAAIA,EAAI,QAAQ,aAAa;AACzB,YAAMA,EAAI,OAAO,CAAC;AAElB,IAAAA,EAAI,SAAS;EACpB;AACD,SAAOA,EAAI,KAAK,OAAO,OAAO,EAAE,SAASogB,EAAQ,GAAIjX,CAAO,CAAC;AACjE;AACA,SAASK,GAAU7H,GAAO2L,GAAUnE,GAAS;AACzC,MAAIoK,IAAY;AAShB,MARI,OAAOjG,KAAa,cAAc,MAAM,QAAQA,CAAQ,IACxDiG,IAAYjG,IAEPnE,MAAY,UAAamE,MAC9BnE,IAAUmE,IAEV,OAAOnE,KAAY,aACnBA,IAAUA,EAAQ,SAClB,OAAOA,KAAY,UAAU;AAC7B,UAAMzE,IAAS,KAAK,MAAMyE,CAAO;AACjC,IAAAA,IAAUzE,IAAS,IAAI,SAAYA,IAAS,IAAI,EAAE,QAAQ,MAAM,EAAE,QAAAA,EAAM;AAAA,EAC3E;AACD,MAAI/C,MAAU,QAAW;AACrB,UAAM,EAAE,eAAA0L,EAAe,IAAGlE,KAAWmE,KAAY,CAAA;AACjD,QAAI,CAACD;AACD;AAAA,EACP;AACD,SAAO,IAAIiG,GAAS3R,GAAO4R,GAAWpK,CAAO,EAAE,SAASA,CAAO;AACnE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69]}
|