diff --git a/.DS_Store b/.DS_Store index 99e6bfc4..bed91cdb 100644 Binary files a/.DS_Store and b/.DS_Store differ diff --git a/.docusaurus/registry.js b/.docusaurus/registry.js index 069ef980..51b63f0d 100644 --- a/.docusaurus/registry.js +++ b/.docusaurus/registry.js @@ -1,43 +1,51 @@ export default { - "02b7a71d": [() => import(/* webpackChunkName: "02b7a71d" */ "@site/docs/cityio/CityIO - UI.md"), "@site/docs/cityio/CityIO - UI.md", require.resolveWeak("@site/docs/cityio/CityIO - UI.md")], - "0952c0dc": [() => import(/* webpackChunkName: "0952c0dc" */ "/Users/noyman/GIT/cityscope.github.io/.docusaurus/docusaurus-plugin-content-docs/default/plugin-route-context-module-100.json"), "/Users/noyman/GIT/cityscope.github.io/.docusaurus/docusaurus-plugin-content-docs/default/plugin-route-context-module-100.json", require.resolveWeak("/Users/noyman/GIT/cityscope.github.io/.docusaurus/docusaurus-plugin-content-docs/default/plugin-route-context-module-100.json")], - "0a23f7ce": [() => import(/* webpackChunkName: "0a23f7ce" */ "~docs/default/category-sidebar-category-cityio-936.json"), "~docs/default/category-sidebar-category-cityio-936.json", require.resolveWeak("~docs/default/category-sidebar-category-cityio-936.json")], - "1438b9ab": [() => import(/* webpackChunkName: "1438b9ab" */ "@site/docs/archive/brix/Tutorial/Tutorial.md"), "@site/docs/archive/brix/Tutorial/Tutorial.md", require.resolveWeak("@site/docs/archive/brix/Tutorial/Tutorial.md")], - "14eb3368": [() => import(/* webpackChunkName: "14eb3368" */ "@theme/DocCategoryGeneratedIndexPage"), "@theme/DocCategoryGeneratedIndexPage", require.resolveWeak("@theme/DocCategoryGeneratedIndexPage")], - "17896441": [() => import(/* webpackChunkName: "17896441" */ "@theme/DocItem"), "@theme/DocItem", require.resolveWeak("@theme/DocItem")], - "2eb856f7": [() => import(/* webpackChunkName: "2eb856f7" */ "@site/docs/cityscopejs/Introduction.md"), "@site/docs/cityscopejs/Introduction.md", require.resolveWeak("@site/docs/cityscopejs/Introduction.md")], - "3027556f": [() => import(/* webpackChunkName: "3027556f" */ "@site/docs/cityio/Introduction.md"), "@site/docs/cityio/Introduction.md", require.resolveWeak("@site/docs/cityio/Introduction.md")], - "3c6077be": [() => import(/* webpackChunkName: "3c6077be" */ "@site/docs/modules/brix/Module example.md"), "@site/docs/modules/brix/Module example.md", require.resolveWeak("@site/docs/modules/brix/Module example.md")], - "40e175d5": [() => import(/* webpackChunkName: "40e175d5" */ "@site/docs/tanglibe user interfaces/specs.md"), "@site/docs/tanglibe user interfaces/specs.md", require.resolveWeak("@site/docs/tanglibe user interfaces/specs.md")], - "41d6af12": [() => import(/* webpackChunkName: "41d6af12" */ "~docs/default/category-sidebar-category-archive-034.json"), "~docs/default/category-sidebar-category-archive-034.json", require.resolveWeak("~docs/default/category-sidebar-category-archive-034.json")], - "4206db4b": [() => import(/* webpackChunkName: "4206db4b" */ "@site/docs/archive/cityio/api.md"), "@site/docs/archive/cityio/api.md", require.resolveWeak("@site/docs/archive/cityio/api.md")], - "4a555622": [() => import(/* webpackChunkName: "4a555622" */ "@site/docs/cityio/CityIO - Core.md"), "@site/docs/cityio/CityIO - Core.md", require.resolveWeak("@site/docs/cityio/CityIO - Core.md")], - "4e15b2cd": [() => import(/* webpackChunkName: "4e15b2cd" */ "@site/docs/modules/brix/DeckGL Modules.md"), "@site/docs/modules/brix/DeckGL Modules.md", require.resolveWeak("@site/docs/modules/brix/DeckGL Modules.md")], - "57aa5823": [() => import(/* webpackChunkName: "57aa5823" */ "@site/docs/cityio/CityIO - Module.md"), "@site/docs/cityio/CityIO - Module.md", require.resolveWeak("@site/docs/cityio/CityIO - Module.md")], - "5a7a18e6": [() => import(/* webpackChunkName: "5a7a18e6" */ "@site/docs/cityio/API.md"), "@site/docs/cityio/API.md", require.resolveWeak("@site/docs/cityio/API.md")], - "5e95c892": [() => import(/* webpackChunkName: "5e95c892" */ "@theme/DocsRoot"), "@theme/DocsRoot", require.resolveWeak("@theme/DocsRoot")], - "62455296": [() => import(/* webpackChunkName: "62455296" */ "@site/docs/archive/cityio/notes.md"), "@site/docs/archive/cityio/notes.md", require.resolveWeak("@site/docs/archive/cityio/notes.md")], - "6dfefd1c": [() => import(/* webpackChunkName: "6dfefd1c" */ "@site/docs/intro/github.md"), "@site/docs/intro/github.md", require.resolveWeak("@site/docs/intro/github.md")], - "6f967107": [() => import(/* webpackChunkName: "6f967107" */ "@site/docs/archive/h3/h3.md"), "@site/docs/archive/h3/h3.md", require.resolveWeak("@site/docs/archive/h3/h3.md")], - "70b71d1a": [() => import(/* webpackChunkName: "70b71d1a" */ "@site/docs/cityio/Architecture.md"), "@site/docs/cityio/Architecture.md", require.resolveWeak("@site/docs/cityio/Architecture.md")], - "7332f3ba": [() => import(/* webpackChunkName: "7332f3ba" */ "@site/docs/modules/brix/Introduction.md"), "@site/docs/modules/brix/Introduction.md", require.resolveWeak("@site/docs/modules/brix/Introduction.md")], - "7365a548": [() => import(/* webpackChunkName: "7365a548" */ "~docs/default/category-sidebar-category-brix-78f.json"), "~docs/default/category-sidebar-category-brix-78f.json", require.resolveWeak("~docs/default/category-sidebar-category-brix-78f.json")], - "78363d9c": [() => import(/* webpackChunkName: "78363d9c" */ "@site/docs/tanglibe user interfaces/RoboScope.md"), "@site/docs/tanglibe user interfaces/RoboScope.md", require.resolveWeak("@site/docs/tanglibe user interfaces/RoboScope.md")], - "7980bb0e": [() => import(/* webpackChunkName: "7980bb0e" */ "~docs/default/category-sidebar-category-tangible-user-interfaces-b4d.json"), "~docs/default/category-sidebar-category-tangible-user-interfaces-b4d.json", require.resolveWeak("~docs/default/category-sidebar-category-tangible-user-interfaces-b4d.json")], - "7d744e69": [() => import(/* webpackChunkName: "7d744e69" */ "@site/docs/intro/intro.md"), "@site/docs/intro/intro.md", require.resolveWeak("@site/docs/intro/intro.md")], - "8529a1a6": [() => import(/* webpackChunkName: "8529a1a6" */ "@site/docs/archive/brix/Brix.md"), "@site/docs/archive/brix/Brix.md", require.resolveWeak("@site/docs/archive/brix/Brix.md")], - "89ac796e": [() => import(/* webpackChunkName: "89ac796e" */ "@site/docs/tanglibe user interfaces/CityScoPy.md"), "@site/docs/tanglibe user interfaces/CityScoPy.md", require.resolveWeak("@site/docs/tanglibe user interfaces/CityScoPy.md")], - "8a98b319": [() => import(/* webpackChunkName: "8a98b319" */ "~docs/default/category-sidebar-category-cityscopejs-a97.json"), "~docs/default/category-sidebar-category-cityscopejs-a97.json", require.resolveWeak("~docs/default/category-sidebar-category-cityscopejs-a97.json")], - "8fd40d43": [() => import(/* webpackChunkName: "8fd40d43" */ "@site/docs/intro/system.md"), "@site/docs/intro/system.md", require.resolveWeak("@site/docs/intro/system.md")], - "935f2afb": [() => import(/* webpackChunkName: "935f2afb" */ "~docs/default/version-current-metadata-prop-751.json"), "~docs/default/version-current-metadata-prop-751.json", require.resolveWeak("~docs/default/version-current-metadata-prop-751.json")], - "9576d6be": [() => import(/* webpackChunkName: "9576d6be" */ "@site/docs/archive/cityio/cityio.md"), "@site/docs/archive/cityio/cityio.md", require.resolveWeak("@site/docs/archive/cityio/cityio.md")], - "969018c5": [() => import(/* webpackChunkName: "969018c5" */ "~docs/default/category-sidebar-category-modules-885.json"), "~docs/default/category-sidebar-category-modules-885.json", require.resolveWeak("~docs/default/category-sidebar-category-modules-885.json")], - "a38df249": [() => import(/* webpackChunkName: "a38df249" */ "@site/docs/cityscopejs/Opening a project.md"), "@site/docs/cityscopejs/Opening a project.md", require.resolveWeak("@site/docs/cityscopejs/Opening a project.md")], - "a7bd4aaa": [() => import(/* webpackChunkName: "a7bd4aaa" */ "@theme/DocVersionRoot"), "@theme/DocVersionRoot", require.resolveWeak("@theme/DocVersionRoot")], - "a94703ab": [() => import(/* webpackChunkName: "a94703ab" */ "@theme/DocRoot"), "@theme/DocRoot", require.resolveWeak("@theme/DocRoot")], - "b632e823": [() => import(/* webpackChunkName: "b632e823" */ "@site/docs/modules/Core Modules/Introduction.md"), "@site/docs/modules/Core Modules/Introduction.md", require.resolveWeak("@site/docs/modules/Core Modules/Introduction.md")], - "b87b04f0": [() => import(/* webpackChunkName: "b87b04f0" */ "@site/docs/archive/brix/Examples/Examples.md"), "@site/docs/archive/brix/Examples/Examples.md", require.resolveWeak("@site/docs/archive/brix/Examples/Examples.md")], - "cf9c09d8": [() => import(/* webpackChunkName: "cf9c09d8" */ "@site/docs/archive/cityio/build.md"), "@site/docs/archive/cityio/build.md", require.resolveWeak("@site/docs/archive/cityio/build.md")], - "d9dcfff4": [() => import(/* webpackChunkName: "d9dcfff4" */ "@site/docs/cityscopejs/Project view.md"), "@site/docs/cityscopejs/Project view.md", require.resolveWeak("@site/docs/cityscopejs/Project view.md")], - "eab65581": [() => import(/* webpackChunkName: "eab65581" */ "@site/docs/modules/types.md"), "@site/docs/modules/types.md", require.resolveWeak("@site/docs/modules/types.md")], - "f30f61d4": [() => import(/* webpackChunkName: "f30f61d4" */ "@site/docs/archive/brix/GAMA.md"), "@site/docs/archive/brix/GAMA.md", require.resolveWeak("@site/docs/archive/brix/GAMA.md")],}; + "__comp---theme-debug-config-23-a-2ff": [() => import(/* webpackChunkName: "__comp---theme-debug-config-23-a-2ff" */ "@theme/DebugConfig"), "@theme/DebugConfig", require.resolveWeak("@theme/DebugConfig")], + "__comp---theme-debug-contentba-8-ce7": [() => import(/* webpackChunkName: "__comp---theme-debug-contentba-8-ce7" */ "@theme/DebugContent"), "@theme/DebugContent", require.resolveWeak("@theme/DebugContent")], + "__comp---theme-debug-global-dataede-0fa": [() => import(/* webpackChunkName: "__comp---theme-debug-global-dataede-0fa" */ "@theme/DebugGlobalData"), "@theme/DebugGlobalData", require.resolveWeak("@theme/DebugGlobalData")], + "__comp---theme-debug-registry-679-501": [() => import(/* webpackChunkName: "__comp---theme-debug-registry-679-501" */ "@theme/DebugRegistry"), "@theme/DebugRegistry", require.resolveWeak("@theme/DebugRegistry")], + "__comp---theme-debug-routes-946-699": [() => import(/* webpackChunkName: "__comp---theme-debug-routes-946-699" */ "@theme/DebugRoutes"), "@theme/DebugRoutes", require.resolveWeak("@theme/DebugRoutes")], + "__comp---theme-debug-site-metadata-68-e-3d4": [() => import(/* webpackChunkName: "__comp---theme-debug-site-metadata-68-e-3d4" */ "@theme/DebugSiteMetadata"), "@theme/DebugSiteMetadata", require.resolveWeak("@theme/DebugSiteMetadata")], + "__comp---theme-doc-category-generated-index-page-14-e-640": [() => import(/* webpackChunkName: "__comp---theme-doc-category-generated-index-page-14-e-640" */ "@theme/DocCategoryGeneratedIndexPage"), "@theme/DocCategoryGeneratedIndexPage", require.resolveWeak("@theme/DocCategoryGeneratedIndexPage")], + "__comp---theme-doc-item-178-a40": [() => import(/* webpackChunkName: "__comp---theme-doc-item-178-a40" */ "@theme/DocItem"), "@theme/DocItem", require.resolveWeak("@theme/DocItem")], + "__comp---theme-doc-roota-94-67a": [() => import(/* webpackChunkName: "__comp---theme-doc-roota-94-67a" */ "@theme/DocRoot"), "@theme/DocRoot", require.resolveWeak("@theme/DocRoot")], + "__comp---theme-doc-version-roota-7-b-5de": [() => import(/* webpackChunkName: "__comp---theme-doc-version-roota-7-b-5de" */ "@theme/DocVersionRoot"), "@theme/DocVersionRoot", require.resolveWeak("@theme/DocVersionRoot")], + "__comp---theme-docs-root-5-e-9-0b6": [() => import(/* webpackChunkName: "__comp---theme-docs-root-5-e-9-0b6" */ "@theme/DocsRoot"), "@theme/DocsRoot", require.resolveWeak("@theme/DocsRoot")], + "allContent---docusaurus-debug-content-246-9aa": [() => import(/* webpackChunkName: "allContent---docusaurus-debug-content-246-9aa" */ "~debug/default/docusaurus-debug-all-content-673.json"), "~debug/default/docusaurus-debug-all-content-673.json", require.resolveWeak("~debug/default/docusaurus-debug-all-content-673.json")], + "categoryGeneratedIndex---category-archive-41-d-831": [() => import(/* webpackChunkName: "categoryGeneratedIndex---category-archive-41-d-831" */ "~docs/default/category-sidebar-category-archive-034.json"), "~docs/default/category-sidebar-category-archive-034.json", require.resolveWeak("~docs/default/category-sidebar-category-archive-034.json")], + "categoryGeneratedIndex---category-brix-736-871": [() => import(/* webpackChunkName: "categoryGeneratedIndex---category-brix-736-871" */ "~docs/default/category-sidebar-category-brix-78f.json"), "~docs/default/category-sidebar-category-brix-78f.json", require.resolveWeak("~docs/default/category-sidebar-category-brix-78f.json")], + "categoryGeneratedIndex---category-cityio-0-a-2-9ff": [() => import(/* webpackChunkName: "categoryGeneratedIndex---category-cityio-0-a-2-9ff" */ "~docs/default/category-sidebar-category-cityio-936.json"), "~docs/default/category-sidebar-category-cityio-936.json", require.resolveWeak("~docs/default/category-sidebar-category-cityio-936.json")], + "categoryGeneratedIndex---category-cityscopejs-8-a-9-421": [() => import(/* webpackChunkName: "categoryGeneratedIndex---category-cityscopejs-8-a-9-421" */ "~docs/default/category-sidebar-category-cityscopejs-a97.json"), "~docs/default/category-sidebar-category-cityscopejs-a97.json", require.resolveWeak("~docs/default/category-sidebar-category-cityscopejs-a97.json")], + "categoryGeneratedIndex---category-modules-969-ea1": [() => import(/* webpackChunkName: "categoryGeneratedIndex---category-modules-969-ea1" */ "~docs/default/category-sidebar-category-modules-885.json"), "~docs/default/category-sidebar-category-modules-885.json", require.resolveWeak("~docs/default/category-sidebar-category-modules-885.json")], + "categoryGeneratedIndex---category-tangible-user-interfaces-798-779": [() => import(/* webpackChunkName: "categoryGeneratedIndex---category-tangible-user-interfaces-798-779" */ "~docs/default/category-sidebar-category-tangible-user-interfaces-b4d.json"), "~docs/default/category-sidebar-category-tangible-user-interfaces-b4d.json", require.resolveWeak("~docs/default/category-sidebar-category-tangible-user-interfaces-b4d.json")], + "content---7-d-7-f06": [() => import(/* webpackChunkName: "content---7-d-7-f06" */ "@site/docs/intro/intro.md"), "@site/docs/intro/intro.md", require.resolveWeak("@site/docs/intro/intro.md")], + "content---archive-brix-852-863": [() => import(/* webpackChunkName: "content---archive-brix-852-863" */ "@site/docs/archive/brix/Brix.md"), "@site/docs/archive/brix/Brix.md", require.resolveWeak("@site/docs/archive/brix/Brix.md")], + "content---archive-brix-examples-b-87-b38": [() => import(/* webpackChunkName: "content---archive-brix-examples-b-87-b38" */ "@site/docs/archive/brix/Examples/Examples.md"), "@site/docs/archive/brix/Examples/Examples.md", require.resolveWeak("@site/docs/archive/brix/Examples/Examples.md")], + "content---archive-brix-gam-af-30-10d": [() => import(/* webpackChunkName: "content---archive-brix-gam-af-30-10d" */ "@site/docs/archive/brix/GAMA.md"), "@site/docs/archive/brix/GAMA.md", require.resolveWeak("@site/docs/archive/brix/GAMA.md")], + "content---archive-brix-tutorial-143-077": [() => import(/* webpackChunkName: "content---archive-brix-tutorial-143-077" */ "@site/docs/archive/brix/Tutorial/Tutorial.md"), "@site/docs/archive/brix/Tutorial/Tutorial.md", require.resolveWeak("@site/docs/archive/brix/Tutorial/Tutorial.md")], + "content---archive-cityio-957-93b": [() => import(/* webpackChunkName: "content---archive-cityio-957-93b" */ "@site/docs/archive/cityio/cityio.md"), "@site/docs/archive/cityio/cityio.md", require.resolveWeak("@site/docs/archive/cityio/cityio.md")], + "content---archive-cityio-api-420-a7f": [() => import(/* webpackChunkName: "content---archive-cityio-api-420-a7f" */ "@site/docs/archive/cityio/api.md"), "@site/docs/archive/cityio/api.md", require.resolveWeak("@site/docs/archive/cityio/api.md")], + "content---archive-cityio-buildcf-9-6f6": [() => import(/* webpackChunkName: "content---archive-cityio-buildcf-9-6f6" */ "@site/docs/archive/cityio/build.md"), "@site/docs/archive/cityio/build.md", require.resolveWeak("@site/docs/archive/cityio/build.md")], + "content---archive-cityio-internal-note-624-5a6": [() => import(/* webpackChunkName: "content---archive-cityio-internal-note-624-5a6" */ "@site/docs/archive/cityio/notes.md"), "@site/docs/archive/cityio/notes.md", require.resolveWeak("@site/docs/archive/cityio/notes.md")], + "content---archive-h-3-6-f-9-d1b": [() => import(/* webpackChunkName: "content---archive-h-3-6-f-9-d1b" */ "@site/docs/archive/h3/h3.md"), "@site/docs/archive/h3/h3.md", require.resolveWeak("@site/docs/archive/h3/h3.md")], + "content---cityio-api-5-a-7-4c6": [() => import(/* webpackChunkName: "content---cityio-api-5-a-7-4c6" */ "@site/docs/cityio/API.md"), "@site/docs/cityio/API.md", require.resolveWeak("@site/docs/cityio/API.md")], + "content---cityio-architecture-70-b-c51": [() => import(/* webpackChunkName: "content---cityio-architecture-70-b-c51" */ "@site/docs/cityio/Architecture.md"), "@site/docs/cityio/Architecture.md", require.resolveWeak("@site/docs/cityio/Architecture.md")], + "content---cityio-city-io-core-4-a-5-4d2": [() => import(/* webpackChunkName: "content---cityio-city-io-core-4-a-5-4d2" */ "@site/docs/cityio/CityIO - Core.md"), "@site/docs/cityio/CityIO - Core.md", require.resolveWeak("@site/docs/cityio/CityIO - Core.md")], + "content---cityio-city-io-module-57-a-880": [() => import(/* webpackChunkName: "content---cityio-city-io-module-57-a-880" */ "@site/docs/cityio/CityIO - Module.md"), "@site/docs/cityio/CityIO - Module.md", require.resolveWeak("@site/docs/cityio/CityIO - Module.md")], + "content---cityio-city-io-ui-02-b-020": [() => import(/* webpackChunkName: "content---cityio-city-io-ui-02-b-020" */ "@site/docs/cityio/CityIO - UI.md"), "@site/docs/cityio/CityIO - UI.md", require.resolveWeak("@site/docs/cityio/CityIO - UI.md")], + "content---cityio-introduction-302-2df": [() => import(/* webpackChunkName: "content---cityio-introduction-302-2df" */ "@site/docs/cityio/Introduction.md"), "@site/docs/cityio/Introduction.md", require.resolveWeak("@site/docs/cityio/Introduction.md")], + "content---cityscopejs-introduction-2-eb-2a1": [() => import(/* webpackChunkName: "content---cityscopejs-introduction-2-eb-2a1" */ "@site/docs/cityscopejs/Introduction.md"), "@site/docs/cityscopejs/Introduction.md", require.resolveWeak("@site/docs/cityscopejs/Introduction.md")], + "content---cityscopejs-opening-a-projecta-38-771": [() => import(/* webpackChunkName: "content---cityscopejs-opening-a-projecta-38-771" */ "@site/docs/cityscopejs/Opening a project.md"), "@site/docs/cityscopejs/Opening a project.md", require.resolveWeak("@site/docs/cityscopejs/Opening a project.md")], + "content---cityscopejs-project-viewd-9-d-c62": [() => import(/* webpackChunkName: "content---cityscopejs-project-viewd-9-d-c62" */ "@site/docs/cityscopejs/Project view.md"), "@site/docs/cityscopejs/Project view.md", require.resolveWeak("@site/docs/cityscopejs/Project view.md")], + "content---intro-github-6-df-00c": [() => import(/* webpackChunkName: "content---intro-github-6-df-00c" */ "@site/docs/intro/github.md"), "@site/docs/intro/github.md", require.resolveWeak("@site/docs/intro/github.md")], + "content---intro-system-8-fd-560": [() => import(/* webpackChunkName: "content---intro-system-8-fd-560" */ "@site/docs/intro/system.md"), "@site/docs/intro/system.md", require.resolveWeak("@site/docs/intro/system.md")], + "content---modules-brix-deck-gl-modules-4-e-1-4d3": [() => import(/* webpackChunkName: "content---modules-brix-deck-gl-modules-4-e-1-4d3" */ "@site/docs/modules/brix/DeckGL Modules.md"), "@site/docs/modules/brix/DeckGL Modules.md", require.resolveWeak("@site/docs/modules/brix/DeckGL Modules.md")], + "content---modules-brix-introduction-733-b46": [() => import(/* webpackChunkName: "content---modules-brix-introduction-733-b46" */ "@site/docs/modules/brix/Introduction.md"), "@site/docs/modules/brix/Introduction.md", require.resolveWeak("@site/docs/modules/brix/Introduction.md")], + "content---modules-brix-module-example-3-c-6-0e2": [() => import(/* webpackChunkName: "content---modules-brix-module-example-3-c-6-0e2" */ "@site/docs/modules/brix/Module example.md"), "@site/docs/modules/brix/Module example.md", require.resolveWeak("@site/docs/modules/brix/Module example.md")], + "content---modules-core-modules-introductionb-63-cc3": [() => import(/* webpackChunkName: "content---modules-core-modules-introductionb-63-cc3" */ "@site/docs/modules/Core Modules/Introduction.md"), "@site/docs/modules/Core Modules/Introduction.md", require.resolveWeak("@site/docs/modules/Core Modules/Introduction.md")], + "content---modules-types-systemeab-625": [() => import(/* webpackChunkName: "content---modules-types-systemeab-625" */ "@site/docs/modules/types.md"), "@site/docs/modules/types.md", require.resolveWeak("@site/docs/modules/types.md")], + "content---tanglibe-user-interfaces-city-sco-py-89-a-bb5": [() => import(/* webpackChunkName: "content---tanglibe-user-interfaces-city-sco-py-89-a-bb5" */ "@site/docs/tanglibe user interfaces/CityScoPy.md"), "@site/docs/tanglibe user interfaces/CityScoPy.md", require.resolveWeak("@site/docs/tanglibe user interfaces/CityScoPy.md")], + "content---tanglibe-user-interfaces-city-scope-table-design-40-e-ded": [() => import(/* webpackChunkName: "content---tanglibe-user-interfaces-city-scope-table-design-40-e-ded" */ "@site/docs/tanglibe user interfaces/specs.md"), "@site/docs/tanglibe user interfaces/specs.md", require.resolveWeak("@site/docs/tanglibe user interfaces/specs.md")], + "content---tanglibe-user-interfaces-robo-scope-783-74c": [() => import(/* webpackChunkName: "content---tanglibe-user-interfaces-robo-scope-783-74c" */ "@site/docs/tanglibe user interfaces/RoboScope.md"), "@site/docs/tanglibe user interfaces/RoboScope.md", require.resolveWeak("@site/docs/tanglibe user interfaces/RoboScope.md")], + "plugin---095-3ee": [() => import(/* webpackChunkName: "plugin---095-3ee" */ "/Users/noyman/GIT/cityscope.github.io/.docusaurus/docusaurus-plugin-content-docs/default/plugin-route-context-module-100.json"), "/Users/noyman/GIT/cityscope.github.io/.docusaurus/docusaurus-plugin-content-docs/default/plugin-route-context-module-100.json", require.resolveWeak("/Users/noyman/GIT/cityscope.github.io/.docusaurus/docusaurus-plugin-content-docs/default/plugin-route-context-module-100.json")], + "plugin---docusaurus-debug-986-078": [() => import(/* webpackChunkName: "plugin---docusaurus-debug-986-078" */ "/Users/noyman/GIT/cityscope.github.io/.docusaurus/docusaurus-plugin-debug/default/plugin-route-context-module-100.json"), "/Users/noyman/GIT/cityscope.github.io/.docusaurus/docusaurus-plugin-debug/default/plugin-route-context-module-100.json", require.resolveWeak("/Users/noyman/GIT/cityscope.github.io/.docusaurus/docusaurus-plugin-debug/default/plugin-route-context-module-100.json")], + "version---935-fcf": [() => import(/* webpackChunkName: "version---935-fcf" */ "~docs/default/version-current-metadata-prop-751.json"), "~docs/default/version-current-metadata-prop-751.json", require.resolveWeak("~docs/default/version-current-metadata-prop-751.json")],}; diff --git a/.docusaurus/routes.js b/.docusaurus/routes.js index b69cc09b..d46f9d18 100644 --- a/.docusaurus/routes.js +++ b/.docusaurus/routes.js @@ -2,6 +2,41 @@ import React from 'react'; import ComponentCreator from '@docusaurus/ComponentCreator'; export default [ + { + path: '/__docusaurus/debug', + component: ComponentCreator('/__docusaurus/debug', '602'), + exact: true + }, + { + path: '/__docusaurus/debug/config', + component: ComponentCreator('/__docusaurus/debug/config', '44e'), + exact: true + }, + { + path: '/__docusaurus/debug/content', + component: ComponentCreator('/__docusaurus/debug/content', '748'), + exact: true + }, + { + path: '/__docusaurus/debug/globalData', + component: ComponentCreator('/__docusaurus/debug/globalData', '26b'), + exact: true + }, + { + path: '/__docusaurus/debug/metadata', + component: ComponentCreator('/__docusaurus/debug/metadata', 'f42'), + exact: true + }, + { + path: '/__docusaurus/debug/registry', + component: ComponentCreator('/__docusaurus/debug/registry', '92e'), + exact: true + }, + { + path: '/__docusaurus/debug/routes', + component: ComponentCreator('/__docusaurus/debug/routes', '04d'), + exact: true + }, { path: '/', component: ComponentCreator('/', '958'), diff --git a/.docusaurus/routesChunkNames.json b/.docusaurus/routesChunkNames.json index 9df36008..cebab0eb 100644 --- a/.docusaurus/routesChunkNames.json +++ b/.docusaurus/routesChunkNames.json @@ -1,155 +1,198 @@ { + "/__docusaurus/debug-602": { + "__comp": "__comp---theme-debug-config-23-a-2ff", + "__context": { + "plugin": "plugin---docusaurus-debug-986-078" + } + }, + "/__docusaurus/debug/config-44e": { + "__comp": "__comp---theme-debug-config-23-a-2ff", + "__context": { + "plugin": "plugin---docusaurus-debug-986-078" + } + }, + "/__docusaurus/debug/content-748": { + "__comp": "__comp---theme-debug-contentba-8-ce7", + "__context": { + "plugin": "plugin---docusaurus-debug-986-078" + }, + "allContent": "allContent---docusaurus-debug-content-246-9aa" + }, + "/__docusaurus/debug/globalData-26b": { + "__comp": "__comp---theme-debug-global-dataede-0fa", + "__context": { + "plugin": "plugin---docusaurus-debug-986-078" + } + }, + "/__docusaurus/debug/metadata-f42": { + "__comp": "__comp---theme-debug-site-metadata-68-e-3d4", + "__context": { + "plugin": "plugin---docusaurus-debug-986-078" + } + }, + "/__docusaurus/debug/registry-92e": { + "__comp": "__comp---theme-debug-registry-679-501", + "__context": { + "plugin": "plugin---docusaurus-debug-986-078" + } + }, + "/__docusaurus/debug/routes-04d": { + "__comp": "__comp---theme-debug-routes-946-699", + "__context": { + "plugin": "plugin---docusaurus-debug-986-078" + } + }, "/-958": { - "__comp": "5e95c892", + "__comp": "__comp---theme-docs-root-5-e-9-0b6", "__context": { - "plugin": "0952c0dc" + "plugin": "plugin---095-3ee" } }, "/-3b5": { - "__comp": "a7bd4aaa", - "version": "935f2afb" + "__comp": "__comp---theme-doc-version-roota-7-b-5de", + "version": "version---935-fcf" }, "/-fd7": { - "__comp": "a94703ab" + "__comp": "__comp---theme-doc-roota-94-67a" }, "/archive/brix/-140": { - "__comp": "17896441", - "content": "8529a1a6" + "__comp": "__comp---theme-doc-item-178-a40", + "content": "content---archive-brix-852-863" }, "/archive/brix/Examples/-442": { - "__comp": "17896441", - "content": "b87b04f0" + "__comp": "__comp---theme-doc-item-178-a40", + "content": "content---archive-brix-examples-b-87-b38" }, "/archive/brix/GAMA-ae8": { - "__comp": "17896441", - "content": "f30f61d4" + "__comp": "__comp---theme-doc-item-178-a40", + "content": "content---archive-brix-gam-af-30-10d" }, "/archive/brix/Tutorial/-c50": { - "__comp": "17896441", - "content": "1438b9ab" + "__comp": "__comp---theme-doc-item-178-a40", + "content": "content---archive-brix-tutorial-143-077" }, "/archive/cityio/-e6a": { - "__comp": "17896441", - "content": "9576d6be" + "__comp": "__comp---theme-doc-item-178-a40", + "content": "content---archive-cityio-957-93b" }, "/archive/cityio/API-6aa": { - "__comp": "17896441", - "content": "4206db4b" + "__comp": "__comp---theme-doc-item-178-a40", + "content": "content---archive-cityio-api-420-a7f" }, "/archive/cityio/Build-95e": { - "__comp": "17896441", - "content": "cf9c09d8" + "__comp": "__comp---theme-doc-item-178-a40", + "content": "content---archive-cityio-buildcf-9-6f6" }, "/archive/cityio/Internal_Note-6f4": { - "__comp": "17896441", - "content": "62455296" + "__comp": "__comp---theme-doc-item-178-a40", + "content": "content---archive-cityio-internal-note-624-5a6" }, "/archive/h3/-932": { - "__comp": "17896441", - "content": "6f967107" + "__comp": "__comp---theme-doc-item-178-a40", + "content": "content---archive-h-3-6-f-9-d1b" }, "/category/archive-e51": { - "__comp": "14eb3368", - "categoryGeneratedIndex": "41d6af12" + "__comp": "__comp---theme-doc-category-generated-index-page-14-e-640", + "categoryGeneratedIndex": "categoryGeneratedIndex---category-archive-41-d-831" }, "/category/brix-3b5": { - "__comp": "14eb3368", - "categoryGeneratedIndex": "7365a548" + "__comp": "__comp---theme-doc-category-generated-index-page-14-e-640", + "categoryGeneratedIndex": "categoryGeneratedIndex---category-brix-736-871" }, "/category/cityio-165": { - "__comp": "14eb3368", - "categoryGeneratedIndex": "0a23f7ce" + "__comp": "__comp---theme-doc-category-generated-index-page-14-e-640", + "categoryGeneratedIndex": "categoryGeneratedIndex---category-cityio-0-a-2-9ff" }, "/category/cityscopejs-2a7": { - "__comp": "14eb3368", - "categoryGeneratedIndex": "8a98b319" + "__comp": "__comp---theme-doc-category-generated-index-page-14-e-640", + "categoryGeneratedIndex": "categoryGeneratedIndex---category-cityscopejs-8-a-9-421" }, "/category/modules-784": { - "__comp": "14eb3368", - "categoryGeneratedIndex": "969018c5" + "__comp": "__comp---theme-doc-category-generated-index-page-14-e-640", + "categoryGeneratedIndex": "categoryGeneratedIndex---category-modules-969-ea1" }, "/category/tangible-user-interfaces-4f9": { - "__comp": "14eb3368", - "categoryGeneratedIndex": "7980bb0e" + "__comp": "__comp---theme-doc-category-generated-index-page-14-e-640", + "categoryGeneratedIndex": "categoryGeneratedIndex---category-tangible-user-interfaces-798-779" }, "/cityio/API-c37": { - "__comp": "17896441", - "content": "5a7a18e6" + "__comp": "__comp---theme-doc-item-178-a40", + "content": "content---cityio-api-5-a-7-4c6" }, "/cityio/Architecture-aa5": { - "__comp": "17896441", - "content": "70b71d1a" + "__comp": "__comp---theme-doc-item-178-a40", + "content": "content---cityio-architecture-70-b-c51" }, "/cityio/CityIO - Core-aa1": { - "__comp": "17896441", - "content": "4a555622" + "__comp": "__comp---theme-doc-item-178-a40", + "content": "content---cityio-city-io-core-4-a-5-4d2" }, "/cityio/CityIO - Module-5dd": { - "__comp": "17896441", - "content": "57aa5823" + "__comp": "__comp---theme-doc-item-178-a40", + "content": "content---cityio-city-io-module-57-a-880" }, "/cityio/CityIO - UI-6ae": { - "__comp": "17896441", - "content": "02b7a71d" + "__comp": "__comp---theme-doc-item-178-a40", + "content": "content---cityio-city-io-ui-02-b-020" }, "/cityio/Introduction-0eb": { - "__comp": "17896441", - "content": "3027556f" + "__comp": "__comp---theme-doc-item-178-a40", + "content": "content---cityio-introduction-302-2df" }, "/cityscopejs/Introduction-389": { - "__comp": "17896441", - "content": "2eb856f7" + "__comp": "__comp---theme-doc-item-178-a40", + "content": "content---cityscopejs-introduction-2-eb-2a1" }, "/cityscopejs/Opening a project-f07": { - "__comp": "17896441", - "content": "a38df249" + "__comp": "__comp---theme-doc-item-178-a40", + "content": "content---cityscopejs-opening-a-projecta-38-771" }, "/cityscopejs/Project view-55f": { - "__comp": "17896441", - "content": "d9dcfff4" + "__comp": "__comp---theme-doc-item-178-a40", + "content": "content---cityscopejs-project-viewd-9-d-c62" }, "/intro/github-55e": { - "__comp": "17896441", - "content": "6dfefd1c" + "__comp": "__comp---theme-doc-item-178-a40", + "content": "content---intro-github-6-df-00c" }, "/intro/system-bc2": { - "__comp": "17896441", - "content": "8fd40d43" + "__comp": "__comp---theme-doc-item-178-a40", + "content": "content---intro-system-8-fd-560" }, "/modules/brix/DeckGL Modules-261": { - "__comp": "17896441", - "content": "4e15b2cd" + "__comp": "__comp---theme-doc-item-178-a40", + "content": "content---modules-brix-deck-gl-modules-4-e-1-4d3" }, "/modules/brix/Introduction-cb3": { - "__comp": "17896441", - "content": "7332f3ba" + "__comp": "__comp---theme-doc-item-178-a40", + "content": "content---modules-brix-introduction-733-b46" }, "/modules/brix/Module example-170": { - "__comp": "17896441", - "content": "3c6077be" + "__comp": "__comp---theme-doc-item-178-a40", + "content": "content---modules-brix-module-example-3-c-6-0e2" }, "/modules/Core Modules/Introduction-ccd": { - "__comp": "17896441", - "content": "b632e823" + "__comp": "__comp---theme-doc-item-178-a40", + "content": "content---modules-core-modules-introductionb-63-cc3" }, "/modules/Types System-3c9": { - "__comp": "17896441", - "content": "eab65581" + "__comp": "__comp---theme-doc-item-178-a40", + "content": "content---modules-types-systemeab-625" }, "/tanglibe user interfaces/CityScope Table Design-189": { - "__comp": "17896441", - "content": "40e175d5" + "__comp": "__comp---theme-doc-item-178-a40", + "content": "content---tanglibe-user-interfaces-city-scope-table-design-40-e-ded" }, "/tanglibe user interfaces/CityScoPy-a24": { - "__comp": "17896441", - "content": "89ac796e" + "__comp": "__comp---theme-doc-item-178-a40", + "content": "content---tanglibe-user-interfaces-city-sco-py-89-a-bb5" }, "/tanglibe user interfaces/RoboScope-560": { - "__comp": "17896441", - "content": "78363d9c" + "__comp": "__comp---theme-doc-item-178-a40", + "content": "content---tanglibe-user-interfaces-robo-scope-783-74c" }, "/-e98": { - "__comp": "17896441", - "content": "7d744e69" + "__comp": "__comp---theme-doc-item-178-a40", + "content": "content---7-d-7-f06" } } \ No newline at end of file diff --git a/.docusaurus/site-metadata.json b/.docusaurus/site-metadata.json index 2b0a5bf9..3616f49c 100644 --- a/.docusaurus/site-metadata.json +++ b/.docusaurus/site-metadata.json @@ -16,9 +16,9 @@ "name": "@docusaurus/plugin-content-pages", "version": "3.2.1" }, - "docusaurus-plugin-sitemap": { + "docusaurus-plugin-debug": { "type": "package", - "name": "@docusaurus/plugin-sitemap", + "name": "@docusaurus/plugin-debug", "version": "3.2.1" }, "docusaurus-theme-classic": { diff --git a/.github/.DS_Store b/.github/.DS_Store deleted file mode 100644 index 7353b368..00000000 Binary files a/.github/.DS_Store and /dev/null differ diff --git a/.github/scripts/update.sh b/.github/scripts/update.sh deleted file mode 100644 index f68aaaf7..00000000 --- a/.github/scripts/update.sh +++ /dev/null @@ -1,71 +0,0 @@ -# This script fetches a single md file to use as documenation from another repository. -# Author: Cristian Jara-Figueroa, Phd Student MIT Media Lab -# Last updated: September 21, 2020 -# -# The script takes in up to five keyword arguments, with -o and -r being the only necessary ones -# Run as: update.sh -o REPO_NAME_OWNER -r REPO_NAME (-d DESTINATION_PATH) (-s SOURCE_FILE_PATH) (-l REPO_LABEL) -# * REPO_NAME_OWNER: Organization or user where the repo lives (e.g. CityScope) -# * REPO_NAME: Name of repo (e.g. CS_Brix) -# * DESTINATION_PATH: Path in local repo where to store the md file (it defaults to docsite/docs/modules) -# * SOURCE_FILE_PATH: Path to fetch from remote repo, including name of file and the branch (it defaults to master/README.md). This can also be a list of files, which will be joined into a single file. -# * REPO_LABEL: (OPTIONAL) Name of repo in docs. (Defaults to removing CS_ from repo name) - -while getopts ":o:r:d:s:l:" opt; do - case $opt in - o) REPO_NAME_OWNER="$OPTARG" - ;; - r) REPO_NAME="$OPTARG" - ;; - d) DESTINATION_PATH="$OPTARG" - ;; - s) SOURCE_FILE_PATH="$OPTARG" - ;; - l) REPO_LABEL="$OPTARG" - ;; - \?) echo "Invalid option -$OPTARG" >&2 - ;; - esac -done - -REPO_LABEL=${REPO_LABEL:-${REPO_NAME#"CS_"}} -DESTINATION_PATH=${DESTINATION_PATH:-docsite/docs/general} -if [[ "${REPO_NAME_OWNER#"wiki/"}" != "$REPO_NAME_OWNER" ]]; then -SOURCE_FILE_PATH=${SOURCE_FILE_PATH:-Home.md} -else -SOURCE_FILE_PATH=${SOURCE_FILE_PATH:-master/README.md} -fi - -echo REPO_NAME_OWNER: ${REPO_NAME_OWNER} -echo REPO_NAME: ${REPO_NAME} -echo REPO_LABEL: ${REPO_LABEL} -echo SOURCE_FILE_PATH: ${SOURCE_FILE_PATH} -echo DESTINATION_PATH: ${DESTINATION_PATH} - -for SFP in $SOURCE_FILE_PATH -do -echo "Copying docs from: ${REPO_NAME}/${SFP}" -done -echo "Copying docs into: ${DESTINATION_PATH}/${REPO_LABEL}.md" -mkdir -p ${DESTINATION_PATH}/ -for SFP in $SOURCE_FILE_PATH -do -echo "Downloading file at https://raw.githubusercontent.com/${REPO_NAME_OWNER}/${REPO_NAME}/${SFP}" -curl -o ${DESTINATION_PATH}/${SFP////_}_raw.md https://raw.githubusercontent.com/${REPO_NAME_OWNER}/${REPO_NAME}/${SFP} -done - -touch ${DESTINATION_PATH}/${REPO_LABEL}_id.md -echo "---" >> ${DESTINATION_PATH}/${REPO_LABEL}_id.md -echo "id: ${REPO_LABEL}" >> ${DESTINATION_PATH}/${REPO_LABEL}_id.md -echo "---" >> ${DESTINATION_PATH}/${REPO_LABEL}_id.md - -rm -f ${DESTINATION_PATH}/${REPO_LABEL}.md -touch ${DESTINATION_PATH}/${REPO_LABEL}.md - -cat ${DESTINATION_PATH}/${REPO_LABEL}_id.md >> ${DESTINATION_PATH}/${REPO_LABEL}.md -rm ${DESTINATION_PATH}/${REPO_LABEL}_id.md -for SFP in $SOURCE_FILE_PATH -do -cat ${DESTINATION_PATH}/${SFP////_}_raw.md >> ${DESTINATION_PATH}/${REPO_LABEL}.md -echo "" >> ${DESTINATION_PATH}/${REPO_LABEL}.md -rm ${DESTINATION_PATH}/${SFP////_}_raw.md -done diff --git a/.github/workflows/build_site.yml b/.github/workflows/build_site.yml index f4671bc1..86e430bc 100644 --- a/.github/workflows/build_site.yml +++ b/.github/workflows/build_site.yml @@ -1,56 +1,51 @@ -# Description: Workflow that builds the website after a push to new_docsite branch -# Author: Cristian Jara-Figueroa, Phd Student MIT Media Lab -# Last updated: November 30, 2020 -name: Build website using yarn +name: Deploy to GitHub Pages on: - workflow_dispatch: - # push: - # branches: - # - new_docsite + push: + branches: + - main + # Review gh actions docs if you want to further define triggers, paths, etc + # https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#on jobs: build: + name: Build Docusaurus runs-on: ubuntu-latest - strategy: - matrix: - node-version: [10.x] - env: - working-directory: ./docsite steps: - - name: Checkout repo - uses: actions/checkout@v2 + - uses: actions/checkout@v4 with: - ref: new_docsite - - name: List files and check location - run: pwd && ls -l - working-directory: ./docsite - - name: Use Node.js ${{ matrix.node-version }} - uses: actions/setup-node@v1 + fetch-depth: 0 + - uses: actions/setup-node@v4 with: - node-version: ${{ matrix.node-version }} - - name: install yarn - run: npm install -g yarn - working-directory: ./docsite - - name: yarn install and deploy - run: yarn && yarn deploy - working-directory: ./docsite - env: - GIT_USER: crisjf - # - name: yarn install - # uses: borales/actions-yarn@v2.0.0 - # with: - # cmd: install - # - name: yarn deploy - # uses: borales/actions-yarn@v2.0.0 - # env: - # GIT_USER: crisjf - # with: - # cmd: deploy - - -# Steps to deploy (bash) -# cd docsite -# yarn install -# export GIT_USER=crisjf -# yarn deploy \ No newline at end of file + node-version: 18 + cache: npm + + - name: Install dependencies + run: npm ci + - name: Build website + run: npm run build + + - name: Upload Build Artifact + uses: actions/upload-pages-artifact@v3 + with: + path: build + + deploy: + name: Deploy to GitHub Pages + needs: build + + # Grant GITHUB_TOKEN the permissions required to make a Pages deployment + permissions: + pages: write # to deploy to Pages + id-token: write # to verify the deployment originates from an appropriate source + + # Deploy to the github-pages environment + environment: + name: github-pages + url: ${{ steps.deployment.outputs.page_url }} + + runs-on: ubuntu-latest + steps: + - name: Deploy to GitHub Pages + id: deployment + uses: actions/deploy-pages@v4 \ No newline at end of file diff --git a/.github/workflows/pull_docs.yml b/.github/workflows/pull_docs.yml deleted file mode 100644 index 11715a07..00000000 --- a/.github/workflows/pull_docs.yml +++ /dev/null @@ -1,44 +0,0 @@ -# Description: Workflow that updates markdown files by fetching them from other repositories. It runs every day at midnight automatically, or it can be triggered manually or by setting up a dispatch action in the lower level repo. -# Author: Cristian Jara-Figueroa, Phd Student MIT Media Lab -# Last updated: November 30, 2020 -name: Update documentation from downstream repos - -on: - schedule: - - cron: '0 0 * * *' - workflow_dispatch: - repository_dispatch: - types: [docs_update] - - -jobs: - build: - runs-on: ubuntu-latest - steps: - - name: Checkout repo - uses: actions/checkout@v2 - # SYNTAX TO ADD REPOS - # - name: Update REPO_NAME - # run: bash .github/scripts/update.sh -o REPO_NAME_OWNER -r REPO_NAME (-d DESTINATION_PATH) (-s SOURCE_FILE_PATH) (-l REPO_LABEL) - - name: Update CS_Brix - run: bash .github/scripts/update.sh -o CityScope -r CS_Brix -d docsite/docs/modules/Brix -s docs-pages/docs/markdown/index.md -l Brix - - name: Update CS_Brix (tutorial) - run: bash .github/scripts/update.sh -o CityScope -r CS_Brix -d docsite/docs/modules/Brix/Tutorial -s docs-pages/docs/markdown/tutorial.md -l Tutorial - - name: Update CS_Brix (classes) - run: bash .github/scripts/update.sh -o CityScope -r CS_Brix -d docsite/docs/modules/Brix/Classes -s docs-pages/docs/markdown/classes.md -l Classes - - name: Update CS_Brix (examples) - run: bash .github/scripts/update.sh -o CityScope -r CS_Brix -d docsite/docs/modules/Brix/Examples -s docs-pages/docs/markdown/examples.md -l Examples - - name: Update CS_GAMABrix - run: bash .github/scripts/update.sh -o CityScope -r CS_Simulation_GAMA -d docsite/docs/modules -s master/CS_CityScope_GAMA/models/cityIO/README.md -l GAMA - - name: Update CS_CityIO - run: bash .github/scripts/update.sh -o CityScope -r CS_CityIO -d docsite/docs/backend -s master/docs/cityio_documentation.md - - name: Commit changes - uses: EndBug/add-and-commit@v4 - with: - author_name: crisjf - author_email: crisjf@mit.edu - message: "Auto documentation update from Actions" - add: "." - ref: 'new_docsite' - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/.gitignore b/.gitignore new file mode 100644 index 00000000..ab65a88e --- /dev/null +++ b/.gitignore @@ -0,0 +1,45 @@ +.DS_Store +.vscode/* +!.vscode/extensions.json +.idea +*.iml +*.code-workspace +.changelog +.history + +node_modules +.yarn +package-lock.json + +.eslintcache + +yarn-error.log +build +coverage +.docusaurus +.cache-loader +types +test-website +test-website-in-workspace + +packages/create-docusaurus/lib/ +packages/lqip-loader/lib/ +packages/docusaurus/lib/ +packages/docusaurus-*/lib/* +packages/eslint-plugin/lib/ +packages/stylelint-copyright/lib/ + +website/netlifyDeployPreview/* +website/changelog +!website/netlifyDeployPreview/index.html +!website/netlifyDeployPreview/_redirects + +website/_dogfooding/_swizzle_theme_tests + +CrowdinTranslations_*.zip + +website/i18n/**/* +#!website/i18n/fr +#!website/i18n/fr/**/* + +.netlify diff --git a/CAD/CityScope_CAD.zip b/CAD/CityScope_CAD.zip deleted file mode 100644 index b83f73dc..00000000 Binary files a/CAD/CityScope_CAD.zip and /dev/null differ diff --git a/build/.DS_Store b/build/.DS_Store deleted file mode 100644 index 96b725f0..00000000 Binary files a/build/.DS_Store and /dev/null differ diff --git a/build/404.html b/build/404.html deleted file mode 100644 index bd76d32e..00000000 --- a/build/404.html +++ /dev/null @@ -1,13 +0,0 @@ - - - - - -Here We Build CityScope - - - - -
Skip to main content

Page Not Found

We could not find what you were looking for.

Please contact the owner of the site that linked you to the original URL and let them know their link is broken.

- - \ No newline at end of file diff --git a/build/archive/.DS_Store b/build/archive/.DS_Store deleted file mode 100644 index c1933571..00000000 Binary files a/build/archive/.DS_Store and /dev/null differ diff --git a/build/archive/brix/Examples/index.html b/build/archive/brix/Examples/index.html deleted file mode 100644 index 2277e2b9..00000000 --- a/build/archive/brix/Examples/index.html +++ /dev/null @@ -1,111 +0,0 @@ - - - - - -Examples | Here We Build CityScope - - - - -
Skip to main content

Examples

-

Short examples

-

Numeric indicator: diversity

-

Indicators are built as subclasses of the :class”brix.Indicator class, with three functions that need to be defined: brix.Indicator.setup(), brix.Indicator.load_module(), and brix.Indicator.return_indicator(). The function brix.Indicator.setup() acts like an init. It can take any argument and runs when the object is instantiated. The function brix.Indicator.load_module() is also run when the indicator in initialized, but it cannot take any arguments. Any inputs needed to run brix.Indicator.load_module() should be passed to brix.Indicator.setup() and defined as class attributes. The function brix.Indicator.return_indicator() is the only required one and should take in a geogrid_data object (returned from brix.Handler.get_geogrid_data() or from brix.Indicator.get_geogrid_data()) and return the value of the indicator either as a number, a dictionary, or a list of dictionaries/numbers. Sometimes, the indicator requires geographic information from the table to calculate it. To get geographic information from the table, set the property brix.Indicator.requires_geometry to True (see Noise heatmap as an example).

-

The following example implements a diversity-of-land-use indicator

-
from brix import Indicator
from brix import Handler
from numpy import log
from collections import Counter

class Diversity(Indicator):
def setup(self):
self.name = 'Entropy'

def load_module(self):
pass

def return_indicator(self, geogrid_data):
uses = [cell['land_use'] for cell in geogrid_data]
uses = [use for use in uses if use != 'None']
frequencies = Counter(uses)
total = sum(frequencies.values(), 0.0)
entropy = 0
for key in frequencies:
p = frequencies[key]/total
entropy += -p*log(p)
return entropy

div = Diversity()
H = Handler('dungeonmaster', quietly=False)
H.add_indicator(div)
H.listen()
-

Composite indicator: average

-

In some settings, it might be useful to aggregate different indicators to get a average feel of what the neighborhood looks like. For this use case, brix provides a simplified CompositeIndicator class that only needs an aggregation function.

-

Let’s create an indicator that averages Innovation Potential, Mobility Inmpact, and Economic Impact. We use the brix.CompositeIndicator class for this. This class takes an aggregate function as input. This function should take the result of brix.Handler.get_indicator_values() as input and returns a number. If you want to have more control over what the brix.CompositeIndicator does you can always extend the class.

-

Here is the simplest example that averages the values of three indicators:

-
from brix import Handler, CompositeIndicator
from brix.examples import RandomIndicator

def innovation_average(indicator_values):
avg = (indicator_values['Innovation Potential']+indicator_values['Mobility Impact']+indicator_values['Economic Impact'])/3
return avg

H = Handler('dungeonmaster')
R = RandomIndicator()
avg_I = CompositeIndicator(innovation_average,name='Composite')
H.add_indicators([R,avg_I])
-

In some cases, the aggregation function is too simple to write it again. In the example before, you can also pass it a pre-existing function, such as np.mean, making sure that you select the indicators that will be passed as input, by their name.

-
from brix import Handler, CompositeIndicator
from brix.examples import RandomIndicator
import numpy as np

H = Handler('dungeonmaster')
R = RandomIndicator()
avg_I = CompositeIndicator(np.mean,selected_indicators=['Innovation Potential','Mobility Impact','Economic Impact'],name='Composite')
H.add_indicators([R,avg_I])
-

Heatmap indicator

-

The same class can be used to define a heatmap or accessiblity indicator, as opposed to a numeric indicator. First, set the class property brix.Indicator.indicator_type equal to heatmap or to access. This will flag the indicator as a heatmap and will tell the Handler class what to do with it. -Second, make sure that the brix.Indicator.return_indicator() function returns a list of features or a geojson. -The example below shows an indicator that returns noise for every point in the center of a grid cell. Because this indicator needs the coordinates of table to return the geojson, it sets the property brix.Indicator.requires_geometry to True.

-
from brix import Indicator
class Noise(Indicator):
'''
Example of Noise heatmap indicator for points centered in each grid cell.

Note that this class requires the geometry of the table as input, which is why it sets:
requires_geometry = True
in the setup.

'''
def setup(self):
self.indicator_type = 'heatmap'
self.requires_geometry = True

def load_module(self):
pass

def return_indicator(self, geogrid_data):
features = []
for cell in geogrid_data:
feature = {}
lat,lon = zip(*cell['geometry']['coordinates'][0])
lat,lon = mean(lat),mean(lon)
feature['geometry'] = {'coordinates': [lat,lon],'type': 'Point'}
feature['properties'] = {self.name:random()}
features.append(feature)
out = {'type':'FeatureCollection','features':features}
return out
-

Textual indicator

-

The example below annotates two randomly chosen cells with yes! and no!.

-
from brix import Indicator
import random
class RandomFlag(Indicator):
'''
Example of textual indicator that annotates two random cells.
'''
def setup(self):
self.indicator_type = 'textual'
self.requires_geometry = True
self.name = 'Yes/No'

def return_indicator(self, geogrid_data):
cells = random.sample(geogrid_data,2)
out = [
{'id':cells[0]['id'],'info':'yes!'},
{'id':cells[1]['id'],'info':'no!'},
]
return out
-

Multiple tables simultaneously

-

The following examples instantiates three brix.Handler objects for three different tables (dungeonA, dungeonB, and dungeonC) and adds a diversity of land use indicator to each. It then runs brix.Handler.listen() for each table in its own separate thread.

-
from brix import Handler
from brix.examples import Diversity, RandomIndicator

table_list = ['dungeona','dungeonb','dungeonc']

handler_list = []
for table_name in table_list:
H = Handler(table_name)
div = Diversity()
rand = RandomIndicator()
H.add_indicators([div,rand])
handler_list.append(H)

for h in handler_list:
h.listen()
-

Hybrid indicator

-

For more complex uses cases, where a module runs a big simulation and wants to show both a heatmap and a numeric indicator, you can use a hybrid indicator. To start, set:

-
self.indicator_type = 'hybrid'
-

If you set your indicator as hybrid you need to define a numeric and a heatmap part. The following example generates a heatmap with noise and the average noise as a numeric indicator.

-
from brix import Indicator
from numpy import mean
import random
class HybridNoise(Indicator):
def setup(self):
self.indicator_type = 'hybrid'
self.name = 'noise'
self.requires_geometry = True
self.mynoise = None

def return_indicator_heatmap(self, geogrid_data):
features = []
for cell in geogrid_data:
feature = {}
lat,lon = zip(*cell['geometry']['coordinates'][0])
lat,lon = mean(lat),mean(lon)
feature['geometry'] = {'coordinates': [lat,lon],'type': 'Point'}
feature['properties'] = {self.name:random.random()}
features.append(feature)
self.mynoise = features
out = {'type':'FeatureCollection','features':features}
return out

def return_indicator_numeric(self, geogrid_data):
mean_noise = mean([cell['properties'][self.name] for cell in self.mynoise])
return mean_noise
-

By default, brix will run the heatmap indicator first, followed by the numeric indicator. If you need more control over how these functions interact with each other, you can always re-define the return_indicator function. If you choose to do so, make sure that it returns a dictionary with two keys (‘heatmap’ and ‘numeric’):

-
{'heatmap': heatmap_values, 'numeric': numeric_values}
-

In the previous example:

-
def return_indicator(self, geogrid_data):
out = {}
out['heatmap'] = self.return_indicator_heatmap(geogrid_data)
out['numeric'] = self.return_indicator_numeric(geogrid_data)
return out
-

Step by step examples

-

Diversity of land-use indicator - step by step

-

As an example, we’ll build a diversity of land use indicator for the test table. The process is the same for any table, provided that it has a GEOGRID variable. Indicators are built as subclasses of the brix.Indicator class, with three functions that need to be defined: brix.Indicator.setup(), brix.Indicator.load_module(), and brix.Indicator.return_indicator(). The function brix.Indicator.setup() acts like an init. It can take any argument and runs when the object is instantiated. The function brix.Indicator.load_module() is also run when the indicator in initialized, but it cannot take any arguments. Any inputs needed to run brix.Indicator.load_module() should be passed to brix.Indicator.setup() and defined as class attributes. The function brix.Indicator.return_indicator() is the only required one and should take in a geogrid_data object (returned from brix.Handler.get_geogrid_data() or from brix.Indicator.get_geogrid_data()) and return the value of the indicator either as a number, a dictionary, or a list of dictionaries/numbers.

-

To start developing the diversity indicator, you can use the Handler class to get the geogrid_data that is an input of the brix.Indicator.return_indicator() function.

-
from brix import Handler
H = Handler('dungeonmaster')
geogrid_data = H.geogrid_data()
-

The returned geogrid_data object depends on the table, but for dungeonmaster it looks like this:

-
[
{
'color': [0, 0, 0, 0],
'height': 0.1,
'id': 0,
'interactive': True,
'land_use': 'None',
'name': 'empty',
'tui_id': None
},
{
'color': [247, 94, 133, 180],
'height': [0, 80],
'id': 1,
'interactive': True,
'land_use': 'PD',
'name': 'Office Tower',
'old_color': [133, 94, 247, 180],
'old_height': [0, 10],
'tui_id': None
},
{
'color': [0, 0, 0, 0],
'height': 0.1,
'id': 2,
'interactive': True,
'land_use': 'None',
'name': 'empty',
'tui_id': None
},
...
]
-

We build the diversity indicator by delecting the land_use variable in each cell and calculating the Shannon Entropy for this:

-
from numpy import log
from collections import Counter
uses = [cell['land_use'] for cell in geogrid_data]
uses = [use for use in uses if use != 'None']

frequencies = Counter(uses)

total = sum(frequencies.values(), 0.0)
entropy = 0
for key in frequencies:
p = frequencies[key]/total
entropy += -p*log(p)
-

Now, we wrap this calculation in the brix.Indicator.return_indicator() in a Diversity class that inherits the properties from the brix.Indicator class:

-
from brix import Indicator
from numpy import log
from collections import Counter

class Diversity(Indicator):

def setup(self):
self.name = 'Entropy'

def load_module(self):
pass

def return_indicator(self, geogrid_data):
uses = [cell['land_use'] for cell in geogrid_data]
uses = [use for use in uses if use != 'None']

frequencies = Counter(uses)

total = sum(frequencies.values(), 0.0)
entropy = 0
for key in frequencies:
p = frequencies[key]/total
entropy += -p*log(p)

return entropy
-

Because this indicator is very simple, it does not need any parameters or data to calculate the value, which is why the load_module function is empty. The setup function defines the properties of the module, which in this case is just the name.

-

Finally, we run the indicator by instantiating the new class and passing it to a Handler object:

-
from brix import Handler

div = Diversity()

H = Handler('dungeonmaster', quietly=False)
H.add_indicator(div)
H.listen()
-

Composite indicator – step by step tutorial

-

Let’s create an indicator that averages Innovation Potential, Mobility Inmpact, and Economic Impact. -First, we load the RandomIndicator and pass it to a Handler.

-
from brix import Handler, CompositeIndicator
from brix.examples import RandomIndicator

H = Handler('dungeonmaster')
R = RandomIndicator()
H.add_indicator(R)
-

To develop the aggregate function, we use the brix.Handler.get_indicator_values function from the handler class. We need to make sure our aggregate function works with that the Handler is returning:

-
indicator_values = H.get_indicator_values()
-

In this case, the indicator_values is a dictionary with the following elements:

-
{
'Social Wellbeing': 0.9302328967423512,
'Environmental Impact': 0.8229183561962108,
'Mobility Impact': 0.3880460148817071,
'Economic Impact': 0.13782084927373295,
'Innovation Potential': 0.8913823890081203
}
-

We do not need to use all of the values returned by the Handler for our indicator.

-

Next, we write our simple average function that takes indicator_values as input and returns a value, and pass it as an argument to the brix.CompositeIndicator class constructor.

-
def innovation_average(indicator_values):
avg = (indicator_values['Innovation Potential']+indicator_values['Mobility Impact']+indicator_values['Economic Impact'])/3
return avg

avg_I = CompositeIndicator(innovation_average,name='Composite')
-

To make sure it is running, we can test it as usual:

-
avg_I.return_indicator(indicator_values)
-

We finally add it to the Handler:

-
H.add_indicator(avg_I)
-

Heatmap indicator – step by step tutorial

-

This section will show you step by step how to build a proximity to parks indicator.

-

Let’s start by setting up a simple subclass of the Indicator class, give it a name, and set it as a heatmap indicator:

-
from brix import Indicator
class ProximityIndicator(Indicator):
def setup(self):
self.name = 'Parks'
self.indicator_type = 'heatmap'

def return_indicator(self, geogrid_data):
pass
-

Next, we link it to the table. This step is only for building the indicator as we use a brix.Handler object when deploying it.

-
P = ProximityIndicator()
P.link_table('dungeonmaster')
P.get_geogrid_data()
-

When running brix.Indicator.get_geogrid_data() we see that every cell has a name property and some cells are classified as Park. You’ll also notice that by default, when building a heatmap indicator, geogrid_data returns the geometries. You can change this behavior by setting self.requires_geometry=False in your setup.

-

Next, we define the return_indicator function. For debugging and testing you can define this function as stand alone function before adding it as a method to the ProximityIndicator. Some useful functions for debugging are brix.Indicator.get_geogrid_data() and brix.Indicator.get_table_properties() that will list general properties of the linked table.

-

In this example, the proximity indicator is defined as one over the distance to the closest park. When the cell is a park, we define the proximity as 1/(half size of each cell) to avoid dividing by zero.

-
import numpy as np
from geopy.distance import distance as geodistance # Function for distance between coordinates

def return_indicator(self,geogrid_data):
parks = [cell for cell in geogrid_data if cell['name']=='Park'] # Find all parks
parks_locations = [np.mean(cell['geometry']['coordinates'][0],0) for cell in parks] # Filter out the center of all park locations (locations are lon,lat format)

features = []
for cell in geogrid_data: # Calculate a value for the indicator for each cell
cell_coords = np.mean(cell['geometry']['coordinates'][0],0) # Calculate center of cell (locations are lon,lat format)
if cell['name']=='Park': # If cell is park, set distance to zero
park_distance = 25 # This is based on half the cell size (see P.get_table_properties())
else:
distances = [geodistance(cell_coords[::-1],park_loc[::-1]).m for park_loc in parks_locations] # Distance between cell and each park. Notice that we reverse the coordinates for geodistance.
park_distance = min(distances) # get distance to closest park

proximity = 1/park_distance
scaled_proximity = (proximity-0.002)/(0.03-0.002) # this ensures the indicator is between zero and one

# Generate feature with points (lon,lat format) and properties.
feature = {}
feature['geometry'] = {'coordinates': list(cell_coords),'type': 'Point'} # cell_coords should be a list
feature['properties'] = {self.name: scaled_proximity} # Use the indicator name to tag the value

features.append(feature) # add to features list for export

out = {'type':'FeatureCollection','features':features}
return out
-

You can test your function by running: return_indicator(P,geogrid_data).

-

Finally, let’s put it all together:

-
from brix import Indicator
import numpy as np
from geopy.distance import distance as geodistance

class ProximityIndicator(Indicator):
def setup(self):
self.name = 'Parks'
self.indicator_type = 'heatmap'

def return_indicator(self,geogrid_data):
parks = [cell for cell in geogrid_data if cell['name']=='Park']
parks_locations = [np.mean(cell['geometry']['coordinates'][0],0) for cell in parks]

features = []
for cell in geogrid_data:
cell_coords = list(np.mean(cell['geometry']['coordinates'][0],0) )
if cell['name']=='Park':
park_distance = 45
else:
distances = [geodistance(cell_coords[::-1],park_loc[::-1]).m for park_loc in parks_locations]
park_distance = min(distances)

proximity = 1/park_distance
scaled_proximity = (proximity-0.002)/(0.03-0.002)

feature = {}
feature['geometry'] = {'coordinates': cell_coords,'type': 'Point'}
feature['properties'] = {self.name: scaled_proximity}

features.append(feature)

out = {'type':'FeatureCollection','features':features}
return out
-

And to deploy it:

-
from brix import Handler
H = Handler('dungeonmaster')
P = ProximityIndicator()
H.add_indicator(P)
H.listen()
-

Static-Heatmap indicator

-

The brix.Indicator class provides a flexible way to define any type of indicator. In some cases, a simple approach is needed. Let’s assume we want to build a simple heatmap indicator that just visualizes a given shapefile, and does not react to changes in geogriddata. We can use brix.StaticHeatmap to build that.

-

In this example, we will use the number of houses by block in Guadalajara, Mexico. You can download the shapefile from HERE. We will not be using our trusted dungeonmaster table, as it does not overlap with the data. Instead we will use jalisco.

-

The first step will be to “griddify” our shapefile, meaning we will transform it from polygons to sampling points. Please note that you can use any sampling method for this, and that the sampling points do not need to match the grid. To make things easier, we have provided brix.griddify(), which uses the centroids of the grid to sample the values of the heatmap.

-

We start by loading the shapefile and removing the missing values:

-
import geopandas as gpd
shapefile = gpd.read_file('/Users/username/Downloads/14_Manzanas_INV2016_shp/14_Manzanas_INV2016.shp')
shapefile = shapefile[shapefile['VIVTOT']!='N.D.']
shapefile['VIVTOT'] = shapefile['VIVTOT'].astype(float)
-

Since the VIVTOT column that we are interested in visualizing has a skewed distribution, we will log-transform it.

-

::

-

import numpy as np -shapefile[‘log_VIVTOT’] = np.log(shapefile[‘VIVTOT’]+1)

-

Next, we load a table and use its grid to sample the heatmap.

-
from brix import Handler
H = Handler('jalisco')
geogrid_data = H.get_geogrid_data()
-

The next step is to use the grid to sample the values of the heatmap. We will use the log_VIVTOT column, and save the resulting heatmap to a file so we can load it later. We will also remove the missing values.

-
from brix import griddify
heatmap = griddify(geogrid_data,shapefile,columns=['log_VIVTOT'])
heatmap = heatmap[~heatmap['log_VIVTOT'].isna()]
heatmap.to_file('/Users/username/Downloads/14_Manzanas_INV2016_shp/HEATMAP.shp')
-

This shapefile is a table of points and their properties. To build your indicator you can either load the file and pass it to the :class:brix.StaticHeatmap` constructor, or have the constructor load it for you.

-
from brix import StaticHeatmap
N = StaticHeatmap('/Users/username/Downloads/14_Manzanas_INV2016_shp/HEATMAP.shp',columns=['log_VIVTOT'])
-

Finally, we add it to a Handler class and check the update package:

-
H = Handler('jalisco')
H.add_indicator(N)
H.update_package()
-

To sum up, to preprocess the data:

-
import geopandas as gpd
import numpy as np
from brix import Handler
from brix import griddify

shapefile = gpd.read_file('/Users/username/Downloads/14_Manzanas_INV2016_shp/14_Manzanas_INV2016.shp')
shapefile = shapefile[shapefile['VIVTOT']!='N.D.']
shapefile['VIVTOT'] = shapefile['VIVTOT'].astype(float)
shapefile['log_VIVTOT'] = np.log(shapefile['VIVTOT']+1)


H = Handler('jalisco')
geogrid_data = H.get_geogrid_data()
heatmap = griddify(geogrid_data,shapefile,columns=['log_VIVTOT'],buffer_percent=3)
heatmap = heatmap[~heatmap['log_VIVTOT'].isna()]
heatmap.to_file('/Users/username/Downloads/14_Manzanas_INV2016_shp/HEATMAP.shp')
-

And once the heatmap file has been saved, all you need to do deploy the indicator is:

-
from brix import Handler, StaticHeatmap
N = StaticHeatmap('/Users/username/Downloads/14_Manzanas_INV2016_shp/HEATMAP.shp',columns=['log_VIVTOT'])
H = Handler('jalisco')
H.add_indicator(N)
H.listen()
- - \ No newline at end of file diff --git a/build/archive/brix/GAMA/index.html b/build/archive/brix/GAMA/index.html deleted file mode 100644 index dfbdafb7..00000000 --- a/build/archive/brix/GAMA/index.html +++ /dev/null @@ -1,138 +0,0 @@ - - - - - -GAMA | Here We Build CityScope - - - - -
Skip to main content

Agent-Based Model developped in the CityScience group using Gama Platform and integrated in CityScope

-

Introduction

-

What is this library for? If you have never heard of a CityScope before, you might want to stop reading and learn about them here. CityScope is an awesome way to interact, explore, and co-create urban interventions in a way that can be accessed by multiple people with different background. If you know what they are, please keep reading.

-

What is a CityScope table? a ‘table’ is our way of describing a CityScope project. Why table then? Since historically, most CityScope instances were composed of a mesh between a physical table-top 3D model of a city, augmented with projections, software, and other interface hardware. So a table => project.

-

What is an indicator? An indicator is the result of running a module for CityScope. Indicators work by listening for updated from the CityScope table they are linked to, calculating some values by using a model, some function of the data, or a simulation, and then post the result of the calculations to CityIO to be displayed in the table.

-

What are the types of indicators you can build? Indicators can be anything that could be displayed on a CityScope table, including the supporting screens associated to it. For the purpose of this library, we distinguish three types of indicator: numeric, heatmap, simulation.

-
    -
  • -

    Numeric: Numeric indicators are just a number or set of numbers. They are usually displayed in a chart (bar chart, radar chart, etc) next to the table. The most common numeric indicator are the numbers that go in the radar plot, which display information about density, diversity, and proximity.

    -
  • -
  • -

    Heatmap: These indicators are geodata. They are made up of geometries (points, lines, or polygons) and properties associated to them. These indicators are displayed as layers directly on the CityScope table.

    -
  • -
  • -

    Agent: These type of indicators are also displayed on the table but they are the result of an agent based simulation and are therefore displayed as a dynamic layer. They change over time like a short movie.

    -
  • -
-

Setup

-

To setup GAMABrix copy the file GAMABrix.gaml into your model directory and import it into your model. You can download GAMABrix.gaml from here Right after declaring your model, import the necessary species and functions by running:

-
import "GAMABrix.gaml"
-

This will add to global the necessary functions to communicate with CityIO and two very important species that you will use to give your agents the properties they need to also live in CityIO: cityio_numeric_indicator and cityio_agent. Additionally, it sets up a series of brix agents that will ensure your world is a copy of the world in the table you have selected.

-

Tutorial

-

Basics of building a CityScope indicator in GAMA

-

Let’s get to it. First, what table are you building for? If you don’t have a specific table, that is totally okay and you can create one here. Note: by the time you read this, CityScope might pose some limitations on new projects (tables). Please follow instructions in the link above.

-

For this tutorial, we crated one called dungeonmaster.

-

An indicator will basically take in the properties of the brix agents in the world or the properties of any other simulated agent and produce a result. Each new indicator is built as an subclass of the cityio_agent class. cityio_agent is your friend, so we'll spend some time discussing it here.

-

When you setup a model by importing GAMABrix, the model will run for one whole day of simulation, then posts the results of this simulation to cityio, and then stay idle waiting for an update from the table. This can be a bit annoying when you are only starting to build your model, so you can turn off this behavior and just keep the local grid update.

-

Think of each indicator as an observer in your model that will report information back to CityIO. When it's a numeric indicator, the agent will just report a number that it calculates based on the brixs, when it's a heatmap indicator, the agent will report some numbers along with its location, and when it's an agent, the agent will report it's location over time. cityio_agent is used as the parent class of any species that you want to visualize in CityIO. There are some specific parameters your sub-species needs to define to set the agent as a numeric, heatmap, or agent indicator.

-

GAMABrix for cs-brix users

-

If you are familiar with the python library cs-brix, keep reading. Otherwise, skip to the next section of the tutorial. brix is relies on defining classes that contain functions that take geogrid_data as an input. For GAMABrix this is not necessary. Since GAMA relies on setting up a world with agents, the input data is already in the world in the form of brix. Therefore, when building urban indicators in GAMA you do not need to worry about input, and you can just get the necessary information from the brix agents that will be automatically created in your world.

-

In terms of output, brix relies on a series of return functions passed to a Handler class. In GAMA, the world itself acts as the Handler class, so there is no need to explicitly add your indicators to the Handler as they are already contained in the global species. The way to flag your indicators to be sent to cityIO is to define them as a subclass of cityio_agent.

-

While brix can handle multiple tables at the same time by creating multiple threads for each Handler, GAMA is constrained to one table per model.

-

The CityIO global

-

To connect your world to a table you need to declare the table name inside your global and set the geometry of your world based on this table. For example, we named our table dungeonmaster:

-
string city_io_table<-"dungeonmaster";
geometry shape <- envelope(setup_cityio_world());
-

While you are building your model, we recommend turning off GAMABrix to speed up the process (the default). By setting post_on<-false, the model will only update your local grid without posting any of the indicators to cityio. In other words, you will only be getting from cityIO not posting. This will reduce your bandwidth usage and allow you to debug your model faster. By doing this, the model will still keep track of the day and enter idle mode once the day is over.

-

For early stages of model building, you might also want to set pull_only<-true. This will tell turn off most of the functionality of the module and just make sure you are updating the local grid by pulling from your table. The simulation will not enter idle mode and the day will never reset.

-

Once you are done and want to deploy, change:

-
bool post_on<-true;
-

Additionally, the following variables can be defined in the global and allow for a finer control of how the global communicates with cityIO. You do not need to set them up now, as the default should work fine.

-
    -
  • city_io_table: String, name of the table to connect to.
  • -
  • post_on: Boolean, used to turn the posting feature on or off. Keep it off while building the model and turn it on to post to the table.
  • -
  • update_frequency: Intenger, frequency, in number of simulation ticks, by which to update local grid by checking for changes in gridhash. This is not the posting frequency. Optional, and defaults to 10.
  • -
  • send_first_batch: Boolean, if false it will only send the results of the simulation once the full day has run. Optional and defaults to true.
  • -
  • cycle_first_batch: Integer, simulation tick in which to send the first batch of data to the server. Optional and defaults to 100.
  • -
  • step: Float, time between two simulation ticks. Defaults to 60 #sec.
  • -
  • saveLocationInterval: Float, frequency in second by which to save locally the location of agents. This is not the post frequency. Optional and defaults to 10 steps.
  • -
  • totalTimeInSec: Integer, total time in seconds that the simulation will run for. Defaults to a whole day. Please note that CityIO will not render more than 1 day of simulation.
  • -
  • idle_update_frequency: Float, time in real world seconds (not simulation seconds) between two get requests to check hash when in idle mode.
  • -
  • pull_only: Boolean, used to use GAMABrix only to update the local grid. This is very useful for the early stages of model building.
  • -
-

When you import GAMABrix you will also see an additional experiment called CityScopeHeadless. This experiment is used to run your model as a headless process in a server.

-

By default, GAMABrix will run its init (which creates the grid) right after your model's init. This means that you will not have access to any brix object inside your init. You can always change this behavior by forcing GAMABrix to run its init earlyer by adding do brix_init where needed.

-

Let's talk input

-

GAMA will keep a copy of the cityIO grid locally by creating the necessary brix agents. This makes all the grid information accessible to all the agents by interacting with the brix agents.

-

The main properties that brix agents have are:

-
    -
  • type: String that identifies the type of the block. This is editable (e.g. Residential).
  • -
  • height: Float, height of the block.
  • -
  • color: RGB object.
  • -
  • block_lbcs: map<string, float> Map that connects strings (LBCS codes) and float (proportion of the block in each code).
  • -
  • block_naics: map<string, float> Map that connects strings (NAICS codes) and float (proportion of the block in each code).
  • -
-

Note that block_lbcs and block_naics are the same for each type and are defined when you create the table.

-

Building an indicator (output)

-

Now, we'll turn some agents into observers that will report information to cityIO. All three different types of indicators report different types of information, and an agent can be reporting any type of information to cityIO.

-
    -
  • Numeric: Reports numbers (e.g. average commuting time, total energy consumption, etc.). Turn this on by setting is_numeric<-true.
  • -
  • Heatmap: Reports numbers with location (e.g. traffic in a particular intersection, total sunlight in a specific location). Turn this on by setting is_heatmap<-true.
  • -
  • Agent: Report all their locations during one whole day of simulation. Turn this on by setting is_visible<-true. Note that the variable is_visible refers only to wether you'll see the agent in your CityScope table. You still need to display them in your local GAMA interfase if you want to see them.
  • -
-

When creating a numeric indicator you need to write a reflex for your agent that updates either numeric_values or heatmap_values. These two variables should be map<string,float>. Here is a simple example that numeric_values with the number of blocks.

-
reflex update_numeric {
numeric_values<-[];
numeric_values<+"Number of blocks"::length(brix);
}
-

Similarly, here is another example that updates heatmap_values with two layers, heat and map defined as random numbers:

-
reflex update_heatmap {
heatmap_values<-[];
heatmap_values<+ "heat"::rnd(10);
heatmap_values<+ "map"::rnd(10);
}
-

For an agent indicator there is no value to be updated, as the indicator just reports its location. However, if your agent does not move, you will get a very boring dot so you might want to update the location. Here is a simple reflex that updates the location:

-
reflex move{
do wander;
}
-

Additionally, GAMABrix provides a shortcut to create numeric indicators that do not require you to define a subspecies. This is meant for straightforward indicators that can be calculated in one line of code. To create a simple numeric indicator, just create and agent of the cityio_numeric_indicator species and pass your function as a string to indicator_value. For example, a numeric indicator that returns the average height of blocks:

-
create cityio_numeric_indicator with: (viz_type:"bar",indicator_name: "Mean Height", indicator_value: "mean(brix collect each.height)");
-

Deploy your indicator

-

Let's say you finished writing your model and are ready to leave it running forever (in a server with ssh access, for example).

-

We highly recommend using a docker container to run headless GAMA on a server. This will take care of compatibility issues between platforms.

-

First, pull the image from dockerhub. This step only needs to be performed once per server. We will be using this image.

-
> docker pull gamaplatform/gama
-

Second, we will build the xml file with the model meta parameters. You will only need to do this once for each model. Ensure you model directory (the folder that contains models, results, etc) contains a headless folder, and then run the following command adding the name of your gama file (model_file.gaml) where needed:

-
> docker run --rm -v "$(pwd)":/usr/lib/gama/headless/my_model gamaplatform/gama -xml CityScopeHeadless my_model/models/[model_file.gaml] my_model/headless/myHeadlessModel.xml
-

This creates a file called myHeadlessModel.xml in your headless folder. If you know how to edit this file, feel free to modify it now. For more information about this file, check the documentation. Please note that by default the simulation will only run 1000 steps. If you wish to change this, edit the xml and change the finalStep property to a higher number or just delete if you wish the model to run continuosly.

-

Finally, we will run this model inside a container. This final step is what you will repeat everytime you modify your model. Run the following command, again from your model director:

-
> docker run --rm -v "$(pwd)":/usr/lib/gama/headless/my_model gamaplatform/gama my_model/headless/myHeadlessModel.xml my_model/results/
-

Examples

-

Basic numeric indicator

-

To create a numeric indicator, the recommended way is to define a species of agents that will act as observers that will report the information to cityIO. This species needs to have cityio_agent as parent species.

-

You need to define four things:

-
    -
  • Set is_numeric to true.
  • -
  • Define a reflex that updates the numeric_values map (map<string,float>).
  • -
  • Define an indicator_name either in the species definition or in the create statement.
  • -
  • Set the viz_type to either bar or radar (defaults to bar if you don't change it).
  • -
-

Here's a simple example:

-
species my_numeric_indicator parent: cityio_agent {
bool is_numeric<-true;
string viz_type <- "bar";
string indicator_name<-"Table Size";

reflex update_numeric {
numeric_values<-[];
numeric_values<+indicator_name::length(brix);
}
}
-

Don't forget to create an agent of this species in the global init.

-
create my_numeric_indicator;
-

For simple indicators, you can rely on creating an agent of the cityio_numeric_indicator species in your global init. Here's an example:

-
create cityio_numeric_indicator with: (viz_type:"bar", indicator_name: "Max Height",  indicator_value: "max(brix collect each.height)");
-

Basic heatmap indicator

-

To create a heatmap indicator, define a species of agents that will act as observers that will report the information to cityIO. These agents need to have a location assigned to them. This species needs to have cityio_agent as parent species.

-

You need to define three things:

-
    -
  • Set is_heatmap to true.
  • -
  • Define a reflex that updates the heatmap_values map (map<string,float>).
  • -
  • Define an indicator_name either in the species definition or in the create statement.
  • -
-
species thermometer parent: cityio_agent {
bool is_heatmap<-true;
string indicator_name<-"thermometer";

reflex update_heatmap {
heatmap_values<-[];
heatmap_values<+ "heat"::rnd(10);
heatmap_values<+ "map"::rnd(10);
}
}
-

Basic agent indicator

-

Finally, you can easily add agents to be displayed in cityIO. Interestingly, these are the easiest indicators to define. In fact, you can turn any species into a cityio_agent by defining their parent class.

-

You need to is_visible two things:

-
    -
  • Set is_heatmap to true.
  • -
  • Define a reflex that updates the agent's location.
  • -
-
species people parent: cityio_agent skills:[moving]{ 
bool is_visible<-true;

reflex move{
do wander;
}
}
-

Additionally, you can define the integers profile and mode that will control the way they are displayed in the front end. You can also define reflexes that update these two properties. For example, you can differentiate between drivers and walkers, or between day workers and night workers, etc.

-

Full module example (with comments)

-
model citIOGAMA

// Import GAMABrix (this needs to be in the same directory as your model)
import "GAMABrix.gaml"

global {
// Define the table you'll be working with
string city_io_table<-"dungeonmaster";
geometry shape <- envelope(setup_cityio_world());

// Set post to true so that GAMABrix can post to cityIO
bool post_on<-true;

init {
// Create people based on species defined below
create people number:10;

// Create 100 points of a heatmap indicator (species defined below)
create thermometer number:100;

// Use cityio_numeric_indicator to define a mean block height numeric indicator
create cityio_numeric_indicator with: (viz_type:"bar",indicator_name: "Mean Height", indicator_value: "mean(brix collect each.height)");

// Create a numeric indicator based on the species defined below
create my_numeric_indicator with: (viz_type:"bar",indicator_name: "Number of blocks");
}


}

// Define a custom numeric indicator
species my_numeric_indicator parent: cityio_agent {
// Set the indicator as numeric
bool is_numeric<-true;

// Visualize it as a bar chart
string viz_type <- "bar";

// Define reflex that updates numeric_values
reflex update_numeric {
numeric_values<-[];
numeric_values<+indicator_name::length(brix);
}
}

// Define custom heatmap indicator
species thermometer parent: cityio_agent {
// Set the indicator as heatmap
bool is_heatmap<-true;

// Define reflex that updates heatmap_values
reflex update_heatmap {
heatmap_values<-[];
heatmap_values<+ "heat"::rnd(10);
heatmap_values<+ "map"::rnd(10);
}
}

// Define people, to be used as agent indicators
species people parent: cityio_agent skills:[moving]{
// Set agents as visible in cityIO
bool is_visible<-true;

// Update the agents location at every step
reflex move{
do wander;
}

// Set base aspect to visualize in GAMA GUI
aspect base{
draw circle(10) color:#blue;
}
}

// Define a experiment to visualize in GUI
experiment CityScope type: gui autorun:false{
output {
display map_mode type:opengl background:#black{
species brix aspect:base;
species people aspect:base position:{0,0,0.1};
}
}
}
- - \ No newline at end of file diff --git a/build/archive/brix/Tutorial/index.html b/build/archive/brix/Tutorial/index.html deleted file mode 100644 index f427d059..00000000 --- a/build/archive/brix/Tutorial/index.html +++ /dev/null @@ -1,62 +0,0 @@ - - - - - -Tutorials | Here We Build CityScope - - - - -
Skip to main content

Tutorials

-

This module also contains a set of other useful functions that integrate with brix.Handler and brix.Indicator.

-

The functions brix.get_OSM_geometries() and brix.get_OSM_nodes() help you get data from Open Street Maps for your table.

-

Auto-updates of GEOGRIDDATA

-

Brix also has the capability of automatically updating GEOGRIDDATA. For simple one-time updates, follow the documentation of brix.Handler.update_geogrid_data(). To use this feeature, you first need to define a function that takes a brix.GEOGRIDDATA as an input. When used with brix.Handler.update_geogrid_data(), this function can take any number of keyword arguments. The following example raises the height of all cells by 3 units:

-
def add_height(geogrid_data, levels=1):
for cell in geogrid_data:
cell['height'] += levels
return geogrid_data

H = Handler('dungeonmaster', quietly=False)
H.update_geogrid_data(add_height,levels=3)
-

Brix also supports GEOGRIDDATA updates everytime there is a registered user interaction in the front end. To add a function to the update schedule, use brix.Handler.add_geogrid_data_update_function(). This has the limitation that your update funcion cannot take in any arguments other. If this limitation proves too restrictive, please submit an issue and we’ll consider pushing an update.

-

The following example updates the whole grid to Light Industrial use everytime there’s a user interaction:

-
def update_g(geogrid_data):
for cell in geogrid_data:
cell['name'] = 'Light Industrial'
return geogrid_data

H = Handler(table_name,quietly=False)
H.add_geogrid_data_update_function(update_g)
H.listen()
-

The updates triggered by brix.Handler.listen() follow the following order:

-
    -
  1. -

    get GEOGRIDDATA

    -
  2. -
  3. -

    run all GEOGRIDDATA updates using the result of 1 as input

    -
  4. -
  5. -

    get the new GEOGRIDDATA

    -
  6. -
  7. -

    update all indicators using the GEOGRIDDATA object resulting from 3

    -
  8. -
-

Creating a table from python

-

Brix provides a class for creating spatial grids for CityScope projects: brix.Grid_maker a subclass of brix.Handler.

-

For most use cases, you will create your table using the web-app editor found here. For more complex projects, you might need to create your own table from an existing dataset. For example, you might want to select the grid area using a polygon defined in a shapefile. The tools we highlight here can be use for this purpose.

-

The first step is to instantiate the class by defining the location of your table and its name. The lat,lon provided to the brix.Grid_maker constructor correspond to the top left corner of the grid (North-West).

-
from brix import Grid_maker
table_name = 'dungeonmaster'
lat,lon = 42.361875, -71.105713
G = Grid_maker(table_name, lat, lon)
-

If the table already exists, you can either use brix.Handler.delete_table() to delete it or wait to be prompted if you want to rewrite it. You can check if the table exists by using brix.Handler.is_table(). Please note that since brix.Grid_maker is a subclass of brix.Handler, most functions available for a brix.Handler object are also available for a brix.Grid_maker object. The table constructor also allows you to specify the cell_size, the nrows and ncols, as well as other parameters.

-

Once the grid maker object has been instatiated, we set the grid by running brix.Grid_maker.set_grid_geojson():

-
G.set_grid_geojson()
-

This will create the geojson that will be posted to CityIO to create the table. You can check the object by using brix.Grid_maker.get_grid_geojson().

-

The next step is to define the cell types that the user will be able to choose frorm. Defining the necessary types and the properties of each type is a very complex process that involves data collection and analysis as well as community engagement and simulation that is beyond the scope of this tutorial. The default table created with the Grid constructor only contains a simple type called Default. To see this, you can use brix.Grid_maker.grid_types(). If you wish to change this, you can use brix.Grid_maker.edit_types(). This function will either take a json-like object (dict of dicts) with the name of the type as the key, or a list of names of types that will be automatically completed with default values. Once the types have been defined, they can be expressed in the following way, adding as many properties as needed by your table:

-
{
'Default': {
'color': [0, 0, 0],
'height': 0,
'interactive': 'Web',
...
},
...
}
-

The bare minimum properties that need to be defined are color, height, and interactive. If not provided, brix will assign them automatically.

-

The following line of code replaces the Default type by there other cell types callsed Type 1, Type 2, and Type 3, letting brix assign the color to each of them.

-
G.edit_types(['Type 1','Type 2','Type 3'])
-

For most applications, you will want to turn off some of the cells and make them non-interactive. Usually, this will involve a shapefile or a geojson that contains the polygon that defines the interactive part of the table. If you have a Shapely polygon stored in poly you can set the non-interactive cells by using brix.Grid_maker.set_noninteractive():

-
G.set_noninteractive(poly)
-

The final step is to commit the grid to CityIO. Use brix.Grid_maker.commit_grid():

-
G.commit_grid()
-

Putting it all together:

-
from brix import Grid_maker
table_name = 'dungeonmaster'
lat,lon = 42.361875, -71.105713
G = Grid_maker(table_name, lat, lon)
G.set_grid_geojson()
G.edit_types(['Type 1','Type 2','Type 3'])
G.set_noninteractive(poly)
G.commit_grid()
-

Alternatively, you can use poly as an argument to brix.grid_from_poly(). This function will calculate the location and the cell size based on the given polygon, and set the non-interactive parts. The following block of code achieves the same as the block above:

-
from brix import Grid_maker, grid_from_poly
table_name = 'dungeonmaster'
G = grid_from_poly(table_name, poly)
G.edit_types(['Type 1','Type 2','Type 3'])
G.commit_grid()
-

Testing your module

-

To automatically test your module, this library provides the brix.User class that simulates the behavior of a user interacting with your grid. This user runs in its own new thread to free up your main thread so that you can keep wokring on your indicator.

-

The following example consists of a brix.Handler that contains a diversity brix.Indicator that reponds to the updates of the brix.User:

-
from brix import Handler
from brix.examples import Diversity
from brix.test_tools import User
table_name = 'dungeonmaster'
U = User(table_name)
H = Handler(table_name,quietly=False)
div = Diversity()
H.add_indicator(div)
U.start_user()
H.listen()
- - \ No newline at end of file diff --git a/build/archive/brix/index.html b/build/archive/brix/index.html deleted file mode 100644 index 5dd688f8..00000000 --- a/build/archive/brix/index.html +++ /dev/null @@ -1,123 +0,0 @@ - - - - - -[Archive] The brix library | Here We Build CityScope - - - - -
Skip to main content

[Archive] The brix library

-

Brix is a python library for CityScope modules which handles communication with City I/O.

-

Introduction

-

What is this library for? If you have never heard of a CityScope before, you might want to stop reading and learn about them here. CityScope is an awesome way to interact, explore, and co-create urban interventions in a way that can be accessed by multiple people with different background. If you know what they are, please keep reading.

-

What is a CityScope table? a ‘table’ is our way of describing a CityScope project. Why table then? Since historically, most CityScope instances were composed of a mesh between a physical table-top 3D model of a city, augmented with projections, software, and other interface hardware. So a table => project.

-

What is an indicator? An indicator is the result of running a module for CityScope. Indicators work by listening for updated from the CityScope table they are linked to, calculating some values by using a model, some function of the data, or a simulation, and then post the result of the calculations to CityIO to be displayed in the table.

-

What are the types of indicators you can build? Indicators can be anything that could be displayed on a CityScope table, including the supporting screens associated to it. For the purpose of this library, we distinguish three types of indicator: numeric, heatmap, simulation.

-
    -
  • -

    Numeric: Numeric indicators are just a number or set of numbers. They are usually displayed in a chart (bar chart, radar chart, etc) next to the table. The most common numeric indicator are the numbers that go in the radar plot, which display information about density, diversity, and proximity.

    -
  • -
  • -

    Heatmap: These indicators are geodata. They are made up of geometries (points, lines, or polygons) and properties associated to them. These indicators are displayed as layers directly on the CityScope table.

    -
  • -
  • -

    Simulation: These type of indicators are also displayed on the table but they are the result of an agent based simulation and are therefore displayed as a dynamic layer. They change over time like a short movie. These are not yet supported by this library.

    -
  • -
-

Installation

-

Brix can be installed from pip. Just do:

-
pip install cs-brix
-
    -
  • -

    Getting started

    -
      -
    • -

      Basics of building a CityScope indicator

      -
    • -
    • -

      Let’s talk data (input)

      -
    • -
    • -

      Build and test your indicator (output)

      -
    • -
    • -

      Deploy your indicator

      -
    • -
    -
  • -
  • -

    Tutorials

    -
      -
    • -

      Auto-updates of GEOGRIDDATA

      -
    • -
    • -

      Creating a table from python

      -
    • -
    • -

      Testing your module

      -
    • -
    -
  • -
  • -

    Classes

    -
      -
    • -

      Handler class

      -
    • -
    • -

      Indicator class

      -
    • -
    • -

      GEOGRIDDATA class

      -
    • -
    • -

      Indicator sub-classes

      -
    • -
    • -

      User class

      -
    • -
    • -

      Grid maker class

      -
    • -
    -
  • -
  • -

    Functions

    -
      -
    • -

      Helper functions

      -
    • -
    • -

      Wrapper functions

      -
    • -
    • -

      OSM functions

      -
    • -
    -
  • -
  • -

    Examples

    -
      -
    • -

      Short examples

      -
    • -
    • -

      Step by step examples

      -
    • -
    -
  • -
-

Indices and tables

-
    -
  • -

    Index

    -
  • -
  • -

    Search Page

    -
  • -
- - \ No newline at end of file diff --git a/build/archive/cityio/API/index.html b/build/archive/cityio/API/index.html deleted file mode 100644 index 81417013..00000000 --- a/build/archive/cityio/API/index.html +++ /dev/null @@ -1,65 +0,0 @@ - - - - - -API | Here We Build CityScope - - - - -
Skip to main content

Here is a list of APIs exposed for cityio.

-

list tables

-
curl https://cityio.media.mit.edu/api/tables/list/
-
["test"]
-

get a table

-
curl https://cityio.media.mit.edu/api/table/test/ | jq .
-

| jq . is just to pretty format the result.

-
{
"data": 42,
"grid": [
0,
1,
0
],
"meta": {
"hash": "BGuzwcPaxADXvLkR2uciX1pkRumFGJV25UENUur4mUfa",
"hashes": {
"data": "8kzzuAWtRcnhd4SnD2zeEuieq5VtuA8nsNcBgzpRaLuE",
"grid": "D9VCvyZn98K9BfSAX26Nm22DTsCfbULokywhdTFKs9Ca"
},
"id": "F4tCJsaHmvqu2VRGht4Z4GdMttEArHewfUKiFFVz1w78",
"timestamp": "2021-03-27T15:41:45.457952355+00:00"
}
}
-

post a table

-
curl -X POST -d '{"grid":[0,1,1]}' \
-H "Content-Type:application/json" \
https://cityio.media.mit.edu/api/table/test/ | jq .
-
{
"id": "6xU8W2WTzwMpyX3vQyRxkbKFxVLfpeV6dERkK9ATukBT",
"name": "test",
"status": "ok"
}
-

get deeper data

-
curl https://cityio.media.mit.edu/api/table/test/grid | jq .
-
[
0,
1,
1
]
-

post deeper data

-
curl -X POST -d '{"setting":{"cars":true}}' \
-H "Content-Type:application/json" \
https://cityio.media.mit.edu/api/table/test/new_module | jq .
-
{
"id": "9Dqq91fFjfL5sse9AKyXoUsYXF3Tg62ALpo6fC2B3epB",
"status": "ok"
}
-

ver3 lets you send even deeper data, if it's the base data already -exists

-
curl -X POST -d '{"pev": true, "cars":false}' \
-H "Content-Type:application/json" \
https://cityio.media.mit.edu/api/table/test/new_module/setting | jq .
-
{
"commit": "BTLvsmmQbJc5JiMZEsrhzMFgBjRRxcH8irDKz99WbC3b",
"status": "ok"
}
-

this case the commit changes

-

delete table

-
curl -X DELETE https://cityio.media.mit.edu/api/table/test/
-
ok
-
curl https://cityio.media.mit.edu/api/tables/list/
-
[]
-

dump data

-
curl https://cityio.media.mit.edu/api/dump/ | jq .
-

This gives a good overview of how cityio is internally saving data.

-
{
"blob": [
{
"setting": {
"cars": true
}
},
[
0,
1,
0
],
42,
"hello",
{
"setting": {
"cars": false,
"pev": true
}
},
[
0,
1,
1
]
],
"commit": [
{
"parent": "oPuhrsgmJU3aUS5pc2StUrftqUwTDUX3tEweF4NE4fD",
"timestamp": "2021-03-27T15:41:45.457952355+00:00",
"tree_id": "BGuzwcPaxADXvLkR2uciX1pkRumFGJV25UENUur4mUfa"
},
{
"parent": "F4tCJsaHmvqu2VRGht4Z4GdMttEArHewfUKiFFVz1w78",
"timestamp": "2021-03-27T15:44:52.177075895+00:00",
"tree_id": "TCMSkt5Sy4MBqb1p6ve6t85CzKyTcuGexgvsHpm26tL"
},
{
"parent": "0",
"timestamp": "2021-03-27T15:02:32.840592341+00:00",
"tree_id": "55qnpsNMspv9kJJuvQKvoq51s8kRoTN3YX11mVirKnRn"
},
{
"parent": "9Dqq91fFjfL5sse9AKyXoUsYXF3Tg62ALpo6fC2B3epB",
"timestamp": "2021-03-27T15:50:19.380681197+00:00",
"tree_id": "BKLV9yuZB4fQmdPfgBqf3dNAWendRvCnMbjM4JBGEYdo"
},
{
"parent": "BTLvsmmQbJc5JiMZEsrhzMFgBjRRxcH8irDKz99WbC3b",
"timestamp": "2021-03-27T17:04:55.305024404+00:00",
"tree_id": "UeD3pVhfBUrnoUjRbVR4W9Sh35gw2zBnWZu86qYFyBg"
},
{
"parent": "6xU8W2WTzwMpyX3vQyRxkbKFxVLfpeV6dERkK9ATukBT",
"timestamp": "2021-03-27T15:48:17.106557974+00:00",
"tree_id": "8tFUU1YRaENHRBdsWg5q8FFC7jgwZi2Uxi9HAApDsVo1"
}
],
"tag": [
{
"commit": "GmJxu8Lq4vT2xx2HaW9nrmTJdprdKkkrFYFkQ8Mq8UcC",
"name": "test"
}
],
"tree": [
{
"data": "8kzzuAWtRcnhd4SnD2zeEuieq5VtuA8nsNcBgzpRaLuE",
"grid": "J1XtoDM5DGKZt97qBy3krz3ihhdtD9mJaxNMf62BAJhU",
"new_module": "2tBViau8ebNWqxbxvqu5pjwFeMk7KjHCVRG4A7e7gubY"
},
{
"data": "8kzzuAWtRcnhd4SnD2zeEuieq5VtuA8nsNcBgzpRaLuE",
"grid": "D9VCvyZn98K9BfSAX26Nm22DTsCfbULokywhdTFKs9Ca"
},
{
"data": "8kzzuAWtRcnhd4SnD2zeEuieq5VtuA8nsNcBgzpRaLuE",
"grid": "J1XtoDM5DGKZt97qBy3krz3ihhdtD9mJaxNMf62BAJhU"
},
{
"data": "8kzzuAWtRcnhd4SnD2zeEuieq5VtuA8nsNcBgzpRaLuE",
"grid": "J1XtoDM5DGKZt97qBy3krz3ihhdtD9mJaxNMf62BAJhU",
"new_module": "76sjJZQF22BsNYdTP71xpFTHwquQqXzwbfVPiQe5dsYm"
},
{
"data": "8kzzuAWtRcnhd4SnD2zeEuieq5VtuA8nsNcBgzpRaLuE"
},
{
"data": "8kzzuAWtRcnhd4SnD2zeEuieq5VtuA8nsNcBgzpRaLuE",
"grid": "J1XtoDM5DGKZt97qBy3krz3ihhdtD9mJaxNMf62BAJhU",
"new_module": "B8UAsPeLZskSvLDiWffD1vruGewxMBhMNwQF7xipQpGP"
}
]
}
-

get module by Id

-

a module is recorded as blob. Files are recorded as blobs in git.

-
curl https://cityio.media.mit.edu/api/module/8kzzuAWtRcnhd4SnD2zeEuieq5VtuA8nsNcBgzpRaLuE/
-
42
-

get hashes by Id

-

the hashes entry in the meta is recorded as a tree. Directories are -recorded as trees in git.

-
curl https://cityio.media.mit.edu/api/hashes/BGuzwcPaxADXvLkR2uciX1pkRumFGJV25UENUur4mUfa/ | jq .
-
{
"data": "8kzzuAWtRcnhd4SnD2zeEuieq5VtuA8nsNcBgzpRaLuE",
"grid": "D9VCvyZn98K9BfSAX26Nm22DTsCfbULokywhdTFKs9Ca"
}
-

get a commit by Id (and roll back)

-
curl https://cityio.media.mit.edu/api/commit/GmJxu8Lq4vT2xx2HaW9nrmTJdprdKkkrFYFkQ8Mq8UcC/ | jq .
-
{
"tree_id": "UeD3pVhfBUrnoUjRbVR4W9Sh35gw2zBnWZu86qYFyBg",
"parent": "BTLvsmmQbJc5JiMZEsrhzMFgBjRRxcH8irDKz99WbC3b",
"timestamp": "2021-03-27T17:04:55.305024404+00:00"
}
-

the parent field of this points to other commits. You can roll back to -different states using this endpoint.

-
curl https://cityio.media.mit.edu/api/commit/BTLvsmmQbJc5JiMZEsrhzMFgBjRRxcH8irDKz99WbC3b/ | jq .
-
{
"tree_id": "BKLV9yuZB4fQmdPfgBqf3dNAWendRvCnMbjM4JBGEYdo",
"parent": "9Dqq91fFjfL5sse9AKyXoUsYXF3Tg62ALpo6fC2B3epB",
"timestamp": "2021-03-27T15:50:19.380681197+00:00"
}
-

Post a table by 'tagging', similar to branching

-
curl -X POST https://cityio.media.mit.edu/api/table/raw/new_table/BTLvsmmQbJc5JiMZEsrhzMFgBjRRxcH8irDKz99WbC3b/ | jq .
-
curl https://cityio.media.mit.edu/api/tables/list/
-
["new_table","test"]
-

This can be seen as branching, or copying states. You can force merge if -you have a commit id to overwrite.

- - \ No newline at end of file diff --git a/build/archive/cityio/Build/index.html b/build/archive/cityio/Build/index.html deleted file mode 100644 index f3e41010..00000000 --- a/build/archive/cityio/Build/index.html +++ /dev/null @@ -1,33 +0,0 @@ - - - - - -Build | Here We Build CityScope - - - - -
Skip to main content

From version 3, the Dockerfile inside the repository can be used for -easy deployment through docker.

-

It is a two step process, building and running.

-

Building

-

(make sure you have docker in your system)

-
git clone https://github.com/CityScope/CS_CityIO cityio
cd cityio
docker build -t cityio .
-

This will build the container image to the latest version. git pull to -update the code.

-

Running

-

The cityio container assumes that a redis instance is running in -127.0.0.1:6379 (the default), this can be a docker container itself, -if redis is running inside a different address or/and port, you can -change the what is written in the DockerFile.

-
ENV REDIS_ADDR=127.0.0.1
ENV REDIS_PORT=6379
-

With that, the container can run by the following command.

-
docker run -p 8080:8080 --net=host cityio
-

the --net=host option is for the container to access the host side -localhosts' ports, to have the container access redis.

-

This will output the logs in that session, where we usually run cityio -in a tmux session for realtime observation. The -d option can be added -to run in deamon mode.

- - \ No newline at end of file diff --git a/build/archive/cityio/Internal_Note/index.html b/build/archive/cityio/Internal_Note/index.html deleted file mode 100644 index 00eac13d..00000000 --- a/build/archive/cityio/Internal_Note/index.html +++ /dev/null @@ -1,17 +0,0 @@ - - - - - -Internal_Note | Here We Build CityScope - - - - -
Skip to main content

Internal_Note

this section is for internal maintenance only.

-

cityio is using tmux's shared session for all the server admins to observe, stop, and restart the cityio instance. -The location of this session file is /tmp/Shared, so to attach the tmux session:

-
tmux attach -S /tmp/Shared
-

To run the process, it should follow instructions written in the doc's Build.md.

- - \ No newline at end of file diff --git a/build/archive/cityio/index.html b/build/archive/cityio/index.html deleted file mode 100644 index 4c6e3519..00000000 --- a/build/archive/cityio/index.html +++ /dev/null @@ -1,96 +0,0 @@ - - - - - -[Archive] CityIO | Here We Build CityScope - - - - -
Skip to main content

[Archive] CityIO

-
    -
  • -

    data-hub (dump?) to have several clients work together

    -
  • -
  • -

    (lower case)architecture to enforce collaboration within network

    -
  • -
  • -

    server program

    -
      -
    • saves tables to have different software (visualization, simulation) read/write information
    • -
    • exposes a REST API (=url's) to serve json files, representiving table info
    • -
    -
  • -
-

Resources

-
    -
  • -

    API

    -

    shows the endpoint URLs for clients to operate various request through HTTP. (ex. Getting a table data, Updating table data... etc.)

    -
  • -
  • -

    Client Examples

    -

    shows hello world examples from each client in different frameworks (GAMA, Grasshopper, Unity ... etc)

    -
  • -
- -

API

-

[baseurl] https://cityio.media.mit.edu

-

dev endpoints

-

endpoints in development will have /dev before the api

-

https://cityio.media.mit.edu/dev/api/table/:tableName

-

list available tables

-
[GET] https://cityio.media.mit.edu/api/tables/list
-

get table data

-
[GET] https://cityio.media.mit.edu/api/table/:tableName
-

params:

-

tableName : name of table

-

format: json/application

-

https://cityio.media.mit.edu/table/:tableName is deprecated

-

post table data

-
[POST] https://cityio.media.mit.edu/api/table/update/:tableName
-

params:

-

tableName: name of table

-

body

-

text/plain or json/application format accepted.

-

text will be converted to json internally, will throw an error if it's not -valid json. Server welcomes any valid json, but only things inside objects and grid objects -will be used for comparison to detect uniqueness.

-

https://cityio.media.mit.edu/table/update/:tableName is deprecated

-

delete table data

-
[GET] https://cityio.media.mit.edu/api/table/clear/:tablename
-

params:

-

tableName: name of table

-

be careful! will delete all data from memory cache and DB

-

delete module data

-
[GET] https://cityio.media.mit.edu/api/table/clear/:tablename/:modulename
-

params:

-

tablename: name of table -modulename: name of module

-

be careful! will delete all data from memory cache and DB

-

How to run it Locally

-

The current version is developed using rust.

-
    -
  1. -

    install rust

    -
  2. -
  3. -

    clone this repository

    -
  4. -
  5. -

    clone sha256 repo

    -

    this repo should live in the same directory as the main repo

    -
  6. -
  7. -

    get db credentials from yasushi, save it in the root of this repo

    -
  8. -
  9. -

    cargo run --bin server --release

    -
  10. -
-

this will compile the program and run it in port 8080

-

the server will now run locally

- - \ No newline at end of file diff --git a/build/archive/h3/index.html b/build/archive/h3/index.html deleted file mode 100644 index d7b69763..00000000 --- a/build/archive/h3/index.html +++ /dev/null @@ -1,14 +0,0 @@ - - - - - -[Archive] H3 Grid | Here We Build CityScope - - - - -
Skip to main content
- - \ No newline at end of file diff --git a/build/assets/.DS_Store b/build/assets/.DS_Store deleted file mode 100644 index 3b3bf31d..00000000 Binary files a/build/assets/.DS_Store and /dev/null differ diff --git a/build/assets/css/styles.a961cfe0.css b/build/assets/css/styles.a961cfe0.css deleted file mode 100644 index 95b9033c..00000000 --- a/build/assets/css/styles.a961cfe0.css +++ /dev/null @@ -1 +0,0 @@ -.col,.container{padding:0 var(--ifm-spacing-horizontal);width:100%}.markdown>h2,.markdown>h3,.markdown>h4,.markdown>h5,.markdown>h6{margin-bottom:calc(var(--ifm-heading-vertical-rhythm-bottom)*var(--ifm-leading))}.markdown li,body{word-wrap:break-word}body,ol ol,ol ul,ul ol,ul ul{margin:0}pre,table{overflow:auto}blockquote,pre{margin:0 0 var(--ifm-spacing-vertical)}.breadcrumbs__link,.button{transition-timing-function:var(--ifm-transition-timing-default)}.button,code{vertical-align:middle}.button--outline.button--active,.button--outline:active,.button--outline:hover,:root{--ifm-button-color:var(--ifm-font-color-base-inverse)}.menu__link:hover,a{transition:color var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.navbar--dark,:root{--ifm-navbar-link-hover-color:var(--ifm-color-primary)}.menu,.navbar-sidebar{overflow-x:hidden}:root,html[data-theme=dark]{--ifm-color-emphasis-500:var(--ifm-color-gray-500)}.toggleButton_gllP,html{-webkit-tap-highlight-color:transparent}.clean-list,.containsTaskList_mC6p,.details_lb9f>summary,.dropdown__menu,.menu__list{list-style:none}:root{--ifm-color-scheme:light;--ifm-dark-value:10%;--ifm-darker-value:15%;--ifm-darkest-value:30%;--ifm-light-value:15%;--ifm-lighter-value:30%;--ifm-lightest-value:50%;--ifm-contrast-background-value:90%;--ifm-contrast-foreground-value:70%;--ifm-contrast-background-dark-value:70%;--ifm-contrast-foreground-dark-value:90%;--ifm-color-primary:#3578e5;--ifm-color-secondary:#ebedf0;--ifm-color-success:#00a400;--ifm-color-info:#54c7ec;--ifm-color-warning:#ffba00;--ifm-color-danger:#fa383e;--ifm-color-primary-dark:#306cce;--ifm-color-primary-darker:#2d66c3;--ifm-color-primary-darkest:#2554a0;--ifm-color-primary-light:#538ce9;--ifm-color-primary-lighter:#72a1ed;--ifm-color-primary-lightest:#9abcf2;--ifm-color-primary-contrast-background:#ebf2fc;--ifm-color-primary-contrast-foreground:#102445;--ifm-color-secondary-dark:#d4d5d8;--ifm-color-secondary-darker:#c8c9cc;--ifm-color-secondary-darkest:#a4a6a8;--ifm-color-secondary-light:#eef0f2;--ifm-color-secondary-lighter:#f1f2f5;--ifm-color-secondary-lightest:#f5f6f8;--ifm-color-secondary-contrast-background:#fdfdfe;--ifm-color-secondary-contrast-foreground:#474748;--ifm-color-success-dark:#009400;--ifm-color-success-darker:#008b00;--ifm-color-success-darkest:#007300;--ifm-color-success-light:#26b226;--ifm-color-success-lighter:#4dbf4d;--ifm-color-success-lightest:#80d280;--ifm-color-success-contrast-background:#e6f6e6;--ifm-color-success-contrast-foreground:#003100;--ifm-color-info-dark:#4cb3d4;--ifm-color-info-darker:#47a9c9;--ifm-color-info-darkest:#3b8ba5;--ifm-color-info-light:#6ecfef;--ifm-color-info-lighter:#87d8f2;--ifm-color-info-lightest:#aae3f6;--ifm-color-info-contrast-background:#eef9fd;--ifm-color-info-contrast-foreground:#193c47;--ifm-color-warning-dark:#e6a700;--ifm-color-warning-darker:#d99e00;--ifm-color-warning-darkest:#b38200;--ifm-color-warning-light:#ffc426;--ifm-color-warning-lighter:#ffcf4d;--ifm-color-warning-lightest:#ffdd80;--ifm-color-warning-contrast-background:#fff8e6;--ifm-color-warning-contrast-foreground:#4d3800;--ifm-color-danger-dark:#e13238;--ifm-color-danger-darker:#d53035;--ifm-color-danger-darkest:#af272b;--ifm-color-danger-light:#fb565b;--ifm-color-danger-lighter:#fb7478;--ifm-color-danger-lightest:#fd9c9f;--ifm-color-danger-contrast-background:#ffebec;--ifm-color-danger-contrast-foreground:#4b1113;--ifm-color-white:#fff;--ifm-color-black:#000;--ifm-color-gray-0:var(--ifm-color-white);--ifm-color-gray-100:#f5f6f7;--ifm-color-gray-200:#ebedf0;--ifm-color-gray-300:#dadde1;--ifm-color-gray-400:#ccd0d5;--ifm-color-gray-500:#bec3c9;--ifm-color-gray-600:#8d949e;--ifm-color-gray-700:#606770;--ifm-color-gray-800:#444950;--ifm-color-gray-900:#1c1e21;--ifm-color-gray-1000:var(--ifm-color-black);--ifm-color-emphasis-0:var(--ifm-color-gray-0);--ifm-color-emphasis-100:var(--ifm-color-gray-100);--ifm-color-emphasis-200:var(--ifm-color-gray-200);--ifm-color-emphasis-300:var(--ifm-color-gray-300);--ifm-color-emphasis-400:var(--ifm-color-gray-400);--ifm-color-emphasis-600:var(--ifm-color-gray-600);--ifm-color-emphasis-700:var(--ifm-color-gray-700);--ifm-color-emphasis-800:var(--ifm-color-gray-800);--ifm-color-emphasis-900:var(--ifm-color-gray-900);--ifm-color-emphasis-1000:var(--ifm-color-gray-1000);--ifm-color-content:var(--ifm-color-emphasis-900);--ifm-color-content-inverse:var(--ifm-color-emphasis-0);--ifm-color-content-secondary:#525860;--ifm-background-color:#0000;--ifm-background-surface-color:var(--ifm-color-content-inverse);--ifm-global-border-width:1px;--ifm-global-radius:0.4rem;--ifm-hover-overlay:#0000000d;--ifm-font-color-base:var(--ifm-color-content);--ifm-font-color-base-inverse:var(--ifm-color-content-inverse);--ifm-font-color-secondary:var(--ifm-color-content-secondary);--ifm-font-family-base:system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,sans-serif,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";--ifm-font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--ifm-font-size-base:100%;--ifm-font-weight-light:300;--ifm-font-weight-normal:400;--ifm-font-weight-semibold:500;--ifm-font-weight-bold:700;--ifm-font-weight-base:var(--ifm-font-weight-normal);--ifm-line-height-base:1.65;--ifm-global-spacing:1rem;--ifm-spacing-vertical:var(--ifm-global-spacing);--ifm-spacing-horizontal:var(--ifm-global-spacing);--ifm-transition-fast:200ms;--ifm-transition-slow:400ms;--ifm-transition-timing-default:cubic-bezier(0.08,0.52,0.52,1);--ifm-global-shadow-lw:0 1px 2px 0 #0000001a;--ifm-global-shadow-md:0 5px 40px #0003;--ifm-global-shadow-tl:0 12px 28px 0 #0003,0 2px 4px 0 #0000001a;--ifm-z-index-dropdown:100;--ifm-z-index-fixed:200;--ifm-z-index-overlay:400;--ifm-container-width:1140px;--ifm-container-width-xl:1320px;--ifm-code-background:#f6f7f8;--ifm-code-border-radius:var(--ifm-global-radius);--ifm-code-font-size:90%;--ifm-code-padding-horizontal:0.1rem;--ifm-code-padding-vertical:0.1rem;--ifm-pre-background:var(--ifm-code-background);--ifm-pre-border-radius:var(--ifm-code-border-radius);--ifm-pre-color:inherit;--ifm-pre-line-height:1.45;--ifm-pre-padding:1rem;--ifm-heading-color:inherit;--ifm-heading-margin-top:0;--ifm-heading-margin-bottom:var(--ifm-spacing-vertical);--ifm-heading-font-family:var(--ifm-font-family-base);--ifm-heading-font-weight:var(--ifm-font-weight-bold);--ifm-heading-line-height:1.25;--ifm-h1-font-size:2rem;--ifm-h2-font-size:1.5rem;--ifm-h3-font-size:1.25rem;--ifm-h4-font-size:1rem;--ifm-h5-font-size:0.875rem;--ifm-h6-font-size:0.85rem;--ifm-image-alignment-padding:1.25rem;--ifm-leading-desktop:1.25;--ifm-leading:calc(var(--ifm-leading-desktop)*1rem);--ifm-list-left-padding:2rem;--ifm-list-margin:1rem;--ifm-list-item-margin:0.25rem;--ifm-list-paragraph-margin:1rem;--ifm-table-cell-padding:0.75rem;--ifm-table-background:#0000;--ifm-table-stripe-background:#00000008;--ifm-table-border-width:1px;--ifm-table-border-color:var(--ifm-color-emphasis-300);--ifm-table-head-background:inherit;--ifm-table-head-color:inherit;--ifm-table-head-font-weight:var(--ifm-font-weight-bold);--ifm-table-cell-color:inherit;--ifm-link-color:var(--ifm-color-primary);--ifm-link-decoration:none;--ifm-link-hover-color:var(--ifm-link-color);--ifm-link-hover-decoration:underline;--ifm-paragraph-margin-bottom:var(--ifm-leading);--ifm-blockquote-font-size:var(--ifm-font-size-base);--ifm-blockquote-border-left-width:2px;--ifm-blockquote-padding-horizontal:var(--ifm-spacing-horizontal);--ifm-blockquote-padding-vertical:0;--ifm-blockquote-shadow:none;--ifm-blockquote-color:var(--ifm-color-emphasis-800);--ifm-blockquote-border-color:var(--ifm-color-emphasis-300);--ifm-hr-background-color:var(--ifm-color-emphasis-500);--ifm-hr-height:1px;--ifm-hr-margin-vertical:1.5rem;--ifm-scrollbar-size:7px;--ifm-scrollbar-track-background-color:#f1f1f1;--ifm-scrollbar-thumb-background-color:silver;--ifm-scrollbar-thumb-hover-background-color:#a7a7a7;--ifm-alert-background-color:inherit;--ifm-alert-border-color:inherit;--ifm-alert-border-radius:var(--ifm-global-radius);--ifm-alert-border-width:0px;--ifm-alert-border-left-width:5px;--ifm-alert-color:var(--ifm-font-color-base);--ifm-alert-padding-horizontal:var(--ifm-spacing-horizontal);--ifm-alert-padding-vertical:var(--ifm-spacing-vertical);--ifm-alert-shadow:var(--ifm-global-shadow-lw);--ifm-avatar-intro-margin:1rem;--ifm-avatar-intro-alignment:inherit;--ifm-avatar-photo-size:3rem;--ifm-badge-background-color:inherit;--ifm-badge-border-color:inherit;--ifm-badge-border-radius:var(--ifm-global-radius);--ifm-badge-border-width:var(--ifm-global-border-width);--ifm-badge-color:var(--ifm-color-white);--ifm-badge-padding-horizontal:calc(var(--ifm-spacing-horizontal)*0.5);--ifm-badge-padding-vertical:calc(var(--ifm-spacing-vertical)*0.25);--ifm-breadcrumb-border-radius:1.5rem;--ifm-breadcrumb-spacing:0.5rem;--ifm-breadcrumb-color-active:var(--ifm-color-primary);--ifm-breadcrumb-item-background-active:var(--ifm-hover-overlay);--ifm-breadcrumb-padding-horizontal:0.8rem;--ifm-breadcrumb-padding-vertical:0.4rem;--ifm-breadcrumb-size-multiplier:1;--ifm-breadcrumb-separator:url('data:image/svg+xml;utf8,');--ifm-breadcrumb-separator-filter:none;--ifm-breadcrumb-separator-size:0.5rem;--ifm-breadcrumb-separator-size-multiplier:1.25;--ifm-button-background-color:inherit;--ifm-button-border-color:var(--ifm-button-background-color);--ifm-button-border-width:var(--ifm-global-border-width);--ifm-button-font-weight:var(--ifm-font-weight-bold);--ifm-button-padding-horizontal:1.5rem;--ifm-button-padding-vertical:0.375rem;--ifm-button-size-multiplier:1;--ifm-button-transition-duration:var(--ifm-transition-fast);--ifm-button-border-radius:calc(var(--ifm-global-radius)*var(--ifm-button-size-multiplier));--ifm-button-group-spacing:2px;--ifm-card-background-color:var(--ifm-background-surface-color);--ifm-card-border-radius:calc(var(--ifm-global-radius)*2);--ifm-card-horizontal-spacing:var(--ifm-global-spacing);--ifm-card-vertical-spacing:var(--ifm-global-spacing);--ifm-toc-border-color:var(--ifm-color-emphasis-300);--ifm-toc-link-color:var(--ifm-color-content-secondary);--ifm-toc-padding-vertical:0.5rem;--ifm-toc-padding-horizontal:0.5rem;--ifm-dropdown-background-color:var(--ifm-background-surface-color);--ifm-dropdown-font-weight:var(--ifm-font-weight-semibold);--ifm-dropdown-link-color:var(--ifm-font-color-base);--ifm-dropdown-hover-background-color:var(--ifm-hover-overlay);--ifm-footer-background-color:var(--ifm-color-emphasis-100);--ifm-footer-color:inherit;--ifm-footer-link-color:var(--ifm-color-emphasis-700);--ifm-footer-link-hover-color:var(--ifm-color-primary);--ifm-footer-link-horizontal-spacing:0.5rem;--ifm-footer-padding-horizontal:calc(var(--ifm-spacing-horizontal)*2);--ifm-footer-padding-vertical:calc(var(--ifm-spacing-vertical)*2);--ifm-footer-title-color:inherit;--ifm-footer-logo-max-width:min(30rem,90vw);--ifm-hero-background-color:var(--ifm-background-surface-color);--ifm-hero-text-color:var(--ifm-color-emphasis-800);--ifm-menu-color:var(--ifm-color-emphasis-700);--ifm-menu-color-active:var(--ifm-color-primary);--ifm-menu-color-background-active:var(--ifm-hover-overlay);--ifm-menu-color-background-hover:var(--ifm-hover-overlay);--ifm-menu-link-padding-horizontal:0.75rem;--ifm-menu-link-padding-vertical:0.375rem;--ifm-menu-link-sublist-icon:url('data:image/svg+xml;utf8,');--ifm-menu-link-sublist-icon-filter:none;--ifm-navbar-background-color:var(--ifm-background-surface-color);--ifm-navbar-height:3.75rem;--ifm-navbar-item-padding-horizontal:0.75rem;--ifm-navbar-item-padding-vertical:0.25rem;--ifm-navbar-link-color:var(--ifm-font-color-base);--ifm-navbar-link-active-color:var(--ifm-link-color);--ifm-navbar-padding-horizontal:var(--ifm-spacing-horizontal);--ifm-navbar-padding-vertical:calc(var(--ifm-spacing-vertical)*0.5);--ifm-navbar-shadow:var(--ifm-global-shadow-lw);--ifm-navbar-search-input-background-color:var(--ifm-color-emphasis-200);--ifm-navbar-search-input-color:var(--ifm-color-emphasis-800);--ifm-navbar-search-input-placeholder-color:var(--ifm-color-emphasis-500);--ifm-navbar-search-input-icon:url('data:image/svg+xml;utf8,');--ifm-navbar-sidebar-width:83vw;--ifm-pagination-border-radius:var(--ifm-global-radius);--ifm-pagination-color-active:var(--ifm-color-primary);--ifm-pagination-font-size:1rem;--ifm-pagination-item-active-background:var(--ifm-hover-overlay);--ifm-pagination-page-spacing:0.2em;--ifm-pagination-padding-horizontal:calc(var(--ifm-spacing-horizontal)*1);--ifm-pagination-padding-vertical:calc(var(--ifm-spacing-vertical)*0.25);--ifm-pagination-nav-border-radius:var(--ifm-global-radius);--ifm-pagination-nav-color-hover:var(--ifm-color-primary);--ifm-pills-color-active:var(--ifm-color-primary);--ifm-pills-color-background-active:var(--ifm-hover-overlay);--ifm-pills-spacing:0.125rem;--ifm-tabs-color:var(--ifm-font-color-secondary);--ifm-tabs-color-active:var(--ifm-color-primary);--ifm-tabs-color-active-border:var(--ifm-tabs-color-active);--ifm-tabs-padding-horizontal:1rem;--ifm-tabs-padding-vertical:1rem;--docusaurus-progress-bar-color:var(--ifm-color-primary);--docusaurus-announcement-bar-height:auto;--docusaurus-tag-list-border:var(--ifm-color-emphasis-300);--docusaurus-collapse-button-bg:#0000;--docusaurus-collapse-button-bg-hover:#0000001a;--doc-sidebar-width:300px;--doc-sidebar-hidden-width:30px}.badge--danger,.badge--info,.badge--primary,.badge--secondary,.badge--success,.badge--warning{--ifm-badge-border-color:var(--ifm-badge-background-color)}.button--link,.button--outline{--ifm-button-background-color:#0000}*{box-sizing:border-box}html{-webkit-font-smoothing:antialiased;-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;background-color:var(--ifm-background-color);color:var(--ifm-font-color-base);color-scheme:var(--ifm-color-scheme);font:var(--ifm-font-size-base)/var(--ifm-line-height-base) var(--ifm-font-family-base);text-rendering:optimizelegibility}iframe{border:0;color-scheme:auto}.container{margin:0 auto;max-width:var(--ifm-container-width)}.container--fluid{max-width:inherit}.row{display:flex;flex-wrap:wrap;margin:0 calc(var(--ifm-spacing-horizontal)*-1)}.list_eTzJ article:last-child,.margin-bottom--none,.margin-vert--none,.markdown>:last-child{margin-bottom:0!important}.margin-top--none,.margin-vert--none{margin-top:0!important}.row--no-gutters{margin-left:0;margin-right:0}.margin-horiz--none,.margin-right--none{margin-right:0!important}.row--no-gutters>.col{padding-left:0;padding-right:0}.row--align-top{align-items:flex-start}.row--align-bottom{align-items:flex-end}.menuExternalLink_NmtK,.row--align-center{align-items:center}.row--align-stretch{align-items:stretch}.row--align-baseline{align-items:baseline}.col{--ifm-col-width:100%;flex:1 0;margin-left:0;max-width:var(--ifm-col-width)}.padding-bottom--none,.padding-vert--none{padding-bottom:0!important}.padding-top--none,.padding-vert--none{padding-top:0!important}.padding-horiz--none,.padding-left--none{padding-left:0!important}.padding-horiz--none,.padding-right--none{padding-right:0!important}.col[class*=col--]{flex:0 0 var(--ifm-col-width)}.col--1{--ifm-col-width:8.33333%}.col--offset-1{margin-left:8.33333%}.col--2{--ifm-col-width:16.66667%}.col--offset-2{margin-left:16.66667%}.col--3{--ifm-col-width:25%}.col--offset-3{margin-left:25%}.col--4{--ifm-col-width:33.33333%}.col--offset-4{margin-left:33.33333%}.col--5{--ifm-col-width:41.66667%}.col--offset-5{margin-left:41.66667%}.col--6{--ifm-col-width:50%}.col--offset-6{margin-left:50%}.col--7{--ifm-col-width:58.33333%}.col--offset-7{margin-left:58.33333%}.col--8{--ifm-col-width:66.66667%}.col--offset-8{margin-left:66.66667%}.col--9{--ifm-col-width:75%}.col--offset-9{margin-left:75%}.col--10{--ifm-col-width:83.33333%}.col--offset-10{margin-left:83.33333%}.col--11{--ifm-col-width:91.66667%}.col--offset-11{margin-left:91.66667%}.col--12{--ifm-col-width:100%}.col--offset-12{margin-left:100%}.margin-horiz--none,.margin-left--none{margin-left:0!important}.margin--none{margin:0!important}.margin-bottom--xs,.margin-vert--xs{margin-bottom:.25rem!important}.margin-top--xs,.margin-vert--xs{margin-top:.25rem!important}.margin-horiz--xs,.margin-left--xs{margin-left:.25rem!important}.margin-horiz--xs,.margin-right--xs{margin-right:.25rem!important}.margin--xs{margin:.25rem!important}.margin-bottom--sm,.margin-vert--sm{margin-bottom:.5rem!important}.margin-top--sm,.margin-vert--sm{margin-top:.5rem!important}.margin-horiz--sm,.margin-left--sm{margin-left:.5rem!important}.margin-horiz--sm,.margin-right--sm{margin-right:.5rem!important}.margin--sm{margin:.5rem!important}.margin-bottom--md,.margin-vert--md{margin-bottom:1rem!important}.margin-top--md,.margin-vert--md{margin-top:1rem!important}.margin-horiz--md,.margin-left--md{margin-left:1rem!important}.margin-horiz--md,.margin-right--md{margin-right:1rem!important}.margin--md{margin:1rem!important}.margin-bottom--lg,.margin-vert--lg{margin-bottom:2rem!important}.margin-top--lg,.margin-vert--lg{margin-top:2rem!important}.margin-horiz--lg,.margin-left--lg{margin-left:2rem!important}.margin-horiz--lg,.margin-right--lg{margin-right:2rem!important}.margin--lg{margin:2rem!important}.margin-bottom--xl,.margin-vert--xl{margin-bottom:5rem!important}.margin-top--xl,.margin-vert--xl{margin-top:5rem!important}.margin-horiz--xl,.margin-left--xl{margin-left:5rem!important}.margin-horiz--xl,.margin-right--xl{margin-right:5rem!important}.margin--xl{margin:5rem!important}.padding--none{padding:0!important}.padding-bottom--xs,.padding-vert--xs{padding-bottom:.25rem!important}.padding-top--xs,.padding-vert--xs{padding-top:.25rem!important}.padding-horiz--xs,.padding-left--xs{padding-left:.25rem!important}.padding-horiz--xs,.padding-right--xs{padding-right:.25rem!important}.padding--xs{padding:.25rem!important}.padding-bottom--sm,.padding-vert--sm{padding-bottom:.5rem!important}.padding-top--sm,.padding-vert--sm{padding-top:.5rem!important}.padding-horiz--sm,.padding-left--sm{padding-left:.5rem!important}.padding-horiz--sm,.padding-right--sm{padding-right:.5rem!important}.padding--sm{padding:.5rem!important}.padding-bottom--md,.padding-vert--md{padding-bottom:1rem!important}.padding-top--md,.padding-vert--md{padding-top:1rem!important}.padding-horiz--md,.padding-left--md{padding-left:1rem!important}.padding-horiz--md,.padding-right--md{padding-right:1rem!important}.padding--md{padding:1rem!important}.padding-bottom--lg,.padding-vert--lg{padding-bottom:2rem!important}.padding-top--lg,.padding-vert--lg{padding-top:2rem!important}.padding-horiz--lg,.padding-left--lg{padding-left:2rem!important}.padding-horiz--lg,.padding-right--lg{padding-right:2rem!important}.padding--lg{padding:2rem!important}.padding-bottom--xl,.padding-vert--xl{padding-bottom:5rem!important}.padding-top--xl,.padding-vert--xl{padding-top:5rem!important}.padding-horiz--xl,.padding-left--xl{padding-left:5rem!important}.padding-horiz--xl,.padding-right--xl{padding-right:5rem!important}.padding--xl{padding:5rem!important}code{background-color:var(--ifm-code-background);border:.1rem solid #0000001a;border-radius:var(--ifm-code-border-radius);font-family:var(--ifm-font-family-monospace);font-size:var(--ifm-code-font-size);padding:var(--ifm-code-padding-vertical) var(--ifm-code-padding-horizontal)}a code{color:inherit}pre{background-color:var(--ifm-pre-background);border-radius:var(--ifm-pre-border-radius);color:var(--ifm-pre-color);font:var(--ifm-code-font-size)/var(--ifm-pre-line-height) var(--ifm-font-family-monospace);padding:var(--ifm-pre-padding)}pre code{background-color:initial;border:none;font-size:100%;line-height:inherit;padding:0}kbd{background-color:var(--ifm-color-emphasis-0);border:1px solid var(--ifm-color-emphasis-400);border-radius:.2rem;box-shadow:inset 0 -1px 0 var(--ifm-color-emphasis-400);color:var(--ifm-color-emphasis-800);font:80% var(--ifm-font-family-monospace);padding:.15rem .3rem}h1,h2,h3,h4,h5,h6{color:var(--ifm-heading-color);font-family:var(--ifm-heading-font-family);font-weight:var(--ifm-heading-font-weight);line-height:var(--ifm-heading-line-height);margin:var(--ifm-heading-margin-top) 0 var(--ifm-heading-margin-bottom) 0}h1{font-size:var(--ifm-h1-font-size)}h2{font-size:var(--ifm-h2-font-size)}h3{font-size:var(--ifm-h3-font-size)}h4{font-size:var(--ifm-h4-font-size)}h5{font-size:var(--ifm-h5-font-size)}h6{font-size:var(--ifm-h6-font-size)}img{max-width:100%}img[align=right]{padding-left:var(--image-alignment-padding)}img[align=left]{padding-right:var(--image-alignment-padding)}.markdown{--ifm-h1-vertical-rhythm-top:3;--ifm-h2-vertical-rhythm-top:2;--ifm-h3-vertical-rhythm-top:1.5;--ifm-heading-vertical-rhythm-top:1.25;--ifm-h1-vertical-rhythm-bottom:1.25;--ifm-heading-vertical-rhythm-bottom:1}.markdown:after,.markdown:before{content:"";display:table}.markdown:after{clear:both}.markdown h1:first-child{--ifm-h1-font-size:3rem;margin-bottom:calc(var(--ifm-h1-vertical-rhythm-bottom)*var(--ifm-leading))}.markdown>h2{--ifm-h2-font-size:2rem;margin-top:calc(var(--ifm-h2-vertical-rhythm-top)*var(--ifm-leading))}.markdown>h3{--ifm-h3-font-size:1.5rem;margin-top:calc(var(--ifm-h3-vertical-rhythm-top)*var(--ifm-leading))}.markdown>h4,.markdown>h5,.markdown>h6{margin-top:calc(var(--ifm-heading-vertical-rhythm-top)*var(--ifm-leading))}.markdown>p,.markdown>pre,.markdown>ul{margin-bottom:var(--ifm-leading)}.markdown li>p{margin-top:var(--ifm-list-paragraph-margin)}.markdown li+li{margin-top:var(--ifm-list-item-margin)}ol,ul{margin:0 0 var(--ifm-list-margin);padding-left:var(--ifm-list-left-padding)}ol ol,ul ol{list-style-type:lower-roman}ol ol ol,ol ul ol,ul ol ol,ul ul ol{list-style-type:lower-alpha}table{border-collapse:collapse;display:block;margin-bottom:var(--ifm-spacing-vertical)}table thead tr{border-bottom:2px solid var(--ifm-table-border-color)}table thead,table tr:nth-child(2n){background-color:var(--ifm-table-stripe-background)}table tr{background-color:var(--ifm-table-background);border-top:var(--ifm-table-border-width) solid var(--ifm-table-border-color)}table td,table th{border:var(--ifm-table-border-width) solid var(--ifm-table-border-color);padding:var(--ifm-table-cell-padding)}table th{background-color:var(--ifm-table-head-background);color:var(--ifm-table-head-color);font-weight:var(--ifm-table-head-font-weight)}table td{color:var(--ifm-table-cell-color)}strong{font-weight:var(--ifm-font-weight-bold)}a{color:var(--ifm-link-color);text-decoration:var(--ifm-link-decoration)}a:hover{color:var(--ifm-link-hover-color);text-decoration:var(--ifm-link-hover-decoration)}.button:hover,.text--no-decoration,.text--no-decoration:hover,a:not([href]){text-decoration:none}p{margin:0 0 var(--ifm-paragraph-margin-bottom)}blockquote{border-left:var(--ifm-blockquote-border-left-width) solid var(--ifm-blockquote-border-color);box-shadow:var(--ifm-blockquote-shadow);color:var(--ifm-blockquote-color);font-size:var(--ifm-blockquote-font-size);padding:var(--ifm-blockquote-padding-vertical) var(--ifm-blockquote-padding-horizontal)}blockquote>:first-child{margin-top:0}blockquote>:last-child{margin-bottom:0}hr{background-color:var(--ifm-hr-background-color);border:0;height:var(--ifm-hr-height);margin:var(--ifm-hr-margin-vertical) 0}.shadow--lw{box-shadow:var(--ifm-global-shadow-lw)!important}.shadow--md{box-shadow:var(--ifm-global-shadow-md)!important}.shadow--tl{box-shadow:var(--ifm-global-shadow-tl)!important}.text--primary,.wordWrapButtonEnabled_EoeP .wordWrapButtonIcon_Bwma{color:var(--ifm-color-primary)}.text--secondary{color:var(--ifm-color-secondary)}.text--success{color:var(--ifm-color-success)}.text--info{color:var(--ifm-color-info)}.text--warning{color:var(--ifm-color-warning)}.text--danger{color:var(--ifm-color-danger)}.text--center{text-align:center}.text--left{text-align:left}.text--justify{text-align:justify}.text--right{text-align:right}.text--capitalize{text-transform:capitalize}.text--lowercase{text-transform:lowercase}.admonitionHeading_Gvgb,.alert__heading,.text--uppercase{text-transform:uppercase}.text--light{font-weight:var(--ifm-font-weight-light)}.text--normal{font-weight:var(--ifm-font-weight-normal)}.text--semibold{font-weight:var(--ifm-font-weight-semibold)}.text--bold{font-weight:var(--ifm-font-weight-bold)}.text--italic{font-style:italic}.text--truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text--break{word-wrap:break-word!important;word-break:break-word!important}.clean-btn{background:none;border:none;color:inherit;cursor:pointer;font-family:inherit;padding:0}.alert,.alert .close{color:var(--ifm-alert-foreground-color)}.clean-list{padding-left:0}.alert--primary{--ifm-alert-background-color:var(--ifm-color-primary-contrast-background);--ifm-alert-background-color-highlight:#3578e526;--ifm-alert-foreground-color:var(--ifm-color-primary-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-primary-dark)}.alert--secondary{--ifm-alert-background-color:var(--ifm-color-secondary-contrast-background);--ifm-alert-background-color-highlight:#ebedf026;--ifm-alert-foreground-color:var(--ifm-color-secondary-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-secondary-dark)}.alert--success{--ifm-alert-background-color:var(--ifm-color-success-contrast-background);--ifm-alert-background-color-highlight:#00a40026;--ifm-alert-foreground-color:var(--ifm-color-success-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-success-dark)}.alert--info{--ifm-alert-background-color:var(--ifm-color-info-contrast-background);--ifm-alert-background-color-highlight:#54c7ec26;--ifm-alert-foreground-color:var(--ifm-color-info-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-info-dark)}.alert--warning{--ifm-alert-background-color:var(--ifm-color-warning-contrast-background);--ifm-alert-background-color-highlight:#ffba0026;--ifm-alert-foreground-color:var(--ifm-color-warning-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-warning-dark)}.alert--danger{--ifm-alert-background-color:var(--ifm-color-danger-contrast-background);--ifm-alert-background-color-highlight:#fa383e26;--ifm-alert-foreground-color:var(--ifm-color-danger-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-danger-dark)}.alert{--ifm-code-background:var(--ifm-alert-background-color-highlight);--ifm-link-color:var(--ifm-alert-foreground-color);--ifm-link-hover-color:var(--ifm-alert-foreground-color);--ifm-link-decoration:underline;--ifm-tabs-color:var(--ifm-alert-foreground-color);--ifm-tabs-color-active:var(--ifm-alert-foreground-color);--ifm-tabs-color-active-border:var(--ifm-alert-border-color);background-color:var(--ifm-alert-background-color);border:var(--ifm-alert-border-width) solid var(--ifm-alert-border-color);border-left-width:var(--ifm-alert-border-left-width);border-radius:var(--ifm-alert-border-radius);box-shadow:var(--ifm-alert-shadow);padding:var(--ifm-alert-padding-vertical) var(--ifm-alert-padding-horizontal)}.alert__heading{align-items:center;display:flex;font:700 var(--ifm-h5-font-size)/var(--ifm-heading-line-height) var(--ifm-heading-font-family);margin-bottom:.5rem}.alert__icon{display:inline-flex;margin-right:.4em}.alert__icon svg{fill:var(--ifm-alert-foreground-color);stroke:var(--ifm-alert-foreground-color);stroke-width:0}.alert .close{margin:calc(var(--ifm-alert-padding-vertical)*-1) calc(var(--ifm-alert-padding-horizontal)*-1) 0 0;opacity:.75}.alert .close:focus,.alert .close:hover{opacity:1}.alert a{text-decoration-color:var(--ifm-alert-border-color)}.alert a:hover{text-decoration-thickness:2px}.avatar{column-gap:var(--ifm-avatar-intro-margin);display:flex}.avatar__photo{border-radius:50%;display:block;height:var(--ifm-avatar-photo-size);overflow:hidden;width:var(--ifm-avatar-photo-size)}.card--full-height,.navbar__logo img,body,html{height:100%}.avatar__photo--sm{--ifm-avatar-photo-size:2rem}.avatar__photo--lg{--ifm-avatar-photo-size:4rem}.avatar__photo--xl{--ifm-avatar-photo-size:6rem}.avatar__intro{display:flex;flex:1 1;flex-direction:column;justify-content:center;text-align:var(--ifm-avatar-intro-alignment)}.badge,.breadcrumbs__item,.breadcrumbs__link,.button,.dropdown>.navbar__link:after{display:inline-block}.avatar__name{font:700 var(--ifm-h4-font-size)/var(--ifm-heading-line-height) var(--ifm-font-family-base)}.avatar__subtitle{margin-top:.25rem}.avatar--vertical{--ifm-avatar-intro-alignment:center;--ifm-avatar-intro-margin:0.5rem;align-items:center;flex-direction:column}.badge{background-color:var(--ifm-badge-background-color);border:var(--ifm-badge-border-width) solid var(--ifm-badge-border-color);border-radius:var(--ifm-badge-border-radius);color:var(--ifm-badge-color);font-size:75%;font-weight:var(--ifm-font-weight-bold);line-height:1;padding:var(--ifm-badge-padding-vertical) var(--ifm-badge-padding-horizontal)}.badge--primary{--ifm-badge-background-color:var(--ifm-color-primary)}.badge--secondary{--ifm-badge-background-color:var(--ifm-color-secondary);color:var(--ifm-color-black)}.breadcrumbs__link,.button.button--secondary.button--outline:not(.button--active):not(:hover){color:var(--ifm-font-color-base)}.badge--success{--ifm-badge-background-color:var(--ifm-color-success)}.badge--info{--ifm-badge-background-color:var(--ifm-color-info)}.badge--warning{--ifm-badge-background-color:var(--ifm-color-warning)}.badge--danger{--ifm-badge-background-color:var(--ifm-color-danger)}.breadcrumbs{margin-bottom:0;padding-left:0}.breadcrumbs__item:not(:last-child):after{background:var(--ifm-breadcrumb-separator) center;content:" ";display:inline-block;filter:var(--ifm-breadcrumb-separator-filter);height:calc(var(--ifm-breadcrumb-separator-size)*var(--ifm-breadcrumb-size-multiplier)*var(--ifm-breadcrumb-separator-size-multiplier));margin:0 var(--ifm-breadcrumb-spacing);opacity:.5;width:calc(var(--ifm-breadcrumb-separator-size)*var(--ifm-breadcrumb-size-multiplier)*var(--ifm-breadcrumb-separator-size-multiplier))}.breadcrumbs__item--active .breadcrumbs__link{background:var(--ifm-breadcrumb-item-background-active);color:var(--ifm-breadcrumb-color-active)}.breadcrumbs__link{border-radius:var(--ifm-breadcrumb-border-radius);font-size:calc(1rem*var(--ifm-breadcrumb-size-multiplier));padding:calc(var(--ifm-breadcrumb-padding-vertical)*var(--ifm-breadcrumb-size-multiplier)) calc(var(--ifm-breadcrumb-padding-horizontal)*var(--ifm-breadcrumb-size-multiplier));transition-duration:var(--ifm-transition-fast);transition-property:background,color}.breadcrumbs__link:any-link:hover,.breadcrumbs__link:link:hover,.breadcrumbs__link:visited:hover,area[href].breadcrumbs__link:hover{background:var(--ifm-breadcrumb-item-background-active);text-decoration:none}.breadcrumbs--sm{--ifm-breadcrumb-size-multiplier:0.8}.breadcrumbs--lg{--ifm-breadcrumb-size-multiplier:1.2}.button{background-color:var(--ifm-button-background-color);border:var(--ifm-button-border-width) solid var(--ifm-button-border-color);border-radius:var(--ifm-button-border-radius);cursor:pointer;font-size:calc(.875rem*var(--ifm-button-size-multiplier));font-weight:var(--ifm-button-font-weight);line-height:1.5;padding:calc(var(--ifm-button-padding-vertical)*var(--ifm-button-size-multiplier)) calc(var(--ifm-button-padding-horizontal)*var(--ifm-button-size-multiplier));text-align:center;transition-duration:var(--ifm-button-transition-duration);transition-property:color,background,border-color;-webkit-user-select:none;user-select:none;white-space:nowrap}.button,.button:hover{color:var(--ifm-button-color)}.button--outline{--ifm-button-color:var(--ifm-button-border-color)}.button--outline:hover{--ifm-button-background-color:var(--ifm-button-border-color)}.button--link{--ifm-button-border-color:#0000;color:var(--ifm-link-color);text-decoration:var(--ifm-link-decoration)}.button--link.button--active,.button--link:active,.button--link:hover{color:var(--ifm-link-hover-color);text-decoration:var(--ifm-link-hover-decoration)}.button.disabled,.button:disabled,.button[disabled]{opacity:.65;pointer-events:none}.button--sm{--ifm-button-size-multiplier:0.8}.button--lg{--ifm-button-size-multiplier:1.35}.button--block{display:block;width:100%}.button.button--secondary{color:var(--ifm-color-gray-900)}:where(.button--primary){--ifm-button-background-color:var(--ifm-color-primary);--ifm-button-border-color:var(--ifm-color-primary)}:where(.button--primary):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-primary-dark);--ifm-button-border-color:var(--ifm-color-primary-dark)}.button--primary.button--active,.button--primary:active{--ifm-button-background-color:var(--ifm-color-primary-darker);--ifm-button-border-color:var(--ifm-color-primary-darker)}:where(.button--secondary){--ifm-button-background-color:var(--ifm-color-secondary);--ifm-button-border-color:var(--ifm-color-secondary)}:where(.button--secondary):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-secondary-dark);--ifm-button-border-color:var(--ifm-color-secondary-dark)}.button--secondary.button--active,.button--secondary:active{--ifm-button-background-color:var(--ifm-color-secondary-darker);--ifm-button-border-color:var(--ifm-color-secondary-darker)}:where(.button--success){--ifm-button-background-color:var(--ifm-color-success);--ifm-button-border-color:var(--ifm-color-success)}:where(.button--success):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-success-dark);--ifm-button-border-color:var(--ifm-color-success-dark)}.button--success.button--active,.button--success:active{--ifm-button-background-color:var(--ifm-color-success-darker);--ifm-button-border-color:var(--ifm-color-success-darker)}:where(.button--info){--ifm-button-background-color:var(--ifm-color-info);--ifm-button-border-color:var(--ifm-color-info)}:where(.button--info):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-info-dark);--ifm-button-border-color:var(--ifm-color-info-dark)}.button--info.button--active,.button--info:active{--ifm-button-background-color:var(--ifm-color-info-darker);--ifm-button-border-color:var(--ifm-color-info-darker)}:where(.button--warning){--ifm-button-background-color:var(--ifm-color-warning);--ifm-button-border-color:var(--ifm-color-warning)}:where(.button--warning):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-warning-dark);--ifm-button-border-color:var(--ifm-color-warning-dark)}.button--warning.button--active,.button--warning:active{--ifm-button-background-color:var(--ifm-color-warning-darker);--ifm-button-border-color:var(--ifm-color-warning-darker)}:where(.button--danger){--ifm-button-background-color:var(--ifm-color-danger);--ifm-button-border-color:var(--ifm-color-danger)}:where(.button--danger):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-danger-dark);--ifm-button-border-color:var(--ifm-color-danger-dark)}.button--danger.button--active,.button--danger:active{--ifm-button-background-color:var(--ifm-color-danger-darker);--ifm-button-border-color:var(--ifm-color-danger-darker)}.button-group{display:inline-flex;gap:var(--ifm-button-group-spacing)}.button-group>.button:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.button-group>.button:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0}.button-group--block{display:flex;justify-content:stretch}.button-group--block>.button{flex-grow:1}.card{background-color:var(--ifm-card-background-color);border-radius:var(--ifm-card-border-radius);box-shadow:var(--ifm-global-shadow-lw);display:flex;flex-direction:column;overflow:hidden}.card__image{padding-top:var(--ifm-card-vertical-spacing)}.card__image:first-child{padding-top:0}.card__body,.card__footer,.card__header{padding:var(--ifm-card-vertical-spacing) var(--ifm-card-horizontal-spacing)}.card__body:not(:last-child),.card__footer:not(:last-child),.card__header:not(:last-child){padding-bottom:0}.card__body>:last-child,.card__footer>:last-child,.card__header>:last-child{margin-bottom:0}.card__footer{margin-top:auto}.table-of-contents{font-size:.8rem;margin-bottom:0;padding:var(--ifm-toc-padding-vertical) 0}.table-of-contents,.table-of-contents ul{list-style:none;padding-left:var(--ifm-toc-padding-horizontal)}.table-of-contents li{margin:var(--ifm-toc-padding-vertical) var(--ifm-toc-padding-horizontal)}.table-of-contents__left-border{border-left:1px solid var(--ifm-toc-border-color)}.table-of-contents__link{color:var(--ifm-toc-link-color);display:block}.table-of-contents__link--active,.table-of-contents__link--active code,.table-of-contents__link:hover,.table-of-contents__link:hover code{color:var(--ifm-color-primary);text-decoration:none}.close{color:var(--ifm-color-black);float:right;font-size:1.5rem;font-weight:var(--ifm-font-weight-bold);line-height:1;opacity:.5;padding:1rem;transition:opacity var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.close:hover{opacity:.7}.close:focus,.theme-code-block-highlighted-line .codeLineNumber_Tfdd:before{opacity:.8}.dropdown{display:inline-flex;font-weight:var(--ifm-dropdown-font-weight);position:relative;vertical-align:top}.dropdown--hoverable:hover .dropdown__menu,.dropdown--show .dropdown__menu{opacity:1;pointer-events:all;transform:translateY(-1px);visibility:visible}#nprogress,.dropdown__menu,.navbar__item.dropdown .navbar__link:not([href]){pointer-events:none}.dropdown--right .dropdown__menu{left:inherit;right:0}.dropdown--nocaret .navbar__link:after{content:none!important}.dropdown__menu{background-color:var(--ifm-dropdown-background-color);border-radius:var(--ifm-global-radius);box-shadow:var(--ifm-global-shadow-md);left:0;max-height:80vh;min-width:10rem;opacity:0;overflow-y:auto;padding:.5rem;position:absolute;top:calc(100% - var(--ifm-navbar-item-padding-vertical) + .3rem);transform:translateY(-.625rem);transition-duration:var(--ifm-transition-fast);transition-property:opacity,transform,visibility;transition-timing-function:var(--ifm-transition-timing-default);visibility:hidden;z-index:var(--ifm-z-index-dropdown)}.menu__caret,.menu__link,.menu__list-item-collapsible{border-radius:.25rem;transition:background var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.dropdown__link{border-radius:.25rem;color:var(--ifm-dropdown-link-color);display:block;font-size:.875rem;margin-top:.2rem;padding:.25rem .5rem;white-space:nowrap}.dropdown__link--active,.dropdown__link:hover{background-color:var(--ifm-dropdown-hover-background-color);color:var(--ifm-dropdown-link-color);text-decoration:none}.dropdown__link--active,.dropdown__link--active:hover{--ifm-dropdown-link-color:var(--ifm-link-color)}.dropdown>.navbar__link:after{border-color:currentcolor #0000;border-style:solid;border-width:.4em .4em 0;content:"";margin-left:.3em;position:relative;top:2px;transform:translateY(-50%)}.footer{background-color:var(--ifm-footer-background-color);color:var(--ifm-footer-color);padding:var(--ifm-footer-padding-vertical) var(--ifm-footer-padding-horizontal)}.footer--dark{--ifm-footer-background-color:#303846;--ifm-footer-color:var(--ifm-footer-link-color);--ifm-footer-link-color:var(--ifm-color-secondary);--ifm-footer-title-color:var(--ifm-color-white)}.footer__links{margin-bottom:1rem}.footer__link-item{color:var(--ifm-footer-link-color);line-height:2}.footer__link-item:hover{color:var(--ifm-footer-link-hover-color)}.footer__link-separator{margin:0 var(--ifm-footer-link-horizontal-spacing)}.footer__logo{margin-top:1rem;max-width:var(--ifm-footer-logo-max-width)}.footer__title{color:var(--ifm-footer-title-color);font:700 var(--ifm-h4-font-size)/var(--ifm-heading-line-height) var(--ifm-font-family-base);margin-bottom:var(--ifm-heading-margin-bottom)}.menu,.navbar__link{font-weight:var(--ifm-font-weight-semibold)}.docItemContainer_Djhp article>:first-child,.docItemContainer_Djhp header+*,.footer__item{margin-top:0}.admonitionContent_BuS1>:last-child,.cardContainer_fWXF :last-child,.collapsibleContent_i85q p:last-child,.details_lb9f>summary>p:last-child,.footer__items{margin-bottom:0}.codeBlockStandalone_MEMb,[type=checkbox]{padding:0}.hero{align-items:center;background-color:var(--ifm-hero-background-color);color:var(--ifm-hero-text-color);display:flex;padding:4rem 2rem}.hero--primary{--ifm-hero-background-color:var(--ifm-color-primary);--ifm-hero-text-color:var(--ifm-font-color-base-inverse)}.hero--dark{--ifm-hero-background-color:#303846;--ifm-hero-text-color:var(--ifm-color-white)}.hero__title{font-size:3rem}.hero__subtitle{font-size:1.5rem}.menu__list{margin:0;padding-left:0}.menu__caret,.menu__link{padding:var(--ifm-menu-link-padding-vertical) var(--ifm-menu-link-padding-horizontal)}.menu__list .menu__list{flex:0 0 100%;margin-top:.25rem;padding-left:var(--ifm-menu-link-padding-horizontal)}.menu__list-item:not(:first-child){margin-top:.25rem}.menu__list-item--collapsed .menu__list{height:0;overflow:hidden}.details_lb9f[data-collapsed=false].isBrowser_bmU9>summary:before,.details_lb9f[open]:not(.isBrowser_bmU9)>summary:before,.menu__list-item--collapsed .menu__caret:before,.menu__list-item--collapsed .menu__link--sublist:after{transform:rotate(90deg)}.menu__list-item-collapsible{display:flex;flex-wrap:wrap;position:relative}.menu__caret:hover,.menu__link:hover,.menu__list-item-collapsible--active,.menu__list-item-collapsible:hover{background:var(--ifm-menu-color-background-hover)}.menu__list-item-collapsible .menu__link--active,.menu__list-item-collapsible .menu__link:hover{background:none!important}.menu__caret,.menu__link{align-items:center;display:flex}.menu__link{color:var(--ifm-menu-color);flex:1;line-height:1.25}.menu__link:hover{color:var(--ifm-menu-color);text-decoration:none}.menu__caret:before,.menu__link--sublist-caret:after{height:1.25rem;transform:rotate(180deg);transition:transform var(--ifm-transition-fast) linear;width:1.25rem;filter:var(--ifm-menu-link-sublist-icon-filter);content:""}.menu__link--sublist-caret:after{background:var(--ifm-menu-link-sublist-icon) 50%/2rem 2rem;margin-left:auto;min-width:1.25rem}.menu__link--active,.menu__link--active:hover{color:var(--ifm-menu-color-active)}.navbar__brand,.navbar__link{color:var(--ifm-navbar-link-color)}.menu__link--active:not(.menu__link--sublist){background-color:var(--ifm-menu-color-background-active)}.menu__caret:before{background:var(--ifm-menu-link-sublist-icon) 50%/2rem 2rem}.navbar--dark,html[data-theme=dark]{--ifm-menu-link-sublist-icon-filter:invert(100%) sepia(94%) saturate(17%) hue-rotate(223deg) brightness(104%) contrast(98%)}.navbar{background-color:var(--ifm-navbar-background-color);box-shadow:var(--ifm-navbar-shadow);height:var(--ifm-navbar-height);padding:var(--ifm-navbar-padding-vertical) var(--ifm-navbar-padding-horizontal)}.navbar,.navbar>.container,.navbar>.container-fluid{display:flex}.navbar--fixed-top{position:-webkit-sticky;position:sticky;top:0;z-index:var(--ifm-z-index-fixed)}.navbar-sidebar,.navbar-sidebar__backdrop{bottom:0;opacity:0;position:fixed;transition-duration:var(--ifm-transition-fast);transition-timing-function:ease-in-out;left:0;top:0;visibility:hidden}.navbar__inner{display:flex;flex-wrap:wrap;justify-content:space-between;width:100%}.navbar__brand{align-items:center;display:flex;margin-right:1rem;min-width:0}.navbar__brand:hover{color:var(--ifm-navbar-link-hover-color);text-decoration:none}.announcementBarContent_xLdY,.navbar__title{flex:1 1 auto}.navbar__toggle{display:none;margin-right:.5rem}.navbar__logo{flex:0 0 auto;height:2rem;margin-right:.5rem}.navbar__items{align-items:center;display:flex;flex:1;min-width:0}.navbar__items--center{flex:0 0 auto}.navbar__items--center .navbar__brand{margin:0}.navbar__items--center+.navbar__items--right{flex:1}.navbar__items--right{flex:0 0 auto;justify-content:flex-end}.navbar__items--right>:last-child{padding-right:0}.navbar__item{display:inline-block;padding:var(--ifm-navbar-item-padding-vertical) var(--ifm-navbar-item-padding-horizontal)}.navbar__link--active,.navbar__link:hover{color:var(--ifm-navbar-link-hover-color);text-decoration:none}.navbar--dark,.navbar--primary{--ifm-menu-color:var(--ifm-color-gray-300);--ifm-navbar-link-color:var(--ifm-color-gray-100);--ifm-navbar-search-input-background-color:#ffffff1a;--ifm-navbar-search-input-placeholder-color:#ffffff80;color:var(--ifm-color-white)}.navbar--dark{--ifm-navbar-background-color:#242526;--ifm-menu-color-background-active:#ffffff0d;--ifm-navbar-search-input-color:var(--ifm-color-white)}.navbar--primary{--ifm-navbar-background-color:var(--ifm-color-primary);--ifm-navbar-link-hover-color:var(--ifm-color-white);--ifm-menu-color-active:var(--ifm-color-white);--ifm-navbar-search-input-color:var(--ifm-color-emphasis-500)}.navbar__search-input{-webkit-appearance:none;appearance:none;background:var(--ifm-navbar-search-input-background-color) var(--ifm-navbar-search-input-icon) no-repeat .75rem center/1rem 1rem;border:none;border-radius:2rem;color:var(--ifm-navbar-search-input-color);cursor:text;display:inline-block;font-size:.9rem;height:2rem;padding:0 .5rem 0 2.25rem;width:12.5rem}.navbar__search-input::placeholder{color:var(--ifm-navbar-search-input-placeholder-color)}.navbar-sidebar{background-color:var(--ifm-navbar-background-color);box-shadow:var(--ifm-global-shadow-md);transform:translate3d(-100%,0,0);transition-property:opacity,visibility,transform;width:var(--ifm-navbar-sidebar-width)}.navbar-sidebar--show .navbar-sidebar,.navbar-sidebar__items{transform:translateZ(0)}.navbar-sidebar--show .navbar-sidebar,.navbar-sidebar--show .navbar-sidebar__backdrop{opacity:1;visibility:visible}.navbar-sidebar__backdrop{background-color:#0009;right:0;transition-property:opacity,visibility}.navbar-sidebar__brand{align-items:center;box-shadow:var(--ifm-navbar-shadow);display:flex;flex:1;height:var(--ifm-navbar-height);padding:var(--ifm-navbar-padding-vertical) var(--ifm-navbar-padding-horizontal)}.navbar-sidebar__items{display:flex;height:calc(100% - var(--ifm-navbar-height));transition:transform var(--ifm-transition-fast) ease-in-out}.navbar-sidebar__items--show-secondary{transform:translate3d(calc((var(--ifm-navbar-sidebar-width))*-1),0,0)}.navbar-sidebar__item{flex-shrink:0;padding:.5rem;width:calc(var(--ifm-navbar-sidebar-width))}.navbar-sidebar__back{background:var(--ifm-menu-color-background-active);font-size:15px;font-weight:var(--ifm-button-font-weight);margin:0 0 .2rem -.5rem;padding:.6rem 1.5rem;position:relative;text-align:left;top:-.5rem;width:calc(100% + 1rem)}.navbar-sidebar__close{display:flex;margin-left:auto}.pagination{column-gap:var(--ifm-pagination-page-spacing);display:flex;font-size:var(--ifm-pagination-font-size);padding-left:0}.pagination--sm{--ifm-pagination-font-size:0.8rem;--ifm-pagination-padding-horizontal:0.8rem;--ifm-pagination-padding-vertical:0.2rem}.pagination--lg{--ifm-pagination-font-size:1.2rem;--ifm-pagination-padding-horizontal:1.2rem;--ifm-pagination-padding-vertical:0.3rem}.pagination__item{display:inline-flex}.pagination__item>span{padding:var(--ifm-pagination-padding-vertical)}.pagination__item--active .pagination__link{color:var(--ifm-pagination-color-active)}.pagination__item--active .pagination__link,.pagination__item:not(.pagination__item--active):hover .pagination__link{background:var(--ifm-pagination-item-active-background)}.pagination__item--disabled,.pagination__item[disabled]{opacity:.25;pointer-events:none}.pagination__link{border-radius:var(--ifm-pagination-border-radius);color:var(--ifm-font-color-base);display:inline-block;padding:var(--ifm-pagination-padding-vertical) var(--ifm-pagination-padding-horizontal);transition:background var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.pagination__link:hover{text-decoration:none}.pagination-nav{grid-gap:var(--ifm-spacing-horizontal);display:grid;gap:var(--ifm-spacing-horizontal);grid-template-columns:repeat(2,1fr)}.pagination-nav__link{border:1px solid var(--ifm-color-emphasis-300);border-radius:var(--ifm-pagination-nav-border-radius);display:block;height:100%;line-height:var(--ifm-heading-line-height);padding:var(--ifm-global-spacing);transition:border-color var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.pagination-nav__link:hover{border-color:var(--ifm-pagination-nav-color-hover);text-decoration:none}.pagination-nav__link--next{grid-column:2/3;text-align:right}.pagination-nav__label{font-size:var(--ifm-h4-font-size);font-weight:var(--ifm-heading-font-weight);word-break:break-word}.pagination-nav__link--prev .pagination-nav__label:before{content:"« "}.pagination-nav__link--next .pagination-nav__label:after{content:" »"}.pagination-nav__sublabel{color:var(--ifm-color-content-secondary);font-size:var(--ifm-h5-font-size);font-weight:var(--ifm-font-weight-semibold);margin-bottom:.25rem}.pills__item,.tabs{font-weight:var(--ifm-font-weight-bold)}.pills{display:flex;gap:var(--ifm-pills-spacing);padding-left:0}.pills__item{border-radius:.5rem;cursor:pointer;display:inline-block;padding:.25rem 1rem;transition:background var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.tabs,:not(.containsTaskList_mC6p>li)>.containsTaskList_mC6p{padding-left:0}.pills__item--active{color:var(--ifm-pills-color-active)}.pills__item--active,.pills__item:not(.pills__item--active):hover{background:var(--ifm-pills-color-background-active)}.pills--block{justify-content:stretch}.pills--block .pills__item{flex-grow:1;text-align:center}.tabs{color:var(--ifm-tabs-color);display:flex;margin-bottom:0;overflow-x:auto}.tabs__item{border-bottom:3px solid #0000;border-radius:var(--ifm-global-radius);cursor:pointer;display:inline-flex;padding:var(--ifm-tabs-padding-vertical) var(--ifm-tabs-padding-horizontal);transition:background-color var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.tabs__item--active{border-bottom-color:var(--ifm-tabs-color-active-border);border-bottom-left-radius:0;border-bottom-right-radius:0;color:var(--ifm-tabs-color-active)}.tabs__item:hover{background-color:var(--ifm-hover-overlay)}.tabs--block{justify-content:stretch}.tabs--block .tabs__item{flex-grow:1;justify-content:center}html[data-theme=dark]{--ifm-color-scheme:dark;--ifm-color-emphasis-0:var(--ifm-color-gray-1000);--ifm-color-emphasis-100:var(--ifm-color-gray-900);--ifm-color-emphasis-200:var(--ifm-color-gray-800);--ifm-color-emphasis-300:var(--ifm-color-gray-700);--ifm-color-emphasis-400:var(--ifm-color-gray-600);--ifm-color-emphasis-600:var(--ifm-color-gray-400);--ifm-color-emphasis-700:var(--ifm-color-gray-300);--ifm-color-emphasis-800:var(--ifm-color-gray-200);--ifm-color-emphasis-900:var(--ifm-color-gray-100);--ifm-color-emphasis-1000:var(--ifm-color-gray-0);--ifm-background-color:#1b1b1d;--ifm-background-surface-color:#242526;--ifm-hover-overlay:#ffffff0d;--ifm-color-content:#e3e3e3;--ifm-color-content-secondary:#fff;--ifm-breadcrumb-separator-filter:invert(64%) sepia(11%) saturate(0%) hue-rotate(149deg) brightness(99%) contrast(95%);--ifm-code-background:#ffffff1a;--ifm-scrollbar-track-background-color:#444;--ifm-scrollbar-thumb-background-color:#686868;--ifm-scrollbar-thumb-hover-background-color:#7a7a7a;--ifm-table-stripe-background:#ffffff12;--ifm-toc-border-color:var(--ifm-color-emphasis-200);--ifm-color-primary-contrast-background:#102445;--ifm-color-primary-contrast-foreground:#ebf2fc;--ifm-color-secondary-contrast-background:#474748;--ifm-color-secondary-contrast-foreground:#fdfdfe;--ifm-color-success-contrast-background:#003100;--ifm-color-success-contrast-foreground:#e6f6e6;--ifm-color-info-contrast-background:#193c47;--ifm-color-info-contrast-foreground:#eef9fd;--ifm-color-warning-contrast-background:#4d3800;--ifm-color-warning-contrast-foreground:#fff8e6;--ifm-color-danger-contrast-background:#4b1113;--ifm-color-danger-contrast-foreground:#ffebec}#nprogress .bar{background:var(--docusaurus-progress-bar-color);height:2px;left:0;position:fixed;top:0;width:100%;z-index:1031}#nprogress .peg{box-shadow:0 0 10px var(--docusaurus-progress-bar-color),0 0 5px var(--docusaurus-progress-bar-color);height:100%;opacity:1;position:absolute;right:0;transform:rotate(3deg) translateY(-4px);width:100px}body:not(.navigation-with-keyboard) :not(input):focus{outline:0}#__docusaurus-base-url-issue-banner-container,.docSidebarContainer_YfHR,.sidebarLogo_isFc,.themedComponent_mlkZ,[data-theme=dark] .lightToggleIcon_pyhR,[data-theme=light] .darkToggleIcon_wfgR,html[data-announcement-bar-initially-dismissed=true] .announcementBar_mb4j{display:none}.skipToContent_fXgn{background-color:var(--ifm-background-surface-color);color:var(--ifm-color-emphasis-900);left:100%;padding:calc(var(--ifm-global-spacing)/2) var(--ifm-global-spacing);position:fixed;top:1rem;z-index:calc(var(--ifm-z-index-fixed) + 1)}.skipToContent_fXgn:focus{box-shadow:var(--ifm-global-shadow-md);left:1rem}.closeButton_CVFx{line-height:0;padding:0}.content_knG7{font-size:85%;padding:5px 0;text-align:center}.content_knG7 a{color:inherit;text-decoration:underline}.announcementBar_mb4j{align-items:center;background-color:var(--ifm-color-white);border-bottom:1px solid var(--ifm-color-emphasis-100);color:var(--ifm-color-black);display:flex;height:var(--docusaurus-announcement-bar-height)}.announcementBarPlaceholder_vyr4{flex:0 0 10px}.announcementBarClose_gvF7{align-self:stretch;flex:0 0 30px}.toggle_vylO{height:2rem;width:2rem}.toggleButton_gllP{align-items:center;border-radius:50%;display:flex;height:100%;justify-content:center;transition:background var(--ifm-transition-fast);width:100%}.toggleButton_gllP:hover{background:var(--ifm-color-emphasis-200)}.toggleButtonDisabled_aARS{cursor:not-allowed}.darkNavbarColorModeToggle_X3D1:hover{background:var(--ifm-color-gray-800)}.tag_zVej{border:1px solid var(--docusaurus-tag-list-border);transition:border var(--ifm-transition-fast)}.tag_zVej:hover{--docusaurus-tag-list-border:var(--ifm-link-color);text-decoration:none}.tagRegular_sFm0{border-radius:var(--ifm-global-radius);font-size:90%;padding:.2rem .5rem .3rem}.tagWithCount_h2kH{align-items:center;border-left:0;display:flex;padding:0 .5rem 0 1rem;position:relative}.tagWithCount_h2kH:after,.tagWithCount_h2kH:before{border:1px solid var(--docusaurus-tag-list-border);content:"";position:absolute;top:50%;transition:inherit}.tagWithCount_h2kH:before{border-bottom:0;border-right:0;height:1.18rem;right:100%;transform:translate(50%,-50%) rotate(-45deg);width:1.18rem}.tagWithCount_h2kH:after{border-radius:50%;height:.5rem;left:0;transform:translateY(-50%);width:.5rem}.tagWithCount_h2kH span{background:var(--ifm-color-secondary);border-radius:var(--ifm-global-radius);color:var(--ifm-color-black);font-size:.7rem;line-height:1.2;margin-left:.3rem;padding:.1rem .4rem}.tags_jXut{display:inline}.tag_QGVx{display:inline-block;margin:0 .4rem .5rem 0}.iconEdit_Z9Sw{margin-right:.3em;vertical-align:sub}.lastUpdated_JAkA{font-size:smaller;font-style:italic;margin-top:.2rem}.tocCollapsibleButton_TO0P{align-items:center;display:flex;font-size:inherit;justify-content:space-between;padding:.4rem .8rem;width:100%}.tocCollapsibleButton_TO0P:after{background:var(--ifm-menu-link-sublist-icon) 50% 50%/2rem 2rem no-repeat;content:"";filter:var(--ifm-menu-link-sublist-icon-filter);height:1.25rem;transform:rotate(180deg);transition:transform var(--ifm-transition-fast);width:1.25rem}.tocCollapsibleButtonExpanded_MG3E:after,.tocCollapsibleExpanded_sAul{transform:none}.tocCollapsible_ETCw{background-color:var(--ifm-menu-color-background-active);border-radius:var(--ifm-global-radius);margin:1rem 0}.tocCollapsibleContent_vkbj>ul{border-left:none;border-top:1px solid var(--ifm-color-emphasis-300);font-size:15px;padding:.2rem 0}.tocCollapsibleContent_vkbj ul li{margin:.4rem .8rem}.tocCollapsibleContent_vkbj a{display:block}.tableOfContents_bqdL{max-height:calc(100vh - var(--ifm-navbar-height) - 2rem);overflow-y:auto;position:-webkit-sticky;position:sticky;top:calc(var(--ifm-navbar-height) + 1rem)}.backToTopButton_sjWU{background-color:var(--ifm-color-emphasis-200);border-radius:50%;bottom:1.3rem;box-shadow:var(--ifm-global-shadow-lw);height:3rem;opacity:0;position:fixed;right:1.3rem;transform:scale(0);transition:all var(--ifm-transition-fast) var(--ifm-transition-timing-default);visibility:hidden;width:3rem;z-index:calc(var(--ifm-z-index-fixed) - 1)}.backToTopButton_sjWU:after{background-color:var(--ifm-color-emphasis-1000);content:" ";display:inline-block;height:100%;-webkit-mask:var(--ifm-menu-link-sublist-icon) 50%/2rem 2rem no-repeat;mask:var(--ifm-menu-link-sublist-icon) 50%/2rem 2rem no-repeat;width:100%}.backToTopButtonShow_xfvO{opacity:1;transform:scale(1);visibility:visible}[data-theme=dark] .themedComponent--dark_xIcU,[data-theme=light] .themedComponent--light_NVdE,html:not([data-theme]) .themedComponent--light_NVdE{display:initial}[data-theme=dark]:root{--docusaurus-collapse-button-bg:#ffffff0d;--docusaurus-collapse-button-bg-hover:#ffffff1a}.collapseSidebarButton_PEFL{display:none;margin:0}.iconExternalLink_nPIU{margin-left:.3rem}.dropdownNavbarItemMobile_S0Fm{cursor:pointer}.iconLanguage_nlXk{margin-right:5px;vertical-align:text-bottom}@supports selector(:has(*)){.navbarSearchContainer_Bca1:not(:has(>*)){display:none}}.navbarHideable_m1mJ{transition:transform var(--ifm-transition-fast) ease}.navbarHidden_jGov{transform:translate3d(0,calc(-100% - 2px),0)}.errorBoundaryError_a6uf{color:red;white-space:pre-wrap}.errorBoundaryFallback_VBag{color:red;padding:.55rem}.buttonGroup__atx button,.codeBlockContainer_Ckt0{background:var(--prism-background-color);color:var(--prism-color)}.footerLogoLink_BH7S{opacity:.5;transition:opacity var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.footerLogoLink_BH7S:hover,.hash-link:focus,:hover>.hash-link{opacity:1}.docMainContainer_TBSr,.docRoot_UBD9{display:flex;width:100%}.docsWrapper_hBAB{display:flex;flex:1 0 auto}.anchorWithStickyNavbar_LWe7{scroll-margin-top:calc(var(--ifm-navbar-height) + .5rem)}.anchorWithHideOnScrollNavbar_WYt5{scroll-margin-top:.5rem}.hash-link{opacity:0;padding-left:.5rem;transition:opacity var(--ifm-transition-fast);-webkit-user-select:none;user-select:none}.hash-link:before{content:"#"}.mainWrapper_z2l0{display:flex;flex:1 0 auto;flex-direction:column}.docusaurus-mt-lg{margin-top:3rem}#__docusaurus{display:flex;flex-direction:column;min-height:100%}.cardContainer_fWXF{--ifm-link-color:var(--ifm-color-emphasis-800);--ifm-link-hover-color:var(--ifm-color-emphasis-700);--ifm-link-hover-decoration:none;border:1px solid var(--ifm-color-emphasis-200);box-shadow:0 1.5px 3px 0 #00000026;transition:all var(--ifm-transition-fast) ease;transition-property:border,box-shadow}.cardContainer_fWXF:hover{border-color:var(--ifm-color-primary);box-shadow:0 3px 6px 0 #0003}.cardTitle_rnsV{font-size:1.2rem}.cardDescription_PWke{font-size:.8rem}.codeBlockContainer_Ckt0{border-radius:var(--ifm-code-border-radius);box-shadow:var(--ifm-global-shadow-lw);margin-bottom:var(--ifm-leading)}.codeBlockContent_biex{border-radius:inherit;direction:ltr;position:relative}.codeBlockTitle_Ktv7{border-bottom:1px solid var(--ifm-color-emphasis-300);border-top-left-radius:inherit;border-top-right-radius:inherit;font-size:var(--ifm-code-font-size);font-weight:500;padding:.75rem var(--ifm-pre-padding)}.codeBlock_bY9V{--ifm-pre-background:var(--prism-background-color);margin:0;padding:0}.codeBlockTitle_Ktv7+.codeBlockContent_biex .codeBlock_bY9V{border-top-left-radius:0;border-top-right-radius:0}.codeBlockLines_e6Vv{float:left;font:inherit;min-width:100%;padding:var(--ifm-pre-padding)}.codeBlockLinesWithNumbering_o6Pm{display:table;padding:var(--ifm-pre-padding) 0}.buttonGroup__atx{column-gap:.2rem;display:flex;position:absolute;right:calc(var(--ifm-pre-padding)/2);top:calc(var(--ifm-pre-padding)/2)}.buttonGroup__atx button{align-items:center;border:1px solid var(--ifm-color-emphasis-300);border-radius:var(--ifm-global-radius);display:flex;line-height:0;opacity:0;padding:.4rem;transition:opacity var(--ifm-transition-fast) ease-in-out}.buttonGroup__atx button:focus-visible,.buttonGroup__atx button:hover{opacity:1!important}.theme-code-block:hover .buttonGroup__atx button{opacity:.4}:where(:root){--docusaurus-highlighted-code-line-bg:#484d5b}:where([data-theme=dark]){--docusaurus-highlighted-code-line-bg:#646464}.theme-code-block-highlighted-line{background-color:var(--docusaurus-highlighted-code-line-bg);display:block;margin:0 calc(var(--ifm-pre-padding)*-1);padding:0 var(--ifm-pre-padding)}.codeLine_lJS_{counter-increment:a;display:table-row}.codeLineNumber_Tfdd{background:var(--ifm-pre-background);display:table-cell;left:0;overflow-wrap:normal;padding:0 var(--ifm-pre-padding);position:-webkit-sticky;position:sticky;text-align:right;width:1%}.codeLineNumber_Tfdd:before{content:counter(a);opacity:.4}.codeLineContent_feaV{padding-right:var(--ifm-pre-padding)}.theme-code-block:hover .copyButtonCopied_obH4{opacity:1!important}.copyButtonIcons_eSgA{height:1.125rem;position:relative;width:1.125rem}.copyButtonIcon_y97N,.copyButtonSuccessIcon_LjdS{fill:currentColor;height:inherit;left:0;opacity:inherit;position:absolute;top:0;transition:all var(--ifm-transition-fast) ease;width:inherit}.copyButtonSuccessIcon_LjdS{color:#00d600;left:50%;opacity:0;top:50%;transform:translate(-50%,-50%) scale(.33)}.copyButtonCopied_obH4 .copyButtonIcon_y97N{opacity:0;transform:scale(.33)}.copyButtonCopied_obH4 .copyButtonSuccessIcon_LjdS{opacity:1;transform:translate(-50%,-50%) scale(1);transition-delay:75ms}.wordWrapButtonIcon_Bwma{height:1.2rem;width:1.2rem}.details_lb9f{--docusaurus-details-summary-arrow-size:0.38rem;--docusaurus-details-transition:transform 200ms ease;--docusaurus-details-decoration-color:grey}.details_lb9f>summary{cursor:pointer;padding-left:1rem;position:relative}.details_lb9f>summary::-webkit-details-marker{display:none}.details_lb9f>summary:before{border-color:#0000 #0000 #0000 var(--docusaurus-details-decoration-color);border-style:solid;border-width:var(--docusaurus-details-summary-arrow-size);content:"";left:0;position:absolute;top:.45rem;transform:rotate(0);transform-origin:calc(var(--docusaurus-details-summary-arrow-size)/2) 50%;transition:var(--docusaurus-details-transition)}.collapsibleContent_i85q{border-top:1px solid var(--docusaurus-details-decoration-color);margin-top:1rem;padding-top:1rem}.details_b_Ee{--docusaurus-details-decoration-color:var(--ifm-alert-border-color);--docusaurus-details-transition:transform var(--ifm-transition-fast) ease;border:1px solid var(--ifm-alert-border-color);margin:0 0 var(--ifm-spacing-vertical)}.img_ev3q{height:auto}.admonition_xJq3{margin-bottom:1em}.admonitionHeading_Gvgb{font:var(--ifm-heading-font-weight) var(--ifm-h5-font-size)/var(--ifm-heading-line-height) var(--ifm-heading-font-family)}.admonitionHeading_Gvgb:not(:last-child){margin-bottom:.3rem}.admonitionHeading_Gvgb code{text-transform:none}.admonitionIcon_Rf37{display:inline-block;margin-right:.4em;vertical-align:middle}.admonitionIcon_Rf37 svg{fill:var(--ifm-alert-foreground-color);display:inline-block;height:1.6em;width:1.6em}.breadcrumbHomeIcon_YNFT{height:1.1rem;position:relative;top:1px;vertical-align:top;width:1.1rem}.breadcrumbsContainer_Z_bl{--ifm-breadcrumb-size-multiplier:0.8;margin-bottom:.8rem}.title_kItE{--ifm-h1-font-size:3rem;margin-bottom:calc(var(--ifm-leading)*1.25)}@media (min-width:997px){.collapseSidebarButton_PEFL,.expandButton_TmdG{background-color:var(--docusaurus-collapse-button-bg)}:root{--docusaurus-announcement-bar-height:30px}.announcementBarClose_gvF7,.announcementBarPlaceholder_vyr4{flex-basis:50px}.lastUpdated_JAkA{text-align:right}.tocMobile_ITEo{display:none}.collapseSidebarButton_PEFL{border:1px solid var(--ifm-toc-border-color);border-radius:0;bottom:0;display:block!important;height:40px;position:-webkit-sticky;position:sticky}.collapseSidebarButtonIcon_kv0_{margin-top:4px;transform:rotate(180deg)}.expandButtonIcon_i1dp,[dir=rtl] .collapseSidebarButtonIcon_kv0_{transform:rotate(0)}.collapseSidebarButton_PEFL:focus,.collapseSidebarButton_PEFL:hover,.expandButton_TmdG:focus,.expandButton_TmdG:hover{background-color:var(--docusaurus-collapse-button-bg-hover)}.navbarSearchContainer_Bca1{padding:var(--ifm-navbar-item-padding-vertical) var(--ifm-navbar-item-padding-horizontal)}.menuHtmlItem_M9Kj{padding:var(--ifm-menu-link-padding-vertical) var(--ifm-menu-link-padding-horizontal)}.menu_SIkG{flex-grow:1;padding:.5rem}@supports (scrollbar-gutter:stable){.menu_SIkG{padding:.5rem 0 .5rem .5rem;scrollbar-gutter:stable}}.menuWithAnnouncementBar_GW3s{margin-bottom:var(--docusaurus-announcement-bar-height)}.sidebar_njMd{display:flex;flex-direction:column;height:100%;padding-top:var(--ifm-navbar-height);width:var(--doc-sidebar-width)}.sidebarWithHideableNavbar_wUlq{padding-top:0}.sidebarHidden_VK0M{opacity:0;visibility:hidden}.sidebarLogo_isFc{align-items:center;color:inherit!important;display:flex!important;margin:0 var(--ifm-navbar-padding-horizontal);max-height:var(--ifm-navbar-height);min-height:var(--ifm-navbar-height);text-decoration:none!important}.sidebarLogo_isFc img{height:2rem;margin-right:.5rem}.expandButton_TmdG{align-items:center;display:flex;height:100%;justify-content:center;position:absolute;right:0;top:0;transition:background-color var(--ifm-transition-fast) ease;width:100%}[dir=rtl] .expandButtonIcon_i1dp{transform:rotate(180deg)}.docSidebarContainer_YfHR{border-right:1px solid var(--ifm-toc-border-color);-webkit-clip-path:inset(0);clip-path:inset(0);display:block;margin-top:calc(var(--ifm-navbar-height)*-1);transition:width var(--ifm-transition-fast) ease;width:var(--doc-sidebar-width);will-change:width}.docSidebarContainerHidden_DPk8{cursor:pointer;width:var(--doc-sidebar-hidden-width)}.sidebarViewport_aRkj{height:100%;max-height:100vh;position:-webkit-sticky;position:sticky;top:0}.docMainContainer_TBSr{flex-grow:1;max-width:calc(100% - var(--doc-sidebar-width))}.docMainContainerEnhanced_lQrH{max-width:calc(100% - var(--doc-sidebar-hidden-width))}.docItemWrapperEnhanced_JWYK{max-width:calc(var(--ifm-container-width) + var(--doc-sidebar-width))!important}.docItemCol_VOVn,.generatedIndexPage_vN6x{max-width:75%!important}.list_eTzJ article:nth-last-child(-n+2){margin-bottom:0!important}}@media (min-width:1440px){.container{max-width:var(--ifm-container-width-xl)}}@media (max-width:996px){.col{--ifm-col-width:100%;flex-basis:var(--ifm-col-width);margin-left:0}.footer{--ifm-footer-padding-horizontal:0}.colorModeToggle_DEke,.footer__link-separator,.navbar__item,.tableOfContents_bqdL{display:none}.footer__col{margin-bottom:calc(var(--ifm-spacing-vertical)*3)}.footer__link-item{display:block}.hero{padding-left:0;padding-right:0}.navbar>.container,.navbar>.container-fluid{padding:0}.navbar__toggle{display:inherit}.navbar__search-input{width:9rem}.pills--block,.tabs--block{flex-direction:column}.docItemContainer_F8PC{padding:0 .3rem}.navbarSearchContainer_Bca1{position:absolute;right:var(--ifm-navbar-padding-horizontal)}}@media (max-width:576px){.markdown h1:first-child{--ifm-h1-font-size:2rem}.markdown>h2{--ifm-h2-font-size:1.5rem}.markdown>h3{--ifm-h3-font-size:1.25rem}}@media (hover:hover){.backToTopButton_sjWU:hover{background-color:var(--ifm-color-emphasis-300)}}@media (pointer:fine){.thin-scrollbar{scrollbar-width:thin}.thin-scrollbar::-webkit-scrollbar{height:var(--ifm-scrollbar-size);width:var(--ifm-scrollbar-size)}.thin-scrollbar::-webkit-scrollbar-track{background:var(--ifm-scrollbar-track-background-color);border-radius:10px}.thin-scrollbar::-webkit-scrollbar-thumb{background:var(--ifm-scrollbar-thumb-background-color);border-radius:10px}.thin-scrollbar::-webkit-scrollbar-thumb:hover{background:var(--ifm-scrollbar-thumb-hover-background-color)}}@media (prefers-reduced-motion:reduce){:root{--ifm-transition-fast:0ms;--ifm-transition-slow:0ms}}@media print{.announcementBar_mb4j,.footer,.menu,.navbar,.pagination-nav,.table-of-contents,.tocMobile_ITEo{display:none}.tabs{page-break-inside:avoid}.codeBlockLines_e6Vv{white-space:pre-wrap}} \ No newline at end of file diff --git a/build/assets/images/BOXEL_Scheme-d1cbf30ad7555493c80cc4206fb80c30.jpg b/build/assets/images/BOXEL_Scheme-d1cbf30ad7555493c80cc4206fb80c30.jpg deleted file mode 100644 index 22e1d062..00000000 Binary files a/build/assets/images/BOXEL_Scheme-d1cbf30ad7555493c80cc4206fb80c30.jpg and /dev/null differ diff --git a/build/assets/images/CityScopeJS-5c67b64921cab086329c46dfafa1715a.jpg b/build/assets/images/CityScopeJS-5c67b64921cab086329c46dfafa1715a.jpg deleted file mode 100644 index f8e7a9cc..00000000 Binary files a/build/assets/images/CityScopeJS-5c67b64921cab086329c46dfafa1715a.jpg and /dev/null differ diff --git a/build/assets/images/Github_CS_Organization_diagram-70db1a5f41cb44cdb42ecd86aba9d951.png b/build/assets/images/Github_CS_Organization_diagram-70db1a5f41cb44cdb42ecd86aba9d951.png deleted file mode 100644 index 5222f49b..00000000 Binary files a/build/assets/images/Github_CS_Organization_diagram-70db1a5f41cb44cdb42ecd86aba9d951.png and /dev/null differ diff --git a/build/assets/images/KarthikPatanjali-a839ba259d45fce91794e3a03c96804a.png b/build/assets/images/KarthikPatanjali-a839ba259d45fce91794e3a03c96804a.png deleted file mode 100644 index 69e3f1c8..00000000 Binary files a/build/assets/images/KarthikPatanjali-a839ba259d45fce91794e3a03c96804a.png and /dev/null differ diff --git a/build/assets/images/Type_House-98f14c2db41d983f2ef3fc933e5f6736.jpg b/build/assets/images/Type_House-98f14c2db41d983f2ef3fc933e5f6736.jpg deleted file mode 100644 index 4cb62ab6..00000000 Binary files a/build/assets/images/Type_House-98f14c2db41d983f2ef3fc933e5f6736.jpg and /dev/null differ diff --git a/build/assets/images/Type_Office-f695054fae45ec69f5d8b0ee3cfd46bb.jpg b/build/assets/images/Type_Office-f695054fae45ec69f5d8b0ee3cfd46bb.jpg deleted file mode 100644 index 9750667b..00000000 Binary files a/build/assets/images/Type_Office-f695054fae45ec69f5d8b0ee3cfd46bb.jpg and /dev/null differ diff --git a/build/assets/images/Type_Park-6de8b19ee6f1af59f0163282543d1669.jpg b/build/assets/images/Type_Park-6de8b19ee6f1af59f0163282543d1669.jpg deleted file mode 100644 index da255b50..00000000 Binary files a/build/assets/images/Type_Park-6de8b19ee6f1af59f0163282543d1669.jpg and /dev/null differ diff --git a/build/assets/images/Type_scheme-9fbe5b8f7e202e63d3f19aa4d5d5db10.jpg b/build/assets/images/Type_scheme-9fbe5b8f7e202e63d3f19aa4d5d5db10.jpg deleted file mode 100644 index 22295e95..00000000 Binary files a/build/assets/images/Type_scheme-9fbe5b8f7e202e63d3f19aa4d5d5db10.jpg and /dev/null differ diff --git a/build/assets/images/Types_examples-7e0f322f70968ac0ded9951db648ec30.jpg b/build/assets/images/Types_examples-7e0f322f70968ac0ded9951db648ec30.jpg deleted file mode 100644 index 2b98ca4b..00000000 Binary files a/build/assets/images/Types_examples-7e0f322f70968ac0ded9951db648ec30.jpg and /dev/null differ diff --git a/build/assets/images/arch-903c36303104dbdba881ec156abf41ea.png b/build/assets/images/arch-903c36303104dbdba881ec156abf41ea.png deleted file mode 100644 index f0410e87..00000000 Binary files a/build/assets/images/arch-903c36303104dbdba881ec156abf41ea.png and /dev/null differ diff --git a/build/assets/images/arielnoymanHCU-e60d82029bb9330a8bc08aaa4022b732.png b/build/assets/images/arielnoymanHCU-e60d82029bb9330a8bc08aaa4022b732.png deleted file mode 100644 index 5e3bc9eb..00000000 Binary files a/build/assets/images/arielnoymanHCU-e60d82029bb9330a8bc08aaa4022b732.png and /dev/null differ diff --git a/build/assets/images/brix-f6b88d38a0a50447532241c5e2b0bf6a.png b/build/assets/images/brix-f6b88d38a0a50447532241c5e2b0bf6a.png deleted file mode 100644 index 1cca8992..00000000 Binary files a/build/assets/images/brix-f6b88d38a0a50447532241c5e2b0bf6a.png and /dev/null differ diff --git a/build/assets/images/calc-4ff39b399a470946dcfa21d9885a2358.png b/build/assets/images/calc-4ff39b399a470946dcfa21d9885a2358.png deleted file mode 100644 index 3d453191..00000000 Binary files a/build/assets/images/calc-4ff39b399a470946dcfa21d9885a2358.png and /dev/null differ diff --git a/build/assets/images/cs_an-98816fb9a24173dcb29a59aa1ef5bdf3.jpg b/build/assets/images/cs_an-98816fb9a24173dcb29a59aa1ef5bdf3.jpg deleted file mode 100644 index 97c251f9..00000000 Binary files a/build/assets/images/cs_an-98816fb9a24173dcb29a59aa1ef5bdf3.jpg and /dev/null differ diff --git a/build/assets/images/deckgl-module-c3c9253421e0d70d9904c067e5711d7e.png b/build/assets/images/deckgl-module-c3c9253421e0d70d9904c067e5711d7e.png deleted file mode 100644 index b4aa0899..00000000 Binary files a/build/assets/images/deckgl-module-c3c9253421e0d70d9904c067e5711d7e.png and /dev/null differ diff --git a/build/assets/images/gridupdate-7da3e36522c4abd0df95834bf37cd0c4.png b/build/assets/images/gridupdate-7da3e36522c4abd0df95834bf37cd0c4.png deleted file mode 100644 index b3376158..00000000 Binary files a/build/assets/images/gridupdate-7da3e36522c4abd0df95834bf37cd0c4.png and /dev/null differ diff --git a/build/assets/images/initialcon-42240e1d4ec5ae66a2c9f36bbdff6cad.png b/build/assets/images/initialcon-42240e1d4ec5ae66a2c9f36bbdff6cad.png deleted file mode 100644 index bea3b290..00000000 Binary files a/build/assets/images/initialcon-42240e1d4ec5ae66a2c9f36bbdff6cad.png and /dev/null differ diff --git a/build/assets/images/initialcon-8ac3fd67ed5d459087e25d5bbd02b892.png b/build/assets/images/initialcon-8ac3fd67ed5d459087e25d5bbd02b892.png deleted file mode 100644 index babf5513..00000000 Binary files a/build/assets/images/initialcon-8ac3fd67ed5d459087e25d5bbd02b892.png and /dev/null differ diff --git a/build/assets/images/initialcon-d743feddd6a95b8c507e9d8d8800626d.png b/build/assets/images/initialcon-d743feddd6a95b8c507e9d8d8800626d.png deleted file mode 100644 index 6bc5349e..00000000 Binary files a/build/assets/images/initialcon-d743feddd6a95b8c507e9d8d8800626d.png and /dev/null differ diff --git a/build/assets/images/modulerequest-05516d0c491246f1d2e4ee17a9c22087.png b/build/assets/images/modulerequest-05516d0c491246f1d2e4ee17a9c22087.png deleted file mode 100644 index 2f5e04d4..00000000 Binary files a/build/assets/images/modulerequest-05516d0c491246f1d2e4ee17a9c22087.png and /dev/null differ diff --git a/build/assets/images/opening-project-a1235d80f08185e6294ea8bf78916462.png b/build/assets/images/opening-project-a1235d80f08185e6294ea8bf78916462.png deleted file mode 100644 index 7a03fa1a..00000000 Binary files a/build/assets/images/opening-project-a1235d80f08185e6294ea8bf78916462.png and /dev/null differ diff --git a/build/assets/images/project-view-dbe152589b18a5c4493e6b2c2f68f830.png b/build/assets/images/project-view-dbe152589b18a5c4493e6b2c2f68f830.png deleted file mode 100644 index 7bc3a6bc..00000000 Binary files a/build/assets/images/project-view-dbe152589b18a5c4493e6b2c2f68f830.png and /dev/null differ diff --git a/build/assets/images/scenariodeleterestore-5cb660ce6527e0d88ddd78bd78f68370.png b/build/assets/images/scenariodeleterestore-5cb660ce6527e0d88ddd78bd78f68370.png deleted file mode 100644 index 84ebf5a2..00000000 Binary files a/build/assets/images/scenariodeleterestore-5cb660ce6527e0d88ddd78bd78f68370.png and /dev/null differ diff --git a/build/assets/images/scenariosave-204bd25d5d39f9fb2602fb973d1370b3.png b/build/assets/images/scenariosave-204bd25d5d39f9fb2602fb973d1370b3.png deleted file mode 100644 index 30cf5c51..00000000 Binary files a/build/assets/images/scenariosave-204bd25d5d39f9fb2602fb973d1370b3.png and /dev/null differ diff --git a/build/assets/images/subremovalrequest-fc67d08ec2f9ff21a4a7f7ead1fd9245.png b/build/assets/images/subremovalrequest-fc67d08ec2f9ff21a4a7f7ead1fd9245.png deleted file mode 100644 index 63f8de44..00000000 Binary files a/build/assets/images/subremovalrequest-fc67d08ec2f9ff21a4a7f7ead1fd9245.png and /dev/null differ diff --git a/build/assets/images/subrequest-92c3c8a1abe3c94ee34328d8849c4751.png b/build/assets/images/subrequest-92c3c8a1abe3c94ee34328d8849c4751.png deleted file mode 100644 index 427e0faf..00000000 Binary files a/build/assets/images/subrequest-92c3c8a1abe3c94ee34328d8849c4751.png and /dev/null differ diff --git a/build/assets/images/web_ui-a8964ffa79f4bdd8f5c47db299d8e802.jpg b/build/assets/images/web_ui-a8964ffa79f4bdd8f5c47db299d8e802.jpg deleted file mode 100644 index 93e078f6..00000000 Binary files a/build/assets/images/web_ui-a8964ffa79f4bdd8f5c47db299d8e802.jpg and /dev/null differ diff --git a/build/assets/js/02b7a71d.f6b1c77c.js b/build/assets/js/02b7a71d.f6b1c77c.js deleted file mode 100644 index b73e2498..00000000 --- a/build/assets/js/02b7a71d.f6b1c77c.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkcityscope_docs=self.webpackChunkcityscope_docs||[]).push([[123],{3386:(e,t,i)=>{i.r(t),i.d(t,{assets:()=>c,contentTitle:()=>o,default:()=>h,frontMatter:()=>a,metadata:()=>r,toc:()=>d});var s=i(4848),n=i(8453);const a={sidebar_position:3},o=void 0,r={id:"cityio/CityIO - UI",title:"CityIO - UI",description:"The objective of this interface is to enable user interfaces to access information about the grids created in CityIO, as well as the Key Performance Indicators (KPIs) computed by the modules. Additionally, this interface will permit users to make changes to the grids.",source:"@site/docs/cityio/CityIO - UI.md",sourceDirName:"cityio",slug:"/cityio/CityIO - UI",permalink:"/cityio/CityIO - UI",draft:!1,unlisted:!1,editUrl:"https://github.com/CityScope/cityscope.github.io/docs/cityio/CityIO - UI.md",tags:[],version:"current",sidebarPosition:3,frontMatter:{sidebar_position:3},sidebar:"sidebar",previous:{title:"Architecture",permalink:"/cityio/Architecture"},next:{title:"CityIO - Module",permalink:"/cityio/CityIO - Module"}},c={},d=[{value:"Message Flow",id:"message-flow",level:2},{value:"Initial connection",id:"initial-connection",level:2},{value:"Grid Update",id:"grid-update",level:2},{value:"Module Request",id:"module-request",level:2},{value:"Save Scenario",id:"save-scenario",level:2},{value:"Delete and Restore Scenario",id:"delete-and-restore-scenario",level:2}];function l(e){const t={code:"code",h2:"h2",img:"img",p:"p",...(0,n.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(t.p,{children:"The objective of this interface is to enable user interfaces to access information about the grids created in CityIO, as well as the Key Performance Indicators (KPIs) computed by the modules. Additionally, this interface will permit users to make changes to the grids."}),"\n",(0,s.jsx)(t.p,{children:"This WebSocket interface is independent of the User Interface's implementation, making it possible to utilize this WebSocket channel in CityScopeJS, Tangible User Interfaces (TUIs), and any forthcoming UI proposals."}),"\n",(0,s.jsx)(t.h2,{id:"message-flow",children:"Message Flow"}),"\n",(0,s.jsx)(t.p,{children:"The subsequent subsections detail the various data exchanges that can take place between CityIO and the User Interfaces."}),"\n",(0,s.jsx)(t.h2,{id:"initial-connection",children:"Initial connection"}),"\n",(0,s.jsxs)(t.p,{children:["When a user interface seeks to establish a connection with CityIO to send and receive information from a project, it initiates a request to ",(0,s.jsx)(t.code,{children:"/interface"}),", which will be upgraded to a WebSocket. Following this, the UI can designate the specific grid (project) it wishes to connect to, and as a result, the UI will receive the grid's data. Subsequently, the User Interface can request the list of scenarios associated with that project, as well as the list of available core modules."]}),"\n",(0,s.jsx)(t.p,{children:(0,s.jsx)(t.img,{alt:"Initial Connection",src:i(3714).A+"",width:"645",height:"570"})}),"\n",(0,s.jsx)(t.h2,{id:"grid-update",children:"Grid Update"}),"\n",(0,s.jsx)(t.p,{children:"When the user interface needs to update the grid at the user's request, it can transmit the updated GEOGRIDDATA to CityIO via the WebSocket."}),"\n",(0,s.jsx)(t.p,{children:(0,s.jsx)(t.img,{alt:"Grid Update",src:i(6061).A+"",width:"696",height:"292"})}),"\n",(0,s.jsx)(t.h2,{id:"module-request",children:"Module Request"}),"\n",(0,s.jsx)(t.p,{children:"When the user interface intends to request the connection of a module based on a user's demand, it can send a MODULE_REQUEST message to CityIO."}),"\n",(0,s.jsx)(t.p,{children:(0,s.jsx)(t.img,{alt:"Module Request",src:i(223).A+"",width:"646",height:"403"})}),"\n",(0,s.jsx)(t.h2,{id:"save-scenario",children:"Save Scenario"}),"\n",(0,s.jsx)(t.p,{children:"When the user interface aims to save the current state of the project as a scenario at a user's request, it can send a SEND_SCENARIO message to CityIO, including the name of the scenario and its description."}),"\n",(0,s.jsx)(t.p,{children:(0,s.jsx)(t.img,{alt:"Module Request",src:i(2203).A+"",width:"970",height:"292"})}),"\n",(0,s.jsx)(t.h2,{id:"delete-and-restore-scenario",children:"Delete and Restore Scenario"}),"\n",(0,s.jsxs)(t.p,{children:["When the user interface seeks to delete or restore a scenario based on a user's request, it can send a MODIFY_SCENARIO message, with the property ",(0,s.jsx)(t.code,{children:"isInBin"})," set to true or false, depending on whether the scenario should be placed in the bin or restored."]}),"\n",(0,s.jsx)(t.p,{children:(0,s.jsx)(t.img,{alt:"Module Request",src:i(7707).A+"",width:"970",height:"607"})})]})}function h(e={}){const{wrapper:t}={...(0,n.R)(),...e.components};return t?(0,s.jsx)(t,{...e,children:(0,s.jsx)(l,{...e})}):l(e)}},6061:(e,t,i)=>{i.d(t,{A:()=>s});const s=i.p+"assets/images/gridupdate-7da3e36522c4abd0df95834bf37cd0c4.png"},3714:(e,t,i)=>{i.d(t,{A:()=>s});const s=i.p+"assets/images/initialcon-8ac3fd67ed5d459087e25d5bbd02b892.png"},223:(e,t,i)=>{i.d(t,{A:()=>s});const s=i.p+"assets/images/modulerequest-05516d0c491246f1d2e4ee17a9c22087.png"},7707:(e,t,i)=>{i.d(t,{A:()=>s});const s=i.p+"assets/images/scenariodeleterestore-5cb660ce6527e0d88ddd78bd78f68370.png"},2203:(e,t,i)=>{i.d(t,{A:()=>s});const s=i.p+"assets/images/scenariosave-204bd25d5d39f9fb2602fb973d1370b3.png"},8453:(e,t,i)=>{i.d(t,{R:()=>o,x:()=>r});var s=i(6540);const n={},a=s.createContext(n);function o(e){const t=s.useContext(a);return s.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function r(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:o(e.components),s.createElement(a.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/build/assets/js/0952c0dc.0a3edaab.js b/build/assets/js/0952c0dc.0a3edaab.js deleted file mode 100644 index 7250ed3a..00000000 --- a/build/assets/js/0952c0dc.0a3edaab.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkcityscope_docs=self.webpackChunkcityscope_docs||[]).push([[157],{1966:s=>{s.exports=JSON.parse('{"name":"docusaurus-plugin-content-docs","id":"default"}')}}]); \ No newline at end of file diff --git a/build/assets/js/0a23f7ce.71fabafa.js b/build/assets/js/0a23f7ce.71fabafa.js deleted file mode 100644 index 1740e330..00000000 --- a/build/assets/js/0a23f7ce.71fabafa.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkcityscope_docs=self.webpackChunkcityscope_docs||[]).push([[394],{4455:t=>{t.exports=JSON.parse('{"title":"CityIO","slug":"/category/cityio","permalink":"/category/cityio","navigation":{"previous":{"title":"Types System","permalink":"/modules/Types System"},"next":{"title":"Introduction","permalink":"/cityio/Introduction"}}}')}}]); \ No newline at end of file diff --git a/build/assets/js/1438b9ab.7f17a523.js b/build/assets/js/1438b9ab.7f17a523.js deleted file mode 100644 index 7676b456..00000000 --- a/build/assets/js/1438b9ab.7f17a523.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkcityscope_docs=self.webpackChunkcityscope_docs||[]).push([[735],{6292:(e,t,i)=>{i.r(t),i.d(t,{assets:()=>l,contentTitle:()=>a,default:()=>h,frontMatter:()=>o,metadata:()=>s,toc:()=>d});var n=i(4848),r=i(8453);const o={id:"Tutorial"},a="Tutorials",s={id:"archive/brix/Tutorial/Tutorial",title:"Tutorials",description:"This module also contains a set of other useful functions that integrate with brix.Handler and brix.Indicator.",source:"@site/docs/archive/brix/Tutorial/Tutorial.md",sourceDirName:"archive/brix/Tutorial",slug:"/archive/brix/Tutorial/",permalink:"/archive/brix/Tutorial/",draft:!1,unlisted:!1,editUrl:"https://github.com/CityScope/cityscope.github.io/docs/archive/brix/Tutorial/Tutorial.md",tags:[],version:"current",frontMatter:{id:"Tutorial"},sidebar:"sidebar",previous:{title:"GAMA",permalink:"/archive/brix/GAMA"},next:{title:"[Archive] CityIO",permalink:"/archive/cityio/"}},l={},d=[{value:"Auto-updates of GEOGRIDDATA",id:"auto-updates-of-geogriddata",level:2},{value:"Creating a table from python",id:"creating-a-table-from-python",level:2},{value:"Testing your module",id:"testing-your-module",level:2}];function c(e){const t={a:"a",code:"code",h1:"h1",h2:"h2",li:"li",ol:"ol",p:"p",pre:"pre",...(0,r.R)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(t.h1,{id:"tutorials",children:"Tutorials"}),"\n",(0,n.jsxs)(t.p,{children:["This module also contains a set of other useful functions that integrate with ",(0,n.jsx)(t.code,{children:"brix.Handler"})," and ",(0,n.jsx)(t.code,{children:"brix.Indicator"}),"."]}),"\n",(0,n.jsxs)(t.p,{children:["The functions ",(0,n.jsx)(t.code,{children:"brix.get_OSM_geometries()"})," and ",(0,n.jsx)(t.code,{children:"brix.get_OSM_nodes()"})," help you get data from Open Street Maps for your table."]}),"\n",(0,n.jsx)(t.h2,{id:"auto-updates-of-geogriddata",children:"Auto-updates of GEOGRIDDATA"}),"\n",(0,n.jsxs)(t.p,{children:["Brix also has the capability of automatically updating GEOGRIDDATA. For simple one-time updates, follow the documentation of ",(0,n.jsx)(t.code,{children:"brix.Handler.update_geogrid_data()"}),". To use this feeature, you first need to define a function that takes a ",(0,n.jsx)(t.code,{children:"brix.GEOGRIDDATA"})," as an input. When used with ",(0,n.jsx)(t.code,{children:"brix.Handler.update_geogrid_data()"}),", this function can take any number of keyword arguments. The following example raises the height of all cells by 3 units:"]}),"\n",(0,n.jsx)(t.pre,{children:(0,n.jsx)(t.code,{children:"def add_height(geogrid_data, levels=1):\n for cell in geogrid_data:\n cell['height'] += levels\n return geogrid_data\n\nH = Handler('dungeonmaster', quietly=False)\nH.update_geogrid_data(add_height,levels=3)\n"})}),"\n",(0,n.jsxs)(t.p,{children:["Brix also supports GEOGRIDDATA updates everytime there is a registered user interaction in the front end. To add a function to the update schedule, use ",(0,n.jsx)(t.code,{children:"brix.Handler.add_geogrid_data_update_function()"}),". This has the limitation that your update funcion cannot take in any arguments other. If this limitation proves too restrictive, please submit an issue and we\u2019ll consider pushing an update."]}),"\n",(0,n.jsx)(t.p,{children:"The following example updates the whole grid to Light Industrial use everytime there\u2019s a user interaction:"}),"\n",(0,n.jsx)(t.pre,{children:(0,n.jsx)(t.code,{children:"def update_g(geogrid_data):\n for cell in geogrid_data:\n cell['name'] = 'Light Industrial'\n return geogrid_data\n\nH = Handler(table_name,quietly=False)\nH.add_geogrid_data_update_function(update_g)\nH.listen()\n"})}),"\n",(0,n.jsxs)(t.p,{children:["The updates triggered by ",(0,n.jsx)(t.code,{children:"brix.Handler.listen()"})," follow the following order:"]}),"\n",(0,n.jsxs)(t.ol,{children:["\n",(0,n.jsxs)(t.li,{children:["\n",(0,n.jsx)(t.p,{children:"get GEOGRIDDATA"}),"\n"]}),"\n",(0,n.jsxs)(t.li,{children:["\n",(0,n.jsx)(t.p,{children:"run all GEOGRIDDATA updates using the result of 1 as input"}),"\n"]}),"\n",(0,n.jsxs)(t.li,{children:["\n",(0,n.jsx)(t.p,{children:"get the new GEOGRIDDATA"}),"\n"]}),"\n",(0,n.jsxs)(t.li,{children:["\n",(0,n.jsx)(t.p,{children:"update all indicators using the GEOGRIDDATA object resulting from 3"}),"\n"]}),"\n"]}),"\n",(0,n.jsx)(t.h2,{id:"creating-a-table-from-python",children:"Creating a table from python"}),"\n",(0,n.jsxs)(t.p,{children:["Brix provides a class for creating spatial grids for CityScope projects: ",(0,n.jsx)(t.code,{children:"brix.Grid_maker"})," a subclass of ",(0,n.jsx)(t.code,{children:"brix.Handler"}),"."]}),"\n",(0,n.jsxs)(t.p,{children:["For most use cases, you will create your table using the web-app editor found ",(0,n.jsx)(t.a,{href:"https://cityscope.media.mit.edu/CS_cityscopeJS/#/editor",children:"here"}),". For more complex projects, you might need to create your own table from an existing dataset. For example, you might want to select the grid area using a polygon defined in a shapefile. The tools we highlight here can be use for this purpose."]}),"\n",(0,n.jsxs)(t.p,{children:["The first step is to instantiate the class by defining the location of your table and its name. The lat,lon provided to the ",(0,n.jsx)(t.code,{children:"brix.Grid_maker"})," constructor correspond to the top left corner of the grid (North-West)."]}),"\n",(0,n.jsx)(t.pre,{children:(0,n.jsx)(t.code,{children:"from brix import Grid_maker\ntable_name = 'dungeonmaster'\nlat,lon = 42.361875, -71.105713\nG = Grid_maker(table_name, lat, lon)\n"})}),"\n",(0,n.jsxs)(t.p,{children:["If the table already exists, you can either use ",(0,n.jsx)(t.code,{children:"brix.Handler.delete_table()"})," to delete it or wait to be prompted if you want to rewrite it. You can check if the table exists by using ",(0,n.jsx)(t.code,{children:"brix.Handler.is_table()"}),". Please note that since ",(0,n.jsx)(t.code,{children:"brix.Grid_maker"})," is a subclass of ",(0,n.jsx)(t.code,{children:"brix.Handler"}),", most functions available for a ",(0,n.jsx)(t.code,{children:"brix.Handler"})," object are also available for a ",(0,n.jsx)(t.code,{children:"brix.Grid_maker"})," object. The table constructor also allows you to specify the cell_size, the nrows and ncols, as well as other parameters."]}),"\n",(0,n.jsxs)(t.p,{children:["Once the grid maker object has been instatiated, we set the grid by running ",(0,n.jsx)(t.code,{children:"brix.Grid_maker.set_grid_geojson()"}),":"]}),"\n",(0,n.jsx)(t.pre,{children:(0,n.jsx)(t.code,{children:"G.set_grid_geojson()\n"})}),"\n",(0,n.jsxs)(t.p,{children:["This will create the geojson that will be posted to CityIO to create the table. You can check the object by using ",(0,n.jsx)(t.code,{children:"brix.Grid_maker.get_grid_geojson()"}),"."]}),"\n",(0,n.jsxs)(t.p,{children:["The next step is to define the cell types that the user will be able to choose frorm. Defining the necessary types and the properties of each type is a very complex process that involves data collection and analysis as well as community engagement and simulation that is beyond the scope of this tutorial. The default table created with the Grid constructor only contains a simple type called Default. To see this, you can use ",(0,n.jsx)(t.code,{children:"brix.Grid_maker.grid_types()"}),". If you wish to change this, you can use ",(0,n.jsx)(t.code,{children:"brix.Grid_maker.edit_types()"}),". This function will either take a json-like object (dict of dicts) with the name of the type as the key, or a list of names of types that will be automatically completed with default values. Once the types have been defined, they can be expressed in the following way, adding as many properties as needed by your table:"]}),"\n",(0,n.jsx)(t.pre,{children:(0,n.jsx)(t.code,{children:"{\n 'Default': {\n 'color': [0, 0, 0],\n 'height': 0,\n 'interactive': 'Web',\n ...\n },\n ...\n}\n"})}),"\n",(0,n.jsx)(t.p,{children:"The bare minimum properties that need to be defined are color, height, and interactive. If not provided, brix will assign them automatically."}),"\n",(0,n.jsx)(t.p,{children:"The following line of code replaces the Default type by there other cell types callsed Type 1, Type 2, and Type 3, letting brix assign the color to each of them."}),"\n",(0,n.jsx)(t.pre,{children:(0,n.jsx)(t.code,{children:"G.edit_types(['Type 1','Type 2','Type 3'])\n"})}),"\n",(0,n.jsxs)(t.p,{children:["For most applications, you will want to turn off some of the cells and make them non-interactive. Usually, this will involve a shapefile or a geojson that contains the polygon that defines the interactive part of the table. If you have a Shapely polygon stored in poly you can set the non-interactive cells by using ",(0,n.jsx)(t.code,{children:"brix.Grid_maker.set_noninteractive()"}),":"]}),"\n",(0,n.jsx)(t.pre,{children:(0,n.jsx)(t.code,{children:"G.set_noninteractive(poly)\n"})}),"\n",(0,n.jsxs)(t.p,{children:["The final step is to commit the grid to CityIO. Use ",(0,n.jsx)(t.code,{children:"brix.Grid_maker.commit_grid()"}),":"]}),"\n",(0,n.jsx)(t.pre,{children:(0,n.jsx)(t.code,{children:"G.commit_grid()\n"})}),"\n",(0,n.jsx)(t.p,{children:"Putting it all together:"}),"\n",(0,n.jsx)(t.pre,{children:(0,n.jsx)(t.code,{children:"from brix import Grid_maker\ntable_name = 'dungeonmaster'\nlat,lon = 42.361875, -71.105713\nG = Grid_maker(table_name, lat, lon)\nG.set_grid_geojson()\nG.edit_types(['Type 1','Type 2','Type 3'])\nG.set_noninteractive(poly)\nG.commit_grid()\n"})}),"\n",(0,n.jsxs)(t.p,{children:["Alternatively, you can use poly as an argument to ",(0,n.jsx)(t.code,{children:"brix.grid_from_poly()"}),". This function will calculate the location and the cell size based on the given polygon, and set the non-interactive parts. The following block of code achieves the same as the block above:"]}),"\n",(0,n.jsx)(t.pre,{children:(0,n.jsx)(t.code,{children:"from brix import Grid_maker, grid_from_poly\ntable_name = 'dungeonmaster'\nG = grid_from_poly(table_name, poly)\nG.edit_types(['Type 1','Type 2','Type 3'])\nG.commit_grid()\n"})}),"\n",(0,n.jsx)(t.h2,{id:"testing-your-module",children:"Testing your module"}),"\n",(0,n.jsxs)(t.p,{children:["To automatically test your module, this library provides the ",(0,n.jsx)(t.code,{children:"brix.User"})," class that simulates the behavior of a user interacting with your grid. This user runs in its own new thread to free up your main thread so that you can keep wokring on your indicator."]}),"\n",(0,n.jsxs)(t.p,{children:["The following example consists of a ",(0,n.jsx)(t.code,{children:"brix.Handler"})," that contains a diversity ",(0,n.jsx)(t.code,{children:"brix.Indicator"})," that reponds to the updates of the ",(0,n.jsx)(t.code,{children:"brix.User"}),":"]}),"\n",(0,n.jsx)(t.pre,{children:(0,n.jsx)(t.code,{children:"from brix import Handler\nfrom brix.examples import Diversity\nfrom brix.test_tools import User\ntable_name = 'dungeonmaster'\nU = User(table_name)\nH = Handler(table_name,quietly=False)\ndiv = Diversity()\nH.add_indicator(div)\nU.start_user()\nH.listen()\n"})})]})}function h(e={}){const{wrapper:t}={...(0,r.R)(),...e.components};return t?(0,n.jsx)(t,{...e,children:(0,n.jsx)(c,{...e})}):c(e)}},8453:(e,t,i)=>{i.d(t,{R:()=>a,x:()=>s});var n=i(6540);const r={},o=n.createContext(r);function a(e){const t=n.useContext(o);return n.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function s(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:a(e.components),n.createElement(o.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/build/assets/js/14eb3368.9c4f08f7.js b/build/assets/js/14eb3368.9c4f08f7.js deleted file mode 100644 index 8fda48e5..00000000 --- a/build/assets/js/14eb3368.9c4f08f7.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkcityscope_docs=self.webpackChunkcityscope_docs||[]).push([[969],{1243:(e,t,n)=>{n.d(t,{A:()=>g});n(6540);var s=n(4164),r=n(7559),i=n(1754),a=n(9169),l=n(8774),o=n(1312),c=n(6025),d=n(4848);function u(e){return(0,d.jsx)("svg",{viewBox:"0 0 24 24",...e,children:(0,d.jsx)("path",{d:"M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z",fill:"currentColor"})})}const m={breadcrumbHomeIcon:"breadcrumbHomeIcon_YNFT"};function h(){const e=(0,c.A)("/");return(0,d.jsx)("li",{className:"breadcrumbs__item",children:(0,d.jsx)(l.A,{"aria-label":(0,o.T)({id:"theme.docs.breadcrumbs.home",message:"Home page",description:"The ARIA label for the home page in the breadcrumbs"}),className:"breadcrumbs__link",href:e,children:(0,d.jsx)(u,{className:m.breadcrumbHomeIcon})})})}const b={breadcrumbsContainer:"breadcrumbsContainer_Z_bl"};function p(e){let{children:t,href:n,isLast:s}=e;const r="breadcrumbs__link";return s?(0,d.jsx)("span",{className:r,itemProp:"name",children:t}):n?(0,d.jsx)(l.A,{className:r,href:n,itemProp:"item",children:(0,d.jsx)("span",{itemProp:"name",children:t})}):(0,d.jsx)("span",{className:r,children:t})}function x(e){let{children:t,active:n,index:r,addMicrodata:i}=e;return(0,d.jsxs)("li",{...i&&{itemScope:!0,itemProp:"itemListElement",itemType:"https://schema.org/ListItem"},className:(0,s.A)("breadcrumbs__item",{"breadcrumbs__item--active":n}),children:[t,(0,d.jsx)("meta",{itemProp:"position",content:String(r+1)})]})}function g(){const e=(0,i.OF)(),t=(0,a.Dt)();return e?(0,d.jsx)("nav",{className:(0,s.A)(r.G.docs.docBreadcrumbs,b.breadcrumbsContainer),"aria-label":(0,o.T)({id:"theme.docs.breadcrumbs.navAriaLabel",message:"Breadcrumbs",description:"The ARIA label for the breadcrumbs"}),children:(0,d.jsxs)("ul",{className:"breadcrumbs",itemScope:!0,itemType:"https://schema.org/BreadcrumbList",children:[t&&(0,d.jsx)(h,{}),e.map(((t,n)=>{const s=n===e.length-1,r="category"===t.type&&t.linkUnlisted?void 0:t.href;return(0,d.jsx)(x,{active:s,index:n,addMicrodata:!!r,children:(0,d.jsx)(p,{href:r,isLast:s,children:t.label})},n)}))]})}):null}},7247:(e,t,n)=>{n.r(t),n.d(t,{default:()=>V});var s=n(6540),r=n(1003),i=n(1754),a=n(6025),l=n(4164),o=n(8774),c=n(4586);const d=["zero","one","two","few","many","other"];function u(e){return d.filter((t=>e.includes(t)))}const m={locale:"en",pluralForms:u(["one","other"]),select:e=>1===e?"one":"other"};function h(){const{i18n:{currentLocale:e}}=(0,c.A)();return(0,s.useMemo)((()=>{try{return function(e){const t=new Intl.PluralRules(e);return{locale:e,pluralForms:u(t.resolvedOptions().pluralCategories),select:e=>t.select(e)}}(e)}catch(t){return console.error('Failed to use Intl.PluralRules for locale "'+e+'".\nDocusaurus will fallback to the default (English) implementation.\nError: '+t.message+"\n"),m}}),[e])}function b(){const e=h();return{selectMessage:(t,n)=>function(e,t,n){const s=e.split("|");if(1===s.length)return s[0];s.length>n.pluralForms.length&&console.error("For locale="+n.locale+", a maximum of "+n.pluralForms.length+" plural forms are expected ("+n.pluralForms.join(",")+"), but the message contains "+s.length+": "+e);const r=n.select(t),i=n.pluralForms.indexOf(r);return s[Math.min(i,s.length-1)]}(n,t,e)}}var p=n(6654),x=n(1312),g=n(1107);const v={cardContainer:"cardContainer_fWXF",cardTitle:"cardTitle_rnsV",cardDescription:"cardDescription_PWke"};var f=n(4848);function j(e){let{href:t,children:n}=e;return(0,f.jsx)(o.A,{href:t,className:(0,l.A)("card padding--lg",v.cardContainer),children:n})}function A(e){let{href:t,icon:n,title:s,description:r}=e;return(0,f.jsxs)(j,{href:t,children:[(0,f.jsxs)(g.A,{as:"h2",className:(0,l.A)("text--truncate",v.cardTitle),title:s,children:[n," ",s]}),r&&(0,f.jsx)("p",{className:(0,l.A)("text--truncate",v.cardDescription),title:r,children:r})]})}function N(e){var t;let{item:n}=e;const s=(0,i.Nr)(n),r=function(){const{selectMessage:e}=b();return t=>e(t,(0,x.T)({message:"{count} items",id:"theme.docs.DocCard.categoryDescription.plurals",description:"The default description for a category card in the generated index about how many items this category includes"},{count:t}))}();return s?(0,f.jsx)(A,{href:s,icon:"\ud83d\uddc3\ufe0f",title:n.label,description:null!=(t=n.description)?t:r(n.items.length)}):null}function T(e){var t,n;let{item:s}=e;const r=(0,p.A)(s.href)?"\ud83d\udcc4\ufe0f":"\ud83d\udd17",a=(0,i.cC)(null!=(t=s.docId)?t:void 0);return(0,f.jsx)(A,{href:s.href,icon:r,title:s.label,description:null!=(n=s.description)?n:null==a?void 0:a.description})}function _(e){let{item:t}=e;switch(t.type){case"link":return(0,f.jsx)(T,{item:t});case"category":return(0,f.jsx)(N,{item:t});default:throw new Error("unknown item type "+JSON.stringify(t))}}function L(e){let{className:t}=e;const n=(0,i.$S)();return(0,f.jsx)(k,{items:n.items,className:t})}function k(e){const{items:t,className:n}=e;if(!t)return(0,f.jsx)(L,{...e});const s=(0,i.d1)(t);return(0,f.jsx)("section",{className:(0,l.A)("row",n),children:s.map(((e,t)=>(0,f.jsx)("article",{className:"col col--6 margin-bottom--lg",children:(0,f.jsx)(_,{item:e})},t)))})}var y=n(6929),w=n(1878),I=n(4267),C=n(1243);const F={generatedIndexPage:"generatedIndexPage_vN6x",list:"list_eTzJ",title:"title_kItE"};function M(e){let{categoryGeneratedIndex:t}=e;return(0,f.jsx)(r.be,{title:t.title,description:t.description,keywords:t.keywords,image:(0,a.A)(t.image)})}function P(e){let{categoryGeneratedIndex:t}=e;const n=(0,i.$S)();return(0,f.jsxs)("div",{className:F.generatedIndexPage,children:[(0,f.jsx)(w.A,{}),(0,f.jsx)(C.A,{}),(0,f.jsx)(I.A,{}),(0,f.jsxs)("header",{children:[(0,f.jsx)(g.A,{as:"h1",className:F.title,children:t.title}),t.description&&(0,f.jsx)("p",{children:t.description})]}),(0,f.jsx)("article",{className:"margin-top--lg",children:(0,f.jsx)(k,{items:n.items,className:F.list})}),(0,f.jsx)("footer",{className:"margin-top--lg",children:(0,f.jsx)(y.A,{previous:t.navigation.previous,next:t.navigation.next})})]})}function V(e){return(0,f.jsxs)(f.Fragment,{children:[(0,f.jsx)(M,{...e}),(0,f.jsx)(P,{...e})]})}},6929:(e,t,n)=>{n.d(t,{A:()=>o});n(6540);var s=n(1312),r=n(4164),i=n(8774),a=n(4848);function l(e){const{permalink:t,title:n,subLabel:s,isNext:l}=e;return(0,a.jsxs)(i.A,{className:(0,r.A)("pagination-nav__link",l?"pagination-nav__link--next":"pagination-nav__link--prev"),to:t,children:[s&&(0,a.jsx)("div",{className:"pagination-nav__sublabel",children:s}),(0,a.jsx)("div",{className:"pagination-nav__label",children:n})]})}function o(e){const{previous:t,next:n}=e;return(0,a.jsxs)("nav",{className:"pagination-nav docusaurus-mt-lg","aria-label":(0,s.T)({id:"theme.docs.paginator.navAriaLabel",message:"Docs pages",description:"The ARIA label for the docs pagination"}),children:[t&&(0,a.jsx)(l,{...t,subLabel:(0,a.jsx)(s.A,{id:"theme.docs.paginator.previous",description:"The label used to navigate to the previous doc",children:"Previous"})}),n&&(0,a.jsx)(l,{...n,subLabel:(0,a.jsx)(s.A,{id:"theme.docs.paginator.next",description:"The label used to navigate to the next doc",children:"Next"}),isNext:!0})]})}},4267:(e,t,n)=>{n.d(t,{A:()=>o});n(6540);var s=n(4164),r=n(1312),i=n(7559),a=n(2252),l=n(4848);function o(e){let{className:t}=e;const n=(0,a.r)();return n.badge?(0,l.jsx)("span",{className:(0,s.A)(t,i.G.docs.docVersionBadge,"badge badge--secondary"),children:(0,l.jsx)(r.A,{id:"theme.docs.versionBadge.label",values:{versionLabel:n.label},children:"Version: {versionLabel}"})}):null}},1878:(e,t,n)=>{n.d(t,{A:()=>x});n(6540);var s=n(4164),r=n(4586),i=n(8774),a=n(1312),l=n(4070),o=n(7559),c=n(5597),d=n(2252),u=n(4848);const m={unreleased:function(e){let{siteTitle:t,versionMetadata:n}=e;return(0,u.jsx)(a.A,{id:"theme.docs.versions.unreleasedVersionLabel",description:"The label used to tell the user that he's browsing an unreleased doc version",values:{siteTitle:t,versionLabel:(0,u.jsx)("b",{children:n.label})},children:"This is unreleased documentation for {siteTitle} {versionLabel} version."})},unmaintained:function(e){let{siteTitle:t,versionMetadata:n}=e;return(0,u.jsx)(a.A,{id:"theme.docs.versions.unmaintainedVersionLabel",description:"The label used to tell the user that he's browsing an unmaintained doc version",values:{siteTitle:t,versionLabel:(0,u.jsx)("b",{children:n.label})},children:"This is documentation for {siteTitle} {versionLabel}, which is no longer actively maintained."})}};function h(e){const t=m[e.versionMetadata.banner];return(0,u.jsx)(t,{...e})}function b(e){let{versionLabel:t,to:n,onClick:s}=e;return(0,u.jsx)(a.A,{id:"theme.docs.versions.latestVersionSuggestionLabel",description:"The label used to tell the user to check the latest version",values:{versionLabel:t,latestVersionLink:(0,u.jsx)("b",{children:(0,u.jsx)(i.A,{to:n,onClick:s,children:(0,u.jsx)(a.A,{id:"theme.docs.versions.latestVersionLinkLabel",description:"The label used for the latest version suggestion link label",children:"latest version"})})})},children:"For up-to-date documentation, see the {latestVersionLink} ({versionLabel})."})}function p(e){let{className:t,versionMetadata:n}=e;const{siteConfig:{title:i}}=(0,r.A)(),{pluginId:a}=(0,l.vT)({failfast:!0}),{savePreferredVersionName:d}=(0,c.g1)(a),{latestDocSuggestion:m,latestVersionSuggestion:p}=(0,l.HW)(a),x=null!=m?m:(g=p).docs.find((e=>e.id===g.mainDocId));var g;return(0,u.jsxs)("div",{className:(0,s.A)(t,o.G.docs.docVersionBanner,"alert alert--warning margin-bottom--md"),role:"alert",children:[(0,u.jsx)("div",{children:(0,u.jsx)(h,{siteTitle:i,versionMetadata:n})}),(0,u.jsx)("div",{className:"margin-top--md",children:(0,u.jsx)(b,{versionLabel:p.label,to:x.path,onClick:()=>d(p.name)})})]})}function x(e){let{className:t}=e;const n=(0,d.r)();return n.banner?(0,u.jsx)(p,{className:t,versionMetadata:n}):null}}}]); \ No newline at end of file diff --git a/build/assets/js/17896441.917f5f3f.js b/build/assets/js/17896441.917f5f3f.js deleted file mode 100644 index ef781226..00000000 --- a/build/assets/js/17896441.917f5f3f.js +++ /dev/null @@ -1 +0,0 @@ -(self.webpackChunkcityscope_docs=self.webpackChunkcityscope_docs||[]).push([[401],{1243:(e,t,n)=>{"use strict";n.d(t,{A:()=>b});n(6540);var s=n(4164),a=n(7559),o=n(1754),i=n(9169),l=n(8774),c=n(1312),r=n(6025),d=n(4848);function u(e){return(0,d.jsx)("svg",{viewBox:"0 0 24 24",...e,children:(0,d.jsx)("path",{d:"M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z",fill:"currentColor"})})}const m={breadcrumbHomeIcon:"breadcrumbHomeIcon_YNFT"};function h(){const e=(0,r.A)("/");return(0,d.jsx)("li",{className:"breadcrumbs__item",children:(0,d.jsx)(l.A,{"aria-label":(0,c.T)({id:"theme.docs.breadcrumbs.home",message:"Home page",description:"The ARIA label for the home page in the breadcrumbs"}),className:"breadcrumbs__link",href:e,children:(0,d.jsx)(u,{className:m.breadcrumbHomeIcon})})})}const p={breadcrumbsContainer:"breadcrumbsContainer_Z_bl"};function f(e){let{children:t,href:n,isLast:s}=e;const a="breadcrumbs__link";return s?(0,d.jsx)("span",{className:a,itemProp:"name",children:t}):n?(0,d.jsx)(l.A,{className:a,href:n,itemProp:"item",children:(0,d.jsx)("span",{itemProp:"name",children:t})}):(0,d.jsx)("span",{className:a,children:t})}function x(e){let{children:t,active:n,index:a,addMicrodata:o}=e;return(0,d.jsxs)("li",{...o&&{itemScope:!0,itemProp:"itemListElement",itemType:"https://schema.org/ListItem"},className:(0,s.A)("breadcrumbs__item",{"breadcrumbs__item--active":n}),children:[t,(0,d.jsx)("meta",{itemProp:"position",content:String(a+1)})]})}function b(){const e=(0,o.OF)(),t=(0,i.Dt)();return e?(0,d.jsx)("nav",{className:(0,s.A)(a.G.docs.docBreadcrumbs,p.breadcrumbsContainer),"aria-label":(0,c.T)({id:"theme.docs.breadcrumbs.navAriaLabel",message:"Breadcrumbs",description:"The ARIA label for the breadcrumbs"}),children:(0,d.jsxs)("ul",{className:"breadcrumbs",itemScope:!0,itemType:"https://schema.org/BreadcrumbList",children:[t&&(0,d.jsx)(h,{}),e.map(((t,n)=>{const s=n===e.length-1,a="category"===t.type&&t.linkUnlisted?void 0:t.href;return(0,d.jsx)(x,{active:s,index:n,addMicrodata:!!a,children:(0,d.jsx)(f,{href:a,isLast:s,children:t.label})},n)}))]})}):null}},6041:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>Tt});var s=n(6540),a=n(1003),o=n(9532),i=n(4848);const l=s.createContext(null);function c(e){let{children:t,content:n}=e;const a=function(e){return(0,s.useMemo)((()=>({metadata:e.metadata,frontMatter:e.frontMatter,assets:e.assets,contentTitle:e.contentTitle,toc:e.toc})),[e])}(n);return(0,i.jsx)(l.Provider,{value:a,children:t})}function r(){const e=(0,s.useContext)(l);if(null===e)throw new o.dV("DocProvider");return e}function d(){var e;const{metadata:t,frontMatter:n,assets:s}=r();return(0,i.jsx)(a.be,{title:t.title,description:t.description,keywords:n.keywords,image:null!=(e=s.image)?e:n.image})}var u=n(4164),m=n(4581),h=n(6929);function p(){const{metadata:e}=r();return(0,i.jsx)(h.A,{previous:e.previous,next:e.next})}var f=n(1878),x=n(4267),b=n(7559),g=n(1312),v=n(8774);const j={tag:"tag_zVej",tagRegular:"tagRegular_sFm0",tagWithCount:"tagWithCount_h2kH"};function N(e){let{permalink:t,label:n,count:s}=e;return(0,i.jsxs)(v.A,{href:t,className:(0,u.A)(j.tag,s?j.tagWithCount:j.tagRegular),children:[n,s&&(0,i.jsx)("span",{children:s})]})}const A={tags:"tags_jXut",tag:"tag_QGVx"};function C(e){let{tags:t}=e;return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)("b",{children:(0,i.jsx)(g.A,{id:"theme.tags.tagsListLabel",description:"The label alongside a tag list",children:"Tags:"})}),(0,i.jsx)("ul",{className:(0,u.A)(A.tags,"padding--none","margin-left--sm"),children:t.map((e=>{let{label:t,permalink:n}=e;return(0,i.jsx)("li",{className:A.tag,children:(0,i.jsx)(N,{label:t,permalink:n})},n)}))})]})}const k={iconEdit:"iconEdit_Z9Sw"};function y(e){let{className:t,...n}=e;return(0,i.jsx)("svg",{fill:"currentColor",height:"20",width:"20",viewBox:"0 0 40 40",className:(0,u.A)(k.iconEdit,t),"aria-hidden":"true",...n,children:(0,i.jsx)("g",{children:(0,i.jsx)("path",{d:"m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"})})})}function L(e){let{editUrl:t}=e;return(0,i.jsxs)(v.A,{to:t,className:b.G.common.editThisPage,children:[(0,i.jsx)(y,{}),(0,i.jsx)(g.A,{id:"theme.common.editThisPage",description:"The link label to edit the current page",children:"Edit this page"})]})}var _=n(4586);function B(e){void 0===e&&(e={});const{i18n:{currentLocale:t}}=(0,_.A)(),n=function(){const{i18n:{currentLocale:e,localeConfigs:t}}=(0,_.A)();return t[e].calendar}();return new Intl.DateTimeFormat(t,{calendar:n,...e})}function w(e){let{lastUpdatedAt:t}=e;const n=new Date(t),s=B({day:"numeric",month:"short",year:"numeric",timeZone:"UTC"}).format(n);return(0,i.jsx)(g.A,{id:"theme.lastUpdated.atDate",description:"The words used to describe on which date a page has been last updated",values:{date:(0,i.jsx)("b",{children:(0,i.jsx)("time",{dateTime:n.toISOString(),itemProp:"dateModified",children:s})})},children:" on {date}"})}function T(e){let{lastUpdatedBy:t}=e;return(0,i.jsx)(g.A,{id:"theme.lastUpdated.byUser",description:"The words used to describe by who the page has been last updated",values:{user:(0,i.jsx)("b",{children:t})},children:" by {user}"})}function E(e){let{lastUpdatedAt:t,lastUpdatedBy:n}=e;return(0,i.jsxs)("span",{className:b.G.common.lastUpdated,children:[(0,i.jsx)(g.A,{id:"theme.lastUpdated.lastUpdatedAtBy",description:"The sentence used to display when a page has been last updated, and by who",values:{atDate:t?(0,i.jsx)(w,{lastUpdatedAt:t}):"",byUser:n?(0,i.jsx)(T,{lastUpdatedBy:n}):""},children:"Last updated{atDate}{byUser}"}),!1]})}const H={lastUpdated:"lastUpdated_JAkA"};function M(e){let{className:t,editUrl:n,lastUpdatedAt:s,lastUpdatedBy:a}=e;return(0,i.jsxs)("div",{className:(0,u.A)("row",t),children:[(0,i.jsx)("div",{className:"col",children:n&&(0,i.jsx)(L,{editUrl:n})}),(0,i.jsx)("div",{className:(0,u.A)("col",H.lastUpdated),children:(s||a)&&(0,i.jsx)(E,{lastUpdatedAt:s,lastUpdatedBy:a})})]})}function I(){const{metadata:e}=r(),{editUrl:t,lastUpdatedAt:n,lastUpdatedBy:s,tags:a}=e,o=a.length>0,l=!!(t||n||s);return o||l?(0,i.jsxs)("footer",{className:(0,u.A)(b.G.docs.docFooter,"docusaurus-mt-lg"),children:[o&&(0,i.jsx)("div",{className:(0,u.A)("row margin-top--sm",b.G.docs.docFooterTagsRow),children:(0,i.jsx)("div",{className:"col",children:(0,i.jsx)(C,{tags:a})})}),l&&(0,i.jsx)(M,{className:(0,u.A)("margin-top--sm",b.G.docs.docFooterEditMetaRow),editUrl:t,lastUpdatedAt:n,lastUpdatedBy:s})]}):null}var S=n(1422),U=n(6342);function V(e){const t=e.map((e=>({...e,parentIndex:-1,children:[]}))),n=Array(7).fill(-1);t.forEach(((e,t)=>{const s=n.slice(2,e.level);e.parentIndex=Math.max(...s),n[e.level]=t}));const s=[];return t.forEach((e=>{const{parentIndex:n,...a}=e;n>=0?t[n].children.push(a):s.push(a)})),s}function R(e){let{toc:t,minHeadingLevel:n,maxHeadingLevel:s}=e;return t.flatMap((e=>{const t=R({toc:e.children,minHeadingLevel:n,maxHeadingLevel:s});return function(e){return e.level>=n&&e.level<=s}(e)?[{...e,children:t}]:t}))}function z(e){const t=e.getBoundingClientRect();return t.top===t.bottom?z(e.parentNode):t}function O(e,t){var n;let{anchorTopOffset:s}=t;const a=e.find((e=>z(e).top>=s));if(a){var o;return function(e){return e.top>0&&e.bottom{e.current=t?0:document.querySelector(".navbar").clientHeight}),[t]),e}function G(e){const t=(0,s.useRef)(void 0),n=P();(0,s.useEffect)((()=>{if(!e)return()=>{};const{linkClassName:s,linkActiveClassName:a,minHeadingLevel:o,maxHeadingLevel:i}=e;function l(){const e=function(e){return Array.from(document.getElementsByClassName(e))}(s),l=function(e){let{minHeadingLevel:t,maxHeadingLevel:n}=e;const s=[];for(let a=t;a<=n;a+=1)s.push("h"+a+".anchor");return Array.from(document.querySelectorAll(s.join()))}({minHeadingLevel:o,maxHeadingLevel:i}),c=O(l,{anchorTopOffset:n.current}),r=e.find((e=>c&&c.id===function(e){return decodeURIComponent(e.href.substring(e.href.indexOf("#")+1))}(e)));e.forEach((e=>{!function(e,n){n?(t.current&&t.current!==e&&t.current.classList.remove(a),e.classList.add(a),t.current=e):e.classList.remove(a)}(e,e===r)}))}return document.addEventListener("scroll",l),document.addEventListener("resize",l),l(),()=>{document.removeEventListener("scroll",l),document.removeEventListener("resize",l)}}),[e,n])}function D(e){let{toc:t,className:n,linkClassName:s,isChild:a}=e;return t.length?(0,i.jsx)("ul",{className:a?void 0:n,children:t.map((e=>(0,i.jsxs)("li",{children:[(0,i.jsx)(v.A,{to:"#"+e.id,className:null!=s?s:void 0,dangerouslySetInnerHTML:{__html:e.value}}),(0,i.jsx)(D,{isChild:!0,toc:e.children,className:n,linkClassName:s})]},e.id)))}):null}const W=s.memo(D);function F(e){let{toc:t,className:n="table-of-contents table-of-contents__left-border",linkClassName:a="table-of-contents__link",linkActiveClassName:o,minHeadingLevel:l,maxHeadingLevel:c,...r}=e;const d=(0,U.p)(),u=null!=l?l:d.tableOfContents.minHeadingLevel,m=null!=c?c:d.tableOfContents.maxHeadingLevel,h=function(e){let{toc:t,minHeadingLevel:n,maxHeadingLevel:a}=e;return(0,s.useMemo)((()=>R({toc:V(t),minHeadingLevel:n,maxHeadingLevel:a})),[t,n,a])}({toc:t,minHeadingLevel:u,maxHeadingLevel:m});return G((0,s.useMemo)((()=>{if(a&&o)return{linkClassName:a,linkActiveClassName:o,minHeadingLevel:u,maxHeadingLevel:m}}),[a,o,u,m])),(0,i.jsx)(W,{toc:h,className:n,linkClassName:a,...r})}const q={tocCollapsibleButton:"tocCollapsibleButton_TO0P",tocCollapsibleButtonExpanded:"tocCollapsibleButtonExpanded_MG3E"};function Z(e){let{collapsed:t,...n}=e;return(0,i.jsx)("button",{type:"button",...n,className:(0,u.A)("clean-btn",q.tocCollapsibleButton,!t&&q.tocCollapsibleButtonExpanded,n.className),children:(0,i.jsx)(g.A,{id:"theme.TOCCollapsible.toggleButtonLabel",description:"The label used by the button on the collapsible TOC component",children:"On this page"})})}const $={tocCollapsible:"tocCollapsible_ETCw",tocCollapsibleContent:"tocCollapsibleContent_vkbj",tocCollapsibleExpanded:"tocCollapsibleExpanded_sAul"};function J(e){let{toc:t,className:n,minHeadingLevel:s,maxHeadingLevel:a}=e;const{collapsed:o,toggleCollapsed:l}=(0,S.u)({initialState:!0});return(0,i.jsxs)("div",{className:(0,u.A)($.tocCollapsible,!o&&$.tocCollapsibleExpanded,n),children:[(0,i.jsx)(Z,{collapsed:o,onClick:l}),(0,i.jsx)(S.N,{lazy:!0,className:$.tocCollapsibleContent,collapsed:o,children:(0,i.jsx)(F,{toc:t,minHeadingLevel:s,maxHeadingLevel:a})})]})}const Y={tocMobile:"tocMobile_ITEo"};function K(){const{toc:e,frontMatter:t}=r();return(0,i.jsx)(J,{toc:e,minHeadingLevel:t.toc_min_heading_level,maxHeadingLevel:t.toc_max_heading_level,className:(0,u.A)(b.G.docs.docTocMobile,Y.tocMobile)})}const Q={tableOfContents:"tableOfContents_bqdL",docItemContainer:"docItemContainer_F8PC"},X="table-of-contents__link toc-highlight",ee="table-of-contents__link--active";function te(e){let{className:t,...n}=e;return(0,i.jsx)("div",{className:(0,u.A)(Q.tableOfContents,"thin-scrollbar",t),children:(0,i.jsx)(F,{...n,linkClassName:X,linkActiveClassName:ee})})}function ne(){const{toc:e,frontMatter:t}=r();return(0,i.jsx)(te,{toc:e,minHeadingLevel:t.toc_min_heading_level,maxHeadingLevel:t.toc_max_heading_level,className:b.G.docs.docTocDesktop})}var se=n(1107),ae=n(8453),oe=n(5260),ie=n(2303),le=n(5293);function ce(){const{prism:e}=(0,U.p)(),{colorMode:t}=(0,le.G)(),n=e.theme,s=e.darkTheme||n;return"dark"===t?s:n}var re=n(8426),de=n.n(re);const ue=/title=(?["'])(?.*?)\1/,me=/\{(?<range>[\d,-]+)\}/,he={js:{start:"\\/\\/",end:""},jsBlock:{start:"\\/\\*",end:"\\*\\/"},jsx:{start:"\\{\\s*\\/\\*",end:"\\*\\/\\s*\\}"},bash:{start:"#",end:""},html:{start:"\x3c!--",end:"--\x3e"}},pe={...he,lua:{start:"--",end:""},wasm:{start:"\\;\\;",end:""},tex:{start:"%",end:""},vb:{start:"['\u2018\u2019]",end:""},vbnet:{start:"(?:_\\s*)?['\u2018\u2019]",end:""},rem:{start:"[Rr][Ee][Mm]\\b",end:""},f90:{start:"!",end:""},ml:{start:"\\(\\*",end:"\\*\\)"},cobol:{start:"\\*>",end:""}},fe=Object.keys(he);function xe(e,t){const n=e.map((e=>{const{start:n,end:s}=pe[e];return"(?:"+n+"\\s*("+t.flatMap((e=>{var t,n;return[e.line,null==(t=e.block)?void 0:t.start,null==(n=e.block)?void 0:n.end].filter(Boolean)})).join("|")+")\\s*"+s+")"})).join("|");return new RegExp("^\\s*(?:"+n+")\\s*$")}function be(e,t){let n=e.replace(/\n$/,"");const{language:s,magicComments:a,metastring:o}=t;if(o&&me.test(o)){const e=o.match(me).groups.range;if(0===a.length)throw new Error("A highlight range has been given in code block's metastring (``` "+o+"), but no magic comment config is available. Docusaurus applies the first magic comment entry's className for metastring ranges.");const t=a[0].className,s=de()(e).filter((e=>e>0)).map((e=>[e-1,[t]]));return{lineClassNames:Object.fromEntries(s),code:n}}if(void 0===s)return{lineClassNames:{},code:n};const i=function(e,t){switch(e){case"js":case"javascript":case"ts":case"typescript":return xe(["js","jsBlock"],t);case"jsx":case"tsx":return xe(["js","jsBlock","jsx"],t);case"html":return xe(["js","jsBlock","html"],t);case"python":case"py":case"bash":return xe(["bash"],t);case"markdown":case"md":return xe(["html","jsx","bash"],t);case"tex":case"latex":case"matlab":return xe(["tex"],t);case"lua":case"haskell":case"sql":return xe(["lua"],t);case"wasm":return xe(["wasm"],t);case"vb":case"vba":case"visual-basic":return xe(["vb","rem"],t);case"vbnet":return xe(["vbnet","rem"],t);case"batch":return xe(["rem"],t);case"basic":return xe(["rem","f90"],t);case"fsharp":return xe(["js","ml"],t);case"ocaml":case"sml":return xe(["ml"],t);case"fortran":return xe(["f90"],t);case"cobol":return xe(["cobol"],t);default:return xe(fe,t)}}(s,a),l=n.split("\n"),c=Object.fromEntries(a.map((e=>[e.className,{start:0,range:""}]))),r=Object.fromEntries(a.filter((e=>e.line)).map((e=>{let{className:t,line:n}=e;return[n,t]}))),d=Object.fromEntries(a.filter((e=>e.block)).map((e=>{let{className:t,block:n}=e;return[n.start,t]}))),u=Object.fromEntries(a.filter((e=>e.block)).map((e=>{let{className:t,block:n}=e;return[n.end,t]})));for(let h=0;h<l.length;){const e=l[h].match(i);if(!e){h+=1;continue}const t=e.slice(1).find((e=>void 0!==e));r[t]?c[r[t]].range+=h+",":d[t]?c[d[t]].start=h:u[t]&&(c[u[t]].range+=c[u[t]].start+"-"+(h-1)+","),l.splice(h,1)}n=l.join("\n");const m={};return Object.entries(c).forEach((e=>{let[t,{range:n}]=e;de()(n).forEach((e=>{null!=m[e]||(m[e]=[]),m[e].push(t)}))})),{lineClassNames:m,code:n}}const ge={codeBlockContainer:"codeBlockContainer_Ckt0"};function ve(e){let{as:t,...n}=e;const s=function(e){const t={color:"--prism-color",backgroundColor:"--prism-background-color"},n={};return Object.entries(e.plain).forEach((e=>{let[s,a]=e;const o=t[s];o&&"string"==typeof a&&(n[o]=a)})),n}(ce());return(0,i.jsx)(t,{...n,style:s,className:(0,u.A)(n.className,ge.codeBlockContainer,b.G.common.codeBlock)})}const je={codeBlockContent:"codeBlockContent_biex",codeBlockTitle:"codeBlockTitle_Ktv7",codeBlock:"codeBlock_bY9V",codeBlockStandalone:"codeBlockStandalone_MEMb",codeBlockLines:"codeBlockLines_e6Vv",codeBlockLinesWithNumbering:"codeBlockLinesWithNumbering_o6Pm",buttonGroup:"buttonGroup__atx"};function Ne(e){let{children:t,className:n}=e;return(0,i.jsx)(ve,{as:"pre",tabIndex:0,className:(0,u.A)(je.codeBlockStandalone,"thin-scrollbar",n),children:(0,i.jsx)("code",{className:je.codeBlockLines,children:t})})}const Ae={attributes:!0,characterData:!0,childList:!0,subtree:!0};function Ce(e,t){const[n,a]=(0,s.useState)(),i=(0,s.useCallback)((()=>{var t;a(null==(t=e.current)?void 0:t.closest("[role=tabpanel][hidden]"))}),[e,a]);(0,s.useEffect)((()=>{i()}),[i]),function(e,t,n){void 0===n&&(n=Ae);const a=(0,o._q)(t),i=(0,o.Be)(n);(0,s.useEffect)((()=>{const t=new MutationObserver(a);return e&&t.observe(e,i),()=>t.disconnect()}),[e,a,i])}(n,(e=>{e.forEach((e=>{"attributes"===e.type&&"hidden"===e.attributeName&&(t(),i())}))}),{attributes:!0,characterData:!1,childList:!1,subtree:!1})}var ke=n(1765);const ye={codeLine:"codeLine_lJS_",codeLineNumber:"codeLineNumber_Tfdd",codeLineContent:"codeLineContent_feaV"};function Le(e){let{line:t,classNames:n,showLineNumbers:s,getLineProps:a,getTokenProps:o}=e;1===t.length&&"\n"===t[0].content&&(t[0].content="");const l=a({line:t,className:(0,u.A)(n,s&&ye.codeLine)}),c=t.map(((e,t)=>(0,i.jsx)("span",{...o({token:e,key:t})},t)));return(0,i.jsxs)("span",{...l,children:[s?(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)("span",{className:ye.codeLineNumber}),(0,i.jsx)("span",{className:ye.codeLineContent,children:c})]}):c,(0,i.jsx)("br",{})]})}function _e(e){return(0,i.jsx)("svg",{viewBox:"0 0 24 24",...e,children:(0,i.jsx)("path",{fill:"currentColor",d:"M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"})})}function Be(e){return(0,i.jsx)("svg",{viewBox:"0 0 24 24",...e,children:(0,i.jsx)("path",{fill:"currentColor",d:"M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"})})}const we={copyButtonCopied:"copyButtonCopied_obH4",copyButtonIcons:"copyButtonIcons_eSgA",copyButtonIcon:"copyButtonIcon_y97N",copyButtonSuccessIcon:"copyButtonSuccessIcon_LjdS"};function Te(e){let{code:t,className:n}=e;const[a,o]=(0,s.useState)(!1),l=(0,s.useRef)(void 0),c=(0,s.useCallback)((()=>{!function(e,t){let{target:n=document.body}=void 0===t?{}:t;if("string"!=typeof e)throw new TypeError("Expected parameter `text` to be a `string`, got `"+typeof e+"`.");const s=document.createElement("textarea"),a=document.activeElement;s.value=e,s.setAttribute("readonly",""),s.style.contain="strict",s.style.position="absolute",s.style.left="-9999px",s.style.fontSize="12pt";const o=document.getSelection(),i=o.rangeCount>0&&o.getRangeAt(0);n.append(s),s.select(),s.selectionStart=0,s.selectionEnd=e.length;let l=!1;try{l=document.execCommand("copy")}catch{}s.remove(),i&&(o.removeAllRanges(),o.addRange(i)),a&&a.focus()}(t),o(!0),l.current=window.setTimeout((()=>{o(!1)}),1e3)}),[t]);return(0,s.useEffect)((()=>()=>window.clearTimeout(l.current)),[]),(0,i.jsx)("button",{type:"button","aria-label":a?(0,g.T)({id:"theme.CodeBlock.copied",message:"Copied",description:"The copied button label on code blocks"}):(0,g.T)({id:"theme.CodeBlock.copyButtonAriaLabel",message:"Copy code to clipboard",description:"The ARIA label for copy code blocks button"}),title:(0,g.T)({id:"theme.CodeBlock.copy",message:"Copy",description:"The copy button label on code blocks"}),className:(0,u.A)("clean-btn",n,we.copyButton,a&&we.copyButtonCopied),onClick:c,children:(0,i.jsxs)("span",{className:we.copyButtonIcons,"aria-hidden":"true",children:[(0,i.jsx)(_e,{className:we.copyButtonIcon}),(0,i.jsx)(Be,{className:we.copyButtonSuccessIcon})]})})}function Ee(e){return(0,i.jsx)("svg",{viewBox:"0 0 24 24",...e,children:(0,i.jsx)("path",{fill:"currentColor",d:"M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"})})}const He={wordWrapButtonIcon:"wordWrapButtonIcon_Bwma",wordWrapButtonEnabled:"wordWrapButtonEnabled_EoeP"};function Me(e){let{className:t,onClick:n,isEnabled:s}=e;const a=(0,g.T)({id:"theme.CodeBlock.wordWrapToggle",message:"Toggle word wrap",description:"The title attribute for toggle word wrapping button of code block lines"});return(0,i.jsx)("button",{type:"button",onClick:n,className:(0,u.A)("clean-btn",t,s&&He.wordWrapButtonEnabled),"aria-label":a,title:a,children:(0,i.jsx)(Ee,{className:He.wordWrapButtonIcon,"aria-hidden":"true"})})}function Ie(e){var t;let{children:n,className:a="",metastring:o,title:l,showLineNumbers:c,language:r}=e;const{prism:{defaultLanguage:d,magicComments:m}}=(0,U.p)(),h=function(e){return null==e?void 0:e.toLowerCase()}(null!=(t=null!=r?r:function(e){const t=e.split(" ").find((e=>e.startsWith("language-")));return null==t?void 0:t.replace(/language-/,"")}(a))?t:d),p=ce(),f=function(){const[e,t]=(0,s.useState)(!1),[n,a]=(0,s.useState)(!1),o=(0,s.useRef)(null),i=(0,s.useCallback)((()=>{const n=o.current.querySelector("code");e?n.removeAttribute("style"):(n.style.whiteSpace="pre-wrap",n.style.overflowWrap="anywhere"),t((e=>!e))}),[o,e]),l=(0,s.useCallback)((()=>{const{scrollWidth:e,clientWidth:t}=o.current,n=e>t||o.current.querySelector("code").hasAttribute("style");a(n)}),[o]);return Ce(o,l),(0,s.useEffect)((()=>{l()}),[e,l]),(0,s.useEffect)((()=>(window.addEventListener("resize",l,{passive:!0}),()=>{window.removeEventListener("resize",l)})),[l]),{codeBlockRef:o,isEnabled:e,isCodeScrollable:n,toggle:i}}(),x=function(e){var t,n;return null!=(t=null==e||null==(n=e.match(ue))?void 0:n.groups.title)?t:""}(o)||l,{lineClassNames:b,code:g}=be(n,{metastring:o,language:h,magicComments:m}),v=null!=c?c:function(e){return Boolean(null==e?void 0:e.includes("showLineNumbers"))}(o);return(0,i.jsxs)(ve,{as:"div",className:(0,u.A)(a,h&&!a.includes("language-"+h)&&"language-"+h),children:[x&&(0,i.jsx)("div",{className:je.codeBlockTitle,children:x}),(0,i.jsxs)("div",{className:je.codeBlockContent,children:[(0,i.jsx)(ke.f4,{theme:p,code:g,language:null!=h?h:"text",children:e=>{let{className:t,style:n,tokens:s,getLineProps:a,getTokenProps:o}=e;return(0,i.jsx)("pre",{tabIndex:0,ref:f.codeBlockRef,className:(0,u.A)(t,je.codeBlock,"thin-scrollbar"),style:n,children:(0,i.jsx)("code",{className:(0,u.A)(je.codeBlockLines,v&&je.codeBlockLinesWithNumbering),children:s.map(((e,t)=>(0,i.jsx)(Le,{line:e,getLineProps:a,getTokenProps:o,classNames:b[t],showLineNumbers:v},t)))})})}}),(0,i.jsxs)("div",{className:je.buttonGroup,children:[(f.isEnabled||f.isCodeScrollable)&&(0,i.jsx)(Me,{className:je.codeButton,onClick:()=>f.toggle(),isEnabled:f.isEnabled}),(0,i.jsx)(Te,{className:je.codeButton,code:g})]})]})]})}function Se(e){let{children:t,...n}=e;const a=(0,ie.A)(),o=function(e){return s.Children.toArray(e).some((e=>(0,s.isValidElement)(e)))?e:Array.isArray(e)?e.join(""):e}(t),l="string"==typeof o?Ie:Ne;return(0,i.jsx)(l,{...n,children:o},String(a))}function Ue(e){return(0,i.jsx)("code",{...e})}var Ve=n(3427);const Re={details:"details_lb9f",isBrowser:"isBrowser_bmU9",collapsibleContent:"collapsibleContent_i85q"};function ze(e){return!!e&&("SUMMARY"===e.tagName||ze(e.parentElement))}function Oe(e,t){return!!e&&(e===t||Oe(e.parentElement,t))}function Pe(e){let{summary:t,children:n,...a}=e;(0,Ve.A)().collectAnchor(a.id);const o=(0,ie.A)(),l=(0,s.useRef)(null),{collapsed:c,setCollapsed:r}=(0,S.u)({initialState:!a.open}),[d,m]=(0,s.useState)(a.open),h=s.isValidElement(t)?t:(0,i.jsx)("summary",{children:null!=t?t:"Details"});return(0,i.jsxs)("details",{...a,ref:l,open:d,"data-collapsed":c,className:(0,u.A)(Re.details,o&&Re.isBrowser,a.className),onMouseDown:e=>{ze(e.target)&&e.detail>1&&e.preventDefault()},onClick:e=>{e.stopPropagation();const t=e.target;ze(t)&&Oe(t,l.current)&&(e.preventDefault(),c?(r(!1),m(!0)):r(!0))},children:[h,(0,i.jsx)(S.N,{lazy:!1,collapsed:c,disableSSRStyle:!0,onCollapseTransitionEnd:e=>{r(e),m(!e)},children:(0,i.jsx)("div",{className:Re.collapsibleContent,children:n})})]})}const Ge={details:"details_b_Ee"},De="alert alert--info";function We(e){let{...t}=e;return(0,i.jsx)(Pe,{...t,className:(0,u.A)(De,Ge.details,t.className)})}function Fe(e){const t=s.Children.toArray(e.children),n=t.find((e=>s.isValidElement(e)&&"summary"===e.type)),a=(0,i.jsx)(i.Fragment,{children:t.filter((e=>e!==n))});return(0,i.jsx)(We,{...e,summary:n,children:a})}function qe(e){return(0,i.jsx)(se.A,{...e})}const Ze={containsTaskList:"containsTaskList_mC6p"};function $e(e){if(void 0!==e)return(0,u.A)(e,(null==e?void 0:e.includes("contains-task-list"))&&Ze.containsTaskList)}const Je={img:"img_ev3q"};function Ye(e){var t;const{mdxAdmonitionTitle:n,rest:a}=function(e){const t=s.Children.toArray(e),n=t.find((e=>s.isValidElement(e)&&"mdxAdmonitionTitle"===e.type)),a=t.filter((e=>e!==n));return{mdxAdmonitionTitle:null==n?void 0:n.props.children,rest:a.length>0?(0,i.jsx)(i.Fragment,{children:a}):null}}(e.children),o=null!=(t=e.title)?t:n;return{...e,...o&&{title:o},children:a}}const Ke={admonition:"admonition_xJq3",admonitionHeading:"admonitionHeading_Gvgb",admonitionIcon:"admonitionIcon_Rf37",admonitionContent:"admonitionContent_BuS1"};function Qe(e){let{type:t,className:n,children:s}=e;return(0,i.jsx)("div",{className:(0,u.A)(b.G.common.admonition,b.G.common.admonitionType(t),Ke.admonition,n),children:s})}function Xe(e){let{icon:t,title:n}=e;return(0,i.jsxs)("div",{className:Ke.admonitionHeading,children:[(0,i.jsx)("span",{className:Ke.admonitionIcon,children:t}),n]})}function et(e){let{children:t}=e;return t?(0,i.jsx)("div",{className:Ke.admonitionContent,children:t}):null}function tt(e){const{type:t,icon:n,title:s,children:a,className:o}=e;return(0,i.jsxs)(Qe,{type:t,className:o,children:[(0,i.jsx)(Xe,{title:s,icon:n}),(0,i.jsx)(et,{children:a})]})}function nt(e){return(0,i.jsx)("svg",{viewBox:"0 0 14 16",...e,children:(0,i.jsx)("path",{fillRule:"evenodd",d:"M6.3 5.69a.942.942 0 0 1-.28-.7c0-.28.09-.52.28-.7.19-.18.42-.28.7-.28.28 0 .52.09.7.28.18.19.28.42.28.7 0 .28-.09.52-.28.7a1 1 0 0 1-.7.3c-.28 0-.52-.11-.7-.3zM8 7.99c-.02-.25-.11-.48-.31-.69-.2-.19-.42-.3-.69-.31H6c-.27.02-.48.13-.69.31-.2.2-.3.44-.31.69h1v3c.02.27.11.5.31.69.2.2.42.31.69.31h1c.27 0 .48-.11.69-.31.2-.19.3-.42.31-.69H8V7.98v.01zM7 2.3c-3.14 0-5.7 2.54-5.7 5.68 0 3.14 2.56 5.7 5.7 5.7s5.7-2.55 5.7-5.7c0-3.15-2.56-5.69-5.7-5.69v.01zM7 .98c3.86 0 7 3.14 7 7s-3.14 7-7 7-7-3.12-7-7 3.14-7 7-7z"})})}const st={icon:(0,i.jsx)(nt,{}),title:(0,i.jsx)(g.A,{id:"theme.admonition.note",description:"The default label used for the Note admonition (:::note)",children:"note"})};function at(e){return(0,i.jsx)(tt,{...st,...e,className:(0,u.A)("alert alert--secondary",e.className),children:e.children})}function ot(e){return(0,i.jsx)("svg",{viewBox:"0 0 12 16",...e,children:(0,i.jsx)("path",{fillRule:"evenodd",d:"M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"})})}const it={icon:(0,i.jsx)(ot,{}),title:(0,i.jsx)(g.A,{id:"theme.admonition.tip",description:"The default label used for the Tip admonition (:::tip)",children:"tip"})};function lt(e){return(0,i.jsx)(tt,{...it,...e,className:(0,u.A)("alert alert--success",e.className),children:e.children})}function ct(e){return(0,i.jsx)("svg",{viewBox:"0 0 14 16",...e,children:(0,i.jsx)("path",{fillRule:"evenodd",d:"M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"})})}const rt={icon:(0,i.jsx)(ct,{}),title:(0,i.jsx)(g.A,{id:"theme.admonition.info",description:"The default label used for the Info admonition (:::info)",children:"info"})};function dt(e){return(0,i.jsx)(tt,{...rt,...e,className:(0,u.A)("alert alert--info",e.className),children:e.children})}function ut(e){return(0,i.jsx)("svg",{viewBox:"0 0 16 16",...e,children:(0,i.jsx)("path",{fillRule:"evenodd",d:"M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 0 0 0 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 0 0 .01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z"})})}const mt={icon:(0,i.jsx)(ut,{}),title:(0,i.jsx)(g.A,{id:"theme.admonition.warning",description:"The default label used for the Warning admonition (:::warning)",children:"warning"})};function ht(e){return(0,i.jsx)("svg",{viewBox:"0 0 12 16",...e,children:(0,i.jsx)("path",{fillRule:"evenodd",d:"M5.05.31c.81 2.17.41 3.38-.52 4.31C3.55 5.67 1.98 6.45.9 7.98c-1.45 2.05-1.7 6.53 3.53 7.7-2.2-1.16-2.67-4.52-.3-6.61-.61 2.03.53 3.33 1.94 2.86 1.39-.47 2.3.53 2.27 1.67-.02.78-.31 1.44-1.13 1.81 3.42-.59 4.78-3.42 4.78-5.56 0-2.84-2.53-3.22-1.25-5.61-1.52.13-2.03 1.13-1.89 2.75.09 1.08-1.02 1.8-1.86 1.33-.67-.41-.66-1.19-.06-1.78C8.18 5.31 8.68 2.45 5.05.32L5.03.3l.02.01z"})})}const pt={icon:(0,i.jsx)(ht,{}),title:(0,i.jsx)(g.A,{id:"theme.admonition.danger",description:"The default label used for the Danger admonition (:::danger)",children:"danger"})};const ft={icon:(0,i.jsx)(ut,{}),title:(0,i.jsx)(g.A,{id:"theme.admonition.caution",description:"The default label used for the Caution admonition (:::caution)",children:"caution"})};const xt={...{note:at,tip:lt,info:dt,warning:function(e){return(0,i.jsx)(tt,{...mt,...e,className:(0,u.A)("alert alert--warning",e.className),children:e.children})},danger:function(e){return(0,i.jsx)(tt,{...pt,...e,className:(0,u.A)("alert alert--danger",e.className),children:e.children})}},...{secondary:e=>(0,i.jsx)(at,{title:"secondary",...e}),important:e=>(0,i.jsx)(dt,{title:"important",...e}),success:e=>(0,i.jsx)(lt,{title:"success",...e}),caution:function(e){return(0,i.jsx)(tt,{...ft,...e,className:(0,u.A)("alert alert--warning",e.className),children:e.children})}}};function bt(e){const t=Ye(e),n=(s=t.type,xt[s]||(console.warn('No admonition component found for admonition type "'+s+'". Using Info as fallback.'),xt.info));var s;return(0,i.jsx)(n,{...t})}var gt=n(418);const vt={Head:oe.A,details:Fe,Details:Fe,code:function(e){return function(e){return void 0!==e.children&&s.Children.toArray(e.children).every((e=>"string"==typeof e&&!e.includes("\n")))}(e)?(0,i.jsx)(Ue,{...e}):(0,i.jsx)(Se,{...e})},a:function(e){return(0,i.jsx)(v.A,{...e})},pre:function(e){return(0,i.jsx)(i.Fragment,{children:e.children})},ul:function(e){return(0,i.jsx)("ul",{...e,className:$e(e.className)})},li:function(e){return(0,Ve.A)().collectAnchor(e.id),(0,i.jsx)("li",{...e})},img:function(e){return(0,i.jsx)("img",{decoding:"async",loading:"lazy",...e,className:(t=e.className,(0,u.A)(t,Je.img))});var t},h1:e=>(0,i.jsx)(qe,{as:"h1",...e}),h2:e=>(0,i.jsx)(qe,{as:"h2",...e}),h3:e=>(0,i.jsx)(qe,{as:"h3",...e}),h4:e=>(0,i.jsx)(qe,{as:"h4",...e}),h5:e=>(0,i.jsx)(qe,{as:"h5",...e}),h6:e=>(0,i.jsx)(qe,{as:"h6",...e}),admonition:bt,mermaid:gt.A};function jt(e){let{children:t}=e;return(0,i.jsx)(ae.x,{components:vt,children:t})}function Nt(e){let{children:t}=e;const n=function(){const{metadata:e,frontMatter:t,contentTitle:n}=r();return t.hide_title||void 0!==n?null:e.title}();return(0,i.jsxs)("div",{className:(0,u.A)(b.G.docs.docMarkdown,"markdown"),children:[n&&(0,i.jsx)("header",{children:(0,i.jsx)(se.A,{as:"h1",children:n})}),(0,i.jsx)(jt,{children:t})]})}var At=n(1243);function Ct(){return(0,i.jsx)(g.A,{id:"theme.unlistedContent.title",description:"The unlisted content banner title",children:"Unlisted page"})}function kt(){return(0,i.jsx)(g.A,{id:"theme.unlistedContent.message",description:"The unlisted content banner message",children:"This page is unlisted. Search engines will not index it, and only users having a direct link can access it."})}function yt(){return(0,i.jsx)(oe.A,{children:(0,i.jsx)("meta",{name:"robots",content:"noindex, nofollow"})})}function Lt(e){let{className:t}=e;return(0,i.jsx)(bt,{type:"caution",title:(0,i.jsx)(Ct,{}),className:(0,u.A)(t,b.G.common.unlistedBanner),children:(0,i.jsx)(kt,{})})}function _t(e){return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(yt,{}),(0,i.jsx)(Lt,{...e})]})}const Bt={docItemContainer:"docItemContainer_Djhp",docItemCol:"docItemCol_VOVn"};function wt(e){let{children:t}=e;const n=function(){const{frontMatter:e,toc:t}=r(),n=(0,m.l)(),s=e.hide_table_of_contents,a=!s&&t.length>0;return{hidden:s,mobile:a?(0,i.jsx)(K,{}):void 0,desktop:!a||"desktop"!==n&&"ssr"!==n?void 0:(0,i.jsx)(ne,{})}}(),{metadata:{unlisted:s}}=r();return(0,i.jsxs)("div",{className:"row",children:[(0,i.jsxs)("div",{className:(0,u.A)("col",!n.hidden&&Bt.docItemCol),children:[s&&(0,i.jsx)(_t,{}),(0,i.jsx)(f.A,{}),(0,i.jsxs)("div",{className:Bt.docItemContainer,children:[(0,i.jsxs)("article",{children:[(0,i.jsx)(At.A,{}),(0,i.jsx)(x.A,{}),n.mobile,(0,i.jsx)(Nt,{children:t}),(0,i.jsx)(I,{})]}),(0,i.jsx)(p,{})]})]}),n.desktop&&(0,i.jsx)("div",{className:"col col--3",children:n.desktop})]})}function Tt(e){const t="docs-doc-id-"+e.content.metadata.id,n=e.content;return(0,i.jsx)(c,{content:e.content,children:(0,i.jsxs)(a.e3,{className:t,children:[(0,i.jsx)(d,{}),(0,i.jsx)(wt,{children:(0,i.jsx)(n,{})})]})})}},6929:(e,t,n)=>{"use strict";n.d(t,{A:()=>c});n(6540);var s=n(1312),a=n(4164),o=n(8774),i=n(4848);function l(e){const{permalink:t,title:n,subLabel:s,isNext:l}=e;return(0,i.jsxs)(o.A,{className:(0,a.A)("pagination-nav__link",l?"pagination-nav__link--next":"pagination-nav__link--prev"),to:t,children:[s&&(0,i.jsx)("div",{className:"pagination-nav__sublabel",children:s}),(0,i.jsx)("div",{className:"pagination-nav__label",children:n})]})}function c(e){const{previous:t,next:n}=e;return(0,i.jsxs)("nav",{className:"pagination-nav docusaurus-mt-lg","aria-label":(0,s.T)({id:"theme.docs.paginator.navAriaLabel",message:"Docs pages",description:"The ARIA label for the docs pagination"}),children:[t&&(0,i.jsx)(l,{...t,subLabel:(0,i.jsx)(s.A,{id:"theme.docs.paginator.previous",description:"The label used to navigate to the previous doc",children:"Previous"})}),n&&(0,i.jsx)(l,{...n,subLabel:(0,i.jsx)(s.A,{id:"theme.docs.paginator.next",description:"The label used to navigate to the next doc",children:"Next"}),isNext:!0})]})}},4267:(e,t,n)=>{"use strict";n.d(t,{A:()=>c});n(6540);var s=n(4164),a=n(1312),o=n(7559),i=n(2252),l=n(4848);function c(e){let{className:t}=e;const n=(0,i.r)();return n.badge?(0,l.jsx)("span",{className:(0,s.A)(t,o.G.docs.docVersionBadge,"badge badge--secondary"),children:(0,l.jsx)(a.A,{id:"theme.docs.versionBadge.label",values:{versionLabel:n.label},children:"Version: {versionLabel}"})}):null}},1878:(e,t,n)=>{"use strict";n.d(t,{A:()=>x});n(6540);var s=n(4164),a=n(4586),o=n(8774),i=n(1312),l=n(4070),c=n(7559),r=n(5597),d=n(2252),u=n(4848);const m={unreleased:function(e){let{siteTitle:t,versionMetadata:n}=e;return(0,u.jsx)(i.A,{id:"theme.docs.versions.unreleasedVersionLabel",description:"The label used to tell the user that he's browsing an unreleased doc version",values:{siteTitle:t,versionLabel:(0,u.jsx)("b",{children:n.label})},children:"This is unreleased documentation for {siteTitle} {versionLabel} version."})},unmaintained:function(e){let{siteTitle:t,versionMetadata:n}=e;return(0,u.jsx)(i.A,{id:"theme.docs.versions.unmaintainedVersionLabel",description:"The label used to tell the user that he's browsing an unmaintained doc version",values:{siteTitle:t,versionLabel:(0,u.jsx)("b",{children:n.label})},children:"This is documentation for {siteTitle} {versionLabel}, which is no longer actively maintained."})}};function h(e){const t=m[e.versionMetadata.banner];return(0,u.jsx)(t,{...e})}function p(e){let{versionLabel:t,to:n,onClick:s}=e;return(0,u.jsx)(i.A,{id:"theme.docs.versions.latestVersionSuggestionLabel",description:"The label used to tell the user to check the latest version",values:{versionLabel:t,latestVersionLink:(0,u.jsx)("b",{children:(0,u.jsx)(o.A,{to:n,onClick:s,children:(0,u.jsx)(i.A,{id:"theme.docs.versions.latestVersionLinkLabel",description:"The label used for the latest version suggestion link label",children:"latest version"})})})},children:"For up-to-date documentation, see the {latestVersionLink} ({versionLabel})."})}function f(e){let{className:t,versionMetadata:n}=e;const{siteConfig:{title:o}}=(0,a.A)(),{pluginId:i}=(0,l.vT)({failfast:!0}),{savePreferredVersionName:d}=(0,r.g1)(i),{latestDocSuggestion:m,latestVersionSuggestion:f}=(0,l.HW)(i),x=null!=m?m:(b=f).docs.find((e=>e.id===b.mainDocId));var b;return(0,u.jsxs)("div",{className:(0,s.A)(t,c.G.docs.docVersionBanner,"alert alert--warning margin-bottom--md"),role:"alert",children:[(0,u.jsx)("div",{children:(0,u.jsx)(h,{siteTitle:o,versionMetadata:n})}),(0,u.jsx)("div",{className:"margin-top--md",children:(0,u.jsx)(p,{versionLabel:f.label,to:x.path,onClick:()=>d(f.name)})})]})}function x(e){let{className:t}=e;const n=(0,d.r)();return n.banner?(0,u.jsx)(f,{className:t,versionMetadata:n}):null}},8426:(e,t)=>{function n(e){let t,n=[];for(let s of e.split(",").map((e=>e.trim())))if(/^-?\d+$/.test(s))n.push(parseInt(s,10));else if(t=s.match(/^(-?\d+)(-|\.\.\.?|\u2025|\u2026|\u22EF)(-?\d+)$/)){let[e,s,a,o]=t;if(s&&o){s=parseInt(s),o=parseInt(o);const e=s<o?1:-1;"-"!==a&&".."!==a&&"\u2025"!==a||(o+=e);for(let t=s;t!==o;t+=e)n.push(t)}}return n}t.default=n,e.exports=n},8453:(e,t,n)=>{"use strict";n.d(t,{R:()=>i,x:()=>l});var s=n(6540);const a={},o=s.createContext(a);function i(e){const t=s.useContext(o);return s.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function l(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:i(e.components),s.createElement(o.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/build/assets/js/237.5283eccd.js b/build/assets/js/237.5283eccd.js deleted file mode 100644 index b3796f5a..00000000 --- a/build/assets/js/237.5283eccd.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkcityscope_docs=self.webpackChunkcityscope_docs||[]).push([[237],{3363:(e,t,i)=>{i.d(t,{A:()=>a});i(6540);var n=i(4164),o=i(1312),s=i(1107),r=i(4848);function a(e){let{className:t}=e;return(0,r.jsx)("main",{className:(0,n.A)("container margin-vert--xl",t),children:(0,r.jsx)("div",{className:"row",children:(0,r.jsxs)("div",{className:"col col--6 col--offset-3",children:[(0,r.jsx)(s.A,{as:"h1",className:"hero__title",children:(0,r.jsx)(o.A,{id:"theme.NotFound.title",description:"The title of the 404 page",children:"Page Not Found"})}),(0,r.jsx)("p",{children:(0,r.jsx)(o.A,{id:"theme.NotFound.p1",description:"The first paragraph of the 404 page",children:"We could not find what you were looking for."})}),(0,r.jsx)("p",{children:(0,r.jsx)(o.A,{id:"theme.NotFound.p2",description:"The 2nd paragraph of the 404 page",children:"Please contact the owner of the site that linked you to the original URL and let them know their link is broken."})})]})})})}},2237:(e,t,i)=>{i.r(t),i.d(t,{default:()=>c});i(6540);var n=i(1312),o=i(1003),s=i(781),r=i(3363),a=i(4848);function c(){const e=(0,n.T)({id:"theme.NotFound.title",message:"Page Not Found"});return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(o.be,{title:e}),(0,a.jsx)(s.A,{children:(0,a.jsx)(r.A,{})})]})}}}]); \ No newline at end of file diff --git a/build/assets/js/2eb856f7.12910cf4.js b/build/assets/js/2eb856f7.12910cf4.js deleted file mode 100644 index 70e5b43f..00000000 --- a/build/assets/js/2eb856f7.12910cf4.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkcityscope_docs=self.webpackChunkcityscope_docs||[]).push([[370],{4979:(e,t,i)=>{i.r(t),i.d(t,{assets:()=>a,contentTitle:()=>r,default:()=>h,frontMatter:()=>s,metadata:()=>c,toc:()=>d});var n=i(4848),o=i(8453);const s={sidebar_position:1},r=void 0,c={id:"cityscopejs/Introduction",title:"Introduction",description:"CityScope platform for the web",source:"@site/docs/cityscopejs/Introduction.md",sourceDirName:"cityscopejs",slug:"/cityscopejs/Introduction",permalink:"/cityscopejs/Introduction",draft:!1,unlisted:!1,editUrl:"https://github.com/CityScope/cityscope.github.io/docs/cityscopejs/Introduction.md",tags:[],version:"current",sidebarPosition:1,frontMatter:{sidebar_position:1},sidebar:"sidebar",previous:{title:"CityScopeJS",permalink:"/category/cityscopejs"},next:{title:"Opening a project",permalink:"/cityscopejs/Opening a project"}},a={},d=[{value:"CityScope platform for the web",id:"cityscope-platform-for-the-web",level:2},{value:"What is it for?",id:"what-is-it-for",level:2},{value:"CityScopeJS Web interface",id:"cityscopejs-web-interface",level:6},{value:"CityScopeJS TUI",id:"cityscopejs-tui",level:6},{value:"Quick Start",id:"quick-start",level:2},{value:"Development",id:"development",level:2},{value:"Hard-Reset cityIO <code>GEOGRIDDATA</code> field",id:"hard-reset-cityio-geogriddata-field",level:4},{value:"CityScopeJS schema",id:"cityscopejs-schema",level:2},{value:"Data Requirements",id:"data-requirements",level:2},{value:"<code>geogrid:geojson</code>",id:"geogridgeojson",level:3}];function l(e){const t={a:"a",code:"code",h1:"h1",h2:"h2",h3:"h3",h4:"h4",h6:"h6",hr:"hr",img:"img",li:"li",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,o.R)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(t.h2,{id:"cityscope-platform-for-the-web",children:"CityScope platform for the web"}),"\n",(0,n.jsxs)(t.p,{children:["CityScopeJS is the unified front-end for the ",(0,n.jsx)(t.a,{href:"https://cityscope.media.mit.edu/",children:"MIT CityScope"})," project. CityScopeJS allows users to examine different urban-design alternatives and observe their impact through different KPIs and matrices. CityScopeJS brings together different urban analytics modules, such as traffic simulation, ABM, noise, storm-water, access."]}),"\n",(0,n.jsx)(t.h2,{id:"what-is-it-for",children:"What is it for?"}),"\n",(0,n.jsx)(t.p,{children:"CityScopeJS is an online tool with a web interface or tangible user interface (TUI). Using the tool, users can input land uses, buildings, open spaces or transport routes, categorize them and enrich their description with details on usability, density and other parameters. This input forms the basis for calculating the various modules and indicators."}),"\n",(0,n.jsx)(t.p,{children:"This tool also enables collaboration among people within the City Science Network. By using a single tool for defining projects and visualizations, individuals can easily exchange processes, best practices, and even modules."}),"\n",(0,n.jsx)(t.h6,{id:"cityscopejs-web-interface",children:"CityScopeJS Web interface"}),"\n",(0,n.jsx)(t.p,{children:(0,n.jsx)(t.img,{alt:"TUI",src:i(8523).A+"",width:"1000",height:"587"})}),"\n",(0,n.jsx)(t.h6,{id:"cityscopejs-tui",children:"CityScopeJS TUI"}),"\n",(0,n.jsx)(t.p,{children:(0,n.jsx)(t.img,{alt:"TUI",src:i(2764).A+"",width:"1000",height:"1000"})}),"\n",(0,n.jsx)(t.hr,{}),"\n",(0,n.jsx)(t.p,{children:(0,n.jsxs)(t.strong,{children:["CityScopeJS exposes two main features: ",(0,n.jsx)(t.code,{children:"CityScopeJS Grid Editor"})," and ",(0,n.jsx)(t.code,{children:"CityScopeJS Palyground"})]})}),"\n",(0,n.jsx)(t.h1,{id:"csjs-playground",children:"CSjs Playground"}),"\n",(0,n.jsx)(t.p,{children:"CSjs Playground is where users interact with the design of urban areas. The tool is built to allow snappy, real-time intervention with various land-uses. The design is then evaluated using different urban analytics modules."}),"\n",(0,n.jsx)(t.h2,{id:"quick-start",children:"Quick Start"}),"\n",(0,n.jsxs)(t.p,{children:["To explore the app for a known CityScope project, add a CityScope project name to this page URL (for example, ",(0,n.jsx)(t.code,{children:"__URL__/?cityscope=corktown"})," will run ",(0,n.jsx)(t.a,{href:"https://cityscope.media.mit.edu/CS_cityscopeJS/?cityscope=corktown",children:"CityScopeJS Corktown"})," project). You can also explore a list of active CityScope projects ",(0,n.jsx)(t.a,{href:"https://cityio.media.mit.edu",children:"here"}),"."]}),"\n",(0,n.jsx)(t.p,{children:"When in the app, edit the grid using the editing tool, and explore the different analytics updating"}),"\n",(0,n.jsx)(t.h2,{id:"development",children:"Development"}),"\n",(0,n.jsx)(t.p,{children:"CityScopeJS is being constantly developed through its frontend, backend and modules. This repo is subject to breaking changes."}),"\n",(0,n.jsxs)(t.p,{children:["In the project directory, you can run: ",(0,n.jsx)(t.code,{children:"npm start"})," Runs the app in the development mode.",(0,n.jsx)("br",{})," Open ",(0,n.jsx)(t.a,{href:"http://localhost:3000",children:"http://localhost:3000"})," to view it in the browser."]}),"\n",(0,n.jsxs)(t.h4,{id:"hard-reset-cityio-geogriddata-field",children:["Hard-Reset cityIO ",(0,n.jsx)(t.code,{children:"GEOGRIDDATA"})," field"]}),"\n",(0,n.jsxs)(t.p,{children:[(0,n.jsx)(t.strong,{children:"Note!"})," This feature involves permanent data loss. If your dev created odd data for the grid, you can quickly reset it via:"]}),"\n",(0,n.jsx)(t.pre,{children:(0,n.jsx)(t.code,{children:"`$ curl https://cityio.media.mit.edu/api/table/clear/__TABLE_NAME__/GEOGRIDDATA`\n"})}),"\n",(0,n.jsx)(t.hr,{}),"\n",(0,n.jsx)(t.h1,{id:"csjs-grid-editor",children:"CSjs Grid Editor"}),"\n",(0,n.jsx)(t.p,{children:"The CSjs Grid Editor is a helper tool to bootstrap new CityScope projects. It allow a quick creation of:"}),"\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsx)(t.li,{children:"a CityScope endpoint on CityIO"}),"\n",(0,n.jsx)(t.li,{children:"a geo-located, 3D, editable and contextual CityScope grid"}),"\n",(0,n.jsx)(t.li,{children:"a list of land-uses to be used during the project"}),"\n"]}),"\n",(0,n.jsx)(t.h2,{id:"cityscopejs-schema",children:"CityScopeJS schema"}),"\n",(0,n.jsx)(t.p,{children:"This document illustrates the data format and standards for the deployment of a CityScopeJS instance. Being a WIP project, this is subject to change."}),"\n",(0,n.jsx)(t.h2,{id:"data-requirements",children:"Data Requirements"}),"\n",(0,n.jsx)(t.h3,{id:"geogridgeojson",children:(0,n.jsx)(t.code,{children:"geogrid:geojson"})}),"\n",(0,n.jsxs)(t.p,{children:["Minimal data for initiation is a valid GeoJson ",(0,n.jsx)(t.code,{children:"FeatureCollection"})," of at least one ",(0,n.jsx)(t.code,{children:"Polygon"})," feature.\nIdeally, this field should be read once on init, due to its size and static state. User should not iterate over it."]}),"\n",(0,n.jsx)(t.pre,{children:(0,n.jsx)(t.code,{children:'{\n "type": "FeatureCollection",\n "properties": {\n "header": {},\n "interactive_mapping": {"1245":{"TUI":"1"},"1472":{"WEB":"1"}}\n },\n\n "features": [\n {\n "type": "Feature",\n "properties": {},\n "geometry": {\n "type": "Polygon",\n "coordinates": [\n [\n [\n __lat__,\n __long__\n ],\n ...\n ]\n ]\n }\n }...\n ]\n}\n'})}),"\n",(0,n.jsx)(t.p,{children:(0,n.jsx)(t.strong,{children:"optional fields"})}),"\n",(0,n.jsxs)(t.p,{children:[(0,n.jsx)(t.code,{children:"interactive_mapping"}),": maps the grid cells that are interactable via the HCI/TUI CityScope interface or web/mobile UI. This allow mixing of different interactions without overwriting. Format"]}),"\n",(0,n.jsx)(t.pre,{children:(0,n.jsx)(t.code,{children:'{\n\t"__feature_number__": {\n\t\t"TUI": "__TUI_CELL_NUMBER__"\n\t},\n\t"__feature_number__": {\n\t\t"WEB": "__WEB_INTERACTION_CELL_NUMBER__"\n\t}\n}\n'})})]})}function h(e={}){const{wrapper:t}={...(0,o.R)(),...e.components};return t?(0,n.jsx)(t,{...e,children:(0,n.jsx)(l,{...e})}):l(e)}},2764:(e,t,i)=>{i.d(t,{A:()=>n});const n=i.p+"assets/images/CityScopeJS-5c67b64921cab086329c46dfafa1715a.jpg"},8523:(e,t,i)=>{i.d(t,{A:()=>n});const n=i.p+"assets/images/web_ui-a8964ffa79f4bdd8f5c47db299d8e802.jpg"},8453:(e,t,i)=>{i.d(t,{R:()=>r,x:()=>c});var n=i(6540);const o={},s=n.createContext(o);function r(e){const t=n.useContext(s);return n.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function c(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:r(e.components),n.createElement(s.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/build/assets/js/3027556f.ffcbacaa.js b/build/assets/js/3027556f.ffcbacaa.js deleted file mode 100644 index 0a2e36d8..00000000 --- a/build/assets/js/3027556f.ffcbacaa.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkcityscope_docs=self.webpackChunkcityscope_docs||[]).push([[793],{614:(t,e,i)=>{i.r(e),i.d(e,{assets:()=>a,contentTitle:()=>s,default:()=>h,frontMatter:()=>c,metadata:()=>r,toc:()=>u});var o=i(4848),n=i(8453);const c={sidebar_position:1},s=void 0,r={id:"cityio/Introduction",title:"Introduction",description:"The purpose of this section is to outline the architecture and interfaces of CityIOWS, an updated version of CityIO that utilizes WebSockets for communication with modules and user interfaces.",source:"@site/docs/cityio/Introduction.md",sourceDirName:"cityio",slug:"/cityio/Introduction",permalink:"/cityio/Introduction",draft:!1,unlisted:!1,editUrl:"https://github.com/CityScope/cityscope.github.io/docs/cityio/Introduction.md",tags:[],version:"current",sidebarPosition:1,frontMatter:{sidebar_position:1},sidebar:"sidebar",previous:{title:"CityIO",permalink:"/category/cityio"},next:{title:"Architecture",permalink:"/cityio/Architecture"}},a={},u=[];function d(t){const e={img:"img",p:"p",...(0,n.R)(),...t.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(e.p,{children:"The purpose of this section is to outline the architecture and interfaces of CityIOWS, an updated version of CityIO that utilizes WebSockets for communication with modules and user interfaces."}),"\n",(0,o.jsx)(e.p,{children:"The diagram below illustrates the various components that interact with CityIOWS, including modules, core modules, and user interfaces. Communication among these components is facilitated through CityIO, serving as a broker. A WebSocket channel is established for each connection."}),"\n",(0,o.jsx)(e.p,{children:(0,o.jsx)(e.img,{alt:"CityIO Websockets",src:i(1242).A+"",width:"960",height:"252"})})]})}function h(t={}){const{wrapper:e}={...(0,n.R)(),...t.components};return e?(0,o.jsx)(e,{...t,children:(0,o.jsx)(d,{...t})}):d(t)}},1242:(t,e,i)=>{i.d(e,{A:()=>o});const o=i.p+"assets/images/arch-903c36303104dbdba881ec156abf41ea.png"},8453:(t,e,i)=>{i.d(e,{R:()=>s,x:()=>r});var o=i(6540);const n={},c=o.createContext(n);function s(t){const e=o.useContext(c);return o.useMemo((function(){return"function"==typeof t?t(e):{...e,...t}}),[e,t])}function r(t){let e;return e=t.disableParentContext?"function"==typeof t.components?t.components(n):t.components||n:s(t.components),o.createElement(c.Provider,{value:e},t.children)}}}]); \ No newline at end of file diff --git a/build/assets/js/3c6077be.558d856d.js b/build/assets/js/3c6077be.558d856d.js deleted file mode 100644 index b5aaa3cd..00000000 --- a/build/assets/js/3c6077be.558d856d.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkcityscope_docs=self.webpackChunkcityscope_docs||[]).push([[694],{8408:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>l,contentTitle:()=>r,default:()=>u,frontMatter:()=>i,metadata:()=>s,toc:()=>d});var o=t(4848),a=t(8453);const i={sidebar_position:3},r=void 0,s={id:"modules/brix/Module example",title:"Module example",description:"In this section, we present how to code an example DeckGL module on Brix WS that connects with a project in CityScopeJS and displays various visualizations.",source:"@site/docs/modules/brix/Module example.md",sourceDirName:"modules/brix",slug:"/modules/brix/Module example",permalink:"/modules/brix/Module example",draft:!1,unlisted:!1,editUrl:"https://github.com/CityScope/cityscope.github.io/docs/modules/brix/Module example.md",tags:[],version:"current",sidebarPosition:3,frontMatter:{sidebar_position:3},sidebar:"sidebar",previous:{title:"DeckGL Modules",permalink:"/modules/brix/DeckGL Modules"},next:{title:"Introduction",permalink:"/modules/Core Modules/Introduction"}},l={},d=[{value:"Basic structure of a module",id:"basic-structure-of-a-module",level:2},{value:"DeckGL Modules: adding layers",id:"deckgl-modules-adding-layers",level:2},{value:"Connecting with CityIO",id:"connecting-with-cityio",level:2},{value:"Visualizing the result in CityScopeJS",id:"visualizing-the-result-in-cityscopejs",level:2}];function c(e){const n={code:"code",h2:"h2",img:"img",p:"p",pre:"pre",...(0,a.R)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(n.p,{children:"In this section, we present how to code an example DeckGL module on Brix WS that connects with a project in CityScopeJS and displays various visualizations."}),"\n",(0,o.jsx)(n.p,{children:"Currently, Brix WS is not published as a Python library available through pip. Consequently, the first step would be to download the code from GitHub."}),"\n",(0,o.jsx)(n.h2,{id:"basic-structure-of-a-module",children:"Basic structure of a module"}),"\n",(0,o.jsx)(n.p,{children:"The basic structure of any module will be as follows:"}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-python",children:"\nfrom brix.classes import DeckGLIndicator\n\nimport random\nfrom numpy import mean\nclass ExampleModule(DeckGLIndicator):\n\n def setup(self):\n self.name = 'example'\n\n def load_module(self):\n pass\n\n def return_indicator(self, geogrid_data):\n # Module code\n"})}),"\n",(0,o.jsxs)(n.p,{children:["The ",(0,o.jsx)(n.code,{children:"setup"})," function will be used to define the values of some variables, such as the name of the module."]}),"\n",(0,o.jsxs)(n.p,{children:["Data loading actions should go in the ",(0,o.jsx)(n.code,{children:"load_module"})," function"]}),"\n",(0,o.jsxs)(n.p,{children:[(0,o.jsx)(n.code,{children:"return_indicator"})," will be the main function of any module, in this one, you can read the data of the grid realted to the project, executed the necessary calculations to obtain the module output, and return it in a proper structure to be sent back to CityIO."]}),"\n",(0,o.jsx)(n.h2,{id:"deckgl-modules-adding-layers",children:"DeckGL Modules: adding layers"}),"\n",(0,o.jsx)(n.p,{children:"In order to generate a DeckGL module, we need to send back to CityIO all the layers that will compose the visualization in CityScopeJS. In this example, we use different types of layers to generate a random indicator: heatmaps, columns, arc, and geojson."}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-python",children:' def return_indicator(self, geogrid_data):\n\n data = []\n\n #HEATMAP\n features = []\n for cell in geogrid_data:\n feature = {}\n lat,lon = zip(*cell[\'geometry\'][\'coordinates\'][0])\n lat,lon = mean(lat),mean(lon)\n feature[\'coordinates\'] = [lat,lon]\n feature[\'weight\'] = random.random()*10\n features.append(feature)\n \n data.append({"type":"heatmap","data":features,"properties":{}}) \n\n #ARC\n arc_data = [{\n \'inbound\': 72633,\n \'outbound\': 74735,\n \'from\': {\n \'name\': \'MIT Media Lab\',\n \'coordinates\': [-71.08727713271684, 42.36041314214483]\n },\n \'to\': {\n \'name\': \'MIT CSAIL\',\n \'coordinates\': [-71.09060913355545, 42.36168851347742]\n }\n }]\n data.append({"type":"arc","data":arc_data,"properties":{"width":1}}) \n\n #COLUMNS\n features_columns = []\n for cell in geogrid_data:\n feature = {}\n lat,lon = zip(*cell[\'geometry\'][\'coordinates\'][0])\n lat,lon = mean(lat),mean(lon)\n feature[\'centroid\'] = [lat,lon]\n feature[\'value\'] = random.random()*300\n features_columns.append(feature)\n \n data.append({"type":"column","data":features_columns,"properties":{}}) \n\n #GEOJSON\n geojson_data = {"type": "FeatureCollection","features": [{"type": "Feature","properties": {},"geometry": {"coordinates": [[[-71.09236362469034,42.35778603125499],[-71.08986747898945,42.3585765398804],[-71.0901949616614,42.35911429516614],[-71.09076987568574,42.358931458885564],[-71.09126473839052,42.35978648280218],[-71.09261105604213,42.35938317108344],[-71.09214530290863,42.3584421003398],[-71.09268382996976,42.35830766051154],[-71.09236362469034,42.35778603125499]]],"type": "Polygon"}}]}\n \n data.append({"type":"geojsonbase","data":geojson_data,"properties":{}}) \n\n\n return data\n'})}),"\n",(0,o.jsx)(n.p,{children:"The straightforward solution is, for each layer, calculate the necessary data, and then append the layer to the ouput array."}),"\n",(0,o.jsx)(n.p,{children:"It is important to note that this method could be follow with any set of the available layers."}),"\n",(0,o.jsx)(n.h2,{id:"connecting-with-cityio",children:"Connecting with CityIO"}),"\n",(0,o.jsx)(n.p,{children:"Connecting a module to a CityScope project will only require to create a Handler, indicating the name of the table that you want to connect to. Then, add the indicator (module) previously defined to the handler, and start it."}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-python",children:"from brix.classes import Handler\n\nindicator = ExampleModule()\n\nH = Handler(quietly=False,\n table_name='walkability')\nH.add_indicators([\n indicator\n ])\nH.listen()\n"})}),"\n",(0,o.jsx)(n.h2,{id:"visualizing-the-result-in-cityscopejs",children:"Visualizing the result in CityScopeJS"}),"\n",(0,o.jsx)(n.p,{children:"When everything is done, and you run the code, this will send to CityScopeJS the result of the module."}),"\n",(0,o.jsx)(n.p,{children:(0,o.jsx)(n.img,{alt:"Subscription Request",src:t(181).A+"",width:"3092",height:"1690"})})]})}function u(e={}){const{wrapper:n}={...(0,a.R)(),...e.components};return n?(0,o.jsx)(n,{...e,children:(0,o.jsx)(c,{...e})}):c(e)}},181:(e,n,t)=>{t.d(n,{A:()=>o});const o=t.p+"assets/images/deckgl-module-c3c9253421e0d70d9904c067e5711d7e.png"},8453:(e,n,t)=>{t.d(n,{R:()=>r,x:()=>s});var o=t(6540);const a={},i=o.createContext(a);function r(e){const n=o.useContext(i);return o.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function s(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:r(e.components),o.createElement(i.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/build/assets/js/40e175d5.0db75752.js b/build/assets/js/40e175d5.0db75752.js deleted file mode 100644 index 15a20e56..00000000 --- a/build/assets/js/40e175d5.0db75752.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkcityscope_docs=self.webpackChunkcityscope_docs||[]).push([[132],{756:(e,i,n)=>{n.r(i),n.d(i,{assets:()=>o,contentTitle:()=>a,default:()=>h,frontMatter:()=>r,metadata:()=>c,toc:()=>l});var t=n(4848),s=n(8453);const r={id:"CityScope Table Design"},a=void 0,c={id:"tanglibe user interfaces/CityScope Table Design",title:"CityScope Table Design",description:"CityScope Hardware",source:"@site/docs/tanglibe user interfaces/specs.md",sourceDirName:"tanglibe user interfaces",slug:"/tanglibe user interfaces/CityScope Table Design",permalink:"/tanglibe user interfaces/CityScope Table Design",draft:!1,unlisted:!1,editUrl:"https://github.com/CityScope/cityscope.github.io/docs/tanglibe user interfaces/specs.md",tags:[],version:"current",frontMatter:{id:"CityScope Table Design"},sidebar:"sidebar",previous:{title:"RoboScope",permalink:"/tanglibe user interfaces/RoboScope"},next:{title:"Archive",permalink:"/category/archive"}},o={},l=[{value:"CityScope Hardware",id:"cityscope-hardware",level:2},{value:"Hardware",id:"hardware",level:2},{value:"Software",id:"software",level:2}];function d(e){const i={a:"a",h1:"h1",h2:"h2",img:"img",li:"li",ol:"ol",p:"p",ul:"ul",...(0,s.R)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(i.h2,{id:"cityscope-hardware",children:"CityScope Hardware"}),"\n",(0,t.jsx)(i.p,{children:"CityScope hardware setup for CS+HCU FindingPlaces project, 2016"}),"\n",(0,t.jsx)(i.p,{children:(0,t.jsx)(i.img,{alt:"Ariel Noyman HCU",src:n(5168).A+"",title:"HCU FindingPlaces",width:"2656",height:"1400"})}),"\n",(0,t.jsxs)(i.p,{children:["CityScope generic module [Design: ",(0,t.jsx)(i.a,{href:"http://www.karthikpatanjali.com/#/cityscope-table/",children:"Karthik Patanjali"}),", 2015]"]}),"\n",(0,t.jsx)(i.p,{children:(0,t.jsx)(i.img,{alt:"Karthik_Patanjali",src:n(4335).A+"",title:"Karthik_Patanjali",width:"1400",height:"1063"})}),"\n",(0,t.jsx)(i.h1,{id:"specs",children:"Specs"}),"\n",(0,t.jsx)(i.p,{children:"The system is still in rapid development, so\nthe specification is very flexible. At this point the main components of a cityscope table will be:"}),"\n",(0,t.jsx)(i.h2,{id:"hardware",children:"Hardware"}),"\n",(0,t.jsxs)(i.ol,{children:["\n",(0,t.jsxs)(i.li,{children:["\n",(0,t.jsx)(i.p,{children:"PC (preferably windows, since some software is win only)"}),"\n"]}),"\n",(0,t.jsxs)(i.li,{children:["\n",(0,t.jsx)(i.p,{children:(0,t.jsx)(i.a,{href:"https://github.com/CityScope/cityscope.github.io/tree/master/CS_Hardware",children:"Table"})}),"\n",(0,t.jsx)(i.p,{children:"Not every deployment uses this table configuration, often times its just a table with the most important transparent top and grid, this is often made from acrylic and laser cut."}),"\n"]}),"\n",(0,t.jsxs)(i.li,{children:["\n",(0,t.jsx)(i.p,{children:"Legos"}),"\n"]}),"\n",(0,t.jsxs)(i.li,{children:["\n",(0,t.jsx)(i.p,{children:"Projectors"}),"\n"]}),"\n",(0,t.jsxs)(i.li,{children:["\n",(0,t.jsx)(i.p,{children:(0,t.jsx)(i.a,{href:"https://www.amazon.com/gp/product/B006JH8T3S/ref=s9_acsd_top_hd_bw_bisR_c_x_1_w?pf_rd_m=ATVPDKIKX0DER&pf_rd_s=merchandised-search-3&pf_rd_r=W90AXQB8TSWYBB1ZZXG5&pf_rd_t=101&pf_rd_p=0af85809-accb-5a70-bc4f-f9a8f374e48c&pf_rd_i=172511",children:"Webcam"})}),"\n"]}),"\n",(0,t.jsxs)(i.li,{children:["\n",(0,t.jsx)(i.p,{children:"(Internet connection)"}),"\n"]}),"\n"]}),"\n",(0,t.jsx)(i.h2,{id:"software",children:"Software"}),"\n",(0,t.jsx)(i.p,{children:"CityScope is composed of multiple software"}),"\n",(0,t.jsxs)(i.ol,{children:["\n",(0,t.jsx)(i.li,{children:"Scanner (gets input from camera converts it to information that can be parsed through various simulation)\ncurrently this functionality is provided using one of below:"}),"\n"]}),"\n",(0,t.jsxs)(i.ul,{children:["\n",(0,t.jsx)(i.li,{children:"Rhinoceros 3D (win only)"}),"\n",(0,t.jsx)(i.li,{children:"Unity game engine"}),"\n",(0,t.jsx)(i.li,{children:"Browser, JavaScript"}),"\n"]}),"\n",(0,t.jsxs)(i.ol,{start:"2",children:["\n",(0,t.jsx)(i.li,{children:"Simulation / Visualization\nthis differs largely on what to simulate, or the research question on focus.\nIn fact, some CityScope table has multiple simulations and visualizations living together."}),"\n"]}),"\n",(0,t.jsxs)(i.ul,{children:["\n",(0,t.jsxs)(i.li,{children:[(0,t.jsx)(i.a,{href:"http://gama-platform.org/",children:"Gama"})," for agent based simulation"]}),"\n",(0,t.jsxs)(i.li,{children:["General Simulation and visualization","\n",(0,t.jsxs)(i.ul,{children:["\n",(0,t.jsx)(i.li,{children:"Rhinoceros 3D / Grasshopper"}),"\n",(0,t.jsx)(i.li,{children:"Unity game engine"}),"\n"]}),"\n"]}),"\n"]})]})}function h(e={}){const{wrapper:i}={...(0,s.R)(),...e.components};return i?(0,t.jsx)(i,{...e,children:(0,t.jsx)(d,{...e})}):d(e)}},4335:(e,i,n)=>{n.d(i,{A:()=>t});const t=n.p+"assets/images/KarthikPatanjali-a839ba259d45fce91794e3a03c96804a.png"},5168:(e,i,n)=>{n.d(i,{A:()=>t});const t=n.p+"assets/images/arielnoymanHCU-e60d82029bb9330a8bc08aaa4022b732.png"},8453:(e,i,n)=>{n.d(i,{R:()=>a,x:()=>c});var t=n(6540);const s={},r=t.createContext(s);function a(e){const i=t.useContext(r);return t.useMemo((function(){return"function"==typeof e?e(i):{...i,...e}}),[i,e])}function c(e){let i;return i=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:a(e.components),t.createElement(r.Provider,{value:i},e.children)}}}]); \ No newline at end of file diff --git a/build/assets/js/41d6af12.5dabed65.js b/build/assets/js/41d6af12.5dabed65.js deleted file mode 100644 index 4ce1560d..00000000 --- a/build/assets/js/41d6af12.5dabed65.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkcityscope_docs=self.webpackChunkcityscope_docs||[]).push([[408],{3301:e=>{e.exports=JSON.parse('{"title":"Archive","slug":"/category/archive","permalink":"/category/archive","navigation":{"previous":{"title":"CityScope Table Design","permalink":"/tanglibe user interfaces/CityScope Table Design"},"next":{"title":"[Archive] H3 Grid","permalink":"/archive/h3/"}}}')}}]); \ No newline at end of file diff --git a/build/assets/js/4206db4b.fa9e573e.js b/build/assets/js/4206db4b.fa9e573e.js deleted file mode 100644 index 98c78e17..00000000 --- a/build/assets/js/4206db4b.fa9e573e.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkcityscope_docs=self.webpackChunkcityscope_docs||[]).push([[887],{2635:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>r,contentTitle:()=>c,default:()=>h,frontMatter:()=>a,metadata:()=>d,toc:()=>l});var i=t(4848),s=t(8453);const a={id:"API"},c="list tables",d={id:"archive/cityio/API",title:"API",description:"Here is a list of APIs exposed for cityio.",source:"@site/docs/archive/cityio/api.md",sourceDirName:"archive/cityio",slug:"/archive/cityio/API",permalink:"/archive/cityio/API",draft:!1,unlisted:!1,editUrl:"https://github.com/CityScope/cityscope.github.io/docs/archive/cityio/api.md",tags:[],version:"current",frontMatter:{id:"API"},sidebar:"sidebar",previous:{title:"[Archive] CityIO",permalink:"/archive/cityio/"},next:{title:"Build",permalink:"/archive/cityio/Build"}},r={},l=[];function o(e){const n={code:"code",h1:"h1",p:"p",pre:"pre",...(0,s.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n.p,{children:"Here is a list of APIs exposed for cityio."}),"\n",(0,i.jsx)(n.h1,{id:"list-tables",children:"list tables"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:"curl https://cityio.media.mit.edu/api/tables/list/\n"})}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-text",children:'["test"]\n'})}),"\n",(0,i.jsx)(n.h1,{id:"get-a-table",children:"get a table"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:"curl https://cityio.media.mit.edu/api/table/test/ | jq .\n"})}),"\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.code,{children:"| jq ."})," is just to pretty format the result."]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-text",children:'{\n "data": 42,\n "grid": [\n 0,\n 1,\n 0\n ],\n "meta": {\n "hash": "BGuzwcPaxADXvLkR2uciX1pkRumFGJV25UENUur4mUfa",\n "hashes": {\n "data": "8kzzuAWtRcnhd4SnD2zeEuieq5VtuA8nsNcBgzpRaLuE",\n "grid": "D9VCvyZn98K9BfSAX26Nm22DTsCfbULokywhdTFKs9Ca"\n },\n "id": "F4tCJsaHmvqu2VRGht4Z4GdMttEArHewfUKiFFVz1w78",\n "timestamp": "2021-03-27T15:41:45.457952355+00:00"\n }\n}\n'})}),"\n",(0,i.jsx)(n.h1,{id:"post-a-table",children:"post a table"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:'curl -X POST -d \'{"grid":[0,1,1]}\' \\\n-H "Content-Type:application/json" \\\nhttps://cityio.media.mit.edu/api/table/test/ | jq .\n'})}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-text",children:'{\n "id": "6xU8W2WTzwMpyX3vQyRxkbKFxVLfpeV6dERkK9ATukBT",\n "name": "test",\n "status": "ok"\n}\n'})}),"\n",(0,i.jsx)(n.h1,{id:"get-deeper-data",children:"get deeper data"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:"curl https://cityio.media.mit.edu/api/table/test/grid | jq .\n"})}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-text",children:"[\n 0,\n 1,\n 1\n]\n"})}),"\n",(0,i.jsx)(n.h1,{id:"post-deeper-data",children:"post deeper data"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:'curl -X POST -d \'{"setting":{"cars":true}}\' \\\n-H "Content-Type:application/json" \\\nhttps://cityio.media.mit.edu/api/table/test/new_module | jq .\n'})}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-text",children:'{\n "id": "9Dqq91fFjfL5sse9AKyXoUsYXF3Tg62ALpo6fC2B3epB",\n "status": "ok"\n}\n'})}),"\n",(0,i.jsx)(n.p,{children:"ver3 lets you send even deeper data, if it's the base data already\nexists"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:'curl -X POST -d \'{"pev": true, "cars":false}\' \\\n-H "Content-Type:application/json" \\\nhttps://cityio.media.mit.edu/api/table/test/new_module/setting | jq .\n'})}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-text",children:'{\n "commit": "BTLvsmmQbJc5JiMZEsrhzMFgBjRRxcH8irDKz99WbC3b",\n "status": "ok"\n}\n'})}),"\n",(0,i.jsx)(n.p,{children:"this case the commit changes"}),"\n",(0,i.jsx)(n.h1,{id:"delete-table",children:"delete table"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:"curl -X DELETE https://cityio.media.mit.edu/api/table/test/\n"})}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-text",children:"ok\n"})}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:"curl https://cityio.media.mit.edu/api/tables/list/\n"})}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-text",children:"[]\n"})}),"\n",(0,i.jsx)(n.h1,{id:"dump-data",children:"dump data"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:"curl https://cityio.media.mit.edu/api/dump/ | jq .\n"})}),"\n",(0,i.jsx)(n.p,{children:"This gives a good overview of how cityio is internally saving data."}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-text",children:'{\n "blob": [\n {\n "setting": {\n "cars": true\n }\n },\n [\n 0,\n 1,\n 0\n ],\n 42,\n "hello",\n {\n "setting": {\n "cars": false,\n "pev": true\n }\n },\n [\n 0,\n 1,\n 1\n ]\n ],\n "commit": [\n {\n "parent": "oPuhrsgmJU3aUS5pc2StUrftqUwTDUX3tEweF4NE4fD",\n "timestamp": "2021-03-27T15:41:45.457952355+00:00",\n "tree_id": "BGuzwcPaxADXvLkR2uciX1pkRumFGJV25UENUur4mUfa"\n },\n {\n "parent": "F4tCJsaHmvqu2VRGht4Z4GdMttEArHewfUKiFFVz1w78",\n "timestamp": "2021-03-27T15:44:52.177075895+00:00",\n "tree_id": "TCMSkt5Sy4MBqb1p6ve6t85CzKyTcuGexgvsHpm26tL"\n },\n {\n "parent": "0",\n "timestamp": "2021-03-27T15:02:32.840592341+00:00",\n "tree_id": "55qnpsNMspv9kJJuvQKvoq51s8kRoTN3YX11mVirKnRn"\n },\n {\n "parent": "9Dqq91fFjfL5sse9AKyXoUsYXF3Tg62ALpo6fC2B3epB",\n "timestamp": "2021-03-27T15:50:19.380681197+00:00",\n "tree_id": "BKLV9yuZB4fQmdPfgBqf3dNAWendRvCnMbjM4JBGEYdo"\n },\n {\n "parent": "BTLvsmmQbJc5JiMZEsrhzMFgBjRRxcH8irDKz99WbC3b",\n "timestamp": "2021-03-27T17:04:55.305024404+00:00",\n "tree_id": "UeD3pVhfBUrnoUjRbVR4W9Sh35gw2zBnWZu86qYFyBg"\n },\n {\n "parent": "6xU8W2WTzwMpyX3vQyRxkbKFxVLfpeV6dERkK9ATukBT",\n "timestamp": "2021-03-27T15:48:17.106557974+00:00",\n "tree_id": "8tFUU1YRaENHRBdsWg5q8FFC7jgwZi2Uxi9HAApDsVo1"\n }\n ],\n "tag": [\n {\n "commit": "GmJxu8Lq4vT2xx2HaW9nrmTJdprdKkkrFYFkQ8Mq8UcC",\n "name": "test"\n }\n ],\n "tree": [\n {\n "data": "8kzzuAWtRcnhd4SnD2zeEuieq5VtuA8nsNcBgzpRaLuE",\n "grid": "J1XtoDM5DGKZt97qBy3krz3ihhdtD9mJaxNMf62BAJhU",\n "new_module": "2tBViau8ebNWqxbxvqu5pjwFeMk7KjHCVRG4A7e7gubY"\n },\n {\n "data": "8kzzuAWtRcnhd4SnD2zeEuieq5VtuA8nsNcBgzpRaLuE",\n "grid": "D9VCvyZn98K9BfSAX26Nm22DTsCfbULokywhdTFKs9Ca"\n },\n {\n "data": "8kzzuAWtRcnhd4SnD2zeEuieq5VtuA8nsNcBgzpRaLuE",\n "grid": "J1XtoDM5DGKZt97qBy3krz3ihhdtD9mJaxNMf62BAJhU"\n },\n {\n "data": "8kzzuAWtRcnhd4SnD2zeEuieq5VtuA8nsNcBgzpRaLuE",\n "grid": "J1XtoDM5DGKZt97qBy3krz3ihhdtD9mJaxNMf62BAJhU",\n "new_module": "76sjJZQF22BsNYdTP71xpFTHwquQqXzwbfVPiQe5dsYm"\n },\n {\n "data": "8kzzuAWtRcnhd4SnD2zeEuieq5VtuA8nsNcBgzpRaLuE"\n },\n {\n "data": "8kzzuAWtRcnhd4SnD2zeEuieq5VtuA8nsNcBgzpRaLuE",\n "grid": "J1XtoDM5DGKZt97qBy3krz3ihhdtD9mJaxNMf62BAJhU",\n "new_module": "B8UAsPeLZskSvLDiWffD1vruGewxMBhMNwQF7xipQpGP"\n }\n ]\n}\n'})}),"\n",(0,i.jsx)(n.h1,{id:"get-module-by-id",children:"get module by Id"}),"\n",(0,i.jsxs)(n.p,{children:["a ",(0,i.jsx)(n.code,{children:"module"})," is recorded as ",(0,i.jsx)(n.code,{children:"blob"}),". Files are recorded as ",(0,i.jsx)(n.code,{children:"blobs"})," in git."]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:"curl https://cityio.media.mit.edu/api/module/8kzzuAWtRcnhd4SnD2zeEuieq5VtuA8nsNcBgzpRaLuE/\n"})}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-text",children:"42\n"})}),"\n",(0,i.jsx)(n.h1,{id:"get-hashes-by-id",children:"get hashes by Id"}),"\n",(0,i.jsxs)(n.p,{children:["the ",(0,i.jsx)(n.code,{children:"hashes"})," entry in the meta is recorded as a ",(0,i.jsx)(n.code,{children:"tree"}),". Directories are\nrecorded as ",(0,i.jsx)(n.code,{children:"trees"})," in git."]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:"curl https://cityio.media.mit.edu/api/hashes/BGuzwcPaxADXvLkR2uciX1pkRumFGJV25UENUur4mUfa/ | jq .\n"})}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-text",children:'{\n "data": "8kzzuAWtRcnhd4SnD2zeEuieq5VtuA8nsNcBgzpRaLuE",\n "grid": "D9VCvyZn98K9BfSAX26Nm22DTsCfbULokywhdTFKs9Ca"\n}\n'})}),"\n",(0,i.jsx)(n.h1,{id:"get-a-commit-by-id-and-roll-back",children:"get a commit by Id (and roll back)"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:"curl https://cityio.media.mit.edu/api/commit/GmJxu8Lq4vT2xx2HaW9nrmTJdprdKkkrFYFkQ8Mq8UcC/ | jq .\n"})}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-text",children:'{\n "tree_id": "UeD3pVhfBUrnoUjRbVR4W9Sh35gw2zBnWZu86qYFyBg",\n "parent": "BTLvsmmQbJc5JiMZEsrhzMFgBjRRxcH8irDKz99WbC3b",\n "timestamp": "2021-03-27T17:04:55.305024404+00:00"\n}\n'})}),"\n",(0,i.jsxs)(n.p,{children:["the ",(0,i.jsx)(n.code,{children:"parent"})," field of this points to other commits. You can roll back to\ndifferent states using this endpoint."]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:"curl https://cityio.media.mit.edu/api/commit/BTLvsmmQbJc5JiMZEsrhzMFgBjRRxcH8irDKz99WbC3b/ | jq .\n"})}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-text",children:'{\n "tree_id": "BKLV9yuZB4fQmdPfgBqf3dNAWendRvCnMbjM4JBGEYdo",\n "parent": "9Dqq91fFjfL5sse9AKyXoUsYXF3Tg62ALpo6fC2B3epB",\n "timestamp": "2021-03-27T15:50:19.380681197+00:00"\n}\n'})}),"\n",(0,i.jsx)(n.h1,{id:"post-a-table-by-tagging-similar-to-branching",children:"Post a table by 'tagging', similar to branching"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:"curl -X POST https://cityio.media.mit.edu/api/table/raw/new_table/BTLvsmmQbJc5JiMZEsrhzMFgBjRRxcH8irDKz99WbC3b/ | jq .\n"})}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:"curl https://cityio.media.mit.edu/api/tables/list/\n"})}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-text",children:'["new_table","test"]\n'})}),"\n",(0,i.jsx)(n.p,{children:"This can be seen as branching, or copying states. You can force merge if\nyou have a commit id to overwrite."})]})}function h(e={}){const{wrapper:n}={...(0,s.R)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(o,{...e})}):o(e)}},8453:(e,n,t)=>{t.d(n,{R:()=>c,x:()=>d});var i=t(6540);const s={},a=i.createContext(s);function c(e){const n=i.useContext(a);return i.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function d(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:c(e.components),i.createElement(a.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/build/assets/js/4a555622.9bde79b2.js b/build/assets/js/4a555622.9bde79b2.js deleted file mode 100644 index 779462e5..00000000 --- a/build/assets/js/4a555622.9bde79b2.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkcityscope_docs=self.webpackChunkcityscope_docs||[]).push([[117],{3635:(e,t,i)=>{i.r(t),i.d(t,{assets:()=>a,contentTitle:()=>c,default:()=>u,frontMatter:()=>s,metadata:()=>r,toc:()=>d});var o=i(4848),n=i(8453);const s={sidebar_position:5},c=void 0,r={id:"cityio/CityIO - Core",title:"CityIO - Core",description:"The objective of this interface is to facilitate the integration of core modules into the CityScope network.",source:"@site/docs/cityio/CityIO - Core.md",sourceDirName:"cityio",slug:"/cityio/CityIO - Core",permalink:"/cityio/CityIO - Core",draft:!1,unlisted:!1,editUrl:"https://github.com/CityScope/cityscope.github.io/docs/cityio/CityIO - Core.md",tags:[],version:"current",sidebarPosition:5,frontMatter:{sidebar_position:5},sidebar:"sidebar",previous:{title:"CityIO - Module",permalink:"/cityio/CityIO - Module"},next:{title:"API",permalink:"/cityio/API"}},a={},d=[{value:"Message Flow",id:"message-flow",level:2},{value:"Initial connection",id:"initial-connection",level:2},{value:"Subscription request",id:"subscription-request",level:2},{value:"Subscription removal request",id:"subscription-removal-request",level:2}];function l(e){const t={code:"code",h2:"h2",img:"img",p:"p",...(0,n.R)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(t.p,{children:"The objective of this interface is to facilitate the integration of core modules into the CityScope network."}),"\n",(0,o.jsx)(t.h2,{id:"message-flow",children:"Message Flow"}),"\n",(0,o.jsx)(t.p,{children:"The following subsections will detail the various data exchanges that can take place between CityIO and the Core Modules."}),"\n",(0,o.jsx)(t.h2,{id:"initial-connection",children:"Initial connection"}),"\n",(0,o.jsxs)(t.p,{children:["To integrate a core module into the CityScope network, the module can establish a connection via the ",(0,o.jsx)(t.code,{children:"/module/core"})," endpoint. Upon successful connection, the module should send a CORE_MODULE_REGISTRATION message containing information to identify the module."]}),"\n",(0,o.jsx)(t.p,{children:(0,o.jsx)(t.img,{alt:"Initial Connection",src:i(733).A+"",width:"1042",height:"338"})}),"\n",(0,o.jsx)(t.h2,{id:"subscription-request",children:"Subscription request"}),"\n",(0,o.jsx)(t.p,{children:"When a user, through a user interface, wishes to connect a module to a project, they send a request to CityIO. This request is then forwarded to the core module as a SUBSCRIPTION_REQUEST message. If the module is available, the core module should respond by sending a SUBSCRIBE message to CityIO, including the identifier of the grid that requires the module's services. Upon receiving the grid information, the core module should calculate the necessary indicator and transmit this data back to CityIO."}),"\n",(0,o.jsx)(t.p,{children:(0,o.jsx)(t.img,{alt:"Subscription Request",src:i(4976).A+"",width:"788",height:"385"})}),"\n",(0,o.jsx)(t.h2,{id:"subscription-removal-request",children:"Subscription removal request"}),"\n",(0,o.jsx)(t.p,{children:"If a user wishes to disconnect a module from a project, they can send a module removal request to CityIO. This request will be forwarded to the Core Module as a SUBSCRIPTION_REMOVAL_REQUEST. Upon receiving this message, the Core Module should then UNSUBSCRIBE from the project."}),"\n",(0,o.jsx)(t.p,{children:(0,o.jsx)(t.img,{alt:"Subscription Removal Request",src:i(7976).A+"",width:"709",height:"292"})})]})}function u(e={}){const{wrapper:t}={...(0,n.R)(),...e.components};return t?(0,o.jsx)(t,{...e,children:(0,o.jsx)(l,{...e})}):l(e)}},733:(e,t,i)=>{i.d(t,{A:()=>o});const o=i.p+"assets/images/initialcon-42240e1d4ec5ae66a2c9f36bbdff6cad.png"},7976:(e,t,i)=>{i.d(t,{A:()=>o});const o=i.p+"assets/images/subremovalrequest-fc67d08ec2f9ff21a4a7f7ead1fd9245.png"},4976:(e,t,i)=>{i.d(t,{A:()=>o});const o=i.p+"assets/images/subrequest-92c3c8a1abe3c94ee34328d8849c4751.png"},8453:(e,t,i)=>{i.d(t,{R:()=>c,x:()=>r});var o=i(6540);const n={},s=o.createContext(n);function c(e){const t=o.useContext(s);return o.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function r(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:c(e.components),o.createElement(s.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/build/assets/js/4e15b2cd.dcb450e7.js b/build/assets/js/4e15b2cd.dcb450e7.js deleted file mode 100644 index 353edddc..00000000 --- a/build/assets/js/4e15b2cd.dcb450e7.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkcityscope_docs=self.webpackChunkcityscope_docs||[]).push([[861],{5621:(e,l,n)=>{n.r(l),n.d(l,{assets:()=>o,contentTitle:()=>s,default:()=>h,frontMatter:()=>i,metadata:()=>t,toc:()=>d});var r=n(4848),a=n(8453);const i={sidebar_position:2},s=void 0,t={id:"modules/brix/DeckGL Modules",title:"DeckGL Modules",description:"The main difference in using Brix WS compared to the previous version of Brix is the method of sending data to CityScope for visualization. The previous version of Brix allowed for various pre-defined visualizations, such as numeric with bars or graphs, heatmaps, or ABM, among others. While this was useful, it didn't offer enough flexibility for module makers to create complex visualizations with a variety of different elements. They were always constrained to using the same method to display data.",source:"@site/docs/modules/brix/DeckGL Modules.md",sourceDirName:"modules/brix",slug:"/modules/brix/DeckGL Modules",permalink:"/modules/brix/DeckGL Modules",draft:!1,unlisted:!1,editUrl:"https://github.com/CityScope/cityscope.github.io/docs/modules/brix/DeckGL Modules.md",tags:[],version:"current",sidebarPosition:2,frontMatter:{sidebar_position:2},sidebar:"sidebar",previous:{title:"Introduction",permalink:"/modules/brix/Introduction"},next:{title:"Module example",permalink:"/modules/brix/Module example"}},o={},d=[{value:"Available DeckGL Layers",id:"available-deckgl-layers",level:2},{value:"Arc",id:"arc",level:3},{value:"Column",id:"column",level:3},{value:"Contour",id:"contour",level:3},{value:"GeoJson",id:"geojson",level:3},{value:"Grid",id:"grid",level:3},{value:"GridCell",id:"gridcell",level:3},{value:"Heatmap",id:"heatmap",level:3},{value:"Hexagon",id:"hexagon",level:3},{value:"Icon",id:"icon",level:3},{value:"Line",id:"line",level:3},{value:"Path",id:"path",level:3},{value:"ScatterPlot",id:"scatterplot",level:3},{value:"Scenegraph",id:"scenegraph",level:3},{value:"SimpleMesh",id:"simplemesh",level:3},{value:"TextLayer",id:"textlayer",level:3}];function c(e){const l={a:"a",code:"code",h2:"h2",h3:"h3",li:"li",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,a.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(l.p,{children:"The main difference in using Brix WS compared to the previous version of Brix is the method of sending data to CityScope for visualization. The previous version of Brix allowed for various pre-defined visualizations, such as numeric with bars or graphs, heatmaps, or ABM, among others. While this was useful, it didn't offer enough flexibility for module makers to create complex visualizations with a variety of different elements. They were always constrained to using the same method to display data."}),"\n",(0,r.jsxs)(l.p,{children:["To address this issue, Brix WS introduces ",(0,r.jsx)(l.strong,{children:"DeckGL modules"}),", a new type of module that can harness the full power of DeckGL and create robust visualizations using multiple DeckGL layers."]}),"\n",(0,r.jsx)(l.p,{children:"The structure of the data that DeckGL modules should follow is an array of objects, where each object represents one layer of the visualization. Every layer always has the same three properties:"}),"\n",(0,r.jsxs)(l.ul,{children:["\n",(0,r.jsxs)(l.li,{children:[(0,r.jsx)(l.code,{children:"type"}),": The type of the layer."]}),"\n",(0,r.jsxs)(l.li,{children:[(0,r.jsx)(l.code,{children:"data"}),": The data to be represented."]}),"\n",(0,r.jsxs)(l.li,{children:[(0,r.jsx)(l.code,{children:"properties"}),": Additional properties to configure the visualization of the layer."]}),"\n"]}),"\n",(0,r.jsx)(l.pre,{children:(0,r.jsx)(l.code,{className:"language-json",children:'[\n{"type":"column","data":$data,"properties":{}},\n{"type":"arc","data":$data,"properties":{}},\n{"type":"column","data":$data,"properties":{}},\n...\n]\n'})}),"\n",(0,r.jsx)(l.h2,{id:"available-deckgl-layers",children:"Available DeckGL Layers"}),"\n",(0,r.jsx)(l.p,{children:"At the time being, the available DeckGL layers that can be use in the modules are the following:"}),"\n",(0,r.jsxs)(l.ul,{children:["\n",(0,r.jsxs)(l.li,{children:["arc: ",(0,r.jsx)(l.a,{href:"https://deck.gl/docs/api-reference/layers/arc-layer",children:"https://deck.gl/docs/api-reference/layers/arc-layer"})]}),"\n",(0,r.jsxs)(l.li,{children:["column: ",(0,r.jsx)(l.a,{href:"https://deck.gl/docs/api-reference/layers/column-layer",children:"https://deck.gl/docs/api-reference/layers/column-layer"})]}),"\n",(0,r.jsxs)(l.li,{children:["contours: ",(0,r.jsx)(l.a,{href:"https://deck.gl/docs/api-reference/aggregation-layers/contour-layer",children:"https://deck.gl/docs/api-reference/aggregation-layers/contour-layer"})]}),"\n",(0,r.jsxs)(l.li,{children:["geojsonbase: ",(0,r.jsx)(l.a,{href:"https://deck.gl/docs/api-reference/layers/geojson-layer",children:"https://deck.gl/docs/api-reference/layers/geojson-layer"})]}),"\n",(0,r.jsxs)(l.li,{children:["gridlayer: ",(0,r.jsx)(l.a,{href:"https://deck.gl/docs/api-reference/aggregation-layers/grid-layer",children:"https://deck.gl/docs/api-reference/aggregation-layers/grid-layer"})]}),"\n",(0,r.jsxs)(l.li,{children:["gridcell: ",(0,r.jsx)(l.a,{href:"https://deck.gl/docs/api-reference/layers/grid-cell-layer",children:"https://deck.gl/docs/api-reference/layers/grid-cell-layer"})]}),"\n",(0,r.jsxs)(l.li,{children:["heatmap: ",(0,r.jsx)(l.a,{href:"https://deck.gl/docs/api-reference/aggregation-layers/heatmap-layer",children:"https://deck.gl/docs/api-reference/aggregation-layers/heatmap-layer"})]}),"\n",(0,r.jsxs)(l.li,{children:["hexagon: ",(0,r.jsx)(l.a,{href:"https://deck.gl/docs/api-reference/aggregation-layers/hexagon-layer",children:"https://deck.gl/docs/api-reference/aggregation-layers/hexagon-layer"})]}),"\n",(0,r.jsxs)(l.li,{children:["icon: ",(0,r.jsx)(l.a,{href:"https://deck.gl/docs/api-reference/layers/icon-layer",children:"https://deck.gl/docs/api-reference/layers/icon-layer"})]}),"\n",(0,r.jsxs)(l.li,{children:["lines: ",(0,r.jsx)(l.a,{href:"https://deck.gl/docs/api-reference/layers/line-layer",children:"https://deck.gl/docs/api-reference/layers/line-layer"})]}),"\n",(0,r.jsxs)(l.li,{children:["path: ",(0,r.jsx)(l.a,{href:"https://deck.gl/docs/api-reference/layers/path-layer",children:"https://deck.gl/docs/api-reference/layers/path-layer"})]}),"\n",(0,r.jsxs)(l.li,{children:["scatterplot: ",(0,r.jsx)(l.a,{href:"https://deck.gl/docs/api-reference/layers/scatterplot-layer",children:"https://deck.gl/docs/api-reference/layers/scatterplot-layer"})]}),"\n",(0,r.jsxs)(l.li,{children:["scenegraph: ",(0,r.jsx)(l.a,{href:"https://deck.gl/docs/api-reference/mesh-layers/scenegraph-layer",children:"https://deck.gl/docs/api-reference/mesh-layers/scenegraph-layer"})]}),"\n",(0,r.jsxs)(l.li,{children:["simpleMesh: ",(0,r.jsx)(l.a,{href:"https://deck.gl/docs/api-reference/mesh-layers/simple-mesh-layer",children:"https://deck.gl/docs/api-reference/mesh-layers/simple-mesh-layer"})]}),"\n",(0,r.jsxs)(l.li,{children:["textLayer: ",(0,r.jsx)(l.a,{href:"https://deck.gl/docs/api-reference/layers/text-layer",children:"https://deck.gl/docs/api-reference/layers/text-layer"})]}),"\n"]}),"\n",(0,r.jsx)(l.p,{children:"This list will grow over time to include all the layers in DeckGL. In each of the links, you can view an example of the visualization that the layer creates."}),"\n",(0,r.jsx)(l.h3,{id:"arc",children:"Arc"}),"\n",(0,r.jsx)(l.p,{children:"The arc layer should follow the schema of the next example:"}),"\n",(0,r.jsx)(l.pre,{children:(0,r.jsx)(l.code,{className:"language-json",children:' {\n "type": "arc",\n "data":[\n {\n "from": {\n "coordinates": [-122.269029, 37.80787]\n },\n "to": {\n "coordinates": [-122.271604, 37.803664]\n },\n "sourceColor": [255, 140, 0],\n "targetColor": [100, 140, 0]\n },\n ],\n "properties": {\n "width": 20\n }\n }\n \n'})}),"\n",(0,r.jsx)(l.p,{children:"The available properties for this layer are the following:"}),"\n",(0,r.jsxs)(l.ul,{children:["\n",(0,r.jsx)(l.li,{children:"width: integer, default value 12."}),"\n"]}),"\n",(0,r.jsx)(l.h3,{id:"column",children:"Column"}),"\n",(0,r.jsx)(l.p,{children:"The column layer should follow the schema of the next example:"}),"\n",(0,r.jsx)(l.pre,{children:(0,r.jsx)(l.code,{className:"language-json",children:' {\n "type": "column",\n "data":[\n {"centroid": [-122.4, 37.7], "value": 0.2},\n ],\n "properties": {\n "disResolution": 12,\n "radius": 25\n }\n }\n \n'})}),"\n",(0,r.jsx)(l.p,{children:"The available properties for this layer are the following:"}),"\n",(0,r.jsxs)(l.ul,{children:["\n",(0,r.jsx)(l.li,{children:"disResolution: integer, default value 12."}),"\n",(0,r.jsx)(l.li,{children:"radius: integer, default value 30."}),"\n",(0,r.jsx)(l.li,{children:"extruded: boolean, default value true."}),"\n",(0,r.jsx)(l.li,{children:"pickable: boolean, default value true."}),"\n",(0,r.jsx)(l.li,{children:"elevationScale: integer, default value 1."}),"\n"]}),"\n",(0,r.jsx)(l.h3,{id:"contour",children:"Contour"}),"\n",(0,r.jsx)(l.p,{children:"The contour layer should follow the schema of the next example:"}),"\n",(0,r.jsx)(l.pre,{children:(0,r.jsx)(l.code,{className:"language-json",children:' {\n "type": "contour",\n "data":[\n {"coordinates": [-122.42177834, 37.78346622]}\n ],\n "properties": {\n "cellSize": 100\n }\n }\n \n'})}),"\n",(0,r.jsx)(l.p,{children:"The available properties for this layer are the following:"}),"\n",(0,r.jsxs)(l.ul,{children:["\n",(0,r.jsx)(l.li,{children:"cellSize: integer, default value 200."}),"\n"]}),"\n",(0,r.jsx)(l.h3,{id:"geojson",children:"GeoJson"}),"\n",(0,r.jsx)(l.p,{children:"The GeoJson layer should follow the schema of the next example:"}),"\n",(0,r.jsx)(l.pre,{children:(0,r.jsx)(l.code,{className:"language-json",children:' {\n "type": "geojsonbase",\n "data": $validGeoJsonObject,\n "properties": {\n "filled": false\n }\n }\n \n'})}),"\n",(0,r.jsx)(l.p,{children:"The available properties for this layer are the following:"}),"\n",(0,r.jsxs)(l.ul,{children:["\n",(0,r.jsx)(l.li,{children:"pickable: boolean, default value true."}),"\n",(0,r.jsx)(l.li,{children:"stroked: boolean, default value false."}),"\n",(0,r.jsx)(l.li,{children:"filled: boolean, default value true."}),"\n",(0,r.jsx)(l.li,{children:"extruded: boolean, default value true."}),"\n",(0,r.jsx)(l.li,{children:"pointType: string, default value 'circle'."}),"\n",(0,r.jsx)(l.li,{children:"lineWidthScale: integer, default value 20."}),"\n",(0,r.jsx)(l.li,{children:"lineWidthMinPixels: integer, default value 100."}),"\n",(0,r.jsx)(l.li,{children:"pointRadius: integer, default value 100."}),"\n",(0,r.jsx)(l.li,{children:"lineWidth: integer, default value 1."}),"\n",(0,r.jsx)(l.li,{children:"elevation: integer, default value 30."}),"\n"]}),"\n",(0,r.jsx)(l.h3,{id:"grid",children:"Grid"}),"\n",(0,r.jsx)(l.p,{children:"The Grid layer should follow the schema of the next example:"}),"\n",(0,r.jsx)(l.pre,{children:(0,r.jsx)(l.code,{className:"language-json",children:' {\n "type": "gridlayer",\n "data": [{"coordinates": [-122.42177834, 37.78346622]}],\n "properties": {\n "cellSize": 100\n }\n }\n \n'})}),"\n",(0,r.jsx)(l.p,{children:"The available properties for this layer are the following:"}),"\n",(0,r.jsxs)(l.ul,{children:["\n",(0,r.jsx)(l.li,{children:"pickable: boolean, default value true."}),"\n",(0,r.jsx)(l.li,{children:"extruded: boolean, default value true."}),"\n",(0,r.jsx)(l.li,{children:"cellSize: integer, default value 200."}),"\n",(0,r.jsx)(l.li,{children:"elevationScale: integer, default value 4."}),"\n"]}),"\n",(0,r.jsx)(l.h3,{id:"gridcell",children:"GridCell"}),"\n",(0,r.jsx)(l.p,{children:"The GridCell layer should follow the schema of the next example:"}),"\n",(0,r.jsx)(l.pre,{children:(0,r.jsx)(l.code,{className:"language-json",children:' {\n "type": "gridcell",\n "data": [{"centroid": [-122.42177834, 37.78346622], "value": 100}],\n "properties": {\n "cellSize": 100\n }\n }\n \n'})}),"\n",(0,r.jsx)(l.p,{children:"The available properties for this layer are the following:"}),"\n",(0,r.jsxs)(l.ul,{children:["\n",(0,r.jsx)(l.li,{children:"pickable: boolean, default value true."}),"\n",(0,r.jsx)(l.li,{children:"extruded: boolean, default value true."}),"\n",(0,r.jsx)(l.li,{children:"cellSize: integer, default value 200."}),"\n",(0,r.jsx)(l.li,{children:"elevationScale: integer, default value 5000."}),"\n"]}),"\n",(0,r.jsx)(l.h3,{id:"heatmap",children:"Heatmap"}),"\n",(0,r.jsx)(l.p,{children:"The heatmap layer should follow the schema of the next example:"}),"\n",(0,r.jsx)(l.pre,{children:(0,r.jsx)(l.code,{className:"language-json",children:' {\n "type": "heatmap",\n "data": [{"coordinates": [-122.42177834, 37.78346622], "weight": 100}],\n "properties": {\n }\n }\n \n'})}),"\n",(0,r.jsx)(l.h3,{id:"hexagon",children:"Hexagon"}),"\n",(0,r.jsx)(l.p,{children:"The Hexagon layer should follow the schema of the next example:"}),"\n",(0,r.jsx)(l.pre,{children:(0,r.jsx)(l.code,{className:"language-json",children:' {\n "type": "hexagon",\n "data": [{"coordinates": [-122.42177834, 37.78346622]}],\n "properties": {\n "elevationScale": 3\n }\n }\n \n'})}),"\n",(0,r.jsx)(l.p,{children:"The available properties for this layer are the following:"}),"\n",(0,r.jsxs)(l.ul,{children:["\n",(0,r.jsx)(l.li,{children:"pickable: boolean, default value true."}),"\n",(0,r.jsx)(l.li,{children:"extruded: boolean, default value true."}),"\n",(0,r.jsx)(l.li,{children:"radius: integer, default value 200."}),"\n",(0,r.jsx)(l.li,{children:"elevationScale: integer, default value 4."}),"\n"]}),"\n",(0,r.jsx)(l.h3,{id:"icon",children:"Icon"}),"\n",(0,r.jsx)(l.p,{children:"The Icon layer should follow the schema of the next example:"}),"\n",(0,r.jsx)(l.pre,{children:(0,r.jsx)(l.code,{className:"language-json",children:' {\n "type": "icon",\n "data": [{"coordinates": [-122.42177834, 37.78346622], "icon": $url, "width": 128, "height": 128, "anchorY": 128, "elevation": 30}],\n "properties": {\n "sizeScale": 3\n }\n }\n \n'})}),"\n",(0,r.jsx)(l.p,{children:"The available properties for this layer are the following:"}),"\n",(0,r.jsxs)(l.ul,{children:["\n",(0,r.jsx)(l.li,{children:"pickable: boolean, default value true."}),"\n",(0,r.jsx)(l.li,{children:"sizeScale: integer, default value 10."}),"\n",(0,r.jsx)(l.li,{children:"sizeMaxPixels: integer, default value 10."}),"\n"]}),"\n",(0,r.jsx)(l.h3,{id:"line",children:"Line"}),"\n",(0,r.jsx)(l.p,{children:"The line layer should follow the schema of the next example:"}),"\n",(0,r.jsx)(l.pre,{children:(0,r.jsx)(l.code,{className:"language-json",children:' {\n "type": "line",\n "data":[\n {\n "from": {\n "coordinates": [-122.269029, 37.80787]\n },\n "to": {\n "coordinates": [-122.271604, 37.803664]\n },\n "color": [255, 140, 0]\n },\n ],\n "properties": {\n "width": 20\n }\n\n }\n \n'})}),"\n",(0,r.jsx)(l.p,{children:"The available properties for this layer are the following:"}),"\n",(0,r.jsxs)(l.ul,{children:["\n",(0,r.jsx)(l.li,{children:"pickable: boolean, default value true."}),"\n",(0,r.jsx)(l.li,{children:"width: integer, default value 50."}),"\n"]}),"\n",(0,r.jsx)(l.h3,{id:"path",children:"Path"}),"\n",(0,r.jsx)(l.p,{children:"The Path layer should follow the schema of the next example:"}),"\n",(0,r.jsx)(l.pre,{children:(0,r.jsx)(l.code,{className:"language-json",children:' {\n "type": "path",\n "data":[\n {\n "path": [[-122.269029, 37.80787],[-122.271604, 37.803664],[-122.271604, 38.803664]],\n "color": [255, 140, 0],\n "width": 5\n },\n ],\n "properties": {\n "widthScale": 30\n }\n\n }\n \n'})}),"\n",(0,r.jsx)(l.p,{children:"The available properties for this layer are the following:"}),"\n",(0,r.jsxs)(l.ul,{children:["\n",(0,r.jsx)(l.li,{children:"pickable: boolean, default value true."}),"\n",(0,r.jsx)(l.li,{children:"widthScale: integer, default value 20."}),"\n",(0,r.jsx)(l.li,{children:"widthMinPixels: integer, default value 2."}),"\n"]}),"\n",(0,r.jsx)(l.h3,{id:"scatterplot",children:"ScatterPlot"}),"\n",(0,r.jsx)(l.p,{children:"The ScatterPlot layer should follow the schema of the next example:"}),"\n",(0,r.jsx)(l.pre,{children:(0,r.jsx)(l.code,{className:"language-json",children:' {\n "type": "scatterplot",\n "data":[\n {"name": "Colma (COLM)", "address\u201d: "365 D Street, Colma CA 94014", "exits\u201d: 4214, "coordinates": [-122.466233, 37.684638]},\n ],\n "properties": {\n "lineWidthMinPixels": 2\n }\n\n }\n \n'})}),"\n",(0,r.jsx)(l.p,{children:"The available properties for this layer are the following:"}),"\n",(0,r.jsxs)(l.ul,{children:["\n",(0,r.jsx)(l.li,{children:"pickable: boolean, default value true."}),"\n",(0,r.jsx)(l.li,{children:"stroked: boolean, default value true."}),"\n",(0,r.jsx)(l.li,{children:"filled: boolean, default value true."}),"\n",(0,r.jsx)(l.li,{children:"radiusScale: integer, default value 6."}),"\n",(0,r.jsx)(l.li,{children:"radiusMinPixels: integer, default value 1."}),"\n",(0,r.jsx)(l.li,{children:"radiusMaxPixels: integer, default value 100."}),"\n",(0,r.jsx)(l.li,{children:"lineWidthMinPixels: integer, default value 1."}),"\n"]}),"\n",(0,r.jsx)(l.h3,{id:"scenegraph",children:"Scenegraph"}),"\n",(0,r.jsx)(l.p,{children:"The Scenegraph layer should follow the schema of the next example:"}),"\n",(0,r.jsx)(l.pre,{children:(0,r.jsx)(l.code,{className:"language-json",children:' {\n "type": "scenegraph",\n "data":[\n {"coordinates": [-122.466233, 37.684638]},\n ],\n "properties": {\n "scenegraph": "https://raw.githubusercontent.com/KhronosGroup/glTF-Sample-Models/master/2.0/BoxAnimated/glTF-Binary/BoxAnimated.glb"\n }\n\n }\n \n'})}),"\n",(0,r.jsx)(l.p,{children:"The available properties for this layer are the following:"}),"\n",(0,r.jsxs)(l.ul,{children:["\n",(0,r.jsx)(l.li,{children:"pickable: boolean, default value true."}),"\n",(0,r.jsx)(l.li,{children:"scenegraph: string, url of the glb object."}),"\n",(0,r.jsx)(l.li,{children:"sizeScale: integer, default value 500."}),"\n"]}),"\n",(0,r.jsx)(l.h3,{id:"simplemesh",children:"SimpleMesh"}),"\n",(0,r.jsx)(l.p,{children:"The SimpleMesh layer should follow the schema of the next example:"}),"\n",(0,r.jsx)(l.pre,{children:(0,r.jsx)(l.code,{className:"language-json",children:' {\n "type": "simpleMesh",\n "data":[\n {\n "position": [-122.45, 37.7],\n "angle": 0,\n "color": [255, 0, 0]\n },\n {\n "position": [-122.46, 37.73],\n "angle": 90,\n "color": [0, 255, 0]\n },\n ],\n "properties": {\n "mesh": "https://raw.githubusercontent.com/visgl/deck.gl-data/master/website/humanoid_quad.obj"\n }\n\n }\n \n'})}),"\n",(0,r.jsx)(l.p,{children:"The available properties for this layer are the following:"}),"\n",(0,r.jsxs)(l.ul,{children:["\n",(0,r.jsx)(l.li,{children:"sizeScale: integer, default value 1."}),"\n",(0,r.jsx)(l.li,{children:"mesh: string, url of the obj object."}),"\n"]}),"\n",(0,r.jsx)(l.h3,{id:"textlayer",children:"TextLayer"}),"\n",(0,r.jsx)(l.p,{children:"The Text layer should follow the schema of the next example:"}),"\n",(0,r.jsx)(l.pre,{children:(0,r.jsx)(l.code,{className:"language-json",children:' {\n "type": "textLayer",\n "data":[\n {\n "coordinates": [-122.45, 37.7],\n "text": "example",\n },\n {\n "position": [-122.46, 37.73],\n "text": "example",\n },\n ],\n "properties": {\n }\n\n }\n \n'})}),"\n",(0,r.jsx)(l.p,{children:"The available properties for this layer are the following:"}),"\n",(0,r.jsxs)(l.ul,{children:["\n",(0,r.jsx)(l.li,{children:"pickable: boolean, default value true."}),"\n"]})]})}function h(e={}){const{wrapper:l}={...(0,a.R)(),...e.components};return l?(0,r.jsx)(l,{...e,children:(0,r.jsx)(c,{...e})}):c(e)}},8453:(e,l,n)=>{n.d(l,{R:()=>s,x:()=>t});var r=n(6540);const a={},i=r.createContext(a);function s(e){const l=r.useContext(i);return r.useMemo((function(){return"function"==typeof e?e(l):{...l,...e}}),[l,e])}function t(e){let l;return l=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:s(e.components),r.createElement(i.Provider,{value:l},e.children)}}}]); \ No newline at end of file diff --git a/build/assets/js/57aa5823.7f8b0c27.js b/build/assets/js/57aa5823.7f8b0c27.js deleted file mode 100644 index 7fd71e60..00000000 --- a/build/assets/js/57aa5823.7f8b0c27.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkcityscope_docs=self.webpackChunkcityscope_docs||[]).push([[459],{2384:(e,t,i)=>{i.r(t),i.d(t,{assets:()=>r,contentTitle:()=>s,default:()=>u,frontMatter:()=>c,metadata:()=>a,toc:()=>d});var n=i(4848),o=i(8453);const c={sidebar_position:4},s=void 0,a={id:"cityio/CityIO - Module",title:"CityIO - Module",description:"The aim of this interface is to enable user modules to access information about the grids created in CityIO, calculate Key Performance Indicators (KPIs), and then transmit them to the user interfaces.",source:"@site/docs/cityio/CityIO - Module.md",sourceDirName:"cityio",slug:"/cityio/CityIO - Module",permalink:"/cityio/CityIO - Module",draft:!1,unlisted:!1,editUrl:"https://github.com/CityScope/cityscope.github.io/docs/cityio/CityIO - Module.md",tags:[],version:"current",sidebarPosition:4,frontMatter:{sidebar_position:4},sidebar:"sidebar",previous:{title:"CityIO - UI",permalink:"/cityio/CityIO - UI"},next:{title:"CityIO - Core",permalink:"/cityio/CityIO - Core"}},r={},d=[{value:"Message Flow",id:"message-flow",level:2},{value:"Initial connection",id:"initial-connection",level:2},{value:"Module recalculation",id:"module-recalculation",level:2}];function l(e){const t={code:"code",h2:"h2",img:"img",p:"p",...(0,o.R)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(t.p,{children:"The aim of this interface is to enable user modules to access information about the grids created in CityIO, calculate Key Performance Indicators (KPIs), and then transmit them to the user interfaces."}),"\n",(0,n.jsx)(t.p,{children:"Brix can be utilized as Middleware to facilitate interaction with this interface."}),"\n",(0,n.jsx)(t.h2,{id:"message-flow",children:"Message Flow"}),"\n",(0,n.jsx)(t.p,{children:"The subsequent subsections provide descriptions of the various data exchanges that can occur between CityIO and the User-Defined modules."}),"\n",(0,n.jsx)(t.h2,{id:"initial-connection",children:"Initial connection"}),"\n",(0,n.jsxs)(t.p,{children:["To add a user-defined module to a project, the interface ",(0,n.jsx)(t.code,{children:"/module"})," can initiate a WebSocket channel. Once the connection is established, the module can send a SUBSCRIBE request to CityIO to acquire grid information. After receiving the grid details, the module should calculate the indicator and then send the information back to CityIO."]}),"\n",(0,n.jsx)(t.p,{children:(0,n.jsx)(t.img,{alt:"Initial Connection",src:i(2899).A+"",width:"760",height:"431"})}),"\n",(0,n.jsx)(t.h2,{id:"module-recalculation",children:"Module recalculation"}),"\n",(0,n.jsx)(t.p,{children:"Upon receiving a GEOGRIDATA_UPDATE message from CityIO, the module should recalculate the indicator and send the updated information back to CityIO."}),"\n",(0,n.jsx)(t.p,{children:(0,n.jsx)(t.img,{alt:"Grid Update",src:i(7068).A+"",width:"760",height:"292"})})]})}function u(e={}){const{wrapper:t}={...(0,o.R)(),...e.components};return t?(0,n.jsx)(t,{...e,children:(0,n.jsx)(l,{...e})}):l(e)}},7068:(e,t,i)=>{i.d(t,{A:()=>n});const n=i.p+"assets/images/calc-4ff39b399a470946dcfa21d9885a2358.png"},2899:(e,t,i)=>{i.d(t,{A:()=>n});const n=i.p+"assets/images/initialcon-d743feddd6a95b8c507e9d8d8800626d.png"},8453:(e,t,i)=>{i.d(t,{R:()=>s,x:()=>a});var n=i(6540);const o={},c=n.createContext(o);function s(e){const t=n.useContext(c);return n.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function a(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:s(e.components),n.createElement(c.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/build/assets/js/5a7a18e6.eac0270e.js b/build/assets/js/5a7a18e6.eac0270e.js deleted file mode 100644 index 0fae4db0..00000000 --- a/build/assets/js/5a7a18e6.eac0270e.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkcityscope_docs=self.webpackChunkcityscope_docs||[]).push([[383],{7020:(e,s,n)=>{n.r(s),n.d(s,{assets:()=>o,contentTitle:()=>d,default:()=>h,frontMatter:()=>i,metadata:()=>t,toc:()=>c});var r=n(4848),l=n(8453);const i={sidebar_position:6},d=void 0,t={id:"cityio/API",title:"API",description:"The CityIO HTTP API enables users to access and update information regarding the projects (grids).",source:"@site/docs/cityio/API.md",sourceDirName:"cityio",slug:"/cityio/API",permalink:"/cityio/API",draft:!1,unlisted:!1,editUrl:"https://github.com/CityScope/cityscope.github.io/docs/cityio/API.md",tags:[],version:"current",sidebarPosition:6,frontMatter:{sidebar_position:6},sidebar:"sidebar",previous:{title:"CityIO - Core",permalink:"/cityio/CityIO - Core"},next:{title:"Tangible User Interfaces",permalink:"/category/tangible-user-interfaces"}},o={},c=[{value:"Endpoints",id:"endpoints",level:2},{value:"List Projects",id:"list-projects",level:3},{value:"Parameters",id:"parameters",level:4},{value:"Request Body",id:"request-body",level:4},{value:"Success Response",id:"success-response",level:4},{value:"Error Response",id:"error-response",level:4},{value:"Example request",id:"example-request",level:4},{value:"Get Headers",id:"get-headers",level:3},{value:"Parameters",id:"parameters-1",level:4},{value:"Request Body",id:"request-body-1",level:4},{value:"Success Response",id:"success-response-1",level:4},{value:"Error Response",id:"error-response-1",level:4},{value:"Example request",id:"example-request-1",level:4},{value:"Get Grid",id:"get-grid",level:3},{value:"Parameters",id:"parameters-2",level:4},{value:"Request Body",id:"request-body-2",level:4},{value:"Success Response",id:"success-response-2",level:4},{value:"Error Response",id:"error-response-2",level:4},{value:"Example request",id:"example-request-2",level:4},{value:"Create or Update table",id:"create-or-update-table",level:3},{value:"Parameters",id:"parameters-3",level:4},{value:"Request Body",id:"request-body-3",level:4},{value:"Success Response",id:"success-response-3",level:4},{value:"Error Response",id:"error-response-3",level:4}];function a(e){const s={code:"code",h2:"h2",h3:"h3",h4:"h4",li:"li",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,l.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(s.p,{children:"The CityIO HTTP API enables users to access and update information regarding the projects (grids)."}),"\n",(0,r.jsx)(s.h2,{id:"endpoints",children:"Endpoints"}),"\n",(0,r.jsx)(s.h3,{id:"list-projects",children:"List Projects"}),"\n",(0,r.jsxs)(s.ul,{children:["\n",(0,r.jsxs)(s.li,{children:[(0,r.jsx)(s.strong,{children:"URL"}),": ",(0,r.jsx)(s.code,{children:"/api/table/list"})]}),"\n",(0,r.jsxs)(s.li,{children:[(0,r.jsx)(s.strong,{children:"Method"}),": ",(0,r.jsx)(s.code,{children:"GET"})]}),"\n",(0,r.jsxs)(s.li,{children:[(0,r.jsx)(s.strong,{children:"Auth Required"}),": No"]}),"\n",(0,r.jsxs)(s.li,{children:[(0,r.jsx)(s.strong,{children:"Permissions Required"}),": None"]}),"\n"]}),"\n",(0,r.jsx)(s.h4,{id:"parameters",children:"Parameters"}),"\n",(0,r.jsxs)(s.ul,{children:["\n",(0,r.jsx)(s.li,{children:"No parameters allowed."}),"\n"]}),"\n",(0,r.jsx)(s.h4,{id:"request-body",children:"Request Body"}),"\n",(0,r.jsxs)(s.ul,{children:["\n",(0,r.jsx)(s.li,{children:"No request body allowed."}),"\n"]}),"\n",(0,r.jsx)(s.h4,{id:"success-response",children:"Success Response"}),"\n",(0,r.jsxs)(s.ul,{children:["\n",(0,r.jsxs)(s.li,{children:[(0,r.jsx)(s.strong,{children:"Code"}),": ",(0,r.jsx)(s.code,{children:"200"})]}),"\n",(0,r.jsxs)(s.li,{children:[(0,r.jsx)(s.strong,{children:"Content"}),": ",(0,r.jsx)(s.code,{children:"JSON"})]}),"\n"]}),"\n",(0,r.jsx)(s.pre,{children:(0,r.jsx)(s.code,{className:"language-json",children:'[\n "test_podzem",\n "nl_haarlem_pbl_bea",\n "ex6_sgp_full_new_landuse_noquay_nostation",\n "test",\n "ex2_sgp_full_new_landuse_quay_bot",\n "group51",\n "test_brix",\n ...\n]\n'})}),"\n",(0,r.jsx)(s.h4,{id:"error-response",children:"Error Response"}),"\n",(0,r.jsxs)(s.ul,{children:["\n",(0,r.jsx)(s.li,{children:"Error response not expected."}),"\n"]}),"\n",(0,r.jsx)(s.h4,{id:"example-request",children:"Example request"}),"\n",(0,r.jsx)(s.p,{children:(0,r.jsx)(s.code,{children:"curl --location 'https://cityio-beta.media.mit.edu/cityio/api/table/list'"})}),"\n",(0,r.jsx)(s.h3,{id:"get-headers",children:"Get Headers"}),"\n",(0,r.jsxs)(s.ul,{children:["\n",(0,r.jsxs)(s.li,{children:[(0,r.jsx)(s.strong,{children:"URL"}),": ",(0,r.jsx)(s.code,{children:"/api/table/list"})]}),"\n",(0,r.jsxs)(s.li,{children:[(0,r.jsx)(s.strong,{children:"Method"}),": ",(0,r.jsx)(s.code,{children:"GET"})]}),"\n",(0,r.jsxs)(s.li,{children:[(0,r.jsx)(s.strong,{children:"Auth Required"}),": No"]}),"\n",(0,r.jsxs)(s.li,{children:[(0,r.jsx)(s.strong,{children:"Permissions Required"}),": None"]}),"\n"]}),"\n",(0,r.jsx)(s.h4,{id:"parameters-1",children:"Parameters"}),"\n",(0,r.jsxs)(s.ul,{children:["\n",(0,r.jsx)(s.li,{children:"No parameters allowed."}),"\n"]}),"\n",(0,r.jsx)(s.h4,{id:"request-body-1",children:"Request Body"}),"\n",(0,r.jsxs)(s.ul,{children:["\n",(0,r.jsx)(s.li,{children:"No request body allowed."}),"\n"]}),"\n",(0,r.jsx)(s.h4,{id:"success-response-1",children:"Success Response"}),"\n",(0,r.jsxs)(s.ul,{children:["\n",(0,r.jsxs)(s.li,{children:[(0,r.jsx)(s.strong,{children:"Code"}),": ",(0,r.jsx)(s.code,{children:"200"})]}),"\n",(0,r.jsxs)(s.li,{children:[(0,r.jsx)(s.strong,{children:"Content"}),":"]}),"\n"]}),"\n",(0,r.jsx)(s.pre,{children:(0,r.jsx)(s.code,{className:"language-json",children:'[ {\n "tableHeader": {\n "cellSize": 15,\n "latitude": 42.3664655,\n "longitude": -71.0854323,\n "ncols": 20,\n "nrows": 20,\n "projection": "+proj=lcc +lat_1=42.68333333333333 +lat_2=41.71666666666667 +lat_0=41 +lon_0=-71.5 +x_0=200000 +y_0=750000 +ellps=GRS80 +datum=NAD83 +units=m +no_def",\n "rotation": 0,\n "tableName": "test",\n "tz": -5\n },\n "tableName": "test"\n },\n...\n]\n'})}),"\n",(0,r.jsx)(s.h4,{id:"error-response-1",children:"Error Response"}),"\n",(0,r.jsxs)(s.ul,{children:["\n",(0,r.jsx)(s.li,{children:"Error response not expected."}),"\n"]}),"\n",(0,r.jsx)(s.h4,{id:"example-request-1",children:"Example request"}),"\n",(0,r.jsx)(s.p,{children:(0,r.jsx)(s.code,{children:"curl --location 'https://cityio-beta.media.mit.edu/cityio/api/table/headers'"})}),"\n",(0,r.jsx)(s.h3,{id:"get-grid",children:"Get Grid"}),"\n",(0,r.jsxs)(s.ul,{children:["\n",(0,r.jsxs)(s.li,{children:[(0,r.jsx)(s.strong,{children:"URL"}),": ",(0,r.jsx)(s.code,{children:"/api/table/{tableName}/{dataPath}"})]}),"\n",(0,r.jsxs)(s.li,{children:[(0,r.jsx)(s.strong,{children:"Method"}),": ",(0,r.jsx)(s.code,{children:"GET"})]}),"\n",(0,r.jsxs)(s.li,{children:[(0,r.jsx)(s.strong,{children:"Auth Required"}),": No"]}),"\n",(0,r.jsxs)(s.li,{children:[(0,r.jsx)(s.strong,{children:"Permissions Required"}),": None"]}),"\n"]}),"\n",(0,r.jsx)(s.h4,{id:"parameters-2",children:"Parameters"}),"\n",(0,r.jsxs)(s.ul,{children:["\n",(0,r.jsxs)(s.li,{children:[(0,r.jsx)(s.code,{children:"tableName"})," (String) - Name of the table"]}),"\n",(0,r.jsxs)(s.li,{children:[(0,r.jsx)(s.code,{children:"param2"})," (String, optional) - Data path to obtain (optional)"]}),"\n"]}),"\n",(0,r.jsx)(s.h4,{id:"request-body-2",children:"Request Body"}),"\n",(0,r.jsxs)(s.ul,{children:["\n",(0,r.jsx)(s.li,{children:"No request body allowed."}),"\n"]}),"\n",(0,r.jsx)(s.h4,{id:"success-response-2",children:"Success Response"}),"\n",(0,r.jsxs)(s.ul,{children:["\n",(0,r.jsxs)(s.li,{children:[(0,r.jsx)(s.strong,{children:"Code"}),": ",(0,r.jsx)(s.code,{children:"200"})]}),"\n",(0,r.jsxs)(s.li,{children:[(0,r.jsx)(s.strong,{children:"Content"}),":"]}),"\n"]}),"\n",(0,r.jsx)(s.pre,{children:(0,r.jsx)(s.code,{className:"language-json",children:'{\n "GEOGRID": {\n "features": [\n {\n "type": "Feature",\n "geometry": {\n "type": "Polygon",\n "coordinates": [\n [\n [\n -71.0854323,\n 42.36646549999987\n ],\n...\n}\n'})}),"\n",(0,r.jsx)(s.h4,{id:"error-response-2",children:"Error Response"}),"\n",(0,r.jsxs)(s.ul,{children:["\n",(0,r.jsxs)(s.li,{children:[(0,r.jsx)(s.strong,{children:"Code"}),": ",(0,r.jsx)(s.code,{children:"204"})]}),"\n",(0,r.jsxs)(s.li,{children:[(0,r.jsx)(s.strong,{children:"Description"}),": Empty body if the table name or the path cannot be found."]}),"\n"]}),"\n",(0,r.jsx)(s.h4,{id:"example-request-2",children:"Example request"}),"\n",(0,r.jsx)(s.p,{children:(0,r.jsx)(s.code,{children:"curl --location 'https://cityio-beta.media.mit.edu/cityio/api/table/test'"})}),"\n",(0,r.jsx)(s.h3,{id:"create-or-update-table",children:"Create or Update table"}),"\n",(0,r.jsxs)(s.ul,{children:["\n",(0,r.jsxs)(s.li,{children:[(0,r.jsx)(s.strong,{children:"URL"}),": ",(0,r.jsx)(s.code,{children:"/api/table/{tableName}"})]}),"\n",(0,r.jsxs)(s.li,{children:[(0,r.jsx)(s.strong,{children:"Method"}),": ",(0,r.jsx)(s.code,{children:"POST"})]}),"\n",(0,r.jsxs)(s.li,{children:[(0,r.jsx)(s.strong,{children:"Auth Required"}),": No"]}),"\n",(0,r.jsxs)(s.li,{children:[(0,r.jsx)(s.strong,{children:"Permissions Required"}),": None"]}),"\n"]}),"\n",(0,r.jsx)(s.h4,{id:"parameters-3",children:"Parameters"}),"\n",(0,r.jsxs)(s.ul,{children:["\n",(0,r.jsx)(s.li,{children:"No request body expected."}),"\n"]}),"\n",(0,r.jsx)(s.h4,{id:"request-body-3",children:"Request Body"}),"\n",(0,r.jsx)(s.pre,{children:(0,r.jsx)(s.code,{className:"language-json",children:"{\n$TABLE_BODY\n}\n"})}),"\n",(0,r.jsx)(s.h4,{id:"success-response-3",children:"Success Response"}),"\n",(0,r.jsxs)(s.ul,{children:["\n",(0,r.jsxs)(s.li,{children:[(0,r.jsx)(s.strong,{children:"Code"}),": ",(0,r.jsx)(s.code,{children:"200"})]}),"\n",(0,r.jsxs)(s.li,{children:[(0,r.jsx)(s.strong,{children:"Content"}),":"]}),"\n"]}),"\n",(0,r.jsx)(s.pre,{children:(0,r.jsx)(s.code,{className:"language-json",children:"{\n$TABLE_BODY\n}\n"})}),"\n",(0,r.jsx)(s.h4,{id:"error-response-3",children:"Error Response"}),"\n",(0,r.jsxs)(s.ul,{children:["\n",(0,r.jsx)(s.li,{children:"WIP"}),"\n"]})]})}function h(e={}){const{wrapper:s}={...(0,l.R)(),...e.components};return s?(0,r.jsx)(s,{...e,children:(0,r.jsx)(a,{...e})}):a(e)}},8453:(e,s,n)=>{n.d(s,{R:()=>d,x:()=>t});var r=n(6540);const l={},i=r.createContext(l);function d(e){const s=r.useContext(i);return r.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function t(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(l):e.components||l:d(e.components),r.createElement(i.Provider,{value:s},e.children)}}}]); \ No newline at end of file diff --git a/build/assets/js/5e95c892.74e26148.js b/build/assets/js/5e95c892.74e26148.js deleted file mode 100644 index c0356558..00000000 --- a/build/assets/js/5e95c892.74e26148.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkcityscope_docs=self.webpackChunkcityscope_docs||[]).push([[647],{7121:(e,s,c)=>{c.r(s),c.d(s,{default:()=>n});c(6540);var r=c(4164),t=c(1003),u=c(7559),a=c(2831),o=c(781),d=c(4848);function n(e){return(0,d.jsx)(t.e3,{className:(0,r.A)(u.G.wrapper.docsPages),children:(0,d.jsx)(o.A,{children:(0,a.v)(e.route.routes)})})}}}]); \ No newline at end of file diff --git a/build/assets/js/62455296.8f177904.js b/build/assets/js/62455296.8f177904.js deleted file mode 100644 index 9d2b3af5..00000000 --- a/build/assets/js/62455296.8f177904.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkcityscope_docs=self.webpackChunkcityscope_docs||[]).push([[710],{8686:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>a,contentTitle:()=>r,default:()=>u,frontMatter:()=>s,metadata:()=>c,toc:()=>d});var i=n(4848),o=n(8453);const s={id:"Internal_Note"},r=void 0,c={id:"archive/cityio/Internal_Note",title:"Internal_Note",description:"this section is for internal maintenance only.",source:"@site/docs/archive/cityio/notes.md",sourceDirName:"archive/cityio",slug:"/archive/cityio/Internal_Note",permalink:"/archive/cityio/Internal_Note",draft:!1,unlisted:!1,editUrl:"https://github.com/CityScope/cityscope.github.io/docs/archive/cityio/notes.md",tags:[],version:"current",frontMatter:{id:"Internal_Note"},sidebar:"sidebar",previous:{title:"Build",permalink:"/archive/cityio/Build"}},a={},d=[];function l(e){const t={code:"code",p:"p",pre:"pre",...(0,o.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(t.p,{children:"this section is for internal maintenance only."}),"\n",(0,i.jsxs)(t.p,{children:["cityio is using tmux's shared session for all the server admins to observe, stop, and restart the cityio instance.\nThe location of this session file is ",(0,i.jsx)(t.code,{children:"/tmp/Shared"}),", so to attach the tmux session:"]}),"\n",(0,i.jsx)(t.pre,{children:(0,i.jsx)(t.code,{children:"tmux attach -S /tmp/Shared\n"})}),"\n",(0,i.jsx)(t.p,{children:"To run the process, it should follow instructions written in the doc's Build.md."})]})}function u(e={}){const{wrapper:t}={...(0,o.R)(),...e.components};return t?(0,i.jsx)(t,{...e,children:(0,i.jsx)(l,{...e})}):l(e)}},8453:(e,t,n)=>{n.d(t,{R:()=>r,x:()=>c});var i=n(6540);const o={},s=i.createContext(o);function r(e){const t=i.useContext(s);return i.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function c(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:r(e.components),i.createElement(s.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/build/assets/js/6dfefd1c.26fa8450.js b/build/assets/js/6dfefd1c.26fa8450.js deleted file mode 100644 index ac5d3b5c..00000000 --- a/build/assets/js/6dfefd1c.26fa8450.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkcityscope_docs=self.webpackChunkcityscope_docs||[]).push([[440],{8400:(e,t,i)=>{i.r(t),i.d(t,{assets:()=>a,contentTitle:()=>r,default:()=>p,frontMatter:()=>s,metadata:()=>c,toc:()=>l});var o=i(4848),n=i(8453);const s={sidebar_position:3},r="Development on GitHub",c={id:"intro/github",title:"Development on GitHub",description:"CityScope is open-source software and is primarily hosted on GitHub. The organization structure is designed to facilitate the development and deployment of CityScope projects. The organization consists of two types of repositories: tools and cities.",source:"@site/docs/intro/github.md",sourceDirName:"intro",slug:"/intro/github",permalink:"/intro/github",draft:!1,unlisted:!1,editUrl:"https://github.com/CityScope/cityscope.github.io/docs/intro/github.md",tags:[],version:"current",sidebarPosition:3,frontMatter:{sidebar_position:3},sidebar:"sidebar",previous:{title:"System Architecture",permalink:"/intro/system"},next:{title:"CityScopeJS",permalink:"/category/cityscopejs"}},a={},l=[{value:"General development guidelines",id:"general-development-guidelines",level:2},{value:"Repos Structure",id:"repos-structure",level:2}];function d(e){const t={code:"code",h1:"h1",h2:"h2",img:"img",li:"li",ol:"ol",p:"p",ul:"ul",...(0,n.R)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(t.h1,{id:"development-on-github",children:"Development on GitHub"}),"\n",(0,o.jsx)(t.p,{children:"CityScope is open-source software and is primarily hosted on GitHub. The organization structure is designed to facilitate the development and deployment of CityScope projects. The organization consists of two types of repositories: tools and cities."}),"\n",(0,o.jsx)(t.p,{children:"The image below illustrates the components currently available in the CityScope Beta Software architecture. Additional components can be incorporated as required in the future."}),"\n",(0,o.jsx)(t.p,{children:(0,o.jsx)(t.img,{alt:"CityIO Websockets",src:i(7422).A+"",width:"4001",height:"1771"})}),"\n",(0,o.jsx)(t.h2,{id:"general-development-guidelines",children:"General development guidelines"}),"\n",(0,o.jsx)(t.p,{children:"There are many different repositories in the CityScope organization, and each one may have its own development guidelines, license, and contributing guidelines. However, there are some general guidelines that apply to all repositories:"}),"\n",(0,o.jsxs)(t.ul,{children:["\n",(0,o.jsx)(t.li,{children:"contact the maintainers of the repository to make sure your contribution is in line with the project's goals"}),"\n",(0,o.jsx)(t.li,{children:"Fork the repository and make your changes in your fork"}),"\n",(0,o.jsx)(t.li,{children:"Create a pull request to the original repository"}),"\n",(0,o.jsx)(t.li,{children:"Make sure your code is well-documented and tested"}),"\n"]}),"\n",(0,o.jsx)(t.h2,{id:"repos-structure",children:"Repos Structure"}),"\n",(0,o.jsx)(t.p,{children:"This organization consists two types of repositories."}),"\n",(0,o.jsxs)(t.ol,{children:["\n",(0,o.jsxs)(t.li,{children:["\n",(0,o.jsx)(t.p,{children:"Tools"}),"\n",(0,o.jsxs)(t.p,{children:["Repositories having the prefix of ",(0,o.jsx)(t.code,{children:"CS_"})," are the bare tools that commonly used across city projects."]}),"\n"]}),"\n",(0,o.jsxs)(t.li,{children:["\n",(0,o.jsx)(t.p,{children:"Cities"}),"\n",(0,o.jsxs)(t.p,{children:["Cities have their own repositories that includes links (more exactly submodules) of the above tools and other things. These repos start with ",(0,o.jsx)(t.code,{children:"CSL_"}),"."]}),"\n"]}),"\n"]}),"\n",(0,o.jsx)(t.p,{children:(0,o.jsx)(t.img,{alt:"CityScope in Andorra. Photo: Ariel Noyman",src:i(1834).A+"",width:"2378",height:"2464"})})]})}function p(e={}){const{wrapper:t}={...(0,n.R)(),...e.components};return t?(0,o.jsx)(t,{...e,children:(0,o.jsx)(d,{...e})}):d(e)}},1834:(e,t,i)=>{i.d(t,{A:()=>o});const o=i.p+"assets/images/Github_CS_Organization_diagram-70db1a5f41cb44cdb42ecd86aba9d951.png"},7422:(e,t,i)=>{i.d(t,{A:()=>o});const o=i.p+"assets/images/current_dev-15561505387e0c93b9d3312aa723a9d8.jpg"},8453:(e,t,i)=>{i.d(t,{R:()=>r,x:()=>c});var o=i(6540);const n={},s=o.createContext(n);function r(e){const t=o.useContext(s);return o.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function c(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:r(e.components),o.createElement(s.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/build/assets/js/6f967107.8110414f.js b/build/assets/js/6f967107.8110414f.js deleted file mode 100644 index e48466c1..00000000 --- a/build/assets/js/6f967107.8110414f.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkcityscope_docs=self.webpackChunkcityscope_docs||[]).push([[261],{8268:(e,t,i)=>{i.r(t),i.d(t,{assets:()=>a,contentTitle:()=>c,default:()=>u,frontMatter:()=>o,metadata:()=>s,toc:()=>h});var n=i(4848),r=i(8453);const o={sidebar_position:1},c="[Archive] H3 Grid",s={id:"archive/h3/h3",title:"[Archive] H3 Grid",description:"This documentation is under construction.",source:"@site/docs/archive/h3/h3.md",sourceDirName:"archive/h3",slug:"/archive/h3/",permalink:"/archive/h3/",draft:!1,unlisted:!1,editUrl:"https://github.com/CityScope/cityscope.github.io/docs/archive/h3/h3.md",tags:[],version:"current",sidebarPosition:1,frontMatter:{sidebar_position:1},sidebar:"sidebar",previous:{title:"Archive",permalink:"/category/archive"},next:{title:"[Archive] The brix library",permalink:"/archive/brix/"}},a={},h=[];function d(e){const t={admonition:"admonition",h1:"h1",p:"p",...(0,r.R)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(t.h1,{id:"archive-h3-grid",children:"[Archive] H3 Grid"}),"\n",(0,n.jsx)(t.admonition,{title:"Warning",type:"warning",children:(0,n.jsx)(t.p,{children:"This documentation is under construction."})})]})}function u(e={}){const{wrapper:t}={...(0,r.R)(),...e.components};return t?(0,n.jsx)(t,{...e,children:(0,n.jsx)(d,{...e})}):d(e)}},8453:(e,t,i)=>{i.d(t,{R:()=>c,x:()=>s});var n=i(6540);const r={},o=n.createContext(r);function c(e){const t=n.useContext(o);return n.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function s(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:c(e.components),n.createElement(o.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/build/assets/js/70b71d1a.25491f3b.js b/build/assets/js/70b71d1a.25491f3b.js deleted file mode 100644 index 8233f4a7..00000000 --- a/build/assets/js/70b71d1a.25491f3b.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkcityscope_docs=self.webpackChunkcityscope_docs||[]).push([[730],{977:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>a,contentTitle:()=>r,default:()=>h,frontMatter:()=>o,metadata:()=>c,toc:()=>d});var s=n(4848),i=n(8453);const o={sidebar_position:2},r=void 0,c={id:"cityio/Architecture",title:"Architecture",description:"WebSockets: definition and use",source:"@site/docs/cityio/Architecture.md",sourceDirName:"cityio",slug:"/cityio/Architecture",permalink:"/cityio/Architecture",draft:!1,unlisted:!1,editUrl:"https://github.com/CityScope/cityscope.github.io/docs/cityio/Architecture.md",tags:[],version:"current",sidebarPosition:2,frontMatter:{sidebar_position:2},sidebar:"sidebar",previous:{title:"Introduction",permalink:"/cityio/Introduction"},next:{title:"CityIO - UI",permalink:"/cityio/CityIO - UI"}},a={},d=[{value:"WebSockets: definition and use",id:"websockets-definition-and-use",level:2},{value:"WebSockets Messages",id:"websockets-messages",level:2},{value:"HTTP API",id:"http-api",level:2},{value:"Interfaces",id:"interfaces",level:2}];function l(e){const t={code:"code",h2:"h2",li:"li",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,i.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(t.h2,{id:"websockets-definition-and-use",children:"WebSockets: definition and use"}),"\n",(0,s.jsx)(t.p,{children:"WebSockets provide a way for two-way communication between a client and a server over a single, long-lived connection. This is different from the traditional HTTP request-response model, where each request opens a new connection (or reuses an existing connection in a limited way), and the server cannot send messages to the client unless explicitly requested. WebSockets allow the server to send messages to the client at any time, facilitating real-time data transfer and interactive applications."}),"\n",(0,s.jsx)(t.p,{children:"In our scenario, CityIO is a message broker that collects, processes, and distributes urban data, and CityScopeJS is a web-based user interface that visualizes this data for analysis and decision-making."}),"\n",(0,s.jsx)(t.p,{children:"Using WebSockets CityScopeJS establishes a WebSocket connection to CityIO when a user opens a project. This single connection stays open for the duration of the user's session. Whenever CityIO has new data or updates, it can immediately push this data to CityScopeJS over the WebSocket connection. CityScopeJS receives the data in real-time and updates the visualizations accordingly. This setup minimizes network overhead, reduces server load, and provides a seamless, real-time user experience."}),"\n",(0,s.jsx)(t.h2,{id:"websockets-messages",children:"WebSockets Messages"}),"\n",(0,s.jsx)(t.p,{children:"The WebSocket messages exchanged between CityIO, the user interfaces (UIs), and the modules will adhere to the following structure, which is represented as a JSON schema:"}),"\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{className:"language-json",children:'{\n "title": "websocket-message",\n "description": "Structure of the websocket messages",\n "type": "object",\n "properties": {\n "type":{\n "type": "string"\n },\n "content":{\n "type": "object"\n }\n }\n}\n'})}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsxs)(t.li,{children:["The property ",(0,s.jsx)(t.strong,{children:"type"})," will indicate what type of message is sending the entity."]}),"\n",(0,s.jsxs)(t.li,{children:["the property ",(0,s.jsx)(t.strong,{children:"content"})," will differ depending on the type of the message; should contain the information needed for the destination entity to process the message."]}),"\n"]}),"\n",(0,s.jsx)(t.p,{children:"Upon reception of a message, the CityScope entity (CityIO, User Interfaces, or Modules) will follow the next steps:"}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsx)(t.li,{children:"Parses the message as a JSON, using the previous schema."}),"\n",(0,s.jsxs)(t.li,{children:["Reads the type property:","\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsx)(t.li,{children:"If the type is recognized, reads the content property and executes the proper action."}),"\n",(0,s.jsx)(t.li,{children:"Otherwise, the message is discarted."}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(t.h2,{id:"http-api",children:"HTTP API"}),"\n",(0,s.jsx)(t.p,{children:"CityIO features an HTTP API that enables users to access a wide range of information about various projects. The REST API is designed to maintain compatibility with the previous version of CityIO, ensuring that older modules can seamlessly communicate with this new component."}),"\n",(0,s.jsx)(t.h2,{id:"interfaces",children:"Interfaces"}),"\n",(0,s.jsx)(t.p,{children:"The available interfaces, as previously mentioned, include the following:"}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsxs)(t.li,{children:["Websocket channel ",(0,s.jsx)(t.strong,{children:"/interface"}),": interface to exchange messages with interfaces."]}),"\n",(0,s.jsxs)(t.li,{children:["Websocket channel ",(0,s.jsx)(t.strong,{children:"/module"}),": interface to exchange messages with modules."]}),"\n",(0,s.jsxs)(t.li,{children:["Websocket channel ",(0,s.jsx)(t.strong,{children:"/module/core"}),": interface to exchange messages with core modules."]}),"\n",(0,s.jsxs)(t.li,{children:["API REST ",(0,s.jsx)(t.strong,{children:"/api"}),": HTTP interface to obtain information from CityIO."]}),"\n"]})]})}function h(e={}){const{wrapper:t}={...(0,i.R)(),...e.components};return t?(0,s.jsx)(t,{...e,children:(0,s.jsx)(l,{...e})}):l(e)}},8453:(e,t,n)=>{n.d(t,{R:()=>r,x:()=>c});var s=n(6540);const i={},o=s.createContext(i);function r(e){const t=s.useContext(o);return s.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function c(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:r(e.components),s.createElement(o.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/build/assets/js/7332f3ba.891d7f4f.js b/build/assets/js/7332f3ba.891d7f4f.js deleted file mode 100644 index 4beed84b..00000000 --- a/build/assets/js/7332f3ba.891d7f4f.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkcityscope_docs=self.webpackChunkcityscope_docs||[]).push([[860],{6842:(t,e,i)=>{i.r(e),i.d(e,{assets:()=>a,contentTitle:()=>r,default:()=>m,frontMatter:()=>s,metadata:()=>c,toc:()=>d});var n=i(4848),o=i(8453);const s={sidebar_position:1},r=void 0,c={id:"modules/brix/Introduction",title:"Introduction",description:"This documentation is under construction. The content of the documentation may change without prior notice.",source:"@site/docs/modules/brix/Introduction.md",sourceDirName:"modules/brix",slug:"/modules/brix/Introduction",permalink:"/modules/brix/Introduction",draft:!1,unlisted:!1,editUrl:"https://github.com/CityScope/cityscope.github.io/docs/modules/brix/Introduction.md",tags:[],version:"current",sidebarPosition:1,frontMatter:{sidebar_position:1},sidebar:"sidebar",previous:{title:"Brix",permalink:"/category/brix"},next:{title:"DeckGL Modules",permalink:"/modules/brix/DeckGL Modules"}},a={},d=[];function u(t){const e={a:"a",admonition:"admonition",img:"img",p:"p",...(0,o.R)(),...t.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(e.admonition,{title:"Warning",type:"warning",children:(0,n.jsx)(e.p,{children:"This documentation is under construction. The content of the documentation may change without prior notice."})}),"\n",(0,n.jsx)(e.p,{children:"Brix is a Python library that manages communication with CityIO and CityScopeJS. This enables module makers to focus on their projects without the necessity of directly interacting with CityIO or the UI."}),"\n",(0,n.jsx)(e.p,{children:"As depicted in the following image, module makers only need to concern themselves with the code in their modules, the utilization of Brix, and the results obtained in CityScopeJS. All internal communication mechanisms and updates are managed by the CityScope platform."}),"\n",(0,n.jsx)(e.p,{children:(0,n.jsx)(e.img,{alt:"Subscription Request",src:i(9083).A+"",width:"1330",height:"126"})}),"\n",(0,n.jsxs)(e.p,{children:["You can find more information about Brix on the following website: ",(0,n.jsx)(e.a,{href:"https://cityscope.media.mit.edu/CS_Brix/getting_started.html",children:"https://cityscope.media.mit.edu/CS_Brix/getting_started.html"})]})]})}function m(t={}){const{wrapper:e}={...(0,o.R)(),...t.components};return e?(0,n.jsx)(e,{...t,children:(0,n.jsx)(u,{...t})}):u(t)}},9083:(t,e,i)=>{i.d(e,{A:()=>n});const n=i.p+"assets/images/brix-f6b88d38a0a50447532241c5e2b0bf6a.png"},8453:(t,e,i)=>{i.d(e,{R:()=>r,x:()=>c});var n=i(6540);const o={},s=n.createContext(o);function r(t){const e=n.useContext(s);return n.useMemo((function(){return"function"==typeof t?t(e):{...e,...t}}),[e,t])}function c(t){let e;return e=t.disableParentContext?"function"==typeof t.components?t.components(o):t.components||o:r(t.components),n.createElement(s.Provider,{value:e},t.children)}}}]); \ No newline at end of file diff --git a/build/assets/js/7365a548.c5a91fd5.js b/build/assets/js/7365a548.c5a91fd5.js deleted file mode 100644 index 193fb5fb..00000000 --- a/build/assets/js/7365a548.c5a91fd5.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkcityscope_docs=self.webpackChunkcityscope_docs||[]).push([[376],{484:e=>{e.exports=JSON.parse('{"title":"Brix","description":"All you need to know about Brix Websockets.","slug":"/category/brix","permalink":"/category/brix","navigation":{"previous":{"title":"Modules","permalink":"/category/modules"},"next":{"title":"Introduction","permalink":"/modules/brix/Introduction"}}}')}}]); \ No newline at end of file diff --git a/build/assets/js/78363d9c.638cfac1.js b/build/assets/js/78363d9c.638cfac1.js deleted file mode 100644 index e8506ed5..00000000 --- a/build/assets/js/78363d9c.638cfac1.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkcityscope_docs=self.webpackChunkcityscope_docs||[]).push([[760],{1468:(e,t,o)=>{o.r(t),o.d(t,{assets:()=>a,contentTitle:()=>c,default:()=>l,frontMatter:()=>s,metadata:()=>r,toc:()=>p});var n=o(4848),i=o(8453);const s={id:"RoboScope"},c=void 0,r={id:"tanglibe user interfaces/RoboScope",title:"RoboScope",description:"Work in progress!",source:"@site/docs/tanglibe user interfaces/RoboScope.md",sourceDirName:"tanglibe user interfaces",slug:"/tanglibe user interfaces/RoboScope",permalink:"/tanglibe user interfaces/RoboScope",draft:!1,unlisted:!1,editUrl:"https://github.com/CityScope/cityscope.github.io/docs/tanglibe user interfaces/RoboScope.md",tags:[],version:"current",frontMatter:{id:"RoboScope"},sidebar:"sidebar",previous:{title:"CityScoPy",permalink:"/tanglibe user interfaces/CityScoPy"},next:{title:"CityScope Table Design",permalink:"/tanglibe user interfaces/CityScope Table Design"}},a={},p=[];function u(e){const t={admonition:"admonition",p:"p",...(0,i.R)(),...e.components};return(0,n.jsx)(t.admonition,{type:"caution",children:(0,n.jsx)(t.p,{children:"Work in progress!"})})}function l(e={}){const{wrapper:t}={...(0,i.R)(),...e.components};return t?(0,n.jsx)(t,{...e,children:(0,n.jsx)(u,{...e})}):u(e)}},8453:(e,t,o)=>{o.d(t,{R:()=>c,x:()=>r});var n=o(6540);const i={},s=n.createContext(i);function c(e){const t=n.useContext(s);return n.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function r(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:c(e.components),n.createElement(s.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/build/assets/js/7980bb0e.37c57d2a.js b/build/assets/js/7980bb0e.37c57d2a.js deleted file mode 100644 index 94209ca3..00000000 --- a/build/assets/js/7980bb0e.37c57d2a.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkcityscope_docs=self.webpackChunkcityscope_docs||[]).push([[418],{3139:e=>{e.exports=JSON.parse('{"title":"Tangible User Interfaces","description":"Tangible User Interfaces for the CityScope platform","slug":"/category/tangible-user-interfaces","permalink":"/category/tangible-user-interfaces","navigation":{"previous":{"title":"API","permalink":"/cityio/API"},"next":{"title":"CityScoPy","permalink":"/tanglibe user interfaces/CityScoPy"}}}')}}]); \ No newline at end of file diff --git a/build/assets/js/7d744e69.77fc8da4.js b/build/assets/js/7d744e69.77fc8da4.js deleted file mode 100644 index 23f43c80..00000000 --- a/build/assets/js/7d744e69.77fc8da4.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkcityscope_docs=self.webpackChunkcityscope_docs||[]).push([[741],{9433:(e,t,o)=>{o.r(t),o.d(t,{assets:()=>c,contentTitle:()=>a,default:()=>p,frontMatter:()=>r,metadata:()=>s,toc:()=>d});var n=o(4848),i=o(8453);const r={slug:"/",sidebar_position:1,title:"Introduction"},a="CityScope",s={id:"intro/intro",title:"Introduction",description:"CityScope is a project conducted at the MIT Media Lab City Science group. It includes a slew of tangible and digital platforms dedicated to solving spatial design and urban planning challenges. The tools range from simulations that quantify the impact of disruptive interventions in cities to community engagement systems. We develop and deploy these tools around the world and maintain free and open-source community for the majority of our work.",source:"@site/docs/intro/intro.md",sourceDirName:"intro",slug:"/",permalink:"/",draft:!1,unlisted:!1,editUrl:"https://github.com/CityScope/cityscope.github.io/docs/intro/intro.md",tags:[],version:"current",sidebarPosition:1,frontMatter:{slug:"/",sidebar_position:1,title:"Introduction"},sidebar:"sidebar",next:{title:"System Architecture",permalink:"/intro/system"}},c={},d=[{value:"Figure: CityScope in Andorra La-Vella (Photo: Ariel Noyman)",id:"figure-cityscope-in-andorra-la-vella-photo-ariel-noyman",level:6}];function l(e){const t={admonition:"admonition",h1:"h1",h6:"h6",img:"img",p:"p",...(0,i.R)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(t.h1,{id:"cityscope",children:"CityScope"}),"\n",(0,n.jsx)(t.p,{children:"CityScope is a project conducted at the MIT Media Lab City Science group. It includes a slew of tangible and digital platforms dedicated to solving spatial design and urban planning challenges. The tools range from simulations that quantify the impact of disruptive interventions in cities to community engagement systems. We develop and deploy these tools around the world and maintain free and open-source community for the majority of our work."}),"\n",(0,n.jsx)(t.admonition,{title:"Note",type:"warning",children:(0,n.jsx)(t.p,{children:"CityScope documentation and the software it describes are works in progress. The content of the documentation or the software may change without prior notice."})}),"\n",(0,n.jsx)(t.p,{children:(0,n.jsx)(t.img,{alt:"CityScope in Andorra. Photo: Ariel Noyman",src:o(8750).A+"",width:"2253",height:"1502"})}),"\n",(0,n.jsx)(t.h6,{id:"figure-cityscope-in-andorra-la-vella-photo-ariel-noyman",children:"Figure: CityScope in Andorra La-Vella (Photo: Ariel Noyman)"}),"\n",(0,n.jsx)("iframe",{width:"100%",height:"600",src:"https://www.youtube.com/embed/o71Ab4cJ1uA",frameborder:"0",allow:"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture",allowfullscreen:!0})]})}function p(e={}){const{wrapper:t}={...(0,i.R)(),...e.components};return t?(0,n.jsx)(t,{...e,children:(0,n.jsx)(l,{...e})}):l(e)}},8750:(e,t,o)=>{o.d(t,{A:()=>n});const n=o.p+"assets/images/cs_an-98816fb9a24173dcb29a59aa1ef5bdf3.jpg"},8453:(e,t,o)=>{o.d(t,{R:()=>a,x:()=>s});var n=o(6540);const i={},r=n.createContext(i);function a(e){const t=n.useContext(r);return n.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function s(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:a(e.components),n.createElement(r.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/build/assets/js/8529a1a6.ddadba1f.js b/build/assets/js/8529a1a6.ddadba1f.js deleted file mode 100644 index 4681d326..00000000 --- a/build/assets/js/8529a1a6.ddadba1f.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkcityscope_docs=self.webpackChunkcityscope_docs||[]).push([[374],{784:(e,n,i)=>{i.r(n),i.d(n,{assets:()=>c,contentTitle:()=>a,default:()=>h,frontMatter:()=>t,metadata:()=>l,toc:()=>o});var s=i(4848),r=i(8453);const t={id:"Brix"},a="[Archive] The brix library",l={id:"archive/brix/Brix",title:"[Archive] The brix library",description:"Brix is a python library for CityScope modules which handles communication with City I/O.",source:"@site/docs/archive/brix/Brix.md",sourceDirName:"archive/brix",slug:"/archive/brix/",permalink:"/archive/brix/",draft:!1,unlisted:!1,editUrl:"https://github.com/CityScope/cityscope.github.io/docs/archive/brix/Brix.md",tags:[],version:"current",frontMatter:{id:"Brix"},sidebar:"sidebar",previous:{title:"[Archive] H3 Grid",permalink:"/archive/h3/"},next:{title:"Examples",permalink:"/archive/brix/Examples/"}},c={},o=[{value:"Introduction",id:"introduction",level:2},{value:"Installation",id:"installation",level:2},{value:"Indices and tables",id:"indices-and-tables",level:2}];function d(e){const n={a:"a",code:"code",h1:"h1",h2:"h2",li:"li",p:"p",pre:"pre",ul:"ul",...(0,r.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)(n.h1,{id:"archive-the-brix-library",children:["[Archive] The ",(0,s.jsx)(n.code,{children:"brix"})," library"]}),"\n",(0,s.jsxs)(n.p,{children:["Brix is a python library for CityScope modules which handles communication with ",(0,s.jsx)(n.a,{href:"http://cityio.media.mit.edu/",children:"City I/O"}),"."]}),"\n",(0,s.jsx)(n.h2,{id:"introduction",children:"Introduction"}),"\n",(0,s.jsxs)(n.p,{children:["What is this library for? If you have never heard of a CityScope before, you might want to stop reading and learn about them ",(0,s.jsx)(n.a,{href:"https://cityscope.media.mit.edu/",children:"here"}),". CityScope is an awesome way to interact, explore, and co-create urban interventions in a way that can be accessed by multiple people with different background. If you know what they are, please keep reading."]}),"\n",(0,s.jsx)(n.p,{children:"What is a CityScope table? a \u2018table\u2019 is our way of describing a CityScope project. Why table then? Since historically, most CityScope instances were composed of a mesh between a physical table-top 3D model of a city, augmented with projections, software, and other interface hardware. So a table => project."}),"\n",(0,s.jsx)(n.p,{children:"What is an indicator? An indicator is the result of running a module for CityScope. Indicators work by listening for updated from the CityScope table they are linked to, calculating some values by using a model, some function of the data, or a simulation, and then post the result of the calculations to CityIO to be displayed in the table."}),"\n",(0,s.jsx)(n.p,{children:"What are the types of indicators you can build? Indicators can be anything that could be displayed on a CityScope table, including the supporting screens associated to it. For the purpose of this library, we distinguish three types of indicator: numeric, heatmap, simulation."}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:"Numeric: Numeric indicators are just a number or set of numbers. They are usually displayed in a chart (bar chart, radar chart, etc) next to the table. The most common numeric indicator are the numbers that go in the radar plot, which display information about density, diversity, and proximity."}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:"Heatmap: These indicators are geodata. They are made up of geometries (points, lines, or polygons) and properties associated to them. These indicators are displayed as layers directly on the CityScope table."}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:"Simulation: These type of indicators are also displayed on the table but they are the result of an agent based simulation and are therefore displayed as a dynamic layer. They change over time like a short movie. These are not yet supported by this library."}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"installation",children:"Installation"}),"\n",(0,s.jsx)(n.p,{children:"Brix can be installed from pip. Just do:"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{children:"pip install cs-brix\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:"Getting started"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:"Basics of building a CityScope indicator"}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:"Let\u2019s talk data (input)"}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:"Build and test your indicator (output)"}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:"Deploy your indicator"}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:"Tutorials"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:"Auto-updates of GEOGRIDDATA"}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:"Creating a table from python"}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:"Testing your module"}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:"Classes"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:"Handler class"}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:"Indicator class"}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:"GEOGRIDDATA class"}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:"Indicator sub-classes"}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:"User class"}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:"Grid maker class"}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:"Functions"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:"Helper functions"}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:"Wrapper functions"}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:"OSM functions"}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:"Examples"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:"Short examples"}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:"Step by step examples"}),"\n"]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"indices-and-tables",children:"Indices and tables"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:"Index"}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:"Search Page"}),"\n"]}),"\n"]})]})}function h(e={}){const{wrapper:n}={...(0,r.R)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(d,{...e})}):d(e)}},8453:(e,n,i)=>{i.d(n,{R:()=>a,x:()=>l});var s=i(6540);const r={},t=s.createContext(r);function a(e){const n=s.useContext(t);return s.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function l(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:a(e.components),s.createElement(t.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/build/assets/js/89ac796e.d6940004.js b/build/assets/js/89ac796e.d6940004.js deleted file mode 100644 index 71bbab5b..00000000 --- a/build/assets/js/89ac796e.d6940004.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkcityscope_docs=self.webpackChunkcityscope_docs||[]).push([[949],{8649:(e,n,i)=>{i.r(n),i.d(n,{assets:()=>l,contentTitle:()=>r,default:()=>h,frontMatter:()=>o,metadata:()=>c,toc:()=>a});var s=i(4848),t=i(8453);const o={id:"CityScoPy"},r=void 0,c={id:"tanglibe user interfaces/CityScoPy",title:"CityScoPy",description:"Download latest release",source:"@site/docs/tanglibe user interfaces/CityScoPy.md",sourceDirName:"tanglibe user interfaces",slug:"/tanglibe user interfaces/CityScoPy",permalink:"/tanglibe user interfaces/CityScoPy",draft:!1,unlisted:!1,editUrl:"https://github.com/CityScope/cityscope.github.io/docs/tanglibe user interfaces/CityScoPy.md",tags:[],version:"current",frontMatter:{id:"CityScoPy"},sidebar:"sidebar",previous:{title:"Tangible User Interfaces",permalink:"/category/tangible-user-interfaces"},next:{title:"RoboScope",permalink:"/tanglibe user interfaces/RoboScope"}},l={},a=[{value:"A tool for scanning interactions with a tangible LEGO grid and networking MIT CityScope Projects in Python",id:"a-tool-for-scanning-interactions-with-a-tangible-lego-grid-and-networking-mit-cityscope-projects-in-python",level:4},{value:"Usage",id:"usage",level:2},{value:"Class methods",id:"class-methods",level:2},{value:"<code>Cityscopy.keystone()</code>",id:"cityscopykeystone",level:3},{value:"Initial keystone and save to file",id:"initial-keystone-and-save-to-file",level:5},{value:"<code>Cityscopy.scan()</code>",id:"cityscopyscan",level:3},{value:"main scanning and sending method",id:"main-scanning-and-sending-method",level:5},{value:"options in <code>__settings__.json</code>",id:"options-in-__settings__json",level:5},{value:"output",id:"output",level:4},{value:"<code>Cityscopy.udp_listener()</code>",id:"cityscopyudp_listener",level:3},{value:"emulates local UDP server listener",id:"emulates-local-udp-server-listener",level:5},{value:"Errors",id:"errors",level:2},{value:"License",id:"license",level:2},{value:"Contribution",id:"contribution",level:2}];function d(e){const n={a:"a",code:"code",h2:"h2",h3:"h3",h4:"h4",h5:"h5",hr:"hr",li:"li",p:"p",pre:"pre",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,t.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)(n.p,{children:["*** ",(0,s.jsx)(n.a,{href:"https://github.com/CityScope/CS_Scanner_Python/releases/",children:"Download latest release "})," ***"]}),"\n",(0,s.jsx)(n.h4,{id:"a-tool-for-scanning-interactions-with-a-tangible-lego-grid-and-networking-mit-cityscope-projects-in-python",children:"A tool for scanning interactions with a tangible LEGO grid and networking MIT CityScope Projects in Python"}),"\n",(0,s.jsx)(n.p,{children:"CityScoPy is the main component of an interactive MIT CityScope table.\nIt is used for initiating and later run a interactive CityScope instance in any arbitrary geolocated area in the world. CityScoPy can capture, key-stone, scan and send uniquely tagged arrays of 2-dimension physical bricks."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsx)(n.h2,{id:"usage",children:"Usage"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"install python 3.4 or higher"}),"\n",(0,s.jsx)(n.li,{children:"clone this repo"}),"\n"]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{children:"$ git clone https://github.com/CityScope/CS_CityScoPy.git\n$ cd CS_CityScoPy\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["install packages. To produce a list of needed packages, use ",(0,s.jsx)(n.code,{children:"pipreqs"}),", follow instructions ",(0,s.jsx)(n.a,{href:"https://github.com/bndr/pipreqs",children:"https://github.com/bndr/pipreqs"}),". Or, simply run the app and install packages as they appear as missing."]}),"\n",(0,s.jsxs)(n.li,{children:["tweak ",(0,s.jsx)(n.code,{children:"__settings__.json"})," to fit your cityIO table setup. Read ",(0,s.jsx)(n.a,{href:"https://github.com/cityscope/cs_cityio_backend/wiki",children:"cityIO documentation"})," for proper data structure"]}),"\n",(0,s.jsxs)(n.li,{children:["in ",(0,s.jsx)(n.code,{children:"run.py"})," setup a path to your settings file"]}),"\n"]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{children:'CITYSCOPY_SETTINGS_PATH = "__path__/__settings__.json"\n'})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["initiate the ",(0,s.jsx)(n.code,{children:"Cityscopy"})," class (see ",(0,s.jsx)(n.code,{children:"run.py"})," example)"]}),"\n"]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{children:"cityscopy = Cityscopy(CITYSCOPY_SETTINGS_PATH)\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"use one or more of the main methods. 'Blocking' means the method will run forever (while true loop). Advanced users can parallel blocking methods using multithreading."}),"\n"]}),"\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"Method"}),(0,s.jsx)(n.th,{children:"Usage"}),(0,s.jsx)(n.th,{children:"Blocking?"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"cityscopy.keystone()"})}),(0,s.jsx)(n.td,{children:"initial keystone and save to file"}),(0,s.jsx)(n.td,{children:"x"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"cityscopy.scan()"})}),(0,s.jsx)(n.td,{children:"main scanning and sending method"}),(0,s.jsx)(n.td,{children:"x"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"cityscopy.udp_listener()"})}),(0,s.jsx)(n.td,{children:"emulate local UDP server listener"}),(0,s.jsx)(n.td,{children:"x"})]})]})]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["in terminal run the tool using ",(0,s.jsx)(n.code,{children:"$ run.py"})]}),"\n"]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsx)(n.h2,{id:"class-methods",children:"Class methods"}),"\n",(0,s.jsx)(n.h3,{id:"cityscopykeystone",children:(0,s.jsx)(n.code,{children:"Cityscopy.keystone()"})}),"\n",(0,s.jsx)(n.h5,{id:"initial-keystone-and-save-to-file",children:"Initial keystone and save to file"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"the tool will start given a cam is connected and working"}),"\n",(0,s.jsxs)(n.li,{children:["Select 4 corners [up right, up left, bottom right, bottom left, at this order] of keystone region\nNote: no need to exactly select the corners, as these are only initial guides for ",(0,s.jsx)(n.code,{children:"scanner"})," method"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"keystone.txt"})," and close"]}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"cityscopyscan",children:(0,s.jsx)(n.code,{children:"Cityscopy.scan()"})}),"\n",(0,s.jsx)(n.h5,{id:"main-scanning-and-sending-method",children:"main scanning and sending method"}),"\n",(0,s.jsxs)(n.p,{children:["Scanner will detect colors in arrays of 2d-pixel arrays. Then, these color arrays will be compared to list of ",(0,s.jsx)(n.code,{children:"tags"})," attribute of a given ",(0,s.jsx)(n.code,{children:"__settings__.json"})," file. Then the tool will return a list of ",(0,s.jsx)(n.code,{children:"type"})," and ",(0,s.jsx)(n.code,{children:"rotation"})," for each of the scanned arrays. This list is then converted to cityIO acceptable JSON format and can be sent using POST request."]}),"\n",(0,s.jsxs)(n.h5,{id:"options-in-__settings__json",children:["options in ",(0,s.jsx)(n.code,{children:"__settings__.json"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{children:'{\n "cityscopy": {\n "cityscope_project_name": "cityscopy", // table name\n "type": ["0", "1", "2", ...], // types names\n "rotation": ["0", "1", "2", "3"], // default rotations (0, 90, 180, 270)\n "nrows": 10, // number of columns to scan\n "ncols": 10, // number of rows to scan\n "cell_gap": 10, // spacing between grid fields when using physical grid\n "camId": 0, // openCV will pick `camID` camera (usually 0)\n "interval": 250, // in ms, how many time should this send the packet\n "gui": true, // toggle GUI display\n "cityio": true, // toggle UDP or cityIO delivery\n "tags": [ // 16 digit strings of types being scanned [`1000000100000000`]\n "0000000000000000",\n "1111111111111111",\n "1111111100000000",\n ...\n ],\n "mirror_cam": false\n }\n}\n\n'})}),"\n",(0,s.jsxs)(n.p,{children:["Tool will start scanning using whatever keystone data was stored in ",(0,s.jsx)(n.code,{children:"keystone.txt"}),"\nmake corrections to the key stone using the sliders or keyboard using ",(0,s.jsx)(n.code,{children:"1,2,3,4"})," to select a corner and ",(0,s.jsx)(n.code,{children:"[w,a,s,d]"})," to move ",(0,s.jsx)(n.code,{children:"[up,left,down,right]"})," the selected corner. Press ",(0,s.jsx)(n.code,{children:"k"})," to save change to file and ",(0,s.jsx)(n.code,{children:"ctrl-c"})," twice [in the terminal window] to exit program"]}),"\n",(0,s.jsx)(n.h4,{id:"output",children:"output"}),"\n",(0,s.jsxs)(n.p,{children:["the app will attempt sending the resulted scan to cityIO server. If successful, the following JSON format data will appear on the cityIO endpoint defined in ",(0,s.jsx)(n.code,{children:"settings.json"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{children:'\n{\n "grid": [\n [1, 0],\n [1, 0],\n [0, 0],\n [4, 0],\n [-1, -1],\n [-1, -1], // no type was found will return -1 as type and -1 as rotation\n ...\n ],\n\n ...\n other cityIO data\n ...\n}\n\n'})}),"\n",(0,s.jsx)(n.h3,{id:"cityscopyudp_listener",children:(0,s.jsx)(n.code,{children:"Cityscopy.udp_listener()"})}),"\n",(0,s.jsx)(n.h5,{id:"emulates-local-udp-server-listener",children:"emulates local UDP server listener"}),"\n",(0,s.jsxs)(n.p,{children:["simple helper method to emulate what a local UDP client might see if ",(0,s.jsx)(n.code,{children:"cityscopy"})," would send scan over localhost"]}),"\n",(0,s.jsx)(n.h2,{id:"errors",children:"Errors"}),"\n",(0,s.jsx)(n.p,{children:"OS, Python versions, openCV and peripheral devices such as webcams can sometimes cause issues. If you found and issue, please report it as a Github issue. Here're some encountered issues and their solutions:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:"Mac OSX High Sierra blocks multithreading"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["issue: ",(0,s.jsx)(n.code,{children:"objc[67570]: +[__NSPlaceholderDate initialize] may have been in progress in another thread when fork() was called."})]}),"\n",(0,s.jsxs)(n.li,{children:["solution: add to your ",(0,s.jsx)(n.code,{children:"$ .bash_profile"})," the line ",(0,s.jsx)(n.code,{children:"export OBJC_DISABLE_INITIALIZE_FORK_SAFETY=YES"}),". See more here: ",(0,s.jsx)(n.a,{href:"https://stackoverflow.com/questions/50168647/multiprocessing-causes-python-to-crash-and-gives-an-error-may-have-been-in-progr",children:"https://stackoverflow.com/questions/50168647/multiprocessing-causes-python-to-crash-and-gives-an-error-may-have-been-in-progr"})]}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:"Webcam crash on init, despite working on other apps"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["issue: camera is not configured in ",(0,s.jsx)(n.code,{children:"settings.json"})]}),"\n",(0,s.jsxs)(n.li,{children:["solution: make sure to test different ",(0,s.jsx)(n.code,{children:"camId"})," values. Your OS might put the camera after another device (2,3..)"]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsx)(n.h2,{id:"license",children:"License"}),"\n",(0,s.jsxs)(n.p,{children:["Please see ",(0,s.jsx)(n.code,{children:"LICENSE"})," file for more details.This tool may require libraries which are subject to own licensing."]}),"\n",(0,s.jsx)(n.h2,{id:"contribution",children:"Contribution"}),"\n",(0,s.jsx)(n.p,{children:"Please use GitHub Issues and PR interface for contributions."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.p,{children:["Maintained by ",(0,s.jsx)(n.a,{href:"http://arielnoyman.com",children:"Ariel Noyman"})]}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.a,{href:"https://github.com/CityScope/CS_Scanner_Python/graphs/contributors",children:"Repo contributors"})})]})}function h(e={}){const{wrapper:n}={...(0,t.R)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(d,{...e})}):d(e)}},8453:(e,n,i)=>{i.d(n,{R:()=>r,x:()=>c});var s=i(6540);const t={},o=s.createContext(t);function r(e){const n=s.useContext(o);return s.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function c(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:r(e.components),s.createElement(o.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/build/assets/js/8a98b319.b118f4c2.js b/build/assets/js/8a98b319.b118f4c2.js deleted file mode 100644 index 2d2c7505..00000000 --- a/build/assets/js/8a98b319.b118f4c2.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkcityscope_docs=self.webpackChunkcityscope_docs||[]).push([[898],{7781:t=>{t.exports=JSON.parse('{"title":"CityScopeJS","slug":"/category/cityscopejs","permalink":"/category/cityscopejs","navigation":{"previous":{"title":"Development on GitHub","permalink":"/intro/github"},"next":{"title":"Introduction","permalink":"/cityscopejs/Introduction"}}}')}}]); \ No newline at end of file diff --git a/build/assets/js/8fd40d43.b5ff2c54.js b/build/assets/js/8fd40d43.b5ff2c54.js deleted file mode 100644 index 1a06dbf6..00000000 --- a/build/assets/js/8fd40d43.b5ff2c54.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkcityscope_docs=self.webpackChunkcityscope_docs||[]).push([[402],{4358:(e,t,i)=>{i.r(t),i.d(t,{assets:()=>a,contentTitle:()=>r,default:()=>d,frontMatter:()=>n,metadata:()=>c,toc:()=>l});var s=i(4848),o=i(8453);const n={sidebar_position:2},r="System Architecture",c={id:"intro/system",title:"System Architecture",description:"CityScope is composed of a series of tools loosely connected to each other. The tools are developed in different languages and frameworks, and they communicate through a central server, CityIO.",source:"@site/docs/intro/system.md",sourceDirName:"intro",slug:"/intro/system",permalink:"/intro/system",draft:!1,unlisted:!1,editUrl:"https://github.com/CityScope/cityscope.github.io/docs/intro/system.md",tags:[],version:"current",sidebarPosition:2,frontMatter:{sidebar_position:2},sidebar:"sidebar",previous:{title:"Introduction",permalink:"/"},next:{title:"Development on GitHub",permalink:"/intro/github"}},a={},l=[{value:"CityScopeJS",id:"cityscopejs",level:2},{value:"Figure: CityScopeJS Architecture (Photo: Ariel Noyman)",id:"figure-cityscopejs-architecture-photo-ariel-noyman",level:6},{value:"Modules",id:"modules",level:2},{value:"CityScope Server (cityIO)",id:"cityscope-server-cityio",level:2},{value:"Tangible User Interfaces",id:"tangible-user-interfaces",level:2}];function h(e){const t={a:"a",h1:"h1",h2:"h2",h6:"h6",img:"img",li:"li",p:"p",ul:"ul",...(0,o.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(t.h1,{id:"system-architecture",children:"System Architecture"}),"\n",(0,s.jsx)(t.p,{children:"CityScope is composed of a series of tools loosely connected to each other. The tools are developed in different languages and frameworks, and they communicate through a central server, CityIO."}),"\n",(0,s.jsx)(t.h2,{id:"cityscopejs",children:"CityScopeJS"}),"\n",(0,s.jsx)(t.p,{children:"CityScopeJS is a modular, open-ended architecture for MIT CityScope project."}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsx)(t.li,{children:"User interface to interact with the CityScope projects"}),"\n",(0,s.jsx)(t.li,{children:"Uses CityIO Websockets to communicate with the server"}),"\n",(0,s.jsx)(t.li,{children:"New user experience and design for the CityScope projects"}),"\n"]}),"\n",(0,s.jsx)(t.p,{children:(0,s.jsx)(t.img,{alt:"CityScopeJS Architecture",src:i(9473).A+"",width:"4001",height:"1771"})}),"\n",(0,s.jsx)(t.h6,{id:"figure-cityscopejs-architecture-photo-ariel-noyman",children:"Figure: CityScopeJS Architecture (Photo: Ariel Noyman)"}),"\n",(0,s.jsxs)(t.p,{children:["CityScopeJS includes several other modules for building, testing and deploying an end-to-end CityScope platform. Each module is developed as a standalone part of the system with minimal dependency on others. Data flow between modules is done using ",(0,s.jsx)(t.a,{href:"https://cityio.media.mit.edu",children:"cityIO"}),", which operates between the different modules."]}),"\n",(0,s.jsx)(t.h2,{id:"modules",children:"Modules"}),"\n",(0,s.jsx)(t.p,{children:"Different analysis modules calculate various indicators on urban performance, such as noise, mobility, energy and others. These analysis modules are developed by experts in each evaluation field."}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsxs)(t.li,{children:["Urban Indicators module: ",(0,s.jsx)(t.a,{href:"https://github.com/CityScope/CS_Urban_Indicators",children:"https://github.com/CityScope/CS_Urban_Indicators"})]}),"\n",(0,s.jsxs)(t.li,{children:["A service providing mobility simulation, Agent Based Simulation, and aggregated mobility prediction for CityScope projects ",(0,s.jsx)(t.a,{href:"https://github.com/CityScope/CS_Mobility_Service",children:"https://github.com/CityScope/CS_Mobility_Service"})]}),"\n",(0,s.jsxs)(t.li,{children:["Noise Modeling for Grasbrook, Hamburg: ",(0,s.jsx)(t.a,{href:"https://github.com/CityScope/CSL_Hamburg_Noise",children:"https://github.com/CityScope/CSL_Hamburg_Noise"})]}),"\n",(0,s.jsxs)(t.li,{children:["Agent Based Modeling ",(0,s.jsx)(t.a,{href:"https://github.com/CityScope/CS_Simulation_GAMA",children:"https://github.com/CityScope/CS_Simulation_GAMA"})]}),"\n",(0,s.jsxs)(t.li,{children:["Traffic Simulation module using DLR SUMO ",(0,s.jsx)(t.a,{href:"https://github.com/CityScope/CS_SUMOscope",children:"https://github.com/CityScope/CS_SUMOscope"})]}),"\n"]}),"\n",(0,s.jsx)(t.h2,{id:"cityscope-server-cityio",children:"CityScope Server (cityIO)"}),"\n",(0,s.jsx)(t.p,{children:"CityIO is a server program that saves tables to have different software (visualization, simulation) read/write information. It exposes an API to serve JSON files representing table info."}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsx)(t.li,{children:"Enables the communication between the different components of the system."}),"\n",(0,s.jsx)(t.li,{children:"Saves the projects to access them seamlessly in all the components."}),"\n",(0,s.jsx)(t.li,{children:"Rebuilt to allow real-time communication, using WebSockets."}),"\n"]}),"\n",(0,s.jsxs)(t.p,{children:["See ",(0,s.jsx)(t.a,{href:"https://github.com/CityScope/CS_CityIO",children:"https://github.com/CityScope/CS_CityIO"})]}),"\n",(0,s.jsx)(t.h2,{id:"tangible-user-interfaces",children:"Tangible User Interfaces"}),"\n",(0,s.jsx)(t.p,{children:"CityScope also includes tangible user interfaces (TUIs) that allow users to interact with the system in a physical way. These interfaces are developed using the CityScopeJS platform."}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsxs)(t.li,{children:["CityScope Scanner: ",(0,s.jsx)(t.a,{href:"https://github.com/CityScope/CS_CityScoPy",children:"https://github.com/CityScope/CS_CityScoPy"})]}),"\n"]})]})}function d(e={}){const{wrapper:t}={...(0,o.R)(),...e.components};return t?(0,s.jsx)(t,{...e,children:(0,s.jsx)(h,{...e})}):h(e)}},9473:(e,t,i)=>{i.d(t,{A:()=>s});const s=i.p+"assets/images/CityScopeJS_arch-ed1917ce223b84765036b435c6877aba.jpg"},8453:(e,t,i)=>{i.d(t,{R:()=>r,x:()=>c});var s=i(6540);const o={},n=s.createContext(o);function r(e){const t=s.useContext(n);return s.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function c(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:r(e.components),s.createElement(n.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/build/assets/js/935f2afb.6c0f0a46.js b/build/assets/js/935f2afb.6c0f0a46.js deleted file mode 100644 index e3796633..00000000 --- a/build/assets/js/935f2afb.6c0f0a46.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkcityscope_docs=self.webpackChunkcityscope_docs||[]).push([[581],{5610:e=>{e.exports=JSON.parse('{"pluginId":"default","version":"current","label":"Next","banner":null,"badge":false,"noIndex":false,"className":"docs-version-current","isLast":true,"docsSidebars":{"sidebar":[{"type":"category","label":"CityScope","items":[{"type":"category","label":"Introduction","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"System Architecture","href":"/intro/system","docId":"intro/system","unlisted":false},{"type":"link","label":"Development on GitHub","href":"/intro/github","docId":"intro/github","unlisted":false}],"href":"/"},{"type":"category","label":"CityScopeJS","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Introduction","href":"/cityscopejs/Introduction","docId":"cityscopejs/Introduction","unlisted":false},{"type":"link","label":"Opening a project","href":"/cityscopejs/Opening a project","docId":"cityscopejs/Opening a project","unlisted":false},{"type":"link","label":"Project view","href":"/cityscopejs/Project view","docId":"cityscopejs/Project view","unlisted":false}],"href":"/category/cityscopejs"},{"type":"category","label":"Modules","collapsible":true,"collapsed":true,"items":[{"type":"category","label":"Brix","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Introduction","href":"/modules/brix/Introduction","docId":"modules/brix/Introduction","unlisted":false},{"type":"link","label":"DeckGL Modules","href":"/modules/brix/DeckGL Modules","docId":"modules/brix/DeckGL Modules","unlisted":false},{"type":"link","label":"Module example","href":"/modules/brix/Module example","docId":"modules/brix/Module example","unlisted":false}],"href":"/category/brix"},{"type":"category","label":"Core Modules","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Introduction","href":"/modules/Core Modules/Introduction","docId":"modules/Core Modules/Introduction","unlisted":false}]},{"type":"link","label":"Types System","href":"/modules/Types System","docId":"modules/Types System","unlisted":false}],"href":"/category/modules"},{"type":"category","label":"CityIO","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Introduction","href":"/cityio/Introduction","docId":"cityio/Introduction","unlisted":false},{"type":"link","label":"Architecture","href":"/cityio/Architecture","docId":"cityio/Architecture","unlisted":false},{"type":"link","label":"CityIO - UI","href":"/cityio/CityIO - UI","docId":"cityio/CityIO - UI","unlisted":false},{"type":"link","label":"CityIO - Module","href":"/cityio/CityIO - Module","docId":"cityio/CityIO - Module","unlisted":false},{"type":"link","label":"CityIO - Core","href":"/cityio/CityIO - Core","docId":"cityio/CityIO - Core","unlisted":false},{"type":"link","label":"API","href":"/cityio/API","docId":"cityio/API","unlisted":false}],"href":"/category/cityio"},{"type":"category","label":"Tangible User Interfaces","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"CityScoPy","href":"/tanglibe user interfaces/CityScoPy","docId":"tanglibe user interfaces/CityScoPy","unlisted":false},{"type":"link","label":"RoboScope","href":"/tanglibe user interfaces/RoboScope","docId":"tanglibe user interfaces/RoboScope","unlisted":false},{"type":"link","label":"CityScope Table Design","href":"/tanglibe user interfaces/CityScope Table Design","docId":"tanglibe user interfaces/CityScope Table Design","unlisted":false}],"href":"/category/tangible-user-interfaces"},{"type":"category","label":"Archive","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"[Archive] H3 Grid","href":"/archive/h3/","docId":"archive/h3/h3","unlisted":false},{"type":"category","label":"[Archive] The brix library","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Examples","href":"/archive/brix/Examples/","docId":"archive/brix/Examples/Examples","unlisted":false},{"type":"link","label":"GAMA","href":"/archive/brix/GAMA","docId":"archive/brix/GAMA","unlisted":false},{"type":"link","label":"Tutorials","href":"/archive/brix/Tutorial/","docId":"archive/brix/Tutorial/Tutorial","unlisted":false}],"href":"/archive/brix/"},{"type":"category","label":"[Archive] CityIO","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"API","href":"/archive/cityio/API","docId":"archive/cityio/API","unlisted":false},{"type":"link","label":"Build","href":"/archive/cityio/Build","docId":"archive/cityio/Build","unlisted":false},{"type":"link","label":"Internal_Note","href":"/archive/cityio/Internal_Note","docId":"archive/cityio/Internal_Note","unlisted":false}],"href":"/archive/cityio/"}],"href":"/category/archive"}],"collapsed":true,"collapsible":true}]},"docs":{"archive/brix/Brix":{"id":"archive/brix/Brix","title":"[Archive] The brix library","description":"Brix is a python library for CityScope modules which handles communication with City I/O.","sidebar":"sidebar"},"archive/brix/Examples/Examples":{"id":"archive/brix/Examples/Examples","title":"Examples","description":"Short examples","sidebar":"sidebar"},"archive/brix/GAMA":{"id":"archive/brix/GAMA","title":"GAMA","description":"Agent-Based Model developped in the CityScience group using Gama Platform and integrated in CityScope","sidebar":"sidebar"},"archive/brix/Tutorial/Tutorial":{"id":"archive/brix/Tutorial/Tutorial","title":"Tutorials","description":"This module also contains a set of other useful functions that integrate with brix.Handler and brix.Indicator.","sidebar":"sidebar"},"archive/cityio/API":{"id":"archive/cityio/API","title":"API","description":"Here is a list of APIs exposed for cityio.","sidebar":"sidebar"},"archive/cityio/Build":{"id":"archive/cityio/Build","title":"Build","description":"From version 3, the Dockerfile inside the repository can be used for","sidebar":"sidebar"},"archive/cityio/CityIO":{"id":"archive/cityio/CityIO","title":"[Archive] CityIO","description":"- data-hub (dump?) to have several clients work together","sidebar":"sidebar"},"archive/cityio/Internal_Note":{"id":"archive/cityio/Internal_Note","title":"Internal_Note","description":"this section is for internal maintenance only.","sidebar":"sidebar"},"archive/h3/h3":{"id":"archive/h3/h3","title":"[Archive] H3 Grid","description":"This documentation is under construction.","sidebar":"sidebar"},"cityio/API":{"id":"cityio/API","title":"API","description":"The CityIO HTTP API enables users to access and update information regarding the projects (grids).","sidebar":"sidebar"},"cityio/Architecture":{"id":"cityio/Architecture","title":"Architecture","description":"WebSockets: definition and use","sidebar":"sidebar"},"cityio/CityIO - Core":{"id":"cityio/CityIO - Core","title":"CityIO - Core","description":"The objective of this interface is to facilitate the integration of core modules into the CityScope network.","sidebar":"sidebar"},"cityio/CityIO - Module":{"id":"cityio/CityIO - Module","title":"CityIO - Module","description":"The aim of this interface is to enable user modules to access information about the grids created in CityIO, calculate Key Performance Indicators (KPIs), and then transmit them to the user interfaces.","sidebar":"sidebar"},"cityio/CityIO - UI":{"id":"cityio/CityIO - UI","title":"CityIO - UI","description":"The objective of this interface is to enable user interfaces to access information about the grids created in CityIO, as well as the Key Performance Indicators (KPIs) computed by the modules. Additionally, this interface will permit users to make changes to the grids.","sidebar":"sidebar"},"cityio/Introduction":{"id":"cityio/Introduction","title":"Introduction","description":"The purpose of this section is to outline the architecture and interfaces of CityIOWS, an updated version of CityIO that utilizes WebSockets for communication with modules and user interfaces.","sidebar":"sidebar"},"cityscopejs/Introduction":{"id":"cityscopejs/Introduction","title":"Introduction","description":"CityScope platform for the web","sidebar":"sidebar"},"cityscopejs/Opening a project":{"id":"cityscopejs/Opening a project","title":"Opening a project","description":"On the CityScopeJS landing page, there are two ways to access a project.","sidebar":"sidebar"},"cityscopejs/Project view":{"id":"cityscopejs/Project view","title":"Project view","description":"When you open a project, CityScopeJS will present you with the project view. This page aims to provide a workspace where you can manage your projects and visualize the outputs of modules. It consists of a navigation bar at the top of the screen, where you can click on different buttons to open several windows with various functionalities. The available options are:","sidebar":"sidebar"},"intro/github":{"id":"intro/github","title":"Development on GitHub","description":"CityScope is open-source software and is primarily hosted on GitHub. The organization structure is designed to facilitate the development and deployment of CityScope projects. The organization consists of two types of repositories: tools and cities.","sidebar":"sidebar"},"intro/intro":{"id":"intro/intro","title":"Introduction","description":"CityScope is a project conducted at the MIT Media Lab City Science group. It includes a slew of tangible and digital platforms dedicated to solving spatial design and urban planning challenges. The tools range from simulations that quantify the impact of disruptive interventions in cities to community engagement systems. We develop and deploy these tools around the world and maintain free and open-source community for the majority of our work.","sidebar":"sidebar"},"intro/system":{"id":"intro/system","title":"System Architecture","description":"CityScope is composed of a series of tools loosely connected to each other. The tools are developed in different languages and frameworks, and they communicate through a central server, CityIO.","sidebar":"sidebar"},"modules/brix/DeckGL Modules":{"id":"modules/brix/DeckGL Modules","title":"DeckGL Modules","description":"The main difference in using Brix WS compared to the previous version of Brix is the method of sending data to CityScope for visualization. The previous version of Brix allowed for various pre-defined visualizations, such as numeric with bars or graphs, heatmaps, or ABM, among others. While this was useful, it didn\'t offer enough flexibility for module makers to create complex visualizations with a variety of different elements. They were always constrained to using the same method to display data.","sidebar":"sidebar"},"modules/brix/Introduction":{"id":"modules/brix/Introduction","title":"Introduction","description":"This documentation is under construction. The content of the documentation may change without prior notice.","sidebar":"sidebar"},"modules/brix/Module example":{"id":"modules/brix/Module example","title":"Module example","description":"In this section, we present how to code an example DeckGL module on Brix WS that connects with a project in CityScopeJS and displays various visualizations.","sidebar":"sidebar"},"modules/Core Modules/Introduction":{"id":"modules/Core Modules/Introduction","title":"Introduction","description":"This documentation is under construction.","sidebar":"sidebar"},"modules/Types System":{"id":"modules/Types System","title":"Types System","description":"CityScope (CS) Types are the basic land-use units that can be combined and arranged to represent urban environments within the CityScope platform. CS Types are assigned to each cell within the grid that is overlaid over the urban area of enquiry. The grid provides unified segmentation, scale and a level of abstraction that can be easily manipulated by users. Each cell within the grid can either be fixed or dynamic, depending on project limits; fixed cells within a grid are not intended to be changeable by users; dynamic cells are intended for manipulation to interact with the CityScope platform. Interactions take place as users manipulate Types within the project area.","sidebar":"sidebar"},"tanglibe user interfaces/CityScope Table Design":{"id":"tanglibe user interfaces/CityScope Table Design","title":"CityScope Table Design","description":"CityScope Hardware","sidebar":"sidebar"},"tanglibe user interfaces/CityScoPy":{"id":"tanglibe user interfaces/CityScoPy","title":"CityScoPy","description":"Download latest release","sidebar":"sidebar"},"tanglibe user interfaces/RoboScope":{"id":"tanglibe user interfaces/RoboScope","title":"RoboScope","description":"Work in progress!","sidebar":"sidebar"}}}')}}]); \ No newline at end of file diff --git a/build/assets/js/9576d6be.692a8dec.js b/build/assets/js/9576d6be.692a8dec.js deleted file mode 100644 index 525dcfb4..00000000 --- a/build/assets/js/9576d6be.692a8dec.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkcityscope_docs=self.webpackChunkcityscope_docs||[]).push([[379],{1452:(e,i,t)=>{t.r(i),t.d(i,{assets:()=>d,contentTitle:()=>s,default:()=>h,frontMatter:()=>a,metadata:()=>r,toc:()=>c});var n=t(4848),l=t(8453);const a={id:"CityIO"},s="[Archive] CityIO",r={id:"archive/cityio/CityIO",title:"[Archive] CityIO",description:"- data-hub (dump?) to have several clients work together",source:"@site/docs/archive/cityio/cityio.md",sourceDirName:"archive/cityio",slug:"/archive/cityio/",permalink:"/archive/cityio/",draft:!1,unlisted:!1,editUrl:"https://github.com/CityScope/cityscope.github.io/docs/archive/cityio/cityio.md",tags:[],version:"current",frontMatter:{id:"CityIO"},sidebar:"sidebar",previous:{title:"Tutorials",permalink:"/archive/brix/Tutorial/"},next:{title:"API",permalink:"/archive/cityio/API"}},d={},c=[{value:"welcome page with links to available tables",id:"welcome-page-with-links-to-available-tables",level:2},{value:"dev endpoints",id:"dev-endpoints",level:2},{value:"list available tables",id:"list-available-tables",level:2},{value:"get table data",id:"get-table-data",level:2},{value:"post table data",id:"post-table-data",level:2},{value:"delete table data",id:"delete-table-data",level:2},{value:"delete module data",id:"delete-module-data",level:2}];function o(e){const i={a:"a",code:"code",h1:"h1",h2:"h2",li:"li",ol:"ol",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,l.R)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(i.h1,{id:"archive-cityio",children:"[Archive] CityIO"}),"\n",(0,n.jsxs)(i.ul,{children:["\n",(0,n.jsxs)(i.li,{children:["\n",(0,n.jsx)(i.p,{children:"data-hub (dump?) to have several clients work together"}),"\n"]}),"\n",(0,n.jsxs)(i.li,{children:["\n",(0,n.jsx)(i.p,{children:"(lower case)architecture to enforce collaboration within network"}),"\n"]}),"\n",(0,n.jsxs)(i.li,{children:["\n",(0,n.jsx)(i.p,{children:"server program"}),"\n",(0,n.jsxs)(i.ul,{children:["\n",(0,n.jsx)(i.li,{children:"saves tables to have different software (visualization, simulation) read/write information"}),"\n",(0,n.jsx)(i.li,{children:"exposes a REST API (=url's) to serve json files, representiving table info"}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,n.jsx)(i.h1,{id:"resources",children:"Resources"}),"\n",(0,n.jsxs)(i.ul,{children:["\n",(0,n.jsxs)(i.li,{children:["\n",(0,n.jsx)(i.p,{children:(0,n.jsx)(i.a,{href:"https://github.com/mitmedialab/cityioserver/wiki/API",children:"API"})}),"\n",(0,n.jsx)(i.p,{children:"shows the endpoint URLs for clients to operate various request through HTTP. (ex. Getting a table data, Updating table data... etc.)"}),"\n"]}),"\n",(0,n.jsxs)(i.li,{children:["\n",(0,n.jsx)(i.p,{children:(0,n.jsx)(i.a,{href:"https://github.com/mitmedialab/cityioserver/wiki/Client-Examples",children:"Client Examples"})}),"\n",(0,n.jsx)(i.p,{children:"shows hello world examples from each client in different frameworks (GAMA, Grasshopper, Unity ... etc)"}),"\n"]}),"\n"]}),"\n",(0,n.jsxs)(i.h2,{id:"welcome-page-with-links-to-available-tables",children:[(0,n.jsx)(i.a,{href:"https://cityio.media.mit.edu",children:"welcome page"})," with links to available tables"]}),"\n",(0,n.jsx)(i.h1,{id:"api",children:"API"}),"\n",(0,n.jsxs)(i.p,{children:["[baseurl] ",(0,n.jsx)(i.a,{href:"https://cityio.media.mit.edu",children:"https://cityio.media.mit.edu"})]}),"\n",(0,n.jsx)(i.h2,{id:"dev-endpoints",children:"dev endpoints"}),"\n",(0,n.jsx)(i.p,{children:"endpoints in development will have /dev before the api"}),"\n",(0,n.jsx)(i.p,{children:(0,n.jsx)(i.code,{children:"https://cityio.media.mit.edu/dev/api/table/:tableName"})}),"\n",(0,n.jsx)(i.h2,{id:"list-available-tables",children:"list available tables"}),"\n",(0,n.jsx)(i.pre,{children:(0,n.jsx)(i.code,{children:"[GET] https://cityio.media.mit.edu/api/tables/list\n"})}),"\n",(0,n.jsx)(i.h2,{id:"get-table-data",children:"get table data"}),"\n",(0,n.jsx)(i.pre,{children:(0,n.jsx)(i.code,{children:"[GET] https://cityio.media.mit.edu/api/table/:tableName\n"})}),"\n",(0,n.jsx)(i.p,{children:"params:"}),"\n",(0,n.jsx)(i.p,{children:"tableName : name of table"}),"\n",(0,n.jsx)(i.p,{children:"format: json/application"}),"\n",(0,n.jsxs)(i.p,{children:[(0,n.jsx)(i.a,{href:"https://cityio.media.mit.edu/table/:tableName",children:"https://cityio.media.mit.edu/table/:tableName"})," is ",(0,n.jsx)(i.strong,{children:"deprecated"})]}),"\n",(0,n.jsx)(i.h2,{id:"post-table-data",children:"post table data"}),"\n",(0,n.jsx)(i.pre,{children:(0,n.jsx)(i.code,{children:"[POST] https://cityio.media.mit.edu/api/table/update/:tableName\n"})}),"\n",(0,n.jsx)(i.p,{children:"params:"}),"\n",(0,n.jsx)(i.p,{children:"tableName: name of table"}),"\n",(0,n.jsx)(i.p,{children:"body"}),"\n",(0,n.jsxs)(i.p,{children:[(0,n.jsx)(i.code,{children:"text/plain"})," or ",(0,n.jsx)(i.code,{children:"json/application"})," format accepted."]}),"\n",(0,n.jsxs)(i.p,{children:["text will be converted to json internally, will throw an error if it's not\nvalid json. Server welcomes any valid json, but only things inside ",(0,n.jsx)(i.code,{children:"objects"})," and ",(0,n.jsx)(i.code,{children:"grid"})," objects\nwill be used for comparison to detect uniqueness."]}),"\n",(0,n.jsxs)(i.p,{children:[(0,n.jsx)(i.a,{href:"https://cityio.media.mit.edu/table/update/:tableName",children:"https://cityio.media.mit.edu/table/update/:tableName"})," is ",(0,n.jsx)(i.strong,{children:"deprecated"})]}),"\n",(0,n.jsx)(i.h2,{id:"delete-table-data",children:"delete table data"}),"\n",(0,n.jsx)(i.pre,{children:(0,n.jsx)(i.code,{children:"[GET] https://cityio.media.mit.edu/api/table/clear/:tablename\n"})}),"\n",(0,n.jsx)(i.p,{children:"params:"}),"\n",(0,n.jsx)(i.p,{children:"tableName: name of table"}),"\n",(0,n.jsx)(i.p,{children:(0,n.jsx)(i.strong,{children:"be careful! will delete all data from memory cache and DB"})}),"\n",(0,n.jsx)(i.h2,{id:"delete-module-data",children:"delete module data"}),"\n",(0,n.jsx)(i.pre,{children:(0,n.jsx)(i.code,{children:"[GET] https://cityio.media.mit.edu/api/table/clear/:tablename/:modulename\n"})}),"\n",(0,n.jsx)(i.p,{children:"params:"}),"\n",(0,n.jsx)(i.p,{children:"tablename: name of table\nmodulename: name of module"}),"\n",(0,n.jsx)(i.p,{children:(0,n.jsx)(i.strong,{children:"be careful! will delete all data from memory cache and DB"})}),"\n",(0,n.jsx)(i.h1,{id:"how-to-run-it-locally",children:"How to run it Locally"}),"\n",(0,n.jsx)(i.p,{children:"The current version is developed using rust."}),"\n",(0,n.jsxs)(i.ol,{children:["\n",(0,n.jsxs)(i.li,{children:["\n",(0,n.jsxs)(i.p,{children:["install ",(0,n.jsx)(i.a,{href:"https://www.rust-lang.org/tools/install",children:"rust"})]}),"\n"]}),"\n",(0,n.jsxs)(i.li,{children:["\n",(0,n.jsx)(i.p,{children:"clone this repository"}),"\n"]}),"\n",(0,n.jsxs)(i.li,{children:["\n",(0,n.jsxs)(i.p,{children:["clone ",(0,n.jsx)(i.a,{href:"https://github.com/yasushisakai/sha256",children:"sha256 repo"})]}),"\n",(0,n.jsx)(i.p,{children:"this repo should live in the same directory as the main repo"}),"\n"]}),"\n",(0,n.jsxs)(i.li,{children:["\n",(0,n.jsx)(i.p,{children:"get db credentials from yasushi, save it in the root of this repo"}),"\n"]}),"\n",(0,n.jsxs)(i.li,{children:["\n",(0,n.jsx)(i.p,{children:(0,n.jsx)(i.code,{children:"cargo run --bin server --release"})}),"\n"]}),"\n"]}),"\n",(0,n.jsx)(i.p,{children:"this will compile the program and run it in port 8080"}),"\n",(0,n.jsx)(i.p,{children:"the server will now run locally"})]})}function h(e={}){const{wrapper:i}={...(0,l.R)(),...e.components};return i?(0,n.jsx)(i,{...e,children:(0,n.jsx)(o,{...e})}):o(e)}},8453:(e,i,t)=>{t.d(i,{R:()=>s,x:()=>r});var n=t(6540);const l={},a=n.createContext(l);function s(e){const i=n.useContext(a);return n.useMemo((function(){return"function"==typeof e?e(i):{...i,...e}}),[i,e])}function r(e){let i;return i=e.disableParentContext?"function"==typeof e.components?e.components(l):e.components||l:s(e.components),n.createElement(a.Provider,{value:i},e.children)}}}]); \ No newline at end of file diff --git a/build/assets/js/969018c5.822bc7a6.js b/build/assets/js/969018c5.822bc7a6.js deleted file mode 100644 index 8248a630..00000000 --- a/build/assets/js/969018c5.822bc7a6.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkcityscope_docs=self.webpackChunkcityscope_docs||[]).push([[890],{5622:e=>{e.exports=JSON.parse('{"title":"Modules","description":"CityScope Modules","slug":"/category/modules","permalink":"/category/modules","navigation":{"previous":{"title":"Project view","permalink":"/cityscopejs/Project view"},"next":{"title":"Brix","permalink":"/category/brix"}}}')}}]); \ No newline at end of file diff --git a/build/assets/js/a38df249.88412aeb.js b/build/assets/js/a38df249.88412aeb.js deleted file mode 100644 index 29020306..00000000 --- a/build/assets/js/a38df249.88412aeb.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkcityscope_docs=self.webpackChunkcityscope_docs||[]).push([[946],{3833:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>p,contentTitle:()=>i,default:()=>l,frontMatter:()=>s,metadata:()=>r,toc:()=>a});var o=n(4848),c=n(8453);const s={sidebar_position:2},i=void 0,r={id:"cityscopejs/Opening a project",title:"Opening a project",description:"On the CityScopeJS landing page, there are two ways to access a project.",source:"@site/docs/cityscopejs/Opening a project.md",sourceDirName:"cityscopejs",slug:"/cityscopejs/Opening a project",permalink:"/cityscopejs/Opening a project",draft:!1,unlisted:!1,editUrl:"https://github.com/CityScope/cityscope.github.io/docs/cityscopejs/Opening a project.md",tags:[],version:"current",sidebarPosition:2,frontMatter:{sidebar_position:2},sidebar:"sidebar",previous:{title:"Introduction",permalink:"/cityscopejs/Introduction"},next:{title:"Project view",permalink:"/cityscopejs/Project view"}},p={},a=[];function d(e){const t={img:"img",li:"li",ol:"ol",p:"p",...(0,c.R)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(t.p,{children:"On the CityScopeJS landing page, there are two ways to access a project."}),"\n",(0,o.jsxs)(t.ol,{children:["\n",(0,o.jsx)(t.li,{children:"Using the 'Search CityScope Project' text input, users can search for and access the desired project."}),"\n",(0,o.jsx)(t.li,{children:"Users can also access a project by utilizing the globe map and selecting a project by clicking on its corresponding icon."}),"\n"]}),"\n",(0,o.jsx)(t.p,{children:(0,o.jsx)(t.img,{alt:"CityScopeJS How to Open a Project",src:n(3865).A+"",width:"1162",height:"848"})})]})}function l(e={}){const{wrapper:t}={...(0,c.R)(),...e.components};return t?(0,o.jsx)(t,{...e,children:(0,o.jsx)(d,{...e})}):d(e)}},3865:(e,t,n)=>{n.d(t,{A:()=>o});const o=n.p+"assets/images/opening-project-a1235d80f08185e6294ea8bf78916462.png"},8453:(e,t,n)=>{n.d(t,{R:()=>i,x:()=>r});var o=n(6540);const c={},s=o.createContext(c);function i(e){const t=o.useContext(s);return o.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function r(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(c):e.components||c:i(e.components),o.createElement(s.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/build/assets/js/a7bd4aaa.feee8c2a.js b/build/assets/js/a7bd4aaa.feee8c2a.js deleted file mode 100644 index 2c9c2332..00000000 --- a/build/assets/js/a7bd4aaa.feee8c2a.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkcityscope_docs=self.webpackChunkcityscope_docs||[]).push([[98],{4532:(n,e,s)=>{s.r(e),s.d(e,{default:()=>d});s(6540);var o=s(1003),r=s(2967),t=s(2252),c=s(2831),i=s(1463),u=s(4848);function a(n){const{version:e}=n;return(0,u.jsxs)(u.Fragment,{children:[(0,u.jsx)(i.A,{version:e.version,tag:(0,r.tU)(e.pluginId,e.version)}),(0,u.jsx)(o.be,{children:e.noIndex&&(0,u.jsx)("meta",{name:"robots",content:"noindex, nofollow"})})]})}function l(n){const{version:e,route:s}=n;return(0,u.jsx)(o.e3,{className:e.className,children:(0,u.jsx)(t.n,{version:e,children:(0,c.v)(s.routes)})})}function d(n){return(0,u.jsxs)(u.Fragment,{children:[(0,u.jsx)(a,{...n}),(0,u.jsx)(l,{...n})]})}}}]); \ No newline at end of file diff --git a/build/assets/js/a94703ab.e215fd4d.js b/build/assets/js/a94703ab.e215fd4d.js deleted file mode 100644 index 3c264dbc..00000000 --- a/build/assets/js/a94703ab.e215fd4d.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkcityscope_docs=self.webpackChunkcityscope_docs||[]).push([[48],{2559:(e,t,n)=>{n.r(t),n.d(t,{default:()=>be});var a=n(6540),o=n(4164),i=n(1003),s=n(7559),l=n(1754),r=n(6588),c=n(1312),d=n(3104),u=n(5062);const m={backToTopButton:"backToTopButton_sjWU",backToTopButtonShow:"backToTopButtonShow_xfvO"};var b=n(4848);function h(){const{shown:e,scrollToTop:t}=function(e){let{threshold:t}=e;const[n,o]=(0,a.useState)(!1),i=(0,a.useRef)(!1),{startScroll:s,cancelScroll:l}=(0,d.gk)();return(0,d.Mq)(((e,n)=>{let{scrollY:a}=e;const s=null==n?void 0:n.scrollY;s&&(i.current?i.current=!1:a>=s?(l(),o(!1)):a<t?o(!1):a+window.innerHeight<document.documentElement.scrollHeight&&o(!0))})),(0,u.$)((e=>{e.location.hash&&(i.current=!0,o(!1))})),{shown:n,scrollToTop:()=>s(0)}}({threshold:300});return(0,b.jsx)("button",{"aria-label":(0,c.T)({id:"theme.BackToTopButton.buttonAriaLabel",message:"Scroll back to top",description:"The ARIA label for the back to top button"}),className:(0,o.A)("clean-btn",s.G.common.backToTopButton,m.backToTopButton,e&&m.backToTopButtonShow),type:"button",onClick:t})}var p=n(3109),x=n(6347),j=n(4581),f=n(6342),v=n(3465);function _(e){return(0,b.jsx)("svg",{width:"20",height:"20","aria-hidden":"true",...e,children:(0,b.jsxs)("g",{fill:"#7a7a7a",children:[(0,b.jsx)("path",{d:"M9.992 10.023c0 .2-.062.399-.172.547l-4.996 7.492a.982.982 0 01-.828.454H1c-.55 0-1-.453-1-1 0-.2.059-.403.168-.551l4.629-6.942L.168 3.078A.939.939 0 010 2.528c0-.548.45-.997 1-.997h2.996c.352 0 .649.18.828.45L9.82 9.472c.11.148.172.347.172.55zm0 0"}),(0,b.jsx)("path",{d:"M19.98 10.023c0 .2-.058.399-.168.547l-4.996 7.492a.987.987 0 01-.828.454h-3c-.547 0-.996-.453-.996-1 0-.2.059-.403.168-.551l4.625-6.942-4.625-6.945a.939.939 0 01-.168-.55 1 1 0 01.996-.997h3c.348 0 .649.18.828.45l4.996 7.492c.11.148.168.347.168.55zm0 0"})]})})}const A={collapseSidebarButton:"collapseSidebarButton_PEFL",collapseSidebarButtonIcon:"collapseSidebarButtonIcon_kv0_"};function g(e){let{onClick:t}=e;return(0,b.jsx)("button",{type:"button",title:(0,c.T)({id:"theme.docs.sidebar.collapseButtonTitle",message:"Collapse sidebar",description:"The title attribute for collapse button of doc sidebar"}),"aria-label":(0,c.T)({id:"theme.docs.sidebar.collapseButtonAriaLabel",message:"Collapse sidebar",description:"The title attribute for collapse button of doc sidebar"}),className:(0,o.A)("button button--secondary button--outline",A.collapseSidebarButton),onClick:t,children:(0,b.jsx)(_,{className:A.collapseSidebarButtonIcon})})}var k=n(5041),C=n(9532);const S=Symbol("EmptyContext"),T=a.createContext(S);function N(e){let{children:t}=e;const[n,o]=(0,a.useState)(null),i=(0,a.useMemo)((()=>({expandedItem:n,setExpandedItem:o})),[n]);return(0,b.jsx)(T.Provider,{value:i,children:t})}var I=n(1422),B=n(9169),y=n(8774),w=n(2303);function L(e){let{collapsed:t,categoryLabel:n,onClick:a}=e;return(0,b.jsx)("button",{"aria-label":t?(0,c.T)({id:"theme.DocSidebarItem.expandCategoryAriaLabel",message:"Expand sidebar category '{label}'",description:"The ARIA label to expand the sidebar category"},{label:n}):(0,c.T)({id:"theme.DocSidebarItem.collapseCategoryAriaLabel",message:"Collapse sidebar category '{label}'",description:"The ARIA label to collapse the sidebar category"},{label:n}),"aria-expanded":!t,type:"button",className:"clean-btn menu__caret",onClick:a})}function E(e){let{item:t,onItemClick:n,activePath:i,level:r,index:c,...d}=e;const{items:u,label:m,collapsible:h,className:p,href:x}=t,{docs:{sidebar:{autoCollapseCategories:j}}}=(0,f.p)(),v=function(e){const t=(0,w.A)();return(0,a.useMemo)((()=>e.href&&!e.linkUnlisted?e.href:!t&&e.collapsible?(0,l.Nr)(e):void 0),[e,t])}(t),_=(0,l.w8)(t,i),A=(0,B.ys)(x,i),{collapsed:g,setCollapsed:k}=(0,I.u)({initialState:()=>!!h&&(!_&&t.collapsed)}),{expandedItem:N,setExpandedItem:E}=function(){const e=(0,a.useContext)(T);if(e===S)throw new C.dV("DocSidebarItemsExpandedStateProvider");return e}(),M=function(e){void 0===e&&(e=!g),E(e?null:c),k(e)};return function(e){let{isActive:t,collapsed:n,updateCollapsed:o}=e;const i=(0,C.ZC)(t);(0,a.useEffect)((()=>{t&&!i&&n&&o(!1)}),[t,i,n,o])}({isActive:_,collapsed:g,updateCollapsed:M}),(0,a.useEffect)((()=>{h&&null!=N&&N!==c&&j&&k(!0)}),[h,N,c,k,j]),(0,b.jsxs)("li",{className:(0,o.A)(s.G.docs.docSidebarItemCategory,s.G.docs.docSidebarItemCategoryLevel(r),"menu__list-item",{"menu__list-item--collapsed":g},p),children:[(0,b.jsxs)("div",{className:(0,o.A)("menu__list-item-collapsible",{"menu__list-item-collapsible--active":A}),children:[(0,b.jsx)(y.A,{className:(0,o.A)("menu__link",{"menu__link--sublist":h,"menu__link--sublist-caret":!x&&h,"menu__link--active":_}),onClick:h?e=>{null==n||n(t),x?M(!1):(e.preventDefault(),M())}:()=>{null==n||n(t)},"aria-current":A?"page":void 0,role:h&&!x?"button":void 0,"aria-expanded":h&&!x?!g:void 0,href:h?null!=v?v:"#":v,...d,children:m}),x&&h&&(0,b.jsx)(L,{collapsed:g,categoryLabel:m,onClick:e=>{e.preventDefault(),M()}})]}),(0,b.jsx)(I.N,{lazy:!0,as:"ul",className:"menu__list",collapsed:g,children:(0,b.jsx)(U,{items:u,tabIndex:g?-1:0,onItemClick:n,activePath:i,level:r+1})})]})}var M=n(6654),H=n(3186);const G={menuExternalLink:"menuExternalLink_NmtK"};function W(e){let{item:t,onItemClick:n,activePath:a,level:i,index:r,...c}=e;const{href:d,label:u,className:m,autoAddBaseUrl:h}=t,p=(0,l.w8)(t,a),x=(0,M.A)(d);return(0,b.jsx)("li",{className:(0,o.A)(s.G.docs.docSidebarItemLink,s.G.docs.docSidebarItemLinkLevel(i),"menu__list-item",m),children:(0,b.jsxs)(y.A,{className:(0,o.A)("menu__link",!x&&G.menuExternalLink,{"menu__link--active":p}),autoAddBaseUrl:h,"aria-current":p?"page":void 0,to:d,...x&&{onClick:n?()=>n(t):void 0},...c,children:[u,!x&&(0,b.jsx)(H.A,{})]})},u)}const P={menuHtmlItem:"menuHtmlItem_M9Kj"};function R(e){let{item:t,level:n,index:a}=e;const{value:i,defaultStyle:l,className:r}=t;return(0,b.jsx)("li",{className:(0,o.A)(s.G.docs.docSidebarItemLink,s.G.docs.docSidebarItemLinkLevel(n),l&&[P.menuHtmlItem,"menu__list-item"],r),dangerouslySetInnerHTML:{__html:i}},a)}function D(e){let{item:t,...n}=e;switch(t.type){case"category":return(0,b.jsx)(E,{item:t,...n});case"html":return(0,b.jsx)(R,{item:t,...n});default:return(0,b.jsx)(W,{item:t,...n})}}function F(e){let{items:t,...n}=e;const a=(0,l.Y)(t,n.activePath);return(0,b.jsx)(N,{children:a.map(((e,t)=>(0,b.jsx)(D,{item:e,index:t,...n},t)))})}const U=(0,a.memo)(F),V={menu:"menu_SIkG",menuWithAnnouncementBar:"menuWithAnnouncementBar_GW3s"};function Y(e){let{path:t,sidebar:n,className:i}=e;const l=function(){const{isActive:e}=(0,k.Mj)(),[t,n]=(0,a.useState)(e);return(0,d.Mq)((t=>{let{scrollY:a}=t;e&&n(0===a)}),[e]),e&&t}();return(0,b.jsx)("nav",{"aria-label":(0,c.T)({id:"theme.docs.sidebar.navAriaLabel",message:"Docs sidebar",description:"The ARIA label for the sidebar navigation"}),className:(0,o.A)("menu thin-scrollbar",V.menu,l&&V.menuWithAnnouncementBar,i),children:(0,b.jsx)("ul",{className:(0,o.A)(s.G.docs.docSidebarMenu,"menu__list"),children:(0,b.jsx)(U,{items:n,activePath:t,level:1})})})}const K="sidebar_njMd",z="sidebarWithHideableNavbar_wUlq",q="sidebarHidden_VK0M",O="sidebarLogo_isFc";function J(e){let{path:t,sidebar:n,onCollapse:a,isHidden:i}=e;const{navbar:{hideOnScroll:s},docs:{sidebar:{hideable:l}}}=(0,f.p)();return(0,b.jsxs)("div",{className:(0,o.A)(K,s&&z,i&&q),children:[s&&(0,b.jsx)(v.A,{tabIndex:-1,className:O}),(0,b.jsx)(Y,{path:t,sidebar:n}),l&&(0,b.jsx)(g,{onClick:a})]})}const Q=a.memo(J);var X=n(5600),Z=n(9876);const $=e=>{let{sidebar:t,path:n}=e;const a=(0,Z.M)();return(0,b.jsx)("ul",{className:(0,o.A)(s.G.docs.docSidebarMenu,"menu__list"),children:(0,b.jsx)(U,{items:t,activePath:n,onItemClick:e=>{"category"===e.type&&e.href&&a.toggle(),"link"===e.type&&a.toggle()},level:1})})};function ee(e){return(0,b.jsx)(X.GX,{component:$,props:e})}const te=a.memo(ee);function ne(e){const t=(0,j.l)(),n="desktop"===t||"ssr"===t,a="mobile"===t;return(0,b.jsxs)(b.Fragment,{children:[n&&(0,b.jsx)(Q,{...e}),a&&(0,b.jsx)(te,{...e})]})}const ae={expandButton:"expandButton_TmdG",expandButtonIcon:"expandButtonIcon_i1dp"};function oe(e){let{toggleSidebar:t}=e;return(0,b.jsx)("div",{className:ae.expandButton,title:(0,c.T)({id:"theme.docs.sidebar.expandButtonTitle",message:"Expand sidebar",description:"The ARIA label and title attribute for expand button of doc sidebar"}),"aria-label":(0,c.T)({id:"theme.docs.sidebar.expandButtonAriaLabel",message:"Expand sidebar",description:"The ARIA label and title attribute for expand button of doc sidebar"}),tabIndex:0,role:"button",onKeyDown:t,onClick:t,children:(0,b.jsx)(_,{className:ae.expandButtonIcon})})}const ie={docSidebarContainer:"docSidebarContainer_YfHR",docSidebarContainerHidden:"docSidebarContainerHidden_DPk8",sidebarViewport:"sidebarViewport_aRkj"};function se(e){var t;let{children:n}=e;const o=(0,r.t)();return(0,b.jsx)(a.Fragment,{children:n},null!=(t=null==o?void 0:o.name)?t:"noSidebar")}function le(e){let{sidebar:t,hiddenSidebarContainer:n,setHiddenSidebarContainer:i}=e;const{pathname:l}=(0,x.zy)(),[r,c]=(0,a.useState)(!1),d=(0,a.useCallback)((()=>{r&&c(!1),!r&&(0,p.O)()&&c(!0),i((e=>!e))}),[i,r]);return(0,b.jsx)("aside",{className:(0,o.A)(s.G.docs.docSidebarContainer,ie.docSidebarContainer,n&&ie.docSidebarContainerHidden),onTransitionEnd:e=>{e.currentTarget.classList.contains(ie.docSidebarContainer)&&n&&c(!0)},children:(0,b.jsx)(se,{children:(0,b.jsxs)("div",{className:(0,o.A)(ie.sidebarViewport,r&&ie.sidebarViewportHidden),children:[(0,b.jsx)(ne,{sidebar:t,path:l,onCollapse:d,isHidden:r}),r&&(0,b.jsx)(oe,{toggleSidebar:d})]})})})}const re={docMainContainer:"docMainContainer_TBSr",docMainContainerEnhanced:"docMainContainerEnhanced_lQrH",docItemWrapperEnhanced:"docItemWrapperEnhanced_JWYK"};function ce(e){let{hiddenSidebarContainer:t,children:n}=e;const a=(0,r.t)();return(0,b.jsx)("main",{className:(0,o.A)(re.docMainContainer,(t||!a)&&re.docMainContainerEnhanced),children:(0,b.jsx)("div",{className:(0,o.A)("container padding-top--md padding-bottom--lg",re.docItemWrapper,t&&re.docItemWrapperEnhanced),children:n})})}const de={docRoot:"docRoot_UBD9",docsWrapper:"docsWrapper_hBAB"};function ue(e){let{children:t}=e;const n=(0,r.t)(),[o,i]=(0,a.useState)(!1);return(0,b.jsxs)("div",{className:de.docsWrapper,children:[(0,b.jsx)(h,{}),(0,b.jsxs)("div",{className:de.docRoot,children:[n&&(0,b.jsx)(le,{sidebar:n.items,hiddenSidebarContainer:o,setHiddenSidebarContainer:i}),(0,b.jsx)(ce,{hiddenSidebarContainer:o,children:t})]})]})}var me=n(3363);function be(e){const t=(0,l.B5)(e);if(!t)return(0,b.jsx)(me.A,{});const{docElement:n,sidebarName:a,sidebarItems:c}=t;return(0,b.jsx)(i.e3,{className:(0,o.A)(s.G.page.docsDocPage),children:(0,b.jsx)(r.V,{name:a,items:c,children:(0,b.jsx)(ue,{children:n})})})}},3363:(e,t,n)=>{n.d(t,{A:()=>l});n(6540);var a=n(4164),o=n(1312),i=n(1107),s=n(4848);function l(e){let{className:t}=e;return(0,s.jsx)("main",{className:(0,a.A)("container margin-vert--xl",t),children:(0,s.jsx)("div",{className:"row",children:(0,s.jsxs)("div",{className:"col col--6 col--offset-3",children:[(0,s.jsx)(i.A,{as:"h1",className:"hero__title",children:(0,s.jsx)(o.A,{id:"theme.NotFound.title",description:"The title of the 404 page",children:"Page Not Found"})}),(0,s.jsx)("p",{children:(0,s.jsx)(o.A,{id:"theme.NotFound.p1",description:"The first paragraph of the 404 page",children:"We could not find what you were looking for."})}),(0,s.jsx)("p",{children:(0,s.jsx)(o.A,{id:"theme.NotFound.p2",description:"The 2nd paragraph of the 404 page",children:"Please contact the owner of the site that linked you to the original URL and let them know their link is broken."})})]})})})}}}]); \ No newline at end of file diff --git a/build/assets/js/b632e823.64294f65.js b/build/assets/js/b632e823.64294f65.js deleted file mode 100644 index b999fd94..00000000 --- a/build/assets/js/b632e823.64294f65.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkcityscope_docs=self.webpackChunkcityscope_docs||[]).push([[666],{9931:(e,t,o)=>{o.r(t),o.d(t,{assets:()=>d,contentTitle:()=>r,default:()=>a,frontMatter:()=>s,metadata:()=>c,toc:()=>u});var n=o(4848),i=o(8453);const s={sidebar_position:1},r="Introduction",c={id:"modules/Core Modules/Introduction",title:"Introduction",description:"This documentation is under construction.",source:"@site/docs/modules/Core Modules/Introduction.md",sourceDirName:"modules/Core Modules",slug:"/modules/Core Modules/Introduction",permalink:"/modules/Core Modules/Introduction",draft:!1,unlisted:!1,editUrl:"https://github.com/CityScope/cityscope.github.io/docs/modules/Core Modules/Introduction.md",tags:[],version:"current",sidebarPosition:1,frontMatter:{sidebar_position:1},sidebar:"sidebar",previous:{title:"Module example",permalink:"/modules/brix/Module example"},next:{title:"Types System",permalink:"/modules/Types System"}},d={},u=[];function l(e){const t={admonition:"admonition",h1:"h1",p:"p",...(0,i.R)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(t.h1,{id:"introduction",children:"Introduction"}),"\n",(0,n.jsx)(t.admonition,{title:"Warning",type:"warning",children:(0,n.jsx)(t.p,{children:"This documentation is under construction."})})]})}function a(e={}){const{wrapper:t}={...(0,i.R)(),...e.components};return t?(0,n.jsx)(t,{...e,children:(0,n.jsx)(l,{...e})}):l(e)}},8453:(e,t,o)=>{o.d(t,{R:()=>r,x:()=>c});var n=o(6540);const i={},s=n.createContext(i);function r(e){const t=n.useContext(s);return n.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function c(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:r(e.components),n.createElement(s.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/build/assets/js/b87b04f0.d73d630a.js b/build/assets/js/b87b04f0.d73d630a.js deleted file mode 100644 index 0e87e502..00000000 --- a/build/assets/js/b87b04f0.d73d630a.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkcityscope_docs=self.webpackChunkcityscope_docs||[]).push([[852],{990:(e,n,i)=>{i.r(n),i.d(n,{assets:()=>d,contentTitle:()=>o,default:()=>h,frontMatter:()=>r,metadata:()=>s,toc:()=>l});var t=i(4848),a=i(8453);const r={id:"Examples"},o="Examples",s={id:"archive/brix/Examples/Examples",title:"Examples",description:"Short examples",source:"@site/docs/archive/brix/Examples/Examples.md",sourceDirName:"archive/brix/Examples",slug:"/archive/brix/Examples/",permalink:"/archive/brix/Examples/",draft:!1,unlisted:!1,editUrl:"https://github.com/CityScope/cityscope.github.io/docs/archive/brix/Examples/Examples.md",tags:[],version:"current",frontMatter:{id:"Examples"},sidebar:"sidebar",previous:{title:"[Archive] The brix library",permalink:"/archive/brix/"},next:{title:"GAMA",permalink:"/archive/brix/GAMA"}},d={},l=[{value:"Short examples",id:"short-examples",level:2},{value:"Numeric indicator: diversity",id:"numeric-indicator-diversity",level:3},{value:"Composite indicator: average",id:"composite-indicator-average",level:3},{value:"Heatmap indicator",id:"heatmap-indicator",level:3},{value:"Textual indicator",id:"textual-indicator",level:3},{value:"Multiple tables simultaneously",id:"multiple-tables-simultaneously",level:3},{value:"Hybrid indicator",id:"hybrid-indicator",level:3},{value:"Step by step examples",id:"step-by-step-examples",level:2},{value:"Diversity of land-use indicator - step by step",id:"diversity-of-land-use-indicator---step-by-step",level:3},{value:"Composite indicator \u2013 step by step tutorial",id:"composite-indicator--step-by-step-tutorial",level:3},{value:"Heatmap indicator \u2013 step by step tutorial",id:"heatmap-indicator--step-by-step-tutorial",level:3},{value:"Static-Heatmap indicator",id:"static-heatmap-indicator",level:3}];function c(e){const n={a:"a",code:"code",h1:"h1",h2:"h2",h3:"h3",p:"p",pre:"pre",strong:"strong",...(0,a.R)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(n.h1,{id:"examples",children:"Examples"}),"\n",(0,t.jsx)(n.h2,{id:"short-examples",children:"Short examples"}),"\n",(0,t.jsx)(n.h3,{id:"numeric-indicator-diversity",children:"Numeric indicator: diversity"}),"\n",(0,t.jsxs)(n.p,{children:["Indicators are built as subclasses of the ",":class","\u201dbrix.Indicator class, with three functions that need to be defined: ",(0,t.jsx)(n.code,{children:"brix.Indicator.setup()"}),", ",(0,t.jsx)(n.code,{children:"brix.Indicator.load_module()"}),", and ",(0,t.jsx)(n.code,{children:"brix.Indicator.return_indicator()"}),". The function ",(0,t.jsx)(n.code,{children:"brix.Indicator.setup()"})," acts like an ",(0,t.jsx)(n.strong,{children:"init"}),". It can take any argument and runs when the object is instantiated. The function ",(0,t.jsx)(n.code,{children:"brix.Indicator.load_module()"})," is also run when the indicator in initialized, but it cannot take any arguments. Any inputs needed to run ",(0,t.jsx)(n.code,{children:"brix.Indicator.load_module()"})," should be passed to ",(0,t.jsx)(n.code,{children:"brix.Indicator.setup()"})," and defined as class attributes. The function ",(0,t.jsx)(n.code,{children:"brix.Indicator.return_indicator()"})," is the only required one and should take in a geogrid_data object (returned from ",(0,t.jsx)(n.code,{children:"brix.Handler.get_geogrid_data()"})," or from ",(0,t.jsx)(n.code,{children:"brix.Indicator.get_geogrid_data()"}),") and return the value of the indicator either as a number, a dictionary, or a list of dictionaries/numbers. Sometimes, the indicator requires geographic information from the table to calculate it. To get geographic information from the table, set the property ",(0,t.jsx)(n.code,{children:"brix.Indicator.requires_geometry"})," to True (see Noise heatmap as an example)."]}),"\n",(0,t.jsx)(n.p,{children:"The following example implements a diversity-of-land-use indicator"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{children:"from brix import Indicator\nfrom brix import Handler\nfrom numpy import log\nfrom collections import Counter\n\nclass Diversity(Indicator):\n def setup(self):\n self.name = 'Entropy'\n\n def load_module(self):\n pass\n\n def return_indicator(self, geogrid_data):\n uses = [cell['land_use'] for cell in geogrid_data]\n uses = [use for use in uses if use != 'None']\n frequencies = Counter(uses)\n total = sum(frequencies.values(), 0.0)\n entropy = 0\n for key in frequencies:\n p = frequencies[key]/total\n entropy += -p*log(p)\n return entropy\n\ndiv = Diversity()\nH = Handler('dungeonmaster', quietly=False)\nH.add_indicator(div)\nH.listen()\n"})}),"\n",(0,t.jsx)(n.h3,{id:"composite-indicator-average",children:"Composite indicator: average"}),"\n",(0,t.jsx)(n.p,{children:"In some settings, it might be useful to aggregate different indicators to get a average feel of what the neighborhood looks like. For this use case, brix provides a simplified CompositeIndicator class that only needs an aggregation function."}),"\n",(0,t.jsxs)(n.p,{children:["Let\u2019s create an indicator that averages Innovation Potential, Mobility Inmpact, and Economic Impact. We use the ",(0,t.jsx)(n.code,{children:"brix.CompositeIndicator"})," class for this. This class takes an aggregate function as input. This function should take the result of ",(0,t.jsx)(n.code,{children:"brix.Handler.get_indicator_values()"})," as input and returns a number. If you want to have more control over what the ",(0,t.jsx)(n.code,{children:"brix.CompositeIndicator"})," does you can always extend the class."]}),"\n",(0,t.jsx)(n.p,{children:"Here is the simplest example that averages the values of three indicators:"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{children:"from brix import Handler, CompositeIndicator\nfrom brix.examples import RandomIndicator\n\ndef innovation_average(indicator_values):\n avg = (indicator_values['Innovation Potential']+indicator_values['Mobility Impact']+indicator_values['Economic Impact'])/3\n return avg\n\nH = Handler('dungeonmaster')\nR = RandomIndicator()\navg_I = CompositeIndicator(innovation_average,name='Composite')\nH.add_indicators([R,avg_I])\n"})}),"\n",(0,t.jsx)(n.p,{children:"In some cases, the aggregation function is too simple to write it again. In the example before, you can also pass it a pre-existing function, such as np.mean, making sure that you select the indicators that will be passed as input, by their name."}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{children:"from brix import Handler, CompositeIndicator\nfrom brix.examples import RandomIndicator\nimport numpy as np\n\nH = Handler('dungeonmaster')\nR = RandomIndicator()\navg_I = CompositeIndicator(np.mean,selected_indicators=['Innovation Potential','Mobility Impact','Economic Impact'],name='Composite')\nH.add_indicators([R,avg_I])\n"})}),"\n",(0,t.jsx)(n.h3,{id:"heatmap-indicator",children:"Heatmap indicator"}),"\n",(0,t.jsxs)(n.p,{children:["The same class can be used to define a heatmap or accessiblity indicator, as opposed to a numeric indicator. First, set the class property ",(0,t.jsx)(n.code,{children:"brix.Indicator.indicator_type"})," equal to heatmap or to access. This will flag the indicator as a heatmap and will tell the Handler class what to do with it.\nSecond, make sure that the ",(0,t.jsx)(n.code,{children:"brix.Indicator.return_indicator()"})," function returns a list of features or a geojson.\nThe example below shows an indicator that returns noise for every point in the center of a grid cell. Because this indicator needs the coordinates of table to return the geojson, it sets the property ",(0,t.jsx)(n.code,{children:"brix.Indicator.requires_geometry"})," to True."]}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{children:"from brix import Indicator\nclass Noise(Indicator):\n '''\n Example of Noise heatmap indicator for points centered in each grid cell.\n\n Note that this class requires the geometry of the table as input, which is why it sets:\n requires_geometry = True\n in the setup.\n\n '''\n def setup(self):\n self.indicator_type = 'heatmap'\n self.requires_geometry = True\n\n def load_module(self):\n pass\n\n def return_indicator(self, geogrid_data):\n features = []\n for cell in geogrid_data:\n feature = {}\n lat,lon = zip(*cell['geometry']['coordinates'][0])\n lat,lon = mean(lat),mean(lon)\n feature['geometry'] = {'coordinates': [lat,lon],'type': 'Point'}\n feature['properties'] = {self.name:random()}\n features.append(feature)\n out = {'type':'FeatureCollection','features':features}\n return out\n"})}),"\n",(0,t.jsx)(n.h3,{id:"textual-indicator",children:"Textual indicator"}),"\n",(0,t.jsxs)(n.p,{children:["The example below annotates two randomly chosen cells with ",(0,t.jsx)(n.code,{children:"yes!"})," and ",(0,t.jsx)(n.code,{children:"no!"}),"."]}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{children:"from brix import Indicator\nimport random\nclass RandomFlag(Indicator):\n '''\n Example of textual indicator that annotates two random cells.\n '''\n def setup(self):\n self.indicator_type = 'textual'\n self.requires_geometry = True\n self.name = 'Yes/No'\n\n def return_indicator(self, geogrid_data):\n cells = random.sample(geogrid_data,2)\n out = [\n {'id':cells[0]['id'],'info':'yes!'},\n {'id':cells[1]['id'],'info':'no!'},\n ]\n return out\n"})}),"\n",(0,t.jsx)(n.h3,{id:"multiple-tables-simultaneously",children:"Multiple tables simultaneously"}),"\n",(0,t.jsxs)(n.p,{children:["The following examples instantiates three ",(0,t.jsx)(n.code,{children:"brix.Handler"})," objects for three different tables (dungeonA, dungeonB, and dungeonC) and adds a diversity of land use indicator to each. It then runs ",(0,t.jsx)(n.code,{children:"brix.Handler.listen()"})," for each table in its own separate thread."]}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{children:"from brix import Handler\nfrom brix.examples import Diversity, RandomIndicator\n\ntable_list = ['dungeona','dungeonb','dungeonc']\n\nhandler_list = []\nfor table_name in table_list:\n H = Handler(table_name)\n div = Diversity()\n rand = RandomIndicator()\n H.add_indicators([div,rand])\n handler_list.append(H)\n\nfor h in handler_list:\n h.listen()\n"})}),"\n",(0,t.jsx)(n.h3,{id:"hybrid-indicator",children:"Hybrid indicator"}),"\n",(0,t.jsx)(n.p,{children:"For more complex uses cases, where a module runs a big simulation and wants to show both a heatmap and a numeric indicator, you can use a hybrid indicator. To start, set:"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{children:"self.indicator_type = 'hybrid'\n"})}),"\n",(0,t.jsx)(n.p,{children:"If you set your indicator as hybrid you need to define a numeric and a heatmap part. The following example generates a heatmap with noise and the average noise as a numeric indicator."}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{children:"from brix import Indicator\nfrom numpy import mean\nimport random\nclass HybridNoise(Indicator):\n def setup(self):\n self.indicator_type = 'hybrid'\n self.name = 'noise'\n self.requires_geometry = True\n self.mynoise = None\n\n def return_indicator_heatmap(self, geogrid_data):\n features = []\n for cell in geogrid_data:\n feature = {}\n lat,lon = zip(*cell['geometry']['coordinates'][0])\n lat,lon = mean(lat),mean(lon)\n feature['geometry'] = {'coordinates': [lat,lon],'type': 'Point'}\n feature['properties'] = {self.name:random.random()}\n features.append(feature)\n self.mynoise = features\n out = {'type':'FeatureCollection','features':features}\n return out\n\n def return_indicator_numeric(self, geogrid_data):\n mean_noise = mean([cell['properties'][self.name] for cell in self.mynoise])\n return mean_noise\n"})}),"\n",(0,t.jsx)(n.p,{children:"By default, brix will run the heatmap indicator first, followed by the numeric indicator. If you need more control over how these functions interact with each other, you can always re-define the return_indicator function. If you choose to do so, make sure that it returns a dictionary with two keys (\u2018heatmap\u2019 and \u2018numeric\u2019):"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{children:"{'heatmap': heatmap_values, 'numeric': numeric_values}\n"})}),"\n",(0,t.jsx)(n.p,{children:"In the previous example:"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{children:"def return_indicator(self, geogrid_data):\n out = {}\n out['heatmap'] = self.return_indicator_heatmap(geogrid_data)\n out['numeric'] = self.return_indicator_numeric(geogrid_data)\n return out\n"})}),"\n",(0,t.jsx)(n.h2,{id:"step-by-step-examples",children:"Step by step examples"}),"\n",(0,t.jsx)(n.h3,{id:"diversity-of-land-use-indicator---step-by-step",children:"Diversity of land-use indicator - step by step"}),"\n",(0,t.jsxs)(n.p,{children:["As an example, we\u2019ll build a diversity of land use indicator for the test table. The process is the same for any table, provided that it has a GEOGRID variable. Indicators are built as subclasses of the ",(0,t.jsx)(n.code,{children:"brix.Indicator"})," class, with three functions that need to be defined: ",(0,t.jsx)(n.code,{children:"brix.Indicator.setup()"}),", ",(0,t.jsx)(n.code,{children:"brix.Indicator.load_module()"}),", and ",(0,t.jsx)(n.code,{children:"brix.Indicator.return_indicator()"}),". The function ",(0,t.jsx)(n.code,{children:"brix.Indicator.setup()"})," acts like an ",(0,t.jsx)(n.strong,{children:"init"}),". It can take any argument and runs when the object is instantiated. The function ",(0,t.jsx)(n.code,{children:"brix.Indicator.load_module()"})," is also run when the indicator in initialized, but it cannot take any arguments. Any inputs needed to run ",(0,t.jsx)(n.code,{children:"brix.Indicator.load_module()"})," should be passed to ",(0,t.jsx)(n.code,{children:"brix.Indicator.setup()"})," and defined as class attributes. The function ",(0,t.jsx)(n.code,{children:"brix.Indicator.return_indicator()"})," is the only required one and should take in a geogrid_data object (returned from ",(0,t.jsx)(n.code,{children:"brix.Handler.get_geogrid_data()"})," or from ",(0,t.jsx)(n.code,{children:"brix.Indicator.get_geogrid_data()"}),") and return the value of the indicator either as a number, a dictionary, or a list of dictionaries/numbers."]}),"\n",(0,t.jsxs)(n.p,{children:["To start developing the diversity indicator, you can use the Handler class to get the ",(0,t.jsx)(n.code,{children:"geogrid_data"})," that is an input of the ",(0,t.jsx)(n.code,{children:"brix.Indicator.return_indicator()"})," function."]}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{children:"from brix import Handler\nH = Handler('dungeonmaster')\ngeogrid_data = H.geogrid_data()\n"})}),"\n",(0,t.jsxs)(n.p,{children:["The returned ",(0,t.jsx)(n.code,{children:"geogrid_data"})," object depends on the table, but for dungeonmaster it looks like this:"]}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{children:"[\n {\n 'color': [0, 0, 0, 0],\n 'height': 0.1,\n 'id': 0,\n 'interactive': True,\n 'land_use': 'None',\n 'name': 'empty',\n 'tui_id': None\n },\n {\n 'color': [247, 94, 133, 180],\n 'height': [0, 80],\n 'id': 1,\n 'interactive': True,\n 'land_use': 'PD',\n 'name': 'Office Tower',\n 'old_color': [133, 94, 247, 180],\n 'old_height': [0, 10],\n 'tui_id': None\n },\n {\n 'color': [0, 0, 0, 0],\n 'height': 0.1,\n 'id': 2,\n 'interactive': True,\n 'land_use': 'None',\n 'name': 'empty',\n 'tui_id': None\n },\n ...\n]\n"})}),"\n",(0,t.jsxs)(n.p,{children:["We build the diversity indicator by delecting the ",(0,t.jsx)(n.code,{children:"land_use"})," variable in each cell and calculating the Shannon Entropy for this:"]}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{children:"from numpy import log\nfrom collections import Counter\nuses = [cell['land_use'] for cell in geogrid_data]\nuses = [use for use in uses if use != 'None']\n\nfrequencies = Counter(uses)\n\ntotal = sum(frequencies.values(), 0.0)\nentropy = 0\nfor key in frequencies:\n p = frequencies[key]/total\n entropy += -p*log(p)\n"})}),"\n",(0,t.jsxs)(n.p,{children:["Now, we wrap this calculation in the ",(0,t.jsx)(n.code,{children:"brix.Indicator.return_indicator()"})," in a Diversity class that inherits the properties from the ",(0,t.jsx)(n.code,{children:"brix.Indicator"})," class:"]}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{children:"from brix import Indicator\nfrom numpy import log\nfrom collections import Counter\n\nclass Diversity(Indicator):\n\n def setup(self):\n self.name = 'Entropy'\n\n def load_module(self):\n pass\n\n def return_indicator(self, geogrid_data):\n uses = [cell['land_use'] for cell in geogrid_data]\n uses = [use for use in uses if use != 'None']\n\n frequencies = Counter(uses)\n\n total = sum(frequencies.values(), 0.0)\n entropy = 0\n for key in frequencies:\n p = frequencies[key]/total\n entropy += -p*log(p)\n\n return entropy\n"})}),"\n",(0,t.jsxs)(n.p,{children:["Because this indicator is very simple, it does not need any parameters or data to calculate the value, which is why the ",(0,t.jsx)(n.code,{children:"load_module"})," function is empty. The ",(0,t.jsx)(n.code,{children:"setup"})," function defines the properties of the module, which in this case is just the name."]}),"\n",(0,t.jsx)(n.p,{children:"Finally, we run the indicator by instantiating the new class and passing it to a Handler object:"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{children:"from brix import Handler\n\ndiv = Diversity()\n\nH = Handler('dungeonmaster', quietly=False)\nH.add_indicator(div)\nH.listen()\n"})}),"\n",(0,t.jsx)(n.h3,{id:"composite-indicator--step-by-step-tutorial",children:"Composite indicator \u2013 step by step tutorial"}),"\n",(0,t.jsx)(n.p,{children:"Let\u2019s create an indicator that averages Innovation Potential, Mobility Inmpact, and Economic Impact.\nFirst, we load the RandomIndicator and pass it to a Handler."}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{children:"from brix import Handler, CompositeIndicator\nfrom brix.examples import RandomIndicator\n\nH = Handler('dungeonmaster')\nR = RandomIndicator()\nH.add_indicator(R)\n"})}),"\n",(0,t.jsxs)(n.p,{children:["To develop the aggregate function, we use the ",(0,t.jsx)(n.code,{children:"brix.Handler.get_indicator_values"})," function from the handler class. We need to make sure our aggregate function works with that the Handler is returning:"]}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{children:"indicator_values = H.get_indicator_values()\n"})}),"\n",(0,t.jsxs)(n.p,{children:["In this case, the ",(0,t.jsx)(n.code,{children:"indicator_values"})," is a dictionary with the following elements:"]}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{children:"{\n 'Social Wellbeing': 0.9302328967423512,\n 'Environmental Impact': 0.8229183561962108,\n 'Mobility Impact': 0.3880460148817071,\n 'Economic Impact': 0.13782084927373295,\n 'Innovation Potential': 0.8913823890081203\n}\n"})}),"\n",(0,t.jsx)(n.p,{children:"We do not need to use all of the values returned by the Handler for our indicator."}),"\n",(0,t.jsxs)(n.p,{children:["Next, we write our simple average function that takes ",(0,t.jsx)(n.code,{children:"indicator_values"})," as input and returns a value, and pass it as an argument to the ",(0,t.jsx)(n.code,{children:"brix.CompositeIndicator"})," class constructor."]}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{children:"def innovation_average(indicator_values):\n avg = (indicator_values['Innovation Potential']+indicator_values['Mobility Impact']+indicator_values['Economic Impact'])/3\n return avg\n\navg_I = CompositeIndicator(innovation_average,name='Composite')\n"})}),"\n",(0,t.jsx)(n.p,{children:"To make sure it is running, we can test it as usual:"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{children:"avg_I.return_indicator(indicator_values)\n"})}),"\n",(0,t.jsx)(n.p,{children:"We finally add it to the Handler:"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{children:"H.add_indicator(avg_I)\n"})}),"\n",(0,t.jsx)(n.h3,{id:"heatmap-indicator--step-by-step-tutorial",children:"Heatmap indicator \u2013 step by step tutorial"}),"\n",(0,t.jsx)(n.p,{children:"This section will show you step by step how to build a proximity to parks indicator."}),"\n",(0,t.jsxs)(n.p,{children:["Let\u2019s start by setting up a simple subclass of the Indicator class, give it a name, and set it as a ",(0,t.jsx)(n.code,{children:"heatmap"})," indicator:"]}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{children:"from brix import Indicator\nclass ProximityIndicator(Indicator):\n def setup(self):\n self.name = 'Parks'\n self.indicator_type = 'heatmap'\n\n def return_indicator(self, geogrid_data):\n pass\n"})}),"\n",(0,t.jsxs)(n.p,{children:["Next, we link it to the table. This step is only for building the indicator as we use a ",(0,t.jsx)(n.code,{children:"brix.Handler"})," object when deploying it."]}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{children:"P = ProximityIndicator()\nP.link_table('dungeonmaster')\nP.get_geogrid_data()\n"})}),"\n",(0,t.jsxs)(n.p,{children:["When running ",(0,t.jsx)(n.code,{children:"brix.Indicator.get_geogrid_data()"})," we see that every cell has a ",(0,t.jsx)(n.code,{children:"name"})," property and some cells are classified as ",(0,t.jsx)(n.code,{children:"Park"}),". You\u2019ll also notice that by default, when building a ",(0,t.jsx)(n.code,{children:"heatmap"})," indicator, ",(0,t.jsx)(n.code,{children:"geogrid_data"})," returns the geometries. You can change this behavior by setting ",(0,t.jsx)(n.code,{children:"self.requires_geometry=False"})," in your ",(0,t.jsx)(n.code,{children:"setup"}),"."]}),"\n",(0,t.jsxs)(n.p,{children:["Next, we define the ",(0,t.jsx)(n.code,{children:"return_indicator"})," function. For debugging and testing you can define this function as stand alone function before adding it as a method to the ProximityIndicator. Some useful functions for debugging are ",(0,t.jsx)(n.code,{children:"brix.Indicator.get_geogrid_data()"})," and ",(0,t.jsx)(n.code,{children:"brix.Indicator.get_table_properties()"})," that will list general properties of the linked table."]}),"\n",(0,t.jsx)(n.p,{children:"In this example, the proximity indicator is defined as one over the distance to the closest park. When the cell is a park, we define the proximity as 1/(half size of each cell) to avoid dividing by zero."}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{children:"import numpy as np\nfrom geopy.distance import distance as geodistance # Function for distance between coordinates\n\ndef return_indicator(self,geogrid_data):\n parks = [cell for cell in geogrid_data if cell['name']=='Park'] # Find all parks\n parks_locations = [np.mean(cell['geometry']['coordinates'][0],0) for cell in parks] # Filter out the center of all park locations (locations are lon,lat format)\n\n features = []\n for cell in geogrid_data: # Calculate a value for the indicator for each cell\n cell_coords = np.mean(cell['geometry']['coordinates'][0],0) # Calculate center of cell (locations are lon,lat format)\n if cell['name']=='Park': # If cell is park, set distance to zero\n park_distance = 25 # This is based on half the cell size (see P.get_table_properties())\n else:\n distances = [geodistance(cell_coords[::-1],park_loc[::-1]).m for park_loc in parks_locations] # Distance between cell and each park. Notice that we reverse the coordinates for geodistance.\n park_distance = min(distances) # get distance to closest park\n\n proximity = 1/park_distance\n scaled_proximity = (proximity-0.002)/(0.03-0.002) # this ensures the indicator is between zero and one\n\n # Generate feature with points (lon,lat format) and properties.\n feature = {}\n feature['geometry'] = {'coordinates': list(cell_coords),'type': 'Point'} # cell_coords should be a list\n feature['properties'] = {self.name: scaled_proximity} # Use the indicator name to tag the value\n\n features.append(feature) # add to features list for export\n\n out = {'type':'FeatureCollection','features':features}\n return out\n"})}),"\n",(0,t.jsxs)(n.p,{children:["You can test your function by running: ",(0,t.jsx)(n.code,{children:"return_indicator(P,geogrid_data)"}),"."]}),"\n",(0,t.jsx)(n.p,{children:"Finally, let\u2019s put it all together:"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{children:"from brix import Indicator\nimport numpy as np\nfrom geopy.distance import distance as geodistance\n\nclass ProximityIndicator(Indicator):\n def setup(self):\n self.name = 'Parks'\n self.indicator_type = 'heatmap'\n\n def return_indicator(self,geogrid_data):\n parks = [cell for cell in geogrid_data if cell['name']=='Park']\n parks_locations = [np.mean(cell['geometry']['coordinates'][0],0) for cell in parks]\n\n features = []\n for cell in geogrid_data:\n cell_coords = list(np.mean(cell['geometry']['coordinates'][0],0) )\n if cell['name']=='Park':\n park_distance = 45\n else:\n distances = [geodistance(cell_coords[::-1],park_loc[::-1]).m for park_loc in parks_locations]\n park_distance = min(distances)\n\n proximity = 1/park_distance\n scaled_proximity = (proximity-0.002)/(0.03-0.002)\n\n feature = {}\n feature['geometry'] = {'coordinates': cell_coords,'type': 'Point'}\n feature['properties'] = {self.name: scaled_proximity}\n\n features.append(feature)\n\n out = {'type':'FeatureCollection','features':features}\n return out\n"})}),"\n",(0,t.jsx)(n.p,{children:"And to deploy it:"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{children:"from brix import Handler\nH = Handler('dungeonmaster')\nP = ProximityIndicator()\nH.add_indicator(P)\nH.listen()\n"})}),"\n",(0,t.jsx)(n.h3,{id:"static-heatmap-indicator",children:"Static-Heatmap indicator"}),"\n",(0,t.jsxs)(n.p,{children:["The ",(0,t.jsx)(n.code,{children:"brix.Indicator"})," class provides a flexible way to define any type of indicator. In some cases, a simple approach is needed. Let\u2019s assume we want to build a simple heatmap indicator that just visualizes a given shapefile, and does not react to changes in geogriddata. We can use ",(0,t.jsx)(n.code,{children:"brix.StaticHeatmap"})," to build that."]}),"\n",(0,t.jsxs)(n.p,{children:["In this example, we will use the number of houses by block in Guadalajara, Mexico. You can download the shapefile from ",(0,t.jsx)(n.a,{href:"https://www.inegi.org.mx/contenidos/masiva/indicadores/inv/14_Manzanas_INV2016_shp.zip",children:"HERE"}),". We will not be using our trusted dungeonmaster table, as it does not overlap with the data. Instead we will use jalisco."]}),"\n",(0,t.jsxs)(n.p,{children:["The first step will be to \u201cgriddify\u201d our shapefile, meaning we will transform it from polygons to sampling points. Please note that you can use any sampling method for this, and that the sampling points do not need to match the grid. To make things easier, we have provided ",(0,t.jsx)(n.code,{children:"brix.griddify()"}),", which uses the centroids of the grid to sample the values of the heatmap."]}),"\n",(0,t.jsx)(n.p,{children:"We start by loading the shapefile and removing the missing values:"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{children:"import geopandas as gpd\nshapefile = gpd.read_file('/Users/username/Downloads/14_Manzanas_INV2016_shp/14_Manzanas_INV2016.shp')\nshapefile = shapefile[shapefile['VIVTOT']!='N.D.']\nshapefile['VIVTOT'] = shapefile['VIVTOT'].astype(float)\n"})}),"\n",(0,t.jsx)(n.p,{children:"Since the VIVTOT column that we are interested in visualizing has a skewed distribution, we will log-transform it."}),"\n",(0,t.jsx)(n.p,{children:"::"}),"\n",(0,t.jsx)(n.p,{children:"import numpy as np\nshapefile[\u2018log_VIVTOT\u2019] = np.log(shapefile[\u2018VIVTOT\u2019]+1)"}),"\n",(0,t.jsx)(n.p,{children:"Next, we load a table and use its grid to sample the heatmap."}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{children:"from brix import Handler\nH = Handler('jalisco')\ngeogrid_data = H.get_geogrid_data()\n"})}),"\n",(0,t.jsx)(n.p,{children:"The next step is to use the grid to sample the values of the heatmap. We will use the log_VIVTOT column, and save the resulting heatmap to a file so we can load it later. We will also remove the missing values."}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{children:"from brix import griddify\nheatmap = griddify(geogrid_data,shapefile,columns=['log_VIVTOT'])\nheatmap = heatmap[~heatmap['log_VIVTOT'].isna()]\nheatmap.to_file('/Users/username/Downloads/14_Manzanas_INV2016_shp/HEATMAP.shp')\n"})}),"\n",(0,t.jsxs)(n.p,{children:["This shapefile is a table of points and their properties. To build your indicator you can either load the file and pass it to the :class",":brix",".StaticHeatmap` constructor, or have the constructor load it for you."]}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{children:"from brix import StaticHeatmap\nN = StaticHeatmap('/Users/username/Downloads/14_Manzanas_INV2016_shp/HEATMAP.shp',columns=['log_VIVTOT'])\n"})}),"\n",(0,t.jsx)(n.p,{children:"Finally, we add it to a Handler class and check the update package:"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{children:"H = Handler('jalisco')\nH.add_indicator(N)\nH.update_package()\n"})}),"\n",(0,t.jsx)(n.p,{children:"To sum up, to preprocess the data:"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{children:"import geopandas as gpd\nimport numpy as np\nfrom brix import Handler\nfrom brix import griddify\n\nshapefile = gpd.read_file('/Users/username/Downloads/14_Manzanas_INV2016_shp/14_Manzanas_INV2016.shp')\nshapefile = shapefile[shapefile['VIVTOT']!='N.D.']\nshapefile['VIVTOT'] = shapefile['VIVTOT'].astype(float)\nshapefile['log_VIVTOT'] = np.log(shapefile['VIVTOT']+1)\n\n\nH = Handler('jalisco')\ngeogrid_data = H.get_geogrid_data()\nheatmap = griddify(geogrid_data,shapefile,columns=['log_VIVTOT'],buffer_percent=3)\nheatmap = heatmap[~heatmap['log_VIVTOT'].isna()]\nheatmap.to_file('/Users/username/Downloads/14_Manzanas_INV2016_shp/HEATMAP.shp')\n"})}),"\n",(0,t.jsx)(n.p,{children:"And once the heatmap file has been saved, all you need to do deploy the indicator is:"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{children:"from brix import Handler, StaticHeatmap\nN = StaticHeatmap('/Users/username/Downloads/14_Manzanas_INV2016_shp/HEATMAP.shp',columns=['log_VIVTOT'])\nH = Handler('jalisco')\nH.add_indicator(N)\nH.listen()\n"})})]})}function h(e={}){const{wrapper:n}={...(0,a.R)(),...e.components};return n?(0,t.jsx)(n,{...e,children:(0,t.jsx)(c,{...e})}):c(e)}},8453:(e,n,i)=>{i.d(n,{R:()=>o,x:()=>s});var t=i(6540);const a={},r=t.createContext(a);function o(e){const n=t.useContext(r);return t.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function s(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:o(e.components),t.createElement(r.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/build/assets/js/cf9c09d8.82466f9a.js b/build/assets/js/cf9c09d8.82466f9a.js deleted file mode 100644 index f6df6774..00000000 --- a/build/assets/js/cf9c09d8.82466f9a.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkcityscope_docs=self.webpackChunkcityscope_docs||[]).push([[49],{5431:(e,n,i)=>{i.r(n),i.d(n,{assets:()=>d,contentTitle:()=>c,default:()=>h,frontMatter:()=>s,metadata:()=>r,toc:()=>a});var t=i(4848),o=i(8453);const s={id:"Build"},c="Building",r={id:"archive/cityio/Build",title:"Build",description:"From version 3, the Dockerfile inside the repository can be used for",source:"@site/docs/archive/cityio/build.md",sourceDirName:"archive/cityio",slug:"/archive/cityio/Build",permalink:"/archive/cityio/Build",draft:!1,unlisted:!1,editUrl:"https://github.com/CityScope/cityscope.github.io/docs/archive/cityio/build.md",tags:[],version:"current",frontMatter:{id:"Build"},sidebar:"sidebar",previous:{title:"API",permalink:"/archive/cityio/API"},next:{title:"Internal_Note",permalink:"/archive/cityio/Internal_Note"}},d={},a=[];function l(e){const n={code:"code",h1:"h1",p:"p",pre:"pre",...(0,o.R)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(n.p,{children:"From version 3, the Dockerfile inside the repository can be used for\neasy deployment through docker."}),"\n",(0,t.jsxs)(n.p,{children:["It is a two step process, ",(0,t.jsx)(n.code,{children:"building"})," and ",(0,t.jsx)(n.code,{children:"running"}),"."]}),"\n",(0,t.jsx)(n.h1,{id:"building",children:"Building"}),"\n",(0,t.jsx)(n.p,{children:"(make sure you have docker in your system)"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-bash",children:"git clone https://github.com/CityScope/CS_CityIO cityio\ncd cityio\ndocker build -t cityio .\n"})}),"\n",(0,t.jsxs)(n.p,{children:["This will build the container image to the latest version. ",(0,t.jsx)(n.code,{children:"git pull"})," to\nupdate the code."]}),"\n",(0,t.jsx)(n.h1,{id:"running",children:"Running"}),"\n",(0,t.jsxs)(n.p,{children:["The cityio container assumes that a redis instance is running in\n",(0,t.jsx)(n.code,{children:"127.0.0.1:6379"})," (the default), this can be a docker container itself,\nif redis is running inside a different address or/and port, you can\nchange the what is written in the DockerFile."]}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-text",children:"ENV REDIS_ADDR=127.0.0.1\nENV REDIS_PORT=6379\n"})}),"\n",(0,t.jsx)(n.p,{children:"With that, the container can run by the following command."}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-bash",children:"docker run -p 8080:8080 --net=host cityio\n"})}),"\n",(0,t.jsxs)(n.p,{children:["the ",(0,t.jsx)(n.code,{children:"--net=host"})," option is for the container to access the host side\nlocalhosts' ports, to have the container access redis."]}),"\n",(0,t.jsxs)(n.p,{children:["This will output the logs in that session, where we usually run cityio\nin a tmux session for realtime observation. The ",(0,t.jsx)(n.code,{children:"-d"})," option can be added\nto run in deamon mode."]})]})}function h(e={}){const{wrapper:n}={...(0,o.R)(),...e.components};return n?(0,t.jsx)(n,{...e,children:(0,t.jsx)(l,{...e})}):l(e)}},8453:(e,n,i)=>{i.d(n,{R:()=>c,x:()=>r});var t=i(6540);const o={},s=t.createContext(o);function c(e){const n=t.useContext(s);return t.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function r(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:c(e.components),t.createElement(s.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/build/assets/js/d9dcfff4.db04efc0.js b/build/assets/js/d9dcfff4.db04efc0.js deleted file mode 100644 index 157b2d1e..00000000 --- a/build/assets/js/d9dcfff4.db04efc0.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkcityscope_docs=self.webpackChunkcityscope_docs||[]).push([[743],{5485:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>r,default:()=>h,frontMatter:()=>o,metadata:()=>a,toc:()=>l});var i=n(4848),s=n(8453);const o={sidebar_position:3},r=void 0,a={id:"cityscopejs/Project view",title:"Project view",description:"When you open a project, CityScopeJS will present you with the project view. This page aims to provide a workspace where you can manage your projects and visualize the outputs of modules. It consists of a navigation bar at the top of the screen, where you can click on different buttons to open several windows with various functionalities. The available options are:",source:"@site/docs/cityscopejs/Project view.md",sourceDirName:"cityscopejs",slug:"/cityscopejs/Project view",permalink:"/cityscopejs/Project view",draft:!1,unlisted:!1,editUrl:"https://github.com/CityScope/cityscope.github.io/docs/cityscopejs/Project view.md",tags:[],version:"current",sidebarPosition:3,frontMatter:{sidebar_position:3},sidebar:"sidebar",previous:{title:"Opening a project",permalink:"/cityscopejs/Opening a project"},next:{title:"Modules",permalink:"/category/modules"}},c={},l=[];function d(e){const t={img:"img",li:"li",ol:"ol",p:"p",strong:"strong",...(0,s.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(t.p,{children:"When you open a project, CityScopeJS will present you with the project view. This page aims to provide a workspace where you can manage your projects and visualize the outputs of modules. It consists of a navigation bar at the top of the screen, where you can click on different buttons to open several windows with various functionalities. The available options are:"}),"\n",(0,i.jsxs)(t.ol,{children:["\n",(0,i.jsxs)(t.li,{children:["\n",(0,i.jsxs)(t.p,{children:[(0,i.jsx)(t.strong,{children:"Edit Mode:"})," In this mode, you can modify the configuration of a city by editing the land uses of the grid that represents the city."]}),"\n"]}),"\n",(0,i.jsxs)(t.li,{children:["\n",(0,i.jsxs)(t.p,{children:[(0,i.jsx)(t.strong,{children:"Scenarios:"})," In the scenarios menu, you can save the current configuration of the city by assigning it a name and a description. Later in the process, you can switch between different scenarios of your city to study the impact of various interventions on the land, or simply to save different possibilities and analyze the metrics afterward."]}),"\n"]}),"\n",(0,i.jsxs)(t.li,{children:["\n",(0,i.jsxs)(t.p,{children:[(0,i.jsx)(t.strong,{children:"Layers:"})," In the layers menu, you can select which layers of the visualization you want to see and adjust the opacity of each one. This feature is particularly useful when working with complex visualizations, as it enables you to focus on specific elements."]}),"\n"]}),"\n",(0,i.jsxs)(t.li,{children:["\n",(0,i.jsxs)(t.p,{children:[(0,i.jsx)(t.strong,{children:"View:"})," This menu allows us to toggle different visibility settings for the map."]}),"\n"]}),"\n",(0,i.jsxs)(t.li,{children:["\n",(0,i.jsxs)(t.p,{children:[(0,i.jsx)(t.strong,{children:"Radar Chart:"})," In the radar chart window, you can display various metrics and KPIs related to your project. Initially, this will be empty; you must connect a module to the project in order to see data displayed."]}),"\n"]}),"\n",(0,i.jsxs)(t.li,{children:["\n",(0,i.jsxs)(t.p,{children:[(0,i.jsx)(t.strong,{children:"Land Use:"})," In this menu, you can see the current distribution of land uses within the project."]}),"\n"]}),"\n",(0,i.jsxs)(t.li,{children:["\n",(0,i.jsxs)(t.p,{children:[(0,i.jsx)(t.strong,{children:"Bar Chart:"})," In the bar chart window, you can display various metrics and KPIs related to your project using a bar plot. Initially, this will be empty; you must connect a module to the project in order to see data displayed."]}),"\n"]}),"\n",(0,i.jsxs)(t.li,{children:["\n",(0,i.jsxs)(t.p,{children:[(0,i.jsx)(t.strong,{children:"Modules:"})," In the modules window, you can view and select always-available modules that are independent of the projects. When selecting a module, it will compute the results for your project and display them in the interface."]}),"\n"]}),"\n"]}),"\n",(0,i.jsx)(t.p,{children:(0,i.jsx)(t.img,{alt:"CityScopeJS Project View",src:n(8990).A+"",width:"1202",height:"772"})})]})}function h(e={}){const{wrapper:t}={...(0,s.R)(),...e.components};return t?(0,i.jsx)(t,{...e,children:(0,i.jsx)(d,{...e})}):d(e)}},8990:(e,t,n)=>{n.d(t,{A:()=>i});const i=n.p+"assets/images/project-view-dbe152589b18a5c4493e6b2c2f68f830.png"},8453:(e,t,n)=>{n.d(t,{R:()=>r,x:()=>a});var i=n(6540);const s={},o=i.createContext(s);function r(e){const t=i.useContext(o);return i.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function a(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:r(e.components),i.createElement(o.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/build/assets/js/eab65581.7bf14c4c.js b/build/assets/js/eab65581.7bf14c4c.js deleted file mode 100644 index e01b2845..00000000 --- a/build/assets/js/eab65581.7bf14c4c.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkcityscope_docs=self.webpackChunkcityscope_docs||[]).push([[338],{3505:(n,e,i)=>{i.r(e),i.d(e,{assets:()=>r,contentTitle:()=>a,default:()=>h,frontMatter:()=>t,metadata:()=>d,toc:()=>c});var s=i(4848),l=i(8453);const t={id:"Types System",title:"Types System",position:1},a=void 0,d={id:"modules/Types System",title:"Types System",description:"CityScope (CS) Types are the basic land-use units that can be combined and arranged to represent urban environments within the CityScope platform. CS Types are assigned to each cell within the grid that is overlaid over the urban area of enquiry. The grid provides unified segmentation, scale and a level of abstraction that can be easily manipulated by users. Each cell within the grid can either be fixed or dynamic, depending on project limits; fixed cells within a grid are not intended to be changeable by users; dynamic cells are intended for manipulation to interact with the CityScope platform. Interactions take place as users manipulate Types within the project area.",source:"@site/docs/modules/types.md",sourceDirName:"modules",slug:"/modules/Types System",permalink:"/modules/Types System",draft:!1,unlisted:!1,editUrl:"https://github.com/CityScope/cityscope.github.io/docs/modules/types.md",tags:[],version:"current",frontMatter:{id:"Types System",title:"Types System",position:1},sidebar:"sidebar",previous:{title:"Introduction",permalink:"/modules/Core Modules/Introduction"},next:{title:"CityIO",permalink:"/category/cityio"}},r={},c=[{value:"Schema Description:",id:"schema-description",level:2},{value:"chema Description:",id:"chema-description",level:2},{value:"Park",id:"park",level:2},{value:"Household activities (Residential activities)",id:"household-activities-residential-activities",level:2},{value:"Mixed use Building (Finance + Public Administration + Shopping + Restaurants)",id:"mixed-use-building-finance--public-administration--shopping--restaurants",level:2},{value:"LBCS and NAICS Crosspath",id:"lbcs-and-naics-crosspath",level:2},{value:"Typical HOUSING types",id:"typical-housing-types",level:3},{value:"Popular AMENITYAMENITIES types",id:"popular-amenityamenities-types",level:3},{value:"PARK",id:"park-1",level:3},{value:"TRANSPORTATION",id:"transportation",level:3},{value:"SAFETY AND SECURITY",id:"safety-and-security",level:3},{value:"WELLBEING",id:"wellbeing",level:3},{value:"OFFICE",id:"office",level:3},{value:"INDUSTRY",id:"industry",level:3},{value:"NATURE",id:"nature",level:3},{value:"Mixed use building",id:"mixed-use-building",level:2},{value:"Residential Type (100% detached units)",id:"residential-type-100-detached-units",level:2},{value:"Residential Type (detached units) with ground-level grocery store",id:"residential-type-detached-units-with-ground-level-grocery-store",level:2}];function o(n){const e={a:"a",code:"code",h1:"h1",h2:"h2",h3:"h3",hr:"hr",img:"img",li:"li",p:"p",pre:"pre",ul:"ul",...(0,l.R)(),...n.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(e.h3,{id:""}),"\n",(0,s.jsx)(e.p,{children:"CityScope (CS) Types are the basic land-use units that can be combined and arranged to represent urban environments within the CityScope platform. CS Types are assigned to each cell within the grid that is overlaid over the urban area of enquiry. The grid provides unified segmentation, scale and a level of abstraction that can be easily manipulated by users. Each cell within the grid can either be fixed or dynamic, depending on project limits; fixed cells within a grid are not intended to be changeable by users; dynamic cells are intended for manipulation to interact with the CityScope platform. Interactions take place as users manipulate Types within the project area."}),"\n",(0,s.jsx)(e.p,{children:(0,s.jsx)(e.img,{alt:"CS BOXEL. Photo: Ariel Noyman",src:i(3861).A+"",width:"347",height:"1159"})}),"\n",(0,s.jsx)(e.p,{children:"CS Types are represented by tiles that are set within the cells of a grid. At minimum, each tile must include land use and economic activity data, which can be complemented with additional dimensions of information that are assigned by users during the commissioning of a table. Additional information that can be assigned to a CS Type includes, but is not limited to, the acoustic characteristics, demographic information, and/or the utilization of a type."}),"\n",(0,s.jsx)(e.p,{children:(0,s.jsx)(e.img,{alt:"CS LEGO 3Types. Photo: Luis Alonso",src:i(5560).A+"",width:"4032",height:"3024"})}),"\n",(0,s.jsx)(e.p,{children:"To standardize the analysis and visualization modules, the CityScope platform uses unified data classifications to define each Type. CS Types may differ from project to project depending on the programming and intervention under investigation. To standardize how CS Types are defined, the classification uses unified dictionary of attributes that include, but are not limited to, land-use and economic activity, as defined by the American Planning Association, Land-Based Classification Standards or LBCS, and the North American Industry Classification System or NAICS, for the associated economic activity. Additional characteristics can be added when project specific modules are being used."}),"\n",(0,s.jsx)(e.h1,{id:"lbcs---land-use-classification-notation",children:"LBCS - Land Use Classification Notation:"}),"\n",(0,s.jsx)(e.p,{children:"The LBCS classification system extends the notion of land uses by refining traditional categories into multiple dimensions, including activity, function, building type, site development character, and ownership constraints. Each dimension has its own set of categories and subcategories for classifying land uses. By classifying every land-use across multiple dimensions, users can have precise control of land-use classifications. Codes are generated using a numerical classification outlined in the LBCS manual:"}),"\n",(0,s.jsx)(e.p,{children:(0,s.jsx)(e.a,{href:"https://planning-org-uploaded-media.s3.amazonaws.com/document/LBCS.pdf",children:"https://planning-org-uploaded-media.s3.amazonaws.com/document/LBCS.pdf"})}),"\n",(0,s.jsx)(e.h2,{id:"schema-description",children:"Schema Description:"}),"\n",(0,s.jsxs)(e.ul,{children:["\n",(0,s.jsx)(e.li,{children:"X 0 0 0 - First level classification - General"}),"\n",(0,s.jsx)(e.li,{children:"XX 0 0 - 2nd level - Type"}),"\n",(0,s.jsx)(e.li,{children:"XXX 0 - 3rd level - Activity"}),"\n",(0,s.jsx)(e.li,{children:"XXXX - 4th level - Specific Activity"}),"\n"]}),"\n",(0,s.jsx)(e.p,{children:"Most CS Types may only include Activity dimensions, however additional LBCS information can be added."}),"\n",(0,s.jsx)(e.h1,{id:"naics---economic-activity-classification-notation",children:"NAICS - Economic Activity Classification Notation:"}),"\n",(0,s.jsx)(e.p,{children:"In addition to the LBCS classifications, the NAICS codes are a standard used by Federal statistical agencies in classifying business establishments for the purpose of collecting, analyzing, and publishing statistical data related to the U.S. business economy.Codes are generated using a numerical classification outlined in the NAICS manual:"}),"\n",(0,s.jsx)(e.p,{children:(0,s.jsx)(e.a,{href:"https://www.census.gov/eos/www/naics/2017NAICS/2017_NAICS_Manual.pdf",children:"https://www.census.gov/eos/www/naics/2017NAICS/2017_NAICS_Manual.pdf"})}),"\n",(0,s.jsx)(e.h2,{id:"chema-description",children:"chema Description:"}),"\n",(0,s.jsxs)(e.ul,{children:["\n",(0,s.jsx)(e.li,{children:"X 0 0 0 0 - First level classification - Industry Sector (20 broad sectors up from 10 SIC)"}),"\n",(0,s.jsx)(e.li,{children:"XX 0 0 0 - 2nd level - Industry Sub sector"}),"\n",(0,s.jsx)(e.li,{children:"XXX 0 0 - 3rd level - Industry Group"}),"\n",(0,s.jsx)(e.li,{children:"XXXX 0 - 4th level - Industry"}),"\n"]}),"\n",(0,s.jsx)(e.h1,{id:"sample-cs-types",children:"Sample CS Types:"}),"\n",(0,s.jsx)(e.p,{children:"As an example exercise we will define 3 of the most popular CS types: A simple single use tile like a park, a single use tile of housing, and a multi use tail mixing office and shopping:"}),"\n",(0,s.jsx)(e.h2,{id:"park",children:"Park"}),"\n",(0,s.jsx)(e.p,{children:"No floors, 100% of park activity. NAICS mapping = 712190. LBCS mapping = 7000"}),"\n",(0,s.jsx)(e.p,{children:(0,s.jsx)(e.img,{alt:"CS LEGO Park. Photo: Luis Alonso",src:i(7388).A+"",width:"4032",height:"3024"})}),"\n",(0,s.jsx)(e.pre,{children:(0,s.jsx)(e.code,{className:"language-json",children:'{\n "NAICS": [\n {\n "P": 1,\n "use": [\n {\n "712190": 1\n }\n ],\n "LBCS": [\n {\n "P": 1,\n "use": [\n {\n "7000": 1\n }\n ]\n }\n ]\n}\n'})}),"\n",(0,s.jsx)(e.h2,{id:"household-activities-residential-activities",children:"Household activities (Residential activities)"}),"\n",(0,s.jsx)(e.p,{children:'Individual housing building, 100% of Residential activities. NAICS mapping = null (Since NAICS is the "standard used by Federal statistical agencies in classifying business establishments"; housing doesn\'t have a correlation in NAICS). LBCS mapping = 1100'}),"\n",(0,s.jsx)(e.p,{children:(0,s.jsx)(e.img,{alt:"CS LEGO House. Photo: Luis Alonso",src:i(4230).A+"",width:"4032",height:"2606"})}),"\n",(0,s.jsx)(e.pre,{children:(0,s.jsx)(e.code,{className:"language-json",children:'{\n "NAICS": null,\n "LBCS": [\n {\n "P": 1,\n "use": [\n {\n "1100": 1\n }\n ]\n }\n ]\n}\n'})}),"\n",(0,s.jsx)(e.h2,{id:"mixed-use-building-finance--public-administration--shopping--restaurants",children:"Mixed use Building (Finance + Public Administration + Shopping + Restaurants)"}),"\n",(0,s.jsx)(e.p,{children:"Office and Shopping building: 80% of Financial activities, 20% of Restaurant and shopping activities. NAICS mapping = 520000 finance, 920000 Public Administration, 440000 + 45000 shopping, and 720000 restaurant. LBCS mapping = 2200 finance, 6200 + 6300 Public Administration, 2100 shopping, and 2500 restaurant"}),"\n",(0,s.jsxs)(e.ul,{children:["\n",(0,s.jsx)(e.li,{children:"The lower 20% of floors are devoted to a mix of shopping 75% and restaurants 25%"}),"\n",(0,s.jsx)(e.li,{children:"The upper 80% of floors and is devoted to a mix of finance 50% and Public Administration 50%"}),"\n"]}),"\n",(0,s.jsx)(e.p,{children:(0,s.jsx)(e.img,{alt:"CS LEGO Office. Photo: Luis Alonso",src:i(8228).A+"",width:"4032",height:"2850"})}),"\n",(0,s.jsx)(e.pre,{children:(0,s.jsx)(e.code,{className:"language-json",children:'{\n "NAICS": [\n {\n "P": 0.2,\n "use": [\n {\n "720000": 0.25,\n "440000": 0.40,\n "450000": 0.35\n }\n ]\n },\n {\n "P": 0.8,\n "use": [\n {\n "520000": 0.5,\n "920000": 0.5\n }\n ],\n "LBCS": [\n {\n "P": 0.2,\n "use": [\n {\n "2100": 0.5,\n "2500": 0.5\n }\n ]\n },\n {\n "P": 0.8,\n "use": [\n {\n "2200": 0.5,\n "6200": 0.25,\n "6300": 0.25\n }\n ]\n }\n ]\n}\n'})}),"\n",(0,s.jsx)(e.h1,{id:"references",children:"References"}),"\n",(0,s.jsx)(e.p,{children:(0,s.jsx)(e.a,{href:"https://planning-org-uploaded-media.s3.amazonaws.com/legacy_resources/lbcs/background/QLBCSConvFunction2NAICS.TXT",children:"https://planning-org-uploaded-media.s3.amazonaws.com/legacy_resources/lbcs/background/QLBCSConvFunction2NAICS.TXT"})}),"\n",(0,s.jsxs)(e.p,{children:[(0,s.jsx)(e.a,{href:"https://planning-org-uploaded-media.s3.amazonaws.com/legacy_resources/lbcs/background/pdf/rslucm2sic2naics.pdf",children:"https://planning-org-uploaded-media.s3.amazonaws.com/legacy_resources/lbcs/background/pdf/rslucm2sic2naics.pdf"}),"."]}),"\n",(0,s.jsx)(e.p,{children:(0,s.jsx)(e.a,{href:"https://planning-org-uploaded-media.s3.amazonaws.com/legacy_resources/lbcs/background/pdf/rslucm2sic2naicsnotext.pdf",children:"https://planning-org-uploaded-media.s3.amazonaws.com/legacy_resources/lbcs/background/pdf/rslucm2sic2naicsnotext.pdf"})}),"\n",(0,s.jsx)(e.hr,{}),"\n",(0,s.jsx)(e.h1,{id:"anex",children:"ANEX"}),"\n",(0,s.jsx)(e.h2,{id:"lbcs-and-naics-crosspath",children:"LBCS and NAICS Crosspath"}),"\n",(0,s.jsx)(e.p,{children:"Mapping Correlation between LBCS and NAICS: Here is a shortcut for finding the correlation between LBCS and NAICS in the most popular land uses:"}),"\n",(0,s.jsx)(e.h3,{id:"typical-housing-types",children:"Typical HOUSING types"}),"\n",(0,s.jsxs)(e.ul,{children:["\n",(0,s.jsxs)(e.li,{children:["\n",(0,s.jsx)(e.p,{children:"1 | Household activities (Residential activities)"}),"\n",(0,s.jsxs)(e.ul,{children:["\n",(0,s.jsx)(e.li,{children:"LBCS = 1100"}),"\n",(0,s.jsx)(e.li,{children:"NAICS = null"}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(e.li,{children:["\n",(0,s.jsx)(e.p,{children:"2 | Transient living (Residential activities)"}),"\n",(0,s.jsxs)(e.ul,{children:["\n",(0,s.jsx)(e.li,{children:"LBCS = 1200"}),"\n",(0,s.jsx)(e.li,{children:"NAICS = null"}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(e.li,{children:["\n",(0,s.jsx)(e.p,{children:"3 | Institutional living (Residential activities)"}),"\n",(0,s.jsxs)(e.ul,{children:["\n",(0,s.jsx)(e.li,{children:"LBCS = 1300"}),"\n",(0,s.jsx)(e.li,{children:"NAICS = null"}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(e.h3,{id:"popular-amenityamenities-types",children:"Popular AMENITYAMENITIES types"}),"\n",(0,s.jsxs)(e.ul,{children:["\n",(0,s.jsxs)(e.li,{children:["\n",(0,s.jsx)(e.p,{children:"4 | Hotels"}),"\n",(0,s.jsxs)(e.ul,{children:["\n",(0,s.jsx)(e.li,{children:"LBCS = 1300"}),"\n",(0,s.jsx)(e.li,{children:"NAICS = 721110"}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(e.li,{children:["\n",(0,s.jsx)(e.p,{children:"5 | Restaurants"}),"\n",(0,s.jsxs)(e.ul,{children:["\n",(0,s.jsx)(e.li,{children:"LBCS = 2500"}),"\n",(0,s.jsx)(e.li,{children:"NAICS = 720000"}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(e.li,{children:["\n",(0,s.jsx)(e.p,{children:"6 | Night live"}),"\n",(0,s.jsxs)(e.ul,{children:["\n",(0,s.jsx)(e.li,{children:"LBCS = 2540"}),"\n",(0,s.jsx)(e.li,{children:"NAICS = 620000"}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(e.li,{children:["\n",(0,s.jsx)(e.p,{children:"7 | Leisure and Wellness"}),"\n",(0,s.jsxs)(e.ul,{children:["\n",(0,s.jsx)(e.li,{children:"LBCS = 6500"}),"\n",(0,s.jsx)(e.li,{children:"NAICS = 722500"}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(e.li,{children:["\n",(0,s.jsx)(e.p,{children:"8 | Culture"}),"\n",(0,s.jsxs)(e.ul,{children:["\n",(0,s.jsx)(e.li,{children:"LBCS = 5000"}),"\n",(0,s.jsx)(e.li,{children:"NAICS =710000"}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(e.li,{children:["\n",(0,s.jsx)(e.p,{children:"9 | Shopping Centers"}),"\n",(0,s.jsxs)(e.ul,{children:["\n",(0,s.jsx)(e.li,{children:"LBCS = 2100 + 2500"}),"\n",(0,s.jsx)(e.li,{children:"NAICS = 440000 + 450000"}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(e.li,{children:["\n",(0,s.jsx)(e.p,{children:"10 | Banks"}),"\n",(0,s.jsxs)(e.ul,{children:["\n",(0,s.jsx)(e.li,{children:"LBCS = 2200"}),"\n",(0,s.jsx)(e.li,{children:"NAICS = 450000"}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(e.li,{children:["\n",(0,s.jsx)(e.p,{children:"11 | Educational"}),"\n",(0,s.jsxs)(e.ul,{children:["\n",(0,s.jsx)(e.li,{children:"LBCS = 6100"}),"\n",(0,s.jsx)(e.li,{children:"NAICS = 610000"}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(e.h3,{id:"park-1",children:"PARK"}),"\n",(0,s.jsxs)(e.ul,{children:["\n",(0,s.jsxs)(e.li,{children:["12 | Parks","\n",(0,s.jsxs)(e.ul,{children:["\n",(0,s.jsx)(e.li,{children:"LBCS = 7000"}),"\n",(0,s.jsx)(e.li,{children:"NAICS = 712190"}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(e.h3,{id:"transportation",children:"TRANSPORTATION"}),"\n",(0,s.jsxs)(e.ul,{children:["\n",(0,s.jsxs)(e.li,{children:["13 | Transportation hubs (Air, Water, rail, road transport and infrastructures as well as local urban and interurban transit systems, etc.)","\n",(0,s.jsxs)(e.ul,{children:["\n",(0,s.jsx)(e.li,{children:"LBCS = 4000"}),"\n",(0,s.jsx)(e.li,{children:"NAICS = 480000"}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(e.h3,{id:"safety-and-security",children:"SAFETY AND SECURITY"}),"\n",(0,s.jsxs)(e.ul,{children:["\n",(0,s.jsxs)(e.li,{children:["14 | Public Safety","\n",(0,s.jsxs)(e.ul,{children:["\n",(0,s.jsx)(e.li,{children:"LBCS = 6400"}),"\n",(0,s.jsx)(e.li,{children:"NAICS = 480000"}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(e.h3,{id:"wellbeing",children:"WELLBEING"}),"\n",(0,s.jsxs)(e.ul,{children:["\n",(0,s.jsxs)(e.li,{children:["15 | Health Care","\n",(0,s.jsxs)(e.ul,{children:["\n",(0,s.jsx)(e.li,{children:"LBCS = 6500"}),"\n",(0,s.jsx)(e.li,{children:"NAICS = 620000"}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(e.h3,{id:"office",children:"OFFICE"}),"\n",(0,s.jsxs)(e.ul,{children:["\n",(0,s.jsxs)(e.li,{children:["\n",(0,s.jsx)(e.p,{children:"16 | Public Administration"}),"\n",(0,s.jsxs)(e.ul,{children:["\n",(0,s.jsx)(e.li,{children:"LBCS = 6200 + 6300"}),"\n",(0,s.jsx)(e.li,{children:"NAICS = 920000"}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(e.li,{children:["\n",(0,s.jsx)(e.p,{children:"17 | Finance"}),"\n",(0,s.jsxs)(e.ul,{children:["\n",(0,s.jsx)(e.li,{children:"LBCS = 2200"}),"\n",(0,s.jsx)(e.li,{children:"NAICS = 520000"}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(e.li,{children:["\n",(0,s.jsx)(e.p,{children:"18 | Scientific and Technical"}),"\n",(0,s.jsxs)(e.ul,{children:["\n",(0,s.jsx)(e.li,{children:"LBCS = 2400"}),"\n",(0,s.jsx)(e.li,{children:"NAICS = 540000"}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(e.h3,{id:"industry",children:"INDUSTRY"}),"\n",(0,s.jsxs)(e.ul,{children:["\n",(0,s.jsxs)(e.li,{children:["19 | Manufacturing","\n",(0,s.jsxs)(e.ul,{children:["\n",(0,s.jsx)(e.li,{children:"LBCS = 3000"}),"\n",(0,s.jsx)(e.li,{children:"NAICS = 320000 + 330000"}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(e.h3,{id:"nature",children:"NATURE"}),"\n",(0,s.jsxs)(e.ul,{children:["\n",(0,s.jsxs)(e.li,{children:["20 | Nature","\n",(0,s.jsxs)(e.ul,{children:["\n",(0,s.jsx)(e.li,{children:"LBCS = 9000"}),"\n",(0,s.jsx)(e.li,{children:"NAICS = 712190"}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(e.hr,{}),"\n",(0,s.jsx)(e.h1,{id:"more-advanced-types-examples",children:"More advanced Types Examples"}),"\n",(0,s.jsx)(e.p,{children:"Below are some more examples of CityScope types. These can be copy and pasted or modified for use in different CityScope projects:\nA single grid-cell may contain multiple LBCS and multiple NAICS on different floors or even on the same floor. Therefore, the value of each attribute is formatted as a list of objects. The object in the list represents a grouping of floors starting with the lower-most floors. Each object contains the mix of uses within that floor-group. For example, the following represents the NAICS attribute for a grid cell where:"}),"\n",(0,s.jsx)(e.p,{children:(0,s.jsx)(e.img,{alt:"CS LEGO scheme. Photo: Ariel Noyman",src:i(9973).A+"",width:"1600",height:"1109"})}),"\n",(0,s.jsx)(e.h2,{id:"mixed-use-building",children:"Mixed use building"}),"\n",(0,s.jsxs)(e.ul,{children:["\n",(0,s.jsx)(e.li,{children:'The lower 30% of floors are devoted to a mix of "541310" (architectural services) and "541330" (engineering services).'}),"\n",(0,s.jsx)(e.li,{children:'The upper 70% of floors and is devoted to a mix of "23" (Construction), "42" (Wholesale) and "61" (Education).'}),"\n"]}),"\n",(0,s.jsx)(e.pre,{children:(0,s.jsx)(e.code,{className:"language-json",children:'{\n "NAICS": [\n {\n "P": 0.3,\n "use": [\n {\n "541310": 0.5,\n "541330": 0.5\n }\n ]\n },\n {\n "P": 0.7,\n "use": [\n {\n "23": 0.3,\n "42": 0.4,\n "61": 0.3\n }\n ]\n }\n ]\n}\n'})}),"\n",(0,s.jsx)(e.p,{children:'The number of floors is independent of the type and specified separately by the user. Therefore, if the user assigns 10 floors to this grid cell, the lower 2 floors will be a mix of 541310 and 541330 and the upper 10 floors will be a mix of 23, 42 and 61.\nIn most cases, the type specification will not require such a detailed level of partitioning of types. If for example, the grid cell has only a single usage type, the same data format will be used but the list will only contain 1 object of length 1. For example, the following represents the NAICS attribute for a grid cell solely devoted to "54" (Professional, Scientific and Technical Services).'}),"\n",(0,s.jsx)(e.pre,{children:(0,s.jsx)(e.code,{className:"language-json",children:'{\n "NAICS": [\n {\n "P": 1,\n "use": [\n {\n "54": 1\n }\n ]\n }\n ]\n}\n'})}),"\n",(0,s.jsx)(e.h2,{id:"residential-type-100-detached-units",children:"Residential Type (100% detached units)"}),"\n",(0,s.jsx)(e.pre,{children:(0,s.jsx)(e.code,{className:"language-json",children:'{\n "NAICS": null,\n "LBCS": [\n {\n "P": 1,\n "use": [\n {\n "1120": 1\n }\n ]\n }\n ]\n}\n'})}),"\n",(0,s.jsx)(e.h2,{id:"residential-type-detached-units-with-ground-level-grocery-store",children:"Residential Type (detached units) with ground-level grocery store"}),"\n",(0,s.jsx)(e.pre,{children:(0,s.jsx)(e.code,{className:"language-json",children:'{\n "NAICS": [\n {\n "P": 0.1,\n "use": [\n {\n "4451": 1\n }\n ]\n },\n {\n "P": 0.9,\n "use": null\n }\n ],\n "LBCS": [\n {\n "P": 0.1,\n "use": [\n {\n "2150": 1\n }\n ]\n },\n {\n "P": 0.9,\n "use": [\n {\n "1120": 1\n }\n ]\n }\n ]\n}\n'})})]})}function h(n={}){const{wrapper:e}={...(0,l.R)(),...n.components};return e?(0,s.jsx)(e,{...n,children:(0,s.jsx)(o,{...n})}):o(n)}},3861:(n,e,i)=>{i.d(e,{A:()=>s});const s=i.p+"assets/images/BOXEL_Scheme-d1cbf30ad7555493c80cc4206fb80c30.jpg"},4230:(n,e,i)=>{i.d(e,{A:()=>s});const s=i.p+"assets/images/Type_House-98f14c2db41d983f2ef3fc933e5f6736.jpg"},8228:(n,e,i)=>{i.d(e,{A:()=>s});const s=i.p+"assets/images/Type_Office-f695054fae45ec69f5d8b0ee3cfd46bb.jpg"},7388:(n,e,i)=>{i.d(e,{A:()=>s});const s=i.p+"assets/images/Type_Park-6de8b19ee6f1af59f0163282543d1669.jpg"},9973:(n,e,i)=>{i.d(e,{A:()=>s});const s=i.p+"assets/images/Type_scheme-9fbe5b8f7e202e63d3f19aa4d5d5db10.jpg"},5560:(n,e,i)=>{i.d(e,{A:()=>s});const s=i.p+"assets/images/Types_examples-7e0f322f70968ac0ded9951db648ec30.jpg"},8453:(n,e,i)=>{i.d(e,{R:()=>a,x:()=>d});var s=i(6540);const l={},t=s.createContext(l);function a(n){const e=s.useContext(t);return s.useMemo((function(){return"function"==typeof n?n(e):{...e,...n}}),[e,n])}function d(n){let e;return e=n.disableParentContext?"function"==typeof n.components?n.components(l):n.components||l:a(n.components),s.createElement(t.Provider,{value:e},n.children)}}}]); \ No newline at end of file diff --git a/build/assets/js/f30f61d4.14328f35.js b/build/assets/js/f30f61d4.14328f35.js deleted file mode 100644 index 8c3bb4bc..00000000 --- a/build/assets/js/f30f61d4.14328f35.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkcityscope_docs=self.webpackChunkcityscope_docs||[]).push([[783],{2179:(e,i,t)=>{t.r(i),t.d(i,{assets:()=>l,contentTitle:()=>r,default:()=>h,frontMatter:()=>a,metadata:()=>s,toc:()=>c});var n=t(4848),o=t(8453);const a={id:"GAMA"},r="Introduction",s={id:"archive/brix/GAMA",title:"GAMA",description:"Agent-Based Model developped in the CityScience group using Gama Platform and integrated in CityScope",source:"@site/docs/archive/brix/GAMA.md",sourceDirName:"archive/brix",slug:"/archive/brix/GAMA",permalink:"/archive/brix/GAMA",draft:!1,unlisted:!1,editUrl:"https://github.com/CityScope/cityscope.github.io/docs/archive/brix/GAMA.md",tags:[],version:"current",frontMatter:{id:"GAMA"},sidebar:"sidebar",previous:{title:"Examples",permalink:"/archive/brix/Examples/"},next:{title:"Tutorials",permalink:"/archive/brix/Tutorial/"}},l={},c=[{value:"Basics of building a CityScope indicator in GAMA",id:"basics-of-building-a-cityscope-indicator-in-gama",level:2},{value:"GAMABrix for <code>cs-brix</code> users",id:"gamabrix-for-cs-brix-users",level:2},{value:"The CityIO global",id:"the-cityio-global",level:2},{value:"Let's talk input",id:"lets-talk-input",level:2},{value:"Building an indicator (output)",id:"building-an-indicator-output",level:2},{value:"Deploy your indicator",id:"deploy-your-indicator",level:2},{value:"Basic numeric indicator",id:"basic-numeric-indicator",level:2},{value:"Basic heatmap indicator",id:"basic-heatmap-indicator",level:2},{value:"Basic agent indicator",id:"basic-agent-indicator",level:2},{value:"Full module example (with comments)",id:"full-module-example-with-comments",level:2}];function d(e){const i={a:"a",code:"code",em:"em",h1:"h1",h2:"h2",li:"li",p:"p",pre:"pre",ul:"ul",...(0,o.R)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)(i.p,{children:["Agent-Based Model developped in the ",(0,n.jsx)(i.a,{href:"https://www.media.mit.edu/groups/city-science/overview/",children:"CityScience"})," group using ",(0,n.jsx)(i.a,{href:"https://gama-platform.github.io/",children:"Gama Platform"})," and integrated in ",(0,n.jsx)(i.a,{href:"https://www.media.mit.edu/projects/cityscope/overview/",children:"CityScope"})]}),"\n",(0,n.jsx)(i.h1,{id:"introduction",children:"Introduction"}),"\n",(0,n.jsxs)(i.p,{children:["What is this library for? If you have never heard of a CityScope before, you might want to stop reading and learn about them ",(0,n.jsx)(i.a,{href:"https://cityscope.media.mit.edu/",children:"here"}),". CityScope is an awesome way to interact, explore, and co-create urban interventions in a way that can be accessed by multiple people with different background. If you know what they are, please keep reading."]}),"\n",(0,n.jsx)(i.p,{children:"What is a CityScope table? a \u2018table\u2019 is our way of describing a CityScope project. Why table then? Since historically, most CityScope instances were composed of a mesh between a physical table-top 3D model of a city, augmented with projections, software, and other interface hardware. So a table => project."}),"\n",(0,n.jsx)(i.p,{children:"What is an indicator? An indicator is the result of running a module for CityScope. Indicators work by listening for updated from the CityScope table they are linked to, calculating some values by using a model, some function of the data, or a simulation, and then post the result of the calculations to CityIO to be displayed in the table."}),"\n",(0,n.jsx)(i.p,{children:"What are the types of indicators you can build? Indicators can be anything that could be displayed on a CityScope table, including the supporting screens associated to it. For the purpose of this library, we distinguish three types of indicator: numeric, heatmap, simulation."}),"\n",(0,n.jsxs)(i.ul,{children:["\n",(0,n.jsxs)(i.li,{children:["\n",(0,n.jsx)(i.p,{children:"Numeric: Numeric indicators are just a number or set of numbers. They are usually displayed in a chart (bar chart, radar chart, etc) next to the table. The most common numeric indicator are the numbers that go in the radar plot, which display information about density, diversity, and proximity."}),"\n"]}),"\n",(0,n.jsxs)(i.li,{children:["\n",(0,n.jsx)(i.p,{children:"Heatmap: These indicators are geodata. They are made up of geometries (points, lines, or polygons) and properties associated to them. These indicators are displayed as layers directly on the CityScope table."}),"\n"]}),"\n",(0,n.jsxs)(i.li,{children:["\n",(0,n.jsx)(i.p,{children:"Agent: These type of indicators are also displayed on the table but they are the result of an agent based simulation and are therefore displayed as a dynamic layer. They change over time like a short movie."}),"\n"]}),"\n"]}),"\n",(0,n.jsx)(i.h1,{id:"setup",children:"Setup"}),"\n",(0,n.jsxs)(i.p,{children:["To setup GAMABrix copy the file ",(0,n.jsx)(i.code,{children:"GAMABrix.gaml"})," into your model directory and import it into your model. You can download ",(0,n.jsx)(i.code,{children:"GAMABrix.gaml"})," from ",(0,n.jsx)(i.a,{href:"https://github.com/CityScope/CS_Simulation_GAMA/blob/master/CS_CityScope_GAMA/models/cityIO/models/GAMABrix.gaml",children:"here"})," Right after declaring your model, import the necessary species and functions by running:"]}),"\n",(0,n.jsx)(i.pre,{children:(0,n.jsx)(i.code,{children:'import "GAMABrix.gaml"\n'})}),"\n",(0,n.jsxs)(i.p,{children:["This will add to ",(0,n.jsx)(i.code,{children:"global"})," the necessary functions to communicate with ",(0,n.jsx)(i.code,{children:"CityIO"})," and two very important species that you will use to give your agents the properties they need to also live in CityIO: ",(0,n.jsx)(i.code,{children:"cityio_numeric_indicator"})," and ",(0,n.jsx)(i.code,{children:"cityio_agent"}),". Additionally, it sets up a series of ",(0,n.jsx)(i.code,{children:"brix"})," agents that will ensure your world is a copy of the world in the table you have selected."]}),"\n",(0,n.jsx)(i.h1,{id:"tutorial",children:"Tutorial"}),"\n",(0,n.jsx)(i.h2,{id:"basics-of-building-a-cityscope-indicator-in-gama",children:"Basics of building a CityScope indicator in GAMA"}),"\n",(0,n.jsxs)(i.p,{children:["Let\u2019s get to it. First, what table are you building for? If you don\u2019t have a specific table, that is totally okay and you can create one ",(0,n.jsx)(i.a,{href:"https://cityscope.media.mit.edu/CS_cityscopeJS/",children:"here"}),". Note: by the time you read this, CityScope might pose some limitations on new projects (",(0,n.jsx)(i.code,{children:"tables"}),"). Please follow instructions in the link above."]}),"\n",(0,n.jsxs)(i.p,{children:["For this tutorial, we crated one called ",(0,n.jsx)(i.code,{children:"dungeonmaster"}),"."]}),"\n",(0,n.jsxs)(i.p,{children:["An indicator will basically take in the properties of the ",(0,n.jsx)(i.code,{children:"brix"})," agents in the world or the properties of any other simulated agent and produce a result. Each new indicator is built as an subclass of the ",(0,n.jsx)(i.code,{children:"cityio_agent"})," class. ",(0,n.jsx)(i.code,{children:"cityio_agent"})," is your friend, so we'll spend some time discussing it here."]}),"\n",(0,n.jsxs)(i.p,{children:["When you setup a model by importing ",(0,n.jsx)(i.code,{children:"GAMABrix"}),", the model will run for one whole day of simulation, then posts the results of this simulation to cityio, and then stay idle waiting for an update from the table. This can be a bit annoying when you are only starting to build your model, so you can turn off this behavior and just keep the local grid update."]}),"\n",(0,n.jsxs)(i.p,{children:["Think of each indicator as an observer in your model that will report information back to CityIO. When it's a numeric indicator, the agent will just report a number that it calculates based on the ",(0,n.jsx)(i.code,{children:"brix"}),"s, when it's a heatmap indicator, the agent will report some numbers along with its location, and when it's an agent, the agent will report it's location over time. ",(0,n.jsx)(i.code,{children:"cityio_agent"})," is used as the parent class of any species that you want to visualize in CityIO. There are some specific parameters your sub-species needs to define to set the agent as a numeric, heatmap, or agent indicator."]}),"\n",(0,n.jsxs)(i.h2,{id:"gamabrix-for-cs-brix-users",children:["GAMABrix for ",(0,n.jsx)(i.code,{children:"cs-brix"})," users"]}),"\n",(0,n.jsxs)(i.p,{children:["If you are familiar with the python library ",(0,n.jsx)(i.a,{href:"https://cityscope.media.mit.edu/CS_Brix/",children:"cs-brix"}),", keep reading. Otherwise, skip to the next section of the tutorial. ",(0,n.jsx)(i.code,{children:"brix"})," is relies on defining classes that contain functions that take ",(0,n.jsx)(i.code,{children:"geogrid_data"})," as an input. For ",(0,n.jsx)(i.code,{children:"GAMABrix"})," this is not necessary. Since ",(0,n.jsx)(i.code,{children:"GAMA"})," relies on setting up a world with agents, the input data is already in the world in the form of ",(0,n.jsx)(i.code,{children:"brix"}),". Therefore, when building urban indicators in ",(0,n.jsx)(i.code,{children:"GAMA"})," you do not need to worry about input, and you can just get the necessary information from the ",(0,n.jsx)(i.code,{children:"brix"})," agents that will be automatically created in your world."]}),"\n",(0,n.jsxs)(i.p,{children:["In terms of output, ",(0,n.jsx)(i.code,{children:"brix"})," relies on a series of return functions passed to a ",(0,n.jsx)(i.code,{children:"Handler"})," class. In ",(0,n.jsx)(i.code,{children:"GAMA"}),", the world itself acts as the ",(0,n.jsx)(i.code,{children:"Handler"})," class, so there is no need to explicitly add your indicators to the ",(0,n.jsx)(i.code,{children:"Handler"})," as they are already contained in the ",(0,n.jsx)(i.code,{children:"global"})," species. The way to flag your indicators to be sent to ",(0,n.jsx)(i.code,{children:"cityIO"})," is to define them as a subclass of ",(0,n.jsx)(i.code,{children:"cityio_agent"}),"."]}),"\n",(0,n.jsxs)(i.p,{children:["While ",(0,n.jsx)(i.code,{children:"brix"})," can handle multiple tables at the same time by creating multiple threads for each ",(0,n.jsx)(i.code,{children:"Handler"}),", ",(0,n.jsx)(i.code,{children:"GAMA"})," is constrained to one table per model."]}),"\n",(0,n.jsx)(i.h2,{id:"the-cityio-global",children:"The CityIO global"}),"\n",(0,n.jsxs)(i.p,{children:["To connect your world to a table you need to declare the table name inside your ",(0,n.jsx)(i.code,{children:"global"})," and set the geometry of your world based on this table. For example, we named our table ",(0,n.jsx)(i.code,{children:"dungeonmaster"}),":"]}),"\n",(0,n.jsx)(i.pre,{children:(0,n.jsx)(i.code,{children:'string city_io_table<-"dungeonmaster";\ngeometry shape <- envelope(setup_cityio_world());\n'})}),"\n",(0,n.jsxs)(i.p,{children:["While you are building your model, we recommend turning off ",(0,n.jsx)(i.code,{children:"GAMABrix"})," to speed up the process (the default). By setting ",(0,n.jsx)(i.code,{children:"post_on<-false"}),", the model will only update your local grid without posting any of the indicators to cityio. In other words, you will only be ",(0,n.jsx)(i.em,{children:"getting"})," from ",(0,n.jsx)(i.code,{children:"cityIO"})," not ",(0,n.jsx)(i.em,{children:"posting"}),". This will reduce your bandwidth usage and allow you to debug your model faster. By doing this, the model will still keep track of the day and enter idle mode once the day is over."]}),"\n",(0,n.jsxs)(i.p,{children:["For early stages of model building, you might also want to set ",(0,n.jsx)(i.code,{children:"pull_only<-true"}),". This will tell turn off most of the functionality of the module and just make sure you are updating the local grid by pulling from your table. The simulation will not enter idle mode and the day will never reset."]}),"\n",(0,n.jsx)(i.p,{children:"Once you are done and want to deploy, change:"}),"\n",(0,n.jsx)(i.pre,{children:(0,n.jsx)(i.code,{children:"bool post_on<-true;\n"})}),"\n",(0,n.jsxs)(i.p,{children:["Additionally, the following variables can be defined in the ",(0,n.jsx)(i.code,{children:"global"})," and allow for a finer control of how the ",(0,n.jsx)(i.code,{children:"global"})," communicates with ",(0,n.jsx)(i.code,{children:"cityIO"}),". You do not need to set them up now, as the default should work fine."]}),"\n",(0,n.jsxs)(i.ul,{children:["\n",(0,n.jsxs)(i.li,{children:[(0,n.jsx)(i.code,{children:"city_io_table"}),": String, name of the table to connect to."]}),"\n",(0,n.jsxs)(i.li,{children:[(0,n.jsx)(i.code,{children:"post_on"}),": Boolean, used to turn the posting feature on or off. Keep it off while building the model and turn it on to post to the table."]}),"\n",(0,n.jsxs)(i.li,{children:[(0,n.jsx)(i.code,{children:"update_frequency"}),": Intenger, frequency, in number of simulation ticks, by which to update local grid by checking for changes in gridhash. This is not the posting frequency. Optional, and defaults to ",(0,n.jsx)(i.code,{children:"10"}),"."]}),"\n",(0,n.jsxs)(i.li,{children:[(0,n.jsx)(i.code,{children:"send_first_batch"}),": Boolean, if ",(0,n.jsx)(i.code,{children:"false"})," it will only send the results of the simulation once the full day has run. Optional and defaults to ",(0,n.jsx)(i.code,{children:"true"}),"."]}),"\n",(0,n.jsxs)(i.li,{children:[(0,n.jsx)(i.code,{children:"cycle_first_batch"}),": Integer, simulation tick in which to send the first batch of data to the server. Optional and defaults to ",(0,n.jsx)(i.code,{children:"100"}),"."]}),"\n",(0,n.jsxs)(i.li,{children:[(0,n.jsx)(i.code,{children:"step"}),": Float, time between two simulation ticks. Defaults to ",(0,n.jsx)(i.code,{children:"60 #sec"}),"."]}),"\n",(0,n.jsxs)(i.li,{children:[(0,n.jsx)(i.code,{children:"saveLocationInterval"}),": Float, frequency in second by which to save locally the location of agents. This is not the post frequency. Optional and defaults to ",(0,n.jsx)(i.code,{children:"10"})," steps."]}),"\n",(0,n.jsxs)(i.li,{children:[(0,n.jsx)(i.code,{children:"totalTimeInSec"}),": Integer, total time in seconds that the simulation will run for. Defaults to a whole day. Please note that ",(0,n.jsx)(i.code,{children:"CityIO"})," will not render more than 1 day of simulation."]}),"\n",(0,n.jsxs)(i.li,{children:[(0,n.jsx)(i.code,{children:"idle_update_frequency"}),": Float, time in real world seconds (not simulation seconds) between two get requests to check hash when in idle mode."]}),"\n",(0,n.jsxs)(i.li,{children:[(0,n.jsx)(i.code,{children:"pull_only"}),": Boolean, used to use GAMABrix only to update the local grid. This is very useful for the early stages of model building."]}),"\n"]}),"\n",(0,n.jsxs)(i.p,{children:["When you import ",(0,n.jsx)(i.code,{children:"GAMABrix"})," you will also see an additional experiment called ",(0,n.jsx)(i.code,{children:"CityScopeHeadless"}),". This experiment is used to run your model as a headless process in a server."]}),"\n",(0,n.jsxs)(i.p,{children:["By default, ",(0,n.jsx)(i.code,{children:"GAMABrix"})," will run its init (which creates the grid) right after your model's init. This means that you will not have access to any ",(0,n.jsx)(i.code,{children:"brix"})," object inside your init. You can always change this behavior by forcing ",(0,n.jsx)(i.code,{children:"GAMABrix"})," to run its init earlyer by adding ",(0,n.jsx)(i.code,{children:"do brix_init"})," where needed."]}),"\n",(0,n.jsx)(i.h2,{id:"lets-talk-input",children:"Let's talk input"}),"\n",(0,n.jsxs)(i.p,{children:[(0,n.jsx)(i.code,{children:"GAMA"})," will keep a copy of the ",(0,n.jsx)(i.code,{children:"cityIO"})," grid locally by creating the necessary ",(0,n.jsx)(i.code,{children:"brix"})," agents. This makes all the grid information accessible to all the agents by interacting with the ",(0,n.jsx)(i.code,{children:"brix"})," agents."]}),"\n",(0,n.jsxs)(i.p,{children:["The main properties that ",(0,n.jsx)(i.code,{children:"brix"})," agents have are:"]}),"\n",(0,n.jsxs)(i.ul,{children:["\n",(0,n.jsxs)(i.li,{children:["type: String that identifies the type of the block. This is editable (e.g. ",(0,n.jsx)(i.code,{children:"Residential"}),")."]}),"\n",(0,n.jsx)(i.li,{children:"height: Float, height of the block."}),"\n",(0,n.jsx)(i.li,{children:"color: RGB object."}),"\n",(0,n.jsxs)(i.li,{children:["block_lbcs: ",(0,n.jsx)(i.code,{children:"map<string, float>"})," Map that connects strings (LBCS codes) and float (proportion of the block in each code)."]}),"\n",(0,n.jsxs)(i.li,{children:["block_naics: ",(0,n.jsx)(i.code,{children:"map<string, float>"})," Map that connects strings (NAICS codes) and float (proportion of the block in each code)."]}),"\n"]}),"\n",(0,n.jsxs)(i.p,{children:["Note that ",(0,n.jsx)(i.code,{children:"block_lbcs"})," and ",(0,n.jsx)(i.code,{children:"block_naics"})," are the same for each ",(0,n.jsx)(i.code,{children:"type"})," and are defined when you create the table."]}),"\n",(0,n.jsx)(i.h2,{id:"building-an-indicator-output",children:"Building an indicator (output)"}),"\n",(0,n.jsxs)(i.p,{children:["Now, we'll turn some agents into observers that will report information to ",(0,n.jsx)(i.code,{children:"cityIO"}),". All three different types of indicators report different types of information, and an agent can be reporting any type of information to ",(0,n.jsx)(i.code,{children:"cityIO"}),"."]}),"\n",(0,n.jsxs)(i.ul,{children:["\n",(0,n.jsxs)(i.li,{children:["Numeric: Reports numbers (e.g. average commuting time, total energy consumption, etc.). Turn this on by setting ",(0,n.jsx)(i.code,{children:"is_numeric<-true"}),"."]}),"\n",(0,n.jsxs)(i.li,{children:["Heatmap: Reports numbers with location (e.g. traffic in a particular intersection, total sunlight in a specific location). Turn this on by setting ",(0,n.jsx)(i.code,{children:"is_heatmap<-true"}),"."]}),"\n",(0,n.jsxs)(i.li,{children:["Agent: Report all their locations during one whole day of simulation. Turn this on by setting ",(0,n.jsx)(i.code,{children:"is_visible<-true"}),". Note that the variable ",(0,n.jsx)(i.code,{children:"is_visible"})," refers only to wether you'll see the agent in your CityScope table. You still need to ",(0,n.jsx)(i.code,{children:"display"})," them in your local GAMA interfase if you want to see them."]}),"\n"]}),"\n",(0,n.jsxs)(i.p,{children:["When creating a numeric indicator you need to write a ",(0,n.jsx)(i.code,{children:"reflex"})," for your agent that updates either ",(0,n.jsx)(i.code,{children:"numeric_values"})," or ",(0,n.jsx)(i.code,{children:"heatmap_values"}),". These two variables should be ",(0,n.jsx)(i.code,{children:"map<string,float>"}),". Here is a simple example that ",(0,n.jsx)(i.code,{children:"numeric_values"})," with the number of blocks."]}),"\n",(0,n.jsx)(i.pre,{children:(0,n.jsx)(i.code,{children:'reflex update_numeric {\n\tnumeric_values<-[];\n\tnumeric_values<+"Number of blocks"::length(brix);\n}\n'})}),"\n",(0,n.jsxs)(i.p,{children:["Similarly, here is another example that updates ",(0,n.jsx)(i.code,{children:"heatmap_values"})," with two layers, ",(0,n.jsx)(i.code,{children:"heat"})," and ",(0,n.jsx)(i.code,{children:"map"})," defined as random numbers:"]}),"\n",(0,n.jsx)(i.pre,{children:(0,n.jsx)(i.code,{children:'reflex update_heatmap {\n\theatmap_values<-[];\n\theatmap_values<+ "heat"::rnd(10);\n\theatmap_values<+ "map"::rnd(10);\n}\n'})}),"\n",(0,n.jsxs)(i.p,{children:["For an agent indicator there is no value to be updated, as the indicator just reports its location. However, if your agent does not move, you will get a very boring dot so you might want to update the location. Here is a simple ",(0,n.jsx)(i.code,{children:"reflex"})," that updates the location:"]}),"\n",(0,n.jsx)(i.pre,{children:(0,n.jsx)(i.code,{children:"reflex move{\n\tdo wander;\n}\n"})}),"\n",(0,n.jsxs)(i.p,{children:["Additionally, ",(0,n.jsx)(i.code,{children:"GAMABrix"})," provides a shortcut to create numeric indicators that do not require you to define a subspecies. This is meant for straightforward indicators that can be calculated in one line of code. To create a simple numeric indicator, just create and agent of the ",(0,n.jsx)(i.code,{children:"cityio_numeric_indicator"})," species and pass your function as a string to ",(0,n.jsx)(i.code,{children:"indicator_value"}),". For example, a numeric indicator that returns the average height of blocks:"]}),"\n",(0,n.jsx)(i.pre,{children:(0,n.jsx)(i.code,{children:'create cityio_numeric_indicator with: (viz_type:"bar",indicator_name: "Mean Height", indicator_value: "mean(brix collect each.height)");\n'})}),"\n",(0,n.jsx)(i.h2,{id:"deploy-your-indicator",children:"Deploy your indicator"}),"\n",(0,n.jsx)(i.p,{children:"Let's say you finished writing your model and are ready to leave it running forever (in a server with ssh access, for example)."}),"\n",(0,n.jsx)(i.p,{children:"We highly recommend using a docker container to run headless GAMA on a server. This will take care of compatibility issues between platforms."}),"\n",(0,n.jsxs)(i.p,{children:["First, pull the image from dockerhub. This step only needs to be performed once per server. We will be using ",(0,n.jsx)(i.a,{href:"https://hub.docker.com/r/gamaplatform/gama",children:"this image"}),"."]}),"\n",(0,n.jsx)(i.pre,{children:(0,n.jsx)(i.code,{children:"> docker pull gamaplatform/gama\n"})}),"\n",(0,n.jsxs)(i.p,{children:["Second, we will build the ",(0,n.jsx)(i.code,{children:"xml"})," file with the model meta parameters. You will only need to do this once for each model. Ensure you model directory (the folder that contains models, results, etc) contains a ",(0,n.jsx)(i.code,{children:"headless"})," folder, and then run the following command adding the name of your gama file (",(0,n.jsx)(i.code,{children:"model_file.gaml"}),") where needed:"]}),"\n",(0,n.jsx)(i.pre,{children:(0,n.jsx)(i.code,{children:'> docker run --rm -v "$(pwd)":/usr/lib/gama/headless/my_model gamaplatform/gama -xml CityScopeHeadless my_model/models/[model_file.gaml] my_model/headless/myHeadlessModel.xml\n'})}),"\n",(0,n.jsxs)(i.p,{children:["This creates a file called ",(0,n.jsx)(i.code,{children:"myHeadlessModel.xml"})," in your ",(0,n.jsx)(i.code,{children:"headless"})," folder. If you know how to edit this file, feel free to modify it now. For more information about this file, check the ",(0,n.jsx)(i.a,{href:"https://gama-platform.github.io/wiki/Headless",children:"documentation"}),". Please note that by default the simulation will only run 1000 steps. If you wish to change this, edit the ",(0,n.jsx)(i.code,{children:"xml"})," and change the ",(0,n.jsx)(i.code,{children:"finalStep"})," property to a higher number or just delete if you wish the model to run continuosly."]}),"\n",(0,n.jsx)(i.p,{children:"Finally, we will run this model inside a container. This final step is what you will repeat everytime you modify your model. Run the following command, again from your model director:"}),"\n",(0,n.jsx)(i.pre,{children:(0,n.jsx)(i.code,{children:'> docker run --rm -v "$(pwd)":/usr/lib/gama/headless/my_model gamaplatform/gama my_model/headless/myHeadlessModel.xml my_model/results/\n'})}),"\n",(0,n.jsx)(i.h1,{id:"examples",children:"Examples"}),"\n",(0,n.jsx)(i.h2,{id:"basic-numeric-indicator",children:"Basic numeric indicator"}),"\n",(0,n.jsxs)(i.p,{children:["To create a numeric indicator, the recommended way is to define a species of agents that will act as ",(0,n.jsx)(i.em,{children:"observers"})," that will report the information to ",(0,n.jsx)(i.code,{children:"cityIO"}),". This species needs to have ",(0,n.jsx)(i.code,{children:"cityio_agent"})," as parent species."]}),"\n",(0,n.jsx)(i.p,{children:"You need to define four things:"}),"\n",(0,n.jsxs)(i.ul,{children:["\n",(0,n.jsxs)(i.li,{children:["Set ",(0,n.jsx)(i.code,{children:"is_numeric"})," to ",(0,n.jsx)(i.code,{children:"true"}),"."]}),"\n",(0,n.jsxs)(i.li,{children:["Define a reflex that updates the ",(0,n.jsx)(i.code,{children:"numeric_values"})," map (",(0,n.jsx)(i.code,{children:"map<string,float>"}),")."]}),"\n",(0,n.jsxs)(i.li,{children:["Define an ",(0,n.jsx)(i.code,{children:"indicator_name"})," either in the species definition or in the create statement."]}),"\n",(0,n.jsxs)(i.li,{children:["Set the ",(0,n.jsx)(i.code,{children:"viz_type"})," to either ",(0,n.jsx)(i.code,{children:"bar"})," or ",(0,n.jsx)(i.code,{children:"radar"})," (defaults to ",(0,n.jsx)(i.code,{children:"bar"})," if you don't change it)."]}),"\n"]}),"\n",(0,n.jsx)(i.p,{children:"Here's a simple example:"}),"\n",(0,n.jsx)(i.pre,{children:(0,n.jsx)(i.code,{children:'species my_numeric_indicator parent: cityio_agent {\n\tbool is_numeric<-true;\n\tstring viz_type <- "bar";\n\tstring indicator_name<-"Table Size";\n\t\n\treflex update_numeric {\n\t\tnumeric_values<-[];\n\t\tnumeric_values<+indicator_name::length(brix);\n\t}\n}\n'})}),"\n",(0,n.jsxs)(i.p,{children:["Don't forget to create an agent of this species in the ",(0,n.jsx)(i.code,{children:"global"})," ",(0,n.jsx)(i.code,{children:"init"}),"."]}),"\n",(0,n.jsx)(i.pre,{children:(0,n.jsx)(i.code,{children:"create my_numeric_indicator;\n"})}),"\n",(0,n.jsxs)(i.p,{children:["For simple indicators, you can rely on creating an agent of the ",(0,n.jsx)(i.code,{children:"cityio_numeric_indicator"})," species in your ",(0,n.jsx)(i.code,{children:"global"})," ",(0,n.jsx)(i.code,{children:"init"}),". Here's an example:"]}),"\n",(0,n.jsx)(i.pre,{children:(0,n.jsx)(i.code,{children:'create cityio_numeric_indicator with: (viz_type:"bar", indicator_name: "Max Height", indicator_value: "max(brix collect each.height)");\n'})}),"\n",(0,n.jsx)(i.h2,{id:"basic-heatmap-indicator",children:"Basic heatmap indicator"}),"\n",(0,n.jsxs)(i.p,{children:["To create a heatmap indicator, define a species of agents that will act as ",(0,n.jsx)(i.em,{children:"observers"})," that will report the information to ",(0,n.jsx)(i.code,{children:"cityIO"}),". These agents need to have a location assigned to them. This species needs to have ",(0,n.jsx)(i.code,{children:"cityio_agent"})," as parent species."]}),"\n",(0,n.jsx)(i.p,{children:"You need to define three things:"}),"\n",(0,n.jsxs)(i.ul,{children:["\n",(0,n.jsxs)(i.li,{children:["Set ",(0,n.jsx)(i.code,{children:"is_heatmap"})," to ",(0,n.jsx)(i.code,{children:"true"}),"."]}),"\n",(0,n.jsxs)(i.li,{children:["Define a reflex that updates the ",(0,n.jsx)(i.code,{children:"heatmap_values"})," map (",(0,n.jsx)(i.code,{children:"map<string,float>"}),")."]}),"\n",(0,n.jsxs)(i.li,{children:["Define an ",(0,n.jsx)(i.code,{children:"indicator_name"})," either in the species definition or in the create statement."]}),"\n"]}),"\n",(0,n.jsx)(i.pre,{children:(0,n.jsx)(i.code,{children:'species thermometer parent: cityio_agent {\n\tbool is_heatmap<-true;\n\tstring indicator_name<-"thermometer";\n\t\n\treflex update_heatmap {\n\t\theatmap_values<-[];\n\t\theatmap_values<+ "heat"::rnd(10);\n\t\theatmap_values<+ "map"::rnd(10);\n\t}\t\n}\n'})}),"\n",(0,n.jsx)(i.h2,{id:"basic-agent-indicator",children:"Basic agent indicator"}),"\n",(0,n.jsxs)(i.p,{children:["Finally, you can easily add agents to be displayed in ",(0,n.jsx)(i.code,{children:"cityIO"}),". Interestingly, these are the easiest indicators to define. In fact, you can turn any species into a ",(0,n.jsx)(i.code,{children:"cityio_agent"})," by defining their parent class."]}),"\n",(0,n.jsx)(i.p,{children:"You need to is_visible two things:"}),"\n",(0,n.jsxs)(i.ul,{children:["\n",(0,n.jsxs)(i.li,{children:["Set ",(0,n.jsx)(i.code,{children:"is_heatmap"})," to ",(0,n.jsx)(i.code,{children:"true"}),"."]}),"\n",(0,n.jsx)(i.li,{children:"Define a reflex that updates the agent's location."}),"\n"]}),"\n",(0,n.jsx)(i.pre,{children:(0,n.jsx)(i.code,{children:"species people parent: cityio_agent skills:[moving]{ \n\tbool is_visible<-true;\n\t\n\treflex move{\n\t\tdo wander;\n\t}\n}\n"})}),"\n",(0,n.jsxs)(i.p,{children:["Additionally, you can define the integers ",(0,n.jsx)(i.code,{children:"profile"})," and ",(0,n.jsx)(i.code,{children:"mode"})," that will control the way they are displayed in the front end. You can also define reflexes that update these two properties. For example, you can differentiate between drivers and walkers, or between day workers and night workers, etc."]}),"\n",(0,n.jsx)(i.h2,{id:"full-module-example-with-comments",children:"Full module example (with comments)"}),"\n",(0,n.jsx)(i.pre,{children:(0,n.jsx)(i.code,{children:'model citIOGAMA\n\n// Import GAMABrix (this needs to be in the same directory as your model)\nimport "GAMABrix.gaml" \n\nglobal {\n\t// Define the table you\'ll be working with\n\tstring city_io_table<-"dungeonmaster";\n geometry shape <- envelope(setup_cityio_world());\n\n // Set post to true so that GAMABrix can post to cityIO\n\tbool post_on<-true;\n\t\n\tinit {\n\t\t// Create people based on species defined below\n\t\tcreate people number:10; \n\n\t\t// Create 100 points of a heatmap indicator (species defined below)\n\t\tcreate thermometer number:100;\n\n\t\t// Use cityio_numeric_indicator to define a mean block height numeric indicator\n\t\tcreate cityio_numeric_indicator with: (viz_type:"bar",indicator_name: "Mean Height", indicator_value: "mean(brix collect each.height)");\n\t\t\n\t\t// Create a numeric indicator based on the species defined below\n\t\tcreate my_numeric_indicator with: (viz_type:"bar",indicator_name: "Number of blocks");\n\t}\n\t\n\t\n}\n\n// Define a custom numeric indicator\nspecies my_numeric_indicator parent: cityio_agent {\n\t// Set the indicator as numeric\n\tbool is_numeric<-true;\n\n\t// Visualize it as a bar chart\n\tstring viz_type <- "bar";\n\t\n\t// Define reflex that updates numeric_values\n\treflex update_numeric {\n\t\tnumeric_values<-[];\n\t\tnumeric_values<+indicator_name::length(brix);\n\t}\n}\n\n// Define custom heatmap indicator\nspecies thermometer parent: cityio_agent {\n\t// Set the indicator as heatmap\n\tbool is_heatmap<-true;\n\n\t// Define reflex that updates heatmap_values\n\treflex update_heatmap {\n\t\theatmap_values<-[];\n\t\theatmap_values<+ "heat"::rnd(10);\n\t\theatmap_values<+ "map"::rnd(10);\n\t}\t\n}\n\n// Define people, to be used as agent indicators\nspecies people parent: cityio_agent skills:[moving]{ \n\t// Set agents as visible in cityIO\n\tbool is_visible<-true;\n\t\n\t// Update the agents location at every step\n\treflex move{\n\t\tdo wander;\n\t}\n\t\n\t// Set base aspect to visualize in GAMA GUI\n\taspect base{\n\t\tdraw circle(10) color:#blue;\n\t}\n}\n\n// Define a experiment to visualize in GUI\nexperiment CityScope type: gui autorun:false{\n\toutput {\n\t\tdisplay map_mode type:opengl background:#black{\t\n\t\t\tspecies brix aspect:base;\n\t\t\tspecies people aspect:base position:{0,0,0.1};\n\t\t}\n\t}\n}\n'})})]})}function h(e={}){const{wrapper:i}={...(0,o.R)(),...e.components};return i?(0,n.jsx)(i,{...e,children:(0,n.jsx)(d,{...e})}):d(e)}},8453:(e,i,t)=>{t.d(i,{R:()=>r,x:()=>s});var n=t(6540);const o={},a=n.createContext(o);function r(e){const i=n.useContext(a);return n.useMemo((function(){return"function"==typeof e?e(i):{...i,...e}}),[i,e])}function s(e){let i;return i=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:r(e.components),n.createElement(a.Provider,{value:i},e.children)}}}]); \ No newline at end of file diff --git a/build/assets/js/main.1f802b69.js b/build/assets/js/main.1f802b69.js deleted file mode 100644 index cbb678c9..00000000 --- a/build/assets/js/main.1f802b69.js +++ /dev/null @@ -1,2 +0,0 @@ -/*! For license information please see main.1f802b69.js.LICENSE.txt */ -(self.webpackChunkcityscope_docs=self.webpackChunkcityscope_docs||[]).push([[792],{8328:(e,t,n)=>{"use strict";n.d(t,{A:()=>p});n(6540);var r=n(3259),a=n.n(r),o=n(4054);const i={"02b7a71d":[()=>n.e(123).then(n.bind(n,3386)),"@site/docs/cityio/CityIO - UI.md",3386],"0952c0dc":[()=>n.e(157).then(n.t.bind(n,1966,19)),"/Users/noyman/GIT/cityscope.github.io/.docusaurus/docusaurus-plugin-content-docs/default/plugin-route-context-module-100.json",1966],"0a23f7ce":[()=>n.e(394).then(n.t.bind(n,4455,19)),"~docs/default/category-sidebar-category-cityio-936.json",4455],"1438b9ab":[()=>n.e(735).then(n.bind(n,6292)),"@site/docs/archive/brix/Tutorial/Tutorial.md",6292],"14eb3368":[()=>Promise.all([n.e(869),n.e(969)]).then(n.bind(n,7247)),"@theme/DocCategoryGeneratedIndexPage",7247],17896441:[()=>Promise.all([n.e(869),n.e(401)]).then(n.bind(n,6041)),"@theme/DocItem",6041],"2eb856f7":[()=>n.e(370).then(n.bind(n,4979)),"@site/docs/cityscopejs/Introduction.md",4979],"3027556f":[()=>n.e(793).then(n.bind(n,614)),"@site/docs/cityio/Introduction.md",614],"3c6077be":[()=>n.e(694).then(n.bind(n,8408)),"@site/docs/modules/brix/Module example.md",8408],"40e175d5":[()=>n.e(132).then(n.bind(n,756)),"@site/docs/tanglibe user interfaces/specs.md",756],"41d6af12":[()=>n.e(408).then(n.t.bind(n,3301,19)),"~docs/default/category-sidebar-category-archive-034.json",3301],"4206db4b":[()=>n.e(887).then(n.bind(n,2635)),"@site/docs/archive/cityio/api.md",2635],"4a555622":[()=>n.e(117).then(n.bind(n,3635)),"@site/docs/cityio/CityIO - Core.md",3635],"4e15b2cd":[()=>n.e(861).then(n.bind(n,5621)),"@site/docs/modules/brix/DeckGL Modules.md",5621],"57aa5823":[()=>n.e(459).then(n.bind(n,2384)),"@site/docs/cityio/CityIO - Module.md",2384],"5a7a18e6":[()=>n.e(383).then(n.bind(n,7020)),"@site/docs/cityio/API.md",7020],"5e95c892":[()=>n.e(647).then(n.bind(n,7121)),"@theme/DocsRoot",7121],62455296:[()=>n.e(710).then(n.bind(n,8686)),"@site/docs/archive/cityio/notes.md",8686],"6dfefd1c":[()=>n.e(440).then(n.bind(n,8400)),"@site/docs/intro/github.md",8400],"6f967107":[()=>n.e(261).then(n.bind(n,8268)),"@site/docs/archive/h3/h3.md",8268],"70b71d1a":[()=>n.e(730).then(n.bind(n,977)),"@site/docs/cityio/Architecture.md",977],"7332f3ba":[()=>n.e(860).then(n.bind(n,6842)),"@site/docs/modules/brix/Introduction.md",6842],"7365a548":[()=>n.e(376).then(n.t.bind(n,484,19)),"~docs/default/category-sidebar-category-brix-78f.json",484],"78363d9c":[()=>n.e(760).then(n.bind(n,1468)),"@site/docs/tanglibe user interfaces/RoboScope.md",1468],"7980bb0e":[()=>n.e(418).then(n.t.bind(n,3139,19)),"~docs/default/category-sidebar-category-tangible-user-interfaces-b4d.json",3139],"7d744e69":[()=>n.e(741).then(n.bind(n,9433)),"@site/docs/intro/intro.md",9433],"8529a1a6":[()=>n.e(374).then(n.bind(n,784)),"@site/docs/archive/brix/Brix.md",784],"89ac796e":[()=>n.e(949).then(n.bind(n,8649)),"@site/docs/tanglibe user interfaces/CityScoPy.md",8649],"8a98b319":[()=>n.e(898).then(n.t.bind(n,7781,19)),"~docs/default/category-sidebar-category-cityscopejs-a97.json",7781],"8fd40d43":[()=>n.e(402).then(n.bind(n,4358)),"@site/docs/intro/system.md",4358],"935f2afb":[()=>n.e(581).then(n.t.bind(n,5610,19)),"~docs/default/version-current-metadata-prop-751.json",5610],"9576d6be":[()=>n.e(379).then(n.bind(n,1452)),"@site/docs/archive/cityio/cityio.md",1452],"969018c5":[()=>n.e(890).then(n.t.bind(n,5622,19)),"~docs/default/category-sidebar-category-modules-885.json",5622],a38df249:[()=>n.e(946).then(n.bind(n,3833)),"@site/docs/cityscopejs/Opening a project.md",3833],a7bd4aaa:[()=>n.e(98).then(n.bind(n,4532)),"@theme/DocVersionRoot",4532],a94703ab:[()=>Promise.all([n.e(869),n.e(48)]).then(n.bind(n,2559)),"@theme/DocRoot",2559],b632e823:[()=>n.e(666).then(n.bind(n,9931)),"@site/docs/modules/Core Modules/Introduction.md",9931],b87b04f0:[()=>n.e(852).then(n.bind(n,990)),"@site/docs/archive/brix/Examples/Examples.md",990],cf9c09d8:[()=>n.e(49).then(n.bind(n,5431)),"@site/docs/archive/cityio/build.md",5431],d9dcfff4:[()=>n.e(743).then(n.bind(n,5485)),"@site/docs/cityscopejs/Project view.md",5485],eab65581:[()=>n.e(338).then(n.bind(n,3505)),"@site/docs/modules/types.md",3505],f30f61d4:[()=>n.e(783).then(n.bind(n,2179)),"@site/docs/archive/brix/GAMA.md",2179]};var l=n(4848);function s(e){let{error:t,retry:n,pastDelay:r}=e;return t?(0,l.jsxs)("div",{style:{textAlign:"center",color:"#fff",backgroundColor:"#fa383e",borderColor:"#fa383e",borderStyle:"solid",borderRadius:"0.25rem",borderWidth:"1px",boxSizing:"border-box",display:"block",padding:"1rem",flex:"0 0 50%",marginLeft:"25%",marginRight:"25%",marginTop:"5rem",maxWidth:"50%",width:"100%"},children:[(0,l.jsx)("p",{children:String(t)}),(0,l.jsx)("div",{children:(0,l.jsx)("button",{type:"button",onClick:n,children:"Retry"})})]}):r?(0,l.jsx)("div",{style:{display:"flex",justifyContent:"center",alignItems:"center",height:"100vh"},children:(0,l.jsx)("svg",{id:"loader",style:{width:128,height:110,position:"absolute",top:"calc(100vh - 64%)"},viewBox:"0 0 45 45",xmlns:"http://www.w3.org/2000/svg",stroke:"#61dafb",children:(0,l.jsxs)("g",{fill:"none",fillRule:"evenodd",transform:"translate(1 1)",strokeWidth:"2",children:[(0,l.jsxs)("circle",{cx:"22",cy:"22",r:"6",strokeOpacity:"0",children:[(0,l.jsx)("animate",{attributeName:"r",begin:"1.5s",dur:"3s",values:"6;22",calcMode:"linear",repeatCount:"indefinite"}),(0,l.jsx)("animate",{attributeName:"stroke-opacity",begin:"1.5s",dur:"3s",values:"1;0",calcMode:"linear",repeatCount:"indefinite"}),(0,l.jsx)("animate",{attributeName:"stroke-width",begin:"1.5s",dur:"3s",values:"2;0",calcMode:"linear",repeatCount:"indefinite"})]}),(0,l.jsxs)("circle",{cx:"22",cy:"22",r:"6",strokeOpacity:"0",children:[(0,l.jsx)("animate",{attributeName:"r",begin:"3s",dur:"3s",values:"6;22",calcMode:"linear",repeatCount:"indefinite"}),(0,l.jsx)("animate",{attributeName:"stroke-opacity",begin:"3s",dur:"3s",values:"1;0",calcMode:"linear",repeatCount:"indefinite"}),(0,l.jsx)("animate",{attributeName:"stroke-width",begin:"3s",dur:"3s",values:"2;0",calcMode:"linear",repeatCount:"indefinite"})]}),(0,l.jsx)("circle",{cx:"22",cy:"22",r:"8",children:(0,l.jsx)("animate",{attributeName:"r",begin:"0s",dur:"1.5s",values:"6;1;2;3;4;5;6",calcMode:"linear",repeatCount:"indefinite"})})]})})}):null}var u=n(6921),c=n(3102);function d(e,t){if("*"===e)return a()({loading:s,loader:()=>n.e(237).then(n.bind(n,2237)),modules:["@theme/NotFound"],webpack:()=>[2237],render(e,t){const n=e.default;return(0,l.jsx)(c.W,{value:{plugin:{name:"native",id:"default"}},children:(0,l.jsx)(n,{...t})})}});const r=o[e+"-"+t],d={},p=[],f=[],m=(0,u.A)(r);return Object.entries(m).forEach((e=>{let[t,n]=e;const r=i[n];r&&(d[t]=r[0],p.push(r[1]),f.push(r[2]))})),a().Map({loading:s,loader:d,modules:p,webpack:()=>f,render(t,n){const a=JSON.parse(JSON.stringify(r));Object.entries(t).forEach((t=>{let[n,r]=t;const o=r.default;if(!o)throw new Error("The page component at "+e+" doesn't have a default export. This makes it impossible to render anything. Consider default-exporting a React component.");"object"!=typeof o&&"function"!=typeof o||Object.keys(r).filter((e=>"default"!==e)).forEach((e=>{o[e]=r[e]}));let i=a;const l=n.split(".");l.slice(0,-1).forEach((e=>{i=i[e]})),i[l[l.length-1]]=o}));const o=a.__comp;delete a.__comp;const i=a.__context;return delete a.__context,(0,l.jsx)(c.W,{value:i,children:(0,l.jsx)(o,{...a,...n})})}})}const p=[{path:"/",component:d("/","958"),routes:[{path:"/",component:d("/","3b5"),routes:[{path:"/",component:d("/","fd7"),routes:[{path:"/archive/brix/",component:d("/archive/brix/","140"),exact:!0,sidebar:"sidebar"},{path:"/archive/brix/Examples/",component:d("/archive/brix/Examples/","442"),exact:!0,sidebar:"sidebar"},{path:"/archive/brix/GAMA",component:d("/archive/brix/GAMA","ae8"),exact:!0,sidebar:"sidebar"},{path:"/archive/brix/Tutorial/",component:d("/archive/brix/Tutorial/","c50"),exact:!0,sidebar:"sidebar"},{path:"/archive/cityio/",component:d("/archive/cityio/","e6a"),exact:!0,sidebar:"sidebar"},{path:"/archive/cityio/API",component:d("/archive/cityio/API","6aa"),exact:!0,sidebar:"sidebar"},{path:"/archive/cityio/Build",component:d("/archive/cityio/Build","95e"),exact:!0,sidebar:"sidebar"},{path:"/archive/cityio/Internal_Note",component:d("/archive/cityio/Internal_Note","6f4"),exact:!0,sidebar:"sidebar"},{path:"/archive/h3/",component:d("/archive/h3/","932"),exact:!0,sidebar:"sidebar"},{path:"/category/archive",component:d("/category/archive","e51"),exact:!0,sidebar:"sidebar"},{path:"/category/brix",component:d("/category/brix","3b5"),exact:!0,sidebar:"sidebar"},{path:"/category/cityio",component:d("/category/cityio","165"),exact:!0,sidebar:"sidebar"},{path:"/category/cityscopejs",component:d("/category/cityscopejs","2a7"),exact:!0,sidebar:"sidebar"},{path:"/category/modules",component:d("/category/modules","784"),exact:!0,sidebar:"sidebar"},{path:"/category/tangible-user-interfaces",component:d("/category/tangible-user-interfaces","4f9"),exact:!0,sidebar:"sidebar"},{path:"/cityio/API",component:d("/cityio/API","c37"),exact:!0,sidebar:"sidebar"},{path:"/cityio/Architecture",component:d("/cityio/Architecture","aa5"),exact:!0,sidebar:"sidebar"},{path:"/cityio/CityIO - Core",component:d("/cityio/CityIO - Core","aa1"),exact:!0,sidebar:"sidebar"},{path:"/cityio/CityIO - Module",component:d("/cityio/CityIO - Module","5dd"),exact:!0,sidebar:"sidebar"},{path:"/cityio/CityIO - UI",component:d("/cityio/CityIO - UI","6ae"),exact:!0,sidebar:"sidebar"},{path:"/cityio/Introduction",component:d("/cityio/Introduction","0eb"),exact:!0,sidebar:"sidebar"},{path:"/cityscopejs/Introduction",component:d("/cityscopejs/Introduction","389"),exact:!0,sidebar:"sidebar"},{path:"/cityscopejs/Opening a project",component:d("/cityscopejs/Opening a project","f07"),exact:!0,sidebar:"sidebar"},{path:"/cityscopejs/Project view",component:d("/cityscopejs/Project view","55f"),exact:!0,sidebar:"sidebar"},{path:"/intro/github",component:d("/intro/github","55e"),exact:!0,sidebar:"sidebar"},{path:"/intro/system",component:d("/intro/system","bc2"),exact:!0,sidebar:"sidebar"},{path:"/modules/brix/DeckGL Modules",component:d("/modules/brix/DeckGL Modules","261"),exact:!0,sidebar:"sidebar"},{path:"/modules/brix/Introduction",component:d("/modules/brix/Introduction","cb3"),exact:!0,sidebar:"sidebar"},{path:"/modules/brix/Module example",component:d("/modules/brix/Module example","170"),exact:!0,sidebar:"sidebar"},{path:"/modules/Core Modules/Introduction",component:d("/modules/Core Modules/Introduction","ccd"),exact:!0,sidebar:"sidebar"},{path:"/modules/Types System",component:d("/modules/Types System","3c9"),exact:!0,sidebar:"sidebar"},{path:"/tanglibe user interfaces/CityScope Table Design",component:d("/tanglibe user interfaces/CityScope Table Design","189"),exact:!0,sidebar:"sidebar"},{path:"/tanglibe user interfaces/CityScoPy",component:d("/tanglibe user interfaces/CityScoPy","a24"),exact:!0,sidebar:"sidebar"},{path:"/tanglibe user interfaces/RoboScope",component:d("/tanglibe user interfaces/RoboScope","560"),exact:!0,sidebar:"sidebar"},{path:"/",component:d("/","e98"),exact:!0,sidebar:"sidebar"}]}]}]},{path:"*",component:d("*")}]},6125:(e,t,n)=>{"use strict";n.d(t,{o:()=>o,x:()=>i});var r=n(6540),a=n(4848);const o=r.createContext(!1);function i(e){let{children:t}=e;const[n,i]=(0,r.useState)(!1);return(0,r.useEffect)((()=>{i(!0)}),[]),(0,a.jsx)(o.Provider,{value:n,children:t})}},8536:(e,t,n)=>{"use strict";var r=n(6540),a=n(5338),o=n(4625),i=n(545),l=n(8193);const s=[n(119),n(6134),n(6294)];var u=n(8328),c=n(6347),d=n(2831),p=n(4848);function f(e){let{children:t}=e;return(0,p.jsx)(p.Fragment,{children:t})}var m=n(5260),h=n(4586),g=n(6025),y=n(6342),b=n(1003),v=n(2131),w=n(4090),k=n(2967),x=n(440),S=n(1463);function E(){const{i18n:{currentLocale:e,defaultLocale:t,localeConfigs:n}}=(0,h.A)(),r=(0,v.o)(),a=n[e].htmlLang,o=e=>e.replace("-","_");return(0,p.jsxs)(m.A,{children:[Object.entries(n).map((e=>{let[t,{htmlLang:n}]=e;return(0,p.jsx)("link",{rel:"alternate",href:r.createUrl({locale:t,fullyQualified:!0}),hrefLang:n},t)})),(0,p.jsx)("link",{rel:"alternate",href:r.createUrl({locale:t,fullyQualified:!0}),hrefLang:"x-default"}),(0,p.jsx)("meta",{property:"og:locale",content:o(a)}),Object.values(n).filter((e=>a!==e.htmlLang)).map((e=>(0,p.jsx)("meta",{property:"og:locale:alternate",content:o(e.htmlLang)},"meta-og-"+e.htmlLang)))]})}function C(e){let{permalink:t}=e;const{siteConfig:{url:n}}=(0,h.A)(),r=function(){const{siteConfig:{url:e,baseUrl:t,trailingSlash:n}}=(0,h.A)(),{pathname:r}=(0,c.zy)();return e+(0,x.applyTrailingSlash)((0,g.A)(r),{trailingSlash:n,baseUrl:t})}(),a=t?""+n+t:r;return(0,p.jsxs)(m.A,{children:[(0,p.jsx)("meta",{property:"og:url",content:a}),(0,p.jsx)("link",{rel:"canonical",href:a})]})}function _(){const{i18n:{currentLocale:e}}=(0,h.A)(),{metadata:t,image:n}=(0,y.p)();return(0,p.jsxs)(p.Fragment,{children:[(0,p.jsxs)(m.A,{children:[(0,p.jsx)("meta",{name:"twitter:card",content:"summary_large_image"}),(0,p.jsx)("body",{className:w.w})]}),n&&(0,p.jsx)(b.be,{image:n}),(0,p.jsx)(C,{}),(0,p.jsx)(E,{}),(0,p.jsx)(S.A,{tag:k.Cy,locale:e}),(0,p.jsx)(m.A,{children:t.map(((e,t)=>(0,p.jsx)("meta",{...e},t)))})]})}const A=new Map;function T(e){if(A.has(e.pathname))return{...e,pathname:A.get(e.pathname)};if((0,d.u)(u.A,e.pathname).some((e=>{let{route:t}=e;return!0===t.exact})))return A.set(e.pathname,e.pathname),e;const t=e.pathname.trim().replace(/(?:\/index)?\.html$/,"")||"/";return A.set(e.pathname,t),{...e,pathname:t}}var j=n(6125),N=n(6988),L=n(205);function P(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];const a=s.map((t=>{var r,a;const o=null!=(r=null==(a=t.default)?void 0:a[e])?r:t[e];return null==o?void 0:o(...n)}));return()=>a.forEach((e=>null==e?void 0:e()))}const R=function(e){let{children:t,location:n,previousLocation:r}=e;return(0,L.A)((()=>{r!==n&&(!function(e){let{location:t,previousLocation:n}=e;if(!n)return;const r=t.pathname===n.pathname,a=t.hash===n.hash,o=t.search===n.search;if(r&&a&&!o)return;const{hash:i}=t;if(i){const e=decodeURIComponent(i.substring(1)),t=document.getElementById(e);null==t||t.scrollIntoView()}else window.scrollTo(0,0)}({location:n,previousLocation:r}),P("onRouteDidUpdate",{previousLocation:r,location:n}))}),[r,n]),t};function O(e){const t=Array.from(new Set([e,decodeURI(e)])).map((e=>(0,d.u)(u.A,e))).flat();return Promise.all(t.map((e=>null==e.route.component.preload?void 0:e.route.component.preload())))}class I extends r.Component{constructor(e){super(e),this.previousLocation=void 0,this.routeUpdateCleanupCb=void 0,this.previousLocation=null,this.routeUpdateCleanupCb=l.A.canUseDOM?P("onRouteUpdate",{previousLocation:null,location:this.props.location}):()=>{},this.state={nextRouteHasLoaded:!0}}shouldComponentUpdate(e,t){if(e.location===this.props.location)return t.nextRouteHasLoaded;const n=e.location;return this.previousLocation=this.props.location,this.setState({nextRouteHasLoaded:!1}),this.routeUpdateCleanupCb=P("onRouteUpdate",{previousLocation:this.previousLocation,location:n}),O(n.pathname).then((()=>{this.routeUpdateCleanupCb(),this.setState({nextRouteHasLoaded:!0})})).catch((e=>{console.warn(e),window.location.reload()})),!1}render(){const{children:e,location:t}=this.props;return(0,p.jsx)(R,{previousLocation:this.previousLocation,location:t,children:(0,p.jsx)(c.qh,{location:t,render:()=>e})})}}const D=I,M="__docusaurus-base-url-issue-banner-container",F="__docusaurus-base-url-issue-banner",z="__docusaurus-base-url-issue-banner-suggestion-container";function B(e){return"\ndocument.addEventListener('DOMContentLoaded', function maybeInsertBanner() {\n var shouldInsert = typeof window['docusaurus'] === 'undefined';\n shouldInsert && insertBanner();\n});\n\nfunction insertBanner() {\n var bannerContainer = document.createElement('div');\n bannerContainer.id = '"+M+"';\n var bannerHtml = "+JSON.stringify(function(e){return'\n<div id="'+F+'" style="border: thick solid red; background-color: rgb(255, 230, 179); margin: 20px; padding: 20px; font-size: 20px;">\n <p style="font-weight: bold; font-size: 30px;">Your Docusaurus site did not load properly.</p>\n <p>A very common reason is a wrong site <a href="https://docusaurus.io/docs/docusaurus.config.js/#baseUrl" style="font-weight: bold;">baseUrl configuration</a>.</p>\n <p>Current configured baseUrl = <span style="font-weight: bold; color: red;">'+e+"</span> "+("/"===e?" (default value)":"")+'</p>\n <p>We suggest trying baseUrl = <span id="'+z+'" style="font-weight: bold; color: green;"></span></p>\n</div>\n'}(e)).replace(/</g,"\\<")+";\n bannerContainer.innerHTML = bannerHtml;\n document.body.prepend(bannerContainer);\n var suggestionContainer = document.getElementById('"+z+"');\n var actualHomePagePath = window.location.pathname;\n var suggestedBaseUrl = actualHomePagePath.substr(-1) === '/'\n ? actualHomePagePath\n : actualHomePagePath + '/';\n suggestionContainer.innerHTML = suggestedBaseUrl;\n}\n"}function U(){const{siteConfig:{baseUrl:e}}=(0,h.A)();return(0,p.jsx)(p.Fragment,{children:!l.A.canUseDOM&&(0,p.jsx)(m.A,{children:(0,p.jsx)("script",{children:B(e)})})})}function $(){const{siteConfig:{baseUrl:e,baseUrlIssueBanner:t}}=(0,h.A)(),{pathname:n}=(0,c.zy)();return t&&n===e?(0,p.jsx)(U,{}):null}function q(){const{siteConfig:{favicon:e,title:t,noIndex:n},i18n:{currentLocale:r,localeConfigs:a}}=(0,h.A)(),o=(0,g.A)(e),{htmlLang:i,direction:l}=a[r];return(0,p.jsxs)(m.A,{children:[(0,p.jsx)("html",{lang:i,dir:l}),(0,p.jsx)("title",{children:t}),(0,p.jsx)("meta",{property:"og:title",content:t}),(0,p.jsx)("meta",{name:"viewport",content:"width=device-width, initial-scale=1.0"}),n&&(0,p.jsx)("meta",{name:"robots",content:"noindex, nofollow"}),e&&(0,p.jsx)("link",{rel:"icon",href:o})]})}var G=n(7489),H=n(2303);function V(){const e=(0,H.A)();return(0,p.jsx)(m.A,{children:(0,p.jsx)("html",{"data-has-hydrated":e})})}function W(){const e=(0,d.v)(u.A),t=(0,c.zy)();return(0,p.jsx)(G.A,{children:(0,p.jsx)(N.l,{children:(0,p.jsxs)(j.x,{children:[(0,p.jsxs)(f,{children:[(0,p.jsx)(q,{}),(0,p.jsx)(_,{}),(0,p.jsx)($,{}),(0,p.jsx)(D,{location:T(t),children:e})]}),(0,p.jsx)(V,{})]})})})}var Q=n(4054);const K=function(e){try{return document.createElement("link").relList.supports(e)}catch{return!1}}("prefetch")?function(e){return new Promise(((t,n)=>{var r,a;if("undefined"==typeof document)return void n();const o=document.createElement("link");o.setAttribute("rel","prefetch"),o.setAttribute("href",e),o.onload=()=>t(),o.onerror=()=>n();const i=null!=(r=document.getElementsByTagName("head")[0])?r:null==(a=document.getElementsByName("script")[0])?void 0:a.parentNode;null==i||i.appendChild(o)}))}:function(e){return new Promise(((t,n)=>{const r=new XMLHttpRequest;r.open("GET",e,!0),r.withCredentials=!0,r.onload=()=>{200===r.status?t():n()},r.send(null)}))};var Y=n(6921);const Z=new Set,X=new Set,J=()=>{var e,t;return(null==(e=navigator.connection)?void 0:e.effectiveType.includes("2g"))||(null==(t=navigator.connection)?void 0:t.saveData)},ee={prefetch(e){if(!(e=>!J()&&!X.has(e)&&!Z.has(e))(e))return!1;Z.add(e);const t=(0,d.u)(u.A,e).flatMap((e=>{return t=e.route.path,Object.entries(Q).filter((e=>{let[n]=e;return n.replace(/-[^-]+$/,"")===t})).flatMap((e=>{let[,t]=e;return Object.values((0,Y.A)(t))}));var t}));return Promise.all(t.map((e=>{const t=n.gca(e);return t&&!t.includes("undefined")?K(t).catch((()=>{})):Promise.resolve()})))},preload:e=>!!(e=>!J()&&!X.has(e))(e)&&(X.add(e),O(e))},te=Object.freeze(ee),ne=Boolean(!0);if(l.A.canUseDOM){window.docusaurus=te;const e=document.getElementById("__docusaurus"),t=(0,p.jsx)(i.vd,{children:(0,p.jsx)(o.Kd,{children:(0,p.jsx)(W,{})})}),n=(e,t)=>{console.error("Docusaurus React Root onRecoverableError:",e,t)},l=()=>{if(ne)r.startTransition((()=>{a.hydrateRoot(e,t,{onRecoverableError:n})}));else{const o=a.createRoot(e,{onRecoverableError:n});r.startTransition((()=>{o.render(t)}))}};O(window.location.pathname).then(l)}},6988:(e,t,n)=>{"use strict";n.d(t,{o:()=>d,l:()=>p});var r=n(6540),a=n(4784);const o=JSON.parse('{"docusaurus-plugin-content-docs":{"default":{"path":"/","versions":[{"name":"current","label":"Next","isLast":true,"path":"/","mainDocId":"intro/intro","docs":[{"id":"archive/brix/Brix","path":"/archive/brix/","sidebar":"sidebar"},{"id":"archive/brix/Examples/Examples","path":"/archive/brix/Examples/","sidebar":"sidebar"},{"id":"archive/brix/GAMA","path":"/archive/brix/GAMA","sidebar":"sidebar"},{"id":"archive/brix/Tutorial/Tutorial","path":"/archive/brix/Tutorial/","sidebar":"sidebar"},{"id":"archive/cityio/API","path":"/archive/cityio/API","sidebar":"sidebar"},{"id":"archive/cityio/Build","path":"/archive/cityio/Build","sidebar":"sidebar"},{"id":"archive/cityio/CityIO","path":"/archive/cityio/","sidebar":"sidebar"},{"id":"archive/cityio/Internal_Note","path":"/archive/cityio/Internal_Note","sidebar":"sidebar"},{"id":"archive/h3/h3","path":"/archive/h3/","sidebar":"sidebar"},{"id":"cityio/API","path":"/cityio/API","sidebar":"sidebar"},{"id":"cityio/Architecture","path":"/cityio/Architecture","sidebar":"sidebar"},{"id":"cityio/CityIO - Core","path":"/cityio/CityIO - Core","sidebar":"sidebar"},{"id":"cityio/CityIO - Module","path":"/cityio/CityIO - Module","sidebar":"sidebar"},{"id":"cityio/CityIO - UI","path":"/cityio/CityIO - UI","sidebar":"sidebar"},{"id":"cityio/Introduction","path":"/cityio/Introduction","sidebar":"sidebar"},{"id":"cityscopejs/Introduction","path":"/cityscopejs/Introduction","sidebar":"sidebar"},{"id":"cityscopejs/Opening a project","path":"/cityscopejs/Opening a project","sidebar":"sidebar"},{"id":"cityscopejs/Project view","path":"/cityscopejs/Project view","sidebar":"sidebar"},{"id":"intro/github","path":"/intro/github","sidebar":"sidebar"},{"id":"intro/intro","path":"/","sidebar":"sidebar"},{"id":"intro/system","path":"/intro/system","sidebar":"sidebar"},{"id":"modules/brix/DeckGL Modules","path":"/modules/brix/DeckGL Modules","sidebar":"sidebar"},{"id":"modules/brix/Introduction","path":"/modules/brix/Introduction","sidebar":"sidebar"},{"id":"modules/brix/Module example","path":"/modules/brix/Module example","sidebar":"sidebar"},{"id":"modules/Core Modules/Introduction","path":"/modules/Core Modules/Introduction","sidebar":"sidebar"},{"id":"modules/Types System","path":"/modules/Types System","sidebar":"sidebar"},{"id":"tanglibe user interfaces/CityScope Table Design","path":"/tanglibe user interfaces/CityScope Table Design","sidebar":"sidebar"},{"id":"tanglibe user interfaces/CityScoPy","path":"/tanglibe user interfaces/CityScoPy","sidebar":"sidebar"},{"id":"tanglibe user interfaces/RoboScope","path":"/tanglibe user interfaces/RoboScope","sidebar":"sidebar"},{"id":"/category/cityscopejs","path":"/category/cityscopejs","sidebar":"sidebar"},{"id":"/category/modules","path":"/category/modules","sidebar":"sidebar"},{"id":"/category/brix","path":"/category/brix","sidebar":"sidebar"},{"id":"/category/cityio","path":"/category/cityio","sidebar":"sidebar"},{"id":"/category/tangible-user-interfaces","path":"/category/tangible-user-interfaces","sidebar":"sidebar"},{"id":"/category/archive","path":"/category/archive","sidebar":"sidebar"}],"draftIds":[],"sidebars":{"sidebar":{"link":{"path":"/","label":"Introduction"}}}}],"breadcrumbs":true}}}'),i=JSON.parse('{"defaultLocale":"en","locales":["en"],"path":"i18n","currentLocale":"en","localeConfigs":{"en":{"label":"English","direction":"ltr","htmlLang":"en","calendar":"gregory","path":"en"}}}');var l=n(2654);const s=JSON.parse('{"docusaurusVersion":"3.2.1","pluginVersions":{"docusaurus-plugin-content-docs":{"type":"package","name":"@docusaurus/plugin-content-docs","version":"3.2.1"},"docusaurus-plugin-content-blog":{"type":"package","name":"@docusaurus/plugin-content-blog","version":"3.2.1"},"docusaurus-plugin-content-pages":{"type":"package","name":"@docusaurus/plugin-content-pages","version":"3.2.1"},"docusaurus-plugin-sitemap":{"type":"package","name":"@docusaurus/plugin-sitemap","version":"3.2.1"},"docusaurus-theme-classic":{"type":"package","name":"@docusaurus/theme-classic","version":"3.2.1"}}}');var u=n(4848);const c={siteConfig:a.A,siteMetadata:s,globalData:o,i18n:i,codeTranslations:l},d=r.createContext(c);function p(e){let{children:t}=e;return(0,u.jsx)(d.Provider,{value:c,children:t})}},7489:(e,t,n)=>{"use strict";n.d(t,{A:()=>h});var r=n(6540),a=n(8193),o=n(5260),i=n(440),l=n(781),s=n(3102),u=n(4848);function c(e){let{error:t,tryAgain:n}=e;return(0,u.jsxs)("div",{style:{display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"flex-start",minHeight:"100vh",width:"100%",maxWidth:"80ch",fontSize:"20px",margin:"0 auto",padding:"1rem"},children:[(0,u.jsx)("h1",{style:{fontSize:"3rem"},children:"This page crashed"}),(0,u.jsx)("button",{type:"button",onClick:n,style:{margin:"1rem 0",fontSize:"2rem",cursor:"pointer",borderRadius:20,padding:"1rem"},children:"Try again"}),(0,u.jsx)(d,{error:t})]})}function d(e){let{error:t}=e;const n=(0,i.getErrorCausalChain)(t).map((e=>e.message)).join("\n\nCause:\n");return(0,u.jsx)("p",{style:{whiteSpace:"pre-wrap"},children:n})}function p(e){let{children:t}=e;return(0,u.jsx)(s.W,{value:{plugin:{name:"docusaurus-core-error-boundary",id:"default"}},children:t})}function f(e){let{error:t,tryAgain:n}=e;return(0,u.jsx)(p,{children:(0,u.jsxs)(h,{fallback:()=>(0,u.jsx)(c,{error:t,tryAgain:n}),children:[(0,u.jsx)(o.A,{children:(0,u.jsx)("title",{children:"Page Error"})}),(0,u.jsx)(l.A,{children:(0,u.jsx)(c,{error:t,tryAgain:n})})]})})}const m=e=>(0,u.jsx)(f,{...e});class h extends r.Component{constructor(e){super(e),this.state={error:null}}componentDidCatch(e){a.A.canUseDOM&&this.setState({error:e})}render(){const{children:e}=this.props,{error:t}=this.state;if(t){var n;const e={error:t,tryAgain:()=>this.setState({error:null})};return(null!=(n=this.props.fallback)?n:m)(e)}return null!=e?e:null}}},8193:(e,t,n)=>{"use strict";n.d(t,{A:()=>a});const r="undefined"!=typeof window&&"document"in window&&"createElement"in window.document,a={canUseDOM:r,canUseEventListeners:r&&("addEventListener"in window||"attachEvent"in window),canUseIntersectionObserver:r&&"IntersectionObserver"in window,canUseViewport:r&&"screen"in window}},5260:(e,t,n)=>{"use strict";n.d(t,{A:()=>o});n(6540);var r=n(545),a=n(4848);function o(e){return(0,a.jsx)(r.mg,{...e})}},8774:(e,t,n)=>{"use strict";n.d(t,{A:()=>f});var r=n(6540),a=n(4625),o=n(440),i=n(4586),l=n(6654),s=n(8193),u=n(3427),c=n(6025),d=n(4848);function p(e,t){var n,p;let{isNavLink:f,to:m,href:h,activeClassName:g,isActive:y,"data-noBrokenLinkCheck":b,autoAddBaseUrl:v=!0,...w}=e;const{siteConfig:{trailingSlash:k,baseUrl:x}}=(0,i.A)(),{withBaseUrl:S}=(0,c.h)(),E=(0,u.A)(),C=(0,r.useRef)(null);(0,r.useImperativeHandle)(t,(()=>C.current));const _=m||h;const A=(0,l.A)(_),T=null==_?void 0:_.replace("pathname://","");let j=void 0!==T?(N=T,v&&(e=>e.startsWith("/"))(N)?S(N):N):void 0;var N;j&&A&&(j=(0,o.applyTrailingSlash)(j,{trailingSlash:k,baseUrl:x}));const L=(0,r.useRef)(!1),P=f?a.k2:a.N_,R=s.A.canUseIntersectionObserver,O=(0,r.useRef)(),I=()=>{L.current||null==j||(window.docusaurus.preload(j),L.current=!0)};(0,r.useEffect)((()=>(!R&&A&&null!=j&&window.docusaurus.prefetch(j),()=>{R&&O.current&&O.current.disconnect()})),[O,j,R,A]);const D=null!=(n=null==(p=j)?void 0:p.startsWith("#"))&&n,M=!w.target||"_self"===w.target,F=!j||!A||!M||D;return b||!D&&F||E.collectLink(j),w.id&&E.collectAnchor(w.id),F?(0,d.jsx)("a",{ref:C,href:j,..._&&!A&&{target:"_blank",rel:"noopener noreferrer"},...w}):(0,d.jsx)(P,{...w,onMouseEnter:I,onTouchStart:I,innerRef:e=>{C.current=e,R&&e&&A&&(O.current=new window.IntersectionObserver((t=>{t.forEach((t=>{e===t.target&&(t.isIntersecting||t.intersectionRatio>0)&&(O.current.unobserve(e),O.current.disconnect(),null!=j&&window.docusaurus.prefetch(j))}))})),O.current.observe(e))},to:j,...f&&{isActive:y,activeClassName:g}})}const f=r.forwardRef(p)},418:(e,t,n)=>{"use strict";n.d(t,{A:()=>r});const r=()=>null},1312:(e,t,n)=>{"use strict";n.d(t,{A:()=>u,T:()=>s});var r=n(6540),a=n(4848);function o(e,t){const n=e.split(/(\{\w+\})/).map(((e,n)=>{if(n%2==1){const n=null==t?void 0:t[e.slice(1,-1)];if(void 0!==n)return n}return e}));return n.some((e=>(0,r.isValidElement)(e)))?n.map(((e,t)=>(0,r.isValidElement)(e)?r.cloneElement(e,{key:t}):e)).filter((e=>""!==e)):n.join("")}var i=n(2654);function l(e){var t,n;let{id:r,message:a}=e;if(void 0===r&&void 0===a)throw new Error("Docusaurus translation declarations must have at least a translation id or a default translation message");return null!=(t=null!=(n=i[null!=r?r:a])?n:a)?t:r}function s(e,t){let{message:n,id:r}=e;return o(l({message:n,id:r}),t)}function u(e){let{children:t,id:n,values:r}=e;if(t&&"string"!=typeof t)throw console.warn("Illegal <Translate> children",t),new Error("The Docusaurus <Translate> component only accept simple string values");const i=l({message:t,id:n});return(0,a.jsx)(a.Fragment,{children:o(i,r)})}},7065:(e,t,n)=>{"use strict";n.d(t,{W:()=>r});const r="default"},6654:(e,t,n)=>{"use strict";function r(e){return/^(?:\w*:|\/\/)/.test(e)}function a(e){return void 0!==e&&!r(e)}n.d(t,{A:()=>a,z:()=>r})},6025:(e,t,n)=>{"use strict";n.d(t,{A:()=>l,h:()=>i});var r=n(6540),a=n(4586),o=n(6654);function i(){const{siteConfig:{baseUrl:e,url:t}}=(0,a.A)(),n=(0,r.useCallback)(((n,r)=>function(e,t,n,r){let{forcePrependBaseUrl:a=!1,absolute:i=!1}=void 0===r?{}:r;if(!n||n.startsWith("#")||(0,o.z)(n))return n;if(a)return t+n.replace(/^\//,"");if(n===t.replace(/\/$/,""))return t;const l=n.startsWith(t)?n:t+n.replace(/^\//,"");return i?e+l:l}(t,e,n,r)),[t,e]);return{withBaseUrl:n}}function l(e,t){void 0===t&&(t={});const{withBaseUrl:n}=i();return n(e,t)}},3427:(e,t,n)=>{"use strict";n.d(t,{A:()=>i});var r=n(6540);n(4848);const a=r.createContext({collectAnchor:()=>{},collectLink:()=>{}}),o=()=>(0,r.useContext)(a);function i(){return o()}},4586:(e,t,n)=>{"use strict";n.d(t,{A:()=>o});var r=n(6540),a=n(6988);function o(){return(0,r.useContext)(a.o)}},2303:(e,t,n)=>{"use strict";n.d(t,{A:()=>o});var r=n(6540),a=n(6125);function o(){return(0,r.useContext)(a.o)}},205:(e,t,n)=>{"use strict";n.d(t,{A:()=>a});var r=n(6540);const a=n(8193).A.canUseDOM?r.useLayoutEffect:r.useEffect},6921:(e,t,n)=>{"use strict";n.d(t,{A:()=>a});const r=e=>"object"==typeof e&&!!e&&Object.keys(e).length>0;function a(e){const t={};return function e(n,a){Object.entries(n).forEach((n=>{let[o,i]=n;const l=a?a+"."+o:o;r(i)?e(i,l):t[l]=i}))}(e),t}},3102:(e,t,n)=>{"use strict";n.d(t,{W:()=>i,o:()=>o});var r=n(6540),a=n(4848);const o=r.createContext(null);function i(e){let{children:t,value:n}=e;const i=r.useContext(o),l=(0,r.useMemo)((()=>function(e){let{parent:t,value:n}=e;if(!t){if(!n)throw new Error("Unexpected: no Docusaurus route context found");if(!("plugin"in n))throw new Error("Unexpected: Docusaurus topmost route context has no `plugin` attribute");return n}const r={...t.data,...null==n?void 0:n.data};return{plugin:t.plugin,data:r}}({parent:i,value:n})),[i,n]);return(0,a.jsx)(o.Provider,{value:l,children:t})}},4070:(e,t,n)=>{"use strict";n.d(t,{zK:()=>h,vT:()=>p,Gy:()=>c,HW:()=>g,ht:()=>d,r7:()=>m,jh:()=>f});var r=n(6347),a=n(4586),o=n(7065);function i(e,t){void 0===t&&(t={});const n=function(){const{globalData:e}=(0,a.A)();return e}()[e];if(!n&&t.failfast)throw new Error('Docusaurus plugin global data not found for "'+e+'" plugin.');return n}const l=e=>e.versions.find((e=>e.isLast));function s(e,t){const n=function(e,t){const n=l(e);return[...e.versions.filter((e=>e!==n)),n].find((e=>!!(0,r.B6)(t,{path:e.path,exact:!1,strict:!1})))}(e,t),a=null==n?void 0:n.docs.find((e=>!!(0,r.B6)(t,{path:e.path,exact:!0,strict:!1})));return{activeVersion:n,activeDoc:a,alternateDocVersions:a?function(t){const n={};return e.versions.forEach((e=>{e.docs.forEach((r=>{r.id===t&&(n[e.name]=r)}))})),n}(a.id):{}}}const u={},c=()=>{var e;return null!=(e=i("docusaurus-plugin-content-docs"))?e:u},d=e=>{try{return function(e,t,n){void 0===t&&(t=o.W),void 0===n&&(n={});const r=i(e),a=null==r?void 0:r[t];if(!a&&n.failfast)throw new Error('Docusaurus plugin global data not found for "'+e+'" plugin with id "'+t+'".');return a}("docusaurus-plugin-content-docs",e,{failfast:!0})}catch(t){throw new Error("You are using a feature of the Docusaurus docs plugin, but this plugin does not seem to be enabled"+("Default"===e?"":" (pluginId="+e),{cause:t})}};function p(e){void 0===e&&(e={});const t=c(),{pathname:n}=(0,r.zy)();return function(e,t,n){void 0===n&&(n={});const a=Object.entries(e).sort(((e,t)=>t[1].path.localeCompare(e[1].path))).find((e=>{let[,n]=e;return!!(0,r.B6)(t,{path:n.path,exact:!1,strict:!1})})),o=a?{pluginId:a[0],pluginData:a[1]}:void 0;if(!o&&n.failfast)throw new Error("Can't find active docs plugin for \""+t+'" pathname, while it was expected to be found. Maybe you tried to use a docs feature that can only be used on a docs-related page? Existing docs plugin paths are: '+Object.values(e).map((e=>e.path)).join(", "));return o}(t,n,e)}function f(e){return d(e).versions}function m(e){const t=d(e);return l(t)}function h(e){const t=d(e),{pathname:n}=(0,r.zy)();return s(t,n)}function g(e){const t=d(e),{pathname:n}=(0,r.zy)();return function(e,t){const n=l(e);return{latestDocSuggestion:s(e,t).alternateDocVersions[n.name],latestVersionSuggestion:n}}(t,n)}},6294:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>o});var r=n(5947),a=n.n(r);a().configure({showSpinner:!1});const o={onRouteUpdate(e){let{location:t,previousLocation:n}=e;if(n&&t.pathname!==n.pathname){const e=window.setTimeout((()=>{a().start()}),200);return()=>window.clearTimeout(e)}},onRouteDidUpdate(){a().done()}}},6134:(e,t,n)=>{"use strict";n.r(t);var r=n(1765),a=n(4784);!function(e){const{themeConfig:{prism:t}}=a.A,{additionalLanguages:r}=t;globalThis.Prism=e,r.forEach((e=>{"php"===e&&n(9700),n(8692)("./prism-"+e)})),delete globalThis.Prism}(r.My)},1107:(e,t,n)=>{"use strict";n.d(t,{A:()=>c});n(6540);var r=n(4164),a=n(1312),o=n(6342),i=n(8774),l=n(3427);const s={anchorWithStickyNavbar:"anchorWithStickyNavbar_LWe7",anchorWithHideOnScrollNavbar:"anchorWithHideOnScrollNavbar_WYt5"};var u=n(4848);function c(e){let{as:t,id:n,...c}=e;const d=(0,l.A)(),{navbar:{hideOnScroll:p}}=(0,o.p)();if("h1"===t||!n)return(0,u.jsx)(t,{...c,id:void 0});d.collectAnchor(n);const f=(0,a.T)({id:"theme.common.headingLinkTitle",message:"Direct link to {heading}",description:"Title for link to heading"},{heading:"string"==typeof c.children?c.children:n});return(0,u.jsxs)(t,{...c,className:(0,r.A)("anchor",p?s.anchorWithHideOnScrollNavbar:s.anchorWithStickyNavbar,c.className),id:n,children:[c.children,(0,u.jsx)(i.A,{className:"hash-link",to:"#"+n,"aria-label":f,title:f,children:"\u200b"})]})}},3186:(e,t,n)=>{"use strict";n.d(t,{A:()=>o});n(6540);const r={iconExternalLink:"iconExternalLink_nPIU"};var a=n(4848);function o(e){let{width:t=13.5,height:n=13.5}=e;return(0,a.jsx)("svg",{width:t,height:n,"aria-hidden":"true",viewBox:"0 0 24 24",className:r.iconExternalLink,children:(0,a.jsx)("path",{fill:"currentColor",d:"M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"})})}},781:(e,t,n)=>{"use strict";n.d(t,{A:()=>ft});var r=n(6540),a=n(4164),o=n(7489),i=n(1003),l=n(6347),s=n(1312),u=n(5062),c=n(4848);const d="__docusaurus_skipToContent_fallback";function p(e){e.setAttribute("tabindex","-1"),e.focus(),e.removeAttribute("tabindex")}function f(){const e=(0,r.useRef)(null),{action:t}=(0,l.W6)(),n=(0,r.useCallback)((e=>{e.preventDefault();const t=null!=(n=document.querySelector("main:first-of-type"))?n:document.getElementById(d);var n;t&&p(t)}),[]);return(0,u.$)((n=>{let{location:r}=n;e.current&&!r.hash&&"PUSH"===t&&p(e.current)})),{containerRef:e,onClick:n}}const m=(0,s.T)({id:"theme.common.skipToMainContent",description:"The skip to content label used for accessibility, allowing to rapidly navigate to main content with keyboard tab/enter navigation",message:"Skip to main content"});function h(e){var t;const n=null!=(t=e.children)?t:m,{containerRef:r,onClick:a}=f();return(0,c.jsx)("div",{ref:r,role:"region","aria-label":m,children:(0,c.jsx)("a",{...e,href:"#"+d,onClick:a,children:n})})}var g=n(7559),y=n(4090);const b={skipToContent:"skipToContent_fXgn"};function v(){return(0,c.jsx)(h,{className:b.skipToContent})}var w=n(6342),k=n(5041);function x(e){let{width:t=21,height:n=21,color:r="currentColor",strokeWidth:a=1.2,className:o,...i}=e;return(0,c.jsx)("svg",{viewBox:"0 0 15 15",width:t,height:n,...i,children:(0,c.jsx)("g",{stroke:r,strokeWidth:a,children:(0,c.jsx)("path",{d:"M.75.75l13.5 13.5M14.25.75L.75 14.25"})})})}const S={closeButton:"closeButton_CVFx"};function E(e){return(0,c.jsx)("button",{type:"button","aria-label":(0,s.T)({id:"theme.AnnouncementBar.closeButtonAriaLabel",message:"Close",description:"The ARIA label for close button of announcement bar"}),...e,className:(0,a.A)("clean-btn close",S.closeButton,e.className),children:(0,c.jsx)(x,{width:14,height:14,strokeWidth:3.1})})}const C={content:"content_knG7"};function _(e){const{announcementBar:t}=(0,w.p)(),{content:n}=t;return(0,c.jsx)("div",{...e,className:(0,a.A)(C.content,e.className),dangerouslySetInnerHTML:{__html:n}})}const A={announcementBar:"announcementBar_mb4j",announcementBarPlaceholder:"announcementBarPlaceholder_vyr4",announcementBarClose:"announcementBarClose_gvF7",announcementBarContent:"announcementBarContent_xLdY"};function T(){const{announcementBar:e}=(0,w.p)(),{isActive:t,close:n}=(0,k.Mj)();if(!t)return null;const{backgroundColor:r,textColor:a,isCloseable:o}=e;return(0,c.jsxs)("div",{className:A.announcementBar,style:{backgroundColor:r,color:a},role:"banner",children:[o&&(0,c.jsx)("div",{className:A.announcementBarPlaceholder}),(0,c.jsx)(_,{className:A.announcementBarContent}),o&&(0,c.jsx)(E,{onClick:n,className:A.announcementBarClose})]})}var j=n(9876),N=n(3104);var L=n(9532),P=n(5600);const R=r.createContext(null);function O(e){let{children:t}=e;const n=function(){const e=(0,j.M)(),t=(0,P.YL)(),[n,a]=(0,r.useState)(!1),o=null!==t.component,i=(0,L.ZC)(o);return(0,r.useEffect)((()=>{o&&!i&&a(!0)}),[o,i]),(0,r.useEffect)((()=>{o?e.shown||a(!0):a(!1)}),[e.shown,o]),(0,r.useMemo)((()=>[n,a]),[n])}();return(0,c.jsx)(R.Provider,{value:n,children:t})}function I(e){if(e.component){const t=e.component;return(0,c.jsx)(t,{...e.props})}}function D(){const e=(0,r.useContext)(R);if(!e)throw new L.dV("NavbarSecondaryMenuDisplayProvider");const[t,n]=e,a=(0,r.useCallback)((()=>n(!1)),[n]),o=(0,P.YL)();return(0,r.useMemo)((()=>({shown:t,hide:a,content:I(o)})),[a,o,t])}function M(e){let{header:t,primaryMenu:n,secondaryMenu:r}=e;const{shown:o}=D();return(0,c.jsxs)("div",{className:"navbar-sidebar",children:[t,(0,c.jsxs)("div",{className:(0,a.A)("navbar-sidebar__items",{"navbar-sidebar__items--show-secondary":o}),children:[(0,c.jsx)("div",{className:"navbar-sidebar__item menu",children:n}),(0,c.jsx)("div",{className:"navbar-sidebar__item menu",children:r})]})]})}var F=n(5293),z=n(2303);function B(e){return(0,c.jsx)("svg",{viewBox:"0 0 24 24",width:24,height:24,...e,children:(0,c.jsx)("path",{fill:"currentColor",d:"M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"})})}function U(e){return(0,c.jsx)("svg",{viewBox:"0 0 24 24",width:24,height:24,...e,children:(0,c.jsx)("path",{fill:"currentColor",d:"M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"})})}const $={toggle:"toggle_vylO",toggleButton:"toggleButton_gllP",darkToggleIcon:"darkToggleIcon_wfgR",lightToggleIcon:"lightToggleIcon_pyhR",toggleButtonDisabled:"toggleButtonDisabled_aARS"};function q(e){let{className:t,buttonClassName:n,value:r,onChange:o}=e;const i=(0,z.A)(),l=(0,s.T)({message:"Switch between dark and light mode (currently {mode})",id:"theme.colorToggle.ariaLabel",description:"The ARIA label for the navbar color mode toggle"},{mode:"dark"===r?(0,s.T)({message:"dark mode",id:"theme.colorToggle.ariaLabel.mode.dark",description:"The name for the dark color mode"}):(0,s.T)({message:"light mode",id:"theme.colorToggle.ariaLabel.mode.light",description:"The name for the light color mode"})});return(0,c.jsx)("div",{className:(0,a.A)($.toggle,t),children:(0,c.jsxs)("button",{className:(0,a.A)("clean-btn",$.toggleButton,!i&&$.toggleButtonDisabled,n),type:"button",onClick:()=>o("dark"===r?"light":"dark"),disabled:!i,title:l,"aria-label":l,"aria-live":"polite",children:[(0,c.jsx)(B,{className:(0,a.A)($.toggleIcon,$.lightToggleIcon)}),(0,c.jsx)(U,{className:(0,a.A)($.toggleIcon,$.darkToggleIcon)})]})})}const G=r.memo(q),H={darkNavbarColorModeToggle:"darkNavbarColorModeToggle_X3D1"};function V(e){let{className:t}=e;const n=(0,w.p)().navbar.style,r=(0,w.p)().colorMode.disableSwitch,{colorMode:a,setColorMode:o}=(0,F.G)();return r?null:(0,c.jsx)(G,{className:t,buttonClassName:"dark"===n?H.darkNavbarColorModeToggle:void 0,value:a,onChange:o})}var W=n(3465);function Q(){return(0,c.jsx)(W.A,{className:"navbar__brand",imageClassName:"navbar__logo",titleClassName:"navbar__title text--truncate"})}function K(){const e=(0,j.M)();return(0,c.jsx)("button",{type:"button","aria-label":(0,s.T)({id:"theme.docs.sidebar.closeSidebarButtonAriaLabel",message:"Close navigation bar",description:"The ARIA label for close button of mobile sidebar"}),className:"clean-btn navbar-sidebar__close",onClick:()=>e.toggle(),children:(0,c.jsx)(x,{color:"var(--ifm-color-emphasis-600)"})})}function Y(){return(0,c.jsxs)("div",{className:"navbar-sidebar__brand",children:[(0,c.jsx)(Q,{}),(0,c.jsx)(V,{className:"margin-right--md"}),(0,c.jsx)(K,{})]})}var Z=n(8774),X=n(6025),J=n(6654);function ee(e,t){return void 0!==e&&void 0!==t&&new RegExp(e,"gi").test(t)}var te=n(3186);function ne(e){let{activeBasePath:t,activeBaseRegex:n,to:r,href:a,label:o,html:i,isDropdownLink:l,prependBaseUrlToHref:s,...u}=e;const d=(0,X.A)(r),p=(0,X.A)(t),f=(0,X.A)(a,{forcePrependBaseUrl:!0}),m=o&&a&&!(0,J.A)(a),h=i?{dangerouslySetInnerHTML:{__html:i}}:{children:(0,c.jsxs)(c.Fragment,{children:[o,m&&(0,c.jsx)(te.A,{...l&&{width:12,height:12}})]})};return a?(0,c.jsx)(Z.A,{href:s?f:a,...u,...h}):(0,c.jsx)(Z.A,{to:d,isNavLink:!0,...(t||n)&&{isActive:(e,t)=>n?ee(n,t.pathname):t.pathname.startsWith(p)},...u,...h})}function re(e){let{className:t,isDropdownItem:n=!1,...r}=e;const o=(0,c.jsx)(ne,{className:(0,a.A)(n?"dropdown__link":"navbar__item navbar__link",t),isDropdownLink:n,...r});return n?(0,c.jsx)("li",{children:o}):o}function ae(e){let{className:t,isDropdownItem:n,...r}=e;return(0,c.jsx)("li",{className:"menu__list-item",children:(0,c.jsx)(ne,{className:(0,a.A)("menu__link",t),...r})})}function oe(e){var t;let{mobile:n=!1,position:r,...a}=e;const o=n?ae:re;return(0,c.jsx)(o,{...a,activeClassName:null!=(t=a.activeClassName)?t:n?"menu__link--active":"navbar__link--active"})}var ie=n(1422),le=n(9169),se=n(4586);const ue={dropdownNavbarItemMobile:"dropdownNavbarItemMobile_S0Fm"};function ce(e,t){return e.some((e=>function(e,t){return!!(0,le.ys)(e.to,t)||!!ee(e.activeBaseRegex,t)||!(!e.activeBasePath||!t.startsWith(e.activeBasePath))}(e,t)))}function de(e){var t;let{items:n,position:o,className:i,onClick:l,...s}=e;const u=(0,r.useRef)(null),[d,p]=(0,r.useState)(!1);return(0,r.useEffect)((()=>{const e=e=>{u.current&&!u.current.contains(e.target)&&p(!1)};return document.addEventListener("mousedown",e),document.addEventListener("touchstart",e),document.addEventListener("focusin",e),()=>{document.removeEventListener("mousedown",e),document.removeEventListener("touchstart",e),document.removeEventListener("focusin",e)}}),[u]),(0,c.jsxs)("div",{ref:u,className:(0,a.A)("navbar__item","dropdown","dropdown--hoverable",{"dropdown--right":"right"===o,"dropdown--show":d}),children:[(0,c.jsx)(ne,{"aria-haspopup":"true","aria-expanded":d,role:"button",href:s.to?void 0:"#",className:(0,a.A)("navbar__link",i),...s,onClick:s.to?void 0:e=>e.preventDefault(),onKeyDown:e=>{"Enter"===e.key&&(e.preventDefault(),p(!d))},children:null!=(t=s.children)?t:s.label}),(0,c.jsx)("ul",{className:"dropdown__menu",children:n.map(((e,t)=>(0,r.createElement)(Ce,{isDropdownItem:!0,activeClassName:"dropdown__link--active",...e,key:t})))})]})}function pe(e){var t;let{items:n,className:o,position:i,onClick:s,...u}=e;const d=function(){const{siteConfig:{baseUrl:e}}=(0,se.A)(),{pathname:t}=(0,l.zy)();return t.replace(e,"/")}(),p=ce(n,d),{collapsed:f,toggleCollapsed:m,setCollapsed:h}=(0,ie.u)({initialState:()=>!p});return(0,r.useEffect)((()=>{p&&h(!p)}),[d,p,h]),(0,c.jsxs)("li",{className:(0,a.A)("menu__list-item",{"menu__list-item--collapsed":f}),children:[(0,c.jsx)(ne,{role:"button",className:(0,a.A)(ue.dropdownNavbarItemMobile,"menu__link menu__link--sublist menu__link--sublist-caret",o),...u,onClick:e=>{e.preventDefault(),m()},children:null!=(t=u.children)?t:u.label}),(0,c.jsx)(ie.N,{lazy:!0,as:"ul",className:"menu__list",collapsed:f,children:n.map(((e,t)=>(0,r.createElement)(Ce,{mobile:!0,isDropdownItem:!0,onClick:s,activeClassName:"menu__link--active",...e,key:t})))})]})}function fe(e){let{mobile:t=!1,...n}=e;const r=t?pe:de;return(0,c.jsx)(r,{...n})}var me=n(2131);function he(e){let{width:t=20,height:n=20,...r}=e;return(0,c.jsx)("svg",{viewBox:"0 0 24 24",width:t,height:n,"aria-hidden":!0,...r,children:(0,c.jsx)("path",{fill:"currentColor",d:"M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"})})}const ge="iconLanguage_nlXk";var ye=n(418);const be={navbarSearchContainer:"navbarSearchContainer_Bca1"};function ve(e){let{children:t,className:n}=e;return(0,c.jsx)("div",{className:(0,a.A)(n,be.navbarSearchContainer),children:t})}var we=n(4070),ke=n(1754);var xe=n(5597);const Se=e=>e.docs.find((t=>t.id===e.mainDocId));const Ee={default:oe,localeDropdown:function(e){let{mobile:t,dropdownItemsBefore:n,dropdownItemsAfter:r,queryString:a="",...o}=e;const{i18n:{currentLocale:i,locales:u,localeConfigs:d}}=(0,se.A)(),p=(0,me.o)(),{search:f,hash:m}=(0,l.zy)(),h=[...n,...u.map((e=>{const n=""+("pathname://"+p.createUrl({locale:e,fullyQualified:!1}))+f+m+a;return{label:d[e].label,lang:d[e].htmlLang,to:n,target:"_self",autoAddBaseUrl:!1,className:e===i?t?"menu__link--active":"dropdown__link--active":""}})),...r],g=t?(0,s.T)({message:"Languages",id:"theme.navbar.mobileLanguageDropdown.label",description:"The label for the mobile language switcher dropdown"}):d[i].label;return(0,c.jsx)(fe,{...o,mobile:t,label:(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)(he,{className:ge}),g]}),items:h})},search:function(e){let{mobile:t,className:n}=e;return t?null:(0,c.jsx)(ve,{className:n,children:(0,c.jsx)(ye.A,{})})},dropdown:fe,html:function(e){let{value:t,className:n,mobile:r=!1,isDropdownItem:o=!1}=e;const i=o?"li":"div";return(0,c.jsx)(i,{className:(0,a.A)({navbar__item:!r&&!o,"menu__list-item":r},n),dangerouslySetInnerHTML:{__html:t}})},doc:function(e){let{docId:t,label:n,docsPluginId:r,...a}=e;const{activeDoc:o}=(0,we.zK)(r),i=(0,ke.QB)(t,r),l=(null==o?void 0:o.path)===(null==i?void 0:i.path);return null===i||i.unlisted&&!l?null:(0,c.jsx)(oe,{exact:!0,...a,isActive:()=>l||!(null==o||!o.sidebar)&&o.sidebar===i.sidebar,label:null!=n?n:i.id,to:i.path})},docSidebar:function(e){let{sidebarId:t,label:n,docsPluginId:r,...a}=e;const{activeDoc:o}=(0,we.zK)(r),i=(0,ke.fW)(t,r).link;if(!i)throw new Error('DocSidebarNavbarItem: Sidebar with ID "'+t+"\" doesn't have anything to be linked to.");return(0,c.jsx)(oe,{exact:!0,...a,isActive:()=>(null==o?void 0:o.sidebar)===t,label:null!=n?n:i.label,to:i.path})},docsVersion:function(e){let{label:t,to:n,docsPluginId:r,...a}=e;const o=(0,ke.Vd)(r)[0],i=null!=t?t:o.label,l=null!=n?n:(e=>e.docs.find((t=>t.id===e.mainDocId)))(o).path;return(0,c.jsx)(oe,{...a,label:i,to:l})},docsVersionDropdown:function(e){let{mobile:t,docsPluginId:n,dropdownActiveClassDisabled:r,dropdownItemsBefore:a,dropdownItemsAfter:o,...i}=e;const{search:u,hash:d}=(0,l.zy)(),p=(0,we.zK)(n),f=(0,we.jh)(n),{savePreferredVersionName:m}=(0,xe.g1)(n),h=[...a,...f.map((e=>{var t;const n=null!=(t=p.alternateDocVersions[e.name])?t:Se(e);return{label:e.label,to:""+n.path+u+d,isActive:()=>e===p.activeVersion,onClick:()=>m(e.name)}})),...o],g=(0,ke.Vd)(n)[0],y=t&&h.length>1?(0,s.T)({id:"theme.navbar.mobileVersionsDropdown.label",message:"Versions",description:"The label for the navbar versions dropdown on mobile view"}):g.label,b=t&&h.length>1?void 0:Se(g).path;return h.length<=1?(0,c.jsx)(oe,{...i,mobile:t,label:y,to:b,isActive:r?()=>!1:void 0}):(0,c.jsx)(fe,{...i,mobile:t,label:y,to:b,items:h,isActive:r?()=>!1:void 0})}};function Ce(e){let{type:t,...n}=e;const r=function(e,t){return e&&"default"!==e?e:"items"in t?"dropdown":"default"}(t,n),a=Ee[r];if(!a)throw new Error('No NavbarItem component found for type "'+t+'".');return(0,c.jsx)(a,{...n})}function _e(){const e=(0,j.M)(),t=(0,w.p)().navbar.items;return(0,c.jsx)("ul",{className:"menu__list",children:t.map(((t,n)=>(0,r.createElement)(Ce,{mobile:!0,...t,onClick:()=>e.toggle(),key:n})))})}function Ae(e){return(0,c.jsx)("button",{...e,type:"button",className:"clean-btn navbar-sidebar__back",children:(0,c.jsx)(s.A,{id:"theme.navbar.mobileSidebarSecondaryMenu.backButtonLabel",description:"The label of the back button to return to main menu, inside the mobile navbar sidebar secondary menu (notably used to display the docs sidebar)",children:"\u2190 Back to main menu"})})}function Te(){const e=0===(0,w.p)().navbar.items.length,t=D();return(0,c.jsxs)(c.Fragment,{children:[!e&&(0,c.jsx)(Ae,{onClick:()=>t.hide()}),t.content]})}function je(){const e=(0,j.M)();var t;return void 0===(t=e.shown)&&(t=!0),(0,r.useEffect)((()=>(document.body.style.overflow=t?"hidden":"visible",()=>{document.body.style.overflow="visible"})),[t]),e.shouldRender?(0,c.jsx)(M,{header:(0,c.jsx)(Y,{}),primaryMenu:(0,c.jsx)(_e,{}),secondaryMenu:(0,c.jsx)(Te,{})}):null}const Ne={navbarHideable:"navbarHideable_m1mJ",navbarHidden:"navbarHidden_jGov"};function Le(e){return(0,c.jsx)("div",{role:"presentation",...e,className:(0,a.A)("navbar-sidebar__backdrop",e.className)})}function Pe(e){let{children:t}=e;const{navbar:{hideOnScroll:n,style:o}}=(0,w.p)(),i=(0,j.M)(),{navbarRef:l,isNavbarVisible:d}=function(e){const[t,n]=(0,r.useState)(e),a=(0,r.useRef)(!1),o=(0,r.useRef)(0),i=(0,r.useCallback)((e=>{null!==e&&(o.current=e.getBoundingClientRect().height)}),[]);return(0,N.Mq)(((t,r)=>{let{scrollY:i}=t;if(!e)return;if(i<o.current)return void n(!0);if(a.current)return void(a.current=!1);const l=null==r?void 0:r.scrollY,s=document.documentElement.scrollHeight-o.current,u=window.innerHeight;l&&i>=l?n(!1):i+u<s&&n(!0)})),(0,u.$)((t=>{if(!e)return;const r=t.location.hash;if(r?document.getElementById(r.substring(1)):void 0)return a.current=!0,void n(!1);n(!0)})),{navbarRef:i,isNavbarVisible:t}}(n);return(0,c.jsxs)("nav",{ref:l,"aria-label":(0,s.T)({id:"theme.NavBar.navAriaLabel",message:"Main",description:"The ARIA label for the main navigation"}),className:(0,a.A)("navbar","navbar--fixed-top",n&&[Ne.navbarHideable,!d&&Ne.navbarHidden],{"navbar--dark":"dark"===o,"navbar--primary":"primary"===o,"navbar-sidebar--show":i.shown}),children:[t,(0,c.jsx)(Le,{onClick:i.toggle}),(0,c.jsx)(je,{})]})}var Re=n(440);const Oe={errorBoundaryError:"errorBoundaryError_a6uf",errorBoundaryFallback:"errorBoundaryFallback_VBag"};function Ie(e){return(0,c.jsx)("button",{type:"button",...e,children:(0,c.jsx)(s.A,{id:"theme.ErrorPageContent.tryAgain",description:"The label of the button to try again rendering when the React error boundary captures an error",children:"Try again"})})}function De(e){let{error:t}=e;const n=(0,Re.getErrorCausalChain)(t).map((e=>e.message)).join("\n\nCause:\n");return(0,c.jsx)("p",{className:Oe.errorBoundaryError,children:n})}class Me extends r.Component{componentDidCatch(e,t){throw this.props.onError(e,t)}render(){return this.props.children}}const Fe="right";function ze(e){let{width:t=30,height:n=30,className:r,...a}=e;return(0,c.jsx)("svg",{className:r,width:t,height:n,viewBox:"0 0 30 30","aria-hidden":"true",...a,children:(0,c.jsx)("path",{stroke:"currentColor",strokeLinecap:"round",strokeMiterlimit:"10",strokeWidth:"2",d:"M4 7h22M4 15h22M4 23h22"})})}function Be(){const{toggle:e,shown:t}=(0,j.M)();return(0,c.jsx)("button",{onClick:e,"aria-label":(0,s.T)({id:"theme.docs.sidebar.toggleSidebarButtonAriaLabel",message:"Toggle navigation bar",description:"The ARIA label for hamburger menu button of mobile navigation"}),"aria-expanded":t,className:"navbar__toggle clean-btn",type:"button",children:(0,c.jsx)(ze,{})})}const Ue={colorModeToggle:"colorModeToggle_DEke"};function $e(e){let{items:t}=e;return(0,c.jsx)(c.Fragment,{children:t.map(((e,t)=>(0,c.jsx)(Me,{onError:t=>new Error("A theme navbar item failed to render.\nPlease double-check the following navbar item (themeConfig.navbar.items) of your Docusaurus config:\n"+JSON.stringify(e,null,2),{cause:t}),children:(0,c.jsx)(Ce,{...e})},t)))})}function qe(e){let{left:t,right:n}=e;return(0,c.jsxs)("div",{className:"navbar__inner",children:[(0,c.jsx)("div",{className:"navbar__items",children:t}),(0,c.jsx)("div",{className:"navbar__items navbar__items--right",children:n})]})}function Ge(){const e=(0,j.M)(),t=(0,w.p)().navbar.items,[n,r]=function(e){function t(e){var t;return"left"===(null!=(t=e.position)?t:Fe)}return[e.filter(t),e.filter((e=>!t(e)))]}(t),a=t.find((e=>"search"===e.type));return(0,c.jsx)(qe,{left:(0,c.jsxs)(c.Fragment,{children:[!e.disabled&&(0,c.jsx)(Be,{}),(0,c.jsx)(Q,{}),(0,c.jsx)($e,{items:n})]}),right:(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)($e,{items:r}),(0,c.jsx)(V,{className:Ue.colorModeToggle}),!a&&(0,c.jsx)(ve,{children:(0,c.jsx)(ye.A,{})})]})})}function He(){return(0,c.jsx)(Pe,{children:(0,c.jsx)(Ge,{})})}function Ve(e){let{item:t}=e;const{to:n,href:r,label:a,prependBaseUrlToHref:o,...i}=t,l=(0,X.A)(n),s=(0,X.A)(r,{forcePrependBaseUrl:!0});return(0,c.jsxs)(Z.A,{className:"footer__link-item",...r?{href:o?s:r}:{to:l},...i,children:[a,r&&!(0,J.A)(r)&&(0,c.jsx)(te.A,{})]})}function We(e){var t;let{item:n}=e;return n.html?(0,c.jsx)("li",{className:"footer__item",dangerouslySetInnerHTML:{__html:n.html}}):(0,c.jsx)("li",{className:"footer__item",children:(0,c.jsx)(Ve,{item:n})},null!=(t=n.href)?t:n.to)}function Qe(e){let{column:t}=e;return(0,c.jsxs)("div",{className:"col footer__col",children:[(0,c.jsx)("div",{className:"footer__title",children:t.title}),(0,c.jsx)("ul",{className:"footer__items clean-list",children:t.items.map(((e,t)=>(0,c.jsx)(We,{item:e},t)))})]})}function Ke(e){let{columns:t}=e;return(0,c.jsx)("div",{className:"row footer__links",children:t.map(((e,t)=>(0,c.jsx)(Qe,{column:e},t)))})}function Ye(){return(0,c.jsx)("span",{className:"footer__link-separator",children:"\xb7"})}function Ze(e){let{item:t}=e;return t.html?(0,c.jsx)("span",{className:"footer__link-item",dangerouslySetInnerHTML:{__html:t.html}}):(0,c.jsx)(Ve,{item:t})}function Xe(e){let{links:t}=e;return(0,c.jsx)("div",{className:"footer__links text--center",children:(0,c.jsx)("div",{className:"footer__links",children:t.map(((e,n)=>(0,c.jsxs)(r.Fragment,{children:[(0,c.jsx)(Ze,{item:e}),t.length!==n+1&&(0,c.jsx)(Ye,{})]},n)))})})}function Je(e){let{links:t}=e;return function(e){return"title"in e[0]}(t)?(0,c.jsx)(Ke,{columns:t}):(0,c.jsx)(Xe,{links:t})}var et=n(1122);const tt={footerLogoLink:"footerLogoLink_BH7S"};function nt(e){var t;let{logo:n}=e;const{withBaseUrl:r}=(0,X.h)(),o={light:r(n.src),dark:r(null!=(t=n.srcDark)?t:n.src)};return(0,c.jsx)(et.A,{className:(0,a.A)("footer__logo",n.className),alt:n.alt,sources:o,width:n.width,height:n.height,style:n.style})}function rt(e){let{logo:t}=e;return t.href?(0,c.jsx)(Z.A,{href:t.href,className:tt.footerLogoLink,target:t.target,children:(0,c.jsx)(nt,{logo:t})}):(0,c.jsx)(nt,{logo:t})}function at(e){let{copyright:t}=e;return(0,c.jsx)("div",{className:"footer__copyright",dangerouslySetInnerHTML:{__html:t}})}function ot(e){let{style:t,links:n,logo:r,copyright:o}=e;return(0,c.jsx)("footer",{className:(0,a.A)("footer",{"footer--dark":"dark"===t}),children:(0,c.jsxs)("div",{className:"container container-fluid",children:[n,(r||o)&&(0,c.jsxs)("div",{className:"footer__bottom text--center",children:[r&&(0,c.jsx)("div",{className:"margin-bottom--sm",children:r}),o]})]})})}function it(){const{footer:e}=(0,w.p)();if(!e)return null;const{copyright:t,links:n,logo:r,style:a}=e;return(0,c.jsx)(ot,{style:a,links:n&&n.length>0&&(0,c.jsx)(Je,{links:n}),logo:r&&(0,c.jsx)(rt,{logo:r}),copyright:t&&(0,c.jsx)(at,{copyright:t})})}const lt=r.memo(it),st=(0,L.fM)([F.a,k.oq,N.Tv,xe.VQ,i.Jx,function(e){let{children:t}=e;return(0,c.jsx)(P.y_,{children:(0,c.jsx)(j.e,{children:(0,c.jsx)(O,{children:t})})})}]);function ut(e){let{children:t}=e;return(0,c.jsx)(st,{children:t})}var ct=n(1107);function dt(e){let{error:t,tryAgain:n}=e;return(0,c.jsx)("main",{className:"container margin-vert--xl",children:(0,c.jsx)("div",{className:"row",children:(0,c.jsxs)("div",{className:"col col--6 col--offset-3",children:[(0,c.jsx)(ct.A,{as:"h1",className:"hero__title",children:(0,c.jsx)(s.A,{id:"theme.ErrorPageContent.title",description:"The title of the fallback page when the page crashed",children:"This page crashed."})}),(0,c.jsx)("div",{className:"margin-vert--lg",children:(0,c.jsx)(Ie,{onClick:n,className:"button button--primary shadow--lw"})}),(0,c.jsx)("hr",{}),(0,c.jsx)("div",{className:"margin-vert--md",children:(0,c.jsx)(De,{error:t})})]})})})}const pt={mainWrapper:"mainWrapper_z2l0"};function ft(e){const{children:t,noFooter:n,wrapperClassName:r,title:l,description:s}=e;return(0,y.J)(),(0,c.jsxs)(ut,{children:[(0,c.jsx)(i.be,{title:l,description:s}),(0,c.jsx)(v,{}),(0,c.jsx)(T,{}),(0,c.jsx)(He,{}),(0,c.jsx)("div",{id:d,className:(0,a.A)(g.G.wrapper.main,pt.mainWrapper,r),children:(0,c.jsx)(o.A,{fallback:e=>(0,c.jsx)(dt,{...e}),children:t})}),!n&&(0,c.jsx)(lt,{})]})}},3465:(e,t,n)=>{"use strict";n.d(t,{A:()=>c});n(6540);var r=n(8774),a=n(6025),o=n(4586),i=n(6342),l=n(1122),s=n(4848);function u(e){let{logo:t,alt:n,imageClassName:r}=e;const o={light:(0,a.A)(t.src),dark:(0,a.A)(t.srcDark||t.src)},i=(0,s.jsx)(l.A,{className:t.className,sources:o,height:t.height,width:t.width,alt:n,style:t.style});return r?(0,s.jsx)("div",{className:r,children:i}):i}function c(e){var t;const{siteConfig:{title:n}}=(0,o.A)(),{navbar:{title:l,logo:c}}=(0,i.p)(),{imageClassName:d,titleClassName:p,...f}=e,m=(0,a.A)((null==c?void 0:c.href)||"/"),h=l?"":n,g=null!=(t=null==c?void 0:c.alt)?t:h;return(0,s.jsxs)(r.A,{to:m,...f,...(null==c?void 0:c.target)&&{target:c.target},children:[c&&(0,s.jsx)(u,{logo:c,alt:g,imageClassName:d}),null!=l&&(0,s.jsx)("b",{className:p,children:l})]})}},1463:(e,t,n)=>{"use strict";n.d(t,{A:()=>o});n(6540);var r=n(5260),a=n(4848);function o(e){let{locale:t,version:n,tag:o}=e;const i=t;return(0,a.jsxs)(r.A,{children:[t&&(0,a.jsx)("meta",{name:"docusaurus_locale",content:t}),n&&(0,a.jsx)("meta",{name:"docusaurus_version",content:n}),o&&(0,a.jsx)("meta",{name:"docusaurus_tag",content:o}),i&&(0,a.jsx)("meta",{name:"docsearch:language",content:i}),n&&(0,a.jsx)("meta",{name:"docsearch:version",content:n}),o&&(0,a.jsx)("meta",{name:"docsearch:docusaurus_tag",content:o})]})}},1122:(e,t,n)=>{"use strict";n.d(t,{A:()=>c});var r=n(6540),a=n(4164),o=n(2303),i=n(5293);const l={themedComponent:"themedComponent_mlkZ","themedComponent--light":"themedComponent--light_NVdE","themedComponent--dark":"themedComponent--dark_xIcU"};var s=n(4848);function u(e){let{className:t,children:n}=e;const u=(0,o.A)(),{colorMode:c}=(0,i.G)();return(0,s.jsx)(s.Fragment,{children:(u?"dark"===c?["dark"]:["light"]:["light","dark"]).map((e=>{const o=n({theme:e,className:(0,a.A)(t,l.themedComponent,l["themedComponent--"+e])});return(0,s.jsx)(r.Fragment,{children:o},e)}))})}function c(e){const{sources:t,className:n,alt:r,...a}=e;return(0,s.jsx)(u,{className:n,children:e=>{let{theme:n,className:o}=e;return(0,s.jsx)("img",{src:t[n],alt:r,className:o,...a})}})}},1422:(e,t,n)=>{"use strict";n.d(t,{N:()=>y,u:()=>u});var r=n(6540),a=n(8193),o=n(205),i=n(3109),l=n(4848);const s="ease-in-out";function u(e){let{initialState:t}=e;const[n,a]=(0,r.useState)(null!=t&&t),o=(0,r.useCallback)((()=>{a((e=>!e))}),[]);return{collapsed:n,setCollapsed:a,toggleCollapsed:o}}const c={display:"none",overflow:"hidden",height:"0px"},d={display:"block",overflow:"visible",height:"auto"};function p(e,t){const n=t?c:d;e.style.display=n.display,e.style.overflow=n.overflow,e.style.height=n.height}function f(e){let{collapsibleRef:t,collapsed:n,animation:a}=e;const o=(0,r.useRef)(!1);(0,r.useEffect)((()=>{const e=t.current;function r(){var t,n;const r=e.scrollHeight,o=null!=(t=null==a?void 0:a.duration)?t:function(e){if((0,i.O)())return 1;const t=e/36;return Math.round(10*(4+15*t**.25+t/5))}(r);return{transition:"height "+o+"ms "+(null!=(n=null==a?void 0:a.easing)?n:s),height:r+"px"}}function l(){const t=r();e.style.transition=t.transition,e.style.height=t.height}if(!o.current)return p(e,n),void(o.current=!0);return e.style.willChange="height",function(){const t=requestAnimationFrame((()=>{n?(l(),requestAnimationFrame((()=>{e.style.height=c.height,e.style.overflow=c.overflow}))):(e.style.display="block",requestAnimationFrame((()=>{l()})))}));return()=>cancelAnimationFrame(t)}()}),[t,n,a])}function m(e){if(!a.A.canUseDOM)return e?c:d}function h(e){let{as:t="div",collapsed:n,children:a,animation:o,onCollapseTransitionEnd:i,className:s,disableSSRStyle:u}=e;const c=(0,r.useRef)(null);return f({collapsibleRef:c,collapsed:n,animation:o}),(0,l.jsx)(t,{ref:c,style:u?void 0:m(n),onTransitionEnd:e=>{"height"===e.propertyName&&(p(c.current,n),null==i||i(n))},className:s,children:a})}function g(e){let{collapsed:t,...n}=e;const[a,i]=(0,r.useState)(!t),[s,u]=(0,r.useState)(t);return(0,o.A)((()=>{t||i(!0)}),[t]),(0,o.A)((()=>{a&&u(t)}),[a,t]),a?(0,l.jsx)(h,{...n,collapsed:s}):null}function y(e){let{lazy:t,...n}=e;const r=t?g:h;return(0,l.jsx)(r,{...n})}},5041:(e,t,n)=>{"use strict";n.d(t,{Mj:()=>h,oq:()=>m});var r=n(6540),a=n(2303),o=n(9466),i=n(9532),l=n(6342),s=n(4848);const u=(0,o.Wf)("docusaurus.announcement.dismiss"),c=(0,o.Wf)("docusaurus.announcement.id"),d=()=>"true"===u.get(),p=e=>u.set(String(e)),f=r.createContext(null);function m(e){let{children:t}=e;const n=function(){const{announcementBar:e}=(0,l.p)(),t=(0,a.A)(),[n,o]=(0,r.useState)((()=>!!t&&d()));(0,r.useEffect)((()=>{o(d())}),[]);const i=(0,r.useCallback)((()=>{p(!0),o(!0)}),[]);return(0,r.useEffect)((()=>{if(!e)return;const{id:t}=e;let n=c.get();"annoucement-bar"===n&&(n="announcement-bar");const r=t!==n;c.set(t),r&&p(!1),!r&&d()||o(!1)}),[e]),(0,r.useMemo)((()=>({isActive:!!e&&!n,close:i})),[e,n,i])}();return(0,s.jsx)(f.Provider,{value:n,children:t})}function h(){const e=(0,r.useContext)(f);if(!e)throw new i.dV("AnnouncementBarProvider");return e}},5293:(e,t,n)=>{"use strict";n.d(t,{G:()=>y,a:()=>g});var r=n(6540),a=n(8193),o=n(9532),i=n(9466),l=n(6342),s=n(4848);const u=r.createContext(void 0),c="theme",d=(0,i.Wf)(c),p={light:"light",dark:"dark"},f=e=>e===p.dark?p.dark:p.light,m=e=>a.A.canUseDOM?f(document.documentElement.getAttribute("data-theme")):f(e),h=e=>{d.set(f(e))};function g(e){let{children:t}=e;const n=function(){const{colorMode:{defaultMode:e,disableSwitch:t,respectPrefersColorScheme:n}}=(0,l.p)(),[a,o]=(0,r.useState)(m(e));(0,r.useEffect)((()=>{t&&d.del()}),[t]);const i=(0,r.useCallback)((function(t,r){void 0===r&&(r={});const{persist:a=!0}=r;t?(o(t),a&&h(t)):(o(n?window.matchMedia("(prefers-color-scheme: dark)").matches?p.dark:p.light:e),d.del())}),[n,e]);(0,r.useEffect)((()=>{document.documentElement.setAttribute("data-theme",f(a))}),[a]),(0,r.useEffect)((()=>{if(t)return;const e=e=>{if(e.key!==c)return;const t=d.get();null!==t&&i(f(t))};return window.addEventListener("storage",e),()=>window.removeEventListener("storage",e)}),[t,i]);const s=(0,r.useRef)(!1);return(0,r.useEffect)((()=>{if(t&&!n)return;const e=window.matchMedia("(prefers-color-scheme: dark)"),r=()=>{window.matchMedia("print").matches||s.current?s.current=window.matchMedia("print").matches:i(null)};return e.addListener(r),()=>e.removeListener(r)}),[i,t,n]),(0,r.useMemo)((()=>({colorMode:a,setColorMode:i,get isDarkTheme(){return a===p.dark},setLightTheme(){i(p.light)},setDarkTheme(){i(p.dark)}})),[a,i])}();return(0,s.jsx)(u.Provider,{value:n,children:t})}function y(){const e=(0,r.useContext)(u);if(null==e)throw new o.dV("ColorModeProvider","Please see https://docusaurus.io/docs/api/themes/configuration#use-color-mode.");return e}},5597:(e,t,n)=>{"use strict";n.d(t,{VQ:()=>y,g1:()=>v});var r=n(6540),a=n(4070),o=n(7065),i=n(6342),l=n(1754),s=n(9532),u=n(9466),c=n(4848);const d=e=>"docs-preferred-version-"+e,p={save:(e,t,n)=>{(0,u.Wf)(d(e),{persistence:t}).set(n)},read:(e,t)=>(0,u.Wf)(d(e),{persistence:t}).get(),clear:(e,t)=>{(0,u.Wf)(d(e),{persistence:t}).del()}},f=e=>Object.fromEntries(e.map((e=>[e,{preferredVersionName:null}])));const m=r.createContext(null);function h(){const e=(0,a.Gy)(),t=(0,i.p)().docs.versionPersistence,n=(0,r.useMemo)((()=>Object.keys(e)),[e]),[o,l]=(0,r.useState)((()=>f(n)));(0,r.useEffect)((()=>{l(function(e){let{pluginIds:t,versionPersistence:n,allDocsData:r}=e;function a(e){const t=p.read(e,n);return r[e].versions.some((e=>e.name===t))?{preferredVersionName:t}:(p.clear(e,n),{preferredVersionName:null})}return Object.fromEntries(t.map((e=>[e,a(e)])))}({allDocsData:e,versionPersistence:t,pluginIds:n}))}),[e,t,n]);return[o,(0,r.useMemo)((()=>({savePreferredVersion:function(e,n){p.save(e,t,n),l((t=>({...t,[e]:{preferredVersionName:n}})))}})),[t])]}function g(e){let{children:t}=e;const n=h();return(0,c.jsx)(m.Provider,{value:n,children:t})}function y(e){let{children:t}=e;return l.C5?(0,c.jsx)(g,{children:t}):(0,c.jsx)(c.Fragment,{children:t})}function b(){const e=(0,r.useContext)(m);if(!e)throw new s.dV("DocsPreferredVersionContextProvider");return e}function v(e){var t;void 0===e&&(e=o.W);const n=(0,a.ht)(e),[i,l]=b(),{preferredVersionName:s}=i[e];return{preferredVersion:null!=(t=n.versions.find((e=>e.name===s)))?t:null,savePreferredVersionName:(0,r.useCallback)((t=>{l.savePreferredVersion(e,t)}),[l,e])}}},6588:(e,t,n)=>{"use strict";n.d(t,{V:()=>s,t:()=>u});var r=n(6540),a=n(9532),o=n(4848);const i=Symbol("EmptyContext"),l=r.createContext(i);function s(e){let{children:t,name:n,items:a}=e;const i=(0,r.useMemo)((()=>n&&a?{name:n,items:a}:null),[n,a]);return(0,o.jsx)(l.Provider,{value:i,children:t})}function u(){const e=(0,r.useContext)(l);if(e===i)throw new a.dV("DocsSidebarProvider");return e}},2252:(e,t,n)=>{"use strict";n.d(t,{n:()=>l,r:()=>s});var r=n(6540),a=n(9532),o=n(4848);const i=r.createContext(null);function l(e){let{children:t,version:n}=e;return(0,o.jsx)(i.Provider,{value:n,children:t})}function s(){const e=(0,r.useContext)(i);if(null===e)throw new a.dV("DocsVersionProvider");return e}},9876:(e,t,n)=>{"use strict";n.d(t,{e:()=>f,M:()=>m});var r=n(6540),a=n(5600),o=n(4581),i=n(6347),l=n(9532);function s(e){!function(e){const t=(0,i.W6)(),n=(0,l._q)(e);(0,r.useEffect)((()=>t.block(((e,t)=>n(e,t)))),[t,n])}(((t,n)=>{if("POP"===n)return e(t,n)}))}var u=n(6342),c=n(4848);const d=r.createContext(void 0);function p(){const e=function(){const e=(0,a.YL)(),{items:t}=(0,u.p)().navbar;return 0===t.length&&!e.component}(),t=(0,o.l)(),n=!e&&"mobile"===t,[i,l]=(0,r.useState)(!1);s((()=>{if(i)return l(!1),!1}));const c=(0,r.useCallback)((()=>{l((e=>!e))}),[]);return(0,r.useEffect)((()=>{"desktop"===t&&l(!1)}),[t]),(0,r.useMemo)((()=>({disabled:e,shouldRender:n,toggle:c,shown:i})),[e,n,c,i])}function f(e){let{children:t}=e;const n=p();return(0,c.jsx)(d.Provider,{value:n,children:t})}function m(){const e=r.useContext(d);if(void 0===e)throw new l.dV("NavbarMobileSidebarProvider");return e}},5600:(e,t,n)=>{"use strict";n.d(t,{GX:()=>u,YL:()=>s,y_:()=>l});var r=n(6540),a=n(9532),o=n(4848);const i=r.createContext(null);function l(e){let{children:t}=e;const n=(0,r.useState)({component:null,props:null});return(0,o.jsx)(i.Provider,{value:n,children:t})}function s(){const e=(0,r.useContext)(i);if(!e)throw new a.dV("NavbarSecondaryMenuContentProvider");return e[0]}function u(e){let{component:t,props:n}=e;const o=(0,r.useContext)(i);if(!o)throw new a.dV("NavbarSecondaryMenuContentProvider");const[,l]=o,s=(0,a.Be)(n);return(0,r.useEffect)((()=>{l({component:t,props:s})}),[l,t,s]),(0,r.useEffect)((()=>()=>l({component:null,props:null})),[l]),null}},4090:(e,t,n)=>{"use strict";n.d(t,{w:()=>a,J:()=>o});var r=n(6540);const a="navigation-with-keyboard";function o(){(0,r.useEffect)((()=>{function e(e){"keydown"===e.type&&"Tab"===e.key&&document.body.classList.add(a),"mousedown"===e.type&&document.body.classList.remove(a)}return document.addEventListener("keydown",e),document.addEventListener("mousedown",e),()=>{document.body.classList.remove(a),document.removeEventListener("keydown",e),document.removeEventListener("mousedown",e)}}),[])}},4581:(e,t,n)=>{"use strict";n.d(t,{l:()=>l});var r=n(6540),a=n(8193);const o={desktop:"desktop",mobile:"mobile",ssr:"ssr"},i=996;function l(e){let{desktopBreakpoint:t=i}=void 0===e?{}:e;const[n,l]=(0,r.useState)((()=>"ssr"));return(0,r.useEffect)((()=>{function e(){l(function(e){if(!a.A.canUseDOM)throw new Error("getWindowSize() should only be called after React hydration");return window.innerWidth>e?o.desktop:o.mobile}(t))}return e(),window.addEventListener("resize",e),()=>{window.removeEventListener("resize",e)}}),[t]),n}},7559:(e,t,n)=>{"use strict";n.d(t,{G:()=>r});const r={page:{blogListPage:"blog-list-page",blogPostPage:"blog-post-page",blogTagsListPage:"blog-tags-list-page",blogTagPostListPage:"blog-tags-post-list-page",docsDocPage:"docs-doc-page",docsTagsListPage:"docs-tags-list-page",docsTagDocListPage:"docs-tags-doc-list-page",mdxPage:"mdx-page"},wrapper:{main:"main-wrapper",blogPages:"blog-wrapper",docsPages:"docs-wrapper",mdxPages:"mdx-wrapper"},common:{editThisPage:"theme-edit-this-page",lastUpdated:"theme-last-updated",backToTopButton:"theme-back-to-top-button",codeBlock:"theme-code-block",admonition:"theme-admonition",unlistedBanner:"theme-unlisted-banner",admonitionType:e=>"theme-admonition-"+e},layout:{},docs:{docVersionBanner:"theme-doc-version-banner",docVersionBadge:"theme-doc-version-badge",docBreadcrumbs:"theme-doc-breadcrumbs",docMarkdown:"theme-doc-markdown",docTocMobile:"theme-doc-toc-mobile",docTocDesktop:"theme-doc-toc-desktop",docFooter:"theme-doc-footer",docFooterTagsRow:"theme-doc-footer-tags-row",docFooterEditMetaRow:"theme-doc-footer-edit-meta-row",docSidebarContainer:"theme-doc-sidebar-container",docSidebarMenu:"theme-doc-sidebar-menu",docSidebarItemCategory:"theme-doc-sidebar-item-category",docSidebarItemLink:"theme-doc-sidebar-item-link",docSidebarItemCategoryLevel:e=>"theme-doc-sidebar-item-category-level-"+e,docSidebarItemLinkLevel:e=>"theme-doc-sidebar-item-link-level-"+e},blog:{blogFooterTagsRow:"theme-blog-footer-tags-row",blogFooterEditMetaRow:"theme-blog-footer-edit-meta-row"}}},3109:(e,t,n)=>{"use strict";function r(){return window.matchMedia("(prefers-reduced-motion: reduce)").matches}n.d(t,{O:()=>r})},1754:(e,t,n)=>{"use strict";n.d(t,{d1:()=>A,Nr:()=>m,w8:()=>b,C5:()=>p,$S:()=>h,cC:()=>f,B5:()=>_,Vd:()=>S,QB:()=>C,fW:()=>E,OF:()=>x,Y:()=>w});var r=n(6540),a=n(6347),o=n(2831),i=n(4070),l=n(5597),s=n(2252),u=n(6588);function c(e){return Array.from(new Set(e))}var d=n(9169);const p=!!i.Gy;function f(e){const t=(0,s.r)();if(!e)return;const n=t.docs[e];if(!n)throw new Error("no version doc found by id="+e);return n}function m(e){return"link"!==e.type||e.unlisted?"category"===e.type?function(e){if(e.href&&!e.linkUnlisted)return e.href;for(const t of e.items){const e=m(t);if(e)return e}}(e):void 0:e.href}function h(){const{pathname:e}=(0,a.zy)(),t=(0,u.t)();if(!t)throw new Error("Unexpected: cant find current sidebar in context");const n=k({sidebarItems:t.items,pathname:e,onlyCategories:!0}).slice(-1)[0];if(!n)throw new Error(e+" is not associated with a category. useCurrentSidebarCategory() should only be used on category index pages.");return n}const g=(e,t)=>void 0!==e&&(0,d.ys)(e,t),y=(e,t)=>e.some((e=>b(e,t)));function b(e,t){return"link"===e.type?g(e.href,t):"category"===e.type&&(g(e.href,t)||y(e.items,t))}function v(e,t){switch(e.type){case"category":return b(e,t)||e.items.some((e=>v(e,t)));case"link":return!e.unlisted||b(e,t);default:return!0}}function w(e,t){return(0,r.useMemo)((()=>e.filter((e=>v(e,t)))),[e,t])}function k(e){let{sidebarItems:t,pathname:n,onlyCategories:r=!1}=e;const a=[];return function e(t){for(const o of t)if("category"===o.type&&((0,d.ys)(o.href,n)||e(o.items))||"link"===o.type&&(0,d.ys)(o.href,n)){return r&&"category"!==o.type||a.unshift(o),!0}return!1}(t),a}function x(){var e;const t=(0,u.t)(),{pathname:n}=(0,a.zy)();return!1!==(null==(e=(0,i.vT)())?void 0:e.pluginData.breadcrumbs)&&t?k({sidebarItems:t.items,pathname:n}):null}function S(e){const{activeVersion:t}=(0,i.zK)(e),{preferredVersion:n}=(0,l.g1)(e),a=(0,i.r7)(e);return(0,r.useMemo)((()=>c([t,n,a].filter(Boolean))),[t,n,a])}function E(e,t){const n=S(t);return(0,r.useMemo)((()=>{const t=n.flatMap((e=>e.sidebars?Object.entries(e.sidebars):[])),r=t.find((t=>t[0]===e));if(!r)throw new Error("Can't find any sidebar with id \""+e+'" in version'+(n.length>1?"s":"")+" "+n.map((e=>e.name)).join(", ")+'".\nAvailable sidebar ids are:\n- '+t.map((e=>e[0])).join("\n- "));return r[1]}),[e,n])}function C(e,t){const n=S(t);return(0,r.useMemo)((()=>{const t=n.flatMap((e=>e.docs)),r=t.find((t=>t.id===e));if(!r){if(n.flatMap((e=>e.draftIds)).includes(e))return null;throw new Error("Couldn't find any doc with id \""+e+'" in version'+(n.length>1?"s":"")+' "'+n.map((e=>e.name)).join(", ")+'".\nAvailable doc ids are:\n- '+c(t.map((e=>e.id))).join("\n- "))}return r}),[e,n])}function _(e){let{route:t}=e;const n=(0,a.zy)(),r=(0,s.r)(),i=t.routes,l=i.find((e=>(0,a.B6)(n.pathname,e)));if(!l)return null;const u=l.sidebar,c=u?r.docsSidebars[u]:void 0;return{docElement:(0,o.v)(i),sidebarName:u,sidebarItems:c}}function A(e){return e.filter((e=>!("category"===e.type||"link"===e.type)||!!m(e)))}},1003:(e,t,n)=>{"use strict";n.d(t,{e3:()=>f,be:()=>d,Jx:()=>m});var r=n(6540),a=n(4164),o=n(5260),i=n(3102);function l(){const e=r.useContext(i.o);if(!e)throw new Error("Unexpected: no Docusaurus route context found");return e}var s=n(6025),u=n(4586);var c=n(4848);function d(e){let{title:t,description:n,keywords:r,image:a,children:i}=e;const l=function(e){const{siteConfig:t}=(0,u.A)(),{title:n,titleDelimiter:r}=t;return null!=e&&e.trim().length?e.trim()+" "+r+" "+n:n}(t),{withBaseUrl:d}=(0,s.h)(),p=a?d(a,{absolute:!0}):void 0;return(0,c.jsxs)(o.A,{children:[t&&(0,c.jsx)("title",{children:l}),t&&(0,c.jsx)("meta",{property:"og:title",content:l}),n&&(0,c.jsx)("meta",{name:"description",content:n}),n&&(0,c.jsx)("meta",{property:"og:description",content:n}),r&&(0,c.jsx)("meta",{name:"keywords",content:Array.isArray(r)?r.join(","):r}),p&&(0,c.jsx)("meta",{property:"og:image",content:p}),p&&(0,c.jsx)("meta",{name:"twitter:image",content:p}),i]})}const p=r.createContext(void 0);function f(e){let{className:t,children:n}=e;const i=r.useContext(p),l=(0,a.A)(i,t);return(0,c.jsxs)(p.Provider,{value:l,children:[(0,c.jsx)(o.A,{children:(0,c.jsx)("html",{className:l})}),n]})}function m(e){let{children:t}=e;const n=l(),r="plugin-"+n.plugin.name.replace(/docusaurus-(?:plugin|theme)-(?:content-)?/gi,"");const o="plugin-id-"+n.plugin.id;return(0,c.jsx)(f,{className:(0,a.A)(r,o),children:t})}},9532:(e,t,n)=>{"use strict";n.d(t,{Be:()=>u,ZC:()=>l,_q:()=>i,dV:()=>s,fM:()=>c});var r=n(6540),a=n(205),o=n(4848);function i(e){const t=(0,r.useRef)(e);return(0,a.A)((()=>{t.current=e}),[e]),(0,r.useCallback)((function(){return t.current(...arguments)}),[])}function l(e){const t=(0,r.useRef)();return(0,a.A)((()=>{t.current=e})),t.current}class s extends Error{constructor(e,t){var n,r;super(),this.name="ReactContextError",this.message="Hook "+(null!=(n=null==(r=this.stack)||null==(r=r.split("\n")[1])||null==(r=r.match(/at (?:\w+\.)?(?<name>\w+)/))?void 0:r.groups.name)?n:"")+" is called outside the <"+e+">. "+(null!=t?t:"")}}function u(e){const t=Object.entries(e);return t.sort(((e,t)=>e[0].localeCompare(t[0]))),(0,r.useMemo)((()=>e),t.flat())}function c(e){return t=>{let{children:n}=t;return(0,o.jsx)(o.Fragment,{children:e.reduceRight(((e,t)=>(0,o.jsx)(t,{children:e})),n)})}}},9169:(e,t,n)=>{"use strict";n.d(t,{Dt:()=>l,ys:()=>i});var r=n(6540),a=n(8328),o=n(4586);function i(e,t){const n=e=>{var t;return null==(t=!e||e.endsWith("/")?e:e+"/")?void 0:t.toLowerCase()};return n(e)===n(t)}function l(){const{baseUrl:e}=(0,o.A)().siteConfig;return(0,r.useMemo)((()=>function(e){let{baseUrl:t,routes:n}=e;function r(e){return e.path===t&&!0===e.exact}function a(e){return e.path===t&&!e.exact}return function e(t){if(0===t.length)return;return t.find(r)||e(t.filter(a).flatMap((e=>{var t;return null!=(t=e.routes)?t:[]})))}(n)}({routes:a.A,baseUrl:e})),[e])}},3104:(e,t,n)=>{"use strict";n.d(t,{Mq:()=>p,Tv:()=>u,gk:()=>f});var r=n(6540),a=n(8193),o=n(2303),i=(n(205),n(9532)),l=n(4848);const s=r.createContext(void 0);function u(e){let{children:t}=e;const n=function(){const e=(0,r.useRef)(!0);return(0,r.useMemo)((()=>({scrollEventsEnabledRef:e,enableScrollEvents:()=>{e.current=!0},disableScrollEvents:()=>{e.current=!1}})),[])}();return(0,l.jsx)(s.Provider,{value:n,children:t})}function c(){const e=(0,r.useContext)(s);if(null==e)throw new i.dV("ScrollControllerProvider");return e}const d=()=>a.A.canUseDOM?{scrollX:window.pageXOffset,scrollY:window.pageYOffset}:null;function p(e,t){void 0===t&&(t=[]);const{scrollEventsEnabledRef:n}=c(),a=(0,r.useRef)(d()),o=(0,i._q)(e);(0,r.useEffect)((()=>{const e=()=>{if(!n.current)return;const e=d();o(e,a.current),a.current=e},t={passive:!0};return e(),window.addEventListener("scroll",e,t),()=>window.removeEventListener("scroll",e,t)}),[o,n,...t])}function f(){const e=(0,r.useRef)(null),t=(0,o.A)()&&"smooth"===getComputedStyle(document.documentElement).scrollBehavior;return{startScroll:n=>{e.current=t?function(e){return window.scrollTo({top:e,behavior:"smooth"}),()=>{}}(n):function(e){let t=null;const n=document.documentElement.scrollTop>e;return function r(){const a=document.documentElement.scrollTop;(n&&a>e||!n&&a<e)&&(t=requestAnimationFrame(r),window.scrollTo(0,Math.floor(.85*(a-e))+e))}(),()=>t&&cancelAnimationFrame(t)}(n)},cancelScroll:()=>null==e.current?void 0:e.current()}}},2967:(e,t,n)=>{"use strict";n.d(t,{Cy:()=>r,tU:()=>a});n(4586);const r="default";function a(e,t){return"docs-"+e+"-"+t}},9466:(e,t,n)=>{"use strict";n.d(t,{Wf:()=>s});n(6540);const r="localStorage";function a(e){let{key:t,oldValue:n,newValue:r,storage:a}=e;if(n===r)return;const o=document.createEvent("StorageEvent");o.initStorageEvent("storage",!1,!1,t,n,r,window.location.href,a),window.dispatchEvent(o)}function o(e){if(void 0===e&&(e=r),"undefined"==typeof window)throw new Error("Browser storage is not available on Node.js/Docusaurus SSR process.");if("none"===e)return null;try{return window[e]}catch(n){return t=n,i||(console.warn("Docusaurus browser storage is not available.\nPossible reasons: running Docusaurus in an iframe, in an incognito browser session, or using too strict browser privacy settings.",t),i=!0),null}var t}let i=!1;const l={get:()=>null,set:()=>{},del:()=>{},listen:()=>()=>{}};function s(e,t){if("undefined"==typeof window)return function(e){function t(){throw new Error('Illegal storage API usage for storage key "'+e+'".\nDocusaurus storage APIs are not supposed to be called on the server-rendering process.\nPlease only call storage APIs in effects and event handlers.')}return{get:t,set:t,del:t,listen:t}}(e);const n=o(null==t?void 0:t.persistence);return null===n?l:{get:()=>{try{return n.getItem(e)}catch(t){return console.error("Docusaurus storage error, can't get key="+e,t),null}},set:t=>{try{const r=n.getItem(e);n.setItem(e,t),a({key:e,oldValue:r,newValue:t,storage:n})}catch(r){console.error("Docusaurus storage error, can't set "+e+"="+t,r)}},del:()=>{try{const t=n.getItem(e);n.removeItem(e),a({key:e,oldValue:t,newValue:null,storage:n})}catch(t){console.error("Docusaurus storage error, can't delete key="+e,t)}},listen:t=>{try{const r=r=>{r.storageArea===n&&r.key===e&&t(r)};return window.addEventListener("storage",r),()=>window.removeEventListener("storage",r)}catch(r){return console.error("Docusaurus storage error, can't listen for changes of key="+e,r),()=>{}}}}}},2131:(e,t,n)=>{"use strict";n.d(t,{o:()=>i});var r=n(4586),a=n(6347),o=n(440);function i(){const{siteConfig:{baseUrl:e,url:t,trailingSlash:n},i18n:{defaultLocale:i,currentLocale:l}}=(0,r.A)(),{pathname:s}=(0,a.zy)(),u=(0,o.applyTrailingSlash)(s,{trailingSlash:n,baseUrl:e}),c=l===i?e:e.replace("/"+l+"/","/"),d=u.replace(e,"");return{createUrl:function(e){let{locale:n,fullyQualified:r}=e;return""+(r?t:"")+function(e){return e===i?""+c:""+c+e+"/"}(n)+d}}}},5062:(e,t,n)=>{"use strict";n.d(t,{$:()=>i});var r=n(6540),a=n(6347),o=n(9532);function i(e){const t=(0,a.zy)(),n=(0,o.ZC)(t),i=(0,o._q)(e);(0,r.useEffect)((()=>{n&&t!==n&&i({location:t,previousLocation:n})}),[i,t,n])}},6342:(e,t,n)=>{"use strict";n.d(t,{p:()=>a});var r=n(4586);function a(){return(0,r.A)().siteConfig.themeConfig}},2983:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.removeTrailingSlash=t.addLeadingSlash=t.addTrailingSlash=void 0;const r=n(2566);function a(e){return e.endsWith("/")?e:e+"/"}function o(e){return(0,r.removeSuffix)(e,"/")}t.addTrailingSlash=a,t.default=function(e,t){const{trailingSlash:n,baseUrl:r}=t;if(e.startsWith("#"))return e;if(void 0===n)return e;const[i]=e.split(/[#?]/),l="/"===i||i===r?i:(s=i,n?a(s):o(s));var s;return e.replace(i,l)},t.addLeadingSlash=function(e){return(0,r.addPrefix)(e,"/")},t.removeTrailingSlash=o},253:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getErrorCausalChain=void 0,t.getErrorCausalChain=function e(t){return t.cause?[t,...e(t.cause)]:[t]}},440:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.getErrorCausalChain=t.removePrefix=t.addSuffix=t.removeSuffix=t.addPrefix=t.removeTrailingSlash=t.addLeadingSlash=t.addTrailingSlash=t.applyTrailingSlash=t.blogPostContainerID=void 0,t.blogPostContainerID="__blog-post-container";var a=n(2983);Object.defineProperty(t,"applyTrailingSlash",{enumerable:!0,get:function(){return r(a).default}}),Object.defineProperty(t,"addTrailingSlash",{enumerable:!0,get:function(){return a.addTrailingSlash}}),Object.defineProperty(t,"addLeadingSlash",{enumerable:!0,get:function(){return a.addLeadingSlash}}),Object.defineProperty(t,"removeTrailingSlash",{enumerable:!0,get:function(){return a.removeTrailingSlash}});var o=n(2566);Object.defineProperty(t,"addPrefix",{enumerable:!0,get:function(){return o.addPrefix}}),Object.defineProperty(t,"removeSuffix",{enumerable:!0,get:function(){return o.removeSuffix}}),Object.defineProperty(t,"addSuffix",{enumerable:!0,get:function(){return o.addSuffix}}),Object.defineProperty(t,"removePrefix",{enumerable:!0,get:function(){return o.removePrefix}});var i=n(253);Object.defineProperty(t,"getErrorCausalChain",{enumerable:!0,get:function(){return i.getErrorCausalChain}})},2566:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.removePrefix=t.addSuffix=t.removeSuffix=t.addPrefix=void 0,t.addPrefix=function(e,t){return e.startsWith(t)?e:""+t+e},t.removeSuffix=function(e,t){return""===t?e:e.endsWith(t)?e.slice(0,-t.length):e},t.addSuffix=function(e,t){return e.endsWith(t)?e:""+e+t},t.removePrefix=function(e,t){return e.startsWith(t)?e.slice(t.length):e}},1513:(e,t,n)=>{"use strict";n.d(t,{zR:()=>w,TM:()=>_,yJ:()=>f,sC:()=>T,AO:()=>p});var r=n(8168);function a(e){return"/"===e.charAt(0)}function o(e,t){for(var n=t,r=n+1,a=e.length;r<a;n+=1,r+=1)e[n]=e[r];e.pop()}const i=function(e,t){void 0===t&&(t="");var n,r=e&&e.split("/")||[],i=t&&t.split("/")||[],l=e&&a(e),s=t&&a(t),u=l||s;if(e&&a(e)?i=r:r.length&&(i.pop(),i=i.concat(r)),!i.length)return"/";if(i.length){var c=i[i.length-1];n="."===c||".."===c||""===c}else n=!1;for(var d=0,p=i.length;p>=0;p--){var f=i[p];"."===f?o(i,p):".."===f?(o(i,p),d++):d&&(o(i,p),d--)}if(!u)for(;d--;d)i.unshift("..");!u||""===i[0]||i[0]&&a(i[0])||i.unshift("");var m=i.join("/");return n&&"/"!==m.substr(-1)&&(m+="/"),m};var l=n(1561);function s(e){return"/"===e.charAt(0)?e:"/"+e}function u(e){return"/"===e.charAt(0)?e.substr(1):e}function c(e,t){return function(e,t){return 0===e.toLowerCase().indexOf(t.toLowerCase())&&-1!=="/?#".indexOf(e.charAt(t.length))}(e,t)?e.substr(t.length):e}function d(e){return"/"===e.charAt(e.length-1)?e.slice(0,-1):e}function p(e){var t=e.pathname,n=e.search,r=e.hash,a=t||"/";return n&&"?"!==n&&(a+="?"===n.charAt(0)?n:"?"+n),r&&"#"!==r&&(a+="#"===r.charAt(0)?r:"#"+r),a}function f(e,t,n,a){var o;"string"==typeof e?(o=function(e){var t=e||"/",n="",r="",a=t.indexOf("#");-1!==a&&(r=t.substr(a),t=t.substr(0,a));var o=t.indexOf("?");return-1!==o&&(n=t.substr(o),t=t.substr(0,o)),{pathname:t,search:"?"===n?"":n,hash:"#"===r?"":r}}(e),o.state=t):(void 0===(o=(0,r.A)({},e)).pathname&&(o.pathname=""),o.search?"?"!==o.search.charAt(0)&&(o.search="?"+o.search):o.search="",o.hash?"#"!==o.hash.charAt(0)&&(o.hash="#"+o.hash):o.hash="",void 0!==t&&void 0===o.state&&(o.state=t));try{o.pathname=decodeURI(o.pathname)}catch(l){throw l instanceof URIError?new URIError('Pathname "'+o.pathname+'" could not be decoded. This is likely caused by an invalid percent-encoding.'):l}return n&&(o.key=n),a?o.pathname?"/"!==o.pathname.charAt(0)&&(o.pathname=i(o.pathname,a.pathname)):o.pathname=a.pathname:o.pathname||(o.pathname="/"),o}function m(){var e=null;var t=[];return{setPrompt:function(t){return e=t,function(){e===t&&(e=null)}},confirmTransitionTo:function(t,n,r,a){if(null!=e){var o="function"==typeof e?e(t,n):e;"string"==typeof o?"function"==typeof r?r(o,a):a(!0):a(!1!==o)}else a(!0)},appendListener:function(e){var n=!0;function r(){n&&e.apply(void 0,arguments)}return t.push(r),function(){n=!1,t=t.filter((function(e){return e!==r}))}},notifyListeners:function(){for(var e=arguments.length,n=new Array(e),r=0;r<e;r++)n[r]=arguments[r];t.forEach((function(e){return e.apply(void 0,n)}))}}}var h=!("undefined"==typeof window||!window.document||!window.document.createElement);function g(e,t){t(window.confirm(e))}var y="popstate",b="hashchange";function v(){try{return window.history.state||{}}catch(e){return{}}}function w(e){void 0===e&&(e={}),h||(0,l.A)(!1);var t,n=window.history,a=(-1===(t=window.navigator.userAgent).indexOf("Android 2.")&&-1===t.indexOf("Android 4.0")||-1===t.indexOf("Mobile Safari")||-1!==t.indexOf("Chrome")||-1!==t.indexOf("Windows Phone"))&&window.history&&"pushState"in window.history,o=!(-1===window.navigator.userAgent.indexOf("Trident")),i=e,u=i.forceRefresh,w=void 0!==u&&u,k=i.getUserConfirmation,x=void 0===k?g:k,S=i.keyLength,E=void 0===S?6:S,C=e.basename?d(s(e.basename)):"";function _(e){var t=e||{},n=t.key,r=t.state,a=window.location,o=a.pathname+a.search+a.hash;return C&&(o=c(o,C)),f(o,r,n)}function A(){return Math.random().toString(36).substr(2,E)}var T=m();function j(e){(0,r.A)(U,e),U.length=n.length,T.notifyListeners(U.location,U.action)}function N(e){(function(e){return void 0===e.state&&-1===navigator.userAgent.indexOf("CriOS")})(e)||R(_(e.state))}function L(){R(_(v()))}var P=!1;function R(e){if(P)P=!1,j();else{T.confirmTransitionTo(e,"POP",x,(function(t){t?j({action:"POP",location:e}):function(e){var t=U.location,n=I.indexOf(t.key);-1===n&&(n=0);var r=I.indexOf(e.key);-1===r&&(r=0);var a=n-r;a&&(P=!0,M(a))}(e)}))}}var O=_(v()),I=[O.key];function D(e){return C+p(e)}function M(e){n.go(e)}var F=0;function z(e){1===(F+=e)&&1===e?(window.addEventListener(y,N),o&&window.addEventListener(b,L)):0===F&&(window.removeEventListener(y,N),o&&window.removeEventListener(b,L))}var B=!1;var U={length:n.length,action:"POP",location:O,createHref:D,push:function(e,t){var r="PUSH",o=f(e,t,A(),U.location);T.confirmTransitionTo(o,r,x,(function(e){if(e){var t=D(o),i=o.key,l=o.state;if(a)if(n.pushState({key:i,state:l},null,t),w)window.location.href=t;else{var s=I.indexOf(U.location.key),u=I.slice(0,s+1);u.push(o.key),I=u,j({action:r,location:o})}else window.location.href=t}}))},replace:function(e,t){var r="REPLACE",o=f(e,t,A(),U.location);T.confirmTransitionTo(o,r,x,(function(e){if(e){var t=D(o),i=o.key,l=o.state;if(a)if(n.replaceState({key:i,state:l},null,t),w)window.location.replace(t);else{var s=I.indexOf(U.location.key);-1!==s&&(I[s]=o.key),j({action:r,location:o})}else window.location.replace(t)}}))},go:M,goBack:function(){M(-1)},goForward:function(){M(1)},block:function(e){void 0===e&&(e=!1);var t=T.setPrompt(e);return B||(z(1),B=!0),function(){return B&&(B=!1,z(-1)),t()}},listen:function(e){var t=T.appendListener(e);return z(1),function(){z(-1),t()}}};return U}var k="hashchange",x={hashbang:{encodePath:function(e){return"!"===e.charAt(0)?e:"!/"+u(e)},decodePath:function(e){return"!"===e.charAt(0)?e.substr(1):e}},noslash:{encodePath:u,decodePath:s},slash:{encodePath:s,decodePath:s}};function S(e){var t=e.indexOf("#");return-1===t?e:e.slice(0,t)}function E(){var e=window.location.href,t=e.indexOf("#");return-1===t?"":e.substring(t+1)}function C(e){window.location.replace(S(window.location.href)+"#"+e)}function _(e){void 0===e&&(e={}),h||(0,l.A)(!1);var t=window.history,n=(window.navigator.userAgent.indexOf("Firefox"),e),a=n.getUserConfirmation,o=void 0===a?g:a,i=n.hashType,u=void 0===i?"slash":i,y=e.basename?d(s(e.basename)):"",b=x[u],v=b.encodePath,w=b.decodePath;function _(){var e=w(E());return y&&(e=c(e,y)),f(e)}var A=m();function T(e){(0,r.A)(B,e),B.length=t.length,A.notifyListeners(B.location,B.action)}var j=!1,N=null;function L(){var e,t,n=E(),r=v(n);if(n!==r)C(r);else{var a=_(),i=B.location;if(!j&&(t=a,(e=i).pathname===t.pathname&&e.search===t.search&&e.hash===t.hash))return;if(N===p(a))return;N=null,function(e){if(j)j=!1,T();else{var t="POP";A.confirmTransitionTo(e,t,o,(function(n){n?T({action:t,location:e}):function(e){var t=B.location,n=I.lastIndexOf(p(t));-1===n&&(n=0);var r=I.lastIndexOf(p(e));-1===r&&(r=0);var a=n-r;a&&(j=!0,D(a))}(e)}))}}(a)}}var P=E(),R=v(P);P!==R&&C(R);var O=_(),I=[p(O)];function D(e){t.go(e)}var M=0;function F(e){1===(M+=e)&&1===e?window.addEventListener(k,L):0===M&&window.removeEventListener(k,L)}var z=!1;var B={length:t.length,action:"POP",location:O,createHref:function(e){var t=document.querySelector("base"),n="";return t&&t.getAttribute("href")&&(n=S(window.location.href)),n+"#"+v(y+p(e))},push:function(e,t){var n="PUSH",r=f(e,void 0,void 0,B.location);A.confirmTransitionTo(r,n,o,(function(e){if(e){var t=p(r),a=v(y+t);if(E()!==a){N=t,function(e){window.location.hash=e}(a);var o=I.lastIndexOf(p(B.location)),i=I.slice(0,o+1);i.push(t),I=i,T({action:n,location:r})}else T()}}))},replace:function(e,t){var n="REPLACE",r=f(e,void 0,void 0,B.location);A.confirmTransitionTo(r,n,o,(function(e){if(e){var t=p(r),a=v(y+t);E()!==a&&(N=t,C(a));var o=I.indexOf(p(B.location));-1!==o&&(I[o]=t),T({action:n,location:r})}}))},go:D,goBack:function(){D(-1)},goForward:function(){D(1)},block:function(e){void 0===e&&(e=!1);var t=A.setPrompt(e);return z||(F(1),z=!0),function(){return z&&(z=!1,F(-1)),t()}},listen:function(e){var t=A.appendListener(e);return F(1),function(){F(-1),t()}}};return B}function A(e,t,n){return Math.min(Math.max(e,t),n)}function T(e){void 0===e&&(e={});var t=e,n=t.getUserConfirmation,a=t.initialEntries,o=void 0===a?["/"]:a,i=t.initialIndex,l=void 0===i?0:i,s=t.keyLength,u=void 0===s?6:s,c=m();function d(e){(0,r.A)(w,e),w.length=w.entries.length,c.notifyListeners(w.location,w.action)}function h(){return Math.random().toString(36).substr(2,u)}var g=A(l,0,o.length-1),y=o.map((function(e){return f(e,void 0,"string"==typeof e?h():e.key||h())})),b=p;function v(e){var t=A(w.index+e,0,w.entries.length-1),r=w.entries[t];c.confirmTransitionTo(r,"POP",n,(function(e){e?d({action:"POP",location:r,index:t}):d()}))}var w={length:y.length,action:"POP",location:y[g],index:g,entries:y,createHref:b,push:function(e,t){var r="PUSH",a=f(e,t,h(),w.location);c.confirmTransitionTo(a,r,n,(function(e){if(e){var t=w.index+1,n=w.entries.slice(0);n.length>t?n.splice(t,n.length-t,a):n.push(a),d({action:r,location:a,index:t,entries:n})}}))},replace:function(e,t){var r="REPLACE",a=f(e,t,h(),w.location);c.confirmTransitionTo(a,r,n,(function(e){e&&(w.entries[w.index]=a,d({action:r,location:a}))}))},go:v,goBack:function(){v(-1)},goForward:function(){v(1)},canGo:function(e){var t=w.index+e;return t>=0&&t<w.entries.length},block:function(e){return void 0===e&&(e=!1),c.setPrompt(e)},listen:function(e){return c.appendListener(e)}};return w}},4146:(e,t,n)=>{"use strict";var r=n(4363),a={childContextTypes:!0,contextType:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromError:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},o={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},i={$$typeof:!0,compare:!0,defaultProps:!0,displayName:!0,propTypes:!0,type:!0},l={};function s(e){return r.isMemo(e)?i:l[e.$$typeof]||a}l[r.ForwardRef]={$$typeof:!0,render:!0,defaultProps:!0,displayName:!0,propTypes:!0},l[r.Memo]=i;var u=Object.defineProperty,c=Object.getOwnPropertyNames,d=Object.getOwnPropertySymbols,p=Object.getOwnPropertyDescriptor,f=Object.getPrototypeOf,m=Object.prototype;e.exports=function e(t,n,r){if("string"!=typeof n){if(m){var a=f(n);a&&a!==m&&e(t,a,r)}var i=c(n);d&&(i=i.concat(d(n)));for(var l=s(t),h=s(n),g=0;g<i.length;++g){var y=i[g];if(!(o[y]||r&&r[y]||h&&h[y]||l&&l[y])){var b=p(n,y);try{u(t,y,b)}catch(v){}}}}return t}},311:e=>{"use strict";e.exports=function(e,t,n,r,a,o,i,l){if(!e){var s;if(void 0===t)s=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var u=[n,r,a,o,i,l],c=0;(s=new Error(t.replace(/%s/g,(function(){return u[c++]})))).name="Invariant Violation"}throw s.framesToPop=1,s}}},4634:e=>{e.exports=Array.isArray||function(e){return"[object Array]"==Object.prototype.toString.call(e)}},119:(e,t,n)=>{"use strict";n.r(t)},5947:function(e,t,n){var r,a;r=function(){var e,t,n={version:"0.2.0"},r=n.settings={minimum:.08,easing:"ease",positionUsing:"",speed:200,trickle:!0,trickleRate:.02,trickleSpeed:800,showSpinner:!0,barSelector:'[role="bar"]',spinnerSelector:'[role="spinner"]',parent:"body",template:'<div class="bar" role="bar"><div class="peg"></div></div><div class="spinner" role="spinner"><div class="spinner-icon"></div></div>'};function a(e,t,n){return e<t?t:e>n?n:e}function o(e){return 100*(-1+e)}function i(e,t,n){var a;return(a="translate3d"===r.positionUsing?{transform:"translate3d("+o(e)+"%,0,0)"}:"translate"===r.positionUsing?{transform:"translate("+o(e)+"%,0)"}:{"margin-left":o(e)+"%"}).transition="all "+t+"ms "+n,a}n.configure=function(e){var t,n;for(t in e)void 0!==(n=e[t])&&e.hasOwnProperty(t)&&(r[t]=n);return this},n.status=null,n.set=function(e){var t=n.isStarted();e=a(e,r.minimum,1),n.status=1===e?null:e;var o=n.render(!t),u=o.querySelector(r.barSelector),c=r.speed,d=r.easing;return o.offsetWidth,l((function(t){""===r.positionUsing&&(r.positionUsing=n.getPositioningCSS()),s(u,i(e,c,d)),1===e?(s(o,{transition:"none",opacity:1}),o.offsetWidth,setTimeout((function(){s(o,{transition:"all "+c+"ms linear",opacity:0}),setTimeout((function(){n.remove(),t()}),c)}),c)):setTimeout(t,c)})),this},n.isStarted=function(){return"number"==typeof n.status},n.start=function(){n.status||n.set(0);var e=function(){setTimeout((function(){n.status&&(n.trickle(),e())}),r.trickleSpeed)};return r.trickle&&e(),this},n.done=function(e){return e||n.status?n.inc(.3+.5*Math.random()).set(1):this},n.inc=function(e){var t=n.status;return t?("number"!=typeof e&&(e=(1-t)*a(Math.random()*t,.1,.95)),t=a(t+e,0,.994),n.set(t)):n.start()},n.trickle=function(){return n.inc(Math.random()*r.trickleRate)},e=0,t=0,n.promise=function(r){return r&&"resolved"!==r.state()?(0===t&&n.start(),e++,t++,r.always((function(){0==--t?(e=0,n.done()):n.set((e-t)/e)})),this):this},n.render=function(e){if(n.isRendered())return document.getElementById("nprogress");c(document.documentElement,"nprogress-busy");var t=document.createElement("div");t.id="nprogress",t.innerHTML=r.template;var a,i=t.querySelector(r.barSelector),l=e?"-100":o(n.status||0),u=document.querySelector(r.parent);return s(i,{transition:"all 0 linear",transform:"translate3d("+l+"%,0,0)"}),r.showSpinner||(a=t.querySelector(r.spinnerSelector))&&f(a),u!=document.body&&c(u,"nprogress-custom-parent"),u.appendChild(t),t},n.remove=function(){d(document.documentElement,"nprogress-busy"),d(document.querySelector(r.parent),"nprogress-custom-parent");var e=document.getElementById("nprogress");e&&f(e)},n.isRendered=function(){return!!document.getElementById("nprogress")},n.getPositioningCSS=function(){var e=document.body.style,t="WebkitTransform"in e?"Webkit":"MozTransform"in e?"Moz":"msTransform"in e?"ms":"OTransform"in e?"O":"";return t+"Perspective"in e?"translate3d":t+"Transform"in e?"translate":"margin"};var l=function(){var e=[];function t(){var n=e.shift();n&&n(t)}return function(n){e.push(n),1==e.length&&t()}}(),s=function(){var e=["Webkit","O","Moz","ms"],t={};function n(e){return e.replace(/^-ms-/,"ms-").replace(/-([\da-z])/gi,(function(e,t){return t.toUpperCase()}))}function r(t){var n=document.body.style;if(t in n)return t;for(var r,a=e.length,o=t.charAt(0).toUpperCase()+t.slice(1);a--;)if((r=e[a]+o)in n)return r;return t}function a(e){return e=n(e),t[e]||(t[e]=r(e))}function o(e,t,n){t=a(t),e.style[t]=n}return function(e,t){var n,r,a=arguments;if(2==a.length)for(n in t)void 0!==(r=t[n])&&t.hasOwnProperty(n)&&o(e,n,r);else o(e,a[1],a[2])}}();function u(e,t){return("string"==typeof e?e:p(e)).indexOf(" "+t+" ")>=0}function c(e,t){var n=p(e),r=n+t;u(n,t)||(e.className=r.substring(1))}function d(e,t){var n,r=p(e);u(e,t)&&(n=r.replace(" "+t+" "," "),e.className=n.substring(1,n.length-1))}function p(e){return(" "+(e.className||"")+" ").replace(/\s+/gi," ")}function f(e){e&&e.parentNode&&e.parentNode.removeChild(e)}return n},void 0===(a="function"==typeof r?r.call(t,n,t,e):r)||(e.exports=a)},5302:(e,t,n)=>{var r=n(4634);e.exports=f,e.exports.parse=o,e.exports.compile=function(e,t){return l(o(e,t),t)},e.exports.tokensToFunction=l,e.exports.tokensToRegExp=p;var a=new RegExp(["(\\\\.)","([\\/.])?(?:(?:\\:(\\w+)(?:\\(((?:\\\\.|[^\\\\()])+)\\))?|\\(((?:\\\\.|[^\\\\()])+)\\))([+*?])?|(\\*))"].join("|"),"g");function o(e,t){for(var n,r=[],o=0,i=0,l="",c=t&&t.delimiter||"/";null!=(n=a.exec(e));){var d=n[0],p=n[1],f=n.index;if(l+=e.slice(i,f),i=f+d.length,p)l+=p[1];else{var m=e[i],h=n[2],g=n[3],y=n[4],b=n[5],v=n[6],w=n[7];l&&(r.push(l),l="");var k=null!=h&&null!=m&&m!==h,x="+"===v||"*"===v,S="?"===v||"*"===v,E=n[2]||c,C=y||b;r.push({name:g||o++,prefix:h||"",delimiter:E,optional:S,repeat:x,partial:k,asterisk:!!w,pattern:C?u(C):w?".*":"[^"+s(E)+"]+?"})}}return i<e.length&&(l+=e.substr(i)),l&&r.push(l),r}function i(e){return encodeURI(e).replace(/[\/?#]/g,(function(e){return"%"+e.charCodeAt(0).toString(16).toUpperCase()}))}function l(e,t){for(var n=new Array(e.length),a=0;a<e.length;a++)"object"==typeof e[a]&&(n[a]=new RegExp("^(?:"+e[a].pattern+")$",d(t)));return function(t,a){for(var o="",l=t||{},s=(a||{}).pretty?i:encodeURIComponent,u=0;u<e.length;u++){var c=e[u];if("string"!=typeof c){var d,p=l[c.name];if(null==p){if(c.optional){c.partial&&(o+=c.prefix);continue}throw new TypeError('Expected "'+c.name+'" to be defined')}if(r(p)){if(!c.repeat)throw new TypeError('Expected "'+c.name+'" to not repeat, but received `'+JSON.stringify(p)+"`");if(0===p.length){if(c.optional)continue;throw new TypeError('Expected "'+c.name+'" to not be empty')}for(var f=0;f<p.length;f++){if(d=s(p[f]),!n[u].test(d))throw new TypeError('Expected all "'+c.name+'" to match "'+c.pattern+'", but received `'+JSON.stringify(d)+"`");o+=(0===f?c.prefix:c.delimiter)+d}}else{if(d=c.asterisk?encodeURI(p).replace(/[?#]/g,(function(e){return"%"+e.charCodeAt(0).toString(16).toUpperCase()})):s(p),!n[u].test(d))throw new TypeError('Expected "'+c.name+'" to match "'+c.pattern+'", but received "'+d+'"');o+=c.prefix+d}}else o+=c}return o}}function s(e){return e.replace(/([.+*?=^!:${}()[\]|\/\\])/g,"\\$1")}function u(e){return e.replace(/([=!:$\/()])/g,"\\$1")}function c(e,t){return e.keys=t,e}function d(e){return e&&e.sensitive?"":"i"}function p(e,t,n){r(t)||(n=t||n,t=[]);for(var a=(n=n||{}).strict,o=!1!==n.end,i="",l=0;l<e.length;l++){var u=e[l];if("string"==typeof u)i+=s(u);else{var p=s(u.prefix),f="(?:"+u.pattern+")";t.push(u),u.repeat&&(f+="(?:"+p+f+")*"),i+=f=u.optional?u.partial?p+"("+f+")?":"(?:"+p+"("+f+"))?":p+"("+f+")"}}var m=s(n.delimiter||"/"),h=i.slice(-m.length)===m;return a||(i=(h?i.slice(0,-m.length):i)+"(?:"+m+"(?=$))?"),i+=o?"$":a&&h?"":"(?="+m+"|$)",c(new RegExp("^"+i,d(n)),t)}function f(e,t,n){return r(t)||(n=t||n,t=[]),n=n||{},e instanceof RegExp?function(e,t){var n=e.source.match(/\((?!\?)/g);if(n)for(var r=0;r<n.length;r++)t.push({name:r,prefix:null,delimiter:null,optional:!1,repeat:!1,partial:!1,asterisk:!1,pattern:null});return c(e,t)}(e,t):r(e)?function(e,t,n){for(var r=[],a=0;a<e.length;a++)r.push(f(e[a],t,n).source);return c(new RegExp("(?:"+r.join("|")+")",d(n)),t)}(e,t,n):function(e,t,n){return p(o(e,n),t,n)}(e,t,n)}},6969:e=>{e.exports&&(e.exports={core:{meta:{path:"components/prism-core.js",option:"mandatory"},core:"Core"},themes:{meta:{path:"themes/{id}.css",link:"index.html?theme={id}",exclusive:!0},prism:{title:"Default",option:"default"},"prism-dark":"Dark","prism-funky":"Funky","prism-okaidia":{title:"Okaidia",owner:"ocodia"},"prism-twilight":{title:"Twilight",owner:"remybach"},"prism-coy":{title:"Coy",owner:"tshedor"},"prism-solarizedlight":{title:"Solarized Light",owner:"hectormatos2011 "},"prism-tomorrow":{title:"Tomorrow Night",owner:"Rosey"}},languages:{meta:{path:"components/prism-{id}",noCSS:!0,examplesPath:"examples/prism-{id}",addCheckAll:!0},markup:{title:"Markup",alias:["html","xml","svg","mathml","ssml","atom","rss"],aliasTitles:{html:"HTML",xml:"XML",svg:"SVG",mathml:"MathML",ssml:"SSML",atom:"Atom",rss:"RSS"},option:"default"},css:{title:"CSS",option:"default",modify:"markup"},clike:{title:"C-like",option:"default"},javascript:{title:"JavaScript",require:"clike",modify:"markup",optional:"regex",alias:"js",option:"default"},abap:{title:"ABAP",owner:"dellagustin"},abnf:{title:"ABNF",owner:"RunDevelopment"},actionscript:{title:"ActionScript",require:"javascript",modify:"markup",owner:"Golmote"},ada:{title:"Ada",owner:"Lucretia"},agda:{title:"Agda",owner:"xy-ren"},al:{title:"AL",owner:"RunDevelopment"},antlr4:{title:"ANTLR4",alias:"g4",owner:"RunDevelopment"},apacheconf:{title:"Apache Configuration",owner:"GuiTeK"},apex:{title:"Apex",require:["clike","sql"],owner:"RunDevelopment"},apl:{title:"APL",owner:"ngn"},applescript:{title:"AppleScript",owner:"Golmote"},aql:{title:"AQL",owner:"RunDevelopment"},arduino:{title:"Arduino",require:"cpp",alias:"ino",owner:"dkern"},arff:{title:"ARFF",owner:"Golmote"},armasm:{title:"ARM Assembly",alias:"arm-asm",owner:"RunDevelopment"},arturo:{title:"Arturo",alias:"art",optional:["bash","css","javascript","markup","markdown","sql"],owner:"drkameleon"},asciidoc:{alias:"adoc",title:"AsciiDoc",owner:"Golmote"},aspnet:{title:"ASP.NET (C#)",require:["markup","csharp"],owner:"nauzilus"},asm6502:{title:"6502 Assembly",owner:"kzurawel"},asmatmel:{title:"Atmel AVR Assembly",owner:"cerkit"},autohotkey:{title:"AutoHotkey",owner:"aviaryan"},autoit:{title:"AutoIt",owner:"Golmote"},avisynth:{title:"AviSynth",alias:"avs",owner:"Zinfidel"},"avro-idl":{title:"Avro IDL",alias:"avdl",owner:"RunDevelopment"},awk:{title:"AWK",alias:"gawk",aliasTitles:{gawk:"GAWK"},owner:"RunDevelopment"},bash:{title:"Bash",alias:["sh","shell"],aliasTitles:{sh:"Shell",shell:"Shell"},owner:"zeitgeist87"},basic:{title:"BASIC",owner:"Golmote"},batch:{title:"Batch",owner:"Golmote"},bbcode:{title:"BBcode",alias:"shortcode",aliasTitles:{shortcode:"Shortcode"},owner:"RunDevelopment"},bbj:{title:"BBj",owner:"hyyan"},bicep:{title:"Bicep",owner:"johnnyreilly"},birb:{title:"Birb",require:"clike",owner:"Calamity210"},bison:{title:"Bison",require:"c",owner:"Golmote"},bnf:{title:"BNF",alias:"rbnf",aliasTitles:{rbnf:"RBNF"},owner:"RunDevelopment"},bqn:{title:"BQN",owner:"yewscion"},brainfuck:{title:"Brainfuck",owner:"Golmote"},brightscript:{title:"BrightScript",owner:"RunDevelopment"},bro:{title:"Bro",owner:"wayward710"},bsl:{title:"BSL (1C:Enterprise)",alias:"oscript",aliasTitles:{oscript:"OneScript"},owner:"Diversus23"},c:{title:"C",require:"clike",owner:"zeitgeist87"},csharp:{title:"C#",require:"clike",alias:["cs","dotnet"],owner:"mvalipour"},cpp:{title:"C++",require:"c",owner:"zeitgeist87"},cfscript:{title:"CFScript",require:"clike",alias:"cfc",owner:"mjclemente"},chaiscript:{title:"ChaiScript",require:["clike","cpp"],owner:"RunDevelopment"},cil:{title:"CIL",owner:"sbrl"},cilkc:{title:"Cilk/C",require:"c",alias:"cilk-c",owner:"OpenCilk"},cilkcpp:{title:"Cilk/C++",require:"cpp",alias:["cilk-cpp","cilk"],owner:"OpenCilk"},clojure:{title:"Clojure",owner:"troglotit"},cmake:{title:"CMake",owner:"mjrogozinski"},cobol:{title:"COBOL",owner:"RunDevelopment"},coffeescript:{title:"CoffeeScript",require:"javascript",alias:"coffee",owner:"R-osey"},concurnas:{title:"Concurnas",alias:"conc",owner:"jasontatton"},csp:{title:"Content-Security-Policy",owner:"ScottHelme"},cooklang:{title:"Cooklang",owner:"ahue"},coq:{title:"Coq",owner:"RunDevelopment"},crystal:{title:"Crystal",require:"ruby",owner:"MakeNowJust"},"css-extras":{title:"CSS Extras",require:"css",modify:"css",owner:"milesj"},csv:{title:"CSV",owner:"RunDevelopment"},cue:{title:"CUE",owner:"RunDevelopment"},cypher:{title:"Cypher",owner:"RunDevelopment"},d:{title:"D",require:"clike",owner:"Golmote"},dart:{title:"Dart",require:"clike",owner:"Golmote"},dataweave:{title:"DataWeave",owner:"machaval"},dax:{title:"DAX",owner:"peterbud"},dhall:{title:"Dhall",owner:"RunDevelopment"},diff:{title:"Diff",owner:"uranusjr"},django:{title:"Django/Jinja2",require:"markup-templating",alias:"jinja2",owner:"romanvm"},"dns-zone-file":{title:"DNS zone file",owner:"RunDevelopment",alias:"dns-zone"},docker:{title:"Docker",alias:"dockerfile",owner:"JustinBeckwith"},dot:{title:"DOT (Graphviz)",alias:"gv",optional:"markup",owner:"RunDevelopment"},ebnf:{title:"EBNF",owner:"RunDevelopment"},editorconfig:{title:"EditorConfig",owner:"osipxd"},eiffel:{title:"Eiffel",owner:"Conaclos"},ejs:{title:"EJS",require:["javascript","markup-templating"],owner:"RunDevelopment",alias:"eta",aliasTitles:{eta:"Eta"}},elixir:{title:"Elixir",owner:"Golmote"},elm:{title:"Elm",owner:"zwilias"},etlua:{title:"Embedded Lua templating",require:["lua","markup-templating"],owner:"RunDevelopment"},erb:{title:"ERB",require:["ruby","markup-templating"],owner:"Golmote"},erlang:{title:"Erlang",owner:"Golmote"},"excel-formula":{title:"Excel Formula",alias:["xlsx","xls"],owner:"RunDevelopment"},fsharp:{title:"F#",require:"clike",owner:"simonreynolds7"},factor:{title:"Factor",owner:"catb0t"},false:{title:"False",owner:"edukisto"},"firestore-security-rules":{title:"Firestore security rules",require:"clike",owner:"RunDevelopment"},flow:{title:"Flow",require:"javascript",owner:"Golmote"},fortran:{title:"Fortran",owner:"Golmote"},ftl:{title:"FreeMarker Template Language",require:"markup-templating",owner:"RunDevelopment"},gml:{title:"GameMaker Language",alias:"gamemakerlanguage",require:"clike",owner:"LiarOnce"},gap:{title:"GAP (CAS)",owner:"RunDevelopment"},gcode:{title:"G-code",owner:"RunDevelopment"},gdscript:{title:"GDScript",owner:"RunDevelopment"},gedcom:{title:"GEDCOM",owner:"Golmote"},gettext:{title:"gettext",alias:"po",owner:"RunDevelopment"},gherkin:{title:"Gherkin",owner:"hason"},git:{title:"Git",owner:"lgiraudel"},glsl:{title:"GLSL",require:"c",owner:"Golmote"},gn:{title:"GN",alias:"gni",owner:"RunDevelopment"},"linker-script":{title:"GNU Linker Script",alias:"ld",owner:"RunDevelopment"},go:{title:"Go",require:"clike",owner:"arnehormann"},"go-module":{title:"Go module",alias:"go-mod",owner:"RunDevelopment"},gradle:{title:"Gradle",require:"clike",owner:"zeabdelkhalek-badido18"},graphql:{title:"GraphQL",optional:"markdown",owner:"Golmote"},groovy:{title:"Groovy",require:"clike",owner:"robfletcher"},haml:{title:"Haml",require:"ruby",optional:["css","css-extras","coffeescript","erb","javascript","less","markdown","scss","textile"],owner:"Golmote"},handlebars:{title:"Handlebars",require:"markup-templating",alias:["hbs","mustache"],aliasTitles:{mustache:"Mustache"},owner:"Golmote"},haskell:{title:"Haskell",alias:"hs",owner:"bholst"},haxe:{title:"Haxe",require:"clike",optional:"regex",owner:"Golmote"},hcl:{title:"HCL",owner:"outsideris"},hlsl:{title:"HLSL",require:"c",owner:"RunDevelopment"},hoon:{title:"Hoon",owner:"matildepark"},http:{title:"HTTP",optional:["csp","css","hpkp","hsts","javascript","json","markup","uri"],owner:"danielgtaylor"},hpkp:{title:"HTTP Public-Key-Pins",owner:"ScottHelme"},hsts:{title:"HTTP Strict-Transport-Security",owner:"ScottHelme"},ichigojam:{title:"IchigoJam",owner:"BlueCocoa"},icon:{title:"Icon",owner:"Golmote"},"icu-message-format":{title:"ICU Message Format",owner:"RunDevelopment"},idris:{title:"Idris",alias:"idr",owner:"KeenS",require:"haskell"},ignore:{title:".ignore",owner:"osipxd",alias:["gitignore","hgignore","npmignore"],aliasTitles:{gitignore:".gitignore",hgignore:".hgignore",npmignore:".npmignore"}},inform7:{title:"Inform 7",owner:"Golmote"},ini:{title:"Ini",owner:"aviaryan"},io:{title:"Io",owner:"AlesTsurko"},j:{title:"J",owner:"Golmote"},java:{title:"Java",require:"clike",owner:"sherblot"},javadoc:{title:"JavaDoc",require:["markup","java","javadoclike"],modify:"java",optional:"scala",owner:"RunDevelopment"},javadoclike:{title:"JavaDoc-like",modify:["java","javascript","php"],owner:"RunDevelopment"},javastacktrace:{title:"Java stack trace",owner:"RunDevelopment"},jexl:{title:"Jexl",owner:"czosel"},jolie:{title:"Jolie",require:"clike",owner:"thesave"},jq:{title:"JQ",owner:"RunDevelopment"},jsdoc:{title:"JSDoc",require:["javascript","javadoclike","typescript"],modify:"javascript",optional:["actionscript","coffeescript"],owner:"RunDevelopment"},"js-extras":{title:"JS Extras",require:"javascript",modify:"javascript",optional:["actionscript","coffeescript","flow","n4js","typescript"],owner:"RunDevelopment"},json:{title:"JSON",alias:"webmanifest",aliasTitles:{webmanifest:"Web App Manifest"},owner:"CupOfTea696"},json5:{title:"JSON5",require:"json",owner:"RunDevelopment"},jsonp:{title:"JSONP",require:"json",owner:"RunDevelopment"},jsstacktrace:{title:"JS stack trace",owner:"sbrl"},"js-templates":{title:"JS Templates",require:"javascript",modify:"javascript",optional:["css","css-extras","graphql","markdown","markup","sql"],owner:"RunDevelopment"},julia:{title:"Julia",owner:"cdagnino"},keepalived:{title:"Keepalived Configure",owner:"dev-itsheng"},keyman:{title:"Keyman",owner:"mcdurdin"},kotlin:{title:"Kotlin",alias:["kt","kts"],aliasTitles:{kts:"Kotlin Script"},require:"clike",owner:"Golmote"},kumir:{title:"KuMir (\u041a\u0443\u041c\u0438\u0440)",alias:"kum",owner:"edukisto"},kusto:{title:"Kusto",owner:"RunDevelopment"},latex:{title:"LaTeX",alias:["tex","context"],aliasTitles:{tex:"TeX",context:"ConTeXt"},owner:"japborst"},latte:{title:"Latte",require:["clike","markup-templating","php"],owner:"nette"},less:{title:"Less",require:"css",optional:"css-extras",owner:"Golmote"},lilypond:{title:"LilyPond",require:"scheme",alias:"ly",owner:"RunDevelopment"},liquid:{title:"Liquid",require:"markup-templating",owner:"cinhtau"},lisp:{title:"Lisp",alias:["emacs","elisp","emacs-lisp"],owner:"JuanCaicedo"},livescript:{title:"LiveScript",owner:"Golmote"},llvm:{title:"LLVM IR",owner:"porglezomp"},log:{title:"Log file",optional:"javastacktrace",owner:"RunDevelopment"},lolcode:{title:"LOLCODE",owner:"Golmote"},lua:{title:"Lua",owner:"Golmote"},magma:{title:"Magma (CAS)",owner:"RunDevelopment"},makefile:{title:"Makefile",owner:"Golmote"},markdown:{title:"Markdown",require:"markup",optional:"yaml",alias:"md",owner:"Golmote"},"markup-templating":{title:"Markup templating",require:"markup",owner:"Golmote"},mata:{title:"Mata",owner:"RunDevelopment"},matlab:{title:"MATLAB",owner:"Golmote"},maxscript:{title:"MAXScript",owner:"RunDevelopment"},mel:{title:"MEL",owner:"Golmote"},mermaid:{title:"Mermaid",owner:"RunDevelopment"},metafont:{title:"METAFONT",owner:"LaeriExNihilo"},mizar:{title:"Mizar",owner:"Golmote"},mongodb:{title:"MongoDB",owner:"airs0urce",require:"javascript"},monkey:{title:"Monkey",owner:"Golmote"},moonscript:{title:"MoonScript",alias:"moon",owner:"RunDevelopment"},n1ql:{title:"N1QL",owner:"TMWilds"},n4js:{title:"N4JS",require:"javascript",optional:"jsdoc",alias:"n4jsd",owner:"bsmith-n4"},"nand2tetris-hdl":{title:"Nand To Tetris HDL",owner:"stephanmax"},naniscript:{title:"Naninovel Script",owner:"Elringus",alias:"nani"},nasm:{title:"NASM",owner:"rbmj"},neon:{title:"NEON",owner:"nette"},nevod:{title:"Nevod",owner:"nezaboodka"},nginx:{title:"nginx",owner:"volado"},nim:{title:"Nim",owner:"Golmote"},nix:{title:"Nix",owner:"Golmote"},nsis:{title:"NSIS",owner:"idleberg"},objectivec:{title:"Objective-C",require:"c",alias:"objc",owner:"uranusjr"},ocaml:{title:"OCaml",owner:"Golmote"},odin:{title:"Odin",owner:"edukisto"},opencl:{title:"OpenCL",require:"c",modify:["c","cpp"],owner:"Milania1"},openqasm:{title:"OpenQasm",alias:"qasm",owner:"RunDevelopment"},oz:{title:"Oz",owner:"Golmote"},parigp:{title:"PARI/GP",owner:"Golmote"},parser:{title:"Parser",require:"markup",owner:"Golmote"},pascal:{title:"Pascal",alias:"objectpascal",aliasTitles:{objectpascal:"Object Pascal"},owner:"Golmote"},pascaligo:{title:"Pascaligo",owner:"DefinitelyNotAGoat"},psl:{title:"PATROL Scripting Language",owner:"bertysentry"},pcaxis:{title:"PC-Axis",alias:"px",owner:"RunDevelopment"},peoplecode:{title:"PeopleCode",alias:"pcode",owner:"RunDevelopment"},perl:{title:"Perl",owner:"Golmote"},php:{title:"PHP",require:"markup-templating",owner:"milesj"},phpdoc:{title:"PHPDoc",require:["php","javadoclike"],modify:"php",owner:"RunDevelopment"},"php-extras":{title:"PHP Extras",require:"php",modify:"php",owner:"milesj"},"plant-uml":{title:"PlantUML",alias:"plantuml",owner:"RunDevelopment"},plsql:{title:"PL/SQL",require:"sql",owner:"Golmote"},powerquery:{title:"PowerQuery",alias:["pq","mscript"],owner:"peterbud"},powershell:{title:"PowerShell",owner:"nauzilus"},processing:{title:"Processing",require:"clike",owner:"Golmote"},prolog:{title:"Prolog",owner:"Golmote"},promql:{title:"PromQL",owner:"arendjr"},properties:{title:".properties",owner:"Golmote"},protobuf:{title:"Protocol Buffers",require:"clike",owner:"just-boris"},pug:{title:"Pug",require:["markup","javascript"],optional:["coffeescript","ejs","handlebars","less","livescript","markdown","scss","stylus","twig"],owner:"Golmote"},puppet:{title:"Puppet",owner:"Golmote"},pure:{title:"Pure",optional:["c","cpp","fortran"],owner:"Golmote"},purebasic:{title:"PureBasic",require:"clike",alias:"pbfasm",owner:"HeX0R101"},purescript:{title:"PureScript",require:"haskell",alias:"purs",owner:"sriharshachilakapati"},python:{title:"Python",alias:"py",owner:"multipetros"},qsharp:{title:"Q#",require:"clike",alias:"qs",owner:"fedonman"},q:{title:"Q (kdb+ database)",owner:"Golmote"},qml:{title:"QML",require:"javascript",owner:"RunDevelopment"},qore:{title:"Qore",require:"clike",owner:"temnroegg"},r:{title:"R",owner:"Golmote"},racket:{title:"Racket",require:"scheme",alias:"rkt",owner:"RunDevelopment"},cshtml:{title:"Razor C#",alias:"razor",require:["markup","csharp"],optional:["css","css-extras","javascript","js-extras"],owner:"RunDevelopment"},jsx:{title:"React JSX",require:["markup","javascript"],optional:["jsdoc","js-extras","js-templates"],owner:"vkbansal"},tsx:{title:"React TSX",require:["jsx","typescript"]},reason:{title:"Reason",require:"clike",owner:"Golmote"},regex:{title:"Regex",owner:"RunDevelopment"},rego:{title:"Rego",owner:"JordanSh"},renpy:{title:"Ren'py",alias:"rpy",owner:"HyuchiaDiego"},rescript:{title:"ReScript",alias:"res",owner:"vmarcosp"},rest:{title:"reST (reStructuredText)",owner:"Golmote"},rip:{title:"Rip",owner:"ravinggenius"},roboconf:{title:"Roboconf",owner:"Golmote"},robotframework:{title:"Robot Framework",alias:"robot",owner:"RunDevelopment"},ruby:{title:"Ruby",require:"clike",alias:"rb",owner:"samflores"},rust:{title:"Rust",owner:"Golmote"},sas:{title:"SAS",optional:["groovy","lua","sql"],owner:"Golmote"},sass:{title:"Sass (Sass)",require:"css",optional:"css-extras",owner:"Golmote"},scss:{title:"Sass (SCSS)",require:"css",optional:"css-extras",owner:"MoOx"},scala:{title:"Scala",require:"java",owner:"jozic"},scheme:{title:"Scheme",owner:"bacchus123"},"shell-session":{title:"Shell session",require:"bash",alias:["sh-session","shellsession"],owner:"RunDevelopment"},smali:{title:"Smali",owner:"RunDevelopment"},smalltalk:{title:"Smalltalk",owner:"Golmote"},smarty:{title:"Smarty",require:"markup-templating",optional:"php",owner:"Golmote"},sml:{title:"SML",alias:"smlnj",aliasTitles:{smlnj:"SML/NJ"},owner:"RunDevelopment"},solidity:{title:"Solidity (Ethereum)",alias:"sol",require:"clike",owner:"glachaud"},"solution-file":{title:"Solution file",alias:"sln",owner:"RunDevelopment"},soy:{title:"Soy (Closure Template)",require:"markup-templating",owner:"Golmote"},sparql:{title:"SPARQL",require:"turtle",owner:"Triply-Dev",alias:"rq"},"splunk-spl":{title:"Splunk SPL",owner:"RunDevelopment"},sqf:{title:"SQF: Status Quo Function (Arma 3)",require:"clike",owner:"RunDevelopment"},sql:{title:"SQL",owner:"multipetros"},squirrel:{title:"Squirrel",require:"clike",owner:"RunDevelopment"},stan:{title:"Stan",owner:"RunDevelopment"},stata:{title:"Stata Ado",require:["mata","java","python"],owner:"RunDevelopment"},iecst:{title:"Structured Text (IEC 61131-3)",owner:"serhioromano"},stylus:{title:"Stylus",owner:"vkbansal"},supercollider:{title:"SuperCollider",alias:"sclang",owner:"RunDevelopment"},swift:{title:"Swift",owner:"chrischares"},systemd:{title:"Systemd configuration file",owner:"RunDevelopment"},"t4-templating":{title:"T4 templating",owner:"RunDevelopment"},"t4-cs":{title:"T4 Text Templates (C#)",require:["t4-templating","csharp"],alias:"t4",owner:"RunDevelopment"},"t4-vb":{title:"T4 Text Templates (VB)",require:["t4-templating","vbnet"],owner:"RunDevelopment"},tap:{title:"TAP",owner:"isaacs",require:"yaml"},tcl:{title:"Tcl",owner:"PeterChaplin"},tt2:{title:"Template Toolkit 2",require:["clike","markup-templating"],owner:"gflohr"},textile:{title:"Textile",require:"markup",optional:"css",owner:"Golmote"},toml:{title:"TOML",owner:"RunDevelopment"},tremor:{title:"Tremor",alias:["trickle","troy"],owner:"darach",aliasTitles:{trickle:"trickle",troy:"troy"}},turtle:{title:"Turtle",alias:"trig",aliasTitles:{trig:"TriG"},owner:"jakubklimek"},twig:{title:"Twig",require:"markup-templating",owner:"brandonkelly"},typescript:{title:"TypeScript",require:"javascript",optional:"js-templates",alias:"ts",owner:"vkbansal"},typoscript:{title:"TypoScript",alias:"tsconfig",aliasTitles:{tsconfig:"TSConfig"},owner:"dkern"},unrealscript:{title:"UnrealScript",alias:["uscript","uc"],owner:"RunDevelopment"},uorazor:{title:"UO Razor Script",owner:"jaseowns"},uri:{title:"URI",alias:"url",aliasTitles:{url:"URL"},owner:"RunDevelopment"},v:{title:"V",require:"clike",owner:"taggon"},vala:{title:"Vala",require:"clike",optional:"regex",owner:"TemplarVolk"},vbnet:{title:"VB.Net",require:"basic",owner:"Bigsby"},velocity:{title:"Velocity",require:"markup",owner:"Golmote"},verilog:{title:"Verilog",owner:"a-rey"},vhdl:{title:"VHDL",owner:"a-rey"},vim:{title:"vim",owner:"westonganger"},"visual-basic":{title:"Visual Basic",alias:["vb","vba"],aliasTitles:{vba:"VBA"},owner:"Golmote"},warpscript:{title:"WarpScript",owner:"RunDevelopment"},wasm:{title:"WebAssembly",owner:"Golmote"},"web-idl":{title:"Web IDL",alias:"webidl",owner:"RunDevelopment"},wgsl:{title:"WGSL",owner:"Dr4gonthree"},wiki:{title:"Wiki markup",require:"markup",owner:"Golmote"},wolfram:{title:"Wolfram language",alias:["mathematica","nb","wl"],aliasTitles:{mathematica:"Mathematica",nb:"Mathematica Notebook"},owner:"msollami"},wren:{title:"Wren",owner:"clsource"},xeora:{title:"Xeora",require:"markup",alias:"xeoracube",aliasTitles:{xeoracube:"XeoraCube"},owner:"freakmaxi"},"xml-doc":{title:"XML doc (.net)",require:"markup",modify:["csharp","fsharp","vbnet"],owner:"RunDevelopment"},xojo:{title:"Xojo (REALbasic)",owner:"Golmote"},xquery:{title:"XQuery",require:"markup",owner:"Golmote"},yaml:{title:"YAML",alias:"yml",owner:"hason"},yang:{title:"YANG",owner:"RunDevelopment"},zig:{title:"Zig",owner:"RunDevelopment"}},plugins:{meta:{path:"plugins/{id}/prism-{id}",link:"plugins/{id}/"},"line-highlight":{title:"Line Highlight",description:"Highlights specific lines and/or line ranges."},"line-numbers":{title:"Line Numbers",description:"Line number at the beginning of code lines.",owner:"kuba-kubula"},"show-invisibles":{title:"Show Invisibles",description:"Show hidden characters such as tabs and line breaks.",optional:["autolinker","data-uri-highlight"]},autolinker:{title:"Autolinker",description:"Converts URLs and emails in code to clickable links. Parses Markdown links in comments."},wpd:{title:"WebPlatform Docs",description:'Makes tokens link to <a href="https://webplatform.github.io/docs/">WebPlatform.org documentation</a>. The links open in a new tab.'},"custom-class":{title:"Custom Class",description:"This plugin allows you to prefix Prism's default classes (<code>.comment</code> can become <code>.namespace--comment</code>) or replace them with your defined ones (like <code>.editor__comment</code>). You can even add new classes.",owner:"dvkndn",noCSS:!0},"file-highlight":{title:"File Highlight",description:"Fetch external files and highlight them with Prism. Used on the Prism website itself.",noCSS:!0},"show-language":{title:"Show Language",description:"Display the highlighted language in code blocks (inline code does not show the label).",owner:"nauzilus",noCSS:!0,require:"toolbar"},"jsonp-highlight":{title:"JSONP Highlight",description:"Fetch content with JSONP and highlight some interesting content (e.g. GitHub/Gists or Bitbucket API).",noCSS:!0,owner:"nauzilus"},"highlight-keywords":{title:"Highlight Keywords",description:"Adds special CSS classes for each keyword for fine-grained highlighting.",owner:"vkbansal",noCSS:!0},"remove-initial-line-feed":{title:"Remove initial line feed",description:"Removes the initial line feed in code blocks.",owner:"Golmote",noCSS:!0},"inline-color":{title:"Inline color",description:"Adds a small inline preview for colors in style sheets.",require:"css-extras",owner:"RunDevelopment"},previewers:{title:"Previewers",description:"Previewers for angles, colors, gradients, easing and time.",require:"css-extras",owner:"Golmote"},autoloader:{title:"Autoloader",description:"Automatically loads the needed languages to highlight the code blocks.",owner:"Golmote",noCSS:!0},"keep-markup":{title:"Keep Markup",description:"Prevents custom markup from being dropped out during highlighting.",owner:"Golmote",optional:"normalize-whitespace",noCSS:!0},"command-line":{title:"Command Line",description:"Display a command line with a prompt and, optionally, the output/response from the commands.",owner:"chriswells0"},"unescaped-markup":{title:"Unescaped Markup",description:"Write markup without having to escape anything."},"normalize-whitespace":{title:"Normalize Whitespace",description:"Supports multiple operations to normalize whitespace in code blocks.",owner:"zeitgeist87",optional:"unescaped-markup",noCSS:!0},"data-uri-highlight":{title:"Data-URI Highlight",description:"Highlights data-URI contents.",owner:"Golmote",noCSS:!0},toolbar:{title:"Toolbar",description:"Attach a toolbar for plugins to easily register buttons on the top of a code block.",owner:"mAAdhaTTah"},"copy-to-clipboard":{title:"Copy to Clipboard Button",description:"Add a button that copies the code block to the clipboard when clicked.",owner:"mAAdhaTTah",require:"toolbar",noCSS:!0},"download-button":{title:"Download Button",description:"A button in the toolbar of a code block adding a convenient way to download a code file.",owner:"Golmote",require:"toolbar",noCSS:!0},"match-braces":{title:"Match braces",description:"Highlights matching braces.",owner:"RunDevelopment"},"diff-highlight":{title:"Diff Highlight",description:"Highlights the code inside diff blocks.",owner:"RunDevelopment",require:"diff"},"filter-highlight-all":{title:"Filter highlightAll",description:"Filters the elements the <code>highlightAll</code> and <code>highlightAllUnder</code> methods actually highlight.",owner:"RunDevelopment",noCSS:!0},treeview:{title:"Treeview",description:"A language with special styles to highlight file system tree structures.",owner:"Golmote"}}})},8722:(e,t,n)=>{const r=n(6969),a=n(8380),o=new Set;function i(e){void 0===e?e=Object.keys(r.languages).filter((e=>"meta"!=e)):Array.isArray(e)||(e=[e]);const t=[...o,...Object.keys(Prism.languages)];a(r,e,t).load((e=>{if(!(e in r.languages))return void(i.silent||console.warn("Language does not exist: "+e));const t="./prism-"+e;delete n.c[n(3157).resolve(t)],delete Prism.languages[e],n(3157)(t),o.add(e)}))}i.silent=!1,e.exports=i},9700:()=>{!function(e){function t(e,t){return"___"+e.toUpperCase()+t+"___"}Object.defineProperties(e.languages["markup-templating"]={},{buildPlaceholders:{value:function(n,r,a,o){if(n.language===r){var i=n.tokenStack=[];n.code=n.code.replace(a,(function(e){if("function"==typeof o&&!o(e))return e;for(var a,l=i.length;-1!==n.code.indexOf(a=t(r,l));)++l;return i[l]=e,a})),n.grammar=e.languages.markup}}},tokenizePlaceholders:{value:function(n,r){if(n.language===r&&n.tokenStack){n.grammar=e.languages[r];var a=0,o=Object.keys(n.tokenStack);!function i(l){for(var s=0;s<l.length&&!(a>=o.length);s++){var u=l[s];if("string"==typeof u||u.content&&"string"==typeof u.content){var c=o[a],d=n.tokenStack[c],p="string"==typeof u?u:u.content,f=t(r,c),m=p.indexOf(f);if(m>-1){++a;var h=p.substring(0,m),g=new e.Token(r,e.tokenize(d,n.grammar),"language-"+r,d),y=p.substring(m+f.length),b=[];h&&b.push.apply(b,i([h])),b.push(g),y&&b.push.apply(b,i([y])),"string"==typeof u?l.splice.apply(l,[s,1].concat(b)):u.content=b}}else u.content&&i(u.content)}return l}(n.tokens)}}}})}(Prism)},8692:(e,t,n)=>{var r={"./":8722};function a(e){var t=o(e);return n(t)}function o(e){if(!n.o(r,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return r[e]}a.keys=function(){return Object.keys(r)},a.resolve=o,e.exports=a,a.id=8692},3157:(e,t,n)=>{var r={"./":8722};function a(e){var t=o(e);return n(t)}function o(e){if(!n.o(r,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return r[e]}a.keys=function(){return Object.keys(r)},a.resolve=o,e.exports=a,a.id=3157},8380:e=>{"use strict";var t=function(){var e=function(){};function t(e,t){Array.isArray(e)?e.forEach(t):null!=e&&t(e,0)}function n(e){for(var t={},n=0,r=e.length;n<r;n++)t[e[n]]=!0;return t}function r(e){var n={},r=[];function a(r,o){if(!(r in n)){o.push(r);var i=o.indexOf(r);if(i<o.length-1)throw new Error("Circular dependency: "+o.slice(i).join(" -> "));var l={},s=e[r];if(s){function u(t){if(!(t in e))throw new Error(r+" depends on an unknown component "+t);if(!(t in l))for(var i in a(t,o),l[t]=!0,n[t])l[i]=!0}t(s.require,u),t(s.optional,u),t(s.modify,u)}n[r]=l,o.pop()}}return function(e){var t=n[e];return t||(a(e,r),t=n[e]),t}}function a(e){for(var t in e)return!0;return!1}return function(o,i,l){var s=function(e){var t={};for(var n in e){var r=e[n];for(var a in r)if("meta"!=a){var o=r[a];t[a]="string"==typeof o?{title:o}:o}}return t}(o),u=function(e){var n;return function(r){if(r in e)return r;if(!n)for(var a in n={},e){var o=e[a];t(o&&o.alias,(function(t){if(t in n)throw new Error(t+" cannot be alias for both "+a+" and "+n[t]);if(t in e)throw new Error(t+" cannot be alias of "+a+" because it is a component.");n[t]=a}))}return n[r]||r}}(s);i=i.map(u),l=(l||[]).map(u);var c=n(i),d=n(l);i.forEach((function e(n){var r=s[n];t(r&&r.require,(function(t){t in d||(c[t]=!0,e(t))}))}));for(var p,f=r(s),m=c;a(m);){for(var h in p={},m){var g=s[h];t(g&&g.modify,(function(e){e in d&&(p[e]=!0)}))}for(var y in d)if(!(y in c))for(var b in f(y))if(b in c){p[y]=!0;break}for(var v in m=p)c[v]=!0}var w={getIds:function(){var e=[];return w.load((function(t){e.push(t)})),e},load:function(t,n){return function(t,n,r,a){var o=a?a.series:void 0,i=a?a.parallel:e,l={},s={};function u(e){if(e in l)return l[e];s[e]=!0;var a,c=[];for(var d in t(e))d in n&&c.push(d);if(0===c.length)a=r(e);else{var p=i(c.map((function(e){var t=u(e);return delete s[e],t})));o?a=o(p,(function(){return r(e)})):r(e)}return l[e]=a}for(var c in n)u(c);var d=[];for(var p in s)d.push(l[p]);return i(d)}(f,c,t,n)}};return w}}();e.exports=t},2694:(e,t,n)=>{"use strict";var r=n(6925);function a(){}function o(){}o.resetWarningCache=a,e.exports=function(){function e(e,t,n,a,o,i){if(i!==r){var l=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw l.name="Invariant Violation",l}}function t(){return e}e.isRequired=e;var n={array:e,bigint:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:o,resetWarningCache:a};return n.PropTypes=n,n}},5556:(e,t,n)=>{e.exports=n(2694)()},6925:e=>{"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},2551:(e,t,n)=>{"use strict";var r=n(6540),a=n(9982);function o(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n<arguments.length;n++)t+="&args[]="+encodeURIComponent(arguments[n]);return"Minified React error #"+e+"; visit "+t+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}var i=new Set,l={};function s(e,t){u(e,t),u(e+"Capture",t)}function u(e,t){for(l[e]=t,e=0;e<t.length;e++)i.add(t[e])}var c=!("undefined"==typeof window||void 0===window.document||void 0===window.document.createElement),d=Object.prototype.hasOwnProperty,p=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,f={},m={};function h(e,t,n,r,a,o,i){this.acceptsBooleans=2===t||3===t||4===t,this.attributeName=r,this.attributeNamespace=a,this.mustUseProperty=n,this.propertyName=e,this.type=t,this.sanitizeURL=o,this.removeEmptyString=i}var g={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach((function(e){g[e]=new h(e,0,!1,e,null,!1,!1)})),[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach((function(e){var t=e[0];g[t]=new h(t,1,!1,e[1],null,!1,!1)})),["contentEditable","draggable","spellCheck","value"].forEach((function(e){g[e]=new h(e,2,!1,e.toLowerCase(),null,!1,!1)})),["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach((function(e){g[e]=new h(e,2,!1,e,null,!1,!1)})),"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach((function(e){g[e]=new h(e,3,!1,e.toLowerCase(),null,!1,!1)})),["checked","multiple","muted","selected"].forEach((function(e){g[e]=new h(e,3,!0,e,null,!1,!1)})),["capture","download"].forEach((function(e){g[e]=new h(e,4,!1,e,null,!1,!1)})),["cols","rows","size","span"].forEach((function(e){g[e]=new h(e,6,!1,e,null,!1,!1)})),["rowSpan","start"].forEach((function(e){g[e]=new h(e,5,!1,e.toLowerCase(),null,!1,!1)}));var y=/[\-:]([a-z])/g;function b(e){return e[1].toUpperCase()}function v(e,t,n,r){var a=g.hasOwnProperty(t)?g[t]:null;(null!==a?0!==a.type:r||!(2<t.length)||"o"!==t[0]&&"O"!==t[0]||"n"!==t[1]&&"N"!==t[1])&&(function(e,t,n,r){if(null==t||function(e,t,n,r){if(null!==n&&0===n.type)return!1;switch(typeof t){case"function":case"symbol":return!0;case"boolean":return!r&&(null!==n?!n.acceptsBooleans:"data-"!==(e=e.toLowerCase().slice(0,5))&&"aria-"!==e);default:return!1}}(e,t,n,r))return!0;if(r)return!1;if(null!==n)switch(n.type){case 3:return!t;case 4:return!1===t;case 5:return isNaN(t);case 6:return isNaN(t)||1>t}return!1}(t,n,a,r)&&(n=null),r||null===a?function(e){return!!d.call(m,e)||!d.call(f,e)&&(p.test(e)?m[e]=!0:(f[e]=!0,!1))}(t)&&(null===n?e.removeAttribute(t):e.setAttribute(t,""+n)):a.mustUseProperty?e[a.propertyName]=null===n?3!==a.type&&"":n:(t=a.attributeName,r=a.attributeNamespace,null===n?e.removeAttribute(t):(n=3===(a=a.type)||4===a&&!0===n?"":""+n,r?e.setAttributeNS(r,t,n):e.setAttribute(t,n))))}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach((function(e){var t=e.replace(y,b);g[t]=new h(t,1,!1,e,null,!1,!1)})),"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach((function(e){var t=e.replace(y,b);g[t]=new h(t,1,!1,e,"http://www.w3.org/1999/xlink",!1,!1)})),["xml:base","xml:lang","xml:space"].forEach((function(e){var t=e.replace(y,b);g[t]=new h(t,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)})),["tabIndex","crossOrigin"].forEach((function(e){g[e]=new h(e,1,!1,e.toLowerCase(),null,!1,!1)})),g.xlinkHref=new h("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1),["src","href","action","formAction"].forEach((function(e){g[e]=new h(e,1,!1,e.toLowerCase(),null,!0,!0)}));var w=r.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,k=Symbol.for("react.element"),x=Symbol.for("react.portal"),S=Symbol.for("react.fragment"),E=Symbol.for("react.strict_mode"),C=Symbol.for("react.profiler"),_=Symbol.for("react.provider"),A=Symbol.for("react.context"),T=Symbol.for("react.forward_ref"),j=Symbol.for("react.suspense"),N=Symbol.for("react.suspense_list"),L=Symbol.for("react.memo"),P=Symbol.for("react.lazy");Symbol.for("react.scope"),Symbol.for("react.debug_trace_mode");var R=Symbol.for("react.offscreen");Symbol.for("react.legacy_hidden"),Symbol.for("react.cache"),Symbol.for("react.tracing_marker");var O=Symbol.iterator;function I(e){return null===e||"object"!=typeof e?null:"function"==typeof(e=O&&e[O]||e["@@iterator"])?e:null}var D,M=Object.assign;function F(e){if(void 0===D)try{throw Error()}catch(n){var t=n.stack.trim().match(/\n( *(at )?)/);D=t&&t[1]||""}return"\n"+D+e}var z=!1;function B(e,t){if(!e||z)return"";z=!0;var n=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{if(t)if(t=function(){throw Error()},Object.defineProperty(t.prototype,"props",{set:function(){throw Error()}}),"object"==typeof Reflect&&Reflect.construct){try{Reflect.construct(t,[])}catch(u){var r=u}Reflect.construct(e,[],t)}else{try{t.call()}catch(u){r=u}e.call(t.prototype)}else{try{throw Error()}catch(u){r=u}e()}}catch(u){if(u&&r&&"string"==typeof u.stack){for(var a=u.stack.split("\n"),o=r.stack.split("\n"),i=a.length-1,l=o.length-1;1<=i&&0<=l&&a[i]!==o[l];)l--;for(;1<=i&&0<=l;i--,l--)if(a[i]!==o[l]){if(1!==i||1!==l)do{if(i--,0>--l||a[i]!==o[l]){var s="\n"+a[i].replace(" at new "," at ");return e.displayName&&s.includes("<anonymous>")&&(s=s.replace("<anonymous>",e.displayName)),s}}while(1<=i&&0<=l);break}}}finally{z=!1,Error.prepareStackTrace=n}return(e=e?e.displayName||e.name:"")?F(e):""}function U(e){switch(e.tag){case 5:return F(e.type);case 16:return F("Lazy");case 13:return F("Suspense");case 19:return F("SuspenseList");case 0:case 2:case 15:return e=B(e.type,!1);case 11:return e=B(e.type.render,!1);case 1:return e=B(e.type,!0);default:return""}}function $(e){if(null==e)return null;if("function"==typeof e)return e.displayName||e.name||null;if("string"==typeof e)return e;switch(e){case S:return"Fragment";case x:return"Portal";case C:return"Profiler";case E:return"StrictMode";case j:return"Suspense";case N:return"SuspenseList"}if("object"==typeof e)switch(e.$$typeof){case A:return(e.displayName||"Context")+".Consumer";case _:return(e._context.displayName||"Context")+".Provider";case T:var t=e.render;return(e=e.displayName)||(e=""!==(e=t.displayName||t.name||"")?"ForwardRef("+e+")":"ForwardRef"),e;case L:return null!==(t=e.displayName||null)?t:$(e.type)||"Memo";case P:t=e._payload,e=e._init;try{return $(e(t))}catch(n){}}return null}function q(e){var t=e.type;switch(e.tag){case 24:return"Cache";case 9:return(t.displayName||"Context")+".Consumer";case 10:return(t._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return e=(e=t.render).displayName||e.name||"",t.displayName||(""!==e?"ForwardRef("+e+")":"ForwardRef");case 7:return"Fragment";case 5:return t;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return $(t);case 8:return t===E?"StrictMode":"Mode";case 22:return"Offscreen";case 12:return"Profiler";case 21:return"Scope";case 13:return"Suspense";case 19:return"SuspenseList";case 25:return"TracingMarker";case 1:case 0:case 17:case 2:case 14:case 15:if("function"==typeof t)return t.displayName||t.name||null;if("string"==typeof t)return t}return null}function G(e){switch(typeof e){case"boolean":case"number":case"string":case"undefined":case"object":return e;default:return""}}function H(e){var t=e.type;return(e=e.nodeName)&&"input"===e.toLowerCase()&&("checkbox"===t||"radio"===t)}function V(e){e._valueTracker||(e._valueTracker=function(e){var t=H(e)?"checked":"value",n=Object.getOwnPropertyDescriptor(e.constructor.prototype,t),r=""+e[t];if(!e.hasOwnProperty(t)&&void 0!==n&&"function"==typeof n.get&&"function"==typeof n.set){var a=n.get,o=n.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return a.call(this)},set:function(e){r=""+e,o.call(this,e)}}),Object.defineProperty(e,t,{enumerable:n.enumerable}),{getValue:function(){return r},setValue:function(e){r=""+e},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}(e))}function W(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),r="";return e&&(r=H(e)?e.checked?"true":"false":e.value),(e=r)!==n&&(t.setValue(e),!0)}function Q(e){if(void 0===(e=e||("undefined"!=typeof document?document:void 0)))return null;try{return e.activeElement||e.body}catch(t){return e.body}}function K(e,t){var n=t.checked;return M({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=n?n:e._wrapperState.initialChecked})}function Y(e,t){var n=null==t.defaultValue?"":t.defaultValue,r=null!=t.checked?t.checked:t.defaultChecked;n=G(null!=t.value?t.value:n),e._wrapperState={initialChecked:r,initialValue:n,controlled:"checkbox"===t.type||"radio"===t.type?null!=t.checked:null!=t.value}}function Z(e,t){null!=(t=t.checked)&&v(e,"checked",t,!1)}function X(e,t){Z(e,t);var n=G(t.value),r=t.type;if(null!=n)"number"===r?(0===n&&""===e.value||e.value!=n)&&(e.value=""+n):e.value!==""+n&&(e.value=""+n);else if("submit"===r||"reset"===r)return void e.removeAttribute("value");t.hasOwnProperty("value")?ee(e,t.type,n):t.hasOwnProperty("defaultValue")&&ee(e,t.type,G(t.defaultValue)),null==t.checked&&null!=t.defaultChecked&&(e.defaultChecked=!!t.defaultChecked)}function J(e,t,n){if(t.hasOwnProperty("value")||t.hasOwnProperty("defaultValue")){var r=t.type;if(!("submit"!==r&&"reset"!==r||void 0!==t.value&&null!==t.value))return;t=""+e._wrapperState.initialValue,n||t===e.value||(e.value=t),e.defaultValue=t}""!==(n=e.name)&&(e.name=""),e.defaultChecked=!!e._wrapperState.initialChecked,""!==n&&(e.name=n)}function ee(e,t,n){"number"===t&&Q(e.ownerDocument)===e||(null==n?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+n&&(e.defaultValue=""+n))}var te=Array.isArray;function ne(e,t,n,r){if(e=e.options,t){t={};for(var a=0;a<n.length;a++)t["$"+n[a]]=!0;for(n=0;n<e.length;n++)a=t.hasOwnProperty("$"+e[n].value),e[n].selected!==a&&(e[n].selected=a),a&&r&&(e[n].defaultSelected=!0)}else{for(n=""+G(n),t=null,a=0;a<e.length;a++){if(e[a].value===n)return e[a].selected=!0,void(r&&(e[a].defaultSelected=!0));null!==t||e[a].disabled||(t=e[a])}null!==t&&(t.selected=!0)}}function re(e,t){if(null!=t.dangerouslySetInnerHTML)throw Error(o(91));return M({},t,{value:void 0,defaultValue:void 0,children:""+e._wrapperState.initialValue})}function ae(e,t){var n=t.value;if(null==n){if(n=t.children,t=t.defaultValue,null!=n){if(null!=t)throw Error(o(92));if(te(n)){if(1<n.length)throw Error(o(93));n=n[0]}t=n}null==t&&(t=""),n=t}e._wrapperState={initialValue:G(n)}}function oe(e,t){var n=G(t.value),r=G(t.defaultValue);null!=n&&((n=""+n)!==e.value&&(e.value=n),null==t.defaultValue&&e.defaultValue!==n&&(e.defaultValue=n)),null!=r&&(e.defaultValue=""+r)}function ie(e){var t=e.textContent;t===e._wrapperState.initialValue&&""!==t&&null!==t&&(e.value=t)}function le(e){switch(e){case"svg":return"http://www.w3.org/2000/svg";case"math":return"http://www.w3.org/1998/Math/MathML";default:return"http://www.w3.org/1999/xhtml"}}function se(e,t){return null==e||"http://www.w3.org/1999/xhtml"===e?le(t):"http://www.w3.org/2000/svg"===e&&"foreignObject"===t?"http://www.w3.org/1999/xhtml":e}var ue,ce,de=(ce=function(e,t){if("http://www.w3.org/2000/svg"!==e.namespaceURI||"innerHTML"in e)e.innerHTML=t;else{for((ue=ue||document.createElement("div")).innerHTML="<svg>"+t.valueOf().toString()+"</svg>",t=ue.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}},"undefined"!=typeof MSApp&&MSApp.execUnsafeLocalFunction?function(e,t,n,r){MSApp.execUnsafeLocalFunction((function(){return ce(e,t)}))}:ce);function pe(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&3===n.nodeType)return void(n.nodeValue=t)}e.textContent=t}var fe={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},me=["Webkit","ms","Moz","O"];function he(e,t,n){return null==t||"boolean"==typeof t||""===t?"":n||"number"!=typeof t||0===t||fe.hasOwnProperty(e)&&fe[e]?(""+t).trim():t+"px"}function ge(e,t){for(var n in e=e.style,t)if(t.hasOwnProperty(n)){var r=0===n.indexOf("--"),a=he(n,t[n],r);"float"===n&&(n="cssFloat"),r?e.setProperty(n,a):e[n]=a}}Object.keys(fe).forEach((function(e){me.forEach((function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),fe[t]=fe[e]}))}));var ye=M({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function be(e,t){if(t){if(ye[e]&&(null!=t.children||null!=t.dangerouslySetInnerHTML))throw Error(o(137,e));if(null!=t.dangerouslySetInnerHTML){if(null!=t.children)throw Error(o(60));if("object"!=typeof t.dangerouslySetInnerHTML||!("__html"in t.dangerouslySetInnerHTML))throw Error(o(61))}if(null!=t.style&&"object"!=typeof t.style)throw Error(o(62))}}function ve(e,t){if(-1===e.indexOf("-"))return"string"==typeof t.is;switch(e){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}var we=null;function ke(e){return(e=e.target||e.srcElement||window).correspondingUseElement&&(e=e.correspondingUseElement),3===e.nodeType?e.parentNode:e}var xe=null,Se=null,Ee=null;function Ce(e){if(e=va(e)){if("function"!=typeof xe)throw Error(o(280));var t=e.stateNode;t&&(t=ka(t),xe(e.stateNode,e.type,t))}}function _e(e){Se?Ee?Ee.push(e):Ee=[e]:Se=e}function Ae(){if(Se){var e=Se,t=Ee;if(Ee=Se=null,Ce(e),t)for(e=0;e<t.length;e++)Ce(t[e])}}function Te(e,t){return e(t)}function je(){}var Ne=!1;function Le(e,t,n){if(Ne)return e(t,n);Ne=!0;try{return Te(e,t,n)}finally{Ne=!1,(null!==Se||null!==Ee)&&(je(),Ae())}}function Pe(e,t){var n=e.stateNode;if(null===n)return null;var r=ka(n);if(null===r)return null;n=r[t];e:switch(t){case"onClick":case"onClickCapture":case"onDoubleClick":case"onDoubleClickCapture":case"onMouseDown":case"onMouseDownCapture":case"onMouseMove":case"onMouseMoveCapture":case"onMouseUp":case"onMouseUpCapture":case"onMouseEnter":(r=!r.disabled)||(r=!("button"===(e=e.type)||"input"===e||"select"===e||"textarea"===e)),e=!r;break e;default:e=!1}if(e)return null;if(n&&"function"!=typeof n)throw Error(o(231,t,typeof n));return n}var Re=!1;if(c)try{var Oe={};Object.defineProperty(Oe,"passive",{get:function(){Re=!0}}),window.addEventListener("test",Oe,Oe),window.removeEventListener("test",Oe,Oe)}catch(ce){Re=!1}function Ie(e,t,n,r,a,o,i,l,s){var u=Array.prototype.slice.call(arguments,3);try{t.apply(n,u)}catch(c){this.onError(c)}}var De=!1,Me=null,Fe=!1,ze=null,Be={onError:function(e){De=!0,Me=e}};function Ue(e,t,n,r,a,o,i,l,s){De=!1,Me=null,Ie.apply(Be,arguments)}function $e(e){var t=e,n=e;if(e.alternate)for(;t.return;)t=t.return;else{e=t;do{!!(4098&(t=e).flags)&&(n=t.return),e=t.return}while(e)}return 3===t.tag?n:null}function qe(e){if(13===e.tag){var t=e.memoizedState;if(null===t&&(null!==(e=e.alternate)&&(t=e.memoizedState)),null!==t)return t.dehydrated}return null}function Ge(e){if($e(e)!==e)throw Error(o(188))}function He(e){return null!==(e=function(e){var t=e.alternate;if(!t){if(null===(t=$e(e)))throw Error(o(188));return t!==e?null:e}for(var n=e,r=t;;){var a=n.return;if(null===a)break;var i=a.alternate;if(null===i){if(null!==(r=a.return)){n=r;continue}break}if(a.child===i.child){for(i=a.child;i;){if(i===n)return Ge(a),e;if(i===r)return Ge(a),t;i=i.sibling}throw Error(o(188))}if(n.return!==r.return)n=a,r=i;else{for(var l=!1,s=a.child;s;){if(s===n){l=!0,n=a,r=i;break}if(s===r){l=!0,r=a,n=i;break}s=s.sibling}if(!l){for(s=i.child;s;){if(s===n){l=!0,n=i,r=a;break}if(s===r){l=!0,r=i,n=a;break}s=s.sibling}if(!l)throw Error(o(189))}}if(n.alternate!==r)throw Error(o(190))}if(3!==n.tag)throw Error(o(188));return n.stateNode.current===n?e:t}(e))?Ve(e):null}function Ve(e){if(5===e.tag||6===e.tag)return e;for(e=e.child;null!==e;){var t=Ve(e);if(null!==t)return t;e=e.sibling}return null}var We=a.unstable_scheduleCallback,Qe=a.unstable_cancelCallback,Ke=a.unstable_shouldYield,Ye=a.unstable_requestPaint,Ze=a.unstable_now,Xe=a.unstable_getCurrentPriorityLevel,Je=a.unstable_ImmediatePriority,et=a.unstable_UserBlockingPriority,tt=a.unstable_NormalPriority,nt=a.unstable_LowPriority,rt=a.unstable_IdlePriority,at=null,ot=null;var it=Math.clz32?Math.clz32:function(e){return e>>>=0,0===e?32:31-(lt(e)/st|0)|0},lt=Math.log,st=Math.LN2;var ut=64,ct=4194304;function dt(e){switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return 4194240&e;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return 130023424&e;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return e}}function pt(e,t){var n=e.pendingLanes;if(0===n)return 0;var r=0,a=e.suspendedLanes,o=e.pingedLanes,i=268435455&n;if(0!==i){var l=i&~a;0!==l?r=dt(l):0!==(o&=i)&&(r=dt(o))}else 0!==(i=n&~a)?r=dt(i):0!==o&&(r=dt(o));if(0===r)return 0;if(0!==t&&t!==r&&!(t&a)&&((a=r&-r)>=(o=t&-t)||16===a&&4194240&o))return t;if(4&r&&(r|=16&n),0!==(t=e.entangledLanes))for(e=e.entanglements,t&=r;0<t;)a=1<<(n=31-it(t)),r|=e[n],t&=~a;return r}function ft(e,t){switch(e){case 1:case 2:case 4:return t+250;case 8:case 16:case 32:case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return t+5e3;default:return-1}}function mt(e){return 0!==(e=-1073741825&e.pendingLanes)?e:1073741824&e?1073741824:0}function ht(){var e=ut;return!(4194240&(ut<<=1))&&(ut=64),e}function gt(e){for(var t=[],n=0;31>n;n++)t.push(e);return t}function yt(e,t,n){e.pendingLanes|=t,536870912!==t&&(e.suspendedLanes=0,e.pingedLanes=0),(e=e.eventTimes)[t=31-it(t)]=n}function bt(e,t){var n=e.entangledLanes|=t;for(e=e.entanglements;n;){var r=31-it(n),a=1<<r;a&t|e[r]&t&&(e[r]|=t),n&=~a}}var vt=0;function wt(e){return 1<(e&=-e)?4<e?268435455&e?16:536870912:4:1}var kt,xt,St,Et,Ct,_t=!1,At=[],Tt=null,jt=null,Nt=null,Lt=new Map,Pt=new Map,Rt=[],Ot="mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset submit".split(" ");function It(e,t){switch(e){case"focusin":case"focusout":Tt=null;break;case"dragenter":case"dragleave":jt=null;break;case"mouseover":case"mouseout":Nt=null;break;case"pointerover":case"pointerout":Lt.delete(t.pointerId);break;case"gotpointercapture":case"lostpointercapture":Pt.delete(t.pointerId)}}function Dt(e,t,n,r,a,o){return null===e||e.nativeEvent!==o?(e={blockedOn:t,domEventName:n,eventSystemFlags:r,nativeEvent:o,targetContainers:[a]},null!==t&&(null!==(t=va(t))&&xt(t)),e):(e.eventSystemFlags|=r,t=e.targetContainers,null!==a&&-1===t.indexOf(a)&&t.push(a),e)}function Mt(e){var t=ba(e.target);if(null!==t){var n=$e(t);if(null!==n)if(13===(t=n.tag)){if(null!==(t=qe(n)))return e.blockedOn=t,void Ct(e.priority,(function(){St(n)}))}else if(3===t&&n.stateNode.current.memoizedState.isDehydrated)return void(e.blockedOn=3===n.tag?n.stateNode.containerInfo:null)}e.blockedOn=null}function Ft(e){if(null!==e.blockedOn)return!1;for(var t=e.targetContainers;0<t.length;){var n=Kt(e.domEventName,e.eventSystemFlags,t[0],e.nativeEvent);if(null!==n)return null!==(t=va(n))&&xt(t),e.blockedOn=n,!1;var r=new(n=e.nativeEvent).constructor(n.type,n);we=r,n.target.dispatchEvent(r),we=null,t.shift()}return!0}function zt(e,t,n){Ft(e)&&n.delete(t)}function Bt(){_t=!1,null!==Tt&&Ft(Tt)&&(Tt=null),null!==jt&&Ft(jt)&&(jt=null),null!==Nt&&Ft(Nt)&&(Nt=null),Lt.forEach(zt),Pt.forEach(zt)}function Ut(e,t){e.blockedOn===t&&(e.blockedOn=null,_t||(_t=!0,a.unstable_scheduleCallback(a.unstable_NormalPriority,Bt)))}function $t(e){function t(t){return Ut(t,e)}if(0<At.length){Ut(At[0],e);for(var n=1;n<At.length;n++){var r=At[n];r.blockedOn===e&&(r.blockedOn=null)}}for(null!==Tt&&Ut(Tt,e),null!==jt&&Ut(jt,e),null!==Nt&&Ut(Nt,e),Lt.forEach(t),Pt.forEach(t),n=0;n<Rt.length;n++)(r=Rt[n]).blockedOn===e&&(r.blockedOn=null);for(;0<Rt.length&&null===(n=Rt[0]).blockedOn;)Mt(n),null===n.blockedOn&&Rt.shift()}var qt=w.ReactCurrentBatchConfig,Gt=!0;function Ht(e,t,n,r){var a=vt,o=qt.transition;qt.transition=null;try{vt=1,Wt(e,t,n,r)}finally{vt=a,qt.transition=o}}function Vt(e,t,n,r){var a=vt,o=qt.transition;qt.transition=null;try{vt=4,Wt(e,t,n,r)}finally{vt=a,qt.transition=o}}function Wt(e,t,n,r){if(Gt){var a=Kt(e,t,n,r);if(null===a)Gr(e,t,r,Qt,n),It(e,r);else if(function(e,t,n,r,a){switch(t){case"focusin":return Tt=Dt(Tt,e,t,n,r,a),!0;case"dragenter":return jt=Dt(jt,e,t,n,r,a),!0;case"mouseover":return Nt=Dt(Nt,e,t,n,r,a),!0;case"pointerover":var o=a.pointerId;return Lt.set(o,Dt(Lt.get(o)||null,e,t,n,r,a)),!0;case"gotpointercapture":return o=a.pointerId,Pt.set(o,Dt(Pt.get(o)||null,e,t,n,r,a)),!0}return!1}(a,e,t,n,r))r.stopPropagation();else if(It(e,r),4&t&&-1<Ot.indexOf(e)){for(;null!==a;){var o=va(a);if(null!==o&&kt(o),null===(o=Kt(e,t,n,r))&&Gr(e,t,r,Qt,n),o===a)break;a=o}null!==a&&r.stopPropagation()}else Gr(e,t,r,null,n)}}var Qt=null;function Kt(e,t,n,r){if(Qt=null,null!==(e=ba(e=ke(r))))if(null===(t=$e(e)))e=null;else if(13===(n=t.tag)){if(null!==(e=qe(t)))return e;e=null}else if(3===n){if(t.stateNode.current.memoizedState.isDehydrated)return 3===t.tag?t.stateNode.containerInfo:null;e=null}else t!==e&&(e=null);return Qt=e,null}function Yt(e){switch(e){case"cancel":case"click":case"close":case"contextmenu":case"copy":case"cut":case"auxclick":case"dblclick":case"dragend":case"dragstart":case"drop":case"focusin":case"focusout":case"input":case"invalid":case"keydown":case"keypress":case"keyup":case"mousedown":case"mouseup":case"paste":case"pause":case"play":case"pointercancel":case"pointerdown":case"pointerup":case"ratechange":case"reset":case"resize":case"seeked":case"submit":case"touchcancel":case"touchend":case"touchstart":case"volumechange":case"change":case"selectionchange":case"textInput":case"compositionstart":case"compositionend":case"compositionupdate":case"beforeblur":case"afterblur":case"beforeinput":case"blur":case"fullscreenchange":case"focus":case"hashchange":case"popstate":case"select":case"selectstart":return 1;case"drag":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"mousemove":case"mouseout":case"mouseover":case"pointermove":case"pointerout":case"pointerover":case"scroll":case"toggle":case"touchmove":case"wheel":case"mouseenter":case"mouseleave":case"pointerenter":case"pointerleave":return 4;case"message":switch(Xe()){case Je:return 1;case et:return 4;case tt:case nt:return 16;case rt:return 536870912;default:return 16}default:return 16}}var Zt=null,Xt=null,Jt=null;function en(){if(Jt)return Jt;var e,t,n=Xt,r=n.length,a="value"in Zt?Zt.value:Zt.textContent,o=a.length;for(e=0;e<r&&n[e]===a[e];e++);var i=r-e;for(t=1;t<=i&&n[r-t]===a[o-t];t++);return Jt=a.slice(e,1<t?1-t:void 0)}function tn(e){var t=e.keyCode;return"charCode"in e?0===(e=e.charCode)&&13===t&&(e=13):e=t,10===e&&(e=13),32<=e||13===e?e:0}function nn(){return!0}function rn(){return!1}function an(e){function t(t,n,r,a,o){for(var i in this._reactName=t,this._targetInst=r,this.type=n,this.nativeEvent=a,this.target=o,this.currentTarget=null,e)e.hasOwnProperty(i)&&(t=e[i],this[i]=t?t(a):a[i]);return this.isDefaultPrevented=(null!=a.defaultPrevented?a.defaultPrevented:!1===a.returnValue)?nn:rn,this.isPropagationStopped=rn,this}return M(t.prototype,{preventDefault:function(){this.defaultPrevented=!0;var e=this.nativeEvent;e&&(e.preventDefault?e.preventDefault():"unknown"!=typeof e.returnValue&&(e.returnValue=!1),this.isDefaultPrevented=nn)},stopPropagation:function(){var e=this.nativeEvent;e&&(e.stopPropagation?e.stopPropagation():"unknown"!=typeof e.cancelBubble&&(e.cancelBubble=!0),this.isPropagationStopped=nn)},persist:function(){},isPersistent:nn}),t}var on,ln,sn,un={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(e){return e.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},cn=an(un),dn=M({},un,{view:0,detail:0}),pn=an(dn),fn=M({},dn,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:Cn,button:0,buttons:0,relatedTarget:function(e){return void 0===e.relatedTarget?e.fromElement===e.srcElement?e.toElement:e.fromElement:e.relatedTarget},movementX:function(e){return"movementX"in e?e.movementX:(e!==sn&&(sn&&"mousemove"===e.type?(on=e.screenX-sn.screenX,ln=e.screenY-sn.screenY):ln=on=0,sn=e),on)},movementY:function(e){return"movementY"in e?e.movementY:ln}}),mn=an(fn),hn=an(M({},fn,{dataTransfer:0})),gn=an(M({},dn,{relatedTarget:0})),yn=an(M({},un,{animationName:0,elapsedTime:0,pseudoElement:0})),bn=M({},un,{clipboardData:function(e){return"clipboardData"in e?e.clipboardData:window.clipboardData}}),vn=an(bn),wn=an(M({},un,{data:0})),kn={Esc:"Escape",Spacebar:" ",Left:"ArrowLeft",Up:"ArrowUp",Right:"ArrowRight",Down:"ArrowDown",Del:"Delete",Win:"OS",Menu:"ContextMenu",Apps:"ContextMenu",Scroll:"ScrollLock",MozPrintableKey:"Unidentified"},xn={8:"Backspace",9:"Tab",12:"Clear",13:"Enter",16:"Shift",17:"Control",18:"Alt",19:"Pause",20:"CapsLock",27:"Escape",32:" ",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",45:"Insert",46:"Delete",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",144:"NumLock",145:"ScrollLock",224:"Meta"},Sn={Alt:"altKey",Control:"ctrlKey",Meta:"metaKey",Shift:"shiftKey"};function En(e){var t=this.nativeEvent;return t.getModifierState?t.getModifierState(e):!!(e=Sn[e])&&!!t[e]}function Cn(){return En}var _n=M({},dn,{key:function(e){if(e.key){var t=kn[e.key]||e.key;if("Unidentified"!==t)return t}return"keypress"===e.type?13===(e=tn(e))?"Enter":String.fromCharCode(e):"keydown"===e.type||"keyup"===e.type?xn[e.keyCode]||"Unidentified":""},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:Cn,charCode:function(e){return"keypress"===e.type?tn(e):0},keyCode:function(e){return"keydown"===e.type||"keyup"===e.type?e.keyCode:0},which:function(e){return"keypress"===e.type?tn(e):"keydown"===e.type||"keyup"===e.type?e.keyCode:0}}),An=an(_n),Tn=an(M({},fn,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0})),jn=an(M({},dn,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:Cn})),Nn=an(M({},un,{propertyName:0,elapsedTime:0,pseudoElement:0})),Ln=M({},fn,{deltaX:function(e){return"deltaX"in e?e.deltaX:"wheelDeltaX"in e?-e.wheelDeltaX:0},deltaY:function(e){return"deltaY"in e?e.deltaY:"wheelDeltaY"in e?-e.wheelDeltaY:"wheelDelta"in e?-e.wheelDelta:0},deltaZ:0,deltaMode:0}),Pn=an(Ln),Rn=[9,13,27,32],On=c&&"CompositionEvent"in window,In=null;c&&"documentMode"in document&&(In=document.documentMode);var Dn=c&&"TextEvent"in window&&!In,Mn=c&&(!On||In&&8<In&&11>=In),Fn=String.fromCharCode(32),zn=!1;function Bn(e,t){switch(e){case"keyup":return-1!==Rn.indexOf(t.keyCode);case"keydown":return 229!==t.keyCode;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function Un(e){return"object"==typeof(e=e.detail)&&"data"in e?e.data:null}var $n=!1;var qn={color:!0,date:!0,datetime:!0,"datetime-local":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function Gn(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return"input"===t?!!qn[e.type]:"textarea"===t}function Hn(e,t,n,r){_e(r),0<(t=Vr(t,"onChange")).length&&(n=new cn("onChange","change",null,n,r),e.push({event:n,listeners:t}))}var Vn=null,Wn=null;function Qn(e){Fr(e,0)}function Kn(e){if(W(wa(e)))return e}function Yn(e,t){if("change"===e)return t}var Zn=!1;if(c){var Xn;if(c){var Jn="oninput"in document;if(!Jn){var er=document.createElement("div");er.setAttribute("oninput","return;"),Jn="function"==typeof er.oninput}Xn=Jn}else Xn=!1;Zn=Xn&&(!document.documentMode||9<document.documentMode)}function tr(){Vn&&(Vn.detachEvent("onpropertychange",nr),Wn=Vn=null)}function nr(e){if("value"===e.propertyName&&Kn(Wn)){var t=[];Hn(t,Wn,e,ke(e)),Le(Qn,t)}}function rr(e,t,n){"focusin"===e?(tr(),Wn=n,(Vn=t).attachEvent("onpropertychange",nr)):"focusout"===e&&tr()}function ar(e){if("selectionchange"===e||"keyup"===e||"keydown"===e)return Kn(Wn)}function or(e,t){if("click"===e)return Kn(t)}function ir(e,t){if("input"===e||"change"===e)return Kn(t)}var lr="function"==typeof Object.is?Object.is:function(e,t){return e===t&&(0!==e||1/e==1/t)||e!=e&&t!=t};function sr(e,t){if(lr(e,t))return!0;if("object"!=typeof e||null===e||"object"!=typeof t||null===t)return!1;var n=Object.keys(e),r=Object.keys(t);if(n.length!==r.length)return!1;for(r=0;r<n.length;r++){var a=n[r];if(!d.call(t,a)||!lr(e[a],t[a]))return!1}return!0}function ur(e){for(;e&&e.firstChild;)e=e.firstChild;return e}function cr(e,t){var n,r=ur(e);for(e=0;r;){if(3===r.nodeType){if(n=e+r.textContent.length,e<=t&&n>=t)return{node:r,offset:t-e};e=n}e:{for(;r;){if(r.nextSibling){r=r.nextSibling;break e}r=r.parentNode}r=void 0}r=ur(r)}}function dr(e,t){return!(!e||!t)&&(e===t||(!e||3!==e.nodeType)&&(t&&3===t.nodeType?dr(e,t.parentNode):"contains"in e?e.contains(t):!!e.compareDocumentPosition&&!!(16&e.compareDocumentPosition(t))))}function pr(){for(var e=window,t=Q();t instanceof e.HTMLIFrameElement;){try{var n="string"==typeof t.contentWindow.location.href}catch(r){n=!1}if(!n)break;t=Q((e=t.contentWindow).document)}return t}function fr(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&("input"===t&&("text"===e.type||"search"===e.type||"tel"===e.type||"url"===e.type||"password"===e.type)||"textarea"===t||"true"===e.contentEditable)}function mr(e){var t=pr(),n=e.focusedElem,r=e.selectionRange;if(t!==n&&n&&n.ownerDocument&&dr(n.ownerDocument.documentElement,n)){if(null!==r&&fr(n))if(t=r.start,void 0===(e=r.end)&&(e=t),"selectionStart"in n)n.selectionStart=t,n.selectionEnd=Math.min(e,n.value.length);else if((e=(t=n.ownerDocument||document)&&t.defaultView||window).getSelection){e=e.getSelection();var a=n.textContent.length,o=Math.min(r.start,a);r=void 0===r.end?o:Math.min(r.end,a),!e.extend&&o>r&&(a=r,r=o,o=a),a=cr(n,o);var i=cr(n,r);a&&i&&(1!==e.rangeCount||e.anchorNode!==a.node||e.anchorOffset!==a.offset||e.focusNode!==i.node||e.focusOffset!==i.offset)&&((t=t.createRange()).setStart(a.node,a.offset),e.removeAllRanges(),o>r?(e.addRange(t),e.extend(i.node,i.offset)):(t.setEnd(i.node,i.offset),e.addRange(t)))}for(t=[],e=n;e=e.parentNode;)1===e.nodeType&&t.push({element:e,left:e.scrollLeft,top:e.scrollTop});for("function"==typeof n.focus&&n.focus(),n=0;n<t.length;n++)(e=t[n]).element.scrollLeft=e.left,e.element.scrollTop=e.top}}var hr=c&&"documentMode"in document&&11>=document.documentMode,gr=null,yr=null,br=null,vr=!1;function wr(e,t,n){var r=n.window===n?n.document:9===n.nodeType?n:n.ownerDocument;vr||null==gr||gr!==Q(r)||("selectionStart"in(r=gr)&&fr(r)?r={start:r.selectionStart,end:r.selectionEnd}:r={anchorNode:(r=(r.ownerDocument&&r.ownerDocument.defaultView||window).getSelection()).anchorNode,anchorOffset:r.anchorOffset,focusNode:r.focusNode,focusOffset:r.focusOffset},br&&sr(br,r)||(br=r,0<(r=Vr(yr,"onSelect")).length&&(t=new cn("onSelect","select",null,t,n),e.push({event:t,listeners:r}),t.target=gr)))}function kr(e,t){var n={};return n[e.toLowerCase()]=t.toLowerCase(),n["Webkit"+e]="webkit"+t,n["Moz"+e]="moz"+t,n}var xr={animationend:kr("Animation","AnimationEnd"),animationiteration:kr("Animation","AnimationIteration"),animationstart:kr("Animation","AnimationStart"),transitionend:kr("Transition","TransitionEnd")},Sr={},Er={};function Cr(e){if(Sr[e])return Sr[e];if(!xr[e])return e;var t,n=xr[e];for(t in n)if(n.hasOwnProperty(t)&&t in Er)return Sr[e]=n[t];return e}c&&(Er=document.createElement("div").style,"AnimationEvent"in window||(delete xr.animationend.animation,delete xr.animationiteration.animation,delete xr.animationstart.animation),"TransitionEvent"in window||delete xr.transitionend.transition);var _r=Cr("animationend"),Ar=Cr("animationiteration"),Tr=Cr("animationstart"),jr=Cr("transitionend"),Nr=new Map,Lr="abort auxClick cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel".split(" ");function Pr(e,t){Nr.set(e,t),s(t,[e])}for(var Rr=0;Rr<Lr.length;Rr++){var Or=Lr[Rr];Pr(Or.toLowerCase(),"on"+(Or[0].toUpperCase()+Or.slice(1)))}Pr(_r,"onAnimationEnd"),Pr(Ar,"onAnimationIteration"),Pr(Tr,"onAnimationStart"),Pr("dblclick","onDoubleClick"),Pr("focusin","onFocus"),Pr("focusout","onBlur"),Pr(jr,"onTransitionEnd"),u("onMouseEnter",["mouseout","mouseover"]),u("onMouseLeave",["mouseout","mouseover"]),u("onPointerEnter",["pointerout","pointerover"]),u("onPointerLeave",["pointerout","pointerover"]),s("onChange","change click focusin focusout input keydown keyup selectionchange".split(" ")),s("onSelect","focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange".split(" ")),s("onBeforeInput",["compositionend","keypress","textInput","paste"]),s("onCompositionEnd","compositionend focusout keydown keypress keyup mousedown".split(" ")),s("onCompositionStart","compositionstart focusout keydown keypress keyup mousedown".split(" ")),s("onCompositionUpdate","compositionupdate focusout keydown keypress keyup mousedown".split(" "));var Ir="abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange resize seeked seeking stalled suspend timeupdate volumechange waiting".split(" "),Dr=new Set("cancel close invalid load scroll toggle".split(" ").concat(Ir));function Mr(e,t,n){var r=e.type||"unknown-event";e.currentTarget=n,function(e,t,n,r,a,i,l,s,u){if(Ue.apply(this,arguments),De){if(!De)throw Error(o(198));var c=Me;De=!1,Me=null,Fe||(Fe=!0,ze=c)}}(r,t,void 0,e),e.currentTarget=null}function Fr(e,t){t=!!(4&t);for(var n=0;n<e.length;n++){var r=e[n],a=r.event;r=r.listeners;e:{var o=void 0;if(t)for(var i=r.length-1;0<=i;i--){var l=r[i],s=l.instance,u=l.currentTarget;if(l=l.listener,s!==o&&a.isPropagationStopped())break e;Mr(a,l,u),o=s}else for(i=0;i<r.length;i++){if(s=(l=r[i]).instance,u=l.currentTarget,l=l.listener,s!==o&&a.isPropagationStopped())break e;Mr(a,l,u),o=s}}}if(Fe)throw e=ze,Fe=!1,ze=null,e}function zr(e,t){var n=t[ha];void 0===n&&(n=t[ha]=new Set);var r=e+"__bubble";n.has(r)||(qr(t,e,2,!1),n.add(r))}function Br(e,t,n){var r=0;t&&(r|=4),qr(n,e,r,t)}var Ur="_reactListening"+Math.random().toString(36).slice(2);function $r(e){if(!e[Ur]){e[Ur]=!0,i.forEach((function(t){"selectionchange"!==t&&(Dr.has(t)||Br(t,!1,e),Br(t,!0,e))}));var t=9===e.nodeType?e:e.ownerDocument;null===t||t[Ur]||(t[Ur]=!0,Br("selectionchange",!1,t))}}function qr(e,t,n,r){switch(Yt(t)){case 1:var a=Ht;break;case 4:a=Vt;break;default:a=Wt}n=a.bind(null,t,n,e),a=void 0,!Re||"touchstart"!==t&&"touchmove"!==t&&"wheel"!==t||(a=!0),r?void 0!==a?e.addEventListener(t,n,{capture:!0,passive:a}):e.addEventListener(t,n,!0):void 0!==a?e.addEventListener(t,n,{passive:a}):e.addEventListener(t,n,!1)}function Gr(e,t,n,r,a){var o=r;if(!(1&t||2&t||null===r))e:for(;;){if(null===r)return;var i=r.tag;if(3===i||4===i){var l=r.stateNode.containerInfo;if(l===a||8===l.nodeType&&l.parentNode===a)break;if(4===i)for(i=r.return;null!==i;){var s=i.tag;if((3===s||4===s)&&((s=i.stateNode.containerInfo)===a||8===s.nodeType&&s.parentNode===a))return;i=i.return}for(;null!==l;){if(null===(i=ba(l)))return;if(5===(s=i.tag)||6===s){r=o=i;continue e}l=l.parentNode}}r=r.return}Le((function(){var r=o,a=ke(n),i=[];e:{var l=Nr.get(e);if(void 0!==l){var s=cn,u=e;switch(e){case"keypress":if(0===tn(n))break e;case"keydown":case"keyup":s=An;break;case"focusin":u="focus",s=gn;break;case"focusout":u="blur",s=gn;break;case"beforeblur":case"afterblur":s=gn;break;case"click":if(2===n.button)break e;case"auxclick":case"dblclick":case"mousedown":case"mousemove":case"mouseup":case"mouseout":case"mouseover":case"contextmenu":s=mn;break;case"drag":case"dragend":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"dragstart":case"drop":s=hn;break;case"touchcancel":case"touchend":case"touchmove":case"touchstart":s=jn;break;case _r:case Ar:case Tr:s=yn;break;case jr:s=Nn;break;case"scroll":s=pn;break;case"wheel":s=Pn;break;case"copy":case"cut":case"paste":s=vn;break;case"gotpointercapture":case"lostpointercapture":case"pointercancel":case"pointerdown":case"pointermove":case"pointerout":case"pointerover":case"pointerup":s=Tn}var c=!!(4&t),d=!c&&"scroll"===e,p=c?null!==l?l+"Capture":null:l;c=[];for(var f,m=r;null!==m;){var h=(f=m).stateNode;if(5===f.tag&&null!==h&&(f=h,null!==p&&(null!=(h=Pe(m,p))&&c.push(Hr(m,h,f)))),d)break;m=m.return}0<c.length&&(l=new s(l,u,null,n,a),i.push({event:l,listeners:c}))}}if(!(7&t)){if(s="mouseout"===e||"pointerout"===e,(!(l="mouseover"===e||"pointerover"===e)||n===we||!(u=n.relatedTarget||n.fromElement)||!ba(u)&&!u[ma])&&(s||l)&&(l=a.window===a?a:(l=a.ownerDocument)?l.defaultView||l.parentWindow:window,s?(s=r,null!==(u=(u=n.relatedTarget||n.toElement)?ba(u):null)&&(u!==(d=$e(u))||5!==u.tag&&6!==u.tag)&&(u=null)):(s=null,u=r),s!==u)){if(c=mn,h="onMouseLeave",p="onMouseEnter",m="mouse","pointerout"!==e&&"pointerover"!==e||(c=Tn,h="onPointerLeave",p="onPointerEnter",m="pointer"),d=null==s?l:wa(s),f=null==u?l:wa(u),(l=new c(h,m+"leave",s,n,a)).target=d,l.relatedTarget=f,h=null,ba(a)===r&&((c=new c(p,m+"enter",u,n,a)).target=f,c.relatedTarget=d,h=c),d=h,s&&u)e:{for(p=u,m=0,f=c=s;f;f=Wr(f))m++;for(f=0,h=p;h;h=Wr(h))f++;for(;0<m-f;)c=Wr(c),m--;for(;0<f-m;)p=Wr(p),f--;for(;m--;){if(c===p||null!==p&&c===p.alternate)break e;c=Wr(c),p=Wr(p)}c=null}else c=null;null!==s&&Qr(i,l,s,c,!1),null!==u&&null!==d&&Qr(i,d,u,c,!0)}if("select"===(s=(l=r?wa(r):window).nodeName&&l.nodeName.toLowerCase())||"input"===s&&"file"===l.type)var g=Yn;else if(Gn(l))if(Zn)g=ir;else{g=ar;var y=rr}else(s=l.nodeName)&&"input"===s.toLowerCase()&&("checkbox"===l.type||"radio"===l.type)&&(g=or);switch(g&&(g=g(e,r))?Hn(i,g,n,a):(y&&y(e,l,r),"focusout"===e&&(y=l._wrapperState)&&y.controlled&&"number"===l.type&&ee(l,"number",l.value)),y=r?wa(r):window,e){case"focusin":(Gn(y)||"true"===y.contentEditable)&&(gr=y,yr=r,br=null);break;case"focusout":br=yr=gr=null;break;case"mousedown":vr=!0;break;case"contextmenu":case"mouseup":case"dragend":vr=!1,wr(i,n,a);break;case"selectionchange":if(hr)break;case"keydown":case"keyup":wr(i,n,a)}var b;if(On)e:{switch(e){case"compositionstart":var v="onCompositionStart";break e;case"compositionend":v="onCompositionEnd";break e;case"compositionupdate":v="onCompositionUpdate";break e}v=void 0}else $n?Bn(e,n)&&(v="onCompositionEnd"):"keydown"===e&&229===n.keyCode&&(v="onCompositionStart");v&&(Mn&&"ko"!==n.locale&&($n||"onCompositionStart"!==v?"onCompositionEnd"===v&&$n&&(b=en()):(Xt="value"in(Zt=a)?Zt.value:Zt.textContent,$n=!0)),0<(y=Vr(r,v)).length&&(v=new wn(v,e,null,n,a),i.push({event:v,listeners:y}),b?v.data=b:null!==(b=Un(n))&&(v.data=b))),(b=Dn?function(e,t){switch(e){case"compositionend":return Un(t);case"keypress":return 32!==t.which?null:(zn=!0,Fn);case"textInput":return(e=t.data)===Fn&&zn?null:e;default:return null}}(e,n):function(e,t){if($n)return"compositionend"===e||!On&&Bn(e,t)?(e=en(),Jt=Xt=Zt=null,$n=!1,e):null;switch(e){case"paste":default:return null;case"keypress":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1<t.char.length)return t.char;if(t.which)return String.fromCharCode(t.which)}return null;case"compositionend":return Mn&&"ko"!==t.locale?null:t.data}}(e,n))&&(0<(r=Vr(r,"onBeforeInput")).length&&(a=new wn("onBeforeInput","beforeinput",null,n,a),i.push({event:a,listeners:r}),a.data=b))}Fr(i,t)}))}function Hr(e,t,n){return{instance:e,listener:t,currentTarget:n}}function Vr(e,t){for(var n=t+"Capture",r=[];null!==e;){var a=e,o=a.stateNode;5===a.tag&&null!==o&&(a=o,null!=(o=Pe(e,n))&&r.unshift(Hr(e,o,a)),null!=(o=Pe(e,t))&&r.push(Hr(e,o,a))),e=e.return}return r}function Wr(e){if(null===e)return null;do{e=e.return}while(e&&5!==e.tag);return e||null}function Qr(e,t,n,r,a){for(var o=t._reactName,i=[];null!==n&&n!==r;){var l=n,s=l.alternate,u=l.stateNode;if(null!==s&&s===r)break;5===l.tag&&null!==u&&(l=u,a?null!=(s=Pe(n,o))&&i.unshift(Hr(n,s,l)):a||null!=(s=Pe(n,o))&&i.push(Hr(n,s,l))),n=n.return}0!==i.length&&e.push({event:t,listeners:i})}var Kr=/\r\n?/g,Yr=/\u0000|\uFFFD/g;function Zr(e){return("string"==typeof e?e:""+e).replace(Kr,"\n").replace(Yr,"")}function Xr(e,t,n){if(t=Zr(t),Zr(e)!==t&&n)throw Error(o(425))}function Jr(){}var ea=null,ta=null;function na(e,t){return"textarea"===e||"noscript"===e||"string"==typeof t.children||"number"==typeof t.children||"object"==typeof t.dangerouslySetInnerHTML&&null!==t.dangerouslySetInnerHTML&&null!=t.dangerouslySetInnerHTML.__html}var ra="function"==typeof setTimeout?setTimeout:void 0,aa="function"==typeof clearTimeout?clearTimeout:void 0,oa="function"==typeof Promise?Promise:void 0,ia="function"==typeof queueMicrotask?queueMicrotask:void 0!==oa?function(e){return oa.resolve(null).then(e).catch(la)}:ra;function la(e){setTimeout((function(){throw e}))}function sa(e,t){var n=t,r=0;do{var a=n.nextSibling;if(e.removeChild(n),a&&8===a.nodeType)if("/$"===(n=a.data)){if(0===r)return e.removeChild(a),void $t(t);r--}else"$"!==n&&"$?"!==n&&"$!"!==n||r++;n=a}while(n);$t(t)}function ua(e){for(;null!=e;e=e.nextSibling){var t=e.nodeType;if(1===t||3===t)break;if(8===t){if("$"===(t=e.data)||"$!"===t||"$?"===t)break;if("/$"===t)return null}}return e}function ca(e){e=e.previousSibling;for(var t=0;e;){if(8===e.nodeType){var n=e.data;if("$"===n||"$!"===n||"$?"===n){if(0===t)return e;t--}else"/$"===n&&t++}e=e.previousSibling}return null}var da=Math.random().toString(36).slice(2),pa="__reactFiber$"+da,fa="__reactProps$"+da,ma="__reactContainer$"+da,ha="__reactEvents$"+da,ga="__reactListeners$"+da,ya="__reactHandles$"+da;function ba(e){var t=e[pa];if(t)return t;for(var n=e.parentNode;n;){if(t=n[ma]||n[pa]){if(n=t.alternate,null!==t.child||null!==n&&null!==n.child)for(e=ca(e);null!==e;){if(n=e[pa])return n;e=ca(e)}return t}n=(e=n).parentNode}return null}function va(e){return!(e=e[pa]||e[ma])||5!==e.tag&&6!==e.tag&&13!==e.tag&&3!==e.tag?null:e}function wa(e){if(5===e.tag||6===e.tag)return e.stateNode;throw Error(o(33))}function ka(e){return e[fa]||null}var xa=[],Sa=-1;function Ea(e){return{current:e}}function Ca(e){0>Sa||(e.current=xa[Sa],xa[Sa]=null,Sa--)}function _a(e,t){Sa++,xa[Sa]=e.current,e.current=t}var Aa={},Ta=Ea(Aa),ja=Ea(!1),Na=Aa;function La(e,t){var n=e.type.contextTypes;if(!n)return Aa;var r=e.stateNode;if(r&&r.__reactInternalMemoizedUnmaskedChildContext===t)return r.__reactInternalMemoizedMaskedChildContext;var a,o={};for(a in n)o[a]=t[a];return r&&((e=e.stateNode).__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=o),o}function Pa(e){return null!=(e=e.childContextTypes)}function Ra(){Ca(ja),Ca(Ta)}function Oa(e,t,n){if(Ta.current!==Aa)throw Error(o(168));_a(Ta,t),_a(ja,n)}function Ia(e,t,n){var r=e.stateNode;if(t=t.childContextTypes,"function"!=typeof r.getChildContext)return n;for(var a in r=r.getChildContext())if(!(a in t))throw Error(o(108,q(e)||"Unknown",a));return M({},n,r)}function Da(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||Aa,Na=Ta.current,_a(Ta,e),_a(ja,ja.current),!0}function Ma(e,t,n){var r=e.stateNode;if(!r)throw Error(o(169));n?(e=Ia(e,t,Na),r.__reactInternalMemoizedMergedChildContext=e,Ca(ja),Ca(Ta),_a(Ta,e)):Ca(ja),_a(ja,n)}var Fa=null,za=!1,Ba=!1;function Ua(e){null===Fa?Fa=[e]:Fa.push(e)}function $a(){if(!Ba&&null!==Fa){Ba=!0;var e=0,t=vt;try{var n=Fa;for(vt=1;e<n.length;e++){var r=n[e];do{r=r(!0)}while(null!==r)}Fa=null,za=!1}catch(a){throw null!==Fa&&(Fa=Fa.slice(e+1)),We(Je,$a),a}finally{vt=t,Ba=!1}}return null}var qa=[],Ga=0,Ha=null,Va=0,Wa=[],Qa=0,Ka=null,Ya=1,Za="";function Xa(e,t){qa[Ga++]=Va,qa[Ga++]=Ha,Ha=e,Va=t}function Ja(e,t,n){Wa[Qa++]=Ya,Wa[Qa++]=Za,Wa[Qa++]=Ka,Ka=e;var r=Ya;e=Za;var a=32-it(r)-1;r&=~(1<<a),n+=1;var o=32-it(t)+a;if(30<o){var i=a-a%5;o=(r&(1<<i)-1).toString(32),r>>=i,a-=i,Ya=1<<32-it(t)+a|n<<a|r,Za=o+e}else Ya=1<<o|n<<a|r,Za=e}function eo(e){null!==e.return&&(Xa(e,1),Ja(e,1,0))}function to(e){for(;e===Ha;)Ha=qa[--Ga],qa[Ga]=null,Va=qa[--Ga],qa[Ga]=null;for(;e===Ka;)Ka=Wa[--Qa],Wa[Qa]=null,Za=Wa[--Qa],Wa[Qa]=null,Ya=Wa[--Qa],Wa[Qa]=null}var no=null,ro=null,ao=!1,oo=null;function io(e,t){var n=Lu(5,null,null,0);n.elementType="DELETED",n.stateNode=t,n.return=e,null===(t=e.deletions)?(e.deletions=[n],e.flags|=16):t.push(n)}function lo(e,t){switch(e.tag){case 5:var n=e.type;return null!==(t=1!==t.nodeType||n.toLowerCase()!==t.nodeName.toLowerCase()?null:t)&&(e.stateNode=t,no=e,ro=ua(t.firstChild),!0);case 6:return null!==(t=""===e.pendingProps||3!==t.nodeType?null:t)&&(e.stateNode=t,no=e,ro=null,!0);case 13:return null!==(t=8!==t.nodeType?null:t)&&(n=null!==Ka?{id:Ya,overflow:Za}:null,e.memoizedState={dehydrated:t,treeContext:n,retryLane:1073741824},(n=Lu(18,null,null,0)).stateNode=t,n.return=e,e.child=n,no=e,ro=null,!0);default:return!1}}function so(e){return!(!(1&e.mode)||128&e.flags)}function uo(e){if(ao){var t=ro;if(t){var n=t;if(!lo(e,t)){if(so(e))throw Error(o(418));t=ua(n.nextSibling);var r=no;t&&lo(e,t)?io(r,n):(e.flags=-4097&e.flags|2,ao=!1,no=e)}}else{if(so(e))throw Error(o(418));e.flags=-4097&e.flags|2,ao=!1,no=e}}}function co(e){for(e=e.return;null!==e&&5!==e.tag&&3!==e.tag&&13!==e.tag;)e=e.return;no=e}function po(e){if(e!==no)return!1;if(!ao)return co(e),ao=!0,!1;var t;if((t=3!==e.tag)&&!(t=5!==e.tag)&&(t="head"!==(t=e.type)&&"body"!==t&&!na(e.type,e.memoizedProps)),t&&(t=ro)){if(so(e))throw fo(),Error(o(418));for(;t;)io(e,t),t=ua(t.nextSibling)}if(co(e),13===e.tag){if(!(e=null!==(e=e.memoizedState)?e.dehydrated:null))throw Error(o(317));e:{for(e=e.nextSibling,t=0;e;){if(8===e.nodeType){var n=e.data;if("/$"===n){if(0===t){ro=ua(e.nextSibling);break e}t--}else"$"!==n&&"$!"!==n&&"$?"!==n||t++}e=e.nextSibling}ro=null}}else ro=no?ua(e.stateNode.nextSibling):null;return!0}function fo(){for(var e=ro;e;)e=ua(e.nextSibling)}function mo(){ro=no=null,ao=!1}function ho(e){null===oo?oo=[e]:oo.push(e)}var go=w.ReactCurrentBatchConfig;function yo(e,t,n){if(null!==(e=n.ref)&&"function"!=typeof e&&"object"!=typeof e){if(n._owner){if(n=n._owner){if(1!==n.tag)throw Error(o(309));var r=n.stateNode}if(!r)throw Error(o(147,e));var a=r,i=""+e;return null!==t&&null!==t.ref&&"function"==typeof t.ref&&t.ref._stringRef===i?t.ref:(t=function(e){var t=a.refs;null===e?delete t[i]:t[i]=e},t._stringRef=i,t)}if("string"!=typeof e)throw Error(o(284));if(!n._owner)throw Error(o(290,e))}return e}function bo(e,t){throw e=Object.prototype.toString.call(t),Error(o(31,"[object Object]"===e?"object with keys {"+Object.keys(t).join(", ")+"}":e))}function vo(e){return(0,e._init)(e._payload)}function wo(e){function t(t,n){if(e){var r=t.deletions;null===r?(t.deletions=[n],t.flags|=16):r.push(n)}}function n(n,r){if(!e)return null;for(;null!==r;)t(n,r),r=r.sibling;return null}function r(e,t){for(e=new Map;null!==t;)null!==t.key?e.set(t.key,t):e.set(t.index,t),t=t.sibling;return e}function a(e,t){return(e=Ru(e,t)).index=0,e.sibling=null,e}function i(t,n,r){return t.index=r,e?null!==(r=t.alternate)?(r=r.index)<n?(t.flags|=2,n):r:(t.flags|=2,n):(t.flags|=1048576,n)}function l(t){return e&&null===t.alternate&&(t.flags|=2),t}function s(e,t,n,r){return null===t||6!==t.tag?((t=Mu(n,e.mode,r)).return=e,t):((t=a(t,n)).return=e,t)}function u(e,t,n,r){var o=n.type;return o===S?d(e,t,n.props.children,r,n.key):null!==t&&(t.elementType===o||"object"==typeof o&&null!==o&&o.$$typeof===P&&vo(o)===t.type)?((r=a(t,n.props)).ref=yo(e,t,n),r.return=e,r):((r=Ou(n.type,n.key,n.props,null,e.mode,r)).ref=yo(e,t,n),r.return=e,r)}function c(e,t,n,r){return null===t||4!==t.tag||t.stateNode.containerInfo!==n.containerInfo||t.stateNode.implementation!==n.implementation?((t=Fu(n,e.mode,r)).return=e,t):((t=a(t,n.children||[])).return=e,t)}function d(e,t,n,r,o){return null===t||7!==t.tag?((t=Iu(n,e.mode,r,o)).return=e,t):((t=a(t,n)).return=e,t)}function p(e,t,n){if("string"==typeof t&&""!==t||"number"==typeof t)return(t=Mu(""+t,e.mode,n)).return=e,t;if("object"==typeof t&&null!==t){switch(t.$$typeof){case k:return(n=Ou(t.type,t.key,t.props,null,e.mode,n)).ref=yo(e,null,t),n.return=e,n;case x:return(t=Fu(t,e.mode,n)).return=e,t;case P:return p(e,(0,t._init)(t._payload),n)}if(te(t)||I(t))return(t=Iu(t,e.mode,n,null)).return=e,t;bo(e,t)}return null}function f(e,t,n,r){var a=null!==t?t.key:null;if("string"==typeof n&&""!==n||"number"==typeof n)return null!==a?null:s(e,t,""+n,r);if("object"==typeof n&&null!==n){switch(n.$$typeof){case k:return n.key===a?u(e,t,n,r):null;case x:return n.key===a?c(e,t,n,r):null;case P:return f(e,t,(a=n._init)(n._payload),r)}if(te(n)||I(n))return null!==a?null:d(e,t,n,r,null);bo(e,n)}return null}function m(e,t,n,r,a){if("string"==typeof r&&""!==r||"number"==typeof r)return s(t,e=e.get(n)||null,""+r,a);if("object"==typeof r&&null!==r){switch(r.$$typeof){case k:return u(t,e=e.get(null===r.key?n:r.key)||null,r,a);case x:return c(t,e=e.get(null===r.key?n:r.key)||null,r,a);case P:return m(e,t,n,(0,r._init)(r._payload),a)}if(te(r)||I(r))return d(t,e=e.get(n)||null,r,a,null);bo(t,r)}return null}function h(a,o,l,s){for(var u=null,c=null,d=o,h=o=0,g=null;null!==d&&h<l.length;h++){d.index>h?(g=d,d=null):g=d.sibling;var y=f(a,d,l[h],s);if(null===y){null===d&&(d=g);break}e&&d&&null===y.alternate&&t(a,d),o=i(y,o,h),null===c?u=y:c.sibling=y,c=y,d=g}if(h===l.length)return n(a,d),ao&&Xa(a,h),u;if(null===d){for(;h<l.length;h++)null!==(d=p(a,l[h],s))&&(o=i(d,o,h),null===c?u=d:c.sibling=d,c=d);return ao&&Xa(a,h),u}for(d=r(a,d);h<l.length;h++)null!==(g=m(d,a,h,l[h],s))&&(e&&null!==g.alternate&&d.delete(null===g.key?h:g.key),o=i(g,o,h),null===c?u=g:c.sibling=g,c=g);return e&&d.forEach((function(e){return t(a,e)})),ao&&Xa(a,h),u}function g(a,l,s,u){var c=I(s);if("function"!=typeof c)throw Error(o(150));if(null==(s=c.call(s)))throw Error(o(151));for(var d=c=null,h=l,g=l=0,y=null,b=s.next();null!==h&&!b.done;g++,b=s.next()){h.index>g?(y=h,h=null):y=h.sibling;var v=f(a,h,b.value,u);if(null===v){null===h&&(h=y);break}e&&h&&null===v.alternate&&t(a,h),l=i(v,l,g),null===d?c=v:d.sibling=v,d=v,h=y}if(b.done)return n(a,h),ao&&Xa(a,g),c;if(null===h){for(;!b.done;g++,b=s.next())null!==(b=p(a,b.value,u))&&(l=i(b,l,g),null===d?c=b:d.sibling=b,d=b);return ao&&Xa(a,g),c}for(h=r(a,h);!b.done;g++,b=s.next())null!==(b=m(h,a,g,b.value,u))&&(e&&null!==b.alternate&&h.delete(null===b.key?g:b.key),l=i(b,l,g),null===d?c=b:d.sibling=b,d=b);return e&&h.forEach((function(e){return t(a,e)})),ao&&Xa(a,g),c}return function e(r,o,i,s){if("object"==typeof i&&null!==i&&i.type===S&&null===i.key&&(i=i.props.children),"object"==typeof i&&null!==i){switch(i.$$typeof){case k:e:{for(var u=i.key,c=o;null!==c;){if(c.key===u){if((u=i.type)===S){if(7===c.tag){n(r,c.sibling),(o=a(c,i.props.children)).return=r,r=o;break e}}else if(c.elementType===u||"object"==typeof u&&null!==u&&u.$$typeof===P&&vo(u)===c.type){n(r,c.sibling),(o=a(c,i.props)).ref=yo(r,c,i),o.return=r,r=o;break e}n(r,c);break}t(r,c),c=c.sibling}i.type===S?((o=Iu(i.props.children,r.mode,s,i.key)).return=r,r=o):((s=Ou(i.type,i.key,i.props,null,r.mode,s)).ref=yo(r,o,i),s.return=r,r=s)}return l(r);case x:e:{for(c=i.key;null!==o;){if(o.key===c){if(4===o.tag&&o.stateNode.containerInfo===i.containerInfo&&o.stateNode.implementation===i.implementation){n(r,o.sibling),(o=a(o,i.children||[])).return=r,r=o;break e}n(r,o);break}t(r,o),o=o.sibling}(o=Fu(i,r.mode,s)).return=r,r=o}return l(r);case P:return e(r,o,(c=i._init)(i._payload),s)}if(te(i))return h(r,o,i,s);if(I(i))return g(r,o,i,s);bo(r,i)}return"string"==typeof i&&""!==i||"number"==typeof i?(i=""+i,null!==o&&6===o.tag?(n(r,o.sibling),(o=a(o,i)).return=r,r=o):(n(r,o),(o=Mu(i,r.mode,s)).return=r,r=o),l(r)):n(r,o)}}var ko=wo(!0),xo=wo(!1),So=Ea(null),Eo=null,Co=null,_o=null;function Ao(){_o=Co=Eo=null}function To(e){var t=So.current;Ca(So),e._currentValue=t}function jo(e,t,n){for(;null!==e;){var r=e.alternate;if((e.childLanes&t)!==t?(e.childLanes|=t,null!==r&&(r.childLanes|=t)):null!==r&&(r.childLanes&t)!==t&&(r.childLanes|=t),e===n)break;e=e.return}}function No(e,t){Eo=e,_o=Co=null,null!==(e=e.dependencies)&&null!==e.firstContext&&(!!(e.lanes&t)&&(vl=!0),e.firstContext=null)}function Lo(e){var t=e._currentValue;if(_o!==e)if(e={context:e,memoizedValue:t,next:null},null===Co){if(null===Eo)throw Error(o(308));Co=e,Eo.dependencies={lanes:0,firstContext:e}}else Co=Co.next=e;return t}var Po=null;function Ro(e){null===Po?Po=[e]:Po.push(e)}function Oo(e,t,n,r){var a=t.interleaved;return null===a?(n.next=n,Ro(t)):(n.next=a.next,a.next=n),t.interleaved=n,Io(e,r)}function Io(e,t){e.lanes|=t;var n=e.alternate;for(null!==n&&(n.lanes|=t),n=e,e=e.return;null!==e;)e.childLanes|=t,null!==(n=e.alternate)&&(n.childLanes|=t),n=e,e=e.return;return 3===n.tag?n.stateNode:null}var Do=!1;function Mo(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function Fo(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,effects:e.effects})}function zo(e,t){return{eventTime:e,lane:t,tag:0,payload:null,callback:null,next:null}}function Bo(e,t,n){var r=e.updateQueue;if(null===r)return null;if(r=r.shared,2&Ts){var a=r.pending;return null===a?t.next=t:(t.next=a.next,a.next=t),r.pending=t,Io(e,n)}return null===(a=r.interleaved)?(t.next=t,Ro(r)):(t.next=a.next,a.next=t),r.interleaved=t,Io(e,n)}function Uo(e,t,n){if(null!==(t=t.updateQueue)&&(t=t.shared,4194240&n)){var r=t.lanes;n|=r&=e.pendingLanes,t.lanes=n,bt(e,n)}}function $o(e,t){var n=e.updateQueue,r=e.alternate;if(null!==r&&n===(r=r.updateQueue)){var a=null,o=null;if(null!==(n=n.firstBaseUpdate)){do{var i={eventTime:n.eventTime,lane:n.lane,tag:n.tag,payload:n.payload,callback:n.callback,next:null};null===o?a=o=i:o=o.next=i,n=n.next}while(null!==n);null===o?a=o=t:o=o.next=t}else a=o=t;return n={baseState:r.baseState,firstBaseUpdate:a,lastBaseUpdate:o,shared:r.shared,effects:r.effects},void(e.updateQueue=n)}null===(e=n.lastBaseUpdate)?n.firstBaseUpdate=t:e.next=t,n.lastBaseUpdate=t}function qo(e,t,n,r){var a=e.updateQueue;Do=!1;var o=a.firstBaseUpdate,i=a.lastBaseUpdate,l=a.shared.pending;if(null!==l){a.shared.pending=null;var s=l,u=s.next;s.next=null,null===i?o=u:i.next=u,i=s;var c=e.alternate;null!==c&&((l=(c=c.updateQueue).lastBaseUpdate)!==i&&(null===l?c.firstBaseUpdate=u:l.next=u,c.lastBaseUpdate=s))}if(null!==o){var d=a.baseState;for(i=0,c=u=s=null,l=o;;){var p=l.lane,f=l.eventTime;if((r&p)===p){null!==c&&(c=c.next={eventTime:f,lane:0,tag:l.tag,payload:l.payload,callback:l.callback,next:null});e:{var m=e,h=l;switch(p=t,f=n,h.tag){case 1:if("function"==typeof(m=h.payload)){d=m.call(f,d,p);break e}d=m;break e;case 3:m.flags=-65537&m.flags|128;case 0:if(null==(p="function"==typeof(m=h.payload)?m.call(f,d,p):m))break e;d=M({},d,p);break e;case 2:Do=!0}}null!==l.callback&&0!==l.lane&&(e.flags|=64,null===(p=a.effects)?a.effects=[l]:p.push(l))}else f={eventTime:f,lane:p,tag:l.tag,payload:l.payload,callback:l.callback,next:null},null===c?(u=c=f,s=d):c=c.next=f,i|=p;if(null===(l=l.next)){if(null===(l=a.shared.pending))break;l=(p=l).next,p.next=null,a.lastBaseUpdate=p,a.shared.pending=null}}if(null===c&&(s=d),a.baseState=s,a.firstBaseUpdate=u,a.lastBaseUpdate=c,null!==(t=a.shared.interleaved)){a=t;do{i|=a.lane,a=a.next}while(a!==t)}else null===o&&(a.shared.lanes=0);Ds|=i,e.lanes=i,e.memoizedState=d}}function Go(e,t,n){if(e=t.effects,t.effects=null,null!==e)for(t=0;t<e.length;t++){var r=e[t],a=r.callback;if(null!==a){if(r.callback=null,r=n,"function"!=typeof a)throw Error(o(191,a));a.call(r)}}}var Ho={},Vo=Ea(Ho),Wo=Ea(Ho),Qo=Ea(Ho);function Ko(e){if(e===Ho)throw Error(o(174));return e}function Yo(e,t){switch(_a(Qo,t),_a(Wo,e),_a(Vo,Ho),e=t.nodeType){case 9:case 11:t=(t=t.documentElement)?t.namespaceURI:se(null,"");break;default:t=se(t=(e=8===e?t.parentNode:t).namespaceURI||null,e=e.tagName)}Ca(Vo),_a(Vo,t)}function Zo(){Ca(Vo),Ca(Wo),Ca(Qo)}function Xo(e){Ko(Qo.current);var t=Ko(Vo.current),n=se(t,e.type);t!==n&&(_a(Wo,e),_a(Vo,n))}function Jo(e){Wo.current===e&&(Ca(Vo),Ca(Wo))}var ei=Ea(0);function ti(e){for(var t=e;null!==t;){if(13===t.tag){var n=t.memoizedState;if(null!==n&&(null===(n=n.dehydrated)||"$?"===n.data||"$!"===n.data))return t}else if(19===t.tag&&void 0!==t.memoizedProps.revealOrder){if(128&t.flags)return t}else if(null!==t.child){t.child.return=t,t=t.child;continue}if(t===e)break;for(;null===t.sibling;){if(null===t.return||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}return null}var ni=[];function ri(){for(var e=0;e<ni.length;e++)ni[e]._workInProgressVersionPrimary=null;ni.length=0}var ai=w.ReactCurrentDispatcher,oi=w.ReactCurrentBatchConfig,ii=0,li=null,si=null,ui=null,ci=!1,di=!1,pi=0,fi=0;function mi(){throw Error(o(321))}function hi(e,t){if(null===t)return!1;for(var n=0;n<t.length&&n<e.length;n++)if(!lr(e[n],t[n]))return!1;return!0}function gi(e,t,n,r,a,i){if(ii=i,li=t,t.memoizedState=null,t.updateQueue=null,t.lanes=0,ai.current=null===e||null===e.memoizedState?Ji:el,e=n(r,a),di){i=0;do{if(di=!1,pi=0,25<=i)throw Error(o(301));i+=1,ui=si=null,t.updateQueue=null,ai.current=tl,e=n(r,a)}while(di)}if(ai.current=Xi,t=null!==si&&null!==si.next,ii=0,ui=si=li=null,ci=!1,t)throw Error(o(300));return e}function yi(){var e=0!==pi;return pi=0,e}function bi(){var e={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return null===ui?li.memoizedState=ui=e:ui=ui.next=e,ui}function vi(){if(null===si){var e=li.alternate;e=null!==e?e.memoizedState:null}else e=si.next;var t=null===ui?li.memoizedState:ui.next;if(null!==t)ui=t,si=e;else{if(null===e)throw Error(o(310));e={memoizedState:(si=e).memoizedState,baseState:si.baseState,baseQueue:si.baseQueue,queue:si.queue,next:null},null===ui?li.memoizedState=ui=e:ui=ui.next=e}return ui}function wi(e,t){return"function"==typeof t?t(e):t}function ki(e){var t=vi(),n=t.queue;if(null===n)throw Error(o(311));n.lastRenderedReducer=e;var r=si,a=r.baseQueue,i=n.pending;if(null!==i){if(null!==a){var l=a.next;a.next=i.next,i.next=l}r.baseQueue=a=i,n.pending=null}if(null!==a){i=a.next,r=r.baseState;var s=l=null,u=null,c=i;do{var d=c.lane;if((ii&d)===d)null!==u&&(u=u.next={lane:0,action:c.action,hasEagerState:c.hasEagerState,eagerState:c.eagerState,next:null}),r=c.hasEagerState?c.eagerState:e(r,c.action);else{var p={lane:d,action:c.action,hasEagerState:c.hasEagerState,eagerState:c.eagerState,next:null};null===u?(s=u=p,l=r):u=u.next=p,li.lanes|=d,Ds|=d}c=c.next}while(null!==c&&c!==i);null===u?l=r:u.next=s,lr(r,t.memoizedState)||(vl=!0),t.memoizedState=r,t.baseState=l,t.baseQueue=u,n.lastRenderedState=r}if(null!==(e=n.interleaved)){a=e;do{i=a.lane,li.lanes|=i,Ds|=i,a=a.next}while(a!==e)}else null===a&&(n.lanes=0);return[t.memoizedState,n.dispatch]}function xi(e){var t=vi(),n=t.queue;if(null===n)throw Error(o(311));n.lastRenderedReducer=e;var r=n.dispatch,a=n.pending,i=t.memoizedState;if(null!==a){n.pending=null;var l=a=a.next;do{i=e(i,l.action),l=l.next}while(l!==a);lr(i,t.memoizedState)||(vl=!0),t.memoizedState=i,null===t.baseQueue&&(t.baseState=i),n.lastRenderedState=i}return[i,r]}function Si(){}function Ei(e,t){var n=li,r=vi(),a=t(),i=!lr(r.memoizedState,a);if(i&&(r.memoizedState=a,vl=!0),r=r.queue,Di(Ai.bind(null,n,r,e),[e]),r.getSnapshot!==t||i||null!==ui&&1&ui.memoizedState.tag){if(n.flags|=2048,Li(9,_i.bind(null,n,r,a,t),void 0,null),null===js)throw Error(o(349));30&ii||Ci(n,t,a)}return a}function Ci(e,t,n){e.flags|=16384,e={getSnapshot:t,value:n},null===(t=li.updateQueue)?(t={lastEffect:null,stores:null},li.updateQueue=t,t.stores=[e]):null===(n=t.stores)?t.stores=[e]:n.push(e)}function _i(e,t,n,r){t.value=n,t.getSnapshot=r,Ti(t)&&ji(e)}function Ai(e,t,n){return n((function(){Ti(t)&&ji(e)}))}function Ti(e){var t=e.getSnapshot;e=e.value;try{var n=t();return!lr(e,n)}catch(r){return!0}}function ji(e){var t=Io(e,1);null!==t&&nu(t,e,1,-1)}function Ni(e){var t=bi();return"function"==typeof e&&(e=e()),t.memoizedState=t.baseState=e,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:wi,lastRenderedState:e},t.queue=e,e=e.dispatch=Qi.bind(null,li,e),[t.memoizedState,e]}function Li(e,t,n,r){return e={tag:e,create:t,destroy:n,deps:r,next:null},null===(t=li.updateQueue)?(t={lastEffect:null,stores:null},li.updateQueue=t,t.lastEffect=e.next=e):null===(n=t.lastEffect)?t.lastEffect=e.next=e:(r=n.next,n.next=e,e.next=r,t.lastEffect=e),e}function Pi(){return vi().memoizedState}function Ri(e,t,n,r){var a=bi();li.flags|=e,a.memoizedState=Li(1|t,n,void 0,void 0===r?null:r)}function Oi(e,t,n,r){var a=vi();r=void 0===r?null:r;var o=void 0;if(null!==si){var i=si.memoizedState;if(o=i.destroy,null!==r&&hi(r,i.deps))return void(a.memoizedState=Li(t,n,o,r))}li.flags|=e,a.memoizedState=Li(1|t,n,o,r)}function Ii(e,t){return Ri(8390656,8,e,t)}function Di(e,t){return Oi(2048,8,e,t)}function Mi(e,t){return Oi(4,2,e,t)}function Fi(e,t){return Oi(4,4,e,t)}function zi(e,t){return"function"==typeof t?(e=e(),t(e),function(){t(null)}):null!=t?(e=e(),t.current=e,function(){t.current=null}):void 0}function Bi(e,t,n){return n=null!=n?n.concat([e]):null,Oi(4,4,zi.bind(null,t,e),n)}function Ui(){}function $i(e,t){var n=vi();t=void 0===t?null:t;var r=n.memoizedState;return null!==r&&null!==t&&hi(t,r[1])?r[0]:(n.memoizedState=[e,t],e)}function qi(e,t){var n=vi();t=void 0===t?null:t;var r=n.memoizedState;return null!==r&&null!==t&&hi(t,r[1])?r[0]:(e=e(),n.memoizedState=[e,t],e)}function Gi(e,t,n){return 21&ii?(lr(n,t)||(n=ht(),li.lanes|=n,Ds|=n,e.baseState=!0),t):(e.baseState&&(e.baseState=!1,vl=!0),e.memoizedState=n)}function Hi(e,t){var n=vt;vt=0!==n&&4>n?n:4,e(!0);var r=oi.transition;oi.transition={};try{e(!1),t()}finally{vt=n,oi.transition=r}}function Vi(){return vi().memoizedState}function Wi(e,t,n){var r=tu(e);if(n={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null},Ki(e))Yi(t,n);else if(null!==(n=Oo(e,t,n,r))){nu(n,e,r,eu()),Zi(n,t,r)}}function Qi(e,t,n){var r=tu(e),a={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null};if(Ki(e))Yi(t,a);else{var o=e.alternate;if(0===e.lanes&&(null===o||0===o.lanes)&&null!==(o=t.lastRenderedReducer))try{var i=t.lastRenderedState,l=o(i,n);if(a.hasEagerState=!0,a.eagerState=l,lr(l,i)){var s=t.interleaved;return null===s?(a.next=a,Ro(t)):(a.next=s.next,s.next=a),void(t.interleaved=a)}}catch(u){}null!==(n=Oo(e,t,a,r))&&(nu(n,e,r,a=eu()),Zi(n,t,r))}}function Ki(e){var t=e.alternate;return e===li||null!==t&&t===li}function Yi(e,t){di=ci=!0;var n=e.pending;null===n?t.next=t:(t.next=n.next,n.next=t),e.pending=t}function Zi(e,t,n){if(4194240&n){var r=t.lanes;n|=r&=e.pendingLanes,t.lanes=n,bt(e,n)}}var Xi={readContext:Lo,useCallback:mi,useContext:mi,useEffect:mi,useImperativeHandle:mi,useInsertionEffect:mi,useLayoutEffect:mi,useMemo:mi,useReducer:mi,useRef:mi,useState:mi,useDebugValue:mi,useDeferredValue:mi,useTransition:mi,useMutableSource:mi,useSyncExternalStore:mi,useId:mi,unstable_isNewReconciler:!1},Ji={readContext:Lo,useCallback:function(e,t){return bi().memoizedState=[e,void 0===t?null:t],e},useContext:Lo,useEffect:Ii,useImperativeHandle:function(e,t,n){return n=null!=n?n.concat([e]):null,Ri(4194308,4,zi.bind(null,t,e),n)},useLayoutEffect:function(e,t){return Ri(4194308,4,e,t)},useInsertionEffect:function(e,t){return Ri(4,2,e,t)},useMemo:function(e,t){var n=bi();return t=void 0===t?null:t,e=e(),n.memoizedState=[e,t],e},useReducer:function(e,t,n){var r=bi();return t=void 0!==n?n(t):t,r.memoizedState=r.baseState=t,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:t},r.queue=e,e=e.dispatch=Wi.bind(null,li,e),[r.memoizedState,e]},useRef:function(e){return e={current:e},bi().memoizedState=e},useState:Ni,useDebugValue:Ui,useDeferredValue:function(e){return bi().memoizedState=e},useTransition:function(){var e=Ni(!1),t=e[0];return e=Hi.bind(null,e[1]),bi().memoizedState=e,[t,e]},useMutableSource:function(){},useSyncExternalStore:function(e,t,n){var r=li,a=bi();if(ao){if(void 0===n)throw Error(o(407));n=n()}else{if(n=t(),null===js)throw Error(o(349));30&ii||Ci(r,t,n)}a.memoizedState=n;var i={value:n,getSnapshot:t};return a.queue=i,Ii(Ai.bind(null,r,i,e),[e]),r.flags|=2048,Li(9,_i.bind(null,r,i,n,t),void 0,null),n},useId:function(){var e=bi(),t=js.identifierPrefix;if(ao){var n=Za;t=":"+t+"R"+(n=(Ya&~(1<<32-it(Ya)-1)).toString(32)+n),0<(n=pi++)&&(t+="H"+n.toString(32)),t+=":"}else t=":"+t+"r"+(n=fi++).toString(32)+":";return e.memoizedState=t},unstable_isNewReconciler:!1},el={readContext:Lo,useCallback:$i,useContext:Lo,useEffect:Di,useImperativeHandle:Bi,useInsertionEffect:Mi,useLayoutEffect:Fi,useMemo:qi,useReducer:ki,useRef:Pi,useState:function(){return ki(wi)},useDebugValue:Ui,useDeferredValue:function(e){return Gi(vi(),si.memoizedState,e)},useTransition:function(){return[ki(wi)[0],vi().memoizedState]},useMutableSource:Si,useSyncExternalStore:Ei,useId:Vi,unstable_isNewReconciler:!1},tl={readContext:Lo,useCallback:$i,useContext:Lo,useEffect:Di,useImperativeHandle:Bi,useInsertionEffect:Mi,useLayoutEffect:Fi,useMemo:qi,useReducer:xi,useRef:Pi,useState:function(){return xi(wi)},useDebugValue:Ui,useDeferredValue:function(e){var t=vi();return null===si?t.memoizedState=e:Gi(t,si.memoizedState,e)},useTransition:function(){return[xi(wi)[0],vi().memoizedState]},useMutableSource:Si,useSyncExternalStore:Ei,useId:Vi,unstable_isNewReconciler:!1};function nl(e,t){if(e&&e.defaultProps){for(var n in t=M({},t),e=e.defaultProps)void 0===t[n]&&(t[n]=e[n]);return t}return t}function rl(e,t,n,r){n=null==(n=n(r,t=e.memoizedState))?t:M({},t,n),e.memoizedState=n,0===e.lanes&&(e.updateQueue.baseState=n)}var al={isMounted:function(e){return!!(e=e._reactInternals)&&$e(e)===e},enqueueSetState:function(e,t,n){e=e._reactInternals;var r=eu(),a=tu(e),o=zo(r,a);o.payload=t,null!=n&&(o.callback=n),null!==(t=Bo(e,o,a))&&(nu(t,e,a,r),Uo(t,e,a))},enqueueReplaceState:function(e,t,n){e=e._reactInternals;var r=eu(),a=tu(e),o=zo(r,a);o.tag=1,o.payload=t,null!=n&&(o.callback=n),null!==(t=Bo(e,o,a))&&(nu(t,e,a,r),Uo(t,e,a))},enqueueForceUpdate:function(e,t){e=e._reactInternals;var n=eu(),r=tu(e),a=zo(n,r);a.tag=2,null!=t&&(a.callback=t),null!==(t=Bo(e,a,r))&&(nu(t,e,r,n),Uo(t,e,r))}};function ol(e,t,n,r,a,o,i){return"function"==typeof(e=e.stateNode).shouldComponentUpdate?e.shouldComponentUpdate(r,o,i):!t.prototype||!t.prototype.isPureReactComponent||(!sr(n,r)||!sr(a,o))}function il(e,t,n){var r=!1,a=Aa,o=t.contextType;return"object"==typeof o&&null!==o?o=Lo(o):(a=Pa(t)?Na:Ta.current,o=(r=null!=(r=t.contextTypes))?La(e,a):Aa),t=new t(n,o),e.memoizedState=null!==t.state&&void 0!==t.state?t.state:null,t.updater=al,e.stateNode=t,t._reactInternals=e,r&&((e=e.stateNode).__reactInternalMemoizedUnmaskedChildContext=a,e.__reactInternalMemoizedMaskedChildContext=o),t}function ll(e,t,n,r){e=t.state,"function"==typeof t.componentWillReceiveProps&&t.componentWillReceiveProps(n,r),"function"==typeof t.UNSAFE_componentWillReceiveProps&&t.UNSAFE_componentWillReceiveProps(n,r),t.state!==e&&al.enqueueReplaceState(t,t.state,null)}function sl(e,t,n,r){var a=e.stateNode;a.props=n,a.state=e.memoizedState,a.refs={},Mo(e);var o=t.contextType;"object"==typeof o&&null!==o?a.context=Lo(o):(o=Pa(t)?Na:Ta.current,a.context=La(e,o)),a.state=e.memoizedState,"function"==typeof(o=t.getDerivedStateFromProps)&&(rl(e,t,o,n),a.state=e.memoizedState),"function"==typeof t.getDerivedStateFromProps||"function"==typeof a.getSnapshotBeforeUpdate||"function"!=typeof a.UNSAFE_componentWillMount&&"function"!=typeof a.componentWillMount||(t=a.state,"function"==typeof a.componentWillMount&&a.componentWillMount(),"function"==typeof a.UNSAFE_componentWillMount&&a.UNSAFE_componentWillMount(),t!==a.state&&al.enqueueReplaceState(a,a.state,null),qo(e,n,a,r),a.state=e.memoizedState),"function"==typeof a.componentDidMount&&(e.flags|=4194308)}function ul(e,t){try{var n="",r=t;do{n+=U(r),r=r.return}while(r);var a=n}catch(o){a="\nError generating stack: "+o.message+"\n"+o.stack}return{value:e,source:t,stack:a,digest:null}}function cl(e,t,n){return{value:e,source:null,stack:null!=n?n:null,digest:null!=t?t:null}}function dl(e,t){try{console.error(t.value)}catch(n){setTimeout((function(){throw n}))}}var pl="function"==typeof WeakMap?WeakMap:Map;function fl(e,t,n){(n=zo(-1,n)).tag=3,n.payload={element:null};var r=t.value;return n.callback=function(){Gs||(Gs=!0,Hs=r),dl(0,t)},n}function ml(e,t,n){(n=zo(-1,n)).tag=3;var r=e.type.getDerivedStateFromError;if("function"==typeof r){var a=t.value;n.payload=function(){return r(a)},n.callback=function(){dl(0,t)}}var o=e.stateNode;return null!==o&&"function"==typeof o.componentDidCatch&&(n.callback=function(){dl(0,t),"function"!=typeof r&&(null===Vs?Vs=new Set([this]):Vs.add(this));var e=t.stack;this.componentDidCatch(t.value,{componentStack:null!==e?e:""})}),n}function hl(e,t,n){var r=e.pingCache;if(null===r){r=e.pingCache=new pl;var a=new Set;r.set(t,a)}else void 0===(a=r.get(t))&&(a=new Set,r.set(t,a));a.has(n)||(a.add(n),e=Cu.bind(null,e,t,n),t.then(e,e))}function gl(e){do{var t;if((t=13===e.tag)&&(t=null===(t=e.memoizedState)||null!==t.dehydrated),t)return e;e=e.return}while(null!==e);return null}function yl(e,t,n,r,a){return 1&e.mode?(e.flags|=65536,e.lanes=a,e):(e===t?e.flags|=65536:(e.flags|=128,n.flags|=131072,n.flags&=-52805,1===n.tag&&(null===n.alternate?n.tag=17:((t=zo(-1,1)).tag=2,Bo(n,t,1))),n.lanes|=1),e)}var bl=w.ReactCurrentOwner,vl=!1;function wl(e,t,n,r){t.child=null===e?xo(t,null,n,r):ko(t,e.child,n,r)}function kl(e,t,n,r,a){n=n.render;var o=t.ref;return No(t,a),r=gi(e,t,n,r,o,a),n=yi(),null===e||vl?(ao&&n&&eo(t),t.flags|=1,wl(e,t,r,a),t.child):(t.updateQueue=e.updateQueue,t.flags&=-2053,e.lanes&=~a,Gl(e,t,a))}function xl(e,t,n,r,a){if(null===e){var o=n.type;return"function"!=typeof o||Pu(o)||void 0!==o.defaultProps||null!==n.compare||void 0!==n.defaultProps?((e=Ou(n.type,null,r,t,t.mode,a)).ref=t.ref,e.return=t,t.child=e):(t.tag=15,t.type=o,Sl(e,t,o,r,a))}if(o=e.child,!(e.lanes&a)){var i=o.memoizedProps;if((n=null!==(n=n.compare)?n:sr)(i,r)&&e.ref===t.ref)return Gl(e,t,a)}return t.flags|=1,(e=Ru(o,r)).ref=t.ref,e.return=t,t.child=e}function Sl(e,t,n,r,a){if(null!==e){var o=e.memoizedProps;if(sr(o,r)&&e.ref===t.ref){if(vl=!1,t.pendingProps=r=o,!(e.lanes&a))return t.lanes=e.lanes,Gl(e,t,a);131072&e.flags&&(vl=!0)}}return _l(e,t,n,r,a)}function El(e,t,n){var r=t.pendingProps,a=r.children,o=null!==e?e.memoizedState:null;if("hidden"===r.mode)if(1&t.mode){if(!(1073741824&n))return e=null!==o?o.baseLanes|n:n,t.lanes=t.childLanes=1073741824,t.memoizedState={baseLanes:e,cachePool:null,transitions:null},t.updateQueue=null,_a(Rs,Ps),Ps|=e,null;t.memoizedState={baseLanes:0,cachePool:null,transitions:null},r=null!==o?o.baseLanes:n,_a(Rs,Ps),Ps|=r}else t.memoizedState={baseLanes:0,cachePool:null,transitions:null},_a(Rs,Ps),Ps|=n;else null!==o?(r=o.baseLanes|n,t.memoizedState=null):r=n,_a(Rs,Ps),Ps|=r;return wl(e,t,a,n),t.child}function Cl(e,t){var n=t.ref;(null===e&&null!==n||null!==e&&e.ref!==n)&&(t.flags|=512,t.flags|=2097152)}function _l(e,t,n,r,a){var o=Pa(n)?Na:Ta.current;return o=La(t,o),No(t,a),n=gi(e,t,n,r,o,a),r=yi(),null===e||vl?(ao&&r&&eo(t),t.flags|=1,wl(e,t,n,a),t.child):(t.updateQueue=e.updateQueue,t.flags&=-2053,e.lanes&=~a,Gl(e,t,a))}function Al(e,t,n,r,a){if(Pa(n)){var o=!0;Da(t)}else o=!1;if(No(t,a),null===t.stateNode)ql(e,t),il(t,n,r),sl(t,n,r,a),r=!0;else if(null===e){var i=t.stateNode,l=t.memoizedProps;i.props=l;var s=i.context,u=n.contextType;"object"==typeof u&&null!==u?u=Lo(u):u=La(t,u=Pa(n)?Na:Ta.current);var c=n.getDerivedStateFromProps,d="function"==typeof c||"function"==typeof i.getSnapshotBeforeUpdate;d||"function"!=typeof i.UNSAFE_componentWillReceiveProps&&"function"!=typeof i.componentWillReceiveProps||(l!==r||s!==u)&&ll(t,i,r,u),Do=!1;var p=t.memoizedState;i.state=p,qo(t,r,i,a),s=t.memoizedState,l!==r||p!==s||ja.current||Do?("function"==typeof c&&(rl(t,n,c,r),s=t.memoizedState),(l=Do||ol(t,n,l,r,p,s,u))?(d||"function"!=typeof i.UNSAFE_componentWillMount&&"function"!=typeof i.componentWillMount||("function"==typeof i.componentWillMount&&i.componentWillMount(),"function"==typeof i.UNSAFE_componentWillMount&&i.UNSAFE_componentWillMount()),"function"==typeof i.componentDidMount&&(t.flags|=4194308)):("function"==typeof i.componentDidMount&&(t.flags|=4194308),t.memoizedProps=r,t.memoizedState=s),i.props=r,i.state=s,i.context=u,r=l):("function"==typeof i.componentDidMount&&(t.flags|=4194308),r=!1)}else{i=t.stateNode,Fo(e,t),l=t.memoizedProps,u=t.type===t.elementType?l:nl(t.type,l),i.props=u,d=t.pendingProps,p=i.context,"object"==typeof(s=n.contextType)&&null!==s?s=Lo(s):s=La(t,s=Pa(n)?Na:Ta.current);var f=n.getDerivedStateFromProps;(c="function"==typeof f||"function"==typeof i.getSnapshotBeforeUpdate)||"function"!=typeof i.UNSAFE_componentWillReceiveProps&&"function"!=typeof i.componentWillReceiveProps||(l!==d||p!==s)&&ll(t,i,r,s),Do=!1,p=t.memoizedState,i.state=p,qo(t,r,i,a);var m=t.memoizedState;l!==d||p!==m||ja.current||Do?("function"==typeof f&&(rl(t,n,f,r),m=t.memoizedState),(u=Do||ol(t,n,u,r,p,m,s)||!1)?(c||"function"!=typeof i.UNSAFE_componentWillUpdate&&"function"!=typeof i.componentWillUpdate||("function"==typeof i.componentWillUpdate&&i.componentWillUpdate(r,m,s),"function"==typeof i.UNSAFE_componentWillUpdate&&i.UNSAFE_componentWillUpdate(r,m,s)),"function"==typeof i.componentDidUpdate&&(t.flags|=4),"function"==typeof i.getSnapshotBeforeUpdate&&(t.flags|=1024)):("function"!=typeof i.componentDidUpdate||l===e.memoizedProps&&p===e.memoizedState||(t.flags|=4),"function"!=typeof i.getSnapshotBeforeUpdate||l===e.memoizedProps&&p===e.memoizedState||(t.flags|=1024),t.memoizedProps=r,t.memoizedState=m),i.props=r,i.state=m,i.context=s,r=u):("function"!=typeof i.componentDidUpdate||l===e.memoizedProps&&p===e.memoizedState||(t.flags|=4),"function"!=typeof i.getSnapshotBeforeUpdate||l===e.memoizedProps&&p===e.memoizedState||(t.flags|=1024),r=!1)}return Tl(e,t,n,r,o,a)}function Tl(e,t,n,r,a,o){Cl(e,t);var i=!!(128&t.flags);if(!r&&!i)return a&&Ma(t,n,!1),Gl(e,t,o);r=t.stateNode,bl.current=t;var l=i&&"function"!=typeof n.getDerivedStateFromError?null:r.render();return t.flags|=1,null!==e&&i?(t.child=ko(t,e.child,null,o),t.child=ko(t,null,l,o)):wl(e,t,l,o),t.memoizedState=r.state,a&&Ma(t,n,!0),t.child}function jl(e){var t=e.stateNode;t.pendingContext?Oa(0,t.pendingContext,t.pendingContext!==t.context):t.context&&Oa(0,t.context,!1),Yo(e,t.containerInfo)}function Nl(e,t,n,r,a){return mo(),ho(a),t.flags|=256,wl(e,t,n,r),t.child}var Ll,Pl,Rl,Ol,Il={dehydrated:null,treeContext:null,retryLane:0};function Dl(e){return{baseLanes:e,cachePool:null,transitions:null}}function Ml(e,t,n){var r,a=t.pendingProps,i=ei.current,l=!1,s=!!(128&t.flags);if((r=s)||(r=(null===e||null!==e.memoizedState)&&!!(2&i)),r?(l=!0,t.flags&=-129):null!==e&&null===e.memoizedState||(i|=1),_a(ei,1&i),null===e)return uo(t),null!==(e=t.memoizedState)&&null!==(e=e.dehydrated)?(1&t.mode?"$!"===e.data?t.lanes=8:t.lanes=1073741824:t.lanes=1,null):(s=a.children,e=a.fallback,l?(a=t.mode,l=t.child,s={mode:"hidden",children:s},1&a||null===l?l=Du(s,a,0,null):(l.childLanes=0,l.pendingProps=s),e=Iu(e,a,n,null),l.return=t,e.return=t,l.sibling=e,t.child=l,t.child.memoizedState=Dl(n),t.memoizedState=Il,e):Fl(t,s));if(null!==(i=e.memoizedState)&&null!==(r=i.dehydrated))return function(e,t,n,r,a,i,l){if(n)return 256&t.flags?(t.flags&=-257,zl(e,t,l,r=cl(Error(o(422))))):null!==t.memoizedState?(t.child=e.child,t.flags|=128,null):(i=r.fallback,a=t.mode,r=Du({mode:"visible",children:r.children},a,0,null),(i=Iu(i,a,l,null)).flags|=2,r.return=t,i.return=t,r.sibling=i,t.child=r,1&t.mode&&ko(t,e.child,null,l),t.child.memoizedState=Dl(l),t.memoizedState=Il,i);if(!(1&t.mode))return zl(e,t,l,null);if("$!"===a.data){if(r=a.nextSibling&&a.nextSibling.dataset)var s=r.dgst;return r=s,zl(e,t,l,r=cl(i=Error(o(419)),r,void 0))}if(s=!!(l&e.childLanes),vl||s){if(null!==(r=js)){switch(l&-l){case 4:a=2;break;case 16:a=8;break;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:a=32;break;case 536870912:a=268435456;break;default:a=0}0!==(a=a&(r.suspendedLanes|l)?0:a)&&a!==i.retryLane&&(i.retryLane=a,Io(e,a),nu(r,e,a,-1))}return hu(),zl(e,t,l,r=cl(Error(o(421))))}return"$?"===a.data?(t.flags|=128,t.child=e.child,t=Au.bind(null,e),a._reactRetry=t,null):(e=i.treeContext,ro=ua(a.nextSibling),no=t,ao=!0,oo=null,null!==e&&(Wa[Qa++]=Ya,Wa[Qa++]=Za,Wa[Qa++]=Ka,Ya=e.id,Za=e.overflow,Ka=t),t=Fl(t,r.children),t.flags|=4096,t)}(e,t,s,a,r,i,n);if(l){l=a.fallback,s=t.mode,r=(i=e.child).sibling;var u={mode:"hidden",children:a.children};return 1&s||t.child===i?(a=Ru(i,u)).subtreeFlags=14680064&i.subtreeFlags:((a=t.child).childLanes=0,a.pendingProps=u,t.deletions=null),null!==r?l=Ru(r,l):(l=Iu(l,s,n,null)).flags|=2,l.return=t,a.return=t,a.sibling=l,t.child=a,a=l,l=t.child,s=null===(s=e.child.memoizedState)?Dl(n):{baseLanes:s.baseLanes|n,cachePool:null,transitions:s.transitions},l.memoizedState=s,l.childLanes=e.childLanes&~n,t.memoizedState=Il,a}return e=(l=e.child).sibling,a=Ru(l,{mode:"visible",children:a.children}),!(1&t.mode)&&(a.lanes=n),a.return=t,a.sibling=null,null!==e&&(null===(n=t.deletions)?(t.deletions=[e],t.flags|=16):n.push(e)),t.child=a,t.memoizedState=null,a}function Fl(e,t){return(t=Du({mode:"visible",children:t},e.mode,0,null)).return=e,e.child=t}function zl(e,t,n,r){return null!==r&&ho(r),ko(t,e.child,null,n),(e=Fl(t,t.pendingProps.children)).flags|=2,t.memoizedState=null,e}function Bl(e,t,n){e.lanes|=t;var r=e.alternate;null!==r&&(r.lanes|=t),jo(e.return,t,n)}function Ul(e,t,n,r,a){var o=e.memoizedState;null===o?e.memoizedState={isBackwards:t,rendering:null,renderingStartTime:0,last:r,tail:n,tailMode:a}:(o.isBackwards=t,o.rendering=null,o.renderingStartTime=0,o.last=r,o.tail=n,o.tailMode=a)}function $l(e,t,n){var r=t.pendingProps,a=r.revealOrder,o=r.tail;if(wl(e,t,r.children,n),2&(r=ei.current))r=1&r|2,t.flags|=128;else{if(null!==e&&128&e.flags)e:for(e=t.child;null!==e;){if(13===e.tag)null!==e.memoizedState&&Bl(e,n,t);else if(19===e.tag)Bl(e,n,t);else if(null!==e.child){e.child.return=e,e=e.child;continue}if(e===t)break e;for(;null===e.sibling;){if(null===e.return||e.return===t)break e;e=e.return}e.sibling.return=e.return,e=e.sibling}r&=1}if(_a(ei,r),1&t.mode)switch(a){case"forwards":for(n=t.child,a=null;null!==n;)null!==(e=n.alternate)&&null===ti(e)&&(a=n),n=n.sibling;null===(n=a)?(a=t.child,t.child=null):(a=n.sibling,n.sibling=null),Ul(t,!1,a,n,o);break;case"backwards":for(n=null,a=t.child,t.child=null;null!==a;){if(null!==(e=a.alternate)&&null===ti(e)){t.child=a;break}e=a.sibling,a.sibling=n,n=a,a=e}Ul(t,!0,n,null,o);break;case"together":Ul(t,!1,null,null,void 0);break;default:t.memoizedState=null}else t.memoizedState=null;return t.child}function ql(e,t){!(1&t.mode)&&null!==e&&(e.alternate=null,t.alternate=null,t.flags|=2)}function Gl(e,t,n){if(null!==e&&(t.dependencies=e.dependencies),Ds|=t.lanes,!(n&t.childLanes))return null;if(null!==e&&t.child!==e.child)throw Error(o(153));if(null!==t.child){for(n=Ru(e=t.child,e.pendingProps),t.child=n,n.return=t;null!==e.sibling;)e=e.sibling,(n=n.sibling=Ru(e,e.pendingProps)).return=t;n.sibling=null}return t.child}function Hl(e,t){if(!ao)switch(e.tailMode){case"hidden":t=e.tail;for(var n=null;null!==t;)null!==t.alternate&&(n=t),t=t.sibling;null===n?e.tail=null:n.sibling=null;break;case"collapsed":n=e.tail;for(var r=null;null!==n;)null!==n.alternate&&(r=n),n=n.sibling;null===r?t||null===e.tail?e.tail=null:e.tail.sibling=null:r.sibling=null}}function Vl(e){var t=null!==e.alternate&&e.alternate.child===e.child,n=0,r=0;if(t)for(var a=e.child;null!==a;)n|=a.lanes|a.childLanes,r|=14680064&a.subtreeFlags,r|=14680064&a.flags,a.return=e,a=a.sibling;else for(a=e.child;null!==a;)n|=a.lanes|a.childLanes,r|=a.subtreeFlags,r|=a.flags,a.return=e,a=a.sibling;return e.subtreeFlags|=r,e.childLanes=n,t}function Wl(e,t,n){var r=t.pendingProps;switch(to(t),t.tag){case 2:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return Vl(t),null;case 1:case 17:return Pa(t.type)&&Ra(),Vl(t),null;case 3:return r=t.stateNode,Zo(),Ca(ja),Ca(Ta),ri(),r.pendingContext&&(r.context=r.pendingContext,r.pendingContext=null),null!==e&&null!==e.child||(po(t)?t.flags|=4:null===e||e.memoizedState.isDehydrated&&!(256&t.flags)||(t.flags|=1024,null!==oo&&(iu(oo),oo=null))),Pl(e,t),Vl(t),null;case 5:Jo(t);var a=Ko(Qo.current);if(n=t.type,null!==e&&null!=t.stateNode)Rl(e,t,n,r,a),e.ref!==t.ref&&(t.flags|=512,t.flags|=2097152);else{if(!r){if(null===t.stateNode)throw Error(o(166));return Vl(t),null}if(e=Ko(Vo.current),po(t)){r=t.stateNode,n=t.type;var i=t.memoizedProps;switch(r[pa]=t,r[fa]=i,e=!!(1&t.mode),n){case"dialog":zr("cancel",r),zr("close",r);break;case"iframe":case"object":case"embed":zr("load",r);break;case"video":case"audio":for(a=0;a<Ir.length;a++)zr(Ir[a],r);break;case"source":zr("error",r);break;case"img":case"image":case"link":zr("error",r),zr("load",r);break;case"details":zr("toggle",r);break;case"input":Y(r,i),zr("invalid",r);break;case"select":r._wrapperState={wasMultiple:!!i.multiple},zr("invalid",r);break;case"textarea":ae(r,i),zr("invalid",r)}for(var s in be(n,i),a=null,i)if(i.hasOwnProperty(s)){var u=i[s];"children"===s?"string"==typeof u?r.textContent!==u&&(!0!==i.suppressHydrationWarning&&Xr(r.textContent,u,e),a=["children",u]):"number"==typeof u&&r.textContent!==""+u&&(!0!==i.suppressHydrationWarning&&Xr(r.textContent,u,e),a=["children",""+u]):l.hasOwnProperty(s)&&null!=u&&"onScroll"===s&&zr("scroll",r)}switch(n){case"input":V(r),J(r,i,!0);break;case"textarea":V(r),ie(r);break;case"select":case"option":break;default:"function"==typeof i.onClick&&(r.onclick=Jr)}r=a,t.updateQueue=r,null!==r&&(t.flags|=4)}else{s=9===a.nodeType?a:a.ownerDocument,"http://www.w3.org/1999/xhtml"===e&&(e=le(n)),"http://www.w3.org/1999/xhtml"===e?"script"===n?((e=s.createElement("div")).innerHTML="<script><\/script>",e=e.removeChild(e.firstChild)):"string"==typeof r.is?e=s.createElement(n,{is:r.is}):(e=s.createElement(n),"select"===n&&(s=e,r.multiple?s.multiple=!0:r.size&&(s.size=r.size))):e=s.createElementNS(e,n),e[pa]=t,e[fa]=r,Ll(e,t,!1,!1),t.stateNode=e;e:{switch(s=ve(n,r),n){case"dialog":zr("cancel",e),zr("close",e),a=r;break;case"iframe":case"object":case"embed":zr("load",e),a=r;break;case"video":case"audio":for(a=0;a<Ir.length;a++)zr(Ir[a],e);a=r;break;case"source":zr("error",e),a=r;break;case"img":case"image":case"link":zr("error",e),zr("load",e),a=r;break;case"details":zr("toggle",e),a=r;break;case"input":Y(e,r),a=K(e,r),zr("invalid",e);break;case"option":default:a=r;break;case"select":e._wrapperState={wasMultiple:!!r.multiple},a=M({},r,{value:void 0}),zr("invalid",e);break;case"textarea":ae(e,r),a=re(e,r),zr("invalid",e)}for(i in be(n,a),u=a)if(u.hasOwnProperty(i)){var c=u[i];"style"===i?ge(e,c):"dangerouslySetInnerHTML"===i?null!=(c=c?c.__html:void 0)&&de(e,c):"children"===i?"string"==typeof c?("textarea"!==n||""!==c)&&pe(e,c):"number"==typeof c&&pe(e,""+c):"suppressContentEditableWarning"!==i&&"suppressHydrationWarning"!==i&&"autoFocus"!==i&&(l.hasOwnProperty(i)?null!=c&&"onScroll"===i&&zr("scroll",e):null!=c&&v(e,i,c,s))}switch(n){case"input":V(e),J(e,r,!1);break;case"textarea":V(e),ie(e);break;case"option":null!=r.value&&e.setAttribute("value",""+G(r.value));break;case"select":e.multiple=!!r.multiple,null!=(i=r.value)?ne(e,!!r.multiple,i,!1):null!=r.defaultValue&&ne(e,!!r.multiple,r.defaultValue,!0);break;default:"function"==typeof a.onClick&&(e.onclick=Jr)}switch(n){case"button":case"input":case"select":case"textarea":r=!!r.autoFocus;break e;case"img":r=!0;break e;default:r=!1}}r&&(t.flags|=4)}null!==t.ref&&(t.flags|=512,t.flags|=2097152)}return Vl(t),null;case 6:if(e&&null!=t.stateNode)Ol(e,t,e.memoizedProps,r);else{if("string"!=typeof r&&null===t.stateNode)throw Error(o(166));if(n=Ko(Qo.current),Ko(Vo.current),po(t)){if(r=t.stateNode,n=t.memoizedProps,r[pa]=t,(i=r.nodeValue!==n)&&null!==(e=no))switch(e.tag){case 3:Xr(r.nodeValue,n,!!(1&e.mode));break;case 5:!0!==e.memoizedProps.suppressHydrationWarning&&Xr(r.nodeValue,n,!!(1&e.mode))}i&&(t.flags|=4)}else(r=(9===n.nodeType?n:n.ownerDocument).createTextNode(r))[pa]=t,t.stateNode=r}return Vl(t),null;case 13:if(Ca(ei),r=t.memoizedState,null===e||null!==e.memoizedState&&null!==e.memoizedState.dehydrated){if(ao&&null!==ro&&1&t.mode&&!(128&t.flags))fo(),mo(),t.flags|=98560,i=!1;else if(i=po(t),null!==r&&null!==r.dehydrated){if(null===e){if(!i)throw Error(o(318));if(!(i=null!==(i=t.memoizedState)?i.dehydrated:null))throw Error(o(317));i[pa]=t}else mo(),!(128&t.flags)&&(t.memoizedState=null),t.flags|=4;Vl(t),i=!1}else null!==oo&&(iu(oo),oo=null),i=!0;if(!i)return 65536&t.flags?t:null}return 128&t.flags?(t.lanes=n,t):((r=null!==r)!==(null!==e&&null!==e.memoizedState)&&r&&(t.child.flags|=8192,1&t.mode&&(null===e||1&ei.current?0===Os&&(Os=3):hu())),null!==t.updateQueue&&(t.flags|=4),Vl(t),null);case 4:return Zo(),Pl(e,t),null===e&&$r(t.stateNode.containerInfo),Vl(t),null;case 10:return To(t.type._context),Vl(t),null;case 19:if(Ca(ei),null===(i=t.memoizedState))return Vl(t),null;if(r=!!(128&t.flags),null===(s=i.rendering))if(r)Hl(i,!1);else{if(0!==Os||null!==e&&128&e.flags)for(e=t.child;null!==e;){if(null!==(s=ti(e))){for(t.flags|=128,Hl(i,!1),null!==(r=s.updateQueue)&&(t.updateQueue=r,t.flags|=4),t.subtreeFlags=0,r=n,n=t.child;null!==n;)e=r,(i=n).flags&=14680066,null===(s=i.alternate)?(i.childLanes=0,i.lanes=e,i.child=null,i.subtreeFlags=0,i.memoizedProps=null,i.memoizedState=null,i.updateQueue=null,i.dependencies=null,i.stateNode=null):(i.childLanes=s.childLanes,i.lanes=s.lanes,i.child=s.child,i.subtreeFlags=0,i.deletions=null,i.memoizedProps=s.memoizedProps,i.memoizedState=s.memoizedState,i.updateQueue=s.updateQueue,i.type=s.type,e=s.dependencies,i.dependencies=null===e?null:{lanes:e.lanes,firstContext:e.firstContext}),n=n.sibling;return _a(ei,1&ei.current|2),t.child}e=e.sibling}null!==i.tail&&Ze()>$s&&(t.flags|=128,r=!0,Hl(i,!1),t.lanes=4194304)}else{if(!r)if(null!==(e=ti(s))){if(t.flags|=128,r=!0,null!==(n=e.updateQueue)&&(t.updateQueue=n,t.flags|=4),Hl(i,!0),null===i.tail&&"hidden"===i.tailMode&&!s.alternate&&!ao)return Vl(t),null}else 2*Ze()-i.renderingStartTime>$s&&1073741824!==n&&(t.flags|=128,r=!0,Hl(i,!1),t.lanes=4194304);i.isBackwards?(s.sibling=t.child,t.child=s):(null!==(n=i.last)?n.sibling=s:t.child=s,i.last=s)}return null!==i.tail?(t=i.tail,i.rendering=t,i.tail=t.sibling,i.renderingStartTime=Ze(),t.sibling=null,n=ei.current,_a(ei,r?1&n|2:1&n),t):(Vl(t),null);case 22:case 23:return du(),r=null!==t.memoizedState,null!==e&&null!==e.memoizedState!==r&&(t.flags|=8192),r&&1&t.mode?!!(1073741824&Ps)&&(Vl(t),6&t.subtreeFlags&&(t.flags|=8192)):Vl(t),null;case 24:case 25:return null}throw Error(o(156,t.tag))}function Ql(e,t){switch(to(t),t.tag){case 1:return Pa(t.type)&&Ra(),65536&(e=t.flags)?(t.flags=-65537&e|128,t):null;case 3:return Zo(),Ca(ja),Ca(Ta),ri(),65536&(e=t.flags)&&!(128&e)?(t.flags=-65537&e|128,t):null;case 5:return Jo(t),null;case 13:if(Ca(ei),null!==(e=t.memoizedState)&&null!==e.dehydrated){if(null===t.alternate)throw Error(o(340));mo()}return 65536&(e=t.flags)?(t.flags=-65537&e|128,t):null;case 19:return Ca(ei),null;case 4:return Zo(),null;case 10:return To(t.type._context),null;case 22:case 23:return du(),null;default:return null}}Ll=function(e,t){for(var n=t.child;null!==n;){if(5===n.tag||6===n.tag)e.appendChild(n.stateNode);else if(4!==n.tag&&null!==n.child){n.child.return=n,n=n.child;continue}if(n===t)break;for(;null===n.sibling;){if(null===n.return||n.return===t)return;n=n.return}n.sibling.return=n.return,n=n.sibling}},Pl=function(){},Rl=function(e,t,n,r){var a=e.memoizedProps;if(a!==r){e=t.stateNode,Ko(Vo.current);var o,i=null;switch(n){case"input":a=K(e,a),r=K(e,r),i=[];break;case"select":a=M({},a,{value:void 0}),r=M({},r,{value:void 0}),i=[];break;case"textarea":a=re(e,a),r=re(e,r),i=[];break;default:"function"!=typeof a.onClick&&"function"==typeof r.onClick&&(e.onclick=Jr)}for(c in be(n,r),n=null,a)if(!r.hasOwnProperty(c)&&a.hasOwnProperty(c)&&null!=a[c])if("style"===c){var s=a[c];for(o in s)s.hasOwnProperty(o)&&(n||(n={}),n[o]="")}else"dangerouslySetInnerHTML"!==c&&"children"!==c&&"suppressContentEditableWarning"!==c&&"suppressHydrationWarning"!==c&&"autoFocus"!==c&&(l.hasOwnProperty(c)?i||(i=[]):(i=i||[]).push(c,null));for(c in r){var u=r[c];if(s=null!=a?a[c]:void 0,r.hasOwnProperty(c)&&u!==s&&(null!=u||null!=s))if("style"===c)if(s){for(o in s)!s.hasOwnProperty(o)||u&&u.hasOwnProperty(o)||(n||(n={}),n[o]="");for(o in u)u.hasOwnProperty(o)&&s[o]!==u[o]&&(n||(n={}),n[o]=u[o])}else n||(i||(i=[]),i.push(c,n)),n=u;else"dangerouslySetInnerHTML"===c?(u=u?u.__html:void 0,s=s?s.__html:void 0,null!=u&&s!==u&&(i=i||[]).push(c,u)):"children"===c?"string"!=typeof u&&"number"!=typeof u||(i=i||[]).push(c,""+u):"suppressContentEditableWarning"!==c&&"suppressHydrationWarning"!==c&&(l.hasOwnProperty(c)?(null!=u&&"onScroll"===c&&zr("scroll",e),i||s===u||(i=[])):(i=i||[]).push(c,u))}n&&(i=i||[]).push("style",n);var c=i;(t.updateQueue=c)&&(t.flags|=4)}},Ol=function(e,t,n,r){n!==r&&(t.flags|=4)};var Kl=!1,Yl=!1,Zl="function"==typeof WeakSet?WeakSet:Set,Xl=null;function Jl(e,t){var n=e.ref;if(null!==n)if("function"==typeof n)try{n(null)}catch(r){Eu(e,t,r)}else n.current=null}function es(e,t,n){try{n()}catch(r){Eu(e,t,r)}}var ts=!1;function ns(e,t,n){var r=t.updateQueue;if(null!==(r=null!==r?r.lastEffect:null)){var a=r=r.next;do{if((a.tag&e)===e){var o=a.destroy;a.destroy=void 0,void 0!==o&&es(t,n,o)}a=a.next}while(a!==r)}}function rs(e,t){if(null!==(t=null!==(t=t.updateQueue)?t.lastEffect:null)){var n=t=t.next;do{if((n.tag&e)===e){var r=n.create;n.destroy=r()}n=n.next}while(n!==t)}}function as(e){var t=e.ref;if(null!==t){var n=e.stateNode;e.tag,e=n,"function"==typeof t?t(e):t.current=e}}function os(e){var t=e.alternate;null!==t&&(e.alternate=null,os(t)),e.child=null,e.deletions=null,e.sibling=null,5===e.tag&&(null!==(t=e.stateNode)&&(delete t[pa],delete t[fa],delete t[ha],delete t[ga],delete t[ya])),e.stateNode=null,e.return=null,e.dependencies=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.stateNode=null,e.updateQueue=null}function is(e){return 5===e.tag||3===e.tag||4===e.tag}function ls(e){e:for(;;){for(;null===e.sibling;){if(null===e.return||is(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;5!==e.tag&&6!==e.tag&&18!==e.tag;){if(2&e.flags)continue e;if(null===e.child||4===e.tag)continue e;e.child.return=e,e=e.child}if(!(2&e.flags))return e.stateNode}}function ss(e,t,n){var r=e.tag;if(5===r||6===r)e=e.stateNode,t?8===n.nodeType?n.parentNode.insertBefore(e,t):n.insertBefore(e,t):(8===n.nodeType?(t=n.parentNode).insertBefore(e,n):(t=n).appendChild(e),null!=(n=n._reactRootContainer)||null!==t.onclick||(t.onclick=Jr));else if(4!==r&&null!==(e=e.child))for(ss(e,t,n),e=e.sibling;null!==e;)ss(e,t,n),e=e.sibling}function us(e,t,n){var r=e.tag;if(5===r||6===r)e=e.stateNode,t?n.insertBefore(e,t):n.appendChild(e);else if(4!==r&&null!==(e=e.child))for(us(e,t,n),e=e.sibling;null!==e;)us(e,t,n),e=e.sibling}var cs=null,ds=!1;function ps(e,t,n){for(n=n.child;null!==n;)fs(e,t,n),n=n.sibling}function fs(e,t,n){if(ot&&"function"==typeof ot.onCommitFiberUnmount)try{ot.onCommitFiberUnmount(at,n)}catch(l){}switch(n.tag){case 5:Yl||Jl(n,t);case 6:var r=cs,a=ds;cs=null,ps(e,t,n),ds=a,null!==(cs=r)&&(ds?(e=cs,n=n.stateNode,8===e.nodeType?e.parentNode.removeChild(n):e.removeChild(n)):cs.removeChild(n.stateNode));break;case 18:null!==cs&&(ds?(e=cs,n=n.stateNode,8===e.nodeType?sa(e.parentNode,n):1===e.nodeType&&sa(e,n),$t(e)):sa(cs,n.stateNode));break;case 4:r=cs,a=ds,cs=n.stateNode.containerInfo,ds=!0,ps(e,t,n),cs=r,ds=a;break;case 0:case 11:case 14:case 15:if(!Yl&&(null!==(r=n.updateQueue)&&null!==(r=r.lastEffect))){a=r=r.next;do{var o=a,i=o.destroy;o=o.tag,void 0!==i&&(2&o||4&o)&&es(n,t,i),a=a.next}while(a!==r)}ps(e,t,n);break;case 1:if(!Yl&&(Jl(n,t),"function"==typeof(r=n.stateNode).componentWillUnmount))try{r.props=n.memoizedProps,r.state=n.memoizedState,r.componentWillUnmount()}catch(l){Eu(n,t,l)}ps(e,t,n);break;case 21:ps(e,t,n);break;case 22:1&n.mode?(Yl=(r=Yl)||null!==n.memoizedState,ps(e,t,n),Yl=r):ps(e,t,n);break;default:ps(e,t,n)}}function ms(e){var t=e.updateQueue;if(null!==t){e.updateQueue=null;var n=e.stateNode;null===n&&(n=e.stateNode=new Zl),t.forEach((function(t){var r=Tu.bind(null,e,t);n.has(t)||(n.add(t),t.then(r,r))}))}}function hs(e,t){var n=t.deletions;if(null!==n)for(var r=0;r<n.length;r++){var a=n[r];try{var i=e,l=t,s=l;e:for(;null!==s;){switch(s.tag){case 5:cs=s.stateNode,ds=!1;break e;case 3:case 4:cs=s.stateNode.containerInfo,ds=!0;break e}s=s.return}if(null===cs)throw Error(o(160));fs(i,l,a),cs=null,ds=!1;var u=a.alternate;null!==u&&(u.return=null),a.return=null}catch(c){Eu(a,t,c)}}if(12854&t.subtreeFlags)for(t=t.child;null!==t;)gs(t,e),t=t.sibling}function gs(e,t){var n=e.alternate,r=e.flags;switch(e.tag){case 0:case 11:case 14:case 15:if(hs(t,e),ys(e),4&r){try{ns(3,e,e.return),rs(3,e)}catch(g){Eu(e,e.return,g)}try{ns(5,e,e.return)}catch(g){Eu(e,e.return,g)}}break;case 1:hs(t,e),ys(e),512&r&&null!==n&&Jl(n,n.return);break;case 5:if(hs(t,e),ys(e),512&r&&null!==n&&Jl(n,n.return),32&e.flags){var a=e.stateNode;try{pe(a,"")}catch(g){Eu(e,e.return,g)}}if(4&r&&null!=(a=e.stateNode)){var i=e.memoizedProps,l=null!==n?n.memoizedProps:i,s=e.type,u=e.updateQueue;if(e.updateQueue=null,null!==u)try{"input"===s&&"radio"===i.type&&null!=i.name&&Z(a,i),ve(s,l);var c=ve(s,i);for(l=0;l<u.length;l+=2){var d=u[l],p=u[l+1];"style"===d?ge(a,p):"dangerouslySetInnerHTML"===d?de(a,p):"children"===d?pe(a,p):v(a,d,p,c)}switch(s){case"input":X(a,i);break;case"textarea":oe(a,i);break;case"select":var f=a._wrapperState.wasMultiple;a._wrapperState.wasMultiple=!!i.multiple;var m=i.value;null!=m?ne(a,!!i.multiple,m,!1):f!==!!i.multiple&&(null!=i.defaultValue?ne(a,!!i.multiple,i.defaultValue,!0):ne(a,!!i.multiple,i.multiple?[]:"",!1))}a[fa]=i}catch(g){Eu(e,e.return,g)}}break;case 6:if(hs(t,e),ys(e),4&r){if(null===e.stateNode)throw Error(o(162));a=e.stateNode,i=e.memoizedProps;try{a.nodeValue=i}catch(g){Eu(e,e.return,g)}}break;case 3:if(hs(t,e),ys(e),4&r&&null!==n&&n.memoizedState.isDehydrated)try{$t(t.containerInfo)}catch(g){Eu(e,e.return,g)}break;case 4:default:hs(t,e),ys(e);break;case 13:hs(t,e),ys(e),8192&(a=e.child).flags&&(i=null!==a.memoizedState,a.stateNode.isHidden=i,!i||null!==a.alternate&&null!==a.alternate.memoizedState||(Us=Ze())),4&r&&ms(e);break;case 22:if(d=null!==n&&null!==n.memoizedState,1&e.mode?(Yl=(c=Yl)||d,hs(t,e),Yl=c):hs(t,e),ys(e),8192&r){if(c=null!==e.memoizedState,(e.stateNode.isHidden=c)&&!d&&1&e.mode)for(Xl=e,d=e.child;null!==d;){for(p=Xl=d;null!==Xl;){switch(m=(f=Xl).child,f.tag){case 0:case 11:case 14:case 15:ns(4,f,f.return);break;case 1:Jl(f,f.return);var h=f.stateNode;if("function"==typeof h.componentWillUnmount){r=f,n=f.return;try{t=r,h.props=t.memoizedProps,h.state=t.memoizedState,h.componentWillUnmount()}catch(g){Eu(r,n,g)}}break;case 5:Jl(f,f.return);break;case 22:if(null!==f.memoizedState){ks(p);continue}}null!==m?(m.return=f,Xl=m):ks(p)}d=d.sibling}e:for(d=null,p=e;;){if(5===p.tag){if(null===d){d=p;try{a=p.stateNode,c?"function"==typeof(i=a.style).setProperty?i.setProperty("display","none","important"):i.display="none":(s=p.stateNode,l=null!=(u=p.memoizedProps.style)&&u.hasOwnProperty("display")?u.display:null,s.style.display=he("display",l))}catch(g){Eu(e,e.return,g)}}}else if(6===p.tag){if(null===d)try{p.stateNode.nodeValue=c?"":p.memoizedProps}catch(g){Eu(e,e.return,g)}}else if((22!==p.tag&&23!==p.tag||null===p.memoizedState||p===e)&&null!==p.child){p.child.return=p,p=p.child;continue}if(p===e)break e;for(;null===p.sibling;){if(null===p.return||p.return===e)break e;d===p&&(d=null),p=p.return}d===p&&(d=null),p.sibling.return=p.return,p=p.sibling}}break;case 19:hs(t,e),ys(e),4&r&&ms(e);case 21:}}function ys(e){var t=e.flags;if(2&t){try{e:{for(var n=e.return;null!==n;){if(is(n)){var r=n;break e}n=n.return}throw Error(o(160))}switch(r.tag){case 5:var a=r.stateNode;32&r.flags&&(pe(a,""),r.flags&=-33),us(e,ls(e),a);break;case 3:case 4:var i=r.stateNode.containerInfo;ss(e,ls(e),i);break;default:throw Error(o(161))}}catch(l){Eu(e,e.return,l)}e.flags&=-3}4096&t&&(e.flags&=-4097)}function bs(e,t,n){Xl=e,vs(e,t,n)}function vs(e,t,n){for(var r=!!(1&e.mode);null!==Xl;){var a=Xl,o=a.child;if(22===a.tag&&r){var i=null!==a.memoizedState||Kl;if(!i){var l=a.alternate,s=null!==l&&null!==l.memoizedState||Yl;l=Kl;var u=Yl;if(Kl=i,(Yl=s)&&!u)for(Xl=a;null!==Xl;)s=(i=Xl).child,22===i.tag&&null!==i.memoizedState?xs(a):null!==s?(s.return=i,Xl=s):xs(a);for(;null!==o;)Xl=o,vs(o,t,n),o=o.sibling;Xl=a,Kl=l,Yl=u}ws(e)}else 8772&a.subtreeFlags&&null!==o?(o.return=a,Xl=o):ws(e)}}function ws(e){for(;null!==Xl;){var t=Xl;if(8772&t.flags){var n=t.alternate;try{if(8772&t.flags)switch(t.tag){case 0:case 11:case 15:Yl||rs(5,t);break;case 1:var r=t.stateNode;if(4&t.flags&&!Yl)if(null===n)r.componentDidMount();else{var a=t.elementType===t.type?n.memoizedProps:nl(t.type,n.memoizedProps);r.componentDidUpdate(a,n.memoizedState,r.__reactInternalSnapshotBeforeUpdate)}var i=t.updateQueue;null!==i&&Go(t,i,r);break;case 3:var l=t.updateQueue;if(null!==l){if(n=null,null!==t.child)switch(t.child.tag){case 5:case 1:n=t.child.stateNode}Go(t,l,n)}break;case 5:var s=t.stateNode;if(null===n&&4&t.flags){n=s;var u=t.memoizedProps;switch(t.type){case"button":case"input":case"select":case"textarea":u.autoFocus&&n.focus();break;case"img":u.src&&(n.src=u.src)}}break;case 6:case 4:case 12:case 19:case 17:case 21:case 22:case 23:case 25:break;case 13:if(null===t.memoizedState){var c=t.alternate;if(null!==c){var d=c.memoizedState;if(null!==d){var p=d.dehydrated;null!==p&&$t(p)}}}break;default:throw Error(o(163))}Yl||512&t.flags&&as(t)}catch(f){Eu(t,t.return,f)}}if(t===e){Xl=null;break}if(null!==(n=t.sibling)){n.return=t.return,Xl=n;break}Xl=t.return}}function ks(e){for(;null!==Xl;){var t=Xl;if(t===e){Xl=null;break}var n=t.sibling;if(null!==n){n.return=t.return,Xl=n;break}Xl=t.return}}function xs(e){for(;null!==Xl;){var t=Xl;try{switch(t.tag){case 0:case 11:case 15:var n=t.return;try{rs(4,t)}catch(s){Eu(t,n,s)}break;case 1:var r=t.stateNode;if("function"==typeof r.componentDidMount){var a=t.return;try{r.componentDidMount()}catch(s){Eu(t,a,s)}}var o=t.return;try{as(t)}catch(s){Eu(t,o,s)}break;case 5:var i=t.return;try{as(t)}catch(s){Eu(t,i,s)}}}catch(s){Eu(t,t.return,s)}if(t===e){Xl=null;break}var l=t.sibling;if(null!==l){l.return=t.return,Xl=l;break}Xl=t.return}}var Ss,Es=Math.ceil,Cs=w.ReactCurrentDispatcher,_s=w.ReactCurrentOwner,As=w.ReactCurrentBatchConfig,Ts=0,js=null,Ns=null,Ls=0,Ps=0,Rs=Ea(0),Os=0,Is=null,Ds=0,Ms=0,Fs=0,zs=null,Bs=null,Us=0,$s=1/0,qs=null,Gs=!1,Hs=null,Vs=null,Ws=!1,Qs=null,Ks=0,Ys=0,Zs=null,Xs=-1,Js=0;function eu(){return 6&Ts?Ze():-1!==Xs?Xs:Xs=Ze()}function tu(e){return 1&e.mode?2&Ts&&0!==Ls?Ls&-Ls:null!==go.transition?(0===Js&&(Js=ht()),Js):0!==(e=vt)?e:e=void 0===(e=window.event)?16:Yt(e.type):1}function nu(e,t,n,r){if(50<Ys)throw Ys=0,Zs=null,Error(o(185));yt(e,n,r),2&Ts&&e===js||(e===js&&(!(2&Ts)&&(Ms|=n),4===Os&&lu(e,Ls)),ru(e,r),1===n&&0===Ts&&!(1&t.mode)&&($s=Ze()+500,za&&$a()))}function ru(e,t){var n=e.callbackNode;!function(e,t){for(var n=e.suspendedLanes,r=e.pingedLanes,a=e.expirationTimes,o=e.pendingLanes;0<o;){var i=31-it(o),l=1<<i,s=a[i];-1===s?l&n&&!(l&r)||(a[i]=ft(l,t)):s<=t&&(e.expiredLanes|=l),o&=~l}}(e,t);var r=pt(e,e===js?Ls:0);if(0===r)null!==n&&Qe(n),e.callbackNode=null,e.callbackPriority=0;else if(t=r&-r,e.callbackPriority!==t){if(null!=n&&Qe(n),1===t)0===e.tag?function(e){za=!0,Ua(e)}(su.bind(null,e)):Ua(su.bind(null,e)),ia((function(){!(6&Ts)&&$a()})),n=null;else{switch(wt(r)){case 1:n=Je;break;case 4:n=et;break;case 16:default:n=tt;break;case 536870912:n=rt}n=ju(n,au.bind(null,e))}e.callbackPriority=t,e.callbackNode=n}}function au(e,t){if(Xs=-1,Js=0,6&Ts)throw Error(o(327));var n=e.callbackNode;if(xu()&&e.callbackNode!==n)return null;var r=pt(e,e===js?Ls:0);if(0===r)return null;if(30&r||r&e.expiredLanes||t)t=gu(e,r);else{t=r;var a=Ts;Ts|=2;var i=mu();for(js===e&&Ls===t||(qs=null,$s=Ze()+500,pu(e,t));;)try{bu();break}catch(s){fu(e,s)}Ao(),Cs.current=i,Ts=a,null!==Ns?t=0:(js=null,Ls=0,t=Os)}if(0!==t){if(2===t&&(0!==(a=mt(e))&&(r=a,t=ou(e,a))),1===t)throw n=Is,pu(e,0),lu(e,r),ru(e,Ze()),n;if(6===t)lu(e,r);else{if(a=e.current.alternate,!(30&r||function(e){for(var t=e;;){if(16384&t.flags){var n=t.updateQueue;if(null!==n&&null!==(n=n.stores))for(var r=0;r<n.length;r++){var a=n[r],o=a.getSnapshot;a=a.value;try{if(!lr(o(),a))return!1}catch(l){return!1}}}if(n=t.child,16384&t.subtreeFlags&&null!==n)n.return=t,t=n;else{if(t===e)break;for(;null===t.sibling;){if(null===t.return||t.return===e)return!0;t=t.return}t.sibling.return=t.return,t=t.sibling}}return!0}(a)||(t=gu(e,r),2===t&&(i=mt(e),0!==i&&(r=i,t=ou(e,i))),1!==t)))throw n=Is,pu(e,0),lu(e,r),ru(e,Ze()),n;switch(e.finishedWork=a,e.finishedLanes=r,t){case 0:case 1:throw Error(o(345));case 2:case 5:ku(e,Bs,qs);break;case 3:if(lu(e,r),(130023424&r)===r&&10<(t=Us+500-Ze())){if(0!==pt(e,0))break;if(((a=e.suspendedLanes)&r)!==r){eu(),e.pingedLanes|=e.suspendedLanes&a;break}e.timeoutHandle=ra(ku.bind(null,e,Bs,qs),t);break}ku(e,Bs,qs);break;case 4:if(lu(e,r),(4194240&r)===r)break;for(t=e.eventTimes,a=-1;0<r;){var l=31-it(r);i=1<<l,(l=t[l])>a&&(a=l),r&=~i}if(r=a,10<(r=(120>(r=Ze()-r)?120:480>r?480:1080>r?1080:1920>r?1920:3e3>r?3e3:4320>r?4320:1960*Es(r/1960))-r)){e.timeoutHandle=ra(ku.bind(null,e,Bs,qs),r);break}ku(e,Bs,qs);break;default:throw Error(o(329))}}}return ru(e,Ze()),e.callbackNode===n?au.bind(null,e):null}function ou(e,t){var n=zs;return e.current.memoizedState.isDehydrated&&(pu(e,t).flags|=256),2!==(e=gu(e,t))&&(t=Bs,Bs=n,null!==t&&iu(t)),e}function iu(e){null===Bs?Bs=e:Bs.push.apply(Bs,e)}function lu(e,t){for(t&=~Fs,t&=~Ms,e.suspendedLanes|=t,e.pingedLanes&=~t,e=e.expirationTimes;0<t;){var n=31-it(t),r=1<<n;e[n]=-1,t&=~r}}function su(e){if(6&Ts)throw Error(o(327));xu();var t=pt(e,0);if(!(1&t))return ru(e,Ze()),null;var n=gu(e,t);if(0!==e.tag&&2===n){var r=mt(e);0!==r&&(t=r,n=ou(e,r))}if(1===n)throw n=Is,pu(e,0),lu(e,t),ru(e,Ze()),n;if(6===n)throw Error(o(345));return e.finishedWork=e.current.alternate,e.finishedLanes=t,ku(e,Bs,qs),ru(e,Ze()),null}function uu(e,t){var n=Ts;Ts|=1;try{return e(t)}finally{0===(Ts=n)&&($s=Ze()+500,za&&$a())}}function cu(e){null!==Qs&&0===Qs.tag&&!(6&Ts)&&xu();var t=Ts;Ts|=1;var n=As.transition,r=vt;try{if(As.transition=null,vt=1,e)return e()}finally{vt=r,As.transition=n,!(6&(Ts=t))&&$a()}}function du(){Ps=Rs.current,Ca(Rs)}function pu(e,t){e.finishedWork=null,e.finishedLanes=0;var n=e.timeoutHandle;if(-1!==n&&(e.timeoutHandle=-1,aa(n)),null!==Ns)for(n=Ns.return;null!==n;){var r=n;switch(to(r),r.tag){case 1:null!=(r=r.type.childContextTypes)&&Ra();break;case 3:Zo(),Ca(ja),Ca(Ta),ri();break;case 5:Jo(r);break;case 4:Zo();break;case 13:case 19:Ca(ei);break;case 10:To(r.type._context);break;case 22:case 23:du()}n=n.return}if(js=e,Ns=e=Ru(e.current,null),Ls=Ps=t,Os=0,Is=null,Fs=Ms=Ds=0,Bs=zs=null,null!==Po){for(t=0;t<Po.length;t++)if(null!==(r=(n=Po[t]).interleaved)){n.interleaved=null;var a=r.next,o=n.pending;if(null!==o){var i=o.next;o.next=a,r.next=i}n.pending=r}Po=null}return e}function fu(e,t){for(;;){var n=Ns;try{if(Ao(),ai.current=Xi,ci){for(var r=li.memoizedState;null!==r;){var a=r.queue;null!==a&&(a.pending=null),r=r.next}ci=!1}if(ii=0,ui=si=li=null,di=!1,pi=0,_s.current=null,null===n||null===n.return){Os=1,Is=t,Ns=null;break}e:{var i=e,l=n.return,s=n,u=t;if(t=Ls,s.flags|=32768,null!==u&&"object"==typeof u&&"function"==typeof u.then){var c=u,d=s,p=d.tag;if(!(1&d.mode||0!==p&&11!==p&&15!==p)){var f=d.alternate;f?(d.updateQueue=f.updateQueue,d.memoizedState=f.memoizedState,d.lanes=f.lanes):(d.updateQueue=null,d.memoizedState=null)}var m=gl(l);if(null!==m){m.flags&=-257,yl(m,l,s,0,t),1&m.mode&&hl(i,c,t),u=c;var h=(t=m).updateQueue;if(null===h){var g=new Set;g.add(u),t.updateQueue=g}else h.add(u);break e}if(!(1&t)){hl(i,c,t),hu();break e}u=Error(o(426))}else if(ao&&1&s.mode){var y=gl(l);if(null!==y){!(65536&y.flags)&&(y.flags|=256),yl(y,l,s,0,t),ho(ul(u,s));break e}}i=u=ul(u,s),4!==Os&&(Os=2),null===zs?zs=[i]:zs.push(i),i=l;do{switch(i.tag){case 3:i.flags|=65536,t&=-t,i.lanes|=t,$o(i,fl(0,u,t));break e;case 1:s=u;var b=i.type,v=i.stateNode;if(!(128&i.flags||"function"!=typeof b.getDerivedStateFromError&&(null===v||"function"!=typeof v.componentDidCatch||null!==Vs&&Vs.has(v)))){i.flags|=65536,t&=-t,i.lanes|=t,$o(i,ml(i,s,t));break e}}i=i.return}while(null!==i)}wu(n)}catch(w){t=w,Ns===n&&null!==n&&(Ns=n=n.return);continue}break}}function mu(){var e=Cs.current;return Cs.current=Xi,null===e?Xi:e}function hu(){0!==Os&&3!==Os&&2!==Os||(Os=4),null===js||!(268435455&Ds)&&!(268435455&Ms)||lu(js,Ls)}function gu(e,t){var n=Ts;Ts|=2;var r=mu();for(js===e&&Ls===t||(qs=null,pu(e,t));;)try{yu();break}catch(a){fu(e,a)}if(Ao(),Ts=n,Cs.current=r,null!==Ns)throw Error(o(261));return js=null,Ls=0,Os}function yu(){for(;null!==Ns;)vu(Ns)}function bu(){for(;null!==Ns&&!Ke();)vu(Ns)}function vu(e){var t=Ss(e.alternate,e,Ps);e.memoizedProps=e.pendingProps,null===t?wu(e):Ns=t,_s.current=null}function wu(e){var t=e;do{var n=t.alternate;if(e=t.return,32768&t.flags){if(null!==(n=Ql(n,t)))return n.flags&=32767,void(Ns=n);if(null===e)return Os=6,void(Ns=null);e.flags|=32768,e.subtreeFlags=0,e.deletions=null}else if(null!==(n=Wl(n,t,Ps)))return void(Ns=n);if(null!==(t=t.sibling))return void(Ns=t);Ns=t=e}while(null!==t);0===Os&&(Os=5)}function ku(e,t,n){var r=vt,a=As.transition;try{As.transition=null,vt=1,function(e,t,n,r){do{xu()}while(null!==Qs);if(6&Ts)throw Error(o(327));n=e.finishedWork;var a=e.finishedLanes;if(null===n)return null;if(e.finishedWork=null,e.finishedLanes=0,n===e.current)throw Error(o(177));e.callbackNode=null,e.callbackPriority=0;var i=n.lanes|n.childLanes;if(function(e,t){var n=e.pendingLanes&~t;e.pendingLanes=t,e.suspendedLanes=0,e.pingedLanes=0,e.expiredLanes&=t,e.mutableReadLanes&=t,e.entangledLanes&=t,t=e.entanglements;var r=e.eventTimes;for(e=e.expirationTimes;0<n;){var a=31-it(n),o=1<<a;t[a]=0,r[a]=-1,e[a]=-1,n&=~o}}(e,i),e===js&&(Ns=js=null,Ls=0),!(2064&n.subtreeFlags)&&!(2064&n.flags)||Ws||(Ws=!0,ju(tt,(function(){return xu(),null}))),i=!!(15990&n.flags),!!(15990&n.subtreeFlags)||i){i=As.transition,As.transition=null;var l=vt;vt=1;var s=Ts;Ts|=4,_s.current=null,function(e,t){if(ea=Gt,fr(e=pr())){if("selectionStart"in e)var n={start:e.selectionStart,end:e.selectionEnd};else e:{var r=(n=(n=e.ownerDocument)&&n.defaultView||window).getSelection&&n.getSelection();if(r&&0!==r.rangeCount){n=r.anchorNode;var a=r.anchorOffset,i=r.focusNode;r=r.focusOffset;try{n.nodeType,i.nodeType}catch(k){n=null;break e}var l=0,s=-1,u=-1,c=0,d=0,p=e,f=null;t:for(;;){for(var m;p!==n||0!==a&&3!==p.nodeType||(s=l+a),p!==i||0!==r&&3!==p.nodeType||(u=l+r),3===p.nodeType&&(l+=p.nodeValue.length),null!==(m=p.firstChild);)f=p,p=m;for(;;){if(p===e)break t;if(f===n&&++c===a&&(s=l),f===i&&++d===r&&(u=l),null!==(m=p.nextSibling))break;f=(p=f).parentNode}p=m}n=-1===s||-1===u?null:{start:s,end:u}}else n=null}n=n||{start:0,end:0}}else n=null;for(ta={focusedElem:e,selectionRange:n},Gt=!1,Xl=t;null!==Xl;)if(e=(t=Xl).child,1028&t.subtreeFlags&&null!==e)e.return=t,Xl=e;else for(;null!==Xl;){t=Xl;try{var h=t.alternate;if(1024&t.flags)switch(t.tag){case 0:case 11:case 15:case 5:case 6:case 4:case 17:break;case 1:if(null!==h){var g=h.memoizedProps,y=h.memoizedState,b=t.stateNode,v=b.getSnapshotBeforeUpdate(t.elementType===t.type?g:nl(t.type,g),y);b.__reactInternalSnapshotBeforeUpdate=v}break;case 3:var w=t.stateNode.containerInfo;1===w.nodeType?w.textContent="":9===w.nodeType&&w.documentElement&&w.removeChild(w.documentElement);break;default:throw Error(o(163))}}catch(k){Eu(t,t.return,k)}if(null!==(e=t.sibling)){e.return=t.return,Xl=e;break}Xl=t.return}h=ts,ts=!1}(e,n),gs(n,e),mr(ta),Gt=!!ea,ta=ea=null,e.current=n,bs(n,e,a),Ye(),Ts=s,vt=l,As.transition=i}else e.current=n;if(Ws&&(Ws=!1,Qs=e,Ks=a),i=e.pendingLanes,0===i&&(Vs=null),function(e){if(ot&&"function"==typeof ot.onCommitFiberRoot)try{ot.onCommitFiberRoot(at,e,void 0,!(128&~e.current.flags))}catch(t){}}(n.stateNode),ru(e,Ze()),null!==t)for(r=e.onRecoverableError,n=0;n<t.length;n++)a=t[n],r(a.value,{componentStack:a.stack,digest:a.digest});if(Gs)throw Gs=!1,e=Hs,Hs=null,e;!!(1&Ks)&&0!==e.tag&&xu(),i=e.pendingLanes,1&i?e===Zs?Ys++:(Ys=0,Zs=e):Ys=0,$a()}(e,t,n,r)}finally{As.transition=a,vt=r}return null}function xu(){if(null!==Qs){var e=wt(Ks),t=As.transition,n=vt;try{if(As.transition=null,vt=16>e?16:e,null===Qs)var r=!1;else{if(e=Qs,Qs=null,Ks=0,6&Ts)throw Error(o(331));var a=Ts;for(Ts|=4,Xl=e.current;null!==Xl;){var i=Xl,l=i.child;if(16&Xl.flags){var s=i.deletions;if(null!==s){for(var u=0;u<s.length;u++){var c=s[u];for(Xl=c;null!==Xl;){var d=Xl;switch(d.tag){case 0:case 11:case 15:ns(8,d,i)}var p=d.child;if(null!==p)p.return=d,Xl=p;else for(;null!==Xl;){var f=(d=Xl).sibling,m=d.return;if(os(d),d===c){Xl=null;break}if(null!==f){f.return=m,Xl=f;break}Xl=m}}}var h=i.alternate;if(null!==h){var g=h.child;if(null!==g){h.child=null;do{var y=g.sibling;g.sibling=null,g=y}while(null!==g)}}Xl=i}}if(2064&i.subtreeFlags&&null!==l)l.return=i,Xl=l;else e:for(;null!==Xl;){if(2048&(i=Xl).flags)switch(i.tag){case 0:case 11:case 15:ns(9,i,i.return)}var b=i.sibling;if(null!==b){b.return=i.return,Xl=b;break e}Xl=i.return}}var v=e.current;for(Xl=v;null!==Xl;){var w=(l=Xl).child;if(2064&l.subtreeFlags&&null!==w)w.return=l,Xl=w;else e:for(l=v;null!==Xl;){if(2048&(s=Xl).flags)try{switch(s.tag){case 0:case 11:case 15:rs(9,s)}}catch(x){Eu(s,s.return,x)}if(s===l){Xl=null;break e}var k=s.sibling;if(null!==k){k.return=s.return,Xl=k;break e}Xl=s.return}}if(Ts=a,$a(),ot&&"function"==typeof ot.onPostCommitFiberRoot)try{ot.onPostCommitFiberRoot(at,e)}catch(x){}r=!0}return r}finally{vt=n,As.transition=t}}return!1}function Su(e,t,n){e=Bo(e,t=fl(0,t=ul(n,t),1),1),t=eu(),null!==e&&(yt(e,1,t),ru(e,t))}function Eu(e,t,n){if(3===e.tag)Su(e,e,n);else for(;null!==t;){if(3===t.tag){Su(t,e,n);break}if(1===t.tag){var r=t.stateNode;if("function"==typeof t.type.getDerivedStateFromError||"function"==typeof r.componentDidCatch&&(null===Vs||!Vs.has(r))){t=Bo(t,e=ml(t,e=ul(n,e),1),1),e=eu(),null!==t&&(yt(t,1,e),ru(t,e));break}}t=t.return}}function Cu(e,t,n){var r=e.pingCache;null!==r&&r.delete(t),t=eu(),e.pingedLanes|=e.suspendedLanes&n,js===e&&(Ls&n)===n&&(4===Os||3===Os&&(130023424&Ls)===Ls&&500>Ze()-Us?pu(e,0):Fs|=n),ru(e,t)}function _u(e,t){0===t&&(1&e.mode?(t=ct,!(130023424&(ct<<=1))&&(ct=4194304)):t=1);var n=eu();null!==(e=Io(e,t))&&(yt(e,t,n),ru(e,n))}function Au(e){var t=e.memoizedState,n=0;null!==t&&(n=t.retryLane),_u(e,n)}function Tu(e,t){var n=0;switch(e.tag){case 13:var r=e.stateNode,a=e.memoizedState;null!==a&&(n=a.retryLane);break;case 19:r=e.stateNode;break;default:throw Error(o(314))}null!==r&&r.delete(t),_u(e,n)}function ju(e,t){return We(e,t)}function Nu(e,t,n,r){this.tag=e,this.key=n,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=t,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=r,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function Lu(e,t,n,r){return new Nu(e,t,n,r)}function Pu(e){return!(!(e=e.prototype)||!e.isReactComponent)}function Ru(e,t){var n=e.alternate;return null===n?((n=Lu(e.tag,t,e.key,e.mode)).elementType=e.elementType,n.type=e.type,n.stateNode=e.stateNode,n.alternate=e,e.alternate=n):(n.pendingProps=t,n.type=e.type,n.flags=0,n.subtreeFlags=0,n.deletions=null),n.flags=14680064&e.flags,n.childLanes=e.childLanes,n.lanes=e.lanes,n.child=e.child,n.memoizedProps=e.memoizedProps,n.memoizedState=e.memoizedState,n.updateQueue=e.updateQueue,t=e.dependencies,n.dependencies=null===t?null:{lanes:t.lanes,firstContext:t.firstContext},n.sibling=e.sibling,n.index=e.index,n.ref=e.ref,n}function Ou(e,t,n,r,a,i){var l=2;if(r=e,"function"==typeof e)Pu(e)&&(l=1);else if("string"==typeof e)l=5;else e:switch(e){case S:return Iu(n.children,a,i,t);case E:l=8,a|=8;break;case C:return(e=Lu(12,n,t,2|a)).elementType=C,e.lanes=i,e;case j:return(e=Lu(13,n,t,a)).elementType=j,e.lanes=i,e;case N:return(e=Lu(19,n,t,a)).elementType=N,e.lanes=i,e;case R:return Du(n,a,i,t);default:if("object"==typeof e&&null!==e)switch(e.$$typeof){case _:l=10;break e;case A:l=9;break e;case T:l=11;break e;case L:l=14;break e;case P:l=16,r=null;break e}throw Error(o(130,null==e?e:typeof e,""))}return(t=Lu(l,n,t,a)).elementType=e,t.type=r,t.lanes=i,t}function Iu(e,t,n,r){return(e=Lu(7,e,r,t)).lanes=n,e}function Du(e,t,n,r){return(e=Lu(22,e,r,t)).elementType=R,e.lanes=n,e.stateNode={isHidden:!1},e}function Mu(e,t,n){return(e=Lu(6,e,null,t)).lanes=n,e}function Fu(e,t,n){return(t=Lu(4,null!==e.children?e.children:[],e.key,t)).lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function zu(e,t,n,r,a){this.tag=t,this.containerInfo=e,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=gt(0),this.expirationTimes=gt(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=gt(0),this.identifierPrefix=r,this.onRecoverableError=a,this.mutableSourceEagerHydrationData=null}function Bu(e,t,n,r,a,o,i,l,s){return e=new zu(e,t,n,l,s),1===t?(t=1,!0===o&&(t|=8)):t=0,o=Lu(3,null,null,t),e.current=o,o.stateNode=e,o.memoizedState={element:r,isDehydrated:n,cache:null,transitions:null,pendingSuspenseBoundaries:null},Mo(o),e}function Uu(e){if(!e)return Aa;e:{if($e(e=e._reactInternals)!==e||1!==e.tag)throw Error(o(170));var t=e;do{switch(t.tag){case 3:t=t.stateNode.context;break e;case 1:if(Pa(t.type)){t=t.stateNode.__reactInternalMemoizedMergedChildContext;break e}}t=t.return}while(null!==t);throw Error(o(171))}if(1===e.tag){var n=e.type;if(Pa(n))return Ia(e,n,t)}return t}function $u(e,t,n,r,a,o,i,l,s){return(e=Bu(n,r,!0,e,0,o,0,l,s)).context=Uu(null),n=e.current,(o=zo(r=eu(),a=tu(n))).callback=null!=t?t:null,Bo(n,o,a),e.current.lanes=a,yt(e,a,r),ru(e,r),e}function qu(e,t,n,r){var a=t.current,o=eu(),i=tu(a);return n=Uu(n),null===t.context?t.context=n:t.pendingContext=n,(t=zo(o,i)).payload={element:e},null!==(r=void 0===r?null:r)&&(t.callback=r),null!==(e=Bo(a,t,i))&&(nu(e,a,i,o),Uo(e,a,i)),i}function Gu(e){return(e=e.current).child?(e.child.tag,e.child.stateNode):null}function Hu(e,t){if(null!==(e=e.memoizedState)&&null!==e.dehydrated){var n=e.retryLane;e.retryLane=0!==n&&n<t?n:t}}function Vu(e,t){Hu(e,t),(e=e.alternate)&&Hu(e,t)}Ss=function(e,t,n){if(null!==e)if(e.memoizedProps!==t.pendingProps||ja.current)vl=!0;else{if(!(e.lanes&n||128&t.flags))return vl=!1,function(e,t,n){switch(t.tag){case 3:jl(t),mo();break;case 5:Xo(t);break;case 1:Pa(t.type)&&Da(t);break;case 4:Yo(t,t.stateNode.containerInfo);break;case 10:var r=t.type._context,a=t.memoizedProps.value;_a(So,r._currentValue),r._currentValue=a;break;case 13:if(null!==(r=t.memoizedState))return null!==r.dehydrated?(_a(ei,1&ei.current),t.flags|=128,null):n&t.child.childLanes?Ml(e,t,n):(_a(ei,1&ei.current),null!==(e=Gl(e,t,n))?e.sibling:null);_a(ei,1&ei.current);break;case 19:if(r=!!(n&t.childLanes),128&e.flags){if(r)return $l(e,t,n);t.flags|=128}if(null!==(a=t.memoizedState)&&(a.rendering=null,a.tail=null,a.lastEffect=null),_a(ei,ei.current),r)break;return null;case 22:case 23:return t.lanes=0,El(e,t,n)}return Gl(e,t,n)}(e,t,n);vl=!!(131072&e.flags)}else vl=!1,ao&&1048576&t.flags&&Ja(t,Va,t.index);switch(t.lanes=0,t.tag){case 2:var r=t.type;ql(e,t),e=t.pendingProps;var a=La(t,Ta.current);No(t,n),a=gi(null,t,r,e,a,n);var i=yi();return t.flags|=1,"object"==typeof a&&null!==a&&"function"==typeof a.render&&void 0===a.$$typeof?(t.tag=1,t.memoizedState=null,t.updateQueue=null,Pa(r)?(i=!0,Da(t)):i=!1,t.memoizedState=null!==a.state&&void 0!==a.state?a.state:null,Mo(t),a.updater=al,t.stateNode=a,a._reactInternals=t,sl(t,r,e,n),t=Tl(null,t,r,!0,i,n)):(t.tag=0,ao&&i&&eo(t),wl(null,t,a,n),t=t.child),t;case 16:r=t.elementType;e:{switch(ql(e,t),e=t.pendingProps,r=(a=r._init)(r._payload),t.type=r,a=t.tag=function(e){if("function"==typeof e)return Pu(e)?1:0;if(null!=e){if((e=e.$$typeof)===T)return 11;if(e===L)return 14}return 2}(r),e=nl(r,e),a){case 0:t=_l(null,t,r,e,n);break e;case 1:t=Al(null,t,r,e,n);break e;case 11:t=kl(null,t,r,e,n);break e;case 14:t=xl(null,t,r,nl(r.type,e),n);break e}throw Error(o(306,r,""))}return t;case 0:return r=t.type,a=t.pendingProps,_l(e,t,r,a=t.elementType===r?a:nl(r,a),n);case 1:return r=t.type,a=t.pendingProps,Al(e,t,r,a=t.elementType===r?a:nl(r,a),n);case 3:e:{if(jl(t),null===e)throw Error(o(387));r=t.pendingProps,a=(i=t.memoizedState).element,Fo(e,t),qo(t,r,null,n);var l=t.memoizedState;if(r=l.element,i.isDehydrated){if(i={element:r,isDehydrated:!1,cache:l.cache,pendingSuspenseBoundaries:l.pendingSuspenseBoundaries,transitions:l.transitions},t.updateQueue.baseState=i,t.memoizedState=i,256&t.flags){t=Nl(e,t,r,n,a=ul(Error(o(423)),t));break e}if(r!==a){t=Nl(e,t,r,n,a=ul(Error(o(424)),t));break e}for(ro=ua(t.stateNode.containerInfo.firstChild),no=t,ao=!0,oo=null,n=xo(t,null,r,n),t.child=n;n;)n.flags=-3&n.flags|4096,n=n.sibling}else{if(mo(),r===a){t=Gl(e,t,n);break e}wl(e,t,r,n)}t=t.child}return t;case 5:return Xo(t),null===e&&uo(t),r=t.type,a=t.pendingProps,i=null!==e?e.memoizedProps:null,l=a.children,na(r,a)?l=null:null!==i&&na(r,i)&&(t.flags|=32),Cl(e,t),wl(e,t,l,n),t.child;case 6:return null===e&&uo(t),null;case 13:return Ml(e,t,n);case 4:return Yo(t,t.stateNode.containerInfo),r=t.pendingProps,null===e?t.child=ko(t,null,r,n):wl(e,t,r,n),t.child;case 11:return r=t.type,a=t.pendingProps,kl(e,t,r,a=t.elementType===r?a:nl(r,a),n);case 7:return wl(e,t,t.pendingProps,n),t.child;case 8:case 12:return wl(e,t,t.pendingProps.children,n),t.child;case 10:e:{if(r=t.type._context,a=t.pendingProps,i=t.memoizedProps,l=a.value,_a(So,r._currentValue),r._currentValue=l,null!==i)if(lr(i.value,l)){if(i.children===a.children&&!ja.current){t=Gl(e,t,n);break e}}else for(null!==(i=t.child)&&(i.return=t);null!==i;){var s=i.dependencies;if(null!==s){l=i.child;for(var u=s.firstContext;null!==u;){if(u.context===r){if(1===i.tag){(u=zo(-1,n&-n)).tag=2;var c=i.updateQueue;if(null!==c){var d=(c=c.shared).pending;null===d?u.next=u:(u.next=d.next,d.next=u),c.pending=u}}i.lanes|=n,null!==(u=i.alternate)&&(u.lanes|=n),jo(i.return,n,t),s.lanes|=n;break}u=u.next}}else if(10===i.tag)l=i.type===t.type?null:i.child;else if(18===i.tag){if(null===(l=i.return))throw Error(o(341));l.lanes|=n,null!==(s=l.alternate)&&(s.lanes|=n),jo(l,n,t),l=i.sibling}else l=i.child;if(null!==l)l.return=i;else for(l=i;null!==l;){if(l===t){l=null;break}if(null!==(i=l.sibling)){i.return=l.return,l=i;break}l=l.return}i=l}wl(e,t,a.children,n),t=t.child}return t;case 9:return a=t.type,r=t.pendingProps.children,No(t,n),r=r(a=Lo(a)),t.flags|=1,wl(e,t,r,n),t.child;case 14:return a=nl(r=t.type,t.pendingProps),xl(e,t,r,a=nl(r.type,a),n);case 15:return Sl(e,t,t.type,t.pendingProps,n);case 17:return r=t.type,a=t.pendingProps,a=t.elementType===r?a:nl(r,a),ql(e,t),t.tag=1,Pa(r)?(e=!0,Da(t)):e=!1,No(t,n),il(t,r,a),sl(t,r,a,n),Tl(null,t,r,!0,e,n);case 19:return $l(e,t,n);case 22:return El(e,t,n)}throw Error(o(156,t.tag))};var Wu="function"==typeof reportError?reportError:function(e){console.error(e)};function Qu(e){this._internalRoot=e}function Ku(e){this._internalRoot=e}function Yu(e){return!(!e||1!==e.nodeType&&9!==e.nodeType&&11!==e.nodeType)}function Zu(e){return!(!e||1!==e.nodeType&&9!==e.nodeType&&11!==e.nodeType&&(8!==e.nodeType||" react-mount-point-unstable "!==e.nodeValue))}function Xu(){}function Ju(e,t,n,r,a){var o=n._reactRootContainer;if(o){var i=o;if("function"==typeof a){var l=a;a=function(){var e=Gu(i);l.call(e)}}qu(t,i,e,a)}else i=function(e,t,n,r,a){if(a){if("function"==typeof r){var o=r;r=function(){var e=Gu(i);o.call(e)}}var i=$u(t,r,e,0,null,!1,0,"",Xu);return e._reactRootContainer=i,e[ma]=i.current,$r(8===e.nodeType?e.parentNode:e),cu(),i}for(;a=e.lastChild;)e.removeChild(a);if("function"==typeof r){var l=r;r=function(){var e=Gu(s);l.call(e)}}var s=Bu(e,0,!1,null,0,!1,0,"",Xu);return e._reactRootContainer=s,e[ma]=s.current,$r(8===e.nodeType?e.parentNode:e),cu((function(){qu(t,s,n,r)})),s}(n,t,e,a,r);return Gu(i)}Ku.prototype.render=Qu.prototype.render=function(e){var t=this._internalRoot;if(null===t)throw Error(o(409));qu(e,t,null,null)},Ku.prototype.unmount=Qu.prototype.unmount=function(){var e=this._internalRoot;if(null!==e){this._internalRoot=null;var t=e.containerInfo;cu((function(){qu(null,e,null,null)})),t[ma]=null}},Ku.prototype.unstable_scheduleHydration=function(e){if(e){var t=Et();e={blockedOn:null,target:e,priority:t};for(var n=0;n<Rt.length&&0!==t&&t<Rt[n].priority;n++);Rt.splice(n,0,e),0===n&&Mt(e)}},kt=function(e){switch(e.tag){case 3:var t=e.stateNode;if(t.current.memoizedState.isDehydrated){var n=dt(t.pendingLanes);0!==n&&(bt(t,1|n),ru(t,Ze()),!(6&Ts)&&($s=Ze()+500,$a()))}break;case 13:cu((function(){var t=Io(e,1);if(null!==t){var n=eu();nu(t,e,1,n)}})),Vu(e,1)}},xt=function(e){if(13===e.tag){var t=Io(e,134217728);if(null!==t)nu(t,e,134217728,eu());Vu(e,134217728)}},St=function(e){if(13===e.tag){var t=tu(e),n=Io(e,t);if(null!==n)nu(n,e,t,eu());Vu(e,t)}},Et=function(){return vt},Ct=function(e,t){var n=vt;try{return vt=e,t()}finally{vt=n}},xe=function(e,t,n){switch(t){case"input":if(X(e,n),t=n.name,"radio"===n.type&&null!=t){for(n=e;n.parentNode;)n=n.parentNode;for(n=n.querySelectorAll("input[name="+JSON.stringify(""+t)+'][type="radio"]'),t=0;t<n.length;t++){var r=n[t];if(r!==e&&r.form===e.form){var a=ka(r);if(!a)throw Error(o(90));W(r),X(r,a)}}}break;case"textarea":oe(e,n);break;case"select":null!=(t=n.value)&&ne(e,!!n.multiple,t,!1)}},Te=uu,je=cu;var ec={usingClientEntryPoint:!1,Events:[va,wa,ka,_e,Ae,uu]},tc={findFiberByHostInstance:ba,bundleType:0,version:"18.3.1",rendererPackageName:"react-dom"},nc={bundleType:tc.bundleType,version:tc.version,rendererPackageName:tc.rendererPackageName,rendererConfig:tc.rendererConfig,overrideHookState:null,overrideHookStateDeletePath:null,overrideHookStateRenamePath:null,overrideProps:null,overridePropsDeletePath:null,overridePropsRenamePath:null,setErrorHandler:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:w.ReactCurrentDispatcher,findHostInstanceByFiber:function(e){return null===(e=He(e))?null:e.stateNode},findFiberByHostInstance:tc.findFiberByHostInstance||function(){return null},findHostInstancesForRefresh:null,scheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null,reconcilerVersion:"18.3.1-next-f1338f8080-20240426"};if("undefined"!=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__){var rc=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!rc.isDisabled&&rc.supportsFiber)try{at=rc.inject(nc),ot=rc}catch(ce){}}t.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=ec,t.createPortal=function(e,t){var n=2<arguments.length&&void 0!==arguments[2]?arguments[2]:null;if(!Yu(t))throw Error(o(200));return function(e,t,n){var r=3<arguments.length&&void 0!==arguments[3]?arguments[3]:null;return{$$typeof:x,key:null==r?null:""+r,children:e,containerInfo:t,implementation:n}}(e,t,null,n)},t.createRoot=function(e,t){if(!Yu(e))throw Error(o(299));var n=!1,r="",a=Wu;return null!=t&&(!0===t.unstable_strictMode&&(n=!0),void 0!==t.identifierPrefix&&(r=t.identifierPrefix),void 0!==t.onRecoverableError&&(a=t.onRecoverableError)),t=Bu(e,1,!1,null,0,n,0,r,a),e[ma]=t.current,$r(8===e.nodeType?e.parentNode:e),new Qu(t)},t.findDOMNode=function(e){if(null==e)return null;if(1===e.nodeType)return e;var t=e._reactInternals;if(void 0===t){if("function"==typeof e.render)throw Error(o(188));throw e=Object.keys(e).join(","),Error(o(268,e))}return e=null===(e=He(t))?null:e.stateNode},t.flushSync=function(e){return cu(e)},t.hydrate=function(e,t,n){if(!Zu(t))throw Error(o(200));return Ju(null,e,t,!0,n)},t.hydrateRoot=function(e,t,n){if(!Yu(e))throw Error(o(405));var r=null!=n&&n.hydratedSources||null,a=!1,i="",l=Wu;if(null!=n&&(!0===n.unstable_strictMode&&(a=!0),void 0!==n.identifierPrefix&&(i=n.identifierPrefix),void 0!==n.onRecoverableError&&(l=n.onRecoverableError)),t=$u(t,null,e,1,null!=n?n:null,a,0,i,l),e[ma]=t.current,$r(e),r)for(e=0;e<r.length;e++)a=(a=(n=r[e])._getVersion)(n._source),null==t.mutableSourceEagerHydrationData?t.mutableSourceEagerHydrationData=[n,a]:t.mutableSourceEagerHydrationData.push(n,a);return new Ku(t)},t.render=function(e,t,n){if(!Zu(t))throw Error(o(200));return Ju(null,e,t,!1,n)},t.unmountComponentAtNode=function(e){if(!Zu(e))throw Error(o(40));return!!e._reactRootContainer&&(cu((function(){Ju(null,null,e,!1,(function(){e._reactRootContainer=null,e[ma]=null}))})),!0)},t.unstable_batchedUpdates=uu,t.unstable_renderSubtreeIntoContainer=function(e,t,n,r){if(!Zu(n))throw Error(o(200));if(null==e||void 0===e._reactInternals)throw Error(o(38));return Ju(e,t,n,!1,r)},t.version="18.3.1-next-f1338f8080-20240426"},5338:(e,t,n)=>{"use strict";var r=n(961);t.createRoot=r.createRoot,t.hydrateRoot=r.hydrateRoot},961:(e,t,n)=>{"use strict";!function e(){if("undefined"!=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__&&"function"==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE)try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(t){console.error(t)}}(),e.exports=n(2551)},115:e=>{var t="undefined"!=typeof Element,n="function"==typeof Map,r="function"==typeof Set,a="function"==typeof ArrayBuffer&&!!ArrayBuffer.isView;function o(e,i){if(e===i)return!0;if(e&&i&&"object"==typeof e&&"object"==typeof i){if(e.constructor!==i.constructor)return!1;var l,s,u,c;if(Array.isArray(e)){if((l=e.length)!=i.length)return!1;for(s=l;0!=s--;)if(!o(e[s],i[s]))return!1;return!0}if(n&&e instanceof Map&&i instanceof Map){if(e.size!==i.size)return!1;for(c=e.entries();!(s=c.next()).done;)if(!i.has(s.value[0]))return!1;for(c=e.entries();!(s=c.next()).done;)if(!o(s.value[1],i.get(s.value[0])))return!1;return!0}if(r&&e instanceof Set&&i instanceof Set){if(e.size!==i.size)return!1;for(c=e.entries();!(s=c.next()).done;)if(!i.has(s.value[0]))return!1;return!0}if(a&&ArrayBuffer.isView(e)&&ArrayBuffer.isView(i)){if((l=e.length)!=i.length)return!1;for(s=l;0!=s--;)if(e[s]!==i[s])return!1;return!0}if(e.constructor===RegExp)return e.source===i.source&&e.flags===i.flags;if(e.valueOf!==Object.prototype.valueOf&&"function"==typeof e.valueOf&&"function"==typeof i.valueOf)return e.valueOf()===i.valueOf();if(e.toString!==Object.prototype.toString&&"function"==typeof e.toString&&"function"==typeof i.toString)return e.toString()===i.toString();if((l=(u=Object.keys(e)).length)!==Object.keys(i).length)return!1;for(s=l;0!=s--;)if(!Object.prototype.hasOwnProperty.call(i,u[s]))return!1;if(t&&e instanceof Element)return!1;for(s=l;0!=s--;)if(("_owner"!==u[s]&&"__v"!==u[s]&&"__o"!==u[s]||!e.$$typeof)&&!o(e[u[s]],i[u[s]]))return!1;return!0}return e!=e&&i!=i}e.exports=function(e,t){try{return o(e,t)}catch(n){if((n.message||"").match(/stack|recursion/i))return console.warn("react-fast-compare cannot handle circular refs"),!1;throw n}}},545:(e,t,n)=>{"use strict";n.d(t,{mg:()=>J,vd:()=>H});var r=n(6540),a=n(5556),o=n.n(a),i=n(115),l=n.n(i),s=n(311),u=n.n(s),c=n(2833),d=n.n(c);function p(){return p=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},p.apply(this,arguments)}function f(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,m(e,t)}function m(e,t){return m=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},m(e,t)}function h(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)t.indexOf(n=o[r])>=0||(a[n]=e[n]);return a}var g={BASE:"base",BODY:"body",HEAD:"head",HTML:"html",LINK:"link",META:"meta",NOSCRIPT:"noscript",SCRIPT:"script",STYLE:"style",TITLE:"title",FRAGMENT:"Symbol(react.fragment)"},y={rel:["amphtml","canonical","alternate"]},b={type:["application/ld+json"]},v={charset:"",name:["robots","description"],property:["og:type","og:title","og:url","og:image","og:image:alt","og:description","twitter:url","twitter:title","twitter:description","twitter:image","twitter:image:alt","twitter:card","twitter:site"]},w=Object.keys(g).map((function(e){return g[e]})),k={accesskey:"accessKey",charset:"charSet",class:"className",contenteditable:"contentEditable",contextmenu:"contextMenu","http-equiv":"httpEquiv",itemprop:"itemProp",tabindex:"tabIndex"},x=Object.keys(k).reduce((function(e,t){return e[k[t]]=t,e}),{}),S=function(e,t){for(var n=e.length-1;n>=0;n-=1){var r=e[n];if(Object.prototype.hasOwnProperty.call(r,t))return r[t]}return null},E=function(e){var t=S(e,g.TITLE),n=S(e,"titleTemplate");if(Array.isArray(t)&&(t=t.join("")),n&&t)return n.replace(/%s/g,(function(){return t}));var r=S(e,"defaultTitle");return t||r||void 0},C=function(e){return S(e,"onChangeClientState")||function(){}},_=function(e,t){return t.filter((function(t){return void 0!==t[e]})).map((function(t){return t[e]})).reduce((function(e,t){return p({},e,t)}),{})},A=function(e,t){return t.filter((function(e){return void 0!==e[g.BASE]})).map((function(e){return e[g.BASE]})).reverse().reduce((function(t,n){if(!t.length)for(var r=Object.keys(n),a=0;a<r.length;a+=1){var o=r[a].toLowerCase();if(-1!==e.indexOf(o)&&n[o])return t.concat(n)}return t}),[])},T=function(e,t,n){var r={};return n.filter((function(t){return!!Array.isArray(t[e])||(void 0!==t[e]&&console&&"function"==typeof console.warn&&console.warn("Helmet: "+e+' should be of type "Array". Instead found type "'+typeof t[e]+'"'),!1)})).map((function(t){return t[e]})).reverse().reduce((function(e,n){var a={};n.filter((function(e){for(var n,o=Object.keys(e),i=0;i<o.length;i+=1){var l=o[i],s=l.toLowerCase();-1===t.indexOf(s)||"rel"===n&&"canonical"===e[n].toLowerCase()||"rel"===s&&"stylesheet"===e[s].toLowerCase()||(n=s),-1===t.indexOf(l)||"innerHTML"!==l&&"cssText"!==l&&"itemprop"!==l||(n=l)}if(!n||!e[n])return!1;var u=e[n].toLowerCase();return r[n]||(r[n]={}),a[n]||(a[n]={}),!r[n][u]&&(a[n][u]=!0,!0)})).reverse().forEach((function(t){return e.push(t)}));for(var o=Object.keys(a),i=0;i<o.length;i+=1){var l=o[i],s=p({},r[l],a[l]);r[l]=s}return e}),[]).reverse()},j=function(e,t){if(Array.isArray(e)&&e.length)for(var n=0;n<e.length;n+=1)if(e[n][t])return!0;return!1},N=function(e){return Array.isArray(e)?e.join(""):e},L=function(e,t){return Array.isArray(e)?e.reduce((function(e,n){return function(e,t){for(var n=Object.keys(e),r=0;r<n.length;r+=1)if(t[n[r]]&&t[n[r]].includes(e[n[r]]))return!0;return!1}(n,t)?e.priority.push(n):e.default.push(n),e}),{priority:[],default:[]}):{default:e}},P=function(e,t){var n;return p({},e,((n={})[t]=void 0,n))},R=[g.NOSCRIPT,g.SCRIPT,g.STYLE],O=function(e,t){return void 0===t&&(t=!0),!1===t?String(e):String(e).replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'")},I=function(e){return Object.keys(e).reduce((function(t,n){var r=void 0!==e[n]?n+'="'+e[n]+'"':""+n;return t?t+" "+r:r}),"")},D=function(e,t){return void 0===t&&(t={}),Object.keys(e).reduce((function(t,n){return t[k[n]||n]=e[n],t}),t)},M=function(e,t){return t.map((function(t,n){var a,o=((a={key:n})["data-rh"]=!0,a);return Object.keys(t).forEach((function(e){var n=k[e]||e;"innerHTML"===n||"cssText"===n?o.dangerouslySetInnerHTML={__html:t.innerHTML||t.cssText}:o[n]=t[e]})),r.createElement(e,o)}))},F=function(e,t,n){switch(e){case g.TITLE:return{toComponent:function(){return n=t.titleAttributes,(a={key:e=t.title})["data-rh"]=!0,o=D(n,a),[r.createElement(g.TITLE,o,e)];var e,n,a,o},toString:function(){return function(e,t,n,r){var a=I(n),o=N(t);return a?"<"+e+' data-rh="true" '+a+">"+O(o,r)+"</"+e+">":"<"+e+' data-rh="true">'+O(o,r)+"</"+e+">"}(e,t.title,t.titleAttributes,n)}};case"bodyAttributes":case"htmlAttributes":return{toComponent:function(){return D(t)},toString:function(){return I(t)}};default:return{toComponent:function(){return M(e,t)},toString:function(){return function(e,t,n){return t.reduce((function(t,r){var a=Object.keys(r).filter((function(e){return!("innerHTML"===e||"cssText"===e)})).reduce((function(e,t){var a=void 0===r[t]?t:t+'="'+O(r[t],n)+'"';return e?e+" "+a:a}),""),o=r.innerHTML||r.cssText||"",i=-1===R.indexOf(e);return t+"<"+e+' data-rh="true" '+a+(i?"/>":">"+o+"</"+e+">")}),"")}(e,t,n)}}}},z=function(e){var t=e.baseTag,n=e.bodyAttributes,r=e.encode,a=e.htmlAttributes,o=e.noscriptTags,i=e.styleTags,l=e.title,s=void 0===l?"":l,u=e.titleAttributes,c=e.linkTags,d=e.metaTags,p=e.scriptTags,f={toComponent:function(){},toString:function(){return""}};if(e.prioritizeSeoTags){var m=function(e){var t=e.linkTags,n=e.scriptTags,r=e.encode,a=L(e.metaTags,v),o=L(t,y),i=L(n,b);return{priorityMethods:{toComponent:function(){return[].concat(M(g.META,a.priority),M(g.LINK,o.priority),M(g.SCRIPT,i.priority))},toString:function(){return F(g.META,a.priority,r)+" "+F(g.LINK,o.priority,r)+" "+F(g.SCRIPT,i.priority,r)}},metaTags:a.default,linkTags:o.default,scriptTags:i.default}}(e);f=m.priorityMethods,c=m.linkTags,d=m.metaTags,p=m.scriptTags}return{priority:f,base:F(g.BASE,t,r),bodyAttributes:F("bodyAttributes",n,r),htmlAttributes:F("htmlAttributes",a,r),link:F(g.LINK,c,r),meta:F(g.META,d,r),noscript:F(g.NOSCRIPT,o,r),script:F(g.SCRIPT,p,r),style:F(g.STYLE,i,r),title:F(g.TITLE,{title:s,titleAttributes:u},r)}},B=[],U=function(e,t){var n=this;void 0===t&&(t="undefined"!=typeof document),this.instances=[],this.value={setHelmet:function(e){n.context.helmet=e},helmetInstances:{get:function(){return n.canUseDOM?B:n.instances},add:function(e){(n.canUseDOM?B:n.instances).push(e)},remove:function(e){var t=(n.canUseDOM?B:n.instances).indexOf(e);(n.canUseDOM?B:n.instances).splice(t,1)}}},this.context=e,this.canUseDOM=t,t||(e.helmet=z({baseTag:[],bodyAttributes:{},encodeSpecialCharacters:!0,htmlAttributes:{},linkTags:[],metaTags:[],noscriptTags:[],scriptTags:[],styleTags:[],title:"",titleAttributes:{}}))},$=r.createContext({}),q=o().shape({setHelmet:o().func,helmetInstances:o().shape({get:o().func,add:o().func,remove:o().func})}),G="undefined"!=typeof document,H=function(e){function t(n){var r;return(r=e.call(this,n)||this).helmetData=new U(r.props.context,t.canUseDOM),r}return f(t,e),t.prototype.render=function(){return r.createElement($.Provider,{value:this.helmetData.value},this.props.children)},t}(r.Component);H.canUseDOM=G,H.propTypes={context:o().shape({helmet:o().shape()}),children:o().node.isRequired},H.defaultProps={context:{}},H.displayName="HelmetProvider";var V=function(e,t){var n,r=document.head||document.querySelector(g.HEAD),a=r.querySelectorAll(e+"[data-rh]"),o=[].slice.call(a),i=[];return t&&t.length&&t.forEach((function(t){var r=document.createElement(e);for(var a in t)Object.prototype.hasOwnProperty.call(t,a)&&("innerHTML"===a?r.innerHTML=t.innerHTML:"cssText"===a?r.styleSheet?r.styleSheet.cssText=t.cssText:r.appendChild(document.createTextNode(t.cssText)):r.setAttribute(a,void 0===t[a]?"":t[a]));r.setAttribute("data-rh","true"),o.some((function(e,t){return n=t,r.isEqualNode(e)}))?o.splice(n,1):i.push(r)})),o.forEach((function(e){return e.parentNode.removeChild(e)})),i.forEach((function(e){return r.appendChild(e)})),{oldTags:o,newTags:i}},W=function(e,t){var n=document.getElementsByTagName(e)[0];if(n){for(var r=n.getAttribute("data-rh"),a=r?r.split(","):[],o=[].concat(a),i=Object.keys(t),l=0;l<i.length;l+=1){var s=i[l],u=t[s]||"";n.getAttribute(s)!==u&&n.setAttribute(s,u),-1===a.indexOf(s)&&a.push(s);var c=o.indexOf(s);-1!==c&&o.splice(c,1)}for(var d=o.length-1;d>=0;d-=1)n.removeAttribute(o[d]);a.length===o.length?n.removeAttribute("data-rh"):n.getAttribute("data-rh")!==i.join(",")&&n.setAttribute("data-rh",i.join(","))}},Q=function(e,t){var n=e.baseTag,r=e.htmlAttributes,a=e.linkTags,o=e.metaTags,i=e.noscriptTags,l=e.onChangeClientState,s=e.scriptTags,u=e.styleTags,c=e.title,d=e.titleAttributes;W(g.BODY,e.bodyAttributes),W(g.HTML,r),function(e,t){void 0!==e&&document.title!==e&&(document.title=N(e)),W(g.TITLE,t)}(c,d);var p={baseTag:V(g.BASE,n),linkTags:V(g.LINK,a),metaTags:V(g.META,o),noscriptTags:V(g.NOSCRIPT,i),scriptTags:V(g.SCRIPT,s),styleTags:V(g.STYLE,u)},f={},m={};Object.keys(p).forEach((function(e){var t=p[e],n=t.newTags,r=t.oldTags;n.length&&(f[e]=n),r.length&&(m[e]=p[e].oldTags)})),t&&t(),l(e,f,m)},K=null,Y=function(e){function t(){for(var t,n=arguments.length,r=new Array(n),a=0;a<n;a++)r[a]=arguments[a];return(t=e.call.apply(e,[this].concat(r))||this).rendered=!1,t}f(t,e);var n=t.prototype;return n.shouldComponentUpdate=function(e){return!d()(e,this.props)},n.componentDidUpdate=function(){this.emitChange()},n.componentWillUnmount=function(){this.props.context.helmetInstances.remove(this),this.emitChange()},n.emitChange=function(){var e,t,n=this.props.context,r=n.setHelmet,a=null,o=(e=n.helmetInstances.get().map((function(e){var t=p({},e.props);return delete t.context,t})),{baseTag:A(["href"],e),bodyAttributes:_("bodyAttributes",e),defer:S(e,"defer"),encode:S(e,"encodeSpecialCharacters"),htmlAttributes:_("htmlAttributes",e),linkTags:T(g.LINK,["rel","href"],e),metaTags:T(g.META,["name","charset","http-equiv","property","itemprop"],e),noscriptTags:T(g.NOSCRIPT,["innerHTML"],e),onChangeClientState:C(e),scriptTags:T(g.SCRIPT,["src","innerHTML"],e),styleTags:T(g.STYLE,["cssText"],e),title:E(e),titleAttributes:_("titleAttributes",e),prioritizeSeoTags:j(e,"prioritizeSeoTags")});H.canUseDOM?(t=o,K&&cancelAnimationFrame(K),t.defer?K=requestAnimationFrame((function(){Q(t,(function(){K=null}))})):(Q(t),K=null)):z&&(a=z(o)),r(a)},n.init=function(){this.rendered||(this.rendered=!0,this.props.context.helmetInstances.add(this),this.emitChange())},n.render=function(){return this.init(),null},t}(r.Component);Y.propTypes={context:q.isRequired},Y.displayName="HelmetDispatcher";var Z=["children"],X=["children"],J=function(e){function t(){return e.apply(this,arguments)||this}f(t,e);var n=t.prototype;return n.shouldComponentUpdate=function(e){return!l()(P(this.props,"helmetData"),P(e,"helmetData"))},n.mapNestedChildrenToProps=function(e,t){if(!t)return null;switch(e.type){case g.SCRIPT:case g.NOSCRIPT:return{innerHTML:t};case g.STYLE:return{cssText:t};default:throw new Error("<"+e.type+" /> elements are self-closing and can not contain children. Refer to our API for more information.")}},n.flattenArrayTypeChildren=function(e){var t,n=e.child,r=e.arrayTypeChildren;return p({},r,((t={})[n.type]=[].concat(r[n.type]||[],[p({},e.newChildProps,this.mapNestedChildrenToProps(n,e.nestedChildren))]),t))},n.mapObjectTypeChildren=function(e){var t,n,r=e.child,a=e.newProps,o=e.newChildProps,i=e.nestedChildren;switch(r.type){case g.TITLE:return p({},a,((t={})[r.type]=i,t.titleAttributes=p({},o),t));case g.BODY:return p({},a,{bodyAttributes:p({},o)});case g.HTML:return p({},a,{htmlAttributes:p({},o)});default:return p({},a,((n={})[r.type]=p({},o),n))}},n.mapArrayTypeChildrenToProps=function(e,t){var n=p({},t);return Object.keys(e).forEach((function(t){var r;n=p({},n,((r={})[t]=e[t],r))})),n},n.warnOnInvalidChildren=function(e,t){return u()(w.some((function(t){return e.type===t})),"function"==typeof e.type?"You may be attempting to nest <Helmet> components within each other, which is not allowed. Refer to our API for more information.":"Only elements types "+w.join(", ")+" are allowed. Helmet does not support rendering <"+e.type+"> elements. Refer to our API for more information."),u()(!t||"string"==typeof t||Array.isArray(t)&&!t.some((function(e){return"string"!=typeof e})),"Helmet expects a string as a child of <"+e.type+">. Did you forget to wrap your children in braces? ( <"+e.type+">{``}</"+e.type+"> ) Refer to our API for more information."),!0},n.mapChildrenToProps=function(e,t){var n=this,a={};return r.Children.forEach(e,(function(e){if(e&&e.props){var r=e.props,o=r.children,i=h(r,Z),l=Object.keys(i).reduce((function(e,t){return e[x[t]||t]=i[t],e}),{}),s=e.type;switch("symbol"==typeof s?s=s.toString():n.warnOnInvalidChildren(e,o),s){case g.FRAGMENT:t=n.mapChildrenToProps(o,t);break;case g.LINK:case g.META:case g.NOSCRIPT:case g.SCRIPT:case g.STYLE:a=n.flattenArrayTypeChildren({child:e,arrayTypeChildren:a,newChildProps:l,nestedChildren:o});break;default:t=n.mapObjectTypeChildren({child:e,newProps:t,newChildProps:l,nestedChildren:o})}}})),this.mapArrayTypeChildrenToProps(a,t)},n.render=function(){var e=this.props,t=e.children,n=h(e,X),a=p({},n),o=n.helmetData;return t&&(a=this.mapChildrenToProps(t,a)),!o||o instanceof U||(o=new U(o.context,o.instances)),o?r.createElement(Y,p({},a,{context:o.value,helmetData:void 0})):r.createElement($.Consumer,null,(function(e){return r.createElement(Y,p({},a,{context:e}))}))},t}(r.Component);J.propTypes={base:o().object,bodyAttributes:o().object,children:o().oneOfType([o().arrayOf(o().node),o().node]),defaultTitle:o().string,defer:o().bool,encodeSpecialCharacters:o().bool,htmlAttributes:o().object,link:o().arrayOf(o().object),meta:o().arrayOf(o().object),noscript:o().arrayOf(o().object),onChangeClientState:o().func,script:o().arrayOf(o().object),style:o().arrayOf(o().object),title:o().string,titleAttributes:o().object,titleTemplate:o().string,prioritizeSeoTags:o().bool,helmetData:o().object},J.defaultProps={defer:!0,encodeSpecialCharacters:!0,prioritizeSeoTags:!1},J.displayName="Helmet"},2799:(e,t)=>{"use strict";var n="function"==typeof Symbol&&Symbol.for,r=n?Symbol.for("react.element"):60103,a=n?Symbol.for("react.portal"):60106,o=n?Symbol.for("react.fragment"):60107,i=n?Symbol.for("react.strict_mode"):60108,l=n?Symbol.for("react.profiler"):60114,s=n?Symbol.for("react.provider"):60109,u=n?Symbol.for("react.context"):60110,c=n?Symbol.for("react.async_mode"):60111,d=n?Symbol.for("react.concurrent_mode"):60111,p=n?Symbol.for("react.forward_ref"):60112,f=n?Symbol.for("react.suspense"):60113,m=n?Symbol.for("react.suspense_list"):60120,h=n?Symbol.for("react.memo"):60115,g=n?Symbol.for("react.lazy"):60116,y=n?Symbol.for("react.block"):60121,b=n?Symbol.for("react.fundamental"):60117,v=n?Symbol.for("react.responder"):60118,w=n?Symbol.for("react.scope"):60119;function k(e){if("object"==typeof e&&null!==e){var t=e.$$typeof;switch(t){case r:switch(e=e.type){case c:case d:case o:case l:case i:case f:return e;default:switch(e=e&&e.$$typeof){case u:case p:case g:case h:case s:return e;default:return t}}case a:return t}}}function x(e){return k(e)===d}t.AsyncMode=c,t.ConcurrentMode=d,t.ContextConsumer=u,t.ContextProvider=s,t.Element=r,t.ForwardRef=p,t.Fragment=o,t.Lazy=g,t.Memo=h,t.Portal=a,t.Profiler=l,t.StrictMode=i,t.Suspense=f,t.isAsyncMode=function(e){return x(e)||k(e)===c},t.isConcurrentMode=x,t.isContextConsumer=function(e){return k(e)===u},t.isContextProvider=function(e){return k(e)===s},t.isElement=function(e){return"object"==typeof e&&null!==e&&e.$$typeof===r},t.isForwardRef=function(e){return k(e)===p},t.isFragment=function(e){return k(e)===o},t.isLazy=function(e){return k(e)===g},t.isMemo=function(e){return k(e)===h},t.isPortal=function(e){return k(e)===a},t.isProfiler=function(e){return k(e)===l},t.isStrictMode=function(e){return k(e)===i},t.isSuspense=function(e){return k(e)===f},t.isValidElementType=function(e){return"string"==typeof e||"function"==typeof e||e===o||e===d||e===l||e===i||e===f||e===m||"object"==typeof e&&null!==e&&(e.$$typeof===g||e.$$typeof===h||e.$$typeof===s||e.$$typeof===u||e.$$typeof===p||e.$$typeof===b||e.$$typeof===v||e.$$typeof===w||e.$$typeof===y)},t.typeOf=k},4363:(e,t,n)=>{"use strict";e.exports=n(2799)},3259:(e,t,n)=>{"use strict";function r(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,e.__proto__=t}function a(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(){return i=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},i.apply(this,arguments)}var l=n(6540),s=n(5556),u=[],c=[];function d(e){var t=e(),n={loading:!0,loaded:null,error:null};return n.promise=t.then((function(e){return n.loading=!1,n.loaded=e,e})).catch((function(e){throw n.loading=!1,n.error=e,e})),n}function p(e){var t={loading:!1,loaded:{},error:null},n=[];try{Object.keys(e).forEach((function(r){var a=d(e[r]);a.loading?t.loading=!0:(t.loaded[r]=a.loaded,t.error=a.error),n.push(a.promise),a.promise.then((function(e){t.loaded[r]=e})).catch((function(e){t.error=e}))}))}catch(r){t.error=r}return t.promise=Promise.all(n).then((function(e){return t.loading=!1,e})).catch((function(e){throw t.loading=!1,e})),t}function f(e,t){return l.createElement((n=e)&&n.__esModule?n.default:n,t);var n}function m(e,t){var d,p;if(!t.loading)throw new Error("react-loadable requires a `loading` component");var m=i({loader:null,loading:null,delay:200,timeout:null,render:f,webpack:null,modules:null},t),h=null;function g(){return h||(h=e(m.loader)),h.promise}return u.push(g),"function"==typeof m.webpack&&c.push((function(){if((0,m.webpack)().every((function(e){return void 0!==e&&void 0!==n.m[e]})))return g()})),p=d=function(t){function n(n){var r;return o(a(a(r=t.call(this,n)||this)),"retry",(function(){r.setState({error:null,loading:!0,timedOut:!1}),h=e(m.loader),r._loadModule()})),g(),r.state={error:h.error,pastDelay:!1,timedOut:!1,loading:h.loading,loaded:h.loaded},r}r(n,t),n.preload=function(){return g()};var i=n.prototype;return i.UNSAFE_componentWillMount=function(){this._loadModule()},i.componentDidMount=function(){this._mounted=!0},i._loadModule=function(){var e=this;if(this.context.loadable&&Array.isArray(m.modules)&&m.modules.forEach((function(t){e.context.loadable.report(t)})),h.loading){var t=function(t){e._mounted&&e.setState(t)};"number"==typeof m.delay&&(0===m.delay?this.setState({pastDelay:!0}):this._delay=setTimeout((function(){t({pastDelay:!0})}),m.delay)),"number"==typeof m.timeout&&(this._timeout=setTimeout((function(){t({timedOut:!0})}),m.timeout));var n=function(){t({error:h.error,loaded:h.loaded,loading:h.loading}),e._clearTimeouts()};h.promise.then((function(){return n(),null})).catch((function(e){return n(),null}))}},i.componentWillUnmount=function(){this._mounted=!1,this._clearTimeouts()},i._clearTimeouts=function(){clearTimeout(this._delay),clearTimeout(this._timeout)},i.render=function(){return this.state.loading||this.state.error?l.createElement(m.loading,{isLoading:this.state.loading,pastDelay:this.state.pastDelay,timedOut:this.state.timedOut,error:this.state.error,retry:this.retry}):this.state.loaded?m.render(this.state.loaded,this.props):null},n}(l.Component),o(d,"contextTypes",{loadable:s.shape({report:s.func.isRequired})}),p}function h(e){return m(d,e)}h.Map=function(e){if("function"!=typeof e.render)throw new Error("LoadableMap requires a `render(loaded, props)` function");return m(p,e)};var g=function(e){function t(){return e.apply(this,arguments)||this}r(t,e);var n=t.prototype;return n.getChildContext=function(){return{loadable:{report:this.props.report}}},n.render=function(){return l.Children.only(this.props.children)},t}(l.Component);function y(e){for(var t=[];e.length;){var n=e.pop();t.push(n())}return Promise.all(t).then((function(){if(e.length)return y(e)}))}o(g,"propTypes",{report:s.func.isRequired}),o(g,"childContextTypes",{loadable:s.shape({report:s.func.isRequired}).isRequired}),h.Capture=g,h.preloadAll=function(){return new Promise((function(e,t){y(u).then(e,t)}))},h.preloadReady=function(){return new Promise((function(e,t){y(c).then(e,e)}))},e.exports=h},2831:(e,t,n)=>{"use strict";n.d(t,{u:()=>i,v:()=>l});var r=n(6347),a=n(8168),o=n(6540);function i(e,t,n){return void 0===n&&(n=[]),e.some((function(e){var a=e.path?(0,r.B6)(t,e):n.length?n[n.length-1].match:r.Ix.computeRootMatch(t);return a&&(n.push({route:e,match:a}),e.routes&&i(e.routes,t,n)),a})),n}function l(e,t,n){return void 0===t&&(t={}),void 0===n&&(n={}),e?o.createElement(r.dO,n,e.map((function(e,n){return o.createElement(r.qh,{key:e.key||n,path:e.path,exact:e.exact,strict:e.strict,render:function(n){return e.render?e.render((0,a.A)({},n,{},t,{route:e})):o.createElement(e.component,(0,a.A)({},n,t,{route:e}))}})}))):null}},4625:(e,t,n)=>{"use strict";n.d(t,{Kd:()=>c,N_:()=>g,k2:()=>v});var r=n(6347),a=n(2892),o=n(6540),i=n(1513),l=n(8168),s=n(8587),u=n(1561),c=function(e){function t(){for(var t,n=arguments.length,r=new Array(n),a=0;a<n;a++)r[a]=arguments[a];return(t=e.call.apply(e,[this].concat(r))||this).history=(0,i.zR)(t.props),t}return(0,a.A)(t,e),t.prototype.render=function(){return o.createElement(r.Ix,{history:this.history,children:this.props.children})},t}(o.Component);o.Component;var d=function(e,t){return"function"==typeof e?e(t):e},p=function(e,t){return"string"==typeof e?(0,i.yJ)(e,null,null,t):e},f=function(e){return e},m=o.forwardRef;void 0===m&&(m=f);var h=m((function(e,t){var n=e.innerRef,r=e.navigate,a=e.onClick,i=(0,s.A)(e,["innerRef","navigate","onClick"]),u=i.target,c=(0,l.A)({},i,{onClick:function(e){try{a&&a(e)}catch(t){throw e.preventDefault(),t}e.defaultPrevented||0!==e.button||u&&"_self"!==u||function(e){return!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)}(e)||(e.preventDefault(),r())}});return c.ref=f!==m&&t||n,o.createElement("a",c)}));var g=m((function(e,t){var n=e.component,a=void 0===n?h:n,c=e.replace,g=e.to,y=e.innerRef,b=(0,s.A)(e,["component","replace","to","innerRef"]);return o.createElement(r.XZ.Consumer,null,(function(e){e||(0,u.A)(!1);var n=e.history,r=p(d(g,e.location),e.location),s=r?n.createHref(r):"",h=(0,l.A)({},b,{href:s,navigate:function(){var t=d(g,e.location),r=(0,i.AO)(e.location)===(0,i.AO)(p(t));(c||r?n.replace:n.push)(t)}});return f!==m?h.ref=t||y:h.innerRef=y,o.createElement(a,h)}))})),y=function(e){return e},b=o.forwardRef;void 0===b&&(b=y);var v=b((function(e,t){var n=e["aria-current"],a=void 0===n?"page":n,i=e.activeClassName,c=void 0===i?"active":i,f=e.activeStyle,m=e.className,h=e.exact,v=e.isActive,w=e.location,k=e.sensitive,x=e.strict,S=e.style,E=e.to,C=e.innerRef,_=(0,s.A)(e,["aria-current","activeClassName","activeStyle","className","exact","isActive","location","sensitive","strict","style","to","innerRef"]);return o.createElement(r.XZ.Consumer,null,(function(e){e||(0,u.A)(!1);var n=w||e.location,i=p(d(E,n),n),s=i.pathname,A=s&&s.replace(/([.+*?=^!:${}()[\]|/\\])/g,"\\$1"),T=A?(0,r.B6)(n.pathname,{path:A,exact:h,sensitive:k,strict:x}):null,j=!!(v?v(T,n):T),N="function"==typeof m?m(j):m,L="function"==typeof S?S(j):S;j&&(N=function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return t.filter((function(e){return e})).join(" ")}(N,c),L=(0,l.A)({},L,f));var P=(0,l.A)({"aria-current":j&&a||null,className:N,style:L,to:i},_);return y!==b?P.ref=t||C:P.innerRef=C,o.createElement(g,P)}))}))},6347:(e,t,n)=>{"use strict";n.d(t,{B6:()=>S,Ix:()=>v,W6:()=>P,XZ:()=>b,dO:()=>N,qh:()=>E,zy:()=>R});var r=n(2892),a=n(6540),o=n(5556),i=n.n(o),l=n(1513),s=n(1561),u=n(8168),c=n(5302),d=n.n(c),p=(n(4363),n(8587)),f=(n(4146),1073741823),m="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:void 0!==n.g?n.g:{};var h=a.createContext||function(e,t){var n,o,l="__create-react-context-"+function(){var e="__global_unique_id__";return m[e]=(m[e]||0)+1}()+"__",s=function(e){function n(){for(var t,n,r,a=arguments.length,o=new Array(a),i=0;i<a;i++)o[i]=arguments[i];return(t=e.call.apply(e,[this].concat(o))||this).emitter=(n=t.props.value,r=[],{on:function(e){r.push(e)},off:function(e){r=r.filter((function(t){return t!==e}))},get:function(){return n},set:function(e,t){n=e,r.forEach((function(e){return e(n,t)}))}}),t}(0,r.A)(n,e);var a=n.prototype;return a.getChildContext=function(){var e;return(e={})[l]=this.emitter,e},a.componentWillReceiveProps=function(e){if(this.props.value!==e.value){var n,r=this.props.value,a=e.value;((o=r)===(i=a)?0!==o||1/o==1/i:o!=o&&i!=i)?n=0:(n="function"==typeof t?t(r,a):f,0!==(n|=0)&&this.emitter.set(e.value,n))}var o,i},a.render=function(){return this.props.children},n}(a.Component);s.childContextTypes=((n={})[l]=i().object.isRequired,n);var u=function(t){function n(){for(var e,n=arguments.length,r=new Array(n),a=0;a<n;a++)r[a]=arguments[a];return(e=t.call.apply(t,[this].concat(r))||this).observedBits=void 0,e.state={value:e.getValue()},e.onUpdate=function(t,n){(0|e.observedBits)&n&&e.setState({value:e.getValue()})},e}(0,r.A)(n,t);var a=n.prototype;return a.componentWillReceiveProps=function(e){var t=e.observedBits;this.observedBits=null==t?f:t},a.componentDidMount=function(){this.context[l]&&this.context[l].on(this.onUpdate);var e=this.props.observedBits;this.observedBits=null==e?f:e},a.componentWillUnmount=function(){this.context[l]&&this.context[l].off(this.onUpdate)},a.getValue=function(){return this.context[l]?this.context[l].get():e},a.render=function(){return(e=this.props.children,Array.isArray(e)?e[0]:e)(this.state.value);var e},n}(a.Component);return u.contextTypes=((o={})[l]=i().object,o),{Provider:s,Consumer:u}},g=function(e){var t=h();return t.displayName=e,t},y=g("Router-History"),b=g("Router"),v=function(e){function t(t){var n;return(n=e.call(this,t)||this).state={location:t.history.location},n._isMounted=!1,n._pendingLocation=null,t.staticContext||(n.unlisten=t.history.listen((function(e){n._pendingLocation=e}))),n}(0,r.A)(t,e),t.computeRootMatch=function(e){return{path:"/",url:"/",params:{},isExact:"/"===e}};var n=t.prototype;return n.componentDidMount=function(){var e=this;this._isMounted=!0,this.unlisten&&this.unlisten(),this.props.staticContext||(this.unlisten=this.props.history.listen((function(t){e._isMounted&&e.setState({location:t})}))),this._pendingLocation&&this.setState({location:this._pendingLocation})},n.componentWillUnmount=function(){this.unlisten&&(this.unlisten(),this._isMounted=!1,this._pendingLocation=null)},n.render=function(){return a.createElement(b.Provider,{value:{history:this.props.history,location:this.state.location,match:t.computeRootMatch(this.state.location.pathname),staticContext:this.props.staticContext}},a.createElement(y.Provider,{children:this.props.children||null,value:this.props.history}))},t}(a.Component);a.Component;a.Component;var w={},k=1e4,x=0;function S(e,t){void 0===t&&(t={}),("string"==typeof t||Array.isArray(t))&&(t={path:t});var n=t,r=n.path,a=n.exact,o=void 0!==a&&a,i=n.strict,l=void 0!==i&&i,s=n.sensitive,u=void 0!==s&&s;return[].concat(r).reduce((function(t,n){if(!n&&""!==n)return null;if(t)return t;var r=function(e,t){var n=""+t.end+t.strict+t.sensitive,r=w[n]||(w[n]={});if(r[e])return r[e];var a=[],o={regexp:d()(e,a,t),keys:a};return x<k&&(r[e]=o,x++),o}(n,{end:o,strict:l,sensitive:u}),a=r.regexp,i=r.keys,s=a.exec(e);if(!s)return null;var c=s[0],p=s.slice(1),f=e===c;return o&&!f?null:{path:n,url:"/"===n&&""===c?"/":c,isExact:f,params:i.reduce((function(e,t,n){return e[t.name]=p[n],e}),{})}}),null)}var E=function(e){function t(){return e.apply(this,arguments)||this}return(0,r.A)(t,e),t.prototype.render=function(){var e=this;return a.createElement(b.Consumer,null,(function(t){t||(0,s.A)(!1);var n=e.props.location||t.location,r=e.props.computedMatch?e.props.computedMatch:e.props.path?S(n.pathname,e.props):t.match,o=(0,u.A)({},t,{location:n,match:r}),i=e.props,l=i.children,c=i.component,d=i.render;return Array.isArray(l)&&function(e){return 0===a.Children.count(e)}(l)&&(l=null),a.createElement(b.Provider,{value:o},o.match?l?"function"==typeof l?l(o):l:c?a.createElement(c,o):d?d(o):null:"function"==typeof l?l(o):null)}))},t}(a.Component);function C(e){return"/"===e.charAt(0)?e:"/"+e}function _(e,t){if(!e)return t;var n=C(e);return 0!==t.pathname.indexOf(n)?t:(0,u.A)({},t,{pathname:t.pathname.substr(n.length)})}function A(e){return"string"==typeof e?e:(0,l.AO)(e)}function T(e){return function(){(0,s.A)(!1)}}function j(){}a.Component;var N=function(e){function t(){return e.apply(this,arguments)||this}return(0,r.A)(t,e),t.prototype.render=function(){var e=this;return a.createElement(b.Consumer,null,(function(t){t||(0,s.A)(!1);var n,r,o=e.props.location||t.location;return a.Children.forEach(e.props.children,(function(e){if(null==r&&a.isValidElement(e)){n=e;var i=e.props.path||e.props.from;r=i?S(o.pathname,(0,u.A)({},e.props,{path:i})):t.match}})),r?a.cloneElement(n,{location:o,computedMatch:r}):null}))},t}(a.Component);var L=a.useContext;function P(){return L(y)}function R(){return L(b).location}},1020:(e,t,n)=>{"use strict";var r=n(6540),a=Symbol.for("react.element"),o=Symbol.for("react.fragment"),i=Object.prototype.hasOwnProperty,l=r.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,s={key:!0,ref:!0,__self:!0,__source:!0};function u(e,t,n){var r,o={},u=null,c=null;for(r in void 0!==n&&(u=""+n),void 0!==t.key&&(u=""+t.key),void 0!==t.ref&&(c=t.ref),t)i.call(t,r)&&!s.hasOwnProperty(r)&&(o[r]=t[r]);if(e&&e.defaultProps)for(r in t=e.defaultProps)void 0===o[r]&&(o[r]=t[r]);return{$$typeof:a,type:e,key:u,ref:c,props:o,_owner:l.current}}t.Fragment=o,t.jsx=u,t.jsxs=u},5287:(e,t)=>{"use strict";var n=Symbol.for("react.element"),r=Symbol.for("react.portal"),a=Symbol.for("react.fragment"),o=Symbol.for("react.strict_mode"),i=Symbol.for("react.profiler"),l=Symbol.for("react.provider"),s=Symbol.for("react.context"),u=Symbol.for("react.forward_ref"),c=Symbol.for("react.suspense"),d=Symbol.for("react.memo"),p=Symbol.for("react.lazy"),f=Symbol.iterator;var m={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},h=Object.assign,g={};function y(e,t,n){this.props=e,this.context=t,this.refs=g,this.updater=n||m}function b(){}function v(e,t,n){this.props=e,this.context=t,this.refs=g,this.updater=n||m}y.prototype.isReactComponent={},y.prototype.setState=function(e,t){if("object"!=typeof e&&"function"!=typeof e&&null!=e)throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,e,t,"setState")},y.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")},b.prototype=y.prototype;var w=v.prototype=new b;w.constructor=v,h(w,y.prototype),w.isPureReactComponent=!0;var k=Array.isArray,x=Object.prototype.hasOwnProperty,S={current:null},E={key:!0,ref:!0,__self:!0,__source:!0};function C(e,t,r){var a,o={},i=null,l=null;if(null!=t)for(a in void 0!==t.ref&&(l=t.ref),void 0!==t.key&&(i=""+t.key),t)x.call(t,a)&&!E.hasOwnProperty(a)&&(o[a]=t[a]);var s=arguments.length-2;if(1===s)o.children=r;else if(1<s){for(var u=Array(s),c=0;c<s;c++)u[c]=arguments[c+2];o.children=u}if(e&&e.defaultProps)for(a in s=e.defaultProps)void 0===o[a]&&(o[a]=s[a]);return{$$typeof:n,type:e,key:i,ref:l,props:o,_owner:S.current}}function _(e){return"object"==typeof e&&null!==e&&e.$$typeof===n}var A=/\/+/g;function T(e,t){return"object"==typeof e&&null!==e&&null!=e.key?function(e){var t={"=":"=0",":":"=2"};return"$"+e.replace(/[=:]/g,(function(e){return t[e]}))}(""+e.key):t.toString(36)}function j(e,t,a,o,i){var l=typeof e;"undefined"!==l&&"boolean"!==l||(e=null);var s=!1;if(null===e)s=!0;else switch(l){case"string":case"number":s=!0;break;case"object":switch(e.$$typeof){case n:case r:s=!0}}if(s)return i=i(s=e),e=""===o?"."+T(s,0):o,k(i)?(a="",null!=e&&(a=e.replace(A,"$&/")+"/"),j(i,t,a,"",(function(e){return e}))):null!=i&&(_(i)&&(i=function(e,t){return{$$typeof:n,type:e.type,key:t,ref:e.ref,props:e.props,_owner:e._owner}}(i,a+(!i.key||s&&s.key===i.key?"":(""+i.key).replace(A,"$&/")+"/")+e)),t.push(i)),1;if(s=0,o=""===o?".":o+":",k(e))for(var u=0;u<e.length;u++){var c=o+T(l=e[u],u);s+=j(l,t,a,c,i)}else if(c=function(e){return null===e||"object"!=typeof e?null:"function"==typeof(e=f&&e[f]||e["@@iterator"])?e:null}(e),"function"==typeof c)for(e=c.call(e),u=0;!(l=e.next()).done;)s+=j(l=l.value,t,a,c=o+T(l,u++),i);else if("object"===l)throw t=String(e),Error("Objects are not valid as a React child (found: "+("[object Object]"===t?"object with keys {"+Object.keys(e).join(", ")+"}":t)+"). If you meant to render a collection of children, use an array instead.");return s}function N(e,t,n){if(null==e)return e;var r=[],a=0;return j(e,r,"","",(function(e){return t.call(n,e,a++)})),r}function L(e){if(-1===e._status){var t=e._result;(t=t()).then((function(t){0!==e._status&&-1!==e._status||(e._status=1,e._result=t)}),(function(t){0!==e._status&&-1!==e._status||(e._status=2,e._result=t)})),-1===e._status&&(e._status=0,e._result=t)}if(1===e._status)return e._result.default;throw e._result}var P={current:null},R={transition:null},O={ReactCurrentDispatcher:P,ReactCurrentBatchConfig:R,ReactCurrentOwner:S};function I(){throw Error("act(...) is not supported in production builds of React.")}t.Children={map:N,forEach:function(e,t,n){N(e,(function(){t.apply(this,arguments)}),n)},count:function(e){var t=0;return N(e,(function(){t++})),t},toArray:function(e){return N(e,(function(e){return e}))||[]},only:function(e){if(!_(e))throw Error("React.Children.only expected to receive a single React element child.");return e}},t.Component=y,t.Fragment=a,t.Profiler=i,t.PureComponent=v,t.StrictMode=o,t.Suspense=c,t.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=O,t.act=I,t.cloneElement=function(e,t,r){if(null==e)throw Error("React.cloneElement(...): The argument must be a React element, but you passed "+e+".");var a=h({},e.props),o=e.key,i=e.ref,l=e._owner;if(null!=t){if(void 0!==t.ref&&(i=t.ref,l=S.current),void 0!==t.key&&(o=""+t.key),e.type&&e.type.defaultProps)var s=e.type.defaultProps;for(u in t)x.call(t,u)&&!E.hasOwnProperty(u)&&(a[u]=void 0===t[u]&&void 0!==s?s[u]:t[u])}var u=arguments.length-2;if(1===u)a.children=r;else if(1<u){s=Array(u);for(var c=0;c<u;c++)s[c]=arguments[c+2];a.children=s}return{$$typeof:n,type:e.type,key:o,ref:i,props:a,_owner:l}},t.createContext=function(e){return(e={$$typeof:s,_currentValue:e,_currentValue2:e,_threadCount:0,Provider:null,Consumer:null,_defaultValue:null,_globalName:null}).Provider={$$typeof:l,_context:e},e.Consumer=e},t.createElement=C,t.createFactory=function(e){var t=C.bind(null,e);return t.type=e,t},t.createRef=function(){return{current:null}},t.forwardRef=function(e){return{$$typeof:u,render:e}},t.isValidElement=_,t.lazy=function(e){return{$$typeof:p,_payload:{_status:-1,_result:e},_init:L}},t.memo=function(e,t){return{$$typeof:d,type:e,compare:void 0===t?null:t}},t.startTransition=function(e){var t=R.transition;R.transition={};try{e()}finally{R.transition=t}},t.unstable_act=I,t.useCallback=function(e,t){return P.current.useCallback(e,t)},t.useContext=function(e){return P.current.useContext(e)},t.useDebugValue=function(){},t.useDeferredValue=function(e){return P.current.useDeferredValue(e)},t.useEffect=function(e,t){return P.current.useEffect(e,t)},t.useId=function(){return P.current.useId()},t.useImperativeHandle=function(e,t,n){return P.current.useImperativeHandle(e,t,n)},t.useInsertionEffect=function(e,t){return P.current.useInsertionEffect(e,t)},t.useLayoutEffect=function(e,t){return P.current.useLayoutEffect(e,t)},t.useMemo=function(e,t){return P.current.useMemo(e,t)},t.useReducer=function(e,t,n){return P.current.useReducer(e,t,n)},t.useRef=function(e){return P.current.useRef(e)},t.useState=function(e){return P.current.useState(e)},t.useSyncExternalStore=function(e,t,n){return P.current.useSyncExternalStore(e,t,n)},t.useTransition=function(){return P.current.useTransition()},t.version="18.3.1"},6540:(e,t,n)=>{"use strict";e.exports=n(5287)},4848:(e,t,n)=>{"use strict";e.exports=n(1020)},7463:(e,t)=>{"use strict";function n(e,t){var n=e.length;e.push(t);e:for(;0<n;){var r=n-1>>>1,a=e[r];if(!(0<o(a,t)))break e;e[r]=t,e[n]=a,n=r}}function r(e){return 0===e.length?null:e[0]}function a(e){if(0===e.length)return null;var t=e[0],n=e.pop();if(n!==t){e[0]=n;e:for(var r=0,a=e.length,i=a>>>1;r<i;){var l=2*(r+1)-1,s=e[l],u=l+1,c=e[u];if(0>o(s,n))u<a&&0>o(c,s)?(e[r]=c,e[u]=n,r=u):(e[r]=s,e[l]=n,r=l);else{if(!(u<a&&0>o(c,n)))break e;e[r]=c,e[u]=n,r=u}}}return t}function o(e,t){var n=e.sortIndex-t.sortIndex;return 0!==n?n:e.id-t.id}if("object"==typeof performance&&"function"==typeof performance.now){var i=performance;t.unstable_now=function(){return i.now()}}else{var l=Date,s=l.now();t.unstable_now=function(){return l.now()-s}}var u=[],c=[],d=1,p=null,f=3,m=!1,h=!1,g=!1,y="function"==typeof setTimeout?setTimeout:null,b="function"==typeof clearTimeout?clearTimeout:null,v="undefined"!=typeof setImmediate?setImmediate:null;function w(e){for(var t=r(c);null!==t;){if(null===t.callback)a(c);else{if(!(t.startTime<=e))break;a(c),t.sortIndex=t.expirationTime,n(u,t)}t=r(c)}}function k(e){if(g=!1,w(e),!h)if(null!==r(u))h=!0,R(x);else{var t=r(c);null!==t&&O(k,t.startTime-e)}}function x(e,n){h=!1,g&&(g=!1,b(_),_=-1),m=!0;var o=f;try{for(w(n),p=r(u);null!==p&&(!(p.expirationTime>n)||e&&!j());){var i=p.callback;if("function"==typeof i){p.callback=null,f=p.priorityLevel;var l=i(p.expirationTime<=n);n=t.unstable_now(),"function"==typeof l?p.callback=l:p===r(u)&&a(u),w(n)}else a(u);p=r(u)}if(null!==p)var s=!0;else{var d=r(c);null!==d&&O(k,d.startTime-n),s=!1}return s}finally{p=null,f=o,m=!1}}"undefined"!=typeof navigator&&void 0!==navigator.scheduling&&void 0!==navigator.scheduling.isInputPending&&navigator.scheduling.isInputPending.bind(navigator.scheduling);var S,E=!1,C=null,_=-1,A=5,T=-1;function j(){return!(t.unstable_now()-T<A)}function N(){if(null!==C){var e=t.unstable_now();T=e;var n=!0;try{n=C(!0,e)}finally{n?S():(E=!1,C=null)}}else E=!1}if("function"==typeof v)S=function(){v(N)};else if("undefined"!=typeof MessageChannel){var L=new MessageChannel,P=L.port2;L.port1.onmessage=N,S=function(){P.postMessage(null)}}else S=function(){y(N,0)};function R(e){C=e,E||(E=!0,S())}function O(e,n){_=y((function(){e(t.unstable_now())}),n)}t.unstable_IdlePriority=5,t.unstable_ImmediatePriority=1,t.unstable_LowPriority=4,t.unstable_NormalPriority=3,t.unstable_Profiling=null,t.unstable_UserBlockingPriority=2,t.unstable_cancelCallback=function(e){e.callback=null},t.unstable_continueExecution=function(){h||m||(h=!0,R(x))},t.unstable_forceFrameRate=function(e){0>e||125<e?console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported"):A=0<e?Math.floor(1e3/e):5},t.unstable_getCurrentPriorityLevel=function(){return f},t.unstable_getFirstCallbackNode=function(){return r(u)},t.unstable_next=function(e){switch(f){case 1:case 2:case 3:var t=3;break;default:t=f}var n=f;f=t;try{return e()}finally{f=n}},t.unstable_pauseExecution=function(){},t.unstable_requestPaint=function(){},t.unstable_runWithPriority=function(e,t){switch(e){case 1:case 2:case 3:case 4:case 5:break;default:e=3}var n=f;f=e;try{return t()}finally{f=n}},t.unstable_scheduleCallback=function(e,a,o){var i=t.unstable_now();switch("object"==typeof o&&null!==o?o="number"==typeof(o=o.delay)&&0<o?i+o:i:o=i,e){case 1:var l=-1;break;case 2:l=250;break;case 5:l=1073741823;break;case 4:l=1e4;break;default:l=5e3}return e={id:d++,callback:a,priorityLevel:e,startTime:o,expirationTime:l=o+l,sortIndex:-1},o>i?(e.sortIndex=o,n(c,e),null===r(u)&&e===r(c)&&(g?(b(_),_=-1):g=!0,O(k,o-i))):(e.sortIndex=l,n(u,e),h||m||(h=!0,R(x))),e},t.unstable_shouldYield=j,t.unstable_wrapCallback=function(e){var t=f;return function(){var n=f;f=t;try{return e.apply(this,arguments)}finally{f=n}}}},9982:(e,t,n)=>{"use strict";e.exports=n(7463)},2833:e=>{e.exports=function(e,t,n,r){var a=n?n.call(r,e,t):void 0;if(void 0!==a)return!!a;if(e===t)return!0;if("object"!=typeof e||!e||"object"!=typeof t||!t)return!1;var o=Object.keys(e),i=Object.keys(t);if(o.length!==i.length)return!1;for(var l=Object.prototype.hasOwnProperty.bind(t),s=0;s<o.length;s++){var u=o[s];if(!l(u))return!1;var c=e[u],d=t[u];if(!1===(a=n?n.call(r,c,d,u):void 0)||void 0===a&&c!==d)return!1}return!0}},4784:(e,t,n)=>{"use strict";n.d(t,{A:()=>r});const r={title:"Here We Build CityScope",tagline:"Urban Modelling & Simulation",url:"https://cityscope.media.mit.edu",baseUrl:"/",onBrokenLinks:"throw",favicon:"img/favicon.ico",organizationName:"CityScope",projectName:"cityscope.github.io",deploymentBranch:"master",themeConfig:{navbar:{title:"MIT CityScope",logo:{alt:"Logo",src:"img/ML_logo.png"},items:[{href:"https://cityscope.media.mit.edu/CS_cityscopeJS",label:"CityScopeJS",position:"right",src:"img/"},{href:"https://github.com/CityScope",label:"GitHub",position:"right",src:"img/"}],hideOnScroll:!1},footer:{logo:{alt:"Logo",src:"img/ML_logo_sml.png",href:"https://github.com/CityScope"},copyright:"CityScope, MIT City Science 2024",style:"light",links:[]},colorMode:{defaultMode:"light",disableSwitch:!1,respectPrefersColorScheme:!1},docs:{versionPersistence:"localStorage",sidebar:{hideable:!1,autoCollapseCategories:!1}},metadata:[],prism:{additionalLanguages:[],theme:{plain:{color:"#bfc7d5",backgroundColor:"#292d3e"},styles:[{types:["comment"],style:{color:"rgb(105, 112, 152)",fontStyle:"italic"}},{types:["string","inserted"],style:{color:"rgb(195, 232, 141)"}},{types:["number"],style:{color:"rgb(247, 140, 108)"}},{types:["builtin","char","constant","function"],style:{color:"rgb(130, 170, 255)"}},{types:["punctuation","selector"],style:{color:"rgb(199, 146, 234)"}},{types:["variable"],style:{color:"rgb(191, 199, 213)"}},{types:["class-name","attr-name"],style:{color:"rgb(255, 203, 107)"}},{types:["tag","deleted"],style:{color:"rgb(255, 85, 114)"}},{types:["operator"],style:{color:"rgb(137, 221, 255)"}},{types:["boolean"],style:{color:"rgb(255, 88, 116)"}},{types:["keyword"],style:{fontStyle:"italic"}},{types:["doctype"],style:{color:"rgb(199, 146, 234)",fontStyle:"italic"}},{types:["namespace"],style:{color:"rgb(178, 204, 214)"}},{types:["url"],style:{color:"rgb(221, 221, 221)"}}]},magicComments:[{className:"theme-code-block-highlighted-line",line:"highlight-next-line",block:{start:"highlight-start",end:"highlight-end"}}]},tableOfContents:{minHeadingLevel:2,maxHeadingLevel:3}},presets:[["@docusaurus/preset-classic",{docs:{routeBasePath:"/",sidebarPath:"./sidebars.js",editUrl:"https://github.com/CityScope/cityscope.github.io/"}}]],baseUrlIssueBanner:!0,i18n:{defaultLocale:"en",path:"i18n",locales:["en"],localeConfigs:{}},onBrokenAnchors:"warn",onBrokenMarkdownLinks:"warn",onDuplicateRoutes:"warn",staticDirectories:["static"],customFields:{},plugins:[],themes:[],scripts:[],headTags:[],stylesheets:[],clientModules:[],titleDelimiter:"|",noIndex:!1,markdown:{format:"mdx",mermaid:!1,mdx1Compat:{comments:!0,admonitions:!0,headingIds:!0}}}},8168:(e,t,n)=>{"use strict";function r(){return r=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},r.apply(this,arguments)}n.d(t,{A:()=>r})},2892:(e,t,n)=>{"use strict";function r(e,t){return r=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},r(e,t)}function a(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,r(e,t)}n.d(t,{A:()=>a})},8587:(e,t,n)=>{"use strict";function r(e,t){if(null==e)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}n.d(t,{A:()=>r})},4164:(e,t,n)=>{"use strict";function r(e){var t,n,a="";if("string"==typeof e||"number"==typeof e)a+=e;else if("object"==typeof e)if(Array.isArray(e)){var o=e.length;for(t=0;t<o;t++)e[t]&&(n=r(e[t]))&&(a&&(a+=" "),a+=n)}else for(n in e)e[n]&&(a&&(a+=" "),a+=n);return a}n.d(t,{A:()=>a});const a=function(){for(var e,t,n=0,a="",o=arguments.length;n<o;n++)(e=arguments[n])&&(t=r(e))&&(a&&(a+=" "),a+=t);return a}},1765:(e,t,n)=>{"use strict";n.d(t,{My:()=>A,f4:()=>ee});var r,a,o,i,l,s,u,c=n(6540),d=n(4164),p=Object.create,f=Object.defineProperty,m=Object.defineProperties,h=Object.getOwnPropertyDescriptor,g=Object.getOwnPropertyDescriptors,y=Object.getOwnPropertyNames,b=Object.getOwnPropertySymbols,v=Object.getPrototypeOf,w=Object.prototype.hasOwnProperty,k=Object.prototype.propertyIsEnumerable,x=(e,t,n)=>t in e?f(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,S=(e,t)=>{for(var n in t||(t={}))w.call(t,n)&&x(e,n,t[n]);if(b)for(var n of b(t))k.call(t,n)&&x(e,n,t[n]);return e},E=(e,t)=>m(e,g(t)),C=(e,t)=>{var n={};for(var r in e)w.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&b)for(var r of b(e))t.indexOf(r)<0&&k.call(e,r)&&(n[r]=e[r]);return n},_=(r={"../../node_modules/.pnpm/prismjs@1.29.0_patch_hash=vrxx3pzkik6jpmgpayxfjunetu/node_modules/prismjs/prism.js"(e,t){var n=function(){var e=/(?:^|\s)lang(?:uage)?-([\w-]+)(?=\s|$)/i,t=0,n={},r={util:{encode:function e(t){return t instanceof a?new a(t.type,e(t.content),t.alias):Array.isArray(t)?t.map(e):t.replace(/&/g,"&").replace(/</g,"<").replace(/\u00a0/g," ")},type:function(e){return Object.prototype.toString.call(e).slice(8,-1)},objId:function(e){return e.__id||Object.defineProperty(e,"__id",{value:++t}),e.__id},clone:function e(t,n){var a,o;switch(n=n||{},r.util.type(t)){case"Object":if(o=r.util.objId(t),n[o])return n[o];for(var i in a={},n[o]=a,t)t.hasOwnProperty(i)&&(a[i]=e(t[i],n));return a;case"Array":return o=r.util.objId(t),n[o]?n[o]:(a=[],n[o]=a,t.forEach((function(t,r){a[r]=e(t,n)})),a);default:return t}},getLanguage:function(t){for(;t;){var n=e.exec(t.className);if(n)return n[1].toLowerCase();t=t.parentElement}return"none"},setLanguage:function(t,n){t.className=t.className.replace(RegExp(e,"gi"),""),t.classList.add("language-"+n)},isActive:function(e,t,n){for(var r="no-"+t;e;){var a=e.classList;if(a.contains(t))return!0;if(a.contains(r))return!1;e=e.parentElement}return!!n}},languages:{plain:n,plaintext:n,text:n,txt:n,extend:function(e,t){var n=r.util.clone(r.languages[e]);for(var a in t)n[a]=t[a];return n},insertBefore:function(e,t,n,a){var o=(a=a||r.languages)[e],i={};for(var l in o)if(o.hasOwnProperty(l)){if(l==t)for(var s in n)n.hasOwnProperty(s)&&(i[s]=n[s]);n.hasOwnProperty(l)||(i[l]=o[l])}var u=a[e];return a[e]=i,r.languages.DFS(r.languages,(function(t,n){n===u&&t!=e&&(this[t]=i)})),i},DFS:function e(t,n,a,o){o=o||{};var i=r.util.objId;for(var l in t)if(t.hasOwnProperty(l)){n.call(t,l,t[l],a||l);var s=t[l],u=r.util.type(s);"Object"!==u||o[i(s)]?"Array"!==u||o[i(s)]||(o[i(s)]=!0,e(s,n,l,o)):(o[i(s)]=!0,e(s,n,null,o))}}},plugins:{},highlight:function(e,t,n){var o={code:e,grammar:t,language:n};if(r.hooks.run("before-tokenize",o),!o.grammar)throw new Error('The language "'+o.language+'" has no grammar.');return o.tokens=r.tokenize(o.code,o.grammar),r.hooks.run("after-tokenize",o),a.stringify(r.util.encode(o.tokens),o.language)},tokenize:function(e,t){var n=t.rest;if(n){for(var r in n)t[r]=n[r];delete t.rest}var a=new l;return s(a,a.head,e),i(e,a,t,a.head,0),function(e){for(var t=[],n=e.head.next;n!==e.tail;)t.push(n.value),n=n.next;return t}(a)},hooks:{all:{},add:function(e,t){var n=r.hooks.all;n[e]=n[e]||[],n[e].push(t)},run:function(e,t){var n=r.hooks.all[e];if(n&&n.length)for(var a,o=0;a=n[o++];)a(t)}},Token:a};function a(e,t,n,r){this.type=e,this.content=t,this.alias=n,this.length=0|(r||"").length}function o(e,t,n,r){e.lastIndex=t;var a=e.exec(n);if(a&&r&&a[1]){var o=a[1].length;a.index+=o,a[0]=a[0].slice(o)}return a}function i(e,t,n,l,c,d){for(var p in n)if(n.hasOwnProperty(p)&&n[p]){var f=n[p];f=Array.isArray(f)?f:[f];for(var m=0;m<f.length;++m){if(d&&d.cause==p+","+m)return;var h=f[m],g=h.inside,y=!!h.lookbehind,b=!!h.greedy,v=h.alias;if(b&&!h.pattern.global){var w=h.pattern.toString().match(/[imsuy]*$/)[0];h.pattern=RegExp(h.pattern.source,w+"g")}for(var k=h.pattern||h,x=l.next,S=c;x!==t.tail&&!(d&&S>=d.reach);S+=x.value.length,x=x.next){var E=x.value;if(t.length>e.length)return;if(!(E instanceof a)){var C,_=1;if(b){if(!(C=o(k,S,e,y))||C.index>=e.length)break;var A=C.index,T=C.index+C[0].length,j=S;for(j+=x.value.length;A>=j;)j+=(x=x.next).value.length;if(S=j-=x.value.length,x.value instanceof a)continue;for(var N=x;N!==t.tail&&(j<T||"string"==typeof N.value);N=N.next)_++,j+=N.value.length;_--,E=e.slice(S,j),C.index-=S}else if(!(C=o(k,0,E,y)))continue;A=C.index;var L=C[0],P=E.slice(0,A),R=E.slice(A+L.length),O=S+E.length;d&&O>d.reach&&(d.reach=O);var I=x.prev;if(P&&(I=s(t,I,P),S+=P.length),u(t,I,_),x=s(t,I,new a(p,g?r.tokenize(L,g):L,v,L)),R&&s(t,x,R),_>1){var D={cause:p+","+m,reach:O};i(e,t,n,x.prev,S,D),d&&D.reach>d.reach&&(d.reach=D.reach)}}}}}}function l(){var e={value:null,prev:null,next:null},t={value:null,prev:e,next:null};e.next=t,this.head=e,this.tail=t,this.length=0}function s(e,t,n){var r=t.next,a={value:n,prev:t,next:r};return t.next=a,r.prev=a,e.length++,a}function u(e,t,n){for(var r=t.next,a=0;a<n&&r!==e.tail;a++)r=r.next;t.next=r,r.prev=t,e.length-=a}return a.stringify=function e(t,n){if("string"==typeof t)return t;if(Array.isArray(t)){var a="";return t.forEach((function(t){a+=e(t,n)})),a}var o={type:t.type,content:e(t.content,n),tag:"span",classes:["token",t.type],attributes:{},language:n},i=t.alias;i&&(Array.isArray(i)?Array.prototype.push.apply(o.classes,i):o.classes.push(i)),r.hooks.run("wrap",o);var l="";for(var s in o.attributes)l+=" "+s+'="'+(o.attributes[s]||"").replace(/"/g,""")+'"';return"<"+o.tag+' class="'+o.classes.join(" ")+'"'+l+">"+o.content+"</"+o.tag+">"},r}();t.exports=n,n.default=n}},function(){return a||(0,r[y(r)[0]])((a={exports:{}}).exports,a),a.exports}),A=((e,t,n)=>(n=null!=e?p(v(e)):{},((e,t,n,r)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let a of y(t))w.call(e,a)||a===n||f(e,a,{get:()=>t[a],enumerable:!(r=h(t,a))||r.enumerable});return e})(!t&&e&&e.__esModule?n:f(n,"default",{value:e,enumerable:!0}),e)))(_());A.languages.markup={comment:{pattern:/<!--(?:(?!<!--)[\s\S])*?-->/,greedy:!0},prolog:{pattern:/<\?[\s\S]+?\?>/,greedy:!0},doctype:{pattern:/<!DOCTYPE(?:[^>"'[\]]|"[^"]*"|'[^']*')+(?:\[(?:[^<"'\]]|"[^"]*"|'[^']*'|<(?!!--)|<!--(?:[^-]|-(?!->))*-->)*\]\s*)?>/i,greedy:!0,inside:{"internal-subset":{pattern:/(^[^\[]*\[)[\s\S]+(?=\]>$)/,lookbehind:!0,greedy:!0,inside:null},string:{pattern:/"[^"]*"|'[^']*'/,greedy:!0},punctuation:/^<!|>$|[[\]]/,"doctype-tag":/^DOCTYPE/i,name:/[^\s<>'"]+/}},cdata:{pattern:/<!\[CDATA\[[\s\S]*?\]\]>/i,greedy:!0},tag:{pattern:/<\/?(?!\d)[^\s>\/=$<%]+(?:\s(?:\s*[^\s>\/=]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))|(?=[\s/>])))+)?\s*\/?>/,greedy:!0,inside:{tag:{pattern:/^<\/?[^\s>\/]+/,inside:{punctuation:/^<\/?/,namespace:/^[^\s>\/:]+:/}},"special-attr":[],"attr-value":{pattern:/=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+)/,inside:{punctuation:[{pattern:/^=/,alias:"attr-equals"},{pattern:/^(\s*)["']|["']$/,lookbehind:!0}]}},punctuation:/\/?>/,"attr-name":{pattern:/[^\s>\/]+/,inside:{namespace:/^[^\s>\/:]+:/}}}},entity:[{pattern:/&[\da-z]{1,8};/i,alias:"named-entity"},/&#x?[\da-f]{1,8};/i]},A.languages.markup.tag.inside["attr-value"].inside.entity=A.languages.markup.entity,A.languages.markup.doctype.inside["internal-subset"].inside=A.languages.markup,A.hooks.add("wrap",(function(e){"entity"===e.type&&(e.attributes.title=e.content.replace(/&/,"&"))})),Object.defineProperty(A.languages.markup.tag,"addInlined",{value:function(e,t){var n;(t=((n=((n={})["language-"+t]={pattern:/(^<!\[CDATA\[)[\s\S]+?(?=\]\]>$)/i,lookbehind:!0,inside:A.languages[t]},n.cdata=/^<!\[CDATA\[|\]\]>$/i,{"included-cdata":{pattern:/<!\[CDATA\[[\s\S]*?\]\]>/i,inside:n}}))["language-"+t]={pattern:/[\s\S]+/,inside:A.languages[t]},{}))[e]={pattern:RegExp(/(<__[^>]*>)(?:<!\[CDATA\[(?:[^\]]|\](?!\]>))*\]\]>|(?!<!\[CDATA\[)[\s\S])*?(?=<\/__>)/.source.replace(/__/g,(function(){return e})),"i"),lookbehind:!0,greedy:!0,inside:n},A.languages.insertBefore("markup","cdata",t)}}),Object.defineProperty(A.languages.markup.tag,"addAttribute",{value:function(e,t){A.languages.markup.tag.inside["special-attr"].push({pattern:RegExp(/(^|["'\s])/.source+"(?:"+e+")"+/\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))/.source,"i"),lookbehind:!0,inside:{"attr-name":/^[^\s=]+/,"attr-value":{pattern:/=[\s\S]+/,inside:{value:{pattern:/(^=\s*(["']|(?!["'])))\S[\s\S]*(?=\2$)/,lookbehind:!0,alias:[t,"language-"+t],inside:A.languages[t]},punctuation:[{pattern:/^=/,alias:"attr-equals"},/"|'/]}}}})}}),A.languages.html=A.languages.markup,A.languages.mathml=A.languages.markup,A.languages.svg=A.languages.markup,A.languages.xml=A.languages.extend("markup",{}),A.languages.ssml=A.languages.xml,A.languages.atom=A.languages.xml,A.languages.rss=A.languages.xml,o=A,i={pattern:/\\[\\(){}[\]^$+*?|.]/,alias:"escape"},s="(?:[^\\\\-]|"+(l=/\\(?:x[\da-fA-F]{2}|u[\da-fA-F]{4}|u\{[\da-fA-F]+\}|0[0-7]{0,2}|[123][0-7]{2}|c[a-zA-Z]|.)/).source+")",s=RegExp(s+"-"+s),u={pattern:/(<|')[^<>']+(?=[>']$)/,lookbehind:!0,alias:"variable"},o.languages.regex={"char-class":{pattern:/((?:^|[^\\])(?:\\\\)*)\[(?:[^\\\]]|\\[\s\S])*\]/,lookbehind:!0,inside:{"char-class-negation":{pattern:/(^\[)\^/,lookbehind:!0,alias:"operator"},"char-class-punctuation":{pattern:/^\[|\]$/,alias:"punctuation"},range:{pattern:s,inside:{escape:l,"range-punctuation":{pattern:/-/,alias:"operator"}}},"special-escape":i,"char-set":{pattern:/\\[wsd]|\\p\{[^{}]+\}/i,alias:"class-name"},escape:l}},"special-escape":i,"char-set":{pattern:/\.|\\[wsd]|\\p\{[^{}]+\}/i,alias:"class-name"},backreference:[{pattern:/\\(?![123][0-7]{2})[1-9]/,alias:"keyword"},{pattern:/\\k<[^<>']+>/,alias:"keyword",inside:{"group-name":u}}],anchor:{pattern:/[$^]|\\[ABbGZz]/,alias:"function"},escape:l,group:[{pattern:/\((?:\?(?:<[^<>']+>|'[^<>']+'|[>:]|<?[=!]|[idmnsuxU]+(?:-[idmnsuxU]+)?:?))?/,alias:"punctuation",inside:{"group-name":u}},{pattern:/\)/,alias:"punctuation"}],quantifier:{pattern:/(?:[+*?]|\{\d+(?:,\d*)?\})[?+]?/,alias:"number"},alternation:{pattern:/\|/,alias:"keyword"}},A.languages.clike={comment:[{pattern:/(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/,lookbehind:!0,greedy:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},"class-name":{pattern:/(\b(?:class|extends|implements|instanceof|interface|new|trait)\s+|\bcatch\s+\()[\w.\\]+/i,lookbehind:!0,inside:{punctuation:/[.\\]/}},keyword:/\b(?:break|catch|continue|do|else|finally|for|function|if|in|instanceof|new|null|return|throw|try|while)\b/,boolean:/\b(?:false|true)\b/,function:/\b\w+(?=\()/,number:/\b0x[\da-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?/i,operator:/[<>]=?|[!=]=?=?|--?|\+\+?|&&?|\|\|?|[?*/~^%]/,punctuation:/[{}[\];(),.:]/},A.languages.javascript=A.languages.extend("clike",{"class-name":[A.languages.clike["class-name"],{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$A-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\.(?:constructor|prototype))/,lookbehind:!0}],keyword:[{pattern:/((?:^|\})\s*)catch\b/,lookbehind:!0},{pattern:/(^|[^.]|\.\.\.\s*)\b(?:as|assert(?=\s*\{)|async(?=\s*(?:function\b|\(|[$\w\xA0-\uFFFF]|$))|await|break|case|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally(?=\s*(?:\{|$))|for|from(?=\s*(?:['"]|$))|function|(?:get|set)(?=\s*(?:[#\[$\w\xA0-\uFFFF]|$))|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)\b/,lookbehind:!0}],function:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*(?:\.\s*(?:apply|bind|call)\s*)?\()/,number:{pattern:RegExp(/(^|[^\w$])/.source+"(?:"+/NaN|Infinity/.source+"|"+/0[bB][01]+(?:_[01]+)*n?/.source+"|"+/0[oO][0-7]+(?:_[0-7]+)*n?/.source+"|"+/0[xX][\dA-Fa-f]+(?:_[\dA-Fa-f]+)*n?/.source+"|"+/\d+(?:_\d+)*n/.source+"|"+/(?:\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\.\d+(?:_\d+)*)(?:[Ee][+-]?\d+(?:_\d+)*)?/.source+")"+/(?![\w$])/.source),lookbehind:!0},operator:/--|\+\+|\*\*=?|=>|&&=?|\|\|=?|[!=]==|<<=?|>>>?=?|[-+*/%&|^!=<>]=?|\.{3}|\?\?=?|\?\.?|[~:]/}),A.languages.javascript["class-name"][0].pattern=/(\b(?:class|extends|implements|instanceof|interface|new)\s+)[\w.\\]+/,A.languages.insertBefore("javascript","keyword",{regex:{pattern:RegExp(/((?:^|[^$\w\xA0-\uFFFF."'\])\s]|\b(?:return|yield))\s*)/.source+/\//.source+"(?:"+/(?:\[(?:[^\]\\\r\n]|\\.)*\]|\\.|[^/\\\[\r\n])+\/[dgimyus]{0,7}/.source+"|"+/(?:\[(?:[^[\]\\\r\n]|\\.|\[(?:[^[\]\\\r\n]|\\.|\[(?:[^[\]\\\r\n]|\\.)*\])*\])*\]|\\.|[^/\\\[\r\n])+\/[dgimyus]{0,7}v[dgimyus]{0,7}/.source+")"+/(?=(?:\s|\/\*(?:[^*]|\*(?!\/))*\*\/)*(?:$|[\r\n,.;:})\]]|\/\/))/.source),lookbehind:!0,greedy:!0,inside:{"regex-source":{pattern:/^(\/)[\s\S]+(?=\/[a-z]*$)/,lookbehind:!0,alias:"language-regex",inside:A.languages.regex},"regex-delimiter":/^\/|\/$/,"regex-flags":/^[a-z]+$/}},"function-variable":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*[=:]\s*(?:async\s*)?(?:\bfunction\b|(?:\((?:[^()]|\([^()]*\))*\)|(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)\s*=>))/,alias:"function"},parameter:[{pattern:/(function(?:\s+(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)?\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\))/,lookbehind:!0,inside:A.languages.javascript},{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*=>)/i,lookbehind:!0,inside:A.languages.javascript},{pattern:/(\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*=>)/,lookbehind:!0,inside:A.languages.javascript},{pattern:/((?:\b|\s|^)(?!(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)(?![$\w\xA0-\uFFFF]))(?:(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*)\(\s*|\]\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*\{)/,lookbehind:!0,inside:A.languages.javascript}],constant:/\b[A-Z](?:[A-Z_]|\dx?)*\b/}),A.languages.insertBefore("javascript","string",{hashbang:{pattern:/^#!.*/,greedy:!0,alias:"comment"},"template-string":{pattern:/`(?:\\[\s\S]|\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}|(?!\$\{)[^\\`])*`/,greedy:!0,inside:{"template-punctuation":{pattern:/^`|`$/,alias:"string"},interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}/,lookbehind:!0,inside:{"interpolation-punctuation":{pattern:/^\$\{|\}$/,alias:"punctuation"},rest:A.languages.javascript}},string:/[\s\S]+/}},"string-property":{pattern:/((?:^|[,{])[ \t]*)(["'])(?:\\(?:\r\n|[\s\S])|(?!\2)[^\\\r\n])*\2(?=\s*:)/m,lookbehind:!0,greedy:!0,alias:"property"}}),A.languages.insertBefore("javascript","operator",{"literal-property":{pattern:/((?:^|[,{])[ \t]*)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*:)/m,lookbehind:!0,alias:"property"}}),A.languages.markup&&(A.languages.markup.tag.addInlined("script","javascript"),A.languages.markup.tag.addAttribute(/on(?:abort|blur|change|click|composition(?:end|start|update)|dblclick|error|focus(?:in|out)?|key(?:down|up)|load|mouse(?:down|enter|leave|move|out|over|up)|reset|resize|scroll|select|slotchange|submit|unload|wheel)/.source,"javascript")),A.languages.js=A.languages.javascript,A.languages.actionscript=A.languages.extend("javascript",{keyword:/\b(?:as|break|case|catch|class|const|default|delete|do|dynamic|each|else|extends|final|finally|for|function|get|if|implements|import|in|include|instanceof|interface|internal|is|namespace|native|new|null|override|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|use|var|void|while|with)\b/,operator:/\+\+|--|(?:[+\-*\/%^]|&&?|\|\|?|<<?|>>?>?|[!=]=?)=?|[~?@]/}),A.languages.actionscript["class-name"].alias="function",delete A.languages.actionscript.parameter,delete A.languages.actionscript["literal-property"],A.languages.markup&&A.languages.insertBefore("actionscript","string",{xml:{pattern:/(^|[^.])<\/?\w+(?:\s+[^\s>\/=]+=("|')(?:\\[\s\S]|(?!\2)[^\\])*\2)*\s*\/?>/,lookbehind:!0,inside:A.languages.markup}}),function(e){var t=/#(?!\{).+/,n={pattern:/#\{[^}]+\}/,alias:"variable"};e.languages.coffeescript=e.languages.extend("javascript",{comment:t,string:[{pattern:/'(?:\\[\s\S]|[^\\'])*'/,greedy:!0},{pattern:/"(?:\\[\s\S]|[^\\"])*"/,greedy:!0,inside:{interpolation:n}}],keyword:/\b(?:and|break|by|catch|class|continue|debugger|delete|do|each|else|extend|extends|false|finally|for|if|in|instanceof|is|isnt|let|loop|namespace|new|no|not|null|of|off|on|or|own|return|super|switch|then|this|throw|true|try|typeof|undefined|unless|until|when|while|window|with|yes|yield)\b/,"class-member":{pattern:/@(?!\d)\w+/,alias:"variable"}}),e.languages.insertBefore("coffeescript","comment",{"multiline-comment":{pattern:/###[\s\S]+?###/,alias:"comment"},"block-regex":{pattern:/\/{3}[\s\S]*?\/{3}/,alias:"regex",inside:{comment:t,interpolation:n}}}),e.languages.insertBefore("coffeescript","string",{"inline-javascript":{pattern:/`(?:\\[\s\S]|[^\\`])*`/,inside:{delimiter:{pattern:/^`|`$/,alias:"punctuation"},script:{pattern:/[\s\S]+/,alias:"language-javascript",inside:e.languages.javascript}}},"multiline-string":[{pattern:/'''[\s\S]*?'''/,greedy:!0,alias:"string"},{pattern:/"""[\s\S]*?"""/,greedy:!0,alias:"string",inside:{interpolation:n}}]}),e.languages.insertBefore("coffeescript","keyword",{property:/(?!\d)\w+(?=\s*:(?!:))/}),delete e.languages.coffeescript["template-string"],e.languages.coffee=e.languages.coffeescript}(A),function(e){var t=e.languages.javadoclike={parameter:{pattern:/(^[\t ]*(?:\/{3}|\*|\/\*\*)\s*@(?:arg|arguments|param)\s+)\w+/m,lookbehind:!0},keyword:{pattern:/(^[\t ]*(?:\/{3}|\*|\/\*\*)\s*|\{)@[a-z][a-zA-Z-]+\b/m,lookbehind:!0},punctuation:/[{}]/};Object.defineProperty(t,"addSupport",{value:function(t,n){(t="string"==typeof t?[t]:t).forEach((function(t){var r=function(e){e.inside||(e.inside={}),e.inside.rest=n},a="doc-comment";if(o=e.languages[t]){var o,i=o[a];if((i=i||(o=e.languages.insertBefore(t,"comment",{"doc-comment":{pattern:/(^|[^\\])\/\*\*[^/][\s\S]*?(?:\*\/|$)/,lookbehind:!0,alias:"comment"}}))[a])instanceof RegExp&&(i=o[a]={pattern:i}),Array.isArray(i))for(var l=0,s=i.length;l<s;l++)i[l]instanceof RegExp&&(i[l]={pattern:i[l]}),r(i[l]);else r(i)}}))}}),t.addSupport(["java","javascript","php"],t)}(A),function(e){var t=/(?:"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n])*')/;(t=(e.languages.css={comment:/\/\*[\s\S]*?\*\//,atrule:{pattern:RegExp("@[\\w-](?:"+/[^;{\s"']|\s+(?!\s)/.source+"|"+t.source+")*?"+/(?:;|(?=\s*\{))/.source),inside:{rule:/^@[\w-]+/,"selector-function-argument":{pattern:/(\bselector\s*\(\s*(?![\s)]))(?:[^()\s]|\s+(?![\s)])|\((?:[^()]|\([^()]*\))*\))+(?=\s*\))/,lookbehind:!0,alias:"selector"},keyword:{pattern:/(^|[^\w-])(?:and|not|only|or)(?![\w-])/,lookbehind:!0}}},url:{pattern:RegExp("\\burl\\((?:"+t.source+"|"+/(?:[^\\\r\n()"']|\\[\s\S])*/.source+")\\)","i"),greedy:!0,inside:{function:/^url/i,punctuation:/^\(|\)$/,string:{pattern:RegExp("^"+t.source+"$"),alias:"url"}}},selector:{pattern:RegExp("(^|[{}\\s])[^{}\\s](?:[^{};\"'\\s]|\\s+(?![\\s{])|"+t.source+")*(?=\\s*\\{)"),lookbehind:!0},string:{pattern:t,greedy:!0},property:{pattern:/(^|[^-\w\xA0-\uFFFF])(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*(?=\s*:)/i,lookbehind:!0},important:/!important\b/i,function:{pattern:/(^|[^-a-z0-9])[-a-z0-9]+(?=\()/i,lookbehind:!0},punctuation:/[(){};:,]/},e.languages.css.atrule.inside.rest=e.languages.css,e.languages.markup))&&(t.tag.addInlined("style","css"),t.tag.addAttribute("style","css"))}(A),function(e){var t=/("|')(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,n=(t=(e.languages.css.selector={pattern:e.languages.css.selector.pattern,lookbehind:!0,inside:t={"pseudo-element":/:(?:after|before|first-letter|first-line|selection)|::[-\w]+/,"pseudo-class":/:[-\w]+/,class:/\.[-\w]+/,id:/#[-\w]+/,attribute:{pattern:RegExp("\\[(?:[^[\\]\"']|"+t.source+")*\\]"),greedy:!0,inside:{punctuation:/^\[|\]$/,"case-sensitivity":{pattern:/(\s)[si]$/i,lookbehind:!0,alias:"keyword"},namespace:{pattern:/^(\s*)(?:(?!\s)[-*\w\xA0-\uFFFF])*\|(?!=)/,lookbehind:!0,inside:{punctuation:/\|$/}},"attr-name":{pattern:/^(\s*)(?:(?!\s)[-\w\xA0-\uFFFF])+/,lookbehind:!0},"attr-value":[t,{pattern:/(=\s*)(?:(?!\s)[-\w\xA0-\uFFFF])+(?=\s*$)/,lookbehind:!0}],operator:/[|~*^$]?=/}},"n-th":[{pattern:/(\(\s*)[+-]?\d*[\dn](?:\s*[+-]\s*\d+)?(?=\s*\))/,lookbehind:!0,inside:{number:/[\dn]+/,operator:/[+-]/}},{pattern:/(\(\s*)(?:even|odd)(?=\s*\))/i,lookbehind:!0}],combinator:/>|\+|~|\|\|/,punctuation:/[(),]/}},e.languages.css.atrule.inside["selector-function-argument"].inside=t,e.languages.insertBefore("css","property",{variable:{pattern:/(^|[^-\w\xA0-\uFFFF])--(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*/i,lookbehind:!0}}),{pattern:/(\b\d+)(?:%|[a-z]+(?![\w-]))/,lookbehind:!0}),{pattern:/(^|[^\w.-])-?(?:\d+(?:\.\d+)?|\.\d+)/,lookbehind:!0});e.languages.insertBefore("css","function",{operator:{pattern:/(\s)[+\-*\/](?=\s)/,lookbehind:!0},hexcode:{pattern:/\B#[\da-f]{3,8}\b/i,alias:"color"},color:[{pattern:/(^|[^\w-])(?:AliceBlue|AntiqueWhite|Aqua|Aquamarine|Azure|Beige|Bisque|Black|BlanchedAlmond|Blue|BlueViolet|Brown|BurlyWood|CadetBlue|Chartreuse|Chocolate|Coral|CornflowerBlue|Cornsilk|Crimson|Cyan|DarkBlue|DarkCyan|DarkGoldenRod|DarkGr[ae]y|DarkGreen|DarkKhaki|DarkMagenta|DarkOliveGreen|DarkOrange|DarkOrchid|DarkRed|DarkSalmon|DarkSeaGreen|DarkSlateBlue|DarkSlateGr[ae]y|DarkTurquoise|DarkViolet|DeepPink|DeepSkyBlue|DimGr[ae]y|DodgerBlue|FireBrick|FloralWhite|ForestGreen|Fuchsia|Gainsboro|GhostWhite|Gold|GoldenRod|Gr[ae]y|Green|GreenYellow|HoneyDew|HotPink|IndianRed|Indigo|Ivory|Khaki|Lavender|LavenderBlush|LawnGreen|LemonChiffon|LightBlue|LightCoral|LightCyan|LightGoldenRodYellow|LightGr[ae]y|LightGreen|LightPink|LightSalmon|LightSeaGreen|LightSkyBlue|LightSlateGr[ae]y|LightSteelBlue|LightYellow|Lime|LimeGreen|Linen|Magenta|Maroon|MediumAquaMarine|MediumBlue|MediumOrchid|MediumPurple|MediumSeaGreen|MediumSlateBlue|MediumSpringGreen|MediumTurquoise|MediumVioletRed|MidnightBlue|MintCream|MistyRose|Moccasin|NavajoWhite|Navy|OldLace|Olive|OliveDrab|Orange|OrangeRed|Orchid|PaleGoldenRod|PaleGreen|PaleTurquoise|PaleVioletRed|PapayaWhip|PeachPuff|Peru|Pink|Plum|PowderBlue|Purple|RebeccaPurple|Red|RosyBrown|RoyalBlue|SaddleBrown|Salmon|SandyBrown|SeaGreen|SeaShell|Sienna|Silver|SkyBlue|SlateBlue|SlateGr[ae]y|Snow|SpringGreen|SteelBlue|Tan|Teal|Thistle|Tomato|Transparent|Turquoise|Violet|Wheat|White|WhiteSmoke|Yellow|YellowGreen)(?![\w-])/i,lookbehind:!0},{pattern:/\b(?:hsl|rgb)\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*\)\B|\b(?:hsl|rgb)a\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*,\s*(?:0|0?\.\d+|1)\s*\)\B/i,inside:{unit:t,number:n,function:/[\w-]+(?=\()/,punctuation:/[(),]/}}],entity:/\\[\da-f]{1,8}/i,unit:t,number:n})}(A),function(e){var t=/[*&][^\s[\]{},]+/,n=/!(?:<[\w\-%#;/?:@&=+$,.!~*'()[\]]+>|(?:[a-zA-Z\d-]*!)?[\w\-%#;/?:@&=+$.~*'()]+)?/,r="(?:"+n.source+"(?:[ \t]+"+t.source+")?|"+t.source+"(?:[ \t]+"+n.source+")?)",a=/(?:[^\s\x00-\x08\x0e-\x1f!"#%&'*,\-:>?@[\]`{|}\x7f-\x84\x86-\x9f\ud800-\udfff\ufffe\uffff]|[?:-]<PLAIN>)(?:[ \t]*(?:(?![#:])<PLAIN>|:<PLAIN>))*/.source.replace(/<PLAIN>/g,(function(){return/[^\s\x00-\x08\x0e-\x1f,[\]{}\x7f-\x84\x86-\x9f\ud800-\udfff\ufffe\uffff]/.source})),o=/"(?:[^"\\\r\n]|\\.)*"|'(?:[^'\\\r\n]|\\.)*'/.source;function i(e,t){t=(t||"").replace(/m/g,"")+"m";var n=/([:\-,[{]\s*(?:\s<<prop>>[ \t]+)?)(?:<<value>>)(?=[ \t]*(?:$|,|\]|\}|(?:[\r\n]\s*)?#))/.source.replace(/<<prop>>/g,(function(){return r})).replace(/<<value>>/g,(function(){return e}));return RegExp(n,t)}e.languages.yaml={scalar:{pattern:RegExp(/([\-:]\s*(?:\s<<prop>>[ \t]+)?[|>])[ \t]*(?:((?:\r?\n|\r)[ \t]+)\S[^\r\n]*(?:\2[^\r\n]+)*)/.source.replace(/<<prop>>/g,(function(){return r}))),lookbehind:!0,alias:"string"},comment:/#.*/,key:{pattern:RegExp(/((?:^|[:\-,[{\r\n?])[ \t]*(?:<<prop>>[ \t]+)?)<<key>>(?=\s*:\s)/.source.replace(/<<prop>>/g,(function(){return r})).replace(/<<key>>/g,(function(){return"(?:"+a+"|"+o+")"}))),lookbehind:!0,greedy:!0,alias:"atrule"},directive:{pattern:/(^[ \t]*)%.+/m,lookbehind:!0,alias:"important"},datetime:{pattern:i(/\d{4}-\d\d?-\d\d?(?:[tT]|[ \t]+)\d\d?:\d{2}:\d{2}(?:\.\d*)?(?:[ \t]*(?:Z|[-+]\d\d?(?::\d{2})?))?|\d{4}-\d{2}-\d{2}|\d\d?:\d{2}(?::\d{2}(?:\.\d*)?)?/.source),lookbehind:!0,alias:"number"},boolean:{pattern:i(/false|true/.source,"i"),lookbehind:!0,alias:"important"},null:{pattern:i(/null|~/.source,"i"),lookbehind:!0,alias:"important"},string:{pattern:i(o),lookbehind:!0,greedy:!0},number:{pattern:i(/[+-]?(?:0x[\da-f]+|0o[0-7]+|(?:\d+(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?|\.inf|\.nan)/.source,"i"),lookbehind:!0},tag:n,important:t,punctuation:/---|[:[\]{}\-,|>?]|\.\.\./},e.languages.yml=e.languages.yaml}(A),function(e){var t=/(?:\\.|[^\\\n\r]|(?:\n|\r\n?)(?![\r\n]))/.source;function n(e){return e=e.replace(/<inner>/g,(function(){return t})),RegExp(/((?:^|[^\\])(?:\\{2})*)/.source+"(?:"+e+")")}var r=/(?:\\.|``(?:[^`\r\n]|`(?!`))+``|`[^`\r\n]+`|[^\\|\r\n`])+/.source,a=/\|?__(?:\|__)+\|?(?:(?:\n|\r\n?)|(?![\s\S]))/.source.replace(/__/g,(function(){return r})),o=/\|?[ \t]*:?-{3,}:?[ \t]*(?:\|[ \t]*:?-{3,}:?[ \t]*)+\|?(?:\n|\r\n?)/.source,i=(e.languages.markdown=e.languages.extend("markup",{}),e.languages.insertBefore("markdown","prolog",{"front-matter-block":{pattern:/(^(?:\s*[\r\n])?)---(?!.)[\s\S]*?[\r\n]---(?!.)/,lookbehind:!0,greedy:!0,inside:{punctuation:/^---|---$/,"front-matter":{pattern:/\S+(?:\s+\S+)*/,alias:["yaml","language-yaml"],inside:e.languages.yaml}}},blockquote:{pattern:/^>(?:[\t ]*>)*/m,alias:"punctuation"},table:{pattern:RegExp("^"+a+o+"(?:"+a+")*","m"),inside:{"table-data-rows":{pattern:RegExp("^("+a+o+")(?:"+a+")*$"),lookbehind:!0,inside:{"table-data":{pattern:RegExp(r),inside:e.languages.markdown},punctuation:/\|/}},"table-line":{pattern:RegExp("^("+a+")"+o+"$"),lookbehind:!0,inside:{punctuation:/\||:?-{3,}:?/}},"table-header-row":{pattern:RegExp("^"+a+"$"),inside:{"table-header":{pattern:RegExp(r),alias:"important",inside:e.languages.markdown},punctuation:/\|/}}}},code:[{pattern:/((?:^|\n)[ \t]*\n|(?:^|\r\n?)[ \t]*\r\n?)(?: {4}|\t).+(?:(?:\n|\r\n?)(?: {4}|\t).+)*/,lookbehind:!0,alias:"keyword"},{pattern:/^```[\s\S]*?^```$/m,greedy:!0,inside:{"code-block":{pattern:/^(```.*(?:\n|\r\n?))[\s\S]+?(?=(?:\n|\r\n?)^```$)/m,lookbehind:!0},"code-language":{pattern:/^(```).+/,lookbehind:!0},punctuation:/```/}}],title:[{pattern:/\S.*(?:\n|\r\n?)(?:==+|--+)(?=[ \t]*$)/m,alias:"important",inside:{punctuation:/==+$|--+$/}},{pattern:/(^\s*)#.+/m,lookbehind:!0,alias:"important",inside:{punctuation:/^#+|#+$/}}],hr:{pattern:/(^\s*)([*-])(?:[\t ]*\2){2,}(?=\s*$)/m,lookbehind:!0,alias:"punctuation"},list:{pattern:/(^\s*)(?:[*+-]|\d+\.)(?=[\t ].)/m,lookbehind:!0,alias:"punctuation"},"url-reference":{pattern:/!?\[[^\]]+\]:[\t ]+(?:\S+|<(?:\\.|[^>\\])+>)(?:[\t ]+(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\((?:\\.|[^)\\])*\)))?/,inside:{variable:{pattern:/^(!?\[)[^\]]+/,lookbehind:!0},string:/(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\((?:\\.|[^)\\])*\))$/,punctuation:/^[\[\]!:]|[<>]/},alias:"url"},bold:{pattern:n(/\b__(?:(?!_)<inner>|_(?:(?!_)<inner>)+_)+__\b|\*\*(?:(?!\*)<inner>|\*(?:(?!\*)<inner>)+\*)+\*\*/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^..)[\s\S]+(?=..$)/,lookbehind:!0,inside:{}},punctuation:/\*\*|__/}},italic:{pattern:n(/\b_(?:(?!_)<inner>|__(?:(?!_)<inner>)+__)+_\b|\*(?:(?!\*)<inner>|\*\*(?:(?!\*)<inner>)+\*\*)+\*/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^.)[\s\S]+(?=.$)/,lookbehind:!0,inside:{}},punctuation:/[*_]/}},strike:{pattern:n(/(~~?)(?:(?!~)<inner>)+\2/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^~~?)[\s\S]+(?=\1$)/,lookbehind:!0,inside:{}},punctuation:/~~?/}},"code-snippet":{pattern:/(^|[^\\`])(?:``[^`\r\n]+(?:`[^`\r\n]+)*``(?!`)|`[^`\r\n]+`(?!`))/,lookbehind:!0,greedy:!0,alias:["code","keyword"]},url:{pattern:n(/!?\[(?:(?!\])<inner>)+\](?:\([^\s)]+(?:[\t ]+"(?:\\.|[^"\\])*")?\)|[ \t]?\[(?:(?!\])<inner>)+\])/.source),lookbehind:!0,greedy:!0,inside:{operator:/^!/,content:{pattern:/(^\[)[^\]]+(?=\])/,lookbehind:!0,inside:{}},variable:{pattern:/(^\][ \t]?\[)[^\]]+(?=\]$)/,lookbehind:!0},url:{pattern:/(^\]\()[^\s)]+/,lookbehind:!0},string:{pattern:/(^[ \t]+)"(?:\\.|[^"\\])*"(?=\)$)/,lookbehind:!0}}}}),["url","bold","italic","strike"].forEach((function(t){["url","bold","italic","strike","code-snippet"].forEach((function(n){t!==n&&(e.languages.markdown[t].inside.content.inside[n]=e.languages.markdown[n])}))})),e.hooks.add("after-tokenize",(function(e){"markdown"!==e.language&&"md"!==e.language||function e(t){if(t&&"string"!=typeof t)for(var n=0,r=t.length;n<r;n++){var a,o=t[n];"code"!==o.type?e(o.content):(a=o.content[1],o=o.content[3],a&&o&&"code-language"===a.type&&"code-block"===o.type&&"string"==typeof a.content&&(a=a.content.replace(/\b#/g,"sharp").replace(/\b\+\+/g,"pp"),a="language-"+(a=(/[a-z][\w-]*/i.exec(a)||[""])[0].toLowerCase()),o.alias?"string"==typeof o.alias?o.alias=[o.alias,a]:o.alias.push(a):o.alias=[a]))}}(e.tokens)})),e.hooks.add("wrap",(function(t){if("code-block"===t.type){for(var n="",r=0,a=t.classes.length;r<a;r++){var o=t.classes[r];if(o=/language-(.+)/.exec(o)){n=o[1];break}}var u,c=e.languages[n];c?t.content=e.highlight(t.content.replace(i,"").replace(/&(\w{1,8}|#x?[\da-f]{1,8});/gi,(function(e,t){var n;return"#"===(t=t.toLowerCase())[0]?(n="x"===t[1]?parseInt(t.slice(2),16):Number(t.slice(1)),s(n)):l[t]||e})),c,n):n&&"none"!==n&&e.plugins.autoloader&&(u="md-"+(new Date).valueOf()+"-"+Math.floor(1e16*Math.random()),t.attributes.id=u,e.plugins.autoloader.loadLanguages(n,(function(){var t=document.getElementById(u);t&&(t.innerHTML=e.highlight(t.textContent,e.languages[n],n))})))}})),RegExp(e.languages.markup.tag.pattern.source,"gi")),l={amp:"&",lt:"<",gt:">",quot:'"'},s=String.fromCodePoint||String.fromCharCode;e.languages.md=e.languages.markdown}(A),A.languages.graphql={comment:/#.*/,description:{pattern:/(?:"""(?:[^"]|(?!""")")*"""|"(?:\\.|[^\\"\r\n])*")(?=\s*[a-z_])/i,greedy:!0,alias:"string",inside:{"language-markdown":{pattern:/(^"(?:"")?)(?!\1)[\s\S]+(?=\1$)/,lookbehind:!0,inside:A.languages.markdown}}},string:{pattern:/"""(?:[^"]|(?!""")")*"""|"(?:\\.|[^\\"\r\n])*"/,greedy:!0},number:/(?:\B-|\b)\d+(?:\.\d+)?(?:e[+-]?\d+)?\b/i,boolean:/\b(?:false|true)\b/,variable:/\$[a-z_]\w*/i,directive:{pattern:/@[a-z_]\w*/i,alias:"function"},"attr-name":{pattern:/\b[a-z_]\w*(?=\s*(?:\((?:[^()"]|"(?:\\.|[^\\"\r\n])*")*\))?:)/i,greedy:!0},"atom-input":{pattern:/\b[A-Z]\w*Input\b/,alias:"class-name"},scalar:/\b(?:Boolean|Float|ID|Int|String)\b/,constant:/\b[A-Z][A-Z_\d]*\b/,"class-name":{pattern:/(\b(?:enum|implements|interface|on|scalar|type|union)\s+|&\s*|:\s*|\[)[A-Z_]\w*/,lookbehind:!0},fragment:{pattern:/(\bfragment\s+|\.{3}\s*(?!on\b))[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},"definition-mutation":{pattern:/(\bmutation\s+)[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},"definition-query":{pattern:/(\bquery\s+)[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},keyword:/\b(?:directive|enum|extend|fragment|implements|input|interface|mutation|on|query|repeatable|scalar|schema|subscription|type|union)\b/,operator:/[!=|&]|\.{3}/,"property-query":/\w+(?=\s*\()/,object:/\w+(?=\s*\{)/,punctuation:/[!(){}\[\]:=,]/,property:/\w+/},A.hooks.add("after-tokenize",(function(e){if("graphql"===e.language)for(var t=e.tokens.filter((function(e){return"string"!=typeof e&&"comment"!==e.type&&"scalar"!==e.type})),n=0;n<t.length;){var r=t[n++];if("keyword"===r.type&&"mutation"===r.content){var a=[];if(d(["definition-mutation","punctuation"])&&"("===c(1).content){n+=2;var o=p(/^\($/,/^\)$/);if(-1===o)continue;for(;n<o;n++){var i=c(0);"variable"===i.type&&(f(i,"variable-input"),a.push(i.content))}n=o+1}if(d(["punctuation","property-query"])&&"{"===c(0).content&&(n++,f(c(0),"property-mutation"),0<a.length)){var l=p(/^\{$/,/^\}$/);if(-1!==l)for(var s=n;s<l;s++){var u=t[s];"variable"===u.type&&0<=a.indexOf(u.content)&&f(u,"variable-input")}}}}function c(e){return t[n+e]}function d(e,t){t=t||0;for(var n=0;n<e.length;n++){var r=c(n+t);if(!r||r.type!==e[n])return}return 1}function p(e,r){for(var a=1,o=n;o<t.length;o++){var i=t[o],l=i.content;if("punctuation"===i.type&&"string"==typeof l)if(e.test(l))a++;else if(r.test(l)&&0==--a)return o}return-1}function f(e,t){var n=e.alias;n?Array.isArray(n)||(e.alias=n=[n]):e.alias=n=[],n.push(t)}})),A.languages.sql={comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|(?:--|\/\/|#).*)/,lookbehind:!0},variable:[{pattern:/@(["'`])(?:\\[\s\S]|(?!\1)[^\\])+\1/,greedy:!0},/@[\w.$]+/],string:{pattern:/(^|[^@\\])("|')(?:\\[\s\S]|(?!\2)[^\\]|\2\2)*\2/,greedy:!0,lookbehind:!0},identifier:{pattern:/(^|[^@\\])`(?:\\[\s\S]|[^`\\]|``)*`/,greedy:!0,lookbehind:!0,inside:{punctuation:/^`|`$/}},function:/\b(?:AVG|COUNT|FIRST|FORMAT|LAST|LCASE|LEN|MAX|MID|MIN|MOD|NOW|ROUND|SUM|UCASE)(?=\s*\()/i,keyword:/\b(?:ACTION|ADD|AFTER|ALGORITHM|ALL|ALTER|ANALYZE|ANY|APPLY|AS|ASC|AUTHORIZATION|AUTO_INCREMENT|BACKUP|BDB|BEGIN|BERKELEYDB|BIGINT|BINARY|BIT|BLOB|BOOL|BOOLEAN|BREAK|BROWSE|BTREE|BULK|BY|CALL|CASCADED?|CASE|CHAIN|CHAR(?:ACTER|SET)?|CHECK(?:POINT)?|CLOSE|CLUSTERED|COALESCE|COLLATE|COLUMNS?|COMMENT|COMMIT(?:TED)?|COMPUTE|CONNECT|CONSISTENT|CONSTRAINT|CONTAINS(?:TABLE)?|CONTINUE|CONVERT|CREATE|CROSS|CURRENT(?:_DATE|_TIME|_TIMESTAMP|_USER)?|CURSOR|CYCLE|DATA(?:BASES?)?|DATE(?:TIME)?|DAY|DBCC|DEALLOCATE|DEC|DECIMAL|DECLARE|DEFAULT|DEFINER|DELAYED|DELETE|DELIMITERS?|DENY|DESC|DESCRIBE|DETERMINISTIC|DISABLE|DISCARD|DISK|DISTINCT|DISTINCTROW|DISTRIBUTED|DO|DOUBLE|DROP|DUMMY|DUMP(?:FILE)?|DUPLICATE|ELSE(?:IF)?|ENABLE|ENCLOSED|END|ENGINE|ENUM|ERRLVL|ERRORS|ESCAPED?|EXCEPT|EXEC(?:UTE)?|EXISTS|EXIT|EXPLAIN|EXTENDED|FETCH|FIELDS|FILE|FILLFACTOR|FIRST|FIXED|FLOAT|FOLLOWING|FOR(?: EACH ROW)?|FORCE|FOREIGN|FREETEXT(?:TABLE)?|FROM|FULL|FUNCTION|GEOMETRY(?:COLLECTION)?|GLOBAL|GOTO|GRANT|GROUP|HANDLER|HASH|HAVING|HOLDLOCK|HOUR|IDENTITY(?:COL|_INSERT)?|IF|IGNORE|IMPORT|INDEX|INFILE|INNER|INNODB|INOUT|INSERT|INT|INTEGER|INTERSECT|INTERVAL|INTO|INVOKER|ISOLATION|ITERATE|JOIN|KEYS?|KILL|LANGUAGE|LAST|LEAVE|LEFT|LEVEL|LIMIT|LINENO|LINES|LINESTRING|LOAD|LOCAL|LOCK|LONG(?:BLOB|TEXT)|LOOP|MATCH(?:ED)?|MEDIUM(?:BLOB|INT|TEXT)|MERGE|MIDDLEINT|MINUTE|MODE|MODIFIES|MODIFY|MONTH|MULTI(?:LINESTRING|POINT|POLYGON)|NATIONAL|NATURAL|NCHAR|NEXT|NO|NONCLUSTERED|NULLIF|NUMERIC|OFF?|OFFSETS?|ON|OPEN(?:DATASOURCE|QUERY|ROWSET)?|OPTIMIZE|OPTION(?:ALLY)?|ORDER|OUT(?:ER|FILE)?|OVER|PARTIAL|PARTITION|PERCENT|PIVOT|PLAN|POINT|POLYGON|PRECEDING|PRECISION|PREPARE|PREV|PRIMARY|PRINT|PRIVILEGES|PROC(?:EDURE)?|PUBLIC|PURGE|QUICK|RAISERROR|READS?|REAL|RECONFIGURE|REFERENCES|RELEASE|RENAME|REPEAT(?:ABLE)?|REPLACE|REPLICATION|REQUIRE|RESIGNAL|RESTORE|RESTRICT|RETURN(?:ING|S)?|REVOKE|RIGHT|ROLLBACK|ROUTINE|ROW(?:COUNT|GUIDCOL|S)?|RTREE|RULE|SAVE(?:POINT)?|SCHEMA|SECOND|SELECT|SERIAL(?:IZABLE)?|SESSION(?:_USER)?|SET(?:USER)?|SHARE|SHOW|SHUTDOWN|SIMPLE|SMALLINT|SNAPSHOT|SOME|SONAME|SQL|START(?:ING)?|STATISTICS|STATUS|STRIPED|SYSTEM_USER|TABLES?|TABLESPACE|TEMP(?:ORARY|TABLE)?|TERMINATED|TEXT(?:SIZE)?|THEN|TIME(?:STAMP)?|TINY(?:BLOB|INT|TEXT)|TOP?|TRAN(?:SACTIONS?)?|TRIGGER|TRUNCATE|TSEQUAL|TYPES?|UNBOUNDED|UNCOMMITTED|UNDEFINED|UNION|UNIQUE|UNLOCK|UNPIVOT|UNSIGNED|UPDATE(?:TEXT)?|USAGE|USE|USER|USING|VALUES?|VAR(?:BINARY|CHAR|CHARACTER|YING)|VIEW|WAITFOR|WARNINGS|WHEN|WHERE|WHILE|WITH(?: ROLLUP|IN)?|WORK|WRITE(?:TEXT)?|YEAR)\b/i,boolean:/\b(?:FALSE|NULL|TRUE)\b/i,number:/\b0x[\da-f]+\b|\b\d+(?:\.\d*)?|\B\.\d+\b/i,operator:/[-+*\/=%^~]|&&?|\|\|?|!=?|<(?:=>?|<|>)?|>[>=]?|\b(?:AND|BETWEEN|DIV|ILIKE|IN|IS|LIKE|NOT|OR|REGEXP|RLIKE|SOUNDS LIKE|XOR)\b/i,punctuation:/[;[\]()`,.]/},function(e){var t=e.languages.javascript["template-string"],n=t.pattern.source,r=t.inside.interpolation,a=r.inside["interpolation-punctuation"],o=r.pattern.source;function i(t,r){if(e.languages[t])return{pattern:RegExp("((?:"+r+")\\s*)"+n),lookbehind:!0,greedy:!0,inside:{"template-punctuation":{pattern:/^`|`$/,alias:"string"},"embedded-code":{pattern:/[\s\S]+/,alias:t}}}}function l(t,n,r){return t={code:t,grammar:n,language:r},e.hooks.run("before-tokenize",t),t.tokens=e.tokenize(t.code,t.grammar),e.hooks.run("after-tokenize",t),t.tokens}function s(t,n,i){var s=e.tokenize(t,{interpolation:{pattern:RegExp(o),lookbehind:!0}}),u=0,c={},d=(s=l(s.map((function(e){if("string"==typeof e)return e;var n,r;for(e=e.content;-1!==t.indexOf((r=u++,n="___"+i.toUpperCase()+"_"+r+"___")););return c[n]=e,n})).join(""),n,i),Object.keys(c));return u=0,function t(n){for(var o=0;o<n.length;o++){if(u>=d.length)return;var i,s,p,f,m,h,g,y=n[o];"string"==typeof y||"string"==typeof y.content?(i=d[u],-1!==(g=(h="string"==typeof y?y:y.content).indexOf(i))&&(++u,s=h.substring(0,g),m=c[i],p=void 0,(f={})["interpolation-punctuation"]=a,3===(f=e.tokenize(m,f)).length&&((p=[1,1]).push.apply(p,l(f[1],e.languages.javascript,"javascript")),f.splice.apply(f,p)),p=new e.Token("interpolation",f,r.alias,m),f=h.substring(g+i.length),m=[],s&&m.push(s),m.push(p),f&&(t(h=[f]),m.push.apply(m,h)),"string"==typeof y?(n.splice.apply(n,[o,1].concat(m)),o+=m.length-1):y.content=m)):(g=y.content,Array.isArray(g)?t(g):t([g]))}}(s),new e.Token(i,s,"language-"+i,t)}e.languages.javascript["template-string"]=[i("css",/\b(?:styled(?:\([^)]*\))?(?:\s*\.\s*\w+(?:\([^)]*\))*)*|css(?:\s*\.\s*(?:global|resolve))?|createGlobalStyle|keyframes)/.source),i("html",/\bhtml|\.\s*(?:inner|outer)HTML\s*\+?=/.source),i("svg",/\bsvg/.source),i("markdown",/\b(?:markdown|md)/.source),i("graphql",/\b(?:gql|graphql(?:\s*\.\s*experimental)?)/.source),i("sql",/\bsql/.source),t].filter(Boolean);var u={javascript:!0,js:!0,typescript:!0,ts:!0,jsx:!0,tsx:!0};function c(e){return"string"==typeof e?e:Array.isArray(e)?e.map(c).join(""):c(e.content)}e.hooks.add("after-tokenize",(function(t){t.language in u&&function t(n){for(var r=0,a=n.length;r<a;r++){var o,i,l,u=n[r];"string"!=typeof u&&(o=u.content,Array.isArray(o)?"template-string"===u.type?(u=o[1],3===o.length&&"string"!=typeof u&&"embedded-code"===u.type&&(i=c(u),u=u.alias,u=Array.isArray(u)?u[0]:u,l=e.languages[u])&&(o[1]=s(i,l,u))):t(o):"string"!=typeof o&&t([o]))}}(t.tokens)}))}(A),function(e){e.languages.typescript=e.languages.extend("javascript",{"class-name":{pattern:/(\b(?:class|extends|implements|instanceof|interface|new|type)\s+)(?!keyof\b)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?:\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>)?/,lookbehind:!0,greedy:!0,inside:null},builtin:/\b(?:Array|Function|Promise|any|boolean|console|never|number|string|symbol|unknown)\b/}),e.languages.typescript.keyword.push(/\b(?:abstract|declare|is|keyof|readonly|require)\b/,/\b(?:asserts|infer|interface|module|namespace|type)\b(?=\s*(?:[{_$a-zA-Z\xA0-\uFFFF]|$))/,/\btype\b(?=\s*(?:[\{*]|$))/),delete e.languages.typescript.parameter,delete e.languages.typescript["literal-property"];var t=e.languages.extend("typescript",{});delete t["class-name"],e.languages.typescript["class-name"].inside=t,e.languages.insertBefore("typescript","function",{decorator:{pattern:/@[$\w\xA0-\uFFFF]+/,inside:{at:{pattern:/^@/,alias:"operator"},function:/^[\s\S]+/}},"generic-function":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>(?=\s*\()/,greedy:!0,inside:{function:/^#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*/,generic:{pattern:/<[\s\S]+/,alias:"class-name",inside:t}}}}),e.languages.ts=e.languages.typescript}(A),function(e){var t=e.languages.javascript,n=/\{(?:[^{}]|\{(?:[^{}]|\{[^{}]*\})*\})+\}/.source,r="(@(?:arg|argument|param|property)\\s+(?:"+n+"\\s+)?)";e.languages.jsdoc=e.languages.extend("javadoclike",{parameter:{pattern:RegExp(r+/(?:(?!\s)[$\w\xA0-\uFFFF.])+(?=\s|$)/.source),lookbehind:!0,inside:{punctuation:/\./}}}),e.languages.insertBefore("jsdoc","keyword",{"optional-parameter":{pattern:RegExp(r+/\[(?:(?!\s)[$\w\xA0-\uFFFF.])+(?:=[^[\]]+)?\](?=\s|$)/.source),lookbehind:!0,inside:{parameter:{pattern:/(^\[)[$\w\xA0-\uFFFF\.]+/,lookbehind:!0,inside:{punctuation:/\./}},code:{pattern:/(=)[\s\S]*(?=\]$)/,lookbehind:!0,inside:t,alias:"language-javascript"},punctuation:/[=[\]]/}},"class-name":[{pattern:RegExp(/(@(?:augments|class|extends|interface|memberof!?|template|this|typedef)\s+(?:<TYPE>\s+)?)[A-Z]\w*(?:\.[A-Z]\w*)*/.source.replace(/<TYPE>/g,(function(){return n}))),lookbehind:!0,inside:{punctuation:/\./}},{pattern:RegExp("(@[a-z]+\\s+)"+n),lookbehind:!0,inside:{string:t.string,number:t.number,boolean:t.boolean,keyword:e.languages.typescript.keyword,operator:/=>|\.\.\.|[&|?:*]/,punctuation:/[.,;=<>{}()[\]]/}}],example:{pattern:/(@example\s+(?!\s))(?:[^@\s]|\s+(?!\s))+?(?=\s*(?:\*\s*)?(?:@\w|\*\/))/,lookbehind:!0,inside:{code:{pattern:/^([\t ]*(?:\*\s*)?)\S.*$/m,lookbehind:!0,inside:t,alias:"language-javascript"}}}}),e.languages.javadoclike.addSupport("javascript",e.languages.jsdoc)}(A),function(e){e.languages.flow=e.languages.extend("javascript",{}),e.languages.insertBefore("flow","keyword",{type:[{pattern:/\b(?:[Bb]oolean|Function|[Nn]umber|[Ss]tring|[Ss]ymbol|any|mixed|null|void)\b/,alias:"class-name"}]}),e.languages.flow["function-variable"].pattern=/(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*=\s*(?:function\b|(?:\([^()]*\)(?:\s*:\s*\w+)?|(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)\s*=>))/i,delete e.languages.flow.parameter,e.languages.insertBefore("flow","operator",{"flow-punctuation":{pattern:/\{\||\|\}/,alias:"punctuation"}}),Array.isArray(e.languages.flow.keyword)||(e.languages.flow.keyword=[e.languages.flow.keyword]),e.languages.flow.keyword.unshift({pattern:/(^|[^$]\b)(?:Class|declare|opaque|type)\b(?!\$)/,lookbehind:!0},{pattern:/(^|[^$]\B)\$(?:Diff|Enum|Exact|Keys|ObjMap|PropertyType|Record|Shape|Subtype|Supertype|await)\b(?!\$)/,lookbehind:!0})}(A),A.languages.n4js=A.languages.extend("javascript",{keyword:/\b(?:Array|any|boolean|break|case|catch|class|const|constructor|continue|debugger|declare|default|delete|do|else|enum|export|extends|false|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|module|new|null|number|package|private|protected|public|return|set|static|string|super|switch|this|throw|true|try|typeof|var|void|while|with|yield)\b/}),A.languages.insertBefore("n4js","constant",{annotation:{pattern:/@+\w+/,alias:"operator"}}),A.languages.n4jsd=A.languages.n4js,function(e){function t(e,t){return RegExp(e.replace(/<ID>/g,(function(){return/(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*/.source})),t)}e.languages.insertBefore("javascript","function-variable",{"method-variable":{pattern:RegExp("(\\.\\s*)"+e.languages.javascript["function-variable"].pattern.source),lookbehind:!0,alias:["function-variable","method","function","property-access"]}}),e.languages.insertBefore("javascript","function",{method:{pattern:RegExp("(\\.\\s*)"+e.languages.javascript.function.source),lookbehind:!0,alias:["function","property-access"]}}),e.languages.insertBefore("javascript","constant",{"known-class-name":[{pattern:/\b(?:(?:Float(?:32|64)|(?:Int|Uint)(?:8|16|32)|Uint8Clamped)?Array|ArrayBuffer|BigInt|Boolean|DataView|Date|Error|Function|Intl|JSON|(?:Weak)?(?:Map|Set)|Math|Number|Object|Promise|Proxy|Reflect|RegExp|String|Symbol|WebAssembly)\b/,alias:"class-name"},{pattern:/\b(?:[A-Z]\w*)Error\b/,alias:"class-name"}]}),e.languages.insertBefore("javascript","keyword",{imports:{pattern:t(/(\bimport\b\s*)(?:<ID>(?:\s*,\s*(?:\*\s*as\s+<ID>|\{[^{}]*\}))?|\*\s*as\s+<ID>|\{[^{}]*\})(?=\s*\bfrom\b)/.source),lookbehind:!0,inside:e.languages.javascript},exports:{pattern:t(/(\bexport\b\s*)(?:\*(?:\s*as\s+<ID>)?(?=\s*\bfrom\b)|\{[^{}]*\})/.source),lookbehind:!0,inside:e.languages.javascript}}),e.languages.javascript.keyword.unshift({pattern:/\b(?:as|default|export|from|import)\b/,alias:"module"},{pattern:/\b(?:await|break|catch|continue|do|else|finally|for|if|return|switch|throw|try|while|yield)\b/,alias:"control-flow"},{pattern:/\bnull\b/,alias:["null","nil"]},{pattern:/\bundefined\b/,alias:"nil"}),e.languages.insertBefore("javascript","operator",{spread:{pattern:/\.{3}/,alias:"operator"},arrow:{pattern:/=>/,alias:"operator"}}),e.languages.insertBefore("javascript","punctuation",{"property-access":{pattern:t(/(\.\s*)#?<ID>/.source),lookbehind:!0},"maybe-class-name":{pattern:/(^|[^$\w\xA0-\uFFFF])[A-Z][$\w\xA0-\uFFFF]+/,lookbehind:!0},dom:{pattern:/\b(?:document|(?:local|session)Storage|location|navigator|performance|window)\b/,alias:"variable"},console:{pattern:/\bconsole(?=\s*\.)/,alias:"class-name"}});for(var n=["function","function-variable","method","method-variable","property-access"],r=0;r<n.length;r++){var a=n[r],o=e.languages.javascript[a];a=(o="RegExp"===e.util.type(o)?e.languages.javascript[a]={pattern:o}:o).inside||{};(o.inside=a)["maybe-class-name"]=/^[A-Z][\s\S]*/}}(A),function(e){var t=e.util.clone(e.languages.javascript),n=/(?:\s|\/\/.*(?!.)|\/\*(?:[^*]|\*(?!\/))\*\/)/.source,r=/(?:\{(?:\{(?:\{[^{}]*\}|[^{}])*\}|[^{}])*\})/.source,a=/(?:\{<S>*\.{3}(?:[^{}]|<BRACES>)*\})/.source;function o(e,t){return e=e.replace(/<S>/g,(function(){return n})).replace(/<BRACES>/g,(function(){return r})).replace(/<SPREAD>/g,(function(){return a})),RegExp(e,t)}function i(t){for(var n=[],r=0;r<t.length;r++){var a=t[r],o=!1;"string"!=typeof a&&("tag"===a.type&&a.content[0]&&"tag"===a.content[0].type?"</"===a.content[0].content[0].content?0<n.length&&n[n.length-1].tagName===l(a.content[0].content[1])&&n.pop():"/>"!==a.content[a.content.length-1].content&&n.push({tagName:l(a.content[0].content[1]),openedBraces:0}):0<n.length&&"punctuation"===a.type&&"{"===a.content?n[n.length-1].openedBraces++:0<n.length&&0<n[n.length-1].openedBraces&&"punctuation"===a.type&&"}"===a.content?n[n.length-1].openedBraces--:o=!0),(o||"string"==typeof a)&&0<n.length&&0===n[n.length-1].openedBraces&&(o=l(a),r<t.length-1&&("string"==typeof t[r+1]||"plain-text"===t[r+1].type)&&(o+=l(t[r+1]),t.splice(r+1,1)),0<r&&("string"==typeof t[r-1]||"plain-text"===t[r-1].type)&&(o=l(t[r-1])+o,t.splice(r-1,1),r--),t[r]=new e.Token("plain-text",o,null,o)),a.content&&"string"!=typeof a.content&&i(a.content)}}a=o(a).source,e.languages.jsx=e.languages.extend("markup",t),e.languages.jsx.tag.pattern=o(/<\/?(?:[\w.:-]+(?:<S>+(?:[\w.:$-]+(?:=(?:"(?:\\[\s\S]|[^\\"])*"|'(?:\\[\s\S]|[^\\'])*'|[^\s{'"/>=]+|<BRACES>))?|<SPREAD>))*<S>*\/?)?>/.source),e.languages.jsx.tag.inside.tag.pattern=/^<\/?[^\s>\/]*/,e.languages.jsx.tag.inside["attr-value"].pattern=/=(?!\{)(?:"(?:\\[\s\S]|[^\\"])*"|'(?:\\[\s\S]|[^\\'])*'|[^\s'">]+)/,e.languages.jsx.tag.inside.tag.inside["class-name"]=/^[A-Z]\w*(?:\.[A-Z]\w*)*$/,e.languages.jsx.tag.inside.comment=t.comment,e.languages.insertBefore("inside","attr-name",{spread:{pattern:o(/<SPREAD>/.source),inside:e.languages.jsx}},e.languages.jsx.tag),e.languages.insertBefore("inside","special-attr",{script:{pattern:o(/=<BRACES>/.source),alias:"language-javascript",inside:{"script-punctuation":{pattern:/^=(?=\{)/,alias:"punctuation"},rest:e.languages.jsx}}},e.languages.jsx.tag);var l=function(e){return e?"string"==typeof e?e:"string"==typeof e.content?e.content:e.content.map(l).join(""):""};e.hooks.add("after-tokenize",(function(e){"jsx"!==e.language&&"tsx"!==e.language||i(e.tokens)}))}(A),function(e){var t=e.util.clone(e.languages.typescript);(t=(e.languages.tsx=e.languages.extend("jsx",t),delete e.languages.tsx.parameter,delete e.languages.tsx["literal-property"],e.languages.tsx.tag)).pattern=RegExp(/(^|[^\w$]|(?=<\/))/.source+"(?:"+t.pattern.source+")",t.pattern.flags),t.lookbehind=!0}(A),A.languages.swift={comment:{pattern:/(^|[^\\:])(?:\/\/.*|\/\*(?:[^/*]|\/(?!\*)|\*(?!\/)|\/\*(?:[^*]|\*(?!\/))*\*\/)*\*\/)/,lookbehind:!0,greedy:!0},"string-literal":[{pattern:RegExp(/(^|[^"#])/.source+"(?:"+/"(?:\\(?:\((?:[^()]|\([^()]*\))*\)|\r\n|[^(])|[^\\\r\n"])*"/.source+"|"+/"""(?:\\(?:\((?:[^()]|\([^()]*\))*\)|[^(])|[^\\"]|"(?!""))*"""/.source+")"+/(?!["#])/.source),lookbehind:!0,greedy:!0,inside:{interpolation:{pattern:/(\\\()(?:[^()]|\([^()]*\))*(?=\))/,lookbehind:!0,inside:null},"interpolation-punctuation":{pattern:/^\)|\\\($/,alias:"punctuation"},punctuation:/\\(?=[\r\n])/,string:/[\s\S]+/}},{pattern:RegExp(/(^|[^"#])(#+)/.source+"(?:"+/"(?:\\(?:#+\((?:[^()]|\([^()]*\))*\)|\r\n|[^#])|[^\\\r\n])*?"/.source+"|"+/"""(?:\\(?:#+\((?:[^()]|\([^()]*\))*\)|[^#])|[^\\])*?"""/.source+")\\2"),lookbehind:!0,greedy:!0,inside:{interpolation:{pattern:/(\\#+\()(?:[^()]|\([^()]*\))*(?=\))/,lookbehind:!0,inside:null},"interpolation-punctuation":{pattern:/^\)|\\#+\($/,alias:"punctuation"},string:/[\s\S]+/}}],directive:{pattern:RegExp(/#/.source+"(?:"+/(?:elseif|if)\b/.source+"(?:[ \t]*"+/(?:![ \t]*)?(?:\b\w+\b(?:[ \t]*\((?:[^()]|\([^()]*\))*\))?|\((?:[^()]|\([^()]*\))*\))(?:[ \t]*(?:&&|\|\|))?/.source+")+|"+/(?:else|endif)\b/.source+")"),alias:"property",inside:{"directive-name":/^#\w+/,boolean:/\b(?:false|true)\b/,number:/\b\d+(?:\.\d+)*\b/,operator:/!|&&|\|\||[<>]=?/,punctuation:/[(),]/}},literal:{pattern:/#(?:colorLiteral|column|dsohandle|file(?:ID|Literal|Path)?|function|imageLiteral|line)\b/,alias:"constant"},"other-directive":{pattern:/#\w+\b/,alias:"property"},attribute:{pattern:/@\w+/,alias:"atrule"},"function-definition":{pattern:/(\bfunc\s+)\w+/,lookbehind:!0,alias:"function"},label:{pattern:/\b(break|continue)\s+\w+|\b[a-zA-Z_]\w*(?=\s*:\s*(?:for|repeat|while)\b)/,lookbehind:!0,alias:"important"},keyword:/\b(?:Any|Protocol|Self|Type|actor|as|assignment|associatedtype|associativity|async|await|break|case|catch|class|continue|convenience|default|defer|deinit|didSet|do|dynamic|else|enum|extension|fallthrough|fileprivate|final|for|func|get|guard|higherThan|if|import|in|indirect|infix|init|inout|internal|is|isolated|lazy|left|let|lowerThan|mutating|none|nonisolated|nonmutating|open|operator|optional|override|postfix|precedencegroup|prefix|private|protocol|public|repeat|required|rethrows|return|right|safe|self|set|some|static|struct|subscript|super|switch|throw|throws|try|typealias|unowned|unsafe|var|weak|where|while|willSet)\b/,boolean:/\b(?:false|true)\b/,nil:{pattern:/\bnil\b/,alias:"constant"},"short-argument":/\$\d+\b/,omit:{pattern:/\b_\b/,alias:"keyword"},number:/\b(?:[\d_]+(?:\.[\de_]+)?|0x[a-f0-9_]+(?:\.[a-f0-9p_]+)?|0b[01_]+|0o[0-7_]+)\b/i,"class-name":/\b[A-Z](?:[A-Z_\d]*[a-z]\w*)?\b/,function:/\b[a-z_]\w*(?=\s*\()/i,constant:/\b(?:[A-Z_]{2,}|k[A-Z][A-Za-z_]+)\b/,operator:/[-+*/%=!<>&|^~?]+|\.[.\-+*/%=!<>&|^~?]+/,punctuation:/[{}[\]();,.:\\]/},A.languages.swift["string-literal"].forEach((function(e){e.inside.interpolation.inside=A.languages.swift})),function(e){e.languages.kotlin=e.languages.extend("clike",{keyword:{pattern:/(^|[^.])\b(?:abstract|actual|annotation|as|break|by|catch|class|companion|const|constructor|continue|crossinline|data|do|dynamic|else|enum|expect|external|final|finally|for|fun|get|if|import|in|infix|init|inline|inner|interface|internal|is|lateinit|noinline|null|object|open|operator|out|override|package|private|protected|public|reified|return|sealed|set|super|suspend|tailrec|this|throw|to|try|typealias|val|var|vararg|when|where|while)\b/,lookbehind:!0},function:[{pattern:/(?:`[^\r\n`]+`|\b\w+)(?=\s*\()/,greedy:!0},{pattern:/(\.)(?:`[^\r\n`]+`|\w+)(?=\s*\{)/,lookbehind:!0,greedy:!0}],number:/\b(?:0[xX][\da-fA-F]+(?:_[\da-fA-F]+)*|0[bB][01]+(?:_[01]+)*|\d+(?:_\d+)*(?:\.\d+(?:_\d+)*)?(?:[eE][+-]?\d+(?:_\d+)*)?[fFL]?)\b/,operator:/\+[+=]?|-[-=>]?|==?=?|!(?:!|==?)?|[\/*%<>]=?|[?:]:?|\.\.|&&|\|\||\b(?:and|inv|or|shl|shr|ushr|xor)\b/}),delete e.languages.kotlin["class-name"];var t={"interpolation-punctuation":{pattern:/^\$\{?|\}$/,alias:"punctuation"},expression:{pattern:/[\s\S]+/,inside:e.languages.kotlin}};e.languages.insertBefore("kotlin","string",{"string-literal":[{pattern:/"""(?:[^$]|\$(?:(?!\{)|\{[^{}]*\}))*?"""/,alias:"multiline",inside:{interpolation:{pattern:/\$(?:[a-z_]\w*|\{[^{}]*\})/i,inside:t},string:/[\s\S]+/}},{pattern:/"(?:[^"\\\r\n$]|\\.|\$(?:(?!\{)|\{[^{}]*\}))*"/,alias:"singleline",inside:{interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\$(?:[a-z_]\w*|\{[^{}]*\})/i,lookbehind:!0,inside:t},string:/[\s\S]+/}}],char:{pattern:/'(?:[^'\\\r\n]|\\(?:.|u[a-fA-F0-9]{0,4}))'/,greedy:!0}}),delete e.languages.kotlin.string,e.languages.insertBefore("kotlin","keyword",{annotation:{pattern:/\B@(?:\w+:)?(?:[A-Z]\w*|\[[^\]]+\])/,alias:"builtin"}}),e.languages.insertBefore("kotlin","function",{label:{pattern:/\b\w+@|@\w+\b/,alias:"symbol"}}),e.languages.kt=e.languages.kotlin,e.languages.kts=e.languages.kotlin}(A),A.languages.c=A.languages.extend("clike",{comment:{pattern:/\/\/(?:[^\r\n\\]|\\(?:\r\n?|\n|(?![\r\n])))*|\/\*[\s\S]*?(?:\*\/|$)/,greedy:!0},string:{pattern:/"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"/,greedy:!0},"class-name":{pattern:/(\b(?:enum|struct)\s+(?:__attribute__\s*\(\([\s\S]*?\)\)\s*)?)\w+|\b[a-z]\w*_t\b/,lookbehind:!0},keyword:/\b(?:_Alignas|_Alignof|_Atomic|_Bool|_Complex|_Generic|_Imaginary|_Noreturn|_Static_assert|_Thread_local|__attribute__|asm|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|inline|int|long|register|return|short|signed|sizeof|static|struct|switch|typedef|typeof|union|unsigned|void|volatile|while)\b/,function:/\b[a-z_]\w*(?=\s*\()/i,number:/(?:\b0x(?:[\da-f]+(?:\.[\da-f]*)?|\.[\da-f]+)(?:p[+-]?\d+)?|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?)[ful]{0,4}/i,operator:/>>=?|<<=?|->|([-+&|:])\1|[?:~]|[-+*/%&|^!=<>]=?/}),A.languages.insertBefore("c","string",{char:{pattern:/'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n]){0,32}'/,greedy:!0}}),A.languages.insertBefore("c","string",{macro:{pattern:/(^[\t ]*)#\s*[a-z](?:[^\r\n\\/]|\/(?!\*)|\/\*(?:[^*]|\*(?!\/))*\*\/|\\(?:\r\n|[\s\S]))*/im,lookbehind:!0,greedy:!0,alias:"property",inside:{string:[{pattern:/^(#\s*include\s*)<[^>]+>/,lookbehind:!0},A.languages.c.string],char:A.languages.c.char,comment:A.languages.c.comment,"macro-name":[{pattern:/(^#\s*define\s+)\w+\b(?!\()/i,lookbehind:!0},{pattern:/(^#\s*define\s+)\w+\b(?=\()/i,lookbehind:!0,alias:"function"}],directive:{pattern:/^(#\s*)[a-z]+/,lookbehind:!0,alias:"keyword"},"directive-hash":/^#/,punctuation:/##|\\(?=[\r\n])/,expression:{pattern:/\S[\s\S]*/,inside:A.languages.c}}}}),A.languages.insertBefore("c","function",{constant:/\b(?:EOF|NULL|SEEK_CUR|SEEK_END|SEEK_SET|__DATE__|__FILE__|__LINE__|__TIMESTAMP__|__TIME__|__func__|stderr|stdin|stdout)\b/}),delete A.languages.c.boolean,A.languages.objectivec=A.languages.extend("c",{string:{pattern:/@?"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"/,greedy:!0},keyword:/\b(?:asm|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|in|inline|int|long|register|return|self|short|signed|sizeof|static|struct|super|switch|typedef|typeof|union|unsigned|void|volatile|while)\b|(?:@interface|@end|@implementation|@protocol|@class|@public|@protected|@private|@property|@try|@catch|@finally|@throw|@synthesize|@dynamic|@selector)\b/,operator:/-[->]?|\+\+?|!=?|<<?=?|>>?=?|==?|&&?|\|\|?|[~^%?*\/@]/}),delete A.languages.objectivec["class-name"],A.languages.objc=A.languages.objectivec,A.languages.reason=A.languages.extend("clike",{string:{pattern:/"(?:\\(?:\r\n|[\s\S])|[^\\\r\n"])*"/,greedy:!0},"class-name":/\b[A-Z]\w*/,keyword:/\b(?:and|as|assert|begin|class|constraint|do|done|downto|else|end|exception|external|for|fun|function|functor|if|in|include|inherit|initializer|lazy|let|method|module|mutable|new|nonrec|object|of|open|or|private|rec|sig|struct|switch|then|to|try|type|val|virtual|when|while|with)\b/,operator:/\.{3}|:[:=]|\|>|->|=(?:==?|>)?|<=?|>=?|[|^?'#!~`]|[+\-*\/]\.?|\b(?:asr|land|lor|lsl|lsr|lxor|mod)\b/}),A.languages.insertBefore("reason","class-name",{char:{pattern:/'(?:\\x[\da-f]{2}|\\o[0-3][0-7][0-7]|\\\d{3}|\\.|[^'\\\r\n])'/,greedy:!0},constructor:/\b[A-Z]\w*\b(?!\s*\.)/,label:{pattern:/\b[a-z]\w*(?=::)/,alias:"symbol"}}),delete A.languages.reason.function,function(e){for(var t=/\/\*(?:[^*/]|\*(?!\/)|\/(?!\*)|<self>)*\*\//.source,n=0;n<2;n++)t=t.replace(/<self>/g,(function(){return t}));t=t.replace(/<self>/g,(function(){return/[^\s\S]/.source})),e.languages.rust={comment:[{pattern:RegExp(/(^|[^\\])/.source+t),lookbehind:!0,greedy:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],string:{pattern:/b?"(?:\\[\s\S]|[^\\"])*"|b?r(#*)"(?:[^"]|"(?!\1))*"\1/,greedy:!0},char:{pattern:/b?'(?:\\(?:x[0-7][\da-fA-F]|u\{(?:[\da-fA-F]_*){1,6}\}|.)|[^\\\r\n\t'])'/,greedy:!0},attribute:{pattern:/#!?\[(?:[^\[\]"]|"(?:\\[\s\S]|[^\\"])*")*\]/,greedy:!0,alias:"attr-name",inside:{string:null}},"closure-params":{pattern:/([=(,:]\s*|\bmove\s*)\|[^|]*\||\|[^|]*\|(?=\s*(?:\{|->))/,lookbehind:!0,greedy:!0,inside:{"closure-punctuation":{pattern:/^\||\|$/,alias:"punctuation"},rest:null}},"lifetime-annotation":{pattern:/'\w+/,alias:"symbol"},"fragment-specifier":{pattern:/(\$\w+:)[a-z]+/,lookbehind:!0,alias:"punctuation"},variable:/\$\w+/,"function-definition":{pattern:/(\bfn\s+)\w+/,lookbehind:!0,alias:"function"},"type-definition":{pattern:/(\b(?:enum|struct|trait|type|union)\s+)\w+/,lookbehind:!0,alias:"class-name"},"module-declaration":[{pattern:/(\b(?:crate|mod)\s+)[a-z][a-z_\d]*/,lookbehind:!0,alias:"namespace"},{pattern:/(\b(?:crate|self|super)\s*)::\s*[a-z][a-z_\d]*\b(?:\s*::(?:\s*[a-z][a-z_\d]*\s*::)*)?/,lookbehind:!0,alias:"namespace",inside:{punctuation:/::/}}],keyword:[/\b(?:Self|abstract|as|async|await|become|box|break|const|continue|crate|do|dyn|else|enum|extern|final|fn|for|if|impl|in|let|loop|macro|match|mod|move|mut|override|priv|pub|ref|return|self|static|struct|super|trait|try|type|typeof|union|unsafe|unsized|use|virtual|where|while|yield)\b/,/\b(?:bool|char|f(?:32|64)|[ui](?:8|16|32|64|128|size)|str)\b/],function:/\b[a-z_]\w*(?=\s*(?:::\s*<|\())/,macro:{pattern:/\b\w+!/,alias:"property"},constant:/\b[A-Z_][A-Z_\d]+\b/,"class-name":/\b[A-Z]\w*\b/,namespace:{pattern:/(?:\b[a-z][a-z_\d]*\s*::\s*)*\b[a-z][a-z_\d]*\s*::(?!\s*<)/,inside:{punctuation:/::/}},number:/\b(?:0x[\dA-Fa-f](?:_?[\dA-Fa-f])*|0o[0-7](?:_?[0-7])*|0b[01](?:_?[01])*|(?:(?:\d(?:_?\d)*)?\.)?\d(?:_?\d)*(?:[Ee][+-]?\d+)?)(?:_?(?:f32|f64|[iu](?:8|16|32|64|size)?))?\b/,boolean:/\b(?:false|true)\b/,punctuation:/->|\.\.=|\.{1,3}|::|[{}[\];(),:]/,operator:/[-+*\/%!^]=?|=[=>]?|&[&=]?|\|[|=]?|<<?=?|>>?=?|[@?]/},e.languages.rust["closure-params"].inside.rest=e.languages.rust,e.languages.rust.attribute.inside.string=e.languages.rust.string}(A),A.languages.go=A.languages.extend("clike",{string:{pattern:/(^|[^\\])"(?:\\.|[^"\\\r\n])*"|`[^`]*`/,lookbehind:!0,greedy:!0},keyword:/\b(?:break|case|chan|const|continue|default|defer|else|fallthrough|for|func|go(?:to)?|if|import|interface|map|package|range|return|select|struct|switch|type|var)\b/,boolean:/\b(?:_|false|iota|nil|true)\b/,number:[/\b0(?:b[01_]+|o[0-7_]+)i?\b/i,/\b0x(?:[a-f\d_]+(?:\.[a-f\d_]*)?|\.[a-f\d_]+)(?:p[+-]?\d+(?:_\d+)*)?i?(?!\w)/i,/(?:\b\d[\d_]*(?:\.[\d_]*)?|\B\.\d[\d_]*)(?:e[+-]?[\d_]+)?i?(?!\w)/i],operator:/[*\/%^!=]=?|\+[=+]?|-[=-]?|\|[=|]?|&(?:=|&|\^=?)?|>(?:>=?|=)?|<(?:<=?|=|-)?|:=|\.\.\./,builtin:/\b(?:append|bool|byte|cap|close|complex|complex(?:64|128)|copy|delete|error|float(?:32|64)|u?int(?:8|16|32|64)?|imag|len|make|new|panic|print(?:ln)?|real|recover|rune|string|uintptr)\b/}),A.languages.insertBefore("go","string",{char:{pattern:/'(?:\\.|[^'\\\r\n]){0,10}'/,greedy:!0}}),delete A.languages.go["class-name"],function(e){var t=/\b(?:alignas|alignof|asm|auto|bool|break|case|catch|char|char16_t|char32_t|char8_t|class|co_await|co_return|co_yield|compl|concept|const|const_cast|consteval|constexpr|constinit|continue|decltype|default|delete|do|double|dynamic_cast|else|enum|explicit|export|extern|final|float|for|friend|goto|if|import|inline|int|int16_t|int32_t|int64_t|int8_t|long|module|mutable|namespace|new|noexcept|nullptr|operator|override|private|protected|public|register|reinterpret_cast|requires|return|short|signed|sizeof|static|static_assert|static_cast|struct|switch|template|this|thread_local|throw|try|typedef|typeid|typename|uint16_t|uint32_t|uint64_t|uint8_t|union|unsigned|using|virtual|void|volatile|wchar_t|while)\b/,n=/\b(?!<keyword>)\w+(?:\s*\.\s*\w+)*\b/.source.replace(/<keyword>/g,(function(){return t.source}));e.languages.cpp=e.languages.extend("c",{"class-name":[{pattern:RegExp(/(\b(?:class|concept|enum|struct|typename)\s+)(?!<keyword>)\w+/.source.replace(/<keyword>/g,(function(){return t.source}))),lookbehind:!0},/\b[A-Z]\w*(?=\s*::\s*\w+\s*\()/,/\b[A-Z_]\w*(?=\s*::\s*~\w+\s*\()/i,/\b\w+(?=\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>\s*::\s*\w+\s*\()/],keyword:t,number:{pattern:/(?:\b0b[01']+|\b0x(?:[\da-f']+(?:\.[\da-f']*)?|\.[\da-f']+)(?:p[+-]?[\d']+)?|(?:\b[\d']+(?:\.[\d']*)?|\B\.[\d']+)(?:e[+-]?[\d']+)?)[ful]{0,4}/i,greedy:!0},operator:/>>=?|<<=?|->|--|\+\+|&&|\|\||[?:~]|<=>|[-+*/%&|^!=<>]=?|\b(?:and|and_eq|bitand|bitor|not|not_eq|or|or_eq|xor|xor_eq)\b/,boolean:/\b(?:false|true)\b/}),e.languages.insertBefore("cpp","string",{module:{pattern:RegExp(/(\b(?:import|module)\s+)/.source+"(?:"+/"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|<[^<>\r\n]*>/.source+"|"+/<mod-name>(?:\s*:\s*<mod-name>)?|:\s*<mod-name>/.source.replace(/<mod-name>/g,(function(){return n}))+")"),lookbehind:!0,greedy:!0,inside:{string:/^[<"][\s\S]+/,operator:/:/,punctuation:/\./}},"raw-string":{pattern:/R"([^()\\ ]{0,16})\([\s\S]*?\)\1"/,alias:"string",greedy:!0}}),e.languages.insertBefore("cpp","keyword",{"generic-function":{pattern:/\b(?!operator\b)[a-z_]\w*\s*<(?:[^<>]|<[^<>]*>)*>(?=\s*\()/i,inside:{function:/^\w+/,generic:{pattern:/<[\s\S]+/,alias:"class-name",inside:e.languages.cpp}}}}),e.languages.insertBefore("cpp","operator",{"double-colon":{pattern:/::/,alias:"punctuation"}}),e.languages.insertBefore("cpp","class-name",{"base-clause":{pattern:/(\b(?:class|struct)\s+\w+\s*:\s*)[^;{}"'\s]+(?:\s+[^;{}"'\s]+)*(?=\s*[;{])/,lookbehind:!0,greedy:!0,inside:e.languages.extend("cpp",{})}}),e.languages.insertBefore("inside","double-colon",{"class-name":/\b[a-z_]\w*\b(?!\s*::)/i},e.languages.cpp["base-clause"])}(A),A.languages.python={comment:{pattern:/(^|[^\\])#.*/,lookbehind:!0,greedy:!0},"string-interpolation":{pattern:/(?:f|fr|rf)(?:("""|''')[\s\S]*?\1|("|')(?:\\.|(?!\2)[^\\\r\n])*\2)/i,greedy:!0,inside:{interpolation:{pattern:/((?:^|[^{])(?:\{\{)*)\{(?!\{)(?:[^{}]|\{(?!\{)(?:[^{}]|\{(?!\{)(?:[^{}])+\})+\})+\}/,lookbehind:!0,inside:{"format-spec":{pattern:/(:)[^:(){}]+(?=\}$)/,lookbehind:!0},"conversion-option":{pattern:/![sra](?=[:}]$)/,alias:"punctuation"},rest:null}},string:/[\s\S]+/}},"triple-quoted-string":{pattern:/(?:[rub]|br|rb)?("""|''')[\s\S]*?\1/i,greedy:!0,alias:"string"},string:{pattern:/(?:[rub]|br|rb)?("|')(?:\\.|(?!\1)[^\\\r\n])*\1/i,greedy:!0},function:{pattern:/((?:^|\s)def[ \t]+)[a-zA-Z_]\w*(?=\s*\()/g,lookbehind:!0},"class-name":{pattern:/(\bclass\s+)\w+/i,lookbehind:!0},decorator:{pattern:/(^[\t ]*)@\w+(?:\.\w+)*/m,lookbehind:!0,alias:["annotation","punctuation"],inside:{punctuation:/\./}},keyword:/\b(?:_(?=\s*:)|and|as|assert|async|await|break|case|class|continue|def|del|elif|else|except|exec|finally|for|from|global|if|import|in|is|lambda|match|nonlocal|not|or|pass|print|raise|return|try|while|with|yield)\b/,builtin:/\b(?:__import__|abs|all|any|apply|ascii|basestring|bin|bool|buffer|bytearray|bytes|callable|chr|classmethod|cmp|coerce|compile|complex|delattr|dict|dir|divmod|enumerate|eval|execfile|file|filter|float|format|frozenset|getattr|globals|hasattr|hash|help|hex|id|input|int|intern|isinstance|issubclass|iter|len|list|locals|long|map|max|memoryview|min|next|object|oct|open|ord|pow|property|range|raw_input|reduce|reload|repr|reversed|round|set|setattr|slice|sorted|staticmethod|str|sum|super|tuple|type|unichr|unicode|vars|xrange|zip)\b/,boolean:/\b(?:False|None|True)\b/,number:/\b0(?:b(?:_?[01])+|o(?:_?[0-7])+|x(?:_?[a-f0-9])+)\b|(?:\b\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\B\.\d+(?:_\d+)*)(?:e[+-]?\d+(?:_\d+)*)?j?(?!\w)/i,operator:/[-+%=]=?|!=|:=|\*\*?=?|\/\/?=?|<[<=>]?|>[=>]?|[&|^~]/,punctuation:/[{}[\];(),.:]/},A.languages.python["string-interpolation"].inside.interpolation.inside.rest=A.languages.python,A.languages.py=A.languages.python;((e,t)=>{for(var n in t)f(e,n,{get:t[n],enumerable:!0})})({},{dracula:()=>T,duotoneDark:()=>j,duotoneLight:()=>N,github:()=>L,jettwaveDark:()=>G,jettwaveLight:()=>H,nightOwl:()=>P,nightOwlLight:()=>R,oceanicNext:()=>D,okaidia:()=>M,oneDark:()=>V,oneLight:()=>W,palenight:()=>F,shadesOfPurple:()=>z,synthwave84:()=>B,ultramin:()=>U,vsDark:()=>$,vsLight:()=>q});var T={plain:{color:"#F8F8F2",backgroundColor:"#282A36"},styles:[{types:["prolog","constant","builtin"],style:{color:"rgb(189, 147, 249)"}},{types:["inserted","function"],style:{color:"rgb(80, 250, 123)"}},{types:["deleted"],style:{color:"rgb(255, 85, 85)"}},{types:["changed"],style:{color:"rgb(255, 184, 108)"}},{types:["punctuation","symbol"],style:{color:"rgb(248, 248, 242)"}},{types:["string","char","tag","selector"],style:{color:"rgb(255, 121, 198)"}},{types:["keyword","variable"],style:{color:"rgb(189, 147, 249)",fontStyle:"italic"}},{types:["comment"],style:{color:"rgb(98, 114, 164)"}},{types:["attr-name"],style:{color:"rgb(241, 250, 140)"}}]},j={plain:{backgroundColor:"#2a2734",color:"#9a86fd"},styles:[{types:["comment","prolog","doctype","cdata","punctuation"],style:{color:"#6c6783"}},{types:["namespace"],style:{opacity:.7}},{types:["tag","operator","number"],style:{color:"#e09142"}},{types:["property","function"],style:{color:"#9a86fd"}},{types:["tag-id","selector","atrule-id"],style:{color:"#eeebff"}},{types:["attr-name"],style:{color:"#c4b9fe"}},{types:["boolean","string","entity","url","attr-value","keyword","control","directive","unit","statement","regex","atrule","placeholder","variable"],style:{color:"#ffcc99"}},{types:["deleted"],style:{textDecorationLine:"line-through"}},{types:["inserted"],style:{textDecorationLine:"underline"}},{types:["italic"],style:{fontStyle:"italic"}},{types:["important","bold"],style:{fontWeight:"bold"}},{types:["important"],style:{color:"#c4b9fe"}}]},N={plain:{backgroundColor:"#faf8f5",color:"#728fcb"},styles:[{types:["comment","prolog","doctype","cdata","punctuation"],style:{color:"#b6ad9a"}},{types:["namespace"],style:{opacity:.7}},{types:["tag","operator","number"],style:{color:"#063289"}},{types:["property","function"],style:{color:"#b29762"}},{types:["tag-id","selector","atrule-id"],style:{color:"#2d2006"}},{types:["attr-name"],style:{color:"#896724"}},{types:["boolean","string","entity","url","attr-value","keyword","control","directive","unit","statement","regex","atrule"],style:{color:"#728fcb"}},{types:["placeholder","variable"],style:{color:"#93abdc"}},{types:["deleted"],style:{textDecorationLine:"line-through"}},{types:["inserted"],style:{textDecorationLine:"underline"}},{types:["italic"],style:{fontStyle:"italic"}},{types:["important","bold"],style:{fontWeight:"bold"}},{types:["important"],style:{color:"#896724"}}]},L={plain:{color:"#393A34",backgroundColor:"#f6f8fa"},styles:[{types:["comment","prolog","doctype","cdata"],style:{color:"#999988",fontStyle:"italic"}},{types:["namespace"],style:{opacity:.7}},{types:["string","attr-value"],style:{color:"#e3116c"}},{types:["punctuation","operator"],style:{color:"#393A34"}},{types:["entity","url","symbol","number","boolean","variable","constant","property","regex","inserted"],style:{color:"#36acaa"}},{types:["atrule","keyword","attr-name","selector"],style:{color:"#00a4db"}},{types:["function","deleted","tag"],style:{color:"#d73a49"}},{types:["function-variable"],style:{color:"#6f42c1"}},{types:["tag","selector","keyword"],style:{color:"#00009f"}}]},P={plain:{color:"#d6deeb",backgroundColor:"#011627"},styles:[{types:["changed"],style:{color:"rgb(162, 191, 252)",fontStyle:"italic"}},{types:["deleted"],style:{color:"rgba(239, 83, 80, 0.56)",fontStyle:"italic"}},{types:["inserted","attr-name"],style:{color:"rgb(173, 219, 103)",fontStyle:"italic"}},{types:["comment"],style:{color:"rgb(99, 119, 119)",fontStyle:"italic"}},{types:["string","url"],style:{color:"rgb(173, 219, 103)"}},{types:["variable"],style:{color:"rgb(214, 222, 235)"}},{types:["number"],style:{color:"rgb(247, 140, 108)"}},{types:["builtin","char","constant","function"],style:{color:"rgb(130, 170, 255)"}},{types:["punctuation"],style:{color:"rgb(199, 146, 234)"}},{types:["selector","doctype"],style:{color:"rgb(199, 146, 234)",fontStyle:"italic"}},{types:["class-name"],style:{color:"rgb(255, 203, 139)"}},{types:["tag","operator","keyword"],style:{color:"rgb(127, 219, 202)"}},{types:["boolean"],style:{color:"rgb(255, 88, 116)"}},{types:["property"],style:{color:"rgb(128, 203, 196)"}},{types:["namespace"],style:{color:"rgb(178, 204, 214)"}}]},R={plain:{color:"#403f53",backgroundColor:"#FBFBFB"},styles:[{types:["changed"],style:{color:"rgb(162, 191, 252)",fontStyle:"italic"}},{types:["deleted"],style:{color:"rgba(239, 83, 80, 0.56)",fontStyle:"italic"}},{types:["inserted","attr-name"],style:{color:"rgb(72, 118, 214)",fontStyle:"italic"}},{types:["comment"],style:{color:"rgb(152, 159, 177)",fontStyle:"italic"}},{types:["string","builtin","char","constant","url"],style:{color:"rgb(72, 118, 214)"}},{types:["variable"],style:{color:"rgb(201, 103, 101)"}},{types:["number"],style:{color:"rgb(170, 9, 130)"}},{types:["punctuation"],style:{color:"rgb(153, 76, 195)"}},{types:["function","selector","doctype"],style:{color:"rgb(153, 76, 195)",fontStyle:"italic"}},{types:["class-name"],style:{color:"rgb(17, 17, 17)"}},{types:["tag"],style:{color:"rgb(153, 76, 195)"}},{types:["operator","property","keyword","namespace"],style:{color:"rgb(12, 150, 155)"}},{types:["boolean"],style:{color:"rgb(188, 84, 84)"}}]},O="#c5a5c5",I="#8dc891",D={plain:{backgroundColor:"#282c34",color:"#ffffff"},styles:[{types:["attr-name"],style:{color:O}},{types:["attr-value"],style:{color:I}},{types:["comment","block-comment","prolog","doctype","cdata","shebang"],style:{color:"#999999"}},{types:["property","number","function-name","constant","symbol","deleted"],style:{color:"#5a9bcf"}},{types:["boolean"],style:{color:"#ff8b50"}},{types:["tag"],style:{color:"#fc929e"}},{types:["string"],style:{color:I}},{types:["punctuation"],style:{color:I}},{types:["selector","char","builtin","inserted"],style:{color:"#D8DEE9"}},{types:["function"],style:{color:"#79b6f2"}},{types:["operator","entity","url","variable"],style:{color:"#d7deea"}},{types:["keyword"],style:{color:O}},{types:["atrule","class-name"],style:{color:"#FAC863"}},{types:["important"],style:{fontWeight:"400"}},{types:["bold"],style:{fontWeight:"bold"}},{types:["italic"],style:{fontStyle:"italic"}},{types:["namespace"],style:{opacity:.7}}]},M={plain:{color:"#f8f8f2",backgroundColor:"#272822"},styles:[{types:["changed"],style:{color:"rgb(162, 191, 252)",fontStyle:"italic"}},{types:["deleted"],style:{color:"#f92672",fontStyle:"italic"}},{types:["inserted"],style:{color:"rgb(173, 219, 103)",fontStyle:"italic"}},{types:["comment"],style:{color:"#8292a2",fontStyle:"italic"}},{types:["string","url"],style:{color:"#a6e22e"}},{types:["variable"],style:{color:"#f8f8f2"}},{types:["number"],style:{color:"#ae81ff"}},{types:["builtin","char","constant","function","class-name"],style:{color:"#e6db74"}},{types:["punctuation"],style:{color:"#f8f8f2"}},{types:["selector","doctype"],style:{color:"#a6e22e",fontStyle:"italic"}},{types:["tag","operator","keyword"],style:{color:"#66d9ef"}},{types:["boolean"],style:{color:"#ae81ff"}},{types:["namespace"],style:{color:"rgb(178, 204, 214)",opacity:.7}},{types:["tag","property"],style:{color:"#f92672"}},{types:["attr-name"],style:{color:"#a6e22e !important"}},{types:["doctype"],style:{color:"#8292a2"}},{types:["rule"],style:{color:"#e6db74"}}]},F={plain:{color:"#bfc7d5",backgroundColor:"#292d3e"},styles:[{types:["comment"],style:{color:"rgb(105, 112, 152)",fontStyle:"italic"}},{types:["string","inserted"],style:{color:"rgb(195, 232, 141)"}},{types:["number"],style:{color:"rgb(247, 140, 108)"}},{types:["builtin","char","constant","function"],style:{color:"rgb(130, 170, 255)"}},{types:["punctuation","selector"],style:{color:"rgb(199, 146, 234)"}},{types:["variable"],style:{color:"rgb(191, 199, 213)"}},{types:["class-name","attr-name"],style:{color:"rgb(255, 203, 107)"}},{types:["tag","deleted"],style:{color:"rgb(255, 85, 114)"}},{types:["operator"],style:{color:"rgb(137, 221, 255)"}},{types:["boolean"],style:{color:"rgb(255, 88, 116)"}},{types:["keyword"],style:{fontStyle:"italic"}},{types:["doctype"],style:{color:"rgb(199, 146, 234)",fontStyle:"italic"}},{types:["namespace"],style:{color:"rgb(178, 204, 214)"}},{types:["url"],style:{color:"rgb(221, 221, 221)"}}]},z={plain:{color:"#9EFEFF",backgroundColor:"#2D2A55"},styles:[{types:["changed"],style:{color:"rgb(255, 238, 128)"}},{types:["deleted"],style:{color:"rgba(239, 83, 80, 0.56)"}},{types:["inserted"],style:{color:"rgb(173, 219, 103)"}},{types:["comment"],style:{color:"rgb(179, 98, 255)",fontStyle:"italic"}},{types:["punctuation"],style:{color:"rgb(255, 255, 255)"}},{types:["constant"],style:{color:"rgb(255, 98, 140)"}},{types:["string","url"],style:{color:"rgb(165, 255, 144)"}},{types:["variable"],style:{color:"rgb(255, 238, 128)"}},{types:["number","boolean"],style:{color:"rgb(255, 98, 140)"}},{types:["attr-name"],style:{color:"rgb(255, 180, 84)"}},{types:["keyword","operator","property","namespace","tag","selector","doctype"],style:{color:"rgb(255, 157, 0)"}},{types:["builtin","char","constant","function","class-name"],style:{color:"rgb(250, 208, 0)"}}]},B={plain:{backgroundColor:"linear-gradient(to bottom, #2a2139 75%, #34294f)",backgroundImage:"#34294f",color:"#f92aad",textShadow:"0 0 2px #100c0f, 0 0 5px #dc078e33, 0 0 10px #fff3"},styles:[{types:["comment","block-comment","prolog","doctype","cdata"],style:{color:"#495495",fontStyle:"italic"}},{types:["punctuation"],style:{color:"#ccc"}},{types:["tag","attr-name","namespace","number","unit","hexcode","deleted"],style:{color:"#e2777a"}},{types:["property","selector"],style:{color:"#72f1b8",textShadow:"0 0 2px #100c0f, 0 0 10px #257c5575, 0 0 35px #21272475"}},{types:["function-name"],style:{color:"#6196cc"}},{types:["boolean","selector-id","function"],style:{color:"#fdfdfd",textShadow:"0 0 2px #001716, 0 0 3px #03edf975, 0 0 5px #03edf975, 0 0 8px #03edf975"}},{types:["class-name","maybe-class-name","builtin"],style:{color:"#fff5f6",textShadow:"0 0 2px #000, 0 0 10px #fc1f2c75, 0 0 5px #fc1f2c75, 0 0 25px #fc1f2c75"}},{types:["constant","symbol"],style:{color:"#f92aad",textShadow:"0 0 2px #100c0f, 0 0 5px #dc078e33, 0 0 10px #fff3"}},{types:["important","atrule","keyword","selector-class"],style:{color:"#f4eee4",textShadow:"0 0 2px #393a33, 0 0 8px #f39f0575, 0 0 2px #f39f0575"}},{types:["string","char","attr-value","regex","variable"],style:{color:"#f87c32"}},{types:["parameter"],style:{fontStyle:"italic"}},{types:["entity","url"],style:{color:"#67cdcc"}},{types:["operator"],style:{color:"ffffffee"}},{types:["important","bold"],style:{fontWeight:"bold"}},{types:["italic"],style:{fontStyle:"italic"}},{types:["entity"],style:{cursor:"help"}},{types:["inserted"],style:{color:"green"}}]},U={plain:{color:"#282a2e",backgroundColor:"#ffffff"},styles:[{types:["comment"],style:{color:"rgb(197, 200, 198)"}},{types:["string","number","builtin","variable"],style:{color:"rgb(150, 152, 150)"}},{types:["class-name","function","tag","attr-name"],style:{color:"rgb(40, 42, 46)"}}]},$={plain:{color:"#9CDCFE",backgroundColor:"#1E1E1E"},styles:[{types:["prolog"],style:{color:"rgb(0, 0, 128)"}},{types:["comment"],style:{color:"rgb(106, 153, 85)"}},{types:["builtin","changed","keyword","interpolation-punctuation"],style:{color:"rgb(86, 156, 214)"}},{types:["number","inserted"],style:{color:"rgb(181, 206, 168)"}},{types:["constant"],style:{color:"rgb(100, 102, 149)"}},{types:["attr-name","variable"],style:{color:"rgb(156, 220, 254)"}},{types:["deleted","string","attr-value","template-punctuation"],style:{color:"rgb(206, 145, 120)"}},{types:["selector"],style:{color:"rgb(215, 186, 125)"}},{types:["tag"],style:{color:"rgb(78, 201, 176)"}},{types:["tag"],languages:["markup"],style:{color:"rgb(86, 156, 214)"}},{types:["punctuation","operator"],style:{color:"rgb(212, 212, 212)"}},{types:["punctuation"],languages:["markup"],style:{color:"#808080"}},{types:["function"],style:{color:"rgb(220, 220, 170)"}},{types:["class-name"],style:{color:"rgb(78, 201, 176)"}},{types:["char"],style:{color:"rgb(209, 105, 105)"}}]},q={plain:{color:"#000000",backgroundColor:"#ffffff"},styles:[{types:["comment"],style:{color:"rgb(0, 128, 0)"}},{types:["builtin"],style:{color:"rgb(0, 112, 193)"}},{types:["number","variable","inserted"],style:{color:"rgb(9, 134, 88)"}},{types:["operator"],style:{color:"rgb(0, 0, 0)"}},{types:["constant","char"],style:{color:"rgb(129, 31, 63)"}},{types:["tag"],style:{color:"rgb(128, 0, 0)"}},{types:["attr-name"],style:{color:"rgb(255, 0, 0)"}},{types:["deleted","string"],style:{color:"rgb(163, 21, 21)"}},{types:["changed","punctuation"],style:{color:"rgb(4, 81, 165)"}},{types:["function","keyword"],style:{color:"rgb(0, 0, 255)"}},{types:["class-name"],style:{color:"rgb(38, 127, 153)"}}]},G={plain:{color:"#f8fafc",backgroundColor:"#011627"},styles:[{types:["prolog"],style:{color:"#000080"}},{types:["comment"],style:{color:"#6A9955"}},{types:["builtin","changed","keyword","interpolation-punctuation"],style:{color:"#569CD6"}},{types:["number","inserted"],style:{color:"#B5CEA8"}},{types:["constant"],style:{color:"#f8fafc"}},{types:["attr-name","variable"],style:{color:"#9CDCFE"}},{types:["deleted","string","attr-value","template-punctuation"],style:{color:"#cbd5e1"}},{types:["selector"],style:{color:"#D7BA7D"}},{types:["tag"],style:{color:"#0ea5e9"}},{types:["tag"],languages:["markup"],style:{color:"#0ea5e9"}},{types:["punctuation","operator"],style:{color:"#D4D4D4"}},{types:["punctuation"],languages:["markup"],style:{color:"#808080"}},{types:["function"],style:{color:"#7dd3fc"}},{types:["class-name"],style:{color:"#0ea5e9"}},{types:["char"],style:{color:"#D16969"}}]},H={plain:{color:"#0f172a",backgroundColor:"#f1f5f9"},styles:[{types:["prolog"],style:{color:"#000080"}},{types:["comment"],style:{color:"#6A9955"}},{types:["builtin","changed","keyword","interpolation-punctuation"],style:{color:"#0c4a6e"}},{types:["number","inserted"],style:{color:"#B5CEA8"}},{types:["constant"],style:{color:"#0f172a"}},{types:["attr-name","variable"],style:{color:"#0c4a6e"}},{types:["deleted","string","attr-value","template-punctuation"],style:{color:"#64748b"}},{types:["selector"],style:{color:"#D7BA7D"}},{types:["tag"],style:{color:"#0ea5e9"}},{types:["tag"],languages:["markup"],style:{color:"#0ea5e9"}},{types:["punctuation","operator"],style:{color:"#475569"}},{types:["punctuation"],languages:["markup"],style:{color:"#808080"}},{types:["function"],style:{color:"#0e7490"}},{types:["class-name"],style:{color:"#0ea5e9"}},{types:["char"],style:{color:"#D16969"}}]},V={plain:{backgroundColor:"hsl(220, 13%, 18%)",color:"hsl(220, 14%, 71%)",textShadow:"0 1px rgba(0, 0, 0, 0.3)"},styles:[{types:["comment","prolog","cdata"],style:{color:"hsl(220, 10%, 40%)"}},{types:["doctype","punctuation","entity"],style:{color:"hsl(220, 14%, 71%)"}},{types:["attr-name","class-name","maybe-class-name","boolean","constant","number","atrule"],style:{color:"hsl(29, 54%, 61%)"}},{types:["keyword"],style:{color:"hsl(286, 60%, 67%)"}},{types:["property","tag","symbol","deleted","important"],style:{color:"hsl(355, 65%, 65%)"}},{types:["selector","string","char","builtin","inserted","regex","attr-value"],style:{color:"hsl(95, 38%, 62%)"}},{types:["variable","operator","function"],style:{color:"hsl(207, 82%, 66%)"}},{types:["url"],style:{color:"hsl(187, 47%, 55%)"}},{types:["deleted"],style:{textDecorationLine:"line-through"}},{types:["inserted"],style:{textDecorationLine:"underline"}},{types:["italic"],style:{fontStyle:"italic"}},{types:["important","bold"],style:{fontWeight:"bold"}},{types:["important"],style:{color:"hsl(220, 14%, 71%)"}}]},W={plain:{backgroundColor:"hsl(230, 1%, 98%)",color:"hsl(230, 8%, 24%)"},styles:[{types:["comment","prolog","cdata"],style:{color:"hsl(230, 4%, 64%)"}},{types:["doctype","punctuation","entity"],style:{color:"hsl(230, 8%, 24%)"}},{types:["attr-name","class-name","boolean","constant","number","atrule"],style:{color:"hsl(35, 99%, 36%)"}},{types:["keyword"],style:{color:"hsl(301, 63%, 40%)"}},{types:["property","tag","symbol","deleted","important"],style:{color:"hsl(5, 74%, 59%)"}},{types:["selector","string","char","builtin","inserted","regex","attr-value","punctuation"],style:{color:"hsl(119, 34%, 47%)"}},{types:["variable","operator","function"],style:{color:"hsl(221, 87%, 60%)"}},{types:["url"],style:{color:"hsl(198, 99%, 37%)"}},{types:["deleted"],style:{textDecorationLine:"line-through"}},{types:["inserted"],style:{textDecorationLine:"underline"}},{types:["italic"],style:{fontStyle:"italic"}},{types:["important","bold"],style:{fontWeight:"bold"}},{types:["important"],style:{color:"hsl(230, 8%, 24%)"}}]},Q=(e,t)=>{const{plain:n}=e,r=e.styles.reduce(((e,n)=>{const{languages:r,style:a}=n;return r&&!r.includes(t)||n.types.forEach((t=>{const n=S(S({},e[t]),a);e[t]=n})),e}),{});return r.root=n,r.plain=E(S({},n),{backgroundColor:void 0}),r},K=/\r\n|\r|\n/,Y=e=>{0===e.length?e.push({types:["plain"],content:"\n",empty:!0}):1===e.length&&""===e[0].content&&(e[0].content="\n",e[0].empty=!0)},Z=(e,t)=>{const n=e.length;return n>0&&e[n-1]===t?e:e.concat(t)},X=e=>{const t=[[]],n=[e],r=[0],a=[e.length];let o=0,i=0,l=[];const s=[l];for(;i>-1;){for(;(o=r[i]++)<a[i];){let e,u=t[i];const c=n[i][o];if("string"==typeof c?(u=i>0?u:["plain"],e=c):(u=Z(u,c.type),c.alias&&(u=Z(u,c.alias)),e=c.content),"string"!=typeof e){i++,t.push(u),n.push(e),r.push(0),a.push(e.length);continue}const d=e.split(K),p=d.length;l.push({types:u,content:d[0]});for(let t=1;t<p;t++)Y(l),s.push(l=[]),l.push({types:u,content:d[t]})}i--,t.pop(),n.pop(),r.pop(),a.pop()}return Y(l),s},J=({children:e,language:t,code:n,theme:r,prism:a})=>{const o=t.toLowerCase(),i=((e,t)=>{const[n,r]=(0,c.useState)(Q(t,e)),a=(0,c.useRef)(),o=(0,c.useRef)();return(0,c.useEffect)((()=>{t===a.current&&e===o.current||(a.current=t,o.current=e,r(Q(t,e)))}),[e,t]),n})(o,r),l=(e=>(0,c.useCallback)((t=>{var n=t,{className:r,style:a,line:o}=n,i=C(n,["className","style","line"]);const l=E(S({},i),{className:(0,d.A)("token-line",r)});return"object"==typeof e&&"plain"in e&&(l.style=e.plain),"object"==typeof a&&(l.style=S(S({},l.style||{}),a)),l}),[e]))(i),s=(e=>{const t=(0,c.useCallback)((({types:t,empty:n})=>{if(null!=e)return 1===t.length&&"plain"===t[0]?null!=n?{display:"inline-block"}:void 0:1===t.length&&null!=n?e[t[0]]:Object.assign(null!=n?{display:"inline-block"}:{},...t.map((t=>e[t])))}),[e]);return(0,c.useCallback)((e=>{var n=e,{token:r,className:a,style:o}=n,i=C(n,["token","className","style"]);const l=E(S({},i),{className:(0,d.A)("token",...r.types,a),children:r.content,style:t(r)});return null!=o&&(l.style=S(S({},l.style||{}),o)),l}),[t])})(i),u=(({prism:e,code:t,grammar:n,language:r})=>{const a=(0,c.useRef)(e);return(0,c.useMemo)((()=>{if(null==n)return X([t]);const e={code:t,grammar:n,language:r,tokens:[]};return a.current.hooks.run("before-tokenize",e),e.tokens=a.current.tokenize(t,n),a.current.hooks.run("after-tokenize",e),X(e.tokens)}),[t,n,r])})({prism:a,language:o,code:n,grammar:a.languages[o]});return e({tokens:u,className:`prism-code language-${o}`,style:null!=i?i.root:{},getLineProps:l,getTokenProps:s})},ee=e=>(0,c.createElement)(J,E(S({},e),{prism:e.prism||A,theme:e.theme||$,code:e.code,language:e.language}))},1561:(e,t,n)=>{"use strict";n.d(t,{A:()=>o});var r=!0,a="Invariant failed";function o(e,t){if(!e){if(r)throw new Error(a);var n="function"==typeof t?t():t,o=n?"".concat(a,": ").concat(n):a;throw new Error(o)}}},2654:e=>{"use strict";e.exports={}},4054:e=>{"use strict";e.exports=JSON.parse('{"/-958":{"__comp":"5e95c892","__context":{"plugin":"0952c0dc"}},"/-3b5":{"__comp":"a7bd4aaa","version":"935f2afb"},"/-fd7":{"__comp":"a94703ab"},"/archive/brix/-140":{"__comp":"17896441","content":"8529a1a6"},"/archive/brix/Examples/-442":{"__comp":"17896441","content":"b87b04f0"},"/archive/brix/GAMA-ae8":{"__comp":"17896441","content":"f30f61d4"},"/archive/brix/Tutorial/-c50":{"__comp":"17896441","content":"1438b9ab"},"/archive/cityio/-e6a":{"__comp":"17896441","content":"9576d6be"},"/archive/cityio/API-6aa":{"__comp":"17896441","content":"4206db4b"},"/archive/cityio/Build-95e":{"__comp":"17896441","content":"cf9c09d8"},"/archive/cityio/Internal_Note-6f4":{"__comp":"17896441","content":"62455296"},"/archive/h3/-932":{"__comp":"17896441","content":"6f967107"},"/category/archive-e51":{"__comp":"14eb3368","categoryGeneratedIndex":"41d6af12"},"/category/brix-3b5":{"__comp":"14eb3368","categoryGeneratedIndex":"7365a548"},"/category/cityio-165":{"__comp":"14eb3368","categoryGeneratedIndex":"0a23f7ce"},"/category/cityscopejs-2a7":{"__comp":"14eb3368","categoryGeneratedIndex":"8a98b319"},"/category/modules-784":{"__comp":"14eb3368","categoryGeneratedIndex":"969018c5"},"/category/tangible-user-interfaces-4f9":{"__comp":"14eb3368","categoryGeneratedIndex":"7980bb0e"},"/cityio/API-c37":{"__comp":"17896441","content":"5a7a18e6"},"/cityio/Architecture-aa5":{"__comp":"17896441","content":"70b71d1a"},"/cityio/CityIO - Core-aa1":{"__comp":"17896441","content":"4a555622"},"/cityio/CityIO - Module-5dd":{"__comp":"17896441","content":"57aa5823"},"/cityio/CityIO - UI-6ae":{"__comp":"17896441","content":"02b7a71d"},"/cityio/Introduction-0eb":{"__comp":"17896441","content":"3027556f"},"/cityscopejs/Introduction-389":{"__comp":"17896441","content":"2eb856f7"},"/cityscopejs/Opening a project-f07":{"__comp":"17896441","content":"a38df249"},"/cityscopejs/Project view-55f":{"__comp":"17896441","content":"d9dcfff4"},"/intro/github-55e":{"__comp":"17896441","content":"6dfefd1c"},"/intro/system-bc2":{"__comp":"17896441","content":"8fd40d43"},"/modules/brix/DeckGL Modules-261":{"__comp":"17896441","content":"4e15b2cd"},"/modules/brix/Introduction-cb3":{"__comp":"17896441","content":"7332f3ba"},"/modules/brix/Module example-170":{"__comp":"17896441","content":"3c6077be"},"/modules/Core Modules/Introduction-ccd":{"__comp":"17896441","content":"b632e823"},"/modules/Types System-3c9":{"__comp":"17896441","content":"eab65581"},"/tanglibe user interfaces/CityScope Table Design-189":{"__comp":"17896441","content":"40e175d5"},"/tanglibe user interfaces/CityScoPy-a24":{"__comp":"17896441","content":"89ac796e"},"/tanglibe user interfaces/RoboScope-560":{"__comp":"17896441","content":"78363d9c"},"/-e98":{"__comp":"17896441","content":"7d744e69"}}')}},e=>{e.O(0,[869],(()=>{return t=8536,e(e.s=t);var t}));e.O()}]); \ No newline at end of file diff --git a/build/assets/js/main.1f802b69.js.LICENSE.txt b/build/assets/js/main.1f802b69.js.LICENSE.txt deleted file mode 100644 index 91dc8949..00000000 --- a/build/assets/js/main.1f802b69.js.LICENSE.txt +++ /dev/null @@ -1,64 +0,0 @@ -/* NProgress, (c) 2013, 2014 Rico Sta. Cruz - http://ricostacruz.com/nprogress - * @license MIT */ - -/*! Bundled license information: - -prismjs/prism.js: - (** - * Prism: Lightweight, robust, elegant syntax highlighting - * - * @license MIT <https://opensource.org/licenses/MIT> - * @author Lea Verou <https://lea.verou.me> - * @namespace - * @public - *) -*/ - -/** - * @license React - * react-dom.production.min.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ - -/** - * @license React - * react-jsx-runtime.production.min.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ - -/** - * @license React - * react.production.min.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ - -/** - * @license React - * scheduler.production.min.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ - -/** @license React v16.13.1 - * react-is.production.min.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ diff --git a/build/assets/js/runtime~main.3bfd9d4e.js b/build/assets/js/runtime~main.3bfd9d4e.js deleted file mode 100644 index 6b3311f3..00000000 --- a/build/assets/js/runtime~main.3bfd9d4e.js +++ /dev/null @@ -1 +0,0 @@ -(()=>{"use strict";var e,a,t,r,d,f={},o={};function c(e){var a=o[e];if(void 0!==a)return a.exports;var t=o[e]={id:e,loaded:!1,exports:{}};return f[e].call(t.exports,t,t.exports,c),t.loaded=!0,t.exports}c.m=f,c.c=o,e=[],c.O=(a,t,r,d)=>{if(!t){var f=1/0;for(i=0;i<e.length;i++){t=e[i][0],r=e[i][1],d=e[i][2];for(var o=!0,b=0;b<t.length;b++)(!1&d||f>=d)&&Object.keys(c.O).every((e=>c.O[e](t[b])))?t.splice(b--,1):(o=!1,d<f&&(f=d));if(o){e.splice(i--,1);var n=r();void 0!==n&&(a=n)}}return a}d=d||0;for(var i=e.length;i>0&&e[i-1][2]>d;i--)e[i]=e[i-1];e[i]=[t,r,d]},c.n=e=>{var a=e&&e.__esModule?()=>e.default:()=>e;return c.d(a,{a:a}),a},t=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,c.t=function(e,r){if(1&r&&(e=this(e)),8&r)return e;if("object"==typeof e&&e){if(4&r&&e.__esModule)return e;if(16&r&&"function"==typeof e.then)return e}var d=Object.create(null);c.r(d);var f={};a=a||[null,t({}),t([]),t(t)];for(var o=2&r&&e;"object"==typeof o&&!~a.indexOf(o);o=t(o))Object.getOwnPropertyNames(o).forEach((a=>f[a]=()=>e[a]));return f.default=()=>e,c.d(d,f),d},c.d=(e,a)=>{for(var t in a)c.o(a,t)&&!c.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:a[t]})},c.f={},c.e=e=>Promise.all(Object.keys(c.f).reduce(((a,t)=>(c.f[t](e,a),a)),[])),c.u=e=>"assets/js/"+({48:"a94703ab",49:"cf9c09d8",98:"a7bd4aaa",117:"4a555622",123:"02b7a71d",132:"40e175d5",157:"0952c0dc",261:"6f967107",338:"eab65581",370:"2eb856f7",374:"8529a1a6",376:"7365a548",379:"9576d6be",383:"5a7a18e6",394:"0a23f7ce",401:"17896441",402:"8fd40d43",408:"41d6af12",418:"7980bb0e",440:"6dfefd1c",459:"57aa5823",581:"935f2afb",647:"5e95c892",666:"b632e823",694:"3c6077be",710:"62455296",730:"70b71d1a",735:"1438b9ab",741:"7d744e69",743:"d9dcfff4",760:"78363d9c",783:"f30f61d4",793:"3027556f",852:"b87b04f0",860:"7332f3ba",861:"4e15b2cd",887:"4206db4b",890:"969018c5",898:"8a98b319",946:"a38df249",949:"89ac796e",969:"14eb3368"}[e]||e)+"."+{48:"e215fd4d",49:"82466f9a",98:"feee8c2a",117:"9bde79b2",123:"f6b1c77c",132:"0db75752",157:"0a3edaab",237:"5283eccd",261:"8110414f",338:"7bf14c4c",370:"12910cf4",374:"ddadba1f",376:"c5a91fd5",379:"692a8dec",383:"eac0270e",394:"71fabafa",401:"917f5f3f",402:"b5ff2c54",408:"5dabed65",418:"37c57d2a",440:"26fa8450",459:"7f8b0c27",581:"6c0f0a46",647:"74e26148",666:"64294f65",694:"558d856d",710:"8f177904",730:"25491f3b",735:"7f17a523",741:"77fc8da4",743:"db04efc0",760:"638cfac1",783:"14328f35",793:"ffcbacaa",852:"d73d630a",860:"891d7f4f",861:"dcb450e7",887:"fa9e573e",890:"822bc7a6",898:"b118f4c2",946:"88412aeb",949:"d6940004",969:"9c4f08f7"}[e]+".js",c.miniCssF=e=>{},c.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),c.o=(e,a)=>Object.prototype.hasOwnProperty.call(e,a),r={},d="cityscope_docs:",c.l=(e,a,t,f)=>{if(r[e])r[e].push(a);else{var o,b;if(void 0!==t)for(var n=document.getElementsByTagName("script"),i=0;i<n.length;i++){var u=n[i];if(u.getAttribute("src")==e||u.getAttribute("data-webpack")==d+t){o=u;break}}o||(b=!0,(o=document.createElement("script")).charset="utf-8",o.timeout=120,c.nc&&o.setAttribute("nonce",c.nc),o.setAttribute("data-webpack",d+t),o.src=e),r[e]=[a];var l=(a,t)=>{o.onerror=o.onload=null,clearTimeout(s);var d=r[e];if(delete r[e],o.parentNode&&o.parentNode.removeChild(o),d&&d.forEach((e=>e(t))),a)return a(t)},s=setTimeout(l.bind(null,void 0,{type:"timeout",target:o}),12e4);o.onerror=l.bind(null,o.onerror),o.onload=l.bind(null,o.onload),b&&document.head.appendChild(o)}},c.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},c.p="/",c.gca=function(e){return e={17896441:"401",62455296:"710",a94703ab:"48",cf9c09d8:"49",a7bd4aaa:"98","4a555622":"117","02b7a71d":"123","40e175d5":"132","0952c0dc":"157","6f967107":"261",eab65581:"338","2eb856f7":"370","8529a1a6":"374","7365a548":"376","9576d6be":"379","5a7a18e6":"383","0a23f7ce":"394","8fd40d43":"402","41d6af12":"408","7980bb0e":"418","6dfefd1c":"440","57aa5823":"459","935f2afb":"581","5e95c892":"647",b632e823:"666","3c6077be":"694","70b71d1a":"730","1438b9ab":"735","7d744e69":"741",d9dcfff4:"743","78363d9c":"760",f30f61d4:"783","3027556f":"793",b87b04f0:"852","7332f3ba":"860","4e15b2cd":"861","4206db4b":"887","969018c5":"890","8a98b319":"898",a38df249:"946","89ac796e":"949","14eb3368":"969"}[e]||e,c.p+c.u(e)},(()=>{var e={354:0,869:0};c.f.j=(a,t)=>{var r=c.o(e,a)?e[a]:void 0;if(0!==r)if(r)t.push(r[2]);else if(/^(354|869)$/.test(a))e[a]=0;else{var d=new Promise(((t,d)=>r=e[a]=[t,d]));t.push(r[2]=d);var f=c.p+c.u(a),o=new Error;c.l(f,(t=>{if(c.o(e,a)&&(0!==(r=e[a])&&(e[a]=void 0),r)){var d=t&&("load"===t.type?"missing":t.type),f=t&&t.target&&t.target.src;o.message="Loading chunk "+a+" failed.\n("+d+": "+f+")",o.name="ChunkLoadError",o.type=d,o.request=f,r[1](o)}}),"chunk-"+a,a)}},c.O.j=a=>0===e[a];var a=(a,t)=>{var r,d,f=t[0],o=t[1],b=t[2],n=0;if(f.some((a=>0!==e[a]))){for(r in o)c.o(o,r)&&(c.m[r]=o[r]);if(b)var i=b(c)}for(a&&a(t);n<f.length;n++)d=f[n],c.o(e,d)&&e[d]&&e[d][0](),e[d]=0;return c.O(i)},t=self.webpackChunkcityscope_docs=self.webpackChunkcityscope_docs||[];t.forEach(a.bind(null,0)),t.push=a.bind(null,t.push.bind(t))})()})(); \ No newline at end of file diff --git a/build/category/.DS_Store b/build/category/.DS_Store deleted file mode 100644 index e69d1659..00000000 Binary files a/build/category/.DS_Store and /dev/null differ diff --git a/build/category/archive/index.html b/build/category/archive/index.html deleted file mode 100644 index 45f1428e..00000000 --- a/build/category/archive/index.html +++ /dev/null @@ -1,13 +0,0 @@ -<!doctype html> -<html lang="en" dir="ltr" class="docs-wrapper plugin-docs plugin-id-default docs-version-current docs-doc-page" data-has-hydrated="false"> -<head> -<meta charset="UTF-8"> -<meta name="generator" content="Docusaurus v3.2.1"> -<title data-rh="true">Archive | Here We Build CityScope - - - - - - - \ No newline at end of file diff --git a/build/category/brix/index.html b/build/category/brix/index.html deleted file mode 100644 index 3e07041c..00000000 --- a/build/category/brix/index.html +++ /dev/null @@ -1,13 +0,0 @@ - - - - - -Brix | Here We Build CityScope - - - - - - - \ No newline at end of file diff --git a/build/category/cityio/index.html b/build/category/cityio/index.html deleted file mode 100644 index 18478416..00000000 --- a/build/category/cityio/index.html +++ /dev/null @@ -1,13 +0,0 @@ - - - - - -CityIO | Here We Build CityScope - - - - - - - \ No newline at end of file diff --git a/build/category/cityscopejs/index.html b/build/category/cityscopejs/index.html deleted file mode 100644 index fb8745a7..00000000 --- a/build/category/cityscopejs/index.html +++ /dev/null @@ -1,13 +0,0 @@ - - - - - -CityScopeJS | Here We Build CityScope - - - - - - - \ No newline at end of file diff --git a/build/category/modules/index.html b/build/category/modules/index.html deleted file mode 100644 index ff62a658..00000000 --- a/build/category/modules/index.html +++ /dev/null @@ -1,13 +0,0 @@ - - - - - -Modules | Here We Build CityScope - - - - - - - \ No newline at end of file diff --git a/build/category/tangible-user-interfaces/index.html b/build/category/tangible-user-interfaces/index.html deleted file mode 100644 index 2c08df05..00000000 --- a/build/category/tangible-user-interfaces/index.html +++ /dev/null @@ -1,13 +0,0 @@ - - - - - -Tangible User Interfaces | Here We Build CityScope - - - - - - - \ No newline at end of file diff --git a/build/cityio/.DS_Store b/build/cityio/.DS_Store deleted file mode 100644 index 627df97b..00000000 Binary files a/build/cityio/.DS_Store and /dev/null differ diff --git a/build/cityio/API/index.html b/build/cityio/API/index.html deleted file mode 100644 index b59b6919..00000000 --- a/build/cityio/API/index.html +++ /dev/null @@ -1,120 +0,0 @@ - - - - - -API | Here We Build CityScope - - - - -
Skip to main content

API

The CityIO HTTP API enables users to access and update information regarding the projects (grids).

-

Endpoints

-

List Projects

-
    -
  • URL: /api/table/list
  • -
  • Method: GET
  • -
  • Auth Required: No
  • -
  • Permissions Required: None
  • -
-

Parameters

-
    -
  • No parameters allowed.
  • -
-

Request Body

-
    -
  • No request body allowed.
  • -
-

Success Response

-
    -
  • Code: 200
  • -
  • Content: JSON
  • -
-
[
"test_podzem",
"nl_haarlem_pbl_bea",
"ex6_sgp_full_new_landuse_noquay_nostation",
"test",
"ex2_sgp_full_new_landuse_quay_bot",
"group51",
"test_brix",
...
]
-

Error Response

-
    -
  • Error response not expected.
  • -
-

Example request

-

curl --location 'https://cityio-beta.media.mit.edu/cityio/api/table/list'

-

Get Headers

-
    -
  • URL: /api/table/list
  • -
  • Method: GET
  • -
  • Auth Required: No
  • -
  • Permissions Required: None
  • -
-

Parameters

-
    -
  • No parameters allowed.
  • -
-

Request Body

-
    -
  • No request body allowed.
  • -
-

Success Response

-
    -
  • Code: 200
  • -
  • Content:
  • -
-
[   {
"tableHeader": {
"cellSize": 15,
"latitude": 42.3664655,
"longitude": -71.0854323,
"ncols": 20,
"nrows": 20,
"projection": "+proj=lcc +lat_1=42.68333333333333 +lat_2=41.71666666666667 +lat_0=41 +lon_0=-71.5 +x_0=200000 +y_0=750000 +ellps=GRS80 +datum=NAD83 +units=m +no_def",
"rotation": 0,
"tableName": "test",
"tz": -5
},
"tableName": "test"
},
...
]
-

Error Response

-
    -
  • Error response not expected.
  • -
-

Example request

-

curl --location 'https://cityio-beta.media.mit.edu/cityio/api/table/headers'

-

Get Grid

-
    -
  • URL: /api/table/{tableName}/{dataPath}
  • -
  • Method: GET
  • -
  • Auth Required: No
  • -
  • Permissions Required: None
  • -
-

Parameters

-
    -
  • tableName (String) - Name of the table
  • -
  • param2 (String, optional) - Data path to obtain (optional)
  • -
-

Request Body

-
    -
  • No request body allowed.
  • -
-

Success Response

-
    -
  • Code: 200
  • -
  • Content:
  • -
-
{
"GEOGRID": {
"features": [
{
"type": "Feature",
"geometry": {
"type": "Polygon",
"coordinates": [
[
[
-71.0854323,
42.36646549999987
],
...
}
-

Error Response

-
    -
  • Code: 204
  • -
  • Description: Empty body if the table name or the path cannot be found.
  • -
-

Example request

-

curl --location 'https://cityio-beta.media.mit.edu/cityio/api/table/test'

-

Create or Update table

-
    -
  • URL: /api/table/{tableName}
  • -
  • Method: POST
  • -
  • Auth Required: No
  • -
  • Permissions Required: None
  • -
-

Parameters

-
    -
  • No request body expected.
  • -
-

Request Body

-
{
$TABLE_BODY
}
-

Success Response

-
    -
  • Code: 200
  • -
  • Content:
  • -
-
{
$TABLE_BODY
}
-

Error Response

-
    -
  • WIP
  • -
- - \ No newline at end of file diff --git a/build/cityio/Architecture/index.html b/build/cityio/Architecture/index.html deleted file mode 100644 index d0d676b6..00000000 --- a/build/cityio/Architecture/index.html +++ /dev/null @@ -1,43 +0,0 @@ - - - - - -Architecture | Here We Build CityScope - - - - -
Skip to main content

Architecture

WebSockets: definition and use

-

WebSockets provide a way for two-way communication between a client and a server over a single, long-lived connection. This is different from the traditional HTTP request-response model, where each request opens a new connection (or reuses an existing connection in a limited way), and the server cannot send messages to the client unless explicitly requested. WebSockets allow the server to send messages to the client at any time, facilitating real-time data transfer and interactive applications.

-

In our scenario, CityIO is a message broker that collects, processes, and distributes urban data, and CityScopeJS is a web-based user interface that visualizes this data for analysis and decision-making.

-

Using WebSockets CityScopeJS establishes a WebSocket connection to CityIO when a user opens a project. This single connection stays open for the duration of the user's session. Whenever CityIO has new data or updates, it can immediately push this data to CityScopeJS over the WebSocket connection. CityScopeJS receives the data in real-time and updates the visualizations accordingly. This setup minimizes network overhead, reduces server load, and provides a seamless, real-time user experience.

-

WebSockets Messages

-

The WebSocket messages exchanged between CityIO, the user interfaces (UIs), and the modules will adhere to the following structure, which is represented as a JSON schema:

-
{
"title": "websocket-message",
"description": "Structure of the websocket messages",
"type": "object",
"properties": {
"type":{
"type": "string"
},
"content":{
"type": "object"
}
}
}
-
    -
  • The property type will indicate what type of message is sending the entity.
  • -
  • the property content will differ depending on the type of the message; should contain the information needed for the destination entity to process the message.
  • -
-

Upon reception of a message, the CityScope entity (CityIO, User Interfaces, or Modules) will follow the next steps:

-
    -
  • Parses the message as a JSON, using the previous schema.
  • -
  • Reads the type property: -
      -
    • If the type is recognized, reads the content property and executes the proper action.
    • -
    • Otherwise, the message is discarted.
    • -
    -
  • -
-

HTTP API

-

CityIO features an HTTP API that enables users to access a wide range of information about various projects. The REST API is designed to maintain compatibility with the previous version of CityIO, ensuring that older modules can seamlessly communicate with this new component.

-

Interfaces

-

The available interfaces, as previously mentioned, include the following:

-
    -
  • Websocket channel /interface: interface to exchange messages with interfaces.
  • -
  • Websocket channel /module: interface to exchange messages with modules.
  • -
  • Websocket channel /module/core: interface to exchange messages with core modules.
  • -
  • API REST /api: HTTP interface to obtain information from CityIO.
  • -
- - \ No newline at end of file diff --git a/build/cityio/CityIO - Core/index.html b/build/cityio/CityIO - Core/index.html deleted file mode 100644 index d1f1fab7..00000000 --- a/build/cityio/CityIO - Core/index.html +++ /dev/null @@ -1,24 +0,0 @@ - - - - - -CityIO - Core | Here We Build CityScope - - - - -
Skip to main content

CityIO - Core

The objective of this interface is to facilitate the integration of core modules into the CityScope network.

-

Message Flow

-

The following subsections will detail the various data exchanges that can take place between CityIO and the Core Modules.

-

Initial connection

-

To integrate a core module into the CityScope network, the module can establish a connection via the /module/core endpoint. Upon successful connection, the module should send a CORE_MODULE_REGISTRATION message containing information to identify the module.

-

Initial Connection

-

Subscription request

-

When a user, through a user interface, wishes to connect a module to a project, they send a request to CityIO. This request is then forwarded to the core module as a SUBSCRIPTION_REQUEST message. If the module is available, the core module should respond by sending a SUBSCRIBE message to CityIO, including the identifier of the grid that requires the module's services. Upon receiving the grid information, the core module should calculate the necessary indicator and transmit this data back to CityIO.

-

Subscription Request

-

Subscription removal request

-

If a user wishes to disconnect a module from a project, they can send a module removal request to CityIO. This request will be forwarded to the Core Module as a SUBSCRIPTION_REMOVAL_REQUEST. Upon receiving this message, the Core Module should then UNSUBSCRIBE from the project.

-

Subscription Removal Request

- - \ No newline at end of file diff --git a/build/cityio/CityIO - Module/index.html b/build/cityio/CityIO - Module/index.html deleted file mode 100644 index 6c626fc6..00000000 --- a/build/cityio/CityIO - Module/index.html +++ /dev/null @@ -1,22 +0,0 @@ - - - - - -CityIO - Module | Here We Build CityScope - - - - -
Skip to main content

CityIO - Module

The aim of this interface is to enable user modules to access information about the grids created in CityIO, calculate Key Performance Indicators (KPIs), and then transmit them to the user interfaces.

-

Brix can be utilized as Middleware to facilitate interaction with this interface.

-

Message Flow

-

The subsequent subsections provide descriptions of the various data exchanges that can occur between CityIO and the User-Defined modules.

-

Initial connection

-

To add a user-defined module to a project, the interface /module can initiate a WebSocket channel. Once the connection is established, the module can send a SUBSCRIBE request to CityIO to acquire grid information. After receiving the grid details, the module should calculate the indicator and then send the information back to CityIO.

-

Initial Connection

-

Module recalculation

-

Upon receiving a GEOGRIDATA_UPDATE message from CityIO, the module should recalculate the indicator and send the updated information back to CityIO.

-

Grid Update

- - \ No newline at end of file diff --git a/build/cityio/CityIO - UI/index.html b/build/cityio/CityIO - UI/index.html deleted file mode 100644 index 3869c24e..00000000 --- a/build/cityio/CityIO - UI/index.html +++ /dev/null @@ -1,31 +0,0 @@ - - - - - -CityIO - UI | Here We Build CityScope - - - - -
Skip to main content

CityIO - UI

The objective of this interface is to enable user interfaces to access information about the grids created in CityIO, as well as the Key Performance Indicators (KPIs) computed by the modules. Additionally, this interface will permit users to make changes to the grids.

-

This WebSocket interface is independent of the User Interface's implementation, making it possible to utilize this WebSocket channel in CityScopeJS, Tangible User Interfaces (TUIs), and any forthcoming UI proposals.

-

Message Flow

-

The subsequent subsections detail the various data exchanges that can take place between CityIO and the User Interfaces.

-

Initial connection

-

When a user interface seeks to establish a connection with CityIO to send and receive information from a project, it initiates a request to /interface, which will be upgraded to a WebSocket. Following this, the UI can designate the specific grid (project) it wishes to connect to, and as a result, the UI will receive the grid's data. Subsequently, the User Interface can request the list of scenarios associated with that project, as well as the list of available core modules.

-

Initial Connection

-

Grid Update

-

When the user interface needs to update the grid at the user's request, it can transmit the updated GEOGRIDDATA to CityIO via the WebSocket.

-

Grid Update

-

Module Request

-

When the user interface intends to request the connection of a module based on a user's demand, it can send a MODULE_REQUEST message to CityIO.

-

Module Request

-

Save Scenario

-

When the user interface aims to save the current state of the project as a scenario at a user's request, it can send a SEND_SCENARIO message to CityIO, including the name of the scenario and its description.

-

Module Request

-

Delete and Restore Scenario

-

When the user interface seeks to delete or restore a scenario based on a user's request, it can send a MODIFY_SCENARIO message, with the property isInBin set to true or false, depending on whether the scenario should be placed in the bin or restored.

-

Module Request

- - \ No newline at end of file diff --git a/build/cityio/Introduction/index.html b/build/cityio/Introduction/index.html deleted file mode 100644 index 0d61bc2b..00000000 --- a/build/cityio/Introduction/index.html +++ /dev/null @@ -1,15 +0,0 @@ - - - - - -Introduction | Here We Build CityScope - - - - -
Skip to main content

Introduction

The purpose of this section is to outline the architecture and interfaces of CityIOWS, an updated version of CityIO that utilizes WebSockets for communication with modules and user interfaces.

-

The diagram below illustrates the various components that interact with CityIOWS, including modules, core modules, and user interfaces. Communication among these components is facilitated through CityIO, serving as a broker. A WebSocket channel is established for each connection.

-

CityIO Websockets

- - \ No newline at end of file diff --git a/build/cityscopejs/.DS_Store b/build/cityscopejs/.DS_Store deleted file mode 100644 index 6e1ebd12..00000000 Binary files a/build/cityscopejs/.DS_Store and /dev/null differ diff --git a/build/cityscopejs/Introduction/index.html b/build/cityscopejs/Introduction/index.html deleted file mode 100644 index 780318ad..00000000 --- a/build/cityscopejs/Introduction/index.html +++ /dev/null @@ -1,52 +0,0 @@ - - - - - -Introduction | Here We Build CityScope - - - - -
Skip to main content

Introduction

CityScope platform for the web

-

CityScopeJS is the unified front-end for the MIT CityScope project. CityScopeJS allows users to examine different urban-design alternatives and observe their impact through different KPIs and matrices. CityScopeJS brings together different urban analytics modules, such as traffic simulation, ABM, noise, storm-water, access.

-

What is it for?

-

CityScopeJS is an online tool with a web interface or tangible user interface (TUI). Using the tool, users can input land uses, buildings, open spaces or transport routes, categorize them and enrich their description with details on usability, density and other parameters. This input forms the basis for calculating the various modules and indicators.

-

This tool also enables collaboration among people within the City Science Network. By using a single tool for defining projects and visualizations, individuals can easily exchange processes, best practices, and even modules.

-
CityScopeJS Web interface
-

TUI

-
CityScopeJS TUI
-

TUI

-
-

CityScopeJS exposes two main features: CityScopeJS Grid Editor and CityScopeJS Palyground

-

CSjs Playground

-

CSjs Playground is where users interact with the design of urban areas. The tool is built to allow snappy, real-time intervention with various land-uses. The design is then evaluated using different urban analytics modules.

-

Quick Start

-

To explore the app for a known CityScope project, add a CityScope project name to this page URL (for example, __URL__/?cityscope=corktown will run CityScopeJS Corktown project). You can also explore a list of active CityScope projects here.

-

When in the app, edit the grid using the editing tool, and explore the different analytics updating

-

Development

-

CityScopeJS is being constantly developed through its frontend, backend and modules. This repo is subject to breaking changes.

-

In the project directory, you can run: npm start Runs the app in the development mode.
Open http://localhost:3000 to view it in the browser.

-

Hard-Reset cityIO GEOGRIDDATA field

-

Note! This feature involves permanent data loss. If your dev created odd data for the grid, you can quickly reset it via:

-
`$ curl https://cityio.media.mit.edu/api/table/clear/__TABLE_NAME__/GEOGRIDDATA`
-
-

CSjs Grid Editor

-

The CSjs Grid Editor is a helper tool to bootstrap new CityScope projects. It allow a quick creation of:

-
    -
  • a CityScope endpoint on CityIO
  • -
  • a geo-located, 3D, editable and contextual CityScope grid
  • -
  • a list of land-uses to be used during the project
  • -
-

CityScopeJS schema

-

This document illustrates the data format and standards for the deployment of a CityScopeJS instance. Being a WIP project, this is subject to change.

-

Data Requirements

-

geogrid:geojson

-

Minimal data for initiation is a valid GeoJson FeatureCollection of at least one Polygon feature. -Ideally, this field should be read once on init, due to its size and static state. User should not iterate over it.

-
{
"type": "FeatureCollection",
"properties": {
"header": {},
"interactive_mapping": {"1245":{"TUI":"1"},"1472":{"WEB":"1"}}
},

"features": [
{
"type": "Feature",
"properties": {},
"geometry": {
"type": "Polygon",
"coordinates": [
[
[
__lat__,
__long__
],
...
]
]
}
}...
]
}
-

optional fields

-

interactive_mapping: maps the grid cells that are interactable via the HCI/TUI CityScope interface or web/mobile UI. This allow mixing of different interactions without overwriting. Format

-
{
"__feature_number__": {
"TUI": "__TUI_CELL_NUMBER__"
},
"__feature_number__": {
"WEB": "__WEB_INTERACTION_CELL_NUMBER__"
}
}
- - \ No newline at end of file diff --git a/build/cityscopejs/Opening a project/index.html b/build/cityscopejs/Opening a project/index.html deleted file mode 100644 index 210cde0a..00000000 --- a/build/cityscopejs/Opening a project/index.html +++ /dev/null @@ -1,18 +0,0 @@ - - - - - -Opening a project | Here We Build CityScope - - - - -
Skip to main content

Opening a project

On the CityScopeJS landing page, there are two ways to access a project.

-
    -
  1. Using the 'Search CityScope Project' text input, users can search for and access the desired project.
  2. -
  3. Users can also access a project by utilizing the globe map and selecting a project by clicking on its corresponding icon.
  4. -
-

CityScopeJS How to Open a Project

- - \ No newline at end of file diff --git a/build/cityscopejs/Project view/index.html b/build/cityscopejs/Project view/index.html deleted file mode 100644 index 004757e4..00000000 --- a/build/cityscopejs/Project view/index.html +++ /dev/null @@ -1,40 +0,0 @@ - - - - - -Project view | Here We Build CityScope - - - - -
Skip to main content

Project view

When you open a project, CityScopeJS will present you with the project view. This page aims to provide a workspace where you can manage your projects and visualize the outputs of modules. It consists of a navigation bar at the top of the screen, where you can click on different buttons to open several windows with various functionalities. The available options are:

-
    -
  1. -

    Edit Mode: In this mode, you can modify the configuration of a city by editing the land uses of the grid that represents the city.

    -
  2. -
  3. -

    Scenarios: In the scenarios menu, you can save the current configuration of the city by assigning it a name and a description. Later in the process, you can switch between different scenarios of your city to study the impact of various interventions on the land, or simply to save different possibilities and analyze the metrics afterward.

    -
  4. -
  5. -

    Layers: In the layers menu, you can select which layers of the visualization you want to see and adjust the opacity of each one. This feature is particularly useful when working with complex visualizations, as it enables you to focus on specific elements.

    -
  6. -
  7. -

    View: This menu allows us to toggle different visibility settings for the map.

    -
  8. -
  9. -

    Radar Chart: In the radar chart window, you can display various metrics and KPIs related to your project. Initially, this will be empty; you must connect a module to the project in order to see data displayed.

    -
  10. -
  11. -

    Land Use: In this menu, you can see the current distribution of land uses within the project.

    -
  12. -
  13. -

    Bar Chart: In the bar chart window, you can display various metrics and KPIs related to your project using a bar plot. Initially, this will be empty; you must connect a module to the project in order to see data displayed.

    -
  14. -
  15. -

    Modules: In the modules window, you can view and select always-available modules that are independent of the projects. When selecting a module, it will compute the results for your project and display them in the interface.

    -
  16. -
-

CityScopeJS Project View

- - \ No newline at end of file diff --git a/build/img/.DS_Store b/build/img/.DS_Store deleted file mode 100644 index dfffa010..00000000 Binary files a/build/img/.DS_Store and /dev/null differ diff --git a/build/img/cityio/.DS_Store b/build/img/cityio/.DS_Store deleted file mode 100644 index 3c91d8f8..00000000 Binary files a/build/img/cityio/.DS_Store and /dev/null differ diff --git a/build/img/img/.DS_Store b/build/img/img/.DS_Store deleted file mode 100644 index b6224ee5..00000000 Binary files a/build/img/img/.DS_Store and /dev/null differ diff --git a/build/index.html b/build/index.html deleted file mode 100644 index f03cdbc2..00000000 --- a/build/index.html +++ /dev/null @@ -1,18 +0,0 @@ - - - - - -Introduction | Here We Build CityScope - - - - -
Skip to main content

CityScope

-

CityScope is a project conducted at the MIT Media Lab City Science group. It includes a slew of tangible and digital platforms dedicated to solving spatial design and urban planning challenges. The tools range from simulations that quantify the impact of disruptive interventions in cities to community engagement systems. We develop and deploy these tools around the world and maintain free and open-source community for the majority of our work.

-
Note

CityScope documentation and the software it describes are works in progress. The content of the documentation or the software may change without prior notice.

-

CityScope in Andorra. Photo: Ariel Noyman

-
Figure: CityScope in Andorra La-Vella (Photo: Ariel Noyman)
-
- - \ No newline at end of file diff --git a/build/intro/.DS_Store b/build/intro/.DS_Store deleted file mode 100644 index 76655170..00000000 Binary files a/build/intro/.DS_Store and /dev/null differ diff --git a/build/intro/github/index.html b/build/intro/github/index.html deleted file mode 100644 index 2632f3c7..00000000 --- a/build/intro/github/index.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - -Development on GitHub | Here We Build CityScope - - - - -
Skip to main content

Development on GitHub

-

CityScope is open-source software and is primarily hosted on GitHub. The organization structure is designed to facilitate the development and deployment of CityScope projects. The organization consists of two types of repositories: tools and cities.

-

The image below illustrates the components currently available in the CityScope Beta Software architecture. Additional components can be incorporated as required in the future.

-

CityIO Websockets

-

General development guidelines

-

There are many different repositories in the CityScope organization, and each one may have its own development guidelines, license, and contributing guidelines. However, there are some general guidelines that apply to all repositories:

-
    -
  • contact the maintainers of the repository to make sure your contribution is in line with the project's goals
  • -
  • Fork the repository and make your changes in your fork
  • -
  • Create a pull request to the original repository
  • -
  • Make sure your code is well-documented and tested
  • -
-

Repos Structure

-

This organization consists two types of repositories.

-
    -
  1. -

    Tools

    -

    Repositories having the prefix of CS_ are the bare tools that commonly used across city projects.

    -
  2. -
  3. -

    Cities

    -

    Cities have their own repositories that includes links (more exactly submodules) of the above tools and other things. These repos start with CSL_.

    -
  4. -
-

CityScope in Andorra. Photo: Ariel Noyman

- - \ No newline at end of file diff --git a/build/intro/system/index.html b/build/intro/system/index.html deleted file mode 100644 index 6c434a2b..00000000 --- a/build/intro/system/index.html +++ /dev/null @@ -1,46 +0,0 @@ - - - - - -System Architecture | Here We Build CityScope - - - - -
Skip to main content

System Architecture

-

CityScope is composed of a series of tools loosely connected to each other. The tools are developed in different languages and frameworks, and they communicate through a central server, CityIO.

-

CityScopeJS

-

CityScopeJS is a modular, open-ended architecture for MIT CityScope project.

-
    -
  • User interface to interact with the CityScope projects
  • -
  • Uses CityIO Websockets to communicate with the server
  • -
  • New user experience and design for the CityScope projects
  • -
-

CityScopeJS Architecture

-
Figure: CityScopeJS Architecture (Photo: Ariel Noyman)
-

CityScopeJS includes several other modules for building, testing and deploying an end-to-end CityScope platform. Each module is developed as a standalone part of the system with minimal dependency on others. Data flow between modules is done using cityIO, which operates between the different modules.

-

Modules

-

Different analysis modules calculate various indicators on urban performance, such as noise, mobility, energy and others. These analysis modules are developed by experts in each evaluation field.

- -

CityScope Server (cityIO)

-

CityIO is a server program that saves tables to have different software (visualization, simulation) read/write information. It exposes an API to serve JSON files representing table info.

-
    -
  • Enables the communication between the different components of the system.
  • -
  • Saves the projects to access them seamlessly in all the components.
  • -
  • Rebuilt to allow real-time communication, using WebSockets.
  • -
-

See https://github.com/CityScope/CS_CityIO

-

Tangible User Interfaces

-

CityScope also includes tangible user interfaces (TUIs) that allow users to interact with the system in a physical way. These interfaces are developed using the CityScopeJS platform.

-
- - \ No newline at end of file diff --git a/build/modules/.DS_Store b/build/modules/.DS_Store deleted file mode 100644 index 613fd07d..00000000 Binary files a/build/modules/.DS_Store and /dev/null differ diff --git a/build/modules/Core Modules/Introduction/index.html b/build/modules/Core Modules/Introduction/index.html deleted file mode 100644 index 3568096c..00000000 --- a/build/modules/Core Modules/Introduction/index.html +++ /dev/null @@ -1,14 +0,0 @@ - - - - - -Introduction | Here We Build CityScope - - - - - - - \ No newline at end of file diff --git a/build/modules/Types System/index.html b/build/modules/Types System/index.html deleted file mode 100644 index 598b4128..00000000 --- a/build/modules/Types System/index.html +++ /dev/null @@ -1,244 +0,0 @@ - - - - - -Types System | Here We Build CityScope - - - - -
Skip to main content

Types System

-

CityScope (CS) Types are the basic land-use units that can be combined and arranged to represent urban environments within the CityScope platform. CS Types are assigned to each cell within the grid that is overlaid over the urban area of enquiry. The grid provides unified segmentation, scale and a level of abstraction that can be easily manipulated by users. Each cell within the grid can either be fixed or dynamic, depending on project limits; fixed cells within a grid are not intended to be changeable by users; dynamic cells are intended for manipulation to interact with the CityScope platform. Interactions take place as users manipulate Types within the project area.

-

CS BOXEL. Photo: Ariel Noyman

-

CS Types are represented by tiles that are set within the cells of a grid. At minimum, each tile must include land use and economic activity data, which can be complemented with additional dimensions of information that are assigned by users during the commissioning of a table. Additional information that can be assigned to a CS Type includes, but is not limited to, the acoustic characteristics, demographic information, and/or the utilization of a type.

-

CS LEGO 3Types. Photo: Luis Alonso

-

To standardize the analysis and visualization modules, the CityScope platform uses unified data classifications to define each Type. CS Types may differ from project to project depending on the programming and intervention under investigation. To standardize how CS Types are defined, the classification uses unified dictionary of attributes that include, but are not limited to, land-use and economic activity, as defined by the American Planning Association, Land-Based Classification Standards or LBCS, and the North American Industry Classification System or NAICS, for the associated economic activity. Additional characteristics can be added when project specific modules are being used.

-

LBCS - Land Use Classification Notation:

-

The LBCS classification system extends the notion of land uses by refining traditional categories into multiple dimensions, including activity, function, building type, site development character, and ownership constraints. Each dimension has its own set of categories and subcategories for classifying land uses. By classifying every land-use across multiple dimensions, users can have precise control of land-use classifications. Codes are generated using a numerical classification outlined in the LBCS manual:

-

https://planning-org-uploaded-media.s3.amazonaws.com/document/LBCS.pdf

-

Schema Description:

-
    -
  • X 0 0 0 - First level classification - General
  • -
  • XX 0 0 - 2nd level - Type
  • -
  • XXX 0 - 3rd level - Activity
  • -
  • XXXX - 4th level - Specific Activity
  • -
-

Most CS Types may only include Activity dimensions, however additional LBCS information can be added.

-

NAICS - Economic Activity Classification Notation:

-

In addition to the LBCS classifications, the NAICS codes are a standard used by Federal statistical agencies in classifying business establishments for the purpose of collecting, analyzing, and publishing statistical data related to the U.S. business economy.Codes are generated using a numerical classification outlined in the NAICS manual:

-

https://www.census.gov/eos/www/naics/2017NAICS/2017_NAICS_Manual.pdf

-

chema Description:

-
    -
  • X 0 0 0 0 - First level classification - Industry Sector (20 broad sectors up from 10 SIC)
  • -
  • XX 0 0 0 - 2nd level - Industry Sub sector
  • -
  • XXX 0 0 - 3rd level - Industry Group
  • -
  • XXXX 0 - 4th level - Industry
  • -
-

Sample CS Types:

-

As an example exercise we will define 3 of the most popular CS types: A simple single use tile like a park, a single use tile of housing, and a multi use tail mixing office and shopping:

-

Park

-

No floors, 100% of park activity. NAICS mapping = 712190. LBCS mapping = 7000

-

CS LEGO Park. Photo: Luis Alonso

-
{
"NAICS": [
{
"P": 1,
"use": [
{
"712190": 1
}
],
"LBCS": [
{
"P": 1,
"use": [
{
"7000": 1
}
]
}
]
}
-

Household activities (Residential activities)

-

Individual housing building, 100% of Residential activities. NAICS mapping = null (Since NAICS is the "standard used by Federal statistical agencies in classifying business establishments"; housing doesn't have a correlation in NAICS). LBCS mapping = 1100

-

CS LEGO House. Photo: Luis Alonso

-
{
"NAICS": null,
"LBCS": [
{
"P": 1,
"use": [
{
"1100": 1
}
]
}
]
}
-

Mixed use Building (Finance + Public Administration + Shopping + Restaurants)

-

Office and Shopping building: 80% of Financial activities, 20% of Restaurant and shopping activities. NAICS mapping = 520000 finance, 920000 Public Administration, 440000 + 45000 shopping, and 720000 restaurant. LBCS mapping = 2200 finance, 6200 + 6300 Public Administration, 2100 shopping, and 2500 restaurant

-
    -
  • The lower 20% of floors are devoted to a mix of shopping 75% and restaurants 25%
  • -
  • The upper 80% of floors and is devoted to a mix of finance 50% and Public Administration 50%
  • -
-

CS LEGO Office. Photo: Luis Alonso

-
{
"NAICS": [
{
"P": 0.2,
"use": [
{
"720000": 0.25,
"440000": 0.40,
"450000": 0.35
}
]
},
{
"P": 0.8,
"use": [
{
"520000": 0.5,
"920000": 0.5
}
],
"LBCS": [
{
"P": 0.2,
"use": [
{
"2100": 0.5,
"2500": 0.5
}
]
},
{
"P": 0.8,
"use": [
{
"2200": 0.5,
"6200": 0.25,
"6300": 0.25
}
]
}
]
}
-

References

-

https://planning-org-uploaded-media.s3.amazonaws.com/legacy_resources/lbcs/background/QLBCSConvFunction2NAICS.TXT

-

https://planning-org-uploaded-media.s3.amazonaws.com/legacy_resources/lbcs/background/pdf/rslucm2sic2naics.pdf.

-

https://planning-org-uploaded-media.s3.amazonaws.com/legacy_resources/lbcs/background/pdf/rslucm2sic2naicsnotext.pdf

-
-

ANEX

-

LBCS and NAICS Crosspath

-

Mapping Correlation between LBCS and NAICS: Here is a shortcut for finding the correlation between LBCS and NAICS in the most popular land uses:

-

Typical HOUSING types

-
    -
  • -

    1 | Household activities (Residential activities)

    -
      -
    • LBCS = 1100
    • -
    • NAICS = null
    • -
    -
  • -
  • -

    2 | Transient living (Residential activities)

    -
      -
    • LBCS = 1200
    • -
    • NAICS = null
    • -
    -
  • -
  • -

    3 | Institutional living (Residential activities)

    -
      -
    • LBCS = 1300
    • -
    • NAICS = null
    • -
    -
  • -
- -
    -
  • -

    4 | Hotels

    -
      -
    • LBCS = 1300
    • -
    • NAICS = 721110
    • -
    -
  • -
  • -

    5 | Restaurants

    -
      -
    • LBCS = 2500
    • -
    • NAICS = 720000
    • -
    -
  • -
  • -

    6 | Night live

    -
      -
    • LBCS = 2540
    • -
    • NAICS = 620000
    • -
    -
  • -
  • -

    7 | Leisure and Wellness

    -
      -
    • LBCS = 6500
    • -
    • NAICS = 722500
    • -
    -
  • -
  • -

    8 | Culture

    -
      -
    • LBCS = 5000
    • -
    • NAICS =710000
    • -
    -
  • -
  • -

    9 | Shopping Centers

    -
      -
    • LBCS = 2100 + 2500
    • -
    • NAICS = 440000 + 450000
    • -
    -
  • -
  • -

    10 | Banks

    -
      -
    • LBCS = 2200
    • -
    • NAICS = 450000
    • -
    -
  • -
  • -

    11 | Educational

    -
      -
    • LBCS = 6100
    • -
    • NAICS = 610000
    • -
    -
  • -
-

PARK

-
    -
  • 12 | Parks -
      -
    • LBCS = 7000
    • -
    • NAICS = 712190
    • -
    -
  • -
-

TRANSPORTATION

-
    -
  • 13 | Transportation hubs (Air, Water, rail, road transport and infrastructures as well as local urban and interurban transit systems, etc.) -
      -
    • LBCS = 4000
    • -
    • NAICS = 480000
    • -
    -
  • -
-

SAFETY AND SECURITY

-
    -
  • 14 | Public Safety -
      -
    • LBCS = 6400
    • -
    • NAICS = 480000
    • -
    -
  • -
-

WELLBEING

-
    -
  • 15 | Health Care -
      -
    • LBCS = 6500
    • -
    • NAICS = 620000
    • -
    -
  • -
-

OFFICE

-
    -
  • -

    16 | Public Administration

    -
      -
    • LBCS = 6200 + 6300
    • -
    • NAICS = 920000
    • -
    -
  • -
  • -

    17 | Finance

    -
      -
    • LBCS = 2200
    • -
    • NAICS = 520000
    • -
    -
  • -
  • -

    18 | Scientific and Technical

    -
      -
    • LBCS = 2400
    • -
    • NAICS = 540000
    • -
    -
  • -
-

INDUSTRY

-
    -
  • 19 | Manufacturing -
      -
    • LBCS = 3000
    • -
    • NAICS = 320000 + 330000
    • -
    -
  • -
-

NATURE

-
    -
  • 20 | Nature -
      -
    • LBCS = 9000
    • -
    • NAICS = 712190
    • -
    -
  • -
-
-

More advanced Types Examples

-

Below are some more examples of CityScope types. These can be copy and pasted or modified for use in different CityScope projects: -A single grid-cell may contain multiple LBCS and multiple NAICS on different floors or even on the same floor. Therefore, the value of each attribute is formatted as a list of objects. The object in the list represents a grouping of floors starting with the lower-most floors. Each object contains the mix of uses within that floor-group. For example, the following represents the NAICS attribute for a grid cell where:

-

CS LEGO scheme. Photo: Ariel Noyman

-

Mixed use building

-
    -
  • The lower 30% of floors are devoted to a mix of "541310" (architectural services) and "541330" (engineering services).
  • -
  • The upper 70% of floors and is devoted to a mix of "23" (Construction), "42" (Wholesale) and "61" (Education).
  • -
-
{
"NAICS": [
{
"P": 0.3,
"use": [
{
"541310": 0.5,
"541330": 0.5
}
]
},
{
"P": 0.7,
"use": [
{
"23": 0.3,
"42": 0.4,
"61": 0.3
}
]
}
]
}
-

The number of floors is independent of the type and specified separately by the user. Therefore, if the user assigns 10 floors to this grid cell, the lower 2 floors will be a mix of 541310 and 541330 and the upper 10 floors will be a mix of 23, 42 and 61. -In most cases, the type specification will not require such a detailed level of partitioning of types. If for example, the grid cell has only a single usage type, the same data format will be used but the list will only contain 1 object of length 1. For example, the following represents the NAICS attribute for a grid cell solely devoted to "54" (Professional, Scientific and Technical Services).

-
{
"NAICS": [
{
"P": 1,
"use": [
{
"54": 1
}
]
}
]
}
-

Residential Type (100% detached units)

-
{
"NAICS": null,
"LBCS": [
{
"P": 1,
"use": [
{
"1120": 1
}
]
}
]
}
-

Residential Type (detached units) with ground-level grocery store

-
{
"NAICS": [
{
"P": 0.1,
"use": [
{
"4451": 1
}
]
},
{
"P": 0.9,
"use": null
}
],
"LBCS": [
{
"P": 0.1,
"use": [
{
"2150": 1
}
]
},
{
"P": 0.9,
"use": [
{
"1120": 1
}
]
}
]
}
- - \ No newline at end of file diff --git a/build/modules/brix/DeckGL Modules/index.html b/build/modules/brix/DeckGL Modules/index.html deleted file mode 100644 index 09032a88..00000000 --- a/build/modules/brix/DeckGL Modules/index.html +++ /dev/null @@ -1,178 +0,0 @@ - - - - - -DeckGL Modules | Here We Build CityScope - - - - -
Skip to main content

DeckGL Modules

The main difference in using Brix WS compared to the previous version of Brix is the method of sending data to CityScope for visualization. The previous version of Brix allowed for various pre-defined visualizations, such as numeric with bars or graphs, heatmaps, or ABM, among others. While this was useful, it didn't offer enough flexibility for module makers to create complex visualizations with a variety of different elements. They were always constrained to using the same method to display data.

-

To address this issue, Brix WS introduces DeckGL modules, a new type of module that can harness the full power of DeckGL and create robust visualizations using multiple DeckGL layers.

-

The structure of the data that DeckGL modules should follow is an array of objects, where each object represents one layer of the visualization. Every layer always has the same three properties:

-
    -
  • type: The type of the layer.
  • -
  • data: The data to be represented.
  • -
  • properties: Additional properties to configure the visualization of the layer.
  • -
-
[
{"type":"column","data":$data,"properties":{}},
{"type":"arc","data":$data,"properties":{}},
{"type":"column","data":$data,"properties":{}},
...
]
-

Available DeckGL Layers

-

At the time being, the available DeckGL layers that can be use in the modules are the following:

- -

This list will grow over time to include all the layers in DeckGL. In each of the links, you can view an example of the visualization that the layer creates.

-

Arc

-

The arc layer should follow the schema of the next example:

-
    {
"type": "arc",
"data":[
{
"from": {
"coordinates": [-122.269029, 37.80787]
},
"to": {
"coordinates": [-122.271604, 37.803664]
},
"sourceColor": [255, 140, 0],
"targetColor": [100, 140, 0]
},
],
"properties": {
"width": 20
}
}

-

The available properties for this layer are the following:

-
    -
  • width: integer, default value 12.
  • -
-

Column

-

The column layer should follow the schema of the next example:

-
    {
"type": "column",
"data":[
{"centroid": [-122.4, 37.7], "value": 0.2},
],
"properties": {
"disResolution": 12,
"radius": 25
}
}

-

The available properties for this layer are the following:

-
    -
  • disResolution: integer, default value 12.
  • -
  • radius: integer, default value 30.
  • -
  • extruded: boolean, default value true.
  • -
  • pickable: boolean, default value true.
  • -
  • elevationScale: integer, default value 1.
  • -
-

Contour

-

The contour layer should follow the schema of the next example:

-
    {
"type": "contour",
"data":[
{"coordinates": [-122.42177834, 37.78346622]}
],
"properties": {
"cellSize": 100
}
}

-

The available properties for this layer are the following:

-
    -
  • cellSize: integer, default value 200.
  • -
-

GeoJson

-

The GeoJson layer should follow the schema of the next example:

-
    {
"type": "geojsonbase",
"data": $validGeoJsonObject,
"properties": {
"filled": false
}
}

-

The available properties for this layer are the following:

-
    -
  • pickable: boolean, default value true.
  • -
  • stroked: boolean, default value false.
  • -
  • filled: boolean, default value true.
  • -
  • extruded: boolean, default value true.
  • -
  • pointType: string, default value 'circle'.
  • -
  • lineWidthScale: integer, default value 20.
  • -
  • lineWidthMinPixels: integer, default value 100.
  • -
  • pointRadius: integer, default value 100.
  • -
  • lineWidth: integer, default value 1.
  • -
  • elevation: integer, default value 30.
  • -
-

Grid

-

The Grid layer should follow the schema of the next example:

-
    {
"type": "gridlayer",
"data": [{"coordinates": [-122.42177834, 37.78346622]}],
"properties": {
"cellSize": 100
}
}

-

The available properties for this layer are the following:

-
    -
  • pickable: boolean, default value true.
  • -
  • extruded: boolean, default value true.
  • -
  • cellSize: integer, default value 200.
  • -
  • elevationScale: integer, default value 4.
  • -
-

GridCell

-

The GridCell layer should follow the schema of the next example:

-
    {
"type": "gridcell",
"data": [{"centroid": [-122.42177834, 37.78346622], "value": 100}],
"properties": {
"cellSize": 100
}
}

-

The available properties for this layer are the following:

-
    -
  • pickable: boolean, default value true.
  • -
  • extruded: boolean, default value true.
  • -
  • cellSize: integer, default value 200.
  • -
  • elevationScale: integer, default value 5000.
  • -
-

Heatmap

-

The heatmap layer should follow the schema of the next example:

-
    {
"type": "heatmap",
"data": [{"coordinates": [-122.42177834, 37.78346622], "weight": 100}],
"properties": {
}
}

-

Hexagon

-

The Hexagon layer should follow the schema of the next example:

-
    {
"type": "hexagon",
"data": [{"coordinates": [-122.42177834, 37.78346622]}],
"properties": {
"elevationScale": 3
}
}

-

The available properties for this layer are the following:

-
    -
  • pickable: boolean, default value true.
  • -
  • extruded: boolean, default value true.
  • -
  • radius: integer, default value 200.
  • -
  • elevationScale: integer, default value 4.
  • -
-

Icon

-

The Icon layer should follow the schema of the next example:

-
    {
"type": "icon",
"data": [{"coordinates": [-122.42177834, 37.78346622], "icon": $url, "width": 128, "height": 128, "anchorY": 128, "elevation": 30}],
"properties": {
"sizeScale": 3
}
}

-

The available properties for this layer are the following:

-
    -
  • pickable: boolean, default value true.
  • -
  • sizeScale: integer, default value 10.
  • -
  • sizeMaxPixels: integer, default value 10.
  • -
-

Line

-

The line layer should follow the schema of the next example:

-
    {
"type": "line",
"data":[
{
"from": {
"coordinates": [-122.269029, 37.80787]
},
"to": {
"coordinates": [-122.271604, 37.803664]
},
"color": [255, 140, 0]
},
],
"properties": {
"width": 20
}

}

-

The available properties for this layer are the following:

-
    -
  • pickable: boolean, default value true.
  • -
  • width: integer, default value 50.
  • -
-

Path

-

The Path layer should follow the schema of the next example:

-
    {
"type": "path",
"data":[
{
"path": [[-122.269029, 37.80787],[-122.271604, 37.803664],[-122.271604, 38.803664]],
"color": [255, 140, 0],
"width": 5
},
],
"properties": {
"widthScale": 30
}

}

-

The available properties for this layer are the following:

-
    -
  • pickable: boolean, default value true.
  • -
  • widthScale: integer, default value 20.
  • -
  • widthMinPixels: integer, default value 2.
  • -
-

ScatterPlot

-

The ScatterPlot layer should follow the schema of the next example:

-
    {
"type": "scatterplot",
"data":[
{"name": "Colma (COLM)", "address”: "365 D Street, Colma CA 94014", "exits”: 4214, "coordinates": [-122.466233, 37.684638]},
],
"properties": {
"lineWidthMinPixels": 2
}

}

-

The available properties for this layer are the following:

-
    -
  • pickable: boolean, default value true.
  • -
  • stroked: boolean, default value true.
  • -
  • filled: boolean, default value true.
  • -
  • radiusScale: integer, default value 6.
  • -
  • radiusMinPixels: integer, default value 1.
  • -
  • radiusMaxPixels: integer, default value 100.
  • -
  • lineWidthMinPixels: integer, default value 1.
  • -
-

Scenegraph

-

The Scenegraph layer should follow the schema of the next example:

-
    {
"type": "scenegraph",
"data":[
{"coordinates": [-122.466233, 37.684638]},
],
"properties": {
"scenegraph": "https://raw.githubusercontent.com/KhronosGroup/glTF-Sample-Models/master/2.0/BoxAnimated/glTF-Binary/BoxAnimated.glb"
}

}

-

The available properties for this layer are the following:

-
    -
  • pickable: boolean, default value true.
  • -
  • scenegraph: string, url of the glb object.
  • -
  • sizeScale: integer, default value 500.
  • -
-

SimpleMesh

-

The SimpleMesh layer should follow the schema of the next example:

-
    {
"type": "simpleMesh",
"data":[
{
"position": [-122.45, 37.7],
"angle": 0,
"color": [255, 0, 0]
},
{
"position": [-122.46, 37.73],
"angle": 90,
"color": [0, 255, 0]
},
],
"properties": {
"mesh": "https://raw.githubusercontent.com/visgl/deck.gl-data/master/website/humanoid_quad.obj"
}

}

-

The available properties for this layer are the following:

-
    -
  • sizeScale: integer, default value 1.
  • -
  • mesh: string, url of the obj object.
  • -
-

TextLayer

-

The Text layer should follow the schema of the next example:

-
    {
"type": "textLayer",
"data":[
{
"coordinates": [-122.45, 37.7],
"text": "example",
},
{
"position": [-122.46, 37.73],
"text": "example",
},
],
"properties": {
}

}

-

The available properties for this layer are the following:

-
    -
  • pickable: boolean, default value true.
  • -
- - \ No newline at end of file diff --git a/build/modules/brix/Introduction/index.html b/build/modules/brix/Introduction/index.html deleted file mode 100644 index f8b54319..00000000 --- a/build/modules/brix/Introduction/index.html +++ /dev/null @@ -1,17 +0,0 @@ - - - - - -Introduction | Here We Build CityScope - - - - -
Skip to main content

Introduction

Warning

This documentation is under construction. The content of the documentation may change without prior notice.

-

Brix is a Python library that manages communication with CityIO and CityScopeJS. This enables module makers to focus on their projects without the necessity of directly interacting with CityIO or the UI.

-

As depicted in the following image, module makers only need to concern themselves with the code in their modules, the utilization of Brix, and the results obtained in CityScopeJS. All internal communication mechanisms and updates are managed by the CityScope platform.

-

Subscription Request

-

You can find more information about Brix on the following website: https://cityscope.media.mit.edu/CS_Brix/getting_started.html

- - \ No newline at end of file diff --git a/build/modules/brix/Module example/index.html b/build/modules/brix/Module example/index.html deleted file mode 100644 index cb589689..00000000 --- a/build/modules/brix/Module example/index.html +++ /dev/null @@ -1,31 +0,0 @@ - - - - - -Module example | Here We Build CityScope - - - - -
Skip to main content

Module example

In this section, we present how to code an example DeckGL module on Brix WS that connects with a project in CityScopeJS and displays various visualizations.

-

Currently, Brix WS is not published as a Python library available through pip. Consequently, the first step would be to download the code from GitHub.

-

Basic structure of a module

-

The basic structure of any module will be as follows:

-

from brix.classes import DeckGLIndicator

import random
from numpy import mean
class ExampleModule(DeckGLIndicator):

def setup(self):
self.name = 'example'

def load_module(self):
pass

def return_indicator(self, geogrid_data):
# Module code
-

The setup function will be used to define the values of some variables, such as the name of the module.

-

Data loading actions should go in the load_module function

-

return_indicator will be the main function of any module, in this one, you can read the data of the grid realted to the project, executed the necessary calculations to obtain the module output, and return it in a proper structure to be sent back to CityIO.

-

DeckGL Modules: adding layers

-

In order to generate a DeckGL module, we need to send back to CityIO all the layers that will compose the visualization in CityScopeJS. In this example, we use different types of layers to generate a random indicator: heatmaps, columns, arc, and geojson.

-
    def return_indicator(self, geogrid_data):

data = []

#HEATMAP
features = []
for cell in geogrid_data:
feature = {}
lat,lon = zip(*cell['geometry']['coordinates'][0])
lat,lon = mean(lat),mean(lon)
feature['coordinates'] = [lat,lon]
feature['weight'] = random.random()*10
features.append(feature)

data.append({"type":"heatmap","data":features,"properties":{}})

#ARC
arc_data = [{
'inbound': 72633,
'outbound': 74735,
'from': {
'name': 'MIT Media Lab',
'coordinates': [-71.08727713271684, 42.36041314214483]
},
'to': {
'name': 'MIT CSAIL',
'coordinates': [-71.09060913355545, 42.36168851347742]
}
}]
data.append({"type":"arc","data":arc_data,"properties":{"width":1}})

#COLUMNS
features_columns = []
for cell in geogrid_data:
feature = {}
lat,lon = zip(*cell['geometry']['coordinates'][0])
lat,lon = mean(lat),mean(lon)
feature['centroid'] = [lat,lon]
feature['value'] = random.random()*300
features_columns.append(feature)

data.append({"type":"column","data":features_columns,"properties":{}})

#GEOJSON
geojson_data = {"type": "FeatureCollection","features": [{"type": "Feature","properties": {},"geometry": {"coordinates": [[[-71.09236362469034,42.35778603125499],[-71.08986747898945,42.3585765398804],[-71.0901949616614,42.35911429516614],[-71.09076987568574,42.358931458885564],[-71.09126473839052,42.35978648280218],[-71.09261105604213,42.35938317108344],[-71.09214530290863,42.3584421003398],[-71.09268382996976,42.35830766051154],[-71.09236362469034,42.35778603125499]]],"type": "Polygon"}}]}

data.append({"type":"geojsonbase","data":geojson_data,"properties":{}})


return data
-

The straightforward solution is, for each layer, calculate the necessary data, and then append the layer to the ouput array.

-

It is important to note that this method could be follow with any set of the available layers.

-

Connecting with CityIO

-

Connecting a module to a CityScope project will only require to create a Handler, indicating the name of the table that you want to connect to. Then, add the indicator (module) previously defined to the handler, and start it.

-
from brix.classes import Handler

indicator = ExampleModule()

H = Handler(quietly=False,
table_name='walkability')
H.add_indicators([
indicator
])
H.listen()
-

Visualizing the result in CityScopeJS

-

When everything is done, and you run the code, this will send to CityScopeJS the result of the module.

-

Subscription Request

- - \ No newline at end of file diff --git a/build/sitemap.xml b/build/sitemap.xml deleted file mode 100644 index 6bb62032..00000000 --- a/build/sitemap.xml +++ /dev/null @@ -1 +0,0 @@ -https://cityscope.media.mit.edu/archive/brix/weekly0.5https://cityscope.media.mit.edu/archive/brix/Examples/weekly0.5https://cityscope.media.mit.edu/archive/brix/GAMAweekly0.5https://cityscope.media.mit.edu/archive/brix/Tutorial/weekly0.5https://cityscope.media.mit.edu/archive/cityio/weekly0.5https://cityscope.media.mit.edu/archive/cityio/APIweekly0.5https://cityscope.media.mit.edu/archive/cityio/Buildweekly0.5https://cityscope.media.mit.edu/archive/cityio/Internal_Noteweekly0.5https://cityscope.media.mit.edu/archive/h3/weekly0.5https://cityscope.media.mit.edu/category/archiveweekly0.5https://cityscope.media.mit.edu/category/brixweekly0.5https://cityscope.media.mit.edu/category/cityioweekly0.5https://cityscope.media.mit.edu/category/cityscopejsweekly0.5https://cityscope.media.mit.edu/category/modulesweekly0.5https://cityscope.media.mit.edu/category/tangible-user-interfacesweekly0.5https://cityscope.media.mit.edu/cityio/APIweekly0.5https://cityscope.media.mit.edu/cityio/Architectureweekly0.5https://cityscope.media.mit.edu/cityio/CityIO%20-%20Coreweekly0.5https://cityscope.media.mit.edu/cityio/CityIO%20-%20Moduleweekly0.5https://cityscope.media.mit.edu/cityio/CityIO%20-%20UIweekly0.5https://cityscope.media.mit.edu/cityio/Introductionweekly0.5https://cityscope.media.mit.edu/cityscopejs/Introductionweekly0.5https://cityscope.media.mit.edu/cityscopejs/Opening%20a%20projectweekly0.5https://cityscope.media.mit.edu/cityscopejs/Project%20viewweekly0.5https://cityscope.media.mit.edu/intro/githubweekly0.5https://cityscope.media.mit.edu/intro/systemweekly0.5https://cityscope.media.mit.edu/modules/brix/DeckGL%20Modulesweekly0.5https://cityscope.media.mit.edu/modules/brix/Introductionweekly0.5https://cityscope.media.mit.edu/modules/brix/Module%20exampleweekly0.5https://cityscope.media.mit.edu/modules/Core%20Modules/Introductionweekly0.5https://cityscope.media.mit.edu/modules/Types%20Systemweekly0.5https://cityscope.media.mit.edu/tanglibe%20user%20interfaces/CityScope%20Table%20Designweekly0.5https://cityscope.media.mit.edu/tanglibe%20user%20interfaces/CityScoPyweekly0.5https://cityscope.media.mit.edu/tanglibe%20user%20interfaces/RoboScopeweekly0.5https://cityscope.media.mit.edu/weekly0.5 \ No newline at end of file diff --git a/build/tanglibe user interfaces/.DS_Store b/build/tanglibe user interfaces/.DS_Store deleted file mode 100644 index f4c05d10..00000000 Binary files a/build/tanglibe user interfaces/.DS_Store and /dev/null differ diff --git a/build/tanglibe user interfaces/CityScoPy/index.html b/build/tanglibe user interfaces/CityScoPy/index.html deleted file mode 100644 index 831cbe30..00000000 --- a/build/tanglibe user interfaces/CityScoPy/index.html +++ /dev/null @@ -1,89 +0,0 @@ - - - - - -CityScoPy | Here We Build CityScope - - - - -
Skip to main content

CityScoPy

*** Download latest release ***

-

A tool for scanning interactions with a tangible LEGO grid and networking MIT CityScope Projects in Python

-

CityScoPy is the main component of an interactive MIT CityScope table. -It is used for initiating and later run a interactive CityScope instance in any arbitrary geolocated area in the world. CityScoPy can capture, key-stone, scan and send uniquely tagged arrays of 2-dimension physical bricks.

-
-

Usage

-
    -
  • install python 3.4 or higher
  • -
  • clone this repo
  • -
-
$ git clone https://github.com/CityScope/CS_CityScoPy.git
$ cd CS_CityScoPy
-
    -
  • install packages. To produce a list of needed packages, use pipreqs, follow instructions https://github.com/bndr/pipreqs. Or, simply run the app and install packages as they appear as missing.
  • -
  • tweak __settings__.json to fit your cityIO table setup. Read cityIO documentation for proper data structure
  • -
  • in run.py setup a path to your settings file
  • -
-
CITYSCOPY_SETTINGS_PATH = "__path__/__settings__.json"
-
    -
  • initiate the Cityscopy class (see run.py example)
  • -
-
cityscopy = Cityscopy(CITYSCOPY_SETTINGS_PATH)
-
    -
  • use one or more of the main methods. 'Blocking' means the method will run forever (while true loop). Advanced users can parallel blocking methods using multithreading.
  • -
-
MethodUsageBlocking?
cityscopy.keystone()initial keystone and save to filex
cityscopy.scan()main scanning and sending methodx
cityscopy.udp_listener()emulate local UDP server listenerx
-
    -
  • in terminal run the tool using $ run.py
  • -
-
-

Class methods

-

Cityscopy.keystone()

-
Initial keystone and save to file
-
    -
  • the tool will start given a cam is connected and working
  • -
  • Select 4 corners [up right, up left, bottom right, bottom left, at this order] of keystone region -Note: no need to exactly select the corners, as these are only initial guides for scanner method
  • -
  • keystone.txt and close
  • -
-

Cityscopy.scan()

-
main scanning and sending method
-

Scanner will detect colors in arrays of 2d-pixel arrays. Then, these color arrays will be compared to list of tags attribute of a given __settings__.json file. Then the tool will return a list of type and rotation for each of the scanned arrays. This list is then converted to cityIO acceptable JSON format and can be sent using POST request.

-
options in __settings__.json
-
{
"cityscopy": {
"cityscope_project_name": "cityscopy", // table name
"type": ["0", "1", "2", ...], // types names
"rotation": ["0", "1", "2", "3"], // default rotations (0, 90, 180, 270)
"nrows": 10, // number of columns to scan
"ncols": 10, // number of rows to scan
"cell_gap": 10, // spacing between grid fields when using physical grid
"camId": 0, // openCV will pick `camID` camera (usually 0)
"interval": 250, // in ms, how many time should this send the packet
"gui": true, // toggle GUI display
"cityio": true, // toggle UDP or cityIO delivery
"tags": [ // 16 digit strings of types being scanned [`1000000100000000`]
"0000000000000000",
"1111111111111111",
"1111111100000000",
...
],
"mirror_cam": false
}
}

-

Tool will start scanning using whatever keystone data was stored in keystone.txt -make corrections to the key stone using the sliders or keyboard using 1,2,3,4 to select a corner and [w,a,s,d] to move [up,left,down,right] the selected corner. Press k to save change to file and ctrl-c twice [in the terminal window] to exit program

-

output

-

the app will attempt sending the resulted scan to cityIO server. If successful, the following JSON format data will appear on the cityIO endpoint defined in settings.json

-

{
"grid": [
[1, 0],
[1, 0],
[0, 0],
[4, 0],
[-1, -1],
[-1, -1], // no type was found will return -1 as type and -1 as rotation
...
],

...
other cityIO data
...
}

-

Cityscopy.udp_listener()

-
emulates local UDP server listener
-

simple helper method to emulate what a local UDP client might see if cityscopy would send scan over localhost

-

Errors

-

OS, Python versions, openCV and peripheral devices such as webcams can sometimes cause issues. If you found and issue, please report it as a Github issue. Here're some encountered issues and their solutions:

-
    -
  • -

    Mac OSX High Sierra blocks multithreading

    - -
  • -
  • -

    Webcam crash on init, despite working on other apps

    -
      -
    • issue: camera is not configured in settings.json
    • -
    • solution: make sure to test different camId values. Your OS might put the camera after another device (2,3..)
    • -
    -
  • -
-
-

License

-

Please see LICENSE file for more details.This tool may require libraries which are subject to own licensing.

-

Contribution

-

Please use GitHub Issues and PR interface for contributions.

-
-

Maintained by Ariel Noyman

-

Repo contributors

- - \ No newline at end of file diff --git a/build/tanglibe user interfaces/CityScope Table Design/index.html b/build/tanglibe user interfaces/CityScope Table Design/index.html deleted file mode 100644 index 0545cbd5..00000000 --- a/build/tanglibe user interfaces/CityScope Table Design/index.html +++ /dev/null @@ -1,67 +0,0 @@ - - - - - -CityScope Table Design | Here We Build CityScope - - - - -
Skip to main content

CityScope Table Design

CityScope Hardware

-

CityScope hardware setup for CS+HCU FindingPlaces project, 2016

-

Ariel Noyman HCU

-

CityScope generic module [Design: Karthik Patanjali, 2015]

-

Karthik_Patanjali

-

Specs

-

The system is still in rapid development, so -the specification is very flexible. At this point the main components of a cityscope table will be:

-

Hardware

-
    -
  1. -

    PC (preferably windows, since some software is win only)

    -
  2. -
  3. -

    Table

    -

    Not every deployment uses this table configuration, often times its just a table with the most important transparent top and grid, this is often made from acrylic and laser cut.

    -
  4. -
  5. -

    Legos

    -
  6. -
  7. -

    Projectors

    -
  8. -
  9. -

    Webcam

    -
  10. -
  11. -

    (Internet connection)

    -
  12. -
-

Software

-

CityScope is composed of multiple software

-
    -
  1. Scanner (gets input from camera converts it to information that can be parsed through various simulation) -currently this functionality is provided using one of below:
  2. -
-
    -
  • Rhinoceros 3D (win only)
  • -
  • Unity game engine
  • -
  • Browser, JavaScript
  • -
-
    -
  1. Simulation / Visualization -this differs largely on what to simulate, or the research question on focus. -In fact, some CityScope table has multiple simulations and visualizations living together.
  2. -
-
    -
  • Gama for agent based simulation
  • -
  • General Simulation and visualization -
      -
    • Rhinoceros 3D / Grasshopper
    • -
    • Unity game engine
    • -
    -
  • -
- - \ No newline at end of file diff --git a/build/tanglibe user interfaces/RoboScope/index.html b/build/tanglibe user interfaces/RoboScope/index.html deleted file mode 100644 index 8708b9bb..00000000 --- a/build/tanglibe user interfaces/RoboScope/index.html +++ /dev/null @@ -1,13 +0,0 @@ - - - - - -RoboScope | Here We Build CityScope - - - - - - - \ No newline at end of file diff --git a/docs/.DS_Store b/docs/.DS_Store index d8d37b2b..fee4193b 100644 Binary files a/docs/.DS_Store and b/docs/.DS_Store differ diff --git a/docs/archive/_category_.json b/docs/archive/_category_.json new file mode 100644 index 00000000..c2ddf8e1 --- /dev/null +++ b/docs/archive/_category_.json @@ -0,0 +1,7 @@ +{ + "label": "Archive", + "position": 999, + "link": { + "type": "generated-index" + } +} diff --git a/docs/archive/brix/.DS_Store b/docs/archive/brix/.DS_Store deleted file mode 100644 index 36fd29f0..00000000 Binary files a/docs/archive/brix/.DS_Store and /dev/null differ diff --git a/docsite/docs/modules/Brix/Brix.md b/docs/archive/brix/Brix.md similarity index 98% rename from docsite/docs/modules/Brix/Brix.md rename to docs/archive/brix/Brix.md index 1e69a33b..afd7c630 100644 --- a/docsite/docs/modules/Brix/Brix.md +++ b/docs/archive/brix/Brix.md @@ -1,7 +1,7 @@ --- id: Brix --- -# Documentation for cs-brix library +# [Archive] The `brix` library Brix is a python library for CityScope modules which handles communication with [City I/O](http://cityio.media.mit.edu/). diff --git a/docsite/docs/modules/Brix/Examples/Examples.md b/docs/archive/brix/Examples/Examples.md similarity index 100% rename from docsite/docs/modules/Brix/Examples/Examples.md rename to docs/archive/brix/Examples/Examples.md diff --git a/docsite/docs/modules/GAMA.md b/docs/archive/brix/GAMA.md similarity index 100% rename from docsite/docs/modules/GAMA.md rename to docs/archive/brix/GAMA.md diff --git a/docsite/docs/modules/Brix/Tutorial/Tutorial.md b/docs/archive/brix/Tutorial/Tutorial.md similarity index 100% rename from docsite/docs/modules/Brix/Tutorial/Tutorial.md rename to docs/archive/brix/Tutorial/Tutorial.md diff --git a/docsite/docs/backend/Api.md b/docs/archive/cityio/api.md similarity index 100% rename from docsite/docs/backend/Api.md rename to docs/archive/cityio/api.md diff --git a/docsite/docs/backend/Build.md b/docs/archive/cityio/build.md similarity index 100% rename from docsite/docs/backend/Build.md rename to docs/archive/cityio/build.md diff --git a/docsite/docs/backend/CityIO.md b/docs/archive/cityio/cityio.md similarity index 61% rename from docsite/docs/backend/CityIO.md rename to docs/archive/cityio/cityio.md index 75d44dba..0a603f7c 100644 --- a/docsite/docs/backend/CityIO.md +++ b/docs/archive/cityio/cityio.md @@ -1,7 +1,8 @@ --- id: CityIO --- -# What is CityIO? + +# [Archive] CityIO - data-hub (dump?) to have several clients work together @@ -15,11 +16,12 @@ id: CityIO - [API](https://github.com/mitmedialab/cityioserver/wiki/API) - shows the endpoint URLs for clients to operate various request through HTTP. (ex. Getting a table data, Updating table data... etc.) + shows the endpoint URLs for clients to operate various request through HTTP. (ex. Getting a table data, Updating table data... etc.) - [Client Examples](https://github.com/mitmedialab/cityioserver/wiki/Client-Examples) - shows hello world examples from each client in different frameworks (GAMA, Grasshopper, Unity ... etc) + shows hello world examples from each client in different frameworks (GAMA, Grasshopper, Unity ... etc) + ## [welcome page](https://cityio.media.mit.edu) with links to available tables # API @@ -27,65 +29,75 @@ id: CityIO [baseurl] https://cityio.media.mit.edu ## dev endpoints + endpoints in development will have /dev before the api -```https://cityio.media.mit.edu/dev/api/table/:tableName``` +`https://cityio.media.mit.edu/dev/api/table/:tableName` ## list available tables + ``` [GET] https://cityio.media.mit.edu/api/tables/list ``` ## get table data + ``` [GET] https://cityio.media.mit.edu/api/table/:tableName ``` + params: - tableName : name of table +tableName : name of table format: json/application https://cityio.media.mit.edu/table/:tableName is **deprecated** ## post table data + ``` [POST] https://cityio.media.mit.edu/api/table/update/:tableName ``` + params: - tableName: name of table +tableName: name of table - body +body -```text/plain``` or ```json/application``` format accepted. - - text will be converted to json internally, will throw an error if it's not - valid json. Server welcomes any valid json, but only things inside ```objects``` and ```grid``` objects - will be used for comparison to detect uniqueness. +`text/plain` or `json/application` format accepted. -https://cityio.media.mit.edu/table/update/:tableName is **deprecated** +text will be converted to json internally, will throw an error if it's not +valid json. Server welcomes any valid json, but only things inside `objects` and `grid` objects +will be used for comparison to detect uniqueness. + +https://cityio.media.mit.edu/table/update/:tableName is **deprecated** ## delete table data + ``` [GET] https://cityio.media.mit.edu/api/table/clear/:tablename ``` + params: - - tableName: name of table -**be careful! will delete all data from memory cache and DB** +tableName: name of table + +**be careful! will delete all data from memory cache and DB** ## delete module data + ``` [GET] https://cityio.media.mit.edu/api/table/clear/:tablename/:modulename ``` + params: - - tablename: name of table - modulename: name of module -**be careful! will delete all data from memory cache and DB** +tablename: name of table +modulename: name of module + +**be careful! will delete all data from memory cache and DB** # How to run it Locally @@ -97,13 +109,12 @@ The current version is developed using rust. 3. clone [sha256 repo](https://github.com/yasushisakai/sha256) - this repo should live in the same directory as the main repo + this repo should live in the same directory as the main repo 4. get db credentials from yasushi, save it in the root of this repo -5. ```cargo run --bin server --release``` +5. `cargo run --bin server --release` - this will compile the program and run it in port 8080 +this will compile the program and run it in port 8080 the server will now run locally - diff --git a/docsite/docs/backend/Internal_Note.md b/docs/archive/cityio/notes.md similarity index 100% rename from docsite/docs/backend/Internal_Note.md rename to docs/archive/cityio/notes.md diff --git a/docs/archive/h3/h3.md b/docs/archive/h3/h3.md new file mode 100644 index 00000000..3588b07f --- /dev/null +++ b/docs/archive/h3/h3.md @@ -0,0 +1,11 @@ +--- +sidebar_position: 1 +--- + +# [Archive] H3 Grid + +:::warning[Warning] + +This documentation is under construction. + +::: diff --git a/docs/cityio/API.md b/docs/cityio/API.md new file mode 100644 index 00000000..9d653350 --- /dev/null +++ b/docs/cityio/API.md @@ -0,0 +1,178 @@ +--- +sidebar_position: 6 +--- + +The CityIO HTTP API enables users to access and update information regarding the projects (grids). + + +## Endpoints + +### List Projects + +- **URL**: `/api/table/list` +- **Method**: `GET` +- **Auth Required**: No +- **Permissions Required**: None + +#### Parameters + +- No parameters allowed. + +#### Request Body + +- No request body allowed. + +#### Success Response + +- **Code**: `200` +- **Content**: `JSON` + +```json +[ + "test_podzem", + "nl_haarlem_pbl_bea", + "ex6_sgp_full_new_landuse_noquay_nostation", + "test", + "ex2_sgp_full_new_landuse_quay_bot", + "group51", + "test_brix", + ... +] +``` + +#### Error Response + +- Error response not expected. + +#### Example request + +`curl --location 'https://cityio-beta.media.mit.edu/cityio/api/table/list'` + +### Get Headers + +- **URL**: `/api/table/list` +- **Method**: `GET` +- **Auth Required**: No +- **Permissions Required**: None + +#### Parameters + +- No parameters allowed. + +#### Request Body + +- No request body allowed. + +#### Success Response + +- **Code**: `200` +- **Content**: + +```json +[ { + "tableHeader": { + "cellSize": 15, + "latitude": 42.3664655, + "longitude": -71.0854323, + "ncols": 20, + "nrows": 20, + "projection": "+proj=lcc +lat_1=42.68333333333333 +lat_2=41.71666666666667 +lat_0=41 +lon_0=-71.5 +x_0=200000 +y_0=750000 +ellps=GRS80 +datum=NAD83 +units=m +no_def", + "rotation": 0, + "tableName": "test", + "tz": -5 + }, + "tableName": "test" + }, +... +] +``` + +#### Error Response + +- Error response not expected. + +#### Example request + +`curl --location 'https://cityio-beta.media.mit.edu/cityio/api/table/headers'` + +### Get Grid + +- **URL**: `/api/table/{tableName}/{dataPath}` +- **Method**: `GET` +- **Auth Required**: No +- **Permissions Required**: None + +#### Parameters + +- `tableName` (String) - Name of the table +- `param2` (String, optional) - Data path to obtain (optional) + +#### Request Body + +- No request body allowed. + +#### Success Response + +- **Code**: `200` +- **Content**: + +```json +{ + "GEOGRID": { + "features": [ + { + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + -71.0854323, + 42.36646549999987 + ], +... +} +``` + +#### Error Response + +- **Code**: `204` +- **Description**: Empty body if the table name or the path cannot be found. + +#### Example request + +`curl --location 'https://cityio-beta.media.mit.edu/cityio/api/table/test'` + +### Create or Update table + +- **URL**: `/api/table/{tableName}` +- **Method**: `POST` +- **Auth Required**: No +- **Permissions Required**: None + +#### Parameters + +- No request body expected. + +#### Request Body + +```json +{ +$TABLE_BODY +} +``` + +#### Success Response + +- **Code**: `200` +- **Content**: + +```json +{ +$TABLE_BODY +} +``` + +#### Error Response + +- WIP diff --git a/docs/cityio/Architecture.md b/docs/cityio/Architecture.md new file mode 100644 index 00000000..f33ca1c8 --- /dev/null +++ b/docs/cityio/Architecture.md @@ -0,0 +1,54 @@ +--- +sidebar_position: 2 +--- + +## WebSockets: definition and use + +WebSockets provide a way for two-way communication between a client and a server over a single, long-lived connection. This is different from the traditional HTTP request-response model, where each request opens a new connection (or reuses an existing connection in a limited way), and the server cannot send messages to the client unless explicitly requested. WebSockets allow the server to send messages to the client at any time, facilitating real-time data transfer and interactive applications. + +In our scenario, CityIO is a message broker that collects, processes, and distributes urban data, and CityScopeJS is a web-based user interface that visualizes this data for analysis and decision-making. + +Using WebSockets CityScopeJS establishes a WebSocket connection to CityIO when a user opens a project. This single connection stays open for the duration of the user's session. Whenever CityIO has new data or updates, it can immediately push this data to CityScopeJS over the WebSocket connection. CityScopeJS receives the data in real-time and updates the visualizations accordingly. This setup minimizes network overhead, reduces server load, and provides a seamless, real-time user experience. + +## WebSockets Messages + +The WebSocket messages exchanged between CityIO, the user interfaces (UIs), and the modules will adhere to the following structure, which is represented as a JSON schema: + +```json +{ + "title": "websocket-message", + "description": "Structure of the websocket messages", + "type": "object", + "properties": { + "type":{ + "type": "string" + }, + "content":{ + "type": "object" + } + } +} +``` + +- The property **type** will indicate what type of message is sending the entity. +- the property **content** will differ depending on the type of the message; should contain the information needed for the destination entity to process the message. + +Upon reception of a message, the CityScope entity (CityIO, User Interfaces, or Modules) will follow the next steps: + +- Parses the message as a JSON, using the previous schema. +- Reads the type property: + - If the type is recognized, reads the content property and executes the proper action. + - Otherwise, the message is discarted. + +## HTTP API + +CityIO features an HTTP API that enables users to access a wide range of information about various projects. The REST API is designed to maintain compatibility with the previous version of CityIO, ensuring that older modules can seamlessly communicate with this new component. + +## Interfaces + +The available interfaces, as previously mentioned, include the following: + +- Websocket channel **/interface**: interface to exchange messages with interfaces. +- Websocket channel **/module**: interface to exchange messages with modules. +- Websocket channel **/module/core**: interface to exchange messages with core modules. +- API REST **/api**: HTTP interface to obtain information from CityIO. diff --git a/docs/cityio/CityIO - Core.md b/docs/cityio/CityIO - Core.md new file mode 100644 index 00000000..16834067 --- /dev/null +++ b/docs/cityio/CityIO - Core.md @@ -0,0 +1,27 @@ +--- +sidebar_position: 5 +--- + +The objective of this interface is to facilitate the integration of core modules into the CityScope network. + +## Message Flow + +The following subsections will detail the various data exchanges that can take place between CityIO and the Core Modules. + +## Initial connection + +To integrate a core module into the CityScope network, the module can establish a connection via the `/module/core` endpoint. Upon successful connection, the module should send a CORE_MODULE_REGISTRATION message containing information to identify the module. + +![Initial Connection](/img/cityio/wc/initialcon.png) + +## Subscription request + +When a user, through a user interface, wishes to connect a module to a project, they send a request to CityIO. This request is then forwarded to the core module as a SUBSCRIPTION_REQUEST message. If the module is available, the core module should respond by sending a SUBSCRIBE message to CityIO, including the identifier of the grid that requires the module's services. Upon receiving the grid information, the core module should calculate the necessary indicator and transmit this data back to CityIO. + +![Subscription Request](/img/cityio/wc/subrequest.png) + +## Subscription removal request + +If a user wishes to disconnect a module from a project, they can send a module removal request to CityIO. This request will be forwarded to the Core Module as a SUBSCRIPTION_REMOVAL_REQUEST. Upon receiving this message, the Core Module should then UNSUBSCRIBE from the project. + +![Subscription Removal Request](/img/cityio/wc/subremovalrequest.png) diff --git a/docs/cityio/CityIO - Module.md b/docs/cityio/CityIO - Module.md new file mode 100644 index 00000000..992f8e86 --- /dev/null +++ b/docs/cityio/CityIO - Module.md @@ -0,0 +1,23 @@ +--- +sidebar_position: 4 +--- + +The aim of this interface is to enable user modules to access information about the grids created in CityIO, calculate Key Performance Indicators (KPIs), and then transmit them to the user interfaces. + +Brix can be utilized as Middleware to facilitate interaction with this interface. + +## Message Flow + +The subsequent subsections provide descriptions of the various data exchanges that can occur between CityIO and the User-Defined modules. + +## Initial connection + +To add a user-defined module to a project, the interface `/module` can initiate a WebSocket channel. Once the connection is established, the module can send a SUBSCRIBE request to CityIO to acquire grid information. After receiving the grid details, the module should calculate the indicator and then send the information back to CityIO. + +![Initial Connection](/img/cityio/wm/initialcon.png) + +## Module recalculation + +Upon receiving a GEOGRIDATA_UPDATE message from CityIO, the module should recalculate the indicator and send the updated information back to CityIO. + +![Grid Update](/img/cityio/wm/calc.png) diff --git a/docs/cityio/CityIO - UI.md b/docs/cityio/CityIO - UI.md new file mode 100644 index 00000000..a55d54be --- /dev/null +++ b/docs/cityio/CityIO - UI.md @@ -0,0 +1,41 @@ +--- +sidebar_position: 3 +--- + +The objective of this interface is to enable user interfaces to access information about the grids created in CityIO, as well as the Key Performance Indicators (KPIs) computed by the modules. Additionally, this interface will permit users to make changes to the grids. + +This WebSocket interface is independent of the User Interface's implementation, making it possible to utilize this WebSocket channel in CityScopeJS, Tangible User Interfaces (TUIs), and any forthcoming UI proposals. + +## Message Flow + +The subsequent subsections detail the various data exchanges that can take place between CityIO and the User Interfaces. + +## Initial connection + +When a user interface seeks to establish a connection with CityIO to send and receive information from a project, it initiates a request to `/interface`, which will be upgraded to a WebSocket. Following this, the UI can designate the specific grid (project) it wishes to connect to, and as a result, the UI will receive the grid's data. Subsequently, the User Interface can request the list of scenarios associated with that project, as well as the list of available core modules. + +![Initial Connection](/img/cityio/wui/initialcon.png) + +## Grid Update + +When the user interface needs to update the grid at the user's request, it can transmit the updated GEOGRIDDATA to CityIO via the WebSocket. + +![Grid Update](/img/cityio/wui/gridupdate.png) + +## Module Request + +When the user interface intends to request the connection of a module based on a user's demand, it can send a MODULE_REQUEST message to CityIO. + +![Module Request](/img/cityio/wui/modulerequest.png) + +## Save Scenario + +When the user interface aims to save the current state of the project as a scenario at a user's request, it can send a SEND_SCENARIO message to CityIO, including the name of the scenario and its description. + +![Module Request](/img/cityio/wui/scenariosave.png) + +## Delete and Restore Scenario + +When the user interface seeks to delete or restore a scenario based on a user's request, it can send a MODIFY_SCENARIO message, with the property `isInBin` set to true or false, depending on whether the scenario should be placed in the bin or restored. + +![Module Request](/img/cityio/wui/scenariodeleterestore.png) diff --git a/docs/cityio/Introduction.md b/docs/cityio/Introduction.md new file mode 100644 index 00000000..00503666 --- /dev/null +++ b/docs/cityio/Introduction.md @@ -0,0 +1,9 @@ +--- +sidebar_position: 1 +--- + +The purpose of this section is to outline the architecture and interfaces of CityIOWS, an updated version of CityIO that utilizes WebSockets for communication with modules and user interfaces. + +The diagram below illustrates the various components that interact with CityIOWS, including modules, core modules, and user interfaces. Communication among these components is facilitated through CityIO, serving as a broker. A WebSocket channel is established for each connection. + +![CityIO Websockets](/img/cityio/arch.png) diff --git a/docs/cityio/_category_.json b/docs/cityio/_category_.json new file mode 100644 index 00000000..4cb01c7c --- /dev/null +++ b/docs/cityio/_category_.json @@ -0,0 +1,7 @@ +{ + "label": "CityIO", + "position": 5, + "link": { + "type": "generated-index" + } +} diff --git a/docsite/docs/frontend/cityscopeJS.md b/docs/cityscopejs/Introduction.md similarity index 90% rename from docsite/docs/frontend/cityscopeJS.md rename to docs/cityscopejs/Introduction.md index 83cee9a7..08dd523f 100644 --- a/docsite/docs/frontend/cityscopeJS.md +++ b/docs/cityscopejs/Introduction.md @@ -1,5 +1,5 @@ --- -id: CityScopeJS +sidebar_position: 1 --- ## CityScope platform for the web @@ -10,6 +10,8 @@ CityScopeJS is the unified front-end for the [MIT CityScope](https://cityscope.m CityScopeJS is an online tool with a web interface or tangible user interface (TUI). Using the tool, users can input land uses, buildings, open spaces or transport routes, categorize them and enrich their description with details on usability, density and other parameters. This input forms the basis for calculating the various modules and indicators. +This tool also enables collaboration among people within the City Science Network. By using a single tool for defining projects and visualizations, individuals can easily exchange processes, best practices, and even modules. + ###### CityScopeJS Web interface ![TUI](img/web_ui.jpg) @@ -52,9 +54,9 @@ In the project directory, you can run: `npm start` Runs the app in the developme The CSjs Grid Editor is a helper tool to bootstrap new CityScope projects. It allow a quick creation of: -- a CityScope endpoint on CityIO -- a geo-located, 3D, editable and contextual CityScope grid -- a list of land-uses to be used during the project +- a CityScope endpoint on CityIO +- a geo-located, 3D, editable and contextual CityScope grid +- a list of land-uses to be used during the project ## CityScopeJS schema diff --git a/docs/cityscopejs/Opening a project.md b/docs/cityscopejs/Opening a project.md new file mode 100644 index 00000000..2735a301 --- /dev/null +++ b/docs/cityscopejs/Opening a project.md @@ -0,0 +1,10 @@ +--- +sidebar_position: 2 +--- + +On the CityScopeJS landing page, there are two ways to access a project. + + 1. Using the 'Search CityScope Project' text input, users can search for and access the desired project. + 2. Users can also access a project by utilizing the globe map and selecting a project by clicking on its corresponding icon. + +![CityScopeJS How to Open a Project](/img/cityscopejs/opening-project.png) diff --git a/docs/cityscopejs/Project view.md b/docs/cityscopejs/Project view.md new file mode 100644 index 00000000..a5f010c4 --- /dev/null +++ b/docs/cityscopejs/Project view.md @@ -0,0 +1,23 @@ +--- +sidebar_position: 3 +--- + +When you open a project, CityScopeJS will present you with the project view. This page aims to provide a workspace where you can manage your projects and visualize the outputs of modules. It consists of a navigation bar at the top of the screen, where you can click on different buttons to open several windows with various functionalities. The available options are: + + 1. **Edit Mode:** In this mode, you can modify the configuration of a city by editing the land uses of the grid that represents the city. + + 2. **Scenarios:** In the scenarios menu, you can save the current configuration of the city by assigning it a name and a description. Later in the process, you can switch between different scenarios of your city to study the impact of various interventions on the land, or simply to save different possibilities and analyze the metrics afterward. + + 3. **Layers:** In the layers menu, you can select which layers of the visualization you want to see and adjust the opacity of each one. This feature is particularly useful when working with complex visualizations, as it enables you to focus on specific elements. + + 4. **View:** This menu allows us to toggle different visibility settings for the map. + + 5. **Radar Chart:** In the radar chart window, you can display various metrics and KPIs related to your project. Initially, this will be empty; you must connect a module to the project in order to see data displayed. + + 6. **Land Use:** In this menu, you can see the current distribution of land uses within the project. + + 7. **Bar Chart:** In the bar chart window, you can display various metrics and KPIs related to your project using a bar plot. Initially, this will be empty; you must connect a module to the project in order to see data displayed. + + 8. **Modules:** In the modules window, you can view and select always-available modules that are independent of the projects. When selecting a module, it will compute the results for your project and display them in the interface. + +![CityScopeJS Project View](/img/cityscopejs/project-view.png) diff --git a/docs/cityscopejs/_category_.json b/docs/cityscopejs/_category_.json new file mode 100644 index 00000000..56547f7a --- /dev/null +++ b/docs/cityscopejs/_category_.json @@ -0,0 +1,7 @@ +{ + "label": "CityScopeJS", + "position": 2, + "link": { + "type": "generated-index" + } +} diff --git a/docsite/docs/frontend/img/CityScopeJS.jpg b/docs/cityscopejs/img/CityScopeJS.jpg similarity index 100% rename from docsite/docs/frontend/img/CityScopeJS.jpg rename to docs/cityscopejs/img/CityScopeJS.jpg diff --git a/docsite/docs/frontend/img/csbg.jpg b/docs/cityscopejs/img/csbg.jpg similarity index 100% rename from docsite/docs/frontend/img/csbg.jpg rename to docs/cityscopejs/img/csbg.jpg diff --git a/docsite/docs/frontend/img/web_ui.jpg b/docs/cityscopejs/img/web_ui.jpg similarity index 100% rename from docsite/docs/frontend/img/web_ui.jpg rename to docs/cityscopejs/img/web_ui.jpg diff --git a/docs/intro/.DS_Store b/docs/intro/.DS_Store deleted file mode 100644 index 940e9429..00000000 Binary files a/docs/intro/.DS_Store and /dev/null differ diff --git a/docs/intro/github.md b/docs/intro/github.md new file mode 100644 index 00000000..55d0d065 --- /dev/null +++ b/docs/intro/github.md @@ -0,0 +1,34 @@ +--- +sidebar_position: 3 +--- + +# Development on GitHub + +CityScope is open-source software and is primarily hosted on GitHub. The organization structure is designed to facilitate the development and deployment of CityScope projects. The organization consists of two types of repositories: tools and cities. + +The image below illustrates the components currently available in the CityScope Beta Software architecture. Additional components can be incorporated as required in the future. + +![CityIO Websockets](./img/current_dev.jpg) + +## General development guidelines + +There are many different repositories in the CityScope organization, and each one may have its own development guidelines, license, and contributing guidelines. However, there are some general guidelines that apply to all repositories: + +- contact the maintainers of the repository to make sure your contribution is in line with the project's goals +- Fork the repository and make your changes in your fork +- Create a pull request to the original repository +- Make sure your code is well-documented and tested + +## Repos Structure + +This organization consists two types of repositories. + +1. Tools + + Repositories having the prefix of `CS_` are the bare tools that commonly used across city projects. + +2. Cities + + Cities have their own repositories that includes links (more exactly submodules) of the above tools and other things. These repos start with `CSL_`. + +![CityScope in Andorra. Photo: Ariel Noyman](img/Github_CS_Organization_diagram.png) diff --git a/build/assets/images/CityScopeJS_arch-ed1917ce223b84765036b435c6877aba.jpg b/docs/intro/img/CityScopeJS_arch.jpg similarity index 100% rename from build/assets/images/CityScopeJS_arch-ed1917ce223b84765036b435c6877aba.jpg rename to docs/intro/img/CityScopeJS_arch.jpg diff --git a/docsite/docs/general/img/CityScopeJS_arch.png b/docs/intro/img/CityScopeJS_arch.png similarity index 100% rename from docsite/docs/general/img/CityScopeJS_arch.png rename to docs/intro/img/CityScopeJS_arch.png diff --git a/docsite/docs/general/img/Github_CS_Organization_diagram.png b/docs/intro/img/Github_CS_Organization_diagram.png similarity index 100% rename from docsite/docs/general/img/Github_CS_Organization_diagram.png rename to docs/intro/img/Github_CS_Organization_diagram.png diff --git a/docsite/docs/general/img/cs_an.jpg b/docs/intro/img/cs_an.jpg similarity index 100% rename from docsite/docs/general/img/cs_an.jpg rename to docs/intro/img/cs_an.jpg diff --git a/build/assets/images/current_dev-15561505387e0c93b9d3312aa723a9d8.jpg b/docs/intro/img/current_dev.jpg similarity index 100% rename from build/assets/images/current_dev-15561505387e0c93b9d3312aa723a9d8.jpg rename to docs/intro/img/current_dev.jpg diff --git a/docs/intro/intro.md b/docs/intro/intro.md new file mode 100644 index 00000000..8953e65c --- /dev/null +++ b/docs/intro/intro.md @@ -0,0 +1,19 @@ +--- +slug: / +sidebar_position: 1 +title: Introduction +--- + +# CityScope + +CityScope is a project conducted at the MIT Media Lab City Science group. It includes a slew of tangible and digital platforms dedicated to solving spatial design and urban planning challenges. The tools range from simulations that quantify the impact of disruptive interventions in cities to community engagement systems. We develop and deploy these tools around the world and maintain free and open-source community for the majority of our work. + +:::warning[Note] +CityScope documentation and the software it describes are works in progress. The content of the documentation or the software may change without prior notice. +::: + +![CityScope in Andorra. Photo: Ariel Noyman](img/cs_an.jpg) + +###### Figure: CityScope in Andorra La-Vella (Photo: Ariel Noyman) + + diff --git a/docs/intro/system.md b/docs/intro/system.md new file mode 100644 index 00000000..7f9fa060 --- /dev/null +++ b/docs/intro/system.md @@ -0,0 +1,49 @@ +--- +sidebar_position: 2 +--- + +# System Architecture + +CityScope is composed of a series of tools loosely connected to each other. The tools are developed in different languages and frameworks, and they communicate through a central server, CityIO. + +## CityScopeJS + +CityScopeJS is a modular, open-ended architecture for MIT CityScope project. + +- User interface to interact with the CityScope projects +- Uses CityIO Websockets to communicate with the server +- New user experience and design for the CityScope projects + +![CityScopeJS Architecture](img/CityScopeJS_arch.jpg) + + + +###### Figure: CityScopeJS Architecture (Photo: Ariel Noyman) + +CityScopeJS includes several other modules for building, testing and deploying an end-to-end CityScope platform. Each module is developed as a standalone part of the system with minimal dependency on others. Data flow between modules is done using [cityIO](https://cityio.media.mit.edu), which operates between the different modules. + +## Modules + +Different analysis modules calculate various indicators on urban performance, such as noise, mobility, energy and others. These analysis modules are developed by experts in each evaluation field. + +- Urban Indicators module: https://github.com/CityScope/CS_Urban_Indicators +- A service providing mobility simulation, Agent Based Simulation, and aggregated mobility prediction for CityScope projects https://github.com/CityScope/CS_Mobility_Service +- Noise Modeling for Grasbrook, Hamburg: https://github.com/CityScope/CSL_Hamburg_Noise +- Agent Based Modeling https://github.com/CityScope/CS_Simulation_GAMA +- Traffic Simulation module using DLR SUMO https://github.com/CityScope/CS_SUMOscope + +## CityScope Server (cityIO) + +CityIO is a server program that saves tables to have different software (visualization, simulation) read/write information. It exposes an API to serve JSON files representing table info. + +- Enables the communication between the different components of the system. +- Saves the projects to access them seamlessly in all the components. +- Rebuilt to allow real-time communication, using WebSockets. + +See https://github.com/CityScope/CS_CityIO + +## Tangible User Interfaces + +CityScope also includes tangible user interfaces (TUIs) that allow users to interact with the system in a physical way. These interfaces are developed using the CityScopeJS platform. + +- CityScope Scanner: https://github.com/CityScope/CS_CityScoPy diff --git a/docs/modules/.DS_Store b/docs/modules/.DS_Store index 715a7d92..b6ed2d64 100644 Binary files a/docs/modules/.DS_Store and b/docs/modules/.DS_Store differ diff --git a/docs/modules/Core Modules/Introduction.md b/docs/modules/Core Modules/Introduction.md new file mode 100644 index 00000000..064f9422 --- /dev/null +++ b/docs/modules/Core Modules/Introduction.md @@ -0,0 +1,10 @@ +--- +sidebar_position: 1 +--- + +# Introduction + +:::warning[Warning] + +This documentation is under construction. +::: diff --git a/docs/modules/_category_.json b/docs/modules/_category_.json new file mode 100644 index 00000000..df6ec55e --- /dev/null +++ b/docs/modules/_category_.json @@ -0,0 +1,8 @@ +{ + "label": "Modules", + "position": 3, + "link": { + "type": "generated-index", + "description": "CityScope Modules" + } +} diff --git a/docs/modules/brix/DeckGL Modules.md b/docs/modules/brix/DeckGL Modules.md new file mode 100644 index 00000000..918bc4ba --- /dev/null +++ b/docs/modules/brix/DeckGL Modules.md @@ -0,0 +1,405 @@ +--- +sidebar_position: 2 +--- + +The main difference in using Brix WS compared to the previous version of Brix is the method of sending data to CityScope for visualization. The previous version of Brix allowed for various pre-defined visualizations, such as numeric with bars or graphs, heatmaps, or ABM, among others. While this was useful, it didn't offer enough flexibility for module makers to create complex visualizations with a variety of different elements. They were always constrained to using the same method to display data. + +To address this issue, Brix WS introduces **DeckGL modules**, a new type of module that can harness the full power of DeckGL and create robust visualizations using multiple DeckGL layers. + +The structure of the data that DeckGL modules should follow is an array of objects, where each object represents one layer of the visualization. Every layer always has the same three properties: + - `type`: The type of the layer. + - `data`: The data to be represented. + - `properties`: Additional properties to configure the visualization of the layer. + +```json +[ +{"type":"column","data":$data,"properties":{}}, +{"type":"arc","data":$data,"properties":{}}, +{"type":"column","data":$data,"properties":{}}, +... +] +``` + +## Available DeckGL Layers + +At the time being, the available DeckGL layers that can be use in the modules are the following: + - arc: https://deck.gl/docs/api-reference/layers/arc-layer + - column: https://deck.gl/docs/api-reference/layers/column-layer + - contours: https://deck.gl/docs/api-reference/aggregation-layers/contour-layer + - geojsonbase: https://deck.gl/docs/api-reference/layers/geojson-layer + - gridlayer: https://deck.gl/docs/api-reference/aggregation-layers/grid-layer + - gridcell: https://deck.gl/docs/api-reference/layers/grid-cell-layer + - heatmap: https://deck.gl/docs/api-reference/aggregation-layers/heatmap-layer + - hexagon: https://deck.gl/docs/api-reference/aggregation-layers/hexagon-layer + - icon: https://deck.gl/docs/api-reference/layers/icon-layer + - lines: https://deck.gl/docs/api-reference/layers/line-layer + - path: https://deck.gl/docs/api-reference/layers/path-layer + - scatterplot: https://deck.gl/docs/api-reference/layers/scatterplot-layer + - scenegraph: https://deck.gl/docs/api-reference/mesh-layers/scenegraph-layer + - simpleMesh: https://deck.gl/docs/api-reference/mesh-layers/simple-mesh-layer + - textLayer: https://deck.gl/docs/api-reference/layers/text-layer + +This list will grow over time to include all the layers in DeckGL. In each of the links, you can view an example of the visualization that the layer creates. + +### Arc + +The arc layer should follow the schema of the next example: + +```json + { + "type": "arc", + "data":[ + { + "from": { + "coordinates": [-122.269029, 37.80787] + }, + "to": { + "coordinates": [-122.271604, 37.803664] + }, + "sourceColor": [255, 140, 0], + "targetColor": [100, 140, 0] + }, + ], + "properties": { + "width": 20 + } + } + +``` + +The available properties for this layer are the following: + - width: integer, default value 12. + +### Column + +The column layer should follow the schema of the next example: + +```json + { + "type": "column", + "data":[ + {"centroid": [-122.4, 37.7], "value": 0.2}, + ], + "properties": { + "disResolution": 12, + "radius": 25 + } + } + +``` + +The available properties for this layer are the following: + - disResolution: integer, default value 12. + - radius: integer, default value 30. + - extruded: boolean, default value true. + - pickable: boolean, default value true. + - elevationScale: integer, default value 1. + +### Contour + +The contour layer should follow the schema of the next example: + +```json + { + "type": "contour", + "data":[ + {"coordinates": [-122.42177834, 37.78346622]} + ], + "properties": { + "cellSize": 100 + } + } + +``` + +The available properties for this layer are the following: + - cellSize: integer, default value 200. + +### GeoJson + +The GeoJson layer should follow the schema of the next example: + +```json + { + "type": "geojsonbase", + "data": $validGeoJsonObject, + "properties": { + "filled": false + } + } + +``` + +The available properties for this layer are the following: + - pickable: boolean, default value true. + - stroked: boolean, default value false. + - filled: boolean, default value true. + - extruded: boolean, default value true. + - pointType: string, default value 'circle'. + - lineWidthScale: integer, default value 20. + - lineWidthMinPixels: integer, default value 100. + - pointRadius: integer, default value 100. + - lineWidth: integer, default value 1. + - elevation: integer, default value 30. + +### Grid + +The Grid layer should follow the schema of the next example: + +```json + { + "type": "gridlayer", + "data": [{"coordinates": [-122.42177834, 37.78346622]}], + "properties": { + "cellSize": 100 + } + } + +``` + +The available properties for this layer are the following: + - pickable: boolean, default value true. + - extruded: boolean, default value true. + - cellSize: integer, default value 200. + - elevationScale: integer, default value 4. + +### GridCell + +The GridCell layer should follow the schema of the next example: + +```json + { + "type": "gridcell", + "data": [{"centroid": [-122.42177834, 37.78346622], "value": 100}], + "properties": { + "cellSize": 100 + } + } + +``` + +The available properties for this layer are the following: + - pickable: boolean, default value true. + - extruded: boolean, default value true. + - cellSize: integer, default value 200. + - elevationScale: integer, default value 5000. + +### Heatmap + +The heatmap layer should follow the schema of the next example: + +```json + { + "type": "heatmap", + "data": [{"coordinates": [-122.42177834, 37.78346622], "weight": 100}], + "properties": { + } + } + +``` + +### Hexagon + +The Hexagon layer should follow the schema of the next example: + +```json + { + "type": "hexagon", + "data": [{"coordinates": [-122.42177834, 37.78346622]}], + "properties": { + "elevationScale": 3 + } + } + +``` + +The available properties for this layer are the following: + - pickable: boolean, default value true. + - extruded: boolean, default value true. + - radius: integer, default value 200. + - elevationScale: integer, default value 4. + +### Icon + +The Icon layer should follow the schema of the next example: + +```json + { + "type": "icon", + "data": [{"coordinates": [-122.42177834, 37.78346622], "icon": $url, "width": 128, "height": 128, "anchorY": 128, "elevation": 30}], + "properties": { + "sizeScale": 3 + } + } + +``` + +The available properties for this layer are the following: + - pickable: boolean, default value true. + - sizeScale: integer, default value 10. + - sizeMaxPixels: integer, default value 10. + +### Line + +The line layer should follow the schema of the next example: + +```json + { + "type": "line", + "data":[ + { + "from": { + "coordinates": [-122.269029, 37.80787] + }, + "to": { + "coordinates": [-122.271604, 37.803664] + }, + "color": [255, 140, 0] + }, + ], + "properties": { + "width": 20 + } + + } + +``` + +The available properties for this layer are the following: + - pickable: boolean, default value true. + - width: integer, default value 50. + +### Path + +The Path layer should follow the schema of the next example: + +```json + { + "type": "path", + "data":[ + { + "path": [[-122.269029, 37.80787],[-122.271604, 37.803664],[-122.271604, 38.803664]], + "color": [255, 140, 0], + "width": 5 + }, + ], + "properties": { + "widthScale": 30 + } + + } + +``` + +The available properties for this layer are the following: + - pickable: boolean, default value true. + - widthScale: integer, default value 20. + - widthMinPixels: integer, default value 2. + +### ScatterPlot + +The ScatterPlot layer should follow the schema of the next example: + +```json + { + "type": "scatterplot", + "data":[ + {"name": "Colma (COLM)", "address”: "365 D Street, Colma CA 94014", "exits”: 4214, "coordinates": [-122.466233, 37.684638]}, + ], + "properties": { + "lineWidthMinPixels": 2 + } + + } + +``` + +The available properties for this layer are the following: + - pickable: boolean, default value true. + - stroked: boolean, default value true. + - filled: boolean, default value true. + - radiusScale: integer, default value 6. + - radiusMinPixels: integer, default value 1. + - radiusMaxPixels: integer, default value 100. + - lineWidthMinPixels: integer, default value 1. + +### Scenegraph + +The Scenegraph layer should follow the schema of the next example: + +```json + { + "type": "scenegraph", + "data":[ + {"coordinates": [-122.466233, 37.684638]}, + ], + "properties": { + "scenegraph": "https://raw.githubusercontent.com/KhronosGroup/glTF-Sample-Models/master/2.0/BoxAnimated/glTF-Binary/BoxAnimated.glb" + } + + } + +``` + +The available properties for this layer are the following: + - pickable: boolean, default value true. + - scenegraph: string, url of the glb object. + - sizeScale: integer, default value 500. + +### SimpleMesh + +The SimpleMesh layer should follow the schema of the next example: + +```json + { + "type": "simpleMesh", + "data":[ + { + "position": [-122.45, 37.7], + "angle": 0, + "color": [255, 0, 0] + }, + { + "position": [-122.46, 37.73], + "angle": 90, + "color": [0, 255, 0] + }, + ], + "properties": { + "mesh": "https://raw.githubusercontent.com/visgl/deck.gl-data/master/website/humanoid_quad.obj" + } + + } + +``` + +The available properties for this layer are the following: + - sizeScale: integer, default value 1. + - mesh: string, url of the obj object. + +### TextLayer + +The Text layer should follow the schema of the next example: + +```json + { + "type": "textLayer", + "data":[ + { + "coordinates": [-122.45, 37.7], + "text": "example", + }, + { + "position": [-122.46, 37.73], + "text": "example", + }, + ], + "properties": { + } + + } + +``` + +The available properties for this layer are the following: + - pickable: boolean, default value true. diff --git a/docs/modules/brix/Introduction.md b/docs/modules/brix/Introduction.md new file mode 100644 index 00000000..e0ab1247 --- /dev/null +++ b/docs/modules/brix/Introduction.md @@ -0,0 +1,17 @@ +--- +sidebar_position: 1 +--- + +:::warning[Warning] + +This documentation is under construction. The content of the documentation may change without prior notice. + +::: + +Brix is a Python library that manages communication with CityIO and CityScopeJS. This enables module makers to focus on their projects without the necessity of directly interacting with CityIO or the UI. + +As depicted in the following image, module makers only need to concern themselves with the code in their modules, the utilization of Brix, and the results obtained in CityScopeJS. All internal communication mechanisms and updates are managed by the CityScope platform. + +![Subscription Request](/img/brix/brix.png) + +You can find more information about Brix on the following website: https://cityscope.media.mit.edu/CS_Brix/getting_started.html diff --git a/docs/modules/brix/Module example.md b/docs/modules/brix/Module example.md new file mode 100644 index 00000000..42cdf282 --- /dev/null +++ b/docs/modules/brix/Module example.md @@ -0,0 +1,119 @@ +--- +sidebar_position: 3 +--- + +In this section, we present how to code an example DeckGL module on Brix WS that connects with a project in CityScopeJS and displays various visualizations. + +Currently, Brix WS is not published as a Python library available through pip. Consequently, the first step would be to download the code from GitHub. + +## Basic structure of a module + +The basic structure of any module will be as follows: + +```python + +from brix.classes import DeckGLIndicator + +import random +from numpy import mean +class ExampleModule(DeckGLIndicator): + + def setup(self): + self.name = 'example' + + def load_module(self): + pass + + def return_indicator(self, geogrid_data): + # Module code +``` + +The `setup` function will be used to define the values of some variables, such as the name of the module. + +Data loading actions should go in the `load_module` function + +`return_indicator` will be the main function of any module, in this one, you can read the data of the grid realted to the project, executed the necessary calculations to obtain the module output, and return it in a proper structure to be sent back to CityIO. + +## DeckGL Modules: adding layers + +In order to generate a DeckGL module, we need to send back to CityIO all the layers that will compose the visualization in CityScopeJS. In this example, we use different types of layers to generate a random indicator: heatmaps, columns, arc, and geojson. + +```python + def return_indicator(self, geogrid_data): + + data = [] + + #HEATMAP + features = [] + for cell in geogrid_data: + feature = {} + lat,lon = zip(*cell['geometry']['coordinates'][0]) + lat,lon = mean(lat),mean(lon) + feature['coordinates'] = [lat,lon] + feature['weight'] = random.random()*10 + features.append(feature) + + data.append({"type":"heatmap","data":features,"properties":{}}) + + #ARC + arc_data = [{ + 'inbound': 72633, + 'outbound': 74735, + 'from': { + 'name': 'MIT Media Lab', + 'coordinates': [-71.08727713271684, 42.36041314214483] + }, + 'to': { + 'name': 'MIT CSAIL', + 'coordinates': [-71.09060913355545, 42.36168851347742] + } + }] + data.append({"type":"arc","data":arc_data,"properties":{"width":1}}) + + #COLUMNS + features_columns = [] + for cell in geogrid_data: + feature = {} + lat,lon = zip(*cell['geometry']['coordinates'][0]) + lat,lon = mean(lat),mean(lon) + feature['centroid'] = [lat,lon] + feature['value'] = random.random()*300 + features_columns.append(feature) + + data.append({"type":"column","data":features_columns,"properties":{}}) + + #GEOJSON + geojson_data = {"type": "FeatureCollection","features": [{"type": "Feature","properties": {},"geometry": {"coordinates": [[[-71.09236362469034,42.35778603125499],[-71.08986747898945,42.3585765398804],[-71.0901949616614,42.35911429516614],[-71.09076987568574,42.358931458885564],[-71.09126473839052,42.35978648280218],[-71.09261105604213,42.35938317108344],[-71.09214530290863,42.3584421003398],[-71.09268382996976,42.35830766051154],[-71.09236362469034,42.35778603125499]]],"type": "Polygon"}}]} + + data.append({"type":"geojsonbase","data":geojson_data,"properties":{}}) + + + return data +``` + +The straightforward solution is, for each layer, calculate the necessary data, and then append the layer to the ouput array. + +It is important to note that this method could be follow with any set of the available layers. + +## Connecting with CityIO + +Connecting a module to a CityScope project will only require to create a Handler, indicating the name of the table that you want to connect to. Then, add the indicator (module) previously defined to the handler, and start it. + +```python +from brix.classes import Handler + +indicator = ExampleModule() + +H = Handler(quietly=False, + table_name='walkability') +H.add_indicators([ + indicator + ]) +H.listen() +``` + +## Visualizing the result in CityScopeJS + +When everything is done, and you run the code, this will send to CityScopeJS the result of the module. + +![Subscription Request](/img/brix/deckgl-module.png) diff --git a/docs/modules/brix/_category_.json b/docs/modules/brix/_category_.json new file mode 100644 index 00000000..18b6f889 --- /dev/null +++ b/docs/modules/brix/_category_.json @@ -0,0 +1,8 @@ +{ + "label": "Brix", + "position": 4, + "link": { + "type": "generated-index", + "description": "All you need to know about Brix Websockets." + } +} diff --git a/docsite/docs/modules/img/BOXEL_Scheme.jpg b/docs/modules/img/BOXEL_Scheme.jpg similarity index 100% rename from docsite/docs/modules/img/BOXEL_Scheme.jpg rename to docs/modules/img/BOXEL_Scheme.jpg diff --git a/docsite/docs/modules/img/Github_CS_Organization_diagram.png b/docs/modules/img/Github_CS_Organization_diagram.png similarity index 100% rename from docsite/docs/modules/img/Github_CS_Organization_diagram.png rename to docs/modules/img/Github_CS_Organization_diagram.png diff --git a/docsite/docs/modules/img/Type_House.jpg b/docs/modules/img/Type_House.jpg similarity index 100% rename from docsite/docs/modules/img/Type_House.jpg rename to docs/modules/img/Type_House.jpg diff --git a/docsite/docs/modules/img/Type_Office.jpg b/docs/modules/img/Type_Office.jpg similarity index 100% rename from docsite/docs/modules/img/Type_Office.jpg rename to docs/modules/img/Type_Office.jpg diff --git a/docsite/docs/modules/img/Type_Park.jpg b/docs/modules/img/Type_Park.jpg similarity index 100% rename from docsite/docs/modules/img/Type_Park.jpg rename to docs/modules/img/Type_Park.jpg diff --git a/docsite/docs/modules/img/Type_scheme.jpg b/docs/modules/img/Type_scheme.jpg similarity index 100% rename from docsite/docs/modules/img/Type_scheme.jpg rename to docs/modules/img/Type_scheme.jpg diff --git a/docsite/docs/modules/img/Types_examples.jpg b/docs/modules/img/Types_examples.jpg similarity index 100% rename from docsite/docs/modules/img/Types_examples.jpg rename to docs/modules/img/Types_examples.jpg diff --git a/docsite/docs/modules/types.md b/docs/modules/types.md similarity index 67% rename from docsite/docs/modules/types.md rename to docs/modules/types.md index 24a91611..1104d240 100644 --- a/docsite/docs/modules/types.md +++ b/docs/modules/types.md @@ -1,7 +1,13 @@ --- id: Types System +# position in nav: 1 +title: Types System +position: 1 + --- +### + CityScope (CS) Types are the basic land-use units that can be combined and arranged to represent urban environments within the CityScope platform. CS Types are assigned to each cell within the grid that is overlaid over the urban area of enquiry. The grid provides unified segmentation, scale and a level of abstraction that can be easily manipulated by users. Each cell within the grid can either be fixed or dynamic, depending on project limits; fixed cells within a grid are not intended to be changeable by users; dynamic cells are intended for manipulation to interact with the CityScope platform. Interactions take place as users manipulate Types within the project area. ![CS BOXEL. Photo: Ariel Noyman](img/BOXEL_Scheme.jpg) @@ -20,10 +26,10 @@ https://planning-org-uploaded-media.s3.amazonaws.com/document/LBCS.pdf ## Schema Description: -- X 0 0 0 - First level classification - General -- XX 0 0 - 2nd level - Type -- XXX 0 - 3rd level - Activity -- XXXX - 4th level - Specific Activity +- X 0 0 0 - First level classification - General +- XX 0 0 - 2nd level - Type +- XXX 0 - 3rd level - Activity +- XXXX - 4th level - Specific Activity Most CS Types may only include Activity dimensions, however additional LBCS information can be added. @@ -35,10 +41,10 @@ https://www.census.gov/eos/www/naics/2017NAICS/2017_NAICS_Manual.pdf ## chema Description: -- X 0 0 0 0 - First level classification - Industry Sector (20 broad sectors up from 10 SIC) -- XX 0 0 0 - 2nd level - Industry Sub sector -- XXX 0 0 - 3rd level - Industry Group -- XXXX 0 - 4th level - Industry +- X 0 0 0 0 - First level classification - Industry Sector (20 broad sectors up from 10 SIC) +- XX 0 0 0 - 2nd level - Industry Sub sector +- XXX 0 0 - 3rd level - Industry Group +- XXXX 0 - 4th level - Industry # Sample CS Types: @@ -81,17 +87,17 @@ Individual housing building, 100% of Residential activities. NAICS mapping = nul ```json { - "NAICS": null, - "LBCS": [ + "NAICS": null, + "LBCS": [ + { + "P": 1, + "use": [ { - "P": 1, - "use": [ - { - "1100": 1 - } - ] + "1100": 1 } - ] + ] + } + ] } ``` @@ -99,8 +105,8 @@ Individual housing building, 100% of Residential activities. NAICS mapping = nul Office and Shopping building: 80% of Financial activities, 20% of Restaurant and shopping activities. NAICS mapping = 520000 finance, 920000 Public Administration, 440000 + 45000 shopping, and 720000 restaurant. LBCS mapping = 2200 finance, 6200 + 6300 Public Administration, 2100 shopping, and 2500 restaurant -- The lower 20% of floors are devoted to a mix of shopping 75% and restaurants 25% -- The upper 80% of floors and is devoted to a mix of finance 50% and Public Administration 50% +- The lower 20% of floors are devoted to a mix of shopping 75% and restaurants 25% +- The upper 80% of floors and is devoted to a mix of finance 50% and Public Administration 50% ![CS LEGO Office. Photo: Luis Alonso](img/Type_Office.jpg) @@ -167,112 +173,112 @@ Mapping Correlation between LBCS and NAICS: Here is a shortcut for finding the c ### Typical HOUSING types -- 1 | Household activities (Residential activities) +- 1 | Household activities (Residential activities) - - LBCS = 1100 - - NAICS = null + - LBCS = 1100 + - NAICS = null -- 2 | Transient living (Residential activities) +- 2 | Transient living (Residential activities) - - LBCS = 1200 - - NAICS = null + - LBCS = 1200 + - NAICS = null -- 3 | Institutional living (Residential activities) - - LBCS = 1300 - - NAICS = null +- 3 | Institutional living (Residential activities) + - LBCS = 1300 + - NAICS = null ### Popular AMENITYAMENITIES types -- 4 | Hotels +- 4 | Hotels - - LBCS = 1300 - - NAICS = 721110 + - LBCS = 1300 + - NAICS = 721110 -- 5 | Restaurants +- 5 | Restaurants - - LBCS = 2500 - - NAICS = 720000 + - LBCS = 2500 + - NAICS = 720000 -- 6 | Night live +- 6 | Night live - - LBCS = 2540 - - NAICS = 620000 + - LBCS = 2540 + - NAICS = 620000 -- 7 | Leisure and Wellness +- 7 | Leisure and Wellness - - LBCS = 6500 - - NAICS = 722500 + - LBCS = 6500 + - NAICS = 722500 -- 8 | Culture +- 8 | Culture - - LBCS = 5000 - - NAICS =710000 + - LBCS = 5000 + - NAICS =710000 -- 9 | Shopping Centers +- 9 | Shopping Centers - - LBCS = 2100 + 2500 - - NAICS = 440000 + 450000 + - LBCS = 2100 + 2500 + - NAICS = 440000 + 450000 -- 10 | Banks +- 10 | Banks - - LBCS = 2200 - - NAICS = 450000 + - LBCS = 2200 + - NAICS = 450000 -- 11 | Educational - - LBCS = 6100 - - NAICS = 610000 +- 11 | Educational + - LBCS = 6100 + - NAICS = 610000 ### PARK -- 12 | Parks - - LBCS = 7000 - - NAICS = 712190 +- 12 | Parks + - LBCS = 7000 + - NAICS = 712190 ### TRANSPORTATION -- 13 | Transportation hubs (Air, Water, rail, road transport and infrastructures as well as local urban and interurban transit systems, etc.) - - LBCS = 4000 - - NAICS = 480000 +- 13 | Transportation hubs (Air, Water, rail, road transport and infrastructures as well as local urban and interurban transit systems, etc.) + - LBCS = 4000 + - NAICS = 480000 ### SAFETY AND SECURITY -- 14 | Public Safety - - LBCS = 6400 - - NAICS = 480000 +- 14 | Public Safety + - LBCS = 6400 + - NAICS = 480000 ### WELLBEING -- 15 | Health Care - - LBCS = 6500 - - NAICS = 620000 +- 15 | Health Care + - LBCS = 6500 + - NAICS = 620000 ### OFFICE -- 16 | Public Administration +- 16 | Public Administration - - LBCS = 6200 + 6300 - - NAICS = 920000 + - LBCS = 6200 + 6300 + - NAICS = 920000 -- 17 | Finance +- 17 | Finance - - LBCS = 2200 - - NAICS = 520000 + - LBCS = 2200 + - NAICS = 520000 -- 18 | Scientific and Technical - - LBCS = 2400 - - NAICS = 540000 +- 18 | Scientific and Technical + - LBCS = 2400 + - NAICS = 540000 ### INDUSTRY -- 19 | Manufacturing - - LBCS = 3000 - - NAICS = 320000 + 330000 +- 19 | Manufacturing + - LBCS = 3000 + - NAICS = 320000 + 330000 ### NATURE -- 20 | Nature - - LBCS = 9000 - - NAICS = 712190 +- 20 | Nature + - LBCS = 9000 + - NAICS = 712190 --- @@ -285,32 +291,32 @@ A single grid-cell may contain multiple LBCS and multiple NAICS on different flo ## Mixed use building -- The lower 30% of floors are devoted to a mix of "541310" (architectural services) and "541330" (engineering services). -- The upper 70% of floors and is devoted to a mix of "23" (Construction), "42" (Wholesale) and "61" (Education). +- The lower 30% of floors are devoted to a mix of "541310" (architectural services) and "541330" (engineering services). +- The upper 70% of floors and is devoted to a mix of "23" (Construction), "42" (Wholesale) and "61" (Education). ```json { - "NAICS": [ + "NAICS": [ + { + "P": 0.3, + "use": [ { - "P": 0.3, - "use": [ - { - "541310": 0.5, - "541330": 0.5 - } - ] - }, + "541310": 0.5, + "541330": 0.5 + } + ] + }, + { + "P": 0.7, + "use": [ { - "P": 0.7, - "use": [ - { - "23": 0.3, - "42": 0.4, - "61": 0.3 - } - ] + "23": 0.3, + "42": 0.4, + "61": 0.3 } - ] + ] + } + ] } ``` @@ -319,16 +325,16 @@ In most cases, the type specification will not require such a detailed level of ```json { - "NAICS": [ + "NAICS": [ + { + "P": 1, + "use": [ { - "P": 1, - "use": [ - { - "54": 1 - } - ] + "54": 1 } - ] + ] + } + ] } ``` @@ -336,17 +342,17 @@ In most cases, the type specification will not require such a detailed level of ```json { - "NAICS": null, - "LBCS": [ + "NAICS": null, + "LBCS": [ + { + "P": 1, + "use": [ { - "P": 1, - "use": [ - { - "1120": 1 - } - ] + "1120": 1 } - ] + ] + } + ] } ``` @@ -354,37 +360,37 @@ In most cases, the type specification will not require such a detailed level of ```json { - "NAICS": [ - { - "P": 0.1, - "use": [ - { - "4451": 1 - } - ] - }, + "NAICS": [ + { + "P": 0.1, + "use": [ { - "P": 0.9, - "use": null + "4451": 1 } - ], - "LBCS": [ + ] + }, + { + "P": 0.9, + "use": null + } + ], + "LBCS": [ + { + "P": 0.1, + "use": [ { - "P": 0.1, - "use": [ - { - "2150": 1 - } - ] - }, + "2150": 1 + } + ] + }, + { + "P": 0.9, + "use": [ { - "P": 0.9, - "use": [ - { - "1120": 1 - } - ] + "1120": 1 } - ] + ] + } + ] } ``` diff --git a/docsite/docs/UI/CityScoPy.md b/docs/tanglibe user interfaces/CityScoPy.md similarity index 98% rename from docsite/docs/UI/CityScoPy.md rename to docs/tanglibe user interfaces/CityScoPy.md index 0bb9dc8d..0eec9979 100644 --- a/docsite/docs/UI/CityScoPy.md +++ b/docs/tanglibe user interfaces/CityScoPy.md @@ -2,7 +2,7 @@ id: CityScoPy --- -*** [=> Download latest release <=](https://github.com/CityScope/CS_Scanner_Python/releases/) *** +*** [Download latest release ](https://github.com/CityScope/CS_Scanner_Python/releases/) *** #### A tool for scanning interactions with a tangible LEGO grid and networking MIT CityScope Projects in Python diff --git a/docsite/docs/UI/RoboScope.md b/docs/tanglibe user interfaces/RoboScope.md similarity index 100% rename from docsite/docs/UI/RoboScope.md rename to docs/tanglibe user interfaces/RoboScope.md diff --git a/docs/tanglibe user interfaces/_category_.json b/docs/tanglibe user interfaces/_category_.json new file mode 100644 index 00000000..42b8ee9d --- /dev/null +++ b/docs/tanglibe user interfaces/_category_.json @@ -0,0 +1,8 @@ +{ + "label": "Tangible User Interfaces", + "position": 5, + "link": { + "type": "generated-index", + "description": "Tangible User Interfaces for the CityScope platform" + } +} diff --git a/docsite/docs/archive/img/KarthikPatanjali.png b/docs/tanglibe user interfaces/img/KarthikPatanjali.png similarity index 100% rename from docsite/docs/archive/img/KarthikPatanjali.png rename to docs/tanglibe user interfaces/img/KarthikPatanjali.png diff --git a/docsite/docs/archive/img/arielnoymanHCU.png b/docs/tanglibe user interfaces/img/arielnoymanHCU.png similarity index 100% rename from docsite/docs/archive/img/arielnoymanHCU.png rename to docs/tanglibe user interfaces/img/arielnoymanHCU.png diff --git a/docsite/docs/archive/specs_archive.md b/docs/tanglibe user interfaces/specs.md similarity index 71% rename from docsite/docs/archive/specs_archive.md rename to docs/tanglibe user interfaces/specs.md index 1b46ea2b..620db25d 100644 --- a/docsite/docs/archive/specs_archive.md +++ b/docs/tanglibe user interfaces/specs.md @@ -1,11 +1,9 @@ --- -id: Specs +id: CityScope Table Design --- ## CityScope Hardware -### `CityScope_CAD.zip` file contain cutting lists and CAD sketches to produce a generic CityScope scanning table. - CityScope hardware setup for CS+HCU FindingPlaces project, 2016 ![Ariel Noyman HCU](img/arielnoymanHCU.png "HCU FindingPlaces") @@ -25,7 +23,7 @@ the specification is very flexible. At this point the main components of a citys 2. [Table](https://github.com/CityScope/cityscope.github.io/tree/master/CS_Hardware) - Not every deployment uses this table configuration, often times its just a table with the most important transparent top and grid, this is often made from acrylic and laser cut. + Not every deployment uses this table configuration, often times its just a table with the most important transparent top and grid, this is often made from acrylic and laser cut. 3. Legos @@ -42,15 +40,15 @@ CityScope is composed of multiple software 1. Scanner (gets input from camera converts it to information that can be parsed through various simulation) currently this functionality is provided using one of below: -- Rhinoceros 3D (win only) -- Unity game engine -- Browser, JavaScript +- Rhinoceros 3D (win only) +- Unity game engine +- Browser, JavaScript 2. Simulation / Visualization this differs largely on what to simulate, or the research question on focus. In fact, some CityScope table has multiple simulations and visualizations living together. -- [Gama](http://gama-platform.org/) for agent based simulation -- General Simulation and visualization - - Rhinoceros 3D / Grasshopper - - Unity game engine +- [Gama](http://gama-platform.org/) for agent based simulation +- General Simulation and visualization + - Rhinoceros 3D / Grasshopper + - Unity game engine diff --git a/docsite/.gitignore b/docsite/.gitignore deleted file mode 100644 index b2d6de30..00000000 --- a/docsite/.gitignore +++ /dev/null @@ -1,20 +0,0 @@ -# Dependencies -/node_modules - -# Production -/build - -# Generated files -.docusaurus -.cache-loader - -# Misc -.DS_Store -.env.local -.env.development.local -.env.test.local -.env.production.local - -npm-debug.log* -yarn-debug.log* -yarn-error.log* diff --git a/docsite/README.md b/docsite/README.md deleted file mode 100644 index ee0ccc9d..00000000 --- a/docsite/README.md +++ /dev/null @@ -1,33 +0,0 @@ -# Website - -This website is built using [Docusaurus 2](https://v2.docusaurus.io/), a modern static website generator. - -### Installation - -``` -$ yarn -``` - -### Local Development - -``` -$ yarn start -``` - -This command starts a local development server and open up a browser window. Most changes are reflected live without having to restart the server. - -### Build - -``` -$ yarn build -``` - -This command generates static content into the `build` directory and can be served using any static contents hosting service. - -### Deployment - -``` -$ GIT_USER= USE_SSH=true yarn deploy -``` - -If you are using GitHub pages for hosting, this command is a convenient way to build the website and push to the `gh-pages` branch. diff --git a/docsite/babel.config.js b/docsite/babel.config.js deleted file mode 100644 index 76ddf6d3..00000000 --- a/docsite/babel.config.js +++ /dev/null @@ -1,11 +0,0 @@ -module.exports = { - presets: [require.resolve("@docusaurus/core/lib/babel/preset")], - plugins: [ - [ - "@babel/plugin-proposal-class-properties", - { - loose: true, - }, - ], - ], -}; diff --git a/docsite/docs/archive/guidelines_archive.md b/docsite/docs/archive/guidelines_archive.md deleted file mode 100644 index 0f77ce7c..00000000 --- a/docsite/docs/archive/guidelines_archive.md +++ /dev/null @@ -1,43 +0,0 @@ -# CityScope Repository Guideline - -The intention of this guideline is to make a minimal convention for handling git repositories for this city scope organization. Historically, the group's majority of the people have an architecture background which are self taught 'rogue' programmers. Version control has not been our tradition. - ---- -## 1. Familiar yourself with Git and GitHub - - [GitHub Guides](https://guides.github.com/) - - [git - the simple guide](http://rogerdudler.github.io/git-guide/) as well as the handy [cheat sheet](http://rogerdudler.github.io/git-guide/files/git_cheat_sheet.pdf) - - [Learn Version Control with Git -](https://www.git-tower.com/learn/git/ebook) - - If you are new to git, commit and push as much as possible. - -## 2. Account Access Rights - - Every current postdoctoral associate, student (master and phd), and research scientists (specialists) should have rights to create and contribute to any repository upon their request. - - Researchers will have the right to delete repositories - - When leaving the City Science research group, one should explicitly consult with at least one researcher if he/she wants to maintain the rights, in that case be sure to clarify the expiry date. - - Abuse of this github organization or repositories will potentially loose rights - -## 3. Binary data and Large Files - - There is little chance that you want to version control binary data, these include compiled code, images, audio and video. Think twice whether you really need to add it, that file will be eternally (unless you delete the repository, or capable of [rewriting history](https://git-scm.com/book/en/v2/Git-Tools-Rewriting-History)) saved to the history. You might consider putting them to other cloud data storage services like Dropbox. - - The same applies to Large data files like database dumps and log files. - - If you have compiled code, you should ```git tag``` and [mark it as a release](https://help.github.com/articles/creating-releases/). By this you will be able to upload and attach that executable as an archive. Attach other binary data to the release. This is a good way to crystalise the project. - - One exception may be Grasshopper gh definition files, but again be considerate and make it light as possible. - - The above points should stop you from adding most binary data, but if still need to add for some reason, ensure that its compressed to a moderate size. See [here](https://www.r-bloggers.com/data-on-github-the-easy-way-to-make-your-data-available/) for more details about storing data on gitub - -## 4. External Libraries - - **Avoid putting External Libraries into the repository**, no need to version control. It might be seen as stealing code, and/or may be considered as an act of obscuring the amount of contribution. - - Confirm that the code is okay to disclose if you plan to go open source. - - See if there is a dependency management / packaging system. Thats way easier to maintain. - - If the library has its own repository, you can use ```submodules``` to point to that. You will want to explicitly say to your cloners you need to ```git clone --recursive``` to get it working out of the box. This is good because if you want to modify that library, you can fork and still register it as a sub-module. - - If it doesn't have its own repo, point to an URL or an archive file using the Guideline 2-3 technique. Be careful for licenses. - -## 5. Branching - - It is likely that one program or script will be modified to fit to different projects / situations. Effectively use **[branching](https://en.wikipedia.org/wiki/Branching_%28version_control%29)**. Leave the ```master``` branch as generic as possible, and let the branch develop project specific modifications. If there is a feature to update the ```master``` branch, its time to have a meeting with the team. - - If you want to experiment and other people is working on the ```master``` branch, create your own development branch and use it as a sandbox. - -## 6. Other Tricks - 1. `git clone --recursive git@github.com:ChangingPlaces/repository_name` will clone the repository and any related sub module. - - `git clone --depth=1 git@github.com:ChangingPlaces/repository_name` will take only the latest history of the repository. Maybe better when cloning to a demo table. - - Consider using ```git rebase``` if you just want to overwrite the repository, it will leave a cleaner history. +It's often better when your the only one coding. but **"do not rebase commits that exist outside your repository."** - - For GitHub beginners, it might be helpful to use [GitHub Desktop](https://desktop.github.com/) -- the GUI of GitHub -- which provide you the basic functionalities of GitHub, including clone, create branches, commit changes, etc. But to a certain point, you will want to use **Git Shell**, which provide you full, more advanced functions. - - It's good practice to add a predefined ```.gitignore``` file before your fist commit to maintain the repo clean and tidy. There is a [long list](https://github.com/github/gitignore) which you can choose, [even for Processing](https://github.com/github/gitignore/blob/master/Processing.gitignore). - - Revert a commit `git push -f origin HEAD^:master` diff --git a/docsite/docs/archive/projects_archive.md b/docsite/docs/archive/projects_archive.md deleted file mode 100644 index c297a27e..00000000 --- a/docsite/docs/archive/projects_archive.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -id: Past CityScope Projects ---- - -- Archive of past CSjs projects https://github.com/CityScope/CS_cityscopeJS_Modules -- AngularJS version of CityScope Project in Grasbrook, Hamburg: https://github.com/CityScope/CSL_Hamburg_Grasbrook diff --git a/docsite/docs/archive/schema_archive.md b/docsite/docs/archive/schema_archive.md deleted file mode 100644 index 542fa551..00000000 --- a/docsite/docs/archive/schema_archive.md +++ /dev/null @@ -1,226 +0,0 @@ ---- -id: Schema ---- - -### CityIO Data Structure Standard version 2.1 [2018] - -### cityIO example data format - -``` -{"error":"","grid":[[1,0,270],[0,7,270]...[0,8,90],[4,5,90]],"id":"","objects":{},"timestamp":1528717938368,"meta":{"id":"hnkyCam","timestamp":1528717938347,"apiv":2},"header":{"spatial":{"physical_longitude":-71.087264,"cellsize":10,"longitude":-71.087264,"rotation":217,"nrows":5,"latitude":42.360357,"ncols":7,"physical_latitude":42.360357},"name":"virtual_table","block":["type","height","rotation"],"mapping":{"type":{"0":"RL","1":"RM","2":"RS","3":"OL","4":"OM","5":"OS","6":"ROAD"}},"owner":{"name":"Yasushi Sakai","title":"Research Assistant","institute":"MIT Media Lab"}}} -``` - -### Example of 20 x 20 grid - -An example of this version could be found [here (online)](https://cityio.media.mit.edu/api/table/virtual_table) and [here (offline)](https://github.com/CityScope/CS_CityIO_Backend/blob/master/examples/virtual_table.json) -Note that this format is a minimal protocol. It's ok to have additional information in different tables. -_fields with \* are optional._ - ---- - -# Fields - -#### Note: \* before a field reflects optional/suggested data - -### `header` (dictionary) - -Contains global data that explains the rest of the data. The header data should be defined for each table, and it is unlikely to change through different states. - -#### `name` (string) - -the name of the table. It is the unique key and should match the regex /\w+/g ([0-9a-zA-Z_]). - -#### `spatial` (dictionary) - -Contains spatial data that indicates the size, location and the physical resolution of the table data. - -- `row` (unsigned short): the number of rows for the table -- `column` (unsigned short): the number of columns for the table -- `latitude` (double): latitude value in decimals. The table's origin is the north west corner. -- `longitude` (double): longitude value in decimals. The table's origin is the north west corner. -- `physical_latitude` (double): longitude of the physical location where the table is situated. -- `physical_longitude` (double): latitude of the physical location where the table is situated. -- `rotation` (double): the clockwise rotation of table in **degrees**. It is x axis relative to the `latitude` and `longitude`. -- `cellSize` (float): the physical size in **meters** of one cell's edge. - -#### `owner*` (array) _new_ - -field indicating the owner of the table. An object that has, "name, title, institution" (all strings). - -#### `block` (array) - -An array of strings to indicate the representation of elements in `grid`. Note it is an array, which is takes account on the order of the information. A Typical `block` element will start with `"type", "height", "rotation"`, but may different across tables. - -#### `mapping*` (dictionary) - -A breakdown containing the necessary mapping of data inside each block. This can be taken as the enumerator field, that you can have a verbose explanation of data types. Often, the "type" field has a mapping of what each block indicates. -Note that you can have multiple mappings, for things like `mask`. - -``` -"type": {"0": "RL", "1": "RM", "2": "RS"} -``` - -### `meta [auto-generated by server]` - -#### users should avoid sending this - -meta data reserved for the backend. The server will insert these values. - -- `id` (GUID): hash(sha256, overkill) of the grid_data -- `timestamp` (int): UNIX epoch timestamp indicating when the table was received in the server. Milliseconds. -- `apiv` (string): api's version (which is 2) - -### `grid`(Array or arrays) - -The meat part of the data. A grid field could be: -`"grid":[[1,0,0],[0,7,3]]` where: - -- i[0][0] is the type of the gridcell -- i[0][1] is the height of the gridcell -- i[0][2] is the rotation of the gridcell - -Note: the specifics of each `grid` object are specified in the `block` field - -The direction of the data is illustrated below. The order of each single block is defined according to the `header/block` section. - -``` -| 0 | 1 | 2 | 3 | -| 4 | 5 | 6 | 7 | -| 8 | 9 | 10 | 11 | -| 12 | 13 | 14 | 15 | -``` - -### `objects` - -Flexible area that you can put whatever field you want. This is a place you want for global variables could potentially change. - ---- - -# Previous API version [should not be used] - -### version 1.0 - -This is the 1.0 format the cityIO table (only used in CityScope Volpe for now) - -```json -{ - "grid": [{ "type": -2, "x": 13, "y": 0, "rot": 180 }], - "objects": { - "toggle4": 0, - "density": [1, 1, 12, 19, 19, 3], - "IDMax": 15, - "pop_young": 0, - "dockID": -1, - "slider1": 0.95, - "dockRotation": 0, - "pop_old": 0, - "pop_mid": 0, - "toggle1": 5, - "toggle2": 0, - "toggle3": 0 - }, - "id": "-Kj4L11NdrdbhHCcGGPo", - "timestamp": 1493664538794 -} -``` - ---- - -The following is an **example** of the mapping of ids and block representations. - -starting from [API v2.0](Data Format) **different tables may have different mappings**. - -Data typeId is a signed int. - -the [mapping is also provided as a JSON format](https://cityio.media.mit.edu/api/table/citymatrix_volpe) - -| Id | Type | -| --- | ----------------- | -| -2 | MASK_TABLE_BOUNDS | -| -1 | MASK_INTERACTIVE | -| 0 | RL | -| 1 | RM | -| 2 | RS | -| 3 | OL | -| 4 | OM | -| 5 | OS | -| 6 | ROAD | -| 7 | AMENITIES | -| 8 | PARK | -| 9 | PARKING | - -### Enum for types - -| type | description | -| ----------------- | ---------------- | -| MASK_TABLE_BOUNDS | -| MASK_INTERACTIVE | -| RL | Residence Large | -| RM | Residence Medium | -| RS | Residence Small | -| OL | Office Large | -| OM | Office Medium | -| OS | Office Small | -| ROAD | | -| AMENITIES | | -| PARK | | -| PARKING | | - -### Density Number - -Right now we are using this value for the Volpe Project (it might change according to the city studied) - -| type | density | -| ---- | ---------- | -| RL | 89 sqm/ppl | -| RM | 55 sqm/ppl | -| RS | 15 sqm/ppl | -| OL | 30 sqm/ppl | -| OM | 18 sqm/ppl | -| OS | 5 sqm/ppl | - -Originally taken from [ChangingPlaces/Andorra/Grasshopper Repo](https://github.com/ChangingPlaces/Andorra/tree/master/Grasshopper) - -### Energy Consumption (Buildings) - -Right now we are using this value for the Volpe Project (it might change according to the city studied) - -| type | Energy | -| ---- | ---------------- | -| RL | 5930.34 kWh/ppl | -| RM | 2617.20 kWh/ppl | -| RS | 2141.59 kWh/ppl | -| OL | 10542.83 kWh/ppl | -| OM | 4652.80 kWh/ppl | -| OS | 3807.27 kWh/ppl | - -### CO2 Production (Buildings) - -Right now we are using this value for the Volpe Project (it might change according to the city studied) - -| type | CO2 | -| ---- | --------------- | -| RL | 2283.18 CO2/ppl | -| RM | 1007.26 CO2/ppl | -| RS | 824.30 CO2/ppl | -| OL | 4058.99 CO2/ppl | -| OM | 1791.33 CO2/ppl | -| OS | 1465.79 CO2/ppl | - -### Energy Consumption (Mobility) - -Right now we are using this value for the Volpe Project (it might change according to the city studied) - -| type | Energy | -| ---- | ---------------- | -| Car | 25437.50 kWh/ppl | -| PEV | 4500.00 kWh/ppl | - -### CO2 Production (Mobility) - -Right now we are using this value for the Volpe Project (it might change according to the city studied) - -| type | CO2 | -| ---- | ------------------- | -| Car | 6684.97 CO2/vehicle | -| PEV | 1732.50 CO2/vehicle | diff --git a/docsite/docs/general/docs_dev.md b/docsite/docs/general/docs_dev.md deleted file mode 100644 index 5f887671..00000000 --- a/docsite/docs/general/docs_dev.md +++ /dev/null @@ -1,48 +0,0 @@ ---- -id: Docs Development ---- - -### How to Contribute to the Development of this documentation site? - -Development of documentation takes place in `dev` branch. The `master` branch holds the build version of this website. - -Building from `dev` to `master` branches include the following steps: - -- complete your code edits, push or PR to `dev` -- run `GIT_USER=__USER WITH PUSH PREV__ yarn deploy` - -**We appreciate your feedback via issues/pull requests.** - - -### Auto pull documentation from other repositories - -In most cases, every model builder will develop their own independent documentation. We built a workflow using GitHub actions that will pull the relevant files from every downstream repository and add it to this documentation site. That way, the source of truth for every repository still lives in the repo where the code is. - -To add your repository to this documentation site, link the markdown files by editing `pull_docs.yml` file located at `.github/workflows/pull_docs.yml`. Use the following syntax to add a new block: - -``` - - name: Update REPO_NAME - run: bash .github/scripts/update.sh -o REPO_NAME_OWNER -r REPO_NAME (-d DESTINATION_PATH) (-s SOURCE_FILE_PATH) (-l REPO_LABEL) -``` - -In the `yml` file you'll probably see other repositories linked. Make sure to match the indentation level of them and that `name` and `run` are at the same level. - -The documentation will be generated at: `/.md`. `REPO_LABEL` is inferred by default from your `REPO_NAME` by removing the prefix `CS_` if it exists (e.g. `CS_Brix` becomes `Brix` and `MyRepo` stays as `MyRepo`). - -You can skip `PATH_TO_FILE` if your documentation is in the `README.md`. - -If you are linking a wiki page, make sure to set `REPO_NAME_OWNER=wiki/REPO_NAME_OWNER`. If this is the case, the default `PATH_TO_FILE` will be `Home.md`. - -If your documentation is in the `README.md` and your library is part of `modules`, you can also skip `DESTINATION_PATH`. In the future, we might want to make the default `docsite/docs/one-off-projects`. - -For example, a simple module called `CS_MyModule` part of the `CityScope` organization that has all its documentation in `README.md` should be added as: -``` - - name: Update CS_MyModule - run: bash .github/scripts/update.sh -o CityScope -r CS_MyModule -``` - -To add the `Home` wiki page of a module called `CS_MyModule`, part of the `CityScope` organization, use the following block: -``` - - name: Update CS_MyModule - run: bash .github/scripts/update.sh -o wiki/CityScope -r CS_MyModule -``` diff --git a/docsite/docs/general/ecosystem.md b/docsite/docs/general/ecosystem.md deleted file mode 100644 index 825c7250..00000000 --- a/docsite/docs/general/ecosystem.md +++ /dev/null @@ -1,29 +0,0 @@ ---- -id: CityScope Ecosystem ---- - -CityScopeJS is a modular, open-ended architecture for MIT CityScope project. - -## CityScope Architecture - -![CityScopeJS Architecture](img/CityScopeJS_arch.jpg) - -CityScopeJS includes several other modules for building, testing and deploying an end-to-end CityScope platform. Each module is developed as a standalone part of the system with minimal dependency on others. Data flow between modules is done using [cityIO](https://cityio.media.mit.edu), which operates between the different modules. - -## Analysis modules - -Different analysis modules calculate various indicators on urban performance, such as noise, mobility, energy and others. These analysis modules are developed by experts in each evaluation field. - -- Urban Indicators module: https://github.com/CityScope/CS_Urban_Indicators -- A service providing mobility simulation, Agent Based Simulation, and aggregated mobility prediction for CityScope projects https://github.com/CityScope/CS_Mobility_Service -- Noise Modeling for Grasbrook, Hamburg: https://github.com/CityScope/CSL_Hamburg_Noise -- Agent Based Modeling https://github.com/CityScope/CS_Simulation_GAMA -- Traffic Simulation module using DLR SUMO https://github.com/CityScope/CS_SUMOscope - -## CityScope Server (cityIO) - -https://github.com/CityScope/CS_CityIO - -## Tangible User Interfaces - -- CityScope Scanner: https://github.com/CityScope/CS_CityScoPy diff --git a/docsite/docs/general/guidelines.md b/docsite/docs/general/guidelines.md deleted file mode 100644 index d8f64c06..00000000 --- a/docsite/docs/general/guidelines.md +++ /dev/null @@ -1,51 +0,0 @@ ---- -id: Guideline ---- - -The intention of this guideline is to make a minimal convention for handling git repositories for this city scope organization. Historically, the group's majority of the people have an architecture background which are self taught 'rogue' programmers. Version control has not been our tradition. - -### Familiar yourself with Git and GitHub - -- [GitHub Guides](https://guides.github.com/) -- [git - the simple guide](http://rogerdudler.github.io/git-guide/) as well as the handy [cheat sheet](http://rogerdudler.github.io/git-guide/files/git_cheat_sheet.pdf) -- [Learn Version Control with Git - ](https://www.git-tower.com/learn/git/ebook) -- If you are new to git, commit and push as much as possible. - -### Account Access Rights - -- Every current postdoctoral associate, student (master and phd), and research scientists (specialists) should have rights to create and contribute to any repository upon their request. -- Researchers will have the right to delete repositories -- When leaving the City Science research group, one should explicitly consult with at least one researcher if he/she wants to maintain the rights, in that case be sure to clarify the expiry date. -- Abuse of this github organization or repositories will potentially loose rights - -### Binary data and Large Files - -- There is little chance that you want to version control binary data, these include compiled code, images, audio and video. Think twice whether you really need to add it, that file will be eternally (unless you delete the repository, or capable of [rewriting history](https://git-scm.com/book/en/v2/Git-Tools-Rewriting-History)) saved to the history. You might consider putting them to other cloud data storage services like Dropbox. -- The same applies to Large data files like database dumps and log files. -- If you have compiled code, you should `git tag` and [mark it as a release](https://help.github.com/articles/creating-releases/). By this you will be able to upload and attach that executable as an archive. Attach other binary data to the release. This is a good way to crystalise the project. -- One exception may be Grasshopper gh definition files, but again be considerate and make it light as possible. -- The above points should stop you from adding most binary data, but if still need to add for some reason, ensure that its compressed to a moderate size. See [here](https://www.r-bloggers.com/data-on-github-the-easy-way-to-make-your-data-available/) for more details about storing data on gitub - -### External Libraries - -- **Avoid putting External Libraries into the repository**, no need to version control. It might be seen as stealing code, and/or may be considered as an act of obscuring the amount of contribution. - - Confirm that the code is okay to disclose if you plan to go open source. - - See if there is a dependency management / packaging system. Thats way easier to maintain. - - If the library has its own repository, you can use `submodules` to point to that. You will want to explicitly say to your cloners you need to `git clone --recursive` to get it working out of the box. This is good because if you want to modify that library, you can fork and still register it as a sub-module. - - If it doesn't have its own repo, point to an URL or an archive file using the Guideline 2-3 technique. Be careful for licenses. - -### Branching - -- It is likely that one program or script will be modified to fit to different projects / situations. Effectively use **[branching](https://en.wikipedia.org/wiki/Branching_%28version_control%29)**. Leave the `master` branch as generic as possible, and let the branch develop project specific modifications. If there is a feature to update the `master` branch, its time to have a meeting with the team. -- If you want to experiment and other people is working on the `master` branch, create your own development branch and use it as a sandbox. - -### Other Tricks - -1. `git clone --recursive git@github.com:ChangingPlaces/repository_name` will clone the repository and any related sub module. - -- `git clone --depth=1 git@github.com:ChangingPlaces/repository_name` will take only the latest history of the repository. Maybe better when cloning to a demo table. -- Consider using `git rebase` if you just want to overwrite the repository, it will leave a cleaner history. +It's often better when your the only one coding. but **"do not rebase commits that exist outside your repository."** -- For GitHub beginners, it might be helpful to use [GitHub Desktop](https://desktop.github.com/) -- the GUI of GitHub -- which provide you the basic functionalities of GitHub, including clone, create branches, commit changes, etc. But to a certain point, you will want to use **Git Shell**, which provide you full, more advanced functions. -- It's good practice to add a predefined `.gitignore` file before your fist commit to maintain the repo clean and tidy. There is a [long list](https://github.com/github/gitignore) which you can choose, [even for Processing](https://github.com/github/gitignore/blob/master/Processing.gitignore). -- Revert a commit `git push -f origin HEAD^:master` diff --git a/docsite/docs/general/img/CityScopeJS_arch.jpg b/docsite/docs/general/img/CityScopeJS_arch.jpg deleted file mode 100644 index 698ba9e3..00000000 Binary files a/docsite/docs/general/img/CityScopeJS_arch.jpg and /dev/null differ diff --git a/docsite/docs/general/intro.md b/docsite/docs/general/intro.md deleted file mode 100644 index ac43e5d7..00000000 --- a/docsite/docs/general/intro.md +++ /dev/null @@ -1,30 +0,0 @@ ---- -id: Introduction -slug: / ---- - -![CityScope in Andorra. Photo: Ariel Noyman](img/cs_an.jpg) - -### What is CityScope? - -CityScope is a project conducted at the MIT Media Lab City Science group. It includes a slew of tangible and digital platforms dedicated to solving spatial design and urban planning challenges. The tools range from simulations that quantify the impact of disruptive interventions in cities to community engagement systems. We develop and deploy these tools around the world and maintain free and open-source community for the majority of our work. - -## CityScope Ecosystem - - - -This [website](https://cityscope.github.io) serves documentation for the CityScope project. - -### CityScope GitHub Organization Structure - -This organization consists two types of repositories. - -1. Tools - - Repositories having the prefix of `CS_` are the bare tools that commonly used across city projects. - -2. Cities - - Cities have their own repositories that includes links (more exactly submodules) of the above tools and other things. These repos start with `CSL_`. - -![CityScope in Andorra. Photo: Ariel Noyman](img/Github_CS_Organization_diagram.png) diff --git a/docsite/docs/general/licences.md b/docsite/docs/general/licences.md deleted file mode 100644 index 921169fa..00000000 --- a/docsite/docs/general/licences.md +++ /dev/null @@ -1,239 +0,0 @@ ---- -id: License ---- - -## guidelines for selecting an open source license - -The following is not a official nor a fixed statement. -descend if the prior guideline doesn't apply. - -### 1. stay to the existing upstream license. - -If you are forking/customizing something that is already licensed, respect the original developer and stay to that one. - -1. if the library you are using is under GPL, you should generally stick to it. weather static or dynamic linking -2. [although there are ways to go around with it](https://www.softwarefreedom.org/resources/2007/gpl-non-gpl-collaboration.html) -3. [LGPL](https://stackoverflow.com/questions/10130143/gpl-lgpl-and-static-linking) means you don't need to if your using the library dynamically - -### 2. Discuss - -EACH PROJECT/REPOSITORY should be considered separately. - -### 3. when possible use GPL v3. - -The code will not be something that everyone will develop, since it has a relatively narrow application domain, and don't want to add another reason to be hidden and utilized. - -> To address the concern when going for profit in the future, I will share my standpoint that the city science projects and relations with cities are more like services, or consulting (Noyman, 2017) rather selling the direct code. Moreover, GPL seems better if we want to build a community starting small and later expand. (Bonsen, 2018) - -### 4. if 3. does not apply use Apache 2.0 - -Reason: It has extra protection than MIT (and more words) by Patents. - -# About licenses and their concepts - -In a nut shell, we have two diverging paths. - -## copyleft (aggresivly opensource) : ex GPL - -- sticky license -- cannot hide it, sell it. -- may bite you back when you want to go for profit - -## permissive (open without ties): ex MIT, Apache 2.0 - -- broadly open. -- Apple, or potential collaboration cities, alumni may hide it, sell it, without permission -- OK if you do startup in the future -- "sit back, relax and see what happens" approach. - -# Hardware License - -## CERN Open Hardware Licence v1.2 - -### Preamble - -Through this CERN Open Hardware Licence ("CERN OHL") version 1.2, CERN -wishes to provide a tool to foster collaboration and sharing among -hardware designers. The CERN OHL is copyright CERN. Anyone is welcome -to use the CERN OHL, in unmodified form only, for the distribution of -their own Open Hardware designs. Any other right is reserved. Release -of hardware designs under the CERN OHL does not constitute an -endorsement of the licensor or its designs nor does it imply any -involvement by CERN in the development of such designs. - -1. Definitions - -In this Licence, the following terms have the following meanings: - -“Licence” means this CERN OHL. - -“Documentation” means schematic diagrams, designs, circuit or circuit -board layouts, mechanical drawings, flow charts and descriptive text, -and other explanatory material that is explicitly stated as being made -available under the conditions of this Licence. The Documentation may -be in any medium, including but not limited to computer files and -representations on paper, film, or any other media. - -“Documentation Location” means a location where the Licensor has -placed Documentation, and which he believes will be publicly -accessible for at least three years from the first communication to -the public or distribution of Documentation. - -“Product” means either an entire, or any part of a, device built using -the Documentation or the modified Documentation. - -“Licensee” means any natural or legal person exercising rights under -this Licence. - -“Licensor” means any natural or legal person that creates or modifies -Documentation and subsequently communicates to the public and/ or -distributes the resulting Documentation under the terms and conditions -of this Licence. - -A Licensee may at the same time be a Licensor, and vice versa. - -Use of the masculine gender includes the feminine and neuter genders -and is employed solely to facilitate reading. - -2. Applicability - -2.1. This Licence governs the use, copying, modification, -communication to the public and distribution of the Documentation, and -the manufacture and distribution of Products. By exercising any right -granted under this Licence, the Licensee irrevocably accepts these -terms and conditions. - -2.2. This Licence is granted by the Licensor directly to the Licensee, -and shall apply worldwide and without limitation in time. The Licensee -may assign his licence rights or grant sub-licences. - -2.3. This Licence does not extend to software, firmware, or code -loaded into programmable devices which may be used in conjunction with -the Documentation, the modified Documentation or with Products, unless -such software, firmware, or code is explicitly expressed to be subject -to this Licence. The use of such software, firmware, or code is -otherwise subject to the applicable licence terms and conditions. - -3. Copying, modification, communication to the public and distribution - of the Documentation - -3.1. The Licensee shall keep intact all copyright and trademarks -notices, all notices referring to Documentation Location, and all -notices that refer to this Licence and to the disclaimer of warranties -that are included in the Documentation. He shall include a copy -thereof in every copy of the Documentation or, as the case may be, -modified Documentation, that he communicates to the public or -distributes. - -3.2. The Licensee may copy, communicate to the public and distribute -verbatim copies of the Documentation, in any medium, subject to the -requirements specified in section 3.1. - -3.3. The Licensee may modify the Documentation or any portion thereof -provided that upon modification of the Documentation, the Licensee -shall make the modified Documentation available from a Documentation -Location such that it can be easily located by an original Licensor -once the Licensee communicates to the public or distributes the -modified Documentation under section 3.4, and, where required by -section 4.1, by a recipient of a Product. However, the Licensor shall -not assert his rights under the foregoing proviso unless or until a -Product is distributed. - -3.4. The Licensee may communicate to the public and distribute the -modified Documentation (thereby in addition to being a Licensee also -becoming a Licensor), always provided that he shall: - -a) comply with section 3.1; - -b) cause the modified Documentation to carry prominent notices stating -that the Licensee has modified the Documentation, with the date and -description of the modifications; - -c) cause the modified Documentation to carry a new Documentation -Location notice if the original Documentation provided for one; - -d) make available the modified Documentation at the same level of -abstraction as that of the Documentation, in the preferred format for -making modifications to it (e.g. the native format of the CAD tool as -applicable), and in the event that format is proprietary, in a format -viewable with a tool licensed under an OSI-approved license if the -proprietary tool can create it; and - -e) license the modified Documentation under the terms and conditions -of this Licence or, where applicable, a later version of this Licence -as may be issued by CERN. - -3.5. The Licence includes a non-exclusive licence to those patents or -registered designs that are held by, under the control of, or -sub-licensable by the Licensor, to the extent necessary to make use of -the rights granted under this Licence. The scope of this section 3.5 -shall be strictly limited to the parts of the Documentation or -modified Documentation created by the Licensor. - -4. Manufacture and distribution of Products - -4.1. The Licensee may manufacture or distribute Products always -provided that, where such manufacture or distribution requires a -licence under this Licence the Licensee provides to each recipient of -such Products an easy means of accessing a copy of the Documentation -or modified Documentation, as applicable, as set out in section 3. - -4.2. The Licensee is invited to inform any Licensor who has indicated -his wish to receive this information about the type, quantity and -dates of production of Products the Licensee has (had) manufactured - -5. Warranty and liability - -5.1. DISCLAIMER – The Documentation and any modified Documentation are -provided "as is" and any express or implied warranties, including, but -not limited to, implied warranties of merchantability, of satisfactory -quality, non-infringement of third party rights, and fitness for a -particular purpose or use are disclaimed in respect of the -Documentation, the modified Documentation or any Product. The Licensor -makes no representation that the Documentation, modified -Documentation, or any Product, does or will not infringe any patent, -copyright, trade secret or other proprietary right. The entire risk as -to the use, quality, and performance of a Product shall be with the -Licensee and not the Licensor. This disclaimer of warranty is an -essential part of this Licence and a condition for the grant of any -rights granted under this Licence. The Licensee warrants that it does -not act in a consumer capacity. - -5.2. LIMITATION OF LIABILITY – The Licensor shall have no liability -for direct, indirect, special, incidental, consequential, exemplary, -punitive or other damages of any character including, without -limitation, procurement of substitute goods or services, loss of use, -data or profits, or business interruption, however caused and on any -theory of contract, warranty, tort (including negligence), product -liability or otherwise, arising in any way in relation to the -Documentation, modified Documentation and/or the use, manufacture or -distribution of a Product, even if advised of the possibility of such -damages, and the Licensee shall hold the Licensor(s) free and harmless -from any liability, costs, damages, fees and expenses, including -claims by third parties, in relation to such use. - -6. General - -6.1. Except for the rights explicitly granted hereunder, this Licence -does not imply or represent any transfer or assignment of intellectual -property rights to the Licensee. - -6.2. The Licensee shall not use or make reference to any of the names -(including acronyms and abbreviations), images, or logos under which -the Licensor is known, save in so far as required to comply with -section 3. Any such permitted use or reference shall be factual and -shall in no event suggest any kind of endorsement by the Licensor or -its personnel of the modified Documentation or any Product, or any -kind of implication by the Licensor or its personnel in the -preparation of the modified Documentation or Product. - -6.3. CERN may publish updated versions of this Licence which retain -the same general provisions as this version, but differ in detail so -far this is required and reasonable. New versions will be published -with a unique version number. - -6.4. This Licence shall terminate with immediate effect, upon written -notice and without involvement of a court if the Licensee fails to -comply with any of its terms and conditions, or if the Licensee -initiates legal action against Licensor in relation to this -Licence. Section 5 shall continue to apply. diff --git a/docsite/docs/general/opensource.md b/docsite/docs/general/opensource.md deleted file mode 100644 index 2c7117d1..00000000 --- a/docsite/docs/general/opensource.md +++ /dev/null @@ -1,21 +0,0 @@ ---- -id: Open Source ---- -## Why Open Source? - -- we see a lot of cities opening up their data -- yet when we say data driven planning, opening the tools is as important as the data, to show how we can collect, analyze, visualize (give insights) and even govern to tackle [wicked problems](https://en.wikipedia.org/wiki/Wicked_problem) -- These tools may have impact in certain decisions, it is **_crucial_** that is transparent, to undergo scrutiny from researchers and the public. - - same way it is always better to use a well known crypto algorithm -- tangible outcome for the City Science Initiative - -# Why Git? - -- git is a distributed version control system, heavily used by the software industry (and BTW, city science group) -- Within a year, the linux kernel handles up to 4,300 developers to work in a single system \* -- That averages to 8.5 changes/hour \* -- Clear example of large scale collaboration - - Standing on a bold assumption that collaborative urban planning and "coding" is the same thing - - Can we extract how this works to a bottom up approach of planning? - -* ref: [Linux foundation 2017 report](https://www.linuxfoundation.org/blog/2017/10/2017-linux-kernel-report-highlights-developers-roles-accelerating-pace-change/) diff --git a/docsite/docs/modules/Brix/Classes/Classes.md b/docsite/docs/modules/Brix/Classes/Classes.md deleted file mode 100644 index c197ed9d..00000000 --- a/docsite/docs/modules/Brix/Classes/Classes.md +++ /dev/null @@ -1,1411 +0,0 @@ ---- -id: Classes ---- -# Classes - -## Handler class - - -### class brix.Handler(table_name, quietly=False, host_mode='remote', host_name=None, reference=None, shell_mode=False) -Class to handle the connection for indicators built based on data from the GEOGRID. To use, instantiate the class and use the `add_indicator()` method to pass it a set of `Indicator` objects. - - -* **Parameters** - - - * **table_name** (*str*) – Table name to lisen to. - [https://cityio.media.mit.edu/api/table/table_name](https://cityio.media.mit.edu/api/table/table_name) - - - * **quietly** (boolean, defaults to False) – If True, it will show the status of every API call. - - - * **host_mode** (*str**, **defaults to 'remote'*) – If ‘local’ it will use [http://127.0.0.1:5000/](http://127.0.0.1:5000/) as host. - - - * **host_name** (*str**, **defaults to class remote_host*) – If passed, it will override the class host. - - - * **reference** (*dict**, **optional*) – Dictionary for reference values for each indicator. - - - * **shell_mode** (*Boolean**, **optional defaults to False*) – If True, it will not get the current hash when instantiating the class. Useful for testing. - - - -#### GEOGRIDDATA_endpoint( = 'GEOGRIDDATA') - -#### GEOGRID_endpoint( = 'GEOGRID') - -#### add_geogrid_data_update_function(update_func) -Adds a function to update GEOGRIDDATA. - -See `brix.Handler.update_geogrid_data()`. - - -* **Parameters** - - **update_func** (*function*) – Function to update the geogriddadata (list of dicts) - Function should take a `brix.Handler` as the first and only positional argument. - No keyword arguments are supported when using this feature. - Function should return a list of dicts that represents a valid geogriddata object. - - - -#### add_indicator(I, test=True) -Adds indicator to handler object. - - -* **Parameters** - - - * **I** (`brix.Indicator`) – Indicator object to handle. If indicator has name, this will use as identifier. If indicator has no name, it will generate an identifier. - - - * **test** (boolean, defaults to True) – If True it will ensure the indicator runs before adding it to the `brix.Handler`. - - - -#### add_indicators(indicator_list, test=True) -Same as `brix.Handler.add_indicator()` but it takes in a list of `brix.Indicator` objects. - - -* **Parameters** - - **indicator_list** (*list*) – List of `brix.Indicator` objects. - - - -#### classmethod all_indicator_instances() -Returns a generator with every indicator instance. - - -#### center_grid_view() -Sets the initial grid view to the center of the grid. - - -#### check_rest() -Checks if module should be put in resting mode - - -#### check_table(return_value=False) -Prints the front end url for the table. - - -* **Parameters** - - **return_value** (boolean, defaults to False) – If True it will print and return the front end url. - - - -* **Returns** - - **front_end_url** – Onlye if return_value=True. - - - -* **Return type** - - str - - - -#### cityio_post_headers( = {'Content-Type': 'application/json'}) - -#### clear_endpoints() -Clears the table of all pre-existing numeric, heatmap, and textual indicators. - - -#### clear_table() -Clears all indicators from the table. - - -#### property daemon() -A boolean value indicating whether this thread is a daemon thread. - -This must be set before start() is called, otherwise RuntimeError is -raised. Its initial value is inherited from the creating thread; the -main thread is not a daemon thread and therefore all threads created in -the main thread default to daemon = False. - -The entire Python program exits when only daemon threads are left. - - -#### delete_table() -Deletes table if it exists. -Will prompt user to make sure this function was not run by mistake. - - -#### getName() - -#### get_GEOGRID(force_get=False) -Returns geogrid object stored locally. If force_get=True, it will return remote object and overwrite local object. - - -* **Parameters** - - **force_get** (boolean, defaults to False) – If True it will GET request the geogrid object and overwrite the locally stored one. - - - -#### get_GEOGRIDDATA() -Returns the raw GEOGRIDDATA object. -This function should be treated as a low-level function, please use `brix.Handler.get_geogrid_data()` instead. - - -#### get_GEOGRID_EDGES() -Gets the edges of a graph that connects each cell to its nearest neighbors. - - -* **Returns** - - **GEOGRID_EDGES** – Edge list of cell ids. Each cell has at most 4 neighbors. - - - -* **Return type** - - list - - - -#### get_geogrid_data(include_geometries=False, with_properties=False) -Returns the geogrid data from: -[http://cityio.media.mit.edu/api/table/table_name/GEOGRIDDATA](http://cityio.media.mit.edu/api/table/table_name/GEOGRIDDATA) - - -* **Parameters** - - - * **include_geometries** (boolean, defaults to False) – If True it will also add the geometry information for each grid unit. - - - * **with_properties** (boolean, defaults to False) – If True it will add the properties of each grid unit as defined when the table was constructed (e.g. LBCS code, NAICS code, etc.) - - - -* **Returns** - - **geogrid_data** – Data taken directly from the table to be used as input for `brix.Indicator.return_indicator`. - Object behaves as a list of dicts. - - - -* **Return type** - - `brix.GEOGRIDDATA` - - - -#### get_geogrid_props() -Gets the GEOGRID properties defined for the table. These properties are not dynamic and include things such as the NAICS and LBCS composition of each lego type. - - -* **Returns** - - **geogrid_props** – Table GEOGRID properties. - - - -* **Return type** - - dict - - - -#### get_grid_hash() -Retreives the GEOGRID hash from: -[http://cityio.media.mit.edu/api/table/table_name/meta/hashes](http://cityio.media.mit.edu/api/table/table_name/meta/hashes) - - -#### get_indicator_values(geogrid_data=None, include_composite=False) -Returns the current values of NUMERIC indicators. Used for developing a composite indicator. - - -* **Parameters** - - **include_composite** (boolean, defaults to False) – If True it will also include the composite indicators, using the `brix.Indicator` is_composite parameter. - - - -* **Returns** - - **indicator_values** – Dictionary with values for each indicator formatted as: `{indicator_name: indicator_value, ...}` - - - -* **Return type** - - dict - - - -#### get_table_properties() -Gets table properties. This info can also be accessed through `brix.Handler.get_geogrid_props()`. - - -#### grid_bounds(bbox=False, buffer_percent=None) -Returns the bounds of the geogrid. -Wrapper around `brix.GEOGRIDDATA.bounds()` - - -* **Parameters** - - - * **bbox** (*boolean**, **defaults to False*) – If True, it will return a bounding box instead of a polygon. [W, S, E, N] - - - * **buffer_percent** (*float**, **optional*) – If given, this will add a buffer around the table. - Size of buffer in units of the grid diameter - See `brix.get_buffer_size()`. - - - -* **Returns** - - **limit** – Bounds of the table. If bbox=True it will return a horizontal bounding box. - - - -* **Return type** - - shapely.Polygon or list - - - -#### property ident() -Thread identifier of this thread or None if it has not been started. - -This is a nonzero integer. See the get_ident() function. Thread -identifiers may be recycled when a thread exits and another thread is -created. The identifier is available even after the thread has exited. - - -#### indicator(name) -Returns the `brix.Indicator` with the given name. - - -* **Parameters** - - **name** (*str*) – Name of the indicator. See `brix.Handler.list_indicators()`. - - - -* **Returns** - - **selected_indicator** – Selected indicator object. - - - -* **Return type** - - `brix.Indicator` - - - -#### isAlive() -Return whether the thread is alive. - -This method is deprecated, use is_alive() instead. - - -#### isDaemon() - -#### is_alive() -Return whether the thread is alive. - -This method returns True just before the run() method starts until just -after the run() method terminates. The module function enumerate() -returns a list of all alive threads. - - -#### is_table() -Checks it table exists by getting the base url. - - -* **Returns** - - **self.is_table** – True if table exists. - - - -* **Return type** - - boolean - - - -#### join(timeout=None) -Wait until the thread terminates. - -This blocks the calling thread until the thread whose join() method is -called terminates – either normally or through an unhandled exception -or until the optional timeout occurs. - -When the timeout argument is present and not None, it should be a -floating point number specifying a timeout for the operation in seconds -(or fractions thereof). As join() always returns None, you must call -is_alive() after join() to decide whether a timeout happened – if the -thread is still alive, the join() call timed out. - -When the timeout argument is not present or None, the operation will -block until the thread terminates. - -A thread can be join()ed many times. - -join() raises a RuntimeError if an attempt is made to join the current -thread as that would cause a deadlock. It is also an error to join() a -thread before it has been started and attempts to do so raises the same -exception. - - -#### classmethod list_all_indicator_instances() -Returns a list with all indicator instances. - - -#### list_all_unlinked_indicators() -Returns the names of all the unlinked indicators. - - -* **Returns** - - **indicators_names** – List of indicator names. - - - -* **Return type** - - list - - - -#### list_indicators() -Returns list of all indicator names. - - -* **Returns** - - **indicators_names** – List of indicator names. - - - -* **Return type** - - list - - - -#### listen(new_thread=False, showFront=False, append=False, clear_endpoints=False, robust=False) -Listens for changes in the table’s geogrid and update all indicators accordingly. -You can use the update_package method to see the object that will be posted to the table. -This method starts with an update before listening. -Can run in a separate thread. -Does not support updating GEOGRIDDATA. - - -* **Parameters** - - - * **new_thread** (boolean, defaults to False.) – If True it will run in a separate thread, freeing up the main thread for other tables. - We recommend setting this to False when debugging, to avoid needing to recreate the object. - - - * **showFront** (boolean, defaults to False) – If True it will open the front-end URL in a webbrowser at start. - Only works if new_tread=False. - - - * **append** (boolean, defaults to False) – If True it will append the new indicators to whatever is already there. - This option will be deprecated soon. We recommend not using it unless strictly necessary. - - - * **clear_endpoints** (boolean, defaults to False) – If True, it will clear all existing heatmap, numeric, and textual indicators. - This is not recommended for deployment, only for testing. - - - * **robust** (boolean, defaults to False) – If True, whenever a grid configuration breaks an indicator, the module will not stop, but rather wait until the grid changes and try to update again. - Incompatible with new_thread=True - - - -#### property name() -A string used for identification purposes only. - -It has no semantics. Multiple threads may be given the same name. The -initial name is set by the constructor. - - -#### property native_id() -Native integral thread ID of this thread, or None if it has not been started. - -This is a non-negative integer. See the get_native_id() function. -This represents the Thread ID as reported by the kernel. - - -#### normalize_codes(code_proportion) -Helper function to transform: -[{‘proportion’: 0.3, ‘use’: {‘6700’: 1}}, {‘proportion’: 0.7, ‘use’: {‘2310’: 0.3, ‘4100’: 0.7}}] - -into: -{‘6700’: 0.3, ‘2310’: 0.21, ‘4100’: 0.49} - - -#### parse_classifications(geogrid) -Helper function to parse the LBCS and NAICS strings into dictionaries of the form: -{‘6700’: 0.3, ‘2310’: 0.21, ‘4100’: 0.49} - - -#### perform_geogrid_data_update(geogrid_data=None) -Performs GEOGRIDDATA update using the functions added to the `brix.Handler` using `brix.Hanlder.add_geogrid_data_update_function()`. - -Returns True if an update happened, and Flase otherwise. - -Any grid indicator will overrule any grid function. - - -#### perform_update(grid_hash_id=None, append=False, return_update_package=False) -Performs single table update. - - -* **Parameters** - - - * **grid_hash_id** (*str**, **optional*) – Current grid hash id. If not provided, it will retrieve it. - - - * **append** (boolean, defaults to True) – If True, it will append the new indicators to whatever is already there. - - - * **return_update_package** (boolean, defaults to False) – If True this funciton will return the posted object. - - - -#### post_geogrid_data(geogrid_data, override_verification=False) -Posts the given geogrid_data object, ensuring that the object is valid. - -Function can be called by itself or using `brix.Handler.update_geogrid_data()`. - - -* **Parameters** - - - * **geogrid_data** (*dict*) – Dictionary corresponding to a valid `brix.GEOGRIDDATA` object. - - - * **override_verification** (boolean, defaults to False) – If True, it will override the verification of the input as a valid object. - - - -#### remote_host( = 'https://cityio.media.mit.edu') - -#### reset_geogrid_data(override_verification=True) -Resets the GEOGRIDDATA endpoint to the initial value. -If the GEOGRIDDATA has not been updated, this will update it. - - -* **Parameters** - - **override_verification** (boolean, defaults to True) – If True, it will ensure the object defined in GEOGRID/features is a valid GEOGRIDDATA object. - If False, it will post the object in GEOGRID/features to GEOGRIDDATa without any verification. - - - -#### return_indicator(indicator_name) -Returns the unformatted value returned by `brix.Indicator.return_indicator()` function of the selected indicator. - - -* **Parameters** - - **indicator_name** (*str*) – Name or identifier of the indicator. See `brix.Handler.list_indicators()` - - - -* **Returns** - - **indicator_value** – Result of `brix.Indicator.return_indicator()` function for the selected indicator. - - - -* **Return type** - - dict or float - - - -#### rollback() -`brix.Handler` keeps track of the previous value of the indicators and access values.This function rollsback the current values to whatever the locally stored values are. -See also `brix.Handler.previous_indicators()` and `brix.Handler.previous_access()`. - - -#### run() -Run method to be called by `threading.Thread.start()`. -It runs `brix.Handler._listen()`. - - -#### see_current(indicator_type='numeric') -Returns the current values of the indicators posted for the table. - - -* **Parameters** - - **indicator_type** (str, defaults to numeric) – Type of the indicator. Choose either numeric, access, or heatmap (access and heatmap refer to the same type). - - - -* **Returns** - - **current_status** – Current value of selected indicators. - - - -* **Return type** - - dict - - - -#### setDaemon(daemonic) - -#### setName(name) - -#### set_opacity(alpha, default_alpha=1) -Sets opacity values in GEOGRID. -To see updates in GEOGRIDDATA, reset GEOGRIDDATA using `brix.Handler.reset_geogrid_data()`. - - -* **Parameters** - - - * **alpha** (*float** or **dict*) – Values of opacity between 0 and 1. - If dict, use the types as keys and opacity as values. - Non-specificed types will be set to default_alpha. - If float, this will change the opacity for all types equally. - - - * **default_alpha** (*float**, **defaults to 1*) – Opacity value to use when type not specified in alpha. - - - -#### set_timezone() -Sets the time zone of the table based on its coordinates. -Useful for front end shadow simulation. - - -#### sleep_time() -Returns sleep time in seconds, handling whether the table is in rest_mode or not. - - -#### start() -Start the thread’s activity. - -It must be called at most once per thread object. It arranges for the -object’s run() method to be invoked in a separate thread of control. - -This method will raise a RuntimeError if called more than once on the -same thread object. - - -#### test_indicators() -Dry run over all indicators. - - -#### update_geogrid_data(update_func, geogrid_data=None, \*\*kwargs) -Function to update table GEOGRIDDATA. - - -* **Parameters** - - **update_func** (*function*) – Function to update the geogriddadata (list of dicts) - Function should take a `brix.GEOGRIDDATA` as the first and only positional argument plus any number of keyword arguments. - Function should return a list of dicts that represents a valid geogriddata object. - - -### Example - -```python ->>> def add_height(get_geogrid_data, levels=1): - for cell in geogrid_data: - cell['height'] += levels - return geogrid_data ->>> levels = 3 ->>> H = Handler('tablename', quietly=False) ->>> H.update_geogrid_data(add_height, levels=levels) -``` - - -#### update_package(geogrid_data=None, append=False) -Returns the package that will be posted in CityIO. - - -* **Parameters** - - - * **geogrid_data** (*dict**, **optional*) – Result of `brix.Handler.get_geogrid_data()`. If not provided, it will be retrieved. - - - * **append** (boolean, defaults to False) – If True, it will append the new indicators to whatever is already there. - - - -* **Returns** - - **new_values** – Note that all heatmat indicators have been grouped into just one value. - - - -* **Return type** - - list - - - -#### wake_up() -Turns off rest mode. - -## Indicator class - - -### class brix.Indicator(\*args, \*\*kwargs) -Parent class to build indicators from. To use, you need to define a subclass than inherets properties from this class. Doing so, ensures your indicator inherets the necessary methods and properties to connect with a CityScipe table. - - -#### load_module() -User defined function. Used to load any data necessary for the indicator to run. In principle, you could do everything using `brix.Indicator.setup()` but we encourage to separte data loading and module definition into two functions. - - -#### return_baseline(geogrid_data) -User defined function. Used to return a baseline value. -[This function might get deprecated] - - -#### return_indicator(geogrid_data) -User defined function. This function defines the value of the indicator as a function of the table state passed as geogrid_data. Function must return either a dictionary, a list, or a number. When returning a dict follow the format: `{'name': 'Indicator_NAME', 'value': 1.00}`. - - -* **Parameters** - - **geogrid_data** (*dict*) – Current state of the table. See `brix.Indicator.get_geogrid_data()` and `brix.Handler.get_geogrid_data()`. The content of this object will depend on the needs of the indicator. In particular, the values of `brix.Indicator.requires_geometry` and `brix.Indicator.requires_geogrid_props`. - - - -* **Returns** - - **indicator_value** – Value of indicator or list of values. When returning a dict, please use the format `{'name': 'Indicator Name', 'value': indicator_value}`. When returning a list, please return a list of dictionaries in the same format. - - - -* **Return type** - - list, dict, or float - - - -#### return_indicator_heatmap(geogrid_data) -Placeholder for user to define. - - -#### return_indicator_numeric(geogrid_data) -Placeholder for user to define. - - -#### return_indicator_textual(geogrid_data) -Placeholder for user to define. - - -#### set_return_indicator(return_indicator) -Used to set the return_indicator method by passing a function. - - -* **Parameters** - - **return_indicator** (*func*) – Function that takes geogrid_data as input. - - - -#### setup() -User defined function. Used to set up the main attributed of the custom indicator. Acts similar to an __init__ method. - -## GEOGRIDDATA class - - -### class brix.GEOGRIDDATA(geogrid_data) -Class to package the input needed by each indicator. -This class extends a simple list to charge it with additional properties, if needed. -It’s mainly used for internal purposes. - - -* **Parameters** - - **geogrid_data** (*list*) – List to converg to GEOGRIDDATA object. - - - -#### append() -Append object to the end of the list. - - -#### as_df(include_geometries=None) -Returns the dataframe version of the geogriddata object. - - -* **Parameters** - - **include_geometries** (*None*) – If set, it will override the default option. - - - -#### as_graph(edges_only=False) -Returns the geogriddata object as a networkx.Graph. - - -* **Parameters** - - **edges_only** (boolean, defaults to False) – If True, it will return the edgelist instead - - - -* **Returns** - - **G** – Graph connecting each cell to its first neighbors. - If edges_only=True, returns a list of edges instead. - - - -* **Return type** - - networkx.Graph - - - -#### bounds(bbox=False, buffer_percent=None) -Returns the bounds of the geogrid. - - -* **Parameters** - - - * **bbox** (*boolean**, **defaults to False*) – If True, it will return a bounding box instead of a polygon. [W, S, E, N] - - - * **buffer_percent** (*float**, **optional*) – If given, this will add a buffer around the table. - Size of buffer in units of the grid diameter - See `brix.get_buffer_size()`. - - - -* **Returns** - - **limit** – Bounds of the table. If bbox=True it will return a horizontal bounding box. - - - -* **Return type** - - shapely.Polygon or list - - - -#### check_id_validity(quietly=True) -Checks if all ids are in GEOGRIDDATA or if some are missing by comparing the number of unique ids of the current object with the grid size as return by `brix.GEOGRIDDATA.grid_size()`. -Does not raise an error, but returns a boolean. -See `brix.GEOGRIDDATA.fill_missing_cells()` - - -* **Returns** - - **validity** – If False, the number of unique ids does not match the grid size. - - - -* **Return type** - - boolean - - - -#### check_type_validity(raise_error=True) -Checks if all types in the given GEOGRIDDATA object correspond to a type defined in GEOGRID. -This function raises an error by default. - - -* **Parameters** - - **raise_error** (boolean, defaults to True) – If False, it will not raise the error by return a boolean of whether the types are valid or not. - - - -#### clear() -Remove all items from list. - - -#### copy() -Return a shallow copy of the list. - - -#### count() -Return number of occurrences of value. - - -#### extend() -Extend list by appending elements from the iterable. - - -#### fill_missing_cells() -Fills missing cells from GEOGRID. - -This is useful when working only with interactive cells. - - -#### get_geogrid() -Get the value of GEOGRIDDATA from the corresponding `brix.Handler`. - - -* **Returns** - - **GEOGRID** – Value of GEOGRID - - - -* **Return type** - - dict - - - -#### get_geogrid_props() -Get the value of `brix.Handler.geogrid_props` from the corresponding `brix.Handler`. - - -* **Returns** - - **geogrid_props** – Value of `brix.Handler.geogrid_props` - - - -* **Return type** - - dict or list - - - -#### get_type_info() - -#### get_type_set() -Returns set with all types defined in GEOGRID. - - -#### grid_size() -Returns size of the grid (total numer of cells). - - -#### index() -Return first index of value. - -Raises ValueError if the value is not present. - - -#### insert() -Insert object before index. - - -#### link_table(table_name) -Sets geogrid using set_geogrid. -This function should use if GEOGRID needs to be updated. - - -* **Parameters** - - **table_name** (str or `brix.Handler`) – Name of the table or Handler object. - - - -#### number_of_types() - -#### pop() -Remove and return item at index (default last). - -Raises IndexError if list is empty or index is out of range. - - -#### pop_geometries() - -#### remap_colors() -Forces the colors to match the define colors of the cell type. -Requires that GEOGRIDDATA is set. - - -#### remap_interactive() -Forces the colors to match the define colors of the cell type. -Requires that GEOGRIDDATA is set - - -#### remove() -Remove first occurrence of value. - -Raises ValueError if the value is not present. - - -#### remove_noninteractive() -Remove noninteractive cells from object. -Modification is done in-place, meaning the object is modified. -The function will also return the object. - - -* **Returns** - - **self** – Modified object. - - - -* **Return type** - - brix.GEOGRIDDATA - - - -#### reverse() -Reverse *IN PLACE*. - - -#### set_classification_list(classification_list) - -#### set_geogrid(GEOGRID) - -#### set_geogrid_edges(GEOGRID_EDGES) - -#### sort() -Sort the list in ascending order and return None. - -The sort is in-place (i.e. the list itself is modified) and stable (i.e. the -order of two equal elements is maintained). - -If a key function is given, apply it once to each list item and sort them, -ascending or descending, according to their function values. - -The reverse flag can be set to sort in descending order. - -## Indicator sub-classes - - -### class brix.CompositeIndicator(\*args, \*\*kwargs) -Subclass used to define composite indicators. Composite indicators are functions of already defined indicators. By defining `brix.Indicator.setup()` and `brix.Indicator.return_indicator()`, this class allows you to define a composite indicator by just passing an aggregation function. - - -#### load_module() -User defined function. Used to load any data necessary for the indicator to run. In principle, you could do everything using `brix.Indicator.setup()` but we encourage to separte data loading and module definition into two functions. - - -#### return_baseline(geogrid_data) -User defined function. Used to return a baseline value. -[This function might get deprecated] - - -#### return_indicator(indicator_values) -Applies `brix.CompositeIndicator.compose_function` to the indicator values to return the composite indicator. - - -* **Parameters** - - **indicator_values** (*dict*) – Dictionary with indicator values. See `brix.Handler.get_indicator_values()`. - - - -* **Returns** - - **indicator_values** – List of one indicator. - - - -* **Return type** - - list - - - -#### return_indicator_heatmap(geogrid_data) -Placeholder for user to define. - - -#### return_indicator_numeric(geogrid_data) -Placeholder for user to define. - - -#### return_indicator_textual(geogrid_data) -Placeholder for user to define. - - -#### set_return_indicator(return_indicator) -Used to set the return_indicator method by passing a function. - - -* **Parameters** - - **return_indicator** (*func*) – Function that takes geogrid_data as input. - - - -#### setup(compose_function, selected_indicators=[], \*args, \*\*kwargs) -Indicator setup. This function is called upon __init__ so user does not need to call it independently. - - -* **Parameters** - - - * **compose_function** (*function*) – Function to aggregate values of selected indicators. The function should be build to accept a dictionary with indicator values. See `brix.Handler.get_indicator_values()`. - - - * **selected_indicators** (*list**, **optional*) – List of indicators to use to aggregate. - - - -### class brix.StaticHeatmap(\*args, \*\*kwargs) -Wrapper to create a simple static heatmap indicator. -The indicator will post the given shapefile to the table. - - -* **Parameters** - - - * **shapefile** (*geopandas.GeoDataFrame** or **str*) – Shapefile with values for each point, or path to shapefile. - - - * **columns** (*list*) – Columns to plot. If not provided, it will return all numeric columns. - The name of the indicator will be given by the name of the column. - - - * **name** (*str**, **optional*) – Name of the indicator. - If not provided, it will generate a name by hashing the column names. - - - * **normalize_values** (boolean, defaults to True) – If True, it will ensure all values are between 0 and 1. - - - -* **Returns** - - **Heatmap** – Heatmap indicator that posts the given shapefile to the table. - - - -* **Return type** - - brix.Indicator - - - -#### load_module() -User defined function. Used to load any data necessary for the indicator to run. In principle, you could do everything using `brix.Indicator.setup()` but we encourage to separte data loading and module definition into two functions. - - -#### return_baseline(geogrid_data) -User defined function. Used to return a baseline value. -[This function might get deprecated] - - -#### return_indicator(geogrid_data) -User defined function. This function defines the value of the indicator as a function of the table state passed as geogrid_data. Function must return either a dictionary, a list, or a number. When returning a dict follow the format: `{'name': 'Indicator_NAME', 'value': 1.00}`. - - -* **Parameters** - - **geogrid_data** (*dict*) – Current state of the table. See `brix.Indicator.get_geogrid_data()` and `brix.Handler.get_geogrid_data()`. The content of this object will depend on the needs of the indicator. In particular, the values of `brix.Indicator.requires_geometry` and `brix.Indicator.requires_geogrid_props`. - - - -* **Returns** - - **indicator_value** – Value of indicator or list of values. When returning a dict, please use the format `{'name': 'Indicator Name', 'value': indicator_value}`. When returning a list, please return a list of dictionaries in the same format. - - - -* **Return type** - - list, dict, or float - - - -#### return_indicator_heatmap(geogrid_data) -Placeholder for user to define. - - -#### return_indicator_numeric(geogrid_data) -Placeholder for user to define. - - -#### return_indicator_textual(geogrid_data) -Placeholder for user to define. - - -#### set_return_indicator(return_indicator) -Used to set the return_indicator method by passing a function. - - -* **Parameters** - - **return_indicator** (*func*) – Function that takes geogrid_data as input. - - - -#### setup(shapefile, columns=None, name=None, normalize_values=True) -User defined function. Used to set up the main attributed of the custom indicator. Acts similar to an __init__ method. - -## User class - - -### class brix.User(\*args, sleep_time=7, name=None, \*\*kwargs) -Class that simulates a user doing changes to the grid. - -To use, instantiate the class, and run User.start_user(). -This will create a new thread with a user running. - - -#### add_indicator(I, test=True) -Adds indicator to handler object. - - -* **Parameters** - - - * **I** (`brix.Indicator`) – Indicator object to handle. If indicator has name, this will use as identifier. If indicator has no name, it will generate an identifier. - - - * **test** (boolean, defaults to True) – If True it will ensure the indicator runs before adding it to the `brix.Handler`. - - - -#### classmethod getinstances() - -#### listen(new_thread=False, showFront=True, append=False) -Listens for changes in the table’s geogrid and update all indicators accordingly. -You can use the update_package method to see the object that will be posted to the table. -This method starts with an update before listening. -Can run in a separate thread. -Does not support updating GEOGRIDDATA. - - -* **Parameters** - - - * **new_thread** (boolean, defaults to False.) – If True it will run in a separate thread, freeing up the main thread for other tables. - We recommend setting this to False when debugging, to avoid needing to recreate the object. - - - * **showFront** (boolean, defaults to False) – If True it will open the front-end URL in a webbrowser at start. - Only works if new_tread=False. - - - * **append** (boolean, defaults to False) – If True it will append the new indicators to whatever is already there. - This option will be deprecated soon. We recommend not using it unless strictly necessary. - - - * **clear_endpoints** (boolean, defaults to False) – If True, it will clear all existing heatmap, numeric, and textual indicators. - This is not recommended for deployment, only for testing. - - - * **robust** (boolean, defaults to False) – If True, whenever a grid configuration breaks an indicator, the module will not stop, but rather wait until the grid changes and try to update again. - Incompatible with new_thread=True - - - -#### run() -Run method to be called by `threading.Thread.start()`. - - -#### start_user() - -#### stop_user() - -#### update_package(geogrid_data=None, append=False) -Returns the package that will be posted in CityIO. - - -* **Parameters** - - - * **geogrid_data** (*dict**, **optional*) – Result of `brix.Handler.get_geogrid_data()`. If not provided, it will be retrieved. - - - * **append** (boolean, defaults to False) – If True, it will append the new indicators to whatever is already there. - - - -* **Returns** - - **new_values** – Note that all heatmat indicators have been grouped into just one value. - - - -* **Return type** - - list - - - -#### user_sim(quietly=True) -Simulates a user that changes the grid every sleep_time seconds. -The user flips a random cell 90% of the time, and shuffles the whole grid the other 10% of the time. -There is a small chance that the user will reset the grid to its original setting. - - -#### user_status() -## Grid maker class - - -### class brix.Grid_maker(table_name, top_left_lat, top_left_lon, cell_size=100, nrows=20, ncols=20, rotation=0, crs_epsg=None, quietly=False) -Takes the properties of the grid and using the Haversine formula, -computes the location of the top-right corner. Then projects -to spatial coordinates in order to find the locations of the rest of -the grid cells - - -* **Parameters** - - - * **table_name** (*str*) – Name of table to create. - It will overwrite it if it exists. - - - * **top_left_lat** (*float*) – Latitude of top left corner of grid - - - * **top_left_lon** (*float*) – Longitude of top left corner of grid - - - * **cell_size** (*float**, **defaults to 100*) – Lenght in meters of the side of each cell. - - - * **nrows** (*int**, **defaults to 20*) – Number of rows - - - * **ncols** (*int**, **defaults to 20*) – Number of columns - - - * **rotation** (*int**, **defaults to 0*) – Roation of the grid. - - - * **crs_epsg** (*str*) – EPSG code for the desired projection. - Do not include ‘EPSG’ - if crs_epsg== None, the projection will be estimated based on the longitude - - - -#### choose_color(i, n) -Uses matplotlib tab10 and tab20 color palettes to generate a color. - - -* **Parameters** - - - * **i** (*int*) – Index of color (e.g. 0,1,2,3,…,n) - - - * **n** (*int*) – Size of palette - - - -* **Returns** - - **color** – RGB code for color - - - -* **Return type** - - list - - - -#### color_palettes( = {10: 'tab10', 20: 'tab20'}) - -#### commit_grid() -Commits the geogrid to create the new table. -This will reset GEOGRIDDATA and clear all indicator endpoints if the table alread existed. - - -#### edit_types(types) -Changes the default types for user defined types. -If the GEOGRID object returned has not been created, it will created using the default properties. - - -* **Parameters** - - **types** (*dict** or **list*) – Object with new type definitions. - When passing a dict, each type name is passed as a key and values are dicts with the properties of each type. - When passing a list, only passes the names of the types, other baseline properties will be generated by default. - - - -#### generate_color() -Uses default color palette to generate colors for all types that do not have a color defined. - - -#### generate_geogriddata() -Ensures that all cells point to a valid cell type in the features endpoint. - - -#### generate_height() -Adds height zero to types missing height - - -#### generate_interactive() -Adds the interactive=Web property when missing - - -#### generate_missing() -Wrapper to generate missing necessary properties: color and height - - -#### get_grid_geojson() -Returns the object created with `brix.Grid_maker.set_grid_geojson()`. -If the object has not been created, it will created using the default properties. - - -* **Returns** - - **geogrid** – Object to be posted to GEOGRID endpoint to create table. - See `brix.commit_grid()` - - - -* **Return type** - - dict - - - -#### grid_types() - -#### plot() -Plots the whole grid in blue. -If some cells are maked as interactive, they will be plotted in red. -Useful to ensure the correct behavior. - - -#### set_grid_geojson(add_properties={}, include_global_properties=True) -Takes the pre-computed locations of the top-left corner of every grid cell and creates a corresponding Multi-Polygon geojson object. -Does not return the object, but saves it in object. -Use `brix.Grid_maker.get_grid_geojson()` to access it - - -* **Parameters** - - - * **add_properties** (*dict** (**optional**)*) – Properties of each type. - Currently not supported - - - * **include_global_properties** (Boolean, defaults to True) – If True it will add global properties to each cell. - - - -#### set_noninteractive(poly) -Sets cells that fall outside of polygon as non interactive. - - -* **Parameters** - - **poly** (*shapely Polygon*) – Polygon bounding the interactive part of the grid. - - - -#### wgs( = Description: PROJ-based coordinate operation Area of Use: - undefined) - diff --git a/docsite/docusaurus.config.js b/docsite/docusaurus.config.js deleted file mode 100644 index 98cbad92..00000000 --- a/docsite/docusaurus.config.js +++ /dev/null @@ -1,59 +0,0 @@ -module.exports = { - title: 'Here We Build CityScope', - tagline: 'Urban Modelling & Simulation', - url: 'https://cityscope.media.mit.edu', - baseUrl: '/', - onBrokenLinks: 'throw', - favicon: 'img/favicon.ico', - organizationName: 'CityScope', // Usually your GitHub org/user name. - projectName: 'cityscope.github.io', // Usually your repo name. - themeConfig: { - navbar: { - title: 'MIT CityScope', - logo: { - alt: 'Logo', - src: 'img/ML_logo.png', - }, - items: [ - { - to: '/', - activeBasePath: 'docs', - label: 'Docs', - position: 'left', - }, - { - href: 'https://github.com/CityScope', - label: 'GitHub', - position: 'right', - src: 'img/', - }, - ], - }, - footer: { - logo: { - alt: 'Logo', - src: 'img/ML_logo_sml.png', - href: 'https://github.com/CityScope', - }, - copyright: `Copyright © ${new Date().getFullYear()} CityScope, MIT City Science`, - }, - }, - presets: [ - [ - '@docusaurus/preset-classic', - { - docs: { - routeBasePath: '/', - - sidebarPath: require.resolve('./sidebars.js'), - editUrl: - 'https://github.com/CityScope/cityscope.github.io/blob/new_docsite/docsite/', - // "https://github.com/CityScope/cityscope.github.io", - }, - theme: { - customCss: require.resolve('./src/css/custom.css'), - }, - }, - ], - ], -} diff --git a/docsite/sidebars.js b/docsite/sidebars.js deleted file mode 100644 index 0b215ebd..00000000 --- a/docsite/sidebars.js +++ /dev/null @@ -1,22 +0,0 @@ -module.exports = { - sidebar: { - About: [ - 'general/Introduction', - 'general/CityScope Ecosystem', - 'general/Guideline', - 'general/Docs Development', - 'general/Open Source', - 'general/License', - ], - - Frontend: ['frontend/CityScopeJS'], - 'User Interfaces': ['UI/CityScoPy', 'UI/RoboScope'], - Modules: ['modules/Types System', 'modules/Brix/Brix', 'modules/GAMA'], - Backend: ['backend/CityIO', 'backend/API', 'backend/Build'], - Archive: [ - 'archive/Schema', - 'archive/Specs', - 'archive/Past CityScope Projects', - ], - }, -} diff --git a/docsite/src/css/custom.css b/docsite/src/css/custom.css deleted file mode 100644 index 23cf3dcb..00000000 --- a/docsite/src/css/custom.css +++ /dev/null @@ -1,75 +0,0 @@ -:root { - --ifm-background-color: #e8e8e8; - --ifm-background-surface-color: #121212; - --ifm-color-primary: #ff5278; - --ifm-color-primary-dark: #ff305e; - --ifm-color-primary-darker: #ff1f51; - --ifm-color-primary-darkest: #ec0034; - --ifm-color-primary-light: #ff7492; - --ifm-color-primary-lighter: #ff859f; - --ifm-color-primary-lightest: #ffb7c7; - --ifm-code-font-size: 95%; -} - -html[data-theme='dark'] { - --ifm-background-color: #1e2125; - --ifm-background-surface-color: #121212; -} - -article { - max-width: 600px; - margin-left: auto; - margin-right: auto; -} - -.docusaurus-highlight-code-line { - background-color: rgb(72, 77, 91); - display: block; - margin: 0 calc(-1 * var(--ifm-pre-padding)); - padding: 0 var(--ifm-pre-padding); -} - -@import url('https://fonts.googleapis.com/css?family=Press+Start+2P&display=swap'); - -/** -imported from old site -*/ - -.fixedCenterPosition { - text-align: center; - position: absolute; - left: 50%; - top: 50%; - transform-origin: 50% 50%; - z-index: 100; - transform: translate3d(-50%, -50%, 0); -} - -.legotitle { - padding: 1em; - margin: 0; - font-family: 'Press Start 2P'; - color: #ff5278; - font-size: 22px; -} - -a, -a:visited { - color: #ff5278; - text-decoration: none; -} - -u:hover { - text-decoration: none !important; - border-bottom: 20px solid #ff5278; -} - -a:link, -a:visited { - text-decoration: none; - color: #ff5278; -} -a:hover { - text-decoration: underline; - color: #ff5278; -} diff --git a/docsite/static/.nojekyll b/docsite/static/.nojekyll deleted file mode 100644 index e69de29b..00000000 diff --git a/docsite/static/CNAME b/docsite/static/CNAME deleted file mode 100644 index 95f20ba2..00000000 --- a/docsite/static/CNAME +++ /dev/null @@ -1 +0,0 @@ -cityscope.media.mit.edu \ No newline at end of file diff --git a/docsite/static/img/ML_logo.png b/docsite/static/img/ML_logo.png deleted file mode 100644 index 2e137ec4..00000000 Binary files a/docsite/static/img/ML_logo.png and /dev/null differ diff --git a/docsite/static/img/ML_logo_sml.png b/docsite/static/img/ML_logo_sml.png deleted file mode 100644 index d70a88df..00000000 Binary files a/docsite/static/img/ML_logo_sml.png and /dev/null differ diff --git a/docsite/static/img/favicon.ico b/docsite/static/img/favicon.ico deleted file mode 100644 index d2088d90..00000000 Binary files a/docsite/static/img/favicon.ico and /dev/null differ diff --git a/docsite/static/img/models/lego.mtl b/docsite/static/img/models/lego.mtl deleted file mode 100644 index 48c4c51d..00000000 --- a/docsite/static/img/models/lego.mtl +++ /dev/null @@ -1,12 +0,0 @@ -# Blender MTL File: 'None' -# Material Count: 1 - -newmtl Material.001 -Ns 225.000000 -Ka 1.000000 1.000000 1.000000 -Kd 0.800000 0.800000 0.800000 -Ks 0.500000 0.500000 0.500000 -Ke 0.000000 0.000000 0.000000 -Ni 1.450000 -d 1.000000 -illum 2 diff --git a/docsite/static/img/models/lego.obj b/docsite/static/img/models/lego.obj deleted file mode 100644 index a38df4a2..00000000 --- a/docsite/static/img/models/lego.obj +++ /dev/null @@ -1,721 +0,0 @@ -# Blender v2.83 (sub 11) OBJ File: '' -# www.blender.org -mtllib lego.mtl -o Cylinder.007_Cylinder.013 -v -0.811776 1.743909 -4.333082 -v -1.000000 1.743909 -4.356860 -v -1.188222 1.743909 -4.333082 -v -1.364620 1.743909 -4.263241 -v -1.518106 1.743909 -4.151728 -v -1.639038 1.743909 -4.005546 -v -1.719816 1.743909 -3.833884 -v -1.755366 1.743909 -3.647524 -v -1.743454 1.743909 -3.458178 -v -1.684828 1.743909 -3.277746 -v -1.583172 1.743909 -3.117560 -v -1.444872 1.743909 -2.987688 -v -1.278620 1.743909 -2.896290 -v -1.094860 1.743909 -2.849108 -v -0.905140 1.743909 -2.849108 -v -0.721382 1.743909 -2.896288 -v -0.555128 1.743909 -2.987686 -v -0.416830 1.743909 -3.117558 -v -0.315172 1.743909 -3.277744 -v -0.256546 1.743909 -3.458178 -v -0.244634 1.743909 -3.647524 -v -0.280182 1.743909 -3.833882 -v -0.360962 1.743909 -4.005546 -v -0.481894 1.743909 -4.151728 -v -0.635380 1.743909 -4.263241 -v 1.188224 1.743909 -4.333082 -v 1.000000 1.743909 -4.356860 -v 0.811778 1.743909 -4.333082 -v 0.635380 1.743909 -4.263241 -v 0.481894 1.743909 -4.151728 -v 0.360962 1.743909 -4.005546 -v 0.280184 1.743909 -3.833884 -v 0.244634 1.743909 -3.647524 -v 0.256546 1.743909 -3.458178 -v 0.315172 1.743909 -3.277746 -v 0.416828 1.743909 -3.117560 -v 0.555128 1.743909 -2.987688 -v 0.721380 1.743909 -2.896290 -v 0.905140 1.743909 -2.849108 -v 1.094860 1.743909 -2.849108 -v 1.278618 1.743909 -2.896288 -v 1.444872 1.743909 -2.987686 -v 1.583170 1.743909 -3.117558 -v 1.684828 1.743909 -3.277744 -v 1.743454 1.743909 -3.458178 -v 1.755368 1.743909 -3.647524 -v 1.719818 1.743909 -3.833882 -v 1.639038 1.743909 -4.005546 -v 1.518106 1.743909 -4.151728 -v 1.364620 1.743909 -4.263241 -v -2.000000 1.166239 4.515644 -v -2.000000 1.166241 -4.515644 -v -2.000000 -1.166239 -4.515644 -v -2.000000 -1.166241 4.515644 -v 2.000000 1.166241 -4.515644 -v 2.000000 -1.166239 -4.515644 -v 2.000000 1.166239 4.515644 -v 2.000000 -1.166241 4.515644 -v 1.188224 1.743908 2.866918 -v 1.000000 1.743908 2.843140 -v 0.811778 1.743908 2.866918 -v 0.635380 1.743908 2.936758 -v 0.481894 1.743908 3.048272 -v 0.360962 1.743908 3.194454 -v 0.280184 1.743907 3.366116 -v 0.244634 1.743907 3.552476 -v 0.256546 1.743907 3.741822 -v 0.315172 1.743907 3.922256 -v 0.416828 1.743907 4.082440 -v 0.555128 1.743907 4.212313 -v 0.721380 1.743907 4.303710 -v 0.905140 1.743907 4.350893 -v 1.094860 1.743907 4.350893 -v 1.278618 1.743907 4.303710 -v 1.444872 1.743907 4.212315 -v 1.583170 1.743907 4.082442 -v 1.684828 1.743907 3.922256 -v 1.743454 1.743907 3.741822 -v 1.755366 1.743907 3.552476 -v 1.719818 1.743907 3.366118 -v 1.639038 1.743908 3.194454 -v 1.518106 1.743908 3.048272 -v 1.364620 1.743908 2.936758 -v 1.188224 1.743908 -1.933082 -v 1.000000 1.743908 -1.956860 -v 0.811778 1.743908 -1.933082 -v 0.635380 1.743908 -1.863242 -v 0.481894 1.743908 -1.751728 -v 0.360962 1.743908 -1.605546 -v 0.280184 1.743908 -1.433884 -v 0.244634 1.743908 -1.247524 -v 0.256546 1.743908 -1.058178 -v 0.315172 1.743908 -0.877744 -v 0.416828 1.743908 -0.717560 -v 0.555128 1.743908 -0.587688 -v 0.721380 1.743908 -0.496290 -v 0.905140 1.743908 -0.449108 -v 1.094860 1.743908 -0.449108 -v 1.278618 1.743908 -0.496288 -v 1.444872 1.743908 -0.587686 -v 1.583170 1.743908 -0.717558 -v 1.684828 1.743908 -0.877744 -v 1.743454 1.743908 -1.058178 -v 1.755368 1.743908 -1.247524 -v 1.719818 1.743908 -1.433882 -v 1.639038 1.743908 -1.605546 -v 1.518106 1.743908 -1.751728 -v 1.364620 1.743908 -1.863242 -v 1.188224 1.743908 0.466918 -v 1.000000 1.743908 0.443140 -v 0.811778 1.743908 0.466918 -v 0.635380 1.743908 0.536758 -v 0.481894 1.743908 0.648272 -v 0.360962 1.743908 0.794454 -v 0.280184 1.743908 0.966116 -v 0.244634 1.743908 1.152476 -v 0.256546 1.743908 1.341820 -v 0.315172 1.743908 1.522254 -v 0.416828 1.743908 1.682440 -v 0.555128 1.743908 1.812312 -v 0.721380 1.743908 1.903710 -v 0.905140 1.743908 1.950892 -v 1.094860 1.743908 1.950892 -v 1.278618 1.743908 1.903712 -v 1.444872 1.743908 1.812314 -v 1.583170 1.743908 1.682440 -v 1.684828 1.743908 1.522256 -v 1.743454 1.743908 1.341822 -v 1.755368 1.743908 1.152476 -v 1.719818 1.743908 0.966116 -v 1.639038 1.743908 0.794454 -v 1.518106 1.743908 0.648272 -v 1.364620 1.743908 0.536758 -v -0.811776 1.743908 0.466918 -v -1.000000 1.743908 0.443140 -v -1.188222 1.743908 0.466918 -v -1.364620 1.743908 0.536758 -v -1.518106 1.743908 0.648272 -v -1.639038 1.743908 0.794454 -v -1.719816 1.743908 0.966116 -v -1.755366 1.743908 1.152476 -v -1.743454 1.743908 1.341820 -v -1.684828 1.743908 1.522254 -v -1.583172 1.743908 1.682440 -v -1.444872 1.743908 1.812312 -v -1.278620 1.743908 1.903710 -v -1.094860 1.743908 1.950892 -v -0.905140 1.743908 1.950892 -v -0.721382 1.743908 1.903712 -v -0.555128 1.743908 1.812314 -v -0.416830 1.743908 1.682440 -v -0.315172 1.743908 1.522256 -v -0.256546 1.743908 1.341822 -v -0.244634 1.743908 1.152476 -v -0.280182 1.743908 0.966116 -v -0.360962 1.743908 0.794454 -v -0.481894 1.743908 0.648272 -v -0.635380 1.743908 0.536758 -v -0.811776 1.743908 2.866918 -v -1.000000 1.743908 2.843140 -v -1.188222 1.743908 2.866918 -v -1.364620 1.743908 2.936758 -v -1.518106 1.743908 3.048272 -v -1.639038 1.743908 3.194454 -v -1.719816 1.743907 3.366116 -v -1.755366 1.743907 3.552476 -v -1.743454 1.743907 3.741822 -v -1.684828 1.743907 3.922256 -v -1.583172 1.743907 4.082440 -v -1.444872 1.743907 4.212313 -v -1.278620 1.743907 4.303710 -v -1.094860 1.743907 4.350893 -v -0.905140 1.743907 4.350893 -v -0.721382 1.743907 4.303710 -v -0.555128 1.743907 4.212315 -v -0.416830 1.743907 4.082442 -v -0.315172 1.743907 3.922256 -v -0.256546 1.743907 3.741822 -v -0.244634 1.743907 3.552476 -v -0.280182 1.743907 3.366118 -v -0.360962 1.743908 3.194454 -v -0.481894 1.743908 3.048272 -v -0.635380 1.743908 2.936758 -v -0.811776 1.743908 -1.933082 -v -1.000000 1.743908 -1.956860 -v -1.188222 1.743908 -1.933082 -v -1.364620 1.743908 -1.863242 -v -1.518106 1.743908 -1.751728 -v -1.639038 1.743908 -1.605546 -v -1.719816 1.743908 -1.433884 -v -1.755366 1.743908 -1.247524 -v -1.743454 1.743908 -1.058178 -v -1.684828 1.743908 -0.877744 -v -1.583172 1.743908 -0.717560 -v -1.444872 1.743908 -0.587688 -v -1.278620 1.743908 -0.496290 -v -1.094860 1.743908 -0.449108 -v -0.905140 1.743908 -0.449108 -v -0.721382 1.743908 -0.496288 -v -0.555128 1.743908 -0.587686 -v -0.416830 1.743908 -0.717558 -v -0.315172 1.743908 -0.877744 -v -0.256546 1.743908 -1.058178 -v -0.244634 1.743908 -1.247524 -v -0.280182 1.743908 -1.433882 -v -0.360962 1.743908 -1.605546 -v -0.481894 1.743908 -1.751728 -v -0.635380 1.743908 -1.863242 -v -1.000000 0.230189 -4.356860 -v -0.811776 0.230189 -4.333082 -v -0.635380 0.230189 -4.263242 -v -0.481894 0.230189 -4.151728 -v -0.360962 0.230189 -4.005546 -v -0.280182 0.230189 -3.833882 -v -0.244634 0.230189 -3.647524 -v -0.256546 0.230189 -3.458178 -v -0.315172 0.230189 -3.277744 -v -0.416830 0.230189 -3.117558 -v -0.555128 0.230188 -2.987686 -v -0.721382 0.230188 -2.896288 -v -0.905140 0.230188 -2.849108 -v -1.094860 0.230188 -2.849108 -v -1.278620 0.230188 -2.896290 -v -1.444872 0.230188 -2.987688 -v -1.583172 0.230189 -3.117560 -v -1.684828 0.230189 -3.277746 -v -1.743454 0.230189 -3.458178 -v -1.755366 0.230189 -3.647524 -v -1.719816 0.230189 -3.833884 -v -1.639038 0.230189 -4.005546 -v -1.518106 0.230189 -4.151728 -v -1.364620 0.230189 -4.263242 -v -1.188222 0.230189 -4.333082 -v 1.000000 0.230189 -4.356860 -v 1.188224 0.230189 -4.333082 -v 1.364620 0.230189 -4.263242 -v 1.518106 0.230189 -4.151728 -v 1.639038 0.230189 -4.005546 -v 1.719818 0.230189 -3.833882 -v 1.755368 0.230189 -3.647524 -v 1.743454 0.230189 -3.458178 -v 1.684828 0.230189 -3.277744 -v 1.583170 0.230189 -3.117558 -v 1.444872 0.230188 -2.987686 -v 1.278618 0.230188 -2.896288 -v 1.094860 0.230188 -2.849108 -v 0.905140 0.230188 -2.849108 -v 0.721380 0.230188 -2.896290 -v 0.555128 0.230188 -2.987688 -v 0.416828 0.230189 -3.117560 -v 0.315172 0.230189 -3.277746 -v 0.256546 0.230189 -3.458178 -v 0.244634 0.230189 -3.647524 -v 0.280184 0.230189 -3.833884 -v 0.360962 0.230189 -4.005546 -v 0.481894 0.230189 -4.151728 -v 0.635380 0.230189 -4.263242 -v 0.811778 0.230189 -4.333082 -v 1.000000 0.230188 2.843140 -v 1.188224 0.230188 2.866918 -v 1.364620 0.230188 2.936758 -v 1.518106 0.230188 3.048272 -v 1.639038 0.230187 3.194454 -v 1.719818 0.230187 3.366118 -v 1.755366 0.230187 3.552476 -v 1.743454 0.230187 3.741822 -v 1.684828 0.230187 3.922256 -v 1.583170 0.230187 4.082442 -v 1.444872 0.230187 4.212314 -v 1.278618 0.230187 4.303710 -v 1.094860 0.230187 4.350892 -v 0.905140 0.230187 4.350892 -v 0.721380 0.230187 4.303710 -v 0.555128 0.230187 4.212312 -v 0.416828 0.230187 4.082440 -v 0.315172 0.230187 3.922256 -v 0.256546 0.230187 3.741822 -v 0.244634 0.230187 3.552476 -v 0.280184 0.230187 3.366116 -v 0.360962 0.230187 3.194454 -v 0.481894 0.230188 3.048272 -v 0.635380 0.230188 2.936758 -v 0.811778 0.230188 2.866918 -v 1.000000 0.230188 -1.956860 -v 1.188224 0.230188 -1.933082 -v 1.364620 0.230188 -1.863242 -v 1.518106 0.230188 -1.751728 -v 1.639038 0.230188 -1.605546 -v 1.719818 0.230188 -1.433882 -v 1.755368 0.230188 -1.247524 -v 1.743454 0.230188 -1.058178 -v 1.684828 0.230188 -0.877744 -v 1.583170 0.230188 -0.717558 -v 1.444872 0.230188 -0.587686 -v 1.278618 0.230188 -0.496288 -v 1.094860 0.230188 -0.449108 -v 0.905140 0.230188 -0.449108 -v 0.721380 0.230188 -0.496290 -v 0.555128 0.230188 -0.587688 -v 0.416828 0.230188 -0.717560 -v 0.315172 0.230188 -0.877744 -v 0.256546 0.230188 -1.058178 -v 0.244634 0.230188 -1.247524 -v 0.280184 0.230188 -1.433884 -v 0.360962 0.230188 -1.605546 -v 0.481894 0.230188 -1.751728 -v 0.635380 0.230188 -1.863242 -v 0.811778 0.230188 -1.933082 -v 1.000000 0.230188 0.443140 -v 1.188224 0.230188 0.466918 -v 1.364620 0.230188 0.536758 -v 1.518106 0.230188 0.648272 -v 1.639038 0.230188 0.794454 -v 1.719818 0.230188 0.966116 -v 1.755368 0.230188 1.152476 -v 1.743454 0.230188 1.341822 -v 1.684828 0.230188 1.522256 -v 1.583170 0.230188 1.682440 -v 1.444872 0.230188 1.812314 -v 1.278618 0.230188 1.903712 -v 1.094860 0.230188 1.950892 -v 0.905140 0.230188 1.950892 -v 0.721380 0.230188 1.903710 -v 0.555128 0.230188 1.812312 -v 0.416828 0.230188 1.682440 -v 0.315172 0.230188 1.522254 -v 0.256546 0.230188 1.341820 -v 0.244634 0.230188 1.152476 -v 0.280184 0.230188 0.966116 -v 0.360962 0.230188 0.794454 -v 0.481894 0.230188 0.648272 -v 0.635380 0.230188 0.536758 -v 0.811778 0.230188 0.466918 -v -1.000000 0.230188 0.443140 -v -0.811776 0.230188 0.466918 -v -0.635380 0.230188 0.536758 -v -0.481894 0.230188 0.648272 -v -0.360962 0.230188 0.794454 -v -0.280182 0.230188 0.966116 -v -0.244634 0.230188 1.152476 -v -0.256546 0.230188 1.341822 -v -0.315172 0.230188 1.522256 -v -0.416830 0.230188 1.682440 -v -0.555128 0.230188 1.812314 -v -0.721382 0.230188 1.903712 -v -0.905140 0.230188 1.950892 -v -1.094860 0.230188 1.950892 -v -1.278620 0.230188 1.903710 -v -1.444872 0.230188 1.812312 -v -1.583172 0.230188 1.682440 -v -1.684828 0.230188 1.522254 -v -1.743454 0.230188 1.341820 -v -1.755366 0.230188 1.152476 -v -1.719816 0.230188 0.966116 -v -1.639038 0.230188 0.794454 -v -1.518106 0.230188 0.648272 -v -1.364620 0.230188 0.536758 -v -1.188222 0.230188 0.466918 -v -1.000000 0.230188 2.843140 -v -0.811776 0.230188 2.866918 -v -0.635380 0.230188 2.936758 -v -0.481894 0.230188 3.048272 -v -0.360962 0.230187 3.194454 -v -0.280182 0.230187 3.366118 -v -0.244634 0.230187 3.552476 -v -0.256546 0.230187 3.741822 -v -0.315172 0.230187 3.922256 -v -0.416830 0.230187 4.082442 -v -0.555128 0.230187 4.212314 -v -0.721382 0.230187 4.303710 -v -0.905140 0.230187 4.350892 -v -1.094860 0.230187 4.350892 -v -1.278620 0.230187 4.303710 -v -1.444872 0.230187 4.212312 -v -1.583172 0.230187 4.082440 -v -1.684828 0.230187 3.922256 -v -1.743454 0.230187 3.741822 -v -1.755366 0.230187 3.552476 -v -1.719816 0.230187 3.366116 -v -1.639038 0.230187 3.194454 -v -1.518106 0.230188 3.048272 -v -1.364620 0.230188 2.936758 -v -1.188222 0.230188 2.866918 -v -1.000000 0.230188 -1.956860 -v -0.811776 0.230188 -1.933082 -v -0.635380 0.230188 -1.863242 -v -0.481894 0.230188 -1.751728 -v -0.360962 0.230188 -1.605546 -v -0.280182 0.230188 -1.433882 -v -0.244634 0.230188 -1.247524 -v -0.256546 0.230188 -1.058178 -v -0.315172 0.230188 -0.877744 -v -0.416830 0.230188 -0.717558 -v -0.555128 0.230188 -0.587686 -v -0.721382 0.230188 -0.496288 -v -0.905140 0.230188 -0.449108 -v -1.094860 0.230188 -0.449108 -v -1.278620 0.230188 -0.496290 -v -1.444872 0.230188 -0.587688 -v -1.583172 0.230188 -0.717560 -v -1.684828 0.230188 -0.877744 -v -1.743454 0.230188 -1.058178 -v -1.755366 0.230188 -1.247524 -v -1.719816 0.230188 -1.433884 -v -1.639038 0.230188 -1.605546 -v -1.518106 0.230188 -1.751728 -v -1.364620 0.230188 -1.863242 -v -1.188222 0.230188 -1.933082 -vn -0.0000 1.0000 0.0000 -vn -1.0000 0.0000 0.0000 -vn 0.0000 0.0000 -1.0000 -vn 1.0000 0.0000 0.0000 -vn 0.0000 0.0000 1.0000 -vn 0.0000 -1.0000 -0.0000 -vn -0.0000 -0.6800 -0.7333 -vn 0.0000 0.6800 -0.7332 -vn 0.1823 0.6800 -0.7102 -vn 0.1824 -0.6800 -0.7102 -vn 0.3532 0.6800 -0.6425 -vn 0.3532 -0.6800 -0.6426 -vn 0.5019 0.6800 -0.5345 -vn 0.5019 -0.6800 -0.5345 -vn 0.6191 0.6800 -0.3929 -vn 0.6191 -0.6800 -0.3929 -vn 0.6973 0.6800 -0.2266 -vn 0.6974 -0.6800 -0.2266 -vn 0.7318 0.6800 -0.0460 -vn 0.7318 -0.6800 -0.0460 -vn 0.7202 0.6800 0.1374 -vn 0.7203 -0.6800 0.1374 -vn 0.6634 0.6800 0.3122 -vn 0.6635 -0.6800 0.3122 -vn 0.5650 0.6800 0.4674 -vn 0.5650 -0.6800 0.4674 -vn 0.4310 0.6800 0.5932 -vn 0.4310 -0.6800 0.5932 -vn 0.2699 0.6800 0.6818 -vn 0.2699 -0.6800 0.6818 -vn 0.0919 0.6800 0.7275 -vn 0.0919 -0.6800 0.7275 -vn -0.0920 0.6800 0.7274 -vn -0.0919 -0.6800 0.7275 -vn -0.2699 0.6800 0.6818 -vn -0.2699 -0.6800 0.6818 -vn -0.4309 0.6800 0.5933 -vn -0.4310 -0.6800 0.5932 -vn -0.5650 0.6800 0.4674 -vn -0.5650 -0.6800 0.4674 -vn -0.6634 0.6800 0.3122 -vn -0.6635 -0.6800 0.3122 -vn -0.7202 0.6800 0.1374 -vn -0.7203 -0.6800 0.1374 -vn -0.7318 0.6800 -0.0460 -vn -0.7318 -0.6800 -0.0460 -vn -0.6973 0.6800 -0.2266 -vn -0.6974 -0.6800 -0.2266 -vn -0.6191 0.6800 -0.3929 -vn -0.6191 -0.6800 -0.3929 -vn -0.5019 0.6800 -0.5345 -vn -0.5019 -0.6800 -0.5345 -vn -0.3532 0.6800 -0.6425 -vn -0.3532 -0.6800 -0.6426 -vn -0.1824 -0.6800 -0.7102 -vn -0.1821 0.6800 -0.7103 -vn 0.1824 0.6800 -0.7102 -vn 0.4309 0.6800 0.5932 -vn -0.0919 0.6800 0.7275 -vn -0.4310 0.6800 0.5932 -vn -0.5650 0.6800 0.4673 -vn 0.7202 0.6800 0.1373 -vn 0.2699 0.6800 0.6817 -vn 0.0920 0.6800 0.7274 -vn -0.6635 0.6800 0.3120 -vn -0.6192 0.6800 -0.3928 -vn -0.1823 0.6800 -0.7102 -vn 0.4309 0.6800 0.5933 -vn -0.7202 0.6800 0.1373 -vn -0.3533 0.6800 -0.6425 -vn 0.7318 0.6800 -0.0458 -vn -0.0921 0.6800 0.7274 -vn -0.2700 0.6800 0.6817 -vn -0.6973 0.6800 -0.2267 -vn 0.6973 0.6800 -0.2265 -vn -0.4309 0.6800 0.5932 -vn -0.3530 0.6800 -0.6426 -vn 0.6974 0.6800 -0.2264 -vn 0.6633 0.6800 0.3123 -vn -0.7202 0.6800 0.1375 -vn -0.3531 0.6800 -0.6426 -vn 0.7202 0.6800 0.1375 -vn -0.6633 0.6800 0.3124 -vn -0.7203 0.6800 0.1372 -usemtl Material.001 -s off -f 1//1 2//1 3//1 4//1 5//1 6//1 7//1 8//1 9//1 10//1 11//1 12//1 13//1 14//1 15//1 16//1 17//1 18//1 19//1 20//1 21//1 22//1 23//1 24//1 25//1 -f 26//1 27//1 28//1 29//1 30//1 31//1 32//1 33//1 34//1 35//1 36//1 37//1 38//1 39//1 40//1 41//1 42//1 43//1 44//1 45//1 46//1 47//1 48//1 49//1 50//1 -f 51//2 52//2 53//2 54//2 -f 52//3 55//3 56//3 53//3 -f 55//4 57//4 58//4 56//4 -f 57//5 51//5 54//5 58//5 -f 54//6 53//6 56//6 58//6 -f 57//1 55//1 52//1 51//1 -f 59//1 60//1 61//1 62//1 63//1 64//1 65//1 66//1 67//1 68//1 69//1 70//1 71//1 72//1 73//1 74//1 75//1 76//1 77//1 78//1 79//1 80//1 81//1 82//1 83//1 -f 84//1 85//1 86//1 87//1 88//1 89//1 90//1 91//1 92//1 93//1 94//1 95//1 96//1 97//1 98//1 99//1 100//1 101//1 102//1 103//1 104//1 105//1 106//1 107//1 108//1 -f 109//1 110//1 111//1 112//1 113//1 114//1 115//1 116//1 117//1 118//1 119//1 120//1 121//1 122//1 123//1 124//1 125//1 126//1 127//1 128//1 129//1 130//1 131//1 132//1 133//1 -f 134//1 135//1 136//1 137//1 138//1 139//1 140//1 141//1 142//1 143//1 144//1 145//1 146//1 147//1 148//1 149//1 150//1 151//1 152//1 153//1 154//1 155//1 156//1 157//1 158//1 -f 159//1 160//1 161//1 162//1 163//1 164//1 165//1 166//1 167//1 168//1 169//1 170//1 171//1 172//1 173//1 174//1 175//1 176//1 177//1 178//1 179//1 180//1 181//1 182//1 183//1 -f 184//1 185//1 186//1 187//1 188//1 189//1 190//1 191//1 192//1 193//1 194//1 195//1 196//1 197//1 198//1 199//1 200//1 201//1 202//1 203//1 204//1 205//1 206//1 207//1 208//1 -s 1 -f 209//7 2//8 1//9 210//10 -f 210//10 1//9 25//11 211//12 -f 211//12 25//11 24//13 212//14 -f 212//14 24//13 23//15 213//16 -f 213//16 23//15 22//17 214//18 -f 214//18 22//17 21//19 215//20 -f 215//20 21//19 20//21 216//22 -f 216//22 20//21 19//23 217//24 -f 217//24 19//23 18//25 218//26 -f 218//26 18//25 17//27 219//28 -f 219//28 17//27 16//29 220//30 -f 220//30 16//29 15//31 221//32 -f 221//32 15//31 14//33 222//34 -f 222//34 14//33 13//35 223//36 -f 223//36 13//35 12//37 224//38 -f 224//38 12//37 11//39 225//40 -f 225//40 11//39 10//41 226//42 -f 226//42 10//41 9//43 227//44 -f 227//44 9//43 8//45 228//46 -f 228//46 8//45 7//47 229//48 -f 229//48 7//47 6//49 230//50 -f 230//50 6//49 5//51 231//52 -f 231//52 5//51 4//53 232//54 -f 233//55 3//56 2//8 209//7 -f 232//54 4//53 3//56 233//55 -f 209//7 210//10 211//12 212//14 213//16 214//18 215//20 216//22 217//24 218//26 219//28 220//30 221//32 222//34 223//36 224//38 225//40 226//42 227//44 228//46 229//48 230//50 231//52 232//54 233//55 -f 234//7 27//8 26//57 235//10 -f 235//10 26//57 50//11 236//12 -f 236//12 50//11 49//13 237//14 -f 237//14 49//13 48//15 238//16 -f 238//16 48//15 47//17 239//18 -f 239//18 47//17 46//19 240//20 -f 240//20 46//19 45//21 241//22 -f 241//22 45//21 44//23 242//24 -f 242//24 44//23 43//25 243//26 -f 243//26 43//25 42//58 244//28 -f 244//28 42//58 41//29 245//30 -f 245//30 41//29 40//31 246//32 -f 246//32 40//31 39//59 247//34 -f 247//34 39//59 38//35 248//36 -f 248//36 38//35 37//60 249//38 -f 249//38 37//60 36//61 250//40 -f 250//40 36//61 35//41 251//42 -f 251//42 35//41 34//43 252//44 -f 252//44 34//43 33//45 253//46 -f 253//46 33//45 32//47 254//48 -f 254//48 32//47 31//49 255//50 -f 255//50 31//49 30//51 256//52 -f 256//52 30//51 29//53 257//54 -f 258//55 28//56 27//8 234//7 -f 257//54 29//53 28//56 258//55 -f 234//7 235//10 236//12 237//14 238//16 239//18 240//20 241//22 242//24 243//26 244//28 245//30 246//32 247//34 248//36 249//38 250//40 251//42 252//44 253//46 254//48 255//50 256//52 257//54 258//55 -f 259//7 60//8 59//9 260//10 -f 260//10 59//9 83//11 261//12 -f 261//12 83//11 82//13 262//14 -f 262//14 82//13 81//15 263//16 -f 263//16 81//15 80//17 264//18 -f 264//18 80//17 79//19 265//20 -f 265//20 79//19 78//62 266//22 -f 266//22 78//62 77//23 267//24 -f 267//24 77//23 76//25 268//26 -f 268//26 76//25 75//27 269//28 -f 269//28 75//27 74//63 270//30 -f 270//30 74//63 73//64 271//32 -f 271//32 73//64 72//59 272//34 -f 272//34 72//59 71//35 273//36 -f 273//36 71//35 70//60 274//38 -f 274//38 70//60 69//39 275//40 -f 275//40 69//39 68//65 276//42 -f 276//42 68//65 67//43 277//44 -f 277//44 67//43 66//45 278//46 -f 278//46 66//45 65//47 279//48 -f 279//48 65//47 64//66 280//50 -f 280//50 64//66 63//51 281//52 -f 281//52 63//51 62//53 282//54 -f 283//55 61//67 60//8 259//7 -f 282//54 62//53 61//67 283//55 -f 259//7 260//10 261//12 262//14 263//16 264//18 265//20 266//22 267//24 268//26 269//28 270//30 271//32 272//34 273//36 274//38 275//40 276//42 277//44 278//46 279//48 280//50 281//52 282//54 283//55 -f 284//7 85//8 84//57 285//10 -f 285//10 84//57 108//11 286//12 -f 286//12 108//11 107//13 287//14 -f 287//14 107//13 106//15 288//16 -f 288//16 106//15 105//17 289//18 -f 289//18 105//17 104//19 290//20 -f 290//20 104//19 103//21 291//22 -f 291//22 103//21 102//23 292//24 -f 292//24 102//23 101//25 293//26 -f 293//26 101//25 100//68 294//28 -f 294//28 100//68 99//29 295//30 -f 295//30 99//29 98//31 296//32 -f 296//32 98//31 97//59 297//34 -f 297//34 97//59 96//35 298//36 -f 298//36 96//35 95//60 299//38 -f 299//38 95//60 94//39 300//40 -f 300//40 94//39 93//41 301//42 -f 301//42 93//41 92//69 302//44 -f 302//44 92//69 91//45 303//46 -f 303//46 91//45 90//47 304//48 -f 304//48 90//47 89//49 305//50 -f 305//50 89//49 88//51 306//52 -f 306//52 88//51 87//70 307//54 -f 308//55 86//67 85//8 284//7 -f 307//54 87//70 86//67 308//55 -f 284//7 285//10 286//12 287//14 288//16 289//18 290//20 291//22 292//24 293//26 294//28 295//30 296//32 297//34 298//36 299//38 300//40 301//42 302//44 303//46 304//48 305//50 306//52 307//54 308//55 -f 309//7 110//8 109//9 310//10 -f 310//10 109//9 133//11 311//12 -f 311//12 133//11 132//13 312//14 -f 312//14 132//13 131//15 313//16 -f 313//16 131//15 130//17 314//18 -f 314//18 130//17 129//71 315//20 -f 315//20 129//71 128//21 316//22 -f 316//22 128//21 127//23 317//24 -f 317//24 127//23 126//25 318//26 -f 318//26 126//25 125//27 319//28 -f 319//28 125//27 124//29 320//30 -f 320//30 124//29 123//31 321//32 -f 321//32 123//31 122//72 322//34 -f 322//34 122//72 121//73 323//36 -f 323//36 121//73 120//60 324//38 -f 324//38 120//60 119//39 325//40 -f 325//40 119//39 118//41 326//42 -f 326//42 118//41 117//69 327//44 -f 327//44 117//69 116//45 328//46 -f 328//46 116//45 115//74 329//48 -f 329//48 115//74 114//49 330//50 -f 330//50 114//49 113//51 331//52 -f 331//52 113//51 112//53 332//54 -f 333//55 111//67 110//8 309//7 -f 332//54 112//53 111//67 333//55 -f 309//7 310//10 311//12 312//14 313//16 314//18 315//20 316//22 317//24 318//26 319//28 320//30 321//32 322//34 323//36 324//38 325//40 326//42 327//44 328//46 329//48 330//50 331//52 332//54 333//55 -f 334//7 135//8 134//9 335//10 -f 335//10 134//9 158//11 336//12 -f 336//12 158//11 157//13 337//14 -f 337//14 157//13 156//15 338//16 -f 338//16 156//15 155//75 339//18 -f 339//18 155//75 154//19 340//20 -f 340//20 154//19 153//21 341//22 -f 341//22 153//21 152//23 342//24 -f 342//24 152//23 151//25 343//26 -f 343//26 151//25 150//27 344//28 -f 344//28 150//27 149//29 345//30 -f 345//30 149//29 148//31 346//32 -f 346//32 148//31 147//59 347//34 -f 347//34 147//59 146//35 348//36 -f 348//36 146//35 145//76 349//38 -f 349//38 145//76 144//39 350//40 -f 350//40 144//39 143//41 351//42 -f 351//42 143//41 142//43 352//44 -f 352//44 142//43 141//45 353//46 -f 353//46 141//45 140//74 354//48 -f 354//48 140//74 139//49 355//50 -f 355//50 139//49 138//51 356//52 -f 356//52 138//51 137//77 357//54 -f 358//55 136//67 135//8 334//7 -f 357//54 137//77 136//67 358//55 -f 334//7 335//10 336//12 337//14 338//16 339//18 340//20 341//22 342//24 343//26 344//28 345//30 346//32 347//34 348//36 349//38 350//40 351//42 352//44 353//46 354//48 355//50 356//52 357//54 358//55 -f 359//7 160//8 159//57 360//10 -f 360//10 159//57 183//11 361//12 -f 361//12 183//11 182//13 362//14 -f 362//14 182//13 181//15 363//16 -f 363//16 181//15 180//78 364//18 -f 364//18 180//78 179//19 365//20 -f 365//20 179//19 178//21 366//22 -f 366//22 178//21 177//79 367//24 -f 367//24 177//79 176//25 368//26 -f 368//26 176//25 175//27 369//28 -f 369//28 175//27 174//29 370//30 -f 370//30 174//29 173//31 371//32 -f 371//32 173//31 172//59 372//34 -f 372//34 172//59 171//35 373//36 -f 373//36 171//35 170//60 374//38 -f 374//38 170//60 169//39 375//40 -f 375//40 169//39 168//41 376//42 -f 376//42 168//41 167//80 377//44 -f 377//44 167//80 166//45 378//46 -f 378//46 166//45 165//47 379//48 -f 379//48 165//47 164//66 380//50 -f 380//50 164//66 163//51 381//52 -f 381//52 163//51 162//81 382//54 -f 383//55 161//67 160//8 359//7 -f 382//54 162//81 161//67 383//55 -f 359//7 360//10 361//12 362//14 363//16 364//18 365//20 366//22 367//24 368//26 369//28 370//30 371//32 372//34 373//36 374//38 375//40 376//42 377//44 378//46 379//48 380//50 381//52 382//54 383//55 -f 384//7 185//8 184//9 385//10 -f 385//10 184//9 208//11 386//12 -f 386//12 208//11 207//13 387//14 -f 387//14 207//13 206//15 388//16 -f 388//16 206//15 205//17 389//18 -f 389//18 205//17 204//19 390//20 -f 390//20 204//19 203//82 391//22 -f 391//22 203//82 202//79 392//24 -f 392//24 202//79 201//25 393//26 -f 393//26 201//25 200//68 394//28 -f 394//28 200//68 199//29 395//30 -f 395//30 199//29 198//31 396//32 -f 396//32 198//31 197//59 397//34 -f 397//34 197//59 196//35 398//36 -f 398//36 196//35 195//37 399//38 -f 399//38 195//37 194//39 400//40 -f 400//40 194//39 193//83 401//42 -f 401//42 193//83 192//84 402//44 -f 402//44 192//84 191//45 403//46 -f 403//46 191//45 190//47 404//48 -f 404//48 190//47 189//49 405//50 -f 405//50 189//49 188//51 406//52 -f 406//52 188//51 187//81 407//54 -f 408//55 186//67 185//8 384//7 -f 407//54 187//81 186//67 408//55 -f 384//7 385//10 386//12 387//14 388//16 389//18 390//20 391//22 392//24 393//26 394//28 395//30 396//32 397//34 398//36 399//38 400//40 401//42 402//44 403//46 404//48 405//50 406//52 407//54 408//55 diff --git a/docsite/static/img/models/legoBrick.obj b/docsite/static/img/models/legoBrick.obj deleted file mode 100644 index 25153548..00000000 --- a/docsite/static/img/models/legoBrick.obj +++ /dev/null @@ -1,693 +0,0 @@ -# Blender v2.83 (sub 11) OBJ File: 'legoBrick.blend' -# www.blender.org -mtllib legoBrick.mtl -o Cylinder.007_Cylinder.013 -v -0.500000 0.115094 -2.178430 -v -0.500000 0.871954 -2.178430 -v -0.405888 0.115094 -2.166541 -v -0.405888 0.871954 -2.166541 -v -0.317690 0.115094 -2.131621 -v -0.317690 0.871954 -2.131621 -v -0.240947 0.115094 -2.075864 -v -0.240947 0.871954 -2.075864 -v -0.180481 0.115094 -2.002773 -v -0.180481 0.871954 -2.002773 -v -0.140091 0.115094 -1.916941 -v -0.140091 0.871954 -1.916941 -v -0.122317 0.115094 -1.823762 -v -0.122317 0.871954 -1.823762 -v -0.128273 0.115094 -1.729089 -v -0.128273 0.871954 -1.729089 -v -0.157586 0.115094 -1.638872 -v -0.157586 0.871954 -1.638872 -v -0.208415 0.115094 -1.558779 -v -0.208415 0.871954 -1.558779 -v -0.277564 0.115094 -1.493843 -v -0.277564 0.871954 -1.493843 -v -0.360691 0.115094 -1.448144 -v -0.360691 0.871954 -1.448144 -v -0.452570 0.115094 -1.424554 -v -0.452570 0.871954 -1.424554 -v -0.547430 0.115094 -1.424554 -v -0.547430 0.871954 -1.424554 -v -0.639310 0.115094 -1.448145 -v -0.639310 0.871954 -1.448145 -v -0.722436 0.115094 -1.493844 -v -0.722436 0.871954 -1.493844 -v -0.791586 0.115094 -1.558780 -v -0.791586 0.871954 -1.558780 -v -0.842414 0.115094 -1.638873 -v -0.842414 0.871954 -1.638873 -v -0.871727 0.115094 -1.729089 -v -0.871727 0.871954 -1.729089 -v -0.877683 0.115094 -1.823762 -v -0.877683 0.871954 -1.823762 -v -0.859908 0.115094 -1.916942 -v -0.859908 0.871954 -1.916942 -v -0.819519 0.115094 -2.002773 -v -0.819519 0.871954 -2.002773 -v -0.759053 0.115094 -2.075864 -v -0.759053 0.871954 -2.075864 -v -0.682310 0.115094 -2.131621 -v -0.682310 0.871954 -2.131621 -v -0.594111 0.115094 -2.166541 -v -0.594111 0.871954 -2.166541 -v 0.500000 0.115094 -2.178430 -v 0.500000 0.871954 -2.178430 -v 0.594112 0.115094 -2.166541 -v 0.594112 0.871954 -2.166541 -v 0.682310 0.115094 -2.131621 -v 0.682310 0.871954 -2.131621 -v 0.759053 0.115094 -2.075864 -v 0.759053 0.871954 -2.075864 -v 0.819519 0.115094 -2.002773 -v 0.819519 0.871954 -2.002773 -v 0.859909 0.115094 -1.916941 -v 0.859909 0.871954 -1.916941 -v 0.877684 0.115094 -1.823762 -v 0.877684 0.871954 -1.823762 -v 0.871727 0.115094 -1.729089 -v 0.871727 0.871954 -1.729089 -v 0.842414 0.115094 -1.638872 -v 0.842414 0.871954 -1.638872 -v 0.791585 0.115094 -1.558779 -v 0.791585 0.871954 -1.558779 -v 0.722436 0.115094 -1.493843 -v 0.722436 0.871954 -1.493843 -v 0.639309 0.115094 -1.448144 -v 0.639309 0.871954 -1.448144 -v 0.547430 0.115094 -1.424554 -v 0.547430 0.871954 -1.424554 -v 0.452570 0.115094 -1.424554 -v 0.452570 0.871954 -1.424554 -v 0.360690 0.115094 -1.448145 -v 0.360690 0.871954 -1.448145 -v 0.277564 0.115094 -1.493844 -v 0.277564 0.871954 -1.493844 -v 0.208414 0.115094 -1.558780 -v 0.208414 0.871954 -1.558780 -v 0.157586 0.115094 -1.638873 -v 0.157586 0.871954 -1.638873 -v 0.128273 0.115094 -1.729089 -v 0.128273 0.871954 -1.729089 -v 0.122317 0.115094 -1.823762 -v 0.122317 0.871954 -1.823762 -v 0.140092 0.115094 -1.916942 -v 0.140092 0.871954 -1.916942 -v 0.180481 0.115094 -2.002773 -v 0.180481 0.871954 -2.002773 -v 0.240947 0.115094 -2.075864 -v 0.240947 0.871954 -2.075864 -v 0.317690 0.115094 -2.131621 -v 0.317690 0.871954 -2.131621 -v 0.405889 0.115094 -2.166541 -v 0.405889 0.871954 -2.166541 -v -1.000000 -0.583120 2.257822 -v -1.000000 -0.583120 -2.257822 -v 1.000000 -0.583120 -2.257822 -v 1.000000 -0.583120 2.257822 -v -1.000000 0.583120 2.257822 -v -1.000000 0.583120 -2.257822 -v 1.000000 0.583120 -2.257822 -v 1.000000 0.583120 2.257822 -v 0.500000 0.115094 1.421570 -v 0.500000 0.871954 1.421570 -v 0.594112 0.115094 1.433459 -v 0.594112 0.871954 1.433459 -v 0.682310 0.115094 1.468379 -v 0.682310 0.871954 1.468379 -v 0.759053 0.115094 1.524136 -v 0.759053 0.871954 1.524136 -v 0.819519 0.115094 1.597227 -v 0.819519 0.871954 1.597227 -v 0.859909 0.115094 1.683059 -v 0.859909 0.871954 1.683059 -v 0.877683 0.115094 1.776238 -v 0.877683 0.871954 1.776238 -v 0.871727 0.115094 1.870911 -v 0.871727 0.871954 1.870911 -v 0.842414 0.115094 1.961128 -v 0.842414 0.871954 1.961128 -v 0.791585 0.115094 2.041221 -v 0.791585 0.871954 2.041221 -v 0.722436 0.115094 2.106157 -v 0.722436 0.871954 2.106157 -v 0.639309 0.115094 2.151855 -v 0.639309 0.871954 2.151855 -v 0.547430 0.115094 2.175446 -v 0.547430 0.871954 2.175446 -v 0.452570 0.115094 2.175446 -v 0.452570 0.871954 2.175446 -v 0.360690 0.115094 2.151855 -v 0.360690 0.871954 2.151855 -v 0.277564 0.115094 2.106156 -v 0.277564 0.871954 2.106156 -v 0.208414 0.115094 2.041220 -v 0.208414 0.871954 2.041220 -v 0.157586 0.115094 1.961128 -v 0.157586 0.871954 1.961128 -v 0.128273 0.115094 1.870911 -v 0.128273 0.871954 1.870911 -v 0.122317 0.115094 1.776238 -v 0.122317 0.871954 1.776238 -v 0.140092 0.115094 1.683058 -v 0.140092 0.871954 1.683058 -v 0.180481 0.115094 1.597227 -v 0.180481 0.871954 1.597227 -v 0.240947 0.115094 1.524136 -v 0.240947 0.871954 1.524136 -v 0.317690 0.115094 1.468379 -v 0.317690 0.871954 1.468379 -v 0.405889 0.115094 1.433459 -v 0.405889 0.871954 1.433459 -v 0.500000 0.115094 -0.978430 -v 0.500000 0.871954 -0.978430 -v 0.594112 0.115094 -0.966541 -v 0.594112 0.871954 -0.966541 -v 0.682310 0.115094 -0.931621 -v 0.682310 0.871954 -0.931621 -v 0.759053 0.115094 -0.875864 -v 0.759053 0.871954 -0.875864 -v 0.819519 0.115094 -0.802773 -v 0.819519 0.871954 -0.802773 -v 0.859909 0.115094 -0.716941 -v 0.859909 0.871954 -0.716941 -v 0.877684 0.115094 -0.623762 -v 0.877684 0.871954 -0.623762 -v 0.871727 0.115094 -0.529089 -v 0.871727 0.871954 -0.529089 -v 0.842414 0.115094 -0.438872 -v 0.842414 0.871954 -0.438872 -v 0.791585 0.115094 -0.358779 -v 0.791585 0.871954 -0.358779 -v 0.722436 0.115094 -0.293843 -v 0.722436 0.871954 -0.293843 -v 0.639309 0.115094 -0.248144 -v 0.639309 0.871954 -0.248144 -v 0.547430 0.115094 -0.224554 -v 0.547430 0.871954 -0.224554 -v 0.452570 0.115094 -0.224554 -v 0.452570 0.871954 -0.224554 -v 0.360690 0.115094 -0.248145 -v 0.360690 0.871954 -0.248145 -v 0.277564 0.115094 -0.293844 -v 0.277564 0.871954 -0.293844 -v 0.208414 0.115094 -0.358780 -v 0.208414 0.871954 -0.358780 -v 0.157586 0.115094 -0.438872 -v 0.157586 0.871954 -0.438872 -v 0.128273 0.115094 -0.529089 -v 0.128273 0.871954 -0.529089 -v 0.122317 0.115094 -0.623762 -v 0.122317 0.871954 -0.623762 -v 0.140092 0.115094 -0.716942 -v 0.140092 0.871954 -0.716942 -v 0.180481 0.115094 -0.802773 -v 0.180481 0.871954 -0.802773 -v 0.240947 0.115094 -0.875864 -v 0.240947 0.871954 -0.875864 -v 0.317690 0.115094 -0.931621 -v 0.317690 0.871954 -0.931621 -v 0.405889 0.115094 -0.966541 -v 0.405889 0.871954 -0.966541 -v 0.500000 0.115094 0.221570 -v 0.500000 0.871954 0.221570 -v 0.594112 0.115094 0.233459 -v 0.594112 0.871954 0.233459 -v 0.682310 0.115094 0.268379 -v 0.682310 0.871954 0.268379 -v 0.759053 0.115094 0.324136 -v 0.759053 0.871954 0.324136 -v 0.819519 0.115094 0.397227 -v 0.819519 0.871954 0.397227 -v 0.859909 0.115094 0.483058 -v 0.859909 0.871954 0.483058 -v 0.877684 0.115094 0.576238 -v 0.877684 0.871954 0.576238 -v 0.871727 0.115094 0.670911 -v 0.871727 0.871954 0.670911 -v 0.842414 0.115094 0.761128 -v 0.842414 0.871954 0.761128 -v 0.791585 0.115094 0.841220 -v 0.791585 0.871954 0.841220 -v 0.722436 0.115094 0.906157 -v 0.722436 0.871954 0.906157 -v 0.639309 0.115094 0.951856 -v 0.639309 0.871954 0.951856 -v 0.547430 0.115094 0.975446 -v 0.547430 0.871954 0.975446 -v 0.452570 0.115094 0.975446 -v 0.452570 0.871954 0.975446 -v 0.360690 0.115094 0.951855 -v 0.360690 0.871954 0.951855 -v 0.277564 0.115094 0.906156 -v 0.277564 0.871954 0.906156 -v 0.208414 0.115094 0.841220 -v 0.208414 0.871954 0.841220 -v 0.157586 0.115094 0.761127 -v 0.157586 0.871954 0.761127 -v 0.128273 0.115094 0.670910 -v 0.128273 0.871954 0.670910 -v 0.122317 0.115094 0.576238 -v 0.122317 0.871954 0.576238 -v 0.140092 0.115094 0.483058 -v 0.140092 0.871954 0.483058 -v 0.180481 0.115094 0.397227 -v 0.180481 0.871954 0.397227 -v 0.240947 0.115094 0.324136 -v 0.240947 0.871954 0.324136 -v 0.317690 0.115094 0.268379 -v 0.317690 0.871954 0.268379 -v 0.405889 0.115094 0.233459 -v 0.405889 0.871954 0.233459 -v -0.500000 0.115094 0.221570 -v -0.500000 0.871954 0.221570 -v -0.405888 0.115094 0.233459 -v -0.405888 0.871954 0.233459 -v -0.317690 0.115094 0.268379 -v -0.317690 0.871954 0.268379 -v -0.240947 0.115094 0.324136 -v -0.240947 0.871954 0.324136 -v -0.180481 0.115094 0.397227 -v -0.180481 0.871954 0.397227 -v -0.140091 0.115094 0.483058 -v -0.140091 0.871954 0.483058 -v -0.122317 0.115094 0.576238 -v -0.122317 0.871954 0.576238 -v -0.128273 0.115094 0.670911 -v -0.128273 0.871954 0.670911 -v -0.157586 0.115094 0.761128 -v -0.157586 0.871954 0.761128 -v -0.208415 0.115094 0.841220 -v -0.208415 0.871954 0.841220 -v -0.277564 0.115094 0.906157 -v -0.277564 0.871954 0.906157 -v -0.360691 0.115094 0.951856 -v -0.360691 0.871954 0.951856 -v -0.452570 0.115094 0.975446 -v -0.452570 0.871954 0.975446 -v -0.547430 0.115094 0.975446 -v -0.547430 0.871954 0.975446 -v -0.639310 0.115094 0.951855 -v -0.639310 0.871954 0.951855 -v -0.722436 0.115094 0.906156 -v -0.722436 0.871954 0.906156 -v -0.791586 0.115094 0.841220 -v -0.791586 0.871954 0.841220 -v -0.842414 0.115094 0.761127 -v -0.842414 0.871954 0.761127 -v -0.871727 0.115094 0.670910 -v -0.871727 0.871954 0.670910 -v -0.877683 0.115094 0.576238 -v -0.877683 0.871954 0.576238 -v -0.859908 0.115094 0.483058 -v -0.859908 0.871954 0.483058 -v -0.819519 0.115094 0.397227 -v -0.819519 0.871954 0.397227 -v -0.759053 0.115094 0.324136 -v -0.759053 0.871954 0.324136 -v -0.682310 0.115094 0.268379 -v -0.682310 0.871954 0.268379 -v -0.594111 0.115094 0.233459 -v -0.594111 0.871954 0.233459 -v -0.500000 0.115094 1.421570 -v -0.500000 0.871954 1.421570 -v -0.405888 0.115094 1.433459 -v -0.405888 0.871954 1.433459 -v -0.317690 0.115094 1.468379 -v -0.317690 0.871954 1.468379 -v -0.240947 0.115094 1.524136 -v -0.240947 0.871954 1.524136 -v -0.180481 0.115094 1.597227 -v -0.180481 0.871954 1.597227 -v -0.140091 0.115094 1.683059 -v -0.140091 0.871954 1.683059 -v -0.122317 0.115094 1.776238 -v -0.122317 0.871954 1.776238 -v -0.128273 0.115094 1.870911 -v -0.128273 0.871954 1.870911 -v -0.157586 0.115094 1.961128 -v -0.157586 0.871954 1.961128 -v -0.208415 0.115094 2.041221 -v -0.208415 0.871954 2.041221 -v -0.277564 0.115094 2.106157 -v -0.277564 0.871954 2.106157 -v -0.360691 0.115094 2.151855 -v -0.360691 0.871954 2.151855 -v -0.452570 0.115094 2.175446 -v -0.452570 0.871954 2.175446 -v -0.547430 0.115094 2.175446 -v -0.547430 0.871954 2.175446 -v -0.639310 0.115094 2.151855 -v -0.639310 0.871954 2.151855 -v -0.722436 0.115094 2.106156 -v -0.722436 0.871954 2.106156 -v -0.791586 0.115094 2.041220 -v -0.791586 0.871954 2.041220 -v -0.842414 0.115094 1.961128 -v -0.842414 0.871954 1.961128 -v -0.871727 0.115094 1.870911 -v -0.871727 0.871954 1.870911 -v -0.877683 0.115094 1.776238 -v -0.877683 0.871954 1.776238 -v -0.859908 0.115094 1.683058 -v -0.859908 0.871954 1.683058 -v -0.819519 0.115094 1.597227 -v -0.819519 0.871954 1.597227 -v -0.759053 0.115094 1.524136 -v -0.759053 0.871954 1.524136 -v -0.682310 0.115094 1.468379 -v -0.682310 0.871954 1.468379 -v -0.594111 0.115094 1.433459 -v -0.594111 0.871954 1.433459 -v -0.500000 0.115094 -0.978430 -v -0.500000 0.871954 -0.978430 -v -0.405888 0.115094 -0.966541 -v -0.405888 0.871954 -0.966541 -v -0.317690 0.115094 -0.931621 -v -0.317690 0.871954 -0.931621 -v -0.240947 0.115094 -0.875864 -v -0.240947 0.871954 -0.875864 -v -0.180481 0.115094 -0.802773 -v -0.180481 0.871954 -0.802773 -v -0.140091 0.115094 -0.716941 -v -0.140091 0.871954 -0.716941 -v -0.122317 0.115094 -0.623762 -v -0.122317 0.871954 -0.623762 -v -0.128273 0.115094 -0.529089 -v -0.128273 0.871954 -0.529089 -v -0.157586 0.115094 -0.438872 -v -0.157586 0.871954 -0.438872 -v -0.208415 0.115094 -0.358779 -v -0.208415 0.871954 -0.358779 -v -0.277564 0.115094 -0.293843 -v -0.277564 0.871954 -0.293843 -v -0.360691 0.115094 -0.248144 -v -0.360691 0.871954 -0.248144 -v -0.452570 0.115094 -0.224554 -v -0.452570 0.871954 -0.224554 -v -0.547430 0.115094 -0.224554 -v -0.547430 0.871954 -0.224554 -v -0.639310 0.115094 -0.248145 -v -0.639310 0.871954 -0.248145 -v -0.722436 0.115094 -0.293844 -v -0.722436 0.871954 -0.293844 -v -0.791586 0.115094 -0.358780 -v -0.791586 0.871954 -0.358780 -v -0.842414 0.115094 -0.438872 -v -0.842414 0.871954 -0.438872 -v -0.871727 0.115094 -0.529089 -v -0.871727 0.871954 -0.529089 -v -0.877683 0.115094 -0.623762 -v -0.877683 0.871954 -0.623762 -v -0.859908 0.115094 -0.716942 -v -0.859908 0.871954 -0.716942 -v -0.819519 0.115094 -0.802773 -v -0.819519 0.871954 -0.802773 -v -0.759053 0.115094 -0.875864 -v -0.759053 0.871954 -0.875864 -v -0.682310 0.115094 -0.931621 -v -0.682310 0.871954 -0.931621 -v -0.594111 0.115094 -0.966541 -v -0.594111 0.871954 -0.966541 -vn 0.0000 1.0000 -0.0000 -vn -1.0000 0.0000 0.0000 -vn 0.0000 0.0000 -1.0000 -vn 1.0000 0.0000 0.0000 -vn 0.0000 0.0000 1.0000 -vn 0.0000 -1.0000 0.0000 -vn 0.0000 -0.6800 -0.7332 -vn 0.0000 0.6800 -0.7332 -vn 0.1823 0.6800 -0.7102 -vn 0.1823 -0.6800 -0.7102 -vn 0.3532 0.6800 -0.6425 -vn 0.3532 -0.6800 -0.6425 -vn 0.5019 0.6800 -0.5345 -vn 0.5019 -0.6800 -0.5345 -vn 0.6191 0.6800 -0.3929 -vn 0.6191 -0.6800 -0.3929 -vn 0.6973 0.6800 -0.2266 -vn 0.6973 -0.6800 -0.2266 -vn 0.7318 0.6800 -0.0460 -vn 0.7318 -0.6800 -0.0460 -vn 0.7202 0.6800 0.1374 -vn 0.7202 -0.6800 0.1374 -vn 0.6634 0.6800 0.3122 -vn 0.6634 -0.6800 0.3122 -vn 0.5650 0.6800 0.4674 -vn 0.5650 -0.6800 0.4674 -vn 0.4310 0.6800 0.5932 -vn 0.4310 -0.6800 0.5932 -vn 0.2699 0.6800 0.6818 -vn 0.2699 -0.6800 0.6818 -vn 0.0919 0.6800 0.7275 -vn 0.0919 -0.6800 0.7275 -vn -0.0919 0.6800 0.7275 -vn -0.0919 -0.6800 0.7275 -vn -0.2699 0.6800 0.6818 -vn -0.2699 -0.6800 0.6818 -vn -0.4310 0.6800 0.5932 -vn -0.4310 -0.6800 0.5932 -vn -0.5650 0.6800 0.4674 -vn -0.5650 -0.6800 0.4674 -vn -0.6634 0.6800 0.3122 -vn -0.6634 -0.6800 0.3122 -vn -0.7202 0.6800 0.1374 -vn -0.7202 -0.6800 0.1374 -vn -0.7318 0.6800 -0.0460 -vn -0.7318 -0.6800 -0.0460 -vn -0.6973 0.6800 -0.2266 -vn -0.6973 -0.6800 -0.2266 -vn -0.6191 0.6800 -0.3929 -vn -0.6191 -0.6800 -0.3929 -vn -0.5019 0.6800 -0.5345 -vn -0.5019 -0.6800 -0.5345 -vn -0.3532 0.6800 -0.6425 -vn -0.3532 -0.6800 -0.6425 -vn -0.1823 -0.6800 -0.7102 -vn -0.1823 0.6800 -0.7102 -usemtl Material.001 -s off -f 4//1 2//1 50//1 48//1 46//1 44//1 42//1 40//1 38//1 36//1 34//1 32//1 30//1 28//1 26//1 24//1 22//1 20//1 18//1 16//1 14//1 12//1 10//1 8//1 6//1 -f 54//1 52//1 100//1 98//1 96//1 94//1 92//1 90//1 88//1 86//1 84//1 82//1 80//1 78//1 76//1 74//1 72//1 70//1 68//1 66//1 64//1 62//1 60//1 58//1 56//1 -f 105//2 106//2 102//2 101//2 -f 106//3 107//3 103//3 102//3 -f 107//4 108//4 104//4 103//4 -f 108//5 105//5 101//5 104//5 -f 101//6 102//6 103//6 104//6 -f 108//1 107//1 106//1 105//1 -f 112//1 110//1 158//1 156//1 154//1 152//1 150//1 148//1 146//1 144//1 142//1 140//1 138//1 136//1 134//1 132//1 130//1 128//1 126//1 124//1 122//1 120//1 118//1 116//1 114//1 -f 162//1 160//1 208//1 206//1 204//1 202//1 200//1 198//1 196//1 194//1 192//1 190//1 188//1 186//1 184//1 182//1 180//1 178//1 176//1 174//1 172//1 170//1 168//1 166//1 164//1 -f 212//1 210//1 258//1 256//1 254//1 252//1 250//1 248//1 246//1 244//1 242//1 240//1 238//1 236//1 234//1 232//1 230//1 228//1 226//1 224//1 222//1 220//1 218//1 216//1 214//1 -f 262//1 260//1 308//1 306//1 304//1 302//1 300//1 298//1 296//1 294//1 292//1 290//1 288//1 286//1 284//1 282//1 280//1 278//1 276//1 274//1 272//1 270//1 268//1 266//1 264//1 -f 312//1 310//1 358//1 356//1 354//1 352//1 350//1 348//1 346//1 344//1 342//1 340//1 338//1 336//1 334//1 332//1 330//1 328//1 326//1 324//1 322//1 320//1 318//1 316//1 314//1 -f 362//1 360//1 408//1 406//1 404//1 402//1 400//1 398//1 396//1 394//1 392//1 390//1 388//1 386//1 384//1 382//1 380//1 378//1 376//1 374//1 372//1 370//1 368//1 366//1 364//1 -s 1 -f 1//7 2//8 4//9 3//10 -f 3//10 4//9 6//11 5//12 -f 5//12 6//11 8//13 7//14 -f 7//14 8//13 10//15 9//16 -f 9//16 10//15 12//17 11//18 -f 11//18 12//17 14//19 13//20 -f 13//20 14//19 16//21 15//22 -f 15//22 16//21 18//23 17//24 -f 17//24 18//23 20//25 19//26 -f 19//26 20//25 22//27 21//28 -f 21//28 22//27 24//29 23//30 -f 23//30 24//29 26//31 25//32 -f 25//32 26//31 28//33 27//34 -f 27//34 28//33 30//35 29//36 -f 29//36 30//35 32//37 31//38 -f 31//38 32//37 34//39 33//40 -f 33//40 34//39 36//41 35//42 -f 35//42 36//41 38//43 37//44 -f 37//44 38//43 40//45 39//46 -f 39//46 40//45 42//47 41//48 -f 41//48 42//47 44//49 43//50 -f 43//50 44//49 46//51 45//52 -f 45//52 46//51 48//53 47//54 -f 49//55 50//56 2//8 1//7 -f 47//54 48//53 50//56 49//55 -f 1//7 3//10 5//12 7//14 9//16 11//18 13//20 15//22 17//24 19//26 21//28 23//30 25//32 27//34 29//36 31//38 33//40 35//42 37//44 39//46 41//48 43//50 45//52 47//54 49//55 -f 51//7 52//8 54//9 53//10 -f 53//10 54//9 56//11 55//12 -f 55//12 56//11 58//13 57//14 -f 57//14 58//13 60//15 59//16 -f 59//16 60//15 62//17 61//18 -f 61//18 62//17 64//19 63//20 -f 63//20 64//19 66//21 65//22 -f 65//22 66//21 68//23 67//24 -f 67//24 68//23 70//25 69//26 -f 69//26 70//25 72//27 71//28 -f 71//28 72//27 74//29 73//30 -f 73//30 74//29 76//31 75//32 -f 75//32 76//31 78//33 77//34 -f 77//34 78//33 80//35 79//36 -f 79//36 80//35 82//37 81//38 -f 81//38 82//37 84//39 83//40 -f 83//40 84//39 86//41 85//42 -f 85//42 86//41 88//43 87//44 -f 87//44 88//43 90//45 89//46 -f 89//46 90//45 92//47 91//48 -f 91//48 92//47 94//49 93//50 -f 93//50 94//49 96//51 95//52 -f 95//52 96//51 98//53 97//54 -f 99//55 100//56 52//8 51//7 -f 97//54 98//53 100//56 99//55 -f 51//7 53//10 55//12 57//14 59//16 61//18 63//20 65//22 67//24 69//26 71//28 73//30 75//32 77//34 79//36 81//38 83//40 85//42 87//44 89//46 91//48 93//50 95//52 97//54 99//55 -f 109//7 110//8 112//9 111//10 -f 111//10 112//9 114//11 113//12 -f 113//12 114//11 116//13 115//14 -f 115//14 116//13 118//15 117//16 -f 117//16 118//15 120//17 119//18 -f 119//18 120//17 122//19 121//20 -f 121//20 122//19 124//21 123//22 -f 123//22 124//21 126//23 125//24 -f 125//24 126//23 128//25 127//26 -f 127//26 128//25 130//27 129//28 -f 129//28 130//27 132//29 131//30 -f 131//30 132//29 134//31 133//32 -f 133//32 134//31 136//33 135//34 -f 135//34 136//33 138//35 137//36 -f 137//36 138//35 140//37 139//38 -f 139//38 140//37 142//39 141//40 -f 141//40 142//39 144//41 143//42 -f 143//42 144//41 146//43 145//44 -f 145//44 146//43 148//45 147//46 -f 147//46 148//45 150//47 149//48 -f 149//48 150//47 152//49 151//50 -f 151//50 152//49 154//51 153//52 -f 153//52 154//51 156//53 155//54 -f 157//55 158//56 110//8 109//7 -f 155//54 156//53 158//56 157//55 -f 109//7 111//10 113//12 115//14 117//16 119//18 121//20 123//22 125//24 127//26 129//28 131//30 133//32 135//34 137//36 139//38 141//40 143//42 145//44 147//46 149//48 151//50 153//52 155//54 157//55 -f 159//7 160//8 162//9 161//10 -f 161//10 162//9 164//11 163//12 -f 163//12 164//11 166//13 165//14 -f 165//14 166//13 168//15 167//16 -f 167//16 168//15 170//17 169//18 -f 169//18 170//17 172//19 171//20 -f 171//20 172//19 174//21 173//22 -f 173//22 174//21 176//23 175//24 -f 175//24 176//23 178//25 177//26 -f 177//26 178//25 180//27 179//28 -f 179//28 180//27 182//29 181//30 -f 181//30 182//29 184//31 183//32 -f 183//32 184//31 186//33 185//34 -f 185//34 186//33 188//35 187//36 -f 187//36 188//35 190//37 189//38 -f 189//38 190//37 192//39 191//40 -f 191//40 192//39 194//41 193//42 -f 193//42 194//41 196//43 195//44 -f 195//44 196//43 198//45 197//46 -f 197//46 198//45 200//47 199//48 -f 199//48 200//47 202//49 201//50 -f 201//50 202//49 204//51 203//52 -f 203//52 204//51 206//53 205//54 -f 207//55 208//56 160//8 159//7 -f 205//54 206//53 208//56 207//55 -f 159//7 161//10 163//12 165//14 167//16 169//18 171//20 173//22 175//24 177//26 179//28 181//30 183//32 185//34 187//36 189//38 191//40 193//42 195//44 197//46 199//48 201//50 203//52 205//54 207//55 -f 209//7 210//8 212//9 211//10 -f 211//10 212//9 214//11 213//12 -f 213//12 214//11 216//13 215//14 -f 215//14 216//13 218//15 217//16 -f 217//16 218//15 220//17 219//18 -f 219//18 220//17 222//19 221//20 -f 221//20 222//19 224//21 223//22 -f 223//22 224//21 226//23 225//24 -f 225//24 226//23 228//25 227//26 -f 227//26 228//25 230//27 229//28 -f 229//28 230//27 232//29 231//30 -f 231//30 232//29 234//31 233//32 -f 233//32 234//31 236//33 235//34 -f 235//34 236//33 238//35 237//36 -f 237//36 238//35 240//37 239//38 -f 239//38 240//37 242//39 241//40 -f 241//40 242//39 244//41 243//42 -f 243//42 244//41 246//43 245//44 -f 245//44 246//43 248//45 247//46 -f 247//46 248//45 250//47 249//48 -f 249//48 250//47 252//49 251//50 -f 251//50 252//49 254//51 253//52 -f 253//52 254//51 256//53 255//54 -f 257//55 258//56 210//8 209//7 -f 255//54 256//53 258//56 257//55 -f 209//7 211//10 213//12 215//14 217//16 219//18 221//20 223//22 225//24 227//26 229//28 231//30 233//32 235//34 237//36 239//38 241//40 243//42 245//44 247//46 249//48 251//50 253//52 255//54 257//55 -f 259//7 260//8 262//9 261//10 -f 261//10 262//9 264//11 263//12 -f 263//12 264//11 266//13 265//14 -f 265//14 266//13 268//15 267//16 -f 267//16 268//15 270//17 269//18 -f 269//18 270//17 272//19 271//20 -f 271//20 272//19 274//21 273//22 -f 273//22 274//21 276//23 275//24 -f 275//24 276//23 278//25 277//26 -f 277//26 278//25 280//27 279//28 -f 279//28 280//27 282//29 281//30 -f 281//30 282//29 284//31 283//32 -f 283//32 284//31 286//33 285//34 -f 285//34 286//33 288//35 287//36 -f 287//36 288//35 290//37 289//38 -f 289//38 290//37 292//39 291//40 -f 291//40 292//39 294//41 293//42 -f 293//42 294//41 296//43 295//44 -f 295//44 296//43 298//45 297//46 -f 297//46 298//45 300//47 299//48 -f 299//48 300//47 302//49 301//50 -f 301//50 302//49 304//51 303//52 -f 303//52 304//51 306//53 305//54 -f 307//55 308//56 260//8 259//7 -f 305//54 306//53 308//56 307//55 -f 259//7 261//10 263//12 265//14 267//16 269//18 271//20 273//22 275//24 277//26 279//28 281//30 283//32 285//34 287//36 289//38 291//40 293//42 295//44 297//46 299//48 301//50 303//52 305//54 307//55 -f 309//7 310//8 312//9 311//10 -f 311//10 312//9 314//11 313//12 -f 313//12 314//11 316//13 315//14 -f 315//14 316//13 318//15 317//16 -f 317//16 318//15 320//17 319//18 -f 319//18 320//17 322//19 321//20 -f 321//20 322//19 324//21 323//22 -f 323//22 324//21 326//23 325//24 -f 325//24 326//23 328//25 327//26 -f 327//26 328//25 330//27 329//28 -f 329//28 330//27 332//29 331//30 -f 331//30 332//29 334//31 333//32 -f 333//32 334//31 336//33 335//34 -f 335//34 336//33 338//35 337//36 -f 337//36 338//35 340//37 339//38 -f 339//38 340//37 342//39 341//40 -f 341//40 342//39 344//41 343//42 -f 343//42 344//41 346//43 345//44 -f 345//44 346//43 348//45 347//46 -f 347//46 348//45 350//47 349//48 -f 349//48 350//47 352//49 351//50 -f 351//50 352//49 354//51 353//52 -f 353//52 354//51 356//53 355//54 -f 357//55 358//56 310//8 309//7 -f 355//54 356//53 358//56 357//55 -f 309//7 311//10 313//12 315//14 317//16 319//18 321//20 323//22 325//24 327//26 329//28 331//30 333//32 335//34 337//36 339//38 341//40 343//42 345//44 347//46 349//48 351//50 353//52 355//54 357//55 -f 359//7 360//8 362//9 361//10 -f 361//10 362//9 364//11 363//12 -f 363//12 364//11 366//13 365//14 -f 365//14 366//13 368//15 367//16 -f 367//16 368//15 370//17 369//18 -f 369//18 370//17 372//19 371//20 -f 371//20 372//19 374//21 373//22 -f 373//22 374//21 376//23 375//24 -f 375//24 376//23 378//25 377//26 -f 377//26 378//25 380//27 379//28 -f 379//28 380//27 382//29 381//30 -f 381//30 382//29 384//31 383//32 -f 383//32 384//31 386//33 385//34 -f 385//34 386//33 388//35 387//36 -f 387//36 388//35 390//37 389//38 -f 389//38 390//37 392//39 391//40 -f 391//40 392//39 394//41 393//42 -f 393//42 394//41 396//43 395//44 -f 395//44 396//43 398//45 397//46 -f 397//46 398//45 400//47 399//48 -f 399//48 400//47 402//49 401//50 -f 401//50 402//49 404//51 403//52 -f 403//52 404//51 406//53 405//54 -f 407//55 408//56 360//8 359//7 -f 405//54 406//53 408//56 407//55 -f 359//7 361//10 363//12 365//14 367//16 369//18 371//20 373//22 375//24 377//26 379//28 381//30 383//32 385//34 387//36 389//38 391//40 393//42 395//44 397//46 399//48 401//50 403//52 405//54 407//55 diff --git a/docsite/static/img/models/mlcs.obj b/docsite/static/img/models/mlcs.obj deleted file mode 100644 index a1d647df..00000000 --- a/docsite/static/img/models/mlcs.obj +++ /dev/null @@ -1,465 +0,0 @@ -# MagicaVoxel @ Ephtracy - -# group -g mlcs - -# material -mtllib mlcs.mtl -usemtl palette - -# normals -vn -1 0 0 -vn 1 0 0 -vn 0 0 1 -vn 0 0 -1 -vn 0 -1 0 -vn 0 1 0 - -# texcoords -vt 0.306641 0.5 - -# verts -v -3.5 0 3.5 -v -3.5 0 2.5 -v -3.5 0 0.5 -v -3.5 0 -3.5 -v -3.5 1 0.5 -v -3.5 1 -2.5 -v -3.5 3 2.5 -v -3.5 3 -0.5 -v -3.5 4 3.5 -v -3.5 4 0.5 -v -3.5 4 -2.5 -v -3.5 4 -3.5 -v -3.5 6 -0.5 -v -3.5 6 -3.5 -v -3.5 7 0.5 -v -3.5 7 -3.5 -v -1.5 2 3.5 -v -1.5 2 2.5 -v -1.5 2 -2.5 -v -1.5 2 -3.5 -v -1.5 3 2.5 -v -1.5 3 -0.5 -v -1.5 4 3.5 -v -1.5 4 0.5 -v -1.5 4 -2.5 -v -1.5 4 -3.5 -v -1.5 5 0.5 -v -1.5 5 -0.5 -v 0.5 0 3.5 -v 0.5 0 2.5 -v 0.5 0 0.5 -v 0.5 0 -3.5 -v 0.5 1 3.5 -v 0.5 1 2.5 -v 0.5 1 0.5 -v 0.5 1 -3.5 -v 2.5 1 -2.5 -v 2.5 1 -3.5 -v 2.5 2 -2.5 -v 2.5 2 -3.5 -v -2.5 1 3.5 -v -2.5 1 2.5 -v -2.5 1 -2.5 -v -2.5 1 -3.5 -v -2.5 3 2.5 -v -2.5 3 -0.5 -v -2.5 4 3.5 -v -2.5 4 0.5 -v -2.5 4 -2.5 -v -2.5 4 -3.5 -v -2.5 6 0.5 -v -2.5 6 -0.5 -v -0.5 0 3.5 -v -0.5 0 2.5 -v -0.5 0 0.5 -v -0.5 0 -3.5 -v -0.5 1 3.5 -v -0.5 1 2.5 -v -0.5 1 0.5 -v -0.5 1 -3.5 -v -0.5 3 3.5 -v -0.5 3 2.5 -v -0.5 3 -0.5 -v -0.5 3 -2.5 -v -0.5 3 -3.5 -v -0.5 4 3.5 -v -0.5 4 0.5 -v -0.5 4 -0.5 -v -0.5 4 -2.5 -v -0.5 4 -3.5 -v 3.5 0 3.5 -v 3.5 0 2.5 -v 3.5 0 0.5 -v 3.5 0 -3.5 -v 3.5 1 3.5 -v 3.5 1 2.5 -v 3.5 1 0.5 -v 3.5 1 -2.5 -v 3.5 2 3.5 -v 3.5 2 2.5 -v 3.5 3 3.5 -v 3.5 3 2.5 -v 3.5 3 -2.5 -v 3.5 3 -3.5 -v 3.5 4 0.5 -v 3.5 4 -0.5 -v 3.5 5 0.5 -v 3.5 5 -0.5 -v 3.5 6 0.5 -v 3.5 6 -3.5 -v 3.5 7 0.5 -v 3.5 7 -3.5 -v -3.5 0 3.5 -v -3.5 4 3.5 -v -2.5 1 3.5 -v -2.5 4 3.5 -v -1.5 2 3.5 -v -1.5 4 3.5 -v -0.5 0 3.5 -v -0.5 1 3.5 -v -0.5 3 3.5 -v -0.5 4 3.5 -v 0.5 0 3.5 -v 0.5 1 3.5 -v 3.5 0 3.5 -v 3.5 1 3.5 -v 3.5 2 3.5 -v 3.5 3 3.5 -v -3.5 0 0.5 -v -3.5 1 0.5 -v -3.5 4 0.5 -v -3.5 7 0.5 -v -2.5 4 0.5 -v -2.5 6 0.5 -v -1.5 4 0.5 -v -1.5 5 0.5 -v -0.5 0 0.5 -v -0.5 1 0.5 -v -0.5 4 0.5 -v 0.5 0 0.5 -v 0.5 1 0.5 -v 3.5 0 0.5 -v 3.5 1 0.5 -v 3.5 4 0.5 -v 3.5 5 0.5 -v 3.5 6 0.5 -v 3.5 7 0.5 -v -3.5 1 -2.5 -v -3.5 4 -2.5 -v -2.5 1 -2.5 -v -2.5 4 -2.5 -v -1.5 2 -2.5 -v -1.5 4 -2.5 -v -0.5 3 -2.5 -v -0.5 4 -2.5 -v 2.5 1 -2.5 -v 2.5 2 -2.5 -v 3.5 1 -2.5 -v 3.5 3 -2.5 -v -3.5 0 2.5 -v -3.5 3 2.5 -v -2.5 1 2.5 -v -2.5 3 2.5 -v -1.5 2 2.5 -v -1.5 3 2.5 -v -0.5 0 2.5 -v -0.5 1 2.5 -v -0.5 3 2.5 -v 0.5 0 2.5 -v 0.5 1 2.5 -v 3.5 0 2.5 -v 3.5 1 2.5 -v 3.5 2 2.5 -v 3.5 3 2.5 -v -3.5 3 -0.5 -v -3.5 6 -0.5 -v -2.5 3 -0.5 -v -2.5 6 -0.5 -v -1.5 3 -0.5 -v -1.5 5 -0.5 -v -0.5 3 -0.5 -v -0.5 4 -0.5 -v 3.5 4 -0.5 -v 3.5 5 -0.5 -v -3.5 0 -3.5 -v -3.5 4 -3.5 -v -3.5 6 -3.5 -v -3.5 7 -3.5 -v -2.5 1 -3.5 -v -2.5 4 -3.5 -v -1.5 2 -3.5 -v -1.5 4 -3.5 -v -0.5 0 -3.5 -v -0.5 1 -3.5 -v -0.5 3 -3.5 -v -0.5 4 -3.5 -v 0.5 0 -3.5 -v 0.5 1 -3.5 -v 2.5 1 -3.5 -v 2.5 2 -3.5 -v 3.5 0 -3.5 -v 3.5 3 -3.5 -v 3.5 6 -3.5 -v 3.5 7 -3.5 -v -3.5 0 3.5 -v -0.5 0 3.5 -v 0.5 0 3.5 -v 3.5 0 3.5 -v -3.5 0 2.5 -v -0.5 0 2.5 -v 0.5 0 2.5 -v 3.5 0 2.5 -v -3.5 0 0.5 -v -0.5 0 0.5 -v 0.5 0 0.5 -v 3.5 0 0.5 -v -3.5 0 -3.5 -v -0.5 0 -3.5 -v 0.5 0 -3.5 -v 3.5 0 -3.5 -v -1.5 2 3.5 -v 3.5 2 3.5 -v -1.5 2 2.5 -v 3.5 2 2.5 -v -1.5 2 -2.5 -v 2.5 2 -2.5 -v -1.5 2 -3.5 -v 2.5 2 -3.5 -v -3.5 3 2.5 -v -2.5 3 2.5 -v -1.5 3 2.5 -v -0.5 3 2.5 -v -3.5 3 -0.5 -v -2.5 3 -0.5 -v -1.5 3 -0.5 -v -0.5 3 -0.5 -v -0.5 4 0.5 -v 3.5 4 0.5 -v -0.5 4 -0.5 -v 3.5 4 -0.5 -v -2.5 6 0.5 -v 3.5 6 0.5 -v -3.5 6 -0.5 -v -2.5 6 -0.5 -v -3.5 6 -3.5 -v 3.5 6 -3.5 -v -2.5 1 3.5 -v -0.5 1 3.5 -v 0.5 1 3.5 -v 3.5 1 3.5 -v -2.5 1 2.5 -v -0.5 1 2.5 -v 0.5 1 2.5 -v 3.5 1 2.5 -v -3.5 1 0.5 -v -0.5 1 0.5 -v 0.5 1 0.5 -v 3.5 1 0.5 -v -3.5 1 -2.5 -v -2.5 1 -2.5 -v 2.5 1 -2.5 -v 3.5 1 -2.5 -v -2.5 1 -3.5 -v -0.5 1 -3.5 -v 0.5 1 -3.5 -v 2.5 1 -3.5 -v -0.5 3 3.5 -v 3.5 3 3.5 -v -0.5 3 2.5 -v 3.5 3 2.5 -v -0.5 3 -2.5 -v 3.5 3 -2.5 -v -0.5 3 -3.5 -v 3.5 3 -3.5 -v -3.5 4 3.5 -v -2.5 4 3.5 -v -1.5 4 3.5 -v -0.5 4 3.5 -v -3.5 4 0.5 -v -2.5 4 0.5 -v -1.5 4 0.5 -v -0.5 4 0.5 -v -3.5 4 -2.5 -v -2.5 4 -2.5 -v -1.5 4 -2.5 -v -0.5 4 -2.5 -v -3.5 4 -3.5 -v -2.5 4 -3.5 -v -1.5 4 -3.5 -v -0.5 4 -3.5 -v -1.5 5 0.5 -v 3.5 5 0.5 -v -1.5 5 -0.5 -v 3.5 5 -0.5 -v -3.5 7 0.5 -v 3.5 7 0.5 -v -3.5 7 -3.5 -v 3.5 7 -3.5 - -# faces -f 5/1/1 4/1/1 3/1/1 -f 6/1/1 4/1/1 5/1/1 -f 7/1/1 2/1/1 1/1/1 -f 9/1/1 7/1/1 1/1/1 -f 9/1/1 8/1/1 7/1/1 -f 10/1/1 8/1/1 9/1/1 -f 11/1/1 4/1/1 6/1/1 -f 12/1/1 4/1/1 11/1/1 -f 13/1/1 8/1/1 10/1/1 -f 15/1/1 13/1/1 10/1/1 -f 15/1/1 14/1/1 13/1/1 -f 16/1/1 14/1/1 15/1/1 -f 21/1/1 18/1/1 17/1/1 -f 23/1/1 21/1/1 17/1/1 -f 23/1/1 22/1/1 21/1/1 -f 24/1/1 22/1/1 23/1/1 -f 25/1/1 20/1/1 19/1/1 -f 26/1/1 20/1/1 25/1/1 -f 27/1/1 22/1/1 24/1/1 -f 28/1/1 22/1/1 27/1/1 -f 33/1/1 30/1/1 29/1/1 -f 34/1/1 30/1/1 33/1/1 -f 35/1/1 32/1/1 31/1/1 -f 36/1/1 32/1/1 35/1/1 -f 39/1/1 38/1/1 37/1/1 -f 40/1/1 38/1/1 39/1/1 -f 41/1/2 42/1/2 45/1/2 -f 41/1/2 45/1/2 47/1/2 -f 45/1/2 46/1/2 47/1/2 -f 47/1/2 46/1/2 48/1/2 -f 43/1/2 44/1/2 49/1/2 -f 49/1/2 44/1/2 50/1/2 -f 48/1/2 46/1/2 51/1/2 -f 51/1/2 46/1/2 52/1/2 -f 53/1/2 54/1/2 57/1/2 -f 57/1/2 54/1/2 58/1/2 -f 55/1/2 56/1/2 59/1/2 -f 59/1/2 56/1/2 60/1/2 -f 61/1/2 62/1/2 66/1/2 -f 62/1/2 63/1/2 66/1/2 -f 66/1/2 63/1/2 67/1/2 -f 67/1/2 63/1/2 68/1/2 -f 64/1/2 65/1/2 69/1/2 -f 69/1/2 65/1/2 70/1/2 -f 71/1/2 72/1/2 75/1/2 -f 75/1/2 72/1/2 76/1/2 -f 73/1/2 74/1/2 77/1/2 -f 77/1/2 74/1/2 78/1/2 -f 79/1/2 80/1/2 81/1/2 -f 81/1/2 80/1/2 82/1/2 -f 78/1/2 74/1/2 83/1/2 -f 83/1/2 74/1/2 84/1/2 -f 85/1/2 86/1/2 87/1/2 -f 87/1/2 86/1/2 88/1/2 -f 89/1/2 90/1/2 91/1/2 -f 91/1/2 90/1/2 92/1/2 -f 95/1/3 94/1/3 93/1/3 -f 96/1/3 94/1/3 95/1/3 -f 99/1/3 95/1/3 93/1/3 -f 100/1/3 95/1/3 99/1/3 -f 101/1/3 98/1/3 97/1/3 -f 102/1/3 98/1/3 101/1/3 -f 105/1/3 104/1/3 103/1/3 -f 106/1/3 104/1/3 105/1/3 -f 107/1/3 101/1/3 97/1/3 -f 108/1/3 101/1/3 107/1/3 -f 113/1/3 112/1/3 111/1/3 -f 114/1/3 112/1/3 113/1/3 -f 117/1/3 110/1/3 109/1/3 -f 118/1/3 110/1/3 117/1/3 -f 119/1/3 116/1/3 115/1/3 -f 122/1/3 121/1/3 120/1/3 -f 123/1/3 121/1/3 122/1/3 -f 124/1/3 116/1/3 119/1/3 -f 125/1/3 116/1/3 124/1/3 -f 126/1/3 112/1/3 114/1/3 -f 127/1/3 112/1/3 126/1/3 -f 130/1/3 129/1/3 128/1/3 -f 131/1/3 129/1/3 130/1/3 -f 134/1/3 133/1/3 132/1/3 -f 135/1/3 133/1/3 134/1/3 -f 137/1/3 134/1/3 132/1/3 -f 138/1/3 137/1/3 136/1/3 -f 139/1/3 134/1/3 137/1/3 -f 139/1/3 137/1/3 138/1/3 -f 140/1/4 141/1/4 142/1/4 -f 142/1/4 141/1/4 143/1/4 -f 140/1/4 142/1/4 146/1/4 -f 146/1/4 142/1/4 147/1/4 -f 144/1/4 145/1/4 148/1/4 -f 149/1/4 150/1/4 151/1/4 -f 151/1/4 150/1/4 152/1/4 -f 144/1/4 148/1/4 153/1/4 -f 153/1/4 148/1/4 154/1/4 -f 155/1/4 156/1/4 157/1/4 -f 157/1/4 156/1/4 158/1/4 -f 159/1/4 160/1/4 161/1/4 -f 161/1/4 160/1/4 162/1/4 -f 162/1/4 160/1/4 163/1/4 -f 163/1/4 160/1/4 164/1/4 -f 165/1/4 166/1/4 169/1/4 -f 169/1/4 166/1/4 170/1/4 -f 165/1/4 169/1/4 173/1/4 -f 173/1/4 169/1/4 174/1/4 -f 171/1/4 172/1/4 175/1/4 -f 175/1/4 172/1/4 176/1/4 -f 177/1/4 178/1/4 179/1/4 -f 171/1/4 175/1/4 180/1/4 -f 177/1/4 179/1/4 181/1/4 -f 179/1/4 180/1/4 181/1/4 -f 180/1/4 175/1/4 182/1/4 -f 181/1/4 180/1/4 182/1/4 -f 167/1/4 168/1/4 183/1/4 -f 183/1/4 168/1/4 184/1/4 -f 189/1/5 186/1/5 185/1/5 -f 190/1/5 186/1/5 189/1/5 -f 191/1/5 188/1/5 187/1/5 -f 192/1/5 188/1/5 191/1/5 -f 197/1/5 194/1/5 193/1/5 -f 198/1/5 194/1/5 197/1/5 -f 199/1/5 196/1/5 195/1/5 -f 200/1/5 196/1/5 199/1/5 -f 203/1/5 202/1/5 201/1/5 -f 204/1/5 202/1/5 203/1/5 -f 207/1/5 206/1/5 205/1/5 -f 208/1/5 206/1/5 207/1/5 -f 213/1/5 210/1/5 209/1/5 -f 214/1/5 210/1/5 213/1/5 -f 215/1/5 212/1/5 211/1/5 -f 216/1/5 212/1/5 215/1/5 -f 219/1/5 218/1/5 217/1/5 -f 220/1/5 218/1/5 219/1/5 -f 224/1/5 222/1/5 221/1/5 -f 225/1/5 224/1/5 223/1/5 -f 226/1/5 222/1/5 224/1/5 -f 226/1/5 224/1/5 225/1/5 -f 227/1/6 228/1/6 231/1/6 -f 231/1/6 228/1/6 232/1/6 -f 229/1/6 230/1/6 233/1/6 -f 233/1/6 230/1/6 234/1/6 -f 235/1/6 236/1/6 239/1/6 -f 239/1/6 236/1/6 240/1/6 -f 237/1/6 238/1/6 241/1/6 -f 241/1/6 238/1/6 242/1/6 -f 240/1/6 236/1/6 243/1/6 -f 243/1/6 236/1/6 244/1/6 -f 237/1/6 241/1/6 245/1/6 -f 245/1/6 241/1/6 246/1/6 -f 247/1/6 248/1/6 249/1/6 -f 249/1/6 248/1/6 250/1/6 -f 251/1/6 252/1/6 253/1/6 -f 253/1/6 252/1/6 254/1/6 -f 255/1/6 256/1/6 259/1/6 -f 259/1/6 256/1/6 260/1/6 -f 257/1/6 258/1/6 261/1/6 -f 261/1/6 258/1/6 262/1/6 -f 263/1/6 264/1/6 267/1/6 -f 267/1/6 264/1/6 268/1/6 -f 265/1/6 266/1/6 269/1/6 -f 269/1/6 266/1/6 270/1/6 -f 271/1/6 272/1/6 273/1/6 -f 273/1/6 272/1/6 274/1/6 -f 275/1/6 276/1/6 277/1/6 -f 277/1/6 276/1/6 278/1/6 diff --git a/docsite/static/models/lego.mtl b/docsite/static/models/lego.mtl deleted file mode 100644 index 48c4c51d..00000000 --- a/docsite/static/models/lego.mtl +++ /dev/null @@ -1,12 +0,0 @@ -# Blender MTL File: 'None' -# Material Count: 1 - -newmtl Material.001 -Ns 225.000000 -Ka 1.000000 1.000000 1.000000 -Kd 0.800000 0.800000 0.800000 -Ks 0.500000 0.500000 0.500000 -Ke 0.000000 0.000000 0.000000 -Ni 1.450000 -d 1.000000 -illum 2 diff --git a/docsite/static/models/lego.obj b/docsite/static/models/lego.obj deleted file mode 100644 index a38df4a2..00000000 --- a/docsite/static/models/lego.obj +++ /dev/null @@ -1,721 +0,0 @@ -# Blender v2.83 (sub 11) OBJ File: '' -# www.blender.org -mtllib lego.mtl -o Cylinder.007_Cylinder.013 -v -0.811776 1.743909 -4.333082 -v -1.000000 1.743909 -4.356860 -v -1.188222 1.743909 -4.333082 -v -1.364620 1.743909 -4.263241 -v -1.518106 1.743909 -4.151728 -v -1.639038 1.743909 -4.005546 -v -1.719816 1.743909 -3.833884 -v -1.755366 1.743909 -3.647524 -v -1.743454 1.743909 -3.458178 -v -1.684828 1.743909 -3.277746 -v -1.583172 1.743909 -3.117560 -v -1.444872 1.743909 -2.987688 -v -1.278620 1.743909 -2.896290 -v -1.094860 1.743909 -2.849108 -v -0.905140 1.743909 -2.849108 -v -0.721382 1.743909 -2.896288 -v -0.555128 1.743909 -2.987686 -v -0.416830 1.743909 -3.117558 -v -0.315172 1.743909 -3.277744 -v -0.256546 1.743909 -3.458178 -v -0.244634 1.743909 -3.647524 -v -0.280182 1.743909 -3.833882 -v -0.360962 1.743909 -4.005546 -v -0.481894 1.743909 -4.151728 -v -0.635380 1.743909 -4.263241 -v 1.188224 1.743909 -4.333082 -v 1.000000 1.743909 -4.356860 -v 0.811778 1.743909 -4.333082 -v 0.635380 1.743909 -4.263241 -v 0.481894 1.743909 -4.151728 -v 0.360962 1.743909 -4.005546 -v 0.280184 1.743909 -3.833884 -v 0.244634 1.743909 -3.647524 -v 0.256546 1.743909 -3.458178 -v 0.315172 1.743909 -3.277746 -v 0.416828 1.743909 -3.117560 -v 0.555128 1.743909 -2.987688 -v 0.721380 1.743909 -2.896290 -v 0.905140 1.743909 -2.849108 -v 1.094860 1.743909 -2.849108 -v 1.278618 1.743909 -2.896288 -v 1.444872 1.743909 -2.987686 -v 1.583170 1.743909 -3.117558 -v 1.684828 1.743909 -3.277744 -v 1.743454 1.743909 -3.458178 -v 1.755368 1.743909 -3.647524 -v 1.719818 1.743909 -3.833882 -v 1.639038 1.743909 -4.005546 -v 1.518106 1.743909 -4.151728 -v 1.364620 1.743909 -4.263241 -v -2.000000 1.166239 4.515644 -v -2.000000 1.166241 -4.515644 -v -2.000000 -1.166239 -4.515644 -v -2.000000 -1.166241 4.515644 -v 2.000000 1.166241 -4.515644 -v 2.000000 -1.166239 -4.515644 -v 2.000000 1.166239 4.515644 -v 2.000000 -1.166241 4.515644 -v 1.188224 1.743908 2.866918 -v 1.000000 1.743908 2.843140 -v 0.811778 1.743908 2.866918 -v 0.635380 1.743908 2.936758 -v 0.481894 1.743908 3.048272 -v 0.360962 1.743908 3.194454 -v 0.280184 1.743907 3.366116 -v 0.244634 1.743907 3.552476 -v 0.256546 1.743907 3.741822 -v 0.315172 1.743907 3.922256 -v 0.416828 1.743907 4.082440 -v 0.555128 1.743907 4.212313 -v 0.721380 1.743907 4.303710 -v 0.905140 1.743907 4.350893 -v 1.094860 1.743907 4.350893 -v 1.278618 1.743907 4.303710 -v 1.444872 1.743907 4.212315 -v 1.583170 1.743907 4.082442 -v 1.684828 1.743907 3.922256 -v 1.743454 1.743907 3.741822 -v 1.755366 1.743907 3.552476 -v 1.719818 1.743907 3.366118 -v 1.639038 1.743908 3.194454 -v 1.518106 1.743908 3.048272 -v 1.364620 1.743908 2.936758 -v 1.188224 1.743908 -1.933082 -v 1.000000 1.743908 -1.956860 -v 0.811778 1.743908 -1.933082 -v 0.635380 1.743908 -1.863242 -v 0.481894 1.743908 -1.751728 -v 0.360962 1.743908 -1.605546 -v 0.280184 1.743908 -1.433884 -v 0.244634 1.743908 -1.247524 -v 0.256546 1.743908 -1.058178 -v 0.315172 1.743908 -0.877744 -v 0.416828 1.743908 -0.717560 -v 0.555128 1.743908 -0.587688 -v 0.721380 1.743908 -0.496290 -v 0.905140 1.743908 -0.449108 -v 1.094860 1.743908 -0.449108 -v 1.278618 1.743908 -0.496288 -v 1.444872 1.743908 -0.587686 -v 1.583170 1.743908 -0.717558 -v 1.684828 1.743908 -0.877744 -v 1.743454 1.743908 -1.058178 -v 1.755368 1.743908 -1.247524 -v 1.719818 1.743908 -1.433882 -v 1.639038 1.743908 -1.605546 -v 1.518106 1.743908 -1.751728 -v 1.364620 1.743908 -1.863242 -v 1.188224 1.743908 0.466918 -v 1.000000 1.743908 0.443140 -v 0.811778 1.743908 0.466918 -v 0.635380 1.743908 0.536758 -v 0.481894 1.743908 0.648272 -v 0.360962 1.743908 0.794454 -v 0.280184 1.743908 0.966116 -v 0.244634 1.743908 1.152476 -v 0.256546 1.743908 1.341820 -v 0.315172 1.743908 1.522254 -v 0.416828 1.743908 1.682440 -v 0.555128 1.743908 1.812312 -v 0.721380 1.743908 1.903710 -v 0.905140 1.743908 1.950892 -v 1.094860 1.743908 1.950892 -v 1.278618 1.743908 1.903712 -v 1.444872 1.743908 1.812314 -v 1.583170 1.743908 1.682440 -v 1.684828 1.743908 1.522256 -v 1.743454 1.743908 1.341822 -v 1.755368 1.743908 1.152476 -v 1.719818 1.743908 0.966116 -v 1.639038 1.743908 0.794454 -v 1.518106 1.743908 0.648272 -v 1.364620 1.743908 0.536758 -v -0.811776 1.743908 0.466918 -v -1.000000 1.743908 0.443140 -v -1.188222 1.743908 0.466918 -v -1.364620 1.743908 0.536758 -v -1.518106 1.743908 0.648272 -v -1.639038 1.743908 0.794454 -v -1.719816 1.743908 0.966116 -v -1.755366 1.743908 1.152476 -v -1.743454 1.743908 1.341820 -v -1.684828 1.743908 1.522254 -v -1.583172 1.743908 1.682440 -v -1.444872 1.743908 1.812312 -v -1.278620 1.743908 1.903710 -v -1.094860 1.743908 1.950892 -v -0.905140 1.743908 1.950892 -v -0.721382 1.743908 1.903712 -v -0.555128 1.743908 1.812314 -v -0.416830 1.743908 1.682440 -v -0.315172 1.743908 1.522256 -v -0.256546 1.743908 1.341822 -v -0.244634 1.743908 1.152476 -v -0.280182 1.743908 0.966116 -v -0.360962 1.743908 0.794454 -v -0.481894 1.743908 0.648272 -v -0.635380 1.743908 0.536758 -v -0.811776 1.743908 2.866918 -v -1.000000 1.743908 2.843140 -v -1.188222 1.743908 2.866918 -v -1.364620 1.743908 2.936758 -v -1.518106 1.743908 3.048272 -v -1.639038 1.743908 3.194454 -v -1.719816 1.743907 3.366116 -v -1.755366 1.743907 3.552476 -v -1.743454 1.743907 3.741822 -v -1.684828 1.743907 3.922256 -v -1.583172 1.743907 4.082440 -v -1.444872 1.743907 4.212313 -v -1.278620 1.743907 4.303710 -v -1.094860 1.743907 4.350893 -v -0.905140 1.743907 4.350893 -v -0.721382 1.743907 4.303710 -v -0.555128 1.743907 4.212315 -v -0.416830 1.743907 4.082442 -v -0.315172 1.743907 3.922256 -v -0.256546 1.743907 3.741822 -v -0.244634 1.743907 3.552476 -v -0.280182 1.743907 3.366118 -v -0.360962 1.743908 3.194454 -v -0.481894 1.743908 3.048272 -v -0.635380 1.743908 2.936758 -v -0.811776 1.743908 -1.933082 -v -1.000000 1.743908 -1.956860 -v -1.188222 1.743908 -1.933082 -v -1.364620 1.743908 -1.863242 -v -1.518106 1.743908 -1.751728 -v -1.639038 1.743908 -1.605546 -v -1.719816 1.743908 -1.433884 -v -1.755366 1.743908 -1.247524 -v -1.743454 1.743908 -1.058178 -v -1.684828 1.743908 -0.877744 -v -1.583172 1.743908 -0.717560 -v -1.444872 1.743908 -0.587688 -v -1.278620 1.743908 -0.496290 -v -1.094860 1.743908 -0.449108 -v -0.905140 1.743908 -0.449108 -v -0.721382 1.743908 -0.496288 -v -0.555128 1.743908 -0.587686 -v -0.416830 1.743908 -0.717558 -v -0.315172 1.743908 -0.877744 -v -0.256546 1.743908 -1.058178 -v -0.244634 1.743908 -1.247524 -v -0.280182 1.743908 -1.433882 -v -0.360962 1.743908 -1.605546 -v -0.481894 1.743908 -1.751728 -v -0.635380 1.743908 -1.863242 -v -1.000000 0.230189 -4.356860 -v -0.811776 0.230189 -4.333082 -v -0.635380 0.230189 -4.263242 -v -0.481894 0.230189 -4.151728 -v -0.360962 0.230189 -4.005546 -v -0.280182 0.230189 -3.833882 -v -0.244634 0.230189 -3.647524 -v -0.256546 0.230189 -3.458178 -v -0.315172 0.230189 -3.277744 -v -0.416830 0.230189 -3.117558 -v -0.555128 0.230188 -2.987686 -v -0.721382 0.230188 -2.896288 -v -0.905140 0.230188 -2.849108 -v -1.094860 0.230188 -2.849108 -v -1.278620 0.230188 -2.896290 -v -1.444872 0.230188 -2.987688 -v -1.583172 0.230189 -3.117560 -v -1.684828 0.230189 -3.277746 -v -1.743454 0.230189 -3.458178 -v -1.755366 0.230189 -3.647524 -v -1.719816 0.230189 -3.833884 -v -1.639038 0.230189 -4.005546 -v -1.518106 0.230189 -4.151728 -v -1.364620 0.230189 -4.263242 -v -1.188222 0.230189 -4.333082 -v 1.000000 0.230189 -4.356860 -v 1.188224 0.230189 -4.333082 -v 1.364620 0.230189 -4.263242 -v 1.518106 0.230189 -4.151728 -v 1.639038 0.230189 -4.005546 -v 1.719818 0.230189 -3.833882 -v 1.755368 0.230189 -3.647524 -v 1.743454 0.230189 -3.458178 -v 1.684828 0.230189 -3.277744 -v 1.583170 0.230189 -3.117558 -v 1.444872 0.230188 -2.987686 -v 1.278618 0.230188 -2.896288 -v 1.094860 0.230188 -2.849108 -v 0.905140 0.230188 -2.849108 -v 0.721380 0.230188 -2.896290 -v 0.555128 0.230188 -2.987688 -v 0.416828 0.230189 -3.117560 -v 0.315172 0.230189 -3.277746 -v 0.256546 0.230189 -3.458178 -v 0.244634 0.230189 -3.647524 -v 0.280184 0.230189 -3.833884 -v 0.360962 0.230189 -4.005546 -v 0.481894 0.230189 -4.151728 -v 0.635380 0.230189 -4.263242 -v 0.811778 0.230189 -4.333082 -v 1.000000 0.230188 2.843140 -v 1.188224 0.230188 2.866918 -v 1.364620 0.230188 2.936758 -v 1.518106 0.230188 3.048272 -v 1.639038 0.230187 3.194454 -v 1.719818 0.230187 3.366118 -v 1.755366 0.230187 3.552476 -v 1.743454 0.230187 3.741822 -v 1.684828 0.230187 3.922256 -v 1.583170 0.230187 4.082442 -v 1.444872 0.230187 4.212314 -v 1.278618 0.230187 4.303710 -v 1.094860 0.230187 4.350892 -v 0.905140 0.230187 4.350892 -v 0.721380 0.230187 4.303710 -v 0.555128 0.230187 4.212312 -v 0.416828 0.230187 4.082440 -v 0.315172 0.230187 3.922256 -v 0.256546 0.230187 3.741822 -v 0.244634 0.230187 3.552476 -v 0.280184 0.230187 3.366116 -v 0.360962 0.230187 3.194454 -v 0.481894 0.230188 3.048272 -v 0.635380 0.230188 2.936758 -v 0.811778 0.230188 2.866918 -v 1.000000 0.230188 -1.956860 -v 1.188224 0.230188 -1.933082 -v 1.364620 0.230188 -1.863242 -v 1.518106 0.230188 -1.751728 -v 1.639038 0.230188 -1.605546 -v 1.719818 0.230188 -1.433882 -v 1.755368 0.230188 -1.247524 -v 1.743454 0.230188 -1.058178 -v 1.684828 0.230188 -0.877744 -v 1.583170 0.230188 -0.717558 -v 1.444872 0.230188 -0.587686 -v 1.278618 0.230188 -0.496288 -v 1.094860 0.230188 -0.449108 -v 0.905140 0.230188 -0.449108 -v 0.721380 0.230188 -0.496290 -v 0.555128 0.230188 -0.587688 -v 0.416828 0.230188 -0.717560 -v 0.315172 0.230188 -0.877744 -v 0.256546 0.230188 -1.058178 -v 0.244634 0.230188 -1.247524 -v 0.280184 0.230188 -1.433884 -v 0.360962 0.230188 -1.605546 -v 0.481894 0.230188 -1.751728 -v 0.635380 0.230188 -1.863242 -v 0.811778 0.230188 -1.933082 -v 1.000000 0.230188 0.443140 -v 1.188224 0.230188 0.466918 -v 1.364620 0.230188 0.536758 -v 1.518106 0.230188 0.648272 -v 1.639038 0.230188 0.794454 -v 1.719818 0.230188 0.966116 -v 1.755368 0.230188 1.152476 -v 1.743454 0.230188 1.341822 -v 1.684828 0.230188 1.522256 -v 1.583170 0.230188 1.682440 -v 1.444872 0.230188 1.812314 -v 1.278618 0.230188 1.903712 -v 1.094860 0.230188 1.950892 -v 0.905140 0.230188 1.950892 -v 0.721380 0.230188 1.903710 -v 0.555128 0.230188 1.812312 -v 0.416828 0.230188 1.682440 -v 0.315172 0.230188 1.522254 -v 0.256546 0.230188 1.341820 -v 0.244634 0.230188 1.152476 -v 0.280184 0.230188 0.966116 -v 0.360962 0.230188 0.794454 -v 0.481894 0.230188 0.648272 -v 0.635380 0.230188 0.536758 -v 0.811778 0.230188 0.466918 -v -1.000000 0.230188 0.443140 -v -0.811776 0.230188 0.466918 -v -0.635380 0.230188 0.536758 -v -0.481894 0.230188 0.648272 -v -0.360962 0.230188 0.794454 -v -0.280182 0.230188 0.966116 -v -0.244634 0.230188 1.152476 -v -0.256546 0.230188 1.341822 -v -0.315172 0.230188 1.522256 -v -0.416830 0.230188 1.682440 -v -0.555128 0.230188 1.812314 -v -0.721382 0.230188 1.903712 -v -0.905140 0.230188 1.950892 -v -1.094860 0.230188 1.950892 -v -1.278620 0.230188 1.903710 -v -1.444872 0.230188 1.812312 -v -1.583172 0.230188 1.682440 -v -1.684828 0.230188 1.522254 -v -1.743454 0.230188 1.341820 -v -1.755366 0.230188 1.152476 -v -1.719816 0.230188 0.966116 -v -1.639038 0.230188 0.794454 -v -1.518106 0.230188 0.648272 -v -1.364620 0.230188 0.536758 -v -1.188222 0.230188 0.466918 -v -1.000000 0.230188 2.843140 -v -0.811776 0.230188 2.866918 -v -0.635380 0.230188 2.936758 -v -0.481894 0.230188 3.048272 -v -0.360962 0.230187 3.194454 -v -0.280182 0.230187 3.366118 -v -0.244634 0.230187 3.552476 -v -0.256546 0.230187 3.741822 -v -0.315172 0.230187 3.922256 -v -0.416830 0.230187 4.082442 -v -0.555128 0.230187 4.212314 -v -0.721382 0.230187 4.303710 -v -0.905140 0.230187 4.350892 -v -1.094860 0.230187 4.350892 -v -1.278620 0.230187 4.303710 -v -1.444872 0.230187 4.212312 -v -1.583172 0.230187 4.082440 -v -1.684828 0.230187 3.922256 -v -1.743454 0.230187 3.741822 -v -1.755366 0.230187 3.552476 -v -1.719816 0.230187 3.366116 -v -1.639038 0.230187 3.194454 -v -1.518106 0.230188 3.048272 -v -1.364620 0.230188 2.936758 -v -1.188222 0.230188 2.866918 -v -1.000000 0.230188 -1.956860 -v -0.811776 0.230188 -1.933082 -v -0.635380 0.230188 -1.863242 -v -0.481894 0.230188 -1.751728 -v -0.360962 0.230188 -1.605546 -v -0.280182 0.230188 -1.433882 -v -0.244634 0.230188 -1.247524 -v -0.256546 0.230188 -1.058178 -v -0.315172 0.230188 -0.877744 -v -0.416830 0.230188 -0.717558 -v -0.555128 0.230188 -0.587686 -v -0.721382 0.230188 -0.496288 -v -0.905140 0.230188 -0.449108 -v -1.094860 0.230188 -0.449108 -v -1.278620 0.230188 -0.496290 -v -1.444872 0.230188 -0.587688 -v -1.583172 0.230188 -0.717560 -v -1.684828 0.230188 -0.877744 -v -1.743454 0.230188 -1.058178 -v -1.755366 0.230188 -1.247524 -v -1.719816 0.230188 -1.433884 -v -1.639038 0.230188 -1.605546 -v -1.518106 0.230188 -1.751728 -v -1.364620 0.230188 -1.863242 -v -1.188222 0.230188 -1.933082 -vn -0.0000 1.0000 0.0000 -vn -1.0000 0.0000 0.0000 -vn 0.0000 0.0000 -1.0000 -vn 1.0000 0.0000 0.0000 -vn 0.0000 0.0000 1.0000 -vn 0.0000 -1.0000 -0.0000 -vn -0.0000 -0.6800 -0.7333 -vn 0.0000 0.6800 -0.7332 -vn 0.1823 0.6800 -0.7102 -vn 0.1824 -0.6800 -0.7102 -vn 0.3532 0.6800 -0.6425 -vn 0.3532 -0.6800 -0.6426 -vn 0.5019 0.6800 -0.5345 -vn 0.5019 -0.6800 -0.5345 -vn 0.6191 0.6800 -0.3929 -vn 0.6191 -0.6800 -0.3929 -vn 0.6973 0.6800 -0.2266 -vn 0.6974 -0.6800 -0.2266 -vn 0.7318 0.6800 -0.0460 -vn 0.7318 -0.6800 -0.0460 -vn 0.7202 0.6800 0.1374 -vn 0.7203 -0.6800 0.1374 -vn 0.6634 0.6800 0.3122 -vn 0.6635 -0.6800 0.3122 -vn 0.5650 0.6800 0.4674 -vn 0.5650 -0.6800 0.4674 -vn 0.4310 0.6800 0.5932 -vn 0.4310 -0.6800 0.5932 -vn 0.2699 0.6800 0.6818 -vn 0.2699 -0.6800 0.6818 -vn 0.0919 0.6800 0.7275 -vn 0.0919 -0.6800 0.7275 -vn -0.0920 0.6800 0.7274 -vn -0.0919 -0.6800 0.7275 -vn -0.2699 0.6800 0.6818 -vn -0.2699 -0.6800 0.6818 -vn -0.4309 0.6800 0.5933 -vn -0.4310 -0.6800 0.5932 -vn -0.5650 0.6800 0.4674 -vn -0.5650 -0.6800 0.4674 -vn -0.6634 0.6800 0.3122 -vn -0.6635 -0.6800 0.3122 -vn -0.7202 0.6800 0.1374 -vn -0.7203 -0.6800 0.1374 -vn -0.7318 0.6800 -0.0460 -vn -0.7318 -0.6800 -0.0460 -vn -0.6973 0.6800 -0.2266 -vn -0.6974 -0.6800 -0.2266 -vn -0.6191 0.6800 -0.3929 -vn -0.6191 -0.6800 -0.3929 -vn -0.5019 0.6800 -0.5345 -vn -0.5019 -0.6800 -0.5345 -vn -0.3532 0.6800 -0.6425 -vn -0.3532 -0.6800 -0.6426 -vn -0.1824 -0.6800 -0.7102 -vn -0.1821 0.6800 -0.7103 -vn 0.1824 0.6800 -0.7102 -vn 0.4309 0.6800 0.5932 -vn -0.0919 0.6800 0.7275 -vn -0.4310 0.6800 0.5932 -vn -0.5650 0.6800 0.4673 -vn 0.7202 0.6800 0.1373 -vn 0.2699 0.6800 0.6817 -vn 0.0920 0.6800 0.7274 -vn -0.6635 0.6800 0.3120 -vn -0.6192 0.6800 -0.3928 -vn -0.1823 0.6800 -0.7102 -vn 0.4309 0.6800 0.5933 -vn -0.7202 0.6800 0.1373 -vn -0.3533 0.6800 -0.6425 -vn 0.7318 0.6800 -0.0458 -vn -0.0921 0.6800 0.7274 -vn -0.2700 0.6800 0.6817 -vn -0.6973 0.6800 -0.2267 -vn 0.6973 0.6800 -0.2265 -vn -0.4309 0.6800 0.5932 -vn -0.3530 0.6800 -0.6426 -vn 0.6974 0.6800 -0.2264 -vn 0.6633 0.6800 0.3123 -vn -0.7202 0.6800 0.1375 -vn -0.3531 0.6800 -0.6426 -vn 0.7202 0.6800 0.1375 -vn -0.6633 0.6800 0.3124 -vn -0.7203 0.6800 0.1372 -usemtl Material.001 -s off -f 1//1 2//1 3//1 4//1 5//1 6//1 7//1 8//1 9//1 10//1 11//1 12//1 13//1 14//1 15//1 16//1 17//1 18//1 19//1 20//1 21//1 22//1 23//1 24//1 25//1 -f 26//1 27//1 28//1 29//1 30//1 31//1 32//1 33//1 34//1 35//1 36//1 37//1 38//1 39//1 40//1 41//1 42//1 43//1 44//1 45//1 46//1 47//1 48//1 49//1 50//1 -f 51//2 52//2 53//2 54//2 -f 52//3 55//3 56//3 53//3 -f 55//4 57//4 58//4 56//4 -f 57//5 51//5 54//5 58//5 -f 54//6 53//6 56//6 58//6 -f 57//1 55//1 52//1 51//1 -f 59//1 60//1 61//1 62//1 63//1 64//1 65//1 66//1 67//1 68//1 69//1 70//1 71//1 72//1 73//1 74//1 75//1 76//1 77//1 78//1 79//1 80//1 81//1 82//1 83//1 -f 84//1 85//1 86//1 87//1 88//1 89//1 90//1 91//1 92//1 93//1 94//1 95//1 96//1 97//1 98//1 99//1 100//1 101//1 102//1 103//1 104//1 105//1 106//1 107//1 108//1 -f 109//1 110//1 111//1 112//1 113//1 114//1 115//1 116//1 117//1 118//1 119//1 120//1 121//1 122//1 123//1 124//1 125//1 126//1 127//1 128//1 129//1 130//1 131//1 132//1 133//1 -f 134//1 135//1 136//1 137//1 138//1 139//1 140//1 141//1 142//1 143//1 144//1 145//1 146//1 147//1 148//1 149//1 150//1 151//1 152//1 153//1 154//1 155//1 156//1 157//1 158//1 -f 159//1 160//1 161//1 162//1 163//1 164//1 165//1 166//1 167//1 168//1 169//1 170//1 171//1 172//1 173//1 174//1 175//1 176//1 177//1 178//1 179//1 180//1 181//1 182//1 183//1 -f 184//1 185//1 186//1 187//1 188//1 189//1 190//1 191//1 192//1 193//1 194//1 195//1 196//1 197//1 198//1 199//1 200//1 201//1 202//1 203//1 204//1 205//1 206//1 207//1 208//1 -s 1 -f 209//7 2//8 1//9 210//10 -f 210//10 1//9 25//11 211//12 -f 211//12 25//11 24//13 212//14 -f 212//14 24//13 23//15 213//16 -f 213//16 23//15 22//17 214//18 -f 214//18 22//17 21//19 215//20 -f 215//20 21//19 20//21 216//22 -f 216//22 20//21 19//23 217//24 -f 217//24 19//23 18//25 218//26 -f 218//26 18//25 17//27 219//28 -f 219//28 17//27 16//29 220//30 -f 220//30 16//29 15//31 221//32 -f 221//32 15//31 14//33 222//34 -f 222//34 14//33 13//35 223//36 -f 223//36 13//35 12//37 224//38 -f 224//38 12//37 11//39 225//40 -f 225//40 11//39 10//41 226//42 -f 226//42 10//41 9//43 227//44 -f 227//44 9//43 8//45 228//46 -f 228//46 8//45 7//47 229//48 -f 229//48 7//47 6//49 230//50 -f 230//50 6//49 5//51 231//52 -f 231//52 5//51 4//53 232//54 -f 233//55 3//56 2//8 209//7 -f 232//54 4//53 3//56 233//55 -f 209//7 210//10 211//12 212//14 213//16 214//18 215//20 216//22 217//24 218//26 219//28 220//30 221//32 222//34 223//36 224//38 225//40 226//42 227//44 228//46 229//48 230//50 231//52 232//54 233//55 -f 234//7 27//8 26//57 235//10 -f 235//10 26//57 50//11 236//12 -f 236//12 50//11 49//13 237//14 -f 237//14 49//13 48//15 238//16 -f 238//16 48//15 47//17 239//18 -f 239//18 47//17 46//19 240//20 -f 240//20 46//19 45//21 241//22 -f 241//22 45//21 44//23 242//24 -f 242//24 44//23 43//25 243//26 -f 243//26 43//25 42//58 244//28 -f 244//28 42//58 41//29 245//30 -f 245//30 41//29 40//31 246//32 -f 246//32 40//31 39//59 247//34 -f 247//34 39//59 38//35 248//36 -f 248//36 38//35 37//60 249//38 -f 249//38 37//60 36//61 250//40 -f 250//40 36//61 35//41 251//42 -f 251//42 35//41 34//43 252//44 -f 252//44 34//43 33//45 253//46 -f 253//46 33//45 32//47 254//48 -f 254//48 32//47 31//49 255//50 -f 255//50 31//49 30//51 256//52 -f 256//52 30//51 29//53 257//54 -f 258//55 28//56 27//8 234//7 -f 257//54 29//53 28//56 258//55 -f 234//7 235//10 236//12 237//14 238//16 239//18 240//20 241//22 242//24 243//26 244//28 245//30 246//32 247//34 248//36 249//38 250//40 251//42 252//44 253//46 254//48 255//50 256//52 257//54 258//55 -f 259//7 60//8 59//9 260//10 -f 260//10 59//9 83//11 261//12 -f 261//12 83//11 82//13 262//14 -f 262//14 82//13 81//15 263//16 -f 263//16 81//15 80//17 264//18 -f 264//18 80//17 79//19 265//20 -f 265//20 79//19 78//62 266//22 -f 266//22 78//62 77//23 267//24 -f 267//24 77//23 76//25 268//26 -f 268//26 76//25 75//27 269//28 -f 269//28 75//27 74//63 270//30 -f 270//30 74//63 73//64 271//32 -f 271//32 73//64 72//59 272//34 -f 272//34 72//59 71//35 273//36 -f 273//36 71//35 70//60 274//38 -f 274//38 70//60 69//39 275//40 -f 275//40 69//39 68//65 276//42 -f 276//42 68//65 67//43 277//44 -f 277//44 67//43 66//45 278//46 -f 278//46 66//45 65//47 279//48 -f 279//48 65//47 64//66 280//50 -f 280//50 64//66 63//51 281//52 -f 281//52 63//51 62//53 282//54 -f 283//55 61//67 60//8 259//7 -f 282//54 62//53 61//67 283//55 -f 259//7 260//10 261//12 262//14 263//16 264//18 265//20 266//22 267//24 268//26 269//28 270//30 271//32 272//34 273//36 274//38 275//40 276//42 277//44 278//46 279//48 280//50 281//52 282//54 283//55 -f 284//7 85//8 84//57 285//10 -f 285//10 84//57 108//11 286//12 -f 286//12 108//11 107//13 287//14 -f 287//14 107//13 106//15 288//16 -f 288//16 106//15 105//17 289//18 -f 289//18 105//17 104//19 290//20 -f 290//20 104//19 103//21 291//22 -f 291//22 103//21 102//23 292//24 -f 292//24 102//23 101//25 293//26 -f 293//26 101//25 100//68 294//28 -f 294//28 100//68 99//29 295//30 -f 295//30 99//29 98//31 296//32 -f 296//32 98//31 97//59 297//34 -f 297//34 97//59 96//35 298//36 -f 298//36 96//35 95//60 299//38 -f 299//38 95//60 94//39 300//40 -f 300//40 94//39 93//41 301//42 -f 301//42 93//41 92//69 302//44 -f 302//44 92//69 91//45 303//46 -f 303//46 91//45 90//47 304//48 -f 304//48 90//47 89//49 305//50 -f 305//50 89//49 88//51 306//52 -f 306//52 88//51 87//70 307//54 -f 308//55 86//67 85//8 284//7 -f 307//54 87//70 86//67 308//55 -f 284//7 285//10 286//12 287//14 288//16 289//18 290//20 291//22 292//24 293//26 294//28 295//30 296//32 297//34 298//36 299//38 300//40 301//42 302//44 303//46 304//48 305//50 306//52 307//54 308//55 -f 309//7 110//8 109//9 310//10 -f 310//10 109//9 133//11 311//12 -f 311//12 133//11 132//13 312//14 -f 312//14 132//13 131//15 313//16 -f 313//16 131//15 130//17 314//18 -f 314//18 130//17 129//71 315//20 -f 315//20 129//71 128//21 316//22 -f 316//22 128//21 127//23 317//24 -f 317//24 127//23 126//25 318//26 -f 318//26 126//25 125//27 319//28 -f 319//28 125//27 124//29 320//30 -f 320//30 124//29 123//31 321//32 -f 321//32 123//31 122//72 322//34 -f 322//34 122//72 121//73 323//36 -f 323//36 121//73 120//60 324//38 -f 324//38 120//60 119//39 325//40 -f 325//40 119//39 118//41 326//42 -f 326//42 118//41 117//69 327//44 -f 327//44 117//69 116//45 328//46 -f 328//46 116//45 115//74 329//48 -f 329//48 115//74 114//49 330//50 -f 330//50 114//49 113//51 331//52 -f 331//52 113//51 112//53 332//54 -f 333//55 111//67 110//8 309//7 -f 332//54 112//53 111//67 333//55 -f 309//7 310//10 311//12 312//14 313//16 314//18 315//20 316//22 317//24 318//26 319//28 320//30 321//32 322//34 323//36 324//38 325//40 326//42 327//44 328//46 329//48 330//50 331//52 332//54 333//55 -f 334//7 135//8 134//9 335//10 -f 335//10 134//9 158//11 336//12 -f 336//12 158//11 157//13 337//14 -f 337//14 157//13 156//15 338//16 -f 338//16 156//15 155//75 339//18 -f 339//18 155//75 154//19 340//20 -f 340//20 154//19 153//21 341//22 -f 341//22 153//21 152//23 342//24 -f 342//24 152//23 151//25 343//26 -f 343//26 151//25 150//27 344//28 -f 344//28 150//27 149//29 345//30 -f 345//30 149//29 148//31 346//32 -f 346//32 148//31 147//59 347//34 -f 347//34 147//59 146//35 348//36 -f 348//36 146//35 145//76 349//38 -f 349//38 145//76 144//39 350//40 -f 350//40 144//39 143//41 351//42 -f 351//42 143//41 142//43 352//44 -f 352//44 142//43 141//45 353//46 -f 353//46 141//45 140//74 354//48 -f 354//48 140//74 139//49 355//50 -f 355//50 139//49 138//51 356//52 -f 356//52 138//51 137//77 357//54 -f 358//55 136//67 135//8 334//7 -f 357//54 137//77 136//67 358//55 -f 334//7 335//10 336//12 337//14 338//16 339//18 340//20 341//22 342//24 343//26 344//28 345//30 346//32 347//34 348//36 349//38 350//40 351//42 352//44 353//46 354//48 355//50 356//52 357//54 358//55 -f 359//7 160//8 159//57 360//10 -f 360//10 159//57 183//11 361//12 -f 361//12 183//11 182//13 362//14 -f 362//14 182//13 181//15 363//16 -f 363//16 181//15 180//78 364//18 -f 364//18 180//78 179//19 365//20 -f 365//20 179//19 178//21 366//22 -f 366//22 178//21 177//79 367//24 -f 367//24 177//79 176//25 368//26 -f 368//26 176//25 175//27 369//28 -f 369//28 175//27 174//29 370//30 -f 370//30 174//29 173//31 371//32 -f 371//32 173//31 172//59 372//34 -f 372//34 172//59 171//35 373//36 -f 373//36 171//35 170//60 374//38 -f 374//38 170//60 169//39 375//40 -f 375//40 169//39 168//41 376//42 -f 376//42 168//41 167//80 377//44 -f 377//44 167//80 166//45 378//46 -f 378//46 166//45 165//47 379//48 -f 379//48 165//47 164//66 380//50 -f 380//50 164//66 163//51 381//52 -f 381//52 163//51 162//81 382//54 -f 383//55 161//67 160//8 359//7 -f 382//54 162//81 161//67 383//55 -f 359//7 360//10 361//12 362//14 363//16 364//18 365//20 366//22 367//24 368//26 369//28 370//30 371//32 372//34 373//36 374//38 375//40 376//42 377//44 378//46 379//48 380//50 381//52 382//54 383//55 -f 384//7 185//8 184//9 385//10 -f 385//10 184//9 208//11 386//12 -f 386//12 208//11 207//13 387//14 -f 387//14 207//13 206//15 388//16 -f 388//16 206//15 205//17 389//18 -f 389//18 205//17 204//19 390//20 -f 390//20 204//19 203//82 391//22 -f 391//22 203//82 202//79 392//24 -f 392//24 202//79 201//25 393//26 -f 393//26 201//25 200//68 394//28 -f 394//28 200//68 199//29 395//30 -f 395//30 199//29 198//31 396//32 -f 396//32 198//31 197//59 397//34 -f 397//34 197//59 196//35 398//36 -f 398//36 196//35 195//37 399//38 -f 399//38 195//37 194//39 400//40 -f 400//40 194//39 193//83 401//42 -f 401//42 193//83 192//84 402//44 -f 402//44 192//84 191//45 403//46 -f 403//46 191//45 190//47 404//48 -f 404//48 190//47 189//49 405//50 -f 405//50 189//49 188//51 406//52 -f 406//52 188//51 187//81 407//54 -f 408//55 186//67 185//8 384//7 -f 407//54 187//81 186//67 408//55 -f 384//7 385//10 386//12 387//14 388//16 389//18 390//20 391//22 392//24 393//26 394//28 395//30 396//32 397//34 398//36 399//38 400//40 401//42 402//44 403//46 404//48 405//50 406//52 407//54 408//55 diff --git a/docsite/static/models/legoBrick.obj b/docsite/static/models/legoBrick.obj deleted file mode 100644 index 25153548..00000000 --- a/docsite/static/models/legoBrick.obj +++ /dev/null @@ -1,693 +0,0 @@ -# Blender v2.83 (sub 11) OBJ File: 'legoBrick.blend' -# www.blender.org -mtllib legoBrick.mtl -o Cylinder.007_Cylinder.013 -v -0.500000 0.115094 -2.178430 -v -0.500000 0.871954 -2.178430 -v -0.405888 0.115094 -2.166541 -v -0.405888 0.871954 -2.166541 -v -0.317690 0.115094 -2.131621 -v -0.317690 0.871954 -2.131621 -v -0.240947 0.115094 -2.075864 -v -0.240947 0.871954 -2.075864 -v -0.180481 0.115094 -2.002773 -v -0.180481 0.871954 -2.002773 -v -0.140091 0.115094 -1.916941 -v -0.140091 0.871954 -1.916941 -v -0.122317 0.115094 -1.823762 -v -0.122317 0.871954 -1.823762 -v -0.128273 0.115094 -1.729089 -v -0.128273 0.871954 -1.729089 -v -0.157586 0.115094 -1.638872 -v -0.157586 0.871954 -1.638872 -v -0.208415 0.115094 -1.558779 -v -0.208415 0.871954 -1.558779 -v -0.277564 0.115094 -1.493843 -v -0.277564 0.871954 -1.493843 -v -0.360691 0.115094 -1.448144 -v -0.360691 0.871954 -1.448144 -v -0.452570 0.115094 -1.424554 -v -0.452570 0.871954 -1.424554 -v -0.547430 0.115094 -1.424554 -v -0.547430 0.871954 -1.424554 -v -0.639310 0.115094 -1.448145 -v -0.639310 0.871954 -1.448145 -v -0.722436 0.115094 -1.493844 -v -0.722436 0.871954 -1.493844 -v -0.791586 0.115094 -1.558780 -v -0.791586 0.871954 -1.558780 -v -0.842414 0.115094 -1.638873 -v -0.842414 0.871954 -1.638873 -v -0.871727 0.115094 -1.729089 -v -0.871727 0.871954 -1.729089 -v -0.877683 0.115094 -1.823762 -v -0.877683 0.871954 -1.823762 -v -0.859908 0.115094 -1.916942 -v -0.859908 0.871954 -1.916942 -v -0.819519 0.115094 -2.002773 -v -0.819519 0.871954 -2.002773 -v -0.759053 0.115094 -2.075864 -v -0.759053 0.871954 -2.075864 -v -0.682310 0.115094 -2.131621 -v -0.682310 0.871954 -2.131621 -v -0.594111 0.115094 -2.166541 -v -0.594111 0.871954 -2.166541 -v 0.500000 0.115094 -2.178430 -v 0.500000 0.871954 -2.178430 -v 0.594112 0.115094 -2.166541 -v 0.594112 0.871954 -2.166541 -v 0.682310 0.115094 -2.131621 -v 0.682310 0.871954 -2.131621 -v 0.759053 0.115094 -2.075864 -v 0.759053 0.871954 -2.075864 -v 0.819519 0.115094 -2.002773 -v 0.819519 0.871954 -2.002773 -v 0.859909 0.115094 -1.916941 -v 0.859909 0.871954 -1.916941 -v 0.877684 0.115094 -1.823762 -v 0.877684 0.871954 -1.823762 -v 0.871727 0.115094 -1.729089 -v 0.871727 0.871954 -1.729089 -v 0.842414 0.115094 -1.638872 -v 0.842414 0.871954 -1.638872 -v 0.791585 0.115094 -1.558779 -v 0.791585 0.871954 -1.558779 -v 0.722436 0.115094 -1.493843 -v 0.722436 0.871954 -1.493843 -v 0.639309 0.115094 -1.448144 -v 0.639309 0.871954 -1.448144 -v 0.547430 0.115094 -1.424554 -v 0.547430 0.871954 -1.424554 -v 0.452570 0.115094 -1.424554 -v 0.452570 0.871954 -1.424554 -v 0.360690 0.115094 -1.448145 -v 0.360690 0.871954 -1.448145 -v 0.277564 0.115094 -1.493844 -v 0.277564 0.871954 -1.493844 -v 0.208414 0.115094 -1.558780 -v 0.208414 0.871954 -1.558780 -v 0.157586 0.115094 -1.638873 -v 0.157586 0.871954 -1.638873 -v 0.128273 0.115094 -1.729089 -v 0.128273 0.871954 -1.729089 -v 0.122317 0.115094 -1.823762 -v 0.122317 0.871954 -1.823762 -v 0.140092 0.115094 -1.916942 -v 0.140092 0.871954 -1.916942 -v 0.180481 0.115094 -2.002773 -v 0.180481 0.871954 -2.002773 -v 0.240947 0.115094 -2.075864 -v 0.240947 0.871954 -2.075864 -v 0.317690 0.115094 -2.131621 -v 0.317690 0.871954 -2.131621 -v 0.405889 0.115094 -2.166541 -v 0.405889 0.871954 -2.166541 -v -1.000000 -0.583120 2.257822 -v -1.000000 -0.583120 -2.257822 -v 1.000000 -0.583120 -2.257822 -v 1.000000 -0.583120 2.257822 -v -1.000000 0.583120 2.257822 -v -1.000000 0.583120 -2.257822 -v 1.000000 0.583120 -2.257822 -v 1.000000 0.583120 2.257822 -v 0.500000 0.115094 1.421570 -v 0.500000 0.871954 1.421570 -v 0.594112 0.115094 1.433459 -v 0.594112 0.871954 1.433459 -v 0.682310 0.115094 1.468379 -v 0.682310 0.871954 1.468379 -v 0.759053 0.115094 1.524136 -v 0.759053 0.871954 1.524136 -v 0.819519 0.115094 1.597227 -v 0.819519 0.871954 1.597227 -v 0.859909 0.115094 1.683059 -v 0.859909 0.871954 1.683059 -v 0.877683 0.115094 1.776238 -v 0.877683 0.871954 1.776238 -v 0.871727 0.115094 1.870911 -v 0.871727 0.871954 1.870911 -v 0.842414 0.115094 1.961128 -v 0.842414 0.871954 1.961128 -v 0.791585 0.115094 2.041221 -v 0.791585 0.871954 2.041221 -v 0.722436 0.115094 2.106157 -v 0.722436 0.871954 2.106157 -v 0.639309 0.115094 2.151855 -v 0.639309 0.871954 2.151855 -v 0.547430 0.115094 2.175446 -v 0.547430 0.871954 2.175446 -v 0.452570 0.115094 2.175446 -v 0.452570 0.871954 2.175446 -v 0.360690 0.115094 2.151855 -v 0.360690 0.871954 2.151855 -v 0.277564 0.115094 2.106156 -v 0.277564 0.871954 2.106156 -v 0.208414 0.115094 2.041220 -v 0.208414 0.871954 2.041220 -v 0.157586 0.115094 1.961128 -v 0.157586 0.871954 1.961128 -v 0.128273 0.115094 1.870911 -v 0.128273 0.871954 1.870911 -v 0.122317 0.115094 1.776238 -v 0.122317 0.871954 1.776238 -v 0.140092 0.115094 1.683058 -v 0.140092 0.871954 1.683058 -v 0.180481 0.115094 1.597227 -v 0.180481 0.871954 1.597227 -v 0.240947 0.115094 1.524136 -v 0.240947 0.871954 1.524136 -v 0.317690 0.115094 1.468379 -v 0.317690 0.871954 1.468379 -v 0.405889 0.115094 1.433459 -v 0.405889 0.871954 1.433459 -v 0.500000 0.115094 -0.978430 -v 0.500000 0.871954 -0.978430 -v 0.594112 0.115094 -0.966541 -v 0.594112 0.871954 -0.966541 -v 0.682310 0.115094 -0.931621 -v 0.682310 0.871954 -0.931621 -v 0.759053 0.115094 -0.875864 -v 0.759053 0.871954 -0.875864 -v 0.819519 0.115094 -0.802773 -v 0.819519 0.871954 -0.802773 -v 0.859909 0.115094 -0.716941 -v 0.859909 0.871954 -0.716941 -v 0.877684 0.115094 -0.623762 -v 0.877684 0.871954 -0.623762 -v 0.871727 0.115094 -0.529089 -v 0.871727 0.871954 -0.529089 -v 0.842414 0.115094 -0.438872 -v 0.842414 0.871954 -0.438872 -v 0.791585 0.115094 -0.358779 -v 0.791585 0.871954 -0.358779 -v 0.722436 0.115094 -0.293843 -v 0.722436 0.871954 -0.293843 -v 0.639309 0.115094 -0.248144 -v 0.639309 0.871954 -0.248144 -v 0.547430 0.115094 -0.224554 -v 0.547430 0.871954 -0.224554 -v 0.452570 0.115094 -0.224554 -v 0.452570 0.871954 -0.224554 -v 0.360690 0.115094 -0.248145 -v 0.360690 0.871954 -0.248145 -v 0.277564 0.115094 -0.293844 -v 0.277564 0.871954 -0.293844 -v 0.208414 0.115094 -0.358780 -v 0.208414 0.871954 -0.358780 -v 0.157586 0.115094 -0.438872 -v 0.157586 0.871954 -0.438872 -v 0.128273 0.115094 -0.529089 -v 0.128273 0.871954 -0.529089 -v 0.122317 0.115094 -0.623762 -v 0.122317 0.871954 -0.623762 -v 0.140092 0.115094 -0.716942 -v 0.140092 0.871954 -0.716942 -v 0.180481 0.115094 -0.802773 -v 0.180481 0.871954 -0.802773 -v 0.240947 0.115094 -0.875864 -v 0.240947 0.871954 -0.875864 -v 0.317690 0.115094 -0.931621 -v 0.317690 0.871954 -0.931621 -v 0.405889 0.115094 -0.966541 -v 0.405889 0.871954 -0.966541 -v 0.500000 0.115094 0.221570 -v 0.500000 0.871954 0.221570 -v 0.594112 0.115094 0.233459 -v 0.594112 0.871954 0.233459 -v 0.682310 0.115094 0.268379 -v 0.682310 0.871954 0.268379 -v 0.759053 0.115094 0.324136 -v 0.759053 0.871954 0.324136 -v 0.819519 0.115094 0.397227 -v 0.819519 0.871954 0.397227 -v 0.859909 0.115094 0.483058 -v 0.859909 0.871954 0.483058 -v 0.877684 0.115094 0.576238 -v 0.877684 0.871954 0.576238 -v 0.871727 0.115094 0.670911 -v 0.871727 0.871954 0.670911 -v 0.842414 0.115094 0.761128 -v 0.842414 0.871954 0.761128 -v 0.791585 0.115094 0.841220 -v 0.791585 0.871954 0.841220 -v 0.722436 0.115094 0.906157 -v 0.722436 0.871954 0.906157 -v 0.639309 0.115094 0.951856 -v 0.639309 0.871954 0.951856 -v 0.547430 0.115094 0.975446 -v 0.547430 0.871954 0.975446 -v 0.452570 0.115094 0.975446 -v 0.452570 0.871954 0.975446 -v 0.360690 0.115094 0.951855 -v 0.360690 0.871954 0.951855 -v 0.277564 0.115094 0.906156 -v 0.277564 0.871954 0.906156 -v 0.208414 0.115094 0.841220 -v 0.208414 0.871954 0.841220 -v 0.157586 0.115094 0.761127 -v 0.157586 0.871954 0.761127 -v 0.128273 0.115094 0.670910 -v 0.128273 0.871954 0.670910 -v 0.122317 0.115094 0.576238 -v 0.122317 0.871954 0.576238 -v 0.140092 0.115094 0.483058 -v 0.140092 0.871954 0.483058 -v 0.180481 0.115094 0.397227 -v 0.180481 0.871954 0.397227 -v 0.240947 0.115094 0.324136 -v 0.240947 0.871954 0.324136 -v 0.317690 0.115094 0.268379 -v 0.317690 0.871954 0.268379 -v 0.405889 0.115094 0.233459 -v 0.405889 0.871954 0.233459 -v -0.500000 0.115094 0.221570 -v -0.500000 0.871954 0.221570 -v -0.405888 0.115094 0.233459 -v -0.405888 0.871954 0.233459 -v -0.317690 0.115094 0.268379 -v -0.317690 0.871954 0.268379 -v -0.240947 0.115094 0.324136 -v -0.240947 0.871954 0.324136 -v -0.180481 0.115094 0.397227 -v -0.180481 0.871954 0.397227 -v -0.140091 0.115094 0.483058 -v -0.140091 0.871954 0.483058 -v -0.122317 0.115094 0.576238 -v -0.122317 0.871954 0.576238 -v -0.128273 0.115094 0.670911 -v -0.128273 0.871954 0.670911 -v -0.157586 0.115094 0.761128 -v -0.157586 0.871954 0.761128 -v -0.208415 0.115094 0.841220 -v -0.208415 0.871954 0.841220 -v -0.277564 0.115094 0.906157 -v -0.277564 0.871954 0.906157 -v -0.360691 0.115094 0.951856 -v -0.360691 0.871954 0.951856 -v -0.452570 0.115094 0.975446 -v -0.452570 0.871954 0.975446 -v -0.547430 0.115094 0.975446 -v -0.547430 0.871954 0.975446 -v -0.639310 0.115094 0.951855 -v -0.639310 0.871954 0.951855 -v -0.722436 0.115094 0.906156 -v -0.722436 0.871954 0.906156 -v -0.791586 0.115094 0.841220 -v -0.791586 0.871954 0.841220 -v -0.842414 0.115094 0.761127 -v -0.842414 0.871954 0.761127 -v -0.871727 0.115094 0.670910 -v -0.871727 0.871954 0.670910 -v -0.877683 0.115094 0.576238 -v -0.877683 0.871954 0.576238 -v -0.859908 0.115094 0.483058 -v -0.859908 0.871954 0.483058 -v -0.819519 0.115094 0.397227 -v -0.819519 0.871954 0.397227 -v -0.759053 0.115094 0.324136 -v -0.759053 0.871954 0.324136 -v -0.682310 0.115094 0.268379 -v -0.682310 0.871954 0.268379 -v -0.594111 0.115094 0.233459 -v -0.594111 0.871954 0.233459 -v -0.500000 0.115094 1.421570 -v -0.500000 0.871954 1.421570 -v -0.405888 0.115094 1.433459 -v -0.405888 0.871954 1.433459 -v -0.317690 0.115094 1.468379 -v -0.317690 0.871954 1.468379 -v -0.240947 0.115094 1.524136 -v -0.240947 0.871954 1.524136 -v -0.180481 0.115094 1.597227 -v -0.180481 0.871954 1.597227 -v -0.140091 0.115094 1.683059 -v -0.140091 0.871954 1.683059 -v -0.122317 0.115094 1.776238 -v -0.122317 0.871954 1.776238 -v -0.128273 0.115094 1.870911 -v -0.128273 0.871954 1.870911 -v -0.157586 0.115094 1.961128 -v -0.157586 0.871954 1.961128 -v -0.208415 0.115094 2.041221 -v -0.208415 0.871954 2.041221 -v -0.277564 0.115094 2.106157 -v -0.277564 0.871954 2.106157 -v -0.360691 0.115094 2.151855 -v -0.360691 0.871954 2.151855 -v -0.452570 0.115094 2.175446 -v -0.452570 0.871954 2.175446 -v -0.547430 0.115094 2.175446 -v -0.547430 0.871954 2.175446 -v -0.639310 0.115094 2.151855 -v -0.639310 0.871954 2.151855 -v -0.722436 0.115094 2.106156 -v -0.722436 0.871954 2.106156 -v -0.791586 0.115094 2.041220 -v -0.791586 0.871954 2.041220 -v -0.842414 0.115094 1.961128 -v -0.842414 0.871954 1.961128 -v -0.871727 0.115094 1.870911 -v -0.871727 0.871954 1.870911 -v -0.877683 0.115094 1.776238 -v -0.877683 0.871954 1.776238 -v -0.859908 0.115094 1.683058 -v -0.859908 0.871954 1.683058 -v -0.819519 0.115094 1.597227 -v -0.819519 0.871954 1.597227 -v -0.759053 0.115094 1.524136 -v -0.759053 0.871954 1.524136 -v -0.682310 0.115094 1.468379 -v -0.682310 0.871954 1.468379 -v -0.594111 0.115094 1.433459 -v -0.594111 0.871954 1.433459 -v -0.500000 0.115094 -0.978430 -v -0.500000 0.871954 -0.978430 -v -0.405888 0.115094 -0.966541 -v -0.405888 0.871954 -0.966541 -v -0.317690 0.115094 -0.931621 -v -0.317690 0.871954 -0.931621 -v -0.240947 0.115094 -0.875864 -v -0.240947 0.871954 -0.875864 -v -0.180481 0.115094 -0.802773 -v -0.180481 0.871954 -0.802773 -v -0.140091 0.115094 -0.716941 -v -0.140091 0.871954 -0.716941 -v -0.122317 0.115094 -0.623762 -v -0.122317 0.871954 -0.623762 -v -0.128273 0.115094 -0.529089 -v -0.128273 0.871954 -0.529089 -v -0.157586 0.115094 -0.438872 -v -0.157586 0.871954 -0.438872 -v -0.208415 0.115094 -0.358779 -v -0.208415 0.871954 -0.358779 -v -0.277564 0.115094 -0.293843 -v -0.277564 0.871954 -0.293843 -v -0.360691 0.115094 -0.248144 -v -0.360691 0.871954 -0.248144 -v -0.452570 0.115094 -0.224554 -v -0.452570 0.871954 -0.224554 -v -0.547430 0.115094 -0.224554 -v -0.547430 0.871954 -0.224554 -v -0.639310 0.115094 -0.248145 -v -0.639310 0.871954 -0.248145 -v -0.722436 0.115094 -0.293844 -v -0.722436 0.871954 -0.293844 -v -0.791586 0.115094 -0.358780 -v -0.791586 0.871954 -0.358780 -v -0.842414 0.115094 -0.438872 -v -0.842414 0.871954 -0.438872 -v -0.871727 0.115094 -0.529089 -v -0.871727 0.871954 -0.529089 -v -0.877683 0.115094 -0.623762 -v -0.877683 0.871954 -0.623762 -v -0.859908 0.115094 -0.716942 -v -0.859908 0.871954 -0.716942 -v -0.819519 0.115094 -0.802773 -v -0.819519 0.871954 -0.802773 -v -0.759053 0.115094 -0.875864 -v -0.759053 0.871954 -0.875864 -v -0.682310 0.115094 -0.931621 -v -0.682310 0.871954 -0.931621 -v -0.594111 0.115094 -0.966541 -v -0.594111 0.871954 -0.966541 -vn 0.0000 1.0000 -0.0000 -vn -1.0000 0.0000 0.0000 -vn 0.0000 0.0000 -1.0000 -vn 1.0000 0.0000 0.0000 -vn 0.0000 0.0000 1.0000 -vn 0.0000 -1.0000 0.0000 -vn 0.0000 -0.6800 -0.7332 -vn 0.0000 0.6800 -0.7332 -vn 0.1823 0.6800 -0.7102 -vn 0.1823 -0.6800 -0.7102 -vn 0.3532 0.6800 -0.6425 -vn 0.3532 -0.6800 -0.6425 -vn 0.5019 0.6800 -0.5345 -vn 0.5019 -0.6800 -0.5345 -vn 0.6191 0.6800 -0.3929 -vn 0.6191 -0.6800 -0.3929 -vn 0.6973 0.6800 -0.2266 -vn 0.6973 -0.6800 -0.2266 -vn 0.7318 0.6800 -0.0460 -vn 0.7318 -0.6800 -0.0460 -vn 0.7202 0.6800 0.1374 -vn 0.7202 -0.6800 0.1374 -vn 0.6634 0.6800 0.3122 -vn 0.6634 -0.6800 0.3122 -vn 0.5650 0.6800 0.4674 -vn 0.5650 -0.6800 0.4674 -vn 0.4310 0.6800 0.5932 -vn 0.4310 -0.6800 0.5932 -vn 0.2699 0.6800 0.6818 -vn 0.2699 -0.6800 0.6818 -vn 0.0919 0.6800 0.7275 -vn 0.0919 -0.6800 0.7275 -vn -0.0919 0.6800 0.7275 -vn -0.0919 -0.6800 0.7275 -vn -0.2699 0.6800 0.6818 -vn -0.2699 -0.6800 0.6818 -vn -0.4310 0.6800 0.5932 -vn -0.4310 -0.6800 0.5932 -vn -0.5650 0.6800 0.4674 -vn -0.5650 -0.6800 0.4674 -vn -0.6634 0.6800 0.3122 -vn -0.6634 -0.6800 0.3122 -vn -0.7202 0.6800 0.1374 -vn -0.7202 -0.6800 0.1374 -vn -0.7318 0.6800 -0.0460 -vn -0.7318 -0.6800 -0.0460 -vn -0.6973 0.6800 -0.2266 -vn -0.6973 -0.6800 -0.2266 -vn -0.6191 0.6800 -0.3929 -vn -0.6191 -0.6800 -0.3929 -vn -0.5019 0.6800 -0.5345 -vn -0.5019 -0.6800 -0.5345 -vn -0.3532 0.6800 -0.6425 -vn -0.3532 -0.6800 -0.6425 -vn -0.1823 -0.6800 -0.7102 -vn -0.1823 0.6800 -0.7102 -usemtl Material.001 -s off -f 4//1 2//1 50//1 48//1 46//1 44//1 42//1 40//1 38//1 36//1 34//1 32//1 30//1 28//1 26//1 24//1 22//1 20//1 18//1 16//1 14//1 12//1 10//1 8//1 6//1 -f 54//1 52//1 100//1 98//1 96//1 94//1 92//1 90//1 88//1 86//1 84//1 82//1 80//1 78//1 76//1 74//1 72//1 70//1 68//1 66//1 64//1 62//1 60//1 58//1 56//1 -f 105//2 106//2 102//2 101//2 -f 106//3 107//3 103//3 102//3 -f 107//4 108//4 104//4 103//4 -f 108//5 105//5 101//5 104//5 -f 101//6 102//6 103//6 104//6 -f 108//1 107//1 106//1 105//1 -f 112//1 110//1 158//1 156//1 154//1 152//1 150//1 148//1 146//1 144//1 142//1 140//1 138//1 136//1 134//1 132//1 130//1 128//1 126//1 124//1 122//1 120//1 118//1 116//1 114//1 -f 162//1 160//1 208//1 206//1 204//1 202//1 200//1 198//1 196//1 194//1 192//1 190//1 188//1 186//1 184//1 182//1 180//1 178//1 176//1 174//1 172//1 170//1 168//1 166//1 164//1 -f 212//1 210//1 258//1 256//1 254//1 252//1 250//1 248//1 246//1 244//1 242//1 240//1 238//1 236//1 234//1 232//1 230//1 228//1 226//1 224//1 222//1 220//1 218//1 216//1 214//1 -f 262//1 260//1 308//1 306//1 304//1 302//1 300//1 298//1 296//1 294//1 292//1 290//1 288//1 286//1 284//1 282//1 280//1 278//1 276//1 274//1 272//1 270//1 268//1 266//1 264//1 -f 312//1 310//1 358//1 356//1 354//1 352//1 350//1 348//1 346//1 344//1 342//1 340//1 338//1 336//1 334//1 332//1 330//1 328//1 326//1 324//1 322//1 320//1 318//1 316//1 314//1 -f 362//1 360//1 408//1 406//1 404//1 402//1 400//1 398//1 396//1 394//1 392//1 390//1 388//1 386//1 384//1 382//1 380//1 378//1 376//1 374//1 372//1 370//1 368//1 366//1 364//1 -s 1 -f 1//7 2//8 4//9 3//10 -f 3//10 4//9 6//11 5//12 -f 5//12 6//11 8//13 7//14 -f 7//14 8//13 10//15 9//16 -f 9//16 10//15 12//17 11//18 -f 11//18 12//17 14//19 13//20 -f 13//20 14//19 16//21 15//22 -f 15//22 16//21 18//23 17//24 -f 17//24 18//23 20//25 19//26 -f 19//26 20//25 22//27 21//28 -f 21//28 22//27 24//29 23//30 -f 23//30 24//29 26//31 25//32 -f 25//32 26//31 28//33 27//34 -f 27//34 28//33 30//35 29//36 -f 29//36 30//35 32//37 31//38 -f 31//38 32//37 34//39 33//40 -f 33//40 34//39 36//41 35//42 -f 35//42 36//41 38//43 37//44 -f 37//44 38//43 40//45 39//46 -f 39//46 40//45 42//47 41//48 -f 41//48 42//47 44//49 43//50 -f 43//50 44//49 46//51 45//52 -f 45//52 46//51 48//53 47//54 -f 49//55 50//56 2//8 1//7 -f 47//54 48//53 50//56 49//55 -f 1//7 3//10 5//12 7//14 9//16 11//18 13//20 15//22 17//24 19//26 21//28 23//30 25//32 27//34 29//36 31//38 33//40 35//42 37//44 39//46 41//48 43//50 45//52 47//54 49//55 -f 51//7 52//8 54//9 53//10 -f 53//10 54//9 56//11 55//12 -f 55//12 56//11 58//13 57//14 -f 57//14 58//13 60//15 59//16 -f 59//16 60//15 62//17 61//18 -f 61//18 62//17 64//19 63//20 -f 63//20 64//19 66//21 65//22 -f 65//22 66//21 68//23 67//24 -f 67//24 68//23 70//25 69//26 -f 69//26 70//25 72//27 71//28 -f 71//28 72//27 74//29 73//30 -f 73//30 74//29 76//31 75//32 -f 75//32 76//31 78//33 77//34 -f 77//34 78//33 80//35 79//36 -f 79//36 80//35 82//37 81//38 -f 81//38 82//37 84//39 83//40 -f 83//40 84//39 86//41 85//42 -f 85//42 86//41 88//43 87//44 -f 87//44 88//43 90//45 89//46 -f 89//46 90//45 92//47 91//48 -f 91//48 92//47 94//49 93//50 -f 93//50 94//49 96//51 95//52 -f 95//52 96//51 98//53 97//54 -f 99//55 100//56 52//8 51//7 -f 97//54 98//53 100//56 99//55 -f 51//7 53//10 55//12 57//14 59//16 61//18 63//20 65//22 67//24 69//26 71//28 73//30 75//32 77//34 79//36 81//38 83//40 85//42 87//44 89//46 91//48 93//50 95//52 97//54 99//55 -f 109//7 110//8 112//9 111//10 -f 111//10 112//9 114//11 113//12 -f 113//12 114//11 116//13 115//14 -f 115//14 116//13 118//15 117//16 -f 117//16 118//15 120//17 119//18 -f 119//18 120//17 122//19 121//20 -f 121//20 122//19 124//21 123//22 -f 123//22 124//21 126//23 125//24 -f 125//24 126//23 128//25 127//26 -f 127//26 128//25 130//27 129//28 -f 129//28 130//27 132//29 131//30 -f 131//30 132//29 134//31 133//32 -f 133//32 134//31 136//33 135//34 -f 135//34 136//33 138//35 137//36 -f 137//36 138//35 140//37 139//38 -f 139//38 140//37 142//39 141//40 -f 141//40 142//39 144//41 143//42 -f 143//42 144//41 146//43 145//44 -f 145//44 146//43 148//45 147//46 -f 147//46 148//45 150//47 149//48 -f 149//48 150//47 152//49 151//50 -f 151//50 152//49 154//51 153//52 -f 153//52 154//51 156//53 155//54 -f 157//55 158//56 110//8 109//7 -f 155//54 156//53 158//56 157//55 -f 109//7 111//10 113//12 115//14 117//16 119//18 121//20 123//22 125//24 127//26 129//28 131//30 133//32 135//34 137//36 139//38 141//40 143//42 145//44 147//46 149//48 151//50 153//52 155//54 157//55 -f 159//7 160//8 162//9 161//10 -f 161//10 162//9 164//11 163//12 -f 163//12 164//11 166//13 165//14 -f 165//14 166//13 168//15 167//16 -f 167//16 168//15 170//17 169//18 -f 169//18 170//17 172//19 171//20 -f 171//20 172//19 174//21 173//22 -f 173//22 174//21 176//23 175//24 -f 175//24 176//23 178//25 177//26 -f 177//26 178//25 180//27 179//28 -f 179//28 180//27 182//29 181//30 -f 181//30 182//29 184//31 183//32 -f 183//32 184//31 186//33 185//34 -f 185//34 186//33 188//35 187//36 -f 187//36 188//35 190//37 189//38 -f 189//38 190//37 192//39 191//40 -f 191//40 192//39 194//41 193//42 -f 193//42 194//41 196//43 195//44 -f 195//44 196//43 198//45 197//46 -f 197//46 198//45 200//47 199//48 -f 199//48 200//47 202//49 201//50 -f 201//50 202//49 204//51 203//52 -f 203//52 204//51 206//53 205//54 -f 207//55 208//56 160//8 159//7 -f 205//54 206//53 208//56 207//55 -f 159//7 161//10 163//12 165//14 167//16 169//18 171//20 173//22 175//24 177//26 179//28 181//30 183//32 185//34 187//36 189//38 191//40 193//42 195//44 197//46 199//48 201//50 203//52 205//54 207//55 -f 209//7 210//8 212//9 211//10 -f 211//10 212//9 214//11 213//12 -f 213//12 214//11 216//13 215//14 -f 215//14 216//13 218//15 217//16 -f 217//16 218//15 220//17 219//18 -f 219//18 220//17 222//19 221//20 -f 221//20 222//19 224//21 223//22 -f 223//22 224//21 226//23 225//24 -f 225//24 226//23 228//25 227//26 -f 227//26 228//25 230//27 229//28 -f 229//28 230//27 232//29 231//30 -f 231//30 232//29 234//31 233//32 -f 233//32 234//31 236//33 235//34 -f 235//34 236//33 238//35 237//36 -f 237//36 238//35 240//37 239//38 -f 239//38 240//37 242//39 241//40 -f 241//40 242//39 244//41 243//42 -f 243//42 244//41 246//43 245//44 -f 245//44 246//43 248//45 247//46 -f 247//46 248//45 250//47 249//48 -f 249//48 250//47 252//49 251//50 -f 251//50 252//49 254//51 253//52 -f 253//52 254//51 256//53 255//54 -f 257//55 258//56 210//8 209//7 -f 255//54 256//53 258//56 257//55 -f 209//7 211//10 213//12 215//14 217//16 219//18 221//20 223//22 225//24 227//26 229//28 231//30 233//32 235//34 237//36 239//38 241//40 243//42 245//44 247//46 249//48 251//50 253//52 255//54 257//55 -f 259//7 260//8 262//9 261//10 -f 261//10 262//9 264//11 263//12 -f 263//12 264//11 266//13 265//14 -f 265//14 266//13 268//15 267//16 -f 267//16 268//15 270//17 269//18 -f 269//18 270//17 272//19 271//20 -f 271//20 272//19 274//21 273//22 -f 273//22 274//21 276//23 275//24 -f 275//24 276//23 278//25 277//26 -f 277//26 278//25 280//27 279//28 -f 279//28 280//27 282//29 281//30 -f 281//30 282//29 284//31 283//32 -f 283//32 284//31 286//33 285//34 -f 285//34 286//33 288//35 287//36 -f 287//36 288//35 290//37 289//38 -f 289//38 290//37 292//39 291//40 -f 291//40 292//39 294//41 293//42 -f 293//42 294//41 296//43 295//44 -f 295//44 296//43 298//45 297//46 -f 297//46 298//45 300//47 299//48 -f 299//48 300//47 302//49 301//50 -f 301//50 302//49 304//51 303//52 -f 303//52 304//51 306//53 305//54 -f 307//55 308//56 260//8 259//7 -f 305//54 306//53 308//56 307//55 -f 259//7 261//10 263//12 265//14 267//16 269//18 271//20 273//22 275//24 277//26 279//28 281//30 283//32 285//34 287//36 289//38 291//40 293//42 295//44 297//46 299//48 301//50 303//52 305//54 307//55 -f 309//7 310//8 312//9 311//10 -f 311//10 312//9 314//11 313//12 -f 313//12 314//11 316//13 315//14 -f 315//14 316//13 318//15 317//16 -f 317//16 318//15 320//17 319//18 -f 319//18 320//17 322//19 321//20 -f 321//20 322//19 324//21 323//22 -f 323//22 324//21 326//23 325//24 -f 325//24 326//23 328//25 327//26 -f 327//26 328//25 330//27 329//28 -f 329//28 330//27 332//29 331//30 -f 331//30 332//29 334//31 333//32 -f 333//32 334//31 336//33 335//34 -f 335//34 336//33 338//35 337//36 -f 337//36 338//35 340//37 339//38 -f 339//38 340//37 342//39 341//40 -f 341//40 342//39 344//41 343//42 -f 343//42 344//41 346//43 345//44 -f 345//44 346//43 348//45 347//46 -f 347//46 348//45 350//47 349//48 -f 349//48 350//47 352//49 351//50 -f 351//50 352//49 354//51 353//52 -f 353//52 354//51 356//53 355//54 -f 357//55 358//56 310//8 309//7 -f 355//54 356//53 358//56 357//55 -f 309//7 311//10 313//12 315//14 317//16 319//18 321//20 323//22 325//24 327//26 329//28 331//30 333//32 335//34 337//36 339//38 341//40 343//42 345//44 347//46 349//48 351//50 353//52 355//54 357//55 -f 359//7 360//8 362//9 361//10 -f 361//10 362//9 364//11 363//12 -f 363//12 364//11 366//13 365//14 -f 365//14 366//13 368//15 367//16 -f 367//16 368//15 370//17 369//18 -f 369//18 370//17 372//19 371//20 -f 371//20 372//19 374//21 373//22 -f 373//22 374//21 376//23 375//24 -f 375//24 376//23 378//25 377//26 -f 377//26 378//25 380//27 379//28 -f 379//28 380//27 382//29 381//30 -f 381//30 382//29 384//31 383//32 -f 383//32 384//31 386//33 385//34 -f 385//34 386//33 388//35 387//36 -f 387//36 388//35 390//37 389//38 -f 389//38 390//37 392//39 391//40 -f 391//40 392//39 394//41 393//42 -f 393//42 394//41 396//43 395//44 -f 395//44 396//43 398//45 397//46 -f 397//46 398//45 400//47 399//48 -f 399//48 400//47 402//49 401//50 -f 401//50 402//49 404//51 403//52 -f 403//52 404//51 406//53 405//54 -f 407//55 408//56 360//8 359//7 -f 405//54 406//53 408//56 407//55 -f 359//7 361//10 363//12 365//14 367//16 369//18 371//20 373//22 375//24 377//26 379//28 381//30 383//32 385//34 387//36 389//38 391//40 393//42 395//44 397//46 399//48 401//50 403//52 405//54 407//55 diff --git a/docsite/static/models/mlcs.obj b/docsite/static/models/mlcs.obj deleted file mode 100644 index a1d647df..00000000 --- a/docsite/static/models/mlcs.obj +++ /dev/null @@ -1,465 +0,0 @@ -# MagicaVoxel @ Ephtracy - -# group -g mlcs - -# material -mtllib mlcs.mtl -usemtl palette - -# normals -vn -1 0 0 -vn 1 0 0 -vn 0 0 1 -vn 0 0 -1 -vn 0 -1 0 -vn 0 1 0 - -# texcoords -vt 0.306641 0.5 - -# verts -v -3.5 0 3.5 -v -3.5 0 2.5 -v -3.5 0 0.5 -v -3.5 0 -3.5 -v -3.5 1 0.5 -v -3.5 1 -2.5 -v -3.5 3 2.5 -v -3.5 3 -0.5 -v -3.5 4 3.5 -v -3.5 4 0.5 -v -3.5 4 -2.5 -v -3.5 4 -3.5 -v -3.5 6 -0.5 -v -3.5 6 -3.5 -v -3.5 7 0.5 -v -3.5 7 -3.5 -v -1.5 2 3.5 -v -1.5 2 2.5 -v -1.5 2 -2.5 -v -1.5 2 -3.5 -v -1.5 3 2.5 -v -1.5 3 -0.5 -v -1.5 4 3.5 -v -1.5 4 0.5 -v -1.5 4 -2.5 -v -1.5 4 -3.5 -v -1.5 5 0.5 -v -1.5 5 -0.5 -v 0.5 0 3.5 -v 0.5 0 2.5 -v 0.5 0 0.5 -v 0.5 0 -3.5 -v 0.5 1 3.5 -v 0.5 1 2.5 -v 0.5 1 0.5 -v 0.5 1 -3.5 -v 2.5 1 -2.5 -v 2.5 1 -3.5 -v 2.5 2 -2.5 -v 2.5 2 -3.5 -v -2.5 1 3.5 -v -2.5 1 2.5 -v -2.5 1 -2.5 -v -2.5 1 -3.5 -v -2.5 3 2.5 -v -2.5 3 -0.5 -v -2.5 4 3.5 -v -2.5 4 0.5 -v -2.5 4 -2.5 -v -2.5 4 -3.5 -v -2.5 6 0.5 -v -2.5 6 -0.5 -v -0.5 0 3.5 -v -0.5 0 2.5 -v -0.5 0 0.5 -v -0.5 0 -3.5 -v -0.5 1 3.5 -v -0.5 1 2.5 -v -0.5 1 0.5 -v -0.5 1 -3.5 -v -0.5 3 3.5 -v -0.5 3 2.5 -v -0.5 3 -0.5 -v -0.5 3 -2.5 -v -0.5 3 -3.5 -v -0.5 4 3.5 -v -0.5 4 0.5 -v -0.5 4 -0.5 -v -0.5 4 -2.5 -v -0.5 4 -3.5 -v 3.5 0 3.5 -v 3.5 0 2.5 -v 3.5 0 0.5 -v 3.5 0 -3.5 -v 3.5 1 3.5 -v 3.5 1 2.5 -v 3.5 1 0.5 -v 3.5 1 -2.5 -v 3.5 2 3.5 -v 3.5 2 2.5 -v 3.5 3 3.5 -v 3.5 3 2.5 -v 3.5 3 -2.5 -v 3.5 3 -3.5 -v 3.5 4 0.5 -v 3.5 4 -0.5 -v 3.5 5 0.5 -v 3.5 5 -0.5 -v 3.5 6 0.5 -v 3.5 6 -3.5 -v 3.5 7 0.5 -v 3.5 7 -3.5 -v -3.5 0 3.5 -v -3.5 4 3.5 -v -2.5 1 3.5 -v -2.5 4 3.5 -v -1.5 2 3.5 -v -1.5 4 3.5 -v -0.5 0 3.5 -v -0.5 1 3.5 -v -0.5 3 3.5 -v -0.5 4 3.5 -v 0.5 0 3.5 -v 0.5 1 3.5 -v 3.5 0 3.5 -v 3.5 1 3.5 -v 3.5 2 3.5 -v 3.5 3 3.5 -v -3.5 0 0.5 -v -3.5 1 0.5 -v -3.5 4 0.5 -v -3.5 7 0.5 -v -2.5 4 0.5 -v -2.5 6 0.5 -v -1.5 4 0.5 -v -1.5 5 0.5 -v -0.5 0 0.5 -v -0.5 1 0.5 -v -0.5 4 0.5 -v 0.5 0 0.5 -v 0.5 1 0.5 -v 3.5 0 0.5 -v 3.5 1 0.5 -v 3.5 4 0.5 -v 3.5 5 0.5 -v 3.5 6 0.5 -v 3.5 7 0.5 -v -3.5 1 -2.5 -v -3.5 4 -2.5 -v -2.5 1 -2.5 -v -2.5 4 -2.5 -v -1.5 2 -2.5 -v -1.5 4 -2.5 -v -0.5 3 -2.5 -v -0.5 4 -2.5 -v 2.5 1 -2.5 -v 2.5 2 -2.5 -v 3.5 1 -2.5 -v 3.5 3 -2.5 -v -3.5 0 2.5 -v -3.5 3 2.5 -v -2.5 1 2.5 -v -2.5 3 2.5 -v -1.5 2 2.5 -v -1.5 3 2.5 -v -0.5 0 2.5 -v -0.5 1 2.5 -v -0.5 3 2.5 -v 0.5 0 2.5 -v 0.5 1 2.5 -v 3.5 0 2.5 -v 3.5 1 2.5 -v 3.5 2 2.5 -v 3.5 3 2.5 -v -3.5 3 -0.5 -v -3.5 6 -0.5 -v -2.5 3 -0.5 -v -2.5 6 -0.5 -v -1.5 3 -0.5 -v -1.5 5 -0.5 -v -0.5 3 -0.5 -v -0.5 4 -0.5 -v 3.5 4 -0.5 -v 3.5 5 -0.5 -v -3.5 0 -3.5 -v -3.5 4 -3.5 -v -3.5 6 -3.5 -v -3.5 7 -3.5 -v -2.5 1 -3.5 -v -2.5 4 -3.5 -v -1.5 2 -3.5 -v -1.5 4 -3.5 -v -0.5 0 -3.5 -v -0.5 1 -3.5 -v -0.5 3 -3.5 -v -0.5 4 -3.5 -v 0.5 0 -3.5 -v 0.5 1 -3.5 -v 2.5 1 -3.5 -v 2.5 2 -3.5 -v 3.5 0 -3.5 -v 3.5 3 -3.5 -v 3.5 6 -3.5 -v 3.5 7 -3.5 -v -3.5 0 3.5 -v -0.5 0 3.5 -v 0.5 0 3.5 -v 3.5 0 3.5 -v -3.5 0 2.5 -v -0.5 0 2.5 -v 0.5 0 2.5 -v 3.5 0 2.5 -v -3.5 0 0.5 -v -0.5 0 0.5 -v 0.5 0 0.5 -v 3.5 0 0.5 -v -3.5 0 -3.5 -v -0.5 0 -3.5 -v 0.5 0 -3.5 -v 3.5 0 -3.5 -v -1.5 2 3.5 -v 3.5 2 3.5 -v -1.5 2 2.5 -v 3.5 2 2.5 -v -1.5 2 -2.5 -v 2.5 2 -2.5 -v -1.5 2 -3.5 -v 2.5 2 -3.5 -v -3.5 3 2.5 -v -2.5 3 2.5 -v -1.5 3 2.5 -v -0.5 3 2.5 -v -3.5 3 -0.5 -v -2.5 3 -0.5 -v -1.5 3 -0.5 -v -0.5 3 -0.5 -v -0.5 4 0.5 -v 3.5 4 0.5 -v -0.5 4 -0.5 -v 3.5 4 -0.5 -v -2.5 6 0.5 -v 3.5 6 0.5 -v -3.5 6 -0.5 -v -2.5 6 -0.5 -v -3.5 6 -3.5 -v 3.5 6 -3.5 -v -2.5 1 3.5 -v -0.5 1 3.5 -v 0.5 1 3.5 -v 3.5 1 3.5 -v -2.5 1 2.5 -v -0.5 1 2.5 -v 0.5 1 2.5 -v 3.5 1 2.5 -v -3.5 1 0.5 -v -0.5 1 0.5 -v 0.5 1 0.5 -v 3.5 1 0.5 -v -3.5 1 -2.5 -v -2.5 1 -2.5 -v 2.5 1 -2.5 -v 3.5 1 -2.5 -v -2.5 1 -3.5 -v -0.5 1 -3.5 -v 0.5 1 -3.5 -v 2.5 1 -3.5 -v -0.5 3 3.5 -v 3.5 3 3.5 -v -0.5 3 2.5 -v 3.5 3 2.5 -v -0.5 3 -2.5 -v 3.5 3 -2.5 -v -0.5 3 -3.5 -v 3.5 3 -3.5 -v -3.5 4 3.5 -v -2.5 4 3.5 -v -1.5 4 3.5 -v -0.5 4 3.5 -v -3.5 4 0.5 -v -2.5 4 0.5 -v -1.5 4 0.5 -v -0.5 4 0.5 -v -3.5 4 -2.5 -v -2.5 4 -2.5 -v -1.5 4 -2.5 -v -0.5 4 -2.5 -v -3.5 4 -3.5 -v -2.5 4 -3.5 -v -1.5 4 -3.5 -v -0.5 4 -3.5 -v -1.5 5 0.5 -v 3.5 5 0.5 -v -1.5 5 -0.5 -v 3.5 5 -0.5 -v -3.5 7 0.5 -v 3.5 7 0.5 -v -3.5 7 -3.5 -v 3.5 7 -3.5 - -# faces -f 5/1/1 4/1/1 3/1/1 -f 6/1/1 4/1/1 5/1/1 -f 7/1/1 2/1/1 1/1/1 -f 9/1/1 7/1/1 1/1/1 -f 9/1/1 8/1/1 7/1/1 -f 10/1/1 8/1/1 9/1/1 -f 11/1/1 4/1/1 6/1/1 -f 12/1/1 4/1/1 11/1/1 -f 13/1/1 8/1/1 10/1/1 -f 15/1/1 13/1/1 10/1/1 -f 15/1/1 14/1/1 13/1/1 -f 16/1/1 14/1/1 15/1/1 -f 21/1/1 18/1/1 17/1/1 -f 23/1/1 21/1/1 17/1/1 -f 23/1/1 22/1/1 21/1/1 -f 24/1/1 22/1/1 23/1/1 -f 25/1/1 20/1/1 19/1/1 -f 26/1/1 20/1/1 25/1/1 -f 27/1/1 22/1/1 24/1/1 -f 28/1/1 22/1/1 27/1/1 -f 33/1/1 30/1/1 29/1/1 -f 34/1/1 30/1/1 33/1/1 -f 35/1/1 32/1/1 31/1/1 -f 36/1/1 32/1/1 35/1/1 -f 39/1/1 38/1/1 37/1/1 -f 40/1/1 38/1/1 39/1/1 -f 41/1/2 42/1/2 45/1/2 -f 41/1/2 45/1/2 47/1/2 -f 45/1/2 46/1/2 47/1/2 -f 47/1/2 46/1/2 48/1/2 -f 43/1/2 44/1/2 49/1/2 -f 49/1/2 44/1/2 50/1/2 -f 48/1/2 46/1/2 51/1/2 -f 51/1/2 46/1/2 52/1/2 -f 53/1/2 54/1/2 57/1/2 -f 57/1/2 54/1/2 58/1/2 -f 55/1/2 56/1/2 59/1/2 -f 59/1/2 56/1/2 60/1/2 -f 61/1/2 62/1/2 66/1/2 -f 62/1/2 63/1/2 66/1/2 -f 66/1/2 63/1/2 67/1/2 -f 67/1/2 63/1/2 68/1/2 -f 64/1/2 65/1/2 69/1/2 -f 69/1/2 65/1/2 70/1/2 -f 71/1/2 72/1/2 75/1/2 -f 75/1/2 72/1/2 76/1/2 -f 73/1/2 74/1/2 77/1/2 -f 77/1/2 74/1/2 78/1/2 -f 79/1/2 80/1/2 81/1/2 -f 81/1/2 80/1/2 82/1/2 -f 78/1/2 74/1/2 83/1/2 -f 83/1/2 74/1/2 84/1/2 -f 85/1/2 86/1/2 87/1/2 -f 87/1/2 86/1/2 88/1/2 -f 89/1/2 90/1/2 91/1/2 -f 91/1/2 90/1/2 92/1/2 -f 95/1/3 94/1/3 93/1/3 -f 96/1/3 94/1/3 95/1/3 -f 99/1/3 95/1/3 93/1/3 -f 100/1/3 95/1/3 99/1/3 -f 101/1/3 98/1/3 97/1/3 -f 102/1/3 98/1/3 101/1/3 -f 105/1/3 104/1/3 103/1/3 -f 106/1/3 104/1/3 105/1/3 -f 107/1/3 101/1/3 97/1/3 -f 108/1/3 101/1/3 107/1/3 -f 113/1/3 112/1/3 111/1/3 -f 114/1/3 112/1/3 113/1/3 -f 117/1/3 110/1/3 109/1/3 -f 118/1/3 110/1/3 117/1/3 -f 119/1/3 116/1/3 115/1/3 -f 122/1/3 121/1/3 120/1/3 -f 123/1/3 121/1/3 122/1/3 -f 124/1/3 116/1/3 119/1/3 -f 125/1/3 116/1/3 124/1/3 -f 126/1/3 112/1/3 114/1/3 -f 127/1/3 112/1/3 126/1/3 -f 130/1/3 129/1/3 128/1/3 -f 131/1/3 129/1/3 130/1/3 -f 134/1/3 133/1/3 132/1/3 -f 135/1/3 133/1/3 134/1/3 -f 137/1/3 134/1/3 132/1/3 -f 138/1/3 137/1/3 136/1/3 -f 139/1/3 134/1/3 137/1/3 -f 139/1/3 137/1/3 138/1/3 -f 140/1/4 141/1/4 142/1/4 -f 142/1/4 141/1/4 143/1/4 -f 140/1/4 142/1/4 146/1/4 -f 146/1/4 142/1/4 147/1/4 -f 144/1/4 145/1/4 148/1/4 -f 149/1/4 150/1/4 151/1/4 -f 151/1/4 150/1/4 152/1/4 -f 144/1/4 148/1/4 153/1/4 -f 153/1/4 148/1/4 154/1/4 -f 155/1/4 156/1/4 157/1/4 -f 157/1/4 156/1/4 158/1/4 -f 159/1/4 160/1/4 161/1/4 -f 161/1/4 160/1/4 162/1/4 -f 162/1/4 160/1/4 163/1/4 -f 163/1/4 160/1/4 164/1/4 -f 165/1/4 166/1/4 169/1/4 -f 169/1/4 166/1/4 170/1/4 -f 165/1/4 169/1/4 173/1/4 -f 173/1/4 169/1/4 174/1/4 -f 171/1/4 172/1/4 175/1/4 -f 175/1/4 172/1/4 176/1/4 -f 177/1/4 178/1/4 179/1/4 -f 171/1/4 175/1/4 180/1/4 -f 177/1/4 179/1/4 181/1/4 -f 179/1/4 180/1/4 181/1/4 -f 180/1/4 175/1/4 182/1/4 -f 181/1/4 180/1/4 182/1/4 -f 167/1/4 168/1/4 183/1/4 -f 183/1/4 168/1/4 184/1/4 -f 189/1/5 186/1/5 185/1/5 -f 190/1/5 186/1/5 189/1/5 -f 191/1/5 188/1/5 187/1/5 -f 192/1/5 188/1/5 191/1/5 -f 197/1/5 194/1/5 193/1/5 -f 198/1/5 194/1/5 197/1/5 -f 199/1/5 196/1/5 195/1/5 -f 200/1/5 196/1/5 199/1/5 -f 203/1/5 202/1/5 201/1/5 -f 204/1/5 202/1/5 203/1/5 -f 207/1/5 206/1/5 205/1/5 -f 208/1/5 206/1/5 207/1/5 -f 213/1/5 210/1/5 209/1/5 -f 214/1/5 210/1/5 213/1/5 -f 215/1/5 212/1/5 211/1/5 -f 216/1/5 212/1/5 215/1/5 -f 219/1/5 218/1/5 217/1/5 -f 220/1/5 218/1/5 219/1/5 -f 224/1/5 222/1/5 221/1/5 -f 225/1/5 224/1/5 223/1/5 -f 226/1/5 222/1/5 224/1/5 -f 226/1/5 224/1/5 225/1/5 -f 227/1/6 228/1/6 231/1/6 -f 231/1/6 228/1/6 232/1/6 -f 229/1/6 230/1/6 233/1/6 -f 233/1/6 230/1/6 234/1/6 -f 235/1/6 236/1/6 239/1/6 -f 239/1/6 236/1/6 240/1/6 -f 237/1/6 238/1/6 241/1/6 -f 241/1/6 238/1/6 242/1/6 -f 240/1/6 236/1/6 243/1/6 -f 243/1/6 236/1/6 244/1/6 -f 237/1/6 241/1/6 245/1/6 -f 245/1/6 241/1/6 246/1/6 -f 247/1/6 248/1/6 249/1/6 -f 249/1/6 248/1/6 250/1/6 -f 251/1/6 252/1/6 253/1/6 -f 253/1/6 252/1/6 254/1/6 -f 255/1/6 256/1/6 259/1/6 -f 259/1/6 256/1/6 260/1/6 -f 257/1/6 258/1/6 261/1/6 -f 261/1/6 258/1/6 262/1/6 -f 263/1/6 264/1/6 267/1/6 -f 267/1/6 264/1/6 268/1/6 -f 265/1/6 266/1/6 269/1/6 -f 269/1/6 266/1/6 270/1/6 -f 271/1/6 272/1/6 273/1/6 -f 273/1/6 272/1/6 274/1/6 -f 275/1/6 276/1/6 277/1/6 -f 277/1/6 276/1/6 278/1/6 diff --git a/docsite/yarn.lock b/docsite/yarn.lock deleted file mode 100644 index 3d8e4411..00000000 --- a/docsite/yarn.lock +++ /dev/null @@ -1,10357 +0,0 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. -# yarn lockfile v1 - - -"@algolia/cache-browser-local-storage@4.9.1": - version "4.9.1" - resolved "https://registry.yarnpkg.com/@algolia/cache-browser-local-storage/-/cache-browser-local-storage-4.9.1.tgz#784e91580dcca00a8280b0905197f5abbbdf4b48" - integrity sha512-bAUU9vKCy45uTTlzJw0LYu1IjoZsmzL6lgjaVFaW1crhX/4P+JD5ReQv3n/wpiXSFaHq1WEO3WyH2g3ymzeipQ== - dependencies: - "@algolia/cache-common" "4.9.1" - -"@algolia/cache-common@4.9.1": - version "4.9.1" - resolved "https://registry.yarnpkg.com/@algolia/cache-common/-/cache-common-4.9.1.tgz#2d5f37ba7aab7db76627c4a4fce51a7fd137fa65" - integrity sha512-tcvw4mOfFy44V4ZxDEy9wNGr6vFROZKRpXKTEBgdw/WBn6mX51H1ar4RWtceDEcDU4H5fIv5tsY3ip2hU+fTPg== - -"@algolia/cache-in-memory@4.9.1": - version "4.9.1" - resolved "https://registry.yarnpkg.com/@algolia/cache-in-memory/-/cache-in-memory-4.9.1.tgz#3fd1d67aec804b6cc8439015b8b9c712a45c7ae0" - integrity sha512-IEJrHonvdymW2CnRfJtsTVWyfAH05xPEFkGXGCw00+6JNCj8Dln3TeaRLiaaY1srlyGedkemekQm1/Xb46CGOQ== - dependencies: - "@algolia/cache-common" "4.9.1" - -"@algolia/client-account@4.9.1": - version "4.9.1" - resolved "https://registry.yarnpkg.com/@algolia/client-account/-/client-account-4.9.1.tgz#f2c1b3e49de2ee1fca44b8b5e64e1ce0dbdff0db" - integrity sha512-Shpjeuwb7i2LR5QuWREb6UbEQLGB+Pl/J5+wPgILJDP/uWp7jpl0ase9mYNQGKj7TjztpSpQCPZ3dSHPnzZPfw== - dependencies: - "@algolia/client-common" "4.9.1" - "@algolia/client-search" "4.9.1" - "@algolia/transporter" "4.9.1" - -"@algolia/client-analytics@4.9.1": - version "4.9.1" - resolved "https://registry.yarnpkg.com/@algolia/client-analytics/-/client-analytics-4.9.1.tgz#56972496526910c53c5ce7844f4571efba63eb5f" - integrity sha512-/g6OkOSIA+A0t/tjvbL6iG/zV4El4LPFgv/tcAYHTH27BmlNtnEXw+iFpGjeUlQoPily9WVB3QNLMJkaNwL3HA== - dependencies: - "@algolia/client-common" "4.9.1" - "@algolia/client-search" "4.9.1" - "@algolia/requester-common" "4.9.1" - "@algolia/transporter" "4.9.1" - -"@algolia/client-common@4.9.1": - version "4.9.1" - resolved "https://registry.yarnpkg.com/@algolia/client-common/-/client-common-4.9.1.tgz#ae313b65d3249efcb4fafd2e92ed1fa2fd075482" - integrity sha512-UziRTZ8km3qwoVPIyEre8TV6V+MX7UtbfVqPmSafZ0xu41UUZ+sL56YoKjOXkbKuybeIC9prXMGy/ID5bXkTqg== - dependencies: - "@algolia/requester-common" "4.9.1" - "@algolia/transporter" "4.9.1" - -"@algolia/client-recommendation@4.9.1": - version "4.9.1" - resolved "https://registry.yarnpkg.com/@algolia/client-recommendation/-/client-recommendation-4.9.1.tgz#217af2a38d37ab12cf23a419cc9a576af9d15b13" - integrity sha512-Drtvvm1PNIOpYf4HFlkPFstFQ3IsN+TRmxur2F7y6Faplb5ybISa8ithu1tmlTdyTf3A78hQUQjgJet6qD2XZw== - dependencies: - "@algolia/client-common" "4.9.1" - "@algolia/requester-common" "4.9.1" - "@algolia/transporter" "4.9.1" - -"@algolia/client-search@4.9.1": - version "4.9.1" - resolved "https://registry.yarnpkg.com/@algolia/client-search/-/client-search-4.9.1.tgz#a2fbc47a1b343dade9a8b06310231d51ff675b1b" - integrity sha512-r9Cw2r8kJr45iYncFDht6EshARghU265wuY8Q8oHrpFHjAziEYdsUOdNmQKbsSH5J3gLjDPx1EI5DzVd6ivn3w== - dependencies: - "@algolia/client-common" "4.9.1" - "@algolia/requester-common" "4.9.1" - "@algolia/transporter" "4.9.1" - -"@algolia/logger-common@4.9.1": - version "4.9.1" - resolved "https://registry.yarnpkg.com/@algolia/logger-common/-/logger-common-4.9.1.tgz#3323834095f2916338d2535d2df91c4723ac19f2" - integrity sha512-9mPrbFlFyPT7or/7PXTiJjyOewWB9QRkZKVXkt5zHAUiUzGxmmdpJIGpPv3YQnDur8lXrXaRI0MHXUuIDMY1ng== - -"@algolia/logger-console@4.9.1": - version "4.9.1" - resolved "https://registry.yarnpkg.com/@algolia/logger-console/-/logger-console-4.9.1.tgz#c324ef26843dbed06b44586309331dbb949744ad" - integrity sha512-74VUwjtFjFpjZpi3QoHIPv0kcr3vWUSHX/Vs8PJW3lPsD4CgyhFenQbG9v+ZnyH0JrJwiYTtzfmrVh7IMWZGrQ== - dependencies: - "@algolia/logger-common" "4.9.1" - -"@algolia/requester-browser-xhr@4.9.1": - version "4.9.1" - resolved "https://registry.yarnpkg.com/@algolia/requester-browser-xhr/-/requester-browser-xhr-4.9.1.tgz#0812f3c7c4105a4646c0fba8429b172b2d0e01c5" - integrity sha512-zc46tk5o0ikOAz3uYiRAMxC2iVKAMFKT7nNZnLB5IzT0uqAh7pz/+D/UvIxP4bKmsllpBSnPcpfQF+OI4Ag/BA== - dependencies: - "@algolia/requester-common" "4.9.1" - -"@algolia/requester-common@4.9.1": - version "4.9.1" - resolved "https://registry.yarnpkg.com/@algolia/requester-common/-/requester-common-4.9.1.tgz#50fcf4c7c1ed7ae13159167ac1da2844d036a630" - integrity sha512-9hPgXnlCSbqJqF69M5x5WN3h51Dc+mk/iWNeJSVxExHGvCDfBBZd0v6S15i8q2a9cD1I2RnhMpbnX5BmGtabVA== - -"@algolia/requester-node-http@4.9.1": - version "4.9.1" - resolved "https://registry.yarnpkg.com/@algolia/requester-node-http/-/requester-node-http-4.9.1.tgz#70054a0aa5643072404fcb68042eec97c7abd1c8" - integrity sha512-vYNVbSCuyrCSCjHBQJk+tLZtWCjvvDf5tSbRJjyJYMqpnXuIuP7gZm24iHil4NPYBhbBj5NU2ZDAhc/gTn75Ag== - dependencies: - "@algolia/requester-common" "4.9.1" - -"@algolia/transporter@4.9.1": - version "4.9.1" - resolved "https://registry.yarnpkg.com/@algolia/transporter/-/transporter-4.9.1.tgz#63ef3d9ae3b6556fa1ff1e6265bbab482bd084b7" - integrity sha512-AbjFfGzX+cAuj7Qyc536OxIQzjFOA5FU2ANGStx8LBH+AKXScwfkx67C05riuaRR5adSCLMSEbVvUscH0nF+6A== - dependencies: - "@algolia/cache-common" "4.9.1" - "@algolia/logger-common" "4.9.1" - "@algolia/requester-common" "4.9.1" - -"@babel/code-frame@7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.8.3.tgz#33e25903d7481181534e12ec0a25f16b6fcf419e" - integrity sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g== - dependencies: - "@babel/highlight" "^7.8.3" - -"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.10.4", "@babel/code-frame@^7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.12.13.tgz#dcfc826beef65e75c50e21d3837d7d95798dd658" - integrity sha512-HV1Cm0Q3ZrpCR93tkWOYiuYIgLxZXZFVG2VgK+MBWjUqZTundupbfx2aXarXuw5Ko5aMcjtJgbSs4vUGBS5v6g== - dependencies: - "@babel/highlight" "^7.12.13" - -"@babel/compat-data@^7.13.11", "@babel/compat-data@^7.13.15", "@babel/compat-data@^7.13.8", "@babel/compat-data@^7.14.0": - version "7.14.0" - resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.14.0.tgz#a901128bce2ad02565df95e6ecbf195cf9465919" - integrity sha512-vu9V3uMM/1o5Hl5OekMUowo3FqXLJSw+s+66nt0fSWVWTtmosdzn45JHOB3cPtZoe6CTBDzvSw0RdOY85Q37+Q== - -"@babel/core@7.12.9": - version "7.12.9" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.12.9.tgz#fd450c4ec10cdbb980e2928b7aa7a28484593fc8" - integrity sha512-gTXYh3M5wb7FRXQy+FErKFAv90BnlOuNn1QkCK2lREoPAjrQCO49+HVSrFoe5uakFAF5eenS75KbO2vQiLrTMQ== - dependencies: - "@babel/code-frame" "^7.10.4" - "@babel/generator" "^7.12.5" - "@babel/helper-module-transforms" "^7.12.1" - "@babel/helpers" "^7.12.5" - "@babel/parser" "^7.12.7" - "@babel/template" "^7.12.7" - "@babel/traverse" "^7.12.9" - "@babel/types" "^7.12.7" - convert-source-map "^1.7.0" - debug "^4.1.0" - gensync "^1.0.0-beta.1" - json5 "^2.1.2" - lodash "^4.17.19" - resolve "^1.3.2" - semver "^5.4.1" - source-map "^0.5.0" - -"@babel/core@^7.12.3", "@babel/core@^7.9.0": - version "7.14.0" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.14.0.tgz#47299ff3ec8d111b493f1a9d04bf88c04e728d88" - integrity sha512-8YqpRig5NmIHlMLw09zMlPTvUVMILjqCOtVgu+TVNWEBvy9b5I3RRyhqnrV4hjgEK7n8P9OqvkWJAFmEL6Wwfw== - dependencies: - "@babel/code-frame" "^7.12.13" - "@babel/generator" "^7.14.0" - "@babel/helper-compilation-targets" "^7.13.16" - "@babel/helper-module-transforms" "^7.14.0" - "@babel/helpers" "^7.14.0" - "@babel/parser" "^7.14.0" - "@babel/template" "^7.12.13" - "@babel/traverse" "^7.14.0" - "@babel/types" "^7.14.0" - convert-source-map "^1.7.0" - debug "^4.1.0" - gensync "^1.0.0-beta.2" - json5 "^2.1.2" - semver "^6.3.0" - source-map "^0.5.0" - -"@babel/generator@^7.12.5", "@babel/generator@^7.14.0": - version "7.14.1" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.14.1.tgz#1f99331babd65700183628da186f36f63d615c93" - integrity sha512-TMGhsXMXCP/O1WtQmZjpEYDhCYC9vFhayWZPJSZCGkPJgUqX0rF0wwtrYvnzVxIjcF80tkUertXVk5cwqi5cAQ== - dependencies: - "@babel/types" "^7.14.1" - jsesc "^2.5.1" - source-map "^0.5.0" - -"@babel/helper-annotate-as-pure@^7.10.4", "@babel/helper-annotate-as-pure@^7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.12.13.tgz#0f58e86dfc4bb3b1fcd7db806570e177d439b6ab" - integrity sha512-7YXfX5wQ5aYM/BOlbSccHDbuXXFPxeoUmfWtz8le2yTkTZc+BxsiEnENFoi2SlmA8ewDkG2LgIMIVzzn2h8kfw== - dependencies: - "@babel/types" "^7.12.13" - -"@babel/helper-builder-binary-assignment-operator-visitor@^7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.12.13.tgz#6bc20361c88b0a74d05137a65cac8d3cbf6f61fc" - integrity sha512-CZOv9tGphhDRlVjVkAgm8Nhklm9RzSmWpX2my+t7Ua/KT616pEzXsQCjinzvkRvHWJ9itO4f296efroX23XCMA== - dependencies: - "@babel/helper-explode-assignable-expression" "^7.12.13" - "@babel/types" "^7.12.13" - -"@babel/helper-compilation-targets@^7.13.0", "@babel/helper-compilation-targets@^7.13.16", "@babel/helper-compilation-targets@^7.13.8": - version "7.13.16" - resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.13.16.tgz#6e91dccf15e3f43e5556dffe32d860109887563c" - integrity sha512-3gmkYIrpqsLlieFwjkGgLaSHmhnvlAYzZLlYVjlW+QwI+1zE17kGxuJGmIqDQdYp56XdmGeD+Bswx0UTyG18xA== - dependencies: - "@babel/compat-data" "^7.13.15" - "@babel/helper-validator-option" "^7.12.17" - browserslist "^4.14.5" - semver "^6.3.0" - -"@babel/helper-create-class-features-plugin@^7.13.0", "@babel/helper-create-class-features-plugin@^7.14.0": - version "7.14.1" - resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.14.1.tgz#1fe11b376f3c41650ad9fedc665b0068722ea76c" - integrity sha512-r8rsUahG4ywm0QpGcCrLaUSOuNAISR3IZCg4Fx05Ozq31aCUrQsTLH6KPxy0N5ULoQ4Sn9qjNdGNtbPWAC6hYg== - dependencies: - "@babel/helper-annotate-as-pure" "^7.12.13" - "@babel/helper-function-name" "^7.12.13" - "@babel/helper-member-expression-to-functions" "^7.13.12" - "@babel/helper-optimise-call-expression" "^7.12.13" - "@babel/helper-replace-supers" "^7.13.12" - "@babel/helper-split-export-declaration" "^7.12.13" - -"@babel/helper-create-regexp-features-plugin@^7.12.13": - version "7.12.17" - resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.12.17.tgz#a2ac87e9e319269ac655b8d4415e94d38d663cb7" - integrity sha512-p2VGmBu9oefLZ2nQpgnEnG0ZlRPvL8gAGvPUMQwUdaE8k49rOMuZpOwdQoy5qJf6K8jL3bcAMhVUlHAjIgJHUg== - dependencies: - "@babel/helper-annotate-as-pure" "^7.12.13" - regexpu-core "^4.7.1" - -"@babel/helper-define-polyfill-provider@^0.2.0": - version "0.2.0" - resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.2.0.tgz#a640051772045fedaaecc6f0c6c69f02bdd34bf1" - integrity sha512-JT8tHuFjKBo8NnaUbblz7mIu1nnvUDiHVjXXkulZULyidvo/7P6TY7+YqpV37IfF+KUFxmlK04elKtGKXaiVgw== - dependencies: - "@babel/helper-compilation-targets" "^7.13.0" - "@babel/helper-module-imports" "^7.12.13" - "@babel/helper-plugin-utils" "^7.13.0" - "@babel/traverse" "^7.13.0" - debug "^4.1.1" - lodash.debounce "^4.0.8" - resolve "^1.14.2" - semver "^6.1.2" - -"@babel/helper-explode-assignable-expression@^7.12.13": - version "7.13.0" - resolved "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.13.0.tgz#17b5c59ff473d9f956f40ef570cf3a76ca12657f" - integrity sha512-qS0peLTDP8kOisG1blKbaoBg/o9OSa1qoumMjTK5pM+KDTtpxpsiubnCGP34vK8BXGcb2M9eigwgvoJryrzwWA== - dependencies: - "@babel/types" "^7.13.0" - -"@babel/helper-function-name@^7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.12.13.tgz#93ad656db3c3c2232559fd7b2c3dbdcbe0eb377a" - integrity sha512-TZvmPn0UOqmvi5G4vvw0qZTpVptGkB1GL61R6lKvrSdIxGm5Pky7Q3fpKiIkQCAtRCBUwB0PaThlx9vebCDSwA== - dependencies: - "@babel/helper-get-function-arity" "^7.12.13" - "@babel/template" "^7.12.13" - "@babel/types" "^7.12.13" - -"@babel/helper-get-function-arity@^7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.12.13.tgz#bc63451d403a3b3082b97e1d8b3fe5bd4091e583" - integrity sha512-DjEVzQNz5LICkzN0REdpD5prGoidvbdYk1BVgRUOINaWJP2t6avB27X1guXK1kXNrX0WMfsrm1A/ZBthYuIMQg== - dependencies: - "@babel/types" "^7.12.13" - -"@babel/helper-hoist-variables@^7.13.0": - version "7.13.16" - resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.13.16.tgz#1b1651249e94b51f8f0d33439843e33e39775b30" - integrity sha512-1eMtTrXtrwscjcAeO4BVK+vvkxaLJSPFz1w1KLawz6HLNi9bPFGBNwwDyVfiu1Tv/vRRFYfoGaKhmAQPGPn5Wg== - dependencies: - "@babel/traverse" "^7.13.15" - "@babel/types" "^7.13.16" - -"@babel/helper-member-expression-to-functions@^7.13.12": - version "7.13.12" - resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.13.12.tgz#dfe368f26d426a07299d8d6513821768216e6d72" - integrity sha512-48ql1CLL59aKbU94Y88Xgb2VFy7a95ykGRbJJaaVv+LX5U8wFpLfiGXJJGUozsmA1oEh/o5Bp60Voq7ACyA/Sw== - dependencies: - "@babel/types" "^7.13.12" - -"@babel/helper-module-imports@^7.12.13", "@babel/helper-module-imports@^7.13.12": - version "7.13.12" - resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.13.12.tgz#c6a369a6f3621cb25da014078684da9196b61977" - integrity sha512-4cVvR2/1B693IuOvSI20xqqa/+bl7lqAMR59R4iu39R9aOX8/JoYY1sFaNvUMyMBGnHdwvJgUrzNLoUZxXypxA== - dependencies: - "@babel/types" "^7.13.12" - -"@babel/helper-module-transforms@^7.12.1", "@babel/helper-module-transforms@^7.13.0", "@babel/helper-module-transforms@^7.14.0": - version "7.14.0" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.14.0.tgz#8fcf78be220156f22633ee204ea81f73f826a8ad" - integrity sha512-L40t9bxIuGOfpIGA3HNkJhU9qYrf4y5A5LUSw7rGMSn+pcG8dfJ0g6Zval6YJGd2nEjI7oP00fRdnhLKndx6bw== - dependencies: - "@babel/helper-module-imports" "^7.13.12" - "@babel/helper-replace-supers" "^7.13.12" - "@babel/helper-simple-access" "^7.13.12" - "@babel/helper-split-export-declaration" "^7.12.13" - "@babel/helper-validator-identifier" "^7.14.0" - "@babel/template" "^7.12.13" - "@babel/traverse" "^7.14.0" - "@babel/types" "^7.14.0" - -"@babel/helper-optimise-call-expression@^7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.12.13.tgz#5c02d171b4c8615b1e7163f888c1c81c30a2aaea" - integrity sha512-BdWQhoVJkp6nVjB7nkFWcn43dkprYauqtk++Py2eaf/GRDFm5BxRqEIZCiHlZUGAVmtwKcsVL1dC68WmzeFmiA== - dependencies: - "@babel/types" "^7.12.13" - -"@babel/helper-plugin-utils@7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz#2f75a831269d4f677de49986dff59927533cf375" - integrity sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg== - -"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.13.0", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": - version "7.13.0" - resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.13.0.tgz#806526ce125aed03373bc416a828321e3a6a33af" - integrity sha512-ZPafIPSwzUlAoWT8DKs1W2VyF2gOWthGd5NGFMsBcMMol+ZhK+EQY/e6V96poa6PA/Bh+C9plWN0hXO1uB8AfQ== - -"@babel/helper-remap-async-to-generator@^7.13.0": - version "7.13.0" - resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.13.0.tgz#376a760d9f7b4b2077a9dd05aa9c3927cadb2209" - integrity sha512-pUQpFBE9JvC9lrQbpX0TmeNIy5s7GnZjna2lhhcHC7DzgBs6fWn722Y5cfwgrtrqc7NAJwMvOa0mKhq6XaE4jg== - dependencies: - "@babel/helper-annotate-as-pure" "^7.12.13" - "@babel/helper-wrap-function" "^7.13.0" - "@babel/types" "^7.13.0" - -"@babel/helper-replace-supers@^7.12.13", "@babel/helper-replace-supers@^7.13.0", "@babel/helper-replace-supers@^7.13.12": - version "7.13.12" - resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.13.12.tgz#6442f4c1ad912502481a564a7386de0c77ff3804" - integrity sha512-Gz1eiX+4yDO8mT+heB94aLVNCL+rbuT2xy4YfyNqu8F+OI6vMvJK891qGBTqL9Uc8wxEvRW92Id6G7sDen3fFw== - dependencies: - "@babel/helper-member-expression-to-functions" "^7.13.12" - "@babel/helper-optimise-call-expression" "^7.12.13" - "@babel/traverse" "^7.13.0" - "@babel/types" "^7.13.12" - -"@babel/helper-simple-access@^7.13.12": - version "7.13.12" - resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.13.12.tgz#dd6c538afb61819d205a012c31792a39c7a5eaf6" - integrity sha512-7FEjbrx5SL9cWvXioDbnlYTppcZGuCY6ow3/D5vMggb2Ywgu4dMrpTJX0JdQAIcRRUElOIxF3yEooa9gUb9ZbA== - dependencies: - "@babel/types" "^7.13.12" - -"@babel/helper-skip-transparent-expression-wrappers@^7.12.1": - version "7.12.1" - resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.12.1.tgz#462dc63a7e435ade8468385c63d2b84cce4b3cbf" - integrity sha512-Mf5AUuhG1/OCChOJ/HcADmvcHM42WJockombn8ATJG3OnyiSxBK/Mm5x78BQWvmtXZKHgbjdGL2kin/HOLlZGA== - dependencies: - "@babel/types" "^7.12.1" - -"@babel/helper-split-export-declaration@^7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.12.13.tgz#e9430be00baf3e88b0e13e6f9d4eaf2136372b05" - integrity sha512-tCJDltF83htUtXx5NLcaDqRmknv652ZWCHyoTETf1CXYJdPC7nohZohjUgieXhv0hTJdRf2FjDueFehdNucpzg== - dependencies: - "@babel/types" "^7.12.13" - -"@babel/helper-validator-identifier@^7.12.11", "@babel/helper-validator-identifier@^7.14.0": - version "7.14.0" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.0.tgz#d26cad8a47c65286b15df1547319a5d0bcf27288" - integrity sha512-V3ts7zMSu5lfiwWDVWzRDGIN+lnCEUdaXgtVHJgLb1rGaA6jMrtB9EmE7L18foXJIE8Un/A/h6NJfGQp/e1J4A== - -"@babel/helper-validator-option@^7.12.17": - version "7.12.17" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.12.17.tgz#d1fbf012e1a79b7eebbfdc6d270baaf8d9eb9831" - integrity sha512-TopkMDmLzq8ngChwRlyjR6raKD6gMSae4JdYDB8bByKreQgG0RBTuKe9LRxW3wFtUnjxOPRKBDwEH6Mg5KeDfw== - -"@babel/helper-wrap-function@^7.13.0": - version "7.13.0" - resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.13.0.tgz#bdb5c66fda8526ec235ab894ad53a1235c79fcc4" - integrity sha512-1UX9F7K3BS42fI6qd2A4BjKzgGjToscyZTdp1DjknHLCIvpgne6918io+aL5LXFcER/8QWiwpoY902pVEqgTXA== - dependencies: - "@babel/helper-function-name" "^7.12.13" - "@babel/template" "^7.12.13" - "@babel/traverse" "^7.13.0" - "@babel/types" "^7.13.0" - -"@babel/helpers@^7.12.5", "@babel/helpers@^7.14.0": - version "7.14.0" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.14.0.tgz#ea9b6be9478a13d6f961dbb5f36bf75e2f3b8f62" - integrity sha512-+ufuXprtQ1D1iZTO/K9+EBRn+qPWMJjZSw/S0KlFrxCw4tkrzv9grgpDHkY9MeQTjTY8i2sp7Jep8DfU6tN9Mg== - dependencies: - "@babel/template" "^7.12.13" - "@babel/traverse" "^7.14.0" - "@babel/types" "^7.14.0" - -"@babel/highlight@^7.12.13", "@babel/highlight@^7.8.3": - version "7.14.0" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.14.0.tgz#3197e375711ef6bf834e67d0daec88e4f46113cf" - integrity sha512-YSCOwxvTYEIMSGaBQb5kDDsCopDdiUGsqpatp3fOlI4+2HQSkTmEVWnVuySdAC5EWCqSWWTv0ib63RjR7dTBdg== - dependencies: - "@babel/helper-validator-identifier" "^7.14.0" - chalk "^2.0.0" - js-tokens "^4.0.0" - -"@babel/parser@^7.12.13", "@babel/parser@^7.12.7", "@babel/parser@^7.14.0", "@babel/parser@^7.9.4": - version "7.14.1" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.14.1.tgz#1bd644b5db3f5797c4479d89ec1817fe02b84c47" - integrity sha512-muUGEKu8E/ftMTPlNp+mc6zL3E9zKWmF5sDHZ5MSsoTP9Wyz64AhEf9kD08xYJ7w6Hdcu8H550ircnPyWSIF0Q== - -"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.13.12": - version "7.13.12" - resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.13.12.tgz#a3484d84d0b549f3fc916b99ee4783f26fabad2a" - integrity sha512-d0u3zWKcoZf379fOeJdr1a5WPDny4aOFZ6hlfKivgK0LY7ZxNfoaHL2fWwdGtHyVvra38FC+HVYkO+byfSA8AQ== - dependencies: - "@babel/helper-plugin-utils" "^7.13.0" - "@babel/helper-skip-transparent-expression-wrappers" "^7.12.1" - "@babel/plugin-proposal-optional-chaining" "^7.13.12" - -"@babel/plugin-proposal-async-generator-functions@^7.13.15": - version "7.13.15" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.13.15.tgz#80e549df273a3b3050431b148c892491df1bcc5b" - integrity sha512-VapibkWzFeoa6ubXy/NgV5U2U4MVnUlvnx6wo1XhlsaTrLYWE0UFpDQsVrmn22q5CzeloqJ8gEMHSKxuee6ZdA== - dependencies: - "@babel/helper-plugin-utils" "^7.13.0" - "@babel/helper-remap-async-to-generator" "^7.13.0" - "@babel/plugin-syntax-async-generators" "^7.8.4" - -"@babel/plugin-proposal-class-properties@^7.10.4", "@babel/plugin-proposal-class-properties@^7.13.0": - version "7.13.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.13.0.tgz#146376000b94efd001e57a40a88a525afaab9f37" - integrity sha512-KnTDjFNC1g+45ka0myZNvSBFLhNCLN+GeGYLDEA8Oq7MZ6yMgfLoIRh86GRT0FjtJhZw8JyUskP9uvj5pHM9Zg== - dependencies: - "@babel/helper-create-class-features-plugin" "^7.13.0" - "@babel/helper-plugin-utils" "^7.13.0" - -"@babel/plugin-proposal-class-static-block@^7.13.11": - version "7.13.11" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.13.11.tgz#6fcbba4a962702c17e5371a0c7b39afde186d703" - integrity sha512-fJTdFI4bfnMjvxJyNuaf8i9mVcZ0UhetaGEUHaHV9KEnibLugJkZAtXikR8KcYj+NYmI4DZMS8yQAyg+hvfSqg== - dependencies: - "@babel/helper-plugin-utils" "^7.13.0" - "@babel/plugin-syntax-class-static-block" "^7.12.13" - -"@babel/plugin-proposal-dynamic-import@^7.13.8": - version "7.13.8" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.13.8.tgz#876a1f6966e1dec332e8c9451afda3bebcdf2e1d" - integrity sha512-ONWKj0H6+wIRCkZi9zSbZtE/r73uOhMVHh256ys0UzfM7I3d4n+spZNWjOnJv2gzopumP2Wxi186vI8N0Y2JyQ== - dependencies: - "@babel/helper-plugin-utils" "^7.13.0" - "@babel/plugin-syntax-dynamic-import" "^7.8.3" - -"@babel/plugin-proposal-export-namespace-from@^7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.12.13.tgz#393be47a4acd03fa2af6e3cde9b06e33de1b446d" - integrity sha512-INAgtFo4OnLN3Y/j0VwAgw3HDXcDtX+C/erMvWzuV9v71r7urb6iyMXu7eM9IgLr1ElLlOkaHjJ0SbCmdOQ3Iw== - dependencies: - "@babel/helper-plugin-utils" "^7.12.13" - "@babel/plugin-syntax-export-namespace-from" "^7.8.3" - -"@babel/plugin-proposal-json-strings@^7.13.8": - version "7.13.8" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.13.8.tgz#bf1fb362547075afda3634ed31571c5901afef7b" - integrity sha512-w4zOPKUFPX1mgvTmL/fcEqy34hrQ1CRcGxdphBc6snDnnqJ47EZDIyop6IwXzAC8G916hsIuXB2ZMBCExC5k7Q== - dependencies: - "@babel/helper-plugin-utils" "^7.13.0" - "@babel/plugin-syntax-json-strings" "^7.8.3" - -"@babel/plugin-proposal-logical-assignment-operators@^7.13.8": - version "7.13.8" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.13.8.tgz#93fa78d63857c40ce3c8c3315220fd00bfbb4e1a" - integrity sha512-aul6znYB4N4HGweImqKn59Su9RS8lbUIqxtXTOcAGtNIDczoEFv+l1EhmX8rUBp3G1jMjKJm8m0jXVp63ZpS4A== - dependencies: - "@babel/helper-plugin-utils" "^7.13.0" - "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" - -"@babel/plugin-proposal-nullish-coalescing-operator@^7.10.1", "@babel/plugin-proposal-nullish-coalescing-operator@^7.13.8": - version "7.13.8" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.13.8.tgz#3730a31dafd3c10d8ccd10648ed80a2ac5472ef3" - integrity sha512-iePlDPBn//UhxExyS9KyeYU7RM9WScAG+D3Hhno0PLJebAEpDZMocbDe64eqynhNAnwz/vZoL/q/QB2T1OH39A== - dependencies: - "@babel/helper-plugin-utils" "^7.13.0" - "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" - -"@babel/plugin-proposal-numeric-separator@^7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.12.13.tgz#bd9da3188e787b5120b4f9d465a8261ce67ed1db" - integrity sha512-O1jFia9R8BUCl3ZGB7eitaAPu62TXJRHn7rh+ojNERCFyqRwJMTmhz+tJ+k0CwI6CLjX/ee4qW74FSqlq9I35w== - dependencies: - "@babel/helper-plugin-utils" "^7.12.13" - "@babel/plugin-syntax-numeric-separator" "^7.10.4" - -"@babel/plugin-proposal-object-rest-spread@7.12.1": - version "7.12.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.12.1.tgz#def9bd03cea0f9b72283dac0ec22d289c7691069" - integrity sha512-s6SowJIjzlhx8o7lsFx5zmY4At6CTtDvgNQDdPzkBQucle58A6b/TTeEBYtyDgmcXjUTM+vE8YOGHZzzbc/ioA== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - "@babel/plugin-syntax-object-rest-spread" "^7.8.0" - "@babel/plugin-transform-parameters" "^7.12.1" - -"@babel/plugin-proposal-object-rest-spread@^7.13.8": - version "7.13.8" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.13.8.tgz#5d210a4d727d6ce3b18f9de82cc99a3964eed60a" - integrity sha512-DhB2EuB1Ih7S3/IRX5AFVgZ16k3EzfRbq97CxAVI1KSYcW+lexV8VZb7G7L8zuPVSdQMRn0kiBpf/Yzu9ZKH0g== - dependencies: - "@babel/compat-data" "^7.13.8" - "@babel/helper-compilation-targets" "^7.13.8" - "@babel/helper-plugin-utils" "^7.13.0" - "@babel/plugin-syntax-object-rest-spread" "^7.8.3" - "@babel/plugin-transform-parameters" "^7.13.0" - -"@babel/plugin-proposal-optional-catch-binding@^7.13.8": - version "7.13.8" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.13.8.tgz#3ad6bd5901506ea996fc31bdcf3ccfa2bed71107" - integrity sha512-0wS/4DUF1CuTmGo+NiaHfHcVSeSLj5S3e6RivPTg/2k3wOv3jO35tZ6/ZWsQhQMvdgI7CwphjQa/ccarLymHVA== - dependencies: - "@babel/helper-plugin-utils" "^7.13.0" - "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" - -"@babel/plugin-proposal-optional-chaining@^7.10.3", "@babel/plugin-proposal-optional-chaining@^7.13.12": - version "7.13.12" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.13.12.tgz#ba9feb601d422e0adea6760c2bd6bbb7bfec4866" - integrity sha512-fcEdKOkIB7Tf4IxrgEVeFC4zeJSTr78no9wTdBuZZbqF64kzllU0ybo2zrzm7gUQfxGhBgq4E39oRs8Zx/RMYQ== - dependencies: - "@babel/helper-plugin-utils" "^7.13.0" - "@babel/helper-skip-transparent-expression-wrappers" "^7.12.1" - "@babel/plugin-syntax-optional-chaining" "^7.8.3" - -"@babel/plugin-proposal-private-methods@^7.13.0": - version "7.13.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.13.0.tgz#04bd4c6d40f6e6bbfa2f57e2d8094bad900ef787" - integrity sha512-MXyyKQd9inhx1kDYPkFRVOBXQ20ES8Pto3T7UZ92xj2mY0EVD8oAVzeyYuVfy/mxAdTSIayOvg+aVzcHV2bn6Q== - dependencies: - "@babel/helper-create-class-features-plugin" "^7.13.0" - "@babel/helper-plugin-utils" "^7.13.0" - -"@babel/plugin-proposal-private-property-in-object@^7.14.0": - version "7.14.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.14.0.tgz#b1a1f2030586b9d3489cc26179d2eb5883277636" - integrity sha512-59ANdmEwwRUkLjB7CRtwJxxwtjESw+X2IePItA+RGQh+oy5RmpCh/EvVVvh5XQc3yxsm5gtv0+i9oBZhaDNVTg== - dependencies: - "@babel/helper-annotate-as-pure" "^7.12.13" - "@babel/helper-create-class-features-plugin" "^7.14.0" - "@babel/helper-plugin-utils" "^7.13.0" - "@babel/plugin-syntax-private-property-in-object" "^7.14.0" - -"@babel/plugin-proposal-unicode-property-regex@^7.12.13", "@babel/plugin-proposal-unicode-property-regex@^7.4.4": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.12.13.tgz#bebde51339be829c17aaaaced18641deb62b39ba" - integrity sha512-XyJmZidNfofEkqFV5VC/bLabGmO5QzenPO/YOfGuEbgU+2sSwMmio3YLb4WtBgcmmdwZHyVyv8on77IUjQ5Gvg== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.12.13" - "@babel/helper-plugin-utils" "^7.12.13" - -"@babel/plugin-syntax-async-generators@^7.8.4": - version "7.8.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz#a983fb1aeb2ec3f6ed042a210f640e90e786fe0d" - integrity sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-class-properties@^7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz#b5c987274c4a3a82b89714796931a6b53544ae10" - integrity sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA== - dependencies: - "@babel/helper-plugin-utils" "^7.12.13" - -"@babel/plugin-syntax-class-static-block@^7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.12.13.tgz#8e3d674b0613e67975ceac2776c97b60cafc5c9c" - integrity sha512-ZmKQ0ZXR0nYpHZIIuj9zE7oIqCx2hw9TKi+lIo73NNrMPAZGHfS92/VRV0ZmPj6H2ffBgyFHXvJ5NYsNeEaP2A== - dependencies: - "@babel/helper-plugin-utils" "^7.12.13" - -"@babel/plugin-syntax-dynamic-import@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz#62bf98b2da3cd21d626154fc96ee5b3cb68eacb3" - integrity sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-export-namespace-from@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz#028964a9ba80dbc094c915c487ad7c4e7a66465a" - integrity sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q== - dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - -"@babel/plugin-syntax-json-strings@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz#01ca21b668cd8218c9e640cb6dd88c5412b2c96a" - integrity sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-jsx@7.12.1": - version "7.12.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.12.1.tgz#9d9d357cc818aa7ae7935917c1257f67677a0926" - integrity sha512-1yRi7yAtB0ETgxdY9ti/p2TivUxJkTdhu/ZbF9MshVGqOx1TdB3b7xCXs49Fupgg50N45KcAsRP/ZqWjs9SRjg== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-syntax-jsx@^7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.12.13.tgz#044fb81ebad6698fe62c478875575bcbb9b70f15" - integrity sha512-d4HM23Q1K7oq/SLNmG6mRt85l2csmQ0cHRaxRXjKW0YFdEXqlZ5kzFQKH5Uc3rDJECgu+yCRgPkG04Mm98R/1g== - dependencies: - "@babel/helper-plugin-utils" "^7.12.13" - -"@babel/plugin-syntax-logical-assignment-operators@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz#ca91ef46303530448b906652bac2e9fe9941f699" - integrity sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-syntax-nullish-coalescing-operator@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz#167ed70368886081f74b5c36c65a88c03b66d1a9" - integrity sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-numeric-separator@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz#b9b070b3e33570cd9fd07ba7fa91c0dd37b9af97" - integrity sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-syntax-object-rest-spread@7.8.3", "@babel/plugin-syntax-object-rest-spread@^7.8.0", "@babel/plugin-syntax-object-rest-spread@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz#60e225edcbd98a640332a2e72dd3e66f1af55871" - integrity sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-optional-catch-binding@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz#6111a265bcfb020eb9efd0fdfd7d26402b9ed6c1" - integrity sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-optional-chaining@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz#4f69c2ab95167e0180cd5336613f8c5788f7d48a" - integrity sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-private-property-in-object@^7.14.0": - version "7.14.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.0.tgz#762a4babec61176fec6c88480dec40372b140c0b" - integrity sha512-bda3xF8wGl5/5btF794utNOL0Jw+9jE5C1sLZcoK7c4uonE/y3iQiyG+KbkF3WBV/paX58VCpjhxLPkdj5Fe4w== - dependencies: - "@babel/helper-plugin-utils" "^7.13.0" - -"@babel/plugin-syntax-top-level-await@^7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.12.13.tgz#c5f0fa6e249f5b739727f923540cf7a806130178" - integrity sha512-A81F9pDwyS7yM//KwbCSDqy3Uj4NMIurtplxphWxoYtNPov7cJsDkAFNNyVlIZ3jwGycVsurZ+LtOA8gZ376iQ== - dependencies: - "@babel/helper-plugin-utils" "^7.12.13" - -"@babel/plugin-syntax-typescript@^7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.12.13.tgz#9dff111ca64154cef0f4dc52cf843d9f12ce4474" - integrity sha512-cHP3u1JiUiG2LFDKbXnwVad81GvfyIOmCD6HIEId6ojrY0Drfy2q1jw7BwN7dE84+kTnBjLkXoL3IEy/3JPu2w== - dependencies: - "@babel/helper-plugin-utils" "^7.12.13" - -"@babel/plugin-transform-arrow-functions@^7.13.0": - version "7.13.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.13.0.tgz#10a59bebad52d637a027afa692e8d5ceff5e3dae" - integrity sha512-96lgJagobeVmazXFaDrbmCLQxBysKu7U6Do3mLsx27gf5Dk85ezysrs2BZUpXD703U/Su1xTBDxxar2oa4jAGg== - dependencies: - "@babel/helper-plugin-utils" "^7.13.0" - -"@babel/plugin-transform-async-to-generator@^7.13.0": - version "7.13.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.13.0.tgz#8e112bf6771b82bf1e974e5e26806c5c99aa516f" - integrity sha512-3j6E004Dx0K3eGmhxVJxwwI89CTJrce7lg3UrtFuDAVQ/2+SJ/h/aSFOeE6/n0WB1GsOffsJp6MnPQNQ8nmwhg== - dependencies: - "@babel/helper-module-imports" "^7.12.13" - "@babel/helper-plugin-utils" "^7.13.0" - "@babel/helper-remap-async-to-generator" "^7.13.0" - -"@babel/plugin-transform-block-scoped-functions@^7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.12.13.tgz#a9bf1836f2a39b4eb6cf09967739de29ea4bf4c4" - integrity sha512-zNyFqbc3kI/fVpqwfqkg6RvBgFpC4J18aKKMmv7KdQ/1GgREapSJAykLMVNwfRGO3BtHj3YQZl8kxCXPcVMVeg== - dependencies: - "@babel/helper-plugin-utils" "^7.12.13" - -"@babel/plugin-transform-block-scoping@^7.14.1": - version "7.14.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.14.1.tgz#ac1b3a8e3d8cbb31efc6b9be2f74eb9823b74ab2" - integrity sha512-2mQXd0zBrwfp0O1moWIhPpEeTKDvxyHcnma3JATVP1l+CctWBuot6OJG8LQ4DnBj4ZZPSmlb/fm4mu47EOAnVA== - dependencies: - "@babel/helper-plugin-utils" "^7.13.0" - -"@babel/plugin-transform-classes@^7.13.0": - version "7.13.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.13.0.tgz#0265155075c42918bf4d3a4053134176ad9b533b" - integrity sha512-9BtHCPUARyVH1oXGcSJD3YpsqRLROJx5ZNP6tN5vnk17N0SVf9WCtf8Nuh1CFmgByKKAIMstitKduoCmsaDK5g== - dependencies: - "@babel/helper-annotate-as-pure" "^7.12.13" - "@babel/helper-function-name" "^7.12.13" - "@babel/helper-optimise-call-expression" "^7.12.13" - "@babel/helper-plugin-utils" "^7.13.0" - "@babel/helper-replace-supers" "^7.13.0" - "@babel/helper-split-export-declaration" "^7.12.13" - globals "^11.1.0" - -"@babel/plugin-transform-computed-properties@^7.13.0": - version "7.13.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.13.0.tgz#845c6e8b9bb55376b1fa0b92ef0bdc8ea06644ed" - integrity sha512-RRqTYTeZkZAz8WbieLTvKUEUxZlUTdmL5KGMyZj7FnMfLNKV4+r5549aORG/mgojRmFlQMJDUupwAMiF2Q7OUg== - dependencies: - "@babel/helper-plugin-utils" "^7.13.0" - -"@babel/plugin-transform-destructuring@^7.13.17": - version "7.13.17" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.13.17.tgz#678d96576638c19d5b36b332504d3fd6e06dea27" - integrity sha512-UAUqiLv+uRLO+xuBKKMEpC+t7YRNVRqBsWWq1yKXbBZBje/t3IXCiSinZhjn/DC3qzBfICeYd2EFGEbHsh5RLA== - dependencies: - "@babel/helper-plugin-utils" "^7.13.0" - -"@babel/plugin-transform-dotall-regex@^7.12.13", "@babel/plugin-transform-dotall-regex@^7.4.4": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.12.13.tgz#3f1601cc29905bfcb67f53910f197aeafebb25ad" - integrity sha512-foDrozE65ZFdUC2OfgeOCrEPTxdB3yjqxpXh8CH+ipd9CHd4s/iq81kcUpyH8ACGNEPdFqbtzfgzbT/ZGlbDeQ== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.12.13" - "@babel/helper-plugin-utils" "^7.12.13" - -"@babel/plugin-transform-duplicate-keys@^7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.12.13.tgz#6f06b87a8b803fd928e54b81c258f0a0033904de" - integrity sha512-NfADJiiHdhLBW3pulJlJI2NB0t4cci4WTZ8FtdIuNc2+8pslXdPtRRAEWqUY+m9kNOk2eRYbTAOipAxlrOcwwQ== - dependencies: - "@babel/helper-plugin-utils" "^7.12.13" - -"@babel/plugin-transform-exponentiation-operator@^7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.12.13.tgz#4d52390b9a273e651e4aba6aee49ef40e80cd0a1" - integrity sha512-fbUelkM1apvqez/yYx1/oICVnGo2KM5s63mhGylrmXUxK/IAXSIf87QIxVfZldWf4QsOafY6vV3bX8aMHSvNrA== - dependencies: - "@babel/helper-builder-binary-assignment-operator-visitor" "^7.12.13" - "@babel/helper-plugin-utils" "^7.12.13" - -"@babel/plugin-transform-for-of@^7.13.0": - version "7.13.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.13.0.tgz#c799f881a8091ac26b54867a845c3e97d2696062" - integrity sha512-IHKT00mwUVYE0zzbkDgNRP6SRzvfGCYsOxIRz8KsiaaHCcT9BWIkO+H9QRJseHBLOGBZkHUdHiqj6r0POsdytg== - dependencies: - "@babel/helper-plugin-utils" "^7.13.0" - -"@babel/plugin-transform-function-name@^7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.12.13.tgz#bb024452f9aaed861d374c8e7a24252ce3a50051" - integrity sha512-6K7gZycG0cmIwwF7uMK/ZqeCikCGVBdyP2J5SKNCXO5EOHcqi+z7Jwf8AmyDNcBgxET8DrEtCt/mPKPyAzXyqQ== - dependencies: - "@babel/helper-function-name" "^7.12.13" - "@babel/helper-plugin-utils" "^7.12.13" - -"@babel/plugin-transform-literals@^7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.12.13.tgz#2ca45bafe4a820197cf315794a4d26560fe4bdb9" - integrity sha512-FW+WPjSR7hiUxMcKqyNjP05tQ2kmBCdpEpZHY1ARm96tGQCCBvXKnpjILtDplUnJ/eHZ0lALLM+d2lMFSpYJrQ== - dependencies: - "@babel/helper-plugin-utils" "^7.12.13" - -"@babel/plugin-transform-member-expression-literals@^7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.12.13.tgz#5ffa66cd59b9e191314c9f1f803b938e8c081e40" - integrity sha512-kxLkOsg8yir4YeEPHLuO2tXP9R/gTjpuTOjshqSpELUN3ZAg2jfDnKUvzzJxObun38sw3wm4Uu69sX/zA7iRvg== - dependencies: - "@babel/helper-plugin-utils" "^7.12.13" - -"@babel/plugin-transform-modules-amd@^7.14.0": - version "7.14.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.14.0.tgz#589494b5b290ff76cf7f59c798011f6d77026553" - integrity sha512-CF4c5LX4LQ03LebQxJ5JZes2OYjzBuk1TdiF7cG7d5dK4lAdw9NZmaxq5K/mouUdNeqwz3TNjnW6v01UqUNgpQ== - dependencies: - "@babel/helper-module-transforms" "^7.14.0" - "@babel/helper-plugin-utils" "^7.13.0" - babel-plugin-dynamic-import-node "^2.3.3" - -"@babel/plugin-transform-modules-commonjs@^7.14.0": - version "7.14.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.14.0.tgz#52bc199cb581e0992edba0f0f80356467587f161" - integrity sha512-EX4QePlsTaRZQmw9BsoPeyh5OCtRGIhwfLquhxGp5e32w+dyL8htOcDwamlitmNFK6xBZYlygjdye9dbd9rUlQ== - dependencies: - "@babel/helper-module-transforms" "^7.14.0" - "@babel/helper-plugin-utils" "^7.13.0" - "@babel/helper-simple-access" "^7.13.12" - babel-plugin-dynamic-import-node "^2.3.3" - -"@babel/plugin-transform-modules-systemjs@^7.13.8": - version "7.13.8" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.13.8.tgz#6d066ee2bff3c7b3d60bf28dec169ad993831ae3" - integrity sha512-hwqctPYjhM6cWvVIlOIe27jCIBgHCsdH2xCJVAYQm7V5yTMoilbVMi9f6wKg0rpQAOn6ZG4AOyvCqFF/hUh6+A== - dependencies: - "@babel/helper-hoist-variables" "^7.13.0" - "@babel/helper-module-transforms" "^7.13.0" - "@babel/helper-plugin-utils" "^7.13.0" - "@babel/helper-validator-identifier" "^7.12.11" - babel-plugin-dynamic-import-node "^2.3.3" - -"@babel/plugin-transform-modules-umd@^7.14.0": - version "7.14.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.14.0.tgz#2f8179d1bbc9263665ce4a65f305526b2ea8ac34" - integrity sha512-nPZdnWtXXeY7I87UZr9VlsWme3Y0cfFFE41Wbxz4bbaexAjNMInXPFUpRRUJ8NoMm0Cw+zxbqjdPmLhcjfazMw== - dependencies: - "@babel/helper-module-transforms" "^7.14.0" - "@babel/helper-plugin-utils" "^7.13.0" - -"@babel/plugin-transform-named-capturing-groups-regex@^7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.12.13.tgz#2213725a5f5bbbe364b50c3ba5998c9599c5c9d9" - integrity sha512-Xsm8P2hr5hAxyYblrfACXpQKdQbx4m2df9/ZZSQ8MAhsadw06+jW7s9zsSw6he+mJZXRlVMyEnVktJo4zjk1WA== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.12.13" - -"@babel/plugin-transform-new-target@^7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.12.13.tgz#e22d8c3af24b150dd528cbd6e685e799bf1c351c" - integrity sha512-/KY2hbLxrG5GTQ9zzZSc3xWiOy379pIETEhbtzwZcw9rvuaVV4Fqy7BYGYOWZnaoXIQYbbJ0ziXLa/sKcGCYEQ== - dependencies: - "@babel/helper-plugin-utils" "^7.12.13" - -"@babel/plugin-transform-object-super@^7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.12.13.tgz#b4416a2d63b8f7be314f3d349bd55a9c1b5171f7" - integrity sha512-JzYIcj3XtYspZDV8j9ulnoMPZZnF/Cj0LUxPOjR89BdBVx+zYJI9MdMIlUZjbXDX+6YVeS6I3e8op+qQ3BYBoQ== - dependencies: - "@babel/helper-plugin-utils" "^7.12.13" - "@babel/helper-replace-supers" "^7.12.13" - -"@babel/plugin-transform-parameters@^7.12.1", "@babel/plugin-transform-parameters@^7.13.0": - version "7.13.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.13.0.tgz#8fa7603e3097f9c0b7ca1a4821bc2fb52e9e5007" - integrity sha512-Jt8k/h/mIwE2JFEOb3lURoY5C85ETcYPnbuAJ96zRBzh1XHtQZfs62ChZ6EP22QlC8c7Xqr9q+e1SU5qttwwjw== - dependencies: - "@babel/helper-plugin-utils" "^7.13.0" - -"@babel/plugin-transform-property-literals@^7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.12.13.tgz#4e6a9e37864d8f1b3bc0e2dce7bf8857db8b1a81" - integrity sha512-nqVigwVan+lR+g8Fj8Exl0UQX2kymtjcWfMOYM1vTYEKujeyv2SkMgazf2qNcK7l4SDiKyTA/nHCPqL4e2zo1A== - dependencies: - "@babel/helper-plugin-utils" "^7.12.13" - -"@babel/plugin-transform-react-constant-elements@^7.12.1": - version "7.13.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.13.13.tgz#0208b1d942bf939cd4f7aa5b255d42602aa4a920" - integrity sha512-SNJU53VM/SjQL0bZhyU+f4kJQz7bQQajnrZRSaU21hruG/NWY41AEM9AWXeXX90pYr/C2yAmTgI6yW3LlLrAUQ== - dependencies: - "@babel/helper-plugin-utils" "^7.13.0" - -"@babel/plugin-transform-react-display-name@^7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.12.13.tgz#c28effd771b276f4647411c9733dbb2d2da954bd" - integrity sha512-MprESJzI9O5VnJZrL7gg1MpdqmiFcUv41Jc7SahxYsNP2kDkFqClxxTZq+1Qv4AFCamm+GXMRDQINNn+qrxmiA== - dependencies: - "@babel/helper-plugin-utils" "^7.12.13" - -"@babel/plugin-transform-react-jsx-development@^7.12.17": - version "7.12.17" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.12.17.tgz#f510c0fa7cd7234153539f9a362ced41a5ca1447" - integrity sha512-BPjYV86SVuOaudFhsJR1zjgxxOhJDt6JHNoD48DxWEIxUCAMjV1ys6DYw4SDYZh0b1QsS2vfIA9t/ZsQGsDOUQ== - dependencies: - "@babel/plugin-transform-react-jsx" "^7.12.17" - -"@babel/plugin-transform-react-jsx@^7.12.17", "@babel/plugin-transform-react-jsx@^7.13.12": - version "7.13.12" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.13.12.tgz#1df5dfaf0f4b784b43e96da6f28d630e775f68b3" - integrity sha512-jcEI2UqIcpCqB5U5DRxIl0tQEProI2gcu+g8VTIqxLO5Iidojb4d77q+fwGseCvd8af/lJ9masp4QWzBXFE2xA== - dependencies: - "@babel/helper-annotate-as-pure" "^7.12.13" - "@babel/helper-module-imports" "^7.13.12" - "@babel/helper-plugin-utils" "^7.13.0" - "@babel/plugin-syntax-jsx" "^7.12.13" - "@babel/types" "^7.13.12" - -"@babel/plugin-transform-react-pure-annotations@^7.12.1": - version "7.12.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.12.1.tgz#05d46f0ab4d1339ac59adf20a1462c91b37a1a42" - integrity sha512-RqeaHiwZtphSIUZ5I85PEH19LOSzxfuEazoY7/pWASCAIBuATQzpSVD+eT6MebeeZT2F4eSL0u4vw6n4Nm0Mjg== - dependencies: - "@babel/helper-annotate-as-pure" "^7.10.4" - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-transform-regenerator@^7.13.15": - version "7.13.15" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.13.15.tgz#e5eb28945bf8b6563e7f818945f966a8d2997f39" - integrity sha512-Bk9cOLSz8DiurcMETZ8E2YtIVJbFCPGW28DJWUakmyVWtQSm6Wsf0p4B4BfEr/eL2Nkhe/CICiUiMOCi1TPhuQ== - dependencies: - regenerator-transform "^0.14.2" - -"@babel/plugin-transform-reserved-words@^7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.12.13.tgz#7d9988d4f06e0fe697ea1d9803188aa18b472695" - integrity sha512-xhUPzDXxZN1QfiOy/I5tyye+TRz6lA7z6xaT4CLOjPRMVg1ldRf0LHw0TDBpYL4vG78556WuHdyO9oi5UmzZBg== - dependencies: - "@babel/helper-plugin-utils" "^7.12.13" - -"@babel/plugin-transform-runtime@^7.9.0": - version "7.13.15" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.13.15.tgz#2eddf585dd066b84102517e10a577f24f76a9cd7" - integrity sha512-d+ezl76gx6Jal08XngJUkXM4lFXK/5Ikl9Mh4HKDxSfGJXmZ9xG64XT2oivBzfxb/eQ62VfvoMkaCZUKJMVrBA== - dependencies: - "@babel/helper-module-imports" "^7.13.12" - "@babel/helper-plugin-utils" "^7.13.0" - babel-plugin-polyfill-corejs2 "^0.2.0" - babel-plugin-polyfill-corejs3 "^0.2.0" - babel-plugin-polyfill-regenerator "^0.2.0" - semver "^6.3.0" - -"@babel/plugin-transform-shorthand-properties@^7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.12.13.tgz#db755732b70c539d504c6390d9ce90fe64aff7ad" - integrity sha512-xpL49pqPnLtf0tVluuqvzWIgLEhuPpZzvs2yabUHSKRNlN7ScYU7aMlmavOeyXJZKgZKQRBlh8rHbKiJDraTSw== - dependencies: - "@babel/helper-plugin-utils" "^7.12.13" - -"@babel/plugin-transform-spread@^7.13.0": - version "7.13.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.13.0.tgz#84887710e273c1815ace7ae459f6f42a5d31d5fd" - integrity sha512-V6vkiXijjzYeFmQTr3dBxPtZYLPcUfY34DebOU27jIl2M/Y8Egm52Hw82CSjjPqd54GTlJs5x+CR7HeNr24ckg== - dependencies: - "@babel/helper-plugin-utils" "^7.13.0" - "@babel/helper-skip-transparent-expression-wrappers" "^7.12.1" - -"@babel/plugin-transform-sticky-regex@^7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.12.13.tgz#760ffd936face73f860ae646fb86ee82f3d06d1f" - integrity sha512-Jc3JSaaWT8+fr7GRvQP02fKDsYk4K/lYwWq38r/UGfaxo89ajud321NH28KRQ7xy1Ybc0VUE5Pz8psjNNDUglg== - dependencies: - "@babel/helper-plugin-utils" "^7.12.13" - -"@babel/plugin-transform-template-literals@^7.13.0": - version "7.13.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.13.0.tgz#a36049127977ad94438dee7443598d1cefdf409d" - integrity sha512-d67umW6nlfmr1iehCcBv69eSUSySk1EsIS8aTDX4Xo9qajAh6mYtcl4kJrBkGXuxZPEgVr7RVfAvNW6YQkd4Mw== - dependencies: - "@babel/helper-plugin-utils" "^7.13.0" - -"@babel/plugin-transform-typeof-symbol@^7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.12.13.tgz#785dd67a1f2ea579d9c2be722de8c84cb85f5a7f" - integrity sha512-eKv/LmUJpMnu4npgfvs3LiHhJua5fo/CysENxa45YCQXZwKnGCQKAg87bvoqSW1fFT+HA32l03Qxsm8ouTY3ZQ== - dependencies: - "@babel/helper-plugin-utils" "^7.12.13" - -"@babel/plugin-transform-typescript@^7.13.0": - version "7.13.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.13.0.tgz#4a498e1f3600342d2a9e61f60131018f55774853" - integrity sha512-elQEwluzaU8R8dbVuW2Q2Y8Nznf7hnjM7+DSCd14Lo5fF63C9qNLbwZYbmZrtV9/ySpSUpkRpQXvJb6xyu4hCQ== - dependencies: - "@babel/helper-create-class-features-plugin" "^7.13.0" - "@babel/helper-plugin-utils" "^7.13.0" - "@babel/plugin-syntax-typescript" "^7.12.13" - -"@babel/plugin-transform-unicode-escapes@^7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.12.13.tgz#840ced3b816d3b5127dd1d12dcedc5dead1a5e74" - integrity sha512-0bHEkdwJ/sN/ikBHfSmOXPypN/beiGqjo+o4/5K+vxEFNPRPdImhviPakMKG4x96l85emoa0Z6cDflsdBusZbw== - dependencies: - "@babel/helper-plugin-utils" "^7.12.13" - -"@babel/plugin-transform-unicode-regex@^7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.12.13.tgz#b52521685804e155b1202e83fc188d34bb70f5ac" - integrity sha512-mDRzSNY7/zopwisPZ5kM9XKCfhchqIYwAKRERtEnhYscZB79VRekuRSoYbN0+KVe3y8+q1h6A4svXtP7N+UoCA== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.12.13" - "@babel/helper-plugin-utils" "^7.12.13" - -"@babel/preset-env@^7.12.1", "@babel/preset-env@^7.9.0": - version "7.14.1" - resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.14.1.tgz#b55914e2e68885ea03f69600b2d3537e54574a93" - integrity sha512-0M4yL1l7V4l+j/UHvxcdvNfLB9pPtIooHTbEhgD/6UGyh8Hy3Bm1Mj0buzjDXATCSz3JFibVdnoJZCrlUCanrQ== - dependencies: - "@babel/compat-data" "^7.14.0" - "@babel/helper-compilation-targets" "^7.13.16" - "@babel/helper-plugin-utils" "^7.13.0" - "@babel/helper-validator-option" "^7.12.17" - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.13.12" - "@babel/plugin-proposal-async-generator-functions" "^7.13.15" - "@babel/plugin-proposal-class-properties" "^7.13.0" - "@babel/plugin-proposal-class-static-block" "^7.13.11" - "@babel/plugin-proposal-dynamic-import" "^7.13.8" - "@babel/plugin-proposal-export-namespace-from" "^7.12.13" - "@babel/plugin-proposal-json-strings" "^7.13.8" - "@babel/plugin-proposal-logical-assignment-operators" "^7.13.8" - "@babel/plugin-proposal-nullish-coalescing-operator" "^7.13.8" - "@babel/plugin-proposal-numeric-separator" "^7.12.13" - "@babel/plugin-proposal-object-rest-spread" "^7.13.8" - "@babel/plugin-proposal-optional-catch-binding" "^7.13.8" - "@babel/plugin-proposal-optional-chaining" "^7.13.12" - "@babel/plugin-proposal-private-methods" "^7.13.0" - "@babel/plugin-proposal-private-property-in-object" "^7.14.0" - "@babel/plugin-proposal-unicode-property-regex" "^7.12.13" - "@babel/plugin-syntax-async-generators" "^7.8.4" - "@babel/plugin-syntax-class-properties" "^7.12.13" - "@babel/plugin-syntax-class-static-block" "^7.12.13" - "@babel/plugin-syntax-dynamic-import" "^7.8.3" - "@babel/plugin-syntax-export-namespace-from" "^7.8.3" - "@babel/plugin-syntax-json-strings" "^7.8.3" - "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" - "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" - "@babel/plugin-syntax-numeric-separator" "^7.10.4" - "@babel/plugin-syntax-object-rest-spread" "^7.8.3" - "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" - "@babel/plugin-syntax-optional-chaining" "^7.8.3" - "@babel/plugin-syntax-private-property-in-object" "^7.14.0" - "@babel/plugin-syntax-top-level-await" "^7.12.13" - "@babel/plugin-transform-arrow-functions" "^7.13.0" - "@babel/plugin-transform-async-to-generator" "^7.13.0" - "@babel/plugin-transform-block-scoped-functions" "^7.12.13" - "@babel/plugin-transform-block-scoping" "^7.14.1" - "@babel/plugin-transform-classes" "^7.13.0" - "@babel/plugin-transform-computed-properties" "^7.13.0" - "@babel/plugin-transform-destructuring" "^7.13.17" - "@babel/plugin-transform-dotall-regex" "^7.12.13" - "@babel/plugin-transform-duplicate-keys" "^7.12.13" - "@babel/plugin-transform-exponentiation-operator" "^7.12.13" - "@babel/plugin-transform-for-of" "^7.13.0" - "@babel/plugin-transform-function-name" "^7.12.13" - "@babel/plugin-transform-literals" "^7.12.13" - "@babel/plugin-transform-member-expression-literals" "^7.12.13" - "@babel/plugin-transform-modules-amd" "^7.14.0" - "@babel/plugin-transform-modules-commonjs" "^7.14.0" - "@babel/plugin-transform-modules-systemjs" "^7.13.8" - "@babel/plugin-transform-modules-umd" "^7.14.0" - "@babel/plugin-transform-named-capturing-groups-regex" "^7.12.13" - "@babel/plugin-transform-new-target" "^7.12.13" - "@babel/plugin-transform-object-super" "^7.12.13" - "@babel/plugin-transform-parameters" "^7.13.0" - "@babel/plugin-transform-property-literals" "^7.12.13" - "@babel/plugin-transform-regenerator" "^7.13.15" - "@babel/plugin-transform-reserved-words" "^7.12.13" - "@babel/plugin-transform-shorthand-properties" "^7.12.13" - "@babel/plugin-transform-spread" "^7.13.0" - "@babel/plugin-transform-sticky-regex" "^7.12.13" - "@babel/plugin-transform-template-literals" "^7.13.0" - "@babel/plugin-transform-typeof-symbol" "^7.12.13" - "@babel/plugin-transform-unicode-escapes" "^7.12.13" - "@babel/plugin-transform-unicode-regex" "^7.12.13" - "@babel/preset-modules" "^0.1.4" - "@babel/types" "^7.14.1" - babel-plugin-polyfill-corejs2 "^0.2.0" - babel-plugin-polyfill-corejs3 "^0.2.0" - babel-plugin-polyfill-regenerator "^0.2.0" - core-js-compat "^3.9.0" - semver "^6.3.0" - -"@babel/preset-modules@^0.1.4": - version "0.1.4" - resolved "https://registry.yarnpkg.com/@babel/preset-modules/-/preset-modules-0.1.4.tgz#362f2b68c662842970fdb5e254ffc8fc1c2e415e" - integrity sha512-J36NhwnfdzpmH41M1DrnkkgAqhZaqr/NBdPfQ677mLzlaXo+oDiv1deyCDtgAhz8p328otdob0Du7+xgHGZbKg== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/plugin-proposal-unicode-property-regex" "^7.4.4" - "@babel/plugin-transform-dotall-regex" "^7.4.4" - "@babel/types" "^7.4.4" - esutils "^2.0.2" - -"@babel/preset-react@^7.12.5", "@babel/preset-react@^7.9.4": - version "7.13.13" - resolved "https://registry.yarnpkg.com/@babel/preset-react/-/preset-react-7.13.13.tgz#fa6895a96c50763fe693f9148568458d5a839761" - integrity sha512-gx+tDLIE06sRjKJkVtpZ/t3mzCDOnPG+ggHZG9lffUbX8+wC739x20YQc9V35Do6ZAxaUc/HhVHIiOzz5MvDmA== - dependencies: - "@babel/helper-plugin-utils" "^7.13.0" - "@babel/helper-validator-option" "^7.12.17" - "@babel/plugin-transform-react-display-name" "^7.12.13" - "@babel/plugin-transform-react-jsx" "^7.13.12" - "@babel/plugin-transform-react-jsx-development" "^7.12.17" - "@babel/plugin-transform-react-pure-annotations" "^7.12.1" - -"@babel/preset-typescript@^7.9.0": - version "7.13.0" - resolved "https://registry.yarnpkg.com/@babel/preset-typescript/-/preset-typescript-7.13.0.tgz#ab107e5f050609d806fbb039bec553b33462c60a" - integrity sha512-LXJwxrHy0N3f6gIJlYbLta1D9BDtHpQeqwzM0LIfjDlr6UE/D5Mc7W4iDiQzaE+ks0sTjT26ArcHWnJVt0QiHw== - dependencies: - "@babel/helper-plugin-utils" "^7.13.0" - "@babel/helper-validator-option" "^7.12.17" - "@babel/plugin-transform-typescript" "^7.13.0" - -"@babel/runtime-corejs3@^7.10.4": - version "7.14.0" - resolved "https://registry.yarnpkg.com/@babel/runtime-corejs3/-/runtime-corejs3-7.14.0.tgz#6bf5fbc0b961f8e3202888cb2cd0fb7a0a9a3f66" - integrity sha512-0R0HTZWHLk6G8jIk0FtoX+AatCtKnswS98VhXwGImFc759PJRp4Tru0PQYZofyijTFUr+gT8Mu7sgXVJLQ0ceg== - dependencies: - core-js-pure "^3.0.0" - regenerator-runtime "^0.13.4" - -"@babel/runtime@^7.1.2", "@babel/runtime@^7.10.2", "@babel/runtime@^7.10.3", "@babel/runtime@^7.12.1", "@babel/runtime@^7.8.4", "@babel/runtime@^7.9.2": - version "7.14.0" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.14.0.tgz#46794bc20b612c5f75e62dd071e24dfd95f1cbe6" - integrity sha512-JELkvo/DlpNdJ7dlyw/eY7E0suy5i5GQH+Vlxaq1nsNJ+H7f4Vtv3jMeCEgRhZZQFXTjldYfQgv2qmM6M1v5wA== - dependencies: - regenerator-runtime "^0.13.4" - -"@babel/template@^7.12.13", "@babel/template@^7.12.7": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.12.13.tgz#530265be8a2589dbb37523844c5bcb55947fb327" - integrity sha512-/7xxiGA57xMo/P2GVvdEumr8ONhFOhfgq2ihK3h1e6THqzTAkHbkXgB0xI9yeTfIUoH3+oAeHhqm/I43OTbbjA== - dependencies: - "@babel/code-frame" "^7.12.13" - "@babel/parser" "^7.12.13" - "@babel/types" "^7.12.13" - -"@babel/traverse@^7.12.9", "@babel/traverse@^7.13.0", "@babel/traverse@^7.13.15", "@babel/traverse@^7.14.0", "@babel/traverse@^7.9.0": - version "7.14.0" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.14.0.tgz#cea0dc8ae7e2b1dec65f512f39f3483e8cc95aef" - integrity sha512-dZ/a371EE5XNhTHomvtuLTUyx6UEoJmYX+DT5zBCQN3McHemsuIaKKYqsc/fs26BEkHs/lBZy0J571LP5z9kQA== - dependencies: - "@babel/code-frame" "^7.12.13" - "@babel/generator" "^7.14.0" - "@babel/helper-function-name" "^7.12.13" - "@babel/helper-split-export-declaration" "^7.12.13" - "@babel/parser" "^7.14.0" - "@babel/types" "^7.14.0" - debug "^4.1.0" - globals "^11.1.0" - -"@babel/types@^7.12.1", "@babel/types@^7.12.13", "@babel/types@^7.12.6", "@babel/types@^7.12.7", "@babel/types@^7.13.0", "@babel/types@^7.13.12", "@babel/types@^7.13.16", "@babel/types@^7.14.0", "@babel/types@^7.14.1", "@babel/types@^7.4.4": - version "7.14.1" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.14.1.tgz#095bd12f1c08ab63eff6e8f7745fa7c9cc15a9db" - integrity sha512-S13Qe85fzLs3gYRUnrpyeIrBJIMYv33qSTg1qoBwiG6nPKwUWAD9odSzWhEedpwOIzSEI6gbdQIWEMiCI42iBA== - dependencies: - "@babel/helper-validator-identifier" "^7.14.0" - to-fast-properties "^2.0.0" - -"@csstools/convert-colors@^1.4.0": - version "1.4.0" - resolved "https://registry.yarnpkg.com/@csstools/convert-colors/-/convert-colors-1.4.0.tgz#ad495dc41b12e75d588c6db8b9834f08fa131eb7" - integrity sha512-5a6wqoJV/xEdbRNKVo6I4hO3VjyDq//8q2f9I6PBAvMesJHFauXDorcNCsr9RzvsZnaWi5NYCcfyqP1QeFHFbw== - -"@docsearch/css@^1.0.0-alpha.28": - version "1.0.0-alpha.28" - resolved "https://registry.yarnpkg.com/@docsearch/css/-/css-1.0.0-alpha.28.tgz#c8a2cd8c1bb3a6855c51892e9dbdab5d42fe6e23" - integrity sha512-1AhRzVdAkrWwhaxTX6/R7SnFHz8yLz1W8I/AldlTrfbNvZs9INk1FZiEFTJdgHaP68nhgQNWSGlQiDiI3y2RYg== - -"@docsearch/react@^1.0.0-alpha.27": - version "1.0.0-alpha.28" - resolved "https://registry.yarnpkg.com/@docsearch/react/-/react-1.0.0-alpha.28.tgz#4f039ed79f8b3332b19a57677b219aebc5010e9d" - integrity sha512-XjJOnCBXn+UZmtuDmgzlVIHnnvh6yHVwG4aFq8AXN6xJEIX3f180FvGaowFWAxgdtHplJxFGux0Xx4piHqBzIw== - dependencies: - "@docsearch/css" "^1.0.0-alpha.28" - "@francoischalifour/autocomplete-core" "^1.0.0-alpha.28" - "@francoischalifour/autocomplete-preset-algolia" "^1.0.0-alpha.28" - algoliasearch "^4.0.0" - -"@docusaurus/core@2.0.0-alpha.64": - version "2.0.0-alpha.64" - resolved "https://registry.yarnpkg.com/@docusaurus/core/-/core-2.0.0-alpha.64.tgz#08031993fcfff78b395091ec06ed1ab38c06e689" - integrity sha512-lIFAaBz5SvN/vIMrljHwUiT+EGglqmCbKWUXsGwg8FZ86SqkD0T5hPtpaQBIDkerSMzOqntokUEcXB46AQsieQ== - dependencies: - "@babel/core" "^7.9.0" - "@babel/plugin-proposal-nullish-coalescing-operator" "^7.10.1" - "@babel/plugin-proposal-optional-chaining" "^7.10.3" - "@babel/plugin-syntax-dynamic-import" "^7.8.3" - "@babel/plugin-transform-runtime" "^7.9.0" - "@babel/preset-env" "^7.9.0" - "@babel/preset-react" "^7.9.4" - "@babel/preset-typescript" "^7.9.0" - "@babel/runtime" "^7.9.2" - "@babel/runtime-corejs3" "^7.10.4" - "@docusaurus/types" "2.0.0-alpha.64" - "@docusaurus/utils" "2.0.0-alpha.64" - "@docusaurus/utils-validation" "2.0.0-alpha.64" - "@endiliey/static-site-generator-webpack-plugin" "^4.0.0" - "@hapi/joi" "^17.1.1" - "@svgr/webpack" "^5.4.0" - babel-loader "^8.1.0" - babel-plugin-dynamic-import-node "^2.3.0" - boxen "^4.2.0" - cache-loader "^4.1.0" - chalk "^3.0.0" - chokidar "^3.3.0" - commander "^4.0.1" - copy-webpack-plugin "^6.0.3" - core-js "^2.6.5" - css-loader "^3.4.2" - del "^5.1.0" - detect-port "^1.3.0" - eta "^1.1.1" - express "^4.17.1" - file-loader "^6.0.0" - fs-extra "^8.1.0" - globby "^10.0.1" - html-minifier-terser "^5.0.5" - html-tags "^3.1.0" - html-webpack-plugin "^4.0.4" - import-fresh "^3.2.1" - inquirer "^7.2.0" - is-root "^2.1.0" - leven "^3.1.0" - lodash "^4.5.2" - lodash.flatmap "^4.5.0" - lodash.has "^4.5.2" - lodash.isplainobject "^4.0.6" - lodash.isstring "^4.0.1" - mini-css-extract-plugin "^0.8.0" - nprogress "^0.2.0" - null-loader "^3.0.0" - optimize-css-assets-webpack-plugin "^5.0.3" - pnp-webpack-plugin "^1.6.4" - postcss-loader "^3.0.0" - postcss-preset-env "^6.7.0" - react-dev-utils "^10.2.1" - react-helmet "^6.0.0-beta" - react-loadable "^5.5.0" - react-loadable-ssr-addon "^0.3.0" - react-router "^5.1.2" - react-router-config "^5.1.1" - react-router-dom "^5.1.2" - resolve-pathname "^3.0.0" - semver "^6.3.0" - serve-handler "^6.1.3" - shelljs "^0.8.4" - std-env "^2.2.1" - terser-webpack-plugin "^4.1.0" - update-notifier "^4.1.0" - url-loader "^4.1.0" - wait-file "^1.0.5" - webpack "^4.44.1" - webpack-bundle-analyzer "^3.6.1" - webpack-dev-server "^3.11.0" - webpack-merge "^4.2.2" - webpackbar "^4.0.0" - -"@docusaurus/mdx-loader@2.0.0-alpha.64": - version "2.0.0-alpha.64" - resolved "https://registry.yarnpkg.com/@docusaurus/mdx-loader/-/mdx-loader-2.0.0-alpha.64.tgz#c8eea7546ea1c9b3fcde201f582599e465023ed4" - integrity sha512-kEBhKq/pQAdks9uri9IALAYuz60sid2f0mXTM/7NZyYTgDeVmeUBlLAMNGQTsMj4KfK3mHyS/ehF04MDnyiv9g== - dependencies: - "@babel/parser" "^7.9.4" - "@babel/traverse" "^7.9.0" - "@docusaurus/core" "2.0.0-alpha.64" - "@docusaurus/utils" "2.0.0-alpha.64" - "@mdx-js/mdx" "^1.5.8" - "@mdx-js/react" "^1.5.8" - escape-html "^1.0.3" - file-loader "^6.0.0" - fs-extra "^8.1.0" - github-slugger "^1.3.0" - gray-matter "^4.0.2" - loader-utils "^1.2.3" - mdast-util-to-string "^1.1.0" - remark-emoji "^2.1.0" - stringify-object "^3.3.0" - unist-util-visit "^2.0.2" - url-loader "^4.1.0" - -"@docusaurus/plugin-content-blog@2.0.0-alpha.64": - version "2.0.0-alpha.64" - resolved "https://registry.yarnpkg.com/@docusaurus/plugin-content-blog/-/plugin-content-blog-2.0.0-alpha.64.tgz#58242a77cc1258b39cbaf9d540aad3c963f7b7db" - integrity sha512-BfQFgosFXxGdmsY9jzzXYA4JvPoqCd3QQtRx8RP/BFwiUgRZK9l0hD8yEBJb0f4m2KU0ZNsMT4VbAoimzCpGEA== - dependencies: - "@docusaurus/core" "2.0.0-alpha.64" - "@docusaurus/mdx-loader" "2.0.0-alpha.64" - "@docusaurus/types" "2.0.0-alpha.64" - "@docusaurus/utils" "2.0.0-alpha.64" - "@docusaurus/utils-validation" "2.0.0-alpha.64" - "@hapi/joi" "^17.1.1" - chalk "^3.0.0" - feed "^4.1.0" - fs-extra "^8.1.0" - globby "^10.0.1" - loader-utils "^1.2.3" - lodash.kebabcase "^4.1.1" - reading-time "^1.2.0" - remark-admonitions "^1.2.1" - webpack "^4.44.1" - -"@docusaurus/plugin-content-docs@2.0.0-alpha.64": - version "2.0.0-alpha.64" - resolved "https://registry.yarnpkg.com/@docusaurus/plugin-content-docs/-/plugin-content-docs-2.0.0-alpha.64.tgz#a0508893395ae1eac44bdf9c99bdd5ef5010cf45" - integrity sha512-3O2tHZd0OKLuGPfMTo3R5iMX/tM+QxB81uN0YBgyhwV7kKL46LpE+AYKYqk+oSCH0MfMBREcLgEyni4KgJNbHg== - dependencies: - "@docusaurus/core" "2.0.0-alpha.64" - "@docusaurus/mdx-loader" "2.0.0-alpha.64" - "@docusaurus/types" "2.0.0-alpha.64" - "@docusaurus/utils" "2.0.0-alpha.64" - "@docusaurus/utils-validation" "2.0.0-alpha.64" - "@hapi/joi" "17.1.1" - chalk "^3.0.0" - execa "^3.4.0" - fs-extra "^8.1.0" - globby "^10.0.1" - import-fresh "^3.2.1" - loader-utils "^1.2.3" - lodash "^4.17.19" - lodash.flatmap "^4.5.0" - lodash.groupby "^4.6.0" - lodash.pick "^4.4.0" - lodash.pickby "^4.6.0" - lodash.sortby "^4.6.0" - remark-admonitions "^1.2.1" - shelljs "^0.8.4" - utility-types "^3.10.0" - webpack "^4.44.1" - -"@docusaurus/plugin-content-pages@2.0.0-alpha.64": - version "2.0.0-alpha.64" - resolved "https://registry.yarnpkg.com/@docusaurus/plugin-content-pages/-/plugin-content-pages-2.0.0-alpha.64.tgz#78b99fed15eee099d7fef34a13a62d24cd5eebe5" - integrity sha512-dPtFSELCRgZeB3bhEkTurY4yRKdpV0xjLhBejsdhCmwtsjQ4jf9ouzNuD55zSKUdAt7t4Magj8OqI51Z2AlFkQ== - dependencies: - "@docusaurus/core" "2.0.0-alpha.64" - "@docusaurus/mdx-loader" "2.0.0-alpha.64" - "@docusaurus/types" "2.0.0-alpha.64" - "@docusaurus/utils" "2.0.0-alpha.64" - "@docusaurus/utils-validation" "2.0.0-alpha.64" - "@hapi/joi" "17.1.1" - globby "^10.0.1" - loader-utils "^1.2.3" - minimatch "^3.0.4" - remark-admonitions "^1.2.1" - slash "^3.0.0" - webpack "^4.44.1" - -"@docusaurus/plugin-debug@2.0.0-alpha.64": - version "2.0.0-alpha.64" - resolved "https://registry.yarnpkg.com/@docusaurus/plugin-debug/-/plugin-debug-2.0.0-alpha.64.tgz#36074e82d2a2584c09df35ead1b6df380c122189" - integrity sha512-3RKtMyQQN1NQaZoCxMnTbbGw7ldG/IT49fDi8jz8UJy8U/lN+cxAI2Js8EqI4EzkZs+pjazqdXDrW8BM33tiBA== - dependencies: - "@docusaurus/core" "2.0.0-alpha.64" - "@docusaurus/types" "2.0.0-alpha.64" - "@docusaurus/utils" "2.0.0-alpha.64" - react-json-view "^1.19.1" - -"@docusaurus/plugin-google-analytics@2.0.0-alpha.64": - version "2.0.0-alpha.64" - resolved "https://registry.yarnpkg.com/@docusaurus/plugin-google-analytics/-/plugin-google-analytics-2.0.0-alpha.64.tgz#c0e0a7cf1ec457a07a90be9593f823a432e264ab" - integrity sha512-WiyF+OQYo/PqM376BObA5Js9eDAlYD4rMf3D7B59WKpCg+f532EABFFuurgkHAE7O73j6bbCpQ5HuunOgxvpDw== - dependencies: - "@docusaurus/core" "2.0.0-alpha.64" - -"@docusaurus/plugin-google-gtag@2.0.0-alpha.64": - version "2.0.0-alpha.64" - resolved "https://registry.yarnpkg.com/@docusaurus/plugin-google-gtag/-/plugin-google-gtag-2.0.0-alpha.64.tgz#18b3ff00b7151b8943443b231816dafd94198918" - integrity sha512-5wz4ciVBXKHyz5kkyDaDLAoSSMabuNBW413hDjh0CD4JdhJzyADW6FKypTx1dd3wELsEOUFWE+ltkKI/AA1cog== - dependencies: - "@docusaurus/core" "2.0.0-alpha.64" - -"@docusaurus/plugin-sitemap@2.0.0-alpha.64": - version "2.0.0-alpha.64" - resolved "https://registry.yarnpkg.com/@docusaurus/plugin-sitemap/-/plugin-sitemap-2.0.0-alpha.64.tgz#02290b9f992169574e07df97effbe43f2373ab45" - integrity sha512-7IoR9/CpfA0IOMbORIz7esQUTETB6w6iRkmdGNnnvpi9onvm7vQe9LpLCDOHEFuip1GNZO9XSlyYmG9J7xqjLg== - dependencies: - "@docusaurus/core" "2.0.0-alpha.64" - "@docusaurus/types" "2.0.0-alpha.64" - "@hapi/joi" "17.1.1" - fs-extra "^8.1.0" - sitemap "^3.2.2" - -"@docusaurus/preset-classic@2.0.0-alpha.64": - version "2.0.0-alpha.64" - resolved "https://registry.yarnpkg.com/@docusaurus/preset-classic/-/preset-classic-2.0.0-alpha.64.tgz#ce141f909a2071cf7b2736a3c35d9eb6226d61e2" - integrity sha512-j2L7WzLXRLQyDub/hALNZGfL/mNMuMpG+GhWgfHWi/Fb8BRppGMikVp9VqrnlJ8D8OWhkkVcruUkjFO0ODfXmQ== - dependencies: - "@docusaurus/core" "2.0.0-alpha.64" - "@docusaurus/plugin-content-blog" "2.0.0-alpha.64" - "@docusaurus/plugin-content-docs" "2.0.0-alpha.64" - "@docusaurus/plugin-content-pages" "2.0.0-alpha.64" - "@docusaurus/plugin-debug" "2.0.0-alpha.64" - "@docusaurus/plugin-google-analytics" "2.0.0-alpha.64" - "@docusaurus/plugin-google-gtag" "2.0.0-alpha.64" - "@docusaurus/plugin-sitemap" "2.0.0-alpha.64" - "@docusaurus/theme-classic" "2.0.0-alpha.64" - "@docusaurus/theme-search-algolia" "2.0.0-alpha.64" - -"@docusaurus/theme-classic@2.0.0-alpha.64": - version "2.0.0-alpha.64" - resolved "https://registry.yarnpkg.com/@docusaurus/theme-classic/-/theme-classic-2.0.0-alpha.64.tgz#ace073ef48d1184e53ab4097a19779ece7b20fff" - integrity sha512-w1wUCV9hQU45ZfbWrOknsRxUF+VMZpyALQHbEYCFJdOFxVUMwukDHchDd4rt8Ur0TJy3MIFMVTNoasuJwQCM4w== - dependencies: - "@docusaurus/core" "2.0.0-alpha.64" - "@docusaurus/plugin-content-blog" "2.0.0-alpha.64" - "@docusaurus/plugin-content-docs" "2.0.0-alpha.64" - "@docusaurus/plugin-content-pages" "2.0.0-alpha.64" - "@docusaurus/types" "2.0.0-alpha.64" - "@docusaurus/utils-validation" "2.0.0-alpha.64" - "@hapi/joi" "^17.1.1" - "@mdx-js/mdx" "^1.5.8" - "@mdx-js/react" "^1.5.8" - "@types/react-toggle" "^4.0.2" - clsx "^1.1.1" - copy-text-to-clipboard "^2.2.0" - infima "0.2.0-alpha.12" - lodash "^4.17.19" - parse-numeric-range "^0.0.2" - prism-react-renderer "^1.1.0" - prismjs "^1.20.0" - prop-types "^15.7.2" - react-router-dom "^5.1.2" - react-toggle "^4.1.1" - use-onclickoutside "^0.3.1" - -"@docusaurus/theme-search-algolia@2.0.0-alpha.64": - version "2.0.0-alpha.64" - resolved "https://registry.yarnpkg.com/@docusaurus/theme-search-algolia/-/theme-search-algolia-2.0.0-alpha.64.tgz#6778c2ec050529355c4e96a35ddbd19d14731b8f" - integrity sha512-cxFOzxOoXC+UrfaZ65PqrvfEu8supZevcBzVhI8cD+TJGZmtHzys0XveSAYJORPqEm6abh+BdSDQY7Wn4nhqYA== - dependencies: - "@docsearch/react" "^1.0.0-alpha.27" - "@docusaurus/core" "2.0.0-alpha.64" - "@docusaurus/utils" "2.0.0-alpha.64" - "@hapi/joi" "^17.1.1" - algoliasearch "^4.0.0" - algoliasearch-helper "^3.1.1" - clsx "^1.1.1" - eta "^1.1.1" - lodash "^4.17.19" - -"@docusaurus/types@2.0.0-alpha.64": - version "2.0.0-alpha.64" - resolved "https://registry.yarnpkg.com/@docusaurus/types/-/types-2.0.0-alpha.64.tgz#62e42beb222f7a73a5ec1218426dcdbe2ccb4294" - integrity sha512-YBTRXHbZDWxGQ14ES62s5UnMA3MM9BuLS5EDseOPd8/GwMz6pws+N9QeLCUCEQQTbdTb2MZsQjdSGaHOMjbiEA== - dependencies: - "@types/webpack" "^4.41.0" - commander "^4.0.1" - querystring "0.2.0" - webpack-merge "^4.2.2" - -"@docusaurus/utils-validation@2.0.0-alpha.64": - version "2.0.0-alpha.64" - resolved "https://registry.yarnpkg.com/@docusaurus/utils-validation/-/utils-validation-2.0.0-alpha.64.tgz#caf7dcc1ad2ad4d6890b660b575906493ac62db1" - integrity sha512-WO1v10/Dga5pR3e5XGwuv8Wb+vjp4d8MZ4h0x+6MBOMX9HXgoUN2pmdXq0HcolNV2RMNdXAgkT8NZhCV5Wea1A== - dependencies: - "@docusaurus/utils" "2.0.0-alpha.64" - "@hapi/joi" "17.1.1" - chalk "^3.0.0" - -"@docusaurus/utils@2.0.0-alpha.64": - version "2.0.0-alpha.64" - resolved "https://registry.yarnpkg.com/@docusaurus/utils/-/utils-2.0.0-alpha.64.tgz#ed8da246504d68d4e817929806962cbee76e0b60" - integrity sha512-rvRNTSNL0BQnO15/dZRO3MsZwcnglvm1aBl/9qbPVBVS82/VdoUB8YZ5QGrCQewXugQBkYqZU2cx+khDhNICvw== - dependencies: - escape-string-regexp "^2.0.0" - fs-extra "^8.1.0" - gray-matter "^4.0.2" - lodash.camelcase "^4.3.0" - lodash.kebabcase "^4.1.1" - resolve-pathname "^3.0.0" - -"@endiliey/static-site-generator-webpack-plugin@^4.0.0": - version "4.0.0" - resolved "https://registry.yarnpkg.com/@endiliey/static-site-generator-webpack-plugin/-/static-site-generator-webpack-plugin-4.0.0.tgz#94bfe58fd83aeda355de797fcb5112adaca3a6b1" - integrity sha512-3MBqYCs30qk1OBRC697NqhGouYbs71D1B8hrk/AFJC6GwF2QaJOQZtA1JYAaGSe650sZ8r5ppRTtCRXepDWlng== - dependencies: - bluebird "^3.7.1" - cheerio "^0.22.0" - eval "^0.1.4" - url "^0.11.0" - webpack-sources "^1.4.3" - -"@francoischalifour/autocomplete-core@^1.0.0-alpha.28": - version "1.0.0-alpha.28" - resolved "https://registry.yarnpkg.com/@francoischalifour/autocomplete-core/-/autocomplete-core-1.0.0-alpha.28.tgz#6b9d8491288e77f831e9b345d461623b0d3f5005" - integrity sha512-rL9x+72btViw+9icfBKUJjZj87FgjFrD2esuTUqtj4RAX3s4AuVZiN8XEsfjQBSc6qJk31cxlvqZHC/BIyYXgg== - -"@francoischalifour/autocomplete-preset-algolia@^1.0.0-alpha.28": - version "1.0.0-alpha.28" - resolved "https://registry.yarnpkg.com/@francoischalifour/autocomplete-preset-algolia/-/autocomplete-preset-algolia-1.0.0-alpha.28.tgz#a5ad7996f42e43e4acbb4e0010d663746d0e9997" - integrity sha512-bprfNmYt1opFUFEtD2XfY/kEsm13bzHQgU80uMjhuK0DJ914IjolT1GytpkdM6tJ4MBvyiJPP+bTtWO+BZ7c7w== - -"@hapi/address@2.x.x": - version "2.1.4" - resolved "https://registry.yarnpkg.com/@hapi/address/-/address-2.1.4.tgz#5d67ed43f3fd41a69d4b9ff7b56e7c0d1d0a81e5" - integrity sha512-QD1PhQk+s31P1ixsX0H0Suoupp3VMXzIVMSwobR3F3MSUO2YCV0B7xqLcUw/Bh8yuvd3LhpyqLQWTNcRmp6IdQ== - -"@hapi/address@^4.0.1": - version "4.1.0" - resolved "https://registry.yarnpkg.com/@hapi/address/-/address-4.1.0.tgz#d60c5c0d930e77456fdcde2598e77302e2955e1d" - integrity sha512-SkszZf13HVgGmChdHo/PxchnSaCJ6cetVqLzyciudzZRT0jcOouIF/Q93mgjw8cce+D+4F4C1Z/WrfFN+O3VHQ== - dependencies: - "@hapi/hoek" "^9.0.0" - -"@hapi/bourne@1.x.x": - version "1.3.2" - resolved "https://registry.yarnpkg.com/@hapi/bourne/-/bourne-1.3.2.tgz#0a7095adea067243ce3283e1b56b8a8f453b242a" - integrity sha512-1dVNHT76Uu5N3eJNTYcvxee+jzX4Z9lfciqRRHCU27ihbUcYi+iSc2iml5Ke1LXe1SyJCLA0+14Jh4tXJgOppA== - -"@hapi/formula@^2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@hapi/formula/-/formula-2.0.0.tgz#edade0619ed58c8e4f164f233cda70211e787128" - integrity sha512-V87P8fv7PI0LH7LiVi8Lkf3x+KCO7pQozXRssAHNXXL9L1K+uyu4XypLXwxqVDKgyQai6qj3/KteNlrqDx4W5A== - -"@hapi/hoek@8.x.x", "@hapi/hoek@^8.3.0": - version "8.5.1" - resolved "https://registry.yarnpkg.com/@hapi/hoek/-/hoek-8.5.1.tgz#fde96064ca446dec8c55a8c2f130957b070c6e06" - integrity sha512-yN7kbciD87WzLGc5539Tn0sApjyiGHAJgKvG9W8C7O+6c7qmoQMfVs0W4bX17eqz6C78QJqqFrtgdK5EWf6Qow== - -"@hapi/hoek@^9.0.0": - version "9.2.0" - resolved "https://registry.yarnpkg.com/@hapi/hoek/-/hoek-9.2.0.tgz#f3933a44e365864f4dad5db94158106d511e8131" - integrity sha512-sqKVVVOe5ivCaXDWivIJYVSaEgdQK9ul7a4Kity5Iw7u9+wBAPbX1RMSnLLmp7O4Vzj0WOWwMAJsTL00xwaNug== - -"@hapi/joi@17.1.1", "@hapi/joi@^17.1.1": - version "17.1.1" - resolved "https://registry.yarnpkg.com/@hapi/joi/-/joi-17.1.1.tgz#9cc8d7e2c2213d1e46708c6260184b447c661350" - integrity sha512-p4DKeZAoeZW4g3u7ZeRo+vCDuSDgSvtsB/NpfjXEHTUjSeINAi/RrVOWiVQ1isaoLzMvFEhe8n5065mQq1AdQg== - dependencies: - "@hapi/address" "^4.0.1" - "@hapi/formula" "^2.0.0" - "@hapi/hoek" "^9.0.0" - "@hapi/pinpoint" "^2.0.0" - "@hapi/topo" "^5.0.0" - -"@hapi/joi@^15.1.0": - version "15.1.1" - resolved "https://registry.yarnpkg.com/@hapi/joi/-/joi-15.1.1.tgz#c675b8a71296f02833f8d6d243b34c57b8ce19d7" - integrity sha512-entf8ZMOK8sc+8YfeOlM8pCfg3b5+WZIKBfUaaJT8UsjAAPjartzxIYm3TIbjvA4u+u++KbcXD38k682nVHDAQ== - dependencies: - "@hapi/address" "2.x.x" - "@hapi/bourne" "1.x.x" - "@hapi/hoek" "8.x.x" - "@hapi/topo" "3.x.x" - -"@hapi/pinpoint@^2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@hapi/pinpoint/-/pinpoint-2.0.0.tgz#805b40d4dbec04fc116a73089494e00f073de8df" - integrity sha512-vzXR5MY7n4XeIvLpfl3HtE3coZYO4raKXW766R6DZw/6aLqR26iuZ109K7a0NtF2Db0jxqh7xz2AxkUwpUFybw== - -"@hapi/topo@3.x.x": - version "3.1.6" - resolved "https://registry.yarnpkg.com/@hapi/topo/-/topo-3.1.6.tgz#68d935fa3eae7fdd5ab0d7f953f3205d8b2bfc29" - integrity sha512-tAag0jEcjwH+P2quUfipd7liWCNX2F8NvYjQp2wtInsZxnMlypdw0FtAOLxtvvkO+GSRRbmNi8m/5y42PQJYCQ== - dependencies: - "@hapi/hoek" "^8.3.0" - -"@hapi/topo@^5.0.0": - version "5.0.0" - resolved "https://registry.yarnpkg.com/@hapi/topo/-/topo-5.0.0.tgz#c19af8577fa393a06e9c77b60995af959be721e7" - integrity sha512-tFJlT47db0kMqVm3H4nQYgn6Pwg10GTZHb1pwmSiv1K4ks6drQOtfEF5ZnPjkvC+y4/bUPHK+bc87QvLcL+WMw== - dependencies: - "@hapi/hoek" "^9.0.0" - -"@mdx-js/mdx@^1.5.8": - version "1.6.22" - resolved "https://registry.yarnpkg.com/@mdx-js/mdx/-/mdx-1.6.22.tgz#8a723157bf90e78f17dc0f27995398e6c731f1ba" - integrity sha512-AMxuLxPz2j5/6TpF/XSdKpQP1NlG0z11dFOlq+2IP/lSgl11GY8ji6S/rgsViN/L0BDvHvUMruRb7ub+24LUYA== - dependencies: - "@babel/core" "7.12.9" - "@babel/plugin-syntax-jsx" "7.12.1" - "@babel/plugin-syntax-object-rest-spread" "7.8.3" - "@mdx-js/util" "1.6.22" - babel-plugin-apply-mdx-type-prop "1.6.22" - babel-plugin-extract-import-names "1.6.22" - camelcase-css "2.0.1" - detab "2.0.4" - hast-util-raw "6.0.1" - lodash.uniq "4.5.0" - mdast-util-to-hast "10.0.1" - remark-footnotes "2.0.0" - remark-mdx "1.6.22" - remark-parse "8.0.3" - remark-squeeze-paragraphs "4.0.0" - style-to-object "0.3.0" - unified "9.2.0" - unist-builder "2.0.3" - unist-util-visit "2.0.3" - -"@mdx-js/react@^1.5.8": - version "1.6.22" - resolved "https://registry.yarnpkg.com/@mdx-js/react/-/react-1.6.22.tgz#ae09b4744fddc74714ee9f9d6f17a66e77c43573" - integrity sha512-TDoPum4SHdfPiGSAaRBw7ECyI8VaHpK8GJugbJIJuqyh6kzw9ZLJZW3HGL3NNrJGxcAixUvqROm+YuQOo5eXtg== - -"@mdx-js/util@1.6.22": - version "1.6.22" - resolved "https://registry.yarnpkg.com/@mdx-js/util/-/util-1.6.22.tgz#219dfd89ae5b97a8801f015323ffa4b62f45718b" - integrity sha512-H1rQc1ZOHANWBvPcW+JpGwr+juXSxM8Q8YCkm3GhZd8REu1fHR3z99CErO1p9pkcfcxZnMdIZdIsXkOHY0NilA== - -"@mrmlnc/readdir-enhanced@^2.2.1": - version "2.2.1" - resolved "https://registry.yarnpkg.com/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz#524af240d1a360527b730475ecfa1344aa540dde" - integrity sha512-bPHp6Ji8b41szTOcaP63VlnbbO5Ny6dwAATtY6JTjh5N2OLrb5Qk/Th5cRkRQhkWCt+EJsYrNB0MiL+Gpn6e3g== - dependencies: - call-me-maybe "^1.0.1" - glob-to-regexp "^0.3.0" - -"@nodelib/fs.scandir@2.1.4": - version "2.1.4" - resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.4.tgz#d4b3549a5db5de2683e0c1071ab4f140904bbf69" - integrity sha512-33g3pMJk3bg5nXbL/+CY6I2eJDzZAni49PfJnL5fghPTggPvBd/pFNSgJsdAgWptuFu7qq/ERvOYFlhvsLTCKA== - dependencies: - "@nodelib/fs.stat" "2.0.4" - run-parallel "^1.1.9" - -"@nodelib/fs.stat@2.0.4", "@nodelib/fs.stat@^2.0.2": - version "2.0.4" - resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.4.tgz#a3f2dd61bab43b8db8fa108a121cfffe4c676655" - integrity sha512-IYlHJA0clt2+Vg7bccq+TzRdJvv19c2INqBSsoOLp1je7xjtr7J26+WXR72MCdvU9q1qTzIWDfhMf+DRvQJK4Q== - -"@nodelib/fs.stat@^1.1.2": - version "1.1.3" - resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-1.1.3.tgz#2b5a3ab3f918cca48a8c754c08168e3f03eba61b" - integrity sha512-shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw== - -"@nodelib/fs.walk@^1.2.3": - version "1.2.6" - resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.6.tgz#cce9396b30aa5afe9e3756608f5831adcb53d063" - integrity sha512-8Broas6vTtW4GIXTAHDoE32hnN2M5ykgCpWGbuXHQ15vEMqr23pB76e/GZcYsZCHALv50ktd24qhEyKr6wBtow== - dependencies: - "@nodelib/fs.scandir" "2.1.4" - fastq "^1.6.0" - -"@npmcli/move-file@^1.0.1": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@npmcli/move-file/-/move-file-1.1.2.tgz#1a82c3e372f7cae9253eb66d72543d6b8685c674" - integrity sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg== - dependencies: - mkdirp "^1.0.4" - rimraf "^3.0.2" - -"@sindresorhus/is@^0.14.0": - version "0.14.0" - resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-0.14.0.tgz#9fb3a3cf3132328151f353de4632e01e52102bea" - integrity sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ== - -"@svgr/babel-plugin-add-jsx-attribute@^5.4.0": - version "5.4.0" - resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-5.4.0.tgz#81ef61947bb268eb9d50523446f9c638fb355906" - integrity sha512-ZFf2gs/8/6B8PnSofI0inYXr2SDNTDScPXhN7k5EqD4aZ3gi6u+rbmZHVB8IM3wDyx8ntKACZbtXSm7oZGRqVg== - -"@svgr/babel-plugin-remove-jsx-attribute@^5.4.0": - version "5.4.0" - resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-remove-jsx-attribute/-/babel-plugin-remove-jsx-attribute-5.4.0.tgz#6b2c770c95c874654fd5e1d5ef475b78a0a962ef" - integrity sha512-yaS4o2PgUtwLFGTKbsiAy6D0o3ugcUhWK0Z45umJ66EPWunAz9fuFw2gJuje6wqQvQWOTJvIahUwndOXb7QCPg== - -"@svgr/babel-plugin-remove-jsx-empty-expression@^5.0.1": - version "5.0.1" - resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-remove-jsx-empty-expression/-/babel-plugin-remove-jsx-empty-expression-5.0.1.tgz#25621a8915ed7ad70da6cea3d0a6dbc2ea933efd" - integrity sha512-LA72+88A11ND/yFIMzyuLRSMJ+tRKeYKeQ+mR3DcAZ5I4h5CPWN9AHyUzJbWSYp/u2u0xhmgOe0+E41+GjEueA== - -"@svgr/babel-plugin-replace-jsx-attribute-value@^5.0.1": - version "5.0.1" - resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-replace-jsx-attribute-value/-/babel-plugin-replace-jsx-attribute-value-5.0.1.tgz#0b221fc57f9fcd10e91fe219e2cd0dd03145a897" - integrity sha512-PoiE6ZD2Eiy5mK+fjHqwGOS+IXX0wq/YDtNyIgOrc6ejFnxN4b13pRpiIPbtPwHEc+NT2KCjteAcq33/F1Y9KQ== - -"@svgr/babel-plugin-svg-dynamic-title@^5.4.0": - version "5.4.0" - resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-svg-dynamic-title/-/babel-plugin-svg-dynamic-title-5.4.0.tgz#139b546dd0c3186b6e5db4fefc26cb0baea729d7" - integrity sha512-zSOZH8PdZOpuG1ZVx/cLVePB2ibo3WPpqo7gFIjLV9a0QsuQAzJiwwqmuEdTaW2pegyBE17Uu15mOgOcgabQZg== - -"@svgr/babel-plugin-svg-em-dimensions@^5.4.0": - version "5.4.0" - resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-svg-em-dimensions/-/babel-plugin-svg-em-dimensions-5.4.0.tgz#6543f69526632a133ce5cabab965deeaea2234a0" - integrity sha512-cPzDbDA5oT/sPXDCUYoVXEmm3VIoAWAPT6mSPTJNbQaBNUuEKVKyGH93oDY4e42PYHRW67N5alJx/eEol20abw== - -"@svgr/babel-plugin-transform-react-native-svg@^5.4.0": - version "5.4.0" - resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-transform-react-native-svg/-/babel-plugin-transform-react-native-svg-5.4.0.tgz#00bf9a7a73f1cad3948cdab1f8dfb774750f8c80" - integrity sha512-3eYP/SaopZ41GHwXma7Rmxcv9uRslRDTY1estspeB1w1ueZWd/tPlMfEOoccYpEMZU3jD4OU7YitnXcF5hLW2Q== - -"@svgr/babel-plugin-transform-svg-component@^5.5.0": - version "5.5.0" - resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-5.5.0.tgz#583a5e2a193e214da2f3afeb0b9e8d3250126b4a" - integrity sha512-q4jSH1UUvbrsOtlo/tKcgSeiCHRSBdXoIoqX1pgcKK/aU3JD27wmMKwGtpB8qRYUYoyXvfGxUVKchLuR5pB3rQ== - -"@svgr/babel-preset@^5.5.0": - version "5.5.0" - resolved "https://registry.yarnpkg.com/@svgr/babel-preset/-/babel-preset-5.5.0.tgz#8af54f3e0a8add7b1e2b0fcd5a882c55393df327" - integrity sha512-4FiXBjvQ+z2j7yASeGPEi8VD/5rrGQk4Xrq3EdJmoZgz/tpqChpo5hgXDvmEauwtvOc52q8ghhZK4Oy7qph4ig== - dependencies: - "@svgr/babel-plugin-add-jsx-attribute" "^5.4.0" - "@svgr/babel-plugin-remove-jsx-attribute" "^5.4.0" - "@svgr/babel-plugin-remove-jsx-empty-expression" "^5.0.1" - "@svgr/babel-plugin-replace-jsx-attribute-value" "^5.0.1" - "@svgr/babel-plugin-svg-dynamic-title" "^5.4.0" - "@svgr/babel-plugin-svg-em-dimensions" "^5.4.0" - "@svgr/babel-plugin-transform-react-native-svg" "^5.4.0" - "@svgr/babel-plugin-transform-svg-component" "^5.5.0" - -"@svgr/core@^5.5.0": - version "5.5.0" - resolved "https://registry.yarnpkg.com/@svgr/core/-/core-5.5.0.tgz#82e826b8715d71083120fe8f2492ec7d7874a579" - integrity sha512-q52VOcsJPvV3jO1wkPtzTuKlvX7Y3xIcWRpCMtBF3MrteZJtBfQw/+u0B1BHy5ColpQc1/YVTrPEtSYIMNZlrQ== - dependencies: - "@svgr/plugin-jsx" "^5.5.0" - camelcase "^6.2.0" - cosmiconfig "^7.0.0" - -"@svgr/hast-util-to-babel-ast@^5.5.0": - version "5.5.0" - resolved "https://registry.yarnpkg.com/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-5.5.0.tgz#5ee52a9c2533f73e63f8f22b779f93cd432a5461" - integrity sha512-cAaR/CAiZRB8GP32N+1jocovUtvlj0+e65TB50/6Lcime+EA49m/8l+P2ko+XPJ4dw3xaPS3jOL4F2X4KWxoeQ== - dependencies: - "@babel/types" "^7.12.6" - -"@svgr/plugin-jsx@^5.5.0": - version "5.5.0" - resolved "https://registry.yarnpkg.com/@svgr/plugin-jsx/-/plugin-jsx-5.5.0.tgz#1aa8cd798a1db7173ac043466d7b52236b369000" - integrity sha512-V/wVh33j12hGh05IDg8GpIUXbjAPnTdPTKuP4VNLggnwaHMPNQNae2pRnyTAILWCQdz5GyMqtO488g7CKM8CBA== - dependencies: - "@babel/core" "^7.12.3" - "@svgr/babel-preset" "^5.5.0" - "@svgr/hast-util-to-babel-ast" "^5.5.0" - svg-parser "^2.0.2" - -"@svgr/plugin-svgo@^5.5.0": - version "5.5.0" - resolved "https://registry.yarnpkg.com/@svgr/plugin-svgo/-/plugin-svgo-5.5.0.tgz#02da55d85320549324e201c7b2e53bf431fcc246" - integrity sha512-r5swKk46GuQl4RrVejVwpeeJaydoxkdwkM1mBKOgJLBUJPGaLci6ylg/IjhrRsREKDkr4kbMWdgOtbXEh0fyLQ== - dependencies: - cosmiconfig "^7.0.0" - deepmerge "^4.2.2" - svgo "^1.2.2" - -"@svgr/webpack@^5.4.0": - version "5.5.0" - resolved "https://registry.yarnpkg.com/@svgr/webpack/-/webpack-5.5.0.tgz#aae858ee579f5fa8ce6c3166ef56c6a1b381b640" - integrity sha512-DOBOK255wfQxguUta2INKkzPj6AIS6iafZYiYmHn6W3pHlycSRRlvWKCfLDG10fXfLWqE3DJHgRUOyJYmARa7g== - dependencies: - "@babel/core" "^7.12.3" - "@babel/plugin-transform-react-constant-elements" "^7.12.1" - "@babel/preset-env" "^7.12.1" - "@babel/preset-react" "^7.12.5" - "@svgr/core" "^5.5.0" - "@svgr/plugin-jsx" "^5.5.0" - "@svgr/plugin-svgo" "^5.5.0" - loader-utils "^2.0.0" - -"@szmarczak/http-timer@^1.1.2": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@szmarczak/http-timer/-/http-timer-1.1.2.tgz#b1665e2c461a2cd92f4c1bbf50d5454de0d4b421" - integrity sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA== - dependencies: - defer-to-connect "^1.0.1" - -"@types/anymatch@*": - version "1.3.1" - resolved "https://registry.yarnpkg.com/@types/anymatch/-/anymatch-1.3.1.tgz#336badc1beecb9dacc38bea2cf32adf627a8421a" - integrity sha512-/+CRPXpBDpo2RK9C68N3b2cOvO0Cf5B9aPijHsoDQTHivnGSObdOF2BRQOYjojWTDy6nQvMjmqRXIxH55VjxxA== - -"@types/glob@^7.1.1": - version "7.1.3" - resolved "https://registry.yarnpkg.com/@types/glob/-/glob-7.1.3.tgz#e6ba80f36b7daad2c685acd9266382e68985c183" - integrity sha512-SEYeGAIQIQX8NN6LDKprLjbrd5dARM5EXsd8GI/A5l0apYI1fGMWgPHSe4ZKL4eozlAyI+doUE9XbYS4xCkQ1w== - dependencies: - "@types/minimatch" "*" - "@types/node" "*" - -"@types/hast@^2.0.0": - version "2.3.1" - resolved "https://registry.yarnpkg.com/@types/hast/-/hast-2.3.1.tgz#b16872f2a6144c7025f296fb9636a667ebb79cd9" - integrity sha512-viwwrB+6xGzw+G1eWpF9geV3fnsDgXqHG+cqgiHrvQfDUW5hzhCyV7Sy3UJxhfRFBsgky2SSW33qi/YrIkjX5Q== - dependencies: - "@types/unist" "*" - -"@types/html-minifier-terser@^5.0.0": - version "5.1.1" - resolved "https://registry.yarnpkg.com/@types/html-minifier-terser/-/html-minifier-terser-5.1.1.tgz#3c9ee980f1a10d6021ae6632ca3e79ca2ec4fb50" - integrity sha512-giAlZwstKbmvMk1OO7WXSj4OZ0keXAcl2TQq4LWHiiPH2ByaH7WeUzng+Qej8UPxxv+8lRTuouo0iaNDBuzIBA== - -"@types/json-schema@^7.0.5", "@types/json-schema@^7.0.6": - version "7.0.7" - resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.7.tgz#98a993516c859eb0d5c4c8f098317a9ea68db9ad" - integrity sha512-cxWFQVseBm6O9Gbw1IWb8r6OS4OhSt3hPZLkFApLjM8TEXROBuQGLAH2i2gZpcXdLBIrpXuTDhH7Vbm1iXmNGA== - -"@types/mdast@^3.0.0": - version "3.0.3" - resolved "https://registry.yarnpkg.com/@types/mdast/-/mdast-3.0.3.tgz#2d7d671b1cd1ea3deb306ea75036c2a0407d2deb" - integrity sha512-SXPBMnFVQg1s00dlMCc/jCdvPqdE4mXaMMCeRlxLDmTAEoegHT53xKtkDnzDTOcmMHUfcjyf36/YYZ6SxRdnsw== - dependencies: - "@types/unist" "*" - -"@types/minimatch@*": - version "3.0.4" - resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.4.tgz#f0ec25dbf2f0e4b18647313ac031134ca5b24b21" - integrity sha512-1z8k4wzFnNjVK/tlxvrWuK5WMt6mydWWP7+zvH5eFep4oj+UkrfiJTRtjCeBXNpwaA/FYqqtb4/QS4ianFpIRA== - -"@types/node@*": - version "15.0.2" - resolved "https://registry.yarnpkg.com/@types/node/-/node-15.0.2.tgz#51e9c0920d1b45936ea04341aa3e2e58d339fb67" - integrity sha512-p68+a+KoxpoB47015IeYZYRrdqMUcpbK8re/zpFB8Ld46LHC1lPEbp3EXgkEhAYEcPvjJF6ZO+869SQ0aH1dcA== - -"@types/parse-json@^4.0.0": - version "4.0.0" - resolved "https://registry.yarnpkg.com/@types/parse-json/-/parse-json-4.0.0.tgz#2f8bb441434d163b35fb8ffdccd7138927ffb8c0" - integrity sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA== - -"@types/parse5@^5.0.0": - version "5.0.3" - resolved "https://registry.yarnpkg.com/@types/parse5/-/parse5-5.0.3.tgz#e7b5aebbac150f8b5fdd4a46e7f0bd8e65e19109" - integrity sha512-kUNnecmtkunAoQ3CnjmMkzNU/gtxG8guhi+Fk2U/kOpIKjIMKnXGp4IJCgQJrXSgMsWYimYG4TGjz/UzbGEBTw== - -"@types/prop-types@*": - version "15.7.3" - resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.3.tgz#2ab0d5da2e5815f94b0b9d4b95d1e5f243ab2ca7" - integrity sha512-KfRL3PuHmqQLOG+2tGpRO26Ctg+Cq1E01D2DMriKEATHgWLfeNDmq9e29Q9WIky0dQ3NPkd1mzYH8Lm936Z9qw== - -"@types/q@^1.5.1": - version "1.5.4" - resolved "https://registry.yarnpkg.com/@types/q/-/q-1.5.4.tgz#15925414e0ad2cd765bfef58842f7e26a7accb24" - integrity sha512-1HcDas8SEj4z1Wc696tH56G8OlRaH/sqZOynNNB+HF0WOeXPaxTtbYzJY2oEfiUxjSKjhCKr+MvR7dCHcEelug== - -"@types/react-toggle@^4.0.2": - version "4.0.2" - resolved "https://registry.yarnpkg.com/@types/react-toggle/-/react-toggle-4.0.2.tgz#46ffa5af1a55de5f25d0aa78ef0b557b5c8bf276" - integrity sha512-sHqfoKFnL0YU2+OC4meNEC8Ptx9FE8/+nFeFvNcdBa6ANA8KpAzj3R9JN8GtrvlLgjKDoYgI7iILgXYcTPo2IA== - dependencies: - "@types/react" "*" - -"@types/react@*": - version "17.0.5" - resolved "https://registry.yarnpkg.com/@types/react/-/react-17.0.5.tgz#3d887570c4489011f75a3fc8f965bf87d09a1bea" - integrity sha512-bj4biDB9ZJmGAYTWSKJly6bMr4BLUiBrx9ujiJEoP9XIDY9CTaPGxE5QWN/1WjpPLzYF7/jRNnV2nNxNe970sw== - dependencies: - "@types/prop-types" "*" - "@types/scheduler" "*" - csstype "^3.0.2" - -"@types/scheduler@*": - version "0.16.1" - resolved "https://registry.yarnpkg.com/@types/scheduler/-/scheduler-0.16.1.tgz#18845205e86ff0038517aab7a18a62a6b9f71275" - integrity sha512-EaCxbanVeyxDRTQBkdLb3Bvl/HK7PBK6UJjsSixB0iHKoWxE5uu2Q/DgtpOhPIojN0Zl1whvOd7PoHs2P0s5eA== - -"@types/source-list-map@*": - version "0.1.2" - resolved "https://registry.yarnpkg.com/@types/source-list-map/-/source-list-map-0.1.2.tgz#0078836063ffaf17412349bba364087e0ac02ec9" - integrity sha512-K5K+yml8LTo9bWJI/rECfIPrGgxdpeNbj+d53lwN4QjW1MCwlkhUms+gtdzigTeUyBr09+u8BwOIY3MXvHdcsA== - -"@types/tapable@^1", "@types/tapable@^1.0.5": - version "1.0.7" - resolved "https://registry.yarnpkg.com/@types/tapable/-/tapable-1.0.7.tgz#545158342f949e8fd3bfd813224971ecddc3fac4" - integrity sha512-0VBprVqfgFD7Ehb2vd8Lh9TG3jP98gvr8rgehQqzztZNI7o8zS8Ad4jyZneKELphpuE212D8J70LnSNQSyO6bQ== - -"@types/uglify-js@*": - version "3.13.0" - resolved "https://registry.yarnpkg.com/@types/uglify-js/-/uglify-js-3.13.0.tgz#1cad8df1fb0b143c5aba08de5712ea9d1ff71124" - integrity sha512-EGkrJD5Uy+Pg0NUR8uA4bJ5WMfljyad0G+784vLCNUkD+QwOJXUbBYExXfVGf7YtyzdQp3L/XMYcliB987kL5Q== - dependencies: - source-map "^0.6.1" - -"@types/unist@*", "@types/unist@^2.0.0", "@types/unist@^2.0.2", "@types/unist@^2.0.3": - version "2.0.3" - resolved "https://registry.yarnpkg.com/@types/unist/-/unist-2.0.3.tgz#9c088679876f374eb5983f150d4787aa6fb32d7e" - integrity sha512-FvUupuM3rlRsRtCN+fDudtmytGO6iHJuuRKS1Ss0pG5z8oX0diNEw94UEL7hgDbpN94rgaK5R7sWm6RrSkZuAQ== - -"@types/webpack-sources@*": - version "2.1.0" - resolved "https://registry.yarnpkg.com/@types/webpack-sources/-/webpack-sources-2.1.0.tgz#8882b0bd62d1e0ce62f183d0d01b72e6e82e8c10" - integrity sha512-LXn/oYIpBeucgP1EIJbKQ2/4ZmpvRl+dlrFdX7+94SKRUV3Evy3FsfMZY318vGhkWUS5MPhtOM3w1/hCOAOXcg== - dependencies: - "@types/node" "*" - "@types/source-list-map" "*" - source-map "^0.7.3" - -"@types/webpack@^4.41.0", "@types/webpack@^4.41.8": - version "4.41.28" - resolved "https://registry.yarnpkg.com/@types/webpack/-/webpack-4.41.28.tgz#0069a2159b7ad4d83d0b5801942c17d54133897b" - integrity sha512-Nn84RAiJjKRfPFFCVR8LC4ueTtTdfWAMZ03THIzZWRJB+rX24BD3LqPSFnbMscWauEsT4segAsylPDIaZyZyLQ== - dependencies: - "@types/anymatch" "*" - "@types/node" "*" - "@types/tapable" "^1" - "@types/uglify-js" "*" - "@types/webpack-sources" "*" - source-map "^0.6.0" - -"@webassemblyjs/ast@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.9.0.tgz#bd850604b4042459a5a41cd7d338cbed695ed964" - integrity sha512-C6wW5L+b7ogSDVqymbkkvuW9kruN//YisMED04xzeBBqjHa2FYnmvOlS6Xj68xWQRgWvI9cIglsjFowH/RJyEA== - dependencies: - "@webassemblyjs/helper-module-context" "1.9.0" - "@webassemblyjs/helper-wasm-bytecode" "1.9.0" - "@webassemblyjs/wast-parser" "1.9.0" - -"@webassemblyjs/floating-point-hex-parser@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.9.0.tgz#3c3d3b271bddfc84deb00f71344438311d52ffb4" - integrity sha512-TG5qcFsS8QB4g4MhrxK5TqfdNe7Ey/7YL/xN+36rRjl/BlGE/NcBvJcqsRgCP6Z92mRE+7N50pRIi8SmKUbcQA== - -"@webassemblyjs/helper-api-error@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.9.0.tgz#203f676e333b96c9da2eeab3ccef33c45928b6a2" - integrity sha512-NcMLjoFMXpsASZFxJ5h2HZRcEhDkvnNFOAKneP5RbKRzaWJN36NC4jqQHKwStIhGXu5mUWlUUk7ygdtrO8lbmw== - -"@webassemblyjs/helper-buffer@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.9.0.tgz#a1442d269c5feb23fcbc9ef759dac3547f29de00" - integrity sha512-qZol43oqhq6yBPx7YM3m9Bv7WMV9Eevj6kMi6InKOuZxhw+q9hOkvq5e/PpKSiLfyetpaBnogSbNCfBwyB00CA== - -"@webassemblyjs/helper-code-frame@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.9.0.tgz#647f8892cd2043a82ac0c8c5e75c36f1d9159f27" - integrity sha512-ERCYdJBkD9Vu4vtjUYe8LZruWuNIToYq/ME22igL+2vj2dQ2OOujIZr3MEFvfEaqKoVqpsFKAGsRdBSBjrIvZA== - dependencies: - "@webassemblyjs/wast-printer" "1.9.0" - -"@webassemblyjs/helper-fsm@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-fsm/-/helper-fsm-1.9.0.tgz#c05256b71244214671f4b08ec108ad63b70eddb8" - integrity sha512-OPRowhGbshCb5PxJ8LocpdX9Kl0uB4XsAjl6jH/dWKlk/mzsANvhwbiULsaiqT5GZGT9qinTICdj6PLuM5gslw== - -"@webassemblyjs/helper-module-context@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-module-context/-/helper-module-context-1.9.0.tgz#25d8884b76839871a08a6c6f806c3979ef712f07" - integrity sha512-MJCW8iGC08tMk2enck1aPW+BE5Cw8/7ph/VGZxwyvGbJwjktKkDK7vy7gAmMDx88D7mhDTCNKAW5tED+gZ0W8g== - dependencies: - "@webassemblyjs/ast" "1.9.0" - -"@webassemblyjs/helper-wasm-bytecode@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.9.0.tgz#4fed8beac9b8c14f8c58b70d124d549dd1fe5790" - integrity sha512-R7FStIzyNcd7xKxCZH5lE0Bqy+hGTwS3LJjuv1ZVxd9O7eHCedSdrId/hMOd20I+v8wDXEn+bjfKDLzTepoaUw== - -"@webassemblyjs/helper-wasm-section@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.9.0.tgz#5a4138d5a6292ba18b04c5ae49717e4167965346" - integrity sha512-XnMB8l3ek4tvrKUUku+IVaXNHz2YsJyOOmz+MMkZvh8h1uSJpSen6vYnw3IoQ7WwEuAhL8Efjms1ZWjqh2agvw== - dependencies: - "@webassemblyjs/ast" "1.9.0" - "@webassemblyjs/helper-buffer" "1.9.0" - "@webassemblyjs/helper-wasm-bytecode" "1.9.0" - "@webassemblyjs/wasm-gen" "1.9.0" - -"@webassemblyjs/ieee754@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.9.0.tgz#15c7a0fbaae83fb26143bbacf6d6df1702ad39e4" - integrity sha512-dcX8JuYU/gvymzIHc9DgxTzUUTLexWwt8uCTWP3otys596io0L5aW02Gb1RjYpx2+0Jus1h4ZFqjla7umFniTg== - dependencies: - "@xtuc/ieee754" "^1.2.0" - -"@webassemblyjs/leb128@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.9.0.tgz#f19ca0b76a6dc55623a09cffa769e838fa1e1c95" - integrity sha512-ENVzM5VwV1ojs9jam6vPys97B/S65YQtv/aanqnU7D8aSoHFX8GyhGg0CMfyKNIHBuAVjy3tlzd5QMMINa7wpw== - dependencies: - "@xtuc/long" "4.2.2" - -"@webassemblyjs/utf8@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.9.0.tgz#04d33b636f78e6a6813227e82402f7637b6229ab" - integrity sha512-GZbQlWtopBTP0u7cHrEx+73yZKrQoBMpwkGEIqlacljhXCkVM1kMQge/Mf+csMJAjEdSwhOyLAS0AoR3AG5P8w== - -"@webassemblyjs/wasm-edit@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.9.0.tgz#3fe6d79d3f0f922183aa86002c42dd256cfee9cf" - integrity sha512-FgHzBm80uwz5M8WKnMTn6j/sVbqilPdQXTWraSjBwFXSYGirpkSWE2R9Qvz9tNiTKQvoKILpCuTjBKzOIm0nxw== - dependencies: - "@webassemblyjs/ast" "1.9.0" - "@webassemblyjs/helper-buffer" "1.9.0" - "@webassemblyjs/helper-wasm-bytecode" "1.9.0" - "@webassemblyjs/helper-wasm-section" "1.9.0" - "@webassemblyjs/wasm-gen" "1.9.0" - "@webassemblyjs/wasm-opt" "1.9.0" - "@webassemblyjs/wasm-parser" "1.9.0" - "@webassemblyjs/wast-printer" "1.9.0" - -"@webassemblyjs/wasm-gen@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.9.0.tgz#50bc70ec68ded8e2763b01a1418bf43491a7a49c" - integrity sha512-cPE3o44YzOOHvlsb4+E9qSqjc9Qf9Na1OO/BHFy4OI91XDE14MjFN4lTMezzaIWdPqHnsTodGGNP+iRSYfGkjA== - dependencies: - "@webassemblyjs/ast" "1.9.0" - "@webassemblyjs/helper-wasm-bytecode" "1.9.0" - "@webassemblyjs/ieee754" "1.9.0" - "@webassemblyjs/leb128" "1.9.0" - "@webassemblyjs/utf8" "1.9.0" - -"@webassemblyjs/wasm-opt@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.9.0.tgz#2211181e5b31326443cc8112eb9f0b9028721a61" - integrity sha512-Qkjgm6Anhm+OMbIL0iokO7meajkzQD71ioelnfPEj6r4eOFuqm4YC3VBPqXjFyyNwowzbMD+hizmprP/Fwkl2A== - dependencies: - "@webassemblyjs/ast" "1.9.0" - "@webassemblyjs/helper-buffer" "1.9.0" - "@webassemblyjs/wasm-gen" "1.9.0" - "@webassemblyjs/wasm-parser" "1.9.0" - -"@webassemblyjs/wasm-parser@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.9.0.tgz#9d48e44826df4a6598294aa6c87469d642fff65e" - integrity sha512-9+wkMowR2AmdSWQzsPEjFU7njh8HTO5MqO8vjwEHuM+AMHioNqSBONRdr0NQQ3dVQrzp0s8lTcYqzUdb7YgELA== - dependencies: - "@webassemblyjs/ast" "1.9.0" - "@webassemblyjs/helper-api-error" "1.9.0" - "@webassemblyjs/helper-wasm-bytecode" "1.9.0" - "@webassemblyjs/ieee754" "1.9.0" - "@webassemblyjs/leb128" "1.9.0" - "@webassemblyjs/utf8" "1.9.0" - -"@webassemblyjs/wast-parser@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-parser/-/wast-parser-1.9.0.tgz#3031115d79ac5bd261556cecc3fa90a3ef451914" - integrity sha512-qsqSAP3QQ3LyZjNC/0jBJ/ToSxfYJ8kYyuiGvtn/8MK89VrNEfwj7BPQzJVHi0jGTRK2dGdJ5PRqhtjzoww+bw== - dependencies: - "@webassemblyjs/ast" "1.9.0" - "@webassemblyjs/floating-point-hex-parser" "1.9.0" - "@webassemblyjs/helper-api-error" "1.9.0" - "@webassemblyjs/helper-code-frame" "1.9.0" - "@webassemblyjs/helper-fsm" "1.9.0" - "@xtuc/long" "4.2.2" - -"@webassemblyjs/wast-printer@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.9.0.tgz#4935d54c85fef637b00ce9f52377451d00d47899" - integrity sha512-2J0nE95rHXHyQ24cWjMKJ1tqB/ds8z/cyeOZxJhcb+rW+SQASVjuznUSmdz5GpVJTzU8JkhYut0D3siFDD6wsA== - dependencies: - "@webassemblyjs/ast" "1.9.0" - "@webassemblyjs/wast-parser" "1.9.0" - "@xtuc/long" "4.2.2" - -"@xtuc/ieee754@^1.2.0": - version "1.2.0" - resolved "https://registry.yarnpkg.com/@xtuc/ieee754/-/ieee754-1.2.0.tgz#eef014a3145ae477a1cbc00cd1e552336dceb790" - integrity sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA== - -"@xtuc/long@4.2.2": - version "4.2.2" - resolved "https://registry.yarnpkg.com/@xtuc/long/-/long-4.2.2.tgz#d291c6a4e97989b5c61d9acf396ae4fe133a718d" - integrity sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ== - -accepts@~1.3.4, accepts@~1.3.5, accepts@~1.3.7: - version "1.3.7" - resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.7.tgz#531bc726517a3b2b41f850021c6cc15eaab507cd" - integrity sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA== - dependencies: - mime-types "~2.1.24" - negotiator "0.6.2" - -acorn-walk@^7.1.1: - version "7.2.0" - resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-7.2.0.tgz#0de889a601203909b0fbe07b8938dc21d2e967bc" - integrity sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA== - -acorn@^6.4.1: - version "6.4.2" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.4.2.tgz#35866fd710528e92de10cf06016498e47e39e1e6" - integrity sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ== - -acorn@^7.1.1: - version "7.4.1" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa" - integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== - -address@1.1.2, address@^1.0.1: - version "1.1.2" - resolved "https://registry.yarnpkg.com/address/-/address-1.1.2.tgz#bf1116c9c758c51b7a933d296b72c221ed9428b6" - integrity sha512-aT6camzM4xEA54YVJYSqxz1kv4IHnQZRtThJJHhUMRExaU5spC7jX5ugSwTaTgJliIgs4VhZOk7htClvQ/LmRA== - -aggregate-error@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/aggregate-error/-/aggregate-error-3.1.0.tgz#92670ff50f5359bdb7a3e0d40d0ec30c5737687a" - integrity sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA== - dependencies: - clean-stack "^2.0.0" - indent-string "^4.0.0" - -ajv-errors@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/ajv-errors/-/ajv-errors-1.0.1.tgz#f35986aceb91afadec4102fbd85014950cefa64d" - integrity sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ== - -ajv-keywords@^3.1.0, ajv-keywords@^3.4.1, ajv-keywords@^3.5.2: - version "3.5.2" - resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz#31f29da5ab6e00d1c2d329acf7b5929614d5014d" - integrity sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ== - -ajv@^6.1.0, ajv@^6.10.2, ajv@^6.12.4, ajv@^6.12.5: - version "6.12.6" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" - integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== - dependencies: - fast-deep-equal "^3.1.1" - fast-json-stable-stringify "^2.0.0" - json-schema-traverse "^0.4.1" - uri-js "^4.2.2" - -algoliasearch-helper@^3.1.1: - version "3.4.4" - resolved "https://registry.yarnpkg.com/algoliasearch-helper/-/algoliasearch-helper-3.4.4.tgz#f2eb46bc4d2f6fed82c7201b8ac4ce0a1988ae67" - integrity sha512-OjyVLjykaYKCMxxRMZNiwLp8CS310E0qAeIY2NaublcmLAh8/SL19+zYHp7XCLtMem2ZXwl3ywMiA32O9jszuw== - dependencies: - events "^1.1.1" - -algoliasearch@^4.0.0: - version "4.9.1" - resolved "https://registry.yarnpkg.com/algoliasearch/-/algoliasearch-4.9.1.tgz#1fa8ece3f9808e465226176b88b953801c2274e0" - integrity sha512-EeJUYXzBEhZSsL6tXc3hseLBCtlNLa1MZ4mlMK6EeX38yRjY5vgnFcNNml6uUhlOjvheKxgkKRpPWkxgL8Cqkg== - dependencies: - "@algolia/cache-browser-local-storage" "4.9.1" - "@algolia/cache-common" "4.9.1" - "@algolia/cache-in-memory" "4.9.1" - "@algolia/client-account" "4.9.1" - "@algolia/client-analytics" "4.9.1" - "@algolia/client-common" "4.9.1" - "@algolia/client-recommendation" "4.9.1" - "@algolia/client-search" "4.9.1" - "@algolia/logger-common" "4.9.1" - "@algolia/logger-console" "4.9.1" - "@algolia/requester-browser-xhr" "4.9.1" - "@algolia/requester-common" "4.9.1" - "@algolia/requester-node-http" "4.9.1" - "@algolia/transporter" "4.9.1" - -alphanum-sort@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/alphanum-sort/-/alphanum-sort-1.0.2.tgz#97a1119649b211ad33691d9f9f486a8ec9fbe0a3" - integrity sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM= - -ansi-align@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/ansi-align/-/ansi-align-3.0.0.tgz#b536b371cf687caaef236c18d3e21fe3797467cb" - integrity sha512-ZpClVKqXN3RGBmKibdfWzqCY4lnjEuoNzU5T0oEFpfd/z5qJHVarukridD4juLO2FXMiwUQxr9WqQtaYa8XRYw== - dependencies: - string-width "^3.0.0" - -ansi-colors@^3.0.0: - version "3.2.4" - resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-3.2.4.tgz#e3a3da4bfbae6c86a9c285625de124a234026fbf" - integrity sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA== - -ansi-escapes@^4.2.1: - version "4.3.2" - resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.2.tgz#6b2291d1db7d98b6521d5f1efa42d0f3a9feb65e" - integrity sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ== - dependencies: - type-fest "^0.21.3" - -ansi-html@0.0.7: - version "0.0.7" - resolved "https://registry.yarnpkg.com/ansi-html/-/ansi-html-0.0.7.tgz#813584021962a9e9e6fd039f940d12f56ca7859e" - integrity sha1-gTWEAhliqenm/QOflA0S9WynhZ4= - -ansi-regex@^2.0.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" - integrity sha1-w7M6te42DYbg5ijwRorn7yfWVN8= - -ansi-regex@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.0.tgz#8b9f8f08cf1acb843756a839ca8c7e3168c51997" - integrity sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg== - -ansi-regex@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.0.tgz#388539f55179bf39339c81af30a654d69f87cb75" - integrity sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg== - -ansi-styles@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" - integrity sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4= - -ansi-styles@^3.2.0, ansi-styles@^3.2.1: - version "3.2.1" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" - integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== - dependencies: - color-convert "^1.9.0" - -ansi-styles@^4.0.0, ansi-styles@^4.1.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" - integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== - dependencies: - color-convert "^2.0.1" - -anymatch@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-2.0.0.tgz#bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb" - integrity sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw== - dependencies: - micromatch "^3.1.4" - normalize-path "^2.1.1" - -anymatch@~3.1.1: - version "3.1.2" - resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.2.tgz#c0557c096af32f106198f4f4e2a383537e378716" - integrity sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg== - dependencies: - normalize-path "^3.0.0" - picomatch "^2.0.4" - -aproba@^1.1.1: - version "1.2.0" - resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a" - integrity sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw== - -are-passive-events-supported@^1.1.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/are-passive-events-supported/-/are-passive-events-supported-1.1.1.tgz#3db180a1753a2186a2de50a32cded3ac0979f5dc" - integrity sha512-5wnvlvB/dTbfrCvJ027Y4L4gW/6Mwoy1uFSavney0YO++GU+0e/flnjiBBwH+1kh7xNCgCOGvmJC3s32joYbww== - -argparse@^1.0.7: - version "1.0.10" - resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" - integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== - dependencies: - sprintf-js "~1.0.2" - -arr-diff@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520" - integrity sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA= - -arr-flatten@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1" - integrity sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg== - -arr-union@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4" - integrity sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ= - -array-flatten@1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" - integrity sha1-ml9pkFGx5wczKPKgCJaLZOopVdI= - -array-flatten@^2.1.0: - version "2.1.2" - resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-2.1.2.tgz#24ef80a28c1a893617e2149b0c6d0d788293b099" - integrity sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ== - -array-union@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39" - integrity sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk= - dependencies: - array-uniq "^1.0.1" - -array-union@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" - integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== - -array-uniq@^1.0.1: - version "1.0.3" - resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6" - integrity sha1-r2rId6Jcx/dOBYiUdThY39sk/bY= - -array-unique@^0.3.2: - version "0.3.2" - resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428" - integrity sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg= - -arrify@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" - integrity sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0= - -asap@~2.0.3: - version "2.0.6" - resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46" - integrity sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY= - -asn1.js@^5.2.0: - version "5.4.1" - resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-5.4.1.tgz#11a980b84ebb91781ce35b0fdc2ee294e3783f07" - integrity sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA== - dependencies: - bn.js "^4.0.0" - inherits "^2.0.1" - minimalistic-assert "^1.0.0" - safer-buffer "^2.1.0" - -assert@^1.1.1: - version "1.5.0" - resolved "https://registry.yarnpkg.com/assert/-/assert-1.5.0.tgz#55c109aaf6e0aefdb3dc4b71240c70bf574b18eb" - integrity sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA== - dependencies: - object-assign "^4.1.1" - util "0.10.3" - -assign-symbols@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367" - integrity sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c= - -async-each@^1.0.1: - version "1.0.3" - resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.3.tgz#b727dbf87d7651602f06f4d4ac387f47d91b0cbf" - integrity sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ== - -async-limiter@~1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.1.tgz#dd379e94f0db8310b08291f9d64c3209766617fd" - integrity sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ== - -async@^2.6.2: - version "2.6.3" - resolved "https://registry.yarnpkg.com/async/-/async-2.6.3.tgz#d72625e2344a3656e3a3ad4fa749fa83299d82ff" - integrity sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg== - dependencies: - lodash "^4.17.14" - -atob@^2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9" - integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg== - -autoprefixer@^9.6.1: - version "9.8.6" - resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-9.8.6.tgz#3b73594ca1bf9266320c5acf1588d74dea74210f" - integrity sha512-XrvP4VVHdRBCdX1S3WXVD8+RyG9qeb1D5Sn1DeLiG2xfSpzellk5k54xbUERJ3M5DggQxes39UGOTP8CFrEGbg== - dependencies: - browserslist "^4.12.0" - caniuse-lite "^1.0.30001109" - colorette "^1.2.1" - normalize-range "^0.1.2" - num2fraction "^1.2.2" - postcss "^7.0.32" - postcss-value-parser "^4.1.0" - -babel-code-frame@^6.22.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.26.0.tgz#63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b" - integrity sha1-Y/1D99weO7fONZR9uP42mj9Yx0s= - dependencies: - chalk "^1.1.3" - esutils "^2.0.2" - js-tokens "^3.0.2" - -babel-loader@^8.1.0: - version "8.2.2" - resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-8.2.2.tgz#9363ce84c10c9a40e6c753748e1441b60c8a0b81" - integrity sha512-JvTd0/D889PQBtUXJ2PXaKU/pjZDMtHA9V2ecm+eNRmmBCMR09a+fmpGTNwnJtFmFl5Ei7Vy47LjBb+L0wQ99g== - dependencies: - find-cache-dir "^3.3.1" - loader-utils "^1.4.0" - make-dir "^3.1.0" - schema-utils "^2.6.5" - -babel-plugin-apply-mdx-type-prop@1.6.22: - version "1.6.22" - resolved "https://registry.yarnpkg.com/babel-plugin-apply-mdx-type-prop/-/babel-plugin-apply-mdx-type-prop-1.6.22.tgz#d216e8fd0de91de3f1478ef3231e05446bc8705b" - integrity sha512-VefL+8o+F/DfK24lPZMtJctrCVOfgbqLAGZSkxwhazQv4VxPg3Za/i40fu22KR2m8eEda+IfSOlPLUSIiLcnCQ== - dependencies: - "@babel/helper-plugin-utils" "7.10.4" - "@mdx-js/util" "1.6.22" - -babel-plugin-dynamic-import-node@^2.3.0, babel-plugin-dynamic-import-node@^2.3.3: - version "2.3.3" - resolved "https://registry.yarnpkg.com/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz#84fda19c976ec5c6defef57f9427b3def66e17a3" - integrity sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ== - dependencies: - object.assign "^4.1.0" - -babel-plugin-extract-import-names@1.6.22: - version "1.6.22" - resolved "https://registry.yarnpkg.com/babel-plugin-extract-import-names/-/babel-plugin-extract-import-names-1.6.22.tgz#de5f9a28eb12f3eb2578bf74472204e66d1a13dc" - integrity sha512-yJ9BsJaISua7d8zNT7oRG1ZLBJCIdZ4PZqmH8qa9N5AK01ifk3fnkc98AXhtzE7UkfCsEumvoQWgoYLhOnJ7jQ== - dependencies: - "@babel/helper-plugin-utils" "7.10.4" - -babel-plugin-polyfill-corejs2@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.2.0.tgz#686775bf9a5aa757e10520903675e3889caeedc4" - integrity sha512-9bNwiR0dS881c5SHnzCmmGlMkJLl0OUZvxrxHo9w/iNoRuqaPjqlvBf4HrovXtQs/au5yKkpcdgfT1cC5PAZwg== - dependencies: - "@babel/compat-data" "^7.13.11" - "@babel/helper-define-polyfill-provider" "^0.2.0" - semver "^6.1.1" - -babel-plugin-polyfill-corejs3@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.2.0.tgz#f4b4bb7b19329827df36ff56f6e6d367026cb7a2" - integrity sha512-zZyi7p3BCUyzNxLx8KV61zTINkkV65zVkDAFNZmrTCRVhjo1jAS+YLvDJ9Jgd/w2tsAviCwFHReYfxO3Iql8Yg== - dependencies: - "@babel/helper-define-polyfill-provider" "^0.2.0" - core-js-compat "^3.9.1" - -babel-plugin-polyfill-regenerator@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.2.0.tgz#853f5f5716f4691d98c84f8069c7636ea8da7ab8" - integrity sha512-J7vKbCuD2Xi/eEHxquHN14bXAW9CXtecwuLrOIDJtcZzTaPzV1VdEfoUf9AzcRBMolKUQKM9/GVojeh0hFiqMg== - dependencies: - "@babel/helper-define-polyfill-provider" "^0.2.0" - -bail@^1.0.0: - version "1.0.5" - resolved "https://registry.yarnpkg.com/bail/-/bail-1.0.5.tgz#b6fa133404a392cbc1f8c4bf63f5953351e7a776" - integrity sha512-xFbRxM1tahm08yHBP16MMjVUAvDaBMD38zsM9EMAUN61omwLmKlOpB/Zku5QkjZ8TZ4vn53pj+t518cH0S03RQ== - -balanced-match@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" - integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== - -base16@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/base16/-/base16-1.0.0.tgz#e297f60d7ec1014a7a971a39ebc8a98c0b681e70" - integrity sha1-4pf2DX7BAUp6lxo568ipjAtoHnA= - -base64-js@^1.0.2: - version "1.5.1" - resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" - integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== - -base@^0.11.1: - version "0.11.2" - resolved "https://registry.yarnpkg.com/base/-/base-0.11.2.tgz#7bde5ced145b6d551a90db87f83c558b4eb48a8f" - integrity sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg== - dependencies: - cache-base "^1.0.1" - class-utils "^0.3.5" - component-emitter "^1.2.1" - define-property "^1.0.0" - isobject "^3.0.1" - mixin-deep "^1.2.0" - pascalcase "^0.1.1" - -batch@0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/batch/-/batch-0.6.1.tgz#dc34314f4e679318093fc760272525f94bf25c16" - integrity sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY= - -bfj@^6.1.1: - version "6.1.2" - resolved "https://registry.yarnpkg.com/bfj/-/bfj-6.1.2.tgz#325c861a822bcb358a41c78a33b8e6e2086dde7f" - integrity sha512-BmBJa4Lip6BPRINSZ0BPEIfB1wUY/9rwbwvIHQA1KjX9om29B6id0wnWXq7m3bn5JrUVjeOTnVuhPT1FiHwPGw== - dependencies: - bluebird "^3.5.5" - check-types "^8.0.3" - hoopy "^0.1.4" - tryer "^1.0.1" - -big.js@^5.2.2: - version "5.2.2" - resolved "https://registry.yarnpkg.com/big.js/-/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328" - integrity sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ== - -binary-extensions@^1.0.0: - version "1.13.1" - resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.13.1.tgz#598afe54755b2868a5330d2aff9d4ebb53209b65" - integrity sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw== - -binary-extensions@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" - integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== - -bindings@^1.5.0: - version "1.5.0" - resolved "https://registry.yarnpkg.com/bindings/-/bindings-1.5.0.tgz#10353c9e945334bc0511a6d90b38fbc7c9c504df" - integrity sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ== - dependencies: - file-uri-to-path "1.0.0" - -bluebird@^3.5.5, bluebird@^3.7.1: - version "3.7.2" - resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" - integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg== - -bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.11.9: - version "4.12.0" - resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.12.0.tgz#775b3f278efbb9718eec7361f483fb36fbbfea88" - integrity sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA== - -bn.js@^5.0.0, bn.js@^5.1.1: - version "5.2.0" - resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.2.0.tgz#358860674396c6997771a9d051fcc1b57d4ae002" - integrity sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw== - -body-parser@1.19.0: - version "1.19.0" - resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.19.0.tgz#96b2709e57c9c4e09a6fd66a8fd979844f69f08a" - integrity sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw== - dependencies: - bytes "3.1.0" - content-type "~1.0.4" - debug "2.6.9" - depd "~1.1.2" - http-errors "1.7.2" - iconv-lite "0.4.24" - on-finished "~2.3.0" - qs "6.7.0" - raw-body "2.4.0" - type-is "~1.6.17" - -bonjour@^3.5.0: - version "3.5.0" - resolved "https://registry.yarnpkg.com/bonjour/-/bonjour-3.5.0.tgz#8e890a183d8ee9a2393b3844c691a42bcf7bc9f5" - integrity sha1-jokKGD2O6aI5OzhExpGkK897yfU= - dependencies: - array-flatten "^2.1.0" - deep-equal "^1.0.1" - dns-equal "^1.0.0" - dns-txt "^2.0.2" - multicast-dns "^6.0.1" - multicast-dns-service-types "^1.1.0" - -boolbase@^1.0.0, boolbase@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e" - integrity sha1-aN/1++YMUes3cl6p4+0xDcwed24= - -boxen@^4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/boxen/-/boxen-4.2.0.tgz#e411b62357d6d6d36587c8ac3d5d974daa070e64" - integrity sha512-eB4uT9RGzg2odpER62bBwSLvUeGC+WbRjjyyFhGsKnc8wp/m0+hQsMUvUe3H2V0D5vw0nBdO1hCJoZo5mKeuIQ== - dependencies: - ansi-align "^3.0.0" - camelcase "^5.3.1" - chalk "^3.0.0" - cli-boxes "^2.2.0" - string-width "^4.1.0" - term-size "^2.1.0" - type-fest "^0.8.1" - widest-line "^3.1.0" - -brace-expansion@^1.1.7: - version "1.1.11" - resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" - integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== - dependencies: - balanced-match "^1.0.0" - concat-map "0.0.1" - -braces@^2.3.1, braces@^2.3.2: - version "2.3.2" - resolved "https://registry.yarnpkg.com/braces/-/braces-2.3.2.tgz#5979fd3f14cd531565e5fa2df1abfff1dfaee729" - integrity sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w== - dependencies: - arr-flatten "^1.1.0" - array-unique "^0.3.2" - extend-shallow "^2.0.1" - fill-range "^4.0.0" - isobject "^3.0.1" - repeat-element "^1.1.2" - snapdragon "^0.8.1" - snapdragon-node "^2.0.1" - split-string "^3.0.2" - to-regex "^3.0.1" - -braces@^3.0.1, braces@~3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" - integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== - dependencies: - fill-range "^7.0.1" - -brorand@^1.0.1, brorand@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" - integrity sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8= - -browserify-aes@^1.0.0, browserify-aes@^1.0.4: - version "1.2.0" - resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.2.0.tgz#326734642f403dabc3003209853bb70ad428ef48" - integrity sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA== - dependencies: - buffer-xor "^1.0.3" - cipher-base "^1.0.0" - create-hash "^1.1.0" - evp_bytestokey "^1.0.3" - inherits "^2.0.1" - safe-buffer "^5.0.1" - -browserify-cipher@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/browserify-cipher/-/browserify-cipher-1.0.1.tgz#8d6474c1b870bfdabcd3bcfcc1934a10e94f15f0" - integrity sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w== - dependencies: - browserify-aes "^1.0.4" - browserify-des "^1.0.0" - evp_bytestokey "^1.0.0" - -browserify-des@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/browserify-des/-/browserify-des-1.0.2.tgz#3af4f1f59839403572f1c66204375f7a7f703e9c" - integrity sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A== - dependencies: - cipher-base "^1.0.1" - des.js "^1.0.0" - inherits "^2.0.1" - safe-buffer "^5.1.2" - -browserify-rsa@^4.0.0, browserify-rsa@^4.0.1: - version "4.1.0" - resolved "https://registry.yarnpkg.com/browserify-rsa/-/browserify-rsa-4.1.0.tgz#b2fd06b5b75ae297f7ce2dc651f918f5be158c8d" - integrity sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog== - dependencies: - bn.js "^5.0.0" - randombytes "^2.0.1" - -browserify-sign@^4.0.0: - version "4.2.1" - resolved "https://registry.yarnpkg.com/browserify-sign/-/browserify-sign-4.2.1.tgz#eaf4add46dd54be3bb3b36c0cf15abbeba7956c3" - integrity sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg== - dependencies: - bn.js "^5.1.1" - browserify-rsa "^4.0.1" - create-hash "^1.2.0" - create-hmac "^1.1.7" - elliptic "^6.5.3" - inherits "^2.0.4" - parse-asn1 "^5.1.5" - readable-stream "^3.6.0" - safe-buffer "^5.2.0" - -browserify-zlib@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/browserify-zlib/-/browserify-zlib-0.2.0.tgz#2869459d9aa3be245fe8fe2ca1f46e2e7f54d73f" - integrity sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA== - dependencies: - pako "~1.0.5" - -browserslist@4.10.0: - version "4.10.0" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.10.0.tgz#f179737913eaf0d2b98e4926ac1ca6a15cbcc6a9" - integrity sha512-TpfK0TDgv71dzuTsEAlQiHeWQ/tiPqgNZVdv046fvNtBZrjbv2O3TsWCDU0AWGJJKCF/KsjNdLzR9hXOsh/CfA== - dependencies: - caniuse-lite "^1.0.30001035" - electron-to-chromium "^1.3.378" - node-releases "^1.1.52" - pkg-up "^3.1.0" - -browserslist@^4.0.0, browserslist@^4.12.0, browserslist@^4.14.5, browserslist@^4.16.6, browserslist@^4.6.4: - version "4.16.6" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.16.6.tgz#d7901277a5a88e554ed305b183ec9b0c08f66fa2" - integrity sha512-Wspk/PqO+4W9qp5iUTJsa1B/QrYn1keNCcEP5OvP7WBwT4KaDly0uONYmC6Xa3Z5IqnUgS0KcgLYu1l74x0ZXQ== - dependencies: - caniuse-lite "^1.0.30001219" - colorette "^1.2.2" - electron-to-chromium "^1.3.723" - escalade "^3.1.1" - node-releases "^1.1.71" - -buffer-from@^1.0.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef" - integrity sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A== - -buffer-indexof@^1.0.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/buffer-indexof/-/buffer-indexof-1.1.1.tgz#52fabcc6a606d1a00302802648ef68f639da268c" - integrity sha512-4/rOEg86jivtPTeOUUT61jJO1Ya1TrR/OkqCSZDyq84WJh3LuuiphBYJN+fm5xufIk4XAFcEwte/8WzC8If/1g== - -buffer-json@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/buffer-json/-/buffer-json-2.0.0.tgz#f73e13b1e42f196fe2fd67d001c7d7107edd7c23" - integrity sha512-+jjPFVqyfF1esi9fvfUs3NqM0pH1ziZ36VP4hmA/y/Ssfo/5w5xHKfTw9BwQjoJ1w/oVtpLomqwUHKdefGyuHw== - -buffer-xor@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9" - integrity sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk= - -buffer@^4.3.0: - version "4.9.2" - resolved "https://registry.yarnpkg.com/buffer/-/buffer-4.9.2.tgz#230ead344002988644841ab0244af8c44bbe3ef8" - integrity sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg== - dependencies: - base64-js "^1.0.2" - ieee754 "^1.1.4" - isarray "^1.0.0" - -builtin-status-codes@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8" - integrity sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug= - -bytes@3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048" - integrity sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg= - -bytes@3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.0.tgz#f6cf7933a360e0588fa9fde85651cdc7f805d1f6" - integrity sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg== - -cacache@^12.0.2: - version "12.0.4" - resolved "https://registry.yarnpkg.com/cacache/-/cacache-12.0.4.tgz#668bcbd105aeb5f1d92fe25570ec9525c8faa40c" - integrity sha512-a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ== - dependencies: - bluebird "^3.5.5" - chownr "^1.1.1" - figgy-pudding "^3.5.1" - glob "^7.1.4" - graceful-fs "^4.1.15" - infer-owner "^1.0.3" - lru-cache "^5.1.1" - mississippi "^3.0.0" - mkdirp "^0.5.1" - move-concurrently "^1.0.1" - promise-inflight "^1.0.1" - rimraf "^2.6.3" - ssri "^6.0.1" - unique-filename "^1.1.1" - y18n "^4.0.0" - -cacache@^15.0.5: - version "15.0.6" - resolved "https://registry.yarnpkg.com/cacache/-/cacache-15.0.6.tgz#65a8c580fda15b59150fb76bf3f3a8e45d583099" - integrity sha512-g1WYDMct/jzW+JdWEyjaX2zoBkZ6ZT9VpOyp2I/VMtDsNLffNat3kqPFfi1eDRSK9/SuKGyORDHcQMcPF8sQ/w== - dependencies: - "@npmcli/move-file" "^1.0.1" - chownr "^2.0.0" - fs-minipass "^2.0.0" - glob "^7.1.4" - infer-owner "^1.0.4" - lru-cache "^6.0.0" - minipass "^3.1.1" - minipass-collect "^1.0.2" - minipass-flush "^1.0.5" - minipass-pipeline "^1.2.2" - mkdirp "^1.0.3" - p-map "^4.0.0" - promise-inflight "^1.0.1" - rimraf "^3.0.2" - ssri "^8.0.1" - tar "^6.0.2" - unique-filename "^1.1.1" - -cache-base@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/cache-base/-/cache-base-1.0.1.tgz#0a7f46416831c8b662ee36fe4e7c59d76f666ab2" - integrity sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ== - dependencies: - collection-visit "^1.0.0" - component-emitter "^1.2.1" - get-value "^2.0.6" - has-value "^1.0.0" - isobject "^3.0.1" - set-value "^2.0.0" - to-object-path "^0.3.0" - union-value "^1.0.0" - unset-value "^1.0.0" - -cache-loader@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/cache-loader/-/cache-loader-4.1.0.tgz#9948cae353aec0a1fcb1eafda2300816ec85387e" - integrity sha512-ftOayxve0PwKzBF/GLsZNC9fJBXl8lkZE3TOsjkboHfVHVkL39iUEs1FO07A33mizmci5Dudt38UZrrYXDtbhw== - dependencies: - buffer-json "^2.0.0" - find-cache-dir "^3.0.0" - loader-utils "^1.2.3" - mkdirp "^0.5.1" - neo-async "^2.6.1" - schema-utils "^2.0.0" - -cacheable-request@^6.0.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-6.1.0.tgz#20ffb8bd162ba4be11e9567d823db651052ca912" - integrity sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg== - dependencies: - clone-response "^1.0.2" - get-stream "^5.1.0" - http-cache-semantics "^4.0.0" - keyv "^3.0.0" - lowercase-keys "^2.0.0" - normalize-url "^4.1.0" - responselike "^1.0.2" - -call-bind@^1.0.0, call-bind@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c" - integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA== - dependencies: - function-bind "^1.1.1" - get-intrinsic "^1.0.2" - -call-me-maybe@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/call-me-maybe/-/call-me-maybe-1.0.1.tgz#26d208ea89e37b5cbde60250a15f031c16a4d66b" - integrity sha1-JtII6onje1y95gJQoV8DHBak1ms= - -caller-callsite@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/caller-callsite/-/caller-callsite-2.0.0.tgz#847e0fce0a223750a9a027c54b33731ad3154134" - integrity sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ= - dependencies: - callsites "^2.0.0" - -caller-path@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/caller-path/-/caller-path-2.0.0.tgz#468f83044e369ab2010fac5f06ceee15bb2cb1f4" - integrity sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ= - dependencies: - caller-callsite "^2.0.0" - -callsites@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/callsites/-/callsites-2.0.0.tgz#06eb84f00eea413da86affefacbffb36093b3c50" - integrity sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA= - -callsites@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" - integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== - -camel-case@^4.1.1: - version "4.1.2" - resolved "https://registry.yarnpkg.com/camel-case/-/camel-case-4.1.2.tgz#9728072a954f805228225a6deea6b38461e1bd5a" - integrity sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw== - dependencies: - pascal-case "^3.1.2" - tslib "^2.0.3" - -camelcase-css@2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/camelcase-css/-/camelcase-css-2.0.1.tgz#ee978f6947914cc30c6b44741b6ed1df7f043fd5" - integrity sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA== - -camelcase@^5.0.0, camelcase@^5.3.1: - version "5.3.1" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" - integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== - -camelcase@^6.2.0: - version "6.2.0" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.2.0.tgz#924af881c9d525ac9d87f40d964e5cea982a1809" - integrity sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg== - -caniuse-api@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/caniuse-api/-/caniuse-api-3.0.0.tgz#5e4d90e2274961d46291997df599e3ed008ee4c0" - integrity sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw== - dependencies: - browserslist "^4.0.0" - caniuse-lite "^1.0.0" - lodash.memoize "^4.1.2" - lodash.uniq "^4.5.0" - -caniuse-lite@^1.0.0, caniuse-lite@^1.0.30000981, caniuse-lite@^1.0.30001035, caniuse-lite@^1.0.30001109, caniuse-lite@^1.0.30001219: - version "1.0.30001223" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001223.tgz#39b49ff0bfb3ee3587000d2f66c47addc6e14443" - integrity sha512-k/RYs6zc/fjbxTjaWZemeSmOjO0JJV+KguOBA3NwPup8uzxM1cMhR2BD9XmO86GuqaqTCO8CgkgH9Rz//vdDiA== - -ccount@^1.0.0, ccount@^1.0.3: - version "1.1.0" - resolved "https://registry.yarnpkg.com/ccount/-/ccount-1.1.0.tgz#246687debb6014735131be8abab2d93898f8d043" - integrity sha512-vlNK021QdI7PNeiUh/lKkC/mNHHfV0m/Ad5JoI0TYtlBnJAslM/JIkm/tGC88bkLIwO6OQ5uV6ztS6kVAtCDlg== - -chalk@2.4.2, chalk@^2.0.0, chalk@^2.4.1, chalk@^2.4.2: - version "2.4.2" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" - integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== - dependencies: - ansi-styles "^3.2.1" - escape-string-regexp "^1.0.5" - supports-color "^5.3.0" - -chalk@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" - integrity sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg= - dependencies: - ansi-styles "^2.2.1" - escape-string-regexp "^1.0.2" - has-ansi "^2.0.0" - strip-ansi "^3.0.0" - supports-color "^2.0.0" - -chalk@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-3.0.0.tgz#3f73c2bf526591f574cc492c51e2456349f844e4" - integrity sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg== - dependencies: - ansi-styles "^4.1.0" - supports-color "^7.1.0" - -chalk@^4.1.0: - version "4.1.1" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.1.tgz#c80b3fab28bf6371e6863325eee67e618b77e6ad" - integrity sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg== - dependencies: - ansi-styles "^4.1.0" - supports-color "^7.1.0" - -character-entities-legacy@^1.0.0: - version "1.1.4" - resolved "https://registry.yarnpkg.com/character-entities-legacy/-/character-entities-legacy-1.1.4.tgz#94bc1845dce70a5bb9d2ecc748725661293d8fc1" - integrity sha512-3Xnr+7ZFS1uxeiUDvV02wQ+QDbc55o97tIV5zHScSPJpcLm/r0DFPcoY3tYRp+VZukxuMeKgXYmsXQHO05zQeA== - -character-entities@^1.0.0: - version "1.2.4" - resolved "https://registry.yarnpkg.com/character-entities/-/character-entities-1.2.4.tgz#e12c3939b7eaf4e5b15e7ad4c5e28e1d48c5b16b" - integrity sha512-iBMyeEHxfVnIakwOuDXpVkc54HijNgCyQB2w0VfGQThle6NXn50zU6V/u+LDhxHcDUPojn6Kpga3PTAD8W1bQw== - -character-reference-invalid@^1.0.0: - version "1.1.4" - resolved "https://registry.yarnpkg.com/character-reference-invalid/-/character-reference-invalid-1.1.4.tgz#083329cda0eae272ab3dbbf37e9a382c13af1560" - integrity sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg== - -chardet@^0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e" - integrity sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA== - -check-types@^8.0.3: - version "8.0.3" - resolved "https://registry.yarnpkg.com/check-types/-/check-types-8.0.3.tgz#3356cca19c889544f2d7a95ed49ce508a0ecf552" - integrity sha512-YpeKZngUmG65rLudJ4taU7VLkOCTMhNl/u4ctNC56LQS/zJTyNH0Lrtwm1tfTsbLlwvlfsA2d1c8vCf/Kh2KwQ== - -cheerio@^0.22.0: - version "0.22.0" - resolved "https://registry.yarnpkg.com/cheerio/-/cheerio-0.22.0.tgz#a9baa860a3f9b595a6b81b1a86873121ed3a269e" - integrity sha1-qbqoYKP5tZWmuBsahocxIe06Jp4= - dependencies: - css-select "~1.2.0" - dom-serializer "~0.1.0" - entities "~1.1.1" - htmlparser2 "^3.9.1" - lodash.assignin "^4.0.9" - lodash.bind "^4.1.4" - lodash.defaults "^4.0.1" - lodash.filter "^4.4.0" - lodash.flatten "^4.2.0" - lodash.foreach "^4.3.0" - lodash.map "^4.4.0" - lodash.merge "^4.4.0" - lodash.pick "^4.2.1" - lodash.reduce "^4.4.0" - lodash.reject "^4.4.0" - lodash.some "^4.4.0" - -chokidar@^2.1.8: - version "2.1.8" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-2.1.8.tgz#804b3a7b6a99358c3c5c61e71d8728f041cff917" - integrity sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg== - dependencies: - anymatch "^2.0.0" - async-each "^1.0.1" - braces "^2.3.2" - glob-parent "^3.1.0" - inherits "^2.0.3" - is-binary-path "^1.0.0" - is-glob "^4.0.0" - normalize-path "^3.0.0" - path-is-absolute "^1.0.0" - readdirp "^2.2.1" - upath "^1.1.1" - optionalDependencies: - fsevents "^1.2.7" - -chokidar@^3.3.0, chokidar@^3.4.1: - version "3.5.1" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.1.tgz#ee9ce7bbebd2b79f49f304799d5468e31e14e68a" - integrity sha512-9+s+Od+W0VJJzawDma/gvBNQqkTiqYTWLuZoyAsivsI4AaWTCzHG06/TMjsf1cYe9Cb97UCEhjz7HvnPk2p/tw== - dependencies: - anymatch "~3.1.1" - braces "~3.0.2" - glob-parent "~5.1.0" - is-binary-path "~2.1.0" - is-glob "~4.0.1" - normalize-path "~3.0.0" - readdirp "~3.5.0" - optionalDependencies: - fsevents "~2.3.1" - -chownr@^1.1.1: - version "1.1.4" - resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.4.tgz#6fc9d7b42d32a583596337666e7d08084da2cc6b" - integrity sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg== - -chownr@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/chownr/-/chownr-2.0.0.tgz#15bfbe53d2eab4cf70f18a8cd68ebe5b3cb1dece" - integrity sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ== - -chrome-trace-event@^1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz#1015eced4741e15d06664a957dbbf50d041e26ac" - integrity sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg== - -ci-info@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-2.0.0.tgz#67a9e964be31a51e15e5010d58e6f12834002f46" - integrity sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ== - -ci-info@^3.0.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.1.1.tgz#9a32fcefdf7bcdb6f0a7e1c0f8098ec57897b80a" - integrity sha512-kdRWLBIJwdsYJWYJFtAFFYxybguqeF91qpZaggjG5Nf8QKdizFG2hjqvaTXbxFIcYbSaD74KpAXv6BSm17DHEQ== - -cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.4.tgz#8760e4ecc272f4c363532f926d874aae2c1397de" - integrity sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q== - dependencies: - inherits "^2.0.1" - safe-buffer "^5.0.1" - -class-utils@^0.3.5: - version "0.3.6" - resolved "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463" - integrity sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg== - dependencies: - arr-union "^3.1.0" - define-property "^0.2.5" - isobject "^3.0.0" - static-extend "^0.1.1" - -classnames@^2.2.5: - version "2.3.1" - resolved "https://registry.yarnpkg.com/classnames/-/classnames-2.3.1.tgz#dfcfa3891e306ec1dad105d0e88f4417b8535e8e" - integrity sha512-OlQdbZ7gLfGarSqxesMesDa5uz7KFbID8Kpq/SxIoNGDqY8lSYs0D+hhtBXhcdB3rcbXArFr7vlHheLk1voeNA== - -clean-css@^4.2.3: - version "4.2.3" - resolved "https://registry.yarnpkg.com/clean-css/-/clean-css-4.2.3.tgz#507b5de7d97b48ee53d84adb0160ff6216380f78" - integrity sha512-VcMWDN54ZN/DS+g58HYL5/n4Zrqe8vHJpGA8KdgUXFU4fuP/aHNw8eld9SyEIyabIMJX/0RaY/fplOo5hYLSFA== - dependencies: - source-map "~0.6.0" - -clean-stack@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b" - integrity sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A== - -cli-boxes@^2.2.0: - version "2.2.1" - resolved "https://registry.yarnpkg.com/cli-boxes/-/cli-boxes-2.2.1.tgz#ddd5035d25094fce220e9cab40a45840a440318f" - integrity sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw== - -cli-cursor@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-3.1.0.tgz#264305a7ae490d1d03bf0c9ba7c925d1753af307" - integrity sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw== - dependencies: - restore-cursor "^3.1.0" - -cli-width@^2.0.0: - version "2.2.1" - resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.2.1.tgz#b0433d0b4e9c847ef18868a4ef16fd5fc8271c48" - integrity sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw== - -cli-width@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-3.0.0.tgz#a2f48437a2caa9a22436e794bf071ec9e61cedf6" - integrity sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw== - -clipboard@^2.0.0: - version "2.0.8" - resolved "https://registry.yarnpkg.com/clipboard/-/clipboard-2.0.8.tgz#ffc6c103dd2967a83005f3f61976aa4655a4cdba" - integrity sha512-Y6WO0unAIQp5bLmk1zdThRhgJt/x3ks6f30s3oE3H1mgIEU33XyQjEf8gsf6DxC7NPX8Y1SsNWjUjL/ywLnnbQ== - dependencies: - good-listener "^1.2.2" - select "^1.1.2" - tiny-emitter "^2.0.0" - -cliui@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-5.0.0.tgz#deefcfdb2e800784aa34f46fa08e06851c7bbbc5" - integrity sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA== - dependencies: - string-width "^3.1.0" - strip-ansi "^5.2.0" - wrap-ansi "^5.1.0" - -clone-response@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/clone-response/-/clone-response-1.0.2.tgz#d1dc973920314df67fbeb94223b4ee350239e96b" - integrity sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws= - dependencies: - mimic-response "^1.0.0" - -clsx@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/clsx/-/clsx-1.1.1.tgz#98b3134f9abbdf23b2663491ace13c5c03a73188" - integrity sha512-6/bPho624p3S2pMyvP5kKBPXnI3ufHLObBFCfgx+LkeR5lg2XYy2hqZqUf45ypD8COn2bhgGJSUE+l5dhNBieA== - -coa@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/coa/-/coa-2.0.2.tgz#43f6c21151b4ef2bf57187db0d73de229e3e7ec3" - integrity sha512-q5/jG+YQnSy4nRTV4F7lPepBJZ8qBNJJDBuJdoejDyLXgmL7IEo+Le2JDZudFTFt7mrCqIRaSjws4ygRCTCAXA== - dependencies: - "@types/q" "^1.5.1" - chalk "^2.4.1" - q "^1.1.2" - -collapse-white-space@^1.0.2: - version "1.0.6" - resolved "https://registry.yarnpkg.com/collapse-white-space/-/collapse-white-space-1.0.6.tgz#e63629c0016665792060dbbeb79c42239d2c5287" - integrity sha512-jEovNnrhMuqyCcjfEJA56v0Xq8SkIoPKDyaHahwo3POf4qcSXqMYuwNcOTzp74vTsR9Tn08z4MxWqAhcekogkQ== - -collection-visit@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/collection-visit/-/collection-visit-1.0.0.tgz#4bc0373c164bc3291b4d368c829cf1a80a59dca0" - integrity sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA= - dependencies: - map-visit "^1.0.0" - object-visit "^1.0.0" - -color-convert@^1.9.0, color-convert@^1.9.1: - version "1.9.3" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" - integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== - dependencies: - color-name "1.1.3" - -color-convert@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" - integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== - dependencies: - color-name "~1.1.4" - -color-name@1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" - integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= - -color-name@^1.0.0, color-name@~1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" - integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== - -color-string@^1.5.4: - version "1.5.5" - resolved "https://registry.yarnpkg.com/color-string/-/color-string-1.5.5.tgz#65474a8f0e7439625f3d27a6a19d89fc45223014" - integrity sha512-jgIoum0OfQfq9Whcfc2z/VhCNcmQjWbey6qBX0vqt7YICflUmBCh9E9CiQD5GSJ+Uehixm3NUwHVhqUAWRivZg== - dependencies: - color-name "^1.0.0" - simple-swizzle "^0.2.2" - -color@^3.0.0: - version "3.1.3" - resolved "https://registry.yarnpkg.com/color/-/color-3.1.3.tgz#ca67fb4e7b97d611dcde39eceed422067d91596e" - integrity sha512-xgXAcTHa2HeFCGLE9Xs/R82hujGtu9Jd9x4NW3T34+OMs7VoPsjwzRczKHvTAHeJwWFwX5j15+MgAppE8ztObQ== - dependencies: - color-convert "^1.9.1" - color-string "^1.5.4" - -colorette@^1.2.1, colorette@^1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/colorette/-/colorette-1.2.2.tgz#cbcc79d5e99caea2dbf10eb3a26fd8b3e6acfa94" - integrity sha512-MKGMzyfeuutC/ZJ1cba9NqcNpfeqMUcYmyF1ZFY6/Cn7CNSAKx6a+s48sqLqyAiZuaP2TcqMhoo+dlwFnVxT9w== - -comma-separated-tokens@^1.0.0: - version "1.0.8" - resolved "https://registry.yarnpkg.com/comma-separated-tokens/-/comma-separated-tokens-1.0.8.tgz#632b80b6117867a158f1080ad498b2fbe7e3f5ea" - integrity sha512-GHuDRO12Sypu2cV70d1dkA2EUmXHgntrzbpvOB+Qy+49ypNfGgFQIC2fhhXbnyrJRynDCAARsT7Ou0M6hirpfw== - -commander@^2.18.0, commander@^2.20.0: - version "2.20.3" - resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" - integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== - -commander@^4.0.1, commander@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/commander/-/commander-4.1.1.tgz#9fd602bd936294e9e9ef46a3f4d6964044b18068" - integrity sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA== - -commondir@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" - integrity sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs= - -component-emitter@^1.2.1: - version "1.3.0" - resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.3.0.tgz#16e4070fba8ae29b679f2215853ee181ab2eabc0" - integrity sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg== - -compressible@~2.0.16: - version "2.0.18" - resolved "https://registry.yarnpkg.com/compressible/-/compressible-2.0.18.tgz#af53cca6b070d4c3c0750fbd77286a6d7cc46fba" - integrity sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg== - dependencies: - mime-db ">= 1.43.0 < 2" - -compression@^1.7.4: - version "1.7.4" - resolved "https://registry.yarnpkg.com/compression/-/compression-1.7.4.tgz#95523eff170ca57c29a0ca41e6fe131f41e5bb8f" - integrity sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ== - dependencies: - accepts "~1.3.5" - bytes "3.0.0" - compressible "~2.0.16" - debug "2.6.9" - on-headers "~1.0.2" - safe-buffer "5.1.2" - vary "~1.1.2" - -concat-map@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" - integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= - -concat-stream@^1.5.0: - version "1.6.2" - resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34" - integrity sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw== - dependencies: - buffer-from "^1.0.0" - inherits "^2.0.3" - readable-stream "^2.2.2" - typedarray "^0.0.6" - -configstore@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/configstore/-/configstore-5.0.1.tgz#d365021b5df4b98cdd187d6a3b0e3f6a7cc5ed96" - integrity sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA== - dependencies: - dot-prop "^5.2.0" - graceful-fs "^4.1.2" - make-dir "^3.0.0" - unique-string "^2.0.0" - write-file-atomic "^3.0.0" - xdg-basedir "^4.0.0" - -connect-history-api-fallback@^1.6.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz#8b32089359308d111115d81cad3fceab888f97bc" - integrity sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg== - -consola@^2.10.0: - version "2.15.3" - resolved "https://registry.yarnpkg.com/consola/-/consola-2.15.3.tgz#2e11f98d6a4be71ff72e0bdf07bd23e12cb61550" - integrity sha512-9vAdYbHj6x2fLKC4+oPH0kFzY/orMZyG2Aj+kNylHxKGJ/Ed4dpNyAQYwJOdqO4zdM7XpVHmyejQDcQHrnuXbw== - -console-browserify@^1.1.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.2.0.tgz#67063cef57ceb6cf4993a2ab3a55840ae8c49336" - integrity sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA== - -constants-browserify@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-1.0.0.tgz#c20b96d8c617748aaf1c16021760cd27fcb8cb75" - integrity sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U= - -content-disposition@0.5.2: - version "0.5.2" - resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.2.tgz#0cf68bb9ddf5f2be7961c3a85178cb85dba78cb4" - integrity sha1-DPaLud318r55YcOoUXjLhdunjLQ= - -content-disposition@0.5.3: - version "0.5.3" - resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.3.tgz#e130caf7e7279087c5616c2007d0485698984fbd" - integrity sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g== - dependencies: - safe-buffer "5.1.2" - -content-type@~1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" - integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA== - -convert-source-map@^1.7.0: - version "1.7.0" - resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.7.0.tgz#17a2cb882d7f77d3490585e2ce6c524424a3a442" - integrity sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA== - dependencies: - safe-buffer "~5.1.1" - -cookie-signature@1.0.6: - version "1.0.6" - resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" - integrity sha1-4wOogrNCzD7oylE6eZmXNNqzriw= - -cookie@0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.0.tgz#beb437e7022b3b6d49019d088665303ebe9c14ba" - integrity sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg== - -copy-concurrently@^1.0.0: - version "1.0.5" - resolved "https://registry.yarnpkg.com/copy-concurrently/-/copy-concurrently-1.0.5.tgz#92297398cae34937fcafd6ec8139c18051f0b5e0" - integrity sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A== - dependencies: - aproba "^1.1.1" - fs-write-stream-atomic "^1.0.8" - iferr "^0.1.5" - mkdirp "^0.5.1" - rimraf "^2.5.4" - run-queue "^1.0.0" - -copy-descriptor@^0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" - integrity sha1-Z29us8OZl8LuGsOpJP1hJHSPV40= - -copy-text-to-clipboard@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/copy-text-to-clipboard/-/copy-text-to-clipboard-2.2.0.tgz#329dd6daf8c42034c763ace567418401764579ae" - integrity sha512-WRvoIdnTs1rgPMkgA2pUOa/M4Enh2uzCwdKsOMYNAJiz/4ZvEJgmbF4OmninPmlFdAWisfeh0tH+Cpf7ni3RqQ== - -copy-webpack-plugin@^6.0.3: - version "6.4.1" - resolved "https://registry.yarnpkg.com/copy-webpack-plugin/-/copy-webpack-plugin-6.4.1.tgz#138cd9b436dbca0a6d071720d5414848992ec47e" - integrity sha512-MXyPCjdPVx5iiWyl40Va3JGh27bKzOTNY3NjUTrosD2q7dR/cLD0013uqJ3BpFbUjyONINjb6qI7nDIJujrMbA== - dependencies: - cacache "^15.0.5" - fast-glob "^3.2.4" - find-cache-dir "^3.3.1" - glob-parent "^5.1.1" - globby "^11.0.1" - loader-utils "^2.0.0" - normalize-path "^3.0.0" - p-limit "^3.0.2" - schema-utils "^3.0.0" - serialize-javascript "^5.0.1" - webpack-sources "^1.4.3" - -core-js-compat@^3.9.0, core-js-compat@^3.9.1: - version "3.12.1" - resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.12.1.tgz#2c302c4708505fa7072b0adb5156d26f7801a18b" - integrity sha512-i6h5qODpw6EsHAoIdQhKoZdWn+dGBF3dSS8m5tif36RlWvW3A6+yu2S16QHUo3CrkzrnEskMAt9f8FxmY9fhWQ== - dependencies: - browserslist "^4.16.6" - semver "7.0.0" - -core-js-pure@^3.0.0: - version "3.12.1" - resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.12.1.tgz#934da8b9b7221e2a2443dc71dfa5bd77a7ea00b8" - integrity sha512-1cch+qads4JnDSWsvc7d6nzlKAippwjUlf6vykkTLW53VSV+NkE6muGBToAjEA8pG90cSfcud3JgVmW2ds5TaQ== - -core-js@^2.6.5: - version "2.6.12" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.12.tgz#d9333dfa7b065e347cc5682219d6f690859cc2ec" - integrity sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ== - -core-util-is@~1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" - integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= - -cosmiconfig@^5.0.0: - version "5.2.1" - resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-5.2.1.tgz#040f726809c591e77a17c0a3626ca45b4f168b1a" - integrity sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA== - dependencies: - import-fresh "^2.0.0" - is-directory "^0.3.1" - js-yaml "^3.13.1" - parse-json "^4.0.0" - -cosmiconfig@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-7.0.0.tgz#ef9b44d773959cae63ddecd122de23853b60f8d3" - integrity sha512-pondGvTuVYDk++upghXJabWzL6Kxu6f26ljFw64Swq9v6sQPUL3EUlVDV56diOjpCayKihL6hVe8exIACU4XcA== - dependencies: - "@types/parse-json" "^4.0.0" - import-fresh "^3.2.1" - parse-json "^5.0.0" - path-type "^4.0.0" - yaml "^1.10.0" - -create-ecdh@^4.0.0: - version "4.0.4" - resolved "https://registry.yarnpkg.com/create-ecdh/-/create-ecdh-4.0.4.tgz#d6e7f4bffa66736085a0762fd3a632684dabcc4e" - integrity sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A== - dependencies: - bn.js "^4.1.0" - elliptic "^6.5.3" - -create-hash@^1.1.0, create-hash@^1.1.2, create-hash@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/create-hash/-/create-hash-1.2.0.tgz#889078af11a63756bcfb59bd221996be3a9ef196" - integrity sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg== - dependencies: - cipher-base "^1.0.1" - inherits "^2.0.1" - md5.js "^1.3.4" - ripemd160 "^2.0.1" - sha.js "^2.4.0" - -create-hmac@^1.1.0, create-hmac@^1.1.4, create-hmac@^1.1.7: - version "1.1.7" - resolved "https://registry.yarnpkg.com/create-hmac/-/create-hmac-1.1.7.tgz#69170c78b3ab957147b2b8b04572e47ead2243ff" - integrity sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg== - dependencies: - cipher-base "^1.0.3" - create-hash "^1.1.0" - inherits "^2.0.1" - ripemd160 "^2.0.0" - safe-buffer "^5.0.1" - sha.js "^2.4.8" - -cross-fetch@^3.0.4: - version "3.1.4" - resolved "https://registry.yarnpkg.com/cross-fetch/-/cross-fetch-3.1.4.tgz#9723f3a3a247bf8b89039f3a380a9244e8fa2f39" - integrity sha512-1eAtFWdIubi6T4XPy6ei9iUFoKpUkIF971QLN8lIvvvwueI65+Nw5haMNKUwfJxabqlIIDODJKGrQ66gxC0PbQ== - dependencies: - node-fetch "2.6.1" - -cross-spawn@7.0.1: - version "7.0.1" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.1.tgz#0ab56286e0f7c24e153d04cc2aa027e43a9a5d14" - integrity sha512-u7v4o84SwFpD32Z8IIcPZ6z1/ie24O6RU3RbtL5Y316l3KuHVPx9ItBgWQ6VlfAFnRnTtMUrsQ9MUUTuEZjogg== - dependencies: - path-key "^3.1.0" - shebang-command "^2.0.0" - which "^2.0.1" - -cross-spawn@^6.0.0: - version "6.0.5" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4" - integrity sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ== - dependencies: - nice-try "^1.0.4" - path-key "^2.0.1" - semver "^5.5.0" - shebang-command "^1.2.0" - which "^1.2.9" - -cross-spawn@^7.0.0: - version "7.0.3" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" - integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== - dependencies: - path-key "^3.1.0" - shebang-command "^2.0.0" - which "^2.0.1" - -crypto-browserify@^3.11.0: - version "3.12.0" - resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.12.0.tgz#396cf9f3137f03e4b8e532c58f698254e00f80ec" - integrity sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg== - dependencies: - browserify-cipher "^1.0.0" - browserify-sign "^4.0.0" - create-ecdh "^4.0.0" - create-hash "^1.1.0" - create-hmac "^1.1.0" - diffie-hellman "^5.0.0" - inherits "^2.0.1" - pbkdf2 "^3.0.3" - public-encrypt "^4.0.0" - randombytes "^2.0.0" - randomfill "^1.0.3" - -crypto-random-string@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-2.0.0.tgz#ef2a7a966ec11083388369baa02ebead229b30d5" - integrity sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA== - -css-blank-pseudo@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/css-blank-pseudo/-/css-blank-pseudo-0.1.4.tgz#dfdefd3254bf8a82027993674ccf35483bfcb3c5" - integrity sha512-LHz35Hr83dnFeipc7oqFDmsjHdljj3TQtxGGiNWSOsTLIAubSm4TEz8qCaKFpk7idaQ1GfWscF4E6mgpBysA1w== - dependencies: - postcss "^7.0.5" - -css-color-names@0.0.4, css-color-names@^0.0.4: - version "0.0.4" - resolved "https://registry.yarnpkg.com/css-color-names/-/css-color-names-0.0.4.tgz#808adc2e79cf84738069b646cb20ec27beb629e0" - integrity sha1-gIrcLnnPhHOAabZGyyDsJ762KeA= - -css-declaration-sorter@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/css-declaration-sorter/-/css-declaration-sorter-4.0.1.tgz#c198940f63a76d7e36c1e71018b001721054cb22" - integrity sha512-BcxQSKTSEEQUftYpBVnsH4SF05NTuBokb19/sBt6asXGKZ/6VP7PLG1CBCkFDYOnhXhPh0jMhO6xZ71oYHXHBA== - dependencies: - postcss "^7.0.1" - timsort "^0.3.0" - -css-has-pseudo@^0.10.0: - version "0.10.0" - resolved "https://registry.yarnpkg.com/css-has-pseudo/-/css-has-pseudo-0.10.0.tgz#3c642ab34ca242c59c41a125df9105841f6966ee" - integrity sha512-Z8hnfsZu4o/kt+AuFzeGpLVhFOGO9mluyHBaA2bA8aCGTwah5sT3WV/fTHH8UNZUytOIImuGPrl/prlb4oX4qQ== - dependencies: - postcss "^7.0.6" - postcss-selector-parser "^5.0.0-rc.4" - -css-loader@^3.4.2: - version "3.6.0" - resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-3.6.0.tgz#2e4b2c7e6e2d27f8c8f28f61bffcd2e6c91ef645" - integrity sha512-M5lSukoWi1If8dhQAUCvj4H8vUt3vOnwbQBH9DdTm/s4Ym2B/3dPMtYZeJmq7Q3S3Pa+I94DcZ7pc9bP14cWIQ== - dependencies: - camelcase "^5.3.1" - cssesc "^3.0.0" - icss-utils "^4.1.1" - loader-utils "^1.2.3" - normalize-path "^3.0.0" - postcss "^7.0.32" - postcss-modules-extract-imports "^2.0.0" - postcss-modules-local-by-default "^3.0.2" - postcss-modules-scope "^2.2.0" - postcss-modules-values "^3.0.0" - postcss-value-parser "^4.1.0" - schema-utils "^2.7.0" - semver "^6.3.0" - -css-prefers-color-scheme@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/css-prefers-color-scheme/-/css-prefers-color-scheme-3.1.1.tgz#6f830a2714199d4f0d0d0bb8a27916ed65cff1f4" - integrity sha512-MTu6+tMs9S3EUqzmqLXEcgNRbNkkD/TGFvowpeoWJn5Vfq7FMgsmRQs9X5NXAURiOBmOxm/lLjsDNXDE6k9bhg== - dependencies: - postcss "^7.0.5" - -css-select-base-adapter@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/css-select-base-adapter/-/css-select-base-adapter-0.1.1.tgz#3b2ff4972cc362ab88561507a95408a1432135d7" - integrity sha512-jQVeeRG70QI08vSTwf1jHxp74JoZsr2XSgETae8/xC8ovSnL2WF87GTLO86Sbwdt2lK4Umg4HnnwMO4YF3Ce7w== - -css-select@^2.0.0, css-select@^2.0.2: - version "2.1.0" - resolved "https://registry.yarnpkg.com/css-select/-/css-select-2.1.0.tgz#6a34653356635934a81baca68d0255432105dbef" - integrity sha512-Dqk7LQKpwLoH3VovzZnkzegqNSuAziQyNZUcrdDM401iY+R5NkGBXGmtO05/yaXQziALuPogeG0b7UAgjnTJTQ== - dependencies: - boolbase "^1.0.0" - css-what "^3.2.1" - domutils "^1.7.0" - nth-check "^1.0.2" - -css-select@~1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/css-select/-/css-select-1.2.0.tgz#2b3a110539c5355f1cd8d314623e870b121ec858" - integrity sha1-KzoRBTnFNV8c2NMUYj6HCxIeyFg= - dependencies: - boolbase "~1.0.0" - css-what "2.1" - domutils "1.5.1" - nth-check "~1.0.1" - -css-tree@1.0.0-alpha.37: - version "1.0.0-alpha.37" - resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.0.0-alpha.37.tgz#98bebd62c4c1d9f960ec340cf9f7522e30709a22" - integrity sha512-DMxWJg0rnz7UgxKT0Q1HU/L9BeJI0M6ksor0OgqOnF+aRCDWg/N2641HmVyU9KVIu0OVVWOb2IpC9A+BJRnejg== - dependencies: - mdn-data "2.0.4" - source-map "^0.6.1" - -css-tree@^1.1.2: - version "1.1.3" - resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.1.3.tgz#eb4870fb6fd7707327ec95c2ff2ab09b5e8db91d" - integrity sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q== - dependencies: - mdn-data "2.0.14" - source-map "^0.6.1" - -css-what@2.1: - version "2.1.3" - resolved "https://registry.yarnpkg.com/css-what/-/css-what-2.1.3.tgz#a6d7604573365fe74686c3f311c56513d88285f2" - integrity sha512-a+EPoD+uZiNfh+5fxw2nO9QwFa6nJe2Or35fGY6Ipw1R3R4AGz1d1TEZrCegvw2YTmZ0jXirGYlzxxpYSHwpEg== - -css-what@^3.2.1: - version "3.4.2" - resolved "https://registry.yarnpkg.com/css-what/-/css-what-3.4.2.tgz#ea7026fcb01777edbde52124e21f327e7ae950e4" - integrity sha512-ACUm3L0/jiZTqfzRM3Hi9Q8eZqd6IK37mMWPLz9PJxkLWllYeRf+EHUSHYEtFop2Eqytaq1FizFVh7XfBnXCDQ== - -cssdb@^4.4.0: - version "4.4.0" - resolved "https://registry.yarnpkg.com/cssdb/-/cssdb-4.4.0.tgz#3bf2f2a68c10f5c6a08abd92378331ee803cddb0" - integrity sha512-LsTAR1JPEM9TpGhl/0p3nQecC2LJ0kD8X5YARu1hk/9I1gril5vDtMZyNxcEpxxDj34YNck/ucjuoUd66K03oQ== - -cssesc@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-2.0.0.tgz#3b13bd1bb1cb36e1bcb5a4dcd27f54c5dcb35703" - integrity sha512-MsCAG1z9lPdoO/IUMLSBWBSVxVtJ1395VGIQ+Fc2gNdkQ1hNDnQdw3YhA71WJCBW1vdwA0cAnk/DnW6bqoEUYg== - -cssesc@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee" - integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg== - -cssnano-preset-default@^4.0.8: - version "4.0.8" - resolved "https://registry.yarnpkg.com/cssnano-preset-default/-/cssnano-preset-default-4.0.8.tgz#920622b1fc1e95a34e8838203f1397a504f2d3ff" - integrity sha512-LdAyHuq+VRyeVREFmuxUZR1TXjQm8QQU/ktoo/x7bz+SdOge1YKc5eMN6pRW7YWBmyq59CqYba1dJ5cUukEjLQ== - dependencies: - css-declaration-sorter "^4.0.1" - cssnano-util-raw-cache "^4.0.1" - postcss "^7.0.0" - postcss-calc "^7.0.1" - postcss-colormin "^4.0.3" - postcss-convert-values "^4.0.1" - postcss-discard-comments "^4.0.2" - postcss-discard-duplicates "^4.0.2" - postcss-discard-empty "^4.0.1" - postcss-discard-overridden "^4.0.1" - postcss-merge-longhand "^4.0.11" - postcss-merge-rules "^4.0.3" - postcss-minify-font-values "^4.0.2" - postcss-minify-gradients "^4.0.2" - postcss-minify-params "^4.0.2" - postcss-minify-selectors "^4.0.2" - postcss-normalize-charset "^4.0.1" - postcss-normalize-display-values "^4.0.2" - postcss-normalize-positions "^4.0.2" - postcss-normalize-repeat-style "^4.0.2" - postcss-normalize-string "^4.0.2" - postcss-normalize-timing-functions "^4.0.2" - postcss-normalize-unicode "^4.0.1" - postcss-normalize-url "^4.0.1" - postcss-normalize-whitespace "^4.0.2" - postcss-ordered-values "^4.1.2" - postcss-reduce-initial "^4.0.3" - postcss-reduce-transforms "^4.0.2" - postcss-svgo "^4.0.3" - postcss-unique-selectors "^4.0.1" - -cssnano-util-get-arguments@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/cssnano-util-get-arguments/-/cssnano-util-get-arguments-4.0.0.tgz#ed3a08299f21d75741b20f3b81f194ed49cc150f" - integrity sha1-7ToIKZ8h11dBsg87gfGU7UnMFQ8= - -cssnano-util-get-match@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/cssnano-util-get-match/-/cssnano-util-get-match-4.0.0.tgz#c0e4ca07f5386bb17ec5e52250b4f5961365156d" - integrity sha1-wOTKB/U4a7F+xeUiULT1lhNlFW0= - -cssnano-util-raw-cache@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/cssnano-util-raw-cache/-/cssnano-util-raw-cache-4.0.1.tgz#b26d5fd5f72a11dfe7a7846fb4c67260f96bf282" - integrity sha512-qLuYtWK2b2Dy55I8ZX3ky1Z16WYsx544Q0UWViebptpwn/xDBmog2TLg4f+DBMg1rJ6JDWtn96WHbOKDWt1WQA== - dependencies: - postcss "^7.0.0" - -cssnano-util-same-parent@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/cssnano-util-same-parent/-/cssnano-util-same-parent-4.0.1.tgz#574082fb2859d2db433855835d9a8456ea18bbf3" - integrity sha512-WcKx5OY+KoSIAxBW6UBBRay1U6vkYheCdjyVNDm85zt5K9mHoGOfsOsqIszfAqrQQFIIKgjh2+FDgIj/zsl21Q== - -cssnano@^4.1.10: - version "4.1.11" - resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-4.1.11.tgz#c7b5f5b81da269cb1fd982cb960c1200910c9a99" - integrity sha512-6gZm2htn7xIPJOHY824ERgj8cNPgPxyCSnkXc4v7YvNW+TdVfzgngHcEhy/8D11kUWRUMbke+tC+AUcUsnMz2g== - dependencies: - cosmiconfig "^5.0.0" - cssnano-preset-default "^4.0.8" - is-resolvable "^1.0.0" - postcss "^7.0.0" - -csso@^4.0.2: - version "4.2.0" - resolved "https://registry.yarnpkg.com/csso/-/csso-4.2.0.tgz#ea3a561346e8dc9f546d6febedd50187cf389529" - integrity sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA== - dependencies: - css-tree "^1.1.2" - -csstype@^3.0.2: - version "3.0.8" - resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.0.8.tgz#d2266a792729fb227cd216fb572f43728e1ad340" - integrity sha512-jXKhWqXPmlUeoQnF/EhTtTl4C9SnrxSH/jZUih3jmO6lBKr99rP3/+FmrMj4EFpOXzMtXHAZkd3x0E6h6Fgflw== - -cyclist@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/cyclist/-/cyclist-1.0.1.tgz#596e9698fd0c80e12038c2b82d6eb1b35b6224d9" - integrity sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk= - -debug@2.6.9, debug@^2.2.0, debug@^2.3.3, debug@^2.6.0: - version "2.6.9" - resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" - integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== - dependencies: - ms "2.0.0" - -debug@^3.1.1, debug@^3.2.6: - version "3.2.7" - resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a" - integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ== - dependencies: - ms "^2.1.1" - -debug@^4.1.0, debug@^4.1.1: - version "4.3.1" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.1.tgz#f0d229c505e0c6d8c49ac553d1b13dc183f6b2ee" - integrity sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ== - dependencies: - ms "2.1.2" - -decamelize@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" - integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA= - -decode-uri-component@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545" - integrity sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU= - -decompress-response@^3.3.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-3.3.0.tgz#80a4dd323748384bfa248083622aedec982adff3" - integrity sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M= - dependencies: - mimic-response "^1.0.0" - -deep-equal@^1.0.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.1.1.tgz#b5c98c942ceffaf7cb051e24e1434a25a2e6076a" - integrity sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g== - dependencies: - is-arguments "^1.0.4" - is-date-object "^1.0.1" - is-regex "^1.0.4" - object-is "^1.0.1" - object-keys "^1.1.1" - regexp.prototype.flags "^1.2.0" - -deep-extend@^0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" - integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA== - -deepmerge@^4.2.2: - version "4.2.2" - resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.2.2.tgz#44d2ea3679b8f4d4ffba33f03d865fc1e7bf4955" - integrity sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg== - -default-gateway@^4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/default-gateway/-/default-gateway-4.2.0.tgz#167104c7500c2115f6dd69b0a536bb8ed720552b" - integrity sha512-h6sMrVB1VMWVrW13mSc6ia/DwYYw5MN6+exNu1OaJeFac5aSAvwM7lZ0NVfTABuSkQelr4h5oebg3KB1XPdjgA== - dependencies: - execa "^1.0.0" - ip-regex "^2.1.0" - -defer-to-connect@^1.0.1: - version "1.1.3" - resolved "https://registry.yarnpkg.com/defer-to-connect/-/defer-to-connect-1.1.3.tgz#331ae050c08dcf789f8c83a7b81f0ed94f4ac591" - integrity sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ== - -define-properties@^1.1.2, define-properties@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1" - integrity sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ== - dependencies: - object-keys "^1.0.12" - -define-property@^0.2.5: - version "0.2.5" - resolved "https://registry.yarnpkg.com/define-property/-/define-property-0.2.5.tgz#c35b1ef918ec3c990f9a5bc57be04aacec5c8116" - integrity sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY= - dependencies: - is-descriptor "^0.1.0" - -define-property@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/define-property/-/define-property-1.0.0.tgz#769ebaaf3f4a63aad3af9e8d304c9bbe79bfb0e6" - integrity sha1-dp66rz9KY6rTr56NMEybvnm/sOY= - dependencies: - is-descriptor "^1.0.0" - -define-property@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/define-property/-/define-property-2.0.2.tgz#d459689e8d654ba77e02a817f8710d702cb16e9d" - integrity sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ== - dependencies: - is-descriptor "^1.0.2" - isobject "^3.0.1" - -del@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/del/-/del-4.1.1.tgz#9e8f117222ea44a31ff3a156c049b99052a9f0b4" - integrity sha512-QwGuEUouP2kVwQenAsOof5Fv8K9t3D8Ca8NxcXKrIpEHjTXK5J2nXLdP+ALI1cgv8wj7KuwBhTwBkOZSJKM5XQ== - dependencies: - "@types/glob" "^7.1.1" - globby "^6.1.0" - is-path-cwd "^2.0.0" - is-path-in-cwd "^2.0.0" - p-map "^2.0.0" - pify "^4.0.1" - rimraf "^2.6.3" - -del@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/del/-/del-5.1.0.tgz#d9487c94e367410e6eff2925ee58c0c84a75b3a7" - integrity sha512-wH9xOVHnczo9jN2IW68BabcecVPxacIA3g/7z6vhSU/4stOKQzeCRK0yD0A24WiAAUJmmVpWqrERcTxnLo3AnA== - dependencies: - globby "^10.0.1" - graceful-fs "^4.2.2" - is-glob "^4.0.1" - is-path-cwd "^2.2.0" - is-path-inside "^3.0.1" - p-map "^3.0.0" - rimraf "^3.0.0" - slash "^3.0.0" - -delegate@^3.1.2: - version "3.2.0" - resolved "https://registry.yarnpkg.com/delegate/-/delegate-3.2.0.tgz#b66b71c3158522e8ab5744f720d8ca0c2af59166" - integrity sha512-IofjkYBZaZivn0V8nnsMJGBr4jVLxHDheKSW88PyxS5QC4Vo9ZbZVvhzlSxY87fVq3STR6r+4cGepyHkcWOQSw== - -depd@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" - integrity sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak= - -des.js@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/des.js/-/des.js-1.0.1.tgz#5382142e1bdc53f85d86d53e5f4aa7deb91e0843" - integrity sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA== - dependencies: - inherits "^2.0.1" - minimalistic-assert "^1.0.0" - -destroy@~1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80" - integrity sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA= - -detab@2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/detab/-/detab-2.0.4.tgz#b927892069aff405fbb9a186fe97a44a92a94b43" - integrity sha512-8zdsQA5bIkoRECvCrNKPla84lyoR7DSAyf7p0YgXzBO9PDJx8KntPUay7NS6yp+KdxdVtiE5SpHKtbp2ZQyA9g== - dependencies: - repeat-string "^1.5.4" - -detect-node@^2.0.4: - version "2.0.5" - resolved "https://registry.yarnpkg.com/detect-node/-/detect-node-2.0.5.tgz#9d270aa7eaa5af0b72c4c9d9b814e7f4ce738b79" - integrity sha512-qi86tE6hRcFHy8jI1m2VG+LaPUR1LhqDa5G8tVjuUXmOrpuAgqsA1pN0+ldgr3aKUH+QLI9hCY/OcRYisERejw== - -detect-port-alt@1.1.6: - version "1.1.6" - resolved "https://registry.yarnpkg.com/detect-port-alt/-/detect-port-alt-1.1.6.tgz#24707deabe932d4a3cf621302027c2b266568275" - integrity sha512-5tQykt+LqfJFBEYaDITx7S7cR7mJ/zQmLXZ2qt5w04ainYZw6tBf9dBunMjVeVOdYVRUzUOE4HkY5J7+uttb5Q== - dependencies: - address "^1.0.1" - debug "^2.6.0" - -detect-port@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/detect-port/-/detect-port-1.3.0.tgz#d9c40e9accadd4df5cac6a782aefd014d573d1f1" - integrity sha512-E+B1gzkl2gqxt1IhUzwjrxBKRqx1UzC3WLONHinn8S3T6lwV/agVCyitiFOsGJ/eYuEUBvD71MZHy3Pv1G9doQ== - dependencies: - address "^1.0.1" - debug "^2.6.0" - -diffie-hellman@^5.0.0: - version "5.0.3" - resolved "https://registry.yarnpkg.com/diffie-hellman/-/diffie-hellman-5.0.3.tgz#40e8ee98f55a2149607146921c63e1ae5f3d2875" - integrity sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg== - dependencies: - bn.js "^4.1.0" - miller-rabin "^4.0.0" - randombytes "^2.0.0" - -dir-glob@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-2.0.0.tgz#0b205d2b6aef98238ca286598a8204d29d0a0034" - integrity sha512-37qirFDz8cA5fimp9feo43fSuRo2gHwaIn6dXL8Ber1dGwUosDrGZeCCXq57WnIqE4aQ+u3eQZzsk1yOzhdwag== - dependencies: - arrify "^1.0.1" - path-type "^3.0.0" - -dir-glob@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f" - integrity sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA== - dependencies: - path-type "^4.0.0" - -dns-equal@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/dns-equal/-/dns-equal-1.0.0.tgz#b39e7f1da6eb0a75ba9c17324b34753c47e0654d" - integrity sha1-s55/HabrCnW6nBcySzR1PEfgZU0= - -dns-packet@^1.3.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/dns-packet/-/dns-packet-1.3.1.tgz#12aa426981075be500b910eedcd0b47dd7deda5a" - integrity sha512-0UxfQkMhYAUaZI+xrNZOz/as5KgDU0M/fQ9b6SpkyLbk3GEswDi6PADJVaYJradtRVsRIlF1zLyOodbcTCDzUg== - dependencies: - ip "^1.1.0" - safe-buffer "^5.0.1" - -dns-txt@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/dns-txt/-/dns-txt-2.0.2.tgz#b91d806f5d27188e4ab3e7d107d881a1cc4642b6" - integrity sha1-uR2Ab10nGI5Ks+fRB9iBocxGQrY= - dependencies: - buffer-indexof "^1.0.0" - -dom-converter@^0.2: - version "0.2.0" - resolved "https://registry.yarnpkg.com/dom-converter/-/dom-converter-0.2.0.tgz#6721a9daee2e293682955b6afe416771627bb768" - integrity sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA== - dependencies: - utila "~0.4" - -dom-serializer@0: - version "0.2.2" - resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.2.2.tgz#1afb81f533717175d478655debc5e332d9f9bb51" - integrity sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g== - dependencies: - domelementtype "^2.0.1" - entities "^2.0.0" - -dom-serializer@~0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.1.1.tgz#1ec4059e284babed36eec2941d4a970a189ce7c0" - integrity sha512-l0IU0pPzLWSHBcieZbpOKgkIn3ts3vAh7ZuFyXNwJxJXk/c4Gwj9xaTJwIDVQCXawWD0qb3IzMGH5rglQaO0XA== - dependencies: - domelementtype "^1.3.0" - entities "^1.1.1" - -domain-browser@^1.1.1: - version "1.2.0" - resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.2.0.tgz#3d31f50191a6749dd1375a7f522e823d42e54eda" - integrity sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA== - -domelementtype@1, domelementtype@^1.3.0, domelementtype@^1.3.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.3.1.tgz#d048c44b37b0d10a7f2a3d5fee3f4333d790481f" - integrity sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w== - -domelementtype@^2.0.1: - version "2.2.0" - resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.2.0.tgz#9a0b6c2782ed6a1c7323d42267183df9bd8b1d57" - integrity sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A== - -domhandler@^2.3.0: - version "2.4.2" - resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-2.4.2.tgz#8805097e933d65e85546f726d60f5eb88b44f803" - integrity sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA== - dependencies: - domelementtype "1" - -domutils@1.5.1: - version "1.5.1" - resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.5.1.tgz#dcd8488a26f563d61079e48c9f7b7e32373682cf" - integrity sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8= - dependencies: - dom-serializer "0" - domelementtype "1" - -domutils@^1.5.1, domutils@^1.7.0: - version "1.7.0" - resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.7.0.tgz#56ea341e834e06e6748af7a1cb25da67ea9f8c2a" - integrity sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg== - dependencies: - dom-serializer "0" - domelementtype "1" - -dot-case@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/dot-case/-/dot-case-3.0.4.tgz#9b2b670d00a431667a8a75ba29cd1b98809ce751" - integrity sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w== - dependencies: - no-case "^3.0.4" - tslib "^2.0.3" - -dot-prop@^5.2.0: - version "5.3.0" - resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-5.3.0.tgz#90ccce708cd9cd82cc4dc8c3ddd9abdd55b20e88" - integrity sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q== - dependencies: - is-obj "^2.0.0" - -duplexer3@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/duplexer3/-/duplexer3-0.1.4.tgz#ee01dd1cac0ed3cbc7fdbea37dc0a8f1ce002ce2" - integrity sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI= - -duplexer@^0.1.1: - version "0.1.2" - resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.2.tgz#3abe43aef3835f8ae077d136ddce0f276b0400e6" - integrity sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg== - -duplexify@^3.4.2, duplexify@^3.6.0: - version "3.7.1" - resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-3.7.1.tgz#2a4df5317f6ccfd91f86d6fd25d8d8a103b88309" - integrity sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g== - dependencies: - end-of-stream "^1.0.0" - inherits "^2.0.1" - readable-stream "^2.0.0" - stream-shift "^1.0.0" - -ee-first@1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" - integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= - -ejs@^2.6.1: - version "2.7.4" - resolved "https://registry.yarnpkg.com/ejs/-/ejs-2.7.4.tgz#48661287573dcc53e366c7a1ae52c3a120eec9ba" - integrity sha512-7vmuyh5+kuUyJKePhQfRQBhXV5Ce+RnaeeQArKu1EAMpL3WbgMt5WG6uQZpEVvYSSsxMXRKOewtDk9RaTKXRlA== - -electron-to-chromium@^1.3.378, electron-to-chromium@^1.3.723: - version "1.3.727" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.727.tgz#857e310ca00f0b75da4e1db6ff0e073cc4a91ddf" - integrity sha512-Mfz4FIB4FSvEwBpDfdipRIrwd6uo8gUDoRDF4QEYb4h4tSuI3ov594OrjU6on042UlFHouIJpClDODGkPcBSbg== - -elliptic@^6.5.3: - version "6.5.4" - resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.4.tgz#da37cebd31e79a1367e941b592ed1fbebd58abbb" - integrity sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ== - dependencies: - bn.js "^4.11.9" - brorand "^1.1.0" - hash.js "^1.0.0" - hmac-drbg "^1.0.1" - inherits "^2.0.4" - minimalistic-assert "^1.0.1" - minimalistic-crypto-utils "^1.0.1" - -"emoji-regex@>=6.0.0 <=6.1.1": - version "6.1.1" - resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-6.1.1.tgz#c6cd0ec1b0642e2a3c67a1137efc5e796da4f88e" - integrity sha1-xs0OwbBkLio8Z6ETfvxeeW2k+I4= - -emoji-regex@^7.0.1: - version "7.0.3" - resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156" - integrity sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA== - -emoji-regex@^8.0.0: - version "8.0.0" - resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" - integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== - -emojis-list@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-2.1.0.tgz#4daa4d9db00f9819880c79fa457ae5b09a1fd389" - integrity sha1-TapNnbAPmBmIDHn6RXrlsJof04k= - -emojis-list@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-3.0.0.tgz#5570662046ad29e2e916e71aae260abdff4f6a78" - integrity sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q== - -emoticon@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/emoticon/-/emoticon-3.2.0.tgz#c008ca7d7620fac742fe1bf4af8ff8fed154ae7f" - integrity sha512-SNujglcLTTg+lDAcApPNgEdudaqQFiAbJCqzjNxJkvN9vAwCGi0uu8IUVvx+f16h+V44KCY6Y2yboroc9pilHg== - -encodeurl@~1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" - integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k= - -end-of-stream@^1.0.0, end-of-stream@^1.1.0: - version "1.4.4" - resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" - integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== - dependencies: - once "^1.4.0" - -enhanced-resolve@^4.5.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-4.5.0.tgz#2f3cfd84dbe3b487f18f2db2ef1e064a571ca5ec" - integrity sha512-Nv9m36S/vxpsI+Hc4/ZGRs0n9mXqSWGGq49zxb/cJfPAQMbUtttJAlNPS4AQzaBdw/pKskw5bMbekT/Y7W/Wlg== - dependencies: - graceful-fs "^4.1.2" - memory-fs "^0.5.0" - tapable "^1.0.0" - -entities@^1.1.1, entities@~1.1.1: - version "1.1.2" - resolved "https://registry.yarnpkg.com/entities/-/entities-1.1.2.tgz#bdfa735299664dfafd34529ed4f8522a275fea56" - integrity sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w== - -entities@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/entities/-/entities-2.2.0.tgz#098dc90ebb83d8dffa089d55256b351d34c4da55" - integrity sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A== - -errno@^0.1.3, errno@~0.1.7: - version "0.1.8" - resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.8.tgz#8bb3e9c7d463be4976ff888f76b4809ebc2e811f" - integrity sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A== - dependencies: - prr "~1.0.1" - -error-ex@^1.3.1: - version "1.3.2" - resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" - integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== - dependencies: - is-arrayish "^0.2.1" - -es-abstract@^1.17.2, es-abstract@^1.18.0-next.2: - version "1.18.0" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.18.0.tgz#ab80b359eecb7ede4c298000390bc5ac3ec7b5a4" - integrity sha512-LJzK7MrQa8TS0ja2w3YNLzUgJCGPdPOV1yVvezjNnS89D+VR08+Szt2mz3YB2Dck/+w5tfIq/RoUAFqJJGM2yw== - dependencies: - call-bind "^1.0.2" - es-to-primitive "^1.2.1" - function-bind "^1.1.1" - get-intrinsic "^1.1.1" - has "^1.0.3" - has-symbols "^1.0.2" - is-callable "^1.2.3" - is-negative-zero "^2.0.1" - is-regex "^1.1.2" - is-string "^1.0.5" - object-inspect "^1.9.0" - object-keys "^1.1.1" - object.assign "^4.1.2" - string.prototype.trimend "^1.0.4" - string.prototype.trimstart "^1.0.4" - unbox-primitive "^1.0.0" - -es-to-primitive@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a" - integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA== - dependencies: - is-callable "^1.1.4" - is-date-object "^1.0.1" - is-symbol "^1.0.2" - -escalade@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" - integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== - -escape-goat@^2.0.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/escape-goat/-/escape-goat-2.1.1.tgz#1b2dc77003676c457ec760b2dc68edb648188675" - integrity sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q== - -escape-html@^1.0.3, escape-html@~1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" - integrity sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg= - -escape-string-regexp@2.0.0, escape-string-regexp@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz#a30304e99daa32e23b2fd20f51babd07cffca344" - integrity sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w== - -escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" - integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= - -eslint-scope@^4.0.3: - version "4.0.3" - resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-4.0.3.tgz#ca03833310f6889a3264781aa82e63eb9cfe7848" - integrity sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg== - dependencies: - esrecurse "^4.1.0" - estraverse "^4.1.1" - -esprima@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" - integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== - -esrecurse@^4.1.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921" - integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== - dependencies: - estraverse "^5.2.0" - -estraverse@^4.1.1: - version "4.3.0" - resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" - integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== - -estraverse@^5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.2.0.tgz#307df42547e6cc7324d3cf03c155d5cdb8c53880" - integrity sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ== - -esutils@^2.0.2: - version "2.0.3" - resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" - integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== - -eta@^1.1.1: - version "1.12.1" - resolved "https://registry.yarnpkg.com/eta/-/eta-1.12.1.tgz#d985766591676c323f02dfc48a67539212745937" - integrity sha512-H8npoci2J/7XiPnVcCVulBSPsTNGvGaINyMjQDU8AFqp9LGsEYS88g2CiU+d01Sg44WtX7o4nb8wUJ9vnI+tiA== - -etag@~1.8.1: - version "1.8.1" - resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" - integrity sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc= - -eval@^0.1.4: - version "0.1.6" - resolved "https://registry.yarnpkg.com/eval/-/eval-0.1.6.tgz#9620d7d8c85515e97e6b47c5814f46ae381cb3cc" - integrity sha512-o0XUw+5OGkXw4pJZzQoXUk+H87DHuC+7ZE//oSrRGtatTmr12oTnLfg6QOq9DyTt0c/p4TwzgmkKrBzWTSizyQ== - dependencies: - require-like ">= 0.1.1" - -eventemitter3@^4.0.0: - version "4.0.7" - resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f" - integrity sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw== - -events@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/events/-/events-1.1.1.tgz#9ebdb7635ad099c70dcc4c2a1f5004288e8bd924" - integrity sha1-nr23Y1rQmccNzEwqH1AEKI6L2SQ= - -events@^3.0.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/events/-/events-3.3.0.tgz#31a95ad0a924e2d2c419a813aeb2c4e878ea7400" - integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q== - -eventsource@^1.0.7: - version "1.1.0" - resolved "https://registry.yarnpkg.com/eventsource/-/eventsource-1.1.0.tgz#00e8ca7c92109e94b0ddf32dac677d841028cfaf" - integrity sha512-VSJjT5oCNrFvCS6igjzPAt5hBzQ2qPBFIbJ03zLI9SE0mxwZpMw6BfJrbFHm1a141AavMEB8JHmBhWAd66PfCg== - dependencies: - original "^1.0.0" - -evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz#7fcbdb198dc71959432efe13842684e0525acb02" - integrity sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA== - dependencies: - md5.js "^1.3.4" - safe-buffer "^5.1.1" - -execa@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/execa/-/execa-1.0.0.tgz#c6236a5bb4df6d6f15e88e7f017798216749ddd8" - integrity sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA== - dependencies: - cross-spawn "^6.0.0" - get-stream "^4.0.0" - is-stream "^1.1.0" - npm-run-path "^2.0.0" - p-finally "^1.0.0" - signal-exit "^3.0.0" - strip-eof "^1.0.0" - -execa@^3.4.0: - version "3.4.0" - resolved "https://registry.yarnpkg.com/execa/-/execa-3.4.0.tgz#c08ed4550ef65d858fac269ffc8572446f37eb89" - integrity sha512-r9vdGQk4bmCuK1yKQu1KTwcT2zwfWdbdaXfCtAh+5nU/4fSX+JAb7vZGvI5naJrQlvONrEB20jeruESI69530g== - dependencies: - cross-spawn "^7.0.0" - get-stream "^5.0.0" - human-signals "^1.1.1" - is-stream "^2.0.0" - merge-stream "^2.0.0" - npm-run-path "^4.0.0" - onetime "^5.1.0" - p-finally "^2.0.0" - signal-exit "^3.0.2" - strip-final-newline "^2.0.0" - -expand-brackets@^2.1.4: - version "2.1.4" - resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-2.1.4.tgz#b77735e315ce30f6b6eff0f83b04151a22449622" - integrity sha1-t3c14xXOMPa27/D4OwQVGiJEliI= - dependencies: - debug "^2.3.3" - define-property "^0.2.5" - extend-shallow "^2.0.1" - posix-character-classes "^0.1.0" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.1" - -express@^4.16.3, express@^4.17.1: - version "4.17.1" - resolved "https://registry.yarnpkg.com/express/-/express-4.17.1.tgz#4491fc38605cf51f8629d39c2b5d026f98a4c134" - integrity sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g== - dependencies: - accepts "~1.3.7" - array-flatten "1.1.1" - body-parser "1.19.0" - content-disposition "0.5.3" - content-type "~1.0.4" - cookie "0.4.0" - cookie-signature "1.0.6" - debug "2.6.9" - depd "~1.1.2" - encodeurl "~1.0.2" - escape-html "~1.0.3" - etag "~1.8.1" - finalhandler "~1.1.2" - fresh "0.5.2" - merge-descriptors "1.0.1" - methods "~1.1.2" - on-finished "~2.3.0" - parseurl "~1.3.3" - path-to-regexp "0.1.7" - proxy-addr "~2.0.5" - qs "6.7.0" - range-parser "~1.2.1" - safe-buffer "5.1.2" - send "0.17.1" - serve-static "1.14.1" - setprototypeof "1.1.1" - statuses "~1.5.0" - type-is "~1.6.18" - utils-merge "1.0.1" - vary "~1.1.2" - -extend-shallow@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f" - integrity sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8= - dependencies: - is-extendable "^0.1.0" - -extend-shallow@^3.0.0, extend-shallow@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-3.0.2.tgz#26a71aaf073b39fb2127172746131c2704028db8" - integrity sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg= - dependencies: - assign-symbols "^1.0.0" - is-extendable "^1.0.1" - -extend@^3.0.0: - version "3.0.2" - resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" - integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== - -external-editor@^3.0.3: - version "3.1.0" - resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-3.1.0.tgz#cb03f740befae03ea4d283caed2741a83f335495" - integrity sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew== - dependencies: - chardet "^0.7.0" - iconv-lite "^0.4.24" - tmp "^0.0.33" - -extglob@^2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/extglob/-/extglob-2.0.4.tgz#ad00fe4dc612a9232e8718711dc5cb5ab0285543" - integrity sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw== - dependencies: - array-unique "^0.3.2" - define-property "^1.0.0" - expand-brackets "^2.1.4" - extend-shallow "^2.0.1" - fragment-cache "^0.2.1" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.1" - -fast-deep-equal@^3.1.1: - version "3.1.3" - resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" - integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== - -fast-glob@^2.0.2: - version "2.2.7" - resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-2.2.7.tgz#6953857c3afa475fff92ee6015d52da70a4cd39d" - integrity sha512-g1KuQwHOZAmOZMuBtHdxDtju+T2RT8jgCC9aANsbpdiDDTSnjgfuVsIBNKbUeJI3oKMRExcfNDtJl4OhbffMsw== - dependencies: - "@mrmlnc/readdir-enhanced" "^2.2.1" - "@nodelib/fs.stat" "^1.1.2" - glob-parent "^3.1.0" - is-glob "^4.0.0" - merge2 "^1.2.3" - micromatch "^3.1.10" - -fast-glob@^3.0.3, fast-glob@^3.1.1, fast-glob@^3.2.4: - version "3.2.5" - resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.5.tgz#7939af2a656de79a4f1901903ee8adcaa7cb9661" - integrity sha512-2DtFcgT68wiTTiwZ2hNdJfcHNke9XOfnwmBRWXhmeKM8rF0TGwmC/Qto3S7RoZKp5cilZbxzO5iTNTQsJ+EeDg== - dependencies: - "@nodelib/fs.stat" "^2.0.2" - "@nodelib/fs.walk" "^1.2.3" - glob-parent "^5.1.0" - merge2 "^1.3.0" - micromatch "^4.0.2" - picomatch "^2.2.1" - -fast-json-stable-stringify@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" - integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== - -fast-url-parser@1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/fast-url-parser/-/fast-url-parser-1.1.3.tgz#f4af3ea9f34d8a271cf58ad2b3759f431f0b318d" - integrity sha1-9K8+qfNNiicc9YrSs3WfQx8LMY0= - dependencies: - punycode "^1.3.2" - -fastq@^1.6.0: - version "1.11.0" - resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.11.0.tgz#bb9fb955a07130a918eb63c1f5161cc32a5d0858" - integrity sha512-7Eczs8gIPDrVzT+EksYBcupqMyxSHXXrHOLRRxU2/DicV8789MRBRR8+Hc2uWzUupOs4YS4JzBmBxjjCVBxD/g== - dependencies: - reusify "^1.0.4" - -faye-websocket@^0.11.3: - version "0.11.3" - resolved "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.11.3.tgz#5c0e9a8968e8912c286639fde977a8b209f2508e" - integrity sha512-D2y4bovYpzziGgbHYtGCMjlJM36vAl/y+xUyn1C+FVx8szd1E+86KwVw6XvYSzOP8iMpm1X0I4xJD+QtUb36OA== - dependencies: - websocket-driver ">=0.5.1" - -fbemitter@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/fbemitter/-/fbemitter-3.0.0.tgz#00b2a1af5411254aab416cd75f9e6289bee4bff3" - integrity sha512-KWKaceCwKQU0+HPoop6gn4eOHk50bBv/VxjJtGMfwmJt3D29JpN4H4eisCtIPA+a8GVBam+ldMMpMjJUvpDyHw== - dependencies: - fbjs "^3.0.0" - -fbjs-css-vars@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/fbjs-css-vars/-/fbjs-css-vars-1.0.2.tgz#216551136ae02fe255932c3ec8775f18e2c078b8" - integrity sha512-b2XGFAFdWZWg0phtAWLHCk836A1Xann+I+Dgd3Gk64MHKZO44FfoD1KxyvbSh0qZsIoXQGGlVztIY+oitJPpRQ== - -fbjs@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/fbjs/-/fbjs-3.0.0.tgz#0907067fb3f57a78f45d95f1eacffcacd623c165" - integrity sha512-dJd4PiDOFuhe7vk4F80Mba83Vr2QuK86FoxtgPmzBqEJahncp+13YCmfoa53KHCo6OnlXLG7eeMWPfB5CrpVKg== - dependencies: - cross-fetch "^3.0.4" - fbjs-css-vars "^1.0.0" - loose-envify "^1.0.0" - object-assign "^4.1.0" - promise "^7.1.1" - setimmediate "^1.0.5" - ua-parser-js "^0.7.18" - -feed@^4.1.0: - version "4.2.2" - resolved "https://registry.yarnpkg.com/feed/-/feed-4.2.2.tgz#865783ef6ed12579e2c44bbef3c9113bc4956a7e" - integrity sha512-u5/sxGfiMfZNtJ3OvQpXcvotFpYkL0n9u9mM2vkui2nGo8b4wvDkJ8gAkYqbA8QpGyFCv3RK0Z+Iv+9veCS9bQ== - dependencies: - xml-js "^1.6.11" - -figgy-pudding@^3.5.1: - version "3.5.2" - resolved "https://registry.yarnpkg.com/figgy-pudding/-/figgy-pudding-3.5.2.tgz#b4eee8148abb01dcf1d1ac34367d59e12fa61d6e" - integrity sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw== - -figures@^3.0.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/figures/-/figures-3.2.0.tgz#625c18bd293c604dc4a8ddb2febf0c88341746af" - integrity sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg== - dependencies: - escape-string-regexp "^1.0.5" - -file-loader@^6.0.0: - version "6.2.0" - resolved "https://registry.yarnpkg.com/file-loader/-/file-loader-6.2.0.tgz#baef7cf8e1840df325e4390b4484879480eebe4d" - integrity sha512-qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw== - dependencies: - loader-utils "^2.0.0" - schema-utils "^3.0.0" - -file-uri-to-path@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz#553a7b8446ff6f684359c445f1e37a05dacc33dd" - integrity sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw== - -filesize@6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/filesize/-/filesize-6.0.1.tgz#f850b509909c7c86f7e450ea19006c31c2ed3d2f" - integrity sha512-u4AYWPgbI5GBhs6id1KdImZWn5yfyFrrQ8OWZdN7ZMfA8Bf4HcO0BGo9bmUIEV8yrp8I1xVfJ/dn90GtFNNJcg== - -filesize@^3.6.1: - version "3.6.1" - resolved "https://registry.yarnpkg.com/filesize/-/filesize-3.6.1.tgz#090bb3ee01b6f801a8a8be99d31710b3422bb317" - integrity sha512-7KjR1vv6qnicaPMi1iiTcI85CyYwRO/PSFCu6SvqL8jN2Wjt/NIYQTFtFs7fSDCYOstUkEWIQGFUg5YZQfjlcg== - -fill-range@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7" - integrity sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc= - dependencies: - extend-shallow "^2.0.1" - is-number "^3.0.0" - repeat-string "^1.6.1" - to-regex-range "^2.1.0" - -fill-range@^7.0.1: - version "7.0.1" - resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" - integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== - dependencies: - to-regex-range "^5.0.1" - -finalhandler@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.2.tgz#b7e7d000ffd11938d0fdb053506f6ebabe9f587d" - integrity sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA== - dependencies: - debug "2.6.9" - encodeurl "~1.0.2" - escape-html "~1.0.3" - on-finished "~2.3.0" - parseurl "~1.3.3" - statuses "~1.5.0" - unpipe "~1.0.0" - -find-cache-dir@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-2.1.0.tgz#8d0f94cd13fe43c6c7c261a0d86115ca918c05f7" - integrity sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ== - dependencies: - commondir "^1.0.1" - make-dir "^2.0.0" - pkg-dir "^3.0.0" - -find-cache-dir@^3.0.0, find-cache-dir@^3.3.1: - version "3.3.1" - resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-3.3.1.tgz#89b33fad4a4670daa94f855f7fbe31d6d84fe880" - integrity sha512-t2GDMt3oGC/v+BMwzmllWDuJF/xcDtE5j/fCGbqDD7OLuJkj0cfh1YSA5VKPvwMeLFLNDBkwOKZ2X85jGLVftQ== - dependencies: - commondir "^1.0.1" - make-dir "^3.0.2" - pkg-dir "^4.1.0" - -find-up@4.1.0, find-up@^4.0.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" - integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== - dependencies: - locate-path "^5.0.0" - path-exists "^4.0.0" - -find-up@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73" - integrity sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg== - dependencies: - locate-path "^3.0.0" - -flatten@^1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/flatten/-/flatten-1.0.3.tgz#c1283ac9f27b368abc1e36d1ff7b04501a30356b" - integrity sha512-dVsPA/UwQ8+2uoFe5GHtiBMu48dWLTdsuEd7CKGlZlD78r1TTWBvDuFaFGKCo/ZfEr95Uk56vZoX86OsHkUeIg== - -flush-write-stream@^1.0.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/flush-write-stream/-/flush-write-stream-1.1.1.tgz#8dd7d873a1babc207d94ead0c2e0e44276ebf2e8" - integrity sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w== - dependencies: - inherits "^2.0.3" - readable-stream "^2.3.6" - -flux@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/flux/-/flux-4.0.1.tgz#7843502b02841d4aaa534af0b373034a1f75ee5c" - integrity sha512-emk4RCvJ8RzNP2lNpphKnG7r18q8elDYNAPx7xn+bDeOIo9FFfxEfIQ2y6YbQNmnsGD3nH1noxtLE64Puz1bRQ== - dependencies: - fbemitter "^3.0.0" - fbjs "^3.0.0" - -follow-redirects@^1.0.0: - version "1.14.0" - resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.14.0.tgz#f5d260f95c5f8c105894491feee5dc8993b402fe" - integrity sha512-0vRwd7RKQBTt+mgu87mtYeofLFZpTas2S9zY+jIeuLJMNvudIgF52nr19q40HOwH5RrhWIPuj9puybzSJiRrVg== - -for-in@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" - integrity sha1-gQaNKVqBQuwKxybG4iAMMPttXoA= - -fork-ts-checker-webpack-plugin@3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-3.1.1.tgz#a1642c0d3e65f50c2cc1742e9c0a80f441f86b19" - integrity sha512-DuVkPNrM12jR41KM2e+N+styka0EgLkTnXmNcXdgOM37vtGeY+oCBK/Jx0hzSeEU6memFCtWb4htrHPMDfwwUQ== - dependencies: - babel-code-frame "^6.22.0" - chalk "^2.4.1" - chokidar "^3.3.0" - micromatch "^3.1.10" - minimatch "^3.0.4" - semver "^5.6.0" - tapable "^1.0.0" - worker-rpc "^0.1.0" - -forwarded@~0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.1.2.tgz#98c23dab1175657b8c0573e8ceccd91b0ff18c84" - integrity sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ= - -fragment-cache@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/fragment-cache/-/fragment-cache-0.2.1.tgz#4290fad27f13e89be7f33799c6bc5a0abfff0d19" - integrity sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk= - dependencies: - map-cache "^0.2.2" - -fresh@0.5.2: - version "0.5.2" - resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" - integrity sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac= - -from2@^2.1.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/from2/-/from2-2.3.0.tgz#8bfb5502bde4a4d36cfdeea007fcca21d7e382af" - integrity sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8= - dependencies: - inherits "^2.0.1" - readable-stream "^2.0.0" - -fs-extra@^8.1.0: - version "8.1.0" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-8.1.0.tgz#49d43c45a88cd9677668cb7be1b46efdb8d2e1c0" - integrity sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g== - dependencies: - graceful-fs "^4.2.0" - jsonfile "^4.0.0" - universalify "^0.1.0" - -fs-minipass@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-2.1.0.tgz#7f5036fdbf12c63c169190cbe4199c852271f9fb" - integrity sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg== - dependencies: - minipass "^3.0.0" - -fs-write-stream-atomic@^1.0.8: - version "1.0.10" - resolved "https://registry.yarnpkg.com/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz#b47df53493ef911df75731e70a9ded0189db40c9" - integrity sha1-tH31NJPvkR33VzHnCp3tAYnbQMk= - dependencies: - graceful-fs "^4.1.2" - iferr "^0.1.5" - imurmurhash "^0.1.4" - readable-stream "1 || 2" - -fs.realpath@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" - integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= - -fsevents@^1.2.7: - version "1.2.13" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.13.tgz#f325cb0455592428bcf11b383370ef70e3bfcc38" - integrity sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw== - dependencies: - bindings "^1.5.0" - nan "^2.12.1" - -fsevents@~2.3.1: - version "2.3.2" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" - integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== - -function-bind@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" - integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== - -gensync@^1.0.0-beta.1, gensync@^1.0.0-beta.2: - version "1.0.0-beta.2" - resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0" - integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== - -get-caller-file@^2.0.1: - version "2.0.5" - resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" - integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== - -get-intrinsic@^1.0.2, get-intrinsic@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.1.tgz#15f59f376f855c446963948f0d24cd3637b4abc6" - integrity sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q== - dependencies: - function-bind "^1.1.1" - has "^1.0.3" - has-symbols "^1.0.1" - -get-own-enumerable-property-symbols@^3.0.0: - version "3.0.2" - resolved "https://registry.yarnpkg.com/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz#b5fde77f22cbe35f390b4e089922c50bce6ef664" - integrity sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g== - -get-stream@^4.0.0, get-stream@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5" - integrity sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w== - dependencies: - pump "^3.0.0" - -get-stream@^5.0.0, get-stream@^5.1.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.2.0.tgz#4966a1795ee5ace65e706c4b7beb71257d6e22d3" - integrity sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA== - dependencies: - pump "^3.0.0" - -get-value@^2.0.3, get-value@^2.0.6: - version "2.0.6" - resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28" - integrity sha1-3BXKHGcjh8p2vTesCjlbogQqLCg= - -github-slugger@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/github-slugger/-/github-slugger-1.3.0.tgz#9bd0a95c5efdfc46005e82a906ef8e2a059124c9" - integrity sha512-gwJScWVNhFYSRDvURk/8yhcFBee6aFjye2a7Lhb2bUyRulpIoek9p0I9Kt7PT67d/nUlZbFu8L9RLiA0woQN8Q== - dependencies: - emoji-regex ">=6.0.0 <=6.1.1" - -glob-parent@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-3.1.0.tgz#9e6af6299d8d3bd2bd40430832bd113df906c5ae" - integrity sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4= - dependencies: - is-glob "^3.1.0" - path-dirname "^1.0.0" - -glob-parent@^5.1.0, glob-parent@^5.1.1, glob-parent@~5.1.0: - version "5.1.2" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" - integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== - dependencies: - is-glob "^4.0.1" - -glob-to-regexp@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz#8c5a1494d2066c570cc3bfe4496175acc4d502ab" - integrity sha1-jFoUlNIGbFcMw7/kSWF1rMTVAqs= - -glob@^7.0.0, glob@^7.0.3, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4: - version "7.1.7" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.7.tgz#3b193e9233f01d42d0b3f78294bbeeb418f94a90" - integrity sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ== - dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^3.0.4" - once "^1.3.0" - path-is-absolute "^1.0.0" - -global-dirs@^2.0.1: - version "2.1.0" - resolved "https://registry.yarnpkg.com/global-dirs/-/global-dirs-2.1.0.tgz#e9046a49c806ff04d6c1825e196c8f0091e8df4d" - integrity sha512-MG6kdOUh/xBnyo9cJFeIKkLEc1AyFq42QTU4XiX51i2NEdxLxLWXIjEjmqKeSuKR7pAZjTqUVoT2b2huxVLgYQ== - dependencies: - ini "1.3.7" - -global-modules@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/global-modules/-/global-modules-2.0.0.tgz#997605ad2345f27f51539bea26574421215c7780" - integrity sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A== - dependencies: - global-prefix "^3.0.0" - -global-prefix@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/global-prefix/-/global-prefix-3.0.0.tgz#fc85f73064df69f50421f47f883fe5b913ba9b97" - integrity sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg== - dependencies: - ini "^1.3.5" - kind-of "^6.0.2" - which "^1.3.1" - -globals@^11.1.0: - version "11.12.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" - integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== - -globby@8.0.2: - version "8.0.2" - resolved "https://registry.yarnpkg.com/globby/-/globby-8.0.2.tgz#5697619ccd95c5275dbb2d6faa42087c1a941d8d" - integrity sha512-yTzMmKygLp8RUpG1Ymu2VXPSJQZjNAZPD4ywgYEaG7e4tBJeUQBO8OpXrf1RCNcEs5alsoJYPAMiIHP0cmeC7w== - dependencies: - array-union "^1.0.1" - dir-glob "2.0.0" - fast-glob "^2.0.2" - glob "^7.1.2" - ignore "^3.3.5" - pify "^3.0.0" - slash "^1.0.0" - -globby@^10.0.1: - version "10.0.2" - resolved "https://registry.yarnpkg.com/globby/-/globby-10.0.2.tgz#277593e745acaa4646c3ab411289ec47a0392543" - integrity sha512-7dUi7RvCoT/xast/o/dLN53oqND4yk0nsHkhRgn9w65C4PofCLOoJ39iSOg+qVDdWQPIEj+eszMHQ+aLVwwQSg== - dependencies: - "@types/glob" "^7.1.1" - array-union "^2.1.0" - dir-glob "^3.0.1" - fast-glob "^3.0.3" - glob "^7.1.3" - ignore "^5.1.1" - merge2 "^1.2.3" - slash "^3.0.0" - -globby@^11.0.1: - version "11.0.3" - resolved "https://registry.yarnpkg.com/globby/-/globby-11.0.3.tgz#9b1f0cb523e171dd1ad8c7b2a9fb4b644b9593cb" - integrity sha512-ffdmosjA807y7+lA1NM0jELARVmYul/715xiILEjo3hBLPTcirgQNnXECn5g3mtR8TOLCVbkfua1Hpen25/Xcg== - dependencies: - array-union "^2.1.0" - dir-glob "^3.0.1" - fast-glob "^3.1.1" - ignore "^5.1.4" - merge2 "^1.3.0" - slash "^3.0.0" - -globby@^6.1.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/globby/-/globby-6.1.0.tgz#f5a6d70e8395e21c858fb0489d64df02424d506c" - integrity sha1-9abXDoOV4hyFj7BInWTfAkJNUGw= - dependencies: - array-union "^1.0.1" - glob "^7.0.3" - object-assign "^4.0.1" - pify "^2.0.0" - pinkie-promise "^2.0.0" - -good-listener@^1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/good-listener/-/good-listener-1.2.2.tgz#d53b30cdf9313dffb7dc9a0d477096aa6d145c50" - integrity sha1-1TswzfkxPf+33JoNR3CWqm0UXFA= - dependencies: - delegate "^3.1.2" - -got@^9.6.0: - version "9.6.0" - resolved "https://registry.yarnpkg.com/got/-/got-9.6.0.tgz#edf45e7d67f99545705de1f7bbeeeb121765ed85" - integrity sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q== - dependencies: - "@sindresorhus/is" "^0.14.0" - "@szmarczak/http-timer" "^1.1.2" - cacheable-request "^6.0.0" - decompress-response "^3.3.0" - duplexer3 "^0.1.4" - get-stream "^4.1.0" - lowercase-keys "^1.0.1" - mimic-response "^1.0.1" - p-cancelable "^1.0.0" - to-readable-stream "^1.0.0" - url-parse-lax "^3.0.0" - -graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.2: - version "4.2.6" - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.6.tgz#ff040b2b0853b23c3d31027523706f1885d76bee" - integrity sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ== - -gray-matter@^4.0.2: - version "4.0.3" - resolved "https://registry.yarnpkg.com/gray-matter/-/gray-matter-4.0.3.tgz#e893c064825de73ea1f5f7d88c7a9f7274288798" - integrity sha512-5v6yZd4JK3eMI3FqqCouswVqwugaA9r4dNZB1wwcmrD02QkV5H0y7XBQW8QwQqEaZY1pM9aqORSORhJRdNK44Q== - dependencies: - js-yaml "^3.13.1" - kind-of "^6.0.2" - section-matter "^1.0.0" - strip-bom-string "^1.0.0" - -gzip-size@5.1.1, gzip-size@^5.0.0: - version "5.1.1" - resolved "https://registry.yarnpkg.com/gzip-size/-/gzip-size-5.1.1.tgz#cb9bee692f87c0612b232840a873904e4c135274" - integrity sha512-FNHi6mmoHvs1mxZAds4PpdCS6QG8B4C1krxJsMutgxl5t3+GlRTzzI3NEkifXx2pVsOvJdOGSmIgDhQ55FwdPA== - dependencies: - duplexer "^0.1.1" - pify "^4.0.1" - -handle-thing@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/handle-thing/-/handle-thing-2.0.1.tgz#857f79ce359580c340d43081cc648970d0bb234e" - integrity sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg== - -has-ansi@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" - integrity sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE= - dependencies: - ansi-regex "^2.0.0" - -has-bigints@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.1.tgz#64fe6acb020673e3b78db035a5af69aa9d07b113" - integrity sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA== - -has-flag@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" - integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0= - -has-flag@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" - integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== - -has-symbols@^1.0.1, has-symbols@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.2.tgz#165d3070c00309752a1236a479331e3ac56f1423" - integrity sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw== - -has-value@^0.3.1: - version "0.3.1" - resolved "https://registry.yarnpkg.com/has-value/-/has-value-0.3.1.tgz#7b1f58bada62ca827ec0a2078025654845995e1f" - integrity sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8= - dependencies: - get-value "^2.0.3" - has-values "^0.1.4" - isobject "^2.0.0" - -has-value@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-value/-/has-value-1.0.0.tgz#18b281da585b1c5c51def24c930ed29a0be6b177" - integrity sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc= - dependencies: - get-value "^2.0.6" - has-values "^1.0.0" - isobject "^3.0.0" - -has-values@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/has-values/-/has-values-0.1.4.tgz#6d61de95d91dfca9b9a02089ad384bff8f62b771" - integrity sha1-bWHeldkd/Km5oCCJrThL/49it3E= - -has-values@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-values/-/has-values-1.0.0.tgz#95b0b63fec2146619a6fe57fe75628d5a39efe4f" - integrity sha1-lbC2P+whRmGab+V/51Yo1aOe/k8= - dependencies: - is-number "^3.0.0" - kind-of "^4.0.0" - -has-yarn@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/has-yarn/-/has-yarn-2.1.0.tgz#137e11354a7b5bf11aa5cb649cf0c6f3ff2b2e77" - integrity sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw== - -has@^1.0.0, has@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" - integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== - dependencies: - function-bind "^1.1.1" - -hash-base@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-3.1.0.tgz#55c381d9e06e1d2997a883b4a3fddfe7f0d3af33" - integrity sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA== - dependencies: - inherits "^2.0.4" - readable-stream "^3.6.0" - safe-buffer "^5.2.0" - -hash.js@^1.0.0, hash.js@^1.0.3: - version "1.1.7" - resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.7.tgz#0babca538e8d4ee4a0f8988d68866537a003cf42" - integrity sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA== - dependencies: - inherits "^2.0.3" - minimalistic-assert "^1.0.1" - -hast-to-hyperscript@^9.0.0: - version "9.0.1" - resolved "https://registry.yarnpkg.com/hast-to-hyperscript/-/hast-to-hyperscript-9.0.1.tgz#9b67fd188e4c81e8ad66f803855334173920218d" - integrity sha512-zQgLKqF+O2F72S1aa4y2ivxzSlko3MAvxkwG8ehGmNiqd98BIN3JM1rAJPmplEyLmGLO2QZYJtIneOSZ2YbJuA== - dependencies: - "@types/unist" "^2.0.3" - comma-separated-tokens "^1.0.0" - property-information "^5.3.0" - space-separated-tokens "^1.0.0" - style-to-object "^0.3.0" - unist-util-is "^4.0.0" - web-namespaces "^1.0.0" - -hast-util-from-parse5@^5.0.0: - version "5.0.3" - resolved "https://registry.yarnpkg.com/hast-util-from-parse5/-/hast-util-from-parse5-5.0.3.tgz#3089dc0ee2ccf6ec8bc416919b51a54a589e097c" - integrity sha512-gOc8UB99F6eWVWFtM9jUikjN7QkWxB3nY0df5Z0Zq1/Nkwl5V4hAAsl0tmwlgWl/1shlTF8DnNYLO8X6wRV9pA== - dependencies: - ccount "^1.0.3" - hastscript "^5.0.0" - property-information "^5.0.0" - web-namespaces "^1.1.2" - xtend "^4.0.1" - -hast-util-from-parse5@^6.0.0: - version "6.0.1" - resolved "https://registry.yarnpkg.com/hast-util-from-parse5/-/hast-util-from-parse5-6.0.1.tgz#554e34abdeea25ac76f5bd950a1f0180e0b3bc2a" - integrity sha512-jeJUWiN5pSxW12Rh01smtVkZgZr33wBokLzKLwinYOUfSzm1Nl/c3GUGebDyOKjdsRgMvoVbV0VpAcpjF4NrJA== - dependencies: - "@types/parse5" "^5.0.0" - hastscript "^6.0.0" - property-information "^5.0.0" - vfile "^4.0.0" - vfile-location "^3.2.0" - web-namespaces "^1.0.0" - -hast-util-parse-selector@^2.0.0: - version "2.2.5" - resolved "https://registry.yarnpkg.com/hast-util-parse-selector/-/hast-util-parse-selector-2.2.5.tgz#d57c23f4da16ae3c63b3b6ca4616683313499c3a" - integrity sha512-7j6mrk/qqkSehsM92wQjdIgWM2/BW61u/53G6xmC8i1OmEdKLHbk419QKQUjz6LglWsfqoiHmyMRkP1BGjecNQ== - -hast-util-raw@6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/hast-util-raw/-/hast-util-raw-6.0.1.tgz#973b15930b7529a7b66984c98148b46526885977" - integrity sha512-ZMuiYA+UF7BXBtsTBNcLBF5HzXzkyE6MLzJnL605LKE8GJylNjGc4jjxazAHUtcwT5/CEt6afRKViYB4X66dig== - dependencies: - "@types/hast" "^2.0.0" - hast-util-from-parse5 "^6.0.0" - hast-util-to-parse5 "^6.0.0" - html-void-elements "^1.0.0" - parse5 "^6.0.0" - unist-util-position "^3.0.0" - vfile "^4.0.0" - web-namespaces "^1.0.0" - xtend "^4.0.0" - zwitch "^1.0.0" - -hast-util-to-parse5@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/hast-util-to-parse5/-/hast-util-to-parse5-6.0.0.tgz#1ec44650b631d72952066cea9b1445df699f8479" - integrity sha512-Lu5m6Lgm/fWuz8eWnrKezHtVY83JeRGaNQ2kn9aJgqaxvVkFCZQBEhgodZUDUvoodgyROHDb3r5IxAEdl6suJQ== - dependencies: - hast-to-hyperscript "^9.0.0" - property-information "^5.0.0" - web-namespaces "^1.0.0" - xtend "^4.0.0" - zwitch "^1.0.0" - -hastscript@^5.0.0: - version "5.1.2" - resolved "https://registry.yarnpkg.com/hastscript/-/hastscript-5.1.2.tgz#bde2c2e56d04c62dd24e8c5df288d050a355fb8a" - integrity sha512-WlztFuK+Lrvi3EggsqOkQ52rKbxkXL3RwB6t5lwoa8QLMemoWfBuL43eDrwOamJyR7uKQKdmKYaBH1NZBiIRrQ== - dependencies: - comma-separated-tokens "^1.0.0" - hast-util-parse-selector "^2.0.0" - property-information "^5.0.0" - space-separated-tokens "^1.0.0" - -hastscript@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/hastscript/-/hastscript-6.0.0.tgz#e8768d7eac56c3fdeac8a92830d58e811e5bf640" - integrity sha512-nDM6bvd7lIqDUiYEiu5Sl/+6ReP0BMk/2f4U/Rooccxkj0P5nm+acM5PrGJ/t5I8qPGiqZSE6hVAwZEdZIvP4w== - dependencies: - "@types/hast" "^2.0.0" - comma-separated-tokens "^1.0.0" - hast-util-parse-selector "^2.0.0" - property-information "^5.0.0" - space-separated-tokens "^1.0.0" - -he@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" - integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== - -hex-color-regex@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/hex-color-regex/-/hex-color-regex-1.1.0.tgz#4c06fccb4602fe2602b3c93df82d7e7dbf1a8a8e" - integrity sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ== - -history@^4.9.0: - version "4.10.1" - resolved "https://registry.yarnpkg.com/history/-/history-4.10.1.tgz#33371a65e3a83b267434e2b3f3b1b4c58aad4cf3" - integrity sha512-36nwAD620w12kuzPAsyINPWJqlNbij+hpK1k9XRloDtym8mxzGYl2c17LnV6IAGB2Dmg4tEa7G7DlawS0+qjew== - dependencies: - "@babel/runtime" "^7.1.2" - loose-envify "^1.2.0" - resolve-pathname "^3.0.0" - tiny-invariant "^1.0.2" - tiny-warning "^1.0.0" - value-equal "^1.0.1" - -hmac-drbg@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1" - integrity sha1-0nRXAQJabHdabFRXk+1QL8DGSaE= - dependencies: - hash.js "^1.0.3" - minimalistic-assert "^1.0.0" - minimalistic-crypto-utils "^1.0.1" - -hoist-non-react-statics@^3.1.0: - version "3.3.2" - resolved "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz#ece0acaf71d62c2969c2ec59feff42a4b1a85b45" - integrity sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw== - dependencies: - react-is "^16.7.0" - -hoopy@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/hoopy/-/hoopy-0.1.4.tgz#609207d661100033a9a9402ad3dea677381c1b1d" - integrity sha512-HRcs+2mr52W0K+x8RzcLzuPPmVIKMSv97RGHy0Ea9y/mpcaK+xTrjICA04KAHi4GRzxliNqNJEFYWHghy3rSfQ== - -hpack.js@^2.1.6: - version "2.1.6" - resolved "https://registry.yarnpkg.com/hpack.js/-/hpack.js-2.1.6.tgz#87774c0949e513f42e84575b3c45681fade2a0b2" - integrity sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI= - dependencies: - inherits "^2.0.1" - obuf "^1.0.0" - readable-stream "^2.0.1" - wbuf "^1.1.0" - -hsl-regex@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/hsl-regex/-/hsl-regex-1.0.0.tgz#d49330c789ed819e276a4c0d272dffa30b18fe6e" - integrity sha1-1JMwx4ntgZ4nakwNJy3/owsY/m4= - -hsla-regex@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/hsla-regex/-/hsla-regex-1.0.0.tgz#c1ce7a3168c8c6614033a4b5f7877f3b225f9c38" - integrity sha1-wc56MWjIxmFAM6S194d/OyJfnDg= - -html-entities@^1.3.1: - version "1.4.0" - resolved "https://registry.yarnpkg.com/html-entities/-/html-entities-1.4.0.tgz#cfbd1b01d2afaf9adca1b10ae7dffab98c71d2dc" - integrity sha512-8nxjcBcd8wovbeKx7h3wTji4e6+rhaVuPNpMqwWgnHh+N9ToqsCs6XztWRBPQ+UtzsoMAdKZtUENoVzU/EMtZA== - -html-minifier-terser@^5.0.1, html-minifier-terser@^5.0.5: - version "5.1.1" - resolved "https://registry.yarnpkg.com/html-minifier-terser/-/html-minifier-terser-5.1.1.tgz#922e96f1f3bb60832c2634b79884096389b1f054" - integrity sha512-ZPr5MNObqnV/T9akshPKbVgyOqLmy+Bxo7juKCfTfnjNniTAMdy4hz21YQqoofMBJD2kdREaqPPdThoR78Tgxg== - dependencies: - camel-case "^4.1.1" - clean-css "^4.2.3" - commander "^4.1.1" - he "^1.2.0" - param-case "^3.0.3" - relateurl "^0.2.7" - terser "^4.6.3" - -html-tags@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/html-tags/-/html-tags-3.1.0.tgz#7b5e6f7e665e9fb41f30007ed9e0d41e97fb2140" - integrity sha512-1qYz89hW3lFDEazhjW0yVAV87lw8lVkrJocr72XmBkMKsoSVJCQx3W8BXsC7hO2qAt8BoVjYjtAcZ9perqGnNg== - -html-void-elements@^1.0.0: - version "1.0.5" - resolved "https://registry.yarnpkg.com/html-void-elements/-/html-void-elements-1.0.5.tgz#ce9159494e86d95e45795b166c2021c2cfca4483" - integrity sha512-uE/TxKuyNIcx44cIWnjr/rfIATDH7ZaOMmstu0CwhFG1Dunhlp4OC6/NMbhiwoq5BpW0ubi303qnEk/PZj614w== - -html-webpack-plugin@^4.0.4: - version "4.5.2" - resolved "https://registry.yarnpkg.com/html-webpack-plugin/-/html-webpack-plugin-4.5.2.tgz#76fc83fa1a0f12dd5f7da0404a54e2699666bc12" - integrity sha512-q5oYdzjKUIPQVjOosjgvCHQOv9Ett9CYYHlgvJeXG0qQvdSojnBq4vAdQBwn1+yGveAwHCoe/rMR86ozX3+c2A== - dependencies: - "@types/html-minifier-terser" "^5.0.0" - "@types/tapable" "^1.0.5" - "@types/webpack" "^4.41.8" - html-minifier-terser "^5.0.1" - loader-utils "^1.2.3" - lodash "^4.17.20" - pretty-error "^2.1.1" - tapable "^1.1.3" - util.promisify "1.0.0" - -htmlparser2@^3.10.1, htmlparser2@^3.9.1: - version "3.10.1" - resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-3.10.1.tgz#bd679dc3f59897b6a34bb10749c855bb53a9392f" - integrity sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ== - dependencies: - domelementtype "^1.3.1" - domhandler "^2.3.0" - domutils "^1.5.1" - entities "^1.1.1" - inherits "^2.0.1" - readable-stream "^3.1.1" - -http-cache-semantics@^4.0.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz#49e91c5cbf36c9b94bcfcd71c23d5249ec74e390" - integrity sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ== - -http-deceiver@^1.2.7: - version "1.2.7" - resolved "https://registry.yarnpkg.com/http-deceiver/-/http-deceiver-1.2.7.tgz#fa7168944ab9a519d337cb0bec7284dc3e723d87" - integrity sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc= - -http-errors@1.7.2: - version "1.7.2" - resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.2.tgz#4f5029cf13239f31036e5b2e55292bcfbcc85c8f" - integrity sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg== - dependencies: - depd "~1.1.2" - inherits "2.0.3" - setprototypeof "1.1.1" - statuses ">= 1.5.0 < 2" - toidentifier "1.0.0" - -http-errors@~1.6.2: - version "1.6.3" - resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.3.tgz#8b55680bb4be283a0b5bf4ea2e38580be1d9320d" - integrity sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0= - dependencies: - depd "~1.1.2" - inherits "2.0.3" - setprototypeof "1.1.0" - statuses ">= 1.4.0 < 2" - -http-errors@~1.7.2: - version "1.7.3" - resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.3.tgz#6c619e4f9c60308c38519498c14fbb10aacebb06" - integrity sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw== - dependencies: - depd "~1.1.2" - inherits "2.0.4" - setprototypeof "1.1.1" - statuses ">= 1.5.0 < 2" - toidentifier "1.0.0" - -http-parser-js@>=0.5.1: - version "0.5.3" - resolved "https://registry.yarnpkg.com/http-parser-js/-/http-parser-js-0.5.3.tgz#01d2709c79d41698bb01d4decc5e9da4e4a033d9" - integrity sha512-t7hjvef/5HEK7RWTdUzVUhl8zkEu+LlaE0IYzdMuvbSDipxBRpOn4Uhw8ZyECEa808iVT8XCjzo6xmYt4CiLZg== - -http-proxy-middleware@0.19.1: - version "0.19.1" - resolved "https://registry.yarnpkg.com/http-proxy-middleware/-/http-proxy-middleware-0.19.1.tgz#183c7dc4aa1479150306498c210cdaf96080a43a" - integrity sha512-yHYTgWMQO8VvwNS22eLLloAkvungsKdKTLO8AJlftYIKNfJr3GK3zK0ZCfzDDGUBttdGc8xFy1mCitvNKQtC3Q== - dependencies: - http-proxy "^1.17.0" - is-glob "^4.0.0" - lodash "^4.17.11" - micromatch "^3.1.10" - -http-proxy@^1.17.0: - version "1.18.1" - resolved "https://registry.yarnpkg.com/http-proxy/-/http-proxy-1.18.1.tgz#401541f0534884bbf95260334e72f88ee3976549" - integrity sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ== - dependencies: - eventemitter3 "^4.0.0" - follow-redirects "^1.0.0" - requires-port "^1.0.0" - -https-browserify@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73" - integrity sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM= - -human-signals@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-1.1.1.tgz#c5b1cd14f50aeae09ab6c59fe63ba3395fe4dfa3" - integrity sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw== - -iconv-lite@0.4.24, iconv-lite@^0.4.24: - version "0.4.24" - resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" - integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== - dependencies: - safer-buffer ">= 2.1.2 < 3" - -icss-utils@^4.0.0, icss-utils@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/icss-utils/-/icss-utils-4.1.1.tgz#21170b53789ee27447c2f47dd683081403f9a467" - integrity sha512-4aFq7wvWyMHKgxsH8QQtGpvbASCf+eM3wPRLI6R+MgAnTCZ6STYsRvttLvRWK0Nfif5piF394St3HeJDaljGPA== - dependencies: - postcss "^7.0.14" - -ieee754@^1.1.4: - version "1.2.1" - resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" - integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== - -iferr@^0.1.5: - version "0.1.5" - resolved "https://registry.yarnpkg.com/iferr/-/iferr-0.1.5.tgz#c60eed69e6d8fdb6b3104a1fcbca1c192dc5b501" - integrity sha1-xg7taebY/bazEEofy8ocGS3FtQE= - -ignore@^3.3.5: - version "3.3.10" - resolved "https://registry.yarnpkg.com/ignore/-/ignore-3.3.10.tgz#0a97fb876986e8081c631160f8f9f389157f0043" - integrity sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug== - -ignore@^5.1.1, ignore@^5.1.4: - version "5.1.8" - resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.1.8.tgz#f150a8b50a34289b33e22f5889abd4d8016f0e57" - integrity sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw== - -immer@1.10.0: - version "1.10.0" - resolved "https://registry.yarnpkg.com/immer/-/immer-1.10.0.tgz#bad67605ba9c810275d91e1c2a47d4582e98286d" - integrity sha512-O3sR1/opvCDGLEVcvrGTMtLac8GJ5IwZC4puPrLuRj3l7ICKvkmA0vGuU9OW8mV9WIBRnaxp5GJh9IEAaNOoYg== - -import-cwd@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/import-cwd/-/import-cwd-2.1.0.tgz#aa6cf36e722761285cb371ec6519f53e2435b0a9" - integrity sha1-qmzzbnInYShcs3HsZRn1PiQ1sKk= - dependencies: - import-from "^2.1.0" - -import-fresh@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-2.0.0.tgz#d81355c15612d386c61f9ddd3922d4304822a546" - integrity sha1-2BNVwVYS04bGH53dOSLUMEgipUY= - dependencies: - caller-path "^2.0.0" - resolve-from "^3.0.0" - -import-fresh@^3.2.1: - version "3.3.0" - resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" - integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== - dependencies: - parent-module "^1.0.0" - resolve-from "^4.0.0" - -import-from@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/import-from/-/import-from-2.1.0.tgz#335db7f2a7affd53aaa471d4b8021dee36b7f3b1" - integrity sha1-M1238qev/VOqpHHUuAId7ja387E= - dependencies: - resolve-from "^3.0.0" - -import-lazy@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/import-lazy/-/import-lazy-2.1.0.tgz#05698e3d45c88e8d7e9d92cb0584e77f096f3e43" - integrity sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM= - -import-local@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/import-local/-/import-local-2.0.0.tgz#55070be38a5993cf18ef6db7e961f5bee5c5a09d" - integrity sha512-b6s04m3O+s3CGSbqDIyP4R6aAwAeYlVq9+WUWep6iHa8ETRf9yei1U48C5MmfJmV9AiLYYBKPMq/W+/WRpQmCQ== - dependencies: - pkg-dir "^3.0.0" - resolve-cwd "^2.0.0" - -imurmurhash@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" - integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= - -indent-string@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251" - integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg== - -indexes-of@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/indexes-of/-/indexes-of-1.0.1.tgz#f30f716c8e2bd346c7b67d3df3915566a7c05607" - integrity sha1-8w9xbI4r00bHtn0985FVZqfAVgc= - -infer-owner@^1.0.3, infer-owner@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/infer-owner/-/infer-owner-1.0.4.tgz#c4cefcaa8e51051c2a40ba2ce8a3d27295af9467" - integrity sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A== - -infima@0.2.0-alpha.12: - version "0.2.0-alpha.12" - resolved "https://registry.yarnpkg.com/infima/-/infima-0.2.0-alpha.12.tgz#6b4a0ba9756262e4f1af2c60feb4bc0ffd9b9e21" - integrity sha512-in5n36oE2sdiB/1rzuzdmKyuNRMVUO9P+qUidUG8leHeDU+WMQ7oTP7MXSqtAAxduiPb7HHi0/ptQLLUr/ge4w== - -inflight@^1.0.4: - version "1.0.6" - resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" - integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= - dependencies: - once "^1.3.0" - wrappy "1" - -inherits@2, inherits@2.0.4, inherits@^2.0.0, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.1, inherits@~2.0.3: - version "2.0.4" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" - integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== - -inherits@2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.1.tgz#b17d08d326b4423e568eff719f91b0b1cbdf69f1" - integrity sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE= - -inherits@2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" - integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4= - -ini@1.3.7: - version "1.3.7" - resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.7.tgz#a09363e1911972ea16d7a8851005d84cf09a9a84" - integrity sha512-iKpRpXP+CrP2jyrxvg1kMUpXDyRUFDWurxbnVT1vQPx+Wz9uCYsMIqYuSBLV+PAaZG/d7kRLKRFc9oDMsH+mFQ== - -ini@^1.3.5, ini@~1.3.0: - version "1.3.8" - resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c" - integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== - -inline-style-parser@0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/inline-style-parser/-/inline-style-parser-0.1.1.tgz#ec8a3b429274e9c0a1f1c4ffa9453a7fef72cea1" - integrity sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q== - -inquirer@7.0.4: - version "7.0.4" - resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-7.0.4.tgz#99af5bde47153abca23f5c7fc30db247f39da703" - integrity sha512-Bu5Td5+j11sCkqfqmUTiwv+tWisMtP0L7Q8WrqA2C/BbBhy1YTdFrvjjlrKq8oagA/tLQBski2Gcx/Sqyi2qSQ== - dependencies: - ansi-escapes "^4.2.1" - chalk "^2.4.2" - cli-cursor "^3.1.0" - cli-width "^2.0.0" - external-editor "^3.0.3" - figures "^3.0.0" - lodash "^4.17.15" - mute-stream "0.0.8" - run-async "^2.2.0" - rxjs "^6.5.3" - string-width "^4.1.0" - strip-ansi "^5.1.0" - through "^2.3.6" - -inquirer@^7.2.0: - version "7.3.3" - resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-7.3.3.tgz#04d176b2af04afc157a83fd7c100e98ee0aad003" - integrity sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA== - dependencies: - ansi-escapes "^4.2.1" - chalk "^4.1.0" - cli-cursor "^3.1.0" - cli-width "^3.0.0" - external-editor "^3.0.3" - figures "^3.0.0" - lodash "^4.17.19" - mute-stream "0.0.8" - run-async "^2.4.0" - rxjs "^6.6.0" - string-width "^4.1.0" - strip-ansi "^6.0.0" - through "^2.3.6" - -internal-ip@^4.3.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/internal-ip/-/internal-ip-4.3.0.tgz#845452baad9d2ca3b69c635a137acb9a0dad0907" - integrity sha512-S1zBo1D6zcsyuC6PMmY5+55YMILQ9av8lotMx447Bq6SAgo/sDK6y6uUKmuYhW7eacnIhFfsPmCNYdDzsnnDCg== - dependencies: - default-gateway "^4.2.0" - ipaddr.js "^1.9.0" - -interpret@^1.0.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.4.0.tgz#665ab8bc4da27a774a40584e812e3e0fa45b1a1e" - integrity sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA== - -ip-regex@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/ip-regex/-/ip-regex-2.1.0.tgz#fa78bf5d2e6913c911ce9f819ee5146bb6d844e9" - integrity sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk= - -ip@^1.1.0, ip@^1.1.5: - version "1.1.5" - resolved "https://registry.yarnpkg.com/ip/-/ip-1.1.5.tgz#bdded70114290828c0a039e72ef25f5aaec4354a" - integrity sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo= - -ipaddr.js@1.9.1, ipaddr.js@^1.9.0: - version "1.9.1" - resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3" - integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== - -is-absolute-url@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-absolute-url/-/is-absolute-url-2.1.0.tgz#50530dfb84fcc9aa7dbe7852e83a37b93b9f2aa6" - integrity sha1-UFMN+4T8yap9vnhS6Do3uTufKqY= - -is-absolute-url@^3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/is-absolute-url/-/is-absolute-url-3.0.3.tgz#96c6a22b6a23929b11ea0afb1836c36ad4a5d698" - integrity sha512-opmNIX7uFnS96NtPmhWQgQx6/NYFgsUXYMllcfzwWKUMwfo8kku1TvE6hkNcH+Q1ts5cMVrsY7j0bxXQDciu9Q== - -is-accessor-descriptor@^0.1.6: - version "0.1.6" - resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz#a9e12cb3ae8d876727eeef3843f8a0897b5c98d6" - integrity sha1-qeEss66Nh2cn7u84Q/igiXtcmNY= - dependencies: - kind-of "^3.0.2" - -is-accessor-descriptor@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz#169c2f6d3df1f992618072365c9b0ea1f6878656" - integrity sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ== - dependencies: - kind-of "^6.0.0" - -is-alphabetical@1.0.4, is-alphabetical@^1.0.0: - version "1.0.4" - resolved "https://registry.yarnpkg.com/is-alphabetical/-/is-alphabetical-1.0.4.tgz#9e7d6b94916be22153745d184c298cbf986a686d" - integrity sha512-DwzsA04LQ10FHTZuL0/grVDk4rFoVH1pjAToYwBrHSxcrBIGQuXrQMtD5U1b0U2XVgKZCTLLP8u2Qxqhy3l2Vg== - -is-alphanumerical@^1.0.0: - version "1.0.4" - resolved "https://registry.yarnpkg.com/is-alphanumerical/-/is-alphanumerical-1.0.4.tgz#7eb9a2431f855f6b1ef1a78e326df515696c4dbf" - integrity sha512-UzoZUr+XfVz3t3v4KyGEniVL9BDRoQtY7tOyrRybkVNjDFWyo1yhXNGrrBTQxp3ib9BLAWs7k2YKBQsFRkZG9A== - dependencies: - is-alphabetical "^1.0.0" - is-decimal "^1.0.0" - -is-arguments@^1.0.4: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.1.0.tgz#62353031dfbee07ceb34656a6bde59efecae8dd9" - integrity sha512-1Ij4lOMPl/xB5kBDn7I+b2ttPMKa8szhEIrXDuXQD/oe3HJLTLhqhgGspwgyGd6MOywBUqVvYicF72lkgDnIHg== - dependencies: - call-bind "^1.0.0" - -is-arrayish@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" - integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0= - -is-arrayish@^0.3.1: - version "0.3.2" - resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.3.2.tgz#4574a2ae56f7ab206896fb431eaeed066fdf8f03" - integrity sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ== - -is-bigint@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-bigint/-/is-bigint-1.0.2.tgz#ffb381442503235ad245ea89e45b3dbff040ee5a" - integrity sha512-0JV5+SOCQkIdzjBK9buARcV804Ddu7A0Qet6sHi3FimE9ne6m4BGQZfRn+NZiXbBk4F4XmHfDZIipLj9pX8dSA== - -is-binary-path@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898" - integrity sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg= - dependencies: - binary-extensions "^1.0.0" - -is-binary-path@~2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" - integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== - dependencies: - binary-extensions "^2.0.0" - -is-boolean-object@^1.1.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.1.1.tgz#3c0878f035cb821228d350d2e1e36719716a3de8" - integrity sha512-bXdQWkECBUIAcCkeH1unwJLIpZYaa5VvuygSyS/c2lf719mTKZDU5UdDRlpd01UjADgmW8RfqaP+mRaVPdr/Ng== - dependencies: - call-bind "^1.0.2" - -is-buffer@^1.1.5: - version "1.1.6" - resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" - integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== - -is-buffer@^2.0.0: - version "2.0.5" - resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-2.0.5.tgz#ebc252e400d22ff8d77fa09888821a24a658c191" - integrity sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ== - -is-callable@^1.1.4, is-callable@^1.2.3: - version "1.2.3" - resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.3.tgz#8b1e0500b73a1d76c70487636f368e519de8db8e" - integrity sha512-J1DcMe8UYTBSrKezuIUTUwjXsho29693unXM2YhJUTR2txK/eG47bvNa/wipPFmZFgr/N6f1GA66dv0mEyTIyQ== - -is-ci@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-2.0.0.tgz#6bc6334181810e04b5c22b3d589fdca55026404c" - integrity sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w== - dependencies: - ci-info "^2.0.0" - -is-color-stop@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-color-stop/-/is-color-stop-1.1.0.tgz#cfff471aee4dd5c9e158598fbe12967b5cdad345" - integrity sha1-z/9HGu5N1cnhWFmPvhKWe1za00U= - dependencies: - css-color-names "^0.0.4" - hex-color-regex "^1.1.0" - hsl-regex "^1.0.0" - hsla-regex "^1.0.0" - rgb-regex "^1.0.1" - rgba-regex "^1.0.0" - -is-core-module@^2.2.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.3.0.tgz#d341652e3408bca69c4671b79a0954a3d349f887" - integrity sha512-xSphU2KG9867tsYdLD4RWQ1VqdFl4HTO9Thf3I/3dLEfr0dbPTWKsuCKrgqMljg4nPE+Gq0VCnzT3gr0CyBmsw== - dependencies: - has "^1.0.3" - -is-data-descriptor@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56" - integrity sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y= - dependencies: - kind-of "^3.0.2" - -is-data-descriptor@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz#d84876321d0e7add03990406abbbbd36ba9268c7" - integrity sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ== - dependencies: - kind-of "^6.0.0" - -is-date-object@^1.0.1: - version "1.0.4" - resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.4.tgz#550cfcc03afada05eea3dd30981c7b09551f73e5" - integrity sha512-/b4ZVsG7Z5XVtIxs/h9W8nvfLgSAyKYdtGWQLbqy6jA1icmgjf8WCoTKgeS4wy5tYaPePouzFMANbnj94c2Z+A== - -is-decimal@^1.0.0: - version "1.0.4" - resolved "https://registry.yarnpkg.com/is-decimal/-/is-decimal-1.0.4.tgz#65a3a5958a1c5b63a706e1b333d7cd9f630d3fa5" - integrity sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw== - -is-descriptor@^0.1.0: - version "0.1.6" - resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-0.1.6.tgz#366d8240dde487ca51823b1ab9f07a10a78251ca" - integrity sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg== - dependencies: - is-accessor-descriptor "^0.1.6" - is-data-descriptor "^0.1.4" - kind-of "^5.0.0" - -is-descriptor@^1.0.0, is-descriptor@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-1.0.2.tgz#3b159746a66604b04f8c81524ba365c5f14d86ec" - integrity sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg== - dependencies: - is-accessor-descriptor "^1.0.0" - is-data-descriptor "^1.0.0" - kind-of "^6.0.2" - -is-directory@^0.3.1: - version "0.3.1" - resolved "https://registry.yarnpkg.com/is-directory/-/is-directory-0.3.1.tgz#61339b6f2475fc772fd9c9d83f5c8575dc154ae1" - integrity sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE= - -is-docker@^2.0.0: - version "2.2.1" - resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-2.2.1.tgz#33eeabe23cfe86f14bde4408a02c0cfb853acdaa" - integrity sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ== - -is-extendable@^0.1.0, is-extendable@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" - integrity sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik= - -is-extendable@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-1.0.1.tgz#a7470f9e426733d81bd81e1155264e3a3507cab4" - integrity sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA== - dependencies: - is-plain-object "^2.0.4" - -is-extglob@^2.1.0, is-extglob@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" - integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= - -is-fullwidth-code-point@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" - integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8= - -is-fullwidth-code-point@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" - integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== - -is-glob@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-3.1.0.tgz#7ba5ae24217804ac70707b96922567486cc3e84a" - integrity sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo= - dependencies: - is-extglob "^2.1.0" - -is-glob@^4.0.0, is-glob@^4.0.1, is-glob@~4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc" - integrity sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg== - dependencies: - is-extglob "^2.1.1" - -is-hexadecimal@^1.0.0: - version "1.0.4" - resolved "https://registry.yarnpkg.com/is-hexadecimal/-/is-hexadecimal-1.0.4.tgz#cc35c97588da4bd49a8eedd6bc4082d44dcb23a7" - integrity sha512-gyPJuv83bHMpocVYoqof5VDiZveEoGoFL8m3BXNb2VW8Xs+rz9kqO8LOQ5DH6EsuvilT1ApazU0pyl+ytbPtlw== - -is-installed-globally@^0.3.1: - version "0.3.2" - resolved "https://registry.yarnpkg.com/is-installed-globally/-/is-installed-globally-0.3.2.tgz#fd3efa79ee670d1187233182d5b0a1dd00313141" - integrity sha512-wZ8x1js7Ia0kecP/CHM/3ABkAmujX7WPvQk6uu3Fly/Mk44pySulQpnHG46OMjHGXApINnV4QhY3SWnECO2z5g== - dependencies: - global-dirs "^2.0.1" - is-path-inside "^3.0.1" - -is-negative-zero@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.1.tgz#3de746c18dda2319241a53675908d8f766f11c24" - integrity sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w== - -is-npm@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/is-npm/-/is-npm-4.0.0.tgz#c90dd8380696df87a7a6d823c20d0b12bbe3c84d" - integrity sha512-96ECIfh9xtDDlPylNPXhzjsykHsMJZ18ASpaWzQyBr4YRTcVjUvzaHayDAES2oU/3KpljhHUjtSRNiDwi0F0ig== - -is-number-object@^1.0.4: - version "1.0.5" - resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.5.tgz#6edfaeed7950cff19afedce9fbfca9ee6dd289eb" - integrity sha512-RU0lI/n95pMoUKu9v1BZP5MBcZuNSVJkMkAG2dJqC4z2GlkGUNeH68SuHuBKBD/XFe+LHZ+f9BKkLET60Niedw== - -is-number@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195" - integrity sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU= - dependencies: - kind-of "^3.0.2" - -is-number@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" - integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== - -is-obj@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f" - integrity sha1-PkcprB9f3gJc19g6iW2rn09n2w8= - -is-obj@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-2.0.0.tgz#473fb05d973705e3fd9620545018ca8e22ef4982" - integrity sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w== - -is-path-cwd@^2.0.0, is-path-cwd@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-2.2.0.tgz#67d43b82664a7b5191fd9119127eb300048a9fdb" - integrity sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ== - -is-path-in-cwd@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-path-in-cwd/-/is-path-in-cwd-2.1.0.tgz#bfe2dca26c69f397265a4009963602935a053acb" - integrity sha512-rNocXHgipO+rvnP6dk3zI20RpOtrAM/kzbB258Uw5BWr3TpXi861yzjo16Dn4hUox07iw5AyeMLHWsujkjzvRQ== - dependencies: - is-path-inside "^2.1.0" - -is-path-inside@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-2.1.0.tgz#7c9810587d659a40d27bcdb4d5616eab059494b2" - integrity sha512-wiyhTzfDWsvwAW53OBWF5zuvaOGlZ6PwYxAbPVDhpm+gM09xKQGjBq/8uYN12aDvMxnAnq3dxTyoSoRNmg5YFg== - dependencies: - path-is-inside "^1.0.2" - -is-path-inside@^3.0.1: - version "3.0.3" - resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283" - integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ== - -is-plain-obj@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e" - integrity sha1-caUMhCnfync8kqOQpKA7OfzVHT4= - -is-plain-obj@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-2.1.0.tgz#45e42e37fccf1f40da8e5f76ee21515840c09287" - integrity sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA== - -is-plain-object@^2.0.3, is-plain-object@^2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" - integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og== - dependencies: - isobject "^3.0.1" - -is-regex@^1.0.4, is-regex@^1.1.2: - version "1.1.3" - resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.3.tgz#d029f9aff6448b93ebbe3f33dac71511fdcbef9f" - integrity sha512-qSVXFz28HM7y+IWX6vLCsexdlvzT1PJNFSBuaQLQ5o0IEw8UDYW6/2+eCMVyIsbM8CNLX2a/QWmSpyxYEHY7CQ== - dependencies: - call-bind "^1.0.2" - has-symbols "^1.0.2" - -is-regexp@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-regexp/-/is-regexp-1.0.0.tgz#fd2d883545c46bac5a633e7b9a09e87fa2cb5069" - integrity sha1-/S2INUXEa6xaYz57mgnof6LLUGk= - -is-resolvable@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-resolvable/-/is-resolvable-1.1.0.tgz#fb18f87ce1feb925169c9a407c19318a3206ed88" - integrity sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg== - -is-root@2.1.0, is-root@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-root/-/is-root-2.1.0.tgz#809e18129cf1129644302a4f8544035d51984a9c" - integrity sha512-AGOriNp96vNBd3HtU+RzFEc75FfR5ymiYv8E553I71SCeXBiMsVDUtdio1OEFvrPyLIQ9tVR5RxXIFe5PUFjMg== - -is-stream@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" - integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ= - -is-stream@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.0.tgz#bde9c32680d6fae04129d6ac9d921ce7815f78e3" - integrity sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw== - -is-string@^1.0.5: - version "1.0.6" - resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.6.tgz#3fe5d5992fb0d93404f32584d4b0179a71b54a5f" - integrity sha512-2gdzbKUuqtQ3lYNrUTQYoClPhm7oQu4UdpSZMp1/DGgkHBT8E2Z1l0yMdb6D4zNAxwDiMv8MdulKROJGNl0Q0w== - -is-symbol@^1.0.2, is-symbol@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.4.tgz#a6dac93b635b063ca6872236de88910a57af139c" - integrity sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg== - dependencies: - has-symbols "^1.0.2" - -is-typedarray@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" - integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo= - -is-whitespace-character@^1.0.0: - version "1.0.4" - resolved "https://registry.yarnpkg.com/is-whitespace-character/-/is-whitespace-character-1.0.4.tgz#0858edd94a95594c7c9dd0b5c174ec6e45ee4aa7" - integrity sha512-SDweEzfIZM0SJV0EUga669UTKlmL0Pq8Lno0QDQsPnvECB3IM2aP0gdx5TrU0A01MAPfViaZiI2V1QMZLaKK5w== - -is-windows@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" - integrity sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA== - -is-word-character@^1.0.0: - version "1.0.4" - resolved "https://registry.yarnpkg.com/is-word-character/-/is-word-character-1.0.4.tgz#ce0e73216f98599060592f62ff31354ddbeb0230" - integrity sha512-5SMO8RVennx3nZrqtKwCGyyetPE9VDba5ugvKLaD4KopPG5kR4mQ7tNt/r7feL5yt5h3lpuBbIUmCOG2eSzXHA== - -is-wsl@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-1.1.0.tgz#1f16e4aa22b04d1336b66188a66af3c600c3a66d" - integrity sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0= - -is-wsl@^2.1.1: - version "2.2.0" - resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-2.2.0.tgz#74a4c76e77ca9fd3f932f290c17ea326cd157271" - integrity sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww== - dependencies: - is-docker "^2.0.0" - -is-yarn-global@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/is-yarn-global/-/is-yarn-global-0.3.0.tgz#d502d3382590ea3004893746754c89139973e232" - integrity sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw== - -isarray@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" - integrity sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8= - -isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" - integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= - -isexe@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" - integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= - -isobject@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" - integrity sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk= - dependencies: - isarray "1.0.0" - -isobject@^3.0.0, isobject@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" - integrity sha1-TkMekrEalzFjaqH5yNHMvP2reN8= - -jest-worker@^26.5.0: - version "26.6.2" - resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-26.6.2.tgz#7f72cbc4d643c365e27b9fd775f9d0eaa9c7a8ed" - integrity sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ== - dependencies: - "@types/node" "*" - merge-stream "^2.0.0" - supports-color "^7.0.0" - -"js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" - integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== - -js-tokens@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b" - integrity sha1-mGbfOVECEw449/mWvOtlRDIJwls= - -js-yaml@^3.13.1: - version "3.14.1" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.1.tgz#dae812fdb3825fa306609a8717383c50c36a0537" - integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g== - dependencies: - argparse "^1.0.7" - esprima "^4.0.0" - -jsesc@^2.5.1: - version "2.5.2" - resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" - integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== - -jsesc@~0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" - integrity sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0= - -json-buffer@3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.0.tgz#5b1f397afc75d677bde8bcfc0e47e1f9a3d9a898" - integrity sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg= - -json-parse-better-errors@^1.0.1, json-parse-better-errors@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" - integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw== - -json-parse-even-better-errors@^2.3.0: - version "2.3.1" - resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d" - integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== - -json-schema-traverse@^0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" - integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== - -json3@^3.3.3: - version "3.3.3" - resolved "https://registry.yarnpkg.com/json3/-/json3-3.3.3.tgz#7fc10e375fc5ae42c4705a5cc0aa6f62be305b81" - integrity sha512-c7/8mbUsKigAbLkD5B010BK4D9LZm7A1pNItkEwiUZRpIN66exu/e7YQWysGun+TRKaJp8MhemM+VkfWv42aCA== - -json5@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.1.tgz#779fb0018604fa854eacbf6252180d83543e3dbe" - integrity sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow== - dependencies: - minimist "^1.2.0" - -json5@^2.1.2: - version "2.2.0" - resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.0.tgz#2dfefe720c6ba525d9ebd909950f0515316c89a3" - integrity sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA== - dependencies: - minimist "^1.2.5" - -jsonfile@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb" - integrity sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss= - optionalDependencies: - graceful-fs "^4.1.6" - -keyv@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/keyv/-/keyv-3.1.0.tgz#ecc228486f69991e49e9476485a5be1e8fc5c4d9" - integrity sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA== - dependencies: - json-buffer "3.0.0" - -killable@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/killable/-/killable-1.0.1.tgz#4c8ce441187a061c7474fb87ca08e2a638194892" - integrity sha512-LzqtLKlUwirEUyl/nicirVmNiPvYs7l5n8wOPP7fyJVpUPkvCnW/vuiXGpylGUlnPDnB7311rARzAt3Mhswpjg== - -kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0: - version "3.2.2" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" - integrity sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ= - dependencies: - is-buffer "^1.1.5" - -kind-of@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-4.0.0.tgz#20813df3d712928b207378691a45066fae72dd57" - integrity sha1-IIE989cSkosgc3hpGkUGb65y3Vc= - dependencies: - is-buffer "^1.1.5" - -kind-of@^5.0.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-5.1.0.tgz#729c91e2d857b7a419a1f9aa65685c4c33f5845d" - integrity sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw== - -kind-of@^6.0.0, kind-of@^6.0.2: - version "6.0.3" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" - integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== - -last-call-webpack-plugin@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/last-call-webpack-plugin/-/last-call-webpack-plugin-3.0.0.tgz#9742df0e10e3cf46e5c0381c2de90d3a7a2d7555" - integrity sha512-7KI2l2GIZa9p2spzPIVZBYyNKkN+e/SQPpnjlTiPhdbDW3F86tdKKELxKpzJ5sgU19wQWsACULZmpTPYHeWO5w== - dependencies: - lodash "^4.17.5" - webpack-sources "^1.1.0" - -latest-version@^5.0.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/latest-version/-/latest-version-5.1.0.tgz#119dfe908fe38d15dfa43ecd13fa12ec8832face" - integrity sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA== - dependencies: - package-json "^6.3.0" - -leven@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/leven/-/leven-3.1.0.tgz#77891de834064cccba82ae7842bb6b14a13ed7f2" - integrity sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A== - -lines-and-columns@^1.1.6: - version "1.1.6" - resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.1.6.tgz#1c00c743b433cd0a4e80758f7b64a57440d9ff00" - integrity sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA= - -loader-runner@^2.4.0: - version "2.4.0" - resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-2.4.0.tgz#ed47066bfe534d7e84c4c7b9998c2a75607d9357" - integrity sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw== - -loader-utils@1.2.3: - version "1.2.3" - resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.2.3.tgz#1ff5dc6911c9f0a062531a4c04b609406108c2c7" - integrity sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA== - dependencies: - big.js "^5.2.2" - emojis-list "^2.0.0" - json5 "^1.0.1" - -loader-utils@^1.1.0, loader-utils@^1.2.3, loader-utils@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.4.0.tgz#c579b5e34cb34b1a74edc6c1fb36bfa371d5a613" - integrity sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA== - dependencies: - big.js "^5.2.2" - emojis-list "^3.0.0" - json5 "^1.0.1" - -loader-utils@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-2.0.0.tgz#e4cace5b816d425a166b5f097e10cd12b36064b0" - integrity sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ== - dependencies: - big.js "^5.2.2" - emojis-list "^3.0.0" - json5 "^2.1.2" - -locate-path@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e" - integrity sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A== - dependencies: - p-locate "^3.0.0" - path-exists "^3.0.0" - -locate-path@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0" - integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g== - dependencies: - p-locate "^4.1.0" - -lodash.assignin@^4.0.9: - version "4.2.0" - resolved "https://registry.yarnpkg.com/lodash.assignin/-/lodash.assignin-4.2.0.tgz#ba8df5fb841eb0a3e8044232b0e263a8dc6a28a2" - integrity sha1-uo31+4QesKPoBEIysOJjqNxqKKI= - -lodash.bind@^4.1.4: - version "4.2.1" - resolved "https://registry.yarnpkg.com/lodash.bind/-/lodash.bind-4.2.1.tgz#7ae3017e939622ac31b7d7d7dcb1b34db1690d35" - integrity sha1-euMBfpOWIqwxt9fX3LGzTbFpDTU= - -lodash.camelcase@^4.3.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz#b28aa6288a2b9fc651035c7711f65ab6190331a6" - integrity sha1-soqmKIorn8ZRA1x3EfZathkDMaY= - -lodash.chunk@^4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/lodash.chunk/-/lodash.chunk-4.2.0.tgz#66e5ce1f76ed27b4303d8c6512e8d1216e8106bc" - integrity sha1-ZuXOH3btJ7QwPYxlEujRIW6BBrw= - -lodash.curry@^4.0.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/lodash.curry/-/lodash.curry-4.1.1.tgz#248e36072ede906501d75966200a86dab8b23170" - integrity sha1-JI42By7ekGUB11lmIAqG2riyMXA= - -lodash.debounce@^4.0.8: - version "4.0.8" - resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af" - integrity sha1-gteb/zCmfEAF/9XiUVMArZyk168= - -lodash.defaults@^4.0.1: - version "4.2.0" - resolved "https://registry.yarnpkg.com/lodash.defaults/-/lodash.defaults-4.2.0.tgz#d09178716ffea4dde9e5fb7b37f6f0802274580c" - integrity sha1-0JF4cW/+pN3p5ft7N/bwgCJ0WAw= - -lodash.filter@^4.4.0: - version "4.6.0" - resolved "https://registry.yarnpkg.com/lodash.filter/-/lodash.filter-4.6.0.tgz#668b1d4981603ae1cc5a6fa760143e480b4c4ace" - integrity sha1-ZosdSYFgOuHMWm+nYBQ+SAtMSs4= - -lodash.flatmap@^4.5.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/lodash.flatmap/-/lodash.flatmap-4.5.0.tgz#ef8cbf408f6e48268663345305c6acc0b778702e" - integrity sha1-74y/QI9uSCaGYzRTBcaswLd4cC4= - -lodash.flatten@^4.2.0: - version "4.4.0" - resolved "https://registry.yarnpkg.com/lodash.flatten/-/lodash.flatten-4.4.0.tgz#f31c22225a9632d2bbf8e4addbef240aa765a61f" - integrity sha1-8xwiIlqWMtK7+OSt2+8kCqdlph8= - -lodash.flow@^3.3.0: - version "3.5.0" - resolved "https://registry.yarnpkg.com/lodash.flow/-/lodash.flow-3.5.0.tgz#87bf40292b8cf83e4e8ce1a3ae4209e20071675a" - integrity sha1-h79AKSuM+D5OjOGjrkIJ4gBxZ1o= - -lodash.foreach@^4.3.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/lodash.foreach/-/lodash.foreach-4.5.0.tgz#1a6a35eace401280c7f06dddec35165ab27e3e53" - integrity sha1-Gmo16s5AEoDH8G3d7DUWWrJ+PlM= - -lodash.groupby@^4.6.0: - version "4.6.0" - resolved "https://registry.yarnpkg.com/lodash.groupby/-/lodash.groupby-4.6.0.tgz#0b08a1dcf68397c397855c3239783832df7403d1" - integrity sha1-Cwih3PaDl8OXhVwyOXg4Mt90A9E= - -lodash.has@^4.5.2: - version "4.5.2" - resolved "https://registry.yarnpkg.com/lodash.has/-/lodash.has-4.5.2.tgz#d19f4dc1095058cccbe2b0cdf4ee0fe4aa37c862" - integrity sha1-0Z9NwQlQWMzL4rDN9O4P5Ko3yGI= - -lodash.isplainobject@^4.0.6: - version "4.0.6" - resolved "https://registry.yarnpkg.com/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz#7c526a52d89b45c45cc690b88163be0497f550cb" - integrity sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs= - -lodash.isstring@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/lodash.isstring/-/lodash.isstring-4.0.1.tgz#d527dfb5456eca7cc9bb95d5daeaf88ba54a5451" - integrity sha1-1SfftUVuynzJu5XV2ur4i6VKVFE= - -lodash.kebabcase@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/lodash.kebabcase/-/lodash.kebabcase-4.1.1.tgz#8489b1cb0d29ff88195cceca448ff6d6cc295c36" - integrity sha1-hImxyw0p/4gZXM7KRI/21swpXDY= - -lodash.map@^4.4.0: - version "4.6.0" - resolved "https://registry.yarnpkg.com/lodash.map/-/lodash.map-4.6.0.tgz#771ec7839e3473d9c4cde28b19394c3562f4f6d3" - integrity sha1-dx7Hg540c9nEzeKLGTlMNWL09tM= - -lodash.memoize@^4.1.2: - version "4.1.2" - resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe" - integrity sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4= - -lodash.merge@^4.4.0: - version "4.6.2" - resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" - integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== - -lodash.padstart@^4.6.1: - version "4.6.1" - resolved "https://registry.yarnpkg.com/lodash.padstart/-/lodash.padstart-4.6.1.tgz#d2e3eebff0d9d39ad50f5cbd1b52a7bce6bb611b" - integrity sha1-0uPuv/DZ05rVD1y9G1KnvOa7YRs= - -lodash.pick@^4.2.1, lodash.pick@^4.4.0: - version "4.4.0" - resolved "https://registry.yarnpkg.com/lodash.pick/-/lodash.pick-4.4.0.tgz#52f05610fff9ded422611441ed1fc123a03001b3" - integrity sha1-UvBWEP/53tQiYRRB7R/BI6AwAbM= - -lodash.pickby@^4.6.0: - version "4.6.0" - resolved "https://registry.yarnpkg.com/lodash.pickby/-/lodash.pickby-4.6.0.tgz#7dea21d8c18d7703a27c704c15d3b84a67e33aff" - integrity sha1-feoh2MGNdwOifHBMFdO4SmfjOv8= - -lodash.reduce@^4.4.0: - version "4.6.0" - resolved "https://registry.yarnpkg.com/lodash.reduce/-/lodash.reduce-4.6.0.tgz#f1ab6b839299ad48f784abbf476596f03b914d3b" - integrity sha1-8atrg5KZrUj3hKu/R2WW8DuRTTs= - -lodash.reject@^4.4.0: - version "4.6.0" - resolved "https://registry.yarnpkg.com/lodash.reject/-/lodash.reject-4.6.0.tgz#80d6492dc1470864bbf583533b651f42a9f52415" - integrity sha1-gNZJLcFHCGS79YNTO2UfQqn1JBU= - -lodash.some@^4.4.0: - version "4.6.0" - resolved "https://registry.yarnpkg.com/lodash.some/-/lodash.some-4.6.0.tgz#1bb9f314ef6b8baded13b549169b2a945eb68e4d" - integrity sha1-G7nzFO9ri63tE7VJFpsqlF62jk0= - -lodash.sortby@^4.6.0, lodash.sortby@^4.7.0: - version "4.7.0" - resolved "https://registry.yarnpkg.com/lodash.sortby/-/lodash.sortby-4.7.0.tgz#edd14c824e2cc9c1e0b0a1b42bb5210516a42438" - integrity sha1-7dFMgk4sycHgsKG0K7UhBRakJDg= - -lodash.toarray@^4.4.0: - version "4.4.0" - resolved "https://registry.yarnpkg.com/lodash.toarray/-/lodash.toarray-4.4.0.tgz#24c4bfcd6b2fba38bfd0594db1179d8e9b656561" - integrity sha1-JMS/zWsvuji/0FlNsRedjptlZWE= - -lodash.uniq@4.5.0, lodash.uniq@^4.5.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" - integrity sha1-0CJTc662Uq3BvILklFM5qEJ1R3M= - -lodash@^4.17.11, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.20, lodash@^4.17.5, lodash@^4.5.2: - version "4.17.21" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" - integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== - -loglevel@^1.6.8: - version "1.7.1" - resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.7.1.tgz#005fde2f5e6e47068f935ff28573e125ef72f197" - integrity sha512-Hesni4s5UkWkwCGJMQGAh71PaLUmKFM60dHvq0zi/vDhhrzuk+4GgNbTXJ12YYQJn6ZKBDNIjYcuQGKudvqrIw== - -loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.2.0, loose-envify@^1.3.1, loose-envify@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" - integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== - dependencies: - js-tokens "^3.0.0 || ^4.0.0" - -lower-case@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/lower-case/-/lower-case-2.0.2.tgz#6fa237c63dbdc4a82ca0fd882e4722dc5e634e28" - integrity sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg== - dependencies: - tslib "^2.0.3" - -lowercase-keys@^1.0.0, lowercase-keys@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.1.tgz#6f9e30b47084d971a7c820ff15a6c5167b74c26f" - integrity sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA== - -lowercase-keys@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-2.0.0.tgz#2603e78b7b4b0006cbca2fbcc8a3202558ac9479" - integrity sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA== - -lru-cache@^5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920" - integrity sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w== - dependencies: - yallist "^3.0.2" - -lru-cache@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" - integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== - dependencies: - yallist "^4.0.0" - -make-dir@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-2.1.0.tgz#5f0310e18b8be898cc07009295a30ae41e91e6f5" - integrity sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA== - dependencies: - pify "^4.0.1" - semver "^5.6.0" - -make-dir@^3.0.0, make-dir@^3.0.2, make-dir@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f" - integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw== - dependencies: - semver "^6.0.0" - -map-cache@^0.2.2: - version "0.2.2" - resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" - integrity sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8= - -map-visit@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/map-visit/-/map-visit-1.0.0.tgz#ecdca8f13144e660f1b5bd41f12f3479d98dfb8f" - integrity sha1-7Nyo8TFE5mDxtb1B8S80edmN+48= - dependencies: - object-visit "^1.0.0" - -markdown-escapes@^1.0.0: - version "1.0.4" - resolved "https://registry.yarnpkg.com/markdown-escapes/-/markdown-escapes-1.0.4.tgz#c95415ef451499d7602b91095f3c8e8975f78535" - integrity sha512-8z4efJYk43E0upd0NbVXwgSTQs6cT3T06etieCMEg7dRbzCbxUCK/GHlX8mhHRDcp+OLlHkPKsvqQTCvsRl2cg== - -md5.js@^1.3.4: - version "1.3.5" - resolved "https://registry.yarnpkg.com/md5.js/-/md5.js-1.3.5.tgz#b5d07b8e3216e3e27cd728d72f70d1e6a342005f" - integrity sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg== - dependencies: - hash-base "^3.0.0" - inherits "^2.0.1" - safe-buffer "^5.1.2" - -mdast-squeeze-paragraphs@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/mdast-squeeze-paragraphs/-/mdast-squeeze-paragraphs-4.0.0.tgz#7c4c114679c3bee27ef10b58e2e015be79f1ef97" - integrity sha512-zxdPn69hkQ1rm4J+2Cs2j6wDEv7O17TfXTJ33tl/+JPIoEmtV9t2ZzBM5LPHE8QlHsmVD8t3vPKCyY3oH+H8MQ== - dependencies: - unist-util-remove "^2.0.0" - -mdast-util-definitions@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/mdast-util-definitions/-/mdast-util-definitions-4.0.0.tgz#c5c1a84db799173b4dcf7643cda999e440c24db2" - integrity sha512-k8AJ6aNnUkB7IE+5azR9h81O5EQ/cTDXtWdMq9Kk5KcEW/8ritU5CeLg/9HhOC++nALHBlaogJ5jz0Ybk3kPMQ== - dependencies: - unist-util-visit "^2.0.0" - -mdast-util-to-hast@10.0.1: - version "10.0.1" - resolved "https://registry.yarnpkg.com/mdast-util-to-hast/-/mdast-util-to-hast-10.0.1.tgz#0cfc82089494c52d46eb0e3edb7a4eb2aea021eb" - integrity sha512-BW3LM9SEMnjf4HXXVApZMt8gLQWVNXc3jryK0nJu/rOXPOnlkUjmdkDlmxMirpbU9ILncGFIwLH/ubnWBbcdgA== - dependencies: - "@types/mdast" "^3.0.0" - "@types/unist" "^2.0.0" - mdast-util-definitions "^4.0.0" - mdurl "^1.0.0" - unist-builder "^2.0.0" - unist-util-generated "^1.0.0" - unist-util-position "^3.0.0" - unist-util-visit "^2.0.0" - -mdast-util-to-string@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/mdast-util-to-string/-/mdast-util-to-string-1.1.0.tgz#27055500103f51637bd07d01da01eb1967a43527" - integrity sha512-jVU0Nr2B9X3MU4tSK7JP1CMkSvOj7X5l/GboG1tKRw52lLF1x2Ju92Ms9tNetCcbfX3hzlM73zYo2NKkWSfF/A== - -mdn-data@2.0.14: - version "2.0.14" - resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.14.tgz#7113fc4281917d63ce29b43446f701e68c25ba50" - integrity sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow== - -mdn-data@2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.4.tgz#699b3c38ac6f1d728091a64650b65d388502fd5b" - integrity sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA== - -mdurl@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/mdurl/-/mdurl-1.0.1.tgz#fe85b2ec75a59037f2adfec100fd6c601761152e" - integrity sha1-/oWy7HWlkDfyrf7BAP1sYBdhFS4= - -media-typer@0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" - integrity sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g= - -memory-fs@^0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.4.1.tgz#3a9a20b8462523e447cfbc7e8bb80ed667bfc552" - integrity sha1-OpoguEYlI+RHz7x+i7gO1me/xVI= - dependencies: - errno "^0.1.3" - readable-stream "^2.0.1" - -memory-fs@^0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.5.0.tgz#324c01288b88652966d161db77838720845a8e3c" - integrity sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA== - dependencies: - errno "^0.1.3" - readable-stream "^2.0.1" - -merge-descriptors@1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" - integrity sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E= - -merge-stream@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" - integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== - -merge2@^1.2.3, merge2@^1.3.0: - version "1.4.1" - resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" - integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== - -methods@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" - integrity sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4= - -microevent.ts@~0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/microevent.ts/-/microevent.ts-0.1.1.tgz#70b09b83f43df5172d0205a63025bce0f7357fa0" - integrity sha512-jo1OfR4TaEwd5HOrt5+tAZ9mqT4jmpNAusXtyfNzqVm9uiSYFZlKM1wYL4oU7azZW/PxQW53wM0S6OR1JHNa2g== - -micromatch@^3.1.10, micromatch@^3.1.4: - version "3.1.10" - resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23" - integrity sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg== - dependencies: - arr-diff "^4.0.0" - array-unique "^0.3.2" - braces "^2.3.1" - define-property "^2.0.2" - extend-shallow "^3.0.2" - extglob "^2.0.4" - fragment-cache "^0.2.1" - kind-of "^6.0.2" - nanomatch "^1.2.9" - object.pick "^1.3.0" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.2" - -micromatch@^4.0.2: - version "4.0.4" - resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.4.tgz#896d519dfe9db25fce94ceb7a500919bf881ebf9" - integrity sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg== - dependencies: - braces "^3.0.1" - picomatch "^2.2.3" - -miller-rabin@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/miller-rabin/-/miller-rabin-4.0.1.tgz#f080351c865b0dc562a8462966daa53543c78a4d" - integrity sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA== - dependencies: - bn.js "^4.0.0" - brorand "^1.0.1" - -mime-db@1.47.0, "mime-db@>= 1.43.0 < 2": - version "1.47.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.47.0.tgz#8cb313e59965d3c05cfbf898915a267af46a335c" - integrity sha512-QBmA/G2y+IfeS4oktet3qRZ+P5kPhCKRXxXnQEudYqUaEioAU1/Lq2us3D/t1Jfo4hE9REQPrbB7K5sOczJVIw== - -mime-db@~1.33.0: - version "1.33.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.33.0.tgz#a3492050a5cb9b63450541e39d9788d2272783db" - integrity sha512-BHJ/EKruNIqJf/QahvxwQZXKygOQ256myeN/Ew+THcAa5q+PjyTTMMeNQC4DZw5AwfvelsUrA6B67NKMqXDbzQ== - -mime-types@2.1.18: - version "2.1.18" - resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.18.tgz#6f323f60a83d11146f831ff11fd66e2fe5503bb8" - integrity sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ== - dependencies: - mime-db "~1.33.0" - -mime-types@^2.1.27, mime-types@~2.1.17, mime-types@~2.1.24: - version "2.1.30" - resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.30.tgz#6e7be8b4c479825f85ed6326695db73f9305d62d" - integrity sha512-crmjA4bLtR8m9qLpHvgxSChT+XoSlZi8J4n/aIdn3z92e/U47Z0V/yl+Wh9W046GgFVAmoNR/fmdbZYcSSIUeg== - dependencies: - mime-db "1.47.0" - -mime@1.6.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" - integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== - -mime@^2.4.4: - version "2.5.2" - resolved "https://registry.yarnpkg.com/mime/-/mime-2.5.2.tgz#6e3dc6cc2b9510643830e5f19d5cb753da5eeabe" - integrity sha512-tqkh47FzKeCPD2PUiPB6pkbMzsCasjxAfC62/Wap5qrUWcb+sFasXUC5I3gYM5iBM8v/Qpn4UK0x+j0iHyFPDg== - -mimic-fn@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" - integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== - -mimic-response@^1.0.0, mimic-response@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-1.0.1.tgz#4923538878eef42063cb8a3e3b0798781487ab1b" - integrity sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ== - -mini-create-react-context@^0.4.0: - version "0.4.1" - resolved "https://registry.yarnpkg.com/mini-create-react-context/-/mini-create-react-context-0.4.1.tgz#072171561bfdc922da08a60c2197a497cc2d1d5e" - integrity sha512-YWCYEmd5CQeHGSAKrYvXgmzzkrvssZcuuQDDeqkT+PziKGMgE+0MCCtcKbROzocGBG1meBLl2FotlRwf4gAzbQ== - dependencies: - "@babel/runtime" "^7.12.1" - tiny-warning "^1.0.3" - -mini-css-extract-plugin@^0.8.0: - version "0.8.2" - resolved "https://registry.yarnpkg.com/mini-css-extract-plugin/-/mini-css-extract-plugin-0.8.2.tgz#a875e169beb27c88af77dd962771c9eedc3da161" - integrity sha512-a3Y4of27Wz+mqK3qrcd3VhYz6cU0iW5x3Sgvqzbj+XmlrSizmvu8QQMl5oMYJjgHOC4iyt+w7l4umP+dQeW3bw== - dependencies: - loader-utils "^1.1.0" - normalize-url "1.9.1" - schema-utils "^1.0.0" - webpack-sources "^1.1.0" - -minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" - integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== - -minimalistic-crypto-utils@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" - integrity sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo= - -minimatch@3.0.4, minimatch@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" - integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== - dependencies: - brace-expansion "^1.1.7" - -minimist@^1.2.0, minimist@^1.2.5: - version "1.2.5" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" - integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== - -minipass-collect@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/minipass-collect/-/minipass-collect-1.0.2.tgz#22b813bf745dc6edba2576b940022ad6edc8c617" - integrity sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA== - dependencies: - minipass "^3.0.0" - -minipass-flush@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/minipass-flush/-/minipass-flush-1.0.5.tgz#82e7135d7e89a50ffe64610a787953c4c4cbb373" - integrity sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw== - dependencies: - minipass "^3.0.0" - -minipass-pipeline@^1.2.2: - version "1.2.4" - resolved "https://registry.yarnpkg.com/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz#68472f79711c084657c067c5c6ad93cddea8214c" - integrity sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A== - dependencies: - minipass "^3.0.0" - -minipass@^3.0.0, minipass@^3.1.1: - version "3.1.3" - resolved "https://registry.yarnpkg.com/minipass/-/minipass-3.1.3.tgz#7d42ff1f39635482e15f9cdb53184deebd5815fd" - integrity sha512-Mgd2GdMVzY+x3IJ+oHnVM+KG3lA5c8tnabyJKmHSaG2kAGpudxuOf8ToDkhumF7UzME7DecbQE9uOZhNm7PuJg== - dependencies: - yallist "^4.0.0" - -minizlib@^2.1.1: - version "2.1.2" - resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-2.1.2.tgz#e90d3466ba209b932451508a11ce3d3632145931" - integrity sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg== - dependencies: - minipass "^3.0.0" - yallist "^4.0.0" - -mississippi@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/mississippi/-/mississippi-3.0.0.tgz#ea0a3291f97e0b5e8776b363d5f0a12d94c67022" - integrity sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA== - dependencies: - concat-stream "^1.5.0" - duplexify "^3.4.2" - end-of-stream "^1.1.0" - flush-write-stream "^1.0.0" - from2 "^2.1.0" - parallel-transform "^1.1.0" - pump "^3.0.0" - pumpify "^1.3.3" - stream-each "^1.1.0" - through2 "^2.0.0" - -mixin-deep@^1.2.0: - version "1.3.2" - resolved "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.2.tgz#1120b43dc359a785dce65b55b82e257ccf479566" - integrity sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA== - dependencies: - for-in "^1.0.2" - is-extendable "^1.0.1" - -mkdirp@^0.5.1, mkdirp@^0.5.3, mkdirp@^0.5.5, mkdirp@~0.5.1: - version "0.5.5" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def" - integrity sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ== - dependencies: - minimist "^1.2.5" - -mkdirp@^1.0.3, mkdirp@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" - integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== - -move-concurrently@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/move-concurrently/-/move-concurrently-1.0.1.tgz#be2c005fda32e0b29af1f05d7c4b33214c701f92" - integrity sha1-viwAX9oy4LKa8fBdfEszIUxwH5I= - dependencies: - aproba "^1.1.1" - copy-concurrently "^1.0.0" - fs-write-stream-atomic "^1.0.8" - mkdirp "^0.5.1" - rimraf "^2.5.4" - run-queue "^1.0.3" - -ms@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" - integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= - -ms@2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.1.tgz#30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a" - integrity sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg== - -ms@2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" - integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== - -ms@^2.1.1: - version "2.1.3" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" - integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== - -multicast-dns-service-types@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz#899f11d9686e5e05cb91b35d5f0e63b773cfc901" - integrity sha1-iZ8R2WhuXgXLkbNdXw5jt3PPyQE= - -multicast-dns@^6.0.1: - version "6.2.3" - resolved "https://registry.yarnpkg.com/multicast-dns/-/multicast-dns-6.2.3.tgz#a0ec7bd9055c4282f790c3c82f4e28db3b31b229" - integrity sha512-ji6J5enbMyGRHIAkAOu3WdV8nggqviKCEKtXcOqfphZZtQrmHKycfynJ2V7eVPUA4NhJ6V7Wf4TmGbTwKE9B6g== - dependencies: - dns-packet "^1.3.1" - thunky "^1.0.2" - -mute-stream@0.0.8: - version "0.0.8" - resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.8.tgz#1630c42b2251ff81e2a283de96a5497ea92e5e0d" - integrity sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA== - -nan@^2.12.1: - version "2.14.2" - resolved "https://registry.yarnpkg.com/nan/-/nan-2.14.2.tgz#f5376400695168f4cc694ac9393d0c9585eeea19" - integrity sha512-M2ufzIiINKCuDfBSAUr1vWQ+vuVcA9kqx8JJUsbQi6yf1uGRyb7HfpdfUr5qLXf3B/t8dPvcjhKMmlfnP47EzQ== - -nanomatch@^1.2.9: - version "1.2.13" - resolved "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.13.tgz#b87a8aa4fc0de8fe6be88895b38983ff265bd119" - integrity sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA== - dependencies: - arr-diff "^4.0.0" - array-unique "^0.3.2" - define-property "^2.0.2" - extend-shallow "^3.0.2" - fragment-cache "^0.2.1" - is-windows "^1.0.2" - kind-of "^6.0.2" - object.pick "^1.3.0" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.1" - -negotiator@0.6.2: - version "0.6.2" - resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.2.tgz#feacf7ccf525a77ae9634436a64883ffeca346fb" - integrity sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw== - -neo-async@^2.5.0, neo-async@^2.6.1: - version "2.6.2" - resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f" - integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== - -nice-try@^1.0.4: - version "1.0.5" - resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" - integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ== - -no-case@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/no-case/-/no-case-3.0.4.tgz#d361fd5c9800f558551a8369fc0dcd4662b6124d" - integrity sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg== - dependencies: - lower-case "^2.0.2" - tslib "^2.0.3" - -node-emoji@^1.10.0: - version "1.10.0" - resolved "https://registry.yarnpkg.com/node-emoji/-/node-emoji-1.10.0.tgz#8886abd25d9c7bb61802a658523d1f8d2a89b2da" - integrity sha512-Yt3384If5H6BYGVHiHwTL+99OzJKHhgp82S8/dktEK73T26BazdgZ4JZh92xSVtGNJvz9UbXdNAc5hcrXV42vw== - dependencies: - lodash.toarray "^4.4.0" - -node-fetch@2.6.1: - version "2.6.1" - resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.1.tgz#045bd323631f76ed2e2b55573394416b639a0052" - integrity sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw== - -node-forge@^0.10.0: - version "0.10.0" - resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-0.10.0.tgz#32dea2afb3e9926f02ee5ce8794902691a676bf3" - integrity sha512-PPmu8eEeG9saEUvI97fm4OYxXVB6bFvyNTyiUOBichBpFG8A1Ljw3bY62+5oOjDEMHRnd0Y7HQ+x7uzxOzC6JA== - -node-libs-browser@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/node-libs-browser/-/node-libs-browser-2.2.1.tgz#b64f513d18338625f90346d27b0d235e631f6425" - integrity sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q== - dependencies: - assert "^1.1.1" - browserify-zlib "^0.2.0" - buffer "^4.3.0" - console-browserify "^1.1.0" - constants-browserify "^1.0.0" - crypto-browserify "^3.11.0" - domain-browser "^1.1.1" - events "^3.0.0" - https-browserify "^1.0.0" - os-browserify "^0.3.0" - path-browserify "0.0.1" - process "^0.11.10" - punycode "^1.2.4" - querystring-es3 "^0.2.0" - readable-stream "^2.3.3" - stream-browserify "^2.0.1" - stream-http "^2.7.2" - string_decoder "^1.0.0" - timers-browserify "^2.0.4" - tty-browserify "0.0.0" - url "^0.11.0" - util "^0.11.0" - vm-browserify "^1.0.1" - -node-releases@^1.1.52, node-releases@^1.1.71: - version "1.1.71" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.71.tgz#cb1334b179896b1c89ecfdd4b725fb7bbdfc7dbb" - integrity sha512-zR6HoT6LrLCRBwukmrVbHv0EpEQjksO6GmFcZQQuCAy139BEsoVKPYnf3jongYW83fAa1torLGYwxxky/p28sg== - -normalize-path@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" - integrity sha1-GrKLVW4Zg2Oowab35vogE3/mrtk= - dependencies: - remove-trailing-separator "^1.0.1" - -normalize-path@^3.0.0, normalize-path@~3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" - integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== - -normalize-range@^0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/normalize-range/-/normalize-range-0.1.2.tgz#2d10c06bdfd312ea9777695a4d28439456b75942" - integrity sha1-LRDAa9/TEuqXd2laTShDlFa3WUI= - -normalize-url@1.9.1: - version "1.9.1" - resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-1.9.1.tgz#2cc0d66b31ea23036458436e3620d85954c66c3c" - integrity sha1-LMDWazHqIwNkWENuNiDYWVTGbDw= - dependencies: - object-assign "^4.0.1" - prepend-http "^1.0.0" - query-string "^4.1.0" - sort-keys "^1.0.0" - -normalize-url@^3.0.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-3.3.0.tgz#b2e1c4dc4f7c6d57743df733a4f5978d18650559" - integrity sha512-U+JJi7duF1o+u2pynbp2zXDW2/PADgC30f0GsHZtRh+HOcXHnw137TrNlyxxRvWW5fjKd3bcLHPxofWuCjaeZg== - -normalize-url@^4.1.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-4.5.0.tgz#453354087e6ca96957bd8f5baf753f5982142129" - integrity sha512-2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ== - -npm-run-path@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" - integrity sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8= - dependencies: - path-key "^2.0.0" - -npm-run-path@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea" - integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw== - dependencies: - path-key "^3.0.0" - -nprogress@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/nprogress/-/nprogress-0.2.0.tgz#cb8f34c53213d895723fcbab907e9422adbcafb1" - integrity sha1-y480xTIT2JVyP8urkH6UIq28r7E= - -nth-check@^1.0.2, nth-check@~1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-1.0.2.tgz#b2bd295c37e3dd58a3bf0700376663ba4d9cf05c" - integrity sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg== - dependencies: - boolbase "~1.0.0" - -null-loader@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/null-loader/-/null-loader-3.0.0.tgz#3e2b6c663c5bda8c73a54357d8fa0708dc61b245" - integrity sha512-hf5sNLl8xdRho4UPBOOeoIwT3WhjYcMUQm0zj44EhD6UscMAz72o2udpoDFBgykucdEDGIcd6SXbc/G6zssbzw== - dependencies: - loader-utils "^1.2.3" - schema-utils "^1.0.0" - -num2fraction@^1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/num2fraction/-/num2fraction-1.2.2.tgz#6f682b6a027a4e9ddfa4564cd2589d1d4e669ede" - integrity sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4= - -object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" - integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= - -object-copy@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/object-copy/-/object-copy-0.1.0.tgz#7e7d858b781bd7c991a41ba975ed3812754e998c" - integrity sha1-fn2Fi3gb18mRpBupde04EnVOmYw= - dependencies: - copy-descriptor "^0.1.0" - define-property "^0.2.5" - kind-of "^3.0.3" - -object-inspect@^1.9.0: - version "1.10.3" - resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.10.3.tgz#c2aa7d2d09f50c99375704f7a0adf24c5782d369" - integrity sha512-e5mCJlSH7poANfC8z8S9s9S2IN5/4Zb3aZ33f5s8YqoazCFzNLloLU8r5VCG+G7WoqLvAAZoVMcy3tp/3X0Plw== - -object-is@^1.0.1: - version "1.1.5" - resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.1.5.tgz#b9deeaa5fc7f1846a0faecdceec138e5778f53ac" - integrity sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.3" - -object-keys@^1.0.12, object-keys@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" - integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== - -object-visit@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/object-visit/-/object-visit-1.0.1.tgz#f79c4493af0c5377b59fe39d395e41042dd045bb" - integrity sha1-95xEk68MU3e1n+OdOV5BBC3QRbs= - dependencies: - isobject "^3.0.0" - -object.assign@^4.1.0, object.assign@^4.1.2: - version "4.1.2" - resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.2.tgz#0ed54a342eceb37b38ff76eb831a0e788cb63940" - integrity sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ== - dependencies: - call-bind "^1.0.0" - define-properties "^1.1.3" - has-symbols "^1.0.1" - object-keys "^1.1.1" - -object.getownpropertydescriptors@^2.0.3, object.getownpropertydescriptors@^2.1.0: - version "2.1.2" - resolved "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.2.tgz#1bd63aeacf0d5d2d2f31b5e393b03a7c601a23f7" - integrity sha512-WtxeKSzfBjlzL+F9b7M7hewDzMwy+C8NRssHd1YrNlzHzIDrXcXiNOMrezdAEM4UXixgV+vvnyBeN7Rygl2ttQ== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.3" - es-abstract "^1.18.0-next.2" - -object.pick@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747" - integrity sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c= - dependencies: - isobject "^3.0.1" - -object.values@^1.1.0: - version "1.1.3" - resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.3.tgz#eaa8b1e17589f02f698db093f7c62ee1699742ee" - integrity sha512-nkF6PfDB9alkOUxpf1HNm/QlkeW3SReqL5WXeBLpEJJnlPSvRaDQpW3gQTksTN3fgJX4hL42RzKyOin6ff3tyw== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.3" - es-abstract "^1.18.0-next.2" - has "^1.0.3" - -obuf@^1.0.0, obuf@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/obuf/-/obuf-1.1.2.tgz#09bea3343d41859ebd446292d11c9d4db619084e" - integrity sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg== - -on-finished@~2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947" - integrity sha1-IPEzZIGwg811M3mSoWlxqi2QaUc= - dependencies: - ee-first "1.1.1" - -on-headers@~1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/on-headers/-/on-headers-1.0.2.tgz#772b0ae6aaa525c399e489adfad90c403eb3c28f" - integrity sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA== - -once@^1.3.0, once@^1.3.1, once@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" - integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= - dependencies: - wrappy "1" - -onetime@^5.1.0: - version "5.1.2" - resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e" - integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== - dependencies: - mimic-fn "^2.1.0" - -open@^7.0.2: - version "7.4.2" - resolved "https://registry.yarnpkg.com/open/-/open-7.4.2.tgz#b8147e26dcf3e426316c730089fd71edd29c2321" - integrity sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q== - dependencies: - is-docker "^2.0.0" - is-wsl "^2.1.1" - -opener@^1.5.1: - version "1.5.2" - resolved "https://registry.yarnpkg.com/opener/-/opener-1.5.2.tgz#5d37e1f35077b9dcac4301372271afdeb2a13598" - integrity sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A== - -opn@^5.5.0: - version "5.5.0" - resolved "https://registry.yarnpkg.com/opn/-/opn-5.5.0.tgz#fc7164fab56d235904c51c3b27da6758ca3b9bfc" - integrity sha512-PqHpggC9bLV0VeWcdKhkpxY+3JTzetLSqTCWL/z/tFIbI6G8JCjondXklT1JinczLz2Xib62sSp0T/gKT4KksA== - dependencies: - is-wsl "^1.1.0" - -optimize-css-assets-webpack-plugin@^5.0.3: - version "5.0.4" - resolved "https://registry.yarnpkg.com/optimize-css-assets-webpack-plugin/-/optimize-css-assets-webpack-plugin-5.0.4.tgz#85883c6528aaa02e30bbad9908c92926bb52dc90" - integrity sha512-wqd6FdI2a5/FdoiCNNkEvLeA//lHHfG24Ln2Xm2qqdIk4aOlsR18jwpyOihqQ8849W3qu2DX8fOYxpvTMj+93A== - dependencies: - cssnano "^4.1.10" - last-call-webpack-plugin "^3.0.0" - -original@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/original/-/original-1.0.2.tgz#e442a61cffe1c5fd20a65f3261c26663b303f25f" - integrity sha512-hyBVl6iqqUOJ8FqRe+l/gS8H+kKYjrEndd5Pm1MfBtsEKA038HkkdbAl/72EAXGyonD/PFsvmVG+EvcIpliMBg== - dependencies: - url-parse "^1.4.3" - -os-browserify@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.3.0.tgz#854373c7f5c2315914fc9bfc6bd8238fdda1ec27" - integrity sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc= - -os-tmpdir@~1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" - integrity sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ= - -p-cancelable@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-1.1.0.tgz#d078d15a3af409220c886f1d9a0ca2e441ab26cc" - integrity sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw== - -p-finally@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" - integrity sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4= - -p-finally@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-2.0.1.tgz#bd6fcaa9c559a096b680806f4d657b3f0f240561" - integrity sha512-vpm09aKwq6H9phqRQzecoDpD8TmVyGw70qmWlyq5onxY7tqyTTFVvxMykxQSQKILBSFlbXpypIw2T1Ml7+DDtw== - -p-limit@^2.0.0, p-limit@^2.2.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" - integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== - dependencies: - p-try "^2.0.0" - -p-limit@^3.0.2: - version "3.1.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" - integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== - dependencies: - yocto-queue "^0.1.0" - -p-locate@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4" - integrity sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ== - dependencies: - p-limit "^2.0.0" - -p-locate@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07" - integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A== - dependencies: - p-limit "^2.2.0" - -p-map@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/p-map/-/p-map-2.1.0.tgz#310928feef9c9ecc65b68b17693018a665cea175" - integrity sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw== - -p-map@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/p-map/-/p-map-3.0.0.tgz#d704d9af8a2ba684e2600d9a215983d4141a979d" - integrity sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ== - dependencies: - aggregate-error "^3.0.0" - -p-map@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/p-map/-/p-map-4.0.0.tgz#bb2f95a5eda2ec168ec9274e06a747c3e2904d2b" - integrity sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ== - dependencies: - aggregate-error "^3.0.0" - -p-retry@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/p-retry/-/p-retry-3.0.1.tgz#316b4c8893e2c8dc1cfa891f406c4b422bebf328" - integrity sha512-XE6G4+YTTkT2a0UWb2kjZe8xNwf8bIbnqpc/IS/idOBVhyves0mK5OJgeocjx7q5pvX/6m23xuzVPYT1uGM73w== - dependencies: - retry "^0.12.0" - -p-try@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" - integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== - -package-json@^6.3.0: - version "6.5.0" - resolved "https://registry.yarnpkg.com/package-json/-/package-json-6.5.0.tgz#6feedaca35e75725876d0b0e64974697fed145b0" - integrity sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ== - dependencies: - got "^9.6.0" - registry-auth-token "^4.0.0" - registry-url "^5.0.0" - semver "^6.2.0" - -pako@~1.0.5: - version "1.0.11" - resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.11.tgz#6c9599d340d54dfd3946380252a35705a6b992bf" - integrity sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw== - -parallel-transform@^1.1.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/parallel-transform/-/parallel-transform-1.2.0.tgz#9049ca37d6cb2182c3b1d2c720be94d14a5814fc" - integrity sha512-P2vSmIu38uIlvdcU7fDkyrxj33gTUy/ABO5ZUbGowxNCopBq/OoD42bP4UmMrJoPyk4Uqf0mu3mtWBhHCZD8yg== - dependencies: - cyclist "^1.0.1" - inherits "^2.0.3" - readable-stream "^2.1.5" - -param-case@^3.0.3: - version "3.0.4" - resolved "https://registry.yarnpkg.com/param-case/-/param-case-3.0.4.tgz#7d17fe4aa12bde34d4a77d91acfb6219caad01c5" - integrity sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A== - dependencies: - dot-case "^3.0.4" - tslib "^2.0.3" - -parent-module@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" - integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== - dependencies: - callsites "^3.0.0" - -parse-asn1@^5.0.0, parse-asn1@^5.1.5: - version "5.1.6" - resolved "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.1.6.tgz#385080a3ec13cb62a62d39409cb3e88844cdaed4" - integrity sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw== - dependencies: - asn1.js "^5.2.0" - browserify-aes "^1.0.0" - evp_bytestokey "^1.0.0" - pbkdf2 "^3.0.3" - safe-buffer "^5.1.1" - -parse-entities@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/parse-entities/-/parse-entities-2.0.0.tgz#53c6eb5b9314a1f4ec99fa0fdf7ce01ecda0cbe8" - integrity sha512-kkywGpCcRYhqQIchaWqZ875wzpS/bMKhz5HnN3p7wveJTkTtyAB/AlnS0f8DFSqYW1T82t6yEAkEcB+A1I3MbQ== - dependencies: - character-entities "^1.0.0" - character-entities-legacy "^1.0.0" - character-reference-invalid "^1.0.0" - is-alphanumerical "^1.0.0" - is-decimal "^1.0.0" - is-hexadecimal "^1.0.0" - -parse-json@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-4.0.0.tgz#be35f5425be1f7f6c747184f98a788cb99477ee0" - integrity sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA= - dependencies: - error-ex "^1.3.1" - json-parse-better-errors "^1.0.1" - -parse-json@^5.0.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.2.0.tgz#c76fc66dee54231c962b22bcc8a72cf2f99753cd" - integrity sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg== - dependencies: - "@babel/code-frame" "^7.0.0" - error-ex "^1.3.1" - json-parse-even-better-errors "^2.3.0" - lines-and-columns "^1.1.6" - -parse-numeric-range@^0.0.2: - version "0.0.2" - resolved "https://registry.yarnpkg.com/parse-numeric-range/-/parse-numeric-range-0.0.2.tgz#b4f09d413c7adbcd987f6e9233c7b4b210c938e4" - integrity sha1-tPCdQTx6282Yf26SM8e0shDJOOQ= - -parse5@^5.0.0: - version "5.1.1" - resolved "https://registry.yarnpkg.com/parse5/-/parse5-5.1.1.tgz#f68e4e5ba1852ac2cadc00f4555fff6c2abb6178" - integrity sha512-ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug== - -parse5@^6.0.0: - version "6.0.1" - resolved "https://registry.yarnpkg.com/parse5/-/parse5-6.0.1.tgz#e1a1c085c569b3dc08321184f19a39cc27f7c30b" - integrity sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw== - -parseurl@~1.3.2, parseurl@~1.3.3: - version "1.3.3" - resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" - integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== - -pascal-case@^3.1.2: - version "3.1.2" - resolved "https://registry.yarnpkg.com/pascal-case/-/pascal-case-3.1.2.tgz#b48e0ef2b98e205e7c1dae747d0b1508237660eb" - integrity sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g== - dependencies: - no-case "^3.0.4" - tslib "^2.0.3" - -pascalcase@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14" - integrity sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ= - -path-browserify@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-0.0.1.tgz#e6c4ddd7ed3aa27c68a20cc4e50e1a4ee83bbc4a" - integrity sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ== - -path-dirname@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/path-dirname/-/path-dirname-1.0.2.tgz#cc33d24d525e099a5388c0336c6e32b9160609e0" - integrity sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA= - -path-exists@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" - integrity sha1-zg6+ql94yxiSXqfYENe1mwEP1RU= - -path-exists@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" - integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== - -path-is-absolute@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" - integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= - -path-is-inside@1.0.2, path-is-inside@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53" - integrity sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM= - -path-key@^2.0.0, path-key@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" - integrity sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A= - -path-key@^3.0.0, path-key@^3.1.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" - integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== - -path-parse@^1.0.6: - version "1.0.6" - resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c" - integrity sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw== - -path-to-regexp@0.1.7: - version "0.1.7" - resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" - integrity sha1-32BBeABfUi8V60SQ5yR6G/qmf4w= - -path-to-regexp@2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-2.2.1.tgz#90b617025a16381a879bc82a38d4e8bdeb2bcf45" - integrity sha512-gu9bD6Ta5bwGrrU8muHzVOBFFREpp2iRkVfhBJahwJ6p6Xw20SjT0MxLnwkjOibQmGSYhiUnf2FLe7k+jcFmGQ== - -path-to-regexp@^1.7.0: - version "1.8.0" - resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-1.8.0.tgz#887b3ba9d84393e87a0a0b9f4cb756198b53548a" - integrity sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA== - dependencies: - isarray "0.0.1" - -path-type@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/path-type/-/path-type-3.0.0.tgz#cef31dc8e0a1a3bb0d105c0cd97cf3bf47f4e36f" - integrity sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg== - dependencies: - pify "^3.0.0" - -path-type@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" - integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== - -pbkdf2@^3.0.3: - version "3.1.2" - resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.1.2.tgz#dd822aa0887580e52f1a039dc3eda108efae3075" - integrity sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA== - dependencies: - create-hash "^1.1.2" - create-hmac "^1.1.4" - ripemd160 "^2.0.1" - safe-buffer "^5.0.1" - sha.js "^2.4.8" - -picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.3: - version "2.2.3" - resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.2.3.tgz#465547f359ccc206d3c48e46a1bcb89bf7ee619d" - integrity sha512-KpELjfwcCDUb9PeigTs2mBJzXUPzAuP2oPcA989He8Rte0+YUAjw1JVedDhuTKPkHjSYzMN3npC9luThGYEKdg== - -pify@^2.0.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" - integrity sha1-7RQaasBDqEnqWISY59yosVMw6Qw= - -pify@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176" - integrity sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY= - -pify@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/pify/-/pify-4.0.1.tgz#4b2cd25c50d598735c50292224fd8c6df41e3231" - integrity sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g== - -pinkie-promise@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa" - integrity sha1-ITXW36ejWMBprJsXh3YogihFD/o= - dependencies: - pinkie "^2.0.0" - -pinkie@^2.0.0: - version "2.0.4" - resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" - integrity sha1-clVrgM+g1IqXToDnckjoDtT3+HA= - -pkg-dir@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-3.0.0.tgz#2749020f239ed990881b1f71210d51eb6523bea3" - integrity sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw== - dependencies: - find-up "^3.0.0" - -pkg-dir@^4.1.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3" - integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ== - dependencies: - find-up "^4.0.0" - -pkg-up@3.1.0, pkg-up@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/pkg-up/-/pkg-up-3.1.0.tgz#100ec235cc150e4fd42519412596a28512a0def5" - integrity sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA== - dependencies: - find-up "^3.0.0" - -pnp-webpack-plugin@^1.6.4: - version "1.6.4" - resolved "https://registry.yarnpkg.com/pnp-webpack-plugin/-/pnp-webpack-plugin-1.6.4.tgz#c9711ac4dc48a685dabafc86f8b6dd9f8df84149" - integrity sha512-7Wjy+9E3WwLOEL30D+m8TSTF7qJJUJLONBnwQp0518siuMxUQUbgZwssaFX+QKlZkjHZcw/IpZCt/H0srrntSg== - dependencies: - ts-pnp "^1.1.6" - -portfinder@^1.0.26: - version "1.0.28" - resolved "https://registry.yarnpkg.com/portfinder/-/portfinder-1.0.28.tgz#67c4622852bd5374dd1dd900f779f53462fac778" - integrity sha512-Se+2isanIcEqf2XMHjyUKskczxbPH7dQnlMjXX6+dybayyHvAf/TCgyMRlzf/B6QDhAEFOGes0pzRo3by4AbMA== - dependencies: - async "^2.6.2" - debug "^3.1.1" - mkdirp "^0.5.5" - -posix-character-classes@^0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab" - integrity sha1-AerA/jta9xoqbAL+q7jB/vfgDqs= - -postcss-attribute-case-insensitive@^4.0.1: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-attribute-case-insensitive/-/postcss-attribute-case-insensitive-4.0.2.tgz#d93e46b504589e94ac7277b0463226c68041a880" - integrity sha512-clkFxk/9pcdb4Vkn0hAHq3YnxBQ2p0CGD1dy24jN+reBck+EWxMbxSUqN4Yj7t0w8csl87K6p0gxBe1utkJsYA== - dependencies: - postcss "^7.0.2" - postcss-selector-parser "^6.0.2" - -postcss-calc@^7.0.1: - version "7.0.5" - resolved "https://registry.yarnpkg.com/postcss-calc/-/postcss-calc-7.0.5.tgz#f8a6e99f12e619c2ebc23cf6c486fdc15860933e" - integrity sha512-1tKHutbGtLtEZF6PT4JSihCHfIVldU72mZ8SdZHIYriIZ9fh9k9aWSppaT8rHsyI3dX+KSR+W+Ix9BMY3AODrg== - dependencies: - postcss "^7.0.27" - postcss-selector-parser "^6.0.2" - postcss-value-parser "^4.0.2" - -postcss-color-functional-notation@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/postcss-color-functional-notation/-/postcss-color-functional-notation-2.0.1.tgz#5efd37a88fbabeb00a2966d1e53d98ced93f74e0" - integrity sha512-ZBARCypjEDofW4P6IdPVTLhDNXPRn8T2s1zHbZidW6rPaaZvcnCS2soYFIQJrMZSxiePJ2XIYTlcb2ztr/eT2g== - dependencies: - postcss "^7.0.2" - postcss-values-parser "^2.0.0" - -postcss-color-gray@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/postcss-color-gray/-/postcss-color-gray-5.0.0.tgz#532a31eb909f8da898ceffe296fdc1f864be8547" - integrity sha512-q6BuRnAGKM/ZRpfDascZlIZPjvwsRye7UDNalqVz3s7GDxMtqPY6+Q871liNxsonUw8oC61OG+PSaysYpl1bnw== - dependencies: - "@csstools/convert-colors" "^1.4.0" - postcss "^7.0.5" - postcss-values-parser "^2.0.0" - -postcss-color-hex-alpha@^5.0.3: - version "5.0.3" - resolved "https://registry.yarnpkg.com/postcss-color-hex-alpha/-/postcss-color-hex-alpha-5.0.3.tgz#a8d9ca4c39d497c9661e374b9c51899ef0f87388" - integrity sha512-PF4GDel8q3kkreVXKLAGNpHKilXsZ6xuu+mOQMHWHLPNyjiUBOr75sp5ZKJfmv1MCus5/DWUGcK9hm6qHEnXYw== - dependencies: - postcss "^7.0.14" - postcss-values-parser "^2.0.1" - -postcss-color-mod-function@^3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/postcss-color-mod-function/-/postcss-color-mod-function-3.0.3.tgz#816ba145ac11cc3cb6baa905a75a49f903e4d31d" - integrity sha512-YP4VG+xufxaVtzV6ZmhEtc+/aTXH3d0JLpnYfxqTvwZPbJhWqp8bSY3nfNzNRFLgB4XSaBA82OE4VjOOKpCdVQ== - dependencies: - "@csstools/convert-colors" "^1.4.0" - postcss "^7.0.2" - postcss-values-parser "^2.0.0" - -postcss-color-rebeccapurple@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-color-rebeccapurple/-/postcss-color-rebeccapurple-4.0.1.tgz#c7a89be872bb74e45b1e3022bfe5748823e6de77" - integrity sha512-aAe3OhkS6qJXBbqzvZth2Au4V3KieR5sRQ4ptb2b2O8wgvB3SJBsdG+jsn2BZbbwekDG8nTfcCNKcSfe/lEy8g== - dependencies: - postcss "^7.0.2" - postcss-values-parser "^2.0.0" - -postcss-colormin@^4.0.3: - version "4.0.3" - resolved "https://registry.yarnpkg.com/postcss-colormin/-/postcss-colormin-4.0.3.tgz#ae060bce93ed794ac71264f08132d550956bd381" - integrity sha512-WyQFAdDZpExQh32j0U0feWisZ0dmOtPl44qYmJKkq9xFWY3p+4qnRzCHeNrkeRhwPHz9bQ3mo0/yVkaply0MNw== - dependencies: - browserslist "^4.0.0" - color "^3.0.0" - has "^1.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-convert-values@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-convert-values/-/postcss-convert-values-4.0.1.tgz#ca3813ed4da0f812f9d43703584e449ebe189a7f" - integrity sha512-Kisdo1y77KUC0Jmn0OXU/COOJbzM8cImvw1ZFsBgBgMgb1iL23Zs/LXRe3r+EZqM3vGYKdQ2YJVQ5VkJI+zEJQ== - dependencies: - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-custom-media@^7.0.8: - version "7.0.8" - resolved "https://registry.yarnpkg.com/postcss-custom-media/-/postcss-custom-media-7.0.8.tgz#fffd13ffeffad73621be5f387076a28b00294e0c" - integrity sha512-c9s5iX0Ge15o00HKbuRuTqNndsJUbaXdiNsksnVH8H4gdc+zbLzr/UasOwNG6CTDpLFekVY4672eWdiiWu2GUg== - dependencies: - postcss "^7.0.14" - -postcss-custom-properties@^8.0.11: - version "8.0.11" - resolved "https://registry.yarnpkg.com/postcss-custom-properties/-/postcss-custom-properties-8.0.11.tgz#2d61772d6e92f22f5e0d52602df8fae46fa30d97" - integrity sha512-nm+o0eLdYqdnJ5abAJeXp4CEU1c1k+eB2yMCvhgzsds/e0umabFrN6HoTy/8Q4K5ilxERdl/JD1LO5ANoYBeMA== - dependencies: - postcss "^7.0.17" - postcss-values-parser "^2.0.1" - -postcss-custom-selectors@^5.1.2: - version "5.1.2" - resolved "https://registry.yarnpkg.com/postcss-custom-selectors/-/postcss-custom-selectors-5.1.2.tgz#64858c6eb2ecff2fb41d0b28c9dd7b3db4de7fba" - integrity sha512-DSGDhqinCqXqlS4R7KGxL1OSycd1lydugJ1ky4iRXPHdBRiozyMHrdu0H3o7qNOCiZwySZTUI5MV0T8QhCLu+w== - dependencies: - postcss "^7.0.2" - postcss-selector-parser "^5.0.0-rc.3" - -postcss-dir-pseudo-class@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/postcss-dir-pseudo-class/-/postcss-dir-pseudo-class-5.0.0.tgz#6e3a4177d0edb3abcc85fdb6fbb1c26dabaeaba2" - integrity sha512-3pm4oq8HYWMZePJY+5ANriPs3P07q+LW6FAdTlkFH2XqDdP4HeeJYMOzn0HYLhRSjBO3fhiqSwwU9xEULSrPgw== - dependencies: - postcss "^7.0.2" - postcss-selector-parser "^5.0.0-rc.3" - -postcss-discard-comments@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-discard-comments/-/postcss-discard-comments-4.0.2.tgz#1fbabd2c246bff6aaad7997b2b0918f4d7af4033" - integrity sha512-RJutN259iuRf3IW7GZyLM5Sw4GLTOH8FmsXBnv8Ab/Tc2k4SR4qbV4DNbyyY4+Sjo362SyDmW2DQ7lBSChrpkg== - dependencies: - postcss "^7.0.0" - -postcss-discard-duplicates@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-discard-duplicates/-/postcss-discard-duplicates-4.0.2.tgz#3fe133cd3c82282e550fc9b239176a9207b784eb" - integrity sha512-ZNQfR1gPNAiXZhgENFfEglF93pciw0WxMkJeVmw8eF+JZBbMD7jp6C67GqJAXVZP2BWbOztKfbsdmMp/k8c6oQ== - dependencies: - postcss "^7.0.0" - -postcss-discard-empty@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-discard-empty/-/postcss-discard-empty-4.0.1.tgz#c8c951e9f73ed9428019458444a02ad90bb9f765" - integrity sha512-B9miTzbznhDjTfjvipfHoqbWKwd0Mj+/fL5s1QOz06wufguil+Xheo4XpOnc4NqKYBCNqqEzgPv2aPBIJLox0w== - dependencies: - postcss "^7.0.0" - -postcss-discard-overridden@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-discard-overridden/-/postcss-discard-overridden-4.0.1.tgz#652aef8a96726f029f5e3e00146ee7a4e755ff57" - integrity sha512-IYY2bEDD7g1XM1IDEsUT4//iEYCxAmP5oDSFMVU/JVvT7gh+l4fmjciLqGgwjdWpQIdb0Che2VX00QObS5+cTg== - dependencies: - postcss "^7.0.0" - -postcss-double-position-gradients@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/postcss-double-position-gradients/-/postcss-double-position-gradients-1.0.0.tgz#fc927d52fddc896cb3a2812ebc5df147e110522e" - integrity sha512-G+nV8EnQq25fOI8CH/B6krEohGWnF5+3A6H/+JEpOncu5dCnkS1QQ6+ct3Jkaepw1NGVqqOZH6lqrm244mCftA== - dependencies: - postcss "^7.0.5" - postcss-values-parser "^2.0.0" - -postcss-env-function@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/postcss-env-function/-/postcss-env-function-2.0.2.tgz#0f3e3d3c57f094a92c2baf4b6241f0b0da5365d7" - integrity sha512-rwac4BuZlITeUbiBq60h/xbLzXY43qOsIErngWa4l7Mt+RaSkT7QBjXVGTcBHupykkblHMDrBFh30zchYPaOUw== - dependencies: - postcss "^7.0.2" - postcss-values-parser "^2.0.0" - -postcss-focus-visible@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/postcss-focus-visible/-/postcss-focus-visible-4.0.0.tgz#477d107113ade6024b14128317ade2bd1e17046e" - integrity sha512-Z5CkWBw0+idJHSV6+Bgf2peDOFf/x4o+vX/pwcNYrWpXFrSfTkQ3JQ1ojrq9yS+upnAlNRHeg8uEwFTgorjI8g== - dependencies: - postcss "^7.0.2" - -postcss-focus-within@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/postcss-focus-within/-/postcss-focus-within-3.0.0.tgz#763b8788596cee9b874c999201cdde80659ef680" - integrity sha512-W0APui8jQeBKbCGZudW37EeMCjDeVxKgiYfIIEo8Bdh5SpB9sxds/Iq8SEuzS0Q4YFOlG7EPFulbbxujpkrV2w== - dependencies: - postcss "^7.0.2" - -postcss-font-variant@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-font-variant/-/postcss-font-variant-4.0.1.tgz#42d4c0ab30894f60f98b17561eb5c0321f502641" - integrity sha512-I3ADQSTNtLTTd8uxZhtSOrTCQ9G4qUVKPjHiDk0bV75QSxXjVWiJVJ2VLdspGUi9fbW9BcjKJoRvxAH1pckqmA== - dependencies: - postcss "^7.0.2" - -postcss-gap-properties@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/postcss-gap-properties/-/postcss-gap-properties-2.0.0.tgz#431c192ab3ed96a3c3d09f2ff615960f902c1715" - integrity sha512-QZSqDaMgXCHuHTEzMsS2KfVDOq7ZFiknSpkrPJY6jmxbugUPTuSzs/vuE5I3zv0WAS+3vhrlqhijiprnuQfzmg== - dependencies: - postcss "^7.0.2" - -postcss-image-set-function@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/postcss-image-set-function/-/postcss-image-set-function-3.0.1.tgz#28920a2f29945bed4c3198d7df6496d410d3f288" - integrity sha512-oPTcFFip5LZy8Y/whto91L9xdRHCWEMs3e1MdJxhgt4jy2WYXfhkng59fH5qLXSCPN8k4n94p1Czrfe5IOkKUw== - dependencies: - postcss "^7.0.2" - postcss-values-parser "^2.0.0" - -postcss-initial@^3.0.0: - version "3.0.4" - resolved "https://registry.yarnpkg.com/postcss-initial/-/postcss-initial-3.0.4.tgz#9d32069a10531fe2ecafa0b6ac750ee0bc7efc53" - integrity sha512-3RLn6DIpMsK1l5UUy9jxQvoDeUN4gP939tDcKUHD/kM8SGSKbFAnvkpFpj3Bhtz3HGk1jWY5ZNWX6mPta5M9fg== - dependencies: - postcss "^7.0.2" - -postcss-lab-function@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/postcss-lab-function/-/postcss-lab-function-2.0.1.tgz#bb51a6856cd12289ab4ae20db1e3821ef13d7d2e" - integrity sha512-whLy1IeZKY+3fYdqQFuDBf8Auw+qFuVnChWjmxm/UhHWqNHZx+B99EwxTvGYmUBqe3Fjxs4L1BoZTJmPu6usVg== - dependencies: - "@csstools/convert-colors" "^1.4.0" - postcss "^7.0.2" - postcss-values-parser "^2.0.0" - -postcss-load-config@^2.0.0: - version "2.1.2" - resolved "https://registry.yarnpkg.com/postcss-load-config/-/postcss-load-config-2.1.2.tgz#c5ea504f2c4aef33c7359a34de3573772ad7502a" - integrity sha512-/rDeGV6vMUo3mwJZmeHfEDvwnTKKqQ0S7OHUi/kJvvtx3aWtyWG2/0ZWnzCt2keEclwN6Tf0DST2v9kITdOKYw== - dependencies: - cosmiconfig "^5.0.0" - import-cwd "^2.0.0" - -postcss-loader@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/postcss-loader/-/postcss-loader-3.0.0.tgz#6b97943e47c72d845fa9e03f273773d4e8dd6c2d" - integrity sha512-cLWoDEY5OwHcAjDnkyRQzAXfs2jrKjXpO/HQFcc5b5u/r7aa471wdmChmwfnv7x2u840iat/wi0lQ5nbRgSkUA== - dependencies: - loader-utils "^1.1.0" - postcss "^7.0.0" - postcss-load-config "^2.0.0" - schema-utils "^1.0.0" - -postcss-logical@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/postcss-logical/-/postcss-logical-3.0.0.tgz#2495d0f8b82e9f262725f75f9401b34e7b45d5b5" - integrity sha512-1SUKdJc2vuMOmeItqGuNaC+N8MzBWFWEkAnRnLpFYj1tGGa7NqyVBujfRtgNa2gXR+6RkGUiB2O5Vmh7E2RmiA== - dependencies: - postcss "^7.0.2" - -postcss-media-minmax@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/postcss-media-minmax/-/postcss-media-minmax-4.0.0.tgz#b75bb6cbc217c8ac49433e12f22048814a4f5ed5" - integrity sha512-fo9moya6qyxsjbFAYl97qKO9gyre3qvbMnkOZeZwlsW6XYFsvs2DMGDlchVLfAd8LHPZDxivu/+qW2SMQeTHBw== - dependencies: - postcss "^7.0.2" - -postcss-merge-longhand@^4.0.11: - version "4.0.11" - resolved "https://registry.yarnpkg.com/postcss-merge-longhand/-/postcss-merge-longhand-4.0.11.tgz#62f49a13e4a0ee04e7b98f42bb16062ca2549e24" - integrity sha512-alx/zmoeXvJjp7L4mxEMjh8lxVlDFX1gqWHzaaQewwMZiVhLo42TEClKaeHbRf6J7j82ZOdTJ808RtN0ZOZwvw== - dependencies: - css-color-names "0.0.4" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - stylehacks "^4.0.0" - -postcss-merge-rules@^4.0.3: - version "4.0.3" - resolved "https://registry.yarnpkg.com/postcss-merge-rules/-/postcss-merge-rules-4.0.3.tgz#362bea4ff5a1f98e4075a713c6cb25aefef9a650" - integrity sha512-U7e3r1SbvYzO0Jr3UT/zKBVgYYyhAz0aitvGIYOYK5CPmkNih+WDSsS5tvPrJ8YMQYlEMvsZIiqmn7HdFUaeEQ== - dependencies: - browserslist "^4.0.0" - caniuse-api "^3.0.0" - cssnano-util-same-parent "^4.0.0" - postcss "^7.0.0" - postcss-selector-parser "^3.0.0" - vendors "^1.0.0" - -postcss-minify-font-values@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-minify-font-values/-/postcss-minify-font-values-4.0.2.tgz#cd4c344cce474343fac5d82206ab2cbcb8afd5a6" - integrity sha512-j85oO6OnRU9zPf04+PZv1LYIYOprWm6IA6zkXkrJXyRveDEuQggG6tvoy8ir8ZwjLxLuGfNkCZEQG7zan+Hbtg== - dependencies: - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-minify-gradients@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-minify-gradients/-/postcss-minify-gradients-4.0.2.tgz#93b29c2ff5099c535eecda56c4aa6e665a663471" - integrity sha512-qKPfwlONdcf/AndP1U8SJ/uzIJtowHlMaSioKzebAXSG4iJthlWC9iSWznQcX4f66gIWX44RSA841HTHj3wK+Q== - dependencies: - cssnano-util-get-arguments "^4.0.0" - is-color-stop "^1.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-minify-params@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-minify-params/-/postcss-minify-params-4.0.2.tgz#6b9cef030c11e35261f95f618c90036d680db874" - integrity sha512-G7eWyzEx0xL4/wiBBJxJOz48zAKV2WG3iZOqVhPet/9geefm/Px5uo1fzlHu+DOjT+m0Mmiz3jkQzVHe6wxAWg== - dependencies: - alphanum-sort "^1.0.0" - browserslist "^4.0.0" - cssnano-util-get-arguments "^4.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - uniqs "^2.0.0" - -postcss-minify-selectors@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-minify-selectors/-/postcss-minify-selectors-4.0.2.tgz#e2e5eb40bfee500d0cd9243500f5f8ea4262fbd8" - integrity sha512-D5S1iViljXBj9kflQo4YutWnJmwm8VvIsU1GeXJGiG9j8CIg9zs4voPMdQDUmIxetUOh60VilsNzCiAFTOqu3g== - dependencies: - alphanum-sort "^1.0.0" - has "^1.0.0" - postcss "^7.0.0" - postcss-selector-parser "^3.0.0" - -postcss-modules-extract-imports@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-2.0.0.tgz#818719a1ae1da325f9832446b01136eeb493cd7e" - integrity sha512-LaYLDNS4SG8Q5WAWqIJgdHPJrDDr/Lv775rMBFUbgjTz6j34lUznACHcdRWroPvXANP2Vj7yNK57vp9eFqzLWQ== - dependencies: - postcss "^7.0.5" - -postcss-modules-local-by-default@^3.0.2: - version "3.0.3" - resolved "https://registry.yarnpkg.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-3.0.3.tgz#bb14e0cc78279d504dbdcbfd7e0ca28993ffbbb0" - integrity sha512-e3xDq+LotiGesympRlKNgaJ0PCzoUIdpH0dj47iWAui/kyTgh3CiAr1qP54uodmJhl6p9rN6BoNcdEDVJx9RDw== - dependencies: - icss-utils "^4.1.1" - postcss "^7.0.32" - postcss-selector-parser "^6.0.2" - postcss-value-parser "^4.1.0" - -postcss-modules-scope@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/postcss-modules-scope/-/postcss-modules-scope-2.2.0.tgz#385cae013cc7743f5a7d7602d1073a89eaae62ee" - integrity sha512-YyEgsTMRpNd+HmyC7H/mh3y+MeFWevy7V1evVhJWewmMbjDHIbZbOXICC2y+m1xI1UVfIT1HMW/O04Hxyu9oXQ== - dependencies: - postcss "^7.0.6" - postcss-selector-parser "^6.0.0" - -postcss-modules-values@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/postcss-modules-values/-/postcss-modules-values-3.0.0.tgz#5b5000d6ebae29b4255301b4a3a54574423e7f10" - integrity sha512-1//E5jCBrZ9DmRX+zCtmQtRSV6PV42Ix7Bzj9GbwJceduuf7IqP8MgeTXuRDHOWj2m0VzZD5+roFWDuU8RQjcg== - dependencies: - icss-utils "^4.0.0" - postcss "^7.0.6" - -postcss-nesting@^7.0.0: - version "7.0.1" - resolved "https://registry.yarnpkg.com/postcss-nesting/-/postcss-nesting-7.0.1.tgz#b50ad7b7f0173e5b5e3880c3501344703e04c052" - integrity sha512-FrorPb0H3nuVq0Sff7W2rnc3SmIcruVC6YwpcS+k687VxyxO33iE1amna7wHuRVzM8vfiYofXSBHNAZ3QhLvYg== - dependencies: - postcss "^7.0.2" - -postcss-normalize-charset@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-normalize-charset/-/postcss-normalize-charset-4.0.1.tgz#8b35add3aee83a136b0471e0d59be58a50285dd4" - integrity sha512-gMXCrrlWh6G27U0hF3vNvR3w8I1s2wOBILvA87iNXaPvSNo5uZAMYsZG7XjCUf1eVxuPfyL4TJ7++SGZLc9A3g== - dependencies: - postcss "^7.0.0" - -postcss-normalize-display-values@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-normalize-display-values/-/postcss-normalize-display-values-4.0.2.tgz#0dbe04a4ce9063d4667ed2be476bb830c825935a" - integrity sha512-3F2jcsaMW7+VtRMAqf/3m4cPFhPD3EFRgNs18u+k3lTJJlVe7d0YPO+bnwqo2xg8YiRpDXJI2u8A0wqJxMsQuQ== - dependencies: - cssnano-util-get-match "^4.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-normalize-positions@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-normalize-positions/-/postcss-normalize-positions-4.0.2.tgz#05f757f84f260437378368a91f8932d4b102917f" - integrity sha512-Dlf3/9AxpxE+NF1fJxYDeggi5WwV35MXGFnnoccP/9qDtFrTArZ0D0R+iKcg5WsUd8nUYMIl8yXDCtcrT8JrdA== - dependencies: - cssnano-util-get-arguments "^4.0.0" - has "^1.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-normalize-repeat-style@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-4.0.2.tgz#c4ebbc289f3991a028d44751cbdd11918b17910c" - integrity sha512-qvigdYYMpSuoFs3Is/f5nHdRLJN/ITA7huIoCyqqENJe9PvPmLhNLMu7QTjPdtnVf6OcYYO5SHonx4+fbJE1+Q== - dependencies: - cssnano-util-get-arguments "^4.0.0" - cssnano-util-get-match "^4.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-normalize-string@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-normalize-string/-/postcss-normalize-string-4.0.2.tgz#cd44c40ab07a0c7a36dc5e99aace1eca4ec2690c" - integrity sha512-RrERod97Dnwqq49WNz8qo66ps0swYZDSb6rM57kN2J+aoyEAJfZ6bMx0sx/F9TIEX0xthPGCmeyiam/jXif0eA== - dependencies: - has "^1.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-normalize-timing-functions@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-4.0.2.tgz#8e009ca2a3949cdaf8ad23e6b6ab99cb5e7d28d9" - integrity sha512-acwJY95edP762e++00Ehq9L4sZCEcOPyaHwoaFOhIwWCDfik6YvqsYNxckee65JHLKzuNSSmAdxwD2Cud1Z54A== - dependencies: - cssnano-util-get-match "^4.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-normalize-unicode@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-normalize-unicode/-/postcss-normalize-unicode-4.0.1.tgz#841bd48fdcf3019ad4baa7493a3d363b52ae1cfb" - integrity sha512-od18Uq2wCYn+vZ/qCOeutvHjB5jm57ToxRaMeNuf0nWVHaP9Hua56QyMF6fs/4FSUnVIw0CBPsU0K4LnBPwYwg== - dependencies: - browserslist "^4.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-normalize-url@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-normalize-url/-/postcss-normalize-url-4.0.1.tgz#10e437f86bc7c7e58f7b9652ed878daaa95faae1" - integrity sha512-p5oVaF4+IHwu7VpMan/SSpmpYxcJMtkGppYf0VbdH5B6hN8YNmVyJLuY9FmLQTzY3fag5ESUUHDqM+heid0UVA== - dependencies: - is-absolute-url "^2.0.0" - normalize-url "^3.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-normalize-whitespace@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-normalize-whitespace/-/postcss-normalize-whitespace-4.0.2.tgz#bf1d4070fe4fcea87d1348e825d8cc0c5faa7d82" - integrity sha512-tO8QIgrsI3p95r8fyqKV+ufKlSHh9hMJqACqbv2XknufqEDhDvbguXGBBqxw9nsQoXWf0qOqppziKJKHMD4GtA== - dependencies: - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-ordered-values@^4.1.2: - version "4.1.2" - resolved "https://registry.yarnpkg.com/postcss-ordered-values/-/postcss-ordered-values-4.1.2.tgz#0cf75c820ec7d5c4d280189559e0b571ebac0eee" - integrity sha512-2fCObh5UanxvSxeXrtLtlwVThBvHn6MQcu4ksNT2tsaV2Fg76R2CV98W7wNSlX+5/pFwEyaDwKLLoEV7uRybAw== - dependencies: - cssnano-util-get-arguments "^4.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-overflow-shorthand@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/postcss-overflow-shorthand/-/postcss-overflow-shorthand-2.0.0.tgz#31ecf350e9c6f6ddc250a78f0c3e111f32dd4c30" - integrity sha512-aK0fHc9CBNx8jbzMYhshZcEv8LtYnBIRYQD5i7w/K/wS9c2+0NSR6B3OVMu5y0hBHYLcMGjfU+dmWYNKH0I85g== - dependencies: - postcss "^7.0.2" - -postcss-page-break@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/postcss-page-break/-/postcss-page-break-2.0.0.tgz#add52d0e0a528cabe6afee8b46e2abb277df46bf" - integrity sha512-tkpTSrLpfLfD9HvgOlJuigLuk39wVTbbd8RKcy8/ugV2bNBUW3xU+AIqyxhDrQr1VUj1RmyJrBn1YWrqUm9zAQ== - dependencies: - postcss "^7.0.2" - -postcss-place@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-place/-/postcss-place-4.0.1.tgz#e9f39d33d2dc584e46ee1db45adb77ca9d1dcc62" - integrity sha512-Zb6byCSLkgRKLODj/5mQugyuj9bvAAw9LqJJjgwz5cYryGeXfFZfSXoP1UfveccFmeq0b/2xxwcTEVScnqGxBg== - dependencies: - postcss "^7.0.2" - postcss-values-parser "^2.0.0" - -postcss-preset-env@^6.7.0: - version "6.7.0" - resolved "https://registry.yarnpkg.com/postcss-preset-env/-/postcss-preset-env-6.7.0.tgz#c34ddacf8f902383b35ad1e030f178f4cdf118a5" - integrity sha512-eU4/K5xzSFwUFJ8hTdTQzo2RBLbDVt83QZrAvI07TULOkmyQlnYlpwep+2yIK+K+0KlZO4BvFcleOCCcUtwchg== - dependencies: - autoprefixer "^9.6.1" - browserslist "^4.6.4" - caniuse-lite "^1.0.30000981" - css-blank-pseudo "^0.1.4" - css-has-pseudo "^0.10.0" - css-prefers-color-scheme "^3.1.1" - cssdb "^4.4.0" - postcss "^7.0.17" - postcss-attribute-case-insensitive "^4.0.1" - postcss-color-functional-notation "^2.0.1" - postcss-color-gray "^5.0.0" - postcss-color-hex-alpha "^5.0.3" - postcss-color-mod-function "^3.0.3" - postcss-color-rebeccapurple "^4.0.1" - postcss-custom-media "^7.0.8" - postcss-custom-properties "^8.0.11" - postcss-custom-selectors "^5.1.2" - postcss-dir-pseudo-class "^5.0.0" - postcss-double-position-gradients "^1.0.0" - postcss-env-function "^2.0.2" - postcss-focus-visible "^4.0.0" - postcss-focus-within "^3.0.0" - postcss-font-variant "^4.0.0" - postcss-gap-properties "^2.0.0" - postcss-image-set-function "^3.0.1" - postcss-initial "^3.0.0" - postcss-lab-function "^2.0.1" - postcss-logical "^3.0.0" - postcss-media-minmax "^4.0.0" - postcss-nesting "^7.0.0" - postcss-overflow-shorthand "^2.0.0" - postcss-page-break "^2.0.0" - postcss-place "^4.0.1" - postcss-pseudo-class-any-link "^6.0.0" - postcss-replace-overflow-wrap "^3.0.0" - postcss-selector-matches "^4.0.0" - postcss-selector-not "^4.0.0" - -postcss-pseudo-class-any-link@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/postcss-pseudo-class-any-link/-/postcss-pseudo-class-any-link-6.0.0.tgz#2ed3eed393b3702879dec4a87032b210daeb04d1" - integrity sha512-lgXW9sYJdLqtmw23otOzrtbDXofUdfYzNm4PIpNE322/swES3VU9XlXHeJS46zT2onFO7V1QFdD4Q9LiZj8mew== - dependencies: - postcss "^7.0.2" - postcss-selector-parser "^5.0.0-rc.3" - -postcss-reduce-initial@^4.0.3: - version "4.0.3" - resolved "https://registry.yarnpkg.com/postcss-reduce-initial/-/postcss-reduce-initial-4.0.3.tgz#7fd42ebea5e9c814609639e2c2e84ae270ba48df" - integrity sha512-gKWmR5aUulSjbzOfD9AlJiHCGH6AEVLaM0AV+aSioxUDd16qXP1PCh8d1/BGVvpdWn8k/HiK7n6TjeoXN1F7DA== - dependencies: - browserslist "^4.0.0" - caniuse-api "^3.0.0" - has "^1.0.0" - postcss "^7.0.0" - -postcss-reduce-transforms@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-reduce-transforms/-/postcss-reduce-transforms-4.0.2.tgz#17efa405eacc6e07be3414a5ca2d1074681d4e29" - integrity sha512-EEVig1Q2QJ4ELpJXMZR8Vt5DQx8/mo+dGWSR7vWXqcob2gQLyQGsionYcGKATXvQzMPn6DSN1vTN7yFximdIAg== - dependencies: - cssnano-util-get-match "^4.0.0" - has "^1.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-replace-overflow-wrap@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/postcss-replace-overflow-wrap/-/postcss-replace-overflow-wrap-3.0.0.tgz#61b360ffdaedca84c7c918d2b0f0d0ea559ab01c" - integrity sha512-2T5hcEHArDT6X9+9dVSPQdo7QHzG4XKclFT8rU5TzJPDN7RIRTbO9c4drUISOVemLj03aezStHCR2AIcr8XLpw== - dependencies: - postcss "^7.0.2" - -postcss-selector-matches@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/postcss-selector-matches/-/postcss-selector-matches-4.0.0.tgz#71c8248f917ba2cc93037c9637ee09c64436fcff" - integrity sha512-LgsHwQR/EsRYSqlwdGzeaPKVT0Ml7LAT6E75T8W8xLJY62CE4S/l03BWIt3jT8Taq22kXP08s2SfTSzaraoPww== - dependencies: - balanced-match "^1.0.0" - postcss "^7.0.2" - -postcss-selector-not@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-selector-not/-/postcss-selector-not-4.0.1.tgz#263016eef1cf219e0ade9a913780fc1f48204cbf" - integrity sha512-YolvBgInEK5/79C+bdFMyzqTg6pkYqDbzZIST/PDMqa/o3qtXenD05apBG2jLgT0/BQ77d4U2UK12jWpilqMAQ== - dependencies: - balanced-match "^1.0.0" - postcss "^7.0.2" - -postcss-selector-parser@^3.0.0: - version "3.1.2" - resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz#b310f5c4c0fdaf76f94902bbaa30db6aa84f5270" - integrity sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA== - dependencies: - dot-prop "^5.2.0" - indexes-of "^1.0.1" - uniq "^1.0.1" - -postcss-selector-parser@^5.0.0-rc.3, postcss-selector-parser@^5.0.0-rc.4: - version "5.0.0" - resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-5.0.0.tgz#249044356697b33b64f1a8f7c80922dddee7195c" - integrity sha512-w+zLE5Jhg6Liz8+rQOWEAwtwkyqpfnmsinXjXg6cY7YIONZZtgvE0v2O0uhQBs0peNomOJwWRKt6JBfTdTd3OQ== - dependencies: - cssesc "^2.0.0" - indexes-of "^1.0.1" - uniq "^1.0.1" - -postcss-selector-parser@^6.0.0, postcss-selector-parser@^6.0.2: - version "6.0.5" - resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.5.tgz#042d74e137db83e6f294712096cb413f5aa612c4" - integrity sha512-aFYPoYmXbZ1V6HZaSvat08M97A8HqO6Pjz+PiNpw/DhuRrC72XWAdp3hL6wusDCN31sSmcZyMGa2hZEuX+Xfhg== - dependencies: - cssesc "^3.0.0" - util-deprecate "^1.0.2" - -postcss-svgo@^4.0.3: - version "4.0.3" - resolved "https://registry.yarnpkg.com/postcss-svgo/-/postcss-svgo-4.0.3.tgz#343a2cdbac9505d416243d496f724f38894c941e" - integrity sha512-NoRbrcMWTtUghzuKSoIm6XV+sJdvZ7GZSc3wdBN0W19FTtp2ko8NqLsgoh/m9CzNhU3KLPvQmjIwtaNFkaFTvw== - dependencies: - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - svgo "^1.0.0" - -postcss-unique-selectors@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-unique-selectors/-/postcss-unique-selectors-4.0.1.tgz#9446911f3289bfd64c6d680f073c03b1f9ee4bac" - integrity sha512-+JanVaryLo9QwZjKrmJgkI4Fn8SBgRO6WXQBJi7KiAVPlmxikB5Jzc4EvXMT2H0/m0RjrVVm9rGNhZddm/8Spg== - dependencies: - alphanum-sort "^1.0.0" - postcss "^7.0.0" - uniqs "^2.0.0" - -postcss-value-parser@^3.0.0: - version "3.3.1" - resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz#9ff822547e2893213cf1c30efa51ac5fd1ba8281" - integrity sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ== - -postcss-value-parser@^4.0.2, postcss-value-parser@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz#443f6a20ced6481a2bda4fa8532a6e55d789a2cb" - integrity sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ== - -postcss-values-parser@^2.0.0, postcss-values-parser@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/postcss-values-parser/-/postcss-values-parser-2.0.1.tgz#da8b472d901da1e205b47bdc98637b9e9e550e5f" - integrity sha512-2tLuBsA6P4rYTNKCXYG/71C7j1pU6pK503suYOmn4xYrQIzW+opD+7FAFNuGSdZC/3Qfy334QbeMu7MEb8gOxg== - dependencies: - flatten "^1.0.2" - indexes-of "^1.0.1" - uniq "^1.0.1" - -postcss@^7.0.0, postcss@^7.0.1, postcss@^7.0.14, postcss@^7.0.17, postcss@^7.0.2, postcss@^7.0.27, postcss@^7.0.32, postcss@^7.0.5, postcss@^7.0.6: - version "7.0.35" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.35.tgz#d2be00b998f7f211d8a276974079f2e92b970e24" - integrity sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg== - dependencies: - chalk "^2.4.2" - source-map "^0.6.1" - supports-color "^6.1.0" - -prepend-http@^1.0.0: - version "1.0.4" - resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-1.0.4.tgz#d4f4562b0ce3696e41ac52d0e002e57a635dc6dc" - integrity sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw= - -prepend-http@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-2.0.0.tgz#e92434bfa5ea8c19f41cdfd401d741a3c819d897" - integrity sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc= - -pretty-error@^2.1.1: - version "2.1.2" - resolved "https://registry.yarnpkg.com/pretty-error/-/pretty-error-2.1.2.tgz#be89f82d81b1c86ec8fdfbc385045882727f93b6" - integrity sha512-EY5oDzmsX5wvuynAByrmY0P0hcp+QpnAKbJng2A2MPjVKXCxrDSUkzghVJ4ZGPIv+JC4gX8fPUWscC0RtjsWGw== - dependencies: - lodash "^4.17.20" - renderkid "^2.0.4" - -pretty-time@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/pretty-time/-/pretty-time-1.1.0.tgz#ffb7429afabb8535c346a34e41873adf3d74dd0e" - integrity sha512-28iF6xPQrP8Oa6uxE6a1biz+lWeTOAPKggvjB8HAs6nVMKZwf5bG++632Dx614hIWgUPkgivRfG+a8uAXGTIbA== - -prism-react-renderer@^1.1.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/prism-react-renderer/-/prism-react-renderer-1.2.0.tgz#5ad4f90c3e447069426c8a53a0eafde60909cdf4" - integrity sha512-GHqzxLYImx1iKN1jJURcuRoA/0ygCcNhfGw1IT8nPIMzarmKQ3Nc+JcG0gi8JXQzuh0C5ShE4npMIoqNin40hg== - -prismjs@^1.20.0: - version "1.23.0" - resolved "https://registry.yarnpkg.com/prismjs/-/prismjs-1.23.0.tgz#d3b3967f7d72440690497652a9d40ff046067f33" - integrity sha512-c29LVsqOaLbBHuIbsTxaKENh1N2EQBOHaWv7gkHN4dgRbxSREqDnDbtFJYdpPauS4YCplMSNCABQ6Eeor69bAA== - optionalDependencies: - clipboard "^2.0.0" - -process-nextick-args@~2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" - integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== - -process@^0.11.10: - version "0.11.10" - resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" - integrity sha1-czIwDoQBYb2j5podHZGn1LwW8YI= - -promise-inflight@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/promise-inflight/-/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3" - integrity sha1-mEcocL8igTL8vdhoEputEsPAKeM= - -promise@^7.1.1: - version "7.3.1" - resolved "https://registry.yarnpkg.com/promise/-/promise-7.3.1.tgz#064b72602b18f90f29192b8b1bc418ffd1ebd3bf" - integrity sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg== - dependencies: - asap "~2.0.3" - -prop-types@^15.5.0, prop-types@^15.6.2, prop-types@^15.7.2: - version "15.7.2" - resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.7.2.tgz#52c41e75b8c87e72b9d9360e0206b99dcbffa6c5" - integrity sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ== - dependencies: - loose-envify "^1.4.0" - object-assign "^4.1.1" - react-is "^16.8.1" - -property-information@^5.0.0, property-information@^5.3.0: - version "5.6.0" - resolved "https://registry.yarnpkg.com/property-information/-/property-information-5.6.0.tgz#61675545fb23002f245c6540ec46077d4da3ed69" - integrity sha512-YUHSPk+A30YPv+0Qf8i9Mbfe/C0hdPXk1s1jPVToV8pk8BQtpw10ct89Eo7OWkutrwqvT0eicAxlOg3dOAu8JA== - dependencies: - xtend "^4.0.0" - -proxy-addr@~2.0.5: - version "2.0.6" - resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.6.tgz#fdc2336505447d3f2f2c638ed272caf614bbb2bf" - integrity sha512-dh/frvCBVmSsDYzw6n926jv974gddhkFPfiN8hPOi30Wax25QZyZEGveluCgliBnqmuM+UJmBErbAUFIoDbjOw== - dependencies: - forwarded "~0.1.2" - ipaddr.js "1.9.1" - -prr@~1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/prr/-/prr-1.0.1.tgz#d3fc114ba06995a45ec6893f484ceb1d78f5f476" - integrity sha1-0/wRS6BplaRexok/SEzrHXj19HY= - -public-encrypt@^4.0.0: - version "4.0.3" - resolved "https://registry.yarnpkg.com/public-encrypt/-/public-encrypt-4.0.3.tgz#4fcc9d77a07e48ba7527e7cbe0de33d0701331e0" - integrity sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q== - dependencies: - bn.js "^4.1.0" - browserify-rsa "^4.0.0" - create-hash "^1.1.0" - parse-asn1 "^5.0.0" - randombytes "^2.0.1" - safe-buffer "^5.1.2" - -pump@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/pump/-/pump-2.0.1.tgz#12399add6e4cf7526d973cbc8b5ce2e2908b3909" - integrity sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA== - dependencies: - end-of-stream "^1.1.0" - once "^1.3.1" - -pump@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" - integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww== - dependencies: - end-of-stream "^1.1.0" - once "^1.3.1" - -pumpify@^1.3.3: - version "1.5.1" - resolved "https://registry.yarnpkg.com/pumpify/-/pumpify-1.5.1.tgz#36513be246ab27570b1a374a5ce278bfd74370ce" - integrity sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ== - dependencies: - duplexify "^3.6.0" - inherits "^2.0.3" - pump "^2.0.0" - -punycode@1.3.2: - version "1.3.2" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d" - integrity sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0= - -punycode@^1.2.4, punycode@^1.3.2: - version "1.4.1" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" - integrity sha1-wNWmOycYgArY4esPpSachN1BhF4= - -punycode@^2.1.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" - integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== - -pupa@^2.0.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/pupa/-/pupa-2.1.1.tgz#f5e8fd4afc2c5d97828faa523549ed8744a20d62" - integrity sha512-l1jNAspIBSFqbT+y+5FosojNpVpF94nlI+wDUpqP9enwOTfHx9f0gh5nB96vl+6yTpsJsypeNrwfzPrKuHB41A== - dependencies: - escape-goat "^2.0.0" - -pure-color@^1.2.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/pure-color/-/pure-color-1.3.0.tgz#1fe064fb0ac851f0de61320a8bf796836422f33e" - integrity sha1-H+Bk+wrIUfDeYTIKi/eWg2Qi8z4= - -q@^1.1.2: - version "1.5.1" - resolved "https://registry.yarnpkg.com/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7" - integrity sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc= - -qs@6.7.0: - version "6.7.0" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.7.0.tgz#41dc1a015e3d581f1621776be31afb2876a9b1bc" - integrity sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ== - -query-string@^4.1.0: - version "4.3.4" - resolved "https://registry.yarnpkg.com/query-string/-/query-string-4.3.4.tgz#bbb693b9ca915c232515b228b1a02b609043dbeb" - integrity sha1-u7aTucqRXCMlFbIosaArYJBD2+s= - dependencies: - object-assign "^4.1.0" - strict-uri-encode "^1.0.0" - -querystring-es3@^0.2.0: - version "0.2.1" - resolved "https://registry.yarnpkg.com/querystring-es3/-/querystring-es3-0.2.1.tgz#9ec61f79049875707d69414596fd907a4d711e73" - integrity sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM= - -querystring@0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" - integrity sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA= - -querystringify@^2.1.1: - version "2.2.0" - resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-2.2.0.tgz#3345941b4153cb9d082d8eee4cda2016a9aef7f6" - integrity sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ== - -queue-microtask@^1.2.2: - version "1.2.3" - resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" - integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== - -randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5, randombytes@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" - integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== - dependencies: - safe-buffer "^5.1.0" - -randomfill@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/randomfill/-/randomfill-1.0.4.tgz#c92196fc86ab42be983f1bf31778224931d61458" - integrity sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw== - dependencies: - randombytes "^2.0.5" - safe-buffer "^5.1.0" - -range-parser@1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.0.tgz#f49be6b487894ddc40dcc94a322f611092e00d5e" - integrity sha1-9JvmtIeJTdxA3MlKMi9hEJLgDV4= - -range-parser@^1.2.1, range-parser@~1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" - integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== - -raw-body@2.4.0: - version "2.4.0" - resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.4.0.tgz#a1ce6fb9c9bc356ca52e89256ab59059e13d0332" - integrity sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q== - dependencies: - bytes "3.1.0" - http-errors "1.7.2" - iconv-lite "0.4.24" - unpipe "1.0.0" - -rc@^1.2.8: - version "1.2.8" - resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" - integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw== - dependencies: - deep-extend "^0.6.0" - ini "~1.3.0" - minimist "^1.2.0" - strip-json-comments "~2.0.1" - -react-base16-styling@^0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/react-base16-styling/-/react-base16-styling-0.6.0.tgz#ef2156d66cf4139695c8a167886cb69ea660792c" - integrity sha1-7yFW1mz0E5aVyKFniGy2nqZgeSw= - dependencies: - base16 "^1.0.0" - lodash.curry "^4.0.1" - lodash.flow "^3.3.0" - pure-color "^1.2.0" - -react-dev-utils@^10.2.1: - version "10.2.1" - resolved "https://registry.yarnpkg.com/react-dev-utils/-/react-dev-utils-10.2.1.tgz#f6de325ae25fa4d546d09df4bb1befdc6dd19c19" - integrity sha512-XxTbgJnYZmxuPtY3y/UV0D8/65NKkmaia4rXzViknVnZeVlklSh8u6TnaEYPfAi/Gh1TP4mEOXHI6jQOPbeakQ== - dependencies: - "@babel/code-frame" "7.8.3" - address "1.1.2" - browserslist "4.10.0" - chalk "2.4.2" - cross-spawn "7.0.1" - detect-port-alt "1.1.6" - escape-string-regexp "2.0.0" - filesize "6.0.1" - find-up "4.1.0" - fork-ts-checker-webpack-plugin "3.1.1" - global-modules "2.0.0" - globby "8.0.2" - gzip-size "5.1.1" - immer "1.10.0" - inquirer "7.0.4" - is-root "2.1.0" - loader-utils "1.2.3" - open "^7.0.2" - pkg-up "3.1.0" - react-error-overlay "^6.0.7" - recursive-readdir "2.2.2" - shell-quote "1.7.2" - strip-ansi "6.0.0" - text-table "0.2.0" - -react-dom@^16.8.4: - version "16.14.0" - resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-16.14.0.tgz#7ad838ec29a777fb3c75c3a190f661cf92ab8b89" - integrity sha512-1gCeQXDLoIqMgqD3IO2Ah9bnf0w9kzhwN5q4FGnHZ67hBm9yePzB5JJAIQCc8x3pFnNlwFq4RidZggNAAkzWWw== - dependencies: - loose-envify "^1.1.0" - object-assign "^4.1.1" - prop-types "^15.6.2" - scheduler "^0.19.1" - -react-error-overlay@^6.0.7: - version "6.0.9" - resolved "https://registry.yarnpkg.com/react-error-overlay/-/react-error-overlay-6.0.9.tgz#3c743010c9359608c375ecd6bc76f35d93995b0a" - integrity sha512-nQTTcUu+ATDbrSD1BZHr5kgSD4oF8OFjxun8uAaL8RwPBacGBNPf/yAuVVdx17N8XNzRDMrZ9XcKZHCjPW+9ew== - -react-fast-compare@^3.1.1: - version "3.2.0" - resolved "https://registry.yarnpkg.com/react-fast-compare/-/react-fast-compare-3.2.0.tgz#641a9da81b6a6320f270e89724fb45a0b39e43bb" - integrity sha512-rtGImPZ0YyLrscKI9xTpV8psd6I8VAtjKCzQDlzyDvqJA8XOW78TXYQwNRNd8g8JZnDu8q9Fu/1v4HPAVwVdHA== - -react-helmet@^6.0.0-beta: - version "6.1.0" - resolved "https://registry.yarnpkg.com/react-helmet/-/react-helmet-6.1.0.tgz#a750d5165cb13cf213e44747502652e794468726" - integrity sha512-4uMzEY9nlDlgxr61NL3XbKRy1hEkXmKNXhjbAIOVw5vcFrsdYbH2FEwcNyWvWinl103nXgzYNlns9ca+8kFiWw== - dependencies: - object-assign "^4.1.1" - prop-types "^15.7.2" - react-fast-compare "^3.1.1" - react-side-effect "^2.1.0" - -react-is@^16.6.0, react-is@^16.7.0, react-is@^16.8.1: - version "16.13.1" - resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4" - integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== - -react-json-view@^1.19.1: - version "1.21.3" - resolved "https://registry.yarnpkg.com/react-json-view/-/react-json-view-1.21.3.tgz#f184209ee8f1bf374fb0c41b0813cff54549c475" - integrity sha512-13p8IREj9/x/Ye4WI/JpjhoIwuzEgUAtgJZNBJckfzJt1qyh24BdTm6UQNGnyTq9dapQdrqvquZTo3dz1X6Cjw== - dependencies: - flux "^4.0.1" - react-base16-styling "^0.6.0" - react-lifecycles-compat "^3.0.4" - react-textarea-autosize "^8.3.2" - -react-lifecycles-compat@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz#4f1a273afdfc8f3488a8c516bfda78f872352362" - integrity sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA== - -react-loadable-ssr-addon@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/react-loadable-ssr-addon/-/react-loadable-ssr-addon-0.3.0.tgz#ae9b2d3b11721930f8d8255476d288c0e9f9290f" - integrity sha512-E+lnmDakV0k6ut6R2J77vurwCOwTKEwKlHs9S62G8ez+ujecLPcqjt3YAU8M58kIGjp2QjFlZ7F9QWkq/mr6Iw== - dependencies: - "@babel/runtime" "^7.10.3" - -react-loadable@^5.5.0: - version "5.5.0" - resolved "https://registry.yarnpkg.com/react-loadable/-/react-loadable-5.5.0.tgz#582251679d3da86c32aae2c8e689c59f1196d8c4" - integrity sha512-C8Aui0ZpMd4KokxRdVAm2bQtI03k2RMRNzOB+IipV3yxFTSVICv7WoUr5L9ALB5BmKO1iHgZtWM8EvYG83otdg== - dependencies: - prop-types "^15.5.0" - -react-router-config@^5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/react-router-config/-/react-router-config-5.1.1.tgz#0f4263d1a80c6b2dc7b9c1902c9526478194a988" - integrity sha512-DuanZjaD8mQp1ppHjgnnUnyOlqYXZVjnov/JzFhjLEwd3Z4dYjMSnqrEzzGThH47vpCOqPPwJM2FtthLeJ8Pbg== - dependencies: - "@babel/runtime" "^7.1.2" - -react-router-dom@^5.1.2: - version "5.2.0" - resolved "https://registry.yarnpkg.com/react-router-dom/-/react-router-dom-5.2.0.tgz#9e65a4d0c45e13289e66c7b17c7e175d0ea15662" - integrity sha512-gxAmfylo2QUjcwxI63RhQ5G85Qqt4voZpUXSEqCwykV0baaOTQDR1f0PmY8AELqIyVc0NEZUj0Gov5lNGcXgsA== - dependencies: - "@babel/runtime" "^7.1.2" - history "^4.9.0" - loose-envify "^1.3.1" - prop-types "^15.6.2" - react-router "5.2.0" - tiny-invariant "^1.0.2" - tiny-warning "^1.0.0" - -react-router@5.2.0, react-router@^5.1.2: - version "5.2.0" - resolved "https://registry.yarnpkg.com/react-router/-/react-router-5.2.0.tgz#424e75641ca8747fbf76e5ecca69781aa37ea293" - integrity sha512-smz1DUuFHRKdcJC0jobGo8cVbhO3x50tCL4icacOlcwDOEQPq4TMqwx3sY1TP+DvtTgz4nm3thuo7A+BK2U0Dw== - dependencies: - "@babel/runtime" "^7.1.2" - history "^4.9.0" - hoist-non-react-statics "^3.1.0" - loose-envify "^1.3.1" - mini-create-react-context "^0.4.0" - path-to-regexp "^1.7.0" - prop-types "^15.6.2" - react-is "^16.6.0" - tiny-invariant "^1.0.2" - tiny-warning "^1.0.0" - -react-side-effect@^2.1.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/react-side-effect/-/react-side-effect-2.1.1.tgz#66c5701c3e7560ab4822a4ee2742dee215d72eb3" - integrity sha512-2FoTQzRNTncBVtnzxFOk2mCpcfxQpenBMbk5kSVBg5UcPqV9fRbgY2zhb7GTWWOlpFmAxhClBDlIq8Rsubz1yQ== - -react-textarea-autosize@^8.3.2: - version "8.3.2" - resolved "https://registry.yarnpkg.com/react-textarea-autosize/-/react-textarea-autosize-8.3.2.tgz#4f9374d357b0a6f6469956726722549124a1b2db" - integrity sha512-JrMWVgQSaExQByP3ggI1eA8zF4mF0+ddVuX7acUeK2V7bmrpjVOY72vmLz2IXFJSAXoY3D80nEzrn0GWajWK3Q== - dependencies: - "@babel/runtime" "^7.10.2" - use-composed-ref "^1.0.0" - use-latest "^1.0.0" - -react-toggle@^4.1.1: - version "4.1.2" - resolved "https://registry.yarnpkg.com/react-toggle/-/react-toggle-4.1.2.tgz#b00500832f925ad524356d909821821ae39f6c52" - integrity sha512-4Ohw31TuYQdhWfA6qlKafeXx3IOH7t4ZHhmRdwsm1fQREwOBGxJT+I22sgHqR/w8JRdk+AeMCJXPImEFSrNXow== - dependencies: - classnames "^2.2.5" - -react@^16.8.4: - version "16.14.0" - resolved "https://registry.yarnpkg.com/react/-/react-16.14.0.tgz#94d776ddd0aaa37da3eda8fc5b6b18a4c9a3114d" - integrity sha512-0X2CImDkJGApiAlcf0ODKIneSwBPhqJawOa5wCtKbu7ZECrmS26NvtSILynQ66cgkT/RJ4LidJOc3bUESwmU8g== - dependencies: - loose-envify "^1.1.0" - object-assign "^4.1.1" - prop-types "^15.6.2" - -"readable-stream@1 || 2", readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.3.3, readable-stream@^2.3.6, readable-stream@~2.3.6: - version "2.3.7" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57" - integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw== - dependencies: - core-util-is "~1.0.0" - inherits "~2.0.3" - isarray "~1.0.0" - process-nextick-args "~2.0.0" - safe-buffer "~5.1.1" - string_decoder "~1.1.1" - util-deprecate "~1.0.1" - -readable-stream@^3.0.6, readable-stream@^3.1.1, readable-stream@^3.6.0: - version "3.6.0" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198" - integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA== - dependencies: - inherits "^2.0.3" - string_decoder "^1.1.1" - util-deprecate "^1.0.1" - -readdirp@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.2.1.tgz#0e87622a3325aa33e892285caf8b4e846529a525" - integrity sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ== - dependencies: - graceful-fs "^4.1.11" - micromatch "^3.1.10" - readable-stream "^2.0.2" - -readdirp@~3.5.0: - version "3.5.0" - resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.5.0.tgz#9ba74c019b15d365278d2e91bb8c48d7b4d42c9e" - integrity sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ== - dependencies: - picomatch "^2.2.1" - -reading-time@^1.2.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/reading-time/-/reading-time-1.3.0.tgz#d13e74431589a4a9038669f24d5acbc08bbb015d" - integrity sha512-RJ8J5O6UvrclfZpcPSPuKusrdRfoY7uXXoYOOdeswZNtSkQaewT3919yz6RyloDBR+iwcUyz5zGOUjhgvfuv3g== - -rechoir@^0.6.2: - version "0.6.2" - resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.6.2.tgz#85204b54dba82d5742e28c96756ef43af50e3384" - integrity sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q= - dependencies: - resolve "^1.1.6" - -recursive-readdir@2.2.2: - version "2.2.2" - resolved "https://registry.yarnpkg.com/recursive-readdir/-/recursive-readdir-2.2.2.tgz#9946fb3274e1628de6e36b2f6714953b4845094f" - integrity sha512-nRCcW9Sj7NuZwa2XvH9co8NPeXUBhZP7CRKJtU+cS6PW9FpCIFoI5ib0NT1ZrbNuPoRy0ylyCaUL8Gih4LSyFg== - dependencies: - minimatch "3.0.4" - -regenerate-unicode-properties@^8.2.0: - version "8.2.0" - resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-8.2.0.tgz#e5de7111d655e7ba60c057dbe9ff37c87e65cdec" - integrity sha512-F9DjY1vKLo/tPePDycuH3dn9H1OTPIkVD9Kz4LODu+F2C75mgjAJ7x/gwy6ZcSNRAAkhNlJSOHRe8k3p+K9WhA== - dependencies: - regenerate "^1.4.0" - -regenerate@^1.4.0: - version "1.4.2" - resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.2.tgz#b9346d8827e8f5a32f7ba29637d398b69014848a" - integrity sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A== - -regenerator-runtime@^0.13.4: - version "0.13.7" - resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz#cac2dacc8a1ea675feaabaeb8ae833898ae46f55" - integrity sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew== - -regenerator-transform@^0.14.2: - version "0.14.5" - resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.14.5.tgz#c98da154683671c9c4dcb16ece736517e1b7feb4" - integrity sha512-eOf6vka5IO151Jfsw2NO9WpGX58W6wWmefK3I1zEGr0lOD0u8rwPaNqQL1aRxUaxLeKO3ArNh3VYg1KbaD+FFw== - dependencies: - "@babel/runtime" "^7.8.4" - -regex-not@^1.0.0, regex-not@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/regex-not/-/regex-not-1.0.2.tgz#1f4ece27e00b0b65e0247a6810e6a85d83a5752c" - integrity sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A== - dependencies: - extend-shallow "^3.0.2" - safe-regex "^1.1.0" - -regexp.prototype.flags@^1.2.0: - version "1.3.1" - resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.3.1.tgz#7ef352ae8d159e758c0eadca6f8fcb4eef07be26" - integrity sha512-JiBdRBq91WlY7uRJ0ds7R+dU02i6LKi8r3BuQhNXn+kmeLN+EfHhfjqMRis1zJxnlu88hq/4dx0P2OP3APRTOA== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.3" - -regexpu-core@^4.7.1: - version "4.7.1" - resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-4.7.1.tgz#2dea5a9a07233298fbf0db91fa9abc4c6e0f8ad6" - integrity sha512-ywH2VUraA44DZQuRKzARmw6S66mr48pQVva4LBeRhcOltJ6hExvWly5ZjFLYo67xbIxb6W1q4bAGtgfEl20zfQ== - dependencies: - regenerate "^1.4.0" - regenerate-unicode-properties "^8.2.0" - regjsgen "^0.5.1" - regjsparser "^0.6.4" - unicode-match-property-ecmascript "^1.0.4" - unicode-match-property-value-ecmascript "^1.2.0" - -registry-auth-token@^4.0.0: - version "4.2.1" - resolved "https://registry.yarnpkg.com/registry-auth-token/-/registry-auth-token-4.2.1.tgz#6d7b4006441918972ccd5fedcd41dc322c79b250" - integrity sha512-6gkSb4U6aWJB4SF2ZvLb76yCBjcvufXBqvvEx1HbmKPkutswjW1xNVRY0+daljIYRbogN7O0etYSlbiaEQyMyw== - dependencies: - rc "^1.2.8" - -registry-url@^5.0.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/registry-url/-/registry-url-5.1.0.tgz#e98334b50d5434b81136b44ec638d9c2009c5009" - integrity sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw== - dependencies: - rc "^1.2.8" - -regjsgen@^0.5.1: - version "0.5.2" - resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.5.2.tgz#92ff295fb1deecbf6ecdab2543d207e91aa33733" - integrity sha512-OFFT3MfrH90xIW8OOSyUrk6QHD5E9JOTeGodiJeBS3J6IwlgzJMNE/1bZklWz5oTg+9dCMyEetclvCVXOPoN3A== - -regjsparser@^0.6.4: - version "0.6.9" - resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.6.9.tgz#b489eef7c9a2ce43727627011429cf833a7183e6" - integrity sha512-ZqbNRz1SNjLAiYuwY0zoXW8Ne675IX5q+YHioAGbCw4X96Mjl2+dcX9B2ciaeyYjViDAfvIjFpQjJgLttTEERQ== - dependencies: - jsesc "~0.5.0" - -rehype-parse@^6.0.2: - version "6.0.2" - resolved "https://registry.yarnpkg.com/rehype-parse/-/rehype-parse-6.0.2.tgz#aeb3fdd68085f9f796f1d3137ae2b85a98406964" - integrity sha512-0S3CpvpTAgGmnz8kiCyFLGuW5yA4OQhyNTm/nwPopZ7+PI11WnGl1TTWTGv/2hPEe/g2jRLlhVVSsoDH8waRug== - dependencies: - hast-util-from-parse5 "^5.0.0" - parse5 "^5.0.0" - xtend "^4.0.0" - -relateurl@^0.2.7: - version "0.2.7" - resolved "https://registry.yarnpkg.com/relateurl/-/relateurl-0.2.7.tgz#54dbf377e51440aca90a4cd274600d3ff2d888a9" - integrity sha1-VNvzd+UUQKypCkzSdGANP/LYiKk= - -remark-admonitions@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/remark-admonitions/-/remark-admonitions-1.2.1.tgz#87caa1a442aa7b4c0cafa04798ed58a342307870" - integrity sha512-Ji6p68VDvD+H1oS95Fdx9Ar5WA2wcDA4kwrrhVU7fGctC6+d3uiMICu7w7/2Xld+lnU7/gi+432+rRbup5S8ow== - dependencies: - rehype-parse "^6.0.2" - unified "^8.4.2" - unist-util-visit "^2.0.1" - -remark-emoji@^2.1.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/remark-emoji/-/remark-emoji-2.2.0.tgz#1c702090a1525da5b80e15a8f963ef2c8236cac7" - integrity sha512-P3cj9s5ggsUvWw5fS2uzCHJMGuXYRb0NnZqYlNecewXt8QBU9n5vW3DUUKOhepS8F9CwdMx9B8a3i7pqFWAI5w== - dependencies: - emoticon "^3.2.0" - node-emoji "^1.10.0" - unist-util-visit "^2.0.3" - -remark-footnotes@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/remark-footnotes/-/remark-footnotes-2.0.0.tgz#9001c4c2ffebba55695d2dd80ffb8b82f7e6303f" - integrity sha512-3Clt8ZMH75Ayjp9q4CorNeyjwIxHFcTkaektplKGl2A1jNGEUey8cKL0ZC5vJwfcD5GFGsNLImLG/NGzWIzoMQ== - -remark-mdx@1.6.22: - version "1.6.22" - resolved "https://registry.yarnpkg.com/remark-mdx/-/remark-mdx-1.6.22.tgz#06a8dab07dcfdd57f3373af7f86bd0e992108bbd" - integrity sha512-phMHBJgeV76uyFkH4rvzCftLfKCr2RZuF+/gmVcaKrpsihyzmhXjA0BEMDaPTXG5y8qZOKPVo83NAOX01LPnOQ== - dependencies: - "@babel/core" "7.12.9" - "@babel/helper-plugin-utils" "7.10.4" - "@babel/plugin-proposal-object-rest-spread" "7.12.1" - "@babel/plugin-syntax-jsx" "7.12.1" - "@mdx-js/util" "1.6.22" - is-alphabetical "1.0.4" - remark-parse "8.0.3" - unified "9.2.0" - -remark-parse@8.0.3: - version "8.0.3" - resolved "https://registry.yarnpkg.com/remark-parse/-/remark-parse-8.0.3.tgz#9c62aa3b35b79a486454c690472906075f40c7e1" - integrity sha512-E1K9+QLGgggHxCQtLt++uXltxEprmWzNfg+MxpfHsZlrddKzZ/hZyWHDbK3/Ap8HJQqYJRXP+jHczdL6q6i85Q== - dependencies: - ccount "^1.0.0" - collapse-white-space "^1.0.2" - is-alphabetical "^1.0.0" - is-decimal "^1.0.0" - is-whitespace-character "^1.0.0" - is-word-character "^1.0.0" - markdown-escapes "^1.0.0" - parse-entities "^2.0.0" - repeat-string "^1.5.4" - state-toggle "^1.0.0" - trim "0.0.1" - trim-trailing-lines "^1.0.0" - unherit "^1.0.4" - unist-util-remove-position "^2.0.0" - vfile-location "^3.0.0" - xtend "^4.0.1" - -remark-squeeze-paragraphs@4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/remark-squeeze-paragraphs/-/remark-squeeze-paragraphs-4.0.0.tgz#76eb0e085295131c84748c8e43810159c5653ead" - integrity sha512-8qRqmL9F4nuLPIgl92XUuxI3pFxize+F1H0e/W3llTk0UsjJaj01+RrirkMw7P21RKe4X6goQhYRSvNWX+70Rw== - dependencies: - mdast-squeeze-paragraphs "^4.0.0" - -remove-trailing-separator@^1.0.1: - version "1.1.0" - resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" - integrity sha1-wkvOKig62tW8P1jg1IJJuSN52O8= - -renderkid@^2.0.4: - version "2.0.5" - resolved "https://registry.yarnpkg.com/renderkid/-/renderkid-2.0.5.tgz#483b1ac59c6601ab30a7a596a5965cabccfdd0a5" - integrity sha512-ccqoLg+HLOHq1vdfYNm4TBeaCDIi1FLt3wGojTDSvdewUv65oTmI3cnT2E4hRjl1gzKZIPK+KZrXzlUYKnR+vQ== - dependencies: - css-select "^2.0.2" - dom-converter "^0.2" - htmlparser2 "^3.10.1" - lodash "^4.17.20" - strip-ansi "^3.0.0" - -repeat-element@^1.1.2: - version "1.1.4" - resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.4.tgz#be681520847ab58c7568ac75fbfad28ed42d39e9" - integrity sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ== - -repeat-string@^1.5.4, repeat-string@^1.6.1: - version "1.6.1" - resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" - integrity sha1-jcrkcOHIirwtYA//Sndihtp15jc= - -require-directory@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" - integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I= - -"require-like@>= 0.1.1": - version "0.1.2" - resolved "https://registry.yarnpkg.com/require-like/-/require-like-0.1.2.tgz#ad6f30c13becd797010c468afa775c0c0a6b47fa" - integrity sha1-rW8wwTvs15cBDEaK+ndcDAprR/o= - -require-main-filename@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-2.0.0.tgz#d0b329ecc7cc0f61649f62215be69af54aa8989b" - integrity sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg== - -requires-port@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" - integrity sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8= - -resolve-cwd@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-2.0.0.tgz#00a9f7387556e27038eae232caa372a6a59b665a" - integrity sha1-AKn3OHVW4nA46uIyyqNypqWbZlo= - dependencies: - resolve-from "^3.0.0" - -resolve-from@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-3.0.0.tgz#b22c7af7d9d6881bc8b6e653335eebcb0a188748" - integrity sha1-six699nWiBvItuZTM17rywoYh0g= - -resolve-from@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" - integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== - -resolve-pathname@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/resolve-pathname/-/resolve-pathname-3.0.0.tgz#99d02224d3cf263689becbb393bc560313025dcd" - integrity sha512-C7rARubxI8bXFNB/hqcp/4iUeIXJhJZvFPFPiSPRnhU5UPxzMFIl+2E6yY6c4k9giDJAhtV+enfA+G89N6Csng== - -resolve-url@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" - integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo= - -resolve@^1.1.6, resolve@^1.14.2, resolve@^1.3.2: - version "1.20.0" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.20.0.tgz#629a013fb3f70755d6f0b7935cc1c2c5378b1975" - integrity sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A== - dependencies: - is-core-module "^2.2.0" - path-parse "^1.0.6" - -responselike@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/responselike/-/responselike-1.0.2.tgz#918720ef3b631c5642be068f15ade5a46f4ba1e7" - integrity sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec= - dependencies: - lowercase-keys "^1.0.0" - -restore-cursor@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-3.1.0.tgz#39f67c54b3a7a58cea5236d95cf0034239631f7e" - integrity sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA== - dependencies: - onetime "^5.1.0" - signal-exit "^3.0.2" - -ret@~0.1.10: - version "0.1.15" - resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc" - integrity sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg== - -retry@^0.12.0: - version "0.12.0" - resolved "https://registry.yarnpkg.com/retry/-/retry-0.12.0.tgz#1b42a6266a21f07421d1b0b54b7dc167b01c013b" - integrity sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs= - -reusify@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" - integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== - -rgb-regex@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/rgb-regex/-/rgb-regex-1.0.1.tgz#c0e0d6882df0e23be254a475e8edd41915feaeb1" - integrity sha1-wODWiC3w4jviVKR16O3UGRX+rrE= - -rgba-regex@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/rgba-regex/-/rgba-regex-1.0.0.tgz#43374e2e2ca0968b0ef1523460b7d730ff22eeb3" - integrity sha1-QzdOLiyglosO8VI0YLfXMP8i7rM= - -rimraf@^2.5.4, rimraf@^2.6.3: - version "2.7.1" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" - integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== - dependencies: - glob "^7.1.3" - -rimraf@^3.0.0, rimraf@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" - integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== - dependencies: - glob "^7.1.3" - -ripemd160@^2.0.0, ripemd160@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.2.tgz#a1c1a6f624751577ba5d07914cbc92850585890c" - integrity sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA== - dependencies: - hash-base "^3.0.0" - inherits "^2.0.1" - -run-async@^2.2.0, run-async@^2.4.0: - version "2.4.1" - resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.4.1.tgz#8440eccf99ea3e70bd409d49aab88e10c189a455" - integrity sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ== - -run-parallel@^1.1.9: - version "1.2.0" - resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" - integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA== - dependencies: - queue-microtask "^1.2.2" - -run-queue@^1.0.0, run-queue@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/run-queue/-/run-queue-1.0.3.tgz#e848396f057d223f24386924618e25694161ec47" - integrity sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec= - dependencies: - aproba "^1.1.1" - -rx@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/rx/-/rx-4.1.0.tgz#a5f13ff79ef3b740fe30aa803fb09f98805d4782" - integrity sha1-pfE/957zt0D+MKqAP7CfmIBdR4I= - -rxjs@^6.5.3, rxjs@^6.6.0: - version "6.6.7" - resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.6.7.tgz#90ac018acabf491bf65044235d5863c4dab804c9" - integrity sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ== - dependencies: - tslib "^1.9.0" - -safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: - version "5.1.2" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" - integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== - -safe-buffer@>=5.1.0, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@^5.2.0, safe-buffer@~5.2.0: - version "5.2.1" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" - integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== - -safe-regex@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/safe-regex/-/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e" - integrity sha1-QKNmnzsHfR6UPURinhV91IAjvy4= - dependencies: - ret "~0.1.10" - -"safer-buffer@>= 2.1.2 < 3", safer-buffer@^2.1.0: - version "2.1.2" - resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" - integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== - -sax@^1.2.4, sax@~1.2.4: - version "1.2.4" - resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" - integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw== - -scheduler@^0.19.1: - version "0.19.1" - resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.19.1.tgz#4f3e2ed2c1a7d65681f4c854fa8c5a1ccb40f196" - integrity sha512-n/zwRWRYSUj0/3g/otKDRPMh6qv2SYMWNq85IEa8iZyAv8od9zDYpGSnpBEjNgcMNq6Scbu5KfIPxNF72R/2EA== - dependencies: - loose-envify "^1.1.0" - object-assign "^4.1.1" - -schema-utils@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-1.0.0.tgz#0b79a93204d7b600d4b2850d1f66c2a34951c770" - integrity sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g== - dependencies: - ajv "^6.1.0" - ajv-errors "^1.0.0" - ajv-keywords "^3.1.0" - -schema-utils@^2.0.0, schema-utils@^2.6.5, schema-utils@^2.7.0: - version "2.7.1" - resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-2.7.1.tgz#1ca4f32d1b24c590c203b8e7a50bf0ea4cd394d7" - integrity sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg== - dependencies: - "@types/json-schema" "^7.0.5" - ajv "^6.12.4" - ajv-keywords "^3.5.2" - -schema-utils@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-3.0.0.tgz#67502f6aa2b66a2d4032b4279a2944978a0913ef" - integrity sha512-6D82/xSzO094ajanoOSbe4YvXWMfn2A//8Y1+MUqFAJul5Bs+yn36xbK9OtNDcRVSBJ9jjeoXftM6CfztsjOAA== - dependencies: - "@types/json-schema" "^7.0.6" - ajv "^6.12.5" - ajv-keywords "^3.5.2" - -section-matter@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/section-matter/-/section-matter-1.0.0.tgz#e9041953506780ec01d59f292a19c7b850b84167" - integrity sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA== - dependencies: - extend-shallow "^2.0.1" - kind-of "^6.0.0" - -select-hose@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/select-hose/-/select-hose-2.0.0.tgz#625d8658f865af43ec962bfc376a37359a4994ca" - integrity sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo= - -select@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/select/-/select-1.1.2.tgz#0e7350acdec80b1108528786ec1d4418d11b396d" - integrity sha1-DnNQrN7ICxEIUoeG7B1EGNEbOW0= - -selfsigned@^1.10.8: - version "1.10.11" - resolved "https://registry.yarnpkg.com/selfsigned/-/selfsigned-1.10.11.tgz#24929cd906fe0f44b6d01fb23999a739537acbe9" - integrity sha512-aVmbPOfViZqOZPgRBT0+3u4yZFHpmnIghLMlAcb5/xhp5ZtB/RVnKhz5vl2M32CLXAqR4kha9zfhNg0Lf/sxKA== - dependencies: - node-forge "^0.10.0" - -semver-diff@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/semver-diff/-/semver-diff-3.1.1.tgz#05f77ce59f325e00e2706afd67bb506ddb1ca32b" - integrity sha512-GX0Ix/CJcHyB8c4ykpHGIAvLyOwOobtM/8d+TQkAd81/bEjgPHrfba41Vpesr7jX/t8Uh+R3EX9eAS5be+jQYg== - dependencies: - semver "^6.3.0" - -semver@7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.0.0.tgz#5f3ca35761e47e05b206c6daff2cf814f0316b8e" - integrity sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A== - -semver@^5.4.1, semver@^5.5.0, semver@^5.6.0: - version "5.7.1" - resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" - integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== - -semver@^6.0.0, semver@^6.1.1, semver@^6.1.2, semver@^6.2.0, semver@^6.3.0: - version "6.3.0" - resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" - integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== - -send@0.17.1: - version "0.17.1" - resolved "https://registry.yarnpkg.com/send/-/send-0.17.1.tgz#c1d8b059f7900f7466dd4938bdc44e11ddb376c8" - integrity sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg== - dependencies: - debug "2.6.9" - depd "~1.1.2" - destroy "~1.0.4" - encodeurl "~1.0.2" - escape-html "~1.0.3" - etag "~1.8.1" - fresh "0.5.2" - http-errors "~1.7.2" - mime "1.6.0" - ms "2.1.1" - on-finished "~2.3.0" - range-parser "~1.2.1" - statuses "~1.5.0" - -serialize-javascript@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-4.0.0.tgz#b525e1238489a5ecfc42afacc3fe99e666f4b1aa" - integrity sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw== - dependencies: - randombytes "^2.1.0" - -serialize-javascript@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-5.0.1.tgz#7886ec848049a462467a97d3d918ebb2aaf934f4" - integrity sha512-SaaNal9imEO737H2c05Og0/8LUXG7EnsZyMa8MzkmuHoELfT6txuj0cMqRj6zfPKnmQ1yasR4PCJc8x+M4JSPA== - dependencies: - randombytes "^2.1.0" - -serve-handler@^6.1.3: - version "6.1.3" - resolved "https://registry.yarnpkg.com/serve-handler/-/serve-handler-6.1.3.tgz#1bf8c5ae138712af55c758477533b9117f6435e8" - integrity sha512-FosMqFBNrLyeiIDvP1zgO6YoTzFYHxLDEIavhlmQ+knB2Z7l1t+kGLHkZIDN7UVWqQAmKI3D20A6F6jo3nDd4w== - dependencies: - bytes "3.0.0" - content-disposition "0.5.2" - fast-url-parser "1.1.3" - mime-types "2.1.18" - minimatch "3.0.4" - path-is-inside "1.0.2" - path-to-regexp "2.2.1" - range-parser "1.2.0" - -serve-index@^1.9.1: - version "1.9.1" - resolved "https://registry.yarnpkg.com/serve-index/-/serve-index-1.9.1.tgz#d3768d69b1e7d82e5ce050fff5b453bea12a9239" - integrity sha1-03aNabHn2C5c4FD/9bRTvqEqkjk= - dependencies: - accepts "~1.3.4" - batch "0.6.1" - debug "2.6.9" - escape-html "~1.0.3" - http-errors "~1.6.2" - mime-types "~2.1.17" - parseurl "~1.3.2" - -serve-static@1.14.1: - version "1.14.1" - resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.14.1.tgz#666e636dc4f010f7ef29970a88a674320898b2f9" - integrity sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg== - dependencies: - encodeurl "~1.0.2" - escape-html "~1.0.3" - parseurl "~1.3.3" - send "0.17.1" - -set-blocking@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" - integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc= - -set-value@^2.0.0, set-value@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/set-value/-/set-value-2.0.1.tgz#a18d40530e6f07de4228c7defe4227af8cad005b" - integrity sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw== - dependencies: - extend-shallow "^2.0.1" - is-extendable "^0.1.1" - is-plain-object "^2.0.3" - split-string "^3.0.1" - -setimmediate@^1.0.4, setimmediate@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" - integrity sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU= - -setprototypeof@1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.0.tgz#d0bd85536887b6fe7c0d818cb962d9d91c54e656" - integrity sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ== - -setprototypeof@1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.1.tgz#7e95acb24aa92f5885e0abef5ba131330d4ae683" - integrity sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw== - -sha.js@^2.4.0, sha.js@^2.4.8: - version "2.4.11" - resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.11.tgz#37a5cf0b81ecbc6943de109ba2960d1b26584ae7" - integrity sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ== - dependencies: - inherits "^2.0.1" - safe-buffer "^5.0.1" - -shebang-command@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" - integrity sha1-RKrGW2lbAzmJaMOfNj/uXer98eo= - dependencies: - shebang-regex "^1.0.0" - -shebang-command@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" - integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== - dependencies: - shebang-regex "^3.0.0" - -shebang-regex@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" - integrity sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM= - -shebang-regex@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" - integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== - -shell-quote@1.7.2: - version "1.7.2" - resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.7.2.tgz#67a7d02c76c9da24f99d20808fcaded0e0e04be2" - integrity sha512-mRz/m/JVscCrkMyPqHc/bczi3OQHkLTqXHEFu0zDhK/qfv3UcOA4SVmRCLmos4bhjr9ekVQubj/R7waKapmiQg== - -shelljs@^0.8.4: - version "0.8.4" - resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.8.4.tgz#de7684feeb767f8716b326078a8a00875890e3c2" - integrity sha512-7gk3UZ9kOfPLIAbslLzyWeGiEqx9e3rxwZM0KE6EL8GlGwjym9Mrlx5/p33bWTu9YG6vcS4MBxYZDHYr5lr8BQ== - dependencies: - glob "^7.0.0" - interpret "^1.0.0" - rechoir "^0.6.2" - -signal-exit@^3.0.0, signal-exit@^3.0.2: - version "3.0.3" - resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.3.tgz#a1410c2edd8f077b08b4e253c8eacfcaf057461c" - integrity sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA== - -simple-swizzle@^0.2.2: - version "0.2.2" - resolved "https://registry.yarnpkg.com/simple-swizzle/-/simple-swizzle-0.2.2.tgz#a4da6b635ffcccca33f70d17cb92592de95e557a" - integrity sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo= - dependencies: - is-arrayish "^0.3.1" - -sitemap@^3.2.2: - version "3.2.2" - resolved "https://registry.yarnpkg.com/sitemap/-/sitemap-3.2.2.tgz#3f77c358fa97b555c879e457098e39910095c62b" - integrity sha512-TModL/WU4m2q/mQcrDgNANn0P4LwprM9MMvG4hu5zP4c6IIKs2YLTu6nXXnNr8ODW/WFtxKggiJ1EGn2W0GNmg== - dependencies: - lodash.chunk "^4.2.0" - lodash.padstart "^4.6.1" - whatwg-url "^7.0.0" - xmlbuilder "^13.0.0" - -slash@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/slash/-/slash-1.0.0.tgz#c41f2f6c39fc16d1cd17ad4b5d896114ae470d55" - integrity sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU= - -slash@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" - integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== - -snapdragon-node@^2.0.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b" - integrity sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw== - dependencies: - define-property "^1.0.0" - isobject "^3.0.0" - snapdragon-util "^3.0.1" - -snapdragon-util@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/snapdragon-util/-/snapdragon-util-3.0.1.tgz#f956479486f2acd79700693f6f7b805e45ab56e2" - integrity sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ== - dependencies: - kind-of "^3.2.0" - -snapdragon@^0.8.1: - version "0.8.2" - resolved "https://registry.yarnpkg.com/snapdragon/-/snapdragon-0.8.2.tgz#64922e7c565b0e14204ba1aa7d6964278d25182d" - integrity sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg== - dependencies: - base "^0.11.1" - debug "^2.2.0" - define-property "^0.2.5" - extend-shallow "^2.0.1" - map-cache "^0.2.2" - source-map "^0.5.6" - source-map-resolve "^0.5.0" - use "^3.1.0" - -sockjs-client@^1.5.0: - version "1.5.1" - resolved "https://registry.yarnpkg.com/sockjs-client/-/sockjs-client-1.5.1.tgz#256908f6d5adfb94dabbdbd02c66362cca0f9ea6" - integrity sha512-VnVAb663fosipI/m6pqRXakEOw7nvd7TUgdr3PlR/8V2I95QIdwT8L4nMxhyU8SmDBHYXU1TOElaKOmKLfYzeQ== - dependencies: - debug "^3.2.6" - eventsource "^1.0.7" - faye-websocket "^0.11.3" - inherits "^2.0.4" - json3 "^3.3.3" - url-parse "^1.5.1" - -sockjs@^0.3.21: - version "0.3.21" - resolved "https://registry.yarnpkg.com/sockjs/-/sockjs-0.3.21.tgz#b34ffb98e796930b60a0cfa11904d6a339a7d417" - integrity sha512-DhbPFGpxjc6Z3I+uX07Id5ZO2XwYsWOrYjaSeieES78cq+JaJvVe5q/m1uvjIQhXinhIeCFRH6JgXe+mvVMyXw== - dependencies: - faye-websocket "^0.11.3" - uuid "^3.4.0" - websocket-driver "^0.7.4" - -sort-keys@^1.0.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/sort-keys/-/sort-keys-1.1.2.tgz#441b6d4d346798f1b4e49e8920adfba0e543f9ad" - integrity sha1-RBttTTRnmPG05J6JIK37oOVD+a0= - dependencies: - is-plain-obj "^1.0.0" - -source-list-map@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.1.tgz#3993bd873bfc48479cca9ea3a547835c7c154b34" - integrity sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw== - -source-map-resolve@^0.5.0: - version "0.5.3" - resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.3.tgz#190866bece7553e1f8f267a2ee82c606b5509a1a" - integrity sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw== - dependencies: - atob "^2.1.2" - decode-uri-component "^0.2.0" - resolve-url "^0.2.1" - source-map-url "^0.4.0" - urix "^0.1.0" - -source-map-support@~0.5.12, source-map-support@~0.5.19: - version "0.5.19" - resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.19.tgz#a98b62f86dcaf4f67399648c085291ab9e8fed61" - integrity sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw== - dependencies: - buffer-from "^1.0.0" - source-map "^0.6.0" - -source-map-url@^0.4.0: - version "0.4.1" - resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.1.tgz#0af66605a745a5a2f91cf1bbf8a7afbc283dec56" - integrity sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw== - -source-map@^0.5.0, source-map@^0.5.6: - version "0.5.7" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" - integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w= - -source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.0, source-map@~0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" - integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== - -source-map@^0.7.3, source-map@~0.7.2: - version "0.7.3" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.3.tgz#5302f8169031735226544092e64981f751750383" - integrity sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ== - -space-separated-tokens@^1.0.0: - version "1.1.5" - resolved "https://registry.yarnpkg.com/space-separated-tokens/-/space-separated-tokens-1.1.5.tgz#85f32c3d10d9682007e917414ddc5c26d1aa6899" - integrity sha512-q/JSVd1Lptzhf5bkYm4ob4iWPjx0KiRe3sRFBNrVqbJkFaBm5vbbowy1mymoPNLRa52+oadOhJ+K49wsSeSjTA== - -spdy-transport@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/spdy-transport/-/spdy-transport-3.0.0.tgz#00d4863a6400ad75df93361a1608605e5dcdcf31" - integrity sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw== - dependencies: - debug "^4.1.0" - detect-node "^2.0.4" - hpack.js "^2.1.6" - obuf "^1.1.2" - readable-stream "^3.0.6" - wbuf "^1.7.3" - -spdy@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/spdy/-/spdy-4.0.2.tgz#b74f466203a3eda452c02492b91fb9e84a27677b" - integrity sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA== - dependencies: - debug "^4.1.0" - handle-thing "^2.0.0" - http-deceiver "^1.2.7" - select-hose "^2.0.0" - spdy-transport "^3.0.0" - -split-string@^3.0.1, split-string@^3.0.2: - version "3.1.0" - resolved "https://registry.yarnpkg.com/split-string/-/split-string-3.1.0.tgz#7cb09dda3a86585705c64b39a6466038682e8fe2" - integrity sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw== - dependencies: - extend-shallow "^3.0.0" - -sprintf-js@~1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" - integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= - -ssri@^6.0.1: - version "6.0.2" - resolved "https://registry.yarnpkg.com/ssri/-/ssri-6.0.2.tgz#157939134f20464e7301ddba3e90ffa8f7728ac5" - integrity sha512-cepbSq/neFK7xB6A50KHN0xHDotYzq58wWCa5LeWqnPrHG8GzfEjO/4O8kpmcGW+oaxkvhEJCWgbgNk4/ZV93Q== - dependencies: - figgy-pudding "^3.5.1" - -ssri@^8.0.1: - version "8.0.1" - resolved "https://registry.yarnpkg.com/ssri/-/ssri-8.0.1.tgz#638e4e439e2ffbd2cd289776d5ca457c4f51a2af" - integrity sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ== - dependencies: - minipass "^3.1.1" - -stable@^0.1.8: - version "0.1.8" - resolved "https://registry.yarnpkg.com/stable/-/stable-0.1.8.tgz#836eb3c8382fe2936feaf544631017ce7d47a3cf" - integrity sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w== - -state-toggle@^1.0.0: - version "1.0.3" - resolved "https://registry.yarnpkg.com/state-toggle/-/state-toggle-1.0.3.tgz#e123b16a88e143139b09c6852221bc9815917dfe" - integrity sha512-d/5Z4/2iiCnHw6Xzghyhb+GcmF89bxwgXG60wjIiZaxnymbyOmI8Hk4VqHXiVVp6u2ysaskFfXg3ekCj4WNftQ== - -static-extend@^0.1.1: - version "0.1.2" - resolved "https://registry.yarnpkg.com/static-extend/-/static-extend-0.1.2.tgz#60809c39cbff55337226fd5e0b520f341f1fb5c6" - integrity sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY= - dependencies: - define-property "^0.2.5" - object-copy "^0.1.0" - -"statuses@>= 1.4.0 < 2", "statuses@>= 1.5.0 < 2", statuses@~1.5.0: - version "1.5.0" - resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" - integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow= - -std-env@^2.2.1: - version "2.3.0" - resolved "https://registry.yarnpkg.com/std-env/-/std-env-2.3.0.tgz#66d4a4a4d5224242ed8e43f5d65cfa9095216eee" - integrity sha512-4qT5B45+Kjef2Z6pE0BkskzsH0GO7GrND0wGlTM1ioUe3v0dGYx9ZJH0Aro/YyA8fqQ5EyIKDRjZojJYMFTflw== - dependencies: - ci-info "^3.0.0" - -stream-browserify@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/stream-browserify/-/stream-browserify-2.0.2.tgz#87521d38a44aa7ee91ce1cd2a47df0cb49dd660b" - integrity sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg== - dependencies: - inherits "~2.0.1" - readable-stream "^2.0.2" - -stream-each@^1.1.0: - version "1.2.3" - resolved "https://registry.yarnpkg.com/stream-each/-/stream-each-1.2.3.tgz#ebe27a0c389b04fbcc233642952e10731afa9bae" - integrity sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw== - dependencies: - end-of-stream "^1.1.0" - stream-shift "^1.0.0" - -stream-http@^2.7.2: - version "2.8.3" - resolved "https://registry.yarnpkg.com/stream-http/-/stream-http-2.8.3.tgz#b2d242469288a5a27ec4fe8933acf623de6514fc" - integrity sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw== - dependencies: - builtin-status-codes "^3.0.0" - inherits "^2.0.1" - readable-stream "^2.3.6" - to-arraybuffer "^1.0.0" - xtend "^4.0.0" - -stream-shift@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.1.tgz#d7088281559ab2778424279b0877da3c392d5a3d" - integrity sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ== - -strict-uri-encode@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz#279b225df1d582b1f54e65addd4352e18faa0713" - integrity sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM= - -string-width@^3.0.0, string-width@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-3.1.0.tgz#22767be21b62af1081574306f69ac51b62203961" - integrity sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w== - dependencies: - emoji-regex "^7.0.1" - is-fullwidth-code-point "^2.0.0" - strip-ansi "^5.1.0" - -string-width@^4.0.0, string-width@^4.1.0: - version "4.2.2" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.2.tgz#dafd4f9559a7585cfba529c6a0a4f73488ebd4c5" - integrity sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA== - dependencies: - emoji-regex "^8.0.0" - is-fullwidth-code-point "^3.0.0" - strip-ansi "^6.0.0" - -string.prototype.trimend@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz#e75ae90c2942c63504686c18b287b4a0b1a45f80" - integrity sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.3" - -string.prototype.trimstart@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz#b36399af4ab2999b4c9c648bd7a3fb2bb26feeed" - integrity sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.3" - -string_decoder@^1.0.0, string_decoder@^1.1.1: - version "1.3.0" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" - integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== - dependencies: - safe-buffer "~5.2.0" - -string_decoder@~1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" - integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== - dependencies: - safe-buffer "~5.1.0" - -stringify-object@^3.3.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/stringify-object/-/stringify-object-3.3.0.tgz#703065aefca19300d3ce88af4f5b3956d7556629" - integrity sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw== - dependencies: - get-own-enumerable-property-symbols "^3.0.0" - is-obj "^1.0.1" - is-regexp "^1.0.0" - -strip-ansi@6.0.0, strip-ansi@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.0.tgz#0b1571dd7669ccd4f3e06e14ef1eed26225ae532" - integrity sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w== - dependencies: - ansi-regex "^5.0.0" - -strip-ansi@^3.0.0, strip-ansi@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" - integrity sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8= - dependencies: - ansi-regex "^2.0.0" - -strip-ansi@^5.0.0, strip-ansi@^5.1.0, strip-ansi@^5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae" - integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA== - dependencies: - ansi-regex "^4.1.0" - -strip-bom-string@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/strip-bom-string/-/strip-bom-string-1.0.0.tgz#e5211e9224369fbb81d633a2f00044dc8cedad92" - integrity sha1-5SEekiQ2n7uB1jOi8ABE3IztrZI= - -strip-eof@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" - integrity sha1-u0P/VZim6wXYm1n80SnJgzE2Br8= - -strip-final-newline@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad" - integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== - -strip-json-comments@~2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" - integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo= - -style-to-object@0.3.0, style-to-object@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/style-to-object/-/style-to-object-0.3.0.tgz#b1b790d205991cc783801967214979ee19a76e46" - integrity sha512-CzFnRRXhzWIdItT3OmF8SQfWyahHhjq3HwcMNCNLn+N7klOOqPjMeG/4JSu77D7ypZdGvSzvkrbyeTMizz2VrA== - dependencies: - inline-style-parser "0.1.1" - -stylehacks@^4.0.0: - version "4.0.3" - resolved "https://registry.yarnpkg.com/stylehacks/-/stylehacks-4.0.3.tgz#6718fcaf4d1e07d8a1318690881e8d96726a71d5" - integrity sha512-7GlLk9JwlElY4Y6a/rmbH2MhVlTyVmiJd1PfTCqFaIBEGMYNsrO/v3SeGTdhBThLg4Z+NbOk/qFMwCa+J+3p/g== - dependencies: - browserslist "^4.0.0" - postcss "^7.0.0" - postcss-selector-parser "^3.0.0" - -supports-color@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" - integrity sha1-U10EXOa2Nj+kARcIRimZXp3zJMc= - -supports-color@^5.3.0: - version "5.5.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" - integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== - dependencies: - has-flag "^3.0.0" - -supports-color@^6.1.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-6.1.0.tgz#0764abc69c63d5ac842dd4867e8d025e880df8f3" - integrity sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ== - dependencies: - has-flag "^3.0.0" - -supports-color@^7.0.0, supports-color@^7.1.0: - version "7.2.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" - integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== - dependencies: - has-flag "^4.0.0" - -svg-parser@^2.0.2: - version "2.0.4" - resolved "https://registry.yarnpkg.com/svg-parser/-/svg-parser-2.0.4.tgz#fdc2e29e13951736140b76cb122c8ee6630eb6b5" - integrity sha512-e4hG1hRwoOdRb37cIMSgzNsxyzKfayW6VOflrwvR+/bzrkyxY/31WkbgnQpgtrNp1SdpJvpUAGTa/ZoiPNDuRQ== - -svgo@^1.0.0, svgo@^1.2.2: - version "1.3.2" - resolved "https://registry.yarnpkg.com/svgo/-/svgo-1.3.2.tgz#b6dc511c063346c9e415b81e43401145b96d4167" - integrity sha512-yhy/sQYxR5BkC98CY7o31VGsg014AKLEPxdfhora76l36hD9Rdy5NZA/Ocn6yayNPgSamYdtX2rFJdcv07AYVw== - dependencies: - chalk "^2.4.1" - coa "^2.0.2" - css-select "^2.0.0" - css-select-base-adapter "^0.1.1" - css-tree "1.0.0-alpha.37" - csso "^4.0.2" - js-yaml "^3.13.1" - mkdirp "~0.5.1" - object.values "^1.1.0" - sax "~1.2.4" - stable "^0.1.8" - unquote "~1.1.1" - util.promisify "~1.0.0" - -tapable@^1.0.0, tapable@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/tapable/-/tapable-1.1.3.tgz#a1fccc06b58db61fd7a45da2da44f5f3a3e67ba2" - integrity sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA== - -tar@^6.0.2: - version "6.1.0" - resolved "https://registry.yarnpkg.com/tar/-/tar-6.1.0.tgz#d1724e9bcc04b977b18d5c573b333a2207229a83" - integrity sha512-DUCttfhsnLCjwoDoFcI+B2iJgYa93vBnDUATYEeRx6sntCTdN01VnqsIuTlALXla/LWooNg0yEGeB+Y8WdFxGA== - dependencies: - chownr "^2.0.0" - fs-minipass "^2.0.0" - minipass "^3.0.0" - minizlib "^2.1.1" - mkdirp "^1.0.3" - yallist "^4.0.0" - -term-size@^2.1.0: - version "2.2.1" - resolved "https://registry.yarnpkg.com/term-size/-/term-size-2.2.1.tgz#2a6a54840432c2fb6320fea0f415531e90189f54" - integrity sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg== - -terser-webpack-plugin@^1.4.3: - version "1.4.5" - resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-1.4.5.tgz#a217aefaea330e734ffacb6120ec1fa312d6040b" - integrity sha512-04Rfe496lN8EYruwi6oPQkG0vo8C+HT49X687FZnpPF0qMAIHONI6HEXYPKDOE8e5HjXTyKfqRd/agHtH0kOtw== - dependencies: - cacache "^12.0.2" - find-cache-dir "^2.1.0" - is-wsl "^1.1.0" - schema-utils "^1.0.0" - serialize-javascript "^4.0.0" - source-map "^0.6.1" - terser "^4.1.2" - webpack-sources "^1.4.0" - worker-farm "^1.7.0" - -terser-webpack-plugin@^4.1.0: - version "4.2.3" - resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-4.2.3.tgz#28daef4a83bd17c1db0297070adc07fc8cfc6a9a" - integrity sha512-jTgXh40RnvOrLQNgIkwEKnQ8rmHjHK4u+6UBEi+W+FPmvb+uo+chJXntKe7/3lW5mNysgSWD60KyesnhW8D6MQ== - dependencies: - cacache "^15.0.5" - find-cache-dir "^3.3.1" - jest-worker "^26.5.0" - p-limit "^3.0.2" - schema-utils "^3.0.0" - serialize-javascript "^5.0.1" - source-map "^0.6.1" - terser "^5.3.4" - webpack-sources "^1.4.3" - -terser@^4.1.2, terser@^4.6.3: - version "4.8.0" - resolved "https://registry.yarnpkg.com/terser/-/terser-4.8.0.tgz#63056343d7c70bb29f3af665865a46fe03a0df17" - integrity sha512-EAPipTNeWsb/3wLPeup1tVPaXfIaU68xMnVdPafIL1TV05OhASArYyIfFvnvJCNrR2NIOvDVNNTFRa+Re2MWyw== - dependencies: - commander "^2.20.0" - source-map "~0.6.1" - source-map-support "~0.5.12" - -terser@^5.3.4: - version "5.7.0" - resolved "https://registry.yarnpkg.com/terser/-/terser-5.7.0.tgz#a761eeec206bc87b605ab13029876ead938ae693" - integrity sha512-HP5/9hp2UaZt5fYkuhNBR8YyRcT8juw8+uFbAme53iN9hblvKnLUTKkmwJG6ocWpIKf8UK4DoeWG4ty0J6S6/g== - dependencies: - commander "^2.20.0" - source-map "~0.7.2" - source-map-support "~0.5.19" - -text-table@0.2.0, text-table@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" - integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ= - -three@^0.125.0: - version "0.125.2" - resolved "https://registry.yarnpkg.com/three/-/three-0.125.2.tgz#dcba12749a2eb41522e15212b919cd3fbf729b12" - integrity sha512-7rIRO23jVKWcAPFdW/HREU2NZMGWPBZ4XwEMt0Ak0jwLUKVJhcKM55eCBWyGZq/KiQbeo1IeuAoo/9l2dzhTXA== - -through2@^2.0.0: - version "2.0.5" - resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.5.tgz#01c1e39eb31d07cb7d03a96a70823260b23132cd" - integrity sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ== - dependencies: - readable-stream "~2.3.6" - xtend "~4.0.1" - -through@^2.3.6: - version "2.3.8" - resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" - integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU= - -thunky@^1.0.2: - version "1.1.0" - resolved "https://registry.yarnpkg.com/thunky/-/thunky-1.1.0.tgz#5abaf714a9405db0504732bbccd2cedd9ef9537d" - integrity sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA== - -timers-browserify@^2.0.4: - version "2.0.12" - resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-2.0.12.tgz#44a45c11fbf407f34f97bccd1577c652361b00ee" - integrity sha512-9phl76Cqm6FhSX9Xe1ZUAMLtm1BLkKj2Qd5ApyWkXzsMRaA7dgr81kf4wJmQf/hAvg8EEyJxDo3du/0KlhPiKQ== - dependencies: - setimmediate "^1.0.4" - -timsort@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/timsort/-/timsort-0.3.0.tgz#405411a8e7e6339fe64db9a234de11dc31e02bd4" - integrity sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q= - -tiny-emitter@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/tiny-emitter/-/tiny-emitter-2.1.0.tgz#1d1a56edfc51c43e863cbb5382a72330e3555423" - integrity sha512-NB6Dk1A9xgQPMoGqC5CVXn123gWyte215ONT5Pp5a0yt4nlEoO1ZWeCwpncaekPHXO60i47ihFnZPiRPjRMq4Q== - -tiny-invariant@^1.0.2: - version "1.1.0" - resolved "https://registry.yarnpkg.com/tiny-invariant/-/tiny-invariant-1.1.0.tgz#634c5f8efdc27714b7f386c35e6760991d230875" - integrity sha512-ytxQvrb1cPc9WBEI/HSeYYoGD0kWnGEOR8RY6KomWLBVhqz0RgTwVO9dLrGz7dC+nN9llyI7OKAgRq8Vq4ZBSw== - -tiny-warning@^1.0.0, tiny-warning@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/tiny-warning/-/tiny-warning-1.0.3.tgz#94a30db453df4c643d0fd566060d60a875d84754" - integrity sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA== - -tmp@^0.0.33: - version "0.0.33" - resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" - integrity sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw== - dependencies: - os-tmpdir "~1.0.2" - -to-arraybuffer@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz#7d229b1fcc637e466ca081180836a7aabff83f43" - integrity sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M= - -to-fast-properties@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" - integrity sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4= - -to-object-path@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/to-object-path/-/to-object-path-0.3.0.tgz#297588b7b0e7e0ac08e04e672f85c1f4999e17af" - integrity sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68= - dependencies: - kind-of "^3.0.2" - -to-readable-stream@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/to-readable-stream/-/to-readable-stream-1.0.0.tgz#ce0aa0c2f3df6adf852efb404a783e77c0475771" - integrity sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q== - -to-regex-range@^2.1.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-2.1.1.tgz#7c80c17b9dfebe599e27367e0d4dd5590141db38" - integrity sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg= - dependencies: - is-number "^3.0.0" - repeat-string "^1.6.1" - -to-regex-range@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" - integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== - dependencies: - is-number "^7.0.0" - -to-regex@^3.0.1, to-regex@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/to-regex/-/to-regex-3.0.2.tgz#13cfdd9b336552f30b51f33a8ae1b42a7a7599ce" - integrity sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw== - dependencies: - define-property "^2.0.2" - extend-shallow "^3.0.2" - regex-not "^1.0.2" - safe-regex "^1.1.0" - -toidentifier@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.0.tgz#7e1be3470f1e77948bc43d94a3c8f4d7752ba553" - integrity sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw== - -tr46@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/tr46/-/tr46-1.0.1.tgz#a8b13fd6bfd2489519674ccde55ba3693b706d09" - integrity sha1-qLE/1r/SSJUZZ0zN5VujaTtwbQk= - dependencies: - punycode "^2.1.0" - -trim-trailing-lines@^1.0.0: - version "1.1.4" - resolved "https://registry.yarnpkg.com/trim-trailing-lines/-/trim-trailing-lines-1.1.4.tgz#bd4abbec7cc880462f10b2c8b5ce1d8d1ec7c2c0" - integrity sha512-rjUWSqnfTNrjbB9NQWfPMH/xRK1deHeGsHoVfpxJ++XeYXE0d6B1En37AHfw3jtfTU7dzMzZL2jjpe8Qb5gLIQ== - -trim@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/trim/-/trim-0.0.1.tgz#5858547f6b290757ee95cccc666fb50084c460dd" - integrity sha1-WFhUf2spB1fulczMZm+1AITEYN0= - -trough@^1.0.0: - version "1.0.5" - resolved "https://registry.yarnpkg.com/trough/-/trough-1.0.5.tgz#b8b639cefad7d0bb2abd37d433ff8293efa5f406" - integrity sha512-rvuRbTarPXmMb79SmzEp8aqXNKcK+y0XaB298IXueQ8I2PsrATcPBCSPyK/dDNa2iWOhKlfNnOjdAOTBU/nkFA== - -tryer@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/tryer/-/tryer-1.0.1.tgz#f2c85406800b9b0f74c9f7465b81eaad241252f8" - integrity sha512-c3zayb8/kWWpycWYg87P71E1S1ZL6b6IJxfb5fvsUgsf0S2MVGaDhDXXjDMpdCpfWXqptc+4mXwmiy1ypXqRAA== - -ts-essentials@^2.0.3: - version "2.0.12" - resolved "https://registry.yarnpkg.com/ts-essentials/-/ts-essentials-2.0.12.tgz#c9303f3d74f75fa7528c3d49b80e089ab09d8745" - integrity sha512-3IVX4nI6B5cc31/GFFE+i8ey/N2eA0CZDbo6n0yrz0zDX8ZJ8djmU1p+XRz7G3is0F3bB3pu2pAroFdAWQKU3w== - -ts-pnp@^1.1.6: - version "1.2.0" - resolved "https://registry.yarnpkg.com/ts-pnp/-/ts-pnp-1.2.0.tgz#a500ad084b0798f1c3071af391e65912c86bca92" - integrity sha512-csd+vJOb/gkzvcCHgTGSChYpy5f1/XKNsmvBGO4JXS+z1v2HobugDz4s1IeFXM3wZB44uczs+eazB5Q/ccdhQw== - -tslib@^1.9.0: - version "1.14.1" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" - integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== - -tslib@^2.0.3: - version "2.2.0" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.2.0.tgz#fb2c475977e35e241311ede2693cee1ec6698f5c" - integrity sha512-gS9GVHRU+RGn5KQM2rllAlR3dU6m7AcpJKdtH8gFvQiC4Otgk98XnmMU+nZenHt/+VhnBPWwgrJsyrdcw6i23w== - -tty-browserify@0.0.0: - version "0.0.0" - resolved "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.0.tgz#a157ba402da24e9bf957f9aa69d524eed42901a6" - integrity sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY= - -type-fest@^0.21.3: - version "0.21.3" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.21.3.tgz#d260a24b0198436e133fa26a524a6d65fa3b2e37" - integrity sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w== - -type-fest@^0.8.1: - version "0.8.1" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d" - integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA== - -type-is@~1.6.17, type-is@~1.6.18: - version "1.6.18" - resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131" - integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g== - dependencies: - media-typer "0.3.0" - mime-types "~2.1.24" - -typedarray-to-buffer@^3.1.5: - version "3.1.5" - resolved "https://registry.yarnpkg.com/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz#a97ee7a9ff42691b9f783ff1bc5112fe3fca9080" - integrity sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q== - dependencies: - is-typedarray "^1.0.0" - -typedarray@^0.0.6: - version "0.0.6" - resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" - integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= - -ua-parser-js@^0.7.18: - version "0.7.28" - resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.28.tgz#8ba04e653f35ce210239c64661685bf9121dec31" - integrity sha512-6Gurc1n//gjp9eQNXjD9O3M/sMwVtN5S8Lv9bvOYBfKfDNiIIhqiyi01vMBO45u4zkDE420w/e0se7Vs+sIg+g== - -unbox-primitive@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.1.tgz#085e215625ec3162574dc8859abee78a59b14471" - integrity sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw== - dependencies: - function-bind "^1.1.1" - has-bigints "^1.0.1" - has-symbols "^1.0.2" - which-boxed-primitive "^1.0.2" - -unherit@^1.0.4: - version "1.1.3" - resolved "https://registry.yarnpkg.com/unherit/-/unherit-1.1.3.tgz#6c9b503f2b41b262330c80e91c8614abdaa69c22" - integrity sha512-Ft16BJcnapDKp0+J/rqFC3Rrk6Y/Ng4nzsC028k2jdDII/rdZ7Wd3pPT/6+vIIxRagwRc9K0IUX0Ra4fKvw+WQ== - dependencies: - inherits "^2.0.0" - xtend "^4.0.0" - -unicode-canonical-property-names-ecmascript@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz#2619800c4c825800efdd8343af7dd9933cbe2818" - integrity sha512-jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ== - -unicode-match-property-ecmascript@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz#8ed2a32569961bce9227d09cd3ffbb8fed5f020c" - integrity sha512-L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg== - dependencies: - unicode-canonical-property-names-ecmascript "^1.0.4" - unicode-property-aliases-ecmascript "^1.0.4" - -unicode-match-property-value-ecmascript@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.2.0.tgz#0d91f600eeeb3096aa962b1d6fc88876e64ea531" - integrity sha512-wjuQHGQVofmSJv1uVISKLE5zO2rNGzM/KCYZch/QQvez7C1hUhBIuZ701fYXExuufJFMPhv2SyL8CyoIfMLbIQ== - -unicode-property-aliases-ecmascript@^1.0.4: - version "1.1.0" - resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.1.0.tgz#dd57a99f6207bedff4628abefb94c50db941c8f4" - integrity sha512-PqSoPh/pWetQ2phoj5RLiaqIk4kCNwoV3CI+LfGmWLKI3rE3kl1h59XpX2BjgDrmbxD9ARtQobPGU1SguCYuQg== - -unified@9.2.0: - version "9.2.0" - resolved "https://registry.yarnpkg.com/unified/-/unified-9.2.0.tgz#67a62c627c40589edebbf60f53edfd4d822027f8" - integrity sha512-vx2Z0vY+a3YoTj8+pttM3tiJHCwY5UFbYdiWrwBEbHmK8pvsPj2rtAX2BFfgXen8T39CJWblWRDT4L5WGXtDdg== - dependencies: - bail "^1.0.0" - extend "^3.0.0" - is-buffer "^2.0.0" - is-plain-obj "^2.0.0" - trough "^1.0.0" - vfile "^4.0.0" - -unified@^8.4.2: - version "8.4.2" - resolved "https://registry.yarnpkg.com/unified/-/unified-8.4.2.tgz#13ad58b4a437faa2751a4a4c6a16f680c500fff1" - integrity sha512-JCrmN13jI4+h9UAyKEoGcDZV+i1E7BLFuG7OsaDvTXI5P0qhHX+vZO/kOhz9jn8HGENDKbwSeB0nVOg4gVStGA== - dependencies: - bail "^1.0.0" - extend "^3.0.0" - is-plain-obj "^2.0.0" - trough "^1.0.0" - vfile "^4.0.0" - -union-value@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/union-value/-/union-value-1.0.1.tgz#0b6fe7b835aecda61c6ea4d4f02c14221e109847" - integrity sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg== - dependencies: - arr-union "^3.1.0" - get-value "^2.0.6" - is-extendable "^0.1.1" - set-value "^2.0.1" - -uniq@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/uniq/-/uniq-1.0.1.tgz#b31c5ae8254844a3a8281541ce2b04b865a734ff" - integrity sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8= - -uniqs@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/uniqs/-/uniqs-2.0.0.tgz#ffede4b36b25290696e6e165d4a59edb998e6b02" - integrity sha1-/+3ks2slKQaW5uFl1KWe25mOawI= - -unique-filename@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/unique-filename/-/unique-filename-1.1.1.tgz#1d69769369ada0583103a1e6ae87681b56573230" - integrity sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ== - dependencies: - unique-slug "^2.0.0" - -unique-slug@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/unique-slug/-/unique-slug-2.0.2.tgz#baabce91083fc64e945b0f3ad613e264f7cd4e6c" - integrity sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w== - dependencies: - imurmurhash "^0.1.4" - -unique-string@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/unique-string/-/unique-string-2.0.0.tgz#39c6451f81afb2749de2b233e3f7c5e8843bd89d" - integrity sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg== - dependencies: - crypto-random-string "^2.0.0" - -unist-builder@2.0.3, unist-builder@^2.0.0: - version "2.0.3" - resolved "https://registry.yarnpkg.com/unist-builder/-/unist-builder-2.0.3.tgz#77648711b5d86af0942f334397a33c5e91516436" - integrity sha512-f98yt5pnlMWlzP539tPc4grGMsFaQQlP/vM396b00jngsiINumNmsY8rkXjfoi1c6QaM8nQ3vaGDuoKWbe/1Uw== - -unist-util-generated@^1.0.0: - version "1.1.6" - resolved "https://registry.yarnpkg.com/unist-util-generated/-/unist-util-generated-1.1.6.tgz#5ab51f689e2992a472beb1b35f2ce7ff2f324d4b" - integrity sha512-cln2Mm1/CZzN5ttGK7vkoGw+RZ8VcUH6BtGbq98DDtRGquAAOXig1mrBQYelOwMXYS8rK+vZDyyojSjp7JX+Lg== - -unist-util-is@^4.0.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/unist-util-is/-/unist-util-is-4.1.0.tgz#976e5f462a7a5de73d94b706bac1b90671b57797" - integrity sha512-ZOQSsnce92GrxSqlnEEseX0gi7GH9zTJZ0p9dtu87WRb/37mMPO2Ilx1s/t9vBHrFhbgweUwb+t7cIn5dxPhZg== - -unist-util-position@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/unist-util-position/-/unist-util-position-3.1.0.tgz#1c42ee6301f8d52f47d14f62bbdb796571fa2d47" - integrity sha512-w+PkwCbYSFw8vpgWD0v7zRCl1FpY3fjDSQ3/N/wNd9Ffa4gPi8+4keqt99N3XW6F99t/mUzp2xAhNmfKWp95QA== - -unist-util-remove-position@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/unist-util-remove-position/-/unist-util-remove-position-2.0.1.tgz#5d19ca79fdba712301999b2b73553ca8f3b352cc" - integrity sha512-fDZsLYIe2uT+oGFnuZmy73K6ZxOPG/Qcm+w7jbEjaFcJgbQ6cqjs/eSPzXhsmGpAsWPkqZM9pYjww5QTn3LHMA== - dependencies: - unist-util-visit "^2.0.0" - -unist-util-remove@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/unist-util-remove/-/unist-util-remove-2.1.0.tgz#b0b4738aa7ee445c402fda9328d604a02d010588" - integrity sha512-J8NYPyBm4baYLdCbjmf1bhPu45Cr1MWTm77qd9istEkzWpnN6O9tMsEbB2JhNnBCqGENRqEWomQ+He6au0B27Q== - dependencies: - unist-util-is "^4.0.0" - -unist-util-stringify-position@^2.0.0: - version "2.0.3" - resolved "https://registry.yarnpkg.com/unist-util-stringify-position/-/unist-util-stringify-position-2.0.3.tgz#cce3bfa1cdf85ba7375d1d5b17bdc4cada9bd9da" - integrity sha512-3faScn5I+hy9VleOq/qNbAd6pAx7iH5jYBMS9I1HgQVijz/4mv5Bvw5iw1sC/90CODiKo81G/ps8AJrISn687g== - dependencies: - "@types/unist" "^2.0.2" - -unist-util-visit-parents@^3.0.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/unist-util-visit-parents/-/unist-util-visit-parents-3.1.1.tgz#65a6ce698f78a6b0f56aa0e88f13801886cdaef6" - integrity sha512-1KROIZWo6bcMrZEwiH2UrXDyalAa0uqzWCxCJj6lPOvTve2WkfgCytoDTPaMnodXh1WrXOq0haVYHj99ynJlsg== - dependencies: - "@types/unist" "^2.0.0" - unist-util-is "^4.0.0" - -unist-util-visit@2.0.3, unist-util-visit@^2.0.0, unist-util-visit@^2.0.1, unist-util-visit@^2.0.2, unist-util-visit@^2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/unist-util-visit/-/unist-util-visit-2.0.3.tgz#c3703893146df47203bb8a9795af47d7b971208c" - integrity sha512-iJ4/RczbJMkD0712mGktuGpm/U4By4FfDonL7N/9tATGIF4imikjOuagyMY53tnZq3NP6BcmlrHhEKAfGWjh7Q== - dependencies: - "@types/unist" "^2.0.0" - unist-util-is "^4.0.0" - unist-util-visit-parents "^3.0.0" - -universalify@^0.1.0: - version "0.1.2" - resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" - integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== - -unpipe@1.0.0, unpipe@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" - integrity sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw= - -unquote@~1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/unquote/-/unquote-1.1.1.tgz#8fded7324ec6e88a0ff8b905e7c098cdc086d544" - integrity sha1-j97XMk7G6IoP+LkF58CYzcCG1UQ= - -unset-value@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559" - integrity sha1-g3aHP30jNRef+x5vw6jtDfyKtVk= - dependencies: - has-value "^0.3.1" - isobject "^3.0.0" - -upath@^1.1.1: - version "1.2.0" - resolved "https://registry.yarnpkg.com/upath/-/upath-1.2.0.tgz#8f66dbcd55a883acdae4408af8b035a5044c1894" - integrity sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg== - -update-notifier@^4.1.0: - version "4.1.3" - resolved "https://registry.yarnpkg.com/update-notifier/-/update-notifier-4.1.3.tgz#be86ee13e8ce48fb50043ff72057b5bd598e1ea3" - integrity sha512-Yld6Z0RyCYGB6ckIjffGOSOmHXj1gMeE7aROz4MG+XMkmixBX4jUngrGXNYz7wPKBmtoD4MnBa2Anu7RSKht/A== - dependencies: - boxen "^4.2.0" - chalk "^3.0.0" - configstore "^5.0.1" - has-yarn "^2.1.0" - import-lazy "^2.1.0" - is-ci "^2.0.0" - is-installed-globally "^0.3.1" - is-npm "^4.0.0" - is-yarn-global "^0.3.0" - latest-version "^5.0.0" - pupa "^2.0.1" - semver-diff "^3.1.1" - xdg-basedir "^4.0.0" - -uri-js@^4.2.2: - version "4.4.1" - resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" - integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== - dependencies: - punycode "^2.1.0" - -urix@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72" - integrity sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI= - -url-loader@^4.1.0: - version "4.1.1" - resolved "https://registry.yarnpkg.com/url-loader/-/url-loader-4.1.1.tgz#28505e905cae158cf07c92ca622d7f237e70a4e2" - integrity sha512-3BTV812+AVHHOJQO8O5MkWgZ5aosP7GnROJwvzLS9hWDj00lZ6Z0wNak423Lp9PBZN05N+Jk/N5Si8jRAlGyWA== - dependencies: - loader-utils "^2.0.0" - mime-types "^2.1.27" - schema-utils "^3.0.0" - -url-parse-lax@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/url-parse-lax/-/url-parse-lax-3.0.0.tgz#16b5cafc07dbe3676c1b1999177823d6503acb0c" - integrity sha1-FrXK/Afb42dsGxmZF3gj1lA6yww= - dependencies: - prepend-http "^2.0.0" - -url-parse@^1.4.3, url-parse@^1.5.1: - version "1.5.1" - resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.5.1.tgz#d5fa9890af8a5e1f274a2c98376510f6425f6e3b" - integrity sha512-HOfCOUJt7iSYzEx/UqgtwKRMC6EU91NFhsCHMv9oM03VJcVo2Qrp8T8kI9D7amFf1cu+/3CEhgb3rF9zL7k85Q== - dependencies: - querystringify "^2.1.1" - requires-port "^1.0.0" - -url@^0.11.0: - version "0.11.0" - resolved "https://registry.yarnpkg.com/url/-/url-0.11.0.tgz#3838e97cfc60521eb73c525a8e55bfdd9e2e28f1" - integrity sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE= - dependencies: - punycode "1.3.2" - querystring "0.2.0" - -use-composed-ref@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/use-composed-ref/-/use-composed-ref-1.1.0.tgz#9220e4e94a97b7b02d7d27eaeab0b37034438bbc" - integrity sha512-my1lNHGWsSDAhhVAT4MKs6IjBUtG6ZG11uUqexPH9PptiIZDQOzaF4f5tEbJ2+7qvNbtXNBbU3SfmN+fXlWDhg== - dependencies: - ts-essentials "^2.0.3" - -use-isomorphic-layout-effect@^1.0.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/use-isomorphic-layout-effect/-/use-isomorphic-layout-effect-1.1.1.tgz#7bb6589170cd2987a152042f9084f9effb75c225" - integrity sha512-L7Evj8FGcwo/wpbv/qvSfrkHFtOpCzvM5yl2KVyDJoylVuSvzphiiasmjgQPttIGBAy2WKiBNR98q8w7PiNgKQ== - -use-latest@^1.0.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/use-latest/-/use-latest-1.2.0.tgz#a44f6572b8288e0972ec411bdd0840ada366f232" - integrity sha512-d2TEuG6nSLKQLAfW3By8mKr8HurOlTkul0sOpxbClIv4SQ4iOd7BYr7VIzdbktUCnv7dua/60xzd8igMU6jmyw== - dependencies: - use-isomorphic-layout-effect "^1.0.0" - -use-onclickoutside@^0.3.1: - version "0.3.2" - resolved "https://registry.yarnpkg.com/use-onclickoutside/-/use-onclickoutside-0.3.2.tgz#1681704055463295a34236dee43d5911c6c3c418" - integrity sha512-7P+U4B6nUlWLtmktuF6KTNg9mzxf7VqnBVxv418i3SQytw68/19Fk8hUW1uZjZv3DGHtGEwLa4vnjbm5sPL2ZQ== - dependencies: - are-passive-events-supported "^1.1.0" - use-latest "^1.0.0" - -use@^3.1.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f" - integrity sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ== - -util-deprecate@^1.0.1, util-deprecate@^1.0.2, util-deprecate@~1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" - integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= - -util.promisify@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/util.promisify/-/util.promisify-1.0.0.tgz#440f7165a459c9a16dc145eb8e72f35687097030" - integrity sha512-i+6qA2MPhvoKLuxnJNpXAGhg7HphQOSUq2LKMZD0m15EiskXUkMvKdF4Uui0WYeCUGea+o2cw/ZuwehtfsrNkA== - dependencies: - define-properties "^1.1.2" - object.getownpropertydescriptors "^2.0.3" - -util.promisify@~1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/util.promisify/-/util.promisify-1.0.1.tgz#6baf7774b80eeb0f7520d8b81d07982a59abbaee" - integrity sha512-g9JpC/3He3bm38zsLupWryXHoEcS22YHthuPQSJdMy6KNrzIRzWqcsHzD/WUnqe45whVou4VIsPew37DoXWNrA== - dependencies: - define-properties "^1.1.3" - es-abstract "^1.17.2" - has-symbols "^1.0.1" - object.getownpropertydescriptors "^2.1.0" - -util@0.10.3: - version "0.10.3" - resolved "https://registry.yarnpkg.com/util/-/util-0.10.3.tgz#7afb1afe50805246489e3db7fe0ed379336ac0f9" - integrity sha1-evsa/lCAUkZInj23/g7TeTNqwPk= - dependencies: - inherits "2.0.1" - -util@^0.11.0: - version "0.11.1" - resolved "https://registry.yarnpkg.com/util/-/util-0.11.1.tgz#3236733720ec64bb27f6e26f421aaa2e1b588d61" - integrity sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ== - dependencies: - inherits "2.0.3" - -utila@~0.4: - version "0.4.0" - resolved "https://registry.yarnpkg.com/utila/-/utila-0.4.0.tgz#8a16a05d445657a3aea5eecc5b12a4fa5379772c" - integrity sha1-ihagXURWV6Oupe7MWxKk+lN5dyw= - -utility-types@^3.10.0: - version "3.10.0" - resolved "https://registry.yarnpkg.com/utility-types/-/utility-types-3.10.0.tgz#ea4148f9a741015f05ed74fd615e1d20e6bed82b" - integrity sha512-O11mqxmi7wMKCo6HKFt5AhO4BwY3VV68YU07tgxfz8zJTIxr4BpsezN49Ffwy9j3ZpwwJp4fkRwjRzq3uWE6Rg== - -utils-merge@1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" - integrity sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM= - -uuid@^3.3.2, uuid@^3.4.0: - version "3.4.0" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" - integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== - -value-equal@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/value-equal/-/value-equal-1.0.1.tgz#1e0b794c734c5c0cade179c437d356d931a34d6c" - integrity sha512-NOJ6JZCAWr0zlxZt+xqCHNTEKOsrks2HQd4MqhP1qy4z1SkbEP467eNx6TgDKXMvUOb+OENfJCZwM+16n7fRfw== - -vary@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" - integrity sha1-IpnwLG3tMNSllhsLn3RSShj2NPw= - -vendors@^1.0.0: - version "1.0.4" - resolved "https://registry.yarnpkg.com/vendors/-/vendors-1.0.4.tgz#e2b800a53e7a29b93506c3cf41100d16c4c4ad8e" - integrity sha512-/juG65kTL4Cy2su4P8HjtkTxk6VmJDiOPBufWniqQ6wknac6jNiXS9vU+hO3wgusiyqWlzTbVHi0dyJqRONg3w== - -vfile-location@^3.0.0, vfile-location@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/vfile-location/-/vfile-location-3.2.0.tgz#d8e41fbcbd406063669ebf6c33d56ae8721d0f3c" - integrity sha512-aLEIZKv/oxuCDZ8lkJGhuhztf/BW4M+iHdCwglA/eWc+vtuRFJj8EtgceYFX4LRjOhCAAiNHsKGssC6onJ+jbA== - -vfile-message@^2.0.0: - version "2.0.4" - resolved "https://registry.yarnpkg.com/vfile-message/-/vfile-message-2.0.4.tgz#5b43b88171d409eae58477d13f23dd41d52c371a" - integrity sha512-DjssxRGkMvifUOJre00juHoP9DPWuzjxKuMDrhNbk2TdaYYBNMStsNhEOt3idrtI12VQYM/1+iM0KOzXi4pxwQ== - dependencies: - "@types/unist" "^2.0.0" - unist-util-stringify-position "^2.0.0" - -vfile@^4.0.0: - version "4.2.1" - resolved "https://registry.yarnpkg.com/vfile/-/vfile-4.2.1.tgz#03f1dce28fc625c625bc6514350fbdb00fa9e624" - integrity sha512-O6AE4OskCG5S1emQ/4gl8zK586RqA3srz3nfK/Viy0UPToBc5Trp9BVFb1u0CjsKrAWwnpr4ifM/KBXPWwJbCA== - dependencies: - "@types/unist" "^2.0.0" - is-buffer "^2.0.0" - unist-util-stringify-position "^2.0.0" - vfile-message "^2.0.0" - -vm-browserify@^1.0.1: - version "1.1.2" - resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-1.1.2.tgz#78641c488b8e6ca91a75f511e7a3b32a86e5dda0" - integrity sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ== - -wait-file@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/wait-file/-/wait-file-1.0.5.tgz#377f48795f1765046a41bb0671c142ef8e509ae6" - integrity sha512-udLpJY/eOxlrMm3+XD1RLuF2oT9B7J7wiyR5/9xrvQymS6YR6trWvVhzOldHrVbLwyiRmLj9fcvsjzpSXeZHkw== - dependencies: - "@hapi/joi" "^15.1.0" - fs-extra "^8.1.0" - rx "^4.1.0" - -watchpack-chokidar2@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/watchpack-chokidar2/-/watchpack-chokidar2-2.0.1.tgz#38500072ee6ece66f3769936950ea1771be1c957" - integrity sha512-nCFfBIPKr5Sh61s4LPpy1Wtfi0HE8isJ3d2Yb5/Ppw2P2B/3eVSEBjKfN0fmHJSK14+31KwMKmcrzs2GM4P0Ww== - dependencies: - chokidar "^2.1.8" - -watchpack@^1.7.4: - version "1.7.5" - resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-1.7.5.tgz#1267e6c55e0b9b5be44c2023aed5437a2c26c453" - integrity sha512-9P3MWk6SrKjHsGkLT2KHXdQ/9SNkyoJbabxnKOoJepsvJjJG8uYTR3yTPxPQvNDI3w4Nz1xnE0TLHK4RIVe/MQ== - dependencies: - graceful-fs "^4.1.2" - neo-async "^2.5.0" - optionalDependencies: - chokidar "^3.4.1" - watchpack-chokidar2 "^2.0.1" - -wbuf@^1.1.0, wbuf@^1.7.3: - version "1.7.3" - resolved "https://registry.yarnpkg.com/wbuf/-/wbuf-1.7.3.tgz#c1d8d149316d3ea852848895cb6a0bfe887b87df" - integrity sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA== - dependencies: - minimalistic-assert "^1.0.0" - -web-namespaces@^1.0.0, web-namespaces@^1.1.2: - version "1.1.4" - resolved "https://registry.yarnpkg.com/web-namespaces/-/web-namespaces-1.1.4.tgz#bc98a3de60dadd7faefc403d1076d529f5e030ec" - integrity sha512-wYxSGajtmoP4WxfejAPIr4l0fVh+jeMXZb08wNc0tMg6xsfZXj3cECqIK0G7ZAqUq0PP8WlMDtaOGVBTAWztNw== - -webidl-conversions@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-4.0.2.tgz#a855980b1f0b6b359ba1d5d9fb39ae941faa63ad" - integrity sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg== - -webpack-bundle-analyzer@^3.6.1: - version "3.9.0" - resolved "https://registry.yarnpkg.com/webpack-bundle-analyzer/-/webpack-bundle-analyzer-3.9.0.tgz#f6f94db108fb574e415ad313de41a2707d33ef3c" - integrity sha512-Ob8amZfCm3rMB1ScjQVlbYYUEJyEjdEtQ92jqiFUYt5VkEeO2v5UMbv49P/gnmCZm3A6yaFQzCBvpZqN4MUsdA== - dependencies: - acorn "^7.1.1" - acorn-walk "^7.1.1" - bfj "^6.1.1" - chalk "^2.4.1" - commander "^2.18.0" - ejs "^2.6.1" - express "^4.16.3" - filesize "^3.6.1" - gzip-size "^5.0.0" - lodash "^4.17.19" - mkdirp "^0.5.1" - opener "^1.5.1" - ws "^6.0.0" - -webpack-dev-middleware@^3.7.2: - version "3.7.3" - resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-3.7.3.tgz#0639372b143262e2b84ab95d3b91a7597061c2c5" - integrity sha512-djelc/zGiz9nZj/U7PTBi2ViorGJXEWo/3ltkPbDyxCXhhEXkW0ce99falaok4TPj+AsxLiXJR0EBOb0zh9fKQ== - dependencies: - memory-fs "^0.4.1" - mime "^2.4.4" - mkdirp "^0.5.1" - range-parser "^1.2.1" - webpack-log "^2.0.0" - -webpack-dev-server@^3.11.0: - version "3.11.2" - resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-3.11.2.tgz#695ebced76a4929f0d5de7fd73fafe185fe33708" - integrity sha512-A80BkuHRQfCiNtGBS1EMf2ChTUs0x+B3wGDFmOeT4rmJOHhHTCH2naNxIHhmkr0/UillP4U3yeIyv1pNp+QDLQ== - dependencies: - ansi-html "0.0.7" - bonjour "^3.5.0" - chokidar "^2.1.8" - compression "^1.7.4" - connect-history-api-fallback "^1.6.0" - debug "^4.1.1" - del "^4.1.1" - express "^4.17.1" - html-entities "^1.3.1" - http-proxy-middleware "0.19.1" - import-local "^2.0.0" - internal-ip "^4.3.0" - ip "^1.1.5" - is-absolute-url "^3.0.3" - killable "^1.0.1" - loglevel "^1.6.8" - opn "^5.5.0" - p-retry "^3.0.1" - portfinder "^1.0.26" - schema-utils "^1.0.0" - selfsigned "^1.10.8" - semver "^6.3.0" - serve-index "^1.9.1" - sockjs "^0.3.21" - sockjs-client "^1.5.0" - spdy "^4.0.2" - strip-ansi "^3.0.1" - supports-color "^6.1.0" - url "^0.11.0" - webpack-dev-middleware "^3.7.2" - webpack-log "^2.0.0" - ws "^6.2.1" - yargs "^13.3.2" - -webpack-log@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/webpack-log/-/webpack-log-2.0.0.tgz#5b7928e0637593f119d32f6227c1e0ac31e1b47f" - integrity sha512-cX8G2vR/85UYG59FgkoMamwHUIkSSlV3bBMRsbxVXVUk2j6NleCKjQ/WE9eYg9WY4w25O9w8wKP4rzNZFmUcUg== - dependencies: - ansi-colors "^3.0.0" - uuid "^3.3.2" - -webpack-merge@^4.2.2: - version "4.2.2" - resolved "https://registry.yarnpkg.com/webpack-merge/-/webpack-merge-4.2.2.tgz#a27c52ea783d1398afd2087f547d7b9d2f43634d" - integrity sha512-TUE1UGoTX2Cd42j3krGYqObZbOD+xF7u28WB7tfUordytSjbWTIjK/8V0amkBfTYN4/pB/GIDlJZZ657BGG19g== - dependencies: - lodash "^4.17.15" - -webpack-sources@^1.1.0, webpack-sources@^1.4.0, webpack-sources@^1.4.1, webpack-sources@^1.4.3: - version "1.4.3" - resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-1.4.3.tgz#eedd8ec0b928fbf1cbfe994e22d2d890f330a933" - integrity sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ== - dependencies: - source-list-map "^2.0.0" - source-map "~0.6.1" - -webpack@^4.44.1: - version "4.46.0" - resolved "https://registry.yarnpkg.com/webpack/-/webpack-4.46.0.tgz#bf9b4404ea20a073605e0a011d188d77cb6ad542" - integrity sha512-6jJuJjg8znb/xRItk7bkT0+Q7AHCYjjFnvKIWQPkNIOyRqoCGvkOs0ipeQzrqz4l5FtN5ZI/ukEHroeX/o1/5Q== - dependencies: - "@webassemblyjs/ast" "1.9.0" - "@webassemblyjs/helper-module-context" "1.9.0" - "@webassemblyjs/wasm-edit" "1.9.0" - "@webassemblyjs/wasm-parser" "1.9.0" - acorn "^6.4.1" - ajv "^6.10.2" - ajv-keywords "^3.4.1" - chrome-trace-event "^1.0.2" - enhanced-resolve "^4.5.0" - eslint-scope "^4.0.3" - json-parse-better-errors "^1.0.2" - loader-runner "^2.4.0" - loader-utils "^1.2.3" - memory-fs "^0.4.1" - micromatch "^3.1.10" - mkdirp "^0.5.3" - neo-async "^2.6.1" - node-libs-browser "^2.2.1" - schema-utils "^1.0.0" - tapable "^1.1.3" - terser-webpack-plugin "^1.4.3" - watchpack "^1.7.4" - webpack-sources "^1.4.1" - -webpackbar@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/webpackbar/-/webpackbar-4.0.0.tgz#ee7a87f16077505b5720551af413c8ecd5b1f780" - integrity sha512-k1qRoSL/3BVuINzngj09nIwreD8wxV4grcuhHTD8VJgUbGcy8lQSPqv+bM00B7F+PffwIsQ8ISd4mIwRbr23eQ== - dependencies: - ansi-escapes "^4.2.1" - chalk "^2.4.2" - consola "^2.10.0" - figures "^3.0.0" - pretty-time "^1.1.0" - std-env "^2.2.1" - text-table "^0.2.0" - wrap-ansi "^6.0.0" - -websocket-driver@>=0.5.1, websocket-driver@^0.7.4: - version "0.7.4" - resolved "https://registry.yarnpkg.com/websocket-driver/-/websocket-driver-0.7.4.tgz#89ad5295bbf64b480abcba31e4953aca706f5760" - integrity sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg== - dependencies: - http-parser-js ">=0.5.1" - safe-buffer ">=5.1.0" - websocket-extensions ">=0.1.1" - -websocket-extensions@>=0.1.1: - version "0.1.4" - resolved "https://registry.yarnpkg.com/websocket-extensions/-/websocket-extensions-0.1.4.tgz#7f8473bc839dfd87608adb95d7eb075211578a42" - integrity sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg== - -whatwg-url@^7.0.0: - version "7.1.0" - resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-7.1.0.tgz#c2c492f1eca612988efd3d2266be1b9fc6170d06" - integrity sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg== - dependencies: - lodash.sortby "^4.7.0" - tr46 "^1.0.1" - webidl-conversions "^4.0.2" - -which-boxed-primitive@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz#13757bc89b209b049fe5d86430e21cf40a89a8e6" - integrity sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg== - dependencies: - is-bigint "^1.0.1" - is-boolean-object "^1.1.0" - is-number-object "^1.0.4" - is-string "^1.0.5" - is-symbol "^1.0.3" - -which-module@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" - integrity sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho= - -which@^1.2.9, which@^1.3.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" - integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== - dependencies: - isexe "^2.0.0" - -which@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" - integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== - dependencies: - isexe "^2.0.0" - -widest-line@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/widest-line/-/widest-line-3.1.0.tgz#8292333bbf66cb45ff0de1603b136b7ae1496eca" - integrity sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg== - dependencies: - string-width "^4.0.0" - -worker-farm@^1.7.0: - version "1.7.0" - resolved "https://registry.yarnpkg.com/worker-farm/-/worker-farm-1.7.0.tgz#26a94c5391bbca926152002f69b84a4bf772e5a8" - integrity sha512-rvw3QTZc8lAxyVrqcSGVm5yP/IJ2UcB3U0graE3LCFoZ0Yn2x4EoVSqJKdB/T5M+FLcRPjz4TDacRf3OCfNUzw== - dependencies: - errno "~0.1.7" - -worker-rpc@^0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/worker-rpc/-/worker-rpc-0.1.1.tgz#cb565bd6d7071a8f16660686051e969ad32f54d5" - integrity sha512-P1WjMrUB3qgJNI9jfmpZ/htmBEjFh//6l/5y8SD9hg1Ef5zTTVVoRjTrTEzPrNBQvmhMxkoTsjOXN10GWU7aCg== - dependencies: - microevent.ts "~0.1.1" - -wrap-ansi@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-5.1.0.tgz#1fd1f67235d5b6d0fee781056001bfb694c03b09" - integrity sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q== - dependencies: - ansi-styles "^3.2.0" - string-width "^3.0.0" - strip-ansi "^5.0.0" - -wrap-ansi@^6.0.0: - version "6.2.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz#e9393ba07102e6c91a3b221478f0257cd2856e53" - integrity sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA== - dependencies: - ansi-styles "^4.0.0" - string-width "^4.1.0" - strip-ansi "^6.0.0" - -wrappy@1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" - integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= - -write-file-atomic@^3.0.0: - version "3.0.3" - resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-3.0.3.tgz#56bd5c5a5c70481cd19c571bd39ab965a5de56e8" - integrity sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q== - dependencies: - imurmurhash "^0.1.4" - is-typedarray "^1.0.0" - signal-exit "^3.0.2" - typedarray-to-buffer "^3.1.5" - -ws@^6.0.0, ws@^6.2.1: - version "6.2.1" - resolved "https://registry.yarnpkg.com/ws/-/ws-6.2.1.tgz#442fdf0a47ed64f59b6a5d8ff130f4748ed524fb" - integrity sha512-GIyAXC2cB7LjvpgMt9EKS2ldqr0MTrORaleiOno6TweZ6r3TKtoFQWay/2PceJ3RuBasOHzXNn5Lrw1X0bEjqA== - dependencies: - async-limiter "~1.0.0" - -xdg-basedir@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-4.0.0.tgz#4bc8d9984403696225ef83a1573cbbcb4e79db13" - integrity sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q== - -xml-js@^1.6.11: - version "1.6.11" - resolved "https://registry.yarnpkg.com/xml-js/-/xml-js-1.6.11.tgz#927d2f6947f7f1c19a316dd8eea3614e8b18f8e9" - integrity sha512-7rVi2KMfwfWFl+GpPg6m80IVMWXLRjO+PxTq7V2CDhoGak0wzYzFgUY2m4XJ47OGdXd8eLE8EmwfAmdjw7lC1g== - dependencies: - sax "^1.2.4" - -xmlbuilder@^13.0.0: - version "13.0.2" - resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-13.0.2.tgz#02ae33614b6a047d1c32b5389c1fdacb2bce47a7" - integrity sha512-Eux0i2QdDYKbdbA6AM6xE4m6ZTZr4G4xF9kahI2ukSEMCzwce2eX9WlTI5J3s+NU7hpasFsr8hWIONae7LluAQ== - -xtend@^4.0.0, xtend@^4.0.1, xtend@~4.0.1: - version "4.0.2" - resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" - integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== - -y18n@^4.0.0: - version "4.0.3" - resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.3.tgz#b5f259c82cd6e336921efd7bfd8bf560de9eeedf" - integrity sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ== - -yallist@^3.0.2: - version "3.1.1" - resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" - integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== - -yallist@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" - integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== - -yaml@^1.10.0: - version "1.10.2" - resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.2.tgz#2301c5ffbf12b467de8da2333a459e29e7920e4b" - integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg== - -yargs-parser@^13.1.2: - version "13.1.2" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-13.1.2.tgz#130f09702ebaeef2650d54ce6e3e5706f7a4fb38" - integrity sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg== - dependencies: - camelcase "^5.0.0" - decamelize "^1.2.0" - -yargs@^13.3.2: - version "13.3.2" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-13.3.2.tgz#ad7ffefec1aa59565ac915f82dccb38a9c31a2dd" - integrity sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw== - dependencies: - cliui "^5.0.0" - find-up "^3.0.0" - get-caller-file "^2.0.1" - require-directory "^2.1.1" - require-main-filename "^2.0.0" - set-blocking "^2.0.0" - string-width "^3.0.0" - which-module "^2.0.0" - y18n "^4.0.0" - yargs-parser "^13.1.2" - -yocto-queue@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" - integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== - -zwitch@^1.0.0: - version "1.0.5" - resolved "https://registry.yarnpkg.com/zwitch/-/zwitch-1.0.5.tgz#d11d7381ffed16b742f6af7b3f223d5cd9fe9920" - integrity sha512-V50KMwwzqJV0NpZIZFwfOD5/lyny3WlSzRiXgA0G7VUnRlqttta1L6UQIHzd6EuBY/cHGfwTIck7w1yH6Q5zUw== diff --git a/docusaurus.config.js b/docusaurus.config.js new file mode 100644 index 00000000..6c0ad155 --- /dev/null +++ b/docusaurus.config.js @@ -0,0 +1,55 @@ +module.exports = { + title: "Here We Build CityScope", + tagline: "Urban Modelling & Simulation", + url: "https://cityscope.media.mit.edu", + baseUrl: "/", + onBrokenLinks: "throw", + favicon: "img/favicon.ico", + organizationName: "CityScope", // Usually your GitHub org/user name. + projectName: "cityscope.github.io", // Usually your repo name. + deploymentBranch: "master", + + themeConfig: { + navbar: { + title: "MIT CityScope", + logo: { + alt: "Logo", + src: "img/ML_logo.png", + }, + items: [ + { + href: "https://cityscope.media.mit.edu/CS_cityscopeJS", + label: "CityScopeJS", + position: "right", + src: "img/", + }, + { + href: "https://github.com/CityScope", + label: "GitHub", + position: "right", + src: "img/", + }, + ], + }, + footer: { + logo: { + alt: "Logo", + src: "img/ML_logo_sml.png", + href: "https://github.com/CityScope", + }, + copyright: `CityScope, MIT City Science ${new Date().getFullYear()}`, + }, + }, + presets: [ + [ + "@docusaurus/preset-classic", + { + docs: { + routeBasePath: "/", + sidebarPath: "./sidebars.js", + editUrl: "https://github.com/CityScope/cityscope.github.io/", + }, + }, + ], + ], +}; diff --git a/node_modules/.DS_Store b/node_modules/.DS_Store deleted file mode 100644 index 367b8daa..00000000 Binary files a/node_modules/.DS_Store and /dev/null differ diff --git a/node_modules/.cache/webpack/client-development-en/0.pack b/node_modules/.cache/webpack/client-development-en/0.pack index b2e0065a..52d3cab1 100644 Binary files a/node_modules/.cache/webpack/client-development-en/0.pack and b/node_modules/.cache/webpack/client-development-en/0.pack differ diff --git a/node_modules/.cache/webpack/client-development-en/1.pack b/node_modules/.cache/webpack/client-development-en/1.pack deleted file mode 100644 index 6db6e4f7..00000000 Binary files a/node_modules/.cache/webpack/client-development-en/1.pack and /dev/null differ diff --git a/node_modules/.cache/webpack/client-development-en/10.pack b/node_modules/.cache/webpack/client-development-en/10.pack deleted file mode 100644 index 9cc763f6..00000000 Binary files a/node_modules/.cache/webpack/client-development-en/10.pack and /dev/null differ diff --git a/node_modules/.cache/webpack/client-development-en/11.pack b/node_modules/.cache/webpack/client-development-en/11.pack deleted file mode 100644 index 06e317e7..00000000 Binary files a/node_modules/.cache/webpack/client-development-en/11.pack and /dev/null differ diff --git a/node_modules/.cache/webpack/client-development-en/12.pack b/node_modules/.cache/webpack/client-development-en/12.pack deleted file mode 100644 index 073b88b7..00000000 Binary files a/node_modules/.cache/webpack/client-development-en/12.pack and /dev/null differ diff --git a/node_modules/.cache/webpack/client-development-en/13.pack b/node_modules/.cache/webpack/client-development-en/13.pack deleted file mode 100644 index 1ef91ffc..00000000 Binary files a/node_modules/.cache/webpack/client-development-en/13.pack and /dev/null differ diff --git a/node_modules/.cache/webpack/client-development-en/14.pack b/node_modules/.cache/webpack/client-development-en/14.pack deleted file mode 100644 index bc83be62..00000000 Binary files a/node_modules/.cache/webpack/client-development-en/14.pack and /dev/null differ diff --git a/node_modules/.cache/webpack/client-development-en/15.pack b/node_modules/.cache/webpack/client-development-en/15.pack deleted file mode 100644 index ad8916a3..00000000 Binary files a/node_modules/.cache/webpack/client-development-en/15.pack and /dev/null differ diff --git a/node_modules/.cache/webpack/client-development-en/16.pack b/node_modules/.cache/webpack/client-development-en/16.pack deleted file mode 100644 index aa865b11..00000000 Binary files a/node_modules/.cache/webpack/client-development-en/16.pack and /dev/null differ diff --git a/node_modules/.cache/webpack/client-development-en/17.pack b/node_modules/.cache/webpack/client-development-en/17.pack deleted file mode 100644 index f76d101d..00000000 Binary files a/node_modules/.cache/webpack/client-development-en/17.pack and /dev/null differ diff --git a/node_modules/.cache/webpack/client-development-en/18.pack b/node_modules/.cache/webpack/client-development-en/18.pack deleted file mode 100644 index 950410d3..00000000 Binary files a/node_modules/.cache/webpack/client-development-en/18.pack and /dev/null differ diff --git a/node_modules/.cache/webpack/client-development-en/19.pack b/node_modules/.cache/webpack/client-development-en/19.pack deleted file mode 100644 index f9c9f712..00000000 Binary files a/node_modules/.cache/webpack/client-development-en/19.pack and /dev/null differ diff --git a/node_modules/.cache/webpack/client-development-en/2.pack b/node_modules/.cache/webpack/client-development-en/2.pack deleted file mode 100644 index 71da95e6..00000000 Binary files a/node_modules/.cache/webpack/client-development-en/2.pack and /dev/null differ diff --git a/node_modules/.cache/webpack/client-development-en/20.pack b/node_modules/.cache/webpack/client-development-en/20.pack deleted file mode 100644 index 508445d2..00000000 Binary files a/node_modules/.cache/webpack/client-development-en/20.pack and /dev/null differ diff --git a/node_modules/.cache/webpack/client-development-en/21.pack b/node_modules/.cache/webpack/client-development-en/21.pack deleted file mode 100644 index 2f157fc5..00000000 Binary files a/node_modules/.cache/webpack/client-development-en/21.pack and /dev/null differ diff --git a/node_modules/.cache/webpack/client-development-en/22.pack b/node_modules/.cache/webpack/client-development-en/22.pack deleted file mode 100644 index 3f104f98..00000000 Binary files a/node_modules/.cache/webpack/client-development-en/22.pack and /dev/null differ diff --git a/node_modules/.cache/webpack/client-development-en/23.pack b/node_modules/.cache/webpack/client-development-en/23.pack deleted file mode 100644 index d61a3b9a..00000000 Binary files a/node_modules/.cache/webpack/client-development-en/23.pack and /dev/null differ diff --git a/node_modules/.cache/webpack/client-development-en/3.pack b/node_modules/.cache/webpack/client-development-en/3.pack deleted file mode 100644 index 9d8a36e4..00000000 Binary files a/node_modules/.cache/webpack/client-development-en/3.pack and /dev/null differ diff --git a/node_modules/.cache/webpack/client-development-en/4.pack b/node_modules/.cache/webpack/client-development-en/4.pack deleted file mode 100644 index 4ee99600..00000000 Binary files a/node_modules/.cache/webpack/client-development-en/4.pack and /dev/null differ diff --git a/node_modules/.cache/webpack/client-development-en/5.pack b/node_modules/.cache/webpack/client-development-en/5.pack deleted file mode 100644 index f8357807..00000000 Binary files a/node_modules/.cache/webpack/client-development-en/5.pack and /dev/null differ diff --git a/node_modules/.cache/webpack/client-development-en/6.pack b/node_modules/.cache/webpack/client-development-en/6.pack deleted file mode 100644 index 0f7bf2b0..00000000 Binary files a/node_modules/.cache/webpack/client-development-en/6.pack and /dev/null differ diff --git a/node_modules/.cache/webpack/client-development-en/7.pack b/node_modules/.cache/webpack/client-development-en/7.pack deleted file mode 100644 index c827b4f2..00000000 Binary files a/node_modules/.cache/webpack/client-development-en/7.pack and /dev/null differ diff --git a/node_modules/.cache/webpack/client-development-en/8.pack b/node_modules/.cache/webpack/client-development-en/8.pack deleted file mode 100644 index 59e5e43b..00000000 Binary files a/node_modules/.cache/webpack/client-development-en/8.pack and /dev/null differ diff --git a/node_modules/.cache/webpack/client-development-en/9.pack b/node_modules/.cache/webpack/client-development-en/9.pack deleted file mode 100644 index 1a7f7998..00000000 Binary files a/node_modules/.cache/webpack/client-development-en/9.pack and /dev/null differ diff --git a/node_modules/.cache/webpack/client-development-en/index.pack b/node_modules/.cache/webpack/client-development-en/index.pack index 4a9dda90..3fae8d4e 100644 Binary files a/node_modules/.cache/webpack/client-development-en/index.pack and b/node_modules/.cache/webpack/client-development-en/index.pack differ diff --git a/node_modules/.cache/webpack/client-development-en/index.pack.old b/node_modules/.cache/webpack/client-development-en/index.pack.old deleted file mode 100644 index e2deb465..00000000 Binary files a/node_modules/.cache/webpack/client-development-en/index.pack.old and /dev/null differ diff --git a/node_modules/.cache/webpack/client-production-en/0.pack b/node_modules/.cache/webpack/client-production-en/0.pack deleted file mode 100644 index 231b01b2..00000000 Binary files a/node_modules/.cache/webpack/client-production-en/0.pack and /dev/null differ diff --git a/node_modules/.cache/webpack/client-production-en/1.pack b/node_modules/.cache/webpack/client-production-en/1.pack deleted file mode 100644 index 4f8136f6..00000000 Binary files a/node_modules/.cache/webpack/client-production-en/1.pack and /dev/null differ diff --git a/node_modules/.cache/webpack/client-production-en/2.pack b/node_modules/.cache/webpack/client-production-en/2.pack deleted file mode 100644 index 8a7ee0b5..00000000 Binary files a/node_modules/.cache/webpack/client-production-en/2.pack and /dev/null differ diff --git a/node_modules/.cache/webpack/client-production-en/index.pack b/node_modules/.cache/webpack/client-production-en/index.pack deleted file mode 100644 index 090687c4..00000000 Binary files a/node_modules/.cache/webpack/client-production-en/index.pack and /dev/null differ diff --git a/node_modules/.cache/webpack/client-production-en/index.pack.old b/node_modules/.cache/webpack/client-production-en/index.pack.old deleted file mode 100644 index 6b928c68..00000000 Binary files a/node_modules/.cache/webpack/client-production-en/index.pack.old and /dev/null differ diff --git a/node_modules/.cache/webpack/server-production-en/0.pack b/node_modules/.cache/webpack/server-production-en/0.pack deleted file mode 100644 index b1d01642..00000000 Binary files a/node_modules/.cache/webpack/server-production-en/0.pack and /dev/null differ diff --git a/node_modules/.cache/webpack/server-production-en/1.pack b/node_modules/.cache/webpack/server-production-en/1.pack deleted file mode 100644 index 60956d6b..00000000 Binary files a/node_modules/.cache/webpack/server-production-en/1.pack and /dev/null differ diff --git a/node_modules/.cache/webpack/server-production-en/2.pack b/node_modules/.cache/webpack/server-production-en/2.pack deleted file mode 100644 index 10a80c67..00000000 Binary files a/node_modules/.cache/webpack/server-production-en/2.pack and /dev/null differ diff --git a/node_modules/.cache/webpack/server-production-en/index.pack b/node_modules/.cache/webpack/server-production-en/index.pack deleted file mode 100644 index 7f5ee208..00000000 Binary files a/node_modules/.cache/webpack/server-production-en/index.pack and /dev/null differ diff --git a/node_modules/.cache/webpack/server-production-en/index.pack.old b/node_modules/.cache/webpack/server-production-en/index.pack.old deleted file mode 100644 index a3cf47e9..00000000 Binary files a/node_modules/.cache/webpack/server-production-en/index.pack.old and /dev/null differ diff --git a/node_modules/.package-lock.json b/node_modules/.package-lock.json index 8bae508f..61b27292 100644 --- a/node_modules/.package-lock.json +++ b/node_modules/.package-lock.json @@ -5618,9 +5618,9 @@ "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" }, "node_modules/electron-to-chromium": { - "version": "1.4.751", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.751.tgz", - "integrity": "sha512-2DEPi++qa89SMGRhufWTiLmzqyuGmNF3SK4+PQetW1JKiZdEpF4XQonJXJCzyuYSA6mauiMhbyVhqYAP45Hvfw==" + "version": "1.4.752", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.752.tgz", + "integrity": "sha512-P3QJreYI/AUTcfBVrC4zy9KvnZWekViThgQMX/VpJ+IsOBbcX5JFpORM4qWapwWQ+agb2nYAOyn/4PMXOk0m2Q==" }, "node_modules/emoji-regex": { "version": "9.2.2", diff --git a/node_modules/@algolia/.DS_Store b/node_modules/@algolia/.DS_Store deleted file mode 100644 index 8e538e30..00000000 Binary files a/node_modules/@algolia/.DS_Store and /dev/null differ diff --git a/node_modules/@babel/.DS_Store b/node_modules/@babel/.DS_Store deleted file mode 100644 index 0df7810f..00000000 Binary files a/node_modules/@babel/.DS_Store and /dev/null differ diff --git a/node_modules/@docsearch/.DS_Store b/node_modules/@docsearch/.DS_Store deleted file mode 100644 index 872457d5..00000000 Binary files a/node_modules/@docsearch/.DS_Store and /dev/null differ diff --git a/node_modules/@docusaurus/.DS_Store b/node_modules/@docusaurus/.DS_Store deleted file mode 100644 index ff37420c..00000000 Binary files a/node_modules/@docusaurus/.DS_Store and /dev/null differ diff --git a/node_modules/@hapi/.DS_Store b/node_modules/@hapi/.DS_Store deleted file mode 100644 index 24e628c6..00000000 Binary files a/node_modules/@hapi/.DS_Store and /dev/null differ diff --git a/node_modules/@jest/.DS_Store b/node_modules/@jest/.DS_Store deleted file mode 100644 index db53219a..00000000 Binary files a/node_modules/@jest/.DS_Store and /dev/null differ diff --git a/node_modules/@jridgewell/.DS_Store b/node_modules/@jridgewell/.DS_Store deleted file mode 100644 index 851b7cd3..00000000 Binary files a/node_modules/@jridgewell/.DS_Store and /dev/null differ diff --git a/node_modules/@mdx-js/.DS_Store b/node_modules/@mdx-js/.DS_Store deleted file mode 100644 index edc2ca3f..00000000 Binary files a/node_modules/@mdx-js/.DS_Store and /dev/null differ diff --git a/node_modules/@nodelib/.DS_Store b/node_modules/@nodelib/.DS_Store deleted file mode 100644 index 263e2748..00000000 Binary files a/node_modules/@nodelib/.DS_Store and /dev/null differ diff --git a/node_modules/@pnpm/.DS_Store b/node_modules/@pnpm/.DS_Store deleted file mode 100644 index c27daddf..00000000 Binary files a/node_modules/@pnpm/.DS_Store and /dev/null differ diff --git a/node_modules/@sideway/.DS_Store b/node_modules/@sideway/.DS_Store deleted file mode 100644 index 8180d1ba..00000000 Binary files a/node_modules/@sideway/.DS_Store and /dev/null differ diff --git a/node_modules/@svgr/.DS_Store b/node_modules/@svgr/.DS_Store deleted file mode 100644 index cd5d1a58..00000000 Binary files a/node_modules/@svgr/.DS_Store and /dev/null differ diff --git a/node_modules/@types/.DS_Store b/node_modules/@types/.DS_Store deleted file mode 100644 index de69f875..00000000 Binary files a/node_modules/@types/.DS_Store and /dev/null differ diff --git a/node_modules/@webassemblyjs/.DS_Store b/node_modules/@webassemblyjs/.DS_Store deleted file mode 100644 index 18c607a7..00000000 Binary files a/node_modules/@webassemblyjs/.DS_Store and /dev/null differ diff --git a/node_modules/@xtuc/.DS_Store b/node_modules/@xtuc/.DS_Store deleted file mode 100644 index e5384fc9..00000000 Binary files a/node_modules/@xtuc/.DS_Store and /dev/null differ diff --git a/node_modules/acorn-import-assertions/.DS_Store b/node_modules/acorn-import-assertions/.DS_Store deleted file mode 100644 index 5f76ffd4..00000000 Binary files a/node_modules/acorn-import-assertions/.DS_Store and /dev/null differ diff --git a/node_modules/acorn/.DS_Store b/node_modules/acorn/.DS_Store deleted file mode 100644 index 3fa48e2e..00000000 Binary files a/node_modules/acorn/.DS_Store and /dev/null differ diff --git a/node_modules/ajv-formats/.DS_Store b/node_modules/ajv-formats/.DS_Store deleted file mode 100644 index 7bc0306c..00000000 Binary files a/node_modules/ajv-formats/.DS_Store and /dev/null differ diff --git a/node_modules/ajv-keywords/.DS_Store b/node_modules/ajv-keywords/.DS_Store deleted file mode 100644 index b99c99b9..00000000 Binary files a/node_modules/ajv-keywords/.DS_Store and /dev/null differ diff --git a/node_modules/ajv/.DS_Store b/node_modules/ajv/.DS_Store deleted file mode 100644 index 2114c74c..00000000 Binary files a/node_modules/ajv/.DS_Store and /dev/null differ diff --git a/node_modules/algoliasearch-helper/.DS_Store b/node_modules/algoliasearch-helper/.DS_Store deleted file mode 100644 index ef3144e7..00000000 Binary files a/node_modules/algoliasearch-helper/.DS_Store and /dev/null differ diff --git a/node_modules/astring/.DS_Store b/node_modules/astring/.DS_Store deleted file mode 100644 index 43624017..00000000 Binary files a/node_modules/astring/.DS_Store and /dev/null differ diff --git a/node_modules/autoprefixer/.DS_Store b/node_modules/autoprefixer/.DS_Store deleted file mode 100644 index 578d15ba..00000000 Binary files a/node_modules/autoprefixer/.DS_Store and /dev/null differ diff --git a/node_modules/babel-plugin-polyfill-corejs2/.DS_Store b/node_modules/babel-plugin-polyfill-corejs2/.DS_Store deleted file mode 100644 index a4b9b023..00000000 Binary files a/node_modules/babel-plugin-polyfill-corejs2/.DS_Store and /dev/null differ diff --git a/node_modules/babel-plugin-polyfill-corejs3/.DS_Store b/node_modules/babel-plugin-polyfill-corejs3/.DS_Store deleted file mode 100644 index 6ece8d81..00000000 Binary files a/node_modules/babel-plugin-polyfill-corejs3/.DS_Store and /dev/null differ diff --git a/node_modules/babel-plugin-polyfill-regenerator/.DS_Store b/node_modules/babel-plugin-polyfill-regenerator/.DS_Store deleted file mode 100644 index 4ced96fe..00000000 Binary files a/node_modules/babel-plugin-polyfill-regenerator/.DS_Store and /dev/null differ diff --git a/node_modules/body-parser/.DS_Store b/node_modules/body-parser/.DS_Store deleted file mode 100644 index b6be2380..00000000 Binary files a/node_modules/body-parser/.DS_Store and /dev/null differ diff --git a/node_modules/bonjour-service/.DS_Store b/node_modules/bonjour-service/.DS_Store deleted file mode 100644 index 1d900446..00000000 Binary files a/node_modules/bonjour-service/.DS_Store and /dev/null differ diff --git a/node_modules/cacheable-request/.DS_Store b/node_modules/cacheable-request/.DS_Store deleted file mode 100644 index 6d9c8041..00000000 Binary files a/node_modules/cacheable-request/.DS_Store and /dev/null differ diff --git a/node_modules/call-bind/.DS_Store b/node_modules/call-bind/.DS_Store deleted file mode 100644 index 87d83536..00000000 Binary files a/node_modules/call-bind/.DS_Store and /dev/null differ diff --git a/node_modules/camel-case/.DS_Store b/node_modules/camel-case/.DS_Store deleted file mode 100644 index ff9ae185..00000000 Binary files a/node_modules/camel-case/.DS_Store and /dev/null differ diff --git a/node_modules/caniuse-lite/.DS_Store b/node_modules/caniuse-lite/.DS_Store deleted file mode 100644 index feb84184..00000000 Binary files a/node_modules/caniuse-lite/.DS_Store and /dev/null differ diff --git a/node_modules/chokidar/.DS_Store b/node_modules/chokidar/.DS_Store deleted file mode 100644 index 80ddc4fc..00000000 Binary files a/node_modules/chokidar/.DS_Store and /dev/null differ diff --git a/node_modules/clean-css/.DS_Store b/node_modules/clean-css/.DS_Store deleted file mode 100644 index 147fd977..00000000 Binary files a/node_modules/clean-css/.DS_Store and /dev/null differ diff --git a/node_modules/cli-table3/.DS_Store b/node_modules/cli-table3/.DS_Store deleted file mode 100644 index 4fc7e0a7..00000000 Binary files a/node_modules/cli-table3/.DS_Store and /dev/null differ diff --git a/node_modules/combine-promises/.DS_Store b/node_modules/combine-promises/.DS_Store deleted file mode 100644 index 9edf6ef6..00000000 Binary files a/node_modules/combine-promises/.DS_Store and /dev/null differ diff --git a/node_modules/concat-map/.DS_Store b/node_modules/concat-map/.DS_Store deleted file mode 100644 index a0bc726e..00000000 Binary files a/node_modules/concat-map/.DS_Store and /dev/null differ diff --git a/node_modules/consola/.DS_Store b/node_modules/consola/.DS_Store deleted file mode 100644 index 374345ea..00000000 Binary files a/node_modules/consola/.DS_Store and /dev/null differ diff --git a/node_modules/copy-webpack-plugin/.DS_Store b/node_modules/copy-webpack-plugin/.DS_Store deleted file mode 100644 index 4eecf022..00000000 Binary files a/node_modules/copy-webpack-plugin/.DS_Store and /dev/null differ diff --git a/node_modules/core-js-pure/.DS_Store b/node_modules/core-js-pure/.DS_Store deleted file mode 100644 index 33790dfa..00000000 Binary files a/node_modules/core-js-pure/.DS_Store and /dev/null differ diff --git a/node_modules/core-js/.DS_Store b/node_modules/core-js/.DS_Store deleted file mode 100644 index 6a14fe92..00000000 Binary files a/node_modules/core-js/.DS_Store and /dev/null differ diff --git a/node_modules/css-declaration-sorter/.DS_Store b/node_modules/css-declaration-sorter/.DS_Store deleted file mode 100644 index 277b5a15..00000000 Binary files a/node_modules/css-declaration-sorter/.DS_Store and /dev/null differ diff --git a/node_modules/css-minimizer-webpack-plugin/.DS_Store b/node_modules/css-minimizer-webpack-plugin/.DS_Store deleted file mode 100644 index 4f8a6e71..00000000 Binary files a/node_modules/css-minimizer-webpack-plugin/.DS_Store and /dev/null differ diff --git a/node_modules/css-tree/.DS_Store b/node_modules/css-tree/.DS_Store deleted file mode 100644 index 7c342105..00000000 Binary files a/node_modules/css-tree/.DS_Store and /dev/null differ diff --git a/node_modules/cssesc/.DS_Store b/node_modules/cssesc/.DS_Store deleted file mode 100644 index bc2319c5..00000000 Binary files a/node_modules/cssesc/.DS_Store and /dev/null differ diff --git a/node_modules/cssnano-preset-advanced/.DS_Store b/node_modules/cssnano-preset-advanced/.DS_Store deleted file mode 100644 index 123bcf23..00000000 Binary files a/node_modules/cssnano-preset-advanced/.DS_Store and /dev/null differ diff --git a/node_modules/cssnano-preset-default/.DS_Store b/node_modules/cssnano-preset-default/.DS_Store deleted file mode 100644 index 24b32124..00000000 Binary files a/node_modules/cssnano-preset-default/.DS_Store and /dev/null differ diff --git a/node_modules/cssnano-utils/.DS_Store b/node_modules/cssnano-utils/.DS_Store deleted file mode 100644 index 19d0e323..00000000 Binary files a/node_modules/cssnano-utils/.DS_Store and /dev/null differ diff --git a/node_modules/cssnano/.DS_Store b/node_modules/cssnano/.DS_Store deleted file mode 100644 index f5f75b18..00000000 Binary files a/node_modules/cssnano/.DS_Store and /dev/null differ diff --git a/node_modules/csso/.DS_Store b/node_modules/csso/.DS_Store deleted file mode 100644 index ffb9f150..00000000 Binary files a/node_modules/csso/.DS_Store and /dev/null differ diff --git a/node_modules/define-data-property/.DS_Store b/node_modules/define-data-property/.DS_Store deleted file mode 100644 index 1d58d03c..00000000 Binary files a/node_modules/define-data-property/.DS_Store and /dev/null differ diff --git a/node_modules/dequal/.DS_Store b/node_modules/dequal/.DS_Store deleted file mode 100644 index 8f377b03..00000000 Binary files a/node_modules/dequal/.DS_Store and /dev/null differ diff --git a/node_modules/detect-port-alt/.DS_Store b/node_modules/detect-port-alt/.DS_Store deleted file mode 100644 index 0b6ac913..00000000 Binary files a/node_modules/detect-port-alt/.DS_Store and /dev/null differ diff --git a/node_modules/detect-port/.DS_Store b/node_modules/detect-port/.DS_Store deleted file mode 100644 index eeaaa29b..00000000 Binary files a/node_modules/detect-port/.DS_Store and /dev/null differ diff --git a/node_modules/dot-case/.DS_Store b/node_modules/dot-case/.DS_Store deleted file mode 100644 index 6cdcd772..00000000 Binary files a/node_modules/dot-case/.DS_Store and /dev/null differ diff --git a/node_modules/electron-to-chromium/full-chromium-versions.js b/node_modules/electron-to-chromium/full-chromium-versions.js index fee9220a..2f1b4228 100644 --- a/node_modules/electron-to-chromium/full-chromium-versions.js +++ b/node_modules/electron-to-chromium/full-chromium-versions.js @@ -3231,7 +3231,8 @@ module.exports = { "32.0.0-nightly.20240424", "32.0.0-nightly.20240425", "32.0.0-nightly.20240426", - "32.0.0-nightly.20240429" + "32.0.0-nightly.20240429", + "32.0.0-nightly.20240430" ], "124.0.6351.0": [ "31.0.0-nightly.20240312" diff --git a/node_modules/electron-to-chromium/full-chromium-versions.json b/node_modules/electron-to-chromium/full-chromium-versions.json index d338003d..54f4f3f5 100644 --- a/node_modules/electron-to-chromium/full-chromium-versions.json +++ b/node_modules/electron-to-chromium/full-chromium-versions.json @@ -1 +1 @@ -{"39.0.2171.65":["0.20.0","0.20.1","0.20.2","0.20.3","0.20.4","0.20.5","0.20.6","0.20.7","0.20.8"],"40.0.2214.91":["0.21.0","0.21.1","0.21.2"],"41.0.2272.76":["0.21.3","0.22.1","0.22.2","0.22.3","0.23.0","0.24.0"],"42.0.2311.107":["0.25.0","0.25.1","0.25.2","0.25.3","0.26.0","0.26.1","0.27.0","0.27.1"],"43.0.2357.65":["0.27.2","0.27.3","0.28.0","0.28.1","0.28.2","0.28.3","0.29.1","0.29.2"],"44.0.2403.125":["0.30.4","0.31.0"],"45.0.2454.85":["0.31.2","0.32.2","0.32.3","0.33.0","0.33.1","0.33.2","0.33.3","0.33.4","0.33.6","0.33.7","0.33.8","0.33.9","0.34.0","0.34.1","0.34.2","0.34.3","0.34.4","0.35.1","0.35.2","0.35.3","0.35.4","0.35.5"],"47.0.2526.73":["0.36.0","0.36.2","0.36.3","0.36.4"],"47.0.2526.110":["0.36.5","0.36.6","0.36.7","0.36.8","0.36.9","0.36.10","0.36.11","0.36.12"],"49.0.2623.75":["0.37.0","0.37.1","0.37.3","0.37.4","0.37.5","0.37.6","0.37.7","0.37.8","1.0.0","1.0.1","1.0.2"],"50.0.2661.102":["1.1.0","1.1.1","1.1.2","1.1.3"],"51.0.2704.63":["1.2.0","1.2.1"],"51.0.2704.84":["1.2.2","1.2.3"],"51.0.2704.103":["1.2.4","1.2.5"],"51.0.2704.106":["1.2.6","1.2.7","1.2.8"],"52.0.2743.82":["1.3.0","1.3.1","1.3.2","1.3.3","1.3.4","1.3.5","1.3.6","1.3.7","1.3.9","1.3.10","1.3.13","1.3.14","1.3.15"],"53.0.2785.113":["1.4.0","1.4.1","1.4.2","1.4.3","1.4.4","1.4.5"],"53.0.2785.143":["1.4.6","1.4.7","1.4.8","1.4.10","1.4.11","1.4.13","1.4.14","1.4.15","1.4.16"],"54.0.2840.51":["1.4.12"],"54.0.2840.101":["1.5.0","1.5.1"],"56.0.2924.87":["1.6.0","1.6.1","1.6.2","1.6.3","1.6.4","1.6.5","1.6.6","1.6.7","1.6.8","1.6.9","1.6.10","1.6.11","1.6.12","1.6.13","1.6.14","1.6.15","1.6.16","1.6.17","1.6.18"],"58.0.3029.110":["1.7.0","1.7.1","1.7.2","1.7.3","1.7.4","1.7.5","1.7.6","1.7.7","1.7.8","1.7.9","1.7.10","1.7.11","1.7.12","1.7.13","1.7.14","1.7.15","1.7.16"],"59.0.3071.115":["1.8.0","1.8.1","1.8.2-beta.1","1.8.2-beta.2","1.8.2-beta.3","1.8.2-beta.4","1.8.2-beta.5","1.8.2","1.8.3","1.8.4","1.8.5","1.8.6","1.8.7","1.8.8"],"61.0.3163.100":["2.0.0-beta.1","2.0.0-beta.2","2.0.0-beta.3","2.0.0-beta.4","2.0.0-beta.5","2.0.0-beta.6","2.0.0-beta.7","2.0.0-beta.8","2.0.0","2.0.1","2.0.2","2.0.3","2.0.4","2.0.5","2.0.6","2.0.7","2.0.8-nightly.20180819","2.0.8-nightly.20180820","2.0.8","2.0.9","2.0.10","2.0.11","2.0.12","2.0.13","2.0.14","2.0.15","2.0.16","2.0.17","2.0.18","2.1.0-unsupported.20180809"],"66.0.3359.181":["3.0.0-beta.1","3.0.0-beta.2","3.0.0-beta.3","3.0.0-beta.4","3.0.0-beta.5","3.0.0-beta.6","3.0.0-beta.7","3.0.0-beta.8","3.0.0-beta.9","3.0.0-beta.10","3.0.0-beta.11","3.0.0-beta.12","3.0.0-beta.13","3.0.0-nightly.20180818","3.0.0-nightly.20180821","3.0.0-nightly.20180823","3.0.0-nightly.20180904","3.0.0","3.0.1","3.0.2","3.0.3","3.0.4","3.0.5","3.0.6","3.0.7","3.0.8","3.0.9","3.0.10","3.0.11","3.0.12","3.0.13","3.0.14","3.0.15","3.0.16","3.1.0-beta.1","3.1.0-beta.2","3.1.0-beta.3","3.1.0-beta.4","3.1.0-beta.5","3.1.0","3.1.1","3.1.2","3.1.3","3.1.4","3.1.5","3.1.6","3.1.7","3.1.8","3.1.9","3.1.10","3.1.11","3.1.12","3.1.13","4.0.0-nightly.20180817","4.0.0-nightly.20180819","4.0.0-nightly.20180821"],"69.0.3497.106":["4.0.0-beta.1","4.0.0-beta.2","4.0.0-beta.3","4.0.0-beta.4","4.0.0-beta.5","4.0.0-beta.6","4.0.0-beta.7","4.0.0-beta.8","4.0.0-beta.9","4.0.0-beta.10","4.0.0-beta.11","4.0.0-nightly.20181010","4.0.0","4.0.1","4.0.2","4.0.3","4.0.4","4.0.5","4.0.6"],"67.0.3396.99":["4.0.0-nightly.20180929"],"68.0.3440.128":["4.0.0-nightly.20181006"],"69.0.3497.128":["4.0.7","4.0.8","4.1.0","4.1.1","4.1.2","4.1.3","4.1.4","4.1.5","4.2.0","4.2.1","4.2.2","4.2.3","4.2.4","4.2.5","4.2.6","4.2.7","4.2.8","4.2.9","4.2.10","4.2.11","4.2.12"],"72.0.3626.52":["5.0.0-beta.1","5.0.0-beta.2","6.0.0-nightly.20190123"],"73.0.3683.27":["5.0.0-beta.3"],"73.0.3683.54":["5.0.0-beta.4"],"73.0.3683.61":["5.0.0-beta.5"],"73.0.3683.84":["5.0.0-beta.6"],"73.0.3683.94":["5.0.0-beta.7"],"73.0.3683.104":["5.0.0-beta.8"],"73.0.3683.117":["5.0.0-beta.9"],"70.0.3538.110":["5.0.0-nightly.20190107"],"71.0.3578.98":["5.0.0-nightly.20190121","5.0.0-nightly.20190122"],"73.0.3683.119":["5.0.0"],"73.0.3683.121":["5.0.1","5.0.2","5.0.3","5.0.4","5.0.5","5.0.6","5.0.7","5.0.8","5.0.9","5.0.10","5.0.11","5.0.12","5.0.13"],"76.0.3774.1":["6.0.0-beta.1"],"76.0.3783.1":["6.0.0-beta.2","6.0.0-beta.3","6.0.0-beta.4"],"76.0.3805.4":["6.0.0-beta.5"],"76.0.3809.3":["6.0.0-beta.6"],"76.0.3809.22":["6.0.0-beta.7"],"76.0.3809.26":["6.0.0-beta.8","6.0.0-beta.9"],"76.0.3809.37":["6.0.0-beta.10"],"76.0.3809.42":["6.0.0-beta.11"],"76.0.3809.54":["6.0.0-beta.12"],"76.0.3809.60":["6.0.0-beta.13"],"76.0.3809.68":["6.0.0-beta.14"],"76.0.3809.74":["6.0.0-beta.15"],"72.0.3626.107":["6.0.0-nightly.20190212"],"72.0.3626.110":["6.0.0-nightly.20190213"],"74.0.3724.8":["6.0.0-nightly.20190311"],"76.0.3809.88":["6.0.0"],"76.0.3809.102":["6.0.1"],"76.0.3809.110":["6.0.2"],"76.0.3809.126":["6.0.3"],"76.0.3809.131":["6.0.4"],"76.0.3809.136":["6.0.5"],"76.0.3809.138":["6.0.6"],"76.0.3809.139":["6.0.7"],"76.0.3809.146":["6.0.8","6.0.9","6.0.10","6.0.11","6.0.12","6.1.0","6.1.1","6.1.2","6.1.3","6.1.4","6.1.5","6.1.6","6.1.7","6.1.8","6.1.9","6.1.10","6.1.11","6.1.12"],"78.0.3866.0":["7.0.0-beta.1","7.0.0-beta.2","7.0.0-beta.3","7.0.0-nightly.20190727","7.0.0-nightly.20190728","7.0.0-nightly.20190729","7.0.0-nightly.20190730","7.0.0-nightly.20190731","8.0.0-nightly.20190801","8.0.0-nightly.20190802"],"78.0.3896.6":["7.0.0-beta.4"],"78.0.3905.1":["7.0.0-beta.5","7.0.0-beta.6","7.0.0-beta.7","7.0.0"],"76.0.3784.0":["7.0.0-nightly.20190521"],"76.0.3806.0":["7.0.0-nightly.20190529","7.0.0-nightly.20190530","7.0.0-nightly.20190531","7.0.0-nightly.20190602","7.0.0-nightly.20190603"],"77.0.3814.0":["7.0.0-nightly.20190604"],"77.0.3815.0":["7.0.0-nightly.20190605","7.0.0-nightly.20190606","7.0.0-nightly.20190607","7.0.0-nightly.20190608","7.0.0-nightly.20190609","7.0.0-nightly.20190611","7.0.0-nightly.20190612","7.0.0-nightly.20190613","7.0.0-nightly.20190615","7.0.0-nightly.20190616","7.0.0-nightly.20190618","7.0.0-nightly.20190619","7.0.0-nightly.20190622","7.0.0-nightly.20190623","7.0.0-nightly.20190624","7.0.0-nightly.20190627","7.0.0-nightly.20190629","7.0.0-nightly.20190630","7.0.0-nightly.20190701","7.0.0-nightly.20190702"],"77.0.3843.0":["7.0.0-nightly.20190704","7.0.0-nightly.20190705"],"77.0.3848.0":["7.0.0-nightly.20190719","7.0.0-nightly.20190720","7.0.0-nightly.20190721"],"77.0.3864.0":["7.0.0-nightly.20190726"],"78.0.3904.92":["7.0.1"],"78.0.3904.94":["7.1.0"],"78.0.3904.99":["7.1.1"],"78.0.3904.113":["7.1.2"],"78.0.3904.126":["7.1.3"],"78.0.3904.130":["7.1.4","7.1.5","7.1.6","7.1.7","7.1.8","7.1.9","7.1.10","7.1.11","7.1.12","7.1.13","7.1.14","7.2.0","7.2.1","7.2.2","7.2.3","7.2.4","7.3.0","7.3.1","7.3.2","7.3.3"],"79.0.3931.0":["8.0.0-beta.1","8.0.0-beta.2","8.0.0-nightly.20191019","8.0.0-nightly.20191020","8.0.0-nightly.20191021","8.0.0-nightly.20191023"],"80.0.3955.0":["8.0.0-beta.3","8.0.0-beta.4"],"80.0.3987.14":["8.0.0-beta.5"],"80.0.3987.51":["8.0.0-beta.6"],"80.0.3987.59":["8.0.0-beta.7"],"80.0.3987.75":["8.0.0-beta.8","8.0.0-beta.9"],"78.0.3871.0":["8.0.0-nightly.20190803","8.0.0-nightly.20190806","8.0.0-nightly.20190807","8.0.0-nightly.20190808","8.0.0-nightly.20190809","8.0.0-nightly.20190810","8.0.0-nightly.20190811","8.0.0-nightly.20190812","8.0.0-nightly.20190813","8.0.0-nightly.20190814","8.0.0-nightly.20190815"],"78.0.3881.0":["8.0.0-nightly.20190816","8.0.0-nightly.20190817","8.0.0-nightly.20190818","8.0.0-nightly.20190819","8.0.0-nightly.20190820"],"78.0.3892.0":["8.0.0-nightly.20190824","8.0.0-nightly.20190825","8.0.0-nightly.20190827","8.0.0-nightly.20190828","8.0.0-nightly.20190830","8.0.0-nightly.20190901","8.0.0-nightly.20190902","8.0.0-nightly.20190907","8.0.0-nightly.20190909","8.0.0-nightly.20190910","8.0.0-nightly.20190911","8.0.0-nightly.20190912","8.0.0-nightly.20190913","8.0.0-nightly.20190914","8.0.0-nightly.20190915","8.0.0-nightly.20190917"],"79.0.3915.0":["8.0.0-nightly.20190919","8.0.0-nightly.20190920"],"79.0.3919.0":["8.0.0-nightly.20190922","8.0.0-nightly.20190923","8.0.0-nightly.20190924","8.0.0-nightly.20190926","8.0.0-nightly.20190928","8.0.0-nightly.20190929","8.0.0-nightly.20190930","8.0.0-nightly.20191001","8.0.0-nightly.20191004","8.0.0-nightly.20191005","8.0.0-nightly.20191006","8.0.0-nightly.20191009","8.0.0-nightly.20191011","8.0.0-nightly.20191012","8.0.0-nightly.20191017"],"80.0.3952.0":["8.0.0-nightly.20191101","8.0.0-nightly.20191103","8.0.0-nightly.20191105"],"80.0.3987.86":["8.0.0","8.0.1","8.0.2"],"80.0.3987.134":["8.0.3"],"80.0.3987.137":["8.1.0"],"80.0.3987.141":["8.1.1"],"80.0.3987.158":["8.2.0"],"80.0.3987.163":["8.2.1","8.2.2","8.2.3","8.5.3","8.5.4","8.5.5"],"80.0.3987.165":["8.2.4","8.2.5","8.3.0","8.3.1","8.3.2","8.3.3","8.3.4","8.4.0","8.4.1","8.5.0","8.5.1","8.5.2"],"82.0.4048.0":["9.0.0-beta.1","9.0.0-beta.2","9.0.0-beta.3","9.0.0-beta.4","9.0.0-beta.5"],"82.0.4058.2":["9.0.0-beta.6","9.0.0-beta.7","9.0.0-beta.9"],"82.0.4085.10":["9.0.0-beta.10"],"82.0.4085.14":["9.0.0-beta.11","9.0.0-beta.12","9.0.0-beta.13"],"82.0.4085.27":["9.0.0-beta.14"],"83.0.4102.3":["9.0.0-beta.15","9.0.0-beta.16"],"83.0.4103.14":["9.0.0-beta.17"],"83.0.4103.16":["9.0.0-beta.18"],"83.0.4103.24":["9.0.0-beta.19"],"83.0.4103.26":["9.0.0-beta.20","9.0.0-beta.21"],"83.0.4103.34":["9.0.0-beta.22"],"83.0.4103.44":["9.0.0-beta.23"],"83.0.4103.45":["9.0.0-beta.24"],"80.0.3954.0":["9.0.0-nightly.20191121","9.0.0-nightly.20191122","9.0.0-nightly.20191123","9.0.0-nightly.20191124","9.0.0-nightly.20191126","9.0.0-nightly.20191128","9.0.0-nightly.20191129","9.0.0-nightly.20191130","9.0.0-nightly.20191201","9.0.0-nightly.20191202","9.0.0-nightly.20191203","9.0.0-nightly.20191204","9.0.0-nightly.20191205","9.0.0-nightly.20191210"],"81.0.3994.0":["9.0.0-nightly.20191220","9.0.0-nightly.20191221","9.0.0-nightly.20191222","9.0.0-nightly.20191223","9.0.0-nightly.20191224","9.0.0-nightly.20191225","9.0.0-nightly.20191226","9.0.0-nightly.20191228","9.0.0-nightly.20191229","9.0.0-nightly.20191230","9.0.0-nightly.20191231","9.0.0-nightly.20200101","9.0.0-nightly.20200103","9.0.0-nightly.20200104","9.0.0-nightly.20200105","9.0.0-nightly.20200106","9.0.0-nightly.20200108","9.0.0-nightly.20200109","9.0.0-nightly.20200110","9.0.0-nightly.20200111","9.0.0-nightly.20200113","9.0.0-nightly.20200115","9.0.0-nightly.20200116","9.0.0-nightly.20200117"],"81.0.4030.0":["9.0.0-nightly.20200119","9.0.0-nightly.20200121"],"83.0.4103.64":["9.0.0"],"83.0.4103.94":["9.0.1","9.0.2"],"83.0.4103.100":["9.0.3"],"83.0.4103.104":["9.0.4"],"83.0.4103.119":["9.0.5"],"83.0.4103.122":["9.1.0","9.1.1","9.1.2","9.2.0","9.2.1","9.3.0","9.3.1","9.3.2","9.3.3","9.3.4","9.3.5","9.4.0","9.4.1","9.4.2","9.4.3","9.4.4"],"84.0.4129.0":["10.0.0-beta.1","10.0.0-beta.2","10.0.0-nightly.20200501","10.0.0-nightly.20200504","10.0.0-nightly.20200505","10.0.0-nightly.20200506","10.0.0-nightly.20200507","10.0.0-nightly.20200508","10.0.0-nightly.20200511","10.0.0-nightly.20200512","10.0.0-nightly.20200513","10.0.0-nightly.20200514","10.0.0-nightly.20200515","10.0.0-nightly.20200518","10.0.0-nightly.20200519","10.0.0-nightly.20200520","10.0.0-nightly.20200521","11.0.0-nightly.20200525","11.0.0-nightly.20200526"],"85.0.4161.2":["10.0.0-beta.3","10.0.0-beta.4"],"85.0.4181.1":["10.0.0-beta.8","10.0.0-beta.9"],"85.0.4183.19":["10.0.0-beta.10"],"85.0.4183.20":["10.0.0-beta.11"],"85.0.4183.26":["10.0.0-beta.12"],"85.0.4183.39":["10.0.0-beta.13","10.0.0-beta.14","10.0.0-beta.15","10.0.0-beta.17","10.0.0-beta.19","10.0.0-beta.20","10.0.0-beta.21"],"85.0.4183.70":["10.0.0-beta.23"],"85.0.4183.78":["10.0.0-beta.24"],"85.0.4183.80":["10.0.0-beta.25"],"82.0.4050.0":["10.0.0-nightly.20200209","10.0.0-nightly.20200210","10.0.0-nightly.20200211","10.0.0-nightly.20200216","10.0.0-nightly.20200217","10.0.0-nightly.20200218","10.0.0-nightly.20200221","10.0.0-nightly.20200222","10.0.0-nightly.20200223","10.0.0-nightly.20200226","10.0.0-nightly.20200303"],"82.0.4076.0":["10.0.0-nightly.20200304","10.0.0-nightly.20200305","10.0.0-nightly.20200306","10.0.0-nightly.20200309","10.0.0-nightly.20200310"],"82.0.4083.0":["10.0.0-nightly.20200311"],"83.0.4086.0":["10.0.0-nightly.20200316"],"83.0.4087.0":["10.0.0-nightly.20200317","10.0.0-nightly.20200318","10.0.0-nightly.20200320","10.0.0-nightly.20200323","10.0.0-nightly.20200324","10.0.0-nightly.20200325","10.0.0-nightly.20200326","10.0.0-nightly.20200327","10.0.0-nightly.20200330","10.0.0-nightly.20200331","10.0.0-nightly.20200401","10.0.0-nightly.20200402","10.0.0-nightly.20200403","10.0.0-nightly.20200406"],"83.0.4095.0":["10.0.0-nightly.20200408","10.0.0-nightly.20200410","10.0.0-nightly.20200413"],"84.0.4114.0":["10.0.0-nightly.20200414"],"84.0.4115.0":["10.0.0-nightly.20200415","10.0.0-nightly.20200416","10.0.0-nightly.20200417"],"84.0.4121.0":["10.0.0-nightly.20200422","10.0.0-nightly.20200423"],"84.0.4125.0":["10.0.0-nightly.20200427","10.0.0-nightly.20200428","10.0.0-nightly.20200429","10.0.0-nightly.20200430"],"85.0.4183.84":["10.0.0"],"85.0.4183.86":["10.0.1"],"85.0.4183.87":["10.1.0"],"85.0.4183.93":["10.1.1"],"85.0.4183.98":["10.1.2"],"85.0.4183.121":["10.1.3","10.1.4","10.1.5","10.1.6","10.1.7","10.2.0","10.3.0","10.3.1","10.3.2","10.4.0","10.4.1","10.4.2","10.4.3","10.4.4","10.4.5","10.4.6","10.4.7"],"86.0.4234.0":["11.0.0-beta.1","11.0.0-beta.3","11.0.0-beta.4","11.0.0-beta.5","11.0.0-beta.6","11.0.0-beta.7","11.0.0-nightly.20200822","11.0.0-nightly.20200824","11.0.0-nightly.20200825","11.0.0-nightly.20200826","12.0.0-nightly.20200827","12.0.0-nightly.20200831","12.0.0-nightly.20200902","12.0.0-nightly.20200903","12.0.0-nightly.20200907","12.0.0-nightly.20200910","12.0.0-nightly.20200911","12.0.0-nightly.20200914"],"87.0.4251.1":["11.0.0-beta.8","11.0.0-beta.9","11.0.0-beta.11"],"87.0.4280.11":["11.0.0-beta.12","11.0.0-beta.13"],"87.0.4280.27":["11.0.0-beta.16","11.0.0-beta.17","11.0.0-beta.18","11.0.0-beta.19"],"87.0.4280.40":["11.0.0-beta.20"],"87.0.4280.47":["11.0.0-beta.22","11.0.0-beta.23"],"85.0.4156.0":["11.0.0-nightly.20200529"],"85.0.4162.0":["11.0.0-nightly.20200602","11.0.0-nightly.20200603","11.0.0-nightly.20200604","11.0.0-nightly.20200609","11.0.0-nightly.20200610","11.0.0-nightly.20200611","11.0.0-nightly.20200615","11.0.0-nightly.20200616","11.0.0-nightly.20200617","11.0.0-nightly.20200618","11.0.0-nightly.20200619"],"85.0.4179.0":["11.0.0-nightly.20200701","11.0.0-nightly.20200702","11.0.0-nightly.20200703","11.0.0-nightly.20200706","11.0.0-nightly.20200707","11.0.0-nightly.20200708","11.0.0-nightly.20200709"],"86.0.4203.0":["11.0.0-nightly.20200716","11.0.0-nightly.20200717","11.0.0-nightly.20200720","11.0.0-nightly.20200721"],"86.0.4209.0":["11.0.0-nightly.20200723","11.0.0-nightly.20200724","11.0.0-nightly.20200729","11.0.0-nightly.20200730","11.0.0-nightly.20200731","11.0.0-nightly.20200803","11.0.0-nightly.20200804","11.0.0-nightly.20200805","11.0.0-nightly.20200811","11.0.0-nightly.20200812"],"87.0.4280.60":["11.0.0","11.0.1"],"87.0.4280.67":["11.0.2","11.0.3","11.0.4"],"87.0.4280.88":["11.0.5","11.1.0","11.1.1"],"87.0.4280.141":["11.2.0","11.2.1","11.2.2","11.2.3","11.3.0","11.4.0","11.4.1","11.4.2","11.4.3","11.4.4","11.4.5","11.4.6","11.4.7","11.4.8","11.4.9","11.4.10","11.4.11","11.4.12","11.5.0"],"89.0.4328.0":["12.0.0-beta.1","12.0.0-beta.3","12.0.0-beta.4","12.0.0-beta.5","12.0.0-beta.6","12.0.0-beta.7","12.0.0-beta.8","12.0.0-beta.9","12.0.0-beta.10","12.0.0-beta.11","12.0.0-beta.12","12.0.0-beta.14","13.0.0-nightly.20201119","13.0.0-nightly.20201123","13.0.0-nightly.20201124","13.0.0-nightly.20201126","13.0.0-nightly.20201127","13.0.0-nightly.20201130","13.0.0-nightly.20201201","13.0.0-nightly.20201202","13.0.0-nightly.20201203","13.0.0-nightly.20201204","13.0.0-nightly.20201207","13.0.0-nightly.20201208","13.0.0-nightly.20201209","13.0.0-nightly.20201210","13.0.0-nightly.20201211","13.0.0-nightly.20201214"],"89.0.4348.1":["12.0.0-beta.16","12.0.0-beta.18","12.0.0-beta.19","12.0.0-beta.20"],"89.0.4388.2":["12.0.0-beta.21","12.0.0-beta.22","12.0.0-beta.23","12.0.0-beta.24","12.0.0-beta.25","12.0.0-beta.26"],"89.0.4389.23":["12.0.0-beta.27","12.0.0-beta.28","12.0.0-beta.29"],"89.0.4389.58":["12.0.0-beta.30","12.0.0-beta.31"],"87.0.4268.0":["12.0.0-nightly.20201002","12.0.0-nightly.20201007","12.0.0-nightly.20201009","12.0.0-nightly.20201012","12.0.0-nightly.20201013","12.0.0-nightly.20201014","12.0.0-nightly.20201015"],"88.0.4292.0":["12.0.0-nightly.20201023","12.0.0-nightly.20201026"],"88.0.4306.0":["12.0.0-nightly.20201030","12.0.0-nightly.20201102","12.0.0-nightly.20201103","12.0.0-nightly.20201104","12.0.0-nightly.20201105","12.0.0-nightly.20201106","12.0.0-nightly.20201111","12.0.0-nightly.20201112"],"88.0.4324.0":["12.0.0-nightly.20201116"],"89.0.4389.69":["12.0.0"],"89.0.4389.82":["12.0.1"],"89.0.4389.90":["12.0.2"],"89.0.4389.114":["12.0.3","12.0.4"],"89.0.4389.128":["12.0.5","12.0.6","12.0.7","12.0.8","12.0.9","12.0.10","12.0.11","12.0.12","12.0.13","12.0.14","12.0.15","12.0.16","12.0.17","12.0.18","12.1.0","12.1.1","12.1.2","12.2.0","12.2.1","12.2.2","12.2.3"],"90.0.4402.0":["13.0.0-beta.2","13.0.0-beta.3","13.0.0-nightly.20210210","13.0.0-nightly.20210211","13.0.0-nightly.20210212","13.0.0-nightly.20210216","13.0.0-nightly.20210217","13.0.0-nightly.20210218","13.0.0-nightly.20210219","13.0.0-nightly.20210222","13.0.0-nightly.20210225","13.0.0-nightly.20210226","13.0.0-nightly.20210301","13.0.0-nightly.20210302","13.0.0-nightly.20210303","14.0.0-nightly.20210304"],"90.0.4415.0":["13.0.0-beta.4","13.0.0-beta.5","13.0.0-beta.6","13.0.0-beta.7","13.0.0-beta.8","13.0.0-beta.9","13.0.0-beta.10","13.0.0-beta.11","13.0.0-beta.12","13.0.0-beta.13","14.0.0-nightly.20210305","14.0.0-nightly.20210308","14.0.0-nightly.20210309","14.0.0-nightly.20210311","14.0.0-nightly.20210315","14.0.0-nightly.20210316","14.0.0-nightly.20210317","14.0.0-nightly.20210318","14.0.0-nightly.20210319","14.0.0-nightly.20210323","14.0.0-nightly.20210324","14.0.0-nightly.20210325","14.0.0-nightly.20210326","14.0.0-nightly.20210329","14.0.0-nightly.20210330"],"91.0.4448.0":["13.0.0-beta.14","13.0.0-beta.16","13.0.0-beta.17","13.0.0-beta.18","13.0.0-beta.20","14.0.0-nightly.20210331","14.0.0-nightly.20210401","14.0.0-nightly.20210402","14.0.0-nightly.20210406","14.0.0-nightly.20210407","14.0.0-nightly.20210408","14.0.0-nightly.20210409","14.0.0-nightly.20210413"],"91.0.4472.33":["13.0.0-beta.21","13.0.0-beta.22","13.0.0-beta.23"],"91.0.4472.38":["13.0.0-beta.24","13.0.0-beta.25","13.0.0-beta.26","13.0.0-beta.27","13.0.0-beta.28"],"89.0.4349.0":["13.0.0-nightly.20201215","13.0.0-nightly.20201216","13.0.0-nightly.20201221","13.0.0-nightly.20201222"],"89.0.4359.0":["13.0.0-nightly.20201223","13.0.0-nightly.20210104","13.0.0-nightly.20210108","13.0.0-nightly.20210111"],"89.0.4386.0":["13.0.0-nightly.20210113","13.0.0-nightly.20210114","13.0.0-nightly.20210118","13.0.0-nightly.20210122","13.0.0-nightly.20210125"],"89.0.4389.0":["13.0.0-nightly.20210127","13.0.0-nightly.20210128","13.0.0-nightly.20210129","13.0.0-nightly.20210201","13.0.0-nightly.20210202","13.0.0-nightly.20210203","13.0.0-nightly.20210205","13.0.0-nightly.20210208","13.0.0-nightly.20210209"],"91.0.4472.69":["13.0.0","13.0.1"],"91.0.4472.77":["13.1.0","13.1.1","13.1.2"],"91.0.4472.106":["13.1.3","13.1.4"],"91.0.4472.124":["13.1.5","13.1.6","13.1.7"],"91.0.4472.164":["13.1.8","13.1.9","13.2.0","13.2.1","13.2.2","13.2.3","13.3.0","13.4.0","13.5.0","13.5.1","13.5.2","13.6.0","13.6.1","13.6.2","13.6.3","13.6.6","13.6.7","13.6.8","13.6.9"],"92.0.4511.0":["14.0.0-beta.1","14.0.0-beta.2","14.0.0-beta.3","14.0.0-nightly.20210520","14.0.0-nightly.20210523","14.0.0-nightly.20210524","15.0.0-nightly.20210527","15.0.0-nightly.20210528","15.0.0-nightly.20210531","15.0.0-nightly.20210601","15.0.0-nightly.20210602"],"93.0.4536.0":["14.0.0-beta.5","14.0.0-beta.6","14.0.0-beta.7","14.0.0-beta.8","15.0.0-nightly.20210609","15.0.0-nightly.20210610","15.0.0-nightly.20210611","15.0.0-nightly.20210614","15.0.0-nightly.20210615","15.0.0-nightly.20210616"],"93.0.4539.0":["14.0.0-beta.9","14.0.0-beta.10","15.0.0-nightly.20210617","15.0.0-nightly.20210618","15.0.0-nightly.20210621","15.0.0-nightly.20210622"],"93.0.4557.4":["14.0.0-beta.11","14.0.0-beta.12"],"93.0.4566.0":["14.0.0-beta.13","14.0.0-beta.14","14.0.0-beta.15","14.0.0-beta.16","14.0.0-beta.17","15.0.0-alpha.1","15.0.0-alpha.2","15.0.0-nightly.20210706","15.0.0-nightly.20210707","15.0.0-nightly.20210708","15.0.0-nightly.20210709","15.0.0-nightly.20210712","15.0.0-nightly.20210713","15.0.0-nightly.20210714","15.0.0-nightly.20210715","15.0.0-nightly.20210716","15.0.0-nightly.20210719","15.0.0-nightly.20210720","15.0.0-nightly.20210721","16.0.0-nightly.20210722","16.0.0-nightly.20210723","16.0.0-nightly.20210726"],"93.0.4577.15":["14.0.0-beta.18","14.0.0-beta.19","14.0.0-beta.20","14.0.0-beta.21"],"93.0.4577.25":["14.0.0-beta.22","14.0.0-beta.23"],"93.0.4577.51":["14.0.0-beta.24","14.0.0-beta.25"],"92.0.4475.0":["14.0.0-nightly.20210426","14.0.0-nightly.20210427"],"92.0.4488.0":["14.0.0-nightly.20210430","14.0.0-nightly.20210503"],"92.0.4496.0":["14.0.0-nightly.20210505"],"92.0.4498.0":["14.0.0-nightly.20210506"],"92.0.4499.0":["14.0.0-nightly.20210507","14.0.0-nightly.20210510","14.0.0-nightly.20210511","14.0.0-nightly.20210512","14.0.0-nightly.20210513"],"92.0.4505.0":["14.0.0-nightly.20210514","14.0.0-nightly.20210517","14.0.0-nightly.20210518","14.0.0-nightly.20210519"],"93.0.4577.58":["14.0.0"],"93.0.4577.63":["14.0.1"],"93.0.4577.82":["14.0.2","14.1.0","14.1.1","14.2.0","14.2.1","14.2.2","14.2.3","14.2.4","14.2.5","14.2.6","14.2.7","14.2.8","14.2.9"],"94.0.4584.0":["15.0.0-alpha.3","15.0.0-alpha.4","15.0.0-alpha.5","15.0.0-alpha.6","16.0.0-nightly.20210727","16.0.0-nightly.20210728","16.0.0-nightly.20210729","16.0.0-nightly.20210730","16.0.0-nightly.20210802","16.0.0-nightly.20210803","16.0.0-nightly.20210804","16.0.0-nightly.20210805","16.0.0-nightly.20210806","16.0.0-nightly.20210809","16.0.0-nightly.20210810","16.0.0-nightly.20210811"],"94.0.4590.2":["15.0.0-alpha.7","15.0.0-alpha.8","15.0.0-alpha.9","16.0.0-nightly.20210812","16.0.0-nightly.20210813","16.0.0-nightly.20210816","16.0.0-nightly.20210817","16.0.0-nightly.20210818","16.0.0-nightly.20210819","16.0.0-nightly.20210820","16.0.0-nightly.20210823"],"94.0.4606.12":["15.0.0-alpha.10"],"94.0.4606.20":["15.0.0-beta.1","15.0.0-beta.2"],"94.0.4606.31":["15.0.0-beta.3","15.0.0-beta.4","15.0.0-beta.5","15.0.0-beta.6","15.0.0-beta.7"],"93.0.4530.0":["15.0.0-nightly.20210603","15.0.0-nightly.20210604"],"93.0.4535.0":["15.0.0-nightly.20210608"],"93.0.4550.0":["15.0.0-nightly.20210623","15.0.0-nightly.20210624"],"93.0.4552.0":["15.0.0-nightly.20210625","15.0.0-nightly.20210628","15.0.0-nightly.20210629"],"93.0.4558.0":["15.0.0-nightly.20210630","15.0.0-nightly.20210701","15.0.0-nightly.20210702","15.0.0-nightly.20210705"],"94.0.4606.51":["15.0.0"],"94.0.4606.61":["15.1.0","15.1.1"],"94.0.4606.71":["15.1.2"],"94.0.4606.81":["15.2.0","15.3.0","15.3.1","15.3.2","15.3.3","15.3.4","15.3.5","15.3.6","15.3.7","15.4.0","15.4.1","15.4.2","15.5.0","15.5.1","15.5.2","15.5.3","15.5.4","15.5.5","15.5.6","15.5.7"],"95.0.4629.0":["16.0.0-alpha.1","16.0.0-alpha.2","16.0.0-alpha.3","16.0.0-alpha.4","16.0.0-alpha.5","16.0.0-alpha.6","16.0.0-alpha.7","16.0.0-nightly.20210902","16.0.0-nightly.20210903","16.0.0-nightly.20210906","16.0.0-nightly.20210907","16.0.0-nightly.20210908","16.0.0-nightly.20210909","16.0.0-nightly.20210910","16.0.0-nightly.20210913","16.0.0-nightly.20210914","16.0.0-nightly.20210915","16.0.0-nightly.20210916","16.0.0-nightly.20210917","16.0.0-nightly.20210920","16.0.0-nightly.20210921","16.0.0-nightly.20210922","17.0.0-nightly.20210923","17.0.0-nightly.20210924","17.0.0-nightly.20210927","17.0.0-nightly.20210928","17.0.0-nightly.20210929","17.0.0-nightly.20210930","17.0.0-nightly.20211001","17.0.0-nightly.20211004","17.0.0-nightly.20211005"],"96.0.4647.0":["16.0.0-alpha.8","16.0.0-alpha.9","16.0.0-beta.1","16.0.0-beta.2","16.0.0-beta.3","17.0.0-nightly.20211006","17.0.0-nightly.20211007","17.0.0-nightly.20211008","17.0.0-nightly.20211011","17.0.0-nightly.20211012","17.0.0-nightly.20211013","17.0.0-nightly.20211014","17.0.0-nightly.20211015","17.0.0-nightly.20211018","17.0.0-nightly.20211019","17.0.0-nightly.20211020","17.0.0-nightly.20211021"],"96.0.4664.18":["16.0.0-beta.4","16.0.0-beta.5"],"96.0.4664.27":["16.0.0-beta.6","16.0.0-beta.7"],"96.0.4664.35":["16.0.0-beta.8","16.0.0-beta.9"],"95.0.4612.5":["16.0.0-nightly.20210824","16.0.0-nightly.20210825","16.0.0-nightly.20210826","16.0.0-nightly.20210827","16.0.0-nightly.20210830","16.0.0-nightly.20210831","16.0.0-nightly.20210901"],"96.0.4664.45":["16.0.0","16.0.1"],"96.0.4664.55":["16.0.2","16.0.3","16.0.4","16.0.5"],"96.0.4664.110":["16.0.6","16.0.7","16.0.8"],"96.0.4664.174":["16.0.9","16.0.10","16.1.0","16.1.1","16.2.0","16.2.1","16.2.2","16.2.3","16.2.4","16.2.5","16.2.6","16.2.7","16.2.8"],"96.0.4664.4":["17.0.0-alpha.1","17.0.0-alpha.2","17.0.0-alpha.3","17.0.0-nightly.20211022","17.0.0-nightly.20211025","17.0.0-nightly.20211026","17.0.0-nightly.20211027","17.0.0-nightly.20211028","17.0.0-nightly.20211029","17.0.0-nightly.20211101","17.0.0-nightly.20211102","17.0.0-nightly.20211103","17.0.0-nightly.20211104","17.0.0-nightly.20211105","17.0.0-nightly.20211108","17.0.0-nightly.20211109","17.0.0-nightly.20211110","17.0.0-nightly.20211111","17.0.0-nightly.20211112","17.0.0-nightly.20211115","17.0.0-nightly.20211116","17.0.0-nightly.20211117","18.0.0-nightly.20211118","18.0.0-nightly.20211119","18.0.0-nightly.20211122","18.0.0-nightly.20211123"],"98.0.4706.0":["17.0.0-alpha.4","17.0.0-alpha.5","17.0.0-alpha.6","17.0.0-beta.1","17.0.0-beta.2","18.0.0-nightly.20211124","18.0.0-nightly.20211125","18.0.0-nightly.20211126","18.0.0-nightly.20211129","18.0.0-nightly.20211130","18.0.0-nightly.20211201","18.0.0-nightly.20211202","18.0.0-nightly.20211203","18.0.0-nightly.20211206","18.0.0-nightly.20211207","18.0.0-nightly.20211208","18.0.0-nightly.20211209","18.0.0-nightly.20211210","18.0.0-nightly.20211213","18.0.0-nightly.20211214","18.0.0-nightly.20211215","18.0.0-nightly.20211216","18.0.0-nightly.20211217","18.0.0-nightly.20211220","18.0.0-nightly.20211221","18.0.0-nightly.20211222","18.0.0-nightly.20211223","18.0.0-nightly.20211228","18.0.0-nightly.20211229","18.0.0-nightly.20211231","18.0.0-nightly.20220103","18.0.0-nightly.20220104","18.0.0-nightly.20220105","18.0.0-nightly.20220106","18.0.0-nightly.20220107","18.0.0-nightly.20220110"],"98.0.4758.9":["17.0.0-beta.3"],"98.0.4758.11":["17.0.0-beta.4","17.0.0-beta.5","17.0.0-beta.6","17.0.0-beta.7","17.0.0-beta.8","17.0.0-beta.9"],"98.0.4758.74":["17.0.0"],"98.0.4758.82":["17.0.1"],"98.0.4758.102":["17.1.0"],"98.0.4758.109":["17.1.1","17.1.2","17.2.0"],"98.0.4758.141":["17.3.0","17.3.1","17.4.0","17.4.1","17.4.2","17.4.3","17.4.4","17.4.5","17.4.6","17.4.7","17.4.8","17.4.9","17.4.10","17.4.11"],"99.0.4767.0":["18.0.0-alpha.1","18.0.0-alpha.2","18.0.0-alpha.3","18.0.0-alpha.4","18.0.0-alpha.5","18.0.0-nightly.20220111","18.0.0-nightly.20220112","18.0.0-nightly.20220113","18.0.0-nightly.20220114","18.0.0-nightly.20220117","18.0.0-nightly.20220118","18.0.0-nightly.20220119","18.0.0-nightly.20220121","18.0.0-nightly.20220124","18.0.0-nightly.20220125","18.0.0-nightly.20220127","18.0.0-nightly.20220128","18.0.0-nightly.20220131","18.0.0-nightly.20220201","19.0.0-nightly.20220202","19.0.0-nightly.20220203","19.0.0-nightly.20220204","19.0.0-nightly.20220207","19.0.0-nightly.20220208","19.0.0-nightly.20220209"],"100.0.4894.0":["18.0.0-beta.1","18.0.0-beta.2","18.0.0-beta.3","18.0.0-beta.4","18.0.0-beta.5","18.0.0-beta.6","19.0.0-nightly.20220308","19.0.0-nightly.20220309","19.0.0-nightly.20220310","19.0.0-nightly.20220311","19.0.0-nightly.20220314","19.0.0-nightly.20220315","19.0.0-nightly.20220316","19.0.0-nightly.20220317","19.0.0-nightly.20220318","19.0.0-nightly.20220321","19.0.0-nightly.20220322","19.0.0-nightly.20220323","19.0.0-nightly.20220324"],"100.0.4896.56":["18.0.0"],"100.0.4896.60":["18.0.1","18.0.2"],"100.0.4896.75":["18.0.3","18.0.4"],"100.0.4896.127":["18.1.0"],"100.0.4896.143":["18.2.0","18.2.1","18.2.2","18.2.3"],"100.0.4896.160":["18.2.4","18.3.0","18.3.1","18.3.2","18.3.3","18.3.4","18.3.5","18.3.6","18.3.7","18.3.8","18.3.9","18.3.11","18.3.12","18.3.13","18.3.14","18.3.15"],"102.0.4962.3":["19.0.0-alpha.1","19.0.0-nightly.20220328","19.0.0-nightly.20220329","20.0.0-nightly.20220330"],"102.0.4971.0":["19.0.0-alpha.2","19.0.0-alpha.3","20.0.0-nightly.20220411"],"102.0.4989.0":["19.0.0-alpha.4","19.0.0-alpha.5","20.0.0-nightly.20220414","20.0.0-nightly.20220415","20.0.0-nightly.20220418","20.0.0-nightly.20220419","20.0.0-nightly.20220420","20.0.0-nightly.20220421"],"102.0.4999.0":["19.0.0-beta.1","19.0.0-beta.2","19.0.0-beta.3","20.0.0-nightly.20220425","20.0.0-nightly.20220426","20.0.0-nightly.20220427","20.0.0-nightly.20220428","20.0.0-nightly.20220429","20.0.0-nightly.20220502","20.0.0-nightly.20220503","20.0.0-nightly.20220504","20.0.0-nightly.20220505","20.0.0-nightly.20220506","20.0.0-nightly.20220509","20.0.0-nightly.20220511","20.0.0-nightly.20220512","20.0.0-nightly.20220513","20.0.0-nightly.20220516","20.0.0-nightly.20220517"],"102.0.5005.27":["19.0.0-beta.4"],"102.0.5005.40":["19.0.0-beta.5","19.0.0-beta.6","19.0.0-beta.7"],"102.0.5005.49":["19.0.0-beta.8"],"102.0.4961.0":["19.0.0-nightly.20220325"],"102.0.5005.61":["19.0.0","19.0.1"],"102.0.5005.63":["19.0.2","19.0.3","19.0.4"],"102.0.5005.115":["19.0.5","19.0.6"],"102.0.5005.134":["19.0.7"],"102.0.5005.148":["19.0.8"],"102.0.5005.167":["19.0.9","19.0.10","19.0.11","19.0.12","19.0.13","19.0.14","19.0.15","19.0.16","19.0.17","19.1.0","19.1.1","19.1.2","19.1.3","19.1.4","19.1.5","19.1.6","19.1.7","19.1.8","19.1.9"],"103.0.5044.0":["20.0.0-alpha.1","20.0.0-nightly.20220518","20.0.0-nightly.20220519","20.0.0-nightly.20220520","20.0.0-nightly.20220523","20.0.0-nightly.20220524","21.0.0-nightly.20220526","21.0.0-nightly.20220527","21.0.0-nightly.20220530","21.0.0-nightly.20220531"],"104.0.5073.0":["20.0.0-alpha.2","20.0.0-alpha.3","20.0.0-alpha.4","20.0.0-alpha.5","20.0.0-alpha.6","20.0.0-alpha.7","20.0.0-beta.1","20.0.0-beta.2","20.0.0-beta.3","20.0.0-beta.4","20.0.0-beta.5","20.0.0-beta.6","20.0.0-beta.7","20.0.0-beta.8","21.0.0-nightly.20220602","21.0.0-nightly.20220603","21.0.0-nightly.20220606","21.0.0-nightly.20220607","21.0.0-nightly.20220608","21.0.0-nightly.20220609","21.0.0-nightly.20220610","21.0.0-nightly.20220613","21.0.0-nightly.20220614","21.0.0-nightly.20220615","21.0.0-nightly.20220616","21.0.0-nightly.20220617","21.0.0-nightly.20220620","21.0.0-nightly.20220621","21.0.0-nightly.20220622","21.0.0-nightly.20220623","21.0.0-nightly.20220624","21.0.0-nightly.20220627"],"104.0.5112.39":["20.0.0-beta.9"],"104.0.5112.48":["20.0.0-beta.10","20.0.0-beta.11","20.0.0-beta.12"],"104.0.5112.57":["20.0.0-beta.13"],"104.0.5112.65":["20.0.0"],"104.0.5112.81":["20.0.1","20.0.2","20.0.3"],"104.0.5112.102":["20.1.0","20.1.1"],"104.0.5112.114":["20.1.2","20.1.3","20.1.4"],"104.0.5112.124":["20.2.0","20.3.0","20.3.1","20.3.2","20.3.3","20.3.4","20.3.5","20.3.6","20.3.7","20.3.8","20.3.9","20.3.10","20.3.11","20.3.12"],"105.0.5187.0":["21.0.0-alpha.1","21.0.0-alpha.2","21.0.0-alpha.3","21.0.0-alpha.4","21.0.0-alpha.5","21.0.0-nightly.20220720","21.0.0-nightly.20220721","21.0.0-nightly.20220722","21.0.0-nightly.20220725","21.0.0-nightly.20220726","21.0.0-nightly.20220727","21.0.0-nightly.20220728","21.0.0-nightly.20220801","21.0.0-nightly.20220802","22.0.0-nightly.20220808","22.0.0-nightly.20220809","22.0.0-nightly.20220810","22.0.0-nightly.20220811","22.0.0-nightly.20220812","22.0.0-nightly.20220815","22.0.0-nightly.20220816","22.0.0-nightly.20220817"],"106.0.5216.0":["21.0.0-alpha.6","21.0.0-beta.1","21.0.0-beta.2","21.0.0-beta.3","21.0.0-beta.4","21.0.0-beta.5","22.0.0-nightly.20220822","22.0.0-nightly.20220823","22.0.0-nightly.20220824","22.0.0-nightly.20220825","22.0.0-nightly.20220829","22.0.0-nightly.20220830","22.0.0-nightly.20220831","22.0.0-nightly.20220901","22.0.0-nightly.20220902","22.0.0-nightly.20220905"],"106.0.5249.40":["21.0.0-beta.6","21.0.0-beta.7","21.0.0-beta.8"],"105.0.5129.0":["21.0.0-nightly.20220628","21.0.0-nightly.20220629","21.0.0-nightly.20220630","21.0.0-nightly.20220701","21.0.0-nightly.20220704","21.0.0-nightly.20220705","21.0.0-nightly.20220706","21.0.0-nightly.20220707","21.0.0-nightly.20220708","21.0.0-nightly.20220711","21.0.0-nightly.20220712","21.0.0-nightly.20220713"],"105.0.5173.0":["21.0.0-nightly.20220715","21.0.0-nightly.20220718","21.0.0-nightly.20220719"],"106.0.5249.51":["21.0.0"],"106.0.5249.61":["21.0.1"],"106.0.5249.91":["21.1.0"],"106.0.5249.103":["21.1.1"],"106.0.5249.119":["21.2.0"],"106.0.5249.165":["21.2.1"],"106.0.5249.168":["21.2.2","21.2.3"],"106.0.5249.181":["21.3.0","21.3.1"],"106.0.5249.199":["21.3.3","21.3.4","21.3.5","21.4.0","21.4.1","21.4.2","21.4.3","21.4.4"],"107.0.5286.0":["22.0.0-alpha.1","22.0.0-nightly.20220909","22.0.0-nightly.20220912","22.0.0-nightly.20220913","22.0.0-nightly.20220914","22.0.0-nightly.20220915","22.0.0-nightly.20220916","22.0.0-nightly.20220919","22.0.0-nightly.20220920","22.0.0-nightly.20220921","22.0.0-nightly.20220922","22.0.0-nightly.20220923","22.0.0-nightly.20220926","22.0.0-nightly.20220927","22.0.0-nightly.20220928","23.0.0-nightly.20220929","23.0.0-nightly.20220930","23.0.0-nightly.20221003"],"108.0.5329.0":["22.0.0-alpha.3","22.0.0-alpha.4","22.0.0-alpha.5","22.0.0-alpha.6","23.0.0-nightly.20221004","23.0.0-nightly.20221005","23.0.0-nightly.20221006","23.0.0-nightly.20221007","23.0.0-nightly.20221010","23.0.0-nightly.20221011","23.0.0-nightly.20221012","23.0.0-nightly.20221013","23.0.0-nightly.20221014","23.0.0-nightly.20221017"],"108.0.5355.0":["22.0.0-alpha.7","23.0.0-nightly.20221018","23.0.0-nightly.20221019","23.0.0-nightly.20221020","23.0.0-nightly.20221021","23.0.0-nightly.20221024","23.0.0-nightly.20221026"],"108.0.5359.10":["22.0.0-alpha.8","22.0.0-beta.1","22.0.0-beta.2","22.0.0-beta.3"],"108.0.5359.29":["22.0.0-beta.4"],"108.0.5359.40":["22.0.0-beta.5","22.0.0-beta.6"],"108.0.5359.48":["22.0.0-beta.7","22.0.0-beta.8"],"107.0.5274.0":["22.0.0-nightly.20220908"],"108.0.5359.62":["22.0.0"],"108.0.5359.125":["22.0.1"],"108.0.5359.179":["22.0.2","22.0.3","22.1.0"],"108.0.5359.215":["22.2.0","22.2.1","22.3.0","22.3.1","22.3.2","22.3.3","22.3.4","22.3.5","22.3.6","22.3.7","22.3.8","22.3.9","22.3.10","22.3.11","22.3.12","22.3.13","22.3.14","22.3.15","22.3.16","22.3.17","22.3.18","22.3.20","22.3.21","22.3.22","22.3.23","22.3.24","22.3.25","22.3.26","22.3.27"],"110.0.5415.0":["23.0.0-alpha.1","23.0.0-nightly.20221118","23.0.0-nightly.20221121","23.0.0-nightly.20221122","23.0.0-nightly.20221123","23.0.0-nightly.20221124","23.0.0-nightly.20221125","23.0.0-nightly.20221128","23.0.0-nightly.20221129","23.0.0-nightly.20221130","24.0.0-nightly.20221201","24.0.0-nightly.20221202","24.0.0-nightly.20221205"],"110.0.5451.0":["23.0.0-alpha.2","23.0.0-alpha.3","24.0.0-nightly.20221206","24.0.0-nightly.20221207","24.0.0-nightly.20221208","24.0.0-nightly.20221213","24.0.0-nightly.20221214","24.0.0-nightly.20221215","24.0.0-nightly.20221216"],"110.0.5478.5":["23.0.0-beta.1","23.0.0-beta.2","23.0.0-beta.3"],"110.0.5481.30":["23.0.0-beta.4"],"110.0.5481.38":["23.0.0-beta.5"],"110.0.5481.52":["23.0.0-beta.6","23.0.0-beta.8"],"109.0.5382.0":["23.0.0-nightly.20221027","23.0.0-nightly.20221028","23.0.0-nightly.20221031","23.0.0-nightly.20221101","23.0.0-nightly.20221102","23.0.0-nightly.20221103","23.0.0-nightly.20221104","23.0.0-nightly.20221107","23.0.0-nightly.20221108","23.0.0-nightly.20221109","23.0.0-nightly.20221110","23.0.0-nightly.20221111","23.0.0-nightly.20221114","23.0.0-nightly.20221115","23.0.0-nightly.20221116","23.0.0-nightly.20221117"],"110.0.5481.77":["23.0.0"],"110.0.5481.100":["23.1.0"],"110.0.5481.104":["23.1.1"],"110.0.5481.177":["23.1.2"],"110.0.5481.179":["23.1.3"],"110.0.5481.192":["23.1.4","23.2.0"],"110.0.5481.208":["23.2.1","23.2.2","23.2.3","23.2.4","23.3.0","23.3.1","23.3.2","23.3.3","23.3.4","23.3.5","23.3.6","23.3.7","23.3.8","23.3.9","23.3.10","23.3.11","23.3.12","23.3.13"],"111.0.5560.0":["24.0.0-alpha.1","24.0.0-alpha.2","24.0.0-alpha.3","24.0.0-alpha.4","24.0.0-alpha.5","24.0.0-alpha.6","24.0.0-alpha.7","24.0.0-nightly.20230203","24.0.0-nightly.20230206","24.0.0-nightly.20230207","24.0.0-nightly.20230208","24.0.0-nightly.20230209","25.0.0-nightly.20230210","25.0.0-nightly.20230214","25.0.0-nightly.20230215","25.0.0-nightly.20230216","25.0.0-nightly.20230217","25.0.0-nightly.20230220","25.0.0-nightly.20230221","25.0.0-nightly.20230222","25.0.0-nightly.20230223","25.0.0-nightly.20230224","25.0.0-nightly.20230227","25.0.0-nightly.20230228","25.0.0-nightly.20230301","25.0.0-nightly.20230302","25.0.0-nightly.20230303","25.0.0-nightly.20230306","25.0.0-nightly.20230307","25.0.0-nightly.20230308","25.0.0-nightly.20230309","25.0.0-nightly.20230310"],"111.0.5563.50":["24.0.0-beta.1","24.0.0-beta.2"],"112.0.5615.20":["24.0.0-beta.3","24.0.0-beta.4"],"112.0.5615.29":["24.0.0-beta.5"],"112.0.5615.39":["24.0.0-beta.6","24.0.0-beta.7"],"111.0.5518.0":["24.0.0-nightly.20230109","24.0.0-nightly.20230110","24.0.0-nightly.20230111","24.0.0-nightly.20230112","24.0.0-nightly.20230113","24.0.0-nightly.20230116","24.0.0-nightly.20230117","24.0.0-nightly.20230118","24.0.0-nightly.20230119","24.0.0-nightly.20230120","24.0.0-nightly.20230123","24.0.0-nightly.20230124","24.0.0-nightly.20230125","24.0.0-nightly.20230126","24.0.0-nightly.20230127","24.0.0-nightly.20230131","24.0.0-nightly.20230201","24.0.0-nightly.20230202"],"112.0.5615.49":["24.0.0"],"112.0.5615.50":["24.1.0","24.1.1"],"112.0.5615.87":["24.1.2"],"112.0.5615.165":["24.1.3","24.2.0","24.3.0"],"112.0.5615.183":["24.3.1"],"112.0.5615.204":["24.4.0","24.4.1","24.5.0","24.5.1","24.6.0","24.6.1","24.6.2","24.6.3","24.6.4","24.6.5","24.7.0","24.7.1","24.8.0","24.8.1","24.8.2","24.8.3","24.8.4","24.8.5","24.8.6","24.8.7","24.8.8"],"114.0.5694.0":["25.0.0-alpha.1","25.0.0-alpha.2","25.0.0-nightly.20230405","26.0.0-nightly.20230406","26.0.0-nightly.20230407","26.0.0-nightly.20230410","26.0.0-nightly.20230411"],"114.0.5710.0":["25.0.0-alpha.3","25.0.0-alpha.4","26.0.0-nightly.20230413","26.0.0-nightly.20230414","26.0.0-nightly.20230417"],"114.0.5719.0":["25.0.0-alpha.5","25.0.0-alpha.6","25.0.0-beta.1","25.0.0-beta.2","25.0.0-beta.3","26.0.0-nightly.20230421","26.0.0-nightly.20230424","26.0.0-nightly.20230425","26.0.0-nightly.20230426","26.0.0-nightly.20230427","26.0.0-nightly.20230428","26.0.0-nightly.20230501","26.0.0-nightly.20230502","26.0.0-nightly.20230503","26.0.0-nightly.20230504","26.0.0-nightly.20230505","26.0.0-nightly.20230508","26.0.0-nightly.20230509","26.0.0-nightly.20230510"],"114.0.5735.16":["25.0.0-beta.4","25.0.0-beta.5","25.0.0-beta.6","25.0.0-beta.7"],"114.0.5735.35":["25.0.0-beta.8"],"114.0.5735.45":["25.0.0-beta.9","25.0.0","25.0.1"],"113.0.5636.0":["25.0.0-nightly.20230314"],"113.0.5651.0":["25.0.0-nightly.20230315"],"113.0.5653.0":["25.0.0-nightly.20230317"],"113.0.5660.0":["25.0.0-nightly.20230320"],"113.0.5664.0":["25.0.0-nightly.20230321"],"113.0.5666.0":["25.0.0-nightly.20230322"],"113.0.5668.0":["25.0.0-nightly.20230323"],"113.0.5670.0":["25.0.0-nightly.20230324","25.0.0-nightly.20230327","25.0.0-nightly.20230328","25.0.0-nightly.20230329","25.0.0-nightly.20230330"],"114.0.5684.0":["25.0.0-nightly.20230331","25.0.0-nightly.20230403"],"114.0.5692.0":["25.0.0-nightly.20230404"],"114.0.5735.106":["25.1.0","25.1.1"],"114.0.5735.134":["25.2.0"],"114.0.5735.199":["25.3.0"],"114.0.5735.243":["25.3.1"],"114.0.5735.248":["25.3.2","25.4.0"],"114.0.5735.289":["25.5.0","25.6.0","25.7.0","25.8.0","25.8.1","25.8.2","25.8.3","25.8.4","25.9.0","25.9.1","25.9.2","25.9.3","25.9.4","25.9.5","25.9.6","25.9.7","25.9.8"],"116.0.5791.0":["26.0.0-alpha.1","26.0.0-alpha.2","26.0.0-alpha.3","26.0.0-alpha.4","26.0.0-alpha.5","26.0.0-nightly.20230526","26.0.0-nightly.20230529","26.0.0-nightly.20230530","26.0.0-nightly.20230531","27.0.0-nightly.20230601","27.0.0-nightly.20230602","27.0.0-nightly.20230605","27.0.0-nightly.20230606","27.0.0-nightly.20230607","27.0.0-nightly.20230609"],"116.0.5815.0":["26.0.0-alpha.6","27.0.0-nightly.20230612","27.0.0-nightly.20230613"],"116.0.5831.0":["26.0.0-alpha.7","27.0.0-nightly.20230615"],"116.0.5845.0":["26.0.0-alpha.8","26.0.0-beta.1","27.0.0-nightly.20230622","27.0.0-nightly.20230623","27.0.0-nightly.20230626","27.0.0-nightly.20230627","27.0.0-nightly.20230628","27.0.0-nightly.20230629","27.0.0-nightly.20230630"],"116.0.5845.14":["26.0.0-beta.2","26.0.0-beta.3","26.0.0-beta.4","26.0.0-beta.5","26.0.0-beta.6","26.0.0-beta.7"],"116.0.5845.42":["26.0.0-beta.8","26.0.0-beta.9"],"116.0.5845.49":["26.0.0-beta.10","26.0.0-beta.11"],"116.0.5845.62":["26.0.0-beta.12"],"114.0.5708.0":["26.0.0-nightly.20230412"],"114.0.5715.0":["26.0.0-nightly.20230418"],"115.0.5760.0":["26.0.0-nightly.20230511","26.0.0-nightly.20230512","26.0.0-nightly.20230515","26.0.0-nightly.20230516","26.0.0-nightly.20230517","26.0.0-nightly.20230518","26.0.0-nightly.20230519","26.0.0-nightly.20230522","26.0.0-nightly.20230523"],"115.0.5786.0":["26.0.0-nightly.20230524"],"115.0.5790.0":["26.0.0-nightly.20230525"],"116.0.5845.82":["26.0.0"],"116.0.5845.97":["26.1.0"],"116.0.5845.179":["26.2.0"],"116.0.5845.188":["26.2.1"],"116.0.5845.190":["26.2.2","26.2.3","26.2.4"],"116.0.5845.228":["26.3.0","26.4.0","26.4.1","26.4.2","26.4.3","26.5.0","26.6.0","26.6.1","26.6.2","26.6.3","26.6.4","26.6.5","26.6.6","26.6.7","26.6.8","26.6.9","26.6.10"],"118.0.5949.0":["27.0.0-alpha.1","27.0.0-alpha.2","27.0.0-alpha.3","27.0.0-alpha.4","27.0.0-alpha.5","27.0.0-alpha.6","27.0.0-nightly.20230816","28.0.0-nightly.20230817","28.0.0-nightly.20230818","28.0.0-nightly.20230821","28.0.0-nightly.20230822","28.0.0-nightly.20230823","28.0.0-nightly.20230824","28.0.0-nightly.20230825","28.0.0-nightly.20230828","28.0.0-nightly.20230829","28.0.0-nightly.20230830","28.0.0-nightly.20230831"],"118.0.5993.5":["27.0.0-beta.1","27.0.0-beta.2","27.0.0-beta.3"],"118.0.5993.11":["27.0.0-beta.4"],"118.0.5993.18":["27.0.0-beta.5","27.0.0-beta.6","27.0.0-beta.7","27.0.0-beta.8","27.0.0-beta.9"],"116.0.5829.0":["27.0.0-nightly.20230614"],"116.0.5833.0":["27.0.0-nightly.20230616","27.0.0-nightly.20230619","27.0.0-nightly.20230620","27.0.0-nightly.20230621"],"117.0.5852.0":["27.0.0-nightly.20230703","27.0.0-nightly.20230704","27.0.0-nightly.20230705","27.0.0-nightly.20230706","27.0.0-nightly.20230707","27.0.0-nightly.20230710","27.0.0-nightly.20230711","27.0.0-nightly.20230712","27.0.0-nightly.20230713","27.0.0-nightly.20230714"],"117.0.5884.1":["27.0.0-nightly.20230717","27.0.0-nightly.20230718"],"117.0.5892.0":["27.0.0-nightly.20230719"],"117.0.5897.0":["27.0.0-nightly.20230720","27.0.0-nightly.20230721","27.0.0-nightly.20230724","27.0.0-nightly.20230725","27.0.0-nightly.20230726","27.0.0-nightly.20230727","27.0.0-nightly.20230728","27.0.0-nightly.20230731"],"117.0.5911.0":["27.0.0-nightly.20230801","27.0.0-nightly.20230802","27.0.0-nightly.20230803"],"117.0.5921.0":["27.0.0-nightly.20230804","27.0.0-nightly.20230807","27.0.0-nightly.20230808","27.0.0-nightly.20230814","27.0.0-nightly.20230815"],"118.0.5993.54":["27.0.0"],"118.0.5993.89":["27.0.1","27.0.2"],"118.0.5993.120":["27.0.3"],"118.0.5993.129":["27.0.4"],"118.0.5993.144":["27.1.0","27.1.2"],"118.0.5993.159":["27.1.3","27.2.0","27.2.1","27.2.2","27.2.3","27.2.4","27.3.0","27.3.1","27.3.2","27.3.3","27.3.4","27.3.5","27.3.6","27.3.7","27.3.8","27.3.9","27.3.10","27.3.11"],"119.0.6045.0":["28.0.0-alpha.1","28.0.0-alpha.2","28.0.0-nightly.20231006","28.0.0-nightly.20231009","28.0.0-nightly.20231010","28.0.0-nightly.20231011","29.0.0-nightly.20231012","29.0.0-nightly.20231013","29.0.0-nightly.20231016","29.0.0-nightly.20231017","29.0.0-nightly.20231018","29.0.0-nightly.20231019","29.0.0-nightly.20231020","29.0.0-nightly.20231023","29.0.0-nightly.20231024"],"119.0.6045.21":["28.0.0-alpha.3","28.0.0-alpha.4"],"119.0.6045.33":["28.0.0-alpha.5","28.0.0-alpha.6","28.0.0-alpha.7","28.0.0-beta.1"],"120.0.6099.0":["28.0.0-beta.2"],"120.0.6099.5":["28.0.0-beta.3","28.0.0-beta.4"],"120.0.6099.18":["28.0.0-beta.5","28.0.0-beta.6","28.0.0-beta.7","28.0.0-beta.8","28.0.0-beta.9","28.0.0-beta.10"],"120.0.6099.35":["28.0.0-beta.11"],"118.0.5991.0":["28.0.0-nightly.20230906"],"118.0.5993.0":["28.0.0-nightly.20230907","28.0.0-nightly.20230908","28.0.0-nightly.20230911","28.0.0-nightly.20230912","28.0.0-nightly.20230913","28.0.0-nightly.20230914","28.0.0-nightly.20230915"],"119.0.6006.0":["28.0.0-nightly.20230919"],"119.0.6017.0":["28.0.0-nightly.20230920"],"119.0.6019.2":["28.0.0-nightly.20230921","28.0.0-nightly.20230925","28.0.0-nightly.20230926","28.0.0-nightly.20230927","28.0.0-nightly.20230928"],"119.0.6029.0":["28.0.0-nightly.20230929","28.0.0-nightly.20231002"],"119.0.6043.0":["28.0.0-nightly.20231003","28.0.0-nightly.20231004","28.0.0-nightly.20231005"],"120.0.6099.56":["28.0.0"],"120.0.6099.109":["28.1.0","28.1.1"],"120.0.6099.199":["28.1.2","28.1.3"],"120.0.6099.216":["28.1.4"],"120.0.6099.227":["28.2.0"],"120.0.6099.268":["28.2.1"],"120.0.6099.276":["28.2.2"],"120.0.6099.283":["28.2.3"],"120.0.6099.291":["28.2.4","28.2.5","28.2.6","28.2.7","28.2.8","28.2.9","28.2.10","28.3.0","28.3.1"],"121.0.6147.0":["29.0.0-alpha.1","29.0.0-alpha.2","29.0.0-alpha.3","29.0.0-nightly.20231129","29.0.0-nightly.20231130","29.0.0-nightly.20231201","29.0.0-nightly.20231204","29.0.0-nightly.20231205","29.0.0-nightly.20231206","30.0.0-nightly.20231207","30.0.0-nightly.20231208","30.0.0-nightly.20231211"],"121.0.6159.0":["29.0.0-alpha.4","29.0.0-alpha.5","29.0.0-alpha.6","29.0.0-alpha.7","30.0.0-nightly.20231212","30.0.0-nightly.20231213","30.0.0-nightly.20231214","30.0.0-nightly.20231215","30.0.0-nightly.20231218","30.0.0-nightly.20240102"],"122.0.6194.0":["29.0.0-alpha.8","30.0.0-nightly.20240103","30.0.0-nightly.20240104","30.0.0-nightly.20240105","30.0.0-nightly.20240108","30.0.0-nightly.20240109","30.0.0-nightly.20240110"],"122.0.6236.2":["29.0.0-alpha.9","29.0.0-alpha.10","29.0.0-alpha.11","29.0.0-beta.1","29.0.0-beta.2","30.0.0-nightly.20240111","30.0.0-nightly.20240112","30.0.0-nightly.20240115","30.0.0-nightly.20240116","30.0.0-nightly.20240117","30.0.0-nightly.20240118","30.0.0-nightly.20240119","30.0.0-nightly.20240122","30.0.0-nightly.20240123","30.0.0-nightly.20240124","30.0.0-nightly.20240125"],"122.0.6261.6":["29.0.0-beta.3","29.0.0-beta.4"],"122.0.6261.18":["29.0.0-beta.5","29.0.0-beta.6","29.0.0-beta.7","29.0.0-beta.8","29.0.0-beta.9","29.0.0-beta.10","29.0.0-beta.11"],"122.0.6261.29":["29.0.0-beta.12"],"120.0.6078.0":["29.0.0-nightly.20231025","29.0.0-nightly.20231026","29.0.0-nightly.20231027","29.0.0-nightly.20231030","29.0.0-nightly.20231031","29.0.0-nightly.20231101"],"121.0.6100.0":["29.0.0-nightly.20231102","29.0.0-nightly.20231103"],"121.0.6104.0":["29.0.0-nightly.20231106"],"121.0.6110.0":["29.0.0-nightly.20231107","29.0.0-nightly.20231108","29.0.0-nightly.20231109","29.0.0-nightly.20231110","29.0.0-nightly.20231113","29.0.0-nightly.20231114"],"121.0.6116.0":["29.0.0-nightly.20231115","29.0.0-nightly.20231116","29.0.0-nightly.20231117","29.0.0-nightly.20231120","29.0.0-nightly.20231121","29.0.0-nightly.20231122","29.0.0-nightly.20231123","29.0.0-nightly.20231124","29.0.0-nightly.20231127","29.0.0-nightly.20231128"],"122.0.6261.39":["29.0.0"],"122.0.6261.57":["29.0.1"],"122.0.6261.70":["29.1.0"],"122.0.6261.111":["29.1.1"],"122.0.6261.112":["29.1.2","29.1.3"],"122.0.6261.129":["29.1.4"],"122.0.6261.130":["29.1.5"],"122.0.6261.139":["29.1.6"],"122.0.6261.156":["29.2.0","29.3.0","29.3.1"],"123.0.6296.0":["30.0.0-alpha.1","30.0.0-nightly.20240215","30.0.0-nightly.20240216","30.0.0-nightly.20240219","30.0.0-nightly.20240220","30.0.0-nightly.20240221"],"123.0.6312.5":["30.0.0-alpha.2","31.0.0-nightly.20240222","31.0.0-nightly.20240223","31.0.0-nightly.20240226","31.0.0-nightly.20240227","31.0.0-nightly.20240228"],"124.0.6323.0":["30.0.0-alpha.3","30.0.0-alpha.4","31.0.0-nightly.20240229","31.0.0-nightly.20240301","31.0.0-nightly.20240304","31.0.0-nightly.20240305"],"124.0.6331.0":["30.0.0-alpha.5","30.0.0-alpha.6","31.0.0-nightly.20240306","31.0.0-nightly.20240307","31.0.0-nightly.20240308","31.0.0-nightly.20240311"],"124.0.6353.0":["30.0.0-alpha.7","31.0.0-nightly.20240313","31.0.0-nightly.20240314","31.0.0-nightly.20240315"],"124.0.6359.0":["30.0.0-beta.1","30.0.0-beta.2","31.0.0-nightly.20240318","31.0.0-nightly.20240319","31.0.0-nightly.20240320","31.0.0-nightly.20240321","31.0.0-nightly.20240325","31.0.0-nightly.20240327","31.0.0-nightly.20240328","31.0.0-nightly.20240329","31.0.0-nightly.20240401","31.0.0-nightly.20240402","31.0.0-nightly.20240404","31.0.0-nightly.20240405","31.0.0-nightly.20240408","31.0.0-nightly.20240409","31.0.0-nightly.20240410","31.0.0-nightly.20240411","31.0.0-nightly.20240412"],"124.0.6367.9":["30.0.0-beta.3","30.0.0-beta.4","30.0.0-beta.5"],"124.0.6367.18":["30.0.0-beta.6"],"124.0.6367.29":["30.0.0-beta.7","30.0.0-beta.8"],"123.0.6264.0":["30.0.0-nightly.20240126","30.0.0-nightly.20240129","30.0.0-nightly.20240130","30.0.0-nightly.20240131"],"123.0.6272.0":["30.0.0-nightly.20240201","30.0.0-nightly.20240202","30.0.0-nightly.20240205","30.0.0-nightly.20240206","30.0.0-nightly.20240207","30.0.0-nightly.20240208","30.0.0-nightly.20240209","30.0.0-nightly.20240212","30.0.0-nightly.20240213","30.0.0-nightly.20240214"],"124.0.6367.49":["30.0.0"],"124.0.6367.60":["30.0.1"],"125.0.6412.0":["31.0.0-alpha.1","31.0.0-alpha.2","32.0.0-nightly.20240418","32.0.0-nightly.20240419","32.0.0-nightly.20240422","32.0.0-nightly.20240423","32.0.0-nightly.20240424","32.0.0-nightly.20240425","32.0.0-nightly.20240426","32.0.0-nightly.20240429"],"124.0.6351.0":["31.0.0-nightly.20240312"]} \ No newline at end of file +{"39.0.2171.65":["0.20.0","0.20.1","0.20.2","0.20.3","0.20.4","0.20.5","0.20.6","0.20.7","0.20.8"],"40.0.2214.91":["0.21.0","0.21.1","0.21.2"],"41.0.2272.76":["0.21.3","0.22.1","0.22.2","0.22.3","0.23.0","0.24.0"],"42.0.2311.107":["0.25.0","0.25.1","0.25.2","0.25.3","0.26.0","0.26.1","0.27.0","0.27.1"],"43.0.2357.65":["0.27.2","0.27.3","0.28.0","0.28.1","0.28.2","0.28.3","0.29.1","0.29.2"],"44.0.2403.125":["0.30.4","0.31.0"],"45.0.2454.85":["0.31.2","0.32.2","0.32.3","0.33.0","0.33.1","0.33.2","0.33.3","0.33.4","0.33.6","0.33.7","0.33.8","0.33.9","0.34.0","0.34.1","0.34.2","0.34.3","0.34.4","0.35.1","0.35.2","0.35.3","0.35.4","0.35.5"],"47.0.2526.73":["0.36.0","0.36.2","0.36.3","0.36.4"],"47.0.2526.110":["0.36.5","0.36.6","0.36.7","0.36.8","0.36.9","0.36.10","0.36.11","0.36.12"],"49.0.2623.75":["0.37.0","0.37.1","0.37.3","0.37.4","0.37.5","0.37.6","0.37.7","0.37.8","1.0.0","1.0.1","1.0.2"],"50.0.2661.102":["1.1.0","1.1.1","1.1.2","1.1.3"],"51.0.2704.63":["1.2.0","1.2.1"],"51.0.2704.84":["1.2.2","1.2.3"],"51.0.2704.103":["1.2.4","1.2.5"],"51.0.2704.106":["1.2.6","1.2.7","1.2.8"],"52.0.2743.82":["1.3.0","1.3.1","1.3.2","1.3.3","1.3.4","1.3.5","1.3.6","1.3.7","1.3.9","1.3.10","1.3.13","1.3.14","1.3.15"],"53.0.2785.113":["1.4.0","1.4.1","1.4.2","1.4.3","1.4.4","1.4.5"],"53.0.2785.143":["1.4.6","1.4.7","1.4.8","1.4.10","1.4.11","1.4.13","1.4.14","1.4.15","1.4.16"],"54.0.2840.51":["1.4.12"],"54.0.2840.101":["1.5.0","1.5.1"],"56.0.2924.87":["1.6.0","1.6.1","1.6.2","1.6.3","1.6.4","1.6.5","1.6.6","1.6.7","1.6.8","1.6.9","1.6.10","1.6.11","1.6.12","1.6.13","1.6.14","1.6.15","1.6.16","1.6.17","1.6.18"],"58.0.3029.110":["1.7.0","1.7.1","1.7.2","1.7.3","1.7.4","1.7.5","1.7.6","1.7.7","1.7.8","1.7.9","1.7.10","1.7.11","1.7.12","1.7.13","1.7.14","1.7.15","1.7.16"],"59.0.3071.115":["1.8.0","1.8.1","1.8.2-beta.1","1.8.2-beta.2","1.8.2-beta.3","1.8.2-beta.4","1.8.2-beta.5","1.8.2","1.8.3","1.8.4","1.8.5","1.8.6","1.8.7","1.8.8"],"61.0.3163.100":["2.0.0-beta.1","2.0.0-beta.2","2.0.0-beta.3","2.0.0-beta.4","2.0.0-beta.5","2.0.0-beta.6","2.0.0-beta.7","2.0.0-beta.8","2.0.0","2.0.1","2.0.2","2.0.3","2.0.4","2.0.5","2.0.6","2.0.7","2.0.8-nightly.20180819","2.0.8-nightly.20180820","2.0.8","2.0.9","2.0.10","2.0.11","2.0.12","2.0.13","2.0.14","2.0.15","2.0.16","2.0.17","2.0.18","2.1.0-unsupported.20180809"],"66.0.3359.181":["3.0.0-beta.1","3.0.0-beta.2","3.0.0-beta.3","3.0.0-beta.4","3.0.0-beta.5","3.0.0-beta.6","3.0.0-beta.7","3.0.0-beta.8","3.0.0-beta.9","3.0.0-beta.10","3.0.0-beta.11","3.0.0-beta.12","3.0.0-beta.13","3.0.0-nightly.20180818","3.0.0-nightly.20180821","3.0.0-nightly.20180823","3.0.0-nightly.20180904","3.0.0","3.0.1","3.0.2","3.0.3","3.0.4","3.0.5","3.0.6","3.0.7","3.0.8","3.0.9","3.0.10","3.0.11","3.0.12","3.0.13","3.0.14","3.0.15","3.0.16","3.1.0-beta.1","3.1.0-beta.2","3.1.0-beta.3","3.1.0-beta.4","3.1.0-beta.5","3.1.0","3.1.1","3.1.2","3.1.3","3.1.4","3.1.5","3.1.6","3.1.7","3.1.8","3.1.9","3.1.10","3.1.11","3.1.12","3.1.13","4.0.0-nightly.20180817","4.0.0-nightly.20180819","4.0.0-nightly.20180821"],"69.0.3497.106":["4.0.0-beta.1","4.0.0-beta.2","4.0.0-beta.3","4.0.0-beta.4","4.0.0-beta.5","4.0.0-beta.6","4.0.0-beta.7","4.0.0-beta.8","4.0.0-beta.9","4.0.0-beta.10","4.0.0-beta.11","4.0.0-nightly.20181010","4.0.0","4.0.1","4.0.2","4.0.3","4.0.4","4.0.5","4.0.6"],"67.0.3396.99":["4.0.0-nightly.20180929"],"68.0.3440.128":["4.0.0-nightly.20181006"],"69.0.3497.128":["4.0.7","4.0.8","4.1.0","4.1.1","4.1.2","4.1.3","4.1.4","4.1.5","4.2.0","4.2.1","4.2.2","4.2.3","4.2.4","4.2.5","4.2.6","4.2.7","4.2.8","4.2.9","4.2.10","4.2.11","4.2.12"],"72.0.3626.52":["5.0.0-beta.1","5.0.0-beta.2","6.0.0-nightly.20190123"],"73.0.3683.27":["5.0.0-beta.3"],"73.0.3683.54":["5.0.0-beta.4"],"73.0.3683.61":["5.0.0-beta.5"],"73.0.3683.84":["5.0.0-beta.6"],"73.0.3683.94":["5.0.0-beta.7"],"73.0.3683.104":["5.0.0-beta.8"],"73.0.3683.117":["5.0.0-beta.9"],"70.0.3538.110":["5.0.0-nightly.20190107"],"71.0.3578.98":["5.0.0-nightly.20190121","5.0.0-nightly.20190122"],"73.0.3683.119":["5.0.0"],"73.0.3683.121":["5.0.1","5.0.2","5.0.3","5.0.4","5.0.5","5.0.6","5.0.7","5.0.8","5.0.9","5.0.10","5.0.11","5.0.12","5.0.13"],"76.0.3774.1":["6.0.0-beta.1"],"76.0.3783.1":["6.0.0-beta.2","6.0.0-beta.3","6.0.0-beta.4"],"76.0.3805.4":["6.0.0-beta.5"],"76.0.3809.3":["6.0.0-beta.6"],"76.0.3809.22":["6.0.0-beta.7"],"76.0.3809.26":["6.0.0-beta.8","6.0.0-beta.9"],"76.0.3809.37":["6.0.0-beta.10"],"76.0.3809.42":["6.0.0-beta.11"],"76.0.3809.54":["6.0.0-beta.12"],"76.0.3809.60":["6.0.0-beta.13"],"76.0.3809.68":["6.0.0-beta.14"],"76.0.3809.74":["6.0.0-beta.15"],"72.0.3626.107":["6.0.0-nightly.20190212"],"72.0.3626.110":["6.0.0-nightly.20190213"],"74.0.3724.8":["6.0.0-nightly.20190311"],"76.0.3809.88":["6.0.0"],"76.0.3809.102":["6.0.1"],"76.0.3809.110":["6.0.2"],"76.0.3809.126":["6.0.3"],"76.0.3809.131":["6.0.4"],"76.0.3809.136":["6.0.5"],"76.0.3809.138":["6.0.6"],"76.0.3809.139":["6.0.7"],"76.0.3809.146":["6.0.8","6.0.9","6.0.10","6.0.11","6.0.12","6.1.0","6.1.1","6.1.2","6.1.3","6.1.4","6.1.5","6.1.6","6.1.7","6.1.8","6.1.9","6.1.10","6.1.11","6.1.12"],"78.0.3866.0":["7.0.0-beta.1","7.0.0-beta.2","7.0.0-beta.3","7.0.0-nightly.20190727","7.0.0-nightly.20190728","7.0.0-nightly.20190729","7.0.0-nightly.20190730","7.0.0-nightly.20190731","8.0.0-nightly.20190801","8.0.0-nightly.20190802"],"78.0.3896.6":["7.0.0-beta.4"],"78.0.3905.1":["7.0.0-beta.5","7.0.0-beta.6","7.0.0-beta.7","7.0.0"],"76.0.3784.0":["7.0.0-nightly.20190521"],"76.0.3806.0":["7.0.0-nightly.20190529","7.0.0-nightly.20190530","7.0.0-nightly.20190531","7.0.0-nightly.20190602","7.0.0-nightly.20190603"],"77.0.3814.0":["7.0.0-nightly.20190604"],"77.0.3815.0":["7.0.0-nightly.20190605","7.0.0-nightly.20190606","7.0.0-nightly.20190607","7.0.0-nightly.20190608","7.0.0-nightly.20190609","7.0.0-nightly.20190611","7.0.0-nightly.20190612","7.0.0-nightly.20190613","7.0.0-nightly.20190615","7.0.0-nightly.20190616","7.0.0-nightly.20190618","7.0.0-nightly.20190619","7.0.0-nightly.20190622","7.0.0-nightly.20190623","7.0.0-nightly.20190624","7.0.0-nightly.20190627","7.0.0-nightly.20190629","7.0.0-nightly.20190630","7.0.0-nightly.20190701","7.0.0-nightly.20190702"],"77.0.3843.0":["7.0.0-nightly.20190704","7.0.0-nightly.20190705"],"77.0.3848.0":["7.0.0-nightly.20190719","7.0.0-nightly.20190720","7.0.0-nightly.20190721"],"77.0.3864.0":["7.0.0-nightly.20190726"],"78.0.3904.92":["7.0.1"],"78.0.3904.94":["7.1.0"],"78.0.3904.99":["7.1.1"],"78.0.3904.113":["7.1.2"],"78.0.3904.126":["7.1.3"],"78.0.3904.130":["7.1.4","7.1.5","7.1.6","7.1.7","7.1.8","7.1.9","7.1.10","7.1.11","7.1.12","7.1.13","7.1.14","7.2.0","7.2.1","7.2.2","7.2.3","7.2.4","7.3.0","7.3.1","7.3.2","7.3.3"],"79.0.3931.0":["8.0.0-beta.1","8.0.0-beta.2","8.0.0-nightly.20191019","8.0.0-nightly.20191020","8.0.0-nightly.20191021","8.0.0-nightly.20191023"],"80.0.3955.0":["8.0.0-beta.3","8.0.0-beta.4"],"80.0.3987.14":["8.0.0-beta.5"],"80.0.3987.51":["8.0.0-beta.6"],"80.0.3987.59":["8.0.0-beta.7"],"80.0.3987.75":["8.0.0-beta.8","8.0.0-beta.9"],"78.0.3871.0":["8.0.0-nightly.20190803","8.0.0-nightly.20190806","8.0.0-nightly.20190807","8.0.0-nightly.20190808","8.0.0-nightly.20190809","8.0.0-nightly.20190810","8.0.0-nightly.20190811","8.0.0-nightly.20190812","8.0.0-nightly.20190813","8.0.0-nightly.20190814","8.0.0-nightly.20190815"],"78.0.3881.0":["8.0.0-nightly.20190816","8.0.0-nightly.20190817","8.0.0-nightly.20190818","8.0.0-nightly.20190819","8.0.0-nightly.20190820"],"78.0.3892.0":["8.0.0-nightly.20190824","8.0.0-nightly.20190825","8.0.0-nightly.20190827","8.0.0-nightly.20190828","8.0.0-nightly.20190830","8.0.0-nightly.20190901","8.0.0-nightly.20190902","8.0.0-nightly.20190907","8.0.0-nightly.20190909","8.0.0-nightly.20190910","8.0.0-nightly.20190911","8.0.0-nightly.20190912","8.0.0-nightly.20190913","8.0.0-nightly.20190914","8.0.0-nightly.20190915","8.0.0-nightly.20190917"],"79.0.3915.0":["8.0.0-nightly.20190919","8.0.0-nightly.20190920"],"79.0.3919.0":["8.0.0-nightly.20190922","8.0.0-nightly.20190923","8.0.0-nightly.20190924","8.0.0-nightly.20190926","8.0.0-nightly.20190928","8.0.0-nightly.20190929","8.0.0-nightly.20190930","8.0.0-nightly.20191001","8.0.0-nightly.20191004","8.0.0-nightly.20191005","8.0.0-nightly.20191006","8.0.0-nightly.20191009","8.0.0-nightly.20191011","8.0.0-nightly.20191012","8.0.0-nightly.20191017"],"80.0.3952.0":["8.0.0-nightly.20191101","8.0.0-nightly.20191103","8.0.0-nightly.20191105"],"80.0.3987.86":["8.0.0","8.0.1","8.0.2"],"80.0.3987.134":["8.0.3"],"80.0.3987.137":["8.1.0"],"80.0.3987.141":["8.1.1"],"80.0.3987.158":["8.2.0"],"80.0.3987.163":["8.2.1","8.2.2","8.2.3","8.5.3","8.5.4","8.5.5"],"80.0.3987.165":["8.2.4","8.2.5","8.3.0","8.3.1","8.3.2","8.3.3","8.3.4","8.4.0","8.4.1","8.5.0","8.5.1","8.5.2"],"82.0.4048.0":["9.0.0-beta.1","9.0.0-beta.2","9.0.0-beta.3","9.0.0-beta.4","9.0.0-beta.5"],"82.0.4058.2":["9.0.0-beta.6","9.0.0-beta.7","9.0.0-beta.9"],"82.0.4085.10":["9.0.0-beta.10"],"82.0.4085.14":["9.0.0-beta.11","9.0.0-beta.12","9.0.0-beta.13"],"82.0.4085.27":["9.0.0-beta.14"],"83.0.4102.3":["9.0.0-beta.15","9.0.0-beta.16"],"83.0.4103.14":["9.0.0-beta.17"],"83.0.4103.16":["9.0.0-beta.18"],"83.0.4103.24":["9.0.0-beta.19"],"83.0.4103.26":["9.0.0-beta.20","9.0.0-beta.21"],"83.0.4103.34":["9.0.0-beta.22"],"83.0.4103.44":["9.0.0-beta.23"],"83.0.4103.45":["9.0.0-beta.24"],"80.0.3954.0":["9.0.0-nightly.20191121","9.0.0-nightly.20191122","9.0.0-nightly.20191123","9.0.0-nightly.20191124","9.0.0-nightly.20191126","9.0.0-nightly.20191128","9.0.0-nightly.20191129","9.0.0-nightly.20191130","9.0.0-nightly.20191201","9.0.0-nightly.20191202","9.0.0-nightly.20191203","9.0.0-nightly.20191204","9.0.0-nightly.20191205","9.0.0-nightly.20191210"],"81.0.3994.0":["9.0.0-nightly.20191220","9.0.0-nightly.20191221","9.0.0-nightly.20191222","9.0.0-nightly.20191223","9.0.0-nightly.20191224","9.0.0-nightly.20191225","9.0.0-nightly.20191226","9.0.0-nightly.20191228","9.0.0-nightly.20191229","9.0.0-nightly.20191230","9.0.0-nightly.20191231","9.0.0-nightly.20200101","9.0.0-nightly.20200103","9.0.0-nightly.20200104","9.0.0-nightly.20200105","9.0.0-nightly.20200106","9.0.0-nightly.20200108","9.0.0-nightly.20200109","9.0.0-nightly.20200110","9.0.0-nightly.20200111","9.0.0-nightly.20200113","9.0.0-nightly.20200115","9.0.0-nightly.20200116","9.0.0-nightly.20200117"],"81.0.4030.0":["9.0.0-nightly.20200119","9.0.0-nightly.20200121"],"83.0.4103.64":["9.0.0"],"83.0.4103.94":["9.0.1","9.0.2"],"83.0.4103.100":["9.0.3"],"83.0.4103.104":["9.0.4"],"83.0.4103.119":["9.0.5"],"83.0.4103.122":["9.1.0","9.1.1","9.1.2","9.2.0","9.2.1","9.3.0","9.3.1","9.3.2","9.3.3","9.3.4","9.3.5","9.4.0","9.4.1","9.4.2","9.4.3","9.4.4"],"84.0.4129.0":["10.0.0-beta.1","10.0.0-beta.2","10.0.0-nightly.20200501","10.0.0-nightly.20200504","10.0.0-nightly.20200505","10.0.0-nightly.20200506","10.0.0-nightly.20200507","10.0.0-nightly.20200508","10.0.0-nightly.20200511","10.0.0-nightly.20200512","10.0.0-nightly.20200513","10.0.0-nightly.20200514","10.0.0-nightly.20200515","10.0.0-nightly.20200518","10.0.0-nightly.20200519","10.0.0-nightly.20200520","10.0.0-nightly.20200521","11.0.0-nightly.20200525","11.0.0-nightly.20200526"],"85.0.4161.2":["10.0.0-beta.3","10.0.0-beta.4"],"85.0.4181.1":["10.0.0-beta.8","10.0.0-beta.9"],"85.0.4183.19":["10.0.0-beta.10"],"85.0.4183.20":["10.0.0-beta.11"],"85.0.4183.26":["10.0.0-beta.12"],"85.0.4183.39":["10.0.0-beta.13","10.0.0-beta.14","10.0.0-beta.15","10.0.0-beta.17","10.0.0-beta.19","10.0.0-beta.20","10.0.0-beta.21"],"85.0.4183.70":["10.0.0-beta.23"],"85.0.4183.78":["10.0.0-beta.24"],"85.0.4183.80":["10.0.0-beta.25"],"82.0.4050.0":["10.0.0-nightly.20200209","10.0.0-nightly.20200210","10.0.0-nightly.20200211","10.0.0-nightly.20200216","10.0.0-nightly.20200217","10.0.0-nightly.20200218","10.0.0-nightly.20200221","10.0.0-nightly.20200222","10.0.0-nightly.20200223","10.0.0-nightly.20200226","10.0.0-nightly.20200303"],"82.0.4076.0":["10.0.0-nightly.20200304","10.0.0-nightly.20200305","10.0.0-nightly.20200306","10.0.0-nightly.20200309","10.0.0-nightly.20200310"],"82.0.4083.0":["10.0.0-nightly.20200311"],"83.0.4086.0":["10.0.0-nightly.20200316"],"83.0.4087.0":["10.0.0-nightly.20200317","10.0.0-nightly.20200318","10.0.0-nightly.20200320","10.0.0-nightly.20200323","10.0.0-nightly.20200324","10.0.0-nightly.20200325","10.0.0-nightly.20200326","10.0.0-nightly.20200327","10.0.0-nightly.20200330","10.0.0-nightly.20200331","10.0.0-nightly.20200401","10.0.0-nightly.20200402","10.0.0-nightly.20200403","10.0.0-nightly.20200406"],"83.0.4095.0":["10.0.0-nightly.20200408","10.0.0-nightly.20200410","10.0.0-nightly.20200413"],"84.0.4114.0":["10.0.0-nightly.20200414"],"84.0.4115.0":["10.0.0-nightly.20200415","10.0.0-nightly.20200416","10.0.0-nightly.20200417"],"84.0.4121.0":["10.0.0-nightly.20200422","10.0.0-nightly.20200423"],"84.0.4125.0":["10.0.0-nightly.20200427","10.0.0-nightly.20200428","10.0.0-nightly.20200429","10.0.0-nightly.20200430"],"85.0.4183.84":["10.0.0"],"85.0.4183.86":["10.0.1"],"85.0.4183.87":["10.1.0"],"85.0.4183.93":["10.1.1"],"85.0.4183.98":["10.1.2"],"85.0.4183.121":["10.1.3","10.1.4","10.1.5","10.1.6","10.1.7","10.2.0","10.3.0","10.3.1","10.3.2","10.4.0","10.4.1","10.4.2","10.4.3","10.4.4","10.4.5","10.4.6","10.4.7"],"86.0.4234.0":["11.0.0-beta.1","11.0.0-beta.3","11.0.0-beta.4","11.0.0-beta.5","11.0.0-beta.6","11.0.0-beta.7","11.0.0-nightly.20200822","11.0.0-nightly.20200824","11.0.0-nightly.20200825","11.0.0-nightly.20200826","12.0.0-nightly.20200827","12.0.0-nightly.20200831","12.0.0-nightly.20200902","12.0.0-nightly.20200903","12.0.0-nightly.20200907","12.0.0-nightly.20200910","12.0.0-nightly.20200911","12.0.0-nightly.20200914"],"87.0.4251.1":["11.0.0-beta.8","11.0.0-beta.9","11.0.0-beta.11"],"87.0.4280.11":["11.0.0-beta.12","11.0.0-beta.13"],"87.0.4280.27":["11.0.0-beta.16","11.0.0-beta.17","11.0.0-beta.18","11.0.0-beta.19"],"87.0.4280.40":["11.0.0-beta.20"],"87.0.4280.47":["11.0.0-beta.22","11.0.0-beta.23"],"85.0.4156.0":["11.0.0-nightly.20200529"],"85.0.4162.0":["11.0.0-nightly.20200602","11.0.0-nightly.20200603","11.0.0-nightly.20200604","11.0.0-nightly.20200609","11.0.0-nightly.20200610","11.0.0-nightly.20200611","11.0.0-nightly.20200615","11.0.0-nightly.20200616","11.0.0-nightly.20200617","11.0.0-nightly.20200618","11.0.0-nightly.20200619"],"85.0.4179.0":["11.0.0-nightly.20200701","11.0.0-nightly.20200702","11.0.0-nightly.20200703","11.0.0-nightly.20200706","11.0.0-nightly.20200707","11.0.0-nightly.20200708","11.0.0-nightly.20200709"],"86.0.4203.0":["11.0.0-nightly.20200716","11.0.0-nightly.20200717","11.0.0-nightly.20200720","11.0.0-nightly.20200721"],"86.0.4209.0":["11.0.0-nightly.20200723","11.0.0-nightly.20200724","11.0.0-nightly.20200729","11.0.0-nightly.20200730","11.0.0-nightly.20200731","11.0.0-nightly.20200803","11.0.0-nightly.20200804","11.0.0-nightly.20200805","11.0.0-nightly.20200811","11.0.0-nightly.20200812"],"87.0.4280.60":["11.0.0","11.0.1"],"87.0.4280.67":["11.0.2","11.0.3","11.0.4"],"87.0.4280.88":["11.0.5","11.1.0","11.1.1"],"87.0.4280.141":["11.2.0","11.2.1","11.2.2","11.2.3","11.3.0","11.4.0","11.4.1","11.4.2","11.4.3","11.4.4","11.4.5","11.4.6","11.4.7","11.4.8","11.4.9","11.4.10","11.4.11","11.4.12","11.5.0"],"89.0.4328.0":["12.0.0-beta.1","12.0.0-beta.3","12.0.0-beta.4","12.0.0-beta.5","12.0.0-beta.6","12.0.0-beta.7","12.0.0-beta.8","12.0.0-beta.9","12.0.0-beta.10","12.0.0-beta.11","12.0.0-beta.12","12.0.0-beta.14","13.0.0-nightly.20201119","13.0.0-nightly.20201123","13.0.0-nightly.20201124","13.0.0-nightly.20201126","13.0.0-nightly.20201127","13.0.0-nightly.20201130","13.0.0-nightly.20201201","13.0.0-nightly.20201202","13.0.0-nightly.20201203","13.0.0-nightly.20201204","13.0.0-nightly.20201207","13.0.0-nightly.20201208","13.0.0-nightly.20201209","13.0.0-nightly.20201210","13.0.0-nightly.20201211","13.0.0-nightly.20201214"],"89.0.4348.1":["12.0.0-beta.16","12.0.0-beta.18","12.0.0-beta.19","12.0.0-beta.20"],"89.0.4388.2":["12.0.0-beta.21","12.0.0-beta.22","12.0.0-beta.23","12.0.0-beta.24","12.0.0-beta.25","12.0.0-beta.26"],"89.0.4389.23":["12.0.0-beta.27","12.0.0-beta.28","12.0.0-beta.29"],"89.0.4389.58":["12.0.0-beta.30","12.0.0-beta.31"],"87.0.4268.0":["12.0.0-nightly.20201002","12.0.0-nightly.20201007","12.0.0-nightly.20201009","12.0.0-nightly.20201012","12.0.0-nightly.20201013","12.0.0-nightly.20201014","12.0.0-nightly.20201015"],"88.0.4292.0":["12.0.0-nightly.20201023","12.0.0-nightly.20201026"],"88.0.4306.0":["12.0.0-nightly.20201030","12.0.0-nightly.20201102","12.0.0-nightly.20201103","12.0.0-nightly.20201104","12.0.0-nightly.20201105","12.0.0-nightly.20201106","12.0.0-nightly.20201111","12.0.0-nightly.20201112"],"88.0.4324.0":["12.0.0-nightly.20201116"],"89.0.4389.69":["12.0.0"],"89.0.4389.82":["12.0.1"],"89.0.4389.90":["12.0.2"],"89.0.4389.114":["12.0.3","12.0.4"],"89.0.4389.128":["12.0.5","12.0.6","12.0.7","12.0.8","12.0.9","12.0.10","12.0.11","12.0.12","12.0.13","12.0.14","12.0.15","12.0.16","12.0.17","12.0.18","12.1.0","12.1.1","12.1.2","12.2.0","12.2.1","12.2.2","12.2.3"],"90.0.4402.0":["13.0.0-beta.2","13.0.0-beta.3","13.0.0-nightly.20210210","13.0.0-nightly.20210211","13.0.0-nightly.20210212","13.0.0-nightly.20210216","13.0.0-nightly.20210217","13.0.0-nightly.20210218","13.0.0-nightly.20210219","13.0.0-nightly.20210222","13.0.0-nightly.20210225","13.0.0-nightly.20210226","13.0.0-nightly.20210301","13.0.0-nightly.20210302","13.0.0-nightly.20210303","14.0.0-nightly.20210304"],"90.0.4415.0":["13.0.0-beta.4","13.0.0-beta.5","13.0.0-beta.6","13.0.0-beta.7","13.0.0-beta.8","13.0.0-beta.9","13.0.0-beta.10","13.0.0-beta.11","13.0.0-beta.12","13.0.0-beta.13","14.0.0-nightly.20210305","14.0.0-nightly.20210308","14.0.0-nightly.20210309","14.0.0-nightly.20210311","14.0.0-nightly.20210315","14.0.0-nightly.20210316","14.0.0-nightly.20210317","14.0.0-nightly.20210318","14.0.0-nightly.20210319","14.0.0-nightly.20210323","14.0.0-nightly.20210324","14.0.0-nightly.20210325","14.0.0-nightly.20210326","14.0.0-nightly.20210329","14.0.0-nightly.20210330"],"91.0.4448.0":["13.0.0-beta.14","13.0.0-beta.16","13.0.0-beta.17","13.0.0-beta.18","13.0.0-beta.20","14.0.0-nightly.20210331","14.0.0-nightly.20210401","14.0.0-nightly.20210402","14.0.0-nightly.20210406","14.0.0-nightly.20210407","14.0.0-nightly.20210408","14.0.0-nightly.20210409","14.0.0-nightly.20210413"],"91.0.4472.33":["13.0.0-beta.21","13.0.0-beta.22","13.0.0-beta.23"],"91.0.4472.38":["13.0.0-beta.24","13.0.0-beta.25","13.0.0-beta.26","13.0.0-beta.27","13.0.0-beta.28"],"89.0.4349.0":["13.0.0-nightly.20201215","13.0.0-nightly.20201216","13.0.0-nightly.20201221","13.0.0-nightly.20201222"],"89.0.4359.0":["13.0.0-nightly.20201223","13.0.0-nightly.20210104","13.0.0-nightly.20210108","13.0.0-nightly.20210111"],"89.0.4386.0":["13.0.0-nightly.20210113","13.0.0-nightly.20210114","13.0.0-nightly.20210118","13.0.0-nightly.20210122","13.0.0-nightly.20210125"],"89.0.4389.0":["13.0.0-nightly.20210127","13.0.0-nightly.20210128","13.0.0-nightly.20210129","13.0.0-nightly.20210201","13.0.0-nightly.20210202","13.0.0-nightly.20210203","13.0.0-nightly.20210205","13.0.0-nightly.20210208","13.0.0-nightly.20210209"],"91.0.4472.69":["13.0.0","13.0.1"],"91.0.4472.77":["13.1.0","13.1.1","13.1.2"],"91.0.4472.106":["13.1.3","13.1.4"],"91.0.4472.124":["13.1.5","13.1.6","13.1.7"],"91.0.4472.164":["13.1.8","13.1.9","13.2.0","13.2.1","13.2.2","13.2.3","13.3.0","13.4.0","13.5.0","13.5.1","13.5.2","13.6.0","13.6.1","13.6.2","13.6.3","13.6.6","13.6.7","13.6.8","13.6.9"],"92.0.4511.0":["14.0.0-beta.1","14.0.0-beta.2","14.0.0-beta.3","14.0.0-nightly.20210520","14.0.0-nightly.20210523","14.0.0-nightly.20210524","15.0.0-nightly.20210527","15.0.0-nightly.20210528","15.0.0-nightly.20210531","15.0.0-nightly.20210601","15.0.0-nightly.20210602"],"93.0.4536.0":["14.0.0-beta.5","14.0.0-beta.6","14.0.0-beta.7","14.0.0-beta.8","15.0.0-nightly.20210609","15.0.0-nightly.20210610","15.0.0-nightly.20210611","15.0.0-nightly.20210614","15.0.0-nightly.20210615","15.0.0-nightly.20210616"],"93.0.4539.0":["14.0.0-beta.9","14.0.0-beta.10","15.0.0-nightly.20210617","15.0.0-nightly.20210618","15.0.0-nightly.20210621","15.0.0-nightly.20210622"],"93.0.4557.4":["14.0.0-beta.11","14.0.0-beta.12"],"93.0.4566.0":["14.0.0-beta.13","14.0.0-beta.14","14.0.0-beta.15","14.0.0-beta.16","14.0.0-beta.17","15.0.0-alpha.1","15.0.0-alpha.2","15.0.0-nightly.20210706","15.0.0-nightly.20210707","15.0.0-nightly.20210708","15.0.0-nightly.20210709","15.0.0-nightly.20210712","15.0.0-nightly.20210713","15.0.0-nightly.20210714","15.0.0-nightly.20210715","15.0.0-nightly.20210716","15.0.0-nightly.20210719","15.0.0-nightly.20210720","15.0.0-nightly.20210721","16.0.0-nightly.20210722","16.0.0-nightly.20210723","16.0.0-nightly.20210726"],"93.0.4577.15":["14.0.0-beta.18","14.0.0-beta.19","14.0.0-beta.20","14.0.0-beta.21"],"93.0.4577.25":["14.0.0-beta.22","14.0.0-beta.23"],"93.0.4577.51":["14.0.0-beta.24","14.0.0-beta.25"],"92.0.4475.0":["14.0.0-nightly.20210426","14.0.0-nightly.20210427"],"92.0.4488.0":["14.0.0-nightly.20210430","14.0.0-nightly.20210503"],"92.0.4496.0":["14.0.0-nightly.20210505"],"92.0.4498.0":["14.0.0-nightly.20210506"],"92.0.4499.0":["14.0.0-nightly.20210507","14.0.0-nightly.20210510","14.0.0-nightly.20210511","14.0.0-nightly.20210512","14.0.0-nightly.20210513"],"92.0.4505.0":["14.0.0-nightly.20210514","14.0.0-nightly.20210517","14.0.0-nightly.20210518","14.0.0-nightly.20210519"],"93.0.4577.58":["14.0.0"],"93.0.4577.63":["14.0.1"],"93.0.4577.82":["14.0.2","14.1.0","14.1.1","14.2.0","14.2.1","14.2.2","14.2.3","14.2.4","14.2.5","14.2.6","14.2.7","14.2.8","14.2.9"],"94.0.4584.0":["15.0.0-alpha.3","15.0.0-alpha.4","15.0.0-alpha.5","15.0.0-alpha.6","16.0.0-nightly.20210727","16.0.0-nightly.20210728","16.0.0-nightly.20210729","16.0.0-nightly.20210730","16.0.0-nightly.20210802","16.0.0-nightly.20210803","16.0.0-nightly.20210804","16.0.0-nightly.20210805","16.0.0-nightly.20210806","16.0.0-nightly.20210809","16.0.0-nightly.20210810","16.0.0-nightly.20210811"],"94.0.4590.2":["15.0.0-alpha.7","15.0.0-alpha.8","15.0.0-alpha.9","16.0.0-nightly.20210812","16.0.0-nightly.20210813","16.0.0-nightly.20210816","16.0.0-nightly.20210817","16.0.0-nightly.20210818","16.0.0-nightly.20210819","16.0.0-nightly.20210820","16.0.0-nightly.20210823"],"94.0.4606.12":["15.0.0-alpha.10"],"94.0.4606.20":["15.0.0-beta.1","15.0.0-beta.2"],"94.0.4606.31":["15.0.0-beta.3","15.0.0-beta.4","15.0.0-beta.5","15.0.0-beta.6","15.0.0-beta.7"],"93.0.4530.0":["15.0.0-nightly.20210603","15.0.0-nightly.20210604"],"93.0.4535.0":["15.0.0-nightly.20210608"],"93.0.4550.0":["15.0.0-nightly.20210623","15.0.0-nightly.20210624"],"93.0.4552.0":["15.0.0-nightly.20210625","15.0.0-nightly.20210628","15.0.0-nightly.20210629"],"93.0.4558.0":["15.0.0-nightly.20210630","15.0.0-nightly.20210701","15.0.0-nightly.20210702","15.0.0-nightly.20210705"],"94.0.4606.51":["15.0.0"],"94.0.4606.61":["15.1.0","15.1.1"],"94.0.4606.71":["15.1.2"],"94.0.4606.81":["15.2.0","15.3.0","15.3.1","15.3.2","15.3.3","15.3.4","15.3.5","15.3.6","15.3.7","15.4.0","15.4.1","15.4.2","15.5.0","15.5.1","15.5.2","15.5.3","15.5.4","15.5.5","15.5.6","15.5.7"],"95.0.4629.0":["16.0.0-alpha.1","16.0.0-alpha.2","16.0.0-alpha.3","16.0.0-alpha.4","16.0.0-alpha.5","16.0.0-alpha.6","16.0.0-alpha.7","16.0.0-nightly.20210902","16.0.0-nightly.20210903","16.0.0-nightly.20210906","16.0.0-nightly.20210907","16.0.0-nightly.20210908","16.0.0-nightly.20210909","16.0.0-nightly.20210910","16.0.0-nightly.20210913","16.0.0-nightly.20210914","16.0.0-nightly.20210915","16.0.0-nightly.20210916","16.0.0-nightly.20210917","16.0.0-nightly.20210920","16.0.0-nightly.20210921","16.0.0-nightly.20210922","17.0.0-nightly.20210923","17.0.0-nightly.20210924","17.0.0-nightly.20210927","17.0.0-nightly.20210928","17.0.0-nightly.20210929","17.0.0-nightly.20210930","17.0.0-nightly.20211001","17.0.0-nightly.20211004","17.0.0-nightly.20211005"],"96.0.4647.0":["16.0.0-alpha.8","16.0.0-alpha.9","16.0.0-beta.1","16.0.0-beta.2","16.0.0-beta.3","17.0.0-nightly.20211006","17.0.0-nightly.20211007","17.0.0-nightly.20211008","17.0.0-nightly.20211011","17.0.0-nightly.20211012","17.0.0-nightly.20211013","17.0.0-nightly.20211014","17.0.0-nightly.20211015","17.0.0-nightly.20211018","17.0.0-nightly.20211019","17.0.0-nightly.20211020","17.0.0-nightly.20211021"],"96.0.4664.18":["16.0.0-beta.4","16.0.0-beta.5"],"96.0.4664.27":["16.0.0-beta.6","16.0.0-beta.7"],"96.0.4664.35":["16.0.0-beta.8","16.0.0-beta.9"],"95.0.4612.5":["16.0.0-nightly.20210824","16.0.0-nightly.20210825","16.0.0-nightly.20210826","16.0.0-nightly.20210827","16.0.0-nightly.20210830","16.0.0-nightly.20210831","16.0.0-nightly.20210901"],"96.0.4664.45":["16.0.0","16.0.1"],"96.0.4664.55":["16.0.2","16.0.3","16.0.4","16.0.5"],"96.0.4664.110":["16.0.6","16.0.7","16.0.8"],"96.0.4664.174":["16.0.9","16.0.10","16.1.0","16.1.1","16.2.0","16.2.1","16.2.2","16.2.3","16.2.4","16.2.5","16.2.6","16.2.7","16.2.8"],"96.0.4664.4":["17.0.0-alpha.1","17.0.0-alpha.2","17.0.0-alpha.3","17.0.0-nightly.20211022","17.0.0-nightly.20211025","17.0.0-nightly.20211026","17.0.0-nightly.20211027","17.0.0-nightly.20211028","17.0.0-nightly.20211029","17.0.0-nightly.20211101","17.0.0-nightly.20211102","17.0.0-nightly.20211103","17.0.0-nightly.20211104","17.0.0-nightly.20211105","17.0.0-nightly.20211108","17.0.0-nightly.20211109","17.0.0-nightly.20211110","17.0.0-nightly.20211111","17.0.0-nightly.20211112","17.0.0-nightly.20211115","17.0.0-nightly.20211116","17.0.0-nightly.20211117","18.0.0-nightly.20211118","18.0.0-nightly.20211119","18.0.0-nightly.20211122","18.0.0-nightly.20211123"],"98.0.4706.0":["17.0.0-alpha.4","17.0.0-alpha.5","17.0.0-alpha.6","17.0.0-beta.1","17.0.0-beta.2","18.0.0-nightly.20211124","18.0.0-nightly.20211125","18.0.0-nightly.20211126","18.0.0-nightly.20211129","18.0.0-nightly.20211130","18.0.0-nightly.20211201","18.0.0-nightly.20211202","18.0.0-nightly.20211203","18.0.0-nightly.20211206","18.0.0-nightly.20211207","18.0.0-nightly.20211208","18.0.0-nightly.20211209","18.0.0-nightly.20211210","18.0.0-nightly.20211213","18.0.0-nightly.20211214","18.0.0-nightly.20211215","18.0.0-nightly.20211216","18.0.0-nightly.20211217","18.0.0-nightly.20211220","18.0.0-nightly.20211221","18.0.0-nightly.20211222","18.0.0-nightly.20211223","18.0.0-nightly.20211228","18.0.0-nightly.20211229","18.0.0-nightly.20211231","18.0.0-nightly.20220103","18.0.0-nightly.20220104","18.0.0-nightly.20220105","18.0.0-nightly.20220106","18.0.0-nightly.20220107","18.0.0-nightly.20220110"],"98.0.4758.9":["17.0.0-beta.3"],"98.0.4758.11":["17.0.0-beta.4","17.0.0-beta.5","17.0.0-beta.6","17.0.0-beta.7","17.0.0-beta.8","17.0.0-beta.9"],"98.0.4758.74":["17.0.0"],"98.0.4758.82":["17.0.1"],"98.0.4758.102":["17.1.0"],"98.0.4758.109":["17.1.1","17.1.2","17.2.0"],"98.0.4758.141":["17.3.0","17.3.1","17.4.0","17.4.1","17.4.2","17.4.3","17.4.4","17.4.5","17.4.6","17.4.7","17.4.8","17.4.9","17.4.10","17.4.11"],"99.0.4767.0":["18.0.0-alpha.1","18.0.0-alpha.2","18.0.0-alpha.3","18.0.0-alpha.4","18.0.0-alpha.5","18.0.0-nightly.20220111","18.0.0-nightly.20220112","18.0.0-nightly.20220113","18.0.0-nightly.20220114","18.0.0-nightly.20220117","18.0.0-nightly.20220118","18.0.0-nightly.20220119","18.0.0-nightly.20220121","18.0.0-nightly.20220124","18.0.0-nightly.20220125","18.0.0-nightly.20220127","18.0.0-nightly.20220128","18.0.0-nightly.20220131","18.0.0-nightly.20220201","19.0.0-nightly.20220202","19.0.0-nightly.20220203","19.0.0-nightly.20220204","19.0.0-nightly.20220207","19.0.0-nightly.20220208","19.0.0-nightly.20220209"],"100.0.4894.0":["18.0.0-beta.1","18.0.0-beta.2","18.0.0-beta.3","18.0.0-beta.4","18.0.0-beta.5","18.0.0-beta.6","19.0.0-nightly.20220308","19.0.0-nightly.20220309","19.0.0-nightly.20220310","19.0.0-nightly.20220311","19.0.0-nightly.20220314","19.0.0-nightly.20220315","19.0.0-nightly.20220316","19.0.0-nightly.20220317","19.0.0-nightly.20220318","19.0.0-nightly.20220321","19.0.0-nightly.20220322","19.0.0-nightly.20220323","19.0.0-nightly.20220324"],"100.0.4896.56":["18.0.0"],"100.0.4896.60":["18.0.1","18.0.2"],"100.0.4896.75":["18.0.3","18.0.4"],"100.0.4896.127":["18.1.0"],"100.0.4896.143":["18.2.0","18.2.1","18.2.2","18.2.3"],"100.0.4896.160":["18.2.4","18.3.0","18.3.1","18.3.2","18.3.3","18.3.4","18.3.5","18.3.6","18.3.7","18.3.8","18.3.9","18.3.11","18.3.12","18.3.13","18.3.14","18.3.15"],"102.0.4962.3":["19.0.0-alpha.1","19.0.0-nightly.20220328","19.0.0-nightly.20220329","20.0.0-nightly.20220330"],"102.0.4971.0":["19.0.0-alpha.2","19.0.0-alpha.3","20.0.0-nightly.20220411"],"102.0.4989.0":["19.0.0-alpha.4","19.0.0-alpha.5","20.0.0-nightly.20220414","20.0.0-nightly.20220415","20.0.0-nightly.20220418","20.0.0-nightly.20220419","20.0.0-nightly.20220420","20.0.0-nightly.20220421"],"102.0.4999.0":["19.0.0-beta.1","19.0.0-beta.2","19.0.0-beta.3","20.0.0-nightly.20220425","20.0.0-nightly.20220426","20.0.0-nightly.20220427","20.0.0-nightly.20220428","20.0.0-nightly.20220429","20.0.0-nightly.20220502","20.0.0-nightly.20220503","20.0.0-nightly.20220504","20.0.0-nightly.20220505","20.0.0-nightly.20220506","20.0.0-nightly.20220509","20.0.0-nightly.20220511","20.0.0-nightly.20220512","20.0.0-nightly.20220513","20.0.0-nightly.20220516","20.0.0-nightly.20220517"],"102.0.5005.27":["19.0.0-beta.4"],"102.0.5005.40":["19.0.0-beta.5","19.0.0-beta.6","19.0.0-beta.7"],"102.0.5005.49":["19.0.0-beta.8"],"102.0.4961.0":["19.0.0-nightly.20220325"],"102.0.5005.61":["19.0.0","19.0.1"],"102.0.5005.63":["19.0.2","19.0.3","19.0.4"],"102.0.5005.115":["19.0.5","19.0.6"],"102.0.5005.134":["19.0.7"],"102.0.5005.148":["19.0.8"],"102.0.5005.167":["19.0.9","19.0.10","19.0.11","19.0.12","19.0.13","19.0.14","19.0.15","19.0.16","19.0.17","19.1.0","19.1.1","19.1.2","19.1.3","19.1.4","19.1.5","19.1.6","19.1.7","19.1.8","19.1.9"],"103.0.5044.0":["20.0.0-alpha.1","20.0.0-nightly.20220518","20.0.0-nightly.20220519","20.0.0-nightly.20220520","20.0.0-nightly.20220523","20.0.0-nightly.20220524","21.0.0-nightly.20220526","21.0.0-nightly.20220527","21.0.0-nightly.20220530","21.0.0-nightly.20220531"],"104.0.5073.0":["20.0.0-alpha.2","20.0.0-alpha.3","20.0.0-alpha.4","20.0.0-alpha.5","20.0.0-alpha.6","20.0.0-alpha.7","20.0.0-beta.1","20.0.0-beta.2","20.0.0-beta.3","20.0.0-beta.4","20.0.0-beta.5","20.0.0-beta.6","20.0.0-beta.7","20.0.0-beta.8","21.0.0-nightly.20220602","21.0.0-nightly.20220603","21.0.0-nightly.20220606","21.0.0-nightly.20220607","21.0.0-nightly.20220608","21.0.0-nightly.20220609","21.0.0-nightly.20220610","21.0.0-nightly.20220613","21.0.0-nightly.20220614","21.0.0-nightly.20220615","21.0.0-nightly.20220616","21.0.0-nightly.20220617","21.0.0-nightly.20220620","21.0.0-nightly.20220621","21.0.0-nightly.20220622","21.0.0-nightly.20220623","21.0.0-nightly.20220624","21.0.0-nightly.20220627"],"104.0.5112.39":["20.0.0-beta.9"],"104.0.5112.48":["20.0.0-beta.10","20.0.0-beta.11","20.0.0-beta.12"],"104.0.5112.57":["20.0.0-beta.13"],"104.0.5112.65":["20.0.0"],"104.0.5112.81":["20.0.1","20.0.2","20.0.3"],"104.0.5112.102":["20.1.0","20.1.1"],"104.0.5112.114":["20.1.2","20.1.3","20.1.4"],"104.0.5112.124":["20.2.0","20.3.0","20.3.1","20.3.2","20.3.3","20.3.4","20.3.5","20.3.6","20.3.7","20.3.8","20.3.9","20.3.10","20.3.11","20.3.12"],"105.0.5187.0":["21.0.0-alpha.1","21.0.0-alpha.2","21.0.0-alpha.3","21.0.0-alpha.4","21.0.0-alpha.5","21.0.0-nightly.20220720","21.0.0-nightly.20220721","21.0.0-nightly.20220722","21.0.0-nightly.20220725","21.0.0-nightly.20220726","21.0.0-nightly.20220727","21.0.0-nightly.20220728","21.0.0-nightly.20220801","21.0.0-nightly.20220802","22.0.0-nightly.20220808","22.0.0-nightly.20220809","22.0.0-nightly.20220810","22.0.0-nightly.20220811","22.0.0-nightly.20220812","22.0.0-nightly.20220815","22.0.0-nightly.20220816","22.0.0-nightly.20220817"],"106.0.5216.0":["21.0.0-alpha.6","21.0.0-beta.1","21.0.0-beta.2","21.0.0-beta.3","21.0.0-beta.4","21.0.0-beta.5","22.0.0-nightly.20220822","22.0.0-nightly.20220823","22.0.0-nightly.20220824","22.0.0-nightly.20220825","22.0.0-nightly.20220829","22.0.0-nightly.20220830","22.0.0-nightly.20220831","22.0.0-nightly.20220901","22.0.0-nightly.20220902","22.0.0-nightly.20220905"],"106.0.5249.40":["21.0.0-beta.6","21.0.0-beta.7","21.0.0-beta.8"],"105.0.5129.0":["21.0.0-nightly.20220628","21.0.0-nightly.20220629","21.0.0-nightly.20220630","21.0.0-nightly.20220701","21.0.0-nightly.20220704","21.0.0-nightly.20220705","21.0.0-nightly.20220706","21.0.0-nightly.20220707","21.0.0-nightly.20220708","21.0.0-nightly.20220711","21.0.0-nightly.20220712","21.0.0-nightly.20220713"],"105.0.5173.0":["21.0.0-nightly.20220715","21.0.0-nightly.20220718","21.0.0-nightly.20220719"],"106.0.5249.51":["21.0.0"],"106.0.5249.61":["21.0.1"],"106.0.5249.91":["21.1.0"],"106.0.5249.103":["21.1.1"],"106.0.5249.119":["21.2.0"],"106.0.5249.165":["21.2.1"],"106.0.5249.168":["21.2.2","21.2.3"],"106.0.5249.181":["21.3.0","21.3.1"],"106.0.5249.199":["21.3.3","21.3.4","21.3.5","21.4.0","21.4.1","21.4.2","21.4.3","21.4.4"],"107.0.5286.0":["22.0.0-alpha.1","22.0.0-nightly.20220909","22.0.0-nightly.20220912","22.0.0-nightly.20220913","22.0.0-nightly.20220914","22.0.0-nightly.20220915","22.0.0-nightly.20220916","22.0.0-nightly.20220919","22.0.0-nightly.20220920","22.0.0-nightly.20220921","22.0.0-nightly.20220922","22.0.0-nightly.20220923","22.0.0-nightly.20220926","22.0.0-nightly.20220927","22.0.0-nightly.20220928","23.0.0-nightly.20220929","23.0.0-nightly.20220930","23.0.0-nightly.20221003"],"108.0.5329.0":["22.0.0-alpha.3","22.0.0-alpha.4","22.0.0-alpha.5","22.0.0-alpha.6","23.0.0-nightly.20221004","23.0.0-nightly.20221005","23.0.0-nightly.20221006","23.0.0-nightly.20221007","23.0.0-nightly.20221010","23.0.0-nightly.20221011","23.0.0-nightly.20221012","23.0.0-nightly.20221013","23.0.0-nightly.20221014","23.0.0-nightly.20221017"],"108.0.5355.0":["22.0.0-alpha.7","23.0.0-nightly.20221018","23.0.0-nightly.20221019","23.0.0-nightly.20221020","23.0.0-nightly.20221021","23.0.0-nightly.20221024","23.0.0-nightly.20221026"],"108.0.5359.10":["22.0.0-alpha.8","22.0.0-beta.1","22.0.0-beta.2","22.0.0-beta.3"],"108.0.5359.29":["22.0.0-beta.4"],"108.0.5359.40":["22.0.0-beta.5","22.0.0-beta.6"],"108.0.5359.48":["22.0.0-beta.7","22.0.0-beta.8"],"107.0.5274.0":["22.0.0-nightly.20220908"],"108.0.5359.62":["22.0.0"],"108.0.5359.125":["22.0.1"],"108.0.5359.179":["22.0.2","22.0.3","22.1.0"],"108.0.5359.215":["22.2.0","22.2.1","22.3.0","22.3.1","22.3.2","22.3.3","22.3.4","22.3.5","22.3.6","22.3.7","22.3.8","22.3.9","22.3.10","22.3.11","22.3.12","22.3.13","22.3.14","22.3.15","22.3.16","22.3.17","22.3.18","22.3.20","22.3.21","22.3.22","22.3.23","22.3.24","22.3.25","22.3.26","22.3.27"],"110.0.5415.0":["23.0.0-alpha.1","23.0.0-nightly.20221118","23.0.0-nightly.20221121","23.0.0-nightly.20221122","23.0.0-nightly.20221123","23.0.0-nightly.20221124","23.0.0-nightly.20221125","23.0.0-nightly.20221128","23.0.0-nightly.20221129","23.0.0-nightly.20221130","24.0.0-nightly.20221201","24.0.0-nightly.20221202","24.0.0-nightly.20221205"],"110.0.5451.0":["23.0.0-alpha.2","23.0.0-alpha.3","24.0.0-nightly.20221206","24.0.0-nightly.20221207","24.0.0-nightly.20221208","24.0.0-nightly.20221213","24.0.0-nightly.20221214","24.0.0-nightly.20221215","24.0.0-nightly.20221216"],"110.0.5478.5":["23.0.0-beta.1","23.0.0-beta.2","23.0.0-beta.3"],"110.0.5481.30":["23.0.0-beta.4"],"110.0.5481.38":["23.0.0-beta.5"],"110.0.5481.52":["23.0.0-beta.6","23.0.0-beta.8"],"109.0.5382.0":["23.0.0-nightly.20221027","23.0.0-nightly.20221028","23.0.0-nightly.20221031","23.0.0-nightly.20221101","23.0.0-nightly.20221102","23.0.0-nightly.20221103","23.0.0-nightly.20221104","23.0.0-nightly.20221107","23.0.0-nightly.20221108","23.0.0-nightly.20221109","23.0.0-nightly.20221110","23.0.0-nightly.20221111","23.0.0-nightly.20221114","23.0.0-nightly.20221115","23.0.0-nightly.20221116","23.0.0-nightly.20221117"],"110.0.5481.77":["23.0.0"],"110.0.5481.100":["23.1.0"],"110.0.5481.104":["23.1.1"],"110.0.5481.177":["23.1.2"],"110.0.5481.179":["23.1.3"],"110.0.5481.192":["23.1.4","23.2.0"],"110.0.5481.208":["23.2.1","23.2.2","23.2.3","23.2.4","23.3.0","23.3.1","23.3.2","23.3.3","23.3.4","23.3.5","23.3.6","23.3.7","23.3.8","23.3.9","23.3.10","23.3.11","23.3.12","23.3.13"],"111.0.5560.0":["24.0.0-alpha.1","24.0.0-alpha.2","24.0.0-alpha.3","24.0.0-alpha.4","24.0.0-alpha.5","24.0.0-alpha.6","24.0.0-alpha.7","24.0.0-nightly.20230203","24.0.0-nightly.20230206","24.0.0-nightly.20230207","24.0.0-nightly.20230208","24.0.0-nightly.20230209","25.0.0-nightly.20230210","25.0.0-nightly.20230214","25.0.0-nightly.20230215","25.0.0-nightly.20230216","25.0.0-nightly.20230217","25.0.0-nightly.20230220","25.0.0-nightly.20230221","25.0.0-nightly.20230222","25.0.0-nightly.20230223","25.0.0-nightly.20230224","25.0.0-nightly.20230227","25.0.0-nightly.20230228","25.0.0-nightly.20230301","25.0.0-nightly.20230302","25.0.0-nightly.20230303","25.0.0-nightly.20230306","25.0.0-nightly.20230307","25.0.0-nightly.20230308","25.0.0-nightly.20230309","25.0.0-nightly.20230310"],"111.0.5563.50":["24.0.0-beta.1","24.0.0-beta.2"],"112.0.5615.20":["24.0.0-beta.3","24.0.0-beta.4"],"112.0.5615.29":["24.0.0-beta.5"],"112.0.5615.39":["24.0.0-beta.6","24.0.0-beta.7"],"111.0.5518.0":["24.0.0-nightly.20230109","24.0.0-nightly.20230110","24.0.0-nightly.20230111","24.0.0-nightly.20230112","24.0.0-nightly.20230113","24.0.0-nightly.20230116","24.0.0-nightly.20230117","24.0.0-nightly.20230118","24.0.0-nightly.20230119","24.0.0-nightly.20230120","24.0.0-nightly.20230123","24.0.0-nightly.20230124","24.0.0-nightly.20230125","24.0.0-nightly.20230126","24.0.0-nightly.20230127","24.0.0-nightly.20230131","24.0.0-nightly.20230201","24.0.0-nightly.20230202"],"112.0.5615.49":["24.0.0"],"112.0.5615.50":["24.1.0","24.1.1"],"112.0.5615.87":["24.1.2"],"112.0.5615.165":["24.1.3","24.2.0","24.3.0"],"112.0.5615.183":["24.3.1"],"112.0.5615.204":["24.4.0","24.4.1","24.5.0","24.5.1","24.6.0","24.6.1","24.6.2","24.6.3","24.6.4","24.6.5","24.7.0","24.7.1","24.8.0","24.8.1","24.8.2","24.8.3","24.8.4","24.8.5","24.8.6","24.8.7","24.8.8"],"114.0.5694.0":["25.0.0-alpha.1","25.0.0-alpha.2","25.0.0-nightly.20230405","26.0.0-nightly.20230406","26.0.0-nightly.20230407","26.0.0-nightly.20230410","26.0.0-nightly.20230411"],"114.0.5710.0":["25.0.0-alpha.3","25.0.0-alpha.4","26.0.0-nightly.20230413","26.0.0-nightly.20230414","26.0.0-nightly.20230417"],"114.0.5719.0":["25.0.0-alpha.5","25.0.0-alpha.6","25.0.0-beta.1","25.0.0-beta.2","25.0.0-beta.3","26.0.0-nightly.20230421","26.0.0-nightly.20230424","26.0.0-nightly.20230425","26.0.0-nightly.20230426","26.0.0-nightly.20230427","26.0.0-nightly.20230428","26.0.0-nightly.20230501","26.0.0-nightly.20230502","26.0.0-nightly.20230503","26.0.0-nightly.20230504","26.0.0-nightly.20230505","26.0.0-nightly.20230508","26.0.0-nightly.20230509","26.0.0-nightly.20230510"],"114.0.5735.16":["25.0.0-beta.4","25.0.0-beta.5","25.0.0-beta.6","25.0.0-beta.7"],"114.0.5735.35":["25.0.0-beta.8"],"114.0.5735.45":["25.0.0-beta.9","25.0.0","25.0.1"],"113.0.5636.0":["25.0.0-nightly.20230314"],"113.0.5651.0":["25.0.0-nightly.20230315"],"113.0.5653.0":["25.0.0-nightly.20230317"],"113.0.5660.0":["25.0.0-nightly.20230320"],"113.0.5664.0":["25.0.0-nightly.20230321"],"113.0.5666.0":["25.0.0-nightly.20230322"],"113.0.5668.0":["25.0.0-nightly.20230323"],"113.0.5670.0":["25.0.0-nightly.20230324","25.0.0-nightly.20230327","25.0.0-nightly.20230328","25.0.0-nightly.20230329","25.0.0-nightly.20230330"],"114.0.5684.0":["25.0.0-nightly.20230331","25.0.0-nightly.20230403"],"114.0.5692.0":["25.0.0-nightly.20230404"],"114.0.5735.106":["25.1.0","25.1.1"],"114.0.5735.134":["25.2.0"],"114.0.5735.199":["25.3.0"],"114.0.5735.243":["25.3.1"],"114.0.5735.248":["25.3.2","25.4.0"],"114.0.5735.289":["25.5.0","25.6.0","25.7.0","25.8.0","25.8.1","25.8.2","25.8.3","25.8.4","25.9.0","25.9.1","25.9.2","25.9.3","25.9.4","25.9.5","25.9.6","25.9.7","25.9.8"],"116.0.5791.0":["26.0.0-alpha.1","26.0.0-alpha.2","26.0.0-alpha.3","26.0.0-alpha.4","26.0.0-alpha.5","26.0.0-nightly.20230526","26.0.0-nightly.20230529","26.0.0-nightly.20230530","26.0.0-nightly.20230531","27.0.0-nightly.20230601","27.0.0-nightly.20230602","27.0.0-nightly.20230605","27.0.0-nightly.20230606","27.0.0-nightly.20230607","27.0.0-nightly.20230609"],"116.0.5815.0":["26.0.0-alpha.6","27.0.0-nightly.20230612","27.0.0-nightly.20230613"],"116.0.5831.0":["26.0.0-alpha.7","27.0.0-nightly.20230615"],"116.0.5845.0":["26.0.0-alpha.8","26.0.0-beta.1","27.0.0-nightly.20230622","27.0.0-nightly.20230623","27.0.0-nightly.20230626","27.0.0-nightly.20230627","27.0.0-nightly.20230628","27.0.0-nightly.20230629","27.0.0-nightly.20230630"],"116.0.5845.14":["26.0.0-beta.2","26.0.0-beta.3","26.0.0-beta.4","26.0.0-beta.5","26.0.0-beta.6","26.0.0-beta.7"],"116.0.5845.42":["26.0.0-beta.8","26.0.0-beta.9"],"116.0.5845.49":["26.0.0-beta.10","26.0.0-beta.11"],"116.0.5845.62":["26.0.0-beta.12"],"114.0.5708.0":["26.0.0-nightly.20230412"],"114.0.5715.0":["26.0.0-nightly.20230418"],"115.0.5760.0":["26.0.0-nightly.20230511","26.0.0-nightly.20230512","26.0.0-nightly.20230515","26.0.0-nightly.20230516","26.0.0-nightly.20230517","26.0.0-nightly.20230518","26.0.0-nightly.20230519","26.0.0-nightly.20230522","26.0.0-nightly.20230523"],"115.0.5786.0":["26.0.0-nightly.20230524"],"115.0.5790.0":["26.0.0-nightly.20230525"],"116.0.5845.82":["26.0.0"],"116.0.5845.97":["26.1.0"],"116.0.5845.179":["26.2.0"],"116.0.5845.188":["26.2.1"],"116.0.5845.190":["26.2.2","26.2.3","26.2.4"],"116.0.5845.228":["26.3.0","26.4.0","26.4.1","26.4.2","26.4.3","26.5.0","26.6.0","26.6.1","26.6.2","26.6.3","26.6.4","26.6.5","26.6.6","26.6.7","26.6.8","26.6.9","26.6.10"],"118.0.5949.0":["27.0.0-alpha.1","27.0.0-alpha.2","27.0.0-alpha.3","27.0.0-alpha.4","27.0.0-alpha.5","27.0.0-alpha.6","27.0.0-nightly.20230816","28.0.0-nightly.20230817","28.0.0-nightly.20230818","28.0.0-nightly.20230821","28.0.0-nightly.20230822","28.0.0-nightly.20230823","28.0.0-nightly.20230824","28.0.0-nightly.20230825","28.0.0-nightly.20230828","28.0.0-nightly.20230829","28.0.0-nightly.20230830","28.0.0-nightly.20230831"],"118.0.5993.5":["27.0.0-beta.1","27.0.0-beta.2","27.0.0-beta.3"],"118.0.5993.11":["27.0.0-beta.4"],"118.0.5993.18":["27.0.0-beta.5","27.0.0-beta.6","27.0.0-beta.7","27.0.0-beta.8","27.0.0-beta.9"],"116.0.5829.0":["27.0.0-nightly.20230614"],"116.0.5833.0":["27.0.0-nightly.20230616","27.0.0-nightly.20230619","27.0.0-nightly.20230620","27.0.0-nightly.20230621"],"117.0.5852.0":["27.0.0-nightly.20230703","27.0.0-nightly.20230704","27.0.0-nightly.20230705","27.0.0-nightly.20230706","27.0.0-nightly.20230707","27.0.0-nightly.20230710","27.0.0-nightly.20230711","27.0.0-nightly.20230712","27.0.0-nightly.20230713","27.0.0-nightly.20230714"],"117.0.5884.1":["27.0.0-nightly.20230717","27.0.0-nightly.20230718"],"117.0.5892.0":["27.0.0-nightly.20230719"],"117.0.5897.0":["27.0.0-nightly.20230720","27.0.0-nightly.20230721","27.0.0-nightly.20230724","27.0.0-nightly.20230725","27.0.0-nightly.20230726","27.0.0-nightly.20230727","27.0.0-nightly.20230728","27.0.0-nightly.20230731"],"117.0.5911.0":["27.0.0-nightly.20230801","27.0.0-nightly.20230802","27.0.0-nightly.20230803"],"117.0.5921.0":["27.0.0-nightly.20230804","27.0.0-nightly.20230807","27.0.0-nightly.20230808","27.0.0-nightly.20230814","27.0.0-nightly.20230815"],"118.0.5993.54":["27.0.0"],"118.0.5993.89":["27.0.1","27.0.2"],"118.0.5993.120":["27.0.3"],"118.0.5993.129":["27.0.4"],"118.0.5993.144":["27.1.0","27.1.2"],"118.0.5993.159":["27.1.3","27.2.0","27.2.1","27.2.2","27.2.3","27.2.4","27.3.0","27.3.1","27.3.2","27.3.3","27.3.4","27.3.5","27.3.6","27.3.7","27.3.8","27.3.9","27.3.10","27.3.11"],"119.0.6045.0":["28.0.0-alpha.1","28.0.0-alpha.2","28.0.0-nightly.20231006","28.0.0-nightly.20231009","28.0.0-nightly.20231010","28.0.0-nightly.20231011","29.0.0-nightly.20231012","29.0.0-nightly.20231013","29.0.0-nightly.20231016","29.0.0-nightly.20231017","29.0.0-nightly.20231018","29.0.0-nightly.20231019","29.0.0-nightly.20231020","29.0.0-nightly.20231023","29.0.0-nightly.20231024"],"119.0.6045.21":["28.0.0-alpha.3","28.0.0-alpha.4"],"119.0.6045.33":["28.0.0-alpha.5","28.0.0-alpha.6","28.0.0-alpha.7","28.0.0-beta.1"],"120.0.6099.0":["28.0.0-beta.2"],"120.0.6099.5":["28.0.0-beta.3","28.0.0-beta.4"],"120.0.6099.18":["28.0.0-beta.5","28.0.0-beta.6","28.0.0-beta.7","28.0.0-beta.8","28.0.0-beta.9","28.0.0-beta.10"],"120.0.6099.35":["28.0.0-beta.11"],"118.0.5991.0":["28.0.0-nightly.20230906"],"118.0.5993.0":["28.0.0-nightly.20230907","28.0.0-nightly.20230908","28.0.0-nightly.20230911","28.0.0-nightly.20230912","28.0.0-nightly.20230913","28.0.0-nightly.20230914","28.0.0-nightly.20230915"],"119.0.6006.0":["28.0.0-nightly.20230919"],"119.0.6017.0":["28.0.0-nightly.20230920"],"119.0.6019.2":["28.0.0-nightly.20230921","28.0.0-nightly.20230925","28.0.0-nightly.20230926","28.0.0-nightly.20230927","28.0.0-nightly.20230928"],"119.0.6029.0":["28.0.0-nightly.20230929","28.0.0-nightly.20231002"],"119.0.6043.0":["28.0.0-nightly.20231003","28.0.0-nightly.20231004","28.0.0-nightly.20231005"],"120.0.6099.56":["28.0.0"],"120.0.6099.109":["28.1.0","28.1.1"],"120.0.6099.199":["28.1.2","28.1.3"],"120.0.6099.216":["28.1.4"],"120.0.6099.227":["28.2.0"],"120.0.6099.268":["28.2.1"],"120.0.6099.276":["28.2.2"],"120.0.6099.283":["28.2.3"],"120.0.6099.291":["28.2.4","28.2.5","28.2.6","28.2.7","28.2.8","28.2.9","28.2.10","28.3.0","28.3.1"],"121.0.6147.0":["29.0.0-alpha.1","29.0.0-alpha.2","29.0.0-alpha.3","29.0.0-nightly.20231129","29.0.0-nightly.20231130","29.0.0-nightly.20231201","29.0.0-nightly.20231204","29.0.0-nightly.20231205","29.0.0-nightly.20231206","30.0.0-nightly.20231207","30.0.0-nightly.20231208","30.0.0-nightly.20231211"],"121.0.6159.0":["29.0.0-alpha.4","29.0.0-alpha.5","29.0.0-alpha.6","29.0.0-alpha.7","30.0.0-nightly.20231212","30.0.0-nightly.20231213","30.0.0-nightly.20231214","30.0.0-nightly.20231215","30.0.0-nightly.20231218","30.0.0-nightly.20240102"],"122.0.6194.0":["29.0.0-alpha.8","30.0.0-nightly.20240103","30.0.0-nightly.20240104","30.0.0-nightly.20240105","30.0.0-nightly.20240108","30.0.0-nightly.20240109","30.0.0-nightly.20240110"],"122.0.6236.2":["29.0.0-alpha.9","29.0.0-alpha.10","29.0.0-alpha.11","29.0.0-beta.1","29.0.0-beta.2","30.0.0-nightly.20240111","30.0.0-nightly.20240112","30.0.0-nightly.20240115","30.0.0-nightly.20240116","30.0.0-nightly.20240117","30.0.0-nightly.20240118","30.0.0-nightly.20240119","30.0.0-nightly.20240122","30.0.0-nightly.20240123","30.0.0-nightly.20240124","30.0.0-nightly.20240125"],"122.0.6261.6":["29.0.0-beta.3","29.0.0-beta.4"],"122.0.6261.18":["29.0.0-beta.5","29.0.0-beta.6","29.0.0-beta.7","29.0.0-beta.8","29.0.0-beta.9","29.0.0-beta.10","29.0.0-beta.11"],"122.0.6261.29":["29.0.0-beta.12"],"120.0.6078.0":["29.0.0-nightly.20231025","29.0.0-nightly.20231026","29.0.0-nightly.20231027","29.0.0-nightly.20231030","29.0.0-nightly.20231031","29.0.0-nightly.20231101"],"121.0.6100.0":["29.0.0-nightly.20231102","29.0.0-nightly.20231103"],"121.0.6104.0":["29.0.0-nightly.20231106"],"121.0.6110.0":["29.0.0-nightly.20231107","29.0.0-nightly.20231108","29.0.0-nightly.20231109","29.0.0-nightly.20231110","29.0.0-nightly.20231113","29.0.0-nightly.20231114"],"121.0.6116.0":["29.0.0-nightly.20231115","29.0.0-nightly.20231116","29.0.0-nightly.20231117","29.0.0-nightly.20231120","29.0.0-nightly.20231121","29.0.0-nightly.20231122","29.0.0-nightly.20231123","29.0.0-nightly.20231124","29.0.0-nightly.20231127","29.0.0-nightly.20231128"],"122.0.6261.39":["29.0.0"],"122.0.6261.57":["29.0.1"],"122.0.6261.70":["29.1.0"],"122.0.6261.111":["29.1.1"],"122.0.6261.112":["29.1.2","29.1.3"],"122.0.6261.129":["29.1.4"],"122.0.6261.130":["29.1.5"],"122.0.6261.139":["29.1.6"],"122.0.6261.156":["29.2.0","29.3.0","29.3.1"],"123.0.6296.0":["30.0.0-alpha.1","30.0.0-nightly.20240215","30.0.0-nightly.20240216","30.0.0-nightly.20240219","30.0.0-nightly.20240220","30.0.0-nightly.20240221"],"123.0.6312.5":["30.0.0-alpha.2","31.0.0-nightly.20240222","31.0.0-nightly.20240223","31.0.0-nightly.20240226","31.0.0-nightly.20240227","31.0.0-nightly.20240228"],"124.0.6323.0":["30.0.0-alpha.3","30.0.0-alpha.4","31.0.0-nightly.20240229","31.0.0-nightly.20240301","31.0.0-nightly.20240304","31.0.0-nightly.20240305"],"124.0.6331.0":["30.0.0-alpha.5","30.0.0-alpha.6","31.0.0-nightly.20240306","31.0.0-nightly.20240307","31.0.0-nightly.20240308","31.0.0-nightly.20240311"],"124.0.6353.0":["30.0.0-alpha.7","31.0.0-nightly.20240313","31.0.0-nightly.20240314","31.0.0-nightly.20240315"],"124.0.6359.0":["30.0.0-beta.1","30.0.0-beta.2","31.0.0-nightly.20240318","31.0.0-nightly.20240319","31.0.0-nightly.20240320","31.0.0-nightly.20240321","31.0.0-nightly.20240325","31.0.0-nightly.20240327","31.0.0-nightly.20240328","31.0.0-nightly.20240329","31.0.0-nightly.20240401","31.0.0-nightly.20240402","31.0.0-nightly.20240404","31.0.0-nightly.20240405","31.0.0-nightly.20240408","31.0.0-nightly.20240409","31.0.0-nightly.20240410","31.0.0-nightly.20240411","31.0.0-nightly.20240412"],"124.0.6367.9":["30.0.0-beta.3","30.0.0-beta.4","30.0.0-beta.5"],"124.0.6367.18":["30.0.0-beta.6"],"124.0.6367.29":["30.0.0-beta.7","30.0.0-beta.8"],"123.0.6264.0":["30.0.0-nightly.20240126","30.0.0-nightly.20240129","30.0.0-nightly.20240130","30.0.0-nightly.20240131"],"123.0.6272.0":["30.0.0-nightly.20240201","30.0.0-nightly.20240202","30.0.0-nightly.20240205","30.0.0-nightly.20240206","30.0.0-nightly.20240207","30.0.0-nightly.20240208","30.0.0-nightly.20240209","30.0.0-nightly.20240212","30.0.0-nightly.20240213","30.0.0-nightly.20240214"],"124.0.6367.49":["30.0.0"],"124.0.6367.60":["30.0.1"],"125.0.6412.0":["31.0.0-alpha.1","31.0.0-alpha.2","32.0.0-nightly.20240418","32.0.0-nightly.20240419","32.0.0-nightly.20240422","32.0.0-nightly.20240423","32.0.0-nightly.20240424","32.0.0-nightly.20240425","32.0.0-nightly.20240426","32.0.0-nightly.20240429","32.0.0-nightly.20240430"],"124.0.6351.0":["31.0.0-nightly.20240312"]} \ No newline at end of file diff --git a/node_modules/electron-to-chromium/full-versions.js b/node_modules/electron-to-chromium/full-versions.js index eba0efa3..9e9112d0 100644 --- a/node_modules/electron-to-chromium/full-versions.js +++ b/node_modules/electron-to-chromium/full-versions.js @@ -2349,5 +2349,6 @@ module.exports = { "32.0.0-nightly.20240424": "125.0.6412.0", "32.0.0-nightly.20240425": "125.0.6412.0", "32.0.0-nightly.20240426": "125.0.6412.0", - "32.0.0-nightly.20240429": "125.0.6412.0" + "32.0.0-nightly.20240429": "125.0.6412.0", + "32.0.0-nightly.20240430": "125.0.6412.0" }; \ No newline at end of file diff --git a/node_modules/electron-to-chromium/full-versions.json b/node_modules/electron-to-chromium/full-versions.json index c64d2c1f..b136c70d 100644 --- a/node_modules/electron-to-chromium/full-versions.json +++ b/node_modules/electron-to-chromium/full-versions.json @@ -1 +1 @@ -{"0.20.0":"39.0.2171.65","0.20.1":"39.0.2171.65","0.20.2":"39.0.2171.65","0.20.3":"39.0.2171.65","0.20.4":"39.0.2171.65","0.20.5":"39.0.2171.65","0.20.6":"39.0.2171.65","0.20.7":"39.0.2171.65","0.20.8":"39.0.2171.65","0.21.0":"40.0.2214.91","0.21.1":"40.0.2214.91","0.21.2":"40.0.2214.91","0.21.3":"41.0.2272.76","0.22.1":"41.0.2272.76","0.22.2":"41.0.2272.76","0.22.3":"41.0.2272.76","0.23.0":"41.0.2272.76","0.24.0":"41.0.2272.76","0.25.0":"42.0.2311.107","0.25.1":"42.0.2311.107","0.25.2":"42.0.2311.107","0.25.3":"42.0.2311.107","0.26.0":"42.0.2311.107","0.26.1":"42.0.2311.107","0.27.0":"42.0.2311.107","0.27.1":"42.0.2311.107","0.27.2":"43.0.2357.65","0.27.3":"43.0.2357.65","0.28.0":"43.0.2357.65","0.28.1":"43.0.2357.65","0.28.2":"43.0.2357.65","0.28.3":"43.0.2357.65","0.29.1":"43.0.2357.65","0.29.2":"43.0.2357.65","0.30.4":"44.0.2403.125","0.31.0":"44.0.2403.125","0.31.2":"45.0.2454.85","0.32.2":"45.0.2454.85","0.32.3":"45.0.2454.85","0.33.0":"45.0.2454.85","0.33.1":"45.0.2454.85","0.33.2":"45.0.2454.85","0.33.3":"45.0.2454.85","0.33.4":"45.0.2454.85","0.33.6":"45.0.2454.85","0.33.7":"45.0.2454.85","0.33.8":"45.0.2454.85","0.33.9":"45.0.2454.85","0.34.0":"45.0.2454.85","0.34.1":"45.0.2454.85","0.34.2":"45.0.2454.85","0.34.3":"45.0.2454.85","0.34.4":"45.0.2454.85","0.35.1":"45.0.2454.85","0.35.2":"45.0.2454.85","0.35.3":"45.0.2454.85","0.35.4":"45.0.2454.85","0.35.5":"45.0.2454.85","0.36.0":"47.0.2526.73","0.36.2":"47.0.2526.73","0.36.3":"47.0.2526.73","0.36.4":"47.0.2526.73","0.36.5":"47.0.2526.110","0.36.6":"47.0.2526.110","0.36.7":"47.0.2526.110","0.36.8":"47.0.2526.110","0.36.9":"47.0.2526.110","0.36.10":"47.0.2526.110","0.36.11":"47.0.2526.110","0.36.12":"47.0.2526.110","0.37.0":"49.0.2623.75","0.37.1":"49.0.2623.75","0.37.3":"49.0.2623.75","0.37.4":"49.0.2623.75","0.37.5":"49.0.2623.75","0.37.6":"49.0.2623.75","0.37.7":"49.0.2623.75","0.37.8":"49.0.2623.75","1.0.0":"49.0.2623.75","1.0.1":"49.0.2623.75","1.0.2":"49.0.2623.75","1.1.0":"50.0.2661.102","1.1.1":"50.0.2661.102","1.1.2":"50.0.2661.102","1.1.3":"50.0.2661.102","1.2.0":"51.0.2704.63","1.2.1":"51.0.2704.63","1.2.2":"51.0.2704.84","1.2.3":"51.0.2704.84","1.2.4":"51.0.2704.103","1.2.5":"51.0.2704.103","1.2.6":"51.0.2704.106","1.2.7":"51.0.2704.106","1.2.8":"51.0.2704.106","1.3.0":"52.0.2743.82","1.3.1":"52.0.2743.82","1.3.2":"52.0.2743.82","1.3.3":"52.0.2743.82","1.3.4":"52.0.2743.82","1.3.5":"52.0.2743.82","1.3.6":"52.0.2743.82","1.3.7":"52.0.2743.82","1.3.9":"52.0.2743.82","1.3.10":"52.0.2743.82","1.3.13":"52.0.2743.82","1.3.14":"52.0.2743.82","1.3.15":"52.0.2743.82","1.4.0":"53.0.2785.113","1.4.1":"53.0.2785.113","1.4.2":"53.0.2785.113","1.4.3":"53.0.2785.113","1.4.4":"53.0.2785.113","1.4.5":"53.0.2785.113","1.4.6":"53.0.2785.143","1.4.7":"53.0.2785.143","1.4.8":"53.0.2785.143","1.4.10":"53.0.2785.143","1.4.11":"53.0.2785.143","1.4.12":"54.0.2840.51","1.4.13":"53.0.2785.143","1.4.14":"53.0.2785.143","1.4.15":"53.0.2785.143","1.4.16":"53.0.2785.143","1.5.0":"54.0.2840.101","1.5.1":"54.0.2840.101","1.6.0":"56.0.2924.87","1.6.1":"56.0.2924.87","1.6.2":"56.0.2924.87","1.6.3":"56.0.2924.87","1.6.4":"56.0.2924.87","1.6.5":"56.0.2924.87","1.6.6":"56.0.2924.87","1.6.7":"56.0.2924.87","1.6.8":"56.0.2924.87","1.6.9":"56.0.2924.87","1.6.10":"56.0.2924.87","1.6.11":"56.0.2924.87","1.6.12":"56.0.2924.87","1.6.13":"56.0.2924.87","1.6.14":"56.0.2924.87","1.6.15":"56.0.2924.87","1.6.16":"56.0.2924.87","1.6.17":"56.0.2924.87","1.6.18":"56.0.2924.87","1.7.0":"58.0.3029.110","1.7.1":"58.0.3029.110","1.7.2":"58.0.3029.110","1.7.3":"58.0.3029.110","1.7.4":"58.0.3029.110","1.7.5":"58.0.3029.110","1.7.6":"58.0.3029.110","1.7.7":"58.0.3029.110","1.7.8":"58.0.3029.110","1.7.9":"58.0.3029.110","1.7.10":"58.0.3029.110","1.7.11":"58.0.3029.110","1.7.12":"58.0.3029.110","1.7.13":"58.0.3029.110","1.7.14":"58.0.3029.110","1.7.15":"58.0.3029.110","1.7.16":"58.0.3029.110","1.8.0":"59.0.3071.115","1.8.1":"59.0.3071.115","1.8.2-beta.1":"59.0.3071.115","1.8.2-beta.2":"59.0.3071.115","1.8.2-beta.3":"59.0.3071.115","1.8.2-beta.4":"59.0.3071.115","1.8.2-beta.5":"59.0.3071.115","1.8.2":"59.0.3071.115","1.8.3":"59.0.3071.115","1.8.4":"59.0.3071.115","1.8.5":"59.0.3071.115","1.8.6":"59.0.3071.115","1.8.7":"59.0.3071.115","1.8.8":"59.0.3071.115","2.0.0-beta.1":"61.0.3163.100","2.0.0-beta.2":"61.0.3163.100","2.0.0-beta.3":"61.0.3163.100","2.0.0-beta.4":"61.0.3163.100","2.0.0-beta.5":"61.0.3163.100","2.0.0-beta.6":"61.0.3163.100","2.0.0-beta.7":"61.0.3163.100","2.0.0-beta.8":"61.0.3163.100","2.0.0":"61.0.3163.100","2.0.1":"61.0.3163.100","2.0.2":"61.0.3163.100","2.0.3":"61.0.3163.100","2.0.4":"61.0.3163.100","2.0.5":"61.0.3163.100","2.0.6":"61.0.3163.100","2.0.7":"61.0.3163.100","2.0.8-nightly.20180819":"61.0.3163.100","2.0.8-nightly.20180820":"61.0.3163.100","2.0.8":"61.0.3163.100","2.0.9":"61.0.3163.100","2.0.10":"61.0.3163.100","2.0.11":"61.0.3163.100","2.0.12":"61.0.3163.100","2.0.13":"61.0.3163.100","2.0.14":"61.0.3163.100","2.0.15":"61.0.3163.100","2.0.16":"61.0.3163.100","2.0.17":"61.0.3163.100","2.0.18":"61.0.3163.100","2.1.0-unsupported.20180809":"61.0.3163.100","3.0.0-beta.1":"66.0.3359.181","3.0.0-beta.2":"66.0.3359.181","3.0.0-beta.3":"66.0.3359.181","3.0.0-beta.4":"66.0.3359.181","3.0.0-beta.5":"66.0.3359.181","3.0.0-beta.6":"66.0.3359.181","3.0.0-beta.7":"66.0.3359.181","3.0.0-beta.8":"66.0.3359.181","3.0.0-beta.9":"66.0.3359.181","3.0.0-beta.10":"66.0.3359.181","3.0.0-beta.11":"66.0.3359.181","3.0.0-beta.12":"66.0.3359.181","3.0.0-beta.13":"66.0.3359.181","3.0.0-nightly.20180818":"66.0.3359.181","3.0.0-nightly.20180821":"66.0.3359.181","3.0.0-nightly.20180823":"66.0.3359.181","3.0.0-nightly.20180904":"66.0.3359.181","3.0.0":"66.0.3359.181","3.0.1":"66.0.3359.181","3.0.2":"66.0.3359.181","3.0.3":"66.0.3359.181","3.0.4":"66.0.3359.181","3.0.5":"66.0.3359.181","3.0.6":"66.0.3359.181","3.0.7":"66.0.3359.181","3.0.8":"66.0.3359.181","3.0.9":"66.0.3359.181","3.0.10":"66.0.3359.181","3.0.11":"66.0.3359.181","3.0.12":"66.0.3359.181","3.0.13":"66.0.3359.181","3.0.14":"66.0.3359.181","3.0.15":"66.0.3359.181","3.0.16":"66.0.3359.181","3.1.0-beta.1":"66.0.3359.181","3.1.0-beta.2":"66.0.3359.181","3.1.0-beta.3":"66.0.3359.181","3.1.0-beta.4":"66.0.3359.181","3.1.0-beta.5":"66.0.3359.181","3.1.0":"66.0.3359.181","3.1.1":"66.0.3359.181","3.1.2":"66.0.3359.181","3.1.3":"66.0.3359.181","3.1.4":"66.0.3359.181","3.1.5":"66.0.3359.181","3.1.6":"66.0.3359.181","3.1.7":"66.0.3359.181","3.1.8":"66.0.3359.181","3.1.9":"66.0.3359.181","3.1.10":"66.0.3359.181","3.1.11":"66.0.3359.181","3.1.12":"66.0.3359.181","3.1.13":"66.0.3359.181","4.0.0-beta.1":"69.0.3497.106","4.0.0-beta.2":"69.0.3497.106","4.0.0-beta.3":"69.0.3497.106","4.0.0-beta.4":"69.0.3497.106","4.0.0-beta.5":"69.0.3497.106","4.0.0-beta.6":"69.0.3497.106","4.0.0-beta.7":"69.0.3497.106","4.0.0-beta.8":"69.0.3497.106","4.0.0-beta.9":"69.0.3497.106","4.0.0-beta.10":"69.0.3497.106","4.0.0-beta.11":"69.0.3497.106","4.0.0-nightly.20180817":"66.0.3359.181","4.0.0-nightly.20180819":"66.0.3359.181","4.0.0-nightly.20180821":"66.0.3359.181","4.0.0-nightly.20180929":"67.0.3396.99","4.0.0-nightly.20181006":"68.0.3440.128","4.0.0-nightly.20181010":"69.0.3497.106","4.0.0":"69.0.3497.106","4.0.1":"69.0.3497.106","4.0.2":"69.0.3497.106","4.0.3":"69.0.3497.106","4.0.4":"69.0.3497.106","4.0.5":"69.0.3497.106","4.0.6":"69.0.3497.106","4.0.7":"69.0.3497.128","4.0.8":"69.0.3497.128","4.1.0":"69.0.3497.128","4.1.1":"69.0.3497.128","4.1.2":"69.0.3497.128","4.1.3":"69.0.3497.128","4.1.4":"69.0.3497.128","4.1.5":"69.0.3497.128","4.2.0":"69.0.3497.128","4.2.1":"69.0.3497.128","4.2.2":"69.0.3497.128","4.2.3":"69.0.3497.128","4.2.4":"69.0.3497.128","4.2.5":"69.0.3497.128","4.2.6":"69.0.3497.128","4.2.7":"69.0.3497.128","4.2.8":"69.0.3497.128","4.2.9":"69.0.3497.128","4.2.10":"69.0.3497.128","4.2.11":"69.0.3497.128","4.2.12":"69.0.3497.128","5.0.0-beta.1":"72.0.3626.52","5.0.0-beta.2":"72.0.3626.52","5.0.0-beta.3":"73.0.3683.27","5.0.0-beta.4":"73.0.3683.54","5.0.0-beta.5":"73.0.3683.61","5.0.0-beta.6":"73.0.3683.84","5.0.0-beta.7":"73.0.3683.94","5.0.0-beta.8":"73.0.3683.104","5.0.0-beta.9":"73.0.3683.117","5.0.0-nightly.20190107":"70.0.3538.110","5.0.0-nightly.20190121":"71.0.3578.98","5.0.0-nightly.20190122":"71.0.3578.98","5.0.0":"73.0.3683.119","5.0.1":"73.0.3683.121","5.0.2":"73.0.3683.121","5.0.3":"73.0.3683.121","5.0.4":"73.0.3683.121","5.0.5":"73.0.3683.121","5.0.6":"73.0.3683.121","5.0.7":"73.0.3683.121","5.0.8":"73.0.3683.121","5.0.9":"73.0.3683.121","5.0.10":"73.0.3683.121","5.0.11":"73.0.3683.121","5.0.12":"73.0.3683.121","5.0.13":"73.0.3683.121","6.0.0-beta.1":"76.0.3774.1","6.0.0-beta.2":"76.0.3783.1","6.0.0-beta.3":"76.0.3783.1","6.0.0-beta.4":"76.0.3783.1","6.0.0-beta.5":"76.0.3805.4","6.0.0-beta.6":"76.0.3809.3","6.0.0-beta.7":"76.0.3809.22","6.0.0-beta.8":"76.0.3809.26","6.0.0-beta.9":"76.0.3809.26","6.0.0-beta.10":"76.0.3809.37","6.0.0-beta.11":"76.0.3809.42","6.0.0-beta.12":"76.0.3809.54","6.0.0-beta.13":"76.0.3809.60","6.0.0-beta.14":"76.0.3809.68","6.0.0-beta.15":"76.0.3809.74","6.0.0-nightly.20190123":"72.0.3626.52","6.0.0-nightly.20190212":"72.0.3626.107","6.0.0-nightly.20190213":"72.0.3626.110","6.0.0-nightly.20190311":"74.0.3724.8","6.0.0":"76.0.3809.88","6.0.1":"76.0.3809.102","6.0.2":"76.0.3809.110","6.0.3":"76.0.3809.126","6.0.4":"76.0.3809.131","6.0.5":"76.0.3809.136","6.0.6":"76.0.3809.138","6.0.7":"76.0.3809.139","6.0.8":"76.0.3809.146","6.0.9":"76.0.3809.146","6.0.10":"76.0.3809.146","6.0.11":"76.0.3809.146","6.0.12":"76.0.3809.146","6.1.0":"76.0.3809.146","6.1.1":"76.0.3809.146","6.1.2":"76.0.3809.146","6.1.3":"76.0.3809.146","6.1.4":"76.0.3809.146","6.1.5":"76.0.3809.146","6.1.6":"76.0.3809.146","6.1.7":"76.0.3809.146","6.1.8":"76.0.3809.146","6.1.9":"76.0.3809.146","6.1.10":"76.0.3809.146","6.1.11":"76.0.3809.146","6.1.12":"76.0.3809.146","7.0.0-beta.1":"78.0.3866.0","7.0.0-beta.2":"78.0.3866.0","7.0.0-beta.3":"78.0.3866.0","7.0.0-beta.4":"78.0.3896.6","7.0.0-beta.5":"78.0.3905.1","7.0.0-beta.6":"78.0.3905.1","7.0.0-beta.7":"78.0.3905.1","7.0.0-nightly.20190521":"76.0.3784.0","7.0.0-nightly.20190529":"76.0.3806.0","7.0.0-nightly.20190530":"76.0.3806.0","7.0.0-nightly.20190531":"76.0.3806.0","7.0.0-nightly.20190602":"76.0.3806.0","7.0.0-nightly.20190603":"76.0.3806.0","7.0.0-nightly.20190604":"77.0.3814.0","7.0.0-nightly.20190605":"77.0.3815.0","7.0.0-nightly.20190606":"77.0.3815.0","7.0.0-nightly.20190607":"77.0.3815.0","7.0.0-nightly.20190608":"77.0.3815.0","7.0.0-nightly.20190609":"77.0.3815.0","7.0.0-nightly.20190611":"77.0.3815.0","7.0.0-nightly.20190612":"77.0.3815.0","7.0.0-nightly.20190613":"77.0.3815.0","7.0.0-nightly.20190615":"77.0.3815.0","7.0.0-nightly.20190616":"77.0.3815.0","7.0.0-nightly.20190618":"77.0.3815.0","7.0.0-nightly.20190619":"77.0.3815.0","7.0.0-nightly.20190622":"77.0.3815.0","7.0.0-nightly.20190623":"77.0.3815.0","7.0.0-nightly.20190624":"77.0.3815.0","7.0.0-nightly.20190627":"77.0.3815.0","7.0.0-nightly.20190629":"77.0.3815.0","7.0.0-nightly.20190630":"77.0.3815.0","7.0.0-nightly.20190701":"77.0.3815.0","7.0.0-nightly.20190702":"77.0.3815.0","7.0.0-nightly.20190704":"77.0.3843.0","7.0.0-nightly.20190705":"77.0.3843.0","7.0.0-nightly.20190719":"77.0.3848.0","7.0.0-nightly.20190720":"77.0.3848.0","7.0.0-nightly.20190721":"77.0.3848.0","7.0.0-nightly.20190726":"77.0.3864.0","7.0.0-nightly.20190727":"78.0.3866.0","7.0.0-nightly.20190728":"78.0.3866.0","7.0.0-nightly.20190729":"78.0.3866.0","7.0.0-nightly.20190730":"78.0.3866.0","7.0.0-nightly.20190731":"78.0.3866.0","7.0.0":"78.0.3905.1","7.0.1":"78.0.3904.92","7.1.0":"78.0.3904.94","7.1.1":"78.0.3904.99","7.1.2":"78.0.3904.113","7.1.3":"78.0.3904.126","7.1.4":"78.0.3904.130","7.1.5":"78.0.3904.130","7.1.6":"78.0.3904.130","7.1.7":"78.0.3904.130","7.1.8":"78.0.3904.130","7.1.9":"78.0.3904.130","7.1.10":"78.0.3904.130","7.1.11":"78.0.3904.130","7.1.12":"78.0.3904.130","7.1.13":"78.0.3904.130","7.1.14":"78.0.3904.130","7.2.0":"78.0.3904.130","7.2.1":"78.0.3904.130","7.2.2":"78.0.3904.130","7.2.3":"78.0.3904.130","7.2.4":"78.0.3904.130","7.3.0":"78.0.3904.130","7.3.1":"78.0.3904.130","7.3.2":"78.0.3904.130","7.3.3":"78.0.3904.130","8.0.0-beta.1":"79.0.3931.0","8.0.0-beta.2":"79.0.3931.0","8.0.0-beta.3":"80.0.3955.0","8.0.0-beta.4":"80.0.3955.0","8.0.0-beta.5":"80.0.3987.14","8.0.0-beta.6":"80.0.3987.51","8.0.0-beta.7":"80.0.3987.59","8.0.0-beta.8":"80.0.3987.75","8.0.0-beta.9":"80.0.3987.75","8.0.0-nightly.20190801":"78.0.3866.0","8.0.0-nightly.20190802":"78.0.3866.0","8.0.0-nightly.20190803":"78.0.3871.0","8.0.0-nightly.20190806":"78.0.3871.0","8.0.0-nightly.20190807":"78.0.3871.0","8.0.0-nightly.20190808":"78.0.3871.0","8.0.0-nightly.20190809":"78.0.3871.0","8.0.0-nightly.20190810":"78.0.3871.0","8.0.0-nightly.20190811":"78.0.3871.0","8.0.0-nightly.20190812":"78.0.3871.0","8.0.0-nightly.20190813":"78.0.3871.0","8.0.0-nightly.20190814":"78.0.3871.0","8.0.0-nightly.20190815":"78.0.3871.0","8.0.0-nightly.20190816":"78.0.3881.0","8.0.0-nightly.20190817":"78.0.3881.0","8.0.0-nightly.20190818":"78.0.3881.0","8.0.0-nightly.20190819":"78.0.3881.0","8.0.0-nightly.20190820":"78.0.3881.0","8.0.0-nightly.20190824":"78.0.3892.0","8.0.0-nightly.20190825":"78.0.3892.0","8.0.0-nightly.20190827":"78.0.3892.0","8.0.0-nightly.20190828":"78.0.3892.0","8.0.0-nightly.20190830":"78.0.3892.0","8.0.0-nightly.20190901":"78.0.3892.0","8.0.0-nightly.20190902":"78.0.3892.0","8.0.0-nightly.20190907":"78.0.3892.0","8.0.0-nightly.20190909":"78.0.3892.0","8.0.0-nightly.20190910":"78.0.3892.0","8.0.0-nightly.20190911":"78.0.3892.0","8.0.0-nightly.20190912":"78.0.3892.0","8.0.0-nightly.20190913":"78.0.3892.0","8.0.0-nightly.20190914":"78.0.3892.0","8.0.0-nightly.20190915":"78.0.3892.0","8.0.0-nightly.20190917":"78.0.3892.0","8.0.0-nightly.20190919":"79.0.3915.0","8.0.0-nightly.20190920":"79.0.3915.0","8.0.0-nightly.20190922":"79.0.3919.0","8.0.0-nightly.20190923":"79.0.3919.0","8.0.0-nightly.20190924":"79.0.3919.0","8.0.0-nightly.20190926":"79.0.3919.0","8.0.0-nightly.20190928":"79.0.3919.0","8.0.0-nightly.20190929":"79.0.3919.0","8.0.0-nightly.20190930":"79.0.3919.0","8.0.0-nightly.20191001":"79.0.3919.0","8.0.0-nightly.20191004":"79.0.3919.0","8.0.0-nightly.20191005":"79.0.3919.0","8.0.0-nightly.20191006":"79.0.3919.0","8.0.0-nightly.20191009":"79.0.3919.0","8.0.0-nightly.20191011":"79.0.3919.0","8.0.0-nightly.20191012":"79.0.3919.0","8.0.0-nightly.20191017":"79.0.3919.0","8.0.0-nightly.20191019":"79.0.3931.0","8.0.0-nightly.20191020":"79.0.3931.0","8.0.0-nightly.20191021":"79.0.3931.0","8.0.0-nightly.20191023":"79.0.3931.0","8.0.0-nightly.20191101":"80.0.3952.0","8.0.0-nightly.20191103":"80.0.3952.0","8.0.0-nightly.20191105":"80.0.3952.0","8.0.0":"80.0.3987.86","8.0.1":"80.0.3987.86","8.0.2":"80.0.3987.86","8.0.3":"80.0.3987.134","8.1.0":"80.0.3987.137","8.1.1":"80.0.3987.141","8.2.0":"80.0.3987.158","8.2.1":"80.0.3987.163","8.2.2":"80.0.3987.163","8.2.3":"80.0.3987.163","8.2.4":"80.0.3987.165","8.2.5":"80.0.3987.165","8.3.0":"80.0.3987.165","8.3.1":"80.0.3987.165","8.3.2":"80.0.3987.165","8.3.3":"80.0.3987.165","8.3.4":"80.0.3987.165","8.4.0":"80.0.3987.165","8.4.1":"80.0.3987.165","8.5.0":"80.0.3987.165","8.5.1":"80.0.3987.165","8.5.2":"80.0.3987.165","8.5.3":"80.0.3987.163","8.5.4":"80.0.3987.163","8.5.5":"80.0.3987.163","9.0.0-beta.1":"82.0.4048.0","9.0.0-beta.2":"82.0.4048.0","9.0.0-beta.3":"82.0.4048.0","9.0.0-beta.4":"82.0.4048.0","9.0.0-beta.5":"82.0.4048.0","9.0.0-beta.6":"82.0.4058.2","9.0.0-beta.7":"82.0.4058.2","9.0.0-beta.9":"82.0.4058.2","9.0.0-beta.10":"82.0.4085.10","9.0.0-beta.11":"82.0.4085.14","9.0.0-beta.12":"82.0.4085.14","9.0.0-beta.13":"82.0.4085.14","9.0.0-beta.14":"82.0.4085.27","9.0.0-beta.15":"83.0.4102.3","9.0.0-beta.16":"83.0.4102.3","9.0.0-beta.17":"83.0.4103.14","9.0.0-beta.18":"83.0.4103.16","9.0.0-beta.19":"83.0.4103.24","9.0.0-beta.20":"83.0.4103.26","9.0.0-beta.21":"83.0.4103.26","9.0.0-beta.22":"83.0.4103.34","9.0.0-beta.23":"83.0.4103.44","9.0.0-beta.24":"83.0.4103.45","9.0.0-nightly.20191121":"80.0.3954.0","9.0.0-nightly.20191122":"80.0.3954.0","9.0.0-nightly.20191123":"80.0.3954.0","9.0.0-nightly.20191124":"80.0.3954.0","9.0.0-nightly.20191126":"80.0.3954.0","9.0.0-nightly.20191128":"80.0.3954.0","9.0.0-nightly.20191129":"80.0.3954.0","9.0.0-nightly.20191130":"80.0.3954.0","9.0.0-nightly.20191201":"80.0.3954.0","9.0.0-nightly.20191202":"80.0.3954.0","9.0.0-nightly.20191203":"80.0.3954.0","9.0.0-nightly.20191204":"80.0.3954.0","9.0.0-nightly.20191205":"80.0.3954.0","9.0.0-nightly.20191210":"80.0.3954.0","9.0.0-nightly.20191220":"81.0.3994.0","9.0.0-nightly.20191221":"81.0.3994.0","9.0.0-nightly.20191222":"81.0.3994.0","9.0.0-nightly.20191223":"81.0.3994.0","9.0.0-nightly.20191224":"81.0.3994.0","9.0.0-nightly.20191225":"81.0.3994.0","9.0.0-nightly.20191226":"81.0.3994.0","9.0.0-nightly.20191228":"81.0.3994.0","9.0.0-nightly.20191229":"81.0.3994.0","9.0.0-nightly.20191230":"81.0.3994.0","9.0.0-nightly.20191231":"81.0.3994.0","9.0.0-nightly.20200101":"81.0.3994.0","9.0.0-nightly.20200103":"81.0.3994.0","9.0.0-nightly.20200104":"81.0.3994.0","9.0.0-nightly.20200105":"81.0.3994.0","9.0.0-nightly.20200106":"81.0.3994.0","9.0.0-nightly.20200108":"81.0.3994.0","9.0.0-nightly.20200109":"81.0.3994.0","9.0.0-nightly.20200110":"81.0.3994.0","9.0.0-nightly.20200111":"81.0.3994.0","9.0.0-nightly.20200113":"81.0.3994.0","9.0.0-nightly.20200115":"81.0.3994.0","9.0.0-nightly.20200116":"81.0.3994.0","9.0.0-nightly.20200117":"81.0.3994.0","9.0.0-nightly.20200119":"81.0.4030.0","9.0.0-nightly.20200121":"81.0.4030.0","9.0.0":"83.0.4103.64","9.0.1":"83.0.4103.94","9.0.2":"83.0.4103.94","9.0.3":"83.0.4103.100","9.0.4":"83.0.4103.104","9.0.5":"83.0.4103.119","9.1.0":"83.0.4103.122","9.1.1":"83.0.4103.122","9.1.2":"83.0.4103.122","9.2.0":"83.0.4103.122","9.2.1":"83.0.4103.122","9.3.0":"83.0.4103.122","9.3.1":"83.0.4103.122","9.3.2":"83.0.4103.122","9.3.3":"83.0.4103.122","9.3.4":"83.0.4103.122","9.3.5":"83.0.4103.122","9.4.0":"83.0.4103.122","9.4.1":"83.0.4103.122","9.4.2":"83.0.4103.122","9.4.3":"83.0.4103.122","9.4.4":"83.0.4103.122","10.0.0-beta.1":"84.0.4129.0","10.0.0-beta.2":"84.0.4129.0","10.0.0-beta.3":"85.0.4161.2","10.0.0-beta.4":"85.0.4161.2","10.0.0-beta.8":"85.0.4181.1","10.0.0-beta.9":"85.0.4181.1","10.0.0-beta.10":"85.0.4183.19","10.0.0-beta.11":"85.0.4183.20","10.0.0-beta.12":"85.0.4183.26","10.0.0-beta.13":"85.0.4183.39","10.0.0-beta.14":"85.0.4183.39","10.0.0-beta.15":"85.0.4183.39","10.0.0-beta.17":"85.0.4183.39","10.0.0-beta.19":"85.0.4183.39","10.0.0-beta.20":"85.0.4183.39","10.0.0-beta.21":"85.0.4183.39","10.0.0-beta.23":"85.0.4183.70","10.0.0-beta.24":"85.0.4183.78","10.0.0-beta.25":"85.0.4183.80","10.0.0-nightly.20200209":"82.0.4050.0","10.0.0-nightly.20200210":"82.0.4050.0","10.0.0-nightly.20200211":"82.0.4050.0","10.0.0-nightly.20200216":"82.0.4050.0","10.0.0-nightly.20200217":"82.0.4050.0","10.0.0-nightly.20200218":"82.0.4050.0","10.0.0-nightly.20200221":"82.0.4050.0","10.0.0-nightly.20200222":"82.0.4050.0","10.0.0-nightly.20200223":"82.0.4050.0","10.0.0-nightly.20200226":"82.0.4050.0","10.0.0-nightly.20200303":"82.0.4050.0","10.0.0-nightly.20200304":"82.0.4076.0","10.0.0-nightly.20200305":"82.0.4076.0","10.0.0-nightly.20200306":"82.0.4076.0","10.0.0-nightly.20200309":"82.0.4076.0","10.0.0-nightly.20200310":"82.0.4076.0","10.0.0-nightly.20200311":"82.0.4083.0","10.0.0-nightly.20200316":"83.0.4086.0","10.0.0-nightly.20200317":"83.0.4087.0","10.0.0-nightly.20200318":"83.0.4087.0","10.0.0-nightly.20200320":"83.0.4087.0","10.0.0-nightly.20200323":"83.0.4087.0","10.0.0-nightly.20200324":"83.0.4087.0","10.0.0-nightly.20200325":"83.0.4087.0","10.0.0-nightly.20200326":"83.0.4087.0","10.0.0-nightly.20200327":"83.0.4087.0","10.0.0-nightly.20200330":"83.0.4087.0","10.0.0-nightly.20200331":"83.0.4087.0","10.0.0-nightly.20200401":"83.0.4087.0","10.0.0-nightly.20200402":"83.0.4087.0","10.0.0-nightly.20200403":"83.0.4087.0","10.0.0-nightly.20200406":"83.0.4087.0","10.0.0-nightly.20200408":"83.0.4095.0","10.0.0-nightly.20200410":"83.0.4095.0","10.0.0-nightly.20200413":"83.0.4095.0","10.0.0-nightly.20200414":"84.0.4114.0","10.0.0-nightly.20200415":"84.0.4115.0","10.0.0-nightly.20200416":"84.0.4115.0","10.0.0-nightly.20200417":"84.0.4115.0","10.0.0-nightly.20200422":"84.0.4121.0","10.0.0-nightly.20200423":"84.0.4121.0","10.0.0-nightly.20200427":"84.0.4125.0","10.0.0-nightly.20200428":"84.0.4125.0","10.0.0-nightly.20200429":"84.0.4125.0","10.0.0-nightly.20200430":"84.0.4125.0","10.0.0-nightly.20200501":"84.0.4129.0","10.0.0-nightly.20200504":"84.0.4129.0","10.0.0-nightly.20200505":"84.0.4129.0","10.0.0-nightly.20200506":"84.0.4129.0","10.0.0-nightly.20200507":"84.0.4129.0","10.0.0-nightly.20200508":"84.0.4129.0","10.0.0-nightly.20200511":"84.0.4129.0","10.0.0-nightly.20200512":"84.0.4129.0","10.0.0-nightly.20200513":"84.0.4129.0","10.0.0-nightly.20200514":"84.0.4129.0","10.0.0-nightly.20200515":"84.0.4129.0","10.0.0-nightly.20200518":"84.0.4129.0","10.0.0-nightly.20200519":"84.0.4129.0","10.0.0-nightly.20200520":"84.0.4129.0","10.0.0-nightly.20200521":"84.0.4129.0","10.0.0":"85.0.4183.84","10.0.1":"85.0.4183.86","10.1.0":"85.0.4183.87","10.1.1":"85.0.4183.93","10.1.2":"85.0.4183.98","10.1.3":"85.0.4183.121","10.1.4":"85.0.4183.121","10.1.5":"85.0.4183.121","10.1.6":"85.0.4183.121","10.1.7":"85.0.4183.121","10.2.0":"85.0.4183.121","10.3.0":"85.0.4183.121","10.3.1":"85.0.4183.121","10.3.2":"85.0.4183.121","10.4.0":"85.0.4183.121","10.4.1":"85.0.4183.121","10.4.2":"85.0.4183.121","10.4.3":"85.0.4183.121","10.4.4":"85.0.4183.121","10.4.5":"85.0.4183.121","10.4.6":"85.0.4183.121","10.4.7":"85.0.4183.121","11.0.0-beta.1":"86.0.4234.0","11.0.0-beta.3":"86.0.4234.0","11.0.0-beta.4":"86.0.4234.0","11.0.0-beta.5":"86.0.4234.0","11.0.0-beta.6":"86.0.4234.0","11.0.0-beta.7":"86.0.4234.0","11.0.0-beta.8":"87.0.4251.1","11.0.0-beta.9":"87.0.4251.1","11.0.0-beta.11":"87.0.4251.1","11.0.0-beta.12":"87.0.4280.11","11.0.0-beta.13":"87.0.4280.11","11.0.0-beta.16":"87.0.4280.27","11.0.0-beta.17":"87.0.4280.27","11.0.0-beta.18":"87.0.4280.27","11.0.0-beta.19":"87.0.4280.27","11.0.0-beta.20":"87.0.4280.40","11.0.0-beta.22":"87.0.4280.47","11.0.0-beta.23":"87.0.4280.47","11.0.0-nightly.20200525":"84.0.4129.0","11.0.0-nightly.20200526":"84.0.4129.0","11.0.0-nightly.20200529":"85.0.4156.0","11.0.0-nightly.20200602":"85.0.4162.0","11.0.0-nightly.20200603":"85.0.4162.0","11.0.0-nightly.20200604":"85.0.4162.0","11.0.0-nightly.20200609":"85.0.4162.0","11.0.0-nightly.20200610":"85.0.4162.0","11.0.0-nightly.20200611":"85.0.4162.0","11.0.0-nightly.20200615":"85.0.4162.0","11.0.0-nightly.20200616":"85.0.4162.0","11.0.0-nightly.20200617":"85.0.4162.0","11.0.0-nightly.20200618":"85.0.4162.0","11.0.0-nightly.20200619":"85.0.4162.0","11.0.0-nightly.20200701":"85.0.4179.0","11.0.0-nightly.20200702":"85.0.4179.0","11.0.0-nightly.20200703":"85.0.4179.0","11.0.0-nightly.20200706":"85.0.4179.0","11.0.0-nightly.20200707":"85.0.4179.0","11.0.0-nightly.20200708":"85.0.4179.0","11.0.0-nightly.20200709":"85.0.4179.0","11.0.0-nightly.20200716":"86.0.4203.0","11.0.0-nightly.20200717":"86.0.4203.0","11.0.0-nightly.20200720":"86.0.4203.0","11.0.0-nightly.20200721":"86.0.4203.0","11.0.0-nightly.20200723":"86.0.4209.0","11.0.0-nightly.20200724":"86.0.4209.0","11.0.0-nightly.20200729":"86.0.4209.0","11.0.0-nightly.20200730":"86.0.4209.0","11.0.0-nightly.20200731":"86.0.4209.0","11.0.0-nightly.20200803":"86.0.4209.0","11.0.0-nightly.20200804":"86.0.4209.0","11.0.0-nightly.20200805":"86.0.4209.0","11.0.0-nightly.20200811":"86.0.4209.0","11.0.0-nightly.20200812":"86.0.4209.0","11.0.0-nightly.20200822":"86.0.4234.0","11.0.0-nightly.20200824":"86.0.4234.0","11.0.0-nightly.20200825":"86.0.4234.0","11.0.0-nightly.20200826":"86.0.4234.0","11.0.0":"87.0.4280.60","11.0.1":"87.0.4280.60","11.0.2":"87.0.4280.67","11.0.3":"87.0.4280.67","11.0.4":"87.0.4280.67","11.0.5":"87.0.4280.88","11.1.0":"87.0.4280.88","11.1.1":"87.0.4280.88","11.2.0":"87.0.4280.141","11.2.1":"87.0.4280.141","11.2.2":"87.0.4280.141","11.2.3":"87.0.4280.141","11.3.0":"87.0.4280.141","11.4.0":"87.0.4280.141","11.4.1":"87.0.4280.141","11.4.2":"87.0.4280.141","11.4.3":"87.0.4280.141","11.4.4":"87.0.4280.141","11.4.5":"87.0.4280.141","11.4.6":"87.0.4280.141","11.4.7":"87.0.4280.141","11.4.8":"87.0.4280.141","11.4.9":"87.0.4280.141","11.4.10":"87.0.4280.141","11.4.11":"87.0.4280.141","11.4.12":"87.0.4280.141","11.5.0":"87.0.4280.141","12.0.0-beta.1":"89.0.4328.0","12.0.0-beta.3":"89.0.4328.0","12.0.0-beta.4":"89.0.4328.0","12.0.0-beta.5":"89.0.4328.0","12.0.0-beta.6":"89.0.4328.0","12.0.0-beta.7":"89.0.4328.0","12.0.0-beta.8":"89.0.4328.0","12.0.0-beta.9":"89.0.4328.0","12.0.0-beta.10":"89.0.4328.0","12.0.0-beta.11":"89.0.4328.0","12.0.0-beta.12":"89.0.4328.0","12.0.0-beta.14":"89.0.4328.0","12.0.0-beta.16":"89.0.4348.1","12.0.0-beta.18":"89.0.4348.1","12.0.0-beta.19":"89.0.4348.1","12.0.0-beta.20":"89.0.4348.1","12.0.0-beta.21":"89.0.4388.2","12.0.0-beta.22":"89.0.4388.2","12.0.0-beta.23":"89.0.4388.2","12.0.0-beta.24":"89.0.4388.2","12.0.0-beta.25":"89.0.4388.2","12.0.0-beta.26":"89.0.4388.2","12.0.0-beta.27":"89.0.4389.23","12.0.0-beta.28":"89.0.4389.23","12.0.0-beta.29":"89.0.4389.23","12.0.0-beta.30":"89.0.4389.58","12.0.0-beta.31":"89.0.4389.58","12.0.0-nightly.20200827":"86.0.4234.0","12.0.0-nightly.20200831":"86.0.4234.0","12.0.0-nightly.20200902":"86.0.4234.0","12.0.0-nightly.20200903":"86.0.4234.0","12.0.0-nightly.20200907":"86.0.4234.0","12.0.0-nightly.20200910":"86.0.4234.0","12.0.0-nightly.20200911":"86.0.4234.0","12.0.0-nightly.20200914":"86.0.4234.0","12.0.0-nightly.20201002":"87.0.4268.0","12.0.0-nightly.20201007":"87.0.4268.0","12.0.0-nightly.20201009":"87.0.4268.0","12.0.0-nightly.20201012":"87.0.4268.0","12.0.0-nightly.20201013":"87.0.4268.0","12.0.0-nightly.20201014":"87.0.4268.0","12.0.0-nightly.20201015":"87.0.4268.0","12.0.0-nightly.20201023":"88.0.4292.0","12.0.0-nightly.20201026":"88.0.4292.0","12.0.0-nightly.20201030":"88.0.4306.0","12.0.0-nightly.20201102":"88.0.4306.0","12.0.0-nightly.20201103":"88.0.4306.0","12.0.0-nightly.20201104":"88.0.4306.0","12.0.0-nightly.20201105":"88.0.4306.0","12.0.0-nightly.20201106":"88.0.4306.0","12.0.0-nightly.20201111":"88.0.4306.0","12.0.0-nightly.20201112":"88.0.4306.0","12.0.0-nightly.20201116":"88.0.4324.0","12.0.0":"89.0.4389.69","12.0.1":"89.0.4389.82","12.0.2":"89.0.4389.90","12.0.3":"89.0.4389.114","12.0.4":"89.0.4389.114","12.0.5":"89.0.4389.128","12.0.6":"89.0.4389.128","12.0.7":"89.0.4389.128","12.0.8":"89.0.4389.128","12.0.9":"89.0.4389.128","12.0.10":"89.0.4389.128","12.0.11":"89.0.4389.128","12.0.12":"89.0.4389.128","12.0.13":"89.0.4389.128","12.0.14":"89.0.4389.128","12.0.15":"89.0.4389.128","12.0.16":"89.0.4389.128","12.0.17":"89.0.4389.128","12.0.18":"89.0.4389.128","12.1.0":"89.0.4389.128","12.1.1":"89.0.4389.128","12.1.2":"89.0.4389.128","12.2.0":"89.0.4389.128","12.2.1":"89.0.4389.128","12.2.2":"89.0.4389.128","12.2.3":"89.0.4389.128","13.0.0-beta.2":"90.0.4402.0","13.0.0-beta.3":"90.0.4402.0","13.0.0-beta.4":"90.0.4415.0","13.0.0-beta.5":"90.0.4415.0","13.0.0-beta.6":"90.0.4415.0","13.0.0-beta.7":"90.0.4415.0","13.0.0-beta.8":"90.0.4415.0","13.0.0-beta.9":"90.0.4415.0","13.0.0-beta.10":"90.0.4415.0","13.0.0-beta.11":"90.0.4415.0","13.0.0-beta.12":"90.0.4415.0","13.0.0-beta.13":"90.0.4415.0","13.0.0-beta.14":"91.0.4448.0","13.0.0-beta.16":"91.0.4448.0","13.0.0-beta.17":"91.0.4448.0","13.0.0-beta.18":"91.0.4448.0","13.0.0-beta.20":"91.0.4448.0","13.0.0-beta.21":"91.0.4472.33","13.0.0-beta.22":"91.0.4472.33","13.0.0-beta.23":"91.0.4472.33","13.0.0-beta.24":"91.0.4472.38","13.0.0-beta.25":"91.0.4472.38","13.0.0-beta.26":"91.0.4472.38","13.0.0-beta.27":"91.0.4472.38","13.0.0-beta.28":"91.0.4472.38","13.0.0-nightly.20201119":"89.0.4328.0","13.0.0-nightly.20201123":"89.0.4328.0","13.0.0-nightly.20201124":"89.0.4328.0","13.0.0-nightly.20201126":"89.0.4328.0","13.0.0-nightly.20201127":"89.0.4328.0","13.0.0-nightly.20201130":"89.0.4328.0","13.0.0-nightly.20201201":"89.0.4328.0","13.0.0-nightly.20201202":"89.0.4328.0","13.0.0-nightly.20201203":"89.0.4328.0","13.0.0-nightly.20201204":"89.0.4328.0","13.0.0-nightly.20201207":"89.0.4328.0","13.0.0-nightly.20201208":"89.0.4328.0","13.0.0-nightly.20201209":"89.0.4328.0","13.0.0-nightly.20201210":"89.0.4328.0","13.0.0-nightly.20201211":"89.0.4328.0","13.0.0-nightly.20201214":"89.0.4328.0","13.0.0-nightly.20201215":"89.0.4349.0","13.0.0-nightly.20201216":"89.0.4349.0","13.0.0-nightly.20201221":"89.0.4349.0","13.0.0-nightly.20201222":"89.0.4349.0","13.0.0-nightly.20201223":"89.0.4359.0","13.0.0-nightly.20210104":"89.0.4359.0","13.0.0-nightly.20210108":"89.0.4359.0","13.0.0-nightly.20210111":"89.0.4359.0","13.0.0-nightly.20210113":"89.0.4386.0","13.0.0-nightly.20210114":"89.0.4386.0","13.0.0-nightly.20210118":"89.0.4386.0","13.0.0-nightly.20210122":"89.0.4386.0","13.0.0-nightly.20210125":"89.0.4386.0","13.0.0-nightly.20210127":"89.0.4389.0","13.0.0-nightly.20210128":"89.0.4389.0","13.0.0-nightly.20210129":"89.0.4389.0","13.0.0-nightly.20210201":"89.0.4389.0","13.0.0-nightly.20210202":"89.0.4389.0","13.0.0-nightly.20210203":"89.0.4389.0","13.0.0-nightly.20210205":"89.0.4389.0","13.0.0-nightly.20210208":"89.0.4389.0","13.0.0-nightly.20210209":"89.0.4389.0","13.0.0-nightly.20210210":"90.0.4402.0","13.0.0-nightly.20210211":"90.0.4402.0","13.0.0-nightly.20210212":"90.0.4402.0","13.0.0-nightly.20210216":"90.0.4402.0","13.0.0-nightly.20210217":"90.0.4402.0","13.0.0-nightly.20210218":"90.0.4402.0","13.0.0-nightly.20210219":"90.0.4402.0","13.0.0-nightly.20210222":"90.0.4402.0","13.0.0-nightly.20210225":"90.0.4402.0","13.0.0-nightly.20210226":"90.0.4402.0","13.0.0-nightly.20210301":"90.0.4402.0","13.0.0-nightly.20210302":"90.0.4402.0","13.0.0-nightly.20210303":"90.0.4402.0","13.0.0":"91.0.4472.69","13.0.1":"91.0.4472.69","13.1.0":"91.0.4472.77","13.1.1":"91.0.4472.77","13.1.2":"91.0.4472.77","13.1.3":"91.0.4472.106","13.1.4":"91.0.4472.106","13.1.5":"91.0.4472.124","13.1.6":"91.0.4472.124","13.1.7":"91.0.4472.124","13.1.8":"91.0.4472.164","13.1.9":"91.0.4472.164","13.2.0":"91.0.4472.164","13.2.1":"91.0.4472.164","13.2.2":"91.0.4472.164","13.2.3":"91.0.4472.164","13.3.0":"91.0.4472.164","13.4.0":"91.0.4472.164","13.5.0":"91.0.4472.164","13.5.1":"91.0.4472.164","13.5.2":"91.0.4472.164","13.6.0":"91.0.4472.164","13.6.1":"91.0.4472.164","13.6.2":"91.0.4472.164","13.6.3":"91.0.4472.164","13.6.6":"91.0.4472.164","13.6.7":"91.0.4472.164","13.6.8":"91.0.4472.164","13.6.9":"91.0.4472.164","14.0.0-beta.1":"92.0.4511.0","14.0.0-beta.2":"92.0.4511.0","14.0.0-beta.3":"92.0.4511.0","14.0.0-beta.5":"93.0.4536.0","14.0.0-beta.6":"93.0.4536.0","14.0.0-beta.7":"93.0.4536.0","14.0.0-beta.8":"93.0.4536.0","14.0.0-beta.9":"93.0.4539.0","14.0.0-beta.10":"93.0.4539.0","14.0.0-beta.11":"93.0.4557.4","14.0.0-beta.12":"93.0.4557.4","14.0.0-beta.13":"93.0.4566.0","14.0.0-beta.14":"93.0.4566.0","14.0.0-beta.15":"93.0.4566.0","14.0.0-beta.16":"93.0.4566.0","14.0.0-beta.17":"93.0.4566.0","14.0.0-beta.18":"93.0.4577.15","14.0.0-beta.19":"93.0.4577.15","14.0.0-beta.20":"93.0.4577.15","14.0.0-beta.21":"93.0.4577.15","14.0.0-beta.22":"93.0.4577.25","14.0.0-beta.23":"93.0.4577.25","14.0.0-beta.24":"93.0.4577.51","14.0.0-beta.25":"93.0.4577.51","14.0.0-nightly.20210304":"90.0.4402.0","14.0.0-nightly.20210305":"90.0.4415.0","14.0.0-nightly.20210308":"90.0.4415.0","14.0.0-nightly.20210309":"90.0.4415.0","14.0.0-nightly.20210311":"90.0.4415.0","14.0.0-nightly.20210315":"90.0.4415.0","14.0.0-nightly.20210316":"90.0.4415.0","14.0.0-nightly.20210317":"90.0.4415.0","14.0.0-nightly.20210318":"90.0.4415.0","14.0.0-nightly.20210319":"90.0.4415.0","14.0.0-nightly.20210323":"90.0.4415.0","14.0.0-nightly.20210324":"90.0.4415.0","14.0.0-nightly.20210325":"90.0.4415.0","14.0.0-nightly.20210326":"90.0.4415.0","14.0.0-nightly.20210329":"90.0.4415.0","14.0.0-nightly.20210330":"90.0.4415.0","14.0.0-nightly.20210331":"91.0.4448.0","14.0.0-nightly.20210401":"91.0.4448.0","14.0.0-nightly.20210402":"91.0.4448.0","14.0.0-nightly.20210406":"91.0.4448.0","14.0.0-nightly.20210407":"91.0.4448.0","14.0.0-nightly.20210408":"91.0.4448.0","14.0.0-nightly.20210409":"91.0.4448.0","14.0.0-nightly.20210413":"91.0.4448.0","14.0.0-nightly.20210426":"92.0.4475.0","14.0.0-nightly.20210427":"92.0.4475.0","14.0.0-nightly.20210430":"92.0.4488.0","14.0.0-nightly.20210503":"92.0.4488.0","14.0.0-nightly.20210505":"92.0.4496.0","14.0.0-nightly.20210506":"92.0.4498.0","14.0.0-nightly.20210507":"92.0.4499.0","14.0.0-nightly.20210510":"92.0.4499.0","14.0.0-nightly.20210511":"92.0.4499.0","14.0.0-nightly.20210512":"92.0.4499.0","14.0.0-nightly.20210513":"92.0.4499.0","14.0.0-nightly.20210514":"92.0.4505.0","14.0.0-nightly.20210517":"92.0.4505.0","14.0.0-nightly.20210518":"92.0.4505.0","14.0.0-nightly.20210519":"92.0.4505.0","14.0.0-nightly.20210520":"92.0.4511.0","14.0.0-nightly.20210523":"92.0.4511.0","14.0.0-nightly.20210524":"92.0.4511.0","14.0.0":"93.0.4577.58","14.0.1":"93.0.4577.63","14.0.2":"93.0.4577.82","14.1.0":"93.0.4577.82","14.1.1":"93.0.4577.82","14.2.0":"93.0.4577.82","14.2.1":"93.0.4577.82","14.2.2":"93.0.4577.82","14.2.3":"93.0.4577.82","14.2.4":"93.0.4577.82","14.2.5":"93.0.4577.82","14.2.6":"93.0.4577.82","14.2.7":"93.0.4577.82","14.2.8":"93.0.4577.82","14.2.9":"93.0.4577.82","15.0.0-alpha.1":"93.0.4566.0","15.0.0-alpha.2":"93.0.4566.0","15.0.0-alpha.3":"94.0.4584.0","15.0.0-alpha.4":"94.0.4584.0","15.0.0-alpha.5":"94.0.4584.0","15.0.0-alpha.6":"94.0.4584.0","15.0.0-alpha.7":"94.0.4590.2","15.0.0-alpha.8":"94.0.4590.2","15.0.0-alpha.9":"94.0.4590.2","15.0.0-alpha.10":"94.0.4606.12","15.0.0-beta.1":"94.0.4606.20","15.0.0-beta.2":"94.0.4606.20","15.0.0-beta.3":"94.0.4606.31","15.0.0-beta.4":"94.0.4606.31","15.0.0-beta.5":"94.0.4606.31","15.0.0-beta.6":"94.0.4606.31","15.0.0-beta.7":"94.0.4606.31","15.0.0-nightly.20210527":"92.0.4511.0","15.0.0-nightly.20210528":"92.0.4511.0","15.0.0-nightly.20210531":"92.0.4511.0","15.0.0-nightly.20210601":"92.0.4511.0","15.0.0-nightly.20210602":"92.0.4511.0","15.0.0-nightly.20210603":"93.0.4530.0","15.0.0-nightly.20210604":"93.0.4530.0","15.0.0-nightly.20210608":"93.0.4535.0","15.0.0-nightly.20210609":"93.0.4536.0","15.0.0-nightly.20210610":"93.0.4536.0","15.0.0-nightly.20210611":"93.0.4536.0","15.0.0-nightly.20210614":"93.0.4536.0","15.0.0-nightly.20210615":"93.0.4536.0","15.0.0-nightly.20210616":"93.0.4536.0","15.0.0-nightly.20210617":"93.0.4539.0","15.0.0-nightly.20210618":"93.0.4539.0","15.0.0-nightly.20210621":"93.0.4539.0","15.0.0-nightly.20210622":"93.0.4539.0","15.0.0-nightly.20210623":"93.0.4550.0","15.0.0-nightly.20210624":"93.0.4550.0","15.0.0-nightly.20210625":"93.0.4552.0","15.0.0-nightly.20210628":"93.0.4552.0","15.0.0-nightly.20210629":"93.0.4552.0","15.0.0-nightly.20210630":"93.0.4558.0","15.0.0-nightly.20210701":"93.0.4558.0","15.0.0-nightly.20210702":"93.0.4558.0","15.0.0-nightly.20210705":"93.0.4558.0","15.0.0-nightly.20210706":"93.0.4566.0","15.0.0-nightly.20210707":"93.0.4566.0","15.0.0-nightly.20210708":"93.0.4566.0","15.0.0-nightly.20210709":"93.0.4566.0","15.0.0-nightly.20210712":"93.0.4566.0","15.0.0-nightly.20210713":"93.0.4566.0","15.0.0-nightly.20210714":"93.0.4566.0","15.0.0-nightly.20210715":"93.0.4566.0","15.0.0-nightly.20210716":"93.0.4566.0","15.0.0-nightly.20210719":"93.0.4566.0","15.0.0-nightly.20210720":"93.0.4566.0","15.0.0-nightly.20210721":"93.0.4566.0","15.0.0":"94.0.4606.51","15.1.0":"94.0.4606.61","15.1.1":"94.0.4606.61","15.1.2":"94.0.4606.71","15.2.0":"94.0.4606.81","15.3.0":"94.0.4606.81","15.3.1":"94.0.4606.81","15.3.2":"94.0.4606.81","15.3.3":"94.0.4606.81","15.3.4":"94.0.4606.81","15.3.5":"94.0.4606.81","15.3.6":"94.0.4606.81","15.3.7":"94.0.4606.81","15.4.0":"94.0.4606.81","15.4.1":"94.0.4606.81","15.4.2":"94.0.4606.81","15.5.0":"94.0.4606.81","15.5.1":"94.0.4606.81","15.5.2":"94.0.4606.81","15.5.3":"94.0.4606.81","15.5.4":"94.0.4606.81","15.5.5":"94.0.4606.81","15.5.6":"94.0.4606.81","15.5.7":"94.0.4606.81","16.0.0-alpha.1":"95.0.4629.0","16.0.0-alpha.2":"95.0.4629.0","16.0.0-alpha.3":"95.0.4629.0","16.0.0-alpha.4":"95.0.4629.0","16.0.0-alpha.5":"95.0.4629.0","16.0.0-alpha.6":"95.0.4629.0","16.0.0-alpha.7":"95.0.4629.0","16.0.0-alpha.8":"96.0.4647.0","16.0.0-alpha.9":"96.0.4647.0","16.0.0-beta.1":"96.0.4647.0","16.0.0-beta.2":"96.0.4647.0","16.0.0-beta.3":"96.0.4647.0","16.0.0-beta.4":"96.0.4664.18","16.0.0-beta.5":"96.0.4664.18","16.0.0-beta.6":"96.0.4664.27","16.0.0-beta.7":"96.0.4664.27","16.0.0-beta.8":"96.0.4664.35","16.0.0-beta.9":"96.0.4664.35","16.0.0-nightly.20210722":"93.0.4566.0","16.0.0-nightly.20210723":"93.0.4566.0","16.0.0-nightly.20210726":"93.0.4566.0","16.0.0-nightly.20210727":"94.0.4584.0","16.0.0-nightly.20210728":"94.0.4584.0","16.0.0-nightly.20210729":"94.0.4584.0","16.0.0-nightly.20210730":"94.0.4584.0","16.0.0-nightly.20210802":"94.0.4584.0","16.0.0-nightly.20210803":"94.0.4584.0","16.0.0-nightly.20210804":"94.0.4584.0","16.0.0-nightly.20210805":"94.0.4584.0","16.0.0-nightly.20210806":"94.0.4584.0","16.0.0-nightly.20210809":"94.0.4584.0","16.0.0-nightly.20210810":"94.0.4584.0","16.0.0-nightly.20210811":"94.0.4584.0","16.0.0-nightly.20210812":"94.0.4590.2","16.0.0-nightly.20210813":"94.0.4590.2","16.0.0-nightly.20210816":"94.0.4590.2","16.0.0-nightly.20210817":"94.0.4590.2","16.0.0-nightly.20210818":"94.0.4590.2","16.0.0-nightly.20210819":"94.0.4590.2","16.0.0-nightly.20210820":"94.0.4590.2","16.0.0-nightly.20210823":"94.0.4590.2","16.0.0-nightly.20210824":"95.0.4612.5","16.0.0-nightly.20210825":"95.0.4612.5","16.0.0-nightly.20210826":"95.0.4612.5","16.0.0-nightly.20210827":"95.0.4612.5","16.0.0-nightly.20210830":"95.0.4612.5","16.0.0-nightly.20210831":"95.0.4612.5","16.0.0-nightly.20210901":"95.0.4612.5","16.0.0-nightly.20210902":"95.0.4629.0","16.0.0-nightly.20210903":"95.0.4629.0","16.0.0-nightly.20210906":"95.0.4629.0","16.0.0-nightly.20210907":"95.0.4629.0","16.0.0-nightly.20210908":"95.0.4629.0","16.0.0-nightly.20210909":"95.0.4629.0","16.0.0-nightly.20210910":"95.0.4629.0","16.0.0-nightly.20210913":"95.0.4629.0","16.0.0-nightly.20210914":"95.0.4629.0","16.0.0-nightly.20210915":"95.0.4629.0","16.0.0-nightly.20210916":"95.0.4629.0","16.0.0-nightly.20210917":"95.0.4629.0","16.0.0-nightly.20210920":"95.0.4629.0","16.0.0-nightly.20210921":"95.0.4629.0","16.0.0-nightly.20210922":"95.0.4629.0","16.0.0":"96.0.4664.45","16.0.1":"96.0.4664.45","16.0.2":"96.0.4664.55","16.0.3":"96.0.4664.55","16.0.4":"96.0.4664.55","16.0.5":"96.0.4664.55","16.0.6":"96.0.4664.110","16.0.7":"96.0.4664.110","16.0.8":"96.0.4664.110","16.0.9":"96.0.4664.174","16.0.10":"96.0.4664.174","16.1.0":"96.0.4664.174","16.1.1":"96.0.4664.174","16.2.0":"96.0.4664.174","16.2.1":"96.0.4664.174","16.2.2":"96.0.4664.174","16.2.3":"96.0.4664.174","16.2.4":"96.0.4664.174","16.2.5":"96.0.4664.174","16.2.6":"96.0.4664.174","16.2.7":"96.0.4664.174","16.2.8":"96.0.4664.174","17.0.0-alpha.1":"96.0.4664.4","17.0.0-alpha.2":"96.0.4664.4","17.0.0-alpha.3":"96.0.4664.4","17.0.0-alpha.4":"98.0.4706.0","17.0.0-alpha.5":"98.0.4706.0","17.0.0-alpha.6":"98.0.4706.0","17.0.0-beta.1":"98.0.4706.0","17.0.0-beta.2":"98.0.4706.0","17.0.0-beta.3":"98.0.4758.9","17.0.0-beta.4":"98.0.4758.11","17.0.0-beta.5":"98.0.4758.11","17.0.0-beta.6":"98.0.4758.11","17.0.0-beta.7":"98.0.4758.11","17.0.0-beta.8":"98.0.4758.11","17.0.0-beta.9":"98.0.4758.11","17.0.0-nightly.20210923":"95.0.4629.0","17.0.0-nightly.20210924":"95.0.4629.0","17.0.0-nightly.20210927":"95.0.4629.0","17.0.0-nightly.20210928":"95.0.4629.0","17.0.0-nightly.20210929":"95.0.4629.0","17.0.0-nightly.20210930":"95.0.4629.0","17.0.0-nightly.20211001":"95.0.4629.0","17.0.0-nightly.20211004":"95.0.4629.0","17.0.0-nightly.20211005":"95.0.4629.0","17.0.0-nightly.20211006":"96.0.4647.0","17.0.0-nightly.20211007":"96.0.4647.0","17.0.0-nightly.20211008":"96.0.4647.0","17.0.0-nightly.20211011":"96.0.4647.0","17.0.0-nightly.20211012":"96.0.4647.0","17.0.0-nightly.20211013":"96.0.4647.0","17.0.0-nightly.20211014":"96.0.4647.0","17.0.0-nightly.20211015":"96.0.4647.0","17.0.0-nightly.20211018":"96.0.4647.0","17.0.0-nightly.20211019":"96.0.4647.0","17.0.0-nightly.20211020":"96.0.4647.0","17.0.0-nightly.20211021":"96.0.4647.0","17.0.0-nightly.20211022":"96.0.4664.4","17.0.0-nightly.20211025":"96.0.4664.4","17.0.0-nightly.20211026":"96.0.4664.4","17.0.0-nightly.20211027":"96.0.4664.4","17.0.0-nightly.20211028":"96.0.4664.4","17.0.0-nightly.20211029":"96.0.4664.4","17.0.0-nightly.20211101":"96.0.4664.4","17.0.0-nightly.20211102":"96.0.4664.4","17.0.0-nightly.20211103":"96.0.4664.4","17.0.0-nightly.20211104":"96.0.4664.4","17.0.0-nightly.20211105":"96.0.4664.4","17.0.0-nightly.20211108":"96.0.4664.4","17.0.0-nightly.20211109":"96.0.4664.4","17.0.0-nightly.20211110":"96.0.4664.4","17.0.0-nightly.20211111":"96.0.4664.4","17.0.0-nightly.20211112":"96.0.4664.4","17.0.0-nightly.20211115":"96.0.4664.4","17.0.0-nightly.20211116":"96.0.4664.4","17.0.0-nightly.20211117":"96.0.4664.4","17.0.0":"98.0.4758.74","17.0.1":"98.0.4758.82","17.1.0":"98.0.4758.102","17.1.1":"98.0.4758.109","17.1.2":"98.0.4758.109","17.2.0":"98.0.4758.109","17.3.0":"98.0.4758.141","17.3.1":"98.0.4758.141","17.4.0":"98.0.4758.141","17.4.1":"98.0.4758.141","17.4.2":"98.0.4758.141","17.4.3":"98.0.4758.141","17.4.4":"98.0.4758.141","17.4.5":"98.0.4758.141","17.4.6":"98.0.4758.141","17.4.7":"98.0.4758.141","17.4.8":"98.0.4758.141","17.4.9":"98.0.4758.141","17.4.10":"98.0.4758.141","17.4.11":"98.0.4758.141","18.0.0-alpha.1":"99.0.4767.0","18.0.0-alpha.2":"99.0.4767.0","18.0.0-alpha.3":"99.0.4767.0","18.0.0-alpha.4":"99.0.4767.0","18.0.0-alpha.5":"99.0.4767.0","18.0.0-beta.1":"100.0.4894.0","18.0.0-beta.2":"100.0.4894.0","18.0.0-beta.3":"100.0.4894.0","18.0.0-beta.4":"100.0.4894.0","18.0.0-beta.5":"100.0.4894.0","18.0.0-beta.6":"100.0.4894.0","18.0.0-nightly.20211118":"96.0.4664.4","18.0.0-nightly.20211119":"96.0.4664.4","18.0.0-nightly.20211122":"96.0.4664.4","18.0.0-nightly.20211123":"96.0.4664.4","18.0.0-nightly.20211124":"98.0.4706.0","18.0.0-nightly.20211125":"98.0.4706.0","18.0.0-nightly.20211126":"98.0.4706.0","18.0.0-nightly.20211129":"98.0.4706.0","18.0.0-nightly.20211130":"98.0.4706.0","18.0.0-nightly.20211201":"98.0.4706.0","18.0.0-nightly.20211202":"98.0.4706.0","18.0.0-nightly.20211203":"98.0.4706.0","18.0.0-nightly.20211206":"98.0.4706.0","18.0.0-nightly.20211207":"98.0.4706.0","18.0.0-nightly.20211208":"98.0.4706.0","18.0.0-nightly.20211209":"98.0.4706.0","18.0.0-nightly.20211210":"98.0.4706.0","18.0.0-nightly.20211213":"98.0.4706.0","18.0.0-nightly.20211214":"98.0.4706.0","18.0.0-nightly.20211215":"98.0.4706.0","18.0.0-nightly.20211216":"98.0.4706.0","18.0.0-nightly.20211217":"98.0.4706.0","18.0.0-nightly.20211220":"98.0.4706.0","18.0.0-nightly.20211221":"98.0.4706.0","18.0.0-nightly.20211222":"98.0.4706.0","18.0.0-nightly.20211223":"98.0.4706.0","18.0.0-nightly.20211228":"98.0.4706.0","18.0.0-nightly.20211229":"98.0.4706.0","18.0.0-nightly.20211231":"98.0.4706.0","18.0.0-nightly.20220103":"98.0.4706.0","18.0.0-nightly.20220104":"98.0.4706.0","18.0.0-nightly.20220105":"98.0.4706.0","18.0.0-nightly.20220106":"98.0.4706.0","18.0.0-nightly.20220107":"98.0.4706.0","18.0.0-nightly.20220110":"98.0.4706.0","18.0.0-nightly.20220111":"99.0.4767.0","18.0.0-nightly.20220112":"99.0.4767.0","18.0.0-nightly.20220113":"99.0.4767.0","18.0.0-nightly.20220114":"99.0.4767.0","18.0.0-nightly.20220117":"99.0.4767.0","18.0.0-nightly.20220118":"99.0.4767.0","18.0.0-nightly.20220119":"99.0.4767.0","18.0.0-nightly.20220121":"99.0.4767.0","18.0.0-nightly.20220124":"99.0.4767.0","18.0.0-nightly.20220125":"99.0.4767.0","18.0.0-nightly.20220127":"99.0.4767.0","18.0.0-nightly.20220128":"99.0.4767.0","18.0.0-nightly.20220131":"99.0.4767.0","18.0.0-nightly.20220201":"99.0.4767.0","18.0.0":"100.0.4896.56","18.0.1":"100.0.4896.60","18.0.2":"100.0.4896.60","18.0.3":"100.0.4896.75","18.0.4":"100.0.4896.75","18.1.0":"100.0.4896.127","18.2.0":"100.0.4896.143","18.2.1":"100.0.4896.143","18.2.2":"100.0.4896.143","18.2.3":"100.0.4896.143","18.2.4":"100.0.4896.160","18.3.0":"100.0.4896.160","18.3.1":"100.0.4896.160","18.3.2":"100.0.4896.160","18.3.3":"100.0.4896.160","18.3.4":"100.0.4896.160","18.3.5":"100.0.4896.160","18.3.6":"100.0.4896.160","18.3.7":"100.0.4896.160","18.3.8":"100.0.4896.160","18.3.9":"100.0.4896.160","18.3.11":"100.0.4896.160","18.3.12":"100.0.4896.160","18.3.13":"100.0.4896.160","18.3.14":"100.0.4896.160","18.3.15":"100.0.4896.160","19.0.0-alpha.1":"102.0.4962.3","19.0.0-alpha.2":"102.0.4971.0","19.0.0-alpha.3":"102.0.4971.0","19.0.0-alpha.4":"102.0.4989.0","19.0.0-alpha.5":"102.0.4989.0","19.0.0-beta.1":"102.0.4999.0","19.0.0-beta.2":"102.0.4999.0","19.0.0-beta.3":"102.0.4999.0","19.0.0-beta.4":"102.0.5005.27","19.0.0-beta.5":"102.0.5005.40","19.0.0-beta.6":"102.0.5005.40","19.0.0-beta.7":"102.0.5005.40","19.0.0-beta.8":"102.0.5005.49","19.0.0-nightly.20220202":"99.0.4767.0","19.0.0-nightly.20220203":"99.0.4767.0","19.0.0-nightly.20220204":"99.0.4767.0","19.0.0-nightly.20220207":"99.0.4767.0","19.0.0-nightly.20220208":"99.0.4767.0","19.0.0-nightly.20220209":"99.0.4767.0","19.0.0-nightly.20220308":"100.0.4894.0","19.0.0-nightly.20220309":"100.0.4894.0","19.0.0-nightly.20220310":"100.0.4894.0","19.0.0-nightly.20220311":"100.0.4894.0","19.0.0-nightly.20220314":"100.0.4894.0","19.0.0-nightly.20220315":"100.0.4894.0","19.0.0-nightly.20220316":"100.0.4894.0","19.0.0-nightly.20220317":"100.0.4894.0","19.0.0-nightly.20220318":"100.0.4894.0","19.0.0-nightly.20220321":"100.0.4894.0","19.0.0-nightly.20220322":"100.0.4894.0","19.0.0-nightly.20220323":"100.0.4894.0","19.0.0-nightly.20220324":"100.0.4894.0","19.0.0-nightly.20220325":"102.0.4961.0","19.0.0-nightly.20220328":"102.0.4962.3","19.0.0-nightly.20220329":"102.0.4962.3","19.0.0":"102.0.5005.61","19.0.1":"102.0.5005.61","19.0.2":"102.0.5005.63","19.0.3":"102.0.5005.63","19.0.4":"102.0.5005.63","19.0.5":"102.0.5005.115","19.0.6":"102.0.5005.115","19.0.7":"102.0.5005.134","19.0.8":"102.0.5005.148","19.0.9":"102.0.5005.167","19.0.10":"102.0.5005.167","19.0.11":"102.0.5005.167","19.0.12":"102.0.5005.167","19.0.13":"102.0.5005.167","19.0.14":"102.0.5005.167","19.0.15":"102.0.5005.167","19.0.16":"102.0.5005.167","19.0.17":"102.0.5005.167","19.1.0":"102.0.5005.167","19.1.1":"102.0.5005.167","19.1.2":"102.0.5005.167","19.1.3":"102.0.5005.167","19.1.4":"102.0.5005.167","19.1.5":"102.0.5005.167","19.1.6":"102.0.5005.167","19.1.7":"102.0.5005.167","19.1.8":"102.0.5005.167","19.1.9":"102.0.5005.167","20.0.0-alpha.1":"103.0.5044.0","20.0.0-alpha.2":"104.0.5073.0","20.0.0-alpha.3":"104.0.5073.0","20.0.0-alpha.4":"104.0.5073.0","20.0.0-alpha.5":"104.0.5073.0","20.0.0-alpha.6":"104.0.5073.0","20.0.0-alpha.7":"104.0.5073.0","20.0.0-beta.1":"104.0.5073.0","20.0.0-beta.2":"104.0.5073.0","20.0.0-beta.3":"104.0.5073.0","20.0.0-beta.4":"104.0.5073.0","20.0.0-beta.5":"104.0.5073.0","20.0.0-beta.6":"104.0.5073.0","20.0.0-beta.7":"104.0.5073.0","20.0.0-beta.8":"104.0.5073.0","20.0.0-beta.9":"104.0.5112.39","20.0.0-beta.10":"104.0.5112.48","20.0.0-beta.11":"104.0.5112.48","20.0.0-beta.12":"104.0.5112.48","20.0.0-beta.13":"104.0.5112.57","20.0.0-nightly.20220330":"102.0.4962.3","20.0.0-nightly.20220411":"102.0.4971.0","20.0.0-nightly.20220414":"102.0.4989.0","20.0.0-nightly.20220415":"102.0.4989.0","20.0.0-nightly.20220418":"102.0.4989.0","20.0.0-nightly.20220419":"102.0.4989.0","20.0.0-nightly.20220420":"102.0.4989.0","20.0.0-nightly.20220421":"102.0.4989.0","20.0.0-nightly.20220425":"102.0.4999.0","20.0.0-nightly.20220426":"102.0.4999.0","20.0.0-nightly.20220427":"102.0.4999.0","20.0.0-nightly.20220428":"102.0.4999.0","20.0.0-nightly.20220429":"102.0.4999.0","20.0.0-nightly.20220502":"102.0.4999.0","20.0.0-nightly.20220503":"102.0.4999.0","20.0.0-nightly.20220504":"102.0.4999.0","20.0.0-nightly.20220505":"102.0.4999.0","20.0.0-nightly.20220506":"102.0.4999.0","20.0.0-nightly.20220509":"102.0.4999.0","20.0.0-nightly.20220511":"102.0.4999.0","20.0.0-nightly.20220512":"102.0.4999.0","20.0.0-nightly.20220513":"102.0.4999.0","20.0.0-nightly.20220516":"102.0.4999.0","20.0.0-nightly.20220517":"102.0.4999.0","20.0.0-nightly.20220518":"103.0.5044.0","20.0.0-nightly.20220519":"103.0.5044.0","20.0.0-nightly.20220520":"103.0.5044.0","20.0.0-nightly.20220523":"103.0.5044.0","20.0.0-nightly.20220524":"103.0.5044.0","20.0.0":"104.0.5112.65","20.0.1":"104.0.5112.81","20.0.2":"104.0.5112.81","20.0.3":"104.0.5112.81","20.1.0":"104.0.5112.102","20.1.1":"104.0.5112.102","20.1.2":"104.0.5112.114","20.1.3":"104.0.5112.114","20.1.4":"104.0.5112.114","20.2.0":"104.0.5112.124","20.3.0":"104.0.5112.124","20.3.1":"104.0.5112.124","20.3.2":"104.0.5112.124","20.3.3":"104.0.5112.124","20.3.4":"104.0.5112.124","20.3.5":"104.0.5112.124","20.3.6":"104.0.5112.124","20.3.7":"104.0.5112.124","20.3.8":"104.0.5112.124","20.3.9":"104.0.5112.124","20.3.10":"104.0.5112.124","20.3.11":"104.0.5112.124","20.3.12":"104.0.5112.124","21.0.0-alpha.1":"105.0.5187.0","21.0.0-alpha.2":"105.0.5187.0","21.0.0-alpha.3":"105.0.5187.0","21.0.0-alpha.4":"105.0.5187.0","21.0.0-alpha.5":"105.0.5187.0","21.0.0-alpha.6":"106.0.5216.0","21.0.0-beta.1":"106.0.5216.0","21.0.0-beta.2":"106.0.5216.0","21.0.0-beta.3":"106.0.5216.0","21.0.0-beta.4":"106.0.5216.0","21.0.0-beta.5":"106.0.5216.0","21.0.0-beta.6":"106.0.5249.40","21.0.0-beta.7":"106.0.5249.40","21.0.0-beta.8":"106.0.5249.40","21.0.0-nightly.20220526":"103.0.5044.0","21.0.0-nightly.20220527":"103.0.5044.0","21.0.0-nightly.20220530":"103.0.5044.0","21.0.0-nightly.20220531":"103.0.5044.0","21.0.0-nightly.20220602":"104.0.5073.0","21.0.0-nightly.20220603":"104.0.5073.0","21.0.0-nightly.20220606":"104.0.5073.0","21.0.0-nightly.20220607":"104.0.5073.0","21.0.0-nightly.20220608":"104.0.5073.0","21.0.0-nightly.20220609":"104.0.5073.0","21.0.0-nightly.20220610":"104.0.5073.0","21.0.0-nightly.20220613":"104.0.5073.0","21.0.0-nightly.20220614":"104.0.5073.0","21.0.0-nightly.20220615":"104.0.5073.0","21.0.0-nightly.20220616":"104.0.5073.0","21.0.0-nightly.20220617":"104.0.5073.0","21.0.0-nightly.20220620":"104.0.5073.0","21.0.0-nightly.20220621":"104.0.5073.0","21.0.0-nightly.20220622":"104.0.5073.0","21.0.0-nightly.20220623":"104.0.5073.0","21.0.0-nightly.20220624":"104.0.5073.0","21.0.0-nightly.20220627":"104.0.5073.0","21.0.0-nightly.20220628":"105.0.5129.0","21.0.0-nightly.20220629":"105.0.5129.0","21.0.0-nightly.20220630":"105.0.5129.0","21.0.0-nightly.20220701":"105.0.5129.0","21.0.0-nightly.20220704":"105.0.5129.0","21.0.0-nightly.20220705":"105.0.5129.0","21.0.0-nightly.20220706":"105.0.5129.0","21.0.0-nightly.20220707":"105.0.5129.0","21.0.0-nightly.20220708":"105.0.5129.0","21.0.0-nightly.20220711":"105.0.5129.0","21.0.0-nightly.20220712":"105.0.5129.0","21.0.0-nightly.20220713":"105.0.5129.0","21.0.0-nightly.20220715":"105.0.5173.0","21.0.0-nightly.20220718":"105.0.5173.0","21.0.0-nightly.20220719":"105.0.5173.0","21.0.0-nightly.20220720":"105.0.5187.0","21.0.0-nightly.20220721":"105.0.5187.0","21.0.0-nightly.20220722":"105.0.5187.0","21.0.0-nightly.20220725":"105.0.5187.0","21.0.0-nightly.20220726":"105.0.5187.0","21.0.0-nightly.20220727":"105.0.5187.0","21.0.0-nightly.20220728":"105.0.5187.0","21.0.0-nightly.20220801":"105.0.5187.0","21.0.0-nightly.20220802":"105.0.5187.0","21.0.0":"106.0.5249.51","21.0.1":"106.0.5249.61","21.1.0":"106.0.5249.91","21.1.1":"106.0.5249.103","21.2.0":"106.0.5249.119","21.2.1":"106.0.5249.165","21.2.2":"106.0.5249.168","21.2.3":"106.0.5249.168","21.3.0":"106.0.5249.181","21.3.1":"106.0.5249.181","21.3.3":"106.0.5249.199","21.3.4":"106.0.5249.199","21.3.5":"106.0.5249.199","21.4.0":"106.0.5249.199","21.4.1":"106.0.5249.199","21.4.2":"106.0.5249.199","21.4.3":"106.0.5249.199","21.4.4":"106.0.5249.199","22.0.0-alpha.1":"107.0.5286.0","22.0.0-alpha.3":"108.0.5329.0","22.0.0-alpha.4":"108.0.5329.0","22.0.0-alpha.5":"108.0.5329.0","22.0.0-alpha.6":"108.0.5329.0","22.0.0-alpha.7":"108.0.5355.0","22.0.0-alpha.8":"108.0.5359.10","22.0.0-beta.1":"108.0.5359.10","22.0.0-beta.2":"108.0.5359.10","22.0.0-beta.3":"108.0.5359.10","22.0.0-beta.4":"108.0.5359.29","22.0.0-beta.5":"108.0.5359.40","22.0.0-beta.6":"108.0.5359.40","22.0.0-beta.7":"108.0.5359.48","22.0.0-beta.8":"108.0.5359.48","22.0.0-nightly.20220808":"105.0.5187.0","22.0.0-nightly.20220809":"105.0.5187.0","22.0.0-nightly.20220810":"105.0.5187.0","22.0.0-nightly.20220811":"105.0.5187.0","22.0.0-nightly.20220812":"105.0.5187.0","22.0.0-nightly.20220815":"105.0.5187.0","22.0.0-nightly.20220816":"105.0.5187.0","22.0.0-nightly.20220817":"105.0.5187.0","22.0.0-nightly.20220822":"106.0.5216.0","22.0.0-nightly.20220823":"106.0.5216.0","22.0.0-nightly.20220824":"106.0.5216.0","22.0.0-nightly.20220825":"106.0.5216.0","22.0.0-nightly.20220829":"106.0.5216.0","22.0.0-nightly.20220830":"106.0.5216.0","22.0.0-nightly.20220831":"106.0.5216.0","22.0.0-nightly.20220901":"106.0.5216.0","22.0.0-nightly.20220902":"106.0.5216.0","22.0.0-nightly.20220905":"106.0.5216.0","22.0.0-nightly.20220908":"107.0.5274.0","22.0.0-nightly.20220909":"107.0.5286.0","22.0.0-nightly.20220912":"107.0.5286.0","22.0.0-nightly.20220913":"107.0.5286.0","22.0.0-nightly.20220914":"107.0.5286.0","22.0.0-nightly.20220915":"107.0.5286.0","22.0.0-nightly.20220916":"107.0.5286.0","22.0.0-nightly.20220919":"107.0.5286.0","22.0.0-nightly.20220920":"107.0.5286.0","22.0.0-nightly.20220921":"107.0.5286.0","22.0.0-nightly.20220922":"107.0.5286.0","22.0.0-nightly.20220923":"107.0.5286.0","22.0.0-nightly.20220926":"107.0.5286.0","22.0.0-nightly.20220927":"107.0.5286.0","22.0.0-nightly.20220928":"107.0.5286.0","22.0.0":"108.0.5359.62","22.0.1":"108.0.5359.125","22.0.2":"108.0.5359.179","22.0.3":"108.0.5359.179","22.1.0":"108.0.5359.179","22.2.0":"108.0.5359.215","22.2.1":"108.0.5359.215","22.3.0":"108.0.5359.215","22.3.1":"108.0.5359.215","22.3.2":"108.0.5359.215","22.3.3":"108.0.5359.215","22.3.4":"108.0.5359.215","22.3.5":"108.0.5359.215","22.3.6":"108.0.5359.215","22.3.7":"108.0.5359.215","22.3.8":"108.0.5359.215","22.3.9":"108.0.5359.215","22.3.10":"108.0.5359.215","22.3.11":"108.0.5359.215","22.3.12":"108.0.5359.215","22.3.13":"108.0.5359.215","22.3.14":"108.0.5359.215","22.3.15":"108.0.5359.215","22.3.16":"108.0.5359.215","22.3.17":"108.0.5359.215","22.3.18":"108.0.5359.215","22.3.20":"108.0.5359.215","22.3.21":"108.0.5359.215","22.3.22":"108.0.5359.215","22.3.23":"108.0.5359.215","22.3.24":"108.0.5359.215","22.3.25":"108.0.5359.215","22.3.26":"108.0.5359.215","22.3.27":"108.0.5359.215","23.0.0-alpha.1":"110.0.5415.0","23.0.0-alpha.2":"110.0.5451.0","23.0.0-alpha.3":"110.0.5451.0","23.0.0-beta.1":"110.0.5478.5","23.0.0-beta.2":"110.0.5478.5","23.0.0-beta.3":"110.0.5478.5","23.0.0-beta.4":"110.0.5481.30","23.0.0-beta.5":"110.0.5481.38","23.0.0-beta.6":"110.0.5481.52","23.0.0-beta.8":"110.0.5481.52","23.0.0-nightly.20220929":"107.0.5286.0","23.0.0-nightly.20220930":"107.0.5286.0","23.0.0-nightly.20221003":"107.0.5286.0","23.0.0-nightly.20221004":"108.0.5329.0","23.0.0-nightly.20221005":"108.0.5329.0","23.0.0-nightly.20221006":"108.0.5329.0","23.0.0-nightly.20221007":"108.0.5329.0","23.0.0-nightly.20221010":"108.0.5329.0","23.0.0-nightly.20221011":"108.0.5329.0","23.0.0-nightly.20221012":"108.0.5329.0","23.0.0-nightly.20221013":"108.0.5329.0","23.0.0-nightly.20221014":"108.0.5329.0","23.0.0-nightly.20221017":"108.0.5329.0","23.0.0-nightly.20221018":"108.0.5355.0","23.0.0-nightly.20221019":"108.0.5355.0","23.0.0-nightly.20221020":"108.0.5355.0","23.0.0-nightly.20221021":"108.0.5355.0","23.0.0-nightly.20221024":"108.0.5355.0","23.0.0-nightly.20221026":"108.0.5355.0","23.0.0-nightly.20221027":"109.0.5382.0","23.0.0-nightly.20221028":"109.0.5382.0","23.0.0-nightly.20221031":"109.0.5382.0","23.0.0-nightly.20221101":"109.0.5382.0","23.0.0-nightly.20221102":"109.0.5382.0","23.0.0-nightly.20221103":"109.0.5382.0","23.0.0-nightly.20221104":"109.0.5382.0","23.0.0-nightly.20221107":"109.0.5382.0","23.0.0-nightly.20221108":"109.0.5382.0","23.0.0-nightly.20221109":"109.0.5382.0","23.0.0-nightly.20221110":"109.0.5382.0","23.0.0-nightly.20221111":"109.0.5382.0","23.0.0-nightly.20221114":"109.0.5382.0","23.0.0-nightly.20221115":"109.0.5382.0","23.0.0-nightly.20221116":"109.0.5382.0","23.0.0-nightly.20221117":"109.0.5382.0","23.0.0-nightly.20221118":"110.0.5415.0","23.0.0-nightly.20221121":"110.0.5415.0","23.0.0-nightly.20221122":"110.0.5415.0","23.0.0-nightly.20221123":"110.0.5415.0","23.0.0-nightly.20221124":"110.0.5415.0","23.0.0-nightly.20221125":"110.0.5415.0","23.0.0-nightly.20221128":"110.0.5415.0","23.0.0-nightly.20221129":"110.0.5415.0","23.0.0-nightly.20221130":"110.0.5415.0","23.0.0":"110.0.5481.77","23.1.0":"110.0.5481.100","23.1.1":"110.0.5481.104","23.1.2":"110.0.5481.177","23.1.3":"110.0.5481.179","23.1.4":"110.0.5481.192","23.2.0":"110.0.5481.192","23.2.1":"110.0.5481.208","23.2.2":"110.0.5481.208","23.2.3":"110.0.5481.208","23.2.4":"110.0.5481.208","23.3.0":"110.0.5481.208","23.3.1":"110.0.5481.208","23.3.2":"110.0.5481.208","23.3.3":"110.0.5481.208","23.3.4":"110.0.5481.208","23.3.5":"110.0.5481.208","23.3.6":"110.0.5481.208","23.3.7":"110.0.5481.208","23.3.8":"110.0.5481.208","23.3.9":"110.0.5481.208","23.3.10":"110.0.5481.208","23.3.11":"110.0.5481.208","23.3.12":"110.0.5481.208","23.3.13":"110.0.5481.208","24.0.0-alpha.1":"111.0.5560.0","24.0.0-alpha.2":"111.0.5560.0","24.0.0-alpha.3":"111.0.5560.0","24.0.0-alpha.4":"111.0.5560.0","24.0.0-alpha.5":"111.0.5560.0","24.0.0-alpha.6":"111.0.5560.0","24.0.0-alpha.7":"111.0.5560.0","24.0.0-beta.1":"111.0.5563.50","24.0.0-beta.2":"111.0.5563.50","24.0.0-beta.3":"112.0.5615.20","24.0.0-beta.4":"112.0.5615.20","24.0.0-beta.5":"112.0.5615.29","24.0.0-beta.6":"112.0.5615.39","24.0.0-beta.7":"112.0.5615.39","24.0.0-nightly.20221201":"110.0.5415.0","24.0.0-nightly.20221202":"110.0.5415.0","24.0.0-nightly.20221205":"110.0.5415.0","24.0.0-nightly.20221206":"110.0.5451.0","24.0.0-nightly.20221207":"110.0.5451.0","24.0.0-nightly.20221208":"110.0.5451.0","24.0.0-nightly.20221213":"110.0.5451.0","24.0.0-nightly.20221214":"110.0.5451.0","24.0.0-nightly.20221215":"110.0.5451.0","24.0.0-nightly.20221216":"110.0.5451.0","24.0.0-nightly.20230109":"111.0.5518.0","24.0.0-nightly.20230110":"111.0.5518.0","24.0.0-nightly.20230111":"111.0.5518.0","24.0.0-nightly.20230112":"111.0.5518.0","24.0.0-nightly.20230113":"111.0.5518.0","24.0.0-nightly.20230116":"111.0.5518.0","24.0.0-nightly.20230117":"111.0.5518.0","24.0.0-nightly.20230118":"111.0.5518.0","24.0.0-nightly.20230119":"111.0.5518.0","24.0.0-nightly.20230120":"111.0.5518.0","24.0.0-nightly.20230123":"111.0.5518.0","24.0.0-nightly.20230124":"111.0.5518.0","24.0.0-nightly.20230125":"111.0.5518.0","24.0.0-nightly.20230126":"111.0.5518.0","24.0.0-nightly.20230127":"111.0.5518.0","24.0.0-nightly.20230131":"111.0.5518.0","24.0.0-nightly.20230201":"111.0.5518.0","24.0.0-nightly.20230202":"111.0.5518.0","24.0.0-nightly.20230203":"111.0.5560.0","24.0.0-nightly.20230206":"111.0.5560.0","24.0.0-nightly.20230207":"111.0.5560.0","24.0.0-nightly.20230208":"111.0.5560.0","24.0.0-nightly.20230209":"111.0.5560.0","24.0.0":"112.0.5615.49","24.1.0":"112.0.5615.50","24.1.1":"112.0.5615.50","24.1.2":"112.0.5615.87","24.1.3":"112.0.5615.165","24.2.0":"112.0.5615.165","24.3.0":"112.0.5615.165","24.3.1":"112.0.5615.183","24.4.0":"112.0.5615.204","24.4.1":"112.0.5615.204","24.5.0":"112.0.5615.204","24.5.1":"112.0.5615.204","24.6.0":"112.0.5615.204","24.6.1":"112.0.5615.204","24.6.2":"112.0.5615.204","24.6.3":"112.0.5615.204","24.6.4":"112.0.5615.204","24.6.5":"112.0.5615.204","24.7.0":"112.0.5615.204","24.7.1":"112.0.5615.204","24.8.0":"112.0.5615.204","24.8.1":"112.0.5615.204","24.8.2":"112.0.5615.204","24.8.3":"112.0.5615.204","24.8.4":"112.0.5615.204","24.8.5":"112.0.5615.204","24.8.6":"112.0.5615.204","24.8.7":"112.0.5615.204","24.8.8":"112.0.5615.204","25.0.0-alpha.1":"114.0.5694.0","25.0.0-alpha.2":"114.0.5694.0","25.0.0-alpha.3":"114.0.5710.0","25.0.0-alpha.4":"114.0.5710.0","25.0.0-alpha.5":"114.0.5719.0","25.0.0-alpha.6":"114.0.5719.0","25.0.0-beta.1":"114.0.5719.0","25.0.0-beta.2":"114.0.5719.0","25.0.0-beta.3":"114.0.5719.0","25.0.0-beta.4":"114.0.5735.16","25.0.0-beta.5":"114.0.5735.16","25.0.0-beta.6":"114.0.5735.16","25.0.0-beta.7":"114.0.5735.16","25.0.0-beta.8":"114.0.5735.35","25.0.0-beta.9":"114.0.5735.45","25.0.0-nightly.20230210":"111.0.5560.0","25.0.0-nightly.20230214":"111.0.5560.0","25.0.0-nightly.20230215":"111.0.5560.0","25.0.0-nightly.20230216":"111.0.5560.0","25.0.0-nightly.20230217":"111.0.5560.0","25.0.0-nightly.20230220":"111.0.5560.0","25.0.0-nightly.20230221":"111.0.5560.0","25.0.0-nightly.20230222":"111.0.5560.0","25.0.0-nightly.20230223":"111.0.5560.0","25.0.0-nightly.20230224":"111.0.5560.0","25.0.0-nightly.20230227":"111.0.5560.0","25.0.0-nightly.20230228":"111.0.5560.0","25.0.0-nightly.20230301":"111.0.5560.0","25.0.0-nightly.20230302":"111.0.5560.0","25.0.0-nightly.20230303":"111.0.5560.0","25.0.0-nightly.20230306":"111.0.5560.0","25.0.0-nightly.20230307":"111.0.5560.0","25.0.0-nightly.20230308":"111.0.5560.0","25.0.0-nightly.20230309":"111.0.5560.0","25.0.0-nightly.20230310":"111.0.5560.0","25.0.0-nightly.20230314":"113.0.5636.0","25.0.0-nightly.20230315":"113.0.5651.0","25.0.0-nightly.20230317":"113.0.5653.0","25.0.0-nightly.20230320":"113.0.5660.0","25.0.0-nightly.20230321":"113.0.5664.0","25.0.0-nightly.20230322":"113.0.5666.0","25.0.0-nightly.20230323":"113.0.5668.0","25.0.0-nightly.20230324":"113.0.5670.0","25.0.0-nightly.20230327":"113.0.5670.0","25.0.0-nightly.20230328":"113.0.5670.0","25.0.0-nightly.20230329":"113.0.5670.0","25.0.0-nightly.20230330":"113.0.5670.0","25.0.0-nightly.20230331":"114.0.5684.0","25.0.0-nightly.20230403":"114.0.5684.0","25.0.0-nightly.20230404":"114.0.5692.0","25.0.0-nightly.20230405":"114.0.5694.0","25.0.0":"114.0.5735.45","25.0.1":"114.0.5735.45","25.1.0":"114.0.5735.106","25.1.1":"114.0.5735.106","25.2.0":"114.0.5735.134","25.3.0":"114.0.5735.199","25.3.1":"114.0.5735.243","25.3.2":"114.0.5735.248","25.4.0":"114.0.5735.248","25.5.0":"114.0.5735.289","25.6.0":"114.0.5735.289","25.7.0":"114.0.5735.289","25.8.0":"114.0.5735.289","25.8.1":"114.0.5735.289","25.8.2":"114.0.5735.289","25.8.3":"114.0.5735.289","25.8.4":"114.0.5735.289","25.9.0":"114.0.5735.289","25.9.1":"114.0.5735.289","25.9.2":"114.0.5735.289","25.9.3":"114.0.5735.289","25.9.4":"114.0.5735.289","25.9.5":"114.0.5735.289","25.9.6":"114.0.5735.289","25.9.7":"114.0.5735.289","25.9.8":"114.0.5735.289","26.0.0-alpha.1":"116.0.5791.0","26.0.0-alpha.2":"116.0.5791.0","26.0.0-alpha.3":"116.0.5791.0","26.0.0-alpha.4":"116.0.5791.0","26.0.0-alpha.5":"116.0.5791.0","26.0.0-alpha.6":"116.0.5815.0","26.0.0-alpha.7":"116.0.5831.0","26.0.0-alpha.8":"116.0.5845.0","26.0.0-beta.1":"116.0.5845.0","26.0.0-beta.2":"116.0.5845.14","26.0.0-beta.3":"116.0.5845.14","26.0.0-beta.4":"116.0.5845.14","26.0.0-beta.5":"116.0.5845.14","26.0.0-beta.6":"116.0.5845.14","26.0.0-beta.7":"116.0.5845.14","26.0.0-beta.8":"116.0.5845.42","26.0.0-beta.9":"116.0.5845.42","26.0.0-beta.10":"116.0.5845.49","26.0.0-beta.11":"116.0.5845.49","26.0.0-beta.12":"116.0.5845.62","26.0.0-nightly.20230406":"114.0.5694.0","26.0.0-nightly.20230407":"114.0.5694.0","26.0.0-nightly.20230410":"114.0.5694.0","26.0.0-nightly.20230411":"114.0.5694.0","26.0.0-nightly.20230412":"114.0.5708.0","26.0.0-nightly.20230413":"114.0.5710.0","26.0.0-nightly.20230414":"114.0.5710.0","26.0.0-nightly.20230417":"114.0.5710.0","26.0.0-nightly.20230418":"114.0.5715.0","26.0.0-nightly.20230421":"114.0.5719.0","26.0.0-nightly.20230424":"114.0.5719.0","26.0.0-nightly.20230425":"114.0.5719.0","26.0.0-nightly.20230426":"114.0.5719.0","26.0.0-nightly.20230427":"114.0.5719.0","26.0.0-nightly.20230428":"114.0.5719.0","26.0.0-nightly.20230501":"114.0.5719.0","26.0.0-nightly.20230502":"114.0.5719.0","26.0.0-nightly.20230503":"114.0.5719.0","26.0.0-nightly.20230504":"114.0.5719.0","26.0.0-nightly.20230505":"114.0.5719.0","26.0.0-nightly.20230508":"114.0.5719.0","26.0.0-nightly.20230509":"114.0.5719.0","26.0.0-nightly.20230510":"114.0.5719.0","26.0.0-nightly.20230511":"115.0.5760.0","26.0.0-nightly.20230512":"115.0.5760.0","26.0.0-nightly.20230515":"115.0.5760.0","26.0.0-nightly.20230516":"115.0.5760.0","26.0.0-nightly.20230517":"115.0.5760.0","26.0.0-nightly.20230518":"115.0.5760.0","26.0.0-nightly.20230519":"115.0.5760.0","26.0.0-nightly.20230522":"115.0.5760.0","26.0.0-nightly.20230523":"115.0.5760.0","26.0.0-nightly.20230524":"115.0.5786.0","26.0.0-nightly.20230525":"115.0.5790.0","26.0.0-nightly.20230526":"116.0.5791.0","26.0.0-nightly.20230529":"116.0.5791.0","26.0.0-nightly.20230530":"116.0.5791.0","26.0.0-nightly.20230531":"116.0.5791.0","26.0.0":"116.0.5845.82","26.1.0":"116.0.5845.97","26.2.0":"116.0.5845.179","26.2.1":"116.0.5845.188","26.2.2":"116.0.5845.190","26.2.3":"116.0.5845.190","26.2.4":"116.0.5845.190","26.3.0":"116.0.5845.228","26.4.0":"116.0.5845.228","26.4.1":"116.0.5845.228","26.4.2":"116.0.5845.228","26.4.3":"116.0.5845.228","26.5.0":"116.0.5845.228","26.6.0":"116.0.5845.228","26.6.1":"116.0.5845.228","26.6.2":"116.0.5845.228","26.6.3":"116.0.5845.228","26.6.4":"116.0.5845.228","26.6.5":"116.0.5845.228","26.6.6":"116.0.5845.228","26.6.7":"116.0.5845.228","26.6.8":"116.0.5845.228","26.6.9":"116.0.5845.228","26.6.10":"116.0.5845.228","27.0.0-alpha.1":"118.0.5949.0","27.0.0-alpha.2":"118.0.5949.0","27.0.0-alpha.3":"118.0.5949.0","27.0.0-alpha.4":"118.0.5949.0","27.0.0-alpha.5":"118.0.5949.0","27.0.0-alpha.6":"118.0.5949.0","27.0.0-beta.1":"118.0.5993.5","27.0.0-beta.2":"118.0.5993.5","27.0.0-beta.3":"118.0.5993.5","27.0.0-beta.4":"118.0.5993.11","27.0.0-beta.5":"118.0.5993.18","27.0.0-beta.6":"118.0.5993.18","27.0.0-beta.7":"118.0.5993.18","27.0.0-beta.8":"118.0.5993.18","27.0.0-beta.9":"118.0.5993.18","27.0.0-nightly.20230601":"116.0.5791.0","27.0.0-nightly.20230602":"116.0.5791.0","27.0.0-nightly.20230605":"116.0.5791.0","27.0.0-nightly.20230606":"116.0.5791.0","27.0.0-nightly.20230607":"116.0.5791.0","27.0.0-nightly.20230609":"116.0.5791.0","27.0.0-nightly.20230612":"116.0.5815.0","27.0.0-nightly.20230613":"116.0.5815.0","27.0.0-nightly.20230614":"116.0.5829.0","27.0.0-nightly.20230615":"116.0.5831.0","27.0.0-nightly.20230616":"116.0.5833.0","27.0.0-nightly.20230619":"116.0.5833.0","27.0.0-nightly.20230620":"116.0.5833.0","27.0.0-nightly.20230621":"116.0.5833.0","27.0.0-nightly.20230622":"116.0.5845.0","27.0.0-nightly.20230623":"116.0.5845.0","27.0.0-nightly.20230626":"116.0.5845.0","27.0.0-nightly.20230627":"116.0.5845.0","27.0.0-nightly.20230628":"116.0.5845.0","27.0.0-nightly.20230629":"116.0.5845.0","27.0.0-nightly.20230630":"116.0.5845.0","27.0.0-nightly.20230703":"117.0.5852.0","27.0.0-nightly.20230704":"117.0.5852.0","27.0.0-nightly.20230705":"117.0.5852.0","27.0.0-nightly.20230706":"117.0.5852.0","27.0.0-nightly.20230707":"117.0.5852.0","27.0.0-nightly.20230710":"117.0.5852.0","27.0.0-nightly.20230711":"117.0.5852.0","27.0.0-nightly.20230712":"117.0.5852.0","27.0.0-nightly.20230713":"117.0.5852.0","27.0.0-nightly.20230714":"117.0.5852.0","27.0.0-nightly.20230717":"117.0.5884.1","27.0.0-nightly.20230718":"117.0.5884.1","27.0.0-nightly.20230719":"117.0.5892.0","27.0.0-nightly.20230720":"117.0.5897.0","27.0.0-nightly.20230721":"117.0.5897.0","27.0.0-nightly.20230724":"117.0.5897.0","27.0.0-nightly.20230725":"117.0.5897.0","27.0.0-nightly.20230726":"117.0.5897.0","27.0.0-nightly.20230727":"117.0.5897.0","27.0.0-nightly.20230728":"117.0.5897.0","27.0.0-nightly.20230731":"117.0.5897.0","27.0.0-nightly.20230801":"117.0.5911.0","27.0.0-nightly.20230802":"117.0.5911.0","27.0.0-nightly.20230803":"117.0.5911.0","27.0.0-nightly.20230804":"117.0.5921.0","27.0.0-nightly.20230807":"117.0.5921.0","27.0.0-nightly.20230808":"117.0.5921.0","27.0.0-nightly.20230814":"117.0.5921.0","27.0.0-nightly.20230815":"117.0.5921.0","27.0.0-nightly.20230816":"118.0.5949.0","27.0.0":"118.0.5993.54","27.0.1":"118.0.5993.89","27.0.2":"118.0.5993.89","27.0.3":"118.0.5993.120","27.0.4":"118.0.5993.129","27.1.0":"118.0.5993.144","27.1.2":"118.0.5993.144","27.1.3":"118.0.5993.159","27.2.0":"118.0.5993.159","27.2.1":"118.0.5993.159","27.2.2":"118.0.5993.159","27.2.3":"118.0.5993.159","27.2.4":"118.0.5993.159","27.3.0":"118.0.5993.159","27.3.1":"118.0.5993.159","27.3.2":"118.0.5993.159","27.3.3":"118.0.5993.159","27.3.4":"118.0.5993.159","27.3.5":"118.0.5993.159","27.3.6":"118.0.5993.159","27.3.7":"118.0.5993.159","27.3.8":"118.0.5993.159","27.3.9":"118.0.5993.159","27.3.10":"118.0.5993.159","27.3.11":"118.0.5993.159","28.0.0-alpha.1":"119.0.6045.0","28.0.0-alpha.2":"119.0.6045.0","28.0.0-alpha.3":"119.0.6045.21","28.0.0-alpha.4":"119.0.6045.21","28.0.0-alpha.5":"119.0.6045.33","28.0.0-alpha.6":"119.0.6045.33","28.0.0-alpha.7":"119.0.6045.33","28.0.0-beta.1":"119.0.6045.33","28.0.0-beta.2":"120.0.6099.0","28.0.0-beta.3":"120.0.6099.5","28.0.0-beta.4":"120.0.6099.5","28.0.0-beta.5":"120.0.6099.18","28.0.0-beta.6":"120.0.6099.18","28.0.0-beta.7":"120.0.6099.18","28.0.0-beta.8":"120.0.6099.18","28.0.0-beta.9":"120.0.6099.18","28.0.0-beta.10":"120.0.6099.18","28.0.0-beta.11":"120.0.6099.35","28.0.0-nightly.20230817":"118.0.5949.0","28.0.0-nightly.20230818":"118.0.5949.0","28.0.0-nightly.20230821":"118.0.5949.0","28.0.0-nightly.20230822":"118.0.5949.0","28.0.0-nightly.20230823":"118.0.5949.0","28.0.0-nightly.20230824":"118.0.5949.0","28.0.0-nightly.20230825":"118.0.5949.0","28.0.0-nightly.20230828":"118.0.5949.0","28.0.0-nightly.20230829":"118.0.5949.0","28.0.0-nightly.20230830":"118.0.5949.0","28.0.0-nightly.20230831":"118.0.5949.0","28.0.0-nightly.20230906":"118.0.5991.0","28.0.0-nightly.20230907":"118.0.5993.0","28.0.0-nightly.20230908":"118.0.5993.0","28.0.0-nightly.20230911":"118.0.5993.0","28.0.0-nightly.20230912":"118.0.5993.0","28.0.0-nightly.20230913":"118.0.5993.0","28.0.0-nightly.20230914":"118.0.5993.0","28.0.0-nightly.20230915":"118.0.5993.0","28.0.0-nightly.20230919":"119.0.6006.0","28.0.0-nightly.20230920":"119.0.6017.0","28.0.0-nightly.20230921":"119.0.6019.2","28.0.0-nightly.20230925":"119.0.6019.2","28.0.0-nightly.20230926":"119.0.6019.2","28.0.0-nightly.20230927":"119.0.6019.2","28.0.0-nightly.20230928":"119.0.6019.2","28.0.0-nightly.20230929":"119.0.6029.0","28.0.0-nightly.20231002":"119.0.6029.0","28.0.0-nightly.20231003":"119.0.6043.0","28.0.0-nightly.20231004":"119.0.6043.0","28.0.0-nightly.20231005":"119.0.6043.0","28.0.0-nightly.20231006":"119.0.6045.0","28.0.0-nightly.20231009":"119.0.6045.0","28.0.0-nightly.20231010":"119.0.6045.0","28.0.0-nightly.20231011":"119.0.6045.0","28.0.0":"120.0.6099.56","28.1.0":"120.0.6099.109","28.1.1":"120.0.6099.109","28.1.2":"120.0.6099.199","28.1.3":"120.0.6099.199","28.1.4":"120.0.6099.216","28.2.0":"120.0.6099.227","28.2.1":"120.0.6099.268","28.2.2":"120.0.6099.276","28.2.3":"120.0.6099.283","28.2.4":"120.0.6099.291","28.2.5":"120.0.6099.291","28.2.6":"120.0.6099.291","28.2.7":"120.0.6099.291","28.2.8":"120.0.6099.291","28.2.9":"120.0.6099.291","28.2.10":"120.0.6099.291","28.3.0":"120.0.6099.291","28.3.1":"120.0.6099.291","29.0.0-alpha.1":"121.0.6147.0","29.0.0-alpha.2":"121.0.6147.0","29.0.0-alpha.3":"121.0.6147.0","29.0.0-alpha.4":"121.0.6159.0","29.0.0-alpha.5":"121.0.6159.0","29.0.0-alpha.6":"121.0.6159.0","29.0.0-alpha.7":"121.0.6159.0","29.0.0-alpha.8":"122.0.6194.0","29.0.0-alpha.9":"122.0.6236.2","29.0.0-alpha.10":"122.0.6236.2","29.0.0-alpha.11":"122.0.6236.2","29.0.0-beta.1":"122.0.6236.2","29.0.0-beta.2":"122.0.6236.2","29.0.0-beta.3":"122.0.6261.6","29.0.0-beta.4":"122.0.6261.6","29.0.0-beta.5":"122.0.6261.18","29.0.0-beta.6":"122.0.6261.18","29.0.0-beta.7":"122.0.6261.18","29.0.0-beta.8":"122.0.6261.18","29.0.0-beta.9":"122.0.6261.18","29.0.0-beta.10":"122.0.6261.18","29.0.0-beta.11":"122.0.6261.18","29.0.0-beta.12":"122.0.6261.29","29.0.0-nightly.20231012":"119.0.6045.0","29.0.0-nightly.20231013":"119.0.6045.0","29.0.0-nightly.20231016":"119.0.6045.0","29.0.0-nightly.20231017":"119.0.6045.0","29.0.0-nightly.20231018":"119.0.6045.0","29.0.0-nightly.20231019":"119.0.6045.0","29.0.0-nightly.20231020":"119.0.6045.0","29.0.0-nightly.20231023":"119.0.6045.0","29.0.0-nightly.20231024":"119.0.6045.0","29.0.0-nightly.20231025":"120.0.6078.0","29.0.0-nightly.20231026":"120.0.6078.0","29.0.0-nightly.20231027":"120.0.6078.0","29.0.0-nightly.20231030":"120.0.6078.0","29.0.0-nightly.20231031":"120.0.6078.0","29.0.0-nightly.20231101":"120.0.6078.0","29.0.0-nightly.20231102":"121.0.6100.0","29.0.0-nightly.20231103":"121.0.6100.0","29.0.0-nightly.20231106":"121.0.6104.0","29.0.0-nightly.20231107":"121.0.6110.0","29.0.0-nightly.20231108":"121.0.6110.0","29.0.0-nightly.20231109":"121.0.6110.0","29.0.0-nightly.20231110":"121.0.6110.0","29.0.0-nightly.20231113":"121.0.6110.0","29.0.0-nightly.20231114":"121.0.6110.0","29.0.0-nightly.20231115":"121.0.6116.0","29.0.0-nightly.20231116":"121.0.6116.0","29.0.0-nightly.20231117":"121.0.6116.0","29.0.0-nightly.20231120":"121.0.6116.0","29.0.0-nightly.20231121":"121.0.6116.0","29.0.0-nightly.20231122":"121.0.6116.0","29.0.0-nightly.20231123":"121.0.6116.0","29.0.0-nightly.20231124":"121.0.6116.0","29.0.0-nightly.20231127":"121.0.6116.0","29.0.0-nightly.20231128":"121.0.6116.0","29.0.0-nightly.20231129":"121.0.6147.0","29.0.0-nightly.20231130":"121.0.6147.0","29.0.0-nightly.20231201":"121.0.6147.0","29.0.0-nightly.20231204":"121.0.6147.0","29.0.0-nightly.20231205":"121.0.6147.0","29.0.0-nightly.20231206":"121.0.6147.0","29.0.0":"122.0.6261.39","29.0.1":"122.0.6261.57","29.1.0":"122.0.6261.70","29.1.1":"122.0.6261.111","29.1.2":"122.0.6261.112","29.1.3":"122.0.6261.112","29.1.4":"122.0.6261.129","29.1.5":"122.0.6261.130","29.1.6":"122.0.6261.139","29.2.0":"122.0.6261.156","29.3.0":"122.0.6261.156","29.3.1":"122.0.6261.156","30.0.0-alpha.1":"123.0.6296.0","30.0.0-alpha.2":"123.0.6312.5","30.0.0-alpha.3":"124.0.6323.0","30.0.0-alpha.4":"124.0.6323.0","30.0.0-alpha.5":"124.0.6331.0","30.0.0-alpha.6":"124.0.6331.0","30.0.0-alpha.7":"124.0.6353.0","30.0.0-beta.1":"124.0.6359.0","30.0.0-beta.2":"124.0.6359.0","30.0.0-beta.3":"124.0.6367.9","30.0.0-beta.4":"124.0.6367.9","30.0.0-beta.5":"124.0.6367.9","30.0.0-beta.6":"124.0.6367.18","30.0.0-beta.7":"124.0.6367.29","30.0.0-beta.8":"124.0.6367.29","30.0.0-nightly.20231207":"121.0.6147.0","30.0.0-nightly.20231208":"121.0.6147.0","30.0.0-nightly.20231211":"121.0.6147.0","30.0.0-nightly.20231212":"121.0.6159.0","30.0.0-nightly.20231213":"121.0.6159.0","30.0.0-nightly.20231214":"121.0.6159.0","30.0.0-nightly.20231215":"121.0.6159.0","30.0.0-nightly.20231218":"121.0.6159.0","30.0.0-nightly.20240102":"121.0.6159.0","30.0.0-nightly.20240103":"122.0.6194.0","30.0.0-nightly.20240104":"122.0.6194.0","30.0.0-nightly.20240105":"122.0.6194.0","30.0.0-nightly.20240108":"122.0.6194.0","30.0.0-nightly.20240109":"122.0.6194.0","30.0.0-nightly.20240110":"122.0.6194.0","30.0.0-nightly.20240111":"122.0.6236.2","30.0.0-nightly.20240112":"122.0.6236.2","30.0.0-nightly.20240115":"122.0.6236.2","30.0.0-nightly.20240116":"122.0.6236.2","30.0.0-nightly.20240117":"122.0.6236.2","30.0.0-nightly.20240118":"122.0.6236.2","30.0.0-nightly.20240119":"122.0.6236.2","30.0.0-nightly.20240122":"122.0.6236.2","30.0.0-nightly.20240123":"122.0.6236.2","30.0.0-nightly.20240124":"122.0.6236.2","30.0.0-nightly.20240125":"122.0.6236.2","30.0.0-nightly.20240126":"123.0.6264.0","30.0.0-nightly.20240129":"123.0.6264.0","30.0.0-nightly.20240130":"123.0.6264.0","30.0.0-nightly.20240131":"123.0.6264.0","30.0.0-nightly.20240201":"123.0.6272.0","30.0.0-nightly.20240202":"123.0.6272.0","30.0.0-nightly.20240205":"123.0.6272.0","30.0.0-nightly.20240206":"123.0.6272.0","30.0.0-nightly.20240207":"123.0.6272.0","30.0.0-nightly.20240208":"123.0.6272.0","30.0.0-nightly.20240209":"123.0.6272.0","30.0.0-nightly.20240212":"123.0.6272.0","30.0.0-nightly.20240213":"123.0.6272.0","30.0.0-nightly.20240214":"123.0.6272.0","30.0.0-nightly.20240215":"123.0.6296.0","30.0.0-nightly.20240216":"123.0.6296.0","30.0.0-nightly.20240219":"123.0.6296.0","30.0.0-nightly.20240220":"123.0.6296.0","30.0.0-nightly.20240221":"123.0.6296.0","30.0.0":"124.0.6367.49","30.0.1":"124.0.6367.60","31.0.0-alpha.1":"125.0.6412.0","31.0.0-alpha.2":"125.0.6412.0","31.0.0-nightly.20240222":"123.0.6312.5","31.0.0-nightly.20240223":"123.0.6312.5","31.0.0-nightly.20240226":"123.0.6312.5","31.0.0-nightly.20240227":"123.0.6312.5","31.0.0-nightly.20240228":"123.0.6312.5","31.0.0-nightly.20240229":"124.0.6323.0","31.0.0-nightly.20240301":"124.0.6323.0","31.0.0-nightly.20240304":"124.0.6323.0","31.0.0-nightly.20240305":"124.0.6323.0","31.0.0-nightly.20240306":"124.0.6331.0","31.0.0-nightly.20240307":"124.0.6331.0","31.0.0-nightly.20240308":"124.0.6331.0","31.0.0-nightly.20240311":"124.0.6331.0","31.0.0-nightly.20240312":"124.0.6351.0","31.0.0-nightly.20240313":"124.0.6353.0","31.0.0-nightly.20240314":"124.0.6353.0","31.0.0-nightly.20240315":"124.0.6353.0","31.0.0-nightly.20240318":"124.0.6359.0","31.0.0-nightly.20240319":"124.0.6359.0","31.0.0-nightly.20240320":"124.0.6359.0","31.0.0-nightly.20240321":"124.0.6359.0","31.0.0-nightly.20240325":"124.0.6359.0","31.0.0-nightly.20240327":"124.0.6359.0","31.0.0-nightly.20240328":"124.0.6359.0","31.0.0-nightly.20240329":"124.0.6359.0","31.0.0-nightly.20240401":"124.0.6359.0","31.0.0-nightly.20240402":"124.0.6359.0","31.0.0-nightly.20240404":"124.0.6359.0","31.0.0-nightly.20240405":"124.0.6359.0","31.0.0-nightly.20240408":"124.0.6359.0","31.0.0-nightly.20240409":"124.0.6359.0","31.0.0-nightly.20240410":"124.0.6359.0","31.0.0-nightly.20240411":"124.0.6359.0","31.0.0-nightly.20240412":"124.0.6359.0","32.0.0-nightly.20240418":"125.0.6412.0","32.0.0-nightly.20240419":"125.0.6412.0","32.0.0-nightly.20240422":"125.0.6412.0","32.0.0-nightly.20240423":"125.0.6412.0","32.0.0-nightly.20240424":"125.0.6412.0","32.0.0-nightly.20240425":"125.0.6412.0","32.0.0-nightly.20240426":"125.0.6412.0","32.0.0-nightly.20240429":"125.0.6412.0"} \ No newline at end of file +{"0.20.0":"39.0.2171.65","0.20.1":"39.0.2171.65","0.20.2":"39.0.2171.65","0.20.3":"39.0.2171.65","0.20.4":"39.0.2171.65","0.20.5":"39.0.2171.65","0.20.6":"39.0.2171.65","0.20.7":"39.0.2171.65","0.20.8":"39.0.2171.65","0.21.0":"40.0.2214.91","0.21.1":"40.0.2214.91","0.21.2":"40.0.2214.91","0.21.3":"41.0.2272.76","0.22.1":"41.0.2272.76","0.22.2":"41.0.2272.76","0.22.3":"41.0.2272.76","0.23.0":"41.0.2272.76","0.24.0":"41.0.2272.76","0.25.0":"42.0.2311.107","0.25.1":"42.0.2311.107","0.25.2":"42.0.2311.107","0.25.3":"42.0.2311.107","0.26.0":"42.0.2311.107","0.26.1":"42.0.2311.107","0.27.0":"42.0.2311.107","0.27.1":"42.0.2311.107","0.27.2":"43.0.2357.65","0.27.3":"43.0.2357.65","0.28.0":"43.0.2357.65","0.28.1":"43.0.2357.65","0.28.2":"43.0.2357.65","0.28.3":"43.0.2357.65","0.29.1":"43.0.2357.65","0.29.2":"43.0.2357.65","0.30.4":"44.0.2403.125","0.31.0":"44.0.2403.125","0.31.2":"45.0.2454.85","0.32.2":"45.0.2454.85","0.32.3":"45.0.2454.85","0.33.0":"45.0.2454.85","0.33.1":"45.0.2454.85","0.33.2":"45.0.2454.85","0.33.3":"45.0.2454.85","0.33.4":"45.0.2454.85","0.33.6":"45.0.2454.85","0.33.7":"45.0.2454.85","0.33.8":"45.0.2454.85","0.33.9":"45.0.2454.85","0.34.0":"45.0.2454.85","0.34.1":"45.0.2454.85","0.34.2":"45.0.2454.85","0.34.3":"45.0.2454.85","0.34.4":"45.0.2454.85","0.35.1":"45.0.2454.85","0.35.2":"45.0.2454.85","0.35.3":"45.0.2454.85","0.35.4":"45.0.2454.85","0.35.5":"45.0.2454.85","0.36.0":"47.0.2526.73","0.36.2":"47.0.2526.73","0.36.3":"47.0.2526.73","0.36.4":"47.0.2526.73","0.36.5":"47.0.2526.110","0.36.6":"47.0.2526.110","0.36.7":"47.0.2526.110","0.36.8":"47.0.2526.110","0.36.9":"47.0.2526.110","0.36.10":"47.0.2526.110","0.36.11":"47.0.2526.110","0.36.12":"47.0.2526.110","0.37.0":"49.0.2623.75","0.37.1":"49.0.2623.75","0.37.3":"49.0.2623.75","0.37.4":"49.0.2623.75","0.37.5":"49.0.2623.75","0.37.6":"49.0.2623.75","0.37.7":"49.0.2623.75","0.37.8":"49.0.2623.75","1.0.0":"49.0.2623.75","1.0.1":"49.0.2623.75","1.0.2":"49.0.2623.75","1.1.0":"50.0.2661.102","1.1.1":"50.0.2661.102","1.1.2":"50.0.2661.102","1.1.3":"50.0.2661.102","1.2.0":"51.0.2704.63","1.2.1":"51.0.2704.63","1.2.2":"51.0.2704.84","1.2.3":"51.0.2704.84","1.2.4":"51.0.2704.103","1.2.5":"51.0.2704.103","1.2.6":"51.0.2704.106","1.2.7":"51.0.2704.106","1.2.8":"51.0.2704.106","1.3.0":"52.0.2743.82","1.3.1":"52.0.2743.82","1.3.2":"52.0.2743.82","1.3.3":"52.0.2743.82","1.3.4":"52.0.2743.82","1.3.5":"52.0.2743.82","1.3.6":"52.0.2743.82","1.3.7":"52.0.2743.82","1.3.9":"52.0.2743.82","1.3.10":"52.0.2743.82","1.3.13":"52.0.2743.82","1.3.14":"52.0.2743.82","1.3.15":"52.0.2743.82","1.4.0":"53.0.2785.113","1.4.1":"53.0.2785.113","1.4.2":"53.0.2785.113","1.4.3":"53.0.2785.113","1.4.4":"53.0.2785.113","1.4.5":"53.0.2785.113","1.4.6":"53.0.2785.143","1.4.7":"53.0.2785.143","1.4.8":"53.0.2785.143","1.4.10":"53.0.2785.143","1.4.11":"53.0.2785.143","1.4.12":"54.0.2840.51","1.4.13":"53.0.2785.143","1.4.14":"53.0.2785.143","1.4.15":"53.0.2785.143","1.4.16":"53.0.2785.143","1.5.0":"54.0.2840.101","1.5.1":"54.0.2840.101","1.6.0":"56.0.2924.87","1.6.1":"56.0.2924.87","1.6.2":"56.0.2924.87","1.6.3":"56.0.2924.87","1.6.4":"56.0.2924.87","1.6.5":"56.0.2924.87","1.6.6":"56.0.2924.87","1.6.7":"56.0.2924.87","1.6.8":"56.0.2924.87","1.6.9":"56.0.2924.87","1.6.10":"56.0.2924.87","1.6.11":"56.0.2924.87","1.6.12":"56.0.2924.87","1.6.13":"56.0.2924.87","1.6.14":"56.0.2924.87","1.6.15":"56.0.2924.87","1.6.16":"56.0.2924.87","1.6.17":"56.0.2924.87","1.6.18":"56.0.2924.87","1.7.0":"58.0.3029.110","1.7.1":"58.0.3029.110","1.7.2":"58.0.3029.110","1.7.3":"58.0.3029.110","1.7.4":"58.0.3029.110","1.7.5":"58.0.3029.110","1.7.6":"58.0.3029.110","1.7.7":"58.0.3029.110","1.7.8":"58.0.3029.110","1.7.9":"58.0.3029.110","1.7.10":"58.0.3029.110","1.7.11":"58.0.3029.110","1.7.12":"58.0.3029.110","1.7.13":"58.0.3029.110","1.7.14":"58.0.3029.110","1.7.15":"58.0.3029.110","1.7.16":"58.0.3029.110","1.8.0":"59.0.3071.115","1.8.1":"59.0.3071.115","1.8.2-beta.1":"59.0.3071.115","1.8.2-beta.2":"59.0.3071.115","1.8.2-beta.3":"59.0.3071.115","1.8.2-beta.4":"59.0.3071.115","1.8.2-beta.5":"59.0.3071.115","1.8.2":"59.0.3071.115","1.8.3":"59.0.3071.115","1.8.4":"59.0.3071.115","1.8.5":"59.0.3071.115","1.8.6":"59.0.3071.115","1.8.7":"59.0.3071.115","1.8.8":"59.0.3071.115","2.0.0-beta.1":"61.0.3163.100","2.0.0-beta.2":"61.0.3163.100","2.0.0-beta.3":"61.0.3163.100","2.0.0-beta.4":"61.0.3163.100","2.0.0-beta.5":"61.0.3163.100","2.0.0-beta.6":"61.0.3163.100","2.0.0-beta.7":"61.0.3163.100","2.0.0-beta.8":"61.0.3163.100","2.0.0":"61.0.3163.100","2.0.1":"61.0.3163.100","2.0.2":"61.0.3163.100","2.0.3":"61.0.3163.100","2.0.4":"61.0.3163.100","2.0.5":"61.0.3163.100","2.0.6":"61.0.3163.100","2.0.7":"61.0.3163.100","2.0.8-nightly.20180819":"61.0.3163.100","2.0.8-nightly.20180820":"61.0.3163.100","2.0.8":"61.0.3163.100","2.0.9":"61.0.3163.100","2.0.10":"61.0.3163.100","2.0.11":"61.0.3163.100","2.0.12":"61.0.3163.100","2.0.13":"61.0.3163.100","2.0.14":"61.0.3163.100","2.0.15":"61.0.3163.100","2.0.16":"61.0.3163.100","2.0.17":"61.0.3163.100","2.0.18":"61.0.3163.100","2.1.0-unsupported.20180809":"61.0.3163.100","3.0.0-beta.1":"66.0.3359.181","3.0.0-beta.2":"66.0.3359.181","3.0.0-beta.3":"66.0.3359.181","3.0.0-beta.4":"66.0.3359.181","3.0.0-beta.5":"66.0.3359.181","3.0.0-beta.6":"66.0.3359.181","3.0.0-beta.7":"66.0.3359.181","3.0.0-beta.8":"66.0.3359.181","3.0.0-beta.9":"66.0.3359.181","3.0.0-beta.10":"66.0.3359.181","3.0.0-beta.11":"66.0.3359.181","3.0.0-beta.12":"66.0.3359.181","3.0.0-beta.13":"66.0.3359.181","3.0.0-nightly.20180818":"66.0.3359.181","3.0.0-nightly.20180821":"66.0.3359.181","3.0.0-nightly.20180823":"66.0.3359.181","3.0.0-nightly.20180904":"66.0.3359.181","3.0.0":"66.0.3359.181","3.0.1":"66.0.3359.181","3.0.2":"66.0.3359.181","3.0.3":"66.0.3359.181","3.0.4":"66.0.3359.181","3.0.5":"66.0.3359.181","3.0.6":"66.0.3359.181","3.0.7":"66.0.3359.181","3.0.8":"66.0.3359.181","3.0.9":"66.0.3359.181","3.0.10":"66.0.3359.181","3.0.11":"66.0.3359.181","3.0.12":"66.0.3359.181","3.0.13":"66.0.3359.181","3.0.14":"66.0.3359.181","3.0.15":"66.0.3359.181","3.0.16":"66.0.3359.181","3.1.0-beta.1":"66.0.3359.181","3.1.0-beta.2":"66.0.3359.181","3.1.0-beta.3":"66.0.3359.181","3.1.0-beta.4":"66.0.3359.181","3.1.0-beta.5":"66.0.3359.181","3.1.0":"66.0.3359.181","3.1.1":"66.0.3359.181","3.1.2":"66.0.3359.181","3.1.3":"66.0.3359.181","3.1.4":"66.0.3359.181","3.1.5":"66.0.3359.181","3.1.6":"66.0.3359.181","3.1.7":"66.0.3359.181","3.1.8":"66.0.3359.181","3.1.9":"66.0.3359.181","3.1.10":"66.0.3359.181","3.1.11":"66.0.3359.181","3.1.12":"66.0.3359.181","3.1.13":"66.0.3359.181","4.0.0-beta.1":"69.0.3497.106","4.0.0-beta.2":"69.0.3497.106","4.0.0-beta.3":"69.0.3497.106","4.0.0-beta.4":"69.0.3497.106","4.0.0-beta.5":"69.0.3497.106","4.0.0-beta.6":"69.0.3497.106","4.0.0-beta.7":"69.0.3497.106","4.0.0-beta.8":"69.0.3497.106","4.0.0-beta.9":"69.0.3497.106","4.0.0-beta.10":"69.0.3497.106","4.0.0-beta.11":"69.0.3497.106","4.0.0-nightly.20180817":"66.0.3359.181","4.0.0-nightly.20180819":"66.0.3359.181","4.0.0-nightly.20180821":"66.0.3359.181","4.0.0-nightly.20180929":"67.0.3396.99","4.0.0-nightly.20181006":"68.0.3440.128","4.0.0-nightly.20181010":"69.0.3497.106","4.0.0":"69.0.3497.106","4.0.1":"69.0.3497.106","4.0.2":"69.0.3497.106","4.0.3":"69.0.3497.106","4.0.4":"69.0.3497.106","4.0.5":"69.0.3497.106","4.0.6":"69.0.3497.106","4.0.7":"69.0.3497.128","4.0.8":"69.0.3497.128","4.1.0":"69.0.3497.128","4.1.1":"69.0.3497.128","4.1.2":"69.0.3497.128","4.1.3":"69.0.3497.128","4.1.4":"69.0.3497.128","4.1.5":"69.0.3497.128","4.2.0":"69.0.3497.128","4.2.1":"69.0.3497.128","4.2.2":"69.0.3497.128","4.2.3":"69.0.3497.128","4.2.4":"69.0.3497.128","4.2.5":"69.0.3497.128","4.2.6":"69.0.3497.128","4.2.7":"69.0.3497.128","4.2.8":"69.0.3497.128","4.2.9":"69.0.3497.128","4.2.10":"69.0.3497.128","4.2.11":"69.0.3497.128","4.2.12":"69.0.3497.128","5.0.0-beta.1":"72.0.3626.52","5.0.0-beta.2":"72.0.3626.52","5.0.0-beta.3":"73.0.3683.27","5.0.0-beta.4":"73.0.3683.54","5.0.0-beta.5":"73.0.3683.61","5.0.0-beta.6":"73.0.3683.84","5.0.0-beta.7":"73.0.3683.94","5.0.0-beta.8":"73.0.3683.104","5.0.0-beta.9":"73.0.3683.117","5.0.0-nightly.20190107":"70.0.3538.110","5.0.0-nightly.20190121":"71.0.3578.98","5.0.0-nightly.20190122":"71.0.3578.98","5.0.0":"73.0.3683.119","5.0.1":"73.0.3683.121","5.0.2":"73.0.3683.121","5.0.3":"73.0.3683.121","5.0.4":"73.0.3683.121","5.0.5":"73.0.3683.121","5.0.6":"73.0.3683.121","5.0.7":"73.0.3683.121","5.0.8":"73.0.3683.121","5.0.9":"73.0.3683.121","5.0.10":"73.0.3683.121","5.0.11":"73.0.3683.121","5.0.12":"73.0.3683.121","5.0.13":"73.0.3683.121","6.0.0-beta.1":"76.0.3774.1","6.0.0-beta.2":"76.0.3783.1","6.0.0-beta.3":"76.0.3783.1","6.0.0-beta.4":"76.0.3783.1","6.0.0-beta.5":"76.0.3805.4","6.0.0-beta.6":"76.0.3809.3","6.0.0-beta.7":"76.0.3809.22","6.0.0-beta.8":"76.0.3809.26","6.0.0-beta.9":"76.0.3809.26","6.0.0-beta.10":"76.0.3809.37","6.0.0-beta.11":"76.0.3809.42","6.0.0-beta.12":"76.0.3809.54","6.0.0-beta.13":"76.0.3809.60","6.0.0-beta.14":"76.0.3809.68","6.0.0-beta.15":"76.0.3809.74","6.0.0-nightly.20190123":"72.0.3626.52","6.0.0-nightly.20190212":"72.0.3626.107","6.0.0-nightly.20190213":"72.0.3626.110","6.0.0-nightly.20190311":"74.0.3724.8","6.0.0":"76.0.3809.88","6.0.1":"76.0.3809.102","6.0.2":"76.0.3809.110","6.0.3":"76.0.3809.126","6.0.4":"76.0.3809.131","6.0.5":"76.0.3809.136","6.0.6":"76.0.3809.138","6.0.7":"76.0.3809.139","6.0.8":"76.0.3809.146","6.0.9":"76.0.3809.146","6.0.10":"76.0.3809.146","6.0.11":"76.0.3809.146","6.0.12":"76.0.3809.146","6.1.0":"76.0.3809.146","6.1.1":"76.0.3809.146","6.1.2":"76.0.3809.146","6.1.3":"76.0.3809.146","6.1.4":"76.0.3809.146","6.1.5":"76.0.3809.146","6.1.6":"76.0.3809.146","6.1.7":"76.0.3809.146","6.1.8":"76.0.3809.146","6.1.9":"76.0.3809.146","6.1.10":"76.0.3809.146","6.1.11":"76.0.3809.146","6.1.12":"76.0.3809.146","7.0.0-beta.1":"78.0.3866.0","7.0.0-beta.2":"78.0.3866.0","7.0.0-beta.3":"78.0.3866.0","7.0.0-beta.4":"78.0.3896.6","7.0.0-beta.5":"78.0.3905.1","7.0.0-beta.6":"78.0.3905.1","7.0.0-beta.7":"78.0.3905.1","7.0.0-nightly.20190521":"76.0.3784.0","7.0.0-nightly.20190529":"76.0.3806.0","7.0.0-nightly.20190530":"76.0.3806.0","7.0.0-nightly.20190531":"76.0.3806.0","7.0.0-nightly.20190602":"76.0.3806.0","7.0.0-nightly.20190603":"76.0.3806.0","7.0.0-nightly.20190604":"77.0.3814.0","7.0.0-nightly.20190605":"77.0.3815.0","7.0.0-nightly.20190606":"77.0.3815.0","7.0.0-nightly.20190607":"77.0.3815.0","7.0.0-nightly.20190608":"77.0.3815.0","7.0.0-nightly.20190609":"77.0.3815.0","7.0.0-nightly.20190611":"77.0.3815.0","7.0.0-nightly.20190612":"77.0.3815.0","7.0.0-nightly.20190613":"77.0.3815.0","7.0.0-nightly.20190615":"77.0.3815.0","7.0.0-nightly.20190616":"77.0.3815.0","7.0.0-nightly.20190618":"77.0.3815.0","7.0.0-nightly.20190619":"77.0.3815.0","7.0.0-nightly.20190622":"77.0.3815.0","7.0.0-nightly.20190623":"77.0.3815.0","7.0.0-nightly.20190624":"77.0.3815.0","7.0.0-nightly.20190627":"77.0.3815.0","7.0.0-nightly.20190629":"77.0.3815.0","7.0.0-nightly.20190630":"77.0.3815.0","7.0.0-nightly.20190701":"77.0.3815.0","7.0.0-nightly.20190702":"77.0.3815.0","7.0.0-nightly.20190704":"77.0.3843.0","7.0.0-nightly.20190705":"77.0.3843.0","7.0.0-nightly.20190719":"77.0.3848.0","7.0.0-nightly.20190720":"77.0.3848.0","7.0.0-nightly.20190721":"77.0.3848.0","7.0.0-nightly.20190726":"77.0.3864.0","7.0.0-nightly.20190727":"78.0.3866.0","7.0.0-nightly.20190728":"78.0.3866.0","7.0.0-nightly.20190729":"78.0.3866.0","7.0.0-nightly.20190730":"78.0.3866.0","7.0.0-nightly.20190731":"78.0.3866.0","7.0.0":"78.0.3905.1","7.0.1":"78.0.3904.92","7.1.0":"78.0.3904.94","7.1.1":"78.0.3904.99","7.1.2":"78.0.3904.113","7.1.3":"78.0.3904.126","7.1.4":"78.0.3904.130","7.1.5":"78.0.3904.130","7.1.6":"78.0.3904.130","7.1.7":"78.0.3904.130","7.1.8":"78.0.3904.130","7.1.9":"78.0.3904.130","7.1.10":"78.0.3904.130","7.1.11":"78.0.3904.130","7.1.12":"78.0.3904.130","7.1.13":"78.0.3904.130","7.1.14":"78.0.3904.130","7.2.0":"78.0.3904.130","7.2.1":"78.0.3904.130","7.2.2":"78.0.3904.130","7.2.3":"78.0.3904.130","7.2.4":"78.0.3904.130","7.3.0":"78.0.3904.130","7.3.1":"78.0.3904.130","7.3.2":"78.0.3904.130","7.3.3":"78.0.3904.130","8.0.0-beta.1":"79.0.3931.0","8.0.0-beta.2":"79.0.3931.0","8.0.0-beta.3":"80.0.3955.0","8.0.0-beta.4":"80.0.3955.0","8.0.0-beta.5":"80.0.3987.14","8.0.0-beta.6":"80.0.3987.51","8.0.0-beta.7":"80.0.3987.59","8.0.0-beta.8":"80.0.3987.75","8.0.0-beta.9":"80.0.3987.75","8.0.0-nightly.20190801":"78.0.3866.0","8.0.0-nightly.20190802":"78.0.3866.0","8.0.0-nightly.20190803":"78.0.3871.0","8.0.0-nightly.20190806":"78.0.3871.0","8.0.0-nightly.20190807":"78.0.3871.0","8.0.0-nightly.20190808":"78.0.3871.0","8.0.0-nightly.20190809":"78.0.3871.0","8.0.0-nightly.20190810":"78.0.3871.0","8.0.0-nightly.20190811":"78.0.3871.0","8.0.0-nightly.20190812":"78.0.3871.0","8.0.0-nightly.20190813":"78.0.3871.0","8.0.0-nightly.20190814":"78.0.3871.0","8.0.0-nightly.20190815":"78.0.3871.0","8.0.0-nightly.20190816":"78.0.3881.0","8.0.0-nightly.20190817":"78.0.3881.0","8.0.0-nightly.20190818":"78.0.3881.0","8.0.0-nightly.20190819":"78.0.3881.0","8.0.0-nightly.20190820":"78.0.3881.0","8.0.0-nightly.20190824":"78.0.3892.0","8.0.0-nightly.20190825":"78.0.3892.0","8.0.0-nightly.20190827":"78.0.3892.0","8.0.0-nightly.20190828":"78.0.3892.0","8.0.0-nightly.20190830":"78.0.3892.0","8.0.0-nightly.20190901":"78.0.3892.0","8.0.0-nightly.20190902":"78.0.3892.0","8.0.0-nightly.20190907":"78.0.3892.0","8.0.0-nightly.20190909":"78.0.3892.0","8.0.0-nightly.20190910":"78.0.3892.0","8.0.0-nightly.20190911":"78.0.3892.0","8.0.0-nightly.20190912":"78.0.3892.0","8.0.0-nightly.20190913":"78.0.3892.0","8.0.0-nightly.20190914":"78.0.3892.0","8.0.0-nightly.20190915":"78.0.3892.0","8.0.0-nightly.20190917":"78.0.3892.0","8.0.0-nightly.20190919":"79.0.3915.0","8.0.0-nightly.20190920":"79.0.3915.0","8.0.0-nightly.20190922":"79.0.3919.0","8.0.0-nightly.20190923":"79.0.3919.0","8.0.0-nightly.20190924":"79.0.3919.0","8.0.0-nightly.20190926":"79.0.3919.0","8.0.0-nightly.20190928":"79.0.3919.0","8.0.0-nightly.20190929":"79.0.3919.0","8.0.0-nightly.20190930":"79.0.3919.0","8.0.0-nightly.20191001":"79.0.3919.0","8.0.0-nightly.20191004":"79.0.3919.0","8.0.0-nightly.20191005":"79.0.3919.0","8.0.0-nightly.20191006":"79.0.3919.0","8.0.0-nightly.20191009":"79.0.3919.0","8.0.0-nightly.20191011":"79.0.3919.0","8.0.0-nightly.20191012":"79.0.3919.0","8.0.0-nightly.20191017":"79.0.3919.0","8.0.0-nightly.20191019":"79.0.3931.0","8.0.0-nightly.20191020":"79.0.3931.0","8.0.0-nightly.20191021":"79.0.3931.0","8.0.0-nightly.20191023":"79.0.3931.0","8.0.0-nightly.20191101":"80.0.3952.0","8.0.0-nightly.20191103":"80.0.3952.0","8.0.0-nightly.20191105":"80.0.3952.0","8.0.0":"80.0.3987.86","8.0.1":"80.0.3987.86","8.0.2":"80.0.3987.86","8.0.3":"80.0.3987.134","8.1.0":"80.0.3987.137","8.1.1":"80.0.3987.141","8.2.0":"80.0.3987.158","8.2.1":"80.0.3987.163","8.2.2":"80.0.3987.163","8.2.3":"80.0.3987.163","8.2.4":"80.0.3987.165","8.2.5":"80.0.3987.165","8.3.0":"80.0.3987.165","8.3.1":"80.0.3987.165","8.3.2":"80.0.3987.165","8.3.3":"80.0.3987.165","8.3.4":"80.0.3987.165","8.4.0":"80.0.3987.165","8.4.1":"80.0.3987.165","8.5.0":"80.0.3987.165","8.5.1":"80.0.3987.165","8.5.2":"80.0.3987.165","8.5.3":"80.0.3987.163","8.5.4":"80.0.3987.163","8.5.5":"80.0.3987.163","9.0.0-beta.1":"82.0.4048.0","9.0.0-beta.2":"82.0.4048.0","9.0.0-beta.3":"82.0.4048.0","9.0.0-beta.4":"82.0.4048.0","9.0.0-beta.5":"82.0.4048.0","9.0.0-beta.6":"82.0.4058.2","9.0.0-beta.7":"82.0.4058.2","9.0.0-beta.9":"82.0.4058.2","9.0.0-beta.10":"82.0.4085.10","9.0.0-beta.11":"82.0.4085.14","9.0.0-beta.12":"82.0.4085.14","9.0.0-beta.13":"82.0.4085.14","9.0.0-beta.14":"82.0.4085.27","9.0.0-beta.15":"83.0.4102.3","9.0.0-beta.16":"83.0.4102.3","9.0.0-beta.17":"83.0.4103.14","9.0.0-beta.18":"83.0.4103.16","9.0.0-beta.19":"83.0.4103.24","9.0.0-beta.20":"83.0.4103.26","9.0.0-beta.21":"83.0.4103.26","9.0.0-beta.22":"83.0.4103.34","9.0.0-beta.23":"83.0.4103.44","9.0.0-beta.24":"83.0.4103.45","9.0.0-nightly.20191121":"80.0.3954.0","9.0.0-nightly.20191122":"80.0.3954.0","9.0.0-nightly.20191123":"80.0.3954.0","9.0.0-nightly.20191124":"80.0.3954.0","9.0.0-nightly.20191126":"80.0.3954.0","9.0.0-nightly.20191128":"80.0.3954.0","9.0.0-nightly.20191129":"80.0.3954.0","9.0.0-nightly.20191130":"80.0.3954.0","9.0.0-nightly.20191201":"80.0.3954.0","9.0.0-nightly.20191202":"80.0.3954.0","9.0.0-nightly.20191203":"80.0.3954.0","9.0.0-nightly.20191204":"80.0.3954.0","9.0.0-nightly.20191205":"80.0.3954.0","9.0.0-nightly.20191210":"80.0.3954.0","9.0.0-nightly.20191220":"81.0.3994.0","9.0.0-nightly.20191221":"81.0.3994.0","9.0.0-nightly.20191222":"81.0.3994.0","9.0.0-nightly.20191223":"81.0.3994.0","9.0.0-nightly.20191224":"81.0.3994.0","9.0.0-nightly.20191225":"81.0.3994.0","9.0.0-nightly.20191226":"81.0.3994.0","9.0.0-nightly.20191228":"81.0.3994.0","9.0.0-nightly.20191229":"81.0.3994.0","9.0.0-nightly.20191230":"81.0.3994.0","9.0.0-nightly.20191231":"81.0.3994.0","9.0.0-nightly.20200101":"81.0.3994.0","9.0.0-nightly.20200103":"81.0.3994.0","9.0.0-nightly.20200104":"81.0.3994.0","9.0.0-nightly.20200105":"81.0.3994.0","9.0.0-nightly.20200106":"81.0.3994.0","9.0.0-nightly.20200108":"81.0.3994.0","9.0.0-nightly.20200109":"81.0.3994.0","9.0.0-nightly.20200110":"81.0.3994.0","9.0.0-nightly.20200111":"81.0.3994.0","9.0.0-nightly.20200113":"81.0.3994.0","9.0.0-nightly.20200115":"81.0.3994.0","9.0.0-nightly.20200116":"81.0.3994.0","9.0.0-nightly.20200117":"81.0.3994.0","9.0.0-nightly.20200119":"81.0.4030.0","9.0.0-nightly.20200121":"81.0.4030.0","9.0.0":"83.0.4103.64","9.0.1":"83.0.4103.94","9.0.2":"83.0.4103.94","9.0.3":"83.0.4103.100","9.0.4":"83.0.4103.104","9.0.5":"83.0.4103.119","9.1.0":"83.0.4103.122","9.1.1":"83.0.4103.122","9.1.2":"83.0.4103.122","9.2.0":"83.0.4103.122","9.2.1":"83.0.4103.122","9.3.0":"83.0.4103.122","9.3.1":"83.0.4103.122","9.3.2":"83.0.4103.122","9.3.3":"83.0.4103.122","9.3.4":"83.0.4103.122","9.3.5":"83.0.4103.122","9.4.0":"83.0.4103.122","9.4.1":"83.0.4103.122","9.4.2":"83.0.4103.122","9.4.3":"83.0.4103.122","9.4.4":"83.0.4103.122","10.0.0-beta.1":"84.0.4129.0","10.0.0-beta.2":"84.0.4129.0","10.0.0-beta.3":"85.0.4161.2","10.0.0-beta.4":"85.0.4161.2","10.0.0-beta.8":"85.0.4181.1","10.0.0-beta.9":"85.0.4181.1","10.0.0-beta.10":"85.0.4183.19","10.0.0-beta.11":"85.0.4183.20","10.0.0-beta.12":"85.0.4183.26","10.0.0-beta.13":"85.0.4183.39","10.0.0-beta.14":"85.0.4183.39","10.0.0-beta.15":"85.0.4183.39","10.0.0-beta.17":"85.0.4183.39","10.0.0-beta.19":"85.0.4183.39","10.0.0-beta.20":"85.0.4183.39","10.0.0-beta.21":"85.0.4183.39","10.0.0-beta.23":"85.0.4183.70","10.0.0-beta.24":"85.0.4183.78","10.0.0-beta.25":"85.0.4183.80","10.0.0-nightly.20200209":"82.0.4050.0","10.0.0-nightly.20200210":"82.0.4050.0","10.0.0-nightly.20200211":"82.0.4050.0","10.0.0-nightly.20200216":"82.0.4050.0","10.0.0-nightly.20200217":"82.0.4050.0","10.0.0-nightly.20200218":"82.0.4050.0","10.0.0-nightly.20200221":"82.0.4050.0","10.0.0-nightly.20200222":"82.0.4050.0","10.0.0-nightly.20200223":"82.0.4050.0","10.0.0-nightly.20200226":"82.0.4050.0","10.0.0-nightly.20200303":"82.0.4050.0","10.0.0-nightly.20200304":"82.0.4076.0","10.0.0-nightly.20200305":"82.0.4076.0","10.0.0-nightly.20200306":"82.0.4076.0","10.0.0-nightly.20200309":"82.0.4076.0","10.0.0-nightly.20200310":"82.0.4076.0","10.0.0-nightly.20200311":"82.0.4083.0","10.0.0-nightly.20200316":"83.0.4086.0","10.0.0-nightly.20200317":"83.0.4087.0","10.0.0-nightly.20200318":"83.0.4087.0","10.0.0-nightly.20200320":"83.0.4087.0","10.0.0-nightly.20200323":"83.0.4087.0","10.0.0-nightly.20200324":"83.0.4087.0","10.0.0-nightly.20200325":"83.0.4087.0","10.0.0-nightly.20200326":"83.0.4087.0","10.0.0-nightly.20200327":"83.0.4087.0","10.0.0-nightly.20200330":"83.0.4087.0","10.0.0-nightly.20200331":"83.0.4087.0","10.0.0-nightly.20200401":"83.0.4087.0","10.0.0-nightly.20200402":"83.0.4087.0","10.0.0-nightly.20200403":"83.0.4087.0","10.0.0-nightly.20200406":"83.0.4087.0","10.0.0-nightly.20200408":"83.0.4095.0","10.0.0-nightly.20200410":"83.0.4095.0","10.0.0-nightly.20200413":"83.0.4095.0","10.0.0-nightly.20200414":"84.0.4114.0","10.0.0-nightly.20200415":"84.0.4115.0","10.0.0-nightly.20200416":"84.0.4115.0","10.0.0-nightly.20200417":"84.0.4115.0","10.0.0-nightly.20200422":"84.0.4121.0","10.0.0-nightly.20200423":"84.0.4121.0","10.0.0-nightly.20200427":"84.0.4125.0","10.0.0-nightly.20200428":"84.0.4125.0","10.0.0-nightly.20200429":"84.0.4125.0","10.0.0-nightly.20200430":"84.0.4125.0","10.0.0-nightly.20200501":"84.0.4129.0","10.0.0-nightly.20200504":"84.0.4129.0","10.0.0-nightly.20200505":"84.0.4129.0","10.0.0-nightly.20200506":"84.0.4129.0","10.0.0-nightly.20200507":"84.0.4129.0","10.0.0-nightly.20200508":"84.0.4129.0","10.0.0-nightly.20200511":"84.0.4129.0","10.0.0-nightly.20200512":"84.0.4129.0","10.0.0-nightly.20200513":"84.0.4129.0","10.0.0-nightly.20200514":"84.0.4129.0","10.0.0-nightly.20200515":"84.0.4129.0","10.0.0-nightly.20200518":"84.0.4129.0","10.0.0-nightly.20200519":"84.0.4129.0","10.0.0-nightly.20200520":"84.0.4129.0","10.0.0-nightly.20200521":"84.0.4129.0","10.0.0":"85.0.4183.84","10.0.1":"85.0.4183.86","10.1.0":"85.0.4183.87","10.1.1":"85.0.4183.93","10.1.2":"85.0.4183.98","10.1.3":"85.0.4183.121","10.1.4":"85.0.4183.121","10.1.5":"85.0.4183.121","10.1.6":"85.0.4183.121","10.1.7":"85.0.4183.121","10.2.0":"85.0.4183.121","10.3.0":"85.0.4183.121","10.3.1":"85.0.4183.121","10.3.2":"85.0.4183.121","10.4.0":"85.0.4183.121","10.4.1":"85.0.4183.121","10.4.2":"85.0.4183.121","10.4.3":"85.0.4183.121","10.4.4":"85.0.4183.121","10.4.5":"85.0.4183.121","10.4.6":"85.0.4183.121","10.4.7":"85.0.4183.121","11.0.0-beta.1":"86.0.4234.0","11.0.0-beta.3":"86.0.4234.0","11.0.0-beta.4":"86.0.4234.0","11.0.0-beta.5":"86.0.4234.0","11.0.0-beta.6":"86.0.4234.0","11.0.0-beta.7":"86.0.4234.0","11.0.0-beta.8":"87.0.4251.1","11.0.0-beta.9":"87.0.4251.1","11.0.0-beta.11":"87.0.4251.1","11.0.0-beta.12":"87.0.4280.11","11.0.0-beta.13":"87.0.4280.11","11.0.0-beta.16":"87.0.4280.27","11.0.0-beta.17":"87.0.4280.27","11.0.0-beta.18":"87.0.4280.27","11.0.0-beta.19":"87.0.4280.27","11.0.0-beta.20":"87.0.4280.40","11.0.0-beta.22":"87.0.4280.47","11.0.0-beta.23":"87.0.4280.47","11.0.0-nightly.20200525":"84.0.4129.0","11.0.0-nightly.20200526":"84.0.4129.0","11.0.0-nightly.20200529":"85.0.4156.0","11.0.0-nightly.20200602":"85.0.4162.0","11.0.0-nightly.20200603":"85.0.4162.0","11.0.0-nightly.20200604":"85.0.4162.0","11.0.0-nightly.20200609":"85.0.4162.0","11.0.0-nightly.20200610":"85.0.4162.0","11.0.0-nightly.20200611":"85.0.4162.0","11.0.0-nightly.20200615":"85.0.4162.0","11.0.0-nightly.20200616":"85.0.4162.0","11.0.0-nightly.20200617":"85.0.4162.0","11.0.0-nightly.20200618":"85.0.4162.0","11.0.0-nightly.20200619":"85.0.4162.0","11.0.0-nightly.20200701":"85.0.4179.0","11.0.0-nightly.20200702":"85.0.4179.0","11.0.0-nightly.20200703":"85.0.4179.0","11.0.0-nightly.20200706":"85.0.4179.0","11.0.0-nightly.20200707":"85.0.4179.0","11.0.0-nightly.20200708":"85.0.4179.0","11.0.0-nightly.20200709":"85.0.4179.0","11.0.0-nightly.20200716":"86.0.4203.0","11.0.0-nightly.20200717":"86.0.4203.0","11.0.0-nightly.20200720":"86.0.4203.0","11.0.0-nightly.20200721":"86.0.4203.0","11.0.0-nightly.20200723":"86.0.4209.0","11.0.0-nightly.20200724":"86.0.4209.0","11.0.0-nightly.20200729":"86.0.4209.0","11.0.0-nightly.20200730":"86.0.4209.0","11.0.0-nightly.20200731":"86.0.4209.0","11.0.0-nightly.20200803":"86.0.4209.0","11.0.0-nightly.20200804":"86.0.4209.0","11.0.0-nightly.20200805":"86.0.4209.0","11.0.0-nightly.20200811":"86.0.4209.0","11.0.0-nightly.20200812":"86.0.4209.0","11.0.0-nightly.20200822":"86.0.4234.0","11.0.0-nightly.20200824":"86.0.4234.0","11.0.0-nightly.20200825":"86.0.4234.0","11.0.0-nightly.20200826":"86.0.4234.0","11.0.0":"87.0.4280.60","11.0.1":"87.0.4280.60","11.0.2":"87.0.4280.67","11.0.3":"87.0.4280.67","11.0.4":"87.0.4280.67","11.0.5":"87.0.4280.88","11.1.0":"87.0.4280.88","11.1.1":"87.0.4280.88","11.2.0":"87.0.4280.141","11.2.1":"87.0.4280.141","11.2.2":"87.0.4280.141","11.2.3":"87.0.4280.141","11.3.0":"87.0.4280.141","11.4.0":"87.0.4280.141","11.4.1":"87.0.4280.141","11.4.2":"87.0.4280.141","11.4.3":"87.0.4280.141","11.4.4":"87.0.4280.141","11.4.5":"87.0.4280.141","11.4.6":"87.0.4280.141","11.4.7":"87.0.4280.141","11.4.8":"87.0.4280.141","11.4.9":"87.0.4280.141","11.4.10":"87.0.4280.141","11.4.11":"87.0.4280.141","11.4.12":"87.0.4280.141","11.5.0":"87.0.4280.141","12.0.0-beta.1":"89.0.4328.0","12.0.0-beta.3":"89.0.4328.0","12.0.0-beta.4":"89.0.4328.0","12.0.0-beta.5":"89.0.4328.0","12.0.0-beta.6":"89.0.4328.0","12.0.0-beta.7":"89.0.4328.0","12.0.0-beta.8":"89.0.4328.0","12.0.0-beta.9":"89.0.4328.0","12.0.0-beta.10":"89.0.4328.0","12.0.0-beta.11":"89.0.4328.0","12.0.0-beta.12":"89.0.4328.0","12.0.0-beta.14":"89.0.4328.0","12.0.0-beta.16":"89.0.4348.1","12.0.0-beta.18":"89.0.4348.1","12.0.0-beta.19":"89.0.4348.1","12.0.0-beta.20":"89.0.4348.1","12.0.0-beta.21":"89.0.4388.2","12.0.0-beta.22":"89.0.4388.2","12.0.0-beta.23":"89.0.4388.2","12.0.0-beta.24":"89.0.4388.2","12.0.0-beta.25":"89.0.4388.2","12.0.0-beta.26":"89.0.4388.2","12.0.0-beta.27":"89.0.4389.23","12.0.0-beta.28":"89.0.4389.23","12.0.0-beta.29":"89.0.4389.23","12.0.0-beta.30":"89.0.4389.58","12.0.0-beta.31":"89.0.4389.58","12.0.0-nightly.20200827":"86.0.4234.0","12.0.0-nightly.20200831":"86.0.4234.0","12.0.0-nightly.20200902":"86.0.4234.0","12.0.0-nightly.20200903":"86.0.4234.0","12.0.0-nightly.20200907":"86.0.4234.0","12.0.0-nightly.20200910":"86.0.4234.0","12.0.0-nightly.20200911":"86.0.4234.0","12.0.0-nightly.20200914":"86.0.4234.0","12.0.0-nightly.20201002":"87.0.4268.0","12.0.0-nightly.20201007":"87.0.4268.0","12.0.0-nightly.20201009":"87.0.4268.0","12.0.0-nightly.20201012":"87.0.4268.0","12.0.0-nightly.20201013":"87.0.4268.0","12.0.0-nightly.20201014":"87.0.4268.0","12.0.0-nightly.20201015":"87.0.4268.0","12.0.0-nightly.20201023":"88.0.4292.0","12.0.0-nightly.20201026":"88.0.4292.0","12.0.0-nightly.20201030":"88.0.4306.0","12.0.0-nightly.20201102":"88.0.4306.0","12.0.0-nightly.20201103":"88.0.4306.0","12.0.0-nightly.20201104":"88.0.4306.0","12.0.0-nightly.20201105":"88.0.4306.0","12.0.0-nightly.20201106":"88.0.4306.0","12.0.0-nightly.20201111":"88.0.4306.0","12.0.0-nightly.20201112":"88.0.4306.0","12.0.0-nightly.20201116":"88.0.4324.0","12.0.0":"89.0.4389.69","12.0.1":"89.0.4389.82","12.0.2":"89.0.4389.90","12.0.3":"89.0.4389.114","12.0.4":"89.0.4389.114","12.0.5":"89.0.4389.128","12.0.6":"89.0.4389.128","12.0.7":"89.0.4389.128","12.0.8":"89.0.4389.128","12.0.9":"89.0.4389.128","12.0.10":"89.0.4389.128","12.0.11":"89.0.4389.128","12.0.12":"89.0.4389.128","12.0.13":"89.0.4389.128","12.0.14":"89.0.4389.128","12.0.15":"89.0.4389.128","12.0.16":"89.0.4389.128","12.0.17":"89.0.4389.128","12.0.18":"89.0.4389.128","12.1.0":"89.0.4389.128","12.1.1":"89.0.4389.128","12.1.2":"89.0.4389.128","12.2.0":"89.0.4389.128","12.2.1":"89.0.4389.128","12.2.2":"89.0.4389.128","12.2.3":"89.0.4389.128","13.0.0-beta.2":"90.0.4402.0","13.0.0-beta.3":"90.0.4402.0","13.0.0-beta.4":"90.0.4415.0","13.0.0-beta.5":"90.0.4415.0","13.0.0-beta.6":"90.0.4415.0","13.0.0-beta.7":"90.0.4415.0","13.0.0-beta.8":"90.0.4415.0","13.0.0-beta.9":"90.0.4415.0","13.0.0-beta.10":"90.0.4415.0","13.0.0-beta.11":"90.0.4415.0","13.0.0-beta.12":"90.0.4415.0","13.0.0-beta.13":"90.0.4415.0","13.0.0-beta.14":"91.0.4448.0","13.0.0-beta.16":"91.0.4448.0","13.0.0-beta.17":"91.0.4448.0","13.0.0-beta.18":"91.0.4448.0","13.0.0-beta.20":"91.0.4448.0","13.0.0-beta.21":"91.0.4472.33","13.0.0-beta.22":"91.0.4472.33","13.0.0-beta.23":"91.0.4472.33","13.0.0-beta.24":"91.0.4472.38","13.0.0-beta.25":"91.0.4472.38","13.0.0-beta.26":"91.0.4472.38","13.0.0-beta.27":"91.0.4472.38","13.0.0-beta.28":"91.0.4472.38","13.0.0-nightly.20201119":"89.0.4328.0","13.0.0-nightly.20201123":"89.0.4328.0","13.0.0-nightly.20201124":"89.0.4328.0","13.0.0-nightly.20201126":"89.0.4328.0","13.0.0-nightly.20201127":"89.0.4328.0","13.0.0-nightly.20201130":"89.0.4328.0","13.0.0-nightly.20201201":"89.0.4328.0","13.0.0-nightly.20201202":"89.0.4328.0","13.0.0-nightly.20201203":"89.0.4328.0","13.0.0-nightly.20201204":"89.0.4328.0","13.0.0-nightly.20201207":"89.0.4328.0","13.0.0-nightly.20201208":"89.0.4328.0","13.0.0-nightly.20201209":"89.0.4328.0","13.0.0-nightly.20201210":"89.0.4328.0","13.0.0-nightly.20201211":"89.0.4328.0","13.0.0-nightly.20201214":"89.0.4328.0","13.0.0-nightly.20201215":"89.0.4349.0","13.0.0-nightly.20201216":"89.0.4349.0","13.0.0-nightly.20201221":"89.0.4349.0","13.0.0-nightly.20201222":"89.0.4349.0","13.0.0-nightly.20201223":"89.0.4359.0","13.0.0-nightly.20210104":"89.0.4359.0","13.0.0-nightly.20210108":"89.0.4359.0","13.0.0-nightly.20210111":"89.0.4359.0","13.0.0-nightly.20210113":"89.0.4386.0","13.0.0-nightly.20210114":"89.0.4386.0","13.0.0-nightly.20210118":"89.0.4386.0","13.0.0-nightly.20210122":"89.0.4386.0","13.0.0-nightly.20210125":"89.0.4386.0","13.0.0-nightly.20210127":"89.0.4389.0","13.0.0-nightly.20210128":"89.0.4389.0","13.0.0-nightly.20210129":"89.0.4389.0","13.0.0-nightly.20210201":"89.0.4389.0","13.0.0-nightly.20210202":"89.0.4389.0","13.0.0-nightly.20210203":"89.0.4389.0","13.0.0-nightly.20210205":"89.0.4389.0","13.0.0-nightly.20210208":"89.0.4389.0","13.0.0-nightly.20210209":"89.0.4389.0","13.0.0-nightly.20210210":"90.0.4402.0","13.0.0-nightly.20210211":"90.0.4402.0","13.0.0-nightly.20210212":"90.0.4402.0","13.0.0-nightly.20210216":"90.0.4402.0","13.0.0-nightly.20210217":"90.0.4402.0","13.0.0-nightly.20210218":"90.0.4402.0","13.0.0-nightly.20210219":"90.0.4402.0","13.0.0-nightly.20210222":"90.0.4402.0","13.0.0-nightly.20210225":"90.0.4402.0","13.0.0-nightly.20210226":"90.0.4402.0","13.0.0-nightly.20210301":"90.0.4402.0","13.0.0-nightly.20210302":"90.0.4402.0","13.0.0-nightly.20210303":"90.0.4402.0","13.0.0":"91.0.4472.69","13.0.1":"91.0.4472.69","13.1.0":"91.0.4472.77","13.1.1":"91.0.4472.77","13.1.2":"91.0.4472.77","13.1.3":"91.0.4472.106","13.1.4":"91.0.4472.106","13.1.5":"91.0.4472.124","13.1.6":"91.0.4472.124","13.1.7":"91.0.4472.124","13.1.8":"91.0.4472.164","13.1.9":"91.0.4472.164","13.2.0":"91.0.4472.164","13.2.1":"91.0.4472.164","13.2.2":"91.0.4472.164","13.2.3":"91.0.4472.164","13.3.0":"91.0.4472.164","13.4.0":"91.0.4472.164","13.5.0":"91.0.4472.164","13.5.1":"91.0.4472.164","13.5.2":"91.0.4472.164","13.6.0":"91.0.4472.164","13.6.1":"91.0.4472.164","13.6.2":"91.0.4472.164","13.6.3":"91.0.4472.164","13.6.6":"91.0.4472.164","13.6.7":"91.0.4472.164","13.6.8":"91.0.4472.164","13.6.9":"91.0.4472.164","14.0.0-beta.1":"92.0.4511.0","14.0.0-beta.2":"92.0.4511.0","14.0.0-beta.3":"92.0.4511.0","14.0.0-beta.5":"93.0.4536.0","14.0.0-beta.6":"93.0.4536.0","14.0.0-beta.7":"93.0.4536.0","14.0.0-beta.8":"93.0.4536.0","14.0.0-beta.9":"93.0.4539.0","14.0.0-beta.10":"93.0.4539.0","14.0.0-beta.11":"93.0.4557.4","14.0.0-beta.12":"93.0.4557.4","14.0.0-beta.13":"93.0.4566.0","14.0.0-beta.14":"93.0.4566.0","14.0.0-beta.15":"93.0.4566.0","14.0.0-beta.16":"93.0.4566.0","14.0.0-beta.17":"93.0.4566.0","14.0.0-beta.18":"93.0.4577.15","14.0.0-beta.19":"93.0.4577.15","14.0.0-beta.20":"93.0.4577.15","14.0.0-beta.21":"93.0.4577.15","14.0.0-beta.22":"93.0.4577.25","14.0.0-beta.23":"93.0.4577.25","14.0.0-beta.24":"93.0.4577.51","14.0.0-beta.25":"93.0.4577.51","14.0.0-nightly.20210304":"90.0.4402.0","14.0.0-nightly.20210305":"90.0.4415.0","14.0.0-nightly.20210308":"90.0.4415.0","14.0.0-nightly.20210309":"90.0.4415.0","14.0.0-nightly.20210311":"90.0.4415.0","14.0.0-nightly.20210315":"90.0.4415.0","14.0.0-nightly.20210316":"90.0.4415.0","14.0.0-nightly.20210317":"90.0.4415.0","14.0.0-nightly.20210318":"90.0.4415.0","14.0.0-nightly.20210319":"90.0.4415.0","14.0.0-nightly.20210323":"90.0.4415.0","14.0.0-nightly.20210324":"90.0.4415.0","14.0.0-nightly.20210325":"90.0.4415.0","14.0.0-nightly.20210326":"90.0.4415.0","14.0.0-nightly.20210329":"90.0.4415.0","14.0.0-nightly.20210330":"90.0.4415.0","14.0.0-nightly.20210331":"91.0.4448.0","14.0.0-nightly.20210401":"91.0.4448.0","14.0.0-nightly.20210402":"91.0.4448.0","14.0.0-nightly.20210406":"91.0.4448.0","14.0.0-nightly.20210407":"91.0.4448.0","14.0.0-nightly.20210408":"91.0.4448.0","14.0.0-nightly.20210409":"91.0.4448.0","14.0.0-nightly.20210413":"91.0.4448.0","14.0.0-nightly.20210426":"92.0.4475.0","14.0.0-nightly.20210427":"92.0.4475.0","14.0.0-nightly.20210430":"92.0.4488.0","14.0.0-nightly.20210503":"92.0.4488.0","14.0.0-nightly.20210505":"92.0.4496.0","14.0.0-nightly.20210506":"92.0.4498.0","14.0.0-nightly.20210507":"92.0.4499.0","14.0.0-nightly.20210510":"92.0.4499.0","14.0.0-nightly.20210511":"92.0.4499.0","14.0.0-nightly.20210512":"92.0.4499.0","14.0.0-nightly.20210513":"92.0.4499.0","14.0.0-nightly.20210514":"92.0.4505.0","14.0.0-nightly.20210517":"92.0.4505.0","14.0.0-nightly.20210518":"92.0.4505.0","14.0.0-nightly.20210519":"92.0.4505.0","14.0.0-nightly.20210520":"92.0.4511.0","14.0.0-nightly.20210523":"92.0.4511.0","14.0.0-nightly.20210524":"92.0.4511.0","14.0.0":"93.0.4577.58","14.0.1":"93.0.4577.63","14.0.2":"93.0.4577.82","14.1.0":"93.0.4577.82","14.1.1":"93.0.4577.82","14.2.0":"93.0.4577.82","14.2.1":"93.0.4577.82","14.2.2":"93.0.4577.82","14.2.3":"93.0.4577.82","14.2.4":"93.0.4577.82","14.2.5":"93.0.4577.82","14.2.6":"93.0.4577.82","14.2.7":"93.0.4577.82","14.2.8":"93.0.4577.82","14.2.9":"93.0.4577.82","15.0.0-alpha.1":"93.0.4566.0","15.0.0-alpha.2":"93.0.4566.0","15.0.0-alpha.3":"94.0.4584.0","15.0.0-alpha.4":"94.0.4584.0","15.0.0-alpha.5":"94.0.4584.0","15.0.0-alpha.6":"94.0.4584.0","15.0.0-alpha.7":"94.0.4590.2","15.0.0-alpha.8":"94.0.4590.2","15.0.0-alpha.9":"94.0.4590.2","15.0.0-alpha.10":"94.0.4606.12","15.0.0-beta.1":"94.0.4606.20","15.0.0-beta.2":"94.0.4606.20","15.0.0-beta.3":"94.0.4606.31","15.0.0-beta.4":"94.0.4606.31","15.0.0-beta.5":"94.0.4606.31","15.0.0-beta.6":"94.0.4606.31","15.0.0-beta.7":"94.0.4606.31","15.0.0-nightly.20210527":"92.0.4511.0","15.0.0-nightly.20210528":"92.0.4511.0","15.0.0-nightly.20210531":"92.0.4511.0","15.0.0-nightly.20210601":"92.0.4511.0","15.0.0-nightly.20210602":"92.0.4511.0","15.0.0-nightly.20210603":"93.0.4530.0","15.0.0-nightly.20210604":"93.0.4530.0","15.0.0-nightly.20210608":"93.0.4535.0","15.0.0-nightly.20210609":"93.0.4536.0","15.0.0-nightly.20210610":"93.0.4536.0","15.0.0-nightly.20210611":"93.0.4536.0","15.0.0-nightly.20210614":"93.0.4536.0","15.0.0-nightly.20210615":"93.0.4536.0","15.0.0-nightly.20210616":"93.0.4536.0","15.0.0-nightly.20210617":"93.0.4539.0","15.0.0-nightly.20210618":"93.0.4539.0","15.0.0-nightly.20210621":"93.0.4539.0","15.0.0-nightly.20210622":"93.0.4539.0","15.0.0-nightly.20210623":"93.0.4550.0","15.0.0-nightly.20210624":"93.0.4550.0","15.0.0-nightly.20210625":"93.0.4552.0","15.0.0-nightly.20210628":"93.0.4552.0","15.0.0-nightly.20210629":"93.0.4552.0","15.0.0-nightly.20210630":"93.0.4558.0","15.0.0-nightly.20210701":"93.0.4558.0","15.0.0-nightly.20210702":"93.0.4558.0","15.0.0-nightly.20210705":"93.0.4558.0","15.0.0-nightly.20210706":"93.0.4566.0","15.0.0-nightly.20210707":"93.0.4566.0","15.0.0-nightly.20210708":"93.0.4566.0","15.0.0-nightly.20210709":"93.0.4566.0","15.0.0-nightly.20210712":"93.0.4566.0","15.0.0-nightly.20210713":"93.0.4566.0","15.0.0-nightly.20210714":"93.0.4566.0","15.0.0-nightly.20210715":"93.0.4566.0","15.0.0-nightly.20210716":"93.0.4566.0","15.0.0-nightly.20210719":"93.0.4566.0","15.0.0-nightly.20210720":"93.0.4566.0","15.0.0-nightly.20210721":"93.0.4566.0","15.0.0":"94.0.4606.51","15.1.0":"94.0.4606.61","15.1.1":"94.0.4606.61","15.1.2":"94.0.4606.71","15.2.0":"94.0.4606.81","15.3.0":"94.0.4606.81","15.3.1":"94.0.4606.81","15.3.2":"94.0.4606.81","15.3.3":"94.0.4606.81","15.3.4":"94.0.4606.81","15.3.5":"94.0.4606.81","15.3.6":"94.0.4606.81","15.3.7":"94.0.4606.81","15.4.0":"94.0.4606.81","15.4.1":"94.0.4606.81","15.4.2":"94.0.4606.81","15.5.0":"94.0.4606.81","15.5.1":"94.0.4606.81","15.5.2":"94.0.4606.81","15.5.3":"94.0.4606.81","15.5.4":"94.0.4606.81","15.5.5":"94.0.4606.81","15.5.6":"94.0.4606.81","15.5.7":"94.0.4606.81","16.0.0-alpha.1":"95.0.4629.0","16.0.0-alpha.2":"95.0.4629.0","16.0.0-alpha.3":"95.0.4629.0","16.0.0-alpha.4":"95.0.4629.0","16.0.0-alpha.5":"95.0.4629.0","16.0.0-alpha.6":"95.0.4629.0","16.0.0-alpha.7":"95.0.4629.0","16.0.0-alpha.8":"96.0.4647.0","16.0.0-alpha.9":"96.0.4647.0","16.0.0-beta.1":"96.0.4647.0","16.0.0-beta.2":"96.0.4647.0","16.0.0-beta.3":"96.0.4647.0","16.0.0-beta.4":"96.0.4664.18","16.0.0-beta.5":"96.0.4664.18","16.0.0-beta.6":"96.0.4664.27","16.0.0-beta.7":"96.0.4664.27","16.0.0-beta.8":"96.0.4664.35","16.0.0-beta.9":"96.0.4664.35","16.0.0-nightly.20210722":"93.0.4566.0","16.0.0-nightly.20210723":"93.0.4566.0","16.0.0-nightly.20210726":"93.0.4566.0","16.0.0-nightly.20210727":"94.0.4584.0","16.0.0-nightly.20210728":"94.0.4584.0","16.0.0-nightly.20210729":"94.0.4584.0","16.0.0-nightly.20210730":"94.0.4584.0","16.0.0-nightly.20210802":"94.0.4584.0","16.0.0-nightly.20210803":"94.0.4584.0","16.0.0-nightly.20210804":"94.0.4584.0","16.0.0-nightly.20210805":"94.0.4584.0","16.0.0-nightly.20210806":"94.0.4584.0","16.0.0-nightly.20210809":"94.0.4584.0","16.0.0-nightly.20210810":"94.0.4584.0","16.0.0-nightly.20210811":"94.0.4584.0","16.0.0-nightly.20210812":"94.0.4590.2","16.0.0-nightly.20210813":"94.0.4590.2","16.0.0-nightly.20210816":"94.0.4590.2","16.0.0-nightly.20210817":"94.0.4590.2","16.0.0-nightly.20210818":"94.0.4590.2","16.0.0-nightly.20210819":"94.0.4590.2","16.0.0-nightly.20210820":"94.0.4590.2","16.0.0-nightly.20210823":"94.0.4590.2","16.0.0-nightly.20210824":"95.0.4612.5","16.0.0-nightly.20210825":"95.0.4612.5","16.0.0-nightly.20210826":"95.0.4612.5","16.0.0-nightly.20210827":"95.0.4612.5","16.0.0-nightly.20210830":"95.0.4612.5","16.0.0-nightly.20210831":"95.0.4612.5","16.0.0-nightly.20210901":"95.0.4612.5","16.0.0-nightly.20210902":"95.0.4629.0","16.0.0-nightly.20210903":"95.0.4629.0","16.0.0-nightly.20210906":"95.0.4629.0","16.0.0-nightly.20210907":"95.0.4629.0","16.0.0-nightly.20210908":"95.0.4629.0","16.0.0-nightly.20210909":"95.0.4629.0","16.0.0-nightly.20210910":"95.0.4629.0","16.0.0-nightly.20210913":"95.0.4629.0","16.0.0-nightly.20210914":"95.0.4629.0","16.0.0-nightly.20210915":"95.0.4629.0","16.0.0-nightly.20210916":"95.0.4629.0","16.0.0-nightly.20210917":"95.0.4629.0","16.0.0-nightly.20210920":"95.0.4629.0","16.0.0-nightly.20210921":"95.0.4629.0","16.0.0-nightly.20210922":"95.0.4629.0","16.0.0":"96.0.4664.45","16.0.1":"96.0.4664.45","16.0.2":"96.0.4664.55","16.0.3":"96.0.4664.55","16.0.4":"96.0.4664.55","16.0.5":"96.0.4664.55","16.0.6":"96.0.4664.110","16.0.7":"96.0.4664.110","16.0.8":"96.0.4664.110","16.0.9":"96.0.4664.174","16.0.10":"96.0.4664.174","16.1.0":"96.0.4664.174","16.1.1":"96.0.4664.174","16.2.0":"96.0.4664.174","16.2.1":"96.0.4664.174","16.2.2":"96.0.4664.174","16.2.3":"96.0.4664.174","16.2.4":"96.0.4664.174","16.2.5":"96.0.4664.174","16.2.6":"96.0.4664.174","16.2.7":"96.0.4664.174","16.2.8":"96.0.4664.174","17.0.0-alpha.1":"96.0.4664.4","17.0.0-alpha.2":"96.0.4664.4","17.0.0-alpha.3":"96.0.4664.4","17.0.0-alpha.4":"98.0.4706.0","17.0.0-alpha.5":"98.0.4706.0","17.0.0-alpha.6":"98.0.4706.0","17.0.0-beta.1":"98.0.4706.0","17.0.0-beta.2":"98.0.4706.0","17.0.0-beta.3":"98.0.4758.9","17.0.0-beta.4":"98.0.4758.11","17.0.0-beta.5":"98.0.4758.11","17.0.0-beta.6":"98.0.4758.11","17.0.0-beta.7":"98.0.4758.11","17.0.0-beta.8":"98.0.4758.11","17.0.0-beta.9":"98.0.4758.11","17.0.0-nightly.20210923":"95.0.4629.0","17.0.0-nightly.20210924":"95.0.4629.0","17.0.0-nightly.20210927":"95.0.4629.0","17.0.0-nightly.20210928":"95.0.4629.0","17.0.0-nightly.20210929":"95.0.4629.0","17.0.0-nightly.20210930":"95.0.4629.0","17.0.0-nightly.20211001":"95.0.4629.0","17.0.0-nightly.20211004":"95.0.4629.0","17.0.0-nightly.20211005":"95.0.4629.0","17.0.0-nightly.20211006":"96.0.4647.0","17.0.0-nightly.20211007":"96.0.4647.0","17.0.0-nightly.20211008":"96.0.4647.0","17.0.0-nightly.20211011":"96.0.4647.0","17.0.0-nightly.20211012":"96.0.4647.0","17.0.0-nightly.20211013":"96.0.4647.0","17.0.0-nightly.20211014":"96.0.4647.0","17.0.0-nightly.20211015":"96.0.4647.0","17.0.0-nightly.20211018":"96.0.4647.0","17.0.0-nightly.20211019":"96.0.4647.0","17.0.0-nightly.20211020":"96.0.4647.0","17.0.0-nightly.20211021":"96.0.4647.0","17.0.0-nightly.20211022":"96.0.4664.4","17.0.0-nightly.20211025":"96.0.4664.4","17.0.0-nightly.20211026":"96.0.4664.4","17.0.0-nightly.20211027":"96.0.4664.4","17.0.0-nightly.20211028":"96.0.4664.4","17.0.0-nightly.20211029":"96.0.4664.4","17.0.0-nightly.20211101":"96.0.4664.4","17.0.0-nightly.20211102":"96.0.4664.4","17.0.0-nightly.20211103":"96.0.4664.4","17.0.0-nightly.20211104":"96.0.4664.4","17.0.0-nightly.20211105":"96.0.4664.4","17.0.0-nightly.20211108":"96.0.4664.4","17.0.0-nightly.20211109":"96.0.4664.4","17.0.0-nightly.20211110":"96.0.4664.4","17.0.0-nightly.20211111":"96.0.4664.4","17.0.0-nightly.20211112":"96.0.4664.4","17.0.0-nightly.20211115":"96.0.4664.4","17.0.0-nightly.20211116":"96.0.4664.4","17.0.0-nightly.20211117":"96.0.4664.4","17.0.0":"98.0.4758.74","17.0.1":"98.0.4758.82","17.1.0":"98.0.4758.102","17.1.1":"98.0.4758.109","17.1.2":"98.0.4758.109","17.2.0":"98.0.4758.109","17.3.0":"98.0.4758.141","17.3.1":"98.0.4758.141","17.4.0":"98.0.4758.141","17.4.1":"98.0.4758.141","17.4.2":"98.0.4758.141","17.4.3":"98.0.4758.141","17.4.4":"98.0.4758.141","17.4.5":"98.0.4758.141","17.4.6":"98.0.4758.141","17.4.7":"98.0.4758.141","17.4.8":"98.0.4758.141","17.4.9":"98.0.4758.141","17.4.10":"98.0.4758.141","17.4.11":"98.0.4758.141","18.0.0-alpha.1":"99.0.4767.0","18.0.0-alpha.2":"99.0.4767.0","18.0.0-alpha.3":"99.0.4767.0","18.0.0-alpha.4":"99.0.4767.0","18.0.0-alpha.5":"99.0.4767.0","18.0.0-beta.1":"100.0.4894.0","18.0.0-beta.2":"100.0.4894.0","18.0.0-beta.3":"100.0.4894.0","18.0.0-beta.4":"100.0.4894.0","18.0.0-beta.5":"100.0.4894.0","18.0.0-beta.6":"100.0.4894.0","18.0.0-nightly.20211118":"96.0.4664.4","18.0.0-nightly.20211119":"96.0.4664.4","18.0.0-nightly.20211122":"96.0.4664.4","18.0.0-nightly.20211123":"96.0.4664.4","18.0.0-nightly.20211124":"98.0.4706.0","18.0.0-nightly.20211125":"98.0.4706.0","18.0.0-nightly.20211126":"98.0.4706.0","18.0.0-nightly.20211129":"98.0.4706.0","18.0.0-nightly.20211130":"98.0.4706.0","18.0.0-nightly.20211201":"98.0.4706.0","18.0.0-nightly.20211202":"98.0.4706.0","18.0.0-nightly.20211203":"98.0.4706.0","18.0.0-nightly.20211206":"98.0.4706.0","18.0.0-nightly.20211207":"98.0.4706.0","18.0.0-nightly.20211208":"98.0.4706.0","18.0.0-nightly.20211209":"98.0.4706.0","18.0.0-nightly.20211210":"98.0.4706.0","18.0.0-nightly.20211213":"98.0.4706.0","18.0.0-nightly.20211214":"98.0.4706.0","18.0.0-nightly.20211215":"98.0.4706.0","18.0.0-nightly.20211216":"98.0.4706.0","18.0.0-nightly.20211217":"98.0.4706.0","18.0.0-nightly.20211220":"98.0.4706.0","18.0.0-nightly.20211221":"98.0.4706.0","18.0.0-nightly.20211222":"98.0.4706.0","18.0.0-nightly.20211223":"98.0.4706.0","18.0.0-nightly.20211228":"98.0.4706.0","18.0.0-nightly.20211229":"98.0.4706.0","18.0.0-nightly.20211231":"98.0.4706.0","18.0.0-nightly.20220103":"98.0.4706.0","18.0.0-nightly.20220104":"98.0.4706.0","18.0.0-nightly.20220105":"98.0.4706.0","18.0.0-nightly.20220106":"98.0.4706.0","18.0.0-nightly.20220107":"98.0.4706.0","18.0.0-nightly.20220110":"98.0.4706.0","18.0.0-nightly.20220111":"99.0.4767.0","18.0.0-nightly.20220112":"99.0.4767.0","18.0.0-nightly.20220113":"99.0.4767.0","18.0.0-nightly.20220114":"99.0.4767.0","18.0.0-nightly.20220117":"99.0.4767.0","18.0.0-nightly.20220118":"99.0.4767.0","18.0.0-nightly.20220119":"99.0.4767.0","18.0.0-nightly.20220121":"99.0.4767.0","18.0.0-nightly.20220124":"99.0.4767.0","18.0.0-nightly.20220125":"99.0.4767.0","18.0.0-nightly.20220127":"99.0.4767.0","18.0.0-nightly.20220128":"99.0.4767.0","18.0.0-nightly.20220131":"99.0.4767.0","18.0.0-nightly.20220201":"99.0.4767.0","18.0.0":"100.0.4896.56","18.0.1":"100.0.4896.60","18.0.2":"100.0.4896.60","18.0.3":"100.0.4896.75","18.0.4":"100.0.4896.75","18.1.0":"100.0.4896.127","18.2.0":"100.0.4896.143","18.2.1":"100.0.4896.143","18.2.2":"100.0.4896.143","18.2.3":"100.0.4896.143","18.2.4":"100.0.4896.160","18.3.0":"100.0.4896.160","18.3.1":"100.0.4896.160","18.3.2":"100.0.4896.160","18.3.3":"100.0.4896.160","18.3.4":"100.0.4896.160","18.3.5":"100.0.4896.160","18.3.6":"100.0.4896.160","18.3.7":"100.0.4896.160","18.3.8":"100.0.4896.160","18.3.9":"100.0.4896.160","18.3.11":"100.0.4896.160","18.3.12":"100.0.4896.160","18.3.13":"100.0.4896.160","18.3.14":"100.0.4896.160","18.3.15":"100.0.4896.160","19.0.0-alpha.1":"102.0.4962.3","19.0.0-alpha.2":"102.0.4971.0","19.0.0-alpha.3":"102.0.4971.0","19.0.0-alpha.4":"102.0.4989.0","19.0.0-alpha.5":"102.0.4989.0","19.0.0-beta.1":"102.0.4999.0","19.0.0-beta.2":"102.0.4999.0","19.0.0-beta.3":"102.0.4999.0","19.0.0-beta.4":"102.0.5005.27","19.0.0-beta.5":"102.0.5005.40","19.0.0-beta.6":"102.0.5005.40","19.0.0-beta.7":"102.0.5005.40","19.0.0-beta.8":"102.0.5005.49","19.0.0-nightly.20220202":"99.0.4767.0","19.0.0-nightly.20220203":"99.0.4767.0","19.0.0-nightly.20220204":"99.0.4767.0","19.0.0-nightly.20220207":"99.0.4767.0","19.0.0-nightly.20220208":"99.0.4767.0","19.0.0-nightly.20220209":"99.0.4767.0","19.0.0-nightly.20220308":"100.0.4894.0","19.0.0-nightly.20220309":"100.0.4894.0","19.0.0-nightly.20220310":"100.0.4894.0","19.0.0-nightly.20220311":"100.0.4894.0","19.0.0-nightly.20220314":"100.0.4894.0","19.0.0-nightly.20220315":"100.0.4894.0","19.0.0-nightly.20220316":"100.0.4894.0","19.0.0-nightly.20220317":"100.0.4894.0","19.0.0-nightly.20220318":"100.0.4894.0","19.0.0-nightly.20220321":"100.0.4894.0","19.0.0-nightly.20220322":"100.0.4894.0","19.0.0-nightly.20220323":"100.0.4894.0","19.0.0-nightly.20220324":"100.0.4894.0","19.0.0-nightly.20220325":"102.0.4961.0","19.0.0-nightly.20220328":"102.0.4962.3","19.0.0-nightly.20220329":"102.0.4962.3","19.0.0":"102.0.5005.61","19.0.1":"102.0.5005.61","19.0.2":"102.0.5005.63","19.0.3":"102.0.5005.63","19.0.4":"102.0.5005.63","19.0.5":"102.0.5005.115","19.0.6":"102.0.5005.115","19.0.7":"102.0.5005.134","19.0.8":"102.0.5005.148","19.0.9":"102.0.5005.167","19.0.10":"102.0.5005.167","19.0.11":"102.0.5005.167","19.0.12":"102.0.5005.167","19.0.13":"102.0.5005.167","19.0.14":"102.0.5005.167","19.0.15":"102.0.5005.167","19.0.16":"102.0.5005.167","19.0.17":"102.0.5005.167","19.1.0":"102.0.5005.167","19.1.1":"102.0.5005.167","19.1.2":"102.0.5005.167","19.1.3":"102.0.5005.167","19.1.4":"102.0.5005.167","19.1.5":"102.0.5005.167","19.1.6":"102.0.5005.167","19.1.7":"102.0.5005.167","19.1.8":"102.0.5005.167","19.1.9":"102.0.5005.167","20.0.0-alpha.1":"103.0.5044.0","20.0.0-alpha.2":"104.0.5073.0","20.0.0-alpha.3":"104.0.5073.0","20.0.0-alpha.4":"104.0.5073.0","20.0.0-alpha.5":"104.0.5073.0","20.0.0-alpha.6":"104.0.5073.0","20.0.0-alpha.7":"104.0.5073.0","20.0.0-beta.1":"104.0.5073.0","20.0.0-beta.2":"104.0.5073.0","20.0.0-beta.3":"104.0.5073.0","20.0.0-beta.4":"104.0.5073.0","20.0.0-beta.5":"104.0.5073.0","20.0.0-beta.6":"104.0.5073.0","20.0.0-beta.7":"104.0.5073.0","20.0.0-beta.8":"104.0.5073.0","20.0.0-beta.9":"104.0.5112.39","20.0.0-beta.10":"104.0.5112.48","20.0.0-beta.11":"104.0.5112.48","20.0.0-beta.12":"104.0.5112.48","20.0.0-beta.13":"104.0.5112.57","20.0.0-nightly.20220330":"102.0.4962.3","20.0.0-nightly.20220411":"102.0.4971.0","20.0.0-nightly.20220414":"102.0.4989.0","20.0.0-nightly.20220415":"102.0.4989.0","20.0.0-nightly.20220418":"102.0.4989.0","20.0.0-nightly.20220419":"102.0.4989.0","20.0.0-nightly.20220420":"102.0.4989.0","20.0.0-nightly.20220421":"102.0.4989.0","20.0.0-nightly.20220425":"102.0.4999.0","20.0.0-nightly.20220426":"102.0.4999.0","20.0.0-nightly.20220427":"102.0.4999.0","20.0.0-nightly.20220428":"102.0.4999.0","20.0.0-nightly.20220429":"102.0.4999.0","20.0.0-nightly.20220502":"102.0.4999.0","20.0.0-nightly.20220503":"102.0.4999.0","20.0.0-nightly.20220504":"102.0.4999.0","20.0.0-nightly.20220505":"102.0.4999.0","20.0.0-nightly.20220506":"102.0.4999.0","20.0.0-nightly.20220509":"102.0.4999.0","20.0.0-nightly.20220511":"102.0.4999.0","20.0.0-nightly.20220512":"102.0.4999.0","20.0.0-nightly.20220513":"102.0.4999.0","20.0.0-nightly.20220516":"102.0.4999.0","20.0.0-nightly.20220517":"102.0.4999.0","20.0.0-nightly.20220518":"103.0.5044.0","20.0.0-nightly.20220519":"103.0.5044.0","20.0.0-nightly.20220520":"103.0.5044.0","20.0.0-nightly.20220523":"103.0.5044.0","20.0.0-nightly.20220524":"103.0.5044.0","20.0.0":"104.0.5112.65","20.0.1":"104.0.5112.81","20.0.2":"104.0.5112.81","20.0.3":"104.0.5112.81","20.1.0":"104.0.5112.102","20.1.1":"104.0.5112.102","20.1.2":"104.0.5112.114","20.1.3":"104.0.5112.114","20.1.4":"104.0.5112.114","20.2.0":"104.0.5112.124","20.3.0":"104.0.5112.124","20.3.1":"104.0.5112.124","20.3.2":"104.0.5112.124","20.3.3":"104.0.5112.124","20.3.4":"104.0.5112.124","20.3.5":"104.0.5112.124","20.3.6":"104.0.5112.124","20.3.7":"104.0.5112.124","20.3.8":"104.0.5112.124","20.3.9":"104.0.5112.124","20.3.10":"104.0.5112.124","20.3.11":"104.0.5112.124","20.3.12":"104.0.5112.124","21.0.0-alpha.1":"105.0.5187.0","21.0.0-alpha.2":"105.0.5187.0","21.0.0-alpha.3":"105.0.5187.0","21.0.0-alpha.4":"105.0.5187.0","21.0.0-alpha.5":"105.0.5187.0","21.0.0-alpha.6":"106.0.5216.0","21.0.0-beta.1":"106.0.5216.0","21.0.0-beta.2":"106.0.5216.0","21.0.0-beta.3":"106.0.5216.0","21.0.0-beta.4":"106.0.5216.0","21.0.0-beta.5":"106.0.5216.0","21.0.0-beta.6":"106.0.5249.40","21.0.0-beta.7":"106.0.5249.40","21.0.0-beta.8":"106.0.5249.40","21.0.0-nightly.20220526":"103.0.5044.0","21.0.0-nightly.20220527":"103.0.5044.0","21.0.0-nightly.20220530":"103.0.5044.0","21.0.0-nightly.20220531":"103.0.5044.0","21.0.0-nightly.20220602":"104.0.5073.0","21.0.0-nightly.20220603":"104.0.5073.0","21.0.0-nightly.20220606":"104.0.5073.0","21.0.0-nightly.20220607":"104.0.5073.0","21.0.0-nightly.20220608":"104.0.5073.0","21.0.0-nightly.20220609":"104.0.5073.0","21.0.0-nightly.20220610":"104.0.5073.0","21.0.0-nightly.20220613":"104.0.5073.0","21.0.0-nightly.20220614":"104.0.5073.0","21.0.0-nightly.20220615":"104.0.5073.0","21.0.0-nightly.20220616":"104.0.5073.0","21.0.0-nightly.20220617":"104.0.5073.0","21.0.0-nightly.20220620":"104.0.5073.0","21.0.0-nightly.20220621":"104.0.5073.0","21.0.0-nightly.20220622":"104.0.5073.0","21.0.0-nightly.20220623":"104.0.5073.0","21.0.0-nightly.20220624":"104.0.5073.0","21.0.0-nightly.20220627":"104.0.5073.0","21.0.0-nightly.20220628":"105.0.5129.0","21.0.0-nightly.20220629":"105.0.5129.0","21.0.0-nightly.20220630":"105.0.5129.0","21.0.0-nightly.20220701":"105.0.5129.0","21.0.0-nightly.20220704":"105.0.5129.0","21.0.0-nightly.20220705":"105.0.5129.0","21.0.0-nightly.20220706":"105.0.5129.0","21.0.0-nightly.20220707":"105.0.5129.0","21.0.0-nightly.20220708":"105.0.5129.0","21.0.0-nightly.20220711":"105.0.5129.0","21.0.0-nightly.20220712":"105.0.5129.0","21.0.0-nightly.20220713":"105.0.5129.0","21.0.0-nightly.20220715":"105.0.5173.0","21.0.0-nightly.20220718":"105.0.5173.0","21.0.0-nightly.20220719":"105.0.5173.0","21.0.0-nightly.20220720":"105.0.5187.0","21.0.0-nightly.20220721":"105.0.5187.0","21.0.0-nightly.20220722":"105.0.5187.0","21.0.0-nightly.20220725":"105.0.5187.0","21.0.0-nightly.20220726":"105.0.5187.0","21.0.0-nightly.20220727":"105.0.5187.0","21.0.0-nightly.20220728":"105.0.5187.0","21.0.0-nightly.20220801":"105.0.5187.0","21.0.0-nightly.20220802":"105.0.5187.0","21.0.0":"106.0.5249.51","21.0.1":"106.0.5249.61","21.1.0":"106.0.5249.91","21.1.1":"106.0.5249.103","21.2.0":"106.0.5249.119","21.2.1":"106.0.5249.165","21.2.2":"106.0.5249.168","21.2.3":"106.0.5249.168","21.3.0":"106.0.5249.181","21.3.1":"106.0.5249.181","21.3.3":"106.0.5249.199","21.3.4":"106.0.5249.199","21.3.5":"106.0.5249.199","21.4.0":"106.0.5249.199","21.4.1":"106.0.5249.199","21.4.2":"106.0.5249.199","21.4.3":"106.0.5249.199","21.4.4":"106.0.5249.199","22.0.0-alpha.1":"107.0.5286.0","22.0.0-alpha.3":"108.0.5329.0","22.0.0-alpha.4":"108.0.5329.0","22.0.0-alpha.5":"108.0.5329.0","22.0.0-alpha.6":"108.0.5329.0","22.0.0-alpha.7":"108.0.5355.0","22.0.0-alpha.8":"108.0.5359.10","22.0.0-beta.1":"108.0.5359.10","22.0.0-beta.2":"108.0.5359.10","22.0.0-beta.3":"108.0.5359.10","22.0.0-beta.4":"108.0.5359.29","22.0.0-beta.5":"108.0.5359.40","22.0.0-beta.6":"108.0.5359.40","22.0.0-beta.7":"108.0.5359.48","22.0.0-beta.8":"108.0.5359.48","22.0.0-nightly.20220808":"105.0.5187.0","22.0.0-nightly.20220809":"105.0.5187.0","22.0.0-nightly.20220810":"105.0.5187.0","22.0.0-nightly.20220811":"105.0.5187.0","22.0.0-nightly.20220812":"105.0.5187.0","22.0.0-nightly.20220815":"105.0.5187.0","22.0.0-nightly.20220816":"105.0.5187.0","22.0.0-nightly.20220817":"105.0.5187.0","22.0.0-nightly.20220822":"106.0.5216.0","22.0.0-nightly.20220823":"106.0.5216.0","22.0.0-nightly.20220824":"106.0.5216.0","22.0.0-nightly.20220825":"106.0.5216.0","22.0.0-nightly.20220829":"106.0.5216.0","22.0.0-nightly.20220830":"106.0.5216.0","22.0.0-nightly.20220831":"106.0.5216.0","22.0.0-nightly.20220901":"106.0.5216.0","22.0.0-nightly.20220902":"106.0.5216.0","22.0.0-nightly.20220905":"106.0.5216.0","22.0.0-nightly.20220908":"107.0.5274.0","22.0.0-nightly.20220909":"107.0.5286.0","22.0.0-nightly.20220912":"107.0.5286.0","22.0.0-nightly.20220913":"107.0.5286.0","22.0.0-nightly.20220914":"107.0.5286.0","22.0.0-nightly.20220915":"107.0.5286.0","22.0.0-nightly.20220916":"107.0.5286.0","22.0.0-nightly.20220919":"107.0.5286.0","22.0.0-nightly.20220920":"107.0.5286.0","22.0.0-nightly.20220921":"107.0.5286.0","22.0.0-nightly.20220922":"107.0.5286.0","22.0.0-nightly.20220923":"107.0.5286.0","22.0.0-nightly.20220926":"107.0.5286.0","22.0.0-nightly.20220927":"107.0.5286.0","22.0.0-nightly.20220928":"107.0.5286.0","22.0.0":"108.0.5359.62","22.0.1":"108.0.5359.125","22.0.2":"108.0.5359.179","22.0.3":"108.0.5359.179","22.1.0":"108.0.5359.179","22.2.0":"108.0.5359.215","22.2.1":"108.0.5359.215","22.3.0":"108.0.5359.215","22.3.1":"108.0.5359.215","22.3.2":"108.0.5359.215","22.3.3":"108.0.5359.215","22.3.4":"108.0.5359.215","22.3.5":"108.0.5359.215","22.3.6":"108.0.5359.215","22.3.7":"108.0.5359.215","22.3.8":"108.0.5359.215","22.3.9":"108.0.5359.215","22.3.10":"108.0.5359.215","22.3.11":"108.0.5359.215","22.3.12":"108.0.5359.215","22.3.13":"108.0.5359.215","22.3.14":"108.0.5359.215","22.3.15":"108.0.5359.215","22.3.16":"108.0.5359.215","22.3.17":"108.0.5359.215","22.3.18":"108.0.5359.215","22.3.20":"108.0.5359.215","22.3.21":"108.0.5359.215","22.3.22":"108.0.5359.215","22.3.23":"108.0.5359.215","22.3.24":"108.0.5359.215","22.3.25":"108.0.5359.215","22.3.26":"108.0.5359.215","22.3.27":"108.0.5359.215","23.0.0-alpha.1":"110.0.5415.0","23.0.0-alpha.2":"110.0.5451.0","23.0.0-alpha.3":"110.0.5451.0","23.0.0-beta.1":"110.0.5478.5","23.0.0-beta.2":"110.0.5478.5","23.0.0-beta.3":"110.0.5478.5","23.0.0-beta.4":"110.0.5481.30","23.0.0-beta.5":"110.0.5481.38","23.0.0-beta.6":"110.0.5481.52","23.0.0-beta.8":"110.0.5481.52","23.0.0-nightly.20220929":"107.0.5286.0","23.0.0-nightly.20220930":"107.0.5286.0","23.0.0-nightly.20221003":"107.0.5286.0","23.0.0-nightly.20221004":"108.0.5329.0","23.0.0-nightly.20221005":"108.0.5329.0","23.0.0-nightly.20221006":"108.0.5329.0","23.0.0-nightly.20221007":"108.0.5329.0","23.0.0-nightly.20221010":"108.0.5329.0","23.0.0-nightly.20221011":"108.0.5329.0","23.0.0-nightly.20221012":"108.0.5329.0","23.0.0-nightly.20221013":"108.0.5329.0","23.0.0-nightly.20221014":"108.0.5329.0","23.0.0-nightly.20221017":"108.0.5329.0","23.0.0-nightly.20221018":"108.0.5355.0","23.0.0-nightly.20221019":"108.0.5355.0","23.0.0-nightly.20221020":"108.0.5355.0","23.0.0-nightly.20221021":"108.0.5355.0","23.0.0-nightly.20221024":"108.0.5355.0","23.0.0-nightly.20221026":"108.0.5355.0","23.0.0-nightly.20221027":"109.0.5382.0","23.0.0-nightly.20221028":"109.0.5382.0","23.0.0-nightly.20221031":"109.0.5382.0","23.0.0-nightly.20221101":"109.0.5382.0","23.0.0-nightly.20221102":"109.0.5382.0","23.0.0-nightly.20221103":"109.0.5382.0","23.0.0-nightly.20221104":"109.0.5382.0","23.0.0-nightly.20221107":"109.0.5382.0","23.0.0-nightly.20221108":"109.0.5382.0","23.0.0-nightly.20221109":"109.0.5382.0","23.0.0-nightly.20221110":"109.0.5382.0","23.0.0-nightly.20221111":"109.0.5382.0","23.0.0-nightly.20221114":"109.0.5382.0","23.0.0-nightly.20221115":"109.0.5382.0","23.0.0-nightly.20221116":"109.0.5382.0","23.0.0-nightly.20221117":"109.0.5382.0","23.0.0-nightly.20221118":"110.0.5415.0","23.0.0-nightly.20221121":"110.0.5415.0","23.0.0-nightly.20221122":"110.0.5415.0","23.0.0-nightly.20221123":"110.0.5415.0","23.0.0-nightly.20221124":"110.0.5415.0","23.0.0-nightly.20221125":"110.0.5415.0","23.0.0-nightly.20221128":"110.0.5415.0","23.0.0-nightly.20221129":"110.0.5415.0","23.0.0-nightly.20221130":"110.0.5415.0","23.0.0":"110.0.5481.77","23.1.0":"110.0.5481.100","23.1.1":"110.0.5481.104","23.1.2":"110.0.5481.177","23.1.3":"110.0.5481.179","23.1.4":"110.0.5481.192","23.2.0":"110.0.5481.192","23.2.1":"110.0.5481.208","23.2.2":"110.0.5481.208","23.2.3":"110.0.5481.208","23.2.4":"110.0.5481.208","23.3.0":"110.0.5481.208","23.3.1":"110.0.5481.208","23.3.2":"110.0.5481.208","23.3.3":"110.0.5481.208","23.3.4":"110.0.5481.208","23.3.5":"110.0.5481.208","23.3.6":"110.0.5481.208","23.3.7":"110.0.5481.208","23.3.8":"110.0.5481.208","23.3.9":"110.0.5481.208","23.3.10":"110.0.5481.208","23.3.11":"110.0.5481.208","23.3.12":"110.0.5481.208","23.3.13":"110.0.5481.208","24.0.0-alpha.1":"111.0.5560.0","24.0.0-alpha.2":"111.0.5560.0","24.0.0-alpha.3":"111.0.5560.0","24.0.0-alpha.4":"111.0.5560.0","24.0.0-alpha.5":"111.0.5560.0","24.0.0-alpha.6":"111.0.5560.0","24.0.0-alpha.7":"111.0.5560.0","24.0.0-beta.1":"111.0.5563.50","24.0.0-beta.2":"111.0.5563.50","24.0.0-beta.3":"112.0.5615.20","24.0.0-beta.4":"112.0.5615.20","24.0.0-beta.5":"112.0.5615.29","24.0.0-beta.6":"112.0.5615.39","24.0.0-beta.7":"112.0.5615.39","24.0.0-nightly.20221201":"110.0.5415.0","24.0.0-nightly.20221202":"110.0.5415.0","24.0.0-nightly.20221205":"110.0.5415.0","24.0.0-nightly.20221206":"110.0.5451.0","24.0.0-nightly.20221207":"110.0.5451.0","24.0.0-nightly.20221208":"110.0.5451.0","24.0.0-nightly.20221213":"110.0.5451.0","24.0.0-nightly.20221214":"110.0.5451.0","24.0.0-nightly.20221215":"110.0.5451.0","24.0.0-nightly.20221216":"110.0.5451.0","24.0.0-nightly.20230109":"111.0.5518.0","24.0.0-nightly.20230110":"111.0.5518.0","24.0.0-nightly.20230111":"111.0.5518.0","24.0.0-nightly.20230112":"111.0.5518.0","24.0.0-nightly.20230113":"111.0.5518.0","24.0.0-nightly.20230116":"111.0.5518.0","24.0.0-nightly.20230117":"111.0.5518.0","24.0.0-nightly.20230118":"111.0.5518.0","24.0.0-nightly.20230119":"111.0.5518.0","24.0.0-nightly.20230120":"111.0.5518.0","24.0.0-nightly.20230123":"111.0.5518.0","24.0.0-nightly.20230124":"111.0.5518.0","24.0.0-nightly.20230125":"111.0.5518.0","24.0.0-nightly.20230126":"111.0.5518.0","24.0.0-nightly.20230127":"111.0.5518.0","24.0.0-nightly.20230131":"111.0.5518.0","24.0.0-nightly.20230201":"111.0.5518.0","24.0.0-nightly.20230202":"111.0.5518.0","24.0.0-nightly.20230203":"111.0.5560.0","24.0.0-nightly.20230206":"111.0.5560.0","24.0.0-nightly.20230207":"111.0.5560.0","24.0.0-nightly.20230208":"111.0.5560.0","24.0.0-nightly.20230209":"111.0.5560.0","24.0.0":"112.0.5615.49","24.1.0":"112.0.5615.50","24.1.1":"112.0.5615.50","24.1.2":"112.0.5615.87","24.1.3":"112.0.5615.165","24.2.0":"112.0.5615.165","24.3.0":"112.0.5615.165","24.3.1":"112.0.5615.183","24.4.0":"112.0.5615.204","24.4.1":"112.0.5615.204","24.5.0":"112.0.5615.204","24.5.1":"112.0.5615.204","24.6.0":"112.0.5615.204","24.6.1":"112.0.5615.204","24.6.2":"112.0.5615.204","24.6.3":"112.0.5615.204","24.6.4":"112.0.5615.204","24.6.5":"112.0.5615.204","24.7.0":"112.0.5615.204","24.7.1":"112.0.5615.204","24.8.0":"112.0.5615.204","24.8.1":"112.0.5615.204","24.8.2":"112.0.5615.204","24.8.3":"112.0.5615.204","24.8.4":"112.0.5615.204","24.8.5":"112.0.5615.204","24.8.6":"112.0.5615.204","24.8.7":"112.0.5615.204","24.8.8":"112.0.5615.204","25.0.0-alpha.1":"114.0.5694.0","25.0.0-alpha.2":"114.0.5694.0","25.0.0-alpha.3":"114.0.5710.0","25.0.0-alpha.4":"114.0.5710.0","25.0.0-alpha.5":"114.0.5719.0","25.0.0-alpha.6":"114.0.5719.0","25.0.0-beta.1":"114.0.5719.0","25.0.0-beta.2":"114.0.5719.0","25.0.0-beta.3":"114.0.5719.0","25.0.0-beta.4":"114.0.5735.16","25.0.0-beta.5":"114.0.5735.16","25.0.0-beta.6":"114.0.5735.16","25.0.0-beta.7":"114.0.5735.16","25.0.0-beta.8":"114.0.5735.35","25.0.0-beta.9":"114.0.5735.45","25.0.0-nightly.20230210":"111.0.5560.0","25.0.0-nightly.20230214":"111.0.5560.0","25.0.0-nightly.20230215":"111.0.5560.0","25.0.0-nightly.20230216":"111.0.5560.0","25.0.0-nightly.20230217":"111.0.5560.0","25.0.0-nightly.20230220":"111.0.5560.0","25.0.0-nightly.20230221":"111.0.5560.0","25.0.0-nightly.20230222":"111.0.5560.0","25.0.0-nightly.20230223":"111.0.5560.0","25.0.0-nightly.20230224":"111.0.5560.0","25.0.0-nightly.20230227":"111.0.5560.0","25.0.0-nightly.20230228":"111.0.5560.0","25.0.0-nightly.20230301":"111.0.5560.0","25.0.0-nightly.20230302":"111.0.5560.0","25.0.0-nightly.20230303":"111.0.5560.0","25.0.0-nightly.20230306":"111.0.5560.0","25.0.0-nightly.20230307":"111.0.5560.0","25.0.0-nightly.20230308":"111.0.5560.0","25.0.0-nightly.20230309":"111.0.5560.0","25.0.0-nightly.20230310":"111.0.5560.0","25.0.0-nightly.20230314":"113.0.5636.0","25.0.0-nightly.20230315":"113.0.5651.0","25.0.0-nightly.20230317":"113.0.5653.0","25.0.0-nightly.20230320":"113.0.5660.0","25.0.0-nightly.20230321":"113.0.5664.0","25.0.0-nightly.20230322":"113.0.5666.0","25.0.0-nightly.20230323":"113.0.5668.0","25.0.0-nightly.20230324":"113.0.5670.0","25.0.0-nightly.20230327":"113.0.5670.0","25.0.0-nightly.20230328":"113.0.5670.0","25.0.0-nightly.20230329":"113.0.5670.0","25.0.0-nightly.20230330":"113.0.5670.0","25.0.0-nightly.20230331":"114.0.5684.0","25.0.0-nightly.20230403":"114.0.5684.0","25.0.0-nightly.20230404":"114.0.5692.0","25.0.0-nightly.20230405":"114.0.5694.0","25.0.0":"114.0.5735.45","25.0.1":"114.0.5735.45","25.1.0":"114.0.5735.106","25.1.1":"114.0.5735.106","25.2.0":"114.0.5735.134","25.3.0":"114.0.5735.199","25.3.1":"114.0.5735.243","25.3.2":"114.0.5735.248","25.4.0":"114.0.5735.248","25.5.0":"114.0.5735.289","25.6.0":"114.0.5735.289","25.7.0":"114.0.5735.289","25.8.0":"114.0.5735.289","25.8.1":"114.0.5735.289","25.8.2":"114.0.5735.289","25.8.3":"114.0.5735.289","25.8.4":"114.0.5735.289","25.9.0":"114.0.5735.289","25.9.1":"114.0.5735.289","25.9.2":"114.0.5735.289","25.9.3":"114.0.5735.289","25.9.4":"114.0.5735.289","25.9.5":"114.0.5735.289","25.9.6":"114.0.5735.289","25.9.7":"114.0.5735.289","25.9.8":"114.0.5735.289","26.0.0-alpha.1":"116.0.5791.0","26.0.0-alpha.2":"116.0.5791.0","26.0.0-alpha.3":"116.0.5791.0","26.0.0-alpha.4":"116.0.5791.0","26.0.0-alpha.5":"116.0.5791.0","26.0.0-alpha.6":"116.0.5815.0","26.0.0-alpha.7":"116.0.5831.0","26.0.0-alpha.8":"116.0.5845.0","26.0.0-beta.1":"116.0.5845.0","26.0.0-beta.2":"116.0.5845.14","26.0.0-beta.3":"116.0.5845.14","26.0.0-beta.4":"116.0.5845.14","26.0.0-beta.5":"116.0.5845.14","26.0.0-beta.6":"116.0.5845.14","26.0.0-beta.7":"116.0.5845.14","26.0.0-beta.8":"116.0.5845.42","26.0.0-beta.9":"116.0.5845.42","26.0.0-beta.10":"116.0.5845.49","26.0.0-beta.11":"116.0.5845.49","26.0.0-beta.12":"116.0.5845.62","26.0.0-nightly.20230406":"114.0.5694.0","26.0.0-nightly.20230407":"114.0.5694.0","26.0.0-nightly.20230410":"114.0.5694.0","26.0.0-nightly.20230411":"114.0.5694.0","26.0.0-nightly.20230412":"114.0.5708.0","26.0.0-nightly.20230413":"114.0.5710.0","26.0.0-nightly.20230414":"114.0.5710.0","26.0.0-nightly.20230417":"114.0.5710.0","26.0.0-nightly.20230418":"114.0.5715.0","26.0.0-nightly.20230421":"114.0.5719.0","26.0.0-nightly.20230424":"114.0.5719.0","26.0.0-nightly.20230425":"114.0.5719.0","26.0.0-nightly.20230426":"114.0.5719.0","26.0.0-nightly.20230427":"114.0.5719.0","26.0.0-nightly.20230428":"114.0.5719.0","26.0.0-nightly.20230501":"114.0.5719.0","26.0.0-nightly.20230502":"114.0.5719.0","26.0.0-nightly.20230503":"114.0.5719.0","26.0.0-nightly.20230504":"114.0.5719.0","26.0.0-nightly.20230505":"114.0.5719.0","26.0.0-nightly.20230508":"114.0.5719.0","26.0.0-nightly.20230509":"114.0.5719.0","26.0.0-nightly.20230510":"114.0.5719.0","26.0.0-nightly.20230511":"115.0.5760.0","26.0.0-nightly.20230512":"115.0.5760.0","26.0.0-nightly.20230515":"115.0.5760.0","26.0.0-nightly.20230516":"115.0.5760.0","26.0.0-nightly.20230517":"115.0.5760.0","26.0.0-nightly.20230518":"115.0.5760.0","26.0.0-nightly.20230519":"115.0.5760.0","26.0.0-nightly.20230522":"115.0.5760.0","26.0.0-nightly.20230523":"115.0.5760.0","26.0.0-nightly.20230524":"115.0.5786.0","26.0.0-nightly.20230525":"115.0.5790.0","26.0.0-nightly.20230526":"116.0.5791.0","26.0.0-nightly.20230529":"116.0.5791.0","26.0.0-nightly.20230530":"116.0.5791.0","26.0.0-nightly.20230531":"116.0.5791.0","26.0.0":"116.0.5845.82","26.1.0":"116.0.5845.97","26.2.0":"116.0.5845.179","26.2.1":"116.0.5845.188","26.2.2":"116.0.5845.190","26.2.3":"116.0.5845.190","26.2.4":"116.0.5845.190","26.3.0":"116.0.5845.228","26.4.0":"116.0.5845.228","26.4.1":"116.0.5845.228","26.4.2":"116.0.5845.228","26.4.3":"116.0.5845.228","26.5.0":"116.0.5845.228","26.6.0":"116.0.5845.228","26.6.1":"116.0.5845.228","26.6.2":"116.0.5845.228","26.6.3":"116.0.5845.228","26.6.4":"116.0.5845.228","26.6.5":"116.0.5845.228","26.6.6":"116.0.5845.228","26.6.7":"116.0.5845.228","26.6.8":"116.0.5845.228","26.6.9":"116.0.5845.228","26.6.10":"116.0.5845.228","27.0.0-alpha.1":"118.0.5949.0","27.0.0-alpha.2":"118.0.5949.0","27.0.0-alpha.3":"118.0.5949.0","27.0.0-alpha.4":"118.0.5949.0","27.0.0-alpha.5":"118.0.5949.0","27.0.0-alpha.6":"118.0.5949.0","27.0.0-beta.1":"118.0.5993.5","27.0.0-beta.2":"118.0.5993.5","27.0.0-beta.3":"118.0.5993.5","27.0.0-beta.4":"118.0.5993.11","27.0.0-beta.5":"118.0.5993.18","27.0.0-beta.6":"118.0.5993.18","27.0.0-beta.7":"118.0.5993.18","27.0.0-beta.8":"118.0.5993.18","27.0.0-beta.9":"118.0.5993.18","27.0.0-nightly.20230601":"116.0.5791.0","27.0.0-nightly.20230602":"116.0.5791.0","27.0.0-nightly.20230605":"116.0.5791.0","27.0.0-nightly.20230606":"116.0.5791.0","27.0.0-nightly.20230607":"116.0.5791.0","27.0.0-nightly.20230609":"116.0.5791.0","27.0.0-nightly.20230612":"116.0.5815.0","27.0.0-nightly.20230613":"116.0.5815.0","27.0.0-nightly.20230614":"116.0.5829.0","27.0.0-nightly.20230615":"116.0.5831.0","27.0.0-nightly.20230616":"116.0.5833.0","27.0.0-nightly.20230619":"116.0.5833.0","27.0.0-nightly.20230620":"116.0.5833.0","27.0.0-nightly.20230621":"116.0.5833.0","27.0.0-nightly.20230622":"116.0.5845.0","27.0.0-nightly.20230623":"116.0.5845.0","27.0.0-nightly.20230626":"116.0.5845.0","27.0.0-nightly.20230627":"116.0.5845.0","27.0.0-nightly.20230628":"116.0.5845.0","27.0.0-nightly.20230629":"116.0.5845.0","27.0.0-nightly.20230630":"116.0.5845.0","27.0.0-nightly.20230703":"117.0.5852.0","27.0.0-nightly.20230704":"117.0.5852.0","27.0.0-nightly.20230705":"117.0.5852.0","27.0.0-nightly.20230706":"117.0.5852.0","27.0.0-nightly.20230707":"117.0.5852.0","27.0.0-nightly.20230710":"117.0.5852.0","27.0.0-nightly.20230711":"117.0.5852.0","27.0.0-nightly.20230712":"117.0.5852.0","27.0.0-nightly.20230713":"117.0.5852.0","27.0.0-nightly.20230714":"117.0.5852.0","27.0.0-nightly.20230717":"117.0.5884.1","27.0.0-nightly.20230718":"117.0.5884.1","27.0.0-nightly.20230719":"117.0.5892.0","27.0.0-nightly.20230720":"117.0.5897.0","27.0.0-nightly.20230721":"117.0.5897.0","27.0.0-nightly.20230724":"117.0.5897.0","27.0.0-nightly.20230725":"117.0.5897.0","27.0.0-nightly.20230726":"117.0.5897.0","27.0.0-nightly.20230727":"117.0.5897.0","27.0.0-nightly.20230728":"117.0.5897.0","27.0.0-nightly.20230731":"117.0.5897.0","27.0.0-nightly.20230801":"117.0.5911.0","27.0.0-nightly.20230802":"117.0.5911.0","27.0.0-nightly.20230803":"117.0.5911.0","27.0.0-nightly.20230804":"117.0.5921.0","27.0.0-nightly.20230807":"117.0.5921.0","27.0.0-nightly.20230808":"117.0.5921.0","27.0.0-nightly.20230814":"117.0.5921.0","27.0.0-nightly.20230815":"117.0.5921.0","27.0.0-nightly.20230816":"118.0.5949.0","27.0.0":"118.0.5993.54","27.0.1":"118.0.5993.89","27.0.2":"118.0.5993.89","27.0.3":"118.0.5993.120","27.0.4":"118.0.5993.129","27.1.0":"118.0.5993.144","27.1.2":"118.0.5993.144","27.1.3":"118.0.5993.159","27.2.0":"118.0.5993.159","27.2.1":"118.0.5993.159","27.2.2":"118.0.5993.159","27.2.3":"118.0.5993.159","27.2.4":"118.0.5993.159","27.3.0":"118.0.5993.159","27.3.1":"118.0.5993.159","27.3.2":"118.0.5993.159","27.3.3":"118.0.5993.159","27.3.4":"118.0.5993.159","27.3.5":"118.0.5993.159","27.3.6":"118.0.5993.159","27.3.7":"118.0.5993.159","27.3.8":"118.0.5993.159","27.3.9":"118.0.5993.159","27.3.10":"118.0.5993.159","27.3.11":"118.0.5993.159","28.0.0-alpha.1":"119.0.6045.0","28.0.0-alpha.2":"119.0.6045.0","28.0.0-alpha.3":"119.0.6045.21","28.0.0-alpha.4":"119.0.6045.21","28.0.0-alpha.5":"119.0.6045.33","28.0.0-alpha.6":"119.0.6045.33","28.0.0-alpha.7":"119.0.6045.33","28.0.0-beta.1":"119.0.6045.33","28.0.0-beta.2":"120.0.6099.0","28.0.0-beta.3":"120.0.6099.5","28.0.0-beta.4":"120.0.6099.5","28.0.0-beta.5":"120.0.6099.18","28.0.0-beta.6":"120.0.6099.18","28.0.0-beta.7":"120.0.6099.18","28.0.0-beta.8":"120.0.6099.18","28.0.0-beta.9":"120.0.6099.18","28.0.0-beta.10":"120.0.6099.18","28.0.0-beta.11":"120.0.6099.35","28.0.0-nightly.20230817":"118.0.5949.0","28.0.0-nightly.20230818":"118.0.5949.0","28.0.0-nightly.20230821":"118.0.5949.0","28.0.0-nightly.20230822":"118.0.5949.0","28.0.0-nightly.20230823":"118.0.5949.0","28.0.0-nightly.20230824":"118.0.5949.0","28.0.0-nightly.20230825":"118.0.5949.0","28.0.0-nightly.20230828":"118.0.5949.0","28.0.0-nightly.20230829":"118.0.5949.0","28.0.0-nightly.20230830":"118.0.5949.0","28.0.0-nightly.20230831":"118.0.5949.0","28.0.0-nightly.20230906":"118.0.5991.0","28.0.0-nightly.20230907":"118.0.5993.0","28.0.0-nightly.20230908":"118.0.5993.0","28.0.0-nightly.20230911":"118.0.5993.0","28.0.0-nightly.20230912":"118.0.5993.0","28.0.0-nightly.20230913":"118.0.5993.0","28.0.0-nightly.20230914":"118.0.5993.0","28.0.0-nightly.20230915":"118.0.5993.0","28.0.0-nightly.20230919":"119.0.6006.0","28.0.0-nightly.20230920":"119.0.6017.0","28.0.0-nightly.20230921":"119.0.6019.2","28.0.0-nightly.20230925":"119.0.6019.2","28.0.0-nightly.20230926":"119.0.6019.2","28.0.0-nightly.20230927":"119.0.6019.2","28.0.0-nightly.20230928":"119.0.6019.2","28.0.0-nightly.20230929":"119.0.6029.0","28.0.0-nightly.20231002":"119.0.6029.0","28.0.0-nightly.20231003":"119.0.6043.0","28.0.0-nightly.20231004":"119.0.6043.0","28.0.0-nightly.20231005":"119.0.6043.0","28.0.0-nightly.20231006":"119.0.6045.0","28.0.0-nightly.20231009":"119.0.6045.0","28.0.0-nightly.20231010":"119.0.6045.0","28.0.0-nightly.20231011":"119.0.6045.0","28.0.0":"120.0.6099.56","28.1.0":"120.0.6099.109","28.1.1":"120.0.6099.109","28.1.2":"120.0.6099.199","28.1.3":"120.0.6099.199","28.1.4":"120.0.6099.216","28.2.0":"120.0.6099.227","28.2.1":"120.0.6099.268","28.2.2":"120.0.6099.276","28.2.3":"120.0.6099.283","28.2.4":"120.0.6099.291","28.2.5":"120.0.6099.291","28.2.6":"120.0.6099.291","28.2.7":"120.0.6099.291","28.2.8":"120.0.6099.291","28.2.9":"120.0.6099.291","28.2.10":"120.0.6099.291","28.3.0":"120.0.6099.291","28.3.1":"120.0.6099.291","29.0.0-alpha.1":"121.0.6147.0","29.0.0-alpha.2":"121.0.6147.0","29.0.0-alpha.3":"121.0.6147.0","29.0.0-alpha.4":"121.0.6159.0","29.0.0-alpha.5":"121.0.6159.0","29.0.0-alpha.6":"121.0.6159.0","29.0.0-alpha.7":"121.0.6159.0","29.0.0-alpha.8":"122.0.6194.0","29.0.0-alpha.9":"122.0.6236.2","29.0.0-alpha.10":"122.0.6236.2","29.0.0-alpha.11":"122.0.6236.2","29.0.0-beta.1":"122.0.6236.2","29.0.0-beta.2":"122.0.6236.2","29.0.0-beta.3":"122.0.6261.6","29.0.0-beta.4":"122.0.6261.6","29.0.0-beta.5":"122.0.6261.18","29.0.0-beta.6":"122.0.6261.18","29.0.0-beta.7":"122.0.6261.18","29.0.0-beta.8":"122.0.6261.18","29.0.0-beta.9":"122.0.6261.18","29.0.0-beta.10":"122.0.6261.18","29.0.0-beta.11":"122.0.6261.18","29.0.0-beta.12":"122.0.6261.29","29.0.0-nightly.20231012":"119.0.6045.0","29.0.0-nightly.20231013":"119.0.6045.0","29.0.0-nightly.20231016":"119.0.6045.0","29.0.0-nightly.20231017":"119.0.6045.0","29.0.0-nightly.20231018":"119.0.6045.0","29.0.0-nightly.20231019":"119.0.6045.0","29.0.0-nightly.20231020":"119.0.6045.0","29.0.0-nightly.20231023":"119.0.6045.0","29.0.0-nightly.20231024":"119.0.6045.0","29.0.0-nightly.20231025":"120.0.6078.0","29.0.0-nightly.20231026":"120.0.6078.0","29.0.0-nightly.20231027":"120.0.6078.0","29.0.0-nightly.20231030":"120.0.6078.0","29.0.0-nightly.20231031":"120.0.6078.0","29.0.0-nightly.20231101":"120.0.6078.0","29.0.0-nightly.20231102":"121.0.6100.0","29.0.0-nightly.20231103":"121.0.6100.0","29.0.0-nightly.20231106":"121.0.6104.0","29.0.0-nightly.20231107":"121.0.6110.0","29.0.0-nightly.20231108":"121.0.6110.0","29.0.0-nightly.20231109":"121.0.6110.0","29.0.0-nightly.20231110":"121.0.6110.0","29.0.0-nightly.20231113":"121.0.6110.0","29.0.0-nightly.20231114":"121.0.6110.0","29.0.0-nightly.20231115":"121.0.6116.0","29.0.0-nightly.20231116":"121.0.6116.0","29.0.0-nightly.20231117":"121.0.6116.0","29.0.0-nightly.20231120":"121.0.6116.0","29.0.0-nightly.20231121":"121.0.6116.0","29.0.0-nightly.20231122":"121.0.6116.0","29.0.0-nightly.20231123":"121.0.6116.0","29.0.0-nightly.20231124":"121.0.6116.0","29.0.0-nightly.20231127":"121.0.6116.0","29.0.0-nightly.20231128":"121.0.6116.0","29.0.0-nightly.20231129":"121.0.6147.0","29.0.0-nightly.20231130":"121.0.6147.0","29.0.0-nightly.20231201":"121.0.6147.0","29.0.0-nightly.20231204":"121.0.6147.0","29.0.0-nightly.20231205":"121.0.6147.0","29.0.0-nightly.20231206":"121.0.6147.0","29.0.0":"122.0.6261.39","29.0.1":"122.0.6261.57","29.1.0":"122.0.6261.70","29.1.1":"122.0.6261.111","29.1.2":"122.0.6261.112","29.1.3":"122.0.6261.112","29.1.4":"122.0.6261.129","29.1.5":"122.0.6261.130","29.1.6":"122.0.6261.139","29.2.0":"122.0.6261.156","29.3.0":"122.0.6261.156","29.3.1":"122.0.6261.156","30.0.0-alpha.1":"123.0.6296.0","30.0.0-alpha.2":"123.0.6312.5","30.0.0-alpha.3":"124.0.6323.0","30.0.0-alpha.4":"124.0.6323.0","30.0.0-alpha.5":"124.0.6331.0","30.0.0-alpha.6":"124.0.6331.0","30.0.0-alpha.7":"124.0.6353.0","30.0.0-beta.1":"124.0.6359.0","30.0.0-beta.2":"124.0.6359.0","30.0.0-beta.3":"124.0.6367.9","30.0.0-beta.4":"124.0.6367.9","30.0.0-beta.5":"124.0.6367.9","30.0.0-beta.6":"124.0.6367.18","30.0.0-beta.7":"124.0.6367.29","30.0.0-beta.8":"124.0.6367.29","30.0.0-nightly.20231207":"121.0.6147.0","30.0.0-nightly.20231208":"121.0.6147.0","30.0.0-nightly.20231211":"121.0.6147.0","30.0.0-nightly.20231212":"121.0.6159.0","30.0.0-nightly.20231213":"121.0.6159.0","30.0.0-nightly.20231214":"121.0.6159.0","30.0.0-nightly.20231215":"121.0.6159.0","30.0.0-nightly.20231218":"121.0.6159.0","30.0.0-nightly.20240102":"121.0.6159.0","30.0.0-nightly.20240103":"122.0.6194.0","30.0.0-nightly.20240104":"122.0.6194.0","30.0.0-nightly.20240105":"122.0.6194.0","30.0.0-nightly.20240108":"122.0.6194.0","30.0.0-nightly.20240109":"122.0.6194.0","30.0.0-nightly.20240110":"122.0.6194.0","30.0.0-nightly.20240111":"122.0.6236.2","30.0.0-nightly.20240112":"122.0.6236.2","30.0.0-nightly.20240115":"122.0.6236.2","30.0.0-nightly.20240116":"122.0.6236.2","30.0.0-nightly.20240117":"122.0.6236.2","30.0.0-nightly.20240118":"122.0.6236.2","30.0.0-nightly.20240119":"122.0.6236.2","30.0.0-nightly.20240122":"122.0.6236.2","30.0.0-nightly.20240123":"122.0.6236.2","30.0.0-nightly.20240124":"122.0.6236.2","30.0.0-nightly.20240125":"122.0.6236.2","30.0.0-nightly.20240126":"123.0.6264.0","30.0.0-nightly.20240129":"123.0.6264.0","30.0.0-nightly.20240130":"123.0.6264.0","30.0.0-nightly.20240131":"123.0.6264.0","30.0.0-nightly.20240201":"123.0.6272.0","30.0.0-nightly.20240202":"123.0.6272.0","30.0.0-nightly.20240205":"123.0.6272.0","30.0.0-nightly.20240206":"123.0.6272.0","30.0.0-nightly.20240207":"123.0.6272.0","30.0.0-nightly.20240208":"123.0.6272.0","30.0.0-nightly.20240209":"123.0.6272.0","30.0.0-nightly.20240212":"123.0.6272.0","30.0.0-nightly.20240213":"123.0.6272.0","30.0.0-nightly.20240214":"123.0.6272.0","30.0.0-nightly.20240215":"123.0.6296.0","30.0.0-nightly.20240216":"123.0.6296.0","30.0.0-nightly.20240219":"123.0.6296.0","30.0.0-nightly.20240220":"123.0.6296.0","30.0.0-nightly.20240221":"123.0.6296.0","30.0.0":"124.0.6367.49","30.0.1":"124.0.6367.60","31.0.0-alpha.1":"125.0.6412.0","31.0.0-alpha.2":"125.0.6412.0","31.0.0-nightly.20240222":"123.0.6312.5","31.0.0-nightly.20240223":"123.0.6312.5","31.0.0-nightly.20240226":"123.0.6312.5","31.0.0-nightly.20240227":"123.0.6312.5","31.0.0-nightly.20240228":"123.0.6312.5","31.0.0-nightly.20240229":"124.0.6323.0","31.0.0-nightly.20240301":"124.0.6323.0","31.0.0-nightly.20240304":"124.0.6323.0","31.0.0-nightly.20240305":"124.0.6323.0","31.0.0-nightly.20240306":"124.0.6331.0","31.0.0-nightly.20240307":"124.0.6331.0","31.0.0-nightly.20240308":"124.0.6331.0","31.0.0-nightly.20240311":"124.0.6331.0","31.0.0-nightly.20240312":"124.0.6351.0","31.0.0-nightly.20240313":"124.0.6353.0","31.0.0-nightly.20240314":"124.0.6353.0","31.0.0-nightly.20240315":"124.0.6353.0","31.0.0-nightly.20240318":"124.0.6359.0","31.0.0-nightly.20240319":"124.0.6359.0","31.0.0-nightly.20240320":"124.0.6359.0","31.0.0-nightly.20240321":"124.0.6359.0","31.0.0-nightly.20240325":"124.0.6359.0","31.0.0-nightly.20240327":"124.0.6359.0","31.0.0-nightly.20240328":"124.0.6359.0","31.0.0-nightly.20240329":"124.0.6359.0","31.0.0-nightly.20240401":"124.0.6359.0","31.0.0-nightly.20240402":"124.0.6359.0","31.0.0-nightly.20240404":"124.0.6359.0","31.0.0-nightly.20240405":"124.0.6359.0","31.0.0-nightly.20240408":"124.0.6359.0","31.0.0-nightly.20240409":"124.0.6359.0","31.0.0-nightly.20240410":"124.0.6359.0","31.0.0-nightly.20240411":"124.0.6359.0","31.0.0-nightly.20240412":"124.0.6359.0","32.0.0-nightly.20240418":"125.0.6412.0","32.0.0-nightly.20240419":"125.0.6412.0","32.0.0-nightly.20240422":"125.0.6412.0","32.0.0-nightly.20240423":"125.0.6412.0","32.0.0-nightly.20240424":"125.0.6412.0","32.0.0-nightly.20240425":"125.0.6412.0","32.0.0-nightly.20240426":"125.0.6412.0","32.0.0-nightly.20240429":"125.0.6412.0","32.0.0-nightly.20240430":"125.0.6412.0"} \ No newline at end of file diff --git a/node_modules/electron-to-chromium/package.json b/node_modules/electron-to-chromium/package.json index 2d1b70ae..48116b38 100644 --- a/node_modules/electron-to-chromium/package.json +++ b/node_modules/electron-to-chromium/package.json @@ -1,6 +1,6 @@ { "name": "electron-to-chromium", - "version": "1.4.751", + "version": "1.4.752", "description": "Provides a list of electron-to-chromium version mappings", "main": "index.js", "files": [ diff --git a/node_modules/es-define-property/.DS_Store b/node_modules/es-define-property/.DS_Store deleted file mode 100644 index 970883d7..00000000 Binary files a/node_modules/es-define-property/.DS_Store and /dev/null differ diff --git a/node_modules/es-errors/.DS_Store b/node_modules/es-errors/.DS_Store deleted file mode 100644 index 01c94d5e..00000000 Binary files a/node_modules/es-errors/.DS_Store and /dev/null differ diff --git a/node_modules/es-module-lexer/.DS_Store b/node_modules/es-module-lexer/.DS_Store deleted file mode 100644 index 27800bed..00000000 Binary files a/node_modules/es-module-lexer/.DS_Store and /dev/null differ diff --git a/node_modules/escalade/.DS_Store b/node_modules/escalade/.DS_Store deleted file mode 100644 index 13df3876..00000000 Binary files a/node_modules/escalade/.DS_Store and /dev/null differ diff --git a/node_modules/esprima/.DS_Store b/node_modules/esprima/.DS_Store deleted file mode 100644 index 2fade98a..00000000 Binary files a/node_modules/esprima/.DS_Store and /dev/null differ diff --git a/node_modules/estree-util-value-to-estree/.DS_Store b/node_modules/estree-util-value-to-estree/.DS_Store deleted file mode 100644 index 4e336d03..00000000 Binary files a/node_modules/estree-util-value-to-estree/.DS_Store and /dev/null differ diff --git a/node_modules/estree-walker/.DS_Store b/node_modules/estree-walker/.DS_Store deleted file mode 100644 index 7b638002..00000000 Binary files a/node_modules/estree-walker/.DS_Store and /dev/null differ diff --git a/node_modules/events/.DS_Store b/node_modules/events/.DS_Store deleted file mode 100644 index 7ef0478a..00000000 Binary files a/node_modules/events/.DS_Store and /dev/null differ diff --git a/node_modules/express/.DS_Store b/node_modules/express/.DS_Store deleted file mode 100644 index 73e1b751..00000000 Binary files a/node_modules/express/.DS_Store and /dev/null differ diff --git a/node_modules/fast-json-stable-stringify/.DS_Store b/node_modules/fast-json-stable-stringify/.DS_Store deleted file mode 100644 index 447a986a..00000000 Binary files a/node_modules/fast-json-stable-stringify/.DS_Store and /dev/null differ diff --git a/node_modules/fastq/.DS_Store b/node_modules/fastq/.DS_Store deleted file mode 100644 index 15b0ace9..00000000 Binary files a/node_modules/fastq/.DS_Store and /dev/null differ diff --git a/node_modules/feed/.DS_Store b/node_modules/feed/.DS_Store deleted file mode 100644 index 94f34ed4..00000000 Binary files a/node_modules/feed/.DS_Store and /dev/null differ diff --git a/node_modules/file-loader/.DS_Store b/node_modules/file-loader/.DS_Store deleted file mode 100644 index 4d2048cf..00000000 Binary files a/node_modules/file-loader/.DS_Store and /dev/null differ diff --git a/node_modules/fork-ts-checker-webpack-plugin/.DS_Store b/node_modules/fork-ts-checker-webpack-plugin/.DS_Store deleted file mode 100644 index e5b6af91..00000000 Binary files a/node_modules/fork-ts-checker-webpack-plugin/.DS_Store and /dev/null differ diff --git a/node_modules/form-data-encoder/.DS_Store b/node_modules/form-data-encoder/.DS_Store deleted file mode 100644 index fbcb46f3..00000000 Binary files a/node_modules/form-data-encoder/.DS_Store and /dev/null differ diff --git a/node_modules/fs-monkey/.DS_Store b/node_modules/fs-monkey/.DS_Store deleted file mode 100644 index 44dbaa26..00000000 Binary files a/node_modules/fs-monkey/.DS_Store and /dev/null differ diff --git a/node_modules/function-bind/.DS_Store b/node_modules/function-bind/.DS_Store deleted file mode 100644 index 22a6df5f..00000000 Binary files a/node_modules/function-bind/.DS_Store and /dev/null differ diff --git a/node_modules/get-intrinsic/.DS_Store b/node_modules/get-intrinsic/.DS_Store deleted file mode 100644 index 820ba10c..00000000 Binary files a/node_modules/get-intrinsic/.DS_Store and /dev/null differ diff --git a/node_modules/gopd/.DS_Store b/node_modules/gopd/.DS_Store deleted file mode 100644 index 3e529987..00000000 Binary files a/node_modules/gopd/.DS_Store and /dev/null differ diff --git a/node_modules/got/.DS_Store b/node_modules/got/.DS_Store deleted file mode 100644 index c31a7130..00000000 Binary files a/node_modules/got/.DS_Store and /dev/null differ diff --git a/node_modules/gray-matter/.DS_Store b/node_modules/gray-matter/.DS_Store deleted file mode 100644 index 65da49c1..00000000 Binary files a/node_modules/gray-matter/.DS_Store and /dev/null differ diff --git a/node_modules/handle-thing/.DS_Store b/node_modules/handle-thing/.DS_Store deleted file mode 100644 index a497efb6..00000000 Binary files a/node_modules/handle-thing/.DS_Store and /dev/null differ diff --git a/node_modules/has-property-descriptors/.DS_Store b/node_modules/has-property-descriptors/.DS_Store deleted file mode 100644 index a7f60949..00000000 Binary files a/node_modules/has-property-descriptors/.DS_Store and /dev/null differ diff --git a/node_modules/has-proto/.DS_Store b/node_modules/has-proto/.DS_Store deleted file mode 100644 index 7b5f58c6..00000000 Binary files a/node_modules/has-proto/.DS_Store and /dev/null differ diff --git a/node_modules/has-symbols/.DS_Store b/node_modules/has-symbols/.DS_Store deleted file mode 100644 index bafb619c..00000000 Binary files a/node_modules/has-symbols/.DS_Store and /dev/null differ diff --git a/node_modules/hast-util-to-jsx-runtime/.DS_Store b/node_modules/hast-util-to-jsx-runtime/.DS_Store deleted file mode 100644 index 143adc68..00000000 Binary files a/node_modules/hast-util-to-jsx-runtime/.DS_Store and /dev/null differ diff --git a/node_modules/he/.DS_Store b/node_modules/he/.DS_Store deleted file mode 100644 index 82e23e7c..00000000 Binary files a/node_modules/he/.DS_Store and /dev/null differ diff --git a/node_modules/history/.DS_Store b/node_modules/history/.DS_Store deleted file mode 100644 index 4deda036..00000000 Binary files a/node_modules/history/.DS_Store and /dev/null differ diff --git a/node_modules/hoist-non-react-statics/.DS_Store b/node_modules/hoist-non-react-statics/.DS_Store deleted file mode 100644 index 175721ef..00000000 Binary files a/node_modules/hoist-non-react-statics/.DS_Store and /dev/null differ diff --git a/node_modules/hpack.js/.DS_Store b/node_modules/hpack.js/.DS_Store deleted file mode 100644 index 02e21d25..00000000 Binary files a/node_modules/hpack.js/.DS_Store and /dev/null differ diff --git a/node_modules/html-entities/.DS_Store b/node_modules/html-entities/.DS_Store deleted file mode 100644 index 09ccf3fd..00000000 Binary files a/node_modules/html-entities/.DS_Store and /dev/null differ diff --git a/node_modules/html-escaper/.DS_Store b/node_modules/html-escaper/.DS_Store deleted file mode 100644 index 3e6750be..00000000 Binary files a/node_modules/html-escaper/.DS_Store and /dev/null differ diff --git a/node_modules/html-minifier-terser/.DS_Store b/node_modules/html-minifier-terser/.DS_Store deleted file mode 100644 index ccc24ea4..00000000 Binary files a/node_modules/html-minifier-terser/.DS_Store and /dev/null differ diff --git a/node_modules/html-webpack-plugin/.DS_Store b/node_modules/html-webpack-plugin/.DS_Store deleted file mode 100644 index 79a7ba4c..00000000 Binary files a/node_modules/html-webpack-plugin/.DS_Store and /dev/null differ diff --git a/node_modules/http-deceiver/.DS_Store b/node_modules/http-deceiver/.DS_Store deleted file mode 100644 index c5b9fe36..00000000 Binary files a/node_modules/http-deceiver/.DS_Store and /dev/null differ diff --git a/node_modules/http-proxy-middleware/.DS_Store b/node_modules/http-proxy-middleware/.DS_Store deleted file mode 100644 index aa20d6c6..00000000 Binary files a/node_modules/http-proxy-middleware/.DS_Store and /dev/null differ diff --git a/node_modules/iconv-lite/.DS_Store b/node_modules/iconv-lite/.DS_Store deleted file mode 100644 index ae4ef687..00000000 Binary files a/node_modules/iconv-lite/.DS_Store and /dev/null differ diff --git a/node_modules/image-size/.DS_Store b/node_modules/image-size/.DS_Store deleted file mode 100644 index 35e4391a..00000000 Binary files a/node_modules/image-size/.DS_Store and /dev/null differ diff --git a/node_modules/immer/.DS_Store b/node_modules/immer/.DS_Store deleted file mode 100644 index f8b46041..00000000 Binary files a/node_modules/immer/.DS_Store and /dev/null differ diff --git a/node_modules/infima/.DS_Store b/node_modules/infima/.DS_Store deleted file mode 100644 index a75aabcd..00000000 Binary files a/node_modules/infima/.DS_Store and /dev/null differ diff --git a/node_modules/is-reference/.DS_Store b/node_modules/is-reference/.DS_Store deleted file mode 100644 index d00b7500..00000000 Binary files a/node_modules/is-reference/.DS_Store and /dev/null differ diff --git a/node_modules/jest-worker/.DS_Store b/node_modules/jest-worker/.DS_Store deleted file mode 100644 index 19733bcc..00000000 Binary files a/node_modules/jest-worker/.DS_Store and /dev/null differ diff --git a/node_modules/jiti/.DS_Store b/node_modules/jiti/.DS_Store deleted file mode 100644 index fd42c988..00000000 Binary files a/node_modules/jiti/.DS_Store and /dev/null differ diff --git a/node_modules/joi/.DS_Store b/node_modules/joi/.DS_Store deleted file mode 100644 index cceb4b52..00000000 Binary files a/node_modules/joi/.DS_Store and /dev/null differ diff --git a/node_modules/js-yaml/.DS_Store b/node_modules/js-yaml/.DS_Store deleted file mode 100644 index d6dc2818..00000000 Binary files a/node_modules/js-yaml/.DS_Store and /dev/null differ diff --git a/node_modules/jsesc/.DS_Store b/node_modules/jsesc/.DS_Store deleted file mode 100644 index 1acbd519..00000000 Binary files a/node_modules/jsesc/.DS_Store and /dev/null differ diff --git a/node_modules/json-schema-traverse/.DS_Store b/node_modules/json-schema-traverse/.DS_Store deleted file mode 100644 index 155733b1..00000000 Binary files a/node_modules/json-schema-traverse/.DS_Store and /dev/null differ diff --git a/node_modules/json5/.DS_Store b/node_modules/json5/.DS_Store deleted file mode 100644 index d3d9753f..00000000 Binary files a/node_modules/json5/.DS_Store and /dev/null differ diff --git a/node_modules/lower-case/.DS_Store b/node_modules/lower-case/.DS_Store deleted file mode 100644 index 106b9411..00000000 Binary files a/node_modules/lower-case/.DS_Store and /dev/null differ diff --git a/node_modules/mdast-util-find-and-replace/.DS_Store b/node_modules/mdast-util-find-and-replace/.DS_Store deleted file mode 100644 index 54370a0d..00000000 Binary files a/node_modules/mdast-util-find-and-replace/.DS_Store and /dev/null differ diff --git a/node_modules/mdast-util-from-markdown/.DS_Store b/node_modules/mdast-util-from-markdown/.DS_Store deleted file mode 100644 index c86724a0..00000000 Binary files a/node_modules/mdast-util-from-markdown/.DS_Store and /dev/null differ diff --git a/node_modules/mdast-util-frontmatter/.DS_Store b/node_modules/mdast-util-frontmatter/.DS_Store deleted file mode 100644 index 54a7868b..00000000 Binary files a/node_modules/mdast-util-frontmatter/.DS_Store and /dev/null differ diff --git a/node_modules/mdast-util-gfm-autolink-literal/.DS_Store b/node_modules/mdast-util-gfm-autolink-literal/.DS_Store deleted file mode 100644 index d709c361..00000000 Binary files a/node_modules/mdast-util-gfm-autolink-literal/.DS_Store and /dev/null differ diff --git a/node_modules/mdn-data/.DS_Store b/node_modules/mdn-data/.DS_Store deleted file mode 100644 index 70572748..00000000 Binary files a/node_modules/mdn-data/.DS_Store and /dev/null differ diff --git a/node_modules/micromark-core-commonmark/.DS_Store b/node_modules/micromark-core-commonmark/.DS_Store deleted file mode 100644 index 81bb43d8..00000000 Binary files a/node_modules/micromark-core-commonmark/.DS_Store and /dev/null differ diff --git a/node_modules/micromark-extension-directive/.DS_Store b/node_modules/micromark-extension-directive/.DS_Store deleted file mode 100644 index 85b2d17f..00000000 Binary files a/node_modules/micromark-extension-directive/.DS_Store and /dev/null differ diff --git a/node_modules/micromark-extension-frontmatter/.DS_Store b/node_modules/micromark-extension-frontmatter/.DS_Store deleted file mode 100644 index 122f102e..00000000 Binary files a/node_modules/micromark-extension-frontmatter/.DS_Store and /dev/null differ diff --git a/node_modules/micromark-extension-gfm-autolink-literal/.DS_Store b/node_modules/micromark-extension-gfm-autolink-literal/.DS_Store deleted file mode 100644 index 0e73290f..00000000 Binary files a/node_modules/micromark-extension-gfm-autolink-literal/.DS_Store and /dev/null differ diff --git a/node_modules/micromark-extension-gfm-footnote/.DS_Store b/node_modules/micromark-extension-gfm-footnote/.DS_Store deleted file mode 100644 index bf22ed51..00000000 Binary files a/node_modules/micromark-extension-gfm-footnote/.DS_Store and /dev/null differ diff --git a/node_modules/micromark-extension-gfm-strikethrough/.DS_Store b/node_modules/micromark-extension-gfm-strikethrough/.DS_Store deleted file mode 100644 index d5e97317..00000000 Binary files a/node_modules/micromark-extension-gfm-strikethrough/.DS_Store and /dev/null differ diff --git a/node_modules/micromark-extension-gfm-table/.DS_Store b/node_modules/micromark-extension-gfm-table/.DS_Store deleted file mode 100644 index f19a69f8..00000000 Binary files a/node_modules/micromark-extension-gfm-table/.DS_Store and /dev/null differ diff --git a/node_modules/micromark-extension-gfm-task-list-item/.DS_Store b/node_modules/micromark-extension-gfm-task-list-item/.DS_Store deleted file mode 100644 index 43205a62..00000000 Binary files a/node_modules/micromark-extension-gfm-task-list-item/.DS_Store and /dev/null differ diff --git a/node_modules/micromark-extension-mdx-expression/.DS_Store b/node_modules/micromark-extension-mdx-expression/.DS_Store deleted file mode 100644 index 938b3107..00000000 Binary files a/node_modules/micromark-extension-mdx-expression/.DS_Store and /dev/null differ diff --git a/node_modules/micromark-extension-mdx-jsx/.DS_Store b/node_modules/micromark-extension-mdx-jsx/.DS_Store deleted file mode 100644 index 6dc218b9..00000000 Binary files a/node_modules/micromark-extension-mdx-jsx/.DS_Store and /dev/null differ diff --git a/node_modules/micromark-extension-mdxjs-esm/.DS_Store b/node_modules/micromark-extension-mdxjs-esm/.DS_Store deleted file mode 100644 index b5e13d66..00000000 Binary files a/node_modules/micromark-extension-mdxjs-esm/.DS_Store and /dev/null differ diff --git a/node_modules/micromark-factory-destination/.DS_Store b/node_modules/micromark-factory-destination/.DS_Store deleted file mode 100644 index d322e7ef..00000000 Binary files a/node_modules/micromark-factory-destination/.DS_Store and /dev/null differ diff --git a/node_modules/micromark-factory-label/.DS_Store b/node_modules/micromark-factory-label/.DS_Store deleted file mode 100644 index 4c2d72f1..00000000 Binary files a/node_modules/micromark-factory-label/.DS_Store and /dev/null differ diff --git a/node_modules/micromark-factory-mdx-expression/.DS_Store b/node_modules/micromark-factory-mdx-expression/.DS_Store deleted file mode 100644 index 68f3649b..00000000 Binary files a/node_modules/micromark-factory-mdx-expression/.DS_Store and /dev/null differ diff --git a/node_modules/micromark-factory-space/.DS_Store b/node_modules/micromark-factory-space/.DS_Store deleted file mode 100644 index 001352dd..00000000 Binary files a/node_modules/micromark-factory-space/.DS_Store and /dev/null differ diff --git a/node_modules/micromark-factory-title/.DS_Store b/node_modules/micromark-factory-title/.DS_Store deleted file mode 100644 index cef64bdd..00000000 Binary files a/node_modules/micromark-factory-title/.DS_Store and /dev/null differ diff --git a/node_modules/micromark-factory-whitespace/.DS_Store b/node_modules/micromark-factory-whitespace/.DS_Store deleted file mode 100644 index 8a53ecc2..00000000 Binary files a/node_modules/micromark-factory-whitespace/.DS_Store and /dev/null differ diff --git a/node_modules/micromark-util-character/.DS_Store b/node_modules/micromark-util-character/.DS_Store deleted file mode 100644 index 0c781150..00000000 Binary files a/node_modules/micromark-util-character/.DS_Store and /dev/null differ diff --git a/node_modules/micromark-util-chunked/.DS_Store b/node_modules/micromark-util-chunked/.DS_Store deleted file mode 100644 index 14cc2350..00000000 Binary files a/node_modules/micromark-util-chunked/.DS_Store and /dev/null differ diff --git a/node_modules/micromark-util-classify-character/.DS_Store b/node_modules/micromark-util-classify-character/.DS_Store deleted file mode 100644 index 21c1b4f0..00000000 Binary files a/node_modules/micromark-util-classify-character/.DS_Store and /dev/null differ diff --git a/node_modules/micromark-util-decode-numeric-character-reference/.DS_Store b/node_modules/micromark-util-decode-numeric-character-reference/.DS_Store deleted file mode 100644 index 6ca74df3..00000000 Binary files a/node_modules/micromark-util-decode-numeric-character-reference/.DS_Store and /dev/null differ diff --git a/node_modules/micromark-util-decode-string/.DS_Store b/node_modules/micromark-util-decode-string/.DS_Store deleted file mode 100644 index 3d5ff95b..00000000 Binary files a/node_modules/micromark-util-decode-string/.DS_Store and /dev/null differ diff --git a/node_modules/micromark-util-events-to-acorn/.DS_Store b/node_modules/micromark-util-events-to-acorn/.DS_Store deleted file mode 100644 index 40e05560..00000000 Binary files a/node_modules/micromark-util-events-to-acorn/.DS_Store and /dev/null differ diff --git a/node_modules/micromark-util-normalize-identifier/.DS_Store b/node_modules/micromark-util-normalize-identifier/.DS_Store deleted file mode 100644 index 83993975..00000000 Binary files a/node_modules/micromark-util-normalize-identifier/.DS_Store and /dev/null differ diff --git a/node_modules/micromark-util-sanitize-uri/.DS_Store b/node_modules/micromark-util-sanitize-uri/.DS_Store deleted file mode 100644 index 4f121a39..00000000 Binary files a/node_modules/micromark-util-sanitize-uri/.DS_Store and /dev/null differ diff --git a/node_modules/micromark-util-subtokenize/.DS_Store b/node_modules/micromark-util-subtokenize/.DS_Store deleted file mode 100644 index 36fe9371..00000000 Binary files a/node_modules/micromark-util-subtokenize/.DS_Store and /dev/null differ diff --git a/node_modules/micromark/.DS_Store b/node_modules/micromark/.DS_Store deleted file mode 100644 index e8ad5b4e..00000000 Binary files a/node_modules/micromark/.DS_Store and /dev/null differ diff --git a/node_modules/mini-css-extract-plugin/.DS_Store b/node_modules/mini-css-extract-plugin/.DS_Store deleted file mode 100644 index d3142546..00000000 Binary files a/node_modules/mini-css-extract-plugin/.DS_Store and /dev/null differ diff --git a/node_modules/minimist/.DS_Store b/node_modules/minimist/.DS_Store deleted file mode 100644 index e3ac637a..00000000 Binary files a/node_modules/minimist/.DS_Store and /dev/null differ diff --git a/node_modules/nanoid/.DS_Store b/node_modules/nanoid/.DS_Store deleted file mode 100644 index fb2d5815..00000000 Binary files a/node_modules/nanoid/.DS_Store and /dev/null differ diff --git a/node_modules/no-case/.DS_Store b/node_modules/no-case/.DS_Store deleted file mode 100644 index 72e4b20a..00000000 Binary files a/node_modules/no-case/.DS_Store and /dev/null differ diff --git a/node_modules/node-forge/.DS_Store b/node_modules/node-forge/.DS_Store deleted file mode 100644 index 85ce9ef0..00000000 Binary files a/node_modules/node-forge/.DS_Store and /dev/null differ diff --git a/node_modules/object-inspect/.DS_Store b/node_modules/object-inspect/.DS_Store deleted file mode 100644 index e0acee3a..00000000 Binary files a/node_modules/object-inspect/.DS_Store and /dev/null differ diff --git a/node_modules/object.assign/.DS_Store b/node_modules/object.assign/.DS_Store deleted file mode 100644 index 9d25b423..00000000 Binary files a/node_modules/object.assign/.DS_Store and /dev/null differ diff --git a/node_modules/opener/.DS_Store b/node_modules/opener/.DS_Store deleted file mode 100644 index 7eea0a6c..00000000 Binary files a/node_modules/opener/.DS_Store and /dev/null differ diff --git a/node_modules/param-case/.DS_Store b/node_modules/param-case/.DS_Store deleted file mode 100644 index 31392cf2..00000000 Binary files a/node_modules/param-case/.DS_Store and /dev/null differ diff --git a/node_modules/parse-entities/.DS_Store b/node_modules/parse-entities/.DS_Store deleted file mode 100644 index 0de9df24..00000000 Binary files a/node_modules/parse-entities/.DS_Store and /dev/null differ diff --git a/node_modules/pascal-case/.DS_Store b/node_modules/pascal-case/.DS_Store deleted file mode 100644 index 8cb358f9..00000000 Binary files a/node_modules/pascal-case/.DS_Store and /dev/null differ diff --git a/node_modules/periscopic/.DS_Store b/node_modules/periscopic/.DS_Store deleted file mode 100644 index f56b5c22..00000000 Binary files a/node_modules/periscopic/.DS_Store and /dev/null differ diff --git a/node_modules/postcss-calc/.DS_Store b/node_modules/postcss-calc/.DS_Store deleted file mode 100644 index 88cf7a0b..00000000 Binary files a/node_modules/postcss-calc/.DS_Store and /dev/null differ diff --git a/node_modules/postcss-colormin/.DS_Store b/node_modules/postcss-colormin/.DS_Store deleted file mode 100644 index b3124ec2..00000000 Binary files a/node_modules/postcss-colormin/.DS_Store and /dev/null differ diff --git a/node_modules/postcss-convert-values/.DS_Store b/node_modules/postcss-convert-values/.DS_Store deleted file mode 100644 index e9eebfd1..00000000 Binary files a/node_modules/postcss-convert-values/.DS_Store and /dev/null differ diff --git a/node_modules/postcss-discard-comments/.DS_Store b/node_modules/postcss-discard-comments/.DS_Store deleted file mode 100644 index 210cc451..00000000 Binary files a/node_modules/postcss-discard-comments/.DS_Store and /dev/null differ diff --git a/node_modules/postcss-discard-duplicates/.DS_Store b/node_modules/postcss-discard-duplicates/.DS_Store deleted file mode 100644 index 0165015d..00000000 Binary files a/node_modules/postcss-discard-duplicates/.DS_Store and /dev/null differ diff --git a/node_modules/postcss-discard-empty/.DS_Store b/node_modules/postcss-discard-empty/.DS_Store deleted file mode 100644 index 3043f0b6..00000000 Binary files a/node_modules/postcss-discard-empty/.DS_Store and /dev/null differ diff --git a/node_modules/postcss-discard-unused/.DS_Store b/node_modules/postcss-discard-unused/.DS_Store deleted file mode 100644 index 445f28fe..00000000 Binary files a/node_modules/postcss-discard-unused/.DS_Store and /dev/null differ diff --git a/node_modules/postcss-loader/.DS_Store b/node_modules/postcss-loader/.DS_Store deleted file mode 100644 index 973d91b3..00000000 Binary files a/node_modules/postcss-loader/.DS_Store and /dev/null differ diff --git a/node_modules/postcss-merge-idents/.DS_Store b/node_modules/postcss-merge-idents/.DS_Store deleted file mode 100644 index f48e7732..00000000 Binary files a/node_modules/postcss-merge-idents/.DS_Store and /dev/null differ diff --git a/node_modules/postcss-merge-longhand/.DS_Store b/node_modules/postcss-merge-longhand/.DS_Store deleted file mode 100644 index 2ca9c551..00000000 Binary files a/node_modules/postcss-merge-longhand/.DS_Store and /dev/null differ diff --git a/node_modules/postcss-merge-rules/.DS_Store b/node_modules/postcss-merge-rules/.DS_Store deleted file mode 100644 index 55cb060a..00000000 Binary files a/node_modules/postcss-merge-rules/.DS_Store and /dev/null differ diff --git a/node_modules/postcss-minify-font-values/.DS_Store b/node_modules/postcss-minify-font-values/.DS_Store deleted file mode 100644 index a4e8c073..00000000 Binary files a/node_modules/postcss-minify-font-values/.DS_Store and /dev/null differ diff --git a/node_modules/postcss-minify-gradients/.DS_Store b/node_modules/postcss-minify-gradients/.DS_Store deleted file mode 100644 index 20dad725..00000000 Binary files a/node_modules/postcss-minify-gradients/.DS_Store and /dev/null differ diff --git a/node_modules/postcss-minify-params/.DS_Store b/node_modules/postcss-minify-params/.DS_Store deleted file mode 100644 index bacfbac5..00000000 Binary files a/node_modules/postcss-minify-params/.DS_Store and /dev/null differ diff --git a/node_modules/postcss-minify-selectors/.DS_Store b/node_modules/postcss-minify-selectors/.DS_Store deleted file mode 100644 index 18d19494..00000000 Binary files a/node_modules/postcss-minify-selectors/.DS_Store and /dev/null differ diff --git a/node_modules/postcss-normalize-charset/.DS_Store b/node_modules/postcss-normalize-charset/.DS_Store deleted file mode 100644 index 46c89648..00000000 Binary files a/node_modules/postcss-normalize-charset/.DS_Store and /dev/null differ diff --git a/node_modules/postcss-normalize-display-values/.DS_Store b/node_modules/postcss-normalize-display-values/.DS_Store deleted file mode 100644 index 865cfe32..00000000 Binary files a/node_modules/postcss-normalize-display-values/.DS_Store and /dev/null differ diff --git a/node_modules/postcss-normalize-positions/.DS_Store b/node_modules/postcss-normalize-positions/.DS_Store deleted file mode 100644 index f5e2af27..00000000 Binary files a/node_modules/postcss-normalize-positions/.DS_Store and /dev/null differ diff --git a/node_modules/postcss-normalize-repeat-style/.DS_Store b/node_modules/postcss-normalize-repeat-style/.DS_Store deleted file mode 100644 index efc1aa93..00000000 Binary files a/node_modules/postcss-normalize-repeat-style/.DS_Store and /dev/null differ diff --git a/node_modules/postcss-normalize-string/.DS_Store b/node_modules/postcss-normalize-string/.DS_Store deleted file mode 100644 index e57839f1..00000000 Binary files a/node_modules/postcss-normalize-string/.DS_Store and /dev/null differ diff --git a/node_modules/postcss-normalize-timing-functions/.DS_Store b/node_modules/postcss-normalize-timing-functions/.DS_Store deleted file mode 100644 index 745b4c34..00000000 Binary files a/node_modules/postcss-normalize-timing-functions/.DS_Store and /dev/null differ diff --git a/node_modules/postcss-normalize-unicode/.DS_Store b/node_modules/postcss-normalize-unicode/.DS_Store deleted file mode 100644 index 8867e845..00000000 Binary files a/node_modules/postcss-normalize-unicode/.DS_Store and /dev/null differ diff --git a/node_modules/postcss-normalize-url/.DS_Store b/node_modules/postcss-normalize-url/.DS_Store deleted file mode 100644 index 2232fd99..00000000 Binary files a/node_modules/postcss-normalize-url/.DS_Store and /dev/null differ diff --git a/node_modules/postcss-normalize-whitespace/.DS_Store b/node_modules/postcss-normalize-whitespace/.DS_Store deleted file mode 100644 index 4628f700..00000000 Binary files a/node_modules/postcss-normalize-whitespace/.DS_Store and /dev/null differ diff --git a/node_modules/postcss-ordered-values/.DS_Store b/node_modules/postcss-ordered-values/.DS_Store deleted file mode 100644 index da47aa30..00000000 Binary files a/node_modules/postcss-ordered-values/.DS_Store and /dev/null differ diff --git a/node_modules/postcss-reduce-idents/.DS_Store b/node_modules/postcss-reduce-idents/.DS_Store deleted file mode 100644 index b3b2a34c..00000000 Binary files a/node_modules/postcss-reduce-idents/.DS_Store and /dev/null differ diff --git a/node_modules/postcss-reduce-initial/.DS_Store b/node_modules/postcss-reduce-initial/.DS_Store deleted file mode 100644 index 5cbd7b68..00000000 Binary files a/node_modules/postcss-reduce-initial/.DS_Store and /dev/null differ diff --git a/node_modules/postcss-reduce-transforms/.DS_Store b/node_modules/postcss-reduce-transforms/.DS_Store deleted file mode 100644 index 89bdf341..00000000 Binary files a/node_modules/postcss-reduce-transforms/.DS_Store and /dev/null differ diff --git a/node_modules/postcss-svgo/.DS_Store b/node_modules/postcss-svgo/.DS_Store deleted file mode 100644 index e2a7f3f5..00000000 Binary files a/node_modules/postcss-svgo/.DS_Store and /dev/null differ diff --git a/node_modules/postcss-unique-selectors/.DS_Store b/node_modules/postcss-unique-selectors/.DS_Store deleted file mode 100644 index 9abfba62..00000000 Binary files a/node_modules/postcss-unique-selectors/.DS_Store and /dev/null differ diff --git a/node_modules/postcss-zindex/.DS_Store b/node_modules/postcss-zindex/.DS_Store deleted file mode 100644 index 86ca66de..00000000 Binary files a/node_modules/postcss-zindex/.DS_Store and /dev/null differ diff --git a/node_modules/pretty-error/.DS_Store b/node_modules/pretty-error/.DS_Store deleted file mode 100644 index 0200ac19..00000000 Binary files a/node_modules/pretty-error/.DS_Store and /dev/null differ diff --git a/node_modules/prismjs/.DS_Store b/node_modules/prismjs/.DS_Store deleted file mode 100644 index 67ae9ba5..00000000 Binary files a/node_modules/prismjs/.DS_Store and /dev/null differ diff --git a/node_modules/prompts/.DS_Store b/node_modules/prompts/.DS_Store deleted file mode 100644 index 1d65d7d0..00000000 Binary files a/node_modules/prompts/.DS_Store and /dev/null differ diff --git a/node_modules/qs/.DS_Store b/node_modules/qs/.DS_Store deleted file mode 100644 index b119f0a7..00000000 Binary files a/node_modules/qs/.DS_Store and /dev/null differ diff --git a/node_modules/rc/.DS_Store b/node_modules/rc/.DS_Store deleted file mode 100644 index 7e1013cc..00000000 Binary files a/node_modules/rc/.DS_Store and /dev/null differ diff --git a/node_modules/react-dom/.DS_Store b/node_modules/react-dom/.DS_Store deleted file mode 100644 index 9b2a95a1..00000000 Binary files a/node_modules/react-dom/.DS_Store and /dev/null differ diff --git a/node_modules/react-helmet-async/.DS_Store b/node_modules/react-helmet-async/.DS_Store deleted file mode 100644 index 2a4ab993..00000000 Binary files a/node_modules/react-helmet-async/.DS_Store and /dev/null differ diff --git a/node_modules/react-is/.DS_Store b/node_modules/react-is/.DS_Store deleted file mode 100644 index 05637931..00000000 Binary files a/node_modules/react-is/.DS_Store and /dev/null differ diff --git a/node_modules/react-loadable-ssr-addon-v5-slorber/.DS_Store b/node_modules/react-loadable-ssr-addon-v5-slorber/.DS_Store deleted file mode 100644 index ac6027cb..00000000 Binary files a/node_modules/react-loadable-ssr-addon-v5-slorber/.DS_Store and /dev/null differ diff --git a/node_modules/react-router-config/.DS_Store b/node_modules/react-router-config/.DS_Store deleted file mode 100644 index 3f564d86..00000000 Binary files a/node_modules/react-router-config/.DS_Store and /dev/null differ diff --git a/node_modules/react-router-dom/.DS_Store b/node_modules/react-router-dom/.DS_Store deleted file mode 100644 index c1af0042..00000000 Binary files a/node_modules/react-router-dom/.DS_Store and /dev/null differ diff --git a/node_modules/react-router/.DS_Store b/node_modules/react-router/.DS_Store deleted file mode 100644 index 23b91df4..00000000 Binary files a/node_modules/react-router/.DS_Store and /dev/null differ diff --git a/node_modules/react/.DS_Store b/node_modules/react/.DS_Store deleted file mode 100644 index 979e2f6d..00000000 Binary files a/node_modules/react/.DS_Store and /dev/null differ diff --git a/node_modules/regenerate-unicode-properties/.DS_Store b/node_modules/regenerate-unicode-properties/.DS_Store deleted file mode 100644 index fbc6c513..00000000 Binary files a/node_modules/regenerate-unicode-properties/.DS_Store and /dev/null differ diff --git a/node_modules/regenerator-transform/.DS_Store b/node_modules/regenerator-transform/.DS_Store deleted file mode 100644 index 5ebd7ccf..00000000 Binary files a/node_modules/regenerator-transform/.DS_Store and /dev/null differ diff --git a/node_modules/regjsparser/.DS_Store b/node_modules/regjsparser/.DS_Store deleted file mode 100644 index 76b7b3e5..00000000 Binary files a/node_modules/regjsparser/.DS_Store and /dev/null differ diff --git a/node_modules/renderkid/.DS_Store b/node_modules/renderkid/.DS_Store deleted file mode 100644 index 65882d06..00000000 Binary files a/node_modules/renderkid/.DS_Store and /dev/null differ diff --git a/node_modules/require-like/.DS_Store b/node_modules/require-like/.DS_Store deleted file mode 100644 index 06e7797a..00000000 Binary files a/node_modules/require-like/.DS_Store and /dev/null differ diff --git a/node_modules/resolve-pathname/.DS_Store b/node_modules/resolve-pathname/.DS_Store deleted file mode 100644 index 7a77a6b8..00000000 Binary files a/node_modules/resolve-pathname/.DS_Store and /dev/null differ diff --git a/node_modules/resolve/.DS_Store b/node_modules/resolve/.DS_Store deleted file mode 100644 index 4e149776..00000000 Binary files a/node_modules/resolve/.DS_Store and /dev/null differ diff --git a/node_modules/retry/.DS_Store b/node_modules/retry/.DS_Store deleted file mode 100644 index cff96e31..00000000 Binary files a/node_modules/retry/.DS_Store and /dev/null differ diff --git a/node_modules/rtl-detect/.DS_Store b/node_modules/rtl-detect/.DS_Store deleted file mode 100644 index deab86e0..00000000 Binary files a/node_modules/rtl-detect/.DS_Store and /dev/null differ diff --git a/node_modules/rtlcss/.DS_Store b/node_modules/rtlcss/.DS_Store deleted file mode 100644 index 0ccb14fa..00000000 Binary files a/node_modules/rtlcss/.DS_Store and /dev/null differ diff --git a/node_modules/scheduler/.DS_Store b/node_modules/scheduler/.DS_Store deleted file mode 100644 index 7e0b2756..00000000 Binary files a/node_modules/scheduler/.DS_Store and /dev/null differ diff --git a/node_modules/schema-utils/.DS_Store b/node_modules/schema-utils/.DS_Store deleted file mode 100644 index 5a399183..00000000 Binary files a/node_modules/schema-utils/.DS_Store and /dev/null differ diff --git a/node_modules/search-insights/.DS_Store b/node_modules/search-insights/.DS_Store deleted file mode 100644 index ae35fa72..00000000 Binary files a/node_modules/search-insights/.DS_Store and /dev/null differ diff --git a/node_modules/select-hose/.DS_Store b/node_modules/select-hose/.DS_Store deleted file mode 100644 index 01c5c1ad..00000000 Binary files a/node_modules/select-hose/.DS_Store and /dev/null differ diff --git a/node_modules/semver/.DS_Store b/node_modules/semver/.DS_Store deleted file mode 100644 index e4674bf9..00000000 Binary files a/node_modules/semver/.DS_Store and /dev/null differ diff --git a/node_modules/serve-handler/.DS_Store b/node_modules/serve-handler/.DS_Store deleted file mode 100644 index d40d1e1e..00000000 Binary files a/node_modules/serve-handler/.DS_Store and /dev/null differ diff --git a/node_modules/serve-index/.DS_Store b/node_modules/serve-index/.DS_Store deleted file mode 100644 index 46cca072..00000000 Binary files a/node_modules/serve-index/.DS_Store and /dev/null differ diff --git a/node_modules/shell-quote/.DS_Store b/node_modules/shell-quote/.DS_Store deleted file mode 100644 index 38bad736..00000000 Binary files a/node_modules/shell-quote/.DS_Store and /dev/null differ diff --git a/node_modules/shelljs/.DS_Store b/node_modules/shelljs/.DS_Store deleted file mode 100644 index d7e12d43..00000000 Binary files a/node_modules/shelljs/.DS_Store and /dev/null differ diff --git a/node_modules/side-channel/.DS_Store b/node_modules/side-channel/.DS_Store deleted file mode 100644 index ba8c11fe..00000000 Binary files a/node_modules/side-channel/.DS_Store and /dev/null differ diff --git a/node_modules/sitemap/.DS_Store b/node_modules/sitemap/.DS_Store deleted file mode 100644 index eab1541b..00000000 Binary files a/node_modules/sitemap/.DS_Store and /dev/null differ diff --git a/node_modules/source-map/.DS_Store b/node_modules/source-map/.DS_Store deleted file mode 100644 index 1deba07f..00000000 Binary files a/node_modules/source-map/.DS_Store and /dev/null differ diff --git a/node_modules/spdy/.DS_Store b/node_modules/spdy/.DS_Store deleted file mode 100644 index 9fbba35c..00000000 Binary files a/node_modules/spdy/.DS_Store and /dev/null differ diff --git a/node_modules/sprintf-js/.DS_Store b/node_modules/sprintf-js/.DS_Store deleted file mode 100644 index 289d6fbc..00000000 Binary files a/node_modules/sprintf-js/.DS_Store and /dev/null differ diff --git a/node_modules/stylehacks/.DS_Store b/node_modules/stylehacks/.DS_Store deleted file mode 100644 index bf4b150b..00000000 Binary files a/node_modules/stylehacks/.DS_Store and /dev/null differ diff --git a/node_modules/supports-preserve-symlinks-flag/.DS_Store b/node_modules/supports-preserve-symlinks-flag/.DS_Store deleted file mode 100644 index d88ac1a6..00000000 Binary files a/node_modules/supports-preserve-symlinks-flag/.DS_Store and /dev/null differ diff --git a/node_modules/svgo/.DS_Store b/node_modules/svgo/.DS_Store deleted file mode 100644 index 93a39f83..00000000 Binary files a/node_modules/svgo/.DS_Store and /dev/null differ diff --git a/node_modules/terser-webpack-plugin/.DS_Store b/node_modules/terser-webpack-plugin/.DS_Store deleted file mode 100644 index d1ceb7ab..00000000 Binary files a/node_modules/terser-webpack-plugin/.DS_Store and /dev/null differ diff --git a/node_modules/terser/.DS_Store b/node_modules/terser/.DS_Store deleted file mode 100644 index c0dfb7ba..00000000 Binary files a/node_modules/terser/.DS_Store and /dev/null differ diff --git a/node_modules/text-table/.DS_Store b/node_modules/text-table/.DS_Store deleted file mode 100644 index 12385b0e..00000000 Binary files a/node_modules/text-table/.DS_Store and /dev/null differ diff --git a/node_modules/tiny-invariant/.DS_Store b/node_modules/tiny-invariant/.DS_Store deleted file mode 100644 index dc915e37..00000000 Binary files a/node_modules/tiny-invariant/.DS_Store and /dev/null differ diff --git a/node_modules/tiny-warning/.DS_Store b/node_modules/tiny-warning/.DS_Store deleted file mode 100644 index f188c814..00000000 Binary files a/node_modules/tiny-warning/.DS_Store and /dev/null differ diff --git a/node_modules/totalist/.DS_Store b/node_modules/totalist/.DS_Store deleted file mode 100644 index cd7edb52..00000000 Binary files a/node_modules/totalist/.DS_Store and /dev/null differ diff --git a/node_modules/typescript/.DS_Store b/node_modules/typescript/.DS_Store deleted file mode 100644 index b67e294b..00000000 Binary files a/node_modules/typescript/.DS_Store and /dev/null differ diff --git a/node_modules/uri-js/.DS_Store b/node_modules/uri-js/.DS_Store deleted file mode 100644 index 33e7ffd1..00000000 Binary files a/node_modules/uri-js/.DS_Store and /dev/null differ diff --git a/node_modules/url-loader/.DS_Store b/node_modules/url-loader/.DS_Store deleted file mode 100644 index 8614cd1c..00000000 Binary files a/node_modules/url-loader/.DS_Store and /dev/null differ diff --git a/node_modules/utila/.DS_Store b/node_modules/utila/.DS_Store deleted file mode 100644 index 9becb6bc..00000000 Binary files a/node_modules/utila/.DS_Store and /dev/null differ diff --git a/node_modules/value-equal/.DS_Store b/node_modules/value-equal/.DS_Store deleted file mode 100644 index 3659d84c..00000000 Binary files a/node_modules/value-equal/.DS_Store and /dev/null differ diff --git a/node_modules/webpack-bundle-analyzer/.DS_Store b/node_modules/webpack-bundle-analyzer/.DS_Store deleted file mode 100644 index 568a8b10..00000000 Binary files a/node_modules/webpack-bundle-analyzer/.DS_Store and /dev/null differ diff --git a/node_modules/webpack-dev-middleware/.DS_Store b/node_modules/webpack-dev-middleware/.DS_Store deleted file mode 100644 index 7118fd82..00000000 Binary files a/node_modules/webpack-dev-middleware/.DS_Store and /dev/null differ diff --git a/node_modules/webpack-dev-server/.DS_Store b/node_modules/webpack-dev-server/.DS_Store deleted file mode 100644 index eb333712..00000000 Binary files a/node_modules/webpack-dev-server/.DS_Store and /dev/null differ diff --git a/node_modules/webpack/.DS_Store b/node_modules/webpack/.DS_Store deleted file mode 100644 index ea879f7c..00000000 Binary files a/node_modules/webpack/.DS_Store and /dev/null differ diff --git a/node_modules/wildcard/.DS_Store b/node_modules/wildcard/.DS_Store deleted file mode 100644 index c9e2d107..00000000 Binary files a/node_modules/wildcard/.DS_Store and /dev/null differ diff --git a/node_modules/xml-js/.DS_Store b/node_modules/xml-js/.DS_Store deleted file mode 100644 index d9cafc6d..00000000 Binary files a/node_modules/xml-js/.DS_Store and /dev/null differ diff --git a/node_modules/yaml/.DS_Store b/node_modules/yaml/.DS_Store deleted file mode 100644 index 112e65a8..00000000 Binary files a/node_modules/yaml/.DS_Store and /dev/null differ diff --git a/package-lock.json b/package-lock.json index 92da4177..c9ca8393 100644 --- a/package-lock.json +++ b/package-lock.json @@ -5636,9 +5636,9 @@ "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" }, "node_modules/electron-to-chromium": { - "version": "1.4.751", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.751.tgz", - "integrity": "sha512-2DEPi++qa89SMGRhufWTiLmzqyuGmNF3SK4+PQetW1JKiZdEpF4XQonJXJCzyuYSA6mauiMhbyVhqYAP45Hvfw==" + "version": "1.4.752", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.752.tgz", + "integrity": "sha512-P3QJreYI/AUTcfBVrC4zy9KvnZWekViThgQMX/VpJ+IsOBbcX5JFpORM4qWapwWQ+agb2nYAOyn/4PMXOk0m2Q==" }, "node_modules/emoji-regex": { "version": "9.2.2", diff --git a/docsite/package.json b/package.json similarity index 52% rename from docsite/package.json rename to package.json index 78aa992b..6f31e8c0 100644 --- a/docsite/package.json +++ b/package.json @@ -1,23 +1,13 @@ { - "name": "docsite", - "version": "0.0.0", - "private": true, + "name": "cityscope_docs", "scripts": { "docusaurus": "docusaurus", "start": "docusaurus start", "build": "docusaurus build", "swizzle": "docusaurus swizzle", "deploy": "docusaurus deploy", - "serve": "docusaurus serve" - }, - "dependencies": { - "@docusaurus/core": "2.0.0-alpha.64", - "@docusaurus/preset-classic": "2.0.0-alpha.64", - "@mdx-js/react": "^1.5.8", - "clsx": "^1.1.1", - "react": "^16.8.4", - "react-dom": "^16.8.4", - "three": "^0.125.0" + "serve": "docusaurus serve", + "gh": "USE_SSH=true npm run deploy" }, "browserslist": { "production": [ @@ -31,7 +21,19 @@ "last 1 safari version" ] }, + "dependencies": { + "@docusaurus/core": "^3.2.1", + "@docusaurus/preset-classic": "^3.2.1", + "@mdx-js/react": "^3.0.0", + "prism-react-renderer": "^2.1.0", + "react": "^18.2.0", + "react-dom": "^18.2.0" + }, "devDependencies": { - "@babel/plugin-proposal-class-properties": "^7.10.4" + "@docusaurus/module-type-aliases": "^3.2.1", + "@docusaurus/types": "^3.2.1" + }, + "engines": { + "node": ">=18.0" } } diff --git a/sidebars.js b/sidebars.js new file mode 100644 index 00000000..79a56f1a --- /dev/null +++ b/sidebars.js @@ -0,0 +1,10 @@ +module.exports = { + sidebar: { + CityScope: [ + { + type: "autogenerated", + dirName: ".", + }, + ], + }, +}; diff --git a/src/.DS_Store b/src/.DS_Store deleted file mode 100644 index da28c6a7..00000000 Binary files a/src/.DS_Store and /dev/null differ diff --git a/static/.DS_Store b/static/.DS_Store index c4084ad8..41a3d842 100644 Binary files a/static/.DS_Store and b/static/.DS_Store differ diff --git a/build/.nojekyll b/static/.nojekyll similarity index 100% rename from build/.nojekyll rename to static/.nojekyll diff --git a/build/CNAME b/static/CNAME similarity index 100% rename from build/CNAME rename to static/CNAME diff --git a/static/img/.DS_Store b/static/img/.DS_Store index e224fab1..0081c7e7 100644 Binary files a/static/img/.DS_Store and b/static/img/.DS_Store differ diff --git a/build/img/ML_logo.png b/static/img/ML_logo.png similarity index 100% rename from build/img/ML_logo.png rename to static/img/ML_logo.png diff --git a/build/img/ML_logo_sml.png b/static/img/ML_logo_sml.png similarity index 100% rename from build/img/ML_logo_sml.png rename to static/img/ML_logo_sml.png diff --git a/build/img/brix/brix.png b/static/img/brix/brix.png similarity index 100% rename from build/img/brix/brix.png rename to static/img/brix/brix.png diff --git a/build/img/brix/deckgl-module.png b/static/img/brix/deckgl-module.png similarity index 100% rename from build/img/brix/deckgl-module.png rename to static/img/brix/deckgl-module.png diff --git a/static/img/cityio/.DS_Store b/static/img/cityio/.DS_Store deleted file mode 100644 index 3c91d8f8..00000000 Binary files a/static/img/cityio/.DS_Store and /dev/null differ diff --git a/build/img/cityio/arch.png b/static/img/cityio/arch.png similarity index 100% rename from build/img/cityio/arch.png rename to static/img/cityio/arch.png diff --git a/build/img/cityio/wc/initialcon.png b/static/img/cityio/wc/initialcon.png similarity index 100% rename from build/img/cityio/wc/initialcon.png rename to static/img/cityio/wc/initialcon.png diff --git a/build/img/cityio/wc/subremovalrequest.png b/static/img/cityio/wc/subremovalrequest.png similarity index 100% rename from build/img/cityio/wc/subremovalrequest.png rename to static/img/cityio/wc/subremovalrequest.png diff --git a/build/img/cityio/wc/subrequest.png b/static/img/cityio/wc/subrequest.png similarity index 100% rename from build/img/cityio/wc/subrequest.png rename to static/img/cityio/wc/subrequest.png diff --git a/build/img/cityio/wm/calc.png b/static/img/cityio/wm/calc.png similarity index 100% rename from build/img/cityio/wm/calc.png rename to static/img/cityio/wm/calc.png diff --git a/build/img/cityio/wm/initialcon.png b/static/img/cityio/wm/initialcon.png similarity index 100% rename from build/img/cityio/wm/initialcon.png rename to static/img/cityio/wm/initialcon.png diff --git a/build/img/cityio/wui/gridupdate.png b/static/img/cityio/wui/gridupdate.png similarity index 100% rename from build/img/cityio/wui/gridupdate.png rename to static/img/cityio/wui/gridupdate.png diff --git a/build/img/cityio/wui/initialcon.png b/static/img/cityio/wui/initialcon.png similarity index 100% rename from build/img/cityio/wui/initialcon.png rename to static/img/cityio/wui/initialcon.png diff --git a/build/img/cityio/wui/modulerequest.png b/static/img/cityio/wui/modulerequest.png similarity index 100% rename from build/img/cityio/wui/modulerequest.png rename to static/img/cityio/wui/modulerequest.png diff --git a/build/img/cityio/wui/scenariodeleterestore.png b/static/img/cityio/wui/scenariodeleterestore.png similarity index 100% rename from build/img/cityio/wui/scenariodeleterestore.png rename to static/img/cityio/wui/scenariodeleterestore.png diff --git a/build/img/cityio/wui/scenariosave.png b/static/img/cityio/wui/scenariosave.png similarity index 100% rename from build/img/cityio/wui/scenariosave.png rename to static/img/cityio/wui/scenariosave.png diff --git a/build/img/cityscopejs/main.png b/static/img/cityscopejs/main.png similarity index 100% rename from build/img/cityscopejs/main.png rename to static/img/cityscopejs/main.png diff --git a/build/img/cityscopejs/opening-project.png b/static/img/cityscopejs/opening-project.png similarity index 100% rename from build/img/cityscopejs/opening-project.png rename to static/img/cityscopejs/opening-project.png diff --git a/build/img/cityscopejs/project-view.png b/static/img/cityscopejs/project-view.png similarity index 100% rename from build/img/cityscopejs/project-view.png rename to static/img/cityscopejs/project-view.png diff --git a/build/img/favicon.ico b/static/img/favicon.ico similarity index 100% rename from build/img/favicon.ico rename to static/img/favicon.ico diff --git a/static/img/img/.DS_Store b/static/img/img/.DS_Store deleted file mode 100644 index b6224ee5..00000000 Binary files a/static/img/img/.DS_Store and /dev/null differ diff --git a/build/img/models/lego.mtl b/static/img/models/lego.mtl similarity index 100% rename from build/img/models/lego.mtl rename to static/img/models/lego.mtl diff --git a/build/img/models/lego.obj b/static/img/models/lego.obj similarity index 100% rename from build/img/models/lego.obj rename to static/img/models/lego.obj diff --git a/build/img/models/legoBrick.obj b/static/img/models/legoBrick.obj similarity index 100% rename from build/img/models/legoBrick.obj rename to static/img/models/legoBrick.obj diff --git a/build/img/models/mlcs.obj b/static/img/models/mlcs.obj similarity index 100% rename from build/img/models/mlcs.obj rename to static/img/models/mlcs.obj diff --git a/build/models/lego.mtl b/static/models/lego.mtl similarity index 100% rename from build/models/lego.mtl rename to static/models/lego.mtl diff --git a/build/models/lego.obj b/static/models/lego.obj similarity index 100% rename from build/models/lego.obj rename to static/models/lego.obj diff --git a/build/models/legoBrick.obj b/static/models/legoBrick.obj similarity index 100% rename from build/models/legoBrick.obj rename to static/models/legoBrick.obj diff --git a/build/models/mlcs.obj b/static/models/mlcs.obj similarity index 100% rename from build/models/mlcs.obj rename to static/models/mlcs.obj